@xmachines/docs 1.0.0-beta.9 → 1.1.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 +135 -7
  2. package/api/@xmachines/play/README.md +159 -39
  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 +153 -160
  8. package/api/@xmachines/play-actor/classes/AbstractActor.md +106 -121
  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 +385 -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 +272 -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 -333
  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 -115
  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 -352
  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 +117 -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 -233
  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 -559
  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 +99 -114
  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 +270 -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 +197 -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 +212 -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 -125
  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 +61 -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 +216 -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 +190 -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 -486
  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 +203 -354
  356. package/api/@xmachines/play-xstate/classes/PlayerActor.md +195 -201
  357. package/api/@xmachines/play-xstate/functions/buildRouteUrl.md +24 -20
  358. package/api/@xmachines/play-xstate/functions/composeGuards.md +8 -3
  359. package/api/@xmachines/play-xstate/functions/composeGuardsOr.md +8 -3
  360. package/api/@xmachines/play-xstate/functions/contextFieldMatches.md +43 -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 +8 -3
  364. package/api/@xmachines/play-xstate/functions/formatPlayRouteTransitions.md +3 -3
  365. package/api/@xmachines/play-xstate/functions/hasContext.md +8 -5
  366. package/api/@xmachines/play-xstate/functions/isAbsoluteRoute.md +2 -2
  367. package/api/@xmachines/play-xstate/functions/negateGuard.md +8 -3
  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 +14 -16
  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 +8 -3
  374. package/api/@xmachines/play-xstate/type-aliases/Guard.md +8 -6
  375. package/api/@xmachines/play-xstate/type-aliases/GuardArray.md +9 -7
  376. package/api/@xmachines/play-xstate/type-aliases/PlayerFactory.md +15 -18
  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 +35 -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 +601 -0
  395. package/contributing/configuration.md +368 -0
  396. package/contributing/deployment.md +333 -0
  397. package/contributing/development.md +503 -0
  398. package/contributing/testing.md +461 -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 +25 -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 +16 -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 +19 -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 +17 -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 +18 -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 +73 -31
  476. package/examples/form-validation.md +259 -118
  477. package/examples/multi-router-integration.md +312 -194
  478. package/examples/routing-patterns.md +228 -189
  479. package/examples/traffic-light.md +112 -65
  480. package/guides/README.md +7 -21
  481. package/guides/actor-model.md +180 -0
  482. package/guides/getting-started.md +627 -137
  483. package/guides/signals.md +166 -0
  484. package/guides/state-machines.md +284 -0
  485. package/package.json +21 -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,285 +1,326 @@
1
- [Documentation](../../README.md) / @xmachines/play-tanstack-solid-router
1
+ [API](../../README.md) / @xmachines/play-tanstack-solid-router
2
2
 
3
3
  # @xmachines/play-tanstack-solid-router
4
4
 
5
5
  **TanStack Solid Router adapter for XMachines Universal Player Architecture**
6
6
 
7
- Signals-native integration with TanStack Solid Router enabling logic-driven navigation through Solid.js reactivity.
8
-
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.
7
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
8
+ [![Version](https://img.shields.io/badge/version-1.1.0-blue)](https://www.npmjs.com/package/@xmachines/play-tanstack-solid-router)
12
9
 
13
- Per [RFC Play v1](https://gitlab.com/xmachin-es/rfc/-/blob/main/src/play-v1.md), this package implements:
10
+ Signals-native integration with TanStack Solid Router enabling logic-driven navigation through Solid.js reactivity.
14
11
 
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
12
+ Part of the [xmachines-js](../../README.md) monorepo.
18
13
 
19
- **Key Benefits:**
14
+ ## Overview
20
15
 
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
16
+ [`@xmachines/play-tanstack-solid-router`](README.md) connects a Play actor to TanStack Solid Router through `TanStackSolidRouterBridge`.
26
17
 
27
- **Framework Compatibility:**
18
+ The bridge extends `RouterBridgeBase` from [`@xmachines/play-router`](../play-router/README.md), keeping adapter behavior consistent across frameworks:
28
19
 
29
- - TanStack Solid Router 1.100.0+
30
- - SolidJS 1.8.0+
31
- - TC39 Signals polyfill integration
20
+ - Actor route signal (`actor.currentRoute`) drives router navigation.
21
+ - Router history events send `play.route` intents back to the actor.
22
+ - Guarded state transitions remain actor-owned (Actor Authority).
23
+ - Circular update prevention built into `RouterBridgeBase`.
32
24
 
33
25
  ## Installation
34
26
 
35
27
  ```bash
36
- npm install @tanstack/solid-router@^1.108.0 solid-js@^1.8.0 @xmachines/play-tanstack-solid-router @xmachines/play-solid
28
+ pnpm add @tanstack/solid-router solid-js
29
+ pnpm add @xmachines/play-tanstack-solid-router @xmachines/play-router
37
30
  ```
38
31
 
39
32
  **Peer dependencies:**
40
33
 
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
34
+ - `@tanstack/solid-router` `^1.168.7`
35
+ - `solid-js` `^1.8.0`
36
+ - `xstate` `^5.31.0`
37
+
38
+ ## Current Exports
39
+
40
+ - `TanStackSolidRouterBridge` — primary adapter class
41
+ - `PlayRouterProvider` — Solid component wrapper for bridge lifecycle
42
+ - `PlayRouterProviderProps`, `TanStackRouterInstance` (types)
43
+ - `PlayActor` — canonical actor shape (`AbstractActor & Routable & Viewable`) from `@xmachines/play-router`; use when constructing a typed renderer callback for `PlayRouterProvider`
44
+ - `RoutableActor` — deprecated alias for `PlayActor`; use `PlayActor` from `@xmachines/play-router` instead
45
+ - `RouteMap`, `createRouteMap`, `RouteMapping`, `RouteMapOptions` (re-exported from `@xmachines/play-router`)
46
+ - `TanStackRouterLike` (type)
47
+ - `RouterBridge`, `PlayRouteEvent` (types)
48
+
49
+ ## URLPattern Support
50
+
51
+ 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).
52
+
53
+ 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
54
 
48
55
  ## Quick Start
49
56
 
50
57
  ```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";
58
+ import { createRouter } from "@tanstack/solid-router";
54
59
  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
60
+ import { extractMachineRoutes } from "@xmachines/play-router";
61
+ import { TanStackSolidRouterBridge, createRouteMap } from "@xmachines/play-tanstack-solid-router";
89
62
 
90
- ### `SolidRouterBridge`
63
+ const routeMap = createRouteMap(machine);
64
+ const router = createRouter({ routeTree: tanstackRouteTree });
91
65
 
92
- Router adapter implementing the `RouterBridge` protocol for TanStack Solid Router.
66
+ const actor = definePlayer({ machine })();
67
+ actor.start();
93
68
 
94
- **Type Signature:**
69
+ const bridge = new TanStackSolidRouterBridge(router, actor, routeMap);
70
+ bridge.connect();
95
71
 
96
- ```typescript
97
- class SolidRouterBridge {
98
- constructor(router: Router, actor: AbstractActor<any>, routeMap: RouteMap);
99
- dispose(): void;
100
- }
72
+ // later
73
+ bridge.disconnect();
101
74
  ```
102
75
 
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:**
76
+ ### Solid convenience wrapper
110
77
 
111
- - `connect()` - Start bidirectional synchronization.
112
- - `disconnect()` - Stop synchronization and cleanup bridge resources.
113
- - `dispose()` - Alias of `disconnect()`.
78
+ Use `PlayRouterProvider` when you want bridge lifecycle wiring managed by a component:
114
79
 
115
- **Internal Behavior:**
80
+ ```tsx
81
+ import { PlayRouterProvider } from "@xmachines/play-tanstack-solid-router";
82
+ import { RouterProvider } from "@tanstack/solid-router";
83
+
84
+ <PlayRouterProvider
85
+ actor={actor}
86
+ router={router}
87
+ routeMap={routeMap}
88
+ renderer={(currentActor, currentRouter) => (
89
+ <RouterProvider router={currentRouter}>{/* your app here */}</RouterProvider>
90
+ )}
91
+ />;
92
+ ```
116
93
 
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
94
+ ## API
121
95
 
122
- ### `PlayTanStackRouterProvider`
96
+ ### `TanStackSolidRouterBridge`
123
97
 
124
- A Solid component that automatically sets up, connects, and tears down the `SolidRouterBridge` using Solid's lifecycle.
98
+ Primary adapter class extending `RouterBridgeBase`.
125
99
 
126
- ```tsx
127
- interface PlayTanStackRouterProviderProps {
128
- actor: AbstractActor<any>;
129
- router: Router;
130
- routeMap: RouteMap;
131
- renderer: (actor: AbstractActor<any>, router: Router) => JSX.Element;
100
+ ```ts
101
+ class TanStackSolidRouterBridge {
102
+ constructor(router: TanStackRouterLike, actor: RoutableActor, routeMap: RouteMap);
103
+ connect(): void;
104
+ disconnect(): void;
105
+ dispose(): void; // alias for disconnect()
132
106
  }
133
107
  ```
134
108
 
135
- **Props:**
109
+ **Behavior:**
136
110
 
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
111
+ - `connect()` — subscribes to `router.history`, performs initial deep-link sync from `router.history.location`, and starts watching `actor.currentRoute` for state-driven navigation.
112
+ - `disconnect()` unsubscribes from history and stops all sync.
113
+ - Navigates via `router.navigate({ to: path })`.
114
+ - Subscribes via `router.history.subscribe` covers PUSH, POP, BACK, FORWARD, REPLACE, and GO, and works without `<RouterProvider>` mounted.
141
115
 
142
- **Behavior:**
116
+ ### `PlayRouterProvider`
143
117
 
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`
118
+ Solid component that instantiates, connects, and cleans up a `TanStackSolidRouterBridge` automatically.
148
119
 
149
- ### `createRouteMap()`
120
+ ```ts
121
+ interface PlayRouterProviderProps<TActor extends PlayActor = PlayActor> {
122
+ /** The actor to sync with TanStack Solid Router. */
123
+ actor: TActor;
124
+ /** The TanStack Router instance returned by `createRouter`. */
125
+ router: TanStackRouterInstance;
126
+ /** Bidirectional route map for state ID ↔ URL path lookups. */
127
+ routeMap: RouteMap;
128
+ /** Renderer callback receives the same concrete actor type that was passed in. */
129
+ renderer: (actor: TActor, router: TanStackRouterInstance) => JSX.Element;
130
+ }
131
+ ```
150
132
 
151
- Helper to build a `RouteMap` instance directly from an XState machine.
133
+ The bridge is created synchronously at component evaluation time (Solid's execution model) and torn down via `onCleanup` when the component is disposed.
152
134
 
153
- **Signature:**
135
+ ### `RouteMap` and `createRouteMap`
154
136
 
155
- ```typescript
156
- function createRouteMap(machine: AnyStateMachine): RouteMap;
157
- ```
137
+ Map state IDs to URL paths and resolve URLs back to state IDs.
158
138
 
159
- **Usage:**
139
+ ```ts
140
+ const routeMap = new RouteMap([
141
+ { stateId: "home", path: "/" },
142
+ { stateId: "profile", path: "/profile/:userId" },
143
+ { stateId: "settings", path: "/settings/:section?" },
144
+ ]);
160
145
 
161
- ```typescript
162
- import { createRouteMap } from "@xmachines/play-tanstack-solid-router";
146
+ routeMap.getStateIdByPath("/profile/123"); // "profile"
147
+ routeMap.getPathByStateId("home"); // "/"
148
+ routeMap.getStateIdByPath("/unknown"); // null
163
149
 
150
+ // Or build from a machine directly:
151
+ import { createRouteMap } from "@xmachines/play-tanstack-solid-router";
164
152
  const routeMap = createRouteMap(machine);
165
153
  ```
166
154
 
155
+ `getStateIdByPath` returns `null` (not `undefined`) for unmatched paths.
156
+
167
157
  ## Usage Patterns
168
158
 
169
159
  ### Dynamic Routes with Parameters
170
160
 
171
- TanStack Router and URLPattern (used internally) support dynamic route matching syntax:
161
+ ```ts
162
+ const routeMap = new RouteMap([
163
+ { stateId: "post", path: "/users/:userId/posts/:postId" },
164
+ { stateId: "settings", path: "/settings/:section?" },
165
+ ]);
166
+
167
+ // Params are extracted and forwarded in the play.route event:
168
+ // { type: "play.route", to: "#post", params: { userId: "123", postId: "456" }, query: {} }
169
+ ```
170
+
171
+ ### Protected Routes and Guards
172
+
173
+ Auth guards live entirely inside the state machine, preventing flashes of unauthorized content:
172
174
 
173
- ```typescript
174
- // Machine configuration
175
+ ```ts
175
176
  const machineConfig = {
176
177
  states: {
177
- profile: {
178
- meta: {
179
- route: "/profile/:userId",
180
- view: { component: "Profile" },
178
+ dashboard: {
179
+ meta: { route: "/dashboard" },
180
+ always: {
181
+ guard: ({ context }) => !context.isAuthenticated,
182
+ target: "login",
181
183
  },
182
184
  },
183
185
  },
184
186
  };
185
-
186
- // Route mapping will natively support URLPattern parameters
187
- routeMap.getStateIdByPath("/profile/123"); // → '#profile'
188
187
  ```
189
188
 
190
- ### Protected Routes and Guards
189
+ When a user navigates to `/dashboard` while unauthenticated:
191
190
 
192
- With XMachines, auth guards are handled entirely inside the state machine, preventing flashes of unauthorized content.
191
+ 1. TanStack Router updates location.
192
+ 2. Bridge intercepts and sends `play.route` to the actor.
193
+ 3. Actor evaluates the guard — denies transition, moves to `login` instead.
194
+ 4. Bridge observes new actor route (`/login`).
195
+ 5. Bridge calls `router.navigate({ to: "/login" })`.
193
196
 
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
- ```
197
+ ### Full App Example
204
198
 
205
- When a user navigates to `/dashboard`:
199
+ ```tsx
200
+ import { createRouter, RouterProvider, createRootRoute, createRoute } from "@tanstack/solid-router";
201
+ import { onCleanup } from "solid-js";
202
+ import { PlayRouterProvider, createRouteMap } from "@xmachines/play-tanstack-solid-router";
203
+ import { definePlayer } from "@xmachines/play-xstate";
204
+ import { extractMachineRoutes, getRoutableRoutes } from "@xmachines/play-router";
205
+
206
+ const createPlayer = definePlayer({ machine: authMachine });
207
+ const actor = createPlayer();
208
+ actor.start();
209
+
210
+ const routeMap = createRouteMap(authMachine);
211
+ const routeTree = extractMachineRoutes(authMachine);
212
+ const routes = getRoutableRoutes(routeTree);
213
+
214
+ const rootRoute = createRootRoute({
215
+ component: () => {
216
+ onCleanup(() => actor.stop());
217
+ return (
218
+ <PlayRouterProvider
219
+ actor={actor}
220
+ router={router}
221
+ routeMap={routeMap}
222
+ renderer={(currentActor, currentRouter) => (
223
+ /* your shell/renderer here */
224
+ <div />
225
+ )}
226
+ />
227
+ );
228
+ },
229
+ });
206
230
 
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`
231
+ const tanstackRoutes = routes.map((route) =>
232
+ createRoute({
233
+ getParentRoute: () => rootRoute,
234
+ path: route.fullPath.replace(/:(\w+)/g, "$$$1"),
235
+ component: () => null,
236
+ }),
237
+ );
212
238
 
213
- ## Circular Update Prevention
239
+ export const router = createRouter({ routeTree: rootRoute.addChildren(tanstackRoutes) });
214
240
 
215
- The `RouterBridgeBase` architecture prevents infinite loops between router and actor using two mechanisms:
241
+ export default function App() {
242
+ return <RouterProvider router={router} />;
243
+ }
244
+ ```
216
245
 
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.
246
+ ## Architecture
219
247
 
220
- ## Comparison with @solidjs/router Adapter
248
+ Bridge-first data flow:
221
249
 
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 |
250
+ 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.
251
+ 2. Actor route updates (`actor.currentRoute` signal) call TanStack navigation (`router.navigate({ to })`).
252
+ 3. TanStack history updates are subscribed and translated to `play.route` events sent to the actor.
253
+ 4. Actor guards accept or reject transitions; infrastructure reflects resulting state.
228
254
 
229
- ## Architecture
255
+ This keeps routing infrastructure passive while preserving business-logic control in the state machine.
230
256
 
231
- This package implements standard Play invariants:
257
+ ## Testing
232
258
 
233
- ### INV-01: Actor Authority
259
+ Run tests for this package in isolation:
234
260
 
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.
261
+ ```bash
262
+ pnpm --filter @xmachines/play-tanstack-solid-router test
263
+ ```
236
264
 
237
- ### INV-02: Passive Infrastructure
265
+ Or from the package directory:
238
266
 
239
- Infrastructure reflects actor state. The router observes `actor.currentRoute` and updates the browser URL, never storing independent business state.
267
+ ```bash
268
+ pnpm test
269
+ ```
240
270
 
241
- ### Cleanup Contract
271
+ **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
272
 
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.
273
+ ```bash
274
+ # Run browser tests only
275
+ pnpm exec vitest --config vitest.browser.config.ts --project play-tanstack-solid-router-browser
276
+ ```
244
277
 
245
- ## URLPattern Support
278
+ Coverage thresholds: lines 80%, functions 80%, branches 70%, statements 80%.
246
279
 
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`.
280
+ ## Related Packages
248
281
 
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.
282
+ - [@xmachines/play-router](../play-router/README.md) core router primitives and `RouterBridgeBase`
283
+ - [@xmachines/play-tanstack-react-router](../play-tanstack-react-router/README.md) — TanStack Router (React) equivalent
284
+ - [@xmachines/play-solid](../play-solid/README.md) — SolidJS renderer
285
+ - [@xmachines/play-solid-router](../play-solid-router/README.md) — native `@solidjs/router` adapter
286
+ - [@xmachines/play-xstate](../play-xstate/README.md) — XState v5 player factory
250
287
 
251
- ## Related Packages
288
+ ## Learn More
252
289
 
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
290
+ - [Demo](../../../examples/@xmachines/play-tanstack-solid-router-demo/README.md)
291
+ - [SolidJS renderer](../play-solid/README.md)
256
292
 
257
293
  ## License
258
294
 
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>.
295
+ MIT see [LICENSE](LICENSE).
263
296
 
264
297
  ## Classes
265
298
 
266
299
  - [RouteMap](classes/RouteMap.md)
267
- - [SolidRouterBridge](classes/SolidRouterBridge.md)
300
+ - [TanStackSolidRouterBridge](classes/TanStackSolidRouterBridge.md)
268
301
 
269
302
  ## Interfaces
270
303
 
304
+ - [PlayActor](interfaces/PlayActor.md)
271
305
  - [PlayRouteEvent](interfaces/PlayRouteEvent.md)
306
+ - [PlayRouterProviderBaseProps](interfaces/PlayRouterProviderBaseProps.md)
272
307
  - [PlayRouterProviderProps](interfaces/PlayRouterProviderProps.md)
308
+ - [RouteMapOptions](interfaces/RouteMapOptions.md)
273
309
  - [RouteMapping](interfaces/RouteMapping.md)
274
310
  - [RouterBridge](interfaces/RouterBridge.md)
275
311
 
276
312
  ## Type Aliases
277
313
 
278
- - [RoutableActor](type-aliases/RoutableActor.md)
314
+ - [PlayRouterBridgeConstructor](type-aliases/PlayRouterBridgeConstructor.md)
315
+ - [~~RoutableActor~~](type-aliases/RoutableActor.md)
279
316
  - [TanStackRouterInstance](type-aliases/TanStackRouterInstance.md)
280
317
  - [TanStackRouterLike](type-aliases/TanStackRouterLike.md)
281
318
 
319
+ ## Variables
320
+
321
+ - [PlayRouterProvider](variables/PlayRouterProvider.md)
322
+
282
323
  ## Functions
283
324
 
325
+ - [createPlayRouterProvider](functions/createPlayRouterProvider.md)
284
326
  - [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.1.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.1.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.1.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.1.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)