@xmachines/docs 1.0.0-beta.9 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (544) hide show
  1. package/README.md +137 -7
  2. package/api/@xmachines/play/README.md +160 -38
  3. package/api/@xmachines/play/classes/NonNullableError.md +189 -0
  4. package/api/@xmachines/play/classes/PlayError.md +251 -0
  5. package/api/@xmachines/play/functions/assertNonNullable.md +56 -0
  6. package/api/@xmachines/play/type-aliases/PlayEvent.md +6 -6
  7. package/api/@xmachines/play-actor/README.md +141 -160
  8. package/api/@xmachines/play-actor/classes/AbstractActor.md +91 -122
  9. package/api/@xmachines/play-actor/functions/attachRenderErrorHandler.md +40 -0
  10. package/api/@xmachines/play-actor/functions/toAtomState.md +33 -0
  11. package/api/@xmachines/play-actor/functions/typedSpec.md +54 -0
  12. package/api/@xmachines/play-actor/interfaces/BaseActorProviderProps.md +46 -0
  13. package/api/@xmachines/play-actor/interfaces/BaseViewContextValue.md +33 -0
  14. package/api/@xmachines/play-actor/interfaces/PlaySpec.md +28 -0
  15. package/api/@xmachines/play-actor/interfaces/Routable.md +6 -21
  16. package/api/@xmachines/play-actor/interfaces/Viewable.md +12 -6
  17. package/api/@xmachines/play-dom/README.md +384 -0
  18. package/api/@xmachines/play-dom/classes/PlayRenderer.md +115 -0
  19. package/api/@xmachines/play-dom/functions/createPlayUI.md +28 -0
  20. package/api/@xmachines/play-dom/functions/createRenderer.md +44 -0
  21. package/api/@xmachines/play-dom/functions/defineRegistry.md +26 -0
  22. package/api/@xmachines/play-dom/functions/renderSpec.md +67 -0
  23. package/api/@xmachines/play-dom/interfaces/ComponentContext.md +23 -0
  24. package/api/@xmachines/play-dom/interfaces/CreatePlayUIOptions.md +34 -0
  25. package/api/@xmachines/play-dom/interfaces/DefineRegistryResult.md +17 -0
  26. package/api/@xmachines/play-dom/interfaces/DomRenderContext.md +28 -0
  27. package/api/@xmachines/play-dom/interfaces/EventHandle.md +15 -0
  28. package/api/@xmachines/play-dom/interfaces/MountOptions.md +18 -0
  29. package/api/@xmachines/play-dom/interfaces/PlayDomOptions.md +30 -0
  30. package/api/@xmachines/play-dom/interfaces/RenderSpecOptions.md +26 -0
  31. package/api/@xmachines/play-dom/interfaces/UIProviderOptions.md +32 -0
  32. package/api/@xmachines/play-dom/type-aliases/ActionFn.md +46 -0
  33. package/api/@xmachines/play-dom/type-aliases/Actions.md +18 -0
  34. package/api/@xmachines/play-dom/type-aliases/BaseComponentProps.md +114 -0
  35. package/api/@xmachines/play-dom/type-aliases/CatalogHasActions.md +25 -0
  36. package/api/@xmachines/play-dom/type-aliases/ComponentFn.md +26 -0
  37. package/api/@xmachines/play-dom/type-aliases/ComponentRegistry.md +15 -0
  38. package/api/@xmachines/play-dom/type-aliases/ConfirmHandler.md +44 -0
  39. package/api/@xmachines/play-dom/type-aliases/DefineRegistryOptions.md +39 -0
  40. package/api/@xmachines/play-dom/type-aliases/DomComponentRenderer.md +20 -0
  41. package/api/@xmachines/play-dom/type-aliases/DomRegistry.md +9 -0
  42. package/api/@xmachines/play-dom/type-aliases/DomSchema.md +9 -0
  43. package/api/@xmachines/play-dom/type-aliases/MountFn.md +27 -0
  44. package/api/@xmachines/play-dom/type-aliases/RenderErrorHandler.md +23 -0
  45. package/api/@xmachines/play-dom/type-aliases/SetState.md +30 -0
  46. package/api/@xmachines/play-dom/variables/schema.md +62 -0
  47. package/api/@xmachines/play-dom-router/README.md +271 -0
  48. package/api/@xmachines/play-dom-router/functions/connectRouter.md +43 -0
  49. package/api/@xmachines/{play-router → play-dom-router}/functions/createBrowserHistory.md +10 -2
  50. package/api/@xmachines/play-dom-router/functions/createRouteMap.md +39 -0
  51. package/api/@xmachines/play-dom-router/functions/createRouter.md +54 -0
  52. package/api/@xmachines/play-dom-router/interfaces/BrowserHistory.md +176 -0
  53. package/api/@xmachines/play-dom-router/interfaces/BrowserWindow.md +69 -0
  54. package/api/@xmachines/play-dom-router/interfaces/ConnectRouterOptions.md +15 -0
  55. package/api/@xmachines/play-dom-router/interfaces/PlayRouteEvent.md +129 -0
  56. package/api/@xmachines/play-dom-router/interfaces/RoutableActor.md +68 -0
  57. package/api/@xmachines/play-dom-router/interfaces/RouteLookupContract.md +54 -0
  58. package/api/@xmachines/play-dom-router/interfaces/RouteMap.md +121 -0
  59. package/api/@xmachines/play-dom-router/interfaces/RouteMapOptions.md +13 -0
  60. package/api/@xmachines/play-dom-router/interfaces/RouteMapping.md +27 -0
  61. package/api/@xmachines/play-dom-router/interfaces/RouterBridge.md +104 -0
  62. package/api/@xmachines/play-dom-router/interfaces/VanillaRouter.md +28 -0
  63. package/api/@xmachines/play-react/README.md +185 -334
  64. package/api/@xmachines/play-react/classes/PlayErrorBoundary.md +46 -42
  65. package/api/@xmachines/play-react/functions/ActionProvider.md +21 -0
  66. package/api/@xmachines/play-react/functions/JSONUIProvider.md +21 -0
  67. package/api/@xmachines/play-react/functions/Renderer.md +21 -0
  68. package/api/@xmachines/play-react/functions/StateProvider.md +27 -0
  69. package/api/@xmachines/play-react/functions/ValidationProvider.md +21 -0
  70. package/api/@xmachines/play-react/functions/VisibilityProvider.md +21 -0
  71. package/api/@xmachines/play-react/functions/defineRegistry.md +49 -0
  72. package/api/@xmachines/play-react/functions/useActor.md +13 -0
  73. package/api/@xmachines/play-react/functions/useBoundProp.md +45 -0
  74. package/api/@xmachines/play-react/functions/usePlayView.md +32 -0
  75. package/api/@xmachines/play-react/functions/useSignalEffect.md +29 -20
  76. package/api/@xmachines/play-react/interfaces/ActionProviderProps.md +15 -0
  77. package/api/@xmachines/play-react/interfaces/ActorProviderProps.md +27 -0
  78. package/api/@xmachines/play-react/interfaces/ComponentContext.md +37 -0
  79. package/api/@xmachines/play-react/interfaces/JSONUIProviderProps.md +22 -0
  80. package/api/@xmachines/play-react/interfaces/PlayErrorBoundaryProps.md +7 -7
  81. package/api/@xmachines/play-react/interfaces/PlayErrorBoundaryState.md +6 -6
  82. package/api/@xmachines/play-react/interfaces/PlayUIProviderProps.md +26 -0
  83. package/api/@xmachines/play-react/interfaces/RendererProps.md +17 -0
  84. package/api/@xmachines/play-react/interfaces/StateProviderProps.md +16 -0
  85. package/api/@xmachines/play-react/interfaces/ValidationProviderProps.md +14 -0
  86. package/api/@xmachines/play-react/interfaces/ViewContextValue.md +20 -0
  87. package/api/@xmachines/play-react/interfaces/VisibilityProviderProps.md +13 -0
  88. package/api/@xmachines/play-react/type-aliases/AnyPlayActor.md +11 -0
  89. package/api/@xmachines/play-react/type-aliases/ComponentFn.md +36 -0
  90. package/api/@xmachines/play-react/type-aliases/RenderErrorHandler.md +23 -0
  91. package/api/@xmachines/play-react/variables/ActorProvider.md +33 -0
  92. package/api/@xmachines/play-react/variables/PlayRenderer.md +6 -56
  93. package/api/@xmachines/play-react/variables/PlayUIProvider.md +43 -0
  94. package/api/@xmachines/play-react-router/README.md +130 -114
  95. package/api/@xmachines/play-react-router/classes/ReactRouterBridge.md +19 -242
  96. package/api/@xmachines/play-react-router/classes/RouteMap.md +48 -36
  97. package/api/@xmachines/play-react-router/functions/createPlayRouterProvider.md +45 -0
  98. package/api/@xmachines/play-react-router/functions/createRouteMap.md +39 -0
  99. package/api/@xmachines/play-react-router/functions/createRouteMapFromTree.md +23 -12
  100. package/api/@xmachines/play-react-router/interfaces/PlayActor.md +68 -0
  101. package/api/@xmachines/play-react-router/interfaces/PlayRouteEvent.md +22 -12
  102. package/api/@xmachines/play-react-router/interfaces/PlayRouterProviderBaseProps.md +32 -0
  103. package/api/@xmachines/play-react-router/interfaces/PlayRouterProviderProps.md +25 -9
  104. package/api/@xmachines/play-react-router/interfaces/RouteMapOptions.md +13 -0
  105. package/api/@xmachines/play-react-router/interfaces/RouteMapping.md +19 -9
  106. package/api/@xmachines/play-react-router/interfaces/RouterBridge.md +8 -8
  107. package/api/@xmachines/play-react-router/type-aliases/PlayRouterBridgeConstructor.md +30 -0
  108. package/api/@xmachines/play-react-router/variables/PlayRouterProvider.md +32 -0
  109. package/api/@xmachines/play-router/README.md +275 -353
  110. package/api/@xmachines/play-router/classes/RouteMap.md +149 -0
  111. package/api/@xmachines/play-router/classes/RouterBridgeBase.md +21 -221
  112. package/api/@xmachines/play-router/functions/buildPlayRouteEvent.md +32 -0
  113. package/api/@xmachines/play-router/functions/buildRouteTree.md +12 -2
  114. package/api/@xmachines/play-router/functions/createRouteMap.md +22 -36
  115. package/api/@xmachines/play-router/functions/createRouteMapFromTree.md +46 -0
  116. package/api/@xmachines/play-router/functions/detectDuplicateRoutes.md +14 -7
  117. package/api/@xmachines/play-router/functions/extractMachineRoutes.md +10 -46
  118. package/api/@xmachines/play-router/functions/extractQuery.md +22 -0
  119. package/api/@xmachines/play-router/functions/extractRouteParams.md +54 -0
  120. package/api/@xmachines/play-router/functions/findRouteById.md +2 -2
  121. package/api/@xmachines/play-router/functions/findRouteByPath.md +2 -2
  122. package/api/@xmachines/play-router/functions/getNavigableRoutes.md +2 -2
  123. package/api/@xmachines/play-router/functions/getRoutableRoutes.md +2 -2
  124. package/api/@xmachines/play-router/functions/getTransitionReachableRoutes.md +43 -0
  125. package/api/@xmachines/play-router/functions/isRouteReachable.md +38 -0
  126. package/api/@xmachines/play-router/functions/machineToGraph.md +19 -0
  127. package/api/@xmachines/play-router/functions/routeExists.md +2 -2
  128. package/api/@xmachines/play-router/functions/sanitizePathname.md +40 -0
  129. package/api/@xmachines/play-router/functions/validateRouteFormat.md +10 -9
  130. package/api/@xmachines/play-router/functions/validateStateExists.md +9 -9
  131. package/api/@xmachines/play-router/interfaces/BuildPlayRouteEventOptions.md +13 -0
  132. package/api/@xmachines/play-router/interfaces/LocationLike.md +27 -0
  133. package/api/@xmachines/play-router/interfaces/MachineEdgeData.md +15 -0
  134. package/api/@xmachines/play-router/interfaces/MachineNodeData.md +17 -0
  135. package/api/@xmachines/play-router/interfaces/PlayActor.md +68 -0
  136. package/api/@xmachines/play-router/interfaces/PlayRouteEvent.md +22 -12
  137. package/api/@xmachines/play-router/interfaces/ResolvedRoutePath.md +17 -0
  138. package/api/@xmachines/play-router/interfaces/RoutableActor.md +64 -0
  139. package/api/@xmachines/play-router/interfaces/RouteInfo.md +11 -11
  140. package/api/@xmachines/play-router/interfaces/RouteMapOptions.md +13 -0
  141. package/api/@xmachines/play-router/interfaces/RouteMapping.md +27 -0
  142. package/api/@xmachines/play-router/interfaces/RouteMatch.md +12 -0
  143. package/api/@xmachines/play-router/interfaces/RouteNode.md +13 -13
  144. package/api/@xmachines/play-router/interfaces/RouteObject.md +5 -5
  145. package/api/@xmachines/play-router/interfaces/RouteTree.md +8 -7
  146. package/api/@xmachines/play-router/interfaces/RouteWatcherHandle.md +55 -0
  147. package/api/@xmachines/play-router/interfaces/RouterBridge.md +8 -8
  148. package/api/@xmachines/play-router/interfaces/WindowLike.md +65 -0
  149. package/api/@xmachines/play-router/type-aliases/MachineGraph.md +20 -0
  150. package/api/@xmachines/play-router/type-aliases/RouteMetadata.md +2 -2
  151. package/api/@xmachines/play-signals/README.md +116 -65
  152. package/api/@xmachines/play-signals/functions/watchSignal.md +42 -0
  153. package/api/@xmachines/play-signals/interfaces/ComputedOptions.md +7 -5
  154. package/api/@xmachines/play-signals/interfaces/SignalComputed.md +3 -3
  155. package/api/@xmachines/play-signals/interfaces/SignalOptions.md +7 -5
  156. package/api/@xmachines/play-signals/interfaces/SignalState.md +4 -4
  157. package/api/@xmachines/play-signals/interfaces/SignalWatcher.md +5 -5
  158. package/api/@xmachines/play-signals/namespaces/Signal/README.md +1 -1
  159. package/api/@xmachines/play-signals/namespaces/Signal/classes/Computed.md +7 -7
  160. package/api/@xmachines/play-signals/namespaces/Signal/classes/State.md +8 -8
  161. package/api/@xmachines/play-signals/namespaces/Signal/interfaces/Options.md +7 -7
  162. package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/README.md +1 -1
  163. package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/classes/Watcher.md +9 -9
  164. package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/currentComputed.md +2 -2
  165. package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/hasSinks.md +2 -2
  166. package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/hasSources.md +2 -2
  167. package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/introspectSinks.md +2 -2
  168. package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/introspectSources.md +2 -2
  169. package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/untrack.md +2 -2
  170. package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/variables/unwatched.md +2 -2
  171. package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/variables/watched.md +2 -2
  172. package/api/@xmachines/play-signals/namespaces/Signal/variables/isComputed.md +2 -2
  173. package/api/@xmachines/play-signals/namespaces/Signal/variables/isState.md +2 -2
  174. package/api/@xmachines/play-signals/namespaces/Signal/variables/isWatcher.md +2 -2
  175. package/api/@xmachines/play-signals/type-aliases/WatcherNotify.md +2 -2
  176. package/api/@xmachines/play-solid/README.md +196 -234
  177. package/api/@xmachines/play-solid/functions/ActionProvider.md +19 -0
  178. package/api/@xmachines/play-solid/functions/JSONUIProvider.md +21 -0
  179. package/api/@xmachines/play-solid/functions/Renderer.md +21 -0
  180. package/api/@xmachines/play-solid/functions/StateProvider.md +19 -0
  181. package/api/@xmachines/play-solid/functions/ValidationProvider.md +19 -0
  182. package/api/@xmachines/play-solid/functions/VisibilityProvider.md +20 -0
  183. package/api/@xmachines/play-solid/functions/defineRegistry.md +49 -0
  184. package/api/@xmachines/play-solid/functions/useAction.md +24 -0
  185. package/api/@xmachines/play-solid/functions/useActions.md +13 -0
  186. package/api/@xmachines/play-solid/functions/useActor.md +13 -0
  187. package/api/@xmachines/play-solid/functions/useBoundProp.md +45 -0
  188. package/api/@xmachines/play-solid/functions/useFieldValidation.md +29 -0
  189. package/api/@xmachines/play-solid/functions/useIsVisible.md +19 -0
  190. package/api/@xmachines/play-solid/functions/useOptionalValidation.md +13 -0
  191. package/api/@xmachines/play-solid/functions/usePlayView.md +30 -0
  192. package/api/@xmachines/play-solid/functions/useStateBinding.md +25 -0
  193. package/api/@xmachines/play-solid/functions/useStateStore.md +13 -0
  194. package/api/@xmachines/play-solid/functions/useStateValue.md +25 -0
  195. package/api/@xmachines/play-solid/functions/useVisibility.md +13 -0
  196. package/api/@xmachines/play-solid/interfaces/ActionProviderProps.md +12 -0
  197. package/api/@xmachines/play-solid/interfaces/ActorProviderProps.md +30 -0
  198. package/api/@xmachines/play-solid/interfaces/ComponentContext.md +37 -0
  199. package/api/@xmachines/play-solid/interfaces/DefineRegistryResult.md +15 -0
  200. package/api/@xmachines/play-solid/interfaces/JSONUIProviderProps.md +22 -0
  201. package/api/@xmachines/play-solid/interfaces/PlayUIProviderProps.md +26 -0
  202. package/api/@xmachines/play-solid/interfaces/RendererProps.md +17 -0
  203. package/api/@xmachines/play-solid/interfaces/StateProviderProps.md +13 -0
  204. package/api/@xmachines/play-solid/interfaces/ValidationProviderProps.md +11 -0
  205. package/api/@xmachines/play-solid/interfaces/ViewContextValue.md +21 -0
  206. package/api/@xmachines/play-solid/type-aliases/AnyPlayActor.md +11 -0
  207. package/api/@xmachines/play-solid/type-aliases/ComponentFn.md +36 -0
  208. package/api/@xmachines/play-solid/type-aliases/ComponentRegistry.md +11 -0
  209. package/api/@xmachines/play-solid/type-aliases/RenderErrorHandler.md +23 -0
  210. package/api/@xmachines/play-solid/type-aliases/SetState.md +21 -0
  211. package/api/@xmachines/play-solid/type-aliases/VisibilityProviderProps.md +9 -0
  212. package/api/@xmachines/play-solid/variables/ActorContext.md +13 -0
  213. package/api/@xmachines/play-solid/variables/ActorProvider.md +27 -0
  214. package/api/@xmachines/play-solid/variables/PlayRenderer.md +6 -62
  215. package/api/@xmachines/play-solid/variables/PlayUIProvider.md +26 -0
  216. package/api/@xmachines/play-solid-router/README.md +151 -560
  217. package/api/@xmachines/play-solid-router/classes/RouteMap.md +31 -32
  218. package/api/@xmachines/play-solid-router/classes/SolidRouterBridge.md +27 -242
  219. package/api/@xmachines/play-solid-router/functions/createPlayRouterProvider.md +44 -0
  220. package/api/@xmachines/play-solid-router/functions/createRouteMap.md +18 -11
  221. package/api/@xmachines/play-solid-router/interfaces/AbstractActor.md +84 -115
  222. package/api/@xmachines/play-solid-router/interfaces/PlayActor.md +68 -0
  223. package/api/@xmachines/play-solid-router/interfaces/PlayRouteEvent.md +22 -12
  224. package/api/@xmachines/play-solid-router/interfaces/PlayRouterProviderBaseProps.md +30 -0
  225. package/api/@xmachines/play-solid-router/interfaces/PlayRouterProviderProps.md +25 -9
  226. package/api/@xmachines/play-solid-router/interfaces/RouteMapOptions.md +13 -0
  227. package/api/@xmachines/play-solid-router/interfaces/RouteMapping.md +20 -7
  228. package/api/@xmachines/play-solid-router/interfaces/RouterBridge.md +8 -8
  229. package/api/@xmachines/play-solid-router/type-aliases/PlayRouterBridgeConstructor.md +34 -0
  230. package/api/@xmachines/play-solid-router/type-aliases/RoutableActor.md +8 -4
  231. package/api/@xmachines/play-solid-router/type-aliases/SolidRouterHooks.md +22 -19
  232. package/api/@xmachines/play-solid-router/variables/PlayRouterProvider.md +52 -0
  233. package/api/@xmachines/play-svelte/README.md +269 -0
  234. package/api/@xmachines/play-svelte/functions/defineRegistry.md +31 -0
  235. package/api/@xmachines/play-svelte/functions/getActorContext.md +21 -0
  236. package/api/@xmachines/play-svelte/functions/getPlayViewContext.md +19 -0
  237. package/api/@xmachines/play-svelte/functions/setActorContext.md +19 -0
  238. package/api/@xmachines/play-svelte/interfaces/ActorProviderProps.md +44 -0
  239. package/api/@xmachines/play-svelte/interfaces/BaseComponentProps.md +29 -0
  240. package/api/@xmachines/play-svelte/interfaces/ComponentContext.md +29 -0
  241. package/api/@xmachines/play-svelte/interfaces/DefineRegistryOptions.md +24 -0
  242. package/api/@xmachines/play-svelte/interfaces/PlayUIProviderProps.md +43 -0
  243. package/api/@xmachines/play-svelte/interfaces/ViewContextValue.md +24 -0
  244. package/api/@xmachines/play-svelte/type-aliases/ActionFn.md +30 -0
  245. package/api/@xmachines/play-svelte/type-aliases/Actions.md +17 -0
  246. package/api/@xmachines/play-svelte/type-aliases/AnyPlayActor.md +11 -0
  247. package/api/@xmachines/play-svelte/type-aliases/ComponentFn.md +18 -0
  248. package/api/@xmachines/play-svelte/type-aliases/JSONUIProviderProps.md +7 -0
  249. package/api/@xmachines/play-svelte/type-aliases/PlayRenderer.md +9 -0
  250. package/api/@xmachines/play-svelte/type-aliases/RenderErrorHandler.md +23 -0
  251. package/api/@xmachines/play-svelte/type-aliases/SetState.md +21 -0
  252. package/api/@xmachines/play-svelte/variables/PlayRenderer.md +9 -0
  253. package/api/@xmachines/play-svelte-spa-router/README.md +199 -0
  254. package/api/@xmachines/play-svelte-spa-router/classes/RouteMap.md +149 -0
  255. package/api/@xmachines/play-svelte-spa-router/functions/connectRouter.md +32 -0
  256. package/api/@xmachines/play-svelte-spa-router/functions/createRouteMap.md +39 -0
  257. package/api/@xmachines/play-svelte-spa-router/interfaces/ConnectRouterOptions.md +17 -0
  258. package/api/@xmachines/play-svelte-spa-router/interfaces/PlayRouteEvent.md +129 -0
  259. package/api/@xmachines/play-svelte-spa-router/interfaces/RouteMapOptions.md +13 -0
  260. package/api/@xmachines/play-svelte-spa-router/interfaces/RouteMapping.md +27 -0
  261. package/api/@xmachines/play-svelte-spa-router/interfaces/RouterBridge.md +104 -0
  262. package/api/@xmachines/play-svelte-spa-router/interfaces/WindowLike.md +65 -0
  263. package/api/@xmachines/play-svelte-spa-router/type-aliases/RoutableActor.md +9 -0
  264. package/api/@xmachines/play-sveltekit-router/README.md +211 -0
  265. package/api/@xmachines/play-sveltekit-router/classes/RouteMap.md +149 -0
  266. package/api/@xmachines/play-sveltekit-router/functions/connectRouter.md +32 -0
  267. package/api/@xmachines/play-sveltekit-router/functions/createRouteMap.md +39 -0
  268. package/api/@xmachines/play-sveltekit-router/interfaces/ConnectRouterOptions.md +13 -0
  269. package/api/@xmachines/play-sveltekit-router/interfaces/LocationLike.md +27 -0
  270. package/api/@xmachines/play-sveltekit-router/interfaces/PlayRouteEvent.md +129 -0
  271. package/api/@xmachines/play-sveltekit-router/interfaces/RouteMapOptions.md +13 -0
  272. package/api/@xmachines/play-sveltekit-router/interfaces/RouteMapping.md +27 -0
  273. package/api/@xmachines/play-sveltekit-router/interfaces/RouterBridge.md +104 -0
  274. package/api/@xmachines/play-sveltekit-router/type-aliases/RoutableActor.md +9 -0
  275. package/api/@xmachines/play-tanstack-react-router/README.md +155 -126
  276. package/api/@xmachines/play-tanstack-react-router/classes/RouteMap.md +48 -36
  277. package/api/@xmachines/play-tanstack-react-router/classes/TanStackReactRouterBridge.md +31 -252
  278. package/api/@xmachines/play-tanstack-react-router/functions/createPlayRouterProvider.md +45 -0
  279. package/api/@xmachines/play-tanstack-react-router/functions/createRouteMap.md +22 -36
  280. package/api/@xmachines/play-tanstack-react-router/functions/createRouteMapFromTree.md +23 -12
  281. package/api/@xmachines/play-tanstack-react-router/functions/extractMachineRoutes.md +28 -0
  282. package/api/@xmachines/play-tanstack-react-router/interfaces/PlayActor.md +68 -0
  283. package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouteEvent.md +22 -12
  284. package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouterProviderBaseProps.md +32 -0
  285. package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouterProviderProps.md +25 -9
  286. package/api/@xmachines/play-tanstack-react-router/interfaces/RouteMapOptions.md +13 -0
  287. package/api/@xmachines/play-tanstack-react-router/interfaces/RouteMapping.md +19 -9
  288. package/api/@xmachines/play-tanstack-react-router/interfaces/RouteNavigateEvent.md +6 -6
  289. package/api/@xmachines/play-tanstack-react-router/interfaces/RouterBridge.md +8 -8
  290. package/api/@xmachines/play-tanstack-react-router/type-aliases/PlayRouterBridgeConstructor.md +30 -0
  291. package/api/@xmachines/play-tanstack-react-router/type-aliases/TanStackRouterInstance.md +2 -2
  292. package/api/@xmachines/play-tanstack-react-router/type-aliases/TanStackRouterLike.md +40 -18
  293. package/api/@xmachines/play-tanstack-react-router/variables/PlayRouterProvider.md +34 -0
  294. package/api/@xmachines/play-tanstack-router/README.md +58 -0
  295. package/api/@xmachines/play-tanstack-router/classes/TanStackRouterBridgeBase.md +131 -0
  296. package/api/@xmachines/play-tanstack-router/type-aliases/TanStackRouteMapLike.md +57 -0
  297. package/api/@xmachines/play-tanstack-router/type-aliases/TanStackRouterLike.md +100 -0
  298. package/api/@xmachines/play-tanstack-solid-router/README.md +215 -175
  299. package/api/@xmachines/play-tanstack-solid-router/classes/RouteMap.md +31 -32
  300. package/api/@xmachines/play-tanstack-solid-router/classes/TanStackSolidRouterBridge.md +121 -0
  301. package/api/@xmachines/play-tanstack-solid-router/functions/createPlayRouterProvider.md +44 -0
  302. package/api/@xmachines/play-tanstack-solid-router/functions/createRouteMap.md +18 -11
  303. package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayActor.md +68 -0
  304. package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayRouteEvent.md +22 -12
  305. package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayRouterProviderBaseProps.md +31 -0
  306. package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayRouterProviderProps.md +23 -9
  307. package/api/@xmachines/play-tanstack-solid-router/interfaces/RouteMapOptions.md +13 -0
  308. package/api/@xmachines/play-tanstack-solid-router/interfaces/RouteMapping.md +14 -10
  309. package/api/@xmachines/play-tanstack-solid-router/interfaces/RouterBridge.md +8 -8
  310. package/api/@xmachines/play-tanstack-solid-router/type-aliases/PlayRouterBridgeConstructor.md +30 -0
  311. package/api/@xmachines/play-tanstack-solid-router/type-aliases/RoutableActor.md +8 -4
  312. package/api/@xmachines/play-tanstack-solid-router/type-aliases/TanStackRouterInstance.md +3 -3
  313. package/api/@xmachines/play-tanstack-solid-router/type-aliases/TanStackRouterLike.md +40 -18
  314. package/api/@xmachines/play-tanstack-solid-router/variables/PlayRouterProvider.md +33 -0
  315. package/api/@xmachines/play-vue/README.md +192 -210
  316. package/api/@xmachines/play-vue/functions/defineRegistry.md +32 -0
  317. package/api/@xmachines/play-vue/functions/getPlayViewContext.md +28 -0
  318. package/api/@xmachines/play-vue/functions/useActor.md +13 -0
  319. package/api/@xmachines/play-vue/functions/useBoundProp.md +45 -0
  320. package/api/@xmachines/play-vue/interfaces/ActionProviderProps.md +12 -0
  321. package/api/@xmachines/play-vue/interfaces/ActorProviderProps.md +25 -0
  322. package/api/@xmachines/play-vue/interfaces/ComponentContext.md +37 -0
  323. package/api/@xmachines/play-vue/interfaces/DefineRegistryResult.md +15 -0
  324. package/api/@xmachines/play-vue/interfaces/JSONUIProviderProps.md +21 -0
  325. package/api/@xmachines/play-vue/interfaces/PlayUIProviderProps.md +24 -0
  326. package/api/@xmachines/play-vue/interfaces/RendererProps.md +17 -0
  327. package/api/@xmachines/play-vue/interfaces/StateProviderProps.md +15 -0
  328. package/api/@xmachines/play-vue/interfaces/ValidationProviderProps.md +11 -0
  329. package/api/@xmachines/play-vue/interfaces/ViewContextValue.md +21 -0
  330. package/api/@xmachines/play-vue/interfaces/VisibilityProviderProps.md +5 -0
  331. package/api/@xmachines/play-vue/type-aliases/AnyPlayActor.md +11 -0
  332. package/api/@xmachines/play-vue/type-aliases/ComponentEntry.md +16 -0
  333. package/api/@xmachines/play-vue/type-aliases/ComponentFn.md +35 -0
  334. package/api/@xmachines/play-vue/type-aliases/ComponentsMap.md +15 -0
  335. package/api/@xmachines/play-vue/type-aliases/DefineRegistryOptions.md +22 -0
  336. package/api/@xmachines/play-vue/type-aliases/RenderErrorHandler.md +23 -0
  337. package/api/@xmachines/play-vue/variables/ActionProvider.md +64 -0
  338. package/api/@xmachines/play-vue/variables/JSONUIProvider.md +105 -0
  339. package/api/@xmachines/play-vue/variables/PlayRenderer.md +2 -2
  340. package/api/@xmachines/play-vue/variables/Renderer.md +88 -0
  341. package/api/@xmachines/play-vue/variables/StateProvider.md +79 -0
  342. package/api/@xmachines/play-vue/variables/ValidationProvider.md +55 -0
  343. package/api/@xmachines/play-vue/variables/VisibilityProvider.md +40 -0
  344. package/api/@xmachines/play-vue-router/README.md +173 -487
  345. package/api/@xmachines/play-vue-router/classes/RouteMap.md +56 -116
  346. package/api/@xmachines/play-vue-router/classes/VueRouterBridge.md +23 -271
  347. package/api/@xmachines/play-vue-router/functions/createRouteMap.md +26 -6
  348. package/api/@xmachines/play-vue-router/interfaces/PlayActor.md +68 -0
  349. package/api/@xmachines/play-vue-router/interfaces/PlayRouteEvent.md +22 -12
  350. package/api/@xmachines/play-vue-router/interfaces/RouteMapOptions.md +13 -0
  351. package/api/@xmachines/play-vue-router/interfaces/RouteMapping.md +20 -8
  352. package/api/@xmachines/play-vue-router/interfaces/RouterBridge.md +8 -8
  353. package/api/@xmachines/play-vue-router/type-aliases/RoutableActor.md +8 -4
  354. package/api/@xmachines/play-vue-router/variables/PlayRouterProvider.md +12 -6
  355. package/api/@xmachines/play-xstate/README.md +178 -347
  356. package/api/@xmachines/play-xstate/classes/PlayerActor.md +161 -191
  357. package/api/@xmachines/play-xstate/functions/buildRouteUrl.md +31 -20
  358. package/api/@xmachines/play-xstate/functions/composeGuards.md +2 -2
  359. package/api/@xmachines/play-xstate/functions/composeGuardsOr.md +2 -2
  360. package/api/@xmachines/play-xstate/functions/contextFieldMatches.md +38 -0
  361. package/api/@xmachines/play-xstate/functions/definePlayer.md +14 -63
  362. package/api/@xmachines/play-xstate/functions/deriveRoute.md +3 -3
  363. package/api/@xmachines/play-xstate/functions/eventMatches.md +2 -2
  364. package/api/@xmachines/play-xstate/functions/formatPlayRouteTransitions.md +3 -3
  365. package/api/@xmachines/play-xstate/functions/hasContext.md +2 -2
  366. package/api/@xmachines/play-xstate/functions/isAbsoluteRoute.md +2 -2
  367. package/api/@xmachines/play-xstate/functions/negateGuard.md +2 -2
  368. package/api/@xmachines/play-xstate/interfaces/PlayerConfig.md +10 -14
  369. package/api/@xmachines/play-xstate/interfaces/PlayerFactoryResumeOptions.md +22 -0
  370. package/api/@xmachines/play-xstate/interfaces/PlayerOptions.md +12 -13
  371. package/api/@xmachines/play-xstate/interfaces/RouteContext.md +15 -13
  372. package/api/@xmachines/play-xstate/interfaces/RouteObject.md +17 -0
  373. package/api/@xmachines/play-xstate/type-aliases/ComposedGuard.md +2 -2
  374. package/api/@xmachines/play-xstate/type-aliases/Guard.md +2 -2
  375. package/api/@xmachines/play-xstate/type-aliases/GuardArray.md +3 -3
  376. package/api/@xmachines/play-xstate/type-aliases/PlayerFactory.md +10 -9
  377. package/api/@xmachines/play-xstate/type-aliases/RouteMachineConfig.md +15 -5
  378. package/api/@xmachines/play-xstate/type-aliases/RouteMetadata.md +9 -0
  379. package/api/@xmachines/play-xstate/type-aliases/RouteStateNode.md +22 -6
  380. package/api/@xmachines/shared/README.md +95 -295
  381. package/api/@xmachines/shared/vite-aliases/README.md +11 -0
  382. package/api/@xmachines/shared/vite-aliases/functions/xmAliases.md +38 -0
  383. package/api/@xmachines/shared/vite-aliases/functions/xmCacheDir.md +27 -0
  384. package/api/@xmachines/shared/vite-aliases/functions/xmOptimizeDeps.md +30 -0
  385. package/api/@xmachines/shared/vite-aliases/functions/xmResolve.md +42 -0
  386. package/api/@xmachines/shared/vite-aliases/functions/xmSvelteRunes.md +33 -0
  387. package/api/@xmachines/shared/vitest/README.md +12 -0
  388. package/api/@xmachines/shared/vitest/functions/defineXmBrowserConfig.md +42 -0
  389. package/api/@xmachines/shared/vitest/functions/defineXmVitestConfig.md +34 -0
  390. package/api/@xmachines/shared/vitest/interfaces/XmBrowserConfigOptions.md +16 -0
  391. package/api/README.md +6 -7
  392. package/api/llms.txt +72 -23
  393. package/contributing/README.md +10 -0
  394. package/contributing/architecture.md +599 -0
  395. package/contributing/configuration.md +368 -0
  396. package/contributing/deployment.md +312 -0
  397. package/contributing/development.md +464 -0
  398. package/contributing/testing.md +453 -0
  399. package/examples/@xmachines/play-dom-demo/README.md +181 -0
  400. package/examples/@xmachines/play-dom-demo/functions/createNavBar.md +24 -0
  401. package/examples/@xmachines/play-dom-demo/functions/initShell.md +24 -0
  402. package/examples/@xmachines/play-dom-demo/type-aliases/AuthCatalog.md +9 -0
  403. package/examples/@xmachines/play-dom-demo/variables/About.md +12 -0
  404. package/examples/@xmachines/play-dom-demo/variables/Contact.md +12 -0
  405. package/examples/@xmachines/play-dom-demo/variables/Dashboard.md +13 -0
  406. package/examples/@xmachines/play-dom-demo/variables/Home.md +13 -0
  407. package/examples/@xmachines/play-dom-demo/variables/Login.md +13 -0
  408. package/examples/@xmachines/play-dom-demo/variables/NavBarView.md +16 -0
  409. package/examples/@xmachines/play-dom-demo/variables/Navigation.md +13 -0
  410. package/examples/@xmachines/play-dom-demo/variables/Overview.md +13 -0
  411. package/examples/@xmachines/play-dom-demo/variables/Profile.md +13 -0
  412. package/examples/@xmachines/play-dom-demo/variables/Settings.md +13 -0
  413. package/examples/@xmachines/play-dom-demo/variables/Stats.md +13 -0
  414. package/examples/@xmachines/play-dom-demo/variables/authCatalog.md +172 -0
  415. package/examples/@xmachines/play-dom-router-demo/README.md +145 -0
  416. package/examples/@xmachines/play-react-demo/README.md +187 -0
  417. package/examples/@xmachines/play-react-demo/functions/App.md +13 -0
  418. package/examples/@xmachines/play-react-demo/functions/DebugPanel.md +20 -0
  419. package/examples/@xmachines/play-react-demo/functions/HeaderNav.md +20 -0
  420. package/examples/@xmachines/play-react-demo/functions/Shell.md +22 -0
  421. package/examples/@xmachines/play-react-demo/type-aliases/AuthCatalog.md +9 -0
  422. package/examples/@xmachines/play-react-demo/variables/About.md +14 -0
  423. package/examples/@xmachines/play-react-demo/variables/Contact.md +14 -0
  424. package/examples/@xmachines/play-react-demo/variables/Dashboard.md +15 -0
  425. package/examples/@xmachines/play-react-demo/variables/DebugPanel.md +15 -0
  426. package/examples/@xmachines/play-react-demo/variables/Home.md +14 -0
  427. package/examples/@xmachines/play-react-demo/variables/Login.md +16 -0
  428. package/examples/@xmachines/play-react-demo/variables/NavBar.md +16 -0
  429. package/examples/@xmachines/play-react-demo/variables/NavBarView.md +15 -0
  430. package/examples/@xmachines/play-react-demo/variables/Navigation.md +14 -0
  431. package/examples/@xmachines/play-react-demo/variables/Overview.md +14 -0
  432. package/examples/@xmachines/play-react-demo/variables/Profile.md +14 -0
  433. package/examples/@xmachines/play-react-demo/variables/Settings.md +14 -0
  434. package/examples/@xmachines/play-react-demo/variables/Shell.md +18 -0
  435. package/examples/@xmachines/play-react-demo/variables/Stats.md +14 -0
  436. package/examples/@xmachines/play-react-demo/variables/authCatalog.md +172 -0
  437. package/examples/@xmachines/play-react-router-demo/README.md +151 -0
  438. package/examples/@xmachines/play-solid-demo/README.md +187 -0
  439. package/examples/@xmachines/play-solid-demo/functions/App.md +13 -0
  440. package/examples/@xmachines/play-solid-demo/functions/DebugPanel.md +20 -0
  441. package/examples/@xmachines/play-solid-demo/functions/HeaderNav.md +20 -0
  442. package/examples/@xmachines/play-solid-demo/functions/Shell.md +22 -0
  443. package/examples/@xmachines/play-solid-demo/type-aliases/AuthCatalog.md +9 -0
  444. package/examples/@xmachines/play-solid-demo/variables/About.md +9 -0
  445. package/examples/@xmachines/play-solid-demo/variables/Contact.md +9 -0
  446. package/examples/@xmachines/play-solid-demo/variables/Dashboard.md +9 -0
  447. package/examples/@xmachines/play-solid-demo/variables/DebugPanel.md +15 -0
  448. package/examples/@xmachines/play-solid-demo/variables/Home.md +9 -0
  449. package/examples/@xmachines/play-solid-demo/variables/Login.md +9 -0
  450. package/examples/@xmachines/play-solid-demo/variables/NavBar.md +11 -0
  451. package/examples/@xmachines/play-solid-demo/variables/NavBarView.md +15 -0
  452. package/examples/@xmachines/play-solid-demo/variables/Navigation.md +9 -0
  453. package/examples/@xmachines/play-solid-demo/variables/Overview.md +9 -0
  454. package/examples/@xmachines/play-solid-demo/variables/Profile.md +9 -0
  455. package/examples/@xmachines/play-solid-demo/variables/Settings.md +9 -0
  456. package/examples/@xmachines/play-solid-demo/variables/Shell.md +17 -0
  457. package/examples/@xmachines/play-solid-demo/variables/Stats.md +9 -0
  458. package/examples/@xmachines/play-solid-demo/variables/authCatalog.md +172 -0
  459. package/examples/@xmachines/play-solid-router-demo/README.md +137 -0
  460. package/examples/@xmachines/play-svelte-demo/README.md +143 -0
  461. package/examples/@xmachines/play-svelte-demo/type-aliases/App.md +9 -0
  462. package/examples/@xmachines/play-svelte-demo/type-aliases/AuthCatalog.md +9 -0
  463. package/examples/@xmachines/play-svelte-demo/variables/App.md +9 -0
  464. package/examples/@xmachines/play-svelte-demo/variables/authCatalog.md +172 -0
  465. package/examples/@xmachines/play-svelte-spa-router-demo/README.md +129 -0
  466. package/examples/@xmachines/play-sveltekit-router-demo/README.md +133 -0
  467. package/examples/@xmachines/play-tanstack-react-router-demo/README.md +156 -0
  468. package/examples/@xmachines/play-tanstack-solid-router-demo/README.md +139 -0
  469. package/examples/@xmachines/play-vue-demo/README.md +183 -0
  470. package/examples/@xmachines/play-vue-demo/type-aliases/AuthCatalog.md +9 -0
  471. package/examples/@xmachines/play-vue-demo/variables/App.md +9 -0
  472. package/examples/@xmachines/play-vue-demo/variables/authCatalog.md +172 -0
  473. package/examples/@xmachines/play-vue-router-demo/README.md +139 -0
  474. package/examples/README.md +78 -30
  475. package/examples/basic-state-machine.md +75 -31
  476. package/examples/form-validation.md +261 -118
  477. package/examples/multi-router-integration.md +314 -194
  478. package/examples/routing-patterns.md +230 -189
  479. package/examples/traffic-light.md +114 -65
  480. package/guides/README.md +9 -21
  481. package/guides/actor-model.md +180 -0
  482. package/guides/getting-started.md +619 -137
  483. package/guides/signals.md +166 -0
  484. package/guides/state-machines.md +284 -0
  485. package/package.json +18 -7
  486. package/rfc/broker.md +100 -0
  487. package/rfc/browser.md +44 -0
  488. package/rfc/cli.md +118 -0
  489. package/rfc/git.md +61 -0
  490. package/rfc/mcp.md +43 -0
  491. package/rfc/node.md +36 -0
  492. package/rfc/play.md +472 -0
  493. package/rfc/rest.md +102 -0
  494. package/rfc/run.md +159 -0
  495. package/rfc/streams.md +168 -0
  496. package/api/@xmachines/play-actor/interfaces/ViewMetadata.md +0 -17
  497. package/api/@xmachines/play-catalog/README.md +0 -331
  498. package/api/@xmachines/play-catalog/functions/defineCatalog.md +0 -98
  499. package/api/@xmachines/play-catalog/functions/defineComponents.md +0 -134
  500. package/api/@xmachines/play-catalog/type-aliases/Catalog.md +0 -48
  501. package/api/@xmachines/play-catalog/type-aliases/ComponentsFor.md +0 -20
  502. package/api/@xmachines/play-catalog/type-aliases/InferComponentProps.md +0 -65
  503. package/api/@xmachines/play-catalog/type-aliases/NoExtraKeys.md +0 -17
  504. package/api/@xmachines/play-react/interfaces/PlayRendererProps.md +0 -15
  505. package/api/@xmachines/play-react-router/functions/PlayRouterProvider.md +0 -19
  506. package/api/@xmachines/play-react-router-demo/README.md +0 -137
  507. package/api/@xmachines/play-router/classes/BaseRouteMap.md +0 -142
  508. package/api/@xmachines/play-router/functions/connectRouter.md +0 -67
  509. package/api/@xmachines/play-router/functions/crawlMachine.md +0 -92
  510. package/api/@xmachines/play-router/functions/createRouter.md +0 -76
  511. package/api/@xmachines/play-router/functions/extractRoute.md +0 -45
  512. package/api/@xmachines/play-router/interfaces/BaseRouteMapping.md +0 -27
  513. package/api/@xmachines/play-router/interfaces/BrowserHistory.md +0 -172
  514. package/api/@xmachines/play-router/interfaces/BrowserWindow.md +0 -69
  515. package/api/@xmachines/play-router/interfaces/ConnectRouterOptions.md +0 -13
  516. package/api/@xmachines/play-router/interfaces/RouteMap.md +0 -56
  517. package/api/@xmachines/play-router/interfaces/StateVisit.md +0 -15
  518. package/api/@xmachines/play-router/interfaces/VanillaRouter.md +0 -28
  519. package/api/@xmachines/play-router-demo/README.md +0 -137
  520. package/api/@xmachines/play-solid/interfaces/PlayRendererProps.md +0 -15
  521. package/api/@xmachines/play-solid-router/functions/PlayRouterProvider.md +0 -19
  522. package/api/@xmachines/play-solid-router-demo/README.md +0 -127
  523. package/api/@xmachines/play-tanstack-react-router/functions/PlayRouterProvider.md +0 -19
  524. package/api/@xmachines/play-tanstack-react-router/functions/extractParams.md +0 -38
  525. package/api/@xmachines/play-tanstack-react-router/functions/extractQueryParams.md +0 -33
  526. package/api/@xmachines/play-tanstack-react-router/variables/extractMachineRoutes.md +0 -64
  527. package/api/@xmachines/play-tanstack-react-router-demo/README.md +0 -126
  528. package/api/@xmachines/play-tanstack-solid-router/classes/SolidRouterBridge.md +0 -343
  529. package/api/@xmachines/play-tanstack-solid-router/functions/PlayRouterProvider.md +0 -19
  530. package/api/@xmachines/play-tanstack-solid-router-demo/README.md +0 -126
  531. package/api/@xmachines/play-vue/interfaces/PlayRendererProps.md +0 -14
  532. package/api/@xmachines/play-vue-router/classes/VueBaseRouteMap.md +0 -201
  533. package/api/@xmachines/play-vue-router-demo/README.md +0 -133
  534. package/api/@xmachines/play-xstate/functions/mergeViewProps.md +0 -26
  535. package/api/@xmachines/play-xstate/functions/stateMatches.md +0 -25
  536. package/api/@xmachines/play-xstate/functions/validateComponentBinding.md +0 -39
  537. package/api/@xmachines/play-xstate/functions/validateViewProps.md +0 -80
  538. package/api/@xmachines/play-xstate/interfaces/CatalogEntry.md +0 -16
  539. package/api/@xmachines/play-xstate/type-aliases/Catalog.md +0 -21
  540. package/api/@xmachines/play-xstate/type-aliases/ValidationResult.md +0 -17
  541. package/api/@xmachines/play-xstate/type-aliases/ViewMergeContext.md +0 -35
  542. package/api/@xmachines/shared/functions/defineXmVitestConfig.md +0 -29
  543. package/api/@xmachines/shared/functions/xmAliases.md +0 -24
  544. package/guides/installation.md +0 -323
@@ -1,4 +1,6 @@
1
- [Documentation](../../README.md) / @xmachines/play-tanstack-solid-router
1
+ [API](../../README.md) / @xmachines/play-tanstack-solid-router
2
+
3
+ <!-- generated-by: gsd-doc-writer -->
2
4
 
3
5
  # @xmachines/play-tanstack-solid-router
4
6
 
@@ -6,280 +8,318 @@
6
8
 
7
9
  Signals-native integration with TanStack Solid Router enabling logic-driven navigation through Solid.js reactivity.
8
10
 
9
- ## Overview
10
-
11
- `@xmachines/play-tanstack-solid-router` provides seamless integration between TanStack Solid Router and XMachines state machines. Built on Solid's reactive primitives, it implements the `RouterBridgeBase` pattern for bidirectional synchronization while remaining framework-swappable.
12
-
13
- Per [RFC Play v1](https://gitlab.com/xmachin-es/rfc/-/blob/main/src/play-v1.md), this package implements:
11
+ Part of the [xmachines-js](../../README.md) monorepo.
14
12
 
15
- - **Actor Authority (INV-01):** State machine controls navigation, router reflects decisions
16
- - **Passive Infrastructure (INV-04):** Router observes `actor.currentRoute` signal
17
- - **Signal-Only Reactivity (INV-05):** `createEffect` synchronizes URL with actor state
18
-
19
- **Key Benefits:**
13
+ ## Overview
20
14
 
21
- - **Signals-native:** Zero adaptation layer between Solid signals and TC39 Signals
22
- - **Bridge-first:** Extends shared `RouterBridgeBase` policy used by other adapters
23
- - **Automatic tracking:** `createEffect` handles dependency tracking (no manual Watcher setup needed for the bridge)
24
- - **Logic-driven navigation:** Business logic in state machines, not components
25
- - **Type-safe parameters:** Route params flow through state machine context
15
+ [`@xmachines/play-tanstack-solid-router`](README.md) connects a Play actor to TanStack Solid Router through `TanStackSolidRouterBridge`.
26
16
 
27
- **Framework Compatibility:**
17
+ The bridge extends `RouterBridgeBase` from [`@xmachines/play-router`](../play-router/README.md), keeping adapter behavior consistent across frameworks:
28
18
 
29
- - TanStack Solid Router 1.100.0+
30
- - SolidJS 1.8.0+
31
- - TC39 Signals polyfill integration
19
+ - Actor route signal (`actor.currentRoute`) drives router navigation.
20
+ - Router history events send `play.route` intents back to the actor.
21
+ - Guarded state transitions remain actor-owned (Actor Authority).
22
+ - Circular update prevention built into `RouterBridgeBase`.
32
23
 
33
24
  ## Installation
34
25
 
35
26
  ```bash
36
- npm install @tanstack/solid-router@^1.108.0 solid-js@^1.8.0 @xmachines/play-tanstack-solid-router @xmachines/play-solid
27
+ pnpm add @tanstack/solid-router solid-js
28
+ pnpm add @xmachines/play-tanstack-solid-router @xmachines/play-router
37
29
  ```
38
30
 
39
31
  **Peer dependencies:**
40
32
 
41
- - `@tanstack/solid-router` ^1.108.0 - TanStack Solid Router library
42
- - `solid-js` ^1.8.0 - SolidJS runtime
43
- - `@xmachines/play-solid` - Solid renderer (`PlayRenderer`)
44
- - `@xmachines/play-actor` - Actor base
45
- - `@xmachines/play-router` - Route extraction
46
- - `@xmachines/play-signals` - TC39 Signals polyfill
33
+ - `@tanstack/solid-router` `^1.168.7`
34
+ - `solid-js` `^1.8.0`
35
+ - `xstate` `^5.31.0`
36
+
37
+ ## Current Exports
38
+
39
+ - `TanStackSolidRouterBridge` — primary adapter class
40
+ - `PlayRouterProvider` — Solid component wrapper for bridge lifecycle
41
+ - `PlayRouterProviderProps`, `TanStackRouterInstance` (types)
42
+ - `PlayActor` — canonical actor shape (`AbstractActor & Routable & Viewable`) from `@xmachines/play-router`; use when constructing a typed renderer callback for `PlayRouterProvider`
43
+ - `RoutableActor` — deprecated alias for `PlayActor`; use `PlayActor` from `@xmachines/play-router` instead
44
+ - `RouteMap`, `createRouteMap`, `RouteMapping`, `RouteMapOptions` (re-exported from `@xmachines/play-router`)
45
+ - `TanStackRouterLike` (type)
46
+ - `RouterBridge`, `PlayRouteEvent` (types)
47
+
48
+ ## URLPattern Support
49
+
50
+ This package uses the [URLPattern API](https://developer.mozilla.org/en-US/docs/Web/API/URLPattern) for route pattern matching via [`@xmachines/play-router`](../play-router/README.md).
51
+
52
+ URLPattern is available natively on Node.js 24+ and modern browsers (Chrome 95+, Firefox 117+, Safari 16.4+). On older environments, load a polyfill **before** importing this package — see [`@xmachines/play-router`](../play-router/README.md) for details.
47
53
 
48
54
  ## Quick Start
49
55
 
50
56
  ```tsx
51
- import { Router, createRouter } from "@tanstack/solid-router";
52
- import { PlayTanStackRouterProvider, createRouteMap } from "@xmachines/play-tanstack-solid-router";
53
- import { PlayRenderer } from "@xmachines/play-solid";
57
+ import { createRouter } from "@tanstack/solid-router";
54
58
  import { definePlayer } from "@xmachines/play-xstate";
55
- import { routeTree as routerRouteTree } from "./routeTree.gen"; // from TanStack
56
-
57
- function App() {
58
- // 1. Create player with state machine
59
- const createPlayer = definePlayer({
60
- machine: authMachine,
61
- catalog: componentCatalog,
62
- });
63
- const actor = createPlayer();
64
- actor.start();
65
-
66
- // 2. Create TanStack router instance
67
- const router = createRouter({ routeTree: routerRouteTree });
68
-
69
- // 3. Create route mapping from machine routes
70
- const routeMap = createRouteMap(authMachine);
71
-
72
- return (
73
- // 4. Wrap with provider to sync actor and router
74
- <PlayTanStackRouterProvider
75
- actor={actor}
76
- router={router}
77
- routeMap={routeMap}
78
- renderer={(currentActor, currentRouter) => (
79
- <Router router={currentRouter}>
80
- <PlayRenderer actor={currentActor} components={components} />
81
- </Router>
82
- )}
83
- />
84
- );
85
- }
86
- ```
87
-
88
- ## API Reference
59
+ import { extractMachineRoutes } from "@xmachines/play-router";
60
+ import { TanStackSolidRouterBridge, createRouteMap } from "@xmachines/play-tanstack-solid-router";
89
61
 
90
- ### `SolidRouterBridge`
62
+ const routeMap = createRouteMap(machine);
63
+ const router = createRouter({ routeTree: tanstackRouteTree });
91
64
 
92
- Router adapter implementing the `RouterBridge` protocol for TanStack Solid Router.
65
+ const actor = definePlayer({ machine })();
66
+ actor.start();
93
67
 
94
- **Type Signature:**
68
+ const bridge = new TanStackSolidRouterBridge(router, actor, routeMap);
69
+ bridge.connect();
95
70
 
96
- ```typescript
97
- class SolidRouterBridge {
98
- constructor(router: Router, actor: AbstractActor<any>, routeMap: RouteMap);
99
- dispose(): void;
100
- }
71
+ // later
72
+ bridge.disconnect();
101
73
  ```
102
74
 
103
- **Constructor Parameters:**
104
-
105
- - `router` - TanStack Solid Router instance
106
- - `actor` - XMachines actor instance
107
- - `routeMap` - Bidirectional state ID ↔ path mapping
108
-
109
- **Methods:**
75
+ ### Solid convenience wrapper
110
76
 
111
- - `connect()` - Start bidirectional synchronization.
112
- - `disconnect()` - Stop synchronization and cleanup bridge resources.
113
- - `dispose()` - Alias of `disconnect()`.
77
+ Use `PlayRouterProvider` when you want bridge lifecycle wiring managed by a component:
114
78
 
115
- **Internal Behavior:**
79
+ ```tsx
80
+ import { PlayRouterProvider } from "@xmachines/play-tanstack-solid-router";
81
+ import { RouterProvider } from "@tanstack/solid-router";
82
+
83
+ <PlayRouterProvider
84
+ actor={actor}
85
+ router={router}
86
+ routeMap={routeMap}
87
+ renderer={(currentActor, currentRouter) => (
88
+ <RouterProvider router={currentRouter}>{/* your app here */}</RouterProvider>
89
+ )}
90
+ />;
91
+ ```
116
92
 
117
- - Uses `RouterBridgeBase` TC39 watcher lifecycle for actor→router synchronization
118
- - Updates TanStack Router via `router.navigate({ to: path })` when actor state changes
119
- - Uses `router.subscribe` to watch history navigation events
120
- - Sends `play.route` events to actor when user navigates
93
+ ## API
121
94
 
122
- ### `PlayTanStackRouterProvider`
95
+ ### `TanStackSolidRouterBridge`
123
96
 
124
- A Solid component that automatically sets up, connects, and tears down the `SolidRouterBridge` using Solid's lifecycle.
97
+ Primary adapter class extending `RouterBridgeBase`.
125
98
 
126
- ```tsx
127
- interface PlayTanStackRouterProviderProps {
128
- actor: AbstractActor<any>;
129
- router: Router;
130
- routeMap: RouteMap;
131
- renderer: (actor: AbstractActor<any>, router: Router) => JSX.Element;
99
+ ```ts
100
+ class TanStackSolidRouterBridge {
101
+ constructor(router: TanStackRouterLike, actor: RoutableActor, routeMap: RouteMap);
102
+ connect(): void;
103
+ disconnect(): void;
104
+ dispose(): void; // alias for disconnect()
132
105
  }
133
106
  ```
134
107
 
135
- **Props:**
108
+ **Behavior:**
136
109
 
137
- - `actor` - The XMachines player actor
138
- - `router` - The TanStack Solid Router instance
139
- - `routeMap` - Mapping between paths and state IDs
140
- - `renderer` - A render prop function that receives the active actor and router
110
+ - `connect()` — subscribes to `router.history`, performs initial deep-link sync from `router.history.location`, and starts watching `actor.currentRoute` for state-driven navigation.
111
+ - `disconnect()` unsubscribes from history and stops all sync.
112
+ - Navigates via `router.navigate({ to: path })`.
113
+ - Subscribes via `router.history.subscribe` covers PUSH, POP, BACK, FORWARD, REPLACE, and GO, and works without `<RouterProvider>` mounted.
141
114
 
142
- **Behavior:**
115
+ ### `PlayRouterProvider`
143
116
 
144
- 1. Instantiates `SolidRouterBridge` on mount
145
- 2. Calls `bridge.connect()`
146
- 3. Renders the content returned by the `renderer` function
147
- 4. Calls `bridge.disconnect()` when the component unmounts via `onCleanup`
117
+ Solid component that instantiates, connects, and cleans up a `TanStackSolidRouterBridge` automatically.
148
118
 
149
- ### `createRouteMap()`
119
+ ```ts
120
+ interface PlayRouterProviderProps<TActor extends PlayActor = PlayActor> {
121
+ /** The actor to sync with TanStack Solid Router. */
122
+ actor: TActor;
123
+ /** The TanStack Router instance returned by `createRouter`. */
124
+ router: TanStackRouterInstance;
125
+ /** Bidirectional route map for state ID ↔ URL path lookups. */
126
+ routeMap: RouteMap;
127
+ /** Renderer callback receives the same concrete actor type that was passed in. */
128
+ renderer: (actor: TActor, router: TanStackRouterInstance) => JSX.Element;
129
+ }
130
+ ```
150
131
 
151
- Helper to build a `RouteMap` instance directly from an XState machine.
132
+ The bridge is created synchronously at component evaluation time (Solid's execution model) and torn down via `onCleanup` when the component is disposed.
152
133
 
153
- **Signature:**
134
+ ### `RouteMap` and `createRouteMap`
154
135
 
155
- ```typescript
156
- function createRouteMap(machine: AnyStateMachine): RouteMap;
157
- ```
136
+ Map state IDs to URL paths and resolve URLs back to state IDs.
158
137
 
159
- **Usage:**
138
+ ```ts
139
+ const routeMap = new RouteMap([
140
+ { stateId: "home", path: "/" },
141
+ { stateId: "profile", path: "/profile/:userId" },
142
+ { stateId: "settings", path: "/settings/:section?" },
143
+ ]);
160
144
 
161
- ```typescript
162
- import { createRouteMap } from "@xmachines/play-tanstack-solid-router";
145
+ routeMap.getStateIdByPath("/profile/123"); // "profile"
146
+ routeMap.getPathByStateId("home"); // "/"
147
+ routeMap.getStateIdByPath("/unknown"); // null
163
148
 
149
+ // Or build from a machine directly:
150
+ import { createRouteMap } from "@xmachines/play-tanstack-solid-router";
164
151
  const routeMap = createRouteMap(machine);
165
152
  ```
166
153
 
154
+ `getStateIdByPath` returns `null` (not `undefined`) for unmatched paths.
155
+
167
156
  ## Usage Patterns
168
157
 
169
158
  ### Dynamic Routes with Parameters
170
159
 
171
- TanStack Router and URLPattern (used internally) support dynamic route matching syntax:
160
+ ```ts
161
+ const routeMap = new RouteMap([
162
+ { stateId: "post", path: "/users/:userId/posts/:postId" },
163
+ { stateId: "settings", path: "/settings/:section?" },
164
+ ]);
165
+
166
+ // Params are extracted and forwarded in the play.route event:
167
+ // { type: "play.route", to: "#post", params: { userId: "123", postId: "456" }, query: {} }
168
+ ```
169
+
170
+ ### Protected Routes and Guards
171
+
172
+ Auth guards live entirely inside the state machine, preventing flashes of unauthorized content:
172
173
 
173
- ```typescript
174
- // Machine configuration
174
+ ```ts
175
175
  const machineConfig = {
176
176
  states: {
177
- profile: {
178
- meta: {
179
- route: "/profile/:userId",
180
- view: { component: "Profile" },
177
+ dashboard: {
178
+ meta: { route: "/dashboard" },
179
+ always: {
180
+ guard: ({ context }) => !context.isAuthenticated,
181
+ target: "login",
181
182
  },
182
183
  },
183
184
  },
184
185
  };
185
-
186
- // Route mapping will natively support URLPattern parameters
187
- routeMap.getStateIdByPath("/profile/123"); // → '#profile'
188
186
  ```
189
187
 
190
- ### Protected Routes and Guards
188
+ When a user navigates to `/dashboard` while unauthenticated:
191
189
 
192
- With XMachines, auth guards are handled entirely inside the state machine, preventing flashes of unauthorized content.
190
+ 1. TanStack Router updates location.
191
+ 2. Bridge intercepts and sends `play.route` to the actor.
192
+ 3. Actor evaluates the guard — denies transition, moves to `login` instead.
193
+ 4. Bridge observes new actor route (`/login`).
194
+ 5. Bridge calls `router.navigate({ to: "/login" })`.
193
195
 
194
- ```typescript
195
- // Machine side
196
- dashboard: {
197
- meta: { route: "/dashboard", view: { component: "Dashboard" } },
198
- always: {
199
- guard: ({ context }) => !context.isAuthenticated,
200
- target: "login"
201
- }
202
- }
203
- ```
196
+ ### Full App Example
204
197
 
205
- When a user navigates to `/dashboard`:
198
+ ```tsx
199
+ import { createRouter, RouterProvider, createRootRoute, createRoute } from "@tanstack/solid-router";
200
+ import { onCleanup } from "solid-js";
201
+ import { PlayRouterProvider, createRouteMap } from "@xmachines/play-tanstack-solid-router";
202
+ import { definePlayer } from "@xmachines/play-xstate";
203
+ import { extractMachineRoutes, getRoutableRoutes } from "@xmachines/play-router";
204
+
205
+ const createPlayer = definePlayer({ machine: authMachine });
206
+ const actor = createPlayer();
207
+ actor.start();
208
+
209
+ const routeMap = createRouteMap(authMachine);
210
+ const routeTree = extractMachineRoutes(authMachine);
211
+ const routes = getRoutableRoutes(routeTree);
212
+
213
+ const rootRoute = createRootRoute({
214
+ component: () => {
215
+ onCleanup(() => actor.stop());
216
+ return (
217
+ <PlayRouterProvider
218
+ actor={actor}
219
+ router={router}
220
+ routeMap={routeMap}
221
+ renderer={(currentActor, currentRouter) => (
222
+ /* your shell/renderer here */
223
+ <div />
224
+ )}
225
+ />
226
+ );
227
+ },
228
+ });
206
229
 
207
- 1. TanStack Router updates location
208
- 2. Bridge intercepts and sends `play.route`
209
- 3. Actor evaluates guard -> denies target, transitions to `login` instead
210
- 4. Bridge observes new actor state (`/login`)
211
- 5. Bridge tells TanStack Router to redirect to `/login`
230
+ const tanstackRoutes = routes.map((route) =>
231
+ createRoute({
232
+ getParentRoute: () => rootRoute,
233
+ path: route.fullPath.replace(/:(\w+)/g, "$$$1"),
234
+ component: () => null,
235
+ }),
236
+ );
212
237
 
213
- ## Circular Update Prevention
238
+ export const router = createRouter({ routeTree: rootRoute.addChildren(tanstackRoutes) });
214
239
 
215
- The `RouterBridgeBase` architecture prevents infinite loops between router and actor using two mechanisms:
240
+ export default function App() {
241
+ return <RouterProvider router={router} />;
242
+ }
243
+ ```
216
244
 
217
- 1. **`lastSyncedPath` tracking:** Stores the last synchronized path to prevent redundant navigations back to the identical location.
218
- 2. **`isProcessingNavigation` flag:** Set during a router event, preventing the router from immediately reacting to the actor's synchronous state update.
245
+ ## Architecture
219
246
 
220
- ## Comparison with @solidjs/router Adapter
247
+ Bridge-first data flow:
221
248
 
222
- | Aspect | @solidjs/router Adapter | @tanstack/solid-router Adapter |
223
- | ----------------- | -------------------------------- | ------------------------------- |
224
- | **Router API** | `navigate(path)` | `router.navigate({ to })` |
225
- | **Setup Context** | Must be _inside_ Router context | Can wrap Router instance |
226
- | **State Source** | Uses Solid hooks (`useLocation`) | Subscribes to `router` directly |
227
- | **Reacting** | `createEffect` on location | `router.subscribe` callback |
249
+ 1. `RouterBridgeBase.connect()` performs initial actor/router synchronization — both pathname and query string from `router.history.location` are forwarded to the actor on first connect.
250
+ 2. Actor route updates (`actor.currentRoute` signal) call TanStack navigation (`router.navigate({ to })`).
251
+ 3. TanStack history updates are subscribed and translated to `play.route` events sent to the actor.
252
+ 4. Actor guards accept or reject transitions; infrastructure reflects resulting state.
228
253
 
229
- ## Architecture
254
+ This keeps routing infrastructure passive while preserving business-logic control in the state machine.
230
255
 
231
- This package implements standard Play invariants:
256
+ ## Testing
232
257
 
233
- ### INV-01: Actor Authority
258
+ Run tests for this package in isolation:
234
259
 
235
- State machine has final authority over all transitions. TanStack Router navigation triggers actor events (`play.route`), but the actor's guards and transitions ultimately dictate if the view changes.
260
+ ```bash
261
+ pnpm --filter @xmachines/play-tanstack-solid-router test
262
+ ```
236
263
 
237
- ### INV-02: Passive Infrastructure
264
+ Or from the package directory:
238
265
 
239
- Infrastructure reflects actor state. The router observes `actor.currentRoute` and updates the browser URL, never storing independent business state.
266
+ ```bash
267
+ pnpm test
268
+ ```
240
269
 
241
- ### Cleanup Contract
270
+ **Browser tests** (`test/browser/**/*.browser.test.ts`) run against real Chromium via Playwright, covering async sequencing that jsdom cannot faithfully reproduce: BACK/FORWARD navigation via `router.history.subscribe`, echo suppression under real microtask timing, `navigate({ to })` call verification, and subscriber teardown on `disconnect()` and `dispose()`.
242
271
 
243
- The bridge implements an explicit `dispose()`/`disconnect()` method. `PlayTanStackRouterProvider` wires this automatically to Solid's `onCleanup` hook to prevent memory leaks and duplicate bridge subscriptions in hot-reloading scenarios.
272
+ ```bash
273
+ # Run browser tests only
274
+ pnpm exec vitest --config vitest.browser.config.ts --project play-tanstack-solid-router-browser
275
+ ```
244
276
 
245
- ## URLPattern Support
277
+ Coverage thresholds: lines 80%, functions 80%, branches 70%, statements 80%.
246
278
 
247
- This package uses the [URLPattern API](https://developer.mozilla.org/en-US/docs/Web/API/URLPattern) for robust route pattern matching via `@xmachines/play-router`.
279
+ ## Related Packages
248
280
 
249
- URLPattern is available natively on Node.js 24+ and modern browsers (Chrome 95+, Firefox 117+, Safari 16.4+). On older environments, load a polyfill **before** importing this package — see [`@xmachines/play-router` installation](../play-router/README.md) for details.
281
+ - [@xmachines/play-router](../play-router/README.md) core router primitives and `RouterBridgeBase`
282
+ - [@xmachines/play-tanstack-react-router](../play-tanstack-react-router/README.md) — TanStack Router (React) equivalent
283
+ - [@xmachines/play-solid](../play-solid/README.md) — SolidJS renderer
284
+ - [@xmachines/play-solid-router](../play-solid-router/README.md) — native `@solidjs/router` adapter
285
+ - [@xmachines/play-xstate](../play-xstate/README.md) — XState v5 player factory
250
286
 
251
- ## Related Packages
287
+ ## Learn More
252
288
 
253
- - **[@xmachines/play-solid](../play-solid/README.md)** - SolidJS renderer
254
- - **[@xmachines/play-router](../play-router/README.md)** - Core router primitives
255
- - **[@xmachines/play-solid-router](../play-solid-router/README.md)** - Native SolidJS Router equivalent
289
+ - [Demo](../../../examples/@xmachines/play-tanstack-solid-router-demo/README.md)
290
+ - [SolidJS renderer](../play-solid/README.md)
256
291
 
257
292
  ## License
258
293
 
259
- Copyright (c) 2016 [Mikael Karon](mailto:mikael@karon.se). All rights reserved.
260
-
261
- This work is licensed under the terms of the MIT license.
262
- For a copy, see <https://opensource.org/licenses/MIT>.
294
+ MIT see [LICENSE](LICENSE).
263
295
 
264
296
  ## Classes
265
297
 
266
298
  - [RouteMap](classes/RouteMap.md)
267
- - [SolidRouterBridge](classes/SolidRouterBridge.md)
299
+ - [TanStackSolidRouterBridge](classes/TanStackSolidRouterBridge.md)
268
300
 
269
301
  ## Interfaces
270
302
 
303
+ - [PlayActor](interfaces/PlayActor.md)
271
304
  - [PlayRouteEvent](interfaces/PlayRouteEvent.md)
305
+ - [PlayRouterProviderBaseProps](interfaces/PlayRouterProviderBaseProps.md)
272
306
  - [PlayRouterProviderProps](interfaces/PlayRouterProviderProps.md)
307
+ - [RouteMapOptions](interfaces/RouteMapOptions.md)
273
308
  - [RouteMapping](interfaces/RouteMapping.md)
274
309
  - [RouterBridge](interfaces/RouterBridge.md)
275
310
 
276
311
  ## Type Aliases
277
312
 
278
- - [RoutableActor](type-aliases/RoutableActor.md)
313
+ - [PlayRouterBridgeConstructor](type-aliases/PlayRouterBridgeConstructor.md)
314
+ - [~~RoutableActor~~](type-aliases/RoutableActor.md)
279
315
  - [TanStackRouterInstance](type-aliases/TanStackRouterInstance.md)
280
316
  - [TanStackRouterLike](type-aliases/TanStackRouterLike.md)
281
317
 
318
+ ## Variables
319
+
320
+ - [PlayRouterProvider](variables/PlayRouterProvider.md)
321
+
282
322
  ## Functions
283
323
 
324
+ - [createPlayRouterProvider](functions/createPlayRouterProvider.md)
284
325
  - [createRouteMap](functions/createRouteMap.md)
285
- - [PlayRouterProvider](functions/PlayRouterProvider.md)
@@ -1,32 +1,40 @@
1
- [Documentation](../../../README.md) / [@xmachines/play-tanstack-solid-router](../README.md) / RouteMap
1
+ [API](../../../README.md) / [@xmachines/play-tanstack-solid-router](../README.md) / RouteMap
2
2
 
3
3
  # Class: RouteMap
4
4
 
5
- Defined in: [play-tanstack-solid-router/src/route-map.ts:26](https://gitlab.com/xmachin-es/xmachines-js/-/blob/00a28432ed57807112288436d1ae4387d9f06919/packages/play-tanstack-solid-router/src/route-map.ts#L26)
5
+ Defined in: [play-router/src/base-route-map.ts:101](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0/packages/play-router/src/base-route-map.ts#L101)
6
6
 
7
7
  Shared bidirectional route map base class.
8
8
 
9
- All framework adapter `RouteMap` classes extend this — they add no logic of their
9
+ All framework adapters use this class as their route map — they add no logic of their
10
10
  own and inherit the full public API from here.
11
11
 
12
12
  **Lookup strategy:**
13
13
 
14
14
  - Static paths (no `:param`) → O(1) `Map` lookup
15
- - Dynamic paths → O(k) bucket-indexed scan using `RegExp`, where `k` is the number
15
+ - Dynamic paths → O(k) bucket-indexed scan using `URLPattern`, where `k` is the number
16
16
  of routes sharing the same first path segment
17
- - Results are cached after the first match
17
+ - Results are cached after the first match in an LRU cache (default 500 entries,
18
+ configurable via the `cacheSize` constructor option)
18
19
 
19
- **Pattern syntax** (`:param` / `:param?`):
20
+ **Pattern syntax** (`:param` / `:param?` / `*`):
20
21
 
21
22
  - `:param` — required segment, matches exactly one non-`/` segment
22
23
  - `:param?` — optional segment, matches zero or one non-`/` segment
24
+ - `*` — wildcard, matches any number of segments (URLPattern semantics)
25
+
26
+ **StateId forms:** stateIds may be registered and looked up in either
27
+ `"#stateId"` or `"stateId"` form — `RouteMap` canonicalizes internally.
28
+ `getStateIdByPath` returns the stateId exactly as registered;
29
+ `getPathByStateId` accepts both forms. Registering the same stateId in both
30
+ forms refers to one entry (the later registration wins for reverse lookup).
23
31
 
24
32
  ## Example
25
33
 
26
34
  ```typescript
27
- import { BaseRouteMap } from "@xmachines/play-router";
35
+ import { RouteMap } from "@xmachines/play-router";
28
36
 
29
- const map = new BaseRouteMap([
37
+ const map = new RouteMap([
30
38
  { stateId: "home", path: "/" },
31
39
  { stateId: "profile", path: "/profile/:userId" },
32
40
  { stateId: "settings", path: "/settings/:section?" },
@@ -41,40 +49,34 @@ map.getPathByStateId("profile"); // "/profile/:userId"
41
49
  map.getPathByStateId("missing"); // null
42
50
  ```
43
51
 
44
- ## Extends
45
-
46
- - [`BaseRouteMap`](../../play-router/classes/BaseRouteMap.md)
47
-
48
52
  ## Constructors
49
53
 
50
54
  ### Constructor
51
55
 
52
56
  ```ts
53
- new RouteMap(mappings): RouteMap;
57
+ new RouteMap(mappings, options?): RouteMap;
54
58
  ```
55
59
 
56
- Defined in: play-router/dist/base-route-map.d.ts:81
60
+ Defined in: [play-router/src/base-route-map.ts:127](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0/packages/play-router/src/base-route-map.ts#L127)
57
61
 
58
62
  Build a route map from an array of state ID ↔ path mappings.
59
63
 
60
64
  Static paths (no `:param`) are indexed in an O(1) `Map`.
61
- Parameterized paths are compiled to `RegExp` and grouped into first-segment
65
+ Parameterized paths are compiled to `URLPattern` and grouped into first-segment
62
66
  buckets for efficient candidate selection.
63
67
 
64
68
  #### Parameters
65
69
 
66
- | Parameter | Type | Description |
67
- | ---------- | ------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------- |
68
- | `mappings` | [`BaseRouteMapping`](../../play-router/interfaces/BaseRouteMapping.md)[] | Array of `{ stateId, path }` entries. Order determines priority when multiple patterns could match the same path. |
70
+ | Parameter | Type | Description |
71
+ | -------------------- | ------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
72
+ | `mappings` | [`RouteMapping`](../interfaces/RouteMapping.md)[] | Array of `{ stateId, path }` entries. Order determines priority when multiple patterns could match the same path. |
73
+ | `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). |
74
+ | `options.cacheSize?` | `number` | - |
69
75
 
70
76
  #### Returns
71
77
 
72
78
  `RouteMap`
73
79
 
74
- #### Inherited from
75
-
76
- [`BaseRouteMap`](../../play-router/classes/BaseRouteMap.md).[`constructor`](../../play-router/classes/BaseRouteMap.md#constructor)
77
-
78
80
  ## Methods
79
81
 
80
82
  ### getPathByStateId()
@@ -83,10 +85,14 @@ buckets for efficient candidate selection.
83
85
  getPathByStateId(stateId): string | null;
84
86
  ```
85
87
 
86
- Defined in: play-router/dist/base-route-map.d.ts:111
88
+ Defined in: [play-router/src/base-route-map.ts:218](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0/packages/play-router/src/base-route-map.ts#L218)
87
89
 
88
90
  Look up the path pattern registered for a state ID.
89
91
 
92
+ Accepts the stateId in either `"#stateId"` or `"stateId"` form regardless of
93
+ which form was used at registration — lookups are canonicalized internally,
94
+ so consumers never need to try both forms.
95
+
90
96
  #### Parameters
91
97
 
92
98
  | Parameter | Type | Description |
@@ -103,13 +109,10 @@ The registered path pattern, or `null` if the state ID is unknown
103
109
 
104
110
  ```typescript
105
111
  map.getPathByStateId("profile"); // "/profile/:userId"
112
+ map.getPathByStateId("#profile"); // "/profile/:userId" (same entry)
106
113
  map.getPathByStateId("missing"); // null
107
114
  ```
108
115
 
109
- #### Inherited from
110
-
111
- [`BaseRouteMap`](../../play-router/classes/BaseRouteMap.md).[`getPathByStateId`](../../play-router/classes/BaseRouteMap.md#getpathbystateid)
112
-
113
116
  ---
114
117
 
115
118
  ### getStateIdByPath()
@@ -118,7 +121,7 @@ map.getPathByStateId("missing"); // null
118
121
  getStateIdByPath(path): string | null;
119
122
  ```
120
123
 
121
- Defined in: play-router/dist/base-route-map.d.ts:98
124
+ Defined in: [play-router/src/base-route-map.ts:178](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0/packages/play-router/src/base-route-map.ts#L178)
122
125
 
123
126
  Resolve a URL path to its mapped state ID.
124
127
 
@@ -144,7 +147,3 @@ The mapped state ID, or `null` if no route matches
144
147
  map.getStateIdByPath("/profile/123"); // "profile"
145
148
  map.getStateIdByPath("/unknown"); // null
146
149
  ```
147
-
148
- #### Inherited from
149
-
150
- [`BaseRouteMap`](../../play-router/classes/BaseRouteMap.md).[`getStateIdByPath`](../../play-router/classes/BaseRouteMap.md#getstateidbypath)