@xmachines/docs 4.0.0 → 5.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (568) hide show
  1. package/README.md +8 -6
  2. package/api/@xmachines/play/README.md +21 -21
  3. package/api/@xmachines/play/errors/classes/NonNullableError.md +4 -4
  4. package/api/@xmachines/play/errors/classes/PlayError.md +5 -4
  5. package/api/@xmachines/play/index/README.md +2 -2
  6. package/api/@xmachines/play/index/functions/asCleanup.md +4 -5
  7. package/api/@xmachines/play/index/functions/assertNonNullable.md +1 -1
  8. package/api/@xmachines/play/index/functions/shallowEqualExcept.md +1 -1
  9. package/api/@xmachines/play/index/type-aliases/Cleanup.md +3 -3
  10. package/api/@xmachines/play/index/type-aliases/DisposeKey.md +1 -1
  11. package/api/@xmachines/play/index/type-aliases/PlayEvent.md +2 -2
  12. package/api/@xmachines/play/index/variables/DISPOSE.md +1 -1
  13. package/api/@xmachines/play-actor/README.md +9 -9
  14. package/api/@xmachines/play-actor/interfaces/ActorEvent.md +2 -2
  15. package/api/@xmachines/play-actor/interfaces/PlayActor.md +6 -6
  16. package/api/@xmachines/play-atom/README.md +281 -0
  17. package/api/@xmachines/play-atom/functions/watchAtom.md +79 -0
  18. package/api/@xmachines/play-atom/interfaces/AsyncAtomOptions.md +16 -0
  19. package/api/@xmachines/play-atom/interfaces/Atom.md +149 -0
  20. package/api/@xmachines/play-atom/interfaces/AtomObserver.md +25 -0
  21. package/api/@xmachines/play-atom/interfaces/AtomOptions.md +33 -0
  22. package/api/@xmachines/play-atom/interfaces/AtomSubscription.md +23 -0
  23. package/api/@xmachines/play-atom/interfaces/BaseAtom.md +97 -0
  24. package/api/@xmachines/play-atom/interfaces/CreateAtom.md +91 -0
  25. package/api/@xmachines/play-atom/interfaces/Readable.md +93 -0
  26. package/api/@xmachines/play-atom/interfaces/ReadonlyAtom.md +108 -0
  27. package/api/@xmachines/play-atom/type-aliases/AnyAtom.md +13 -0
  28. package/api/@xmachines/play-atom/type-aliases/AsyncAtomState.md +32 -0
  29. package/api/@xmachines/{play-signals → play-atom}/type-aliases/Cleanup.md +4 -4
  30. package/api/@xmachines/play-atom/variables/createAsyncAtom.md +42 -0
  31. package/api/@xmachines/play-atom/variables/createAtom.md +18 -0
  32. package/api/@xmachines/play-atom/variables/createWritableAtom.md +70 -0
  33. package/api/@xmachines/play-dom/README.md +21 -17
  34. package/api/@xmachines/play-dom/classes/PlayRenderer.md +10 -10
  35. package/api/@xmachines/play-dom/functions/asCleanup.md +4 -5
  36. package/api/@xmachines/play-dom/functions/createPlayUI.md +1 -1
  37. package/api/@xmachines/play-dom/functions/createRenderer.md +1 -1
  38. package/api/@xmachines/play-dom/interfaces/CreatePlayUIOptions.md +3 -3
  39. package/api/@xmachines/play-dom/interfaces/MountOptions.md +3 -3
  40. package/api/@xmachines/play-dom/interfaces/PlayDomOptions.md +6 -6
  41. package/api/@xmachines/play-dom/type-aliases/Cleanup.md +3 -3
  42. package/api/@xmachines/play-dom/type-aliases/MountFn.md +1 -1
  43. package/api/@xmachines/play-dom-router/README.md +24 -24
  44. package/api/@xmachines/play-dom-router/classes/DomRouterBridge.md +15 -15
  45. package/api/@xmachines/play-dom-router/classes/RouteMap.md +11 -11
  46. package/api/@xmachines/play-dom-router/functions/asCleanup.md +4 -5
  47. package/api/@xmachines/play-dom-router/functions/connectRouter.md +1 -1
  48. package/api/@xmachines/play-dom-router/functions/createBrowserHistory.md +1 -1
  49. package/api/@xmachines/play-dom-router/functions/createRouter.md +1 -1
  50. package/api/@xmachines/play-dom-router/interfaces/BasePathOptions.md +3 -7
  51. package/api/@xmachines/play-dom-router/interfaces/BrowserHistory.md +15 -15
  52. package/api/@xmachines/play-dom-router/interfaces/BrowserWindow.md +14 -14
  53. package/api/@xmachines/play-dom-router/interfaces/ConnectRouterOptions.md +11 -9
  54. package/api/@xmachines/play-dom-router/interfaces/PlayRouteEvent.md +7 -7
  55. package/api/@xmachines/play-dom-router/interfaces/RoutableActor.md +6 -6
  56. package/api/@xmachines/play-dom-router/interfaces/RouteLookupContract.md +3 -3
  57. package/api/@xmachines/play-dom-router/interfaces/RouteMapOptions.md +10 -4
  58. package/api/@xmachines/play-dom-router/interfaces/RouteMapping.md +3 -3
  59. package/api/@xmachines/play-dom-router/interfaces/RouterBridge.md +15 -17
  60. package/api/@xmachines/play-dom-router/interfaces/RouterConnection.md +7 -7
  61. package/api/@xmachines/play-dom-router/interfaces/VanillaRouter.md +5 -5
  62. package/api/@xmachines/play-dom-router/type-aliases/Cleanup.md +3 -3
  63. package/api/@xmachines/play-dom-router/variables/DISPOSE.md +1 -1
  64. package/api/@xmachines/play-pattern/README.md +115 -0
  65. package/api/@xmachines/play-pattern/functions/buildPath.md +46 -0
  66. package/api/@xmachines/play-pattern/functions/createPatternCache.md +47 -0
  67. package/api/@xmachines/play-pattern/functions/getIndexKey.md +30 -0
  68. package/api/@xmachines/play-pattern/functions/isDotSegment.md +40 -0
  69. package/api/@xmachines/play-pattern/functions/parsePattern.md +28 -0
  70. package/api/@xmachines/play-pattern/interfaces/GroupPart.md +15 -0
  71. package/api/@xmachines/play-pattern/interfaces/LiteralPart.md +14 -0
  72. package/api/@xmachines/play-pattern/interfaces/ParamPart.md +21 -0
  73. package/api/@xmachines/play-pattern/interfaces/ParseOptions.md +19 -0
  74. package/api/@xmachines/play-pattern/interfaces/ParsedPattern.md +23 -0
  75. package/api/@xmachines/play-pattern/interfaces/PatternCache.md +65 -0
  76. package/api/@xmachines/play-pattern/interfaces/PatternParam.md +15 -0
  77. package/api/@xmachines/play-pattern/type-aliases/PathBuildResult.md +74 -0
  78. package/api/@xmachines/play-pattern/type-aliases/PathParams.md +15 -0
  79. package/api/@xmachines/play-pattern/type-aliases/PatternModifier.md +11 -0
  80. package/api/@xmachines/play-pattern/type-aliases/PatternPart.md +9 -0
  81. package/api/@xmachines/play-react/README.md +31 -21
  82. package/api/@xmachines/play-react/classes/PlayErrorBoundary.md +6 -6
  83. package/api/@xmachines/play-react/functions/useActor.md +1 -1
  84. package/api/@xmachines/play-react/functions/useAtomEffect.md +103 -0
  85. package/api/@xmachines/play-react/functions/usePlayView.md +1 -1
  86. package/api/@xmachines/play-react/interfaces/ActorProviderProps.md +8 -8
  87. package/api/@xmachines/play-react/interfaces/PlayErrorBoundaryProps.md +6 -6
  88. package/api/@xmachines/play-react/interfaces/PlayErrorBoundaryState.md +4 -4
  89. package/api/@xmachines/play-react/interfaces/PlayUIProviderProps.md +8 -8
  90. package/api/@xmachines/play-react/interfaces/ViewContextValue.md +5 -5
  91. package/api/@xmachines/play-react/type-aliases/AnyPlayActor.md +1 -1
  92. package/api/@xmachines/play-react/variables/ActorProvider.md +2 -2
  93. package/api/@xmachines/play-react/variables/PlayRenderer.md +1 -1
  94. package/api/@xmachines/play-react/variables/PlayUIProvider.md +1 -1
  95. package/api/@xmachines/play-react-router/README.md +3 -3
  96. package/api/@xmachines/play-react-router/classes/ReactRouterBridge.md +15 -15
  97. package/api/@xmachines/play-react-router/classes/RouteMap.md +11 -11
  98. package/api/@xmachines/play-react-router/functions/createPlayRouterProvider.md +1 -1
  99. package/api/@xmachines/play-react-router/functions/createRouteMapFromTree.md +5 -5
  100. package/api/@xmachines/play-react-router/interfaces/PlayRouteEvent.md +7 -7
  101. package/api/@xmachines/play-react-router/interfaces/PlayRouterProviderProps.md +11 -9
  102. package/api/@xmachines/play-react-router/interfaces/RoutableActor.md +6 -6
  103. package/api/@xmachines/play-react-router/interfaces/RouteMapOptions.md +10 -4
  104. package/api/@xmachines/play-react-router/interfaces/RouteMapping.md +3 -3
  105. package/api/@xmachines/play-react-router/interfaces/RouterBridge.md +15 -17
  106. package/api/@xmachines/play-react-router/type-aliases/PlayRouterBridgeConstructor.md +14 -7
  107. package/api/@xmachines/play-react-router/type-aliases/PlayRouterProviderBaseProps.md +1 -1
  108. package/api/@xmachines/play-react-router/variables/PlayRouterProvider.md +1 -1
  109. package/api/@xmachines/play-router/README.md +25 -14
  110. package/api/@xmachines/play-router/errors/classes/DuplicateBridgeError.md +4 -4
  111. package/api/@xmachines/play-router/errors/classes/DuplicateRoutePathError.md +5 -5
  112. package/api/@xmachines/play-router/errors/classes/EmptyRoutePathError.md +5 -5
  113. package/api/@xmachines/play-router/errors/classes/InvalidBasePathError.md +5 -5
  114. package/api/@xmachines/play-router/errors/classes/InvalidRoutePatternError.md +5 -5
  115. package/api/@xmachines/play-router/errors/classes/InvalidStateIdError.md +5 -5
  116. package/api/@xmachines/play-router/errors/classes/MissingBasePathParamError.md +6 -6
  117. package/api/@xmachines/play-router/errors/classes/RouterSyncError.md +4 -4
  118. package/api/@xmachines/play-router/errors/classes/UnknownStateTypeError.md +6 -6
  119. package/api/@xmachines/play-router/index/README.md +10 -2
  120. package/api/@xmachines/play-router/index/classes/RouteMap.md +11 -11
  121. package/api/@xmachines/play-router/index/classes/RouterBridgeBase.md +10 -10
  122. package/api/@xmachines/play-router/index/functions/buildPlayRouteEvent.md +1 -1
  123. package/api/@xmachines/play-router/index/functions/buildRouteTree.md +1 -1
  124. package/api/@xmachines/play-router/index/functions/cleanFrameworkParams.md +1 -1
  125. package/api/@xmachines/play-router/index/functions/createPatternCache.md +47 -0
  126. package/api/@xmachines/play-router/index/functions/createRouteMapFromTree.md +5 -5
  127. package/api/@xmachines/play-router/index/functions/createRouterConnection.md +1 -1
  128. package/api/@xmachines/play-router/index/functions/detectDuplicateRoutes.md +1 -1
  129. package/api/@xmachines/play-router/index/functions/extractQuery.md +1 -1
  130. package/api/@xmachines/play-router/index/functions/extractRouteParams.md +7 -6
  131. package/api/@xmachines/play-router/index/functions/findRouteById.md +1 -1
  132. package/api/@xmachines/play-router/index/functions/findRouteByPath.md +13 -6
  133. package/api/@xmachines/play-router/index/functions/isMountableBridge.md +1 -1
  134. package/api/@xmachines/play-router/index/functions/joinBasePath.md +2 -1
  135. package/api/@xmachines/play-router/index/functions/mountKey.md +1 -1
  136. package/api/@xmachines/play-router/index/functions/normalizeBasePath.md +1 -1
  137. package/api/@xmachines/play-router/index/functions/openProviderBridge.md +3 -3
  138. package/api/@xmachines/play-router/index/functions/parsePattern.md +28 -0
  139. package/api/@xmachines/play-router/index/functions/pickOwnParams.md +1 -1
  140. package/api/@xmachines/play-router/index/functions/repointProviderBridge.md +1 -1
  141. package/api/@xmachines/play-router/index/functions/resolveBasePath.md +1 -1
  142. package/api/@xmachines/play-router/index/functions/resolveFrameworkParams.md +5 -5
  143. package/api/@xmachines/play-router/index/functions/sanitizePathname.md +9 -24
  144. package/api/@xmachines/play-router/index/functions/splitLocation.md +37 -0
  145. package/api/@xmachines/play-router/index/functions/stripBasePath.md +1 -1
  146. package/api/@xmachines/play-router/index/functions/validateRouteFormat.md +1 -1
  147. package/api/@xmachines/play-router/index/functions/validateStateExists.md +1 -1
  148. package/api/@xmachines/play-router/index/interfaces/BasePathOptions.md +4 -4
  149. package/api/@xmachines/play-router/index/interfaces/BuildPlayRouteEventOptions.md +4 -4
  150. package/api/@xmachines/play-router/index/interfaces/CompileOptions.md +35 -0
  151. package/api/@xmachines/play-router/index/interfaces/FrameworkParamsSource.md +13 -8
  152. package/api/@xmachines/play-router/index/interfaces/LocationLike.md +3 -3
  153. package/api/@xmachines/play-router/index/interfaces/MountableRouterBridge.md +9 -9
  154. package/api/@xmachines/play-router/index/interfaces/OpenProviderBridgeArgs.md +11 -9
  155. package/api/@xmachines/play-router/index/interfaces/ParseOptions.md +24 -0
  156. package/api/@xmachines/play-router/index/interfaces/ParsedPattern.md +23 -0
  157. package/api/@xmachines/play-router/index/interfaces/PatternCache.md +65 -0
  158. package/api/@xmachines/play-router/index/interfaces/PlayRouteEvent.md +7 -7
  159. package/api/@xmachines/play-router/index/interfaces/PlayRouterProviderBaseProps.md +15 -9
  160. package/api/@xmachines/play-router/index/interfaces/ResolvedBasePath.md +3 -3
  161. package/api/@xmachines/play-router/index/interfaces/ResolvedRoutePath.md +3 -3
  162. package/api/@xmachines/play-router/index/interfaces/Routable.md +5 -5
  163. package/api/@xmachines/play-router/index/interfaces/RoutableActor.md +6 -6
  164. package/api/@xmachines/play-router/index/interfaces/RouteInfo.md +8 -8
  165. package/api/@xmachines/play-router/index/interfaces/RouteMapOptions.md +10 -4
  166. package/api/@xmachines/play-router/index/interfaces/RouteMapping.md +3 -3
  167. package/api/@xmachines/play-router/index/interfaces/RouteMatch.md +3 -3
  168. package/api/@xmachines/play-router/index/interfaces/RouteNode.md +10 -10
  169. package/api/@xmachines/play-router/index/interfaces/RouteObject.md +5 -5
  170. package/api/@xmachines/play-router/index/interfaces/RouteTree.md +5 -5
  171. package/api/@xmachines/play-router/index/interfaces/RouteWatcherHandle.md +11 -11
  172. package/api/@xmachines/play-router/index/interfaces/RouterBridge.md +15 -17
  173. package/api/@xmachines/play-router/index/interfaces/RouterBridgeOptions.md +31 -0
  174. package/api/@xmachines/play-router/index/interfaces/RouterConnection.md +7 -7
  175. package/api/@xmachines/play-router/index/interfaces/SplitLocation.md +16 -0
  176. package/api/@xmachines/play-router/index/interfaces/WindowLike.md +3 -3
  177. package/api/@xmachines/play-router/index/type-aliases/PlayRouterBridgeConstructor.md +14 -7
  178. package/api/@xmachines/play-router/index/type-aliases/RouteData.md +1 -1
  179. package/api/@xmachines/play-router/index/type-aliases/RouteDataResolver.md +1 -1
  180. package/api/@xmachines/play-router/index/type-aliases/RouteMetadata.md +1 -1
  181. package/api/@xmachines/play-router/index/type-aliases/URLPatternLike.md +68 -0
  182. package/api/@xmachines/play-router/index/variables/DISPOSE.md +1 -1
  183. package/api/@xmachines/play-router/index/variables/NO_BASE_PATH.md +1 -1
  184. package/api/@xmachines/play-router/index/variables/ROOT_NODE_ID.md +1 -1
  185. package/api/@xmachines/play-router/xstate/functions/createRouteMap.md +5 -5
  186. package/api/@xmachines/play-router/xstate/functions/extractMachineRoutes.md +6 -5
  187. package/api/@xmachines/play-router/xstate/functions/getNavigableRoutes.md +1 -1
  188. package/api/@xmachines/play-router/xstate/functions/getRoutableRoutes.md +1 -1
  189. package/api/@xmachines/play-router/xstate/functions/getRouteMappings.md +1 -1
  190. package/api/@xmachines/play-router/xstate/functions/getTransitionReachableRoutes.md +1 -1
  191. package/api/@xmachines/play-router/xstate/functions/isRouteReachable.md +1 -1
  192. package/api/@xmachines/play-router/xstate/functions/machineToGraph.md +1 -1
  193. package/api/@xmachines/play-router/xstate/functions/routeExists.md +1 -1
  194. package/api/@xmachines/play-router/xstate/interfaces/MachineEdgeData.md +3 -3
  195. package/api/@xmachines/play-router/xstate/interfaces/MachineNodeData.md +5 -5
  196. package/api/@xmachines/play-router/xstate/type-aliases/MachineGraph.md +1 -1
  197. package/api/@xmachines/play-solid/README.md +9 -5
  198. package/api/@xmachines/play-solid/functions/useActor.md +1 -1
  199. package/api/@xmachines/play-solid/functions/usePlayView.md +1 -1
  200. package/api/@xmachines/play-solid/interfaces/ActorProviderProps.md +8 -8
  201. package/api/@xmachines/play-solid/interfaces/PlayUIProviderProps.md +8 -8
  202. package/api/@xmachines/play-solid/interfaces/ViewContextValue.md +5 -5
  203. package/api/@xmachines/play-solid/type-aliases/AnyPlayActor.md +1 -1
  204. package/api/@xmachines/play-solid/variables/ActorContext.md +1 -1
  205. package/api/@xmachines/play-solid/variables/ActorProvider.md +2 -2
  206. package/api/@xmachines/play-solid/variables/PlayRenderer.md +1 -1
  207. package/api/@xmachines/play-solid/variables/PlayUIProvider.md +1 -1
  208. package/api/@xmachines/play-solid-router/README.md +14 -14
  209. package/api/@xmachines/play-solid-router/classes/RouteMap.md +11 -11
  210. package/api/@xmachines/play-solid-router/classes/SolidRouterBridge.md +18 -18
  211. package/api/@xmachines/play-solid-router/functions/createPlayRouterProvider.md +1 -1
  212. package/api/@xmachines/play-solid-router/interfaces/PlayActor.md +6 -6
  213. package/api/@xmachines/play-solid-router/interfaces/PlayRouteEvent.md +7 -7
  214. package/api/@xmachines/play-solid-router/interfaces/PlayRouterProviderProps.md +11 -9
  215. package/api/@xmachines/play-solid-router/interfaces/RoutableActor.md +6 -6
  216. package/api/@xmachines/play-solid-router/interfaces/RouteMapOptions.md +10 -4
  217. package/api/@xmachines/play-solid-router/interfaces/RouteMapping.md +3 -3
  218. package/api/@xmachines/play-solid-router/interfaces/RouterBridge.md +15 -17
  219. package/api/@xmachines/play-solid-router/type-aliases/PlayRouterBridgeConstructor.md +14 -7
  220. package/api/@xmachines/play-solid-router/type-aliases/PlayRouterProviderBaseProps.md +1 -1
  221. package/api/@xmachines/play-solid-router/type-aliases/SolidRouterHooks.md +4 -4
  222. package/api/@xmachines/play-solid-router/variables/PlayRouterProvider.md +1 -1
  223. package/api/@xmachines/play-svelte/README.md +11 -7
  224. package/api/@xmachines/play-svelte/functions/defineRegistry.md +1 -1
  225. package/api/@xmachines/play-svelte/functions/getActorContext.md +1 -1
  226. package/api/@xmachines/play-svelte/functions/getPlayViewContext.md +1 -1
  227. package/api/@xmachines/play-svelte/functions/setActorContext.md +1 -1
  228. package/api/@xmachines/play-svelte/interfaces/ActorProviderProps.md +8 -8
  229. package/api/@xmachines/play-svelte/interfaces/DefineRegistryOptions.md +4 -4
  230. package/api/@xmachines/play-svelte/interfaces/PlayUIProviderProps.md +11 -11
  231. package/api/@xmachines/play-svelte/interfaces/ViewContextValue.md +5 -5
  232. package/api/@xmachines/play-svelte/type-aliases/AnyPlayActor.md +1 -1
  233. package/api/@xmachines/play-svelte-spa-router/README.md +14 -14
  234. package/api/@xmachines/play-svelte-spa-router/classes/RouteMap.md +11 -11
  235. package/api/@xmachines/play-svelte-spa-router/classes/SvelteSpaRouterBridge.md +15 -15
  236. package/api/@xmachines/play-svelte-spa-router/functions/connectRouter.md +1 -1
  237. package/api/@xmachines/play-svelte-spa-router/interfaces/BasePathOptions.md +3 -7
  238. package/api/@xmachines/play-svelte-spa-router/interfaces/ConnectRouterOptions.md +11 -9
  239. package/api/@xmachines/play-svelte-spa-router/interfaces/PlayRouteEvent.md +7 -7
  240. package/api/@xmachines/play-svelte-spa-router/interfaces/RoutableActor.md +6 -6
  241. package/api/@xmachines/play-svelte-spa-router/interfaces/RouteMapOptions.md +10 -4
  242. package/api/@xmachines/play-svelte-spa-router/interfaces/RouteMapping.md +3 -3
  243. package/api/@xmachines/play-svelte-spa-router/interfaces/RouterBridge.md +15 -17
  244. package/api/@xmachines/play-svelte-spa-router/interfaces/RouterConnection.md +7 -7
  245. package/api/@xmachines/play-svelte-spa-router/interfaces/WindowLike.md +3 -3
  246. package/api/@xmachines/play-sveltekit-router/README.md +17 -17
  247. package/api/@xmachines/play-sveltekit-router/classes/RouteMap.md +11 -11
  248. package/api/@xmachines/play-sveltekit-router/classes/SvelteKitRouterBridge.md +15 -15
  249. package/api/@xmachines/play-sveltekit-router/functions/connectRouter.md +1 -1
  250. package/api/@xmachines/play-sveltekit-router/interfaces/BasePathOptions.md +3 -7
  251. package/api/@xmachines/play-sveltekit-router/interfaces/ConnectRouterOptions.md +15 -23
  252. package/api/@xmachines/play-sveltekit-router/interfaces/LocationLike.md +3 -3
  253. package/api/@xmachines/play-sveltekit-router/interfaces/PlayRouteEvent.md +7 -7
  254. package/api/@xmachines/play-sveltekit-router/interfaces/RoutableActor.md +6 -6
  255. package/api/@xmachines/play-sveltekit-router/interfaces/RouteMapOptions.md +10 -4
  256. package/api/@xmachines/play-sveltekit-router/interfaces/RouteMapping.md +3 -3
  257. package/api/@xmachines/play-sveltekit-router/interfaces/RouterBridge.md +15 -17
  258. package/api/@xmachines/play-sveltekit-router/interfaces/RouterConnection.md +7 -7
  259. package/api/@xmachines/play-tanstack-react-router/README.md +7 -7
  260. package/api/@xmachines/play-tanstack-react-router/classes/RouteMap.md +11 -11
  261. package/api/@xmachines/play-tanstack-react-router/classes/TanStackReactRouterBridge.md +11 -11
  262. package/api/@xmachines/play-tanstack-react-router/functions/createPlayRouterProvider.md +1 -1
  263. package/api/@xmachines/play-tanstack-react-router/functions/createRouteMapFromTree.md +5 -5
  264. package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouteEvent.md +7 -7
  265. package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouterProviderProps.md +11 -9
  266. package/api/@xmachines/play-tanstack-react-router/interfaces/RoutableActor.md +6 -6
  267. package/api/@xmachines/play-tanstack-react-router/interfaces/RouteMapOptions.md +10 -4
  268. package/api/@xmachines/play-tanstack-react-router/interfaces/RouteMapping.md +3 -3
  269. package/api/@xmachines/play-tanstack-react-router/interfaces/RouterBridge.md +15 -17
  270. package/api/@xmachines/play-tanstack-react-router/type-aliases/PlayRouterBridgeConstructor.md +14 -7
  271. package/api/@xmachines/play-tanstack-react-router/type-aliases/PlayRouterProviderBaseProps.md +1 -1
  272. package/api/@xmachines/play-tanstack-react-router/type-aliases/TanStackRouterInstance.md +1 -1
  273. package/api/@xmachines/play-tanstack-react-router/type-aliases/TanStackRouterLike.md +5 -5
  274. package/api/@xmachines/play-tanstack-react-router/variables/PlayRouterProvider.md +1 -1
  275. package/api/@xmachines/play-tanstack-router/README.md +1 -1
  276. package/api/@xmachines/play-tanstack-router/classes/TanStackRouterBridgeBase.md +16 -16
  277. package/api/@xmachines/play-tanstack-router/type-aliases/TanStackRouteMapLike.md +3 -3
  278. package/api/@xmachines/play-tanstack-router/type-aliases/TanStackRouterLike.md +5 -5
  279. package/api/@xmachines/play-tanstack-solid-router/README.md +7 -7
  280. package/api/@xmachines/play-tanstack-solid-router/classes/RouteMap.md +11 -11
  281. package/api/@xmachines/play-tanstack-solid-router/classes/TanStackSolidRouterBridge.md +11 -11
  282. package/api/@xmachines/play-tanstack-solid-router/functions/createPlayRouterProvider.md +1 -1
  283. package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayRouteEvent.md +7 -7
  284. package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayRouterProviderProps.md +11 -9
  285. package/api/@xmachines/play-tanstack-solid-router/interfaces/RoutableActor.md +6 -6
  286. package/api/@xmachines/play-tanstack-solid-router/interfaces/RouteMapOptions.md +10 -4
  287. package/api/@xmachines/play-tanstack-solid-router/interfaces/RouteMapping.md +3 -3
  288. package/api/@xmachines/play-tanstack-solid-router/interfaces/RouterBridge.md +15 -17
  289. package/api/@xmachines/play-tanstack-solid-router/type-aliases/PlayRouterBridgeConstructor.md +14 -7
  290. package/api/@xmachines/play-tanstack-solid-router/type-aliases/PlayRouterProviderBaseProps.md +1 -1
  291. package/api/@xmachines/play-tanstack-solid-router/type-aliases/TanStackRouterInstance.md +1 -1
  292. package/api/@xmachines/play-tanstack-solid-router/type-aliases/TanStackRouterLike.md +5 -5
  293. package/api/@xmachines/play-tanstack-solid-router/variables/PlayRouterProvider.md +1 -1
  294. package/api/@xmachines/play-url/README.md +21 -15
  295. package/api/@xmachines/play-url/errors/classes/InvalidBasePathError.md +5 -5
  296. package/api/@xmachines/play-url/errors/classes/InvalidRoutePatternError.md +5 -5
  297. package/api/@xmachines/play-url/errors/classes/MissingBasePathParamError.md +6 -6
  298. package/api/@xmachines/play-url/index/README.md +15 -8
  299. package/api/@xmachines/play-url/index/functions/buildPath.md +46 -0
  300. package/api/@xmachines/play-url/index/functions/cleanFrameworkParams.md +1 -1
  301. package/api/@xmachines/play-url/index/functions/createPatternCache.md +47 -0
  302. package/api/@xmachines/play-url/index/functions/getCandidates.md +1 -1
  303. package/api/@xmachines/play-url/index/functions/getCompiledPattern.md +8 -7
  304. package/api/@xmachines/play-url/index/functions/getIndexKey.md +1 -1
  305. package/api/@xmachines/play-url/index/functions/holdsUnsubstitutedParam.md +2 -2
  306. package/api/@xmachines/play-url/index/functions/isDotSegment.md +40 -0
  307. package/api/@xmachines/play-url/index/functions/joinBasePath.md +2 -1
  308. package/api/@xmachines/play-url/index/functions/normalizeBasePath.md +1 -1
  309. package/api/@xmachines/play-url/index/functions/parsePattern.md +6 -5
  310. package/api/@xmachines/play-url/index/functions/pickOwnParams.md +1 -1
  311. package/api/@xmachines/play-url/index/functions/resolveBasePath.md +1 -1
  312. package/api/@xmachines/play-url/index/functions/resolveFrameworkParams.md +5 -5
  313. package/api/@xmachines/play-url/index/functions/sanitizePathname.md +27 -0
  314. package/api/@xmachines/play-url/index/functions/splitLocation.md +37 -0
  315. package/api/@xmachines/play-url/index/functions/stripBasePath.md +1 -1
  316. package/api/@xmachines/play-url/index/interfaces/BasePathOptions.md +3 -3
  317. package/api/@xmachines/play-url/index/interfaces/CompileOptions.md +21 -0
  318. package/api/@xmachines/play-url/index/interfaces/FrameworkParamsSource.md +13 -8
  319. package/api/@xmachines/play-url/index/interfaces/GroupPart.md +6 -6
  320. package/api/@xmachines/play-url/index/interfaces/LiteralPart.md +5 -5
  321. package/api/@xmachines/play-url/index/interfaces/ParamPart.md +9 -9
  322. package/api/@xmachines/play-url/index/interfaces/ParseOptions.md +24 -0
  323. package/api/@xmachines/play-url/index/interfaces/ParsedPattern.md +14 -14
  324. package/api/@xmachines/play-url/index/interfaces/PatternCache.md +65 -0
  325. package/api/@xmachines/play-url/index/interfaces/PatternParam.md +6 -6
  326. package/api/@xmachines/play-url/index/interfaces/ResolvedBasePath.md +3 -3
  327. package/api/@xmachines/play-url/index/interfaces/SplitLocation.md +16 -0
  328. package/api/@xmachines/play-url/index/type-aliases/PathBuildResult.md +74 -0
  329. package/api/@xmachines/play-url/index/type-aliases/PathParams.md +15 -0
  330. package/api/@xmachines/play-url/index/type-aliases/PatternModifier.md +1 -1
  331. package/api/@xmachines/play-url/index/type-aliases/PatternPart.md +1 -1
  332. package/api/@xmachines/play-url/index/type-aliases/URLPatternCtor.md +1 -1
  333. package/api/@xmachines/play-url/index/type-aliases/URLPatternLike.md +3 -3
  334. package/api/@xmachines/play-url/index/variables/NO_BASE_PATH.md +1 -1
  335. package/api/@xmachines/play-url/index/variables/URLPattern.md +1 -1
  336. package/api/@xmachines/play-view/README.md +19 -8
  337. package/api/@xmachines/play-view/errors/classes/ReadOnlyContextError.md +5 -5
  338. package/api/@xmachines/play-view/index/functions/attachRenderErrorHandler.md +1 -1
  339. package/api/@xmachines/play-view/index/functions/composePlayState.md +1 -1
  340. package/api/@xmachines/play-view/index/functions/createFailureLatch.md +1 -1
  341. package/api/@xmachines/play-view/index/functions/createReportGuard.md +1 -1
  342. package/api/@xmachines/play-view/index/functions/createViewStoreLifecycle.md +1 -1
  343. package/api/@xmachines/play-view/index/functions/guardContextWrites.md +4 -28
  344. package/api/@xmachines/play-view/index/functions/refreshContextSubtree.md +1 -1
  345. package/api/@xmachines/play-view/index/functions/reuseComposedState.md +1 -1
  346. package/api/@xmachines/play-view/index/functions/sameViewInputs.md +1 -1
  347. package/api/@xmachines/play-view/index/functions/toAtomState.md +1 -1
  348. package/api/@xmachines/play-view/index/functions/typedSpec.md +1 -1
  349. package/api/@xmachines/play-view/index/interfaces/BaseActorProviderProps.md +5 -5
  350. package/api/@xmachines/play-view/index/interfaces/BaseViewContextValue.md +5 -5
  351. package/api/@xmachines/play-view/index/interfaces/FailureLatch.md +3 -3
  352. package/api/@xmachines/play-view/index/interfaces/PlaySpec.md +2 -2
  353. package/api/@xmachines/play-view/index/interfaces/ReportGuard.md +5 -5
  354. package/api/@xmachines/play-view/index/interfaces/ReportGuardMessages.md +3 -3
  355. package/api/@xmachines/play-view/index/interfaces/ResolveViewStoreOptions.md +2 -2
  356. package/api/@xmachines/play-view/index/interfaces/ViewInputs.md +4 -4
  357. package/api/@xmachines/play-view/index/interfaces/ViewStoreLifecycle.md +3 -3
  358. package/api/@xmachines/play-view/index/interfaces/ViewStoreResolution.md +4 -4
  359. package/api/@xmachines/play-view/index/interfaces/Viewable.md +5 -5
  360. package/api/@xmachines/play-view/index/type-aliases/ViewActor.md +1 -1
  361. package/api/@xmachines/play-view/index/variables/CONTEXT_STATE_KEY.md +1 -1
  362. package/api/@xmachines/play-vue/README.md +13 -9
  363. package/api/@xmachines/play-vue/functions/defineRegistry.md +1 -1
  364. package/api/@xmachines/play-vue/functions/useActor.md +1 -1
  365. package/api/@xmachines/play-vue/functions/usePlayView.md +1 -1
  366. package/api/@xmachines/play-vue/interfaces/ActorProviderProps.md +6 -6
  367. package/api/@xmachines/play-vue/interfaces/PlayUIProviderProps.md +9 -9
  368. package/api/@xmachines/play-vue/interfaces/ViewContextValue.md +5 -5
  369. package/api/@xmachines/play-vue/type-aliases/AnyPlayActor.md +1 -1
  370. package/api/@xmachines/play-vue/type-aliases/ComponentEntry.md +1 -1
  371. package/api/@xmachines/play-vue/type-aliases/ComponentsMap.md +1 -1
  372. package/api/@xmachines/play-vue/type-aliases/DefineRegistryOptions.md +2 -2
  373. package/api/@xmachines/play-vue/variables/PlayRenderer.md +1 -1
  374. package/api/@xmachines/play-vue-router/README.md +12 -11
  375. package/api/@xmachines/play-vue-router/errors/classes/VueRouterNavigationError.md +4 -4
  376. package/api/@xmachines/play-vue-router/errors/classes/VueRouterSendError.md +4 -4
  377. package/api/@xmachines/play-vue-router/index/classes/RouteMap.md +11 -11
  378. package/api/@xmachines/play-vue-router/index/classes/VueRouterBridge.md +15 -15
  379. package/api/@xmachines/play-vue-router/index/interfaces/PlayRouteEvent.md +7 -7
  380. package/api/@xmachines/play-vue-router/index/interfaces/RoutableActor.md +6 -6
  381. package/api/@xmachines/play-vue-router/index/interfaces/RouteMapOptions.md +10 -4
  382. package/api/@xmachines/play-vue-router/index/interfaces/RouteMapping.md +3 -3
  383. package/api/@xmachines/play-vue-router/index/interfaces/RouterBridge.md +15 -17
  384. package/api/@xmachines/play-vue-router/index/variables/PlayRouterProvider.md +23 -1
  385. package/api/@xmachines/play-xstate/README.md +61 -30
  386. package/api/@xmachines/play-xstate/errors/README.md +1 -0
  387. package/api/@xmachines/play-xstate/errors/classes/ActorThrewNonErrorError.md +4 -4
  388. package/api/@xmachines/play-xstate/errors/classes/InvalidEventError.md +5 -5
  389. package/api/@xmachines/play-xstate/errors/classes/InvalidMachineError.md +4 -4
  390. package/api/@xmachines/play-xstate/errors/classes/InvalidRouteHandlerError.md +5 -5
  391. package/api/@xmachines/play-xstate/errors/classes/InvalidRouteMetadataError.md +5 -5
  392. package/api/@xmachines/play-xstate/errors/classes/InvalidRouteParamError.md +207 -0
  393. package/api/@xmachines/play-xstate/errors/classes/MissingRouteParamError.md +6 -6
  394. package/api/@xmachines/play-xstate/errors/classes/MissingStateIdError.md +6 -6
  395. package/api/@xmachines/play-xstate/index/README.md +2 -2
  396. package/api/@xmachines/play-xstate/index/classes/PlayerActor.md +41 -42
  397. package/api/@xmachines/play-xstate/index/functions/compose.md +4 -4
  398. package/api/@xmachines/play-xstate/index/functions/definePlayer.md +2 -2
  399. package/api/@xmachines/play-xstate/index/interfaces/PlayerConfig.md +4 -4
  400. package/api/@xmachines/play-xstate/index/interfaces/PlayerFactoryResumeOptions.md +2 -2
  401. package/api/@xmachines/play-xstate/index/interfaces/PlayerOptions.md +9 -9
  402. package/api/@xmachines/play-xstate/index/type-aliases/Capability.md +1 -1
  403. package/api/@xmachines/play-xstate/index/type-aliases/PlayerConstructor.md +1 -1
  404. package/api/@xmachines/play-xstate/index/type-aliases/PlayerFactory.md +1 -1
  405. package/api/@xmachines/play-xstate/index/variables/DISPOSE.md +1 -1
  406. package/api/@xmachines/play-xstate/with-routing/functions/buildRouteUrl.md +13 -6
  407. package/api/@xmachines/play-xstate/with-routing/functions/deriveRoute.md +1 -1
  408. package/api/@xmachines/play-xstate/with-routing/functions/formatPlayRouteTransitions.md +1 -1
  409. package/api/@xmachines/play-xstate/with-routing/functions/isAbsoluteRoute.md +1 -1
  410. package/api/@xmachines/play-xstate/with-routing/functions/withRouting.md +1 -1
  411. package/api/@xmachines/play-xstate/with-routing/interfaces/RouteContext.md +5 -5
  412. package/api/@xmachines/play-xstate/with-routing/interfaces/RouteObject.md +5 -5
  413. package/api/@xmachines/play-xstate/with-routing/type-aliases/RouteData.md +1 -1
  414. package/api/@xmachines/play-xstate/with-routing/type-aliases/RouteDataResolver.md +1 -1
  415. package/api/@xmachines/play-xstate/with-routing/type-aliases/RouteMachineConfig.md +4 -4
  416. package/api/@xmachines/play-xstate/with-routing/type-aliases/RouteMetadata.md +1 -1
  417. package/api/@xmachines/play-xstate/with-routing/type-aliases/RouteStateNode.md +5 -5
  418. package/api/@xmachines/play-xstate/with-view/functions/withView.md +6 -5
  419. package/api/@xmachines/shared/vite-aliases/functions/xmAliases.md +1 -1
  420. package/api/@xmachines/shared/vite-aliases/functions/xmCacheDir.md +1 -1
  421. package/api/@xmachines/shared/vite-aliases/functions/xmOptimizeDeps.md +1 -1
  422. package/api/@xmachines/shared/vite-aliases/functions/xmResolve.md +1 -1
  423. package/api/@xmachines/shared/vite-aliases/functions/xmSvelteRunes.md +2 -2
  424. package/api/@xmachines/shared/vitest/functions/defineXmBrowserConfig.md +1 -1
  425. package/api/@xmachines/shared/vitest/functions/defineXmVitestConfig.md +1 -1
  426. package/api/@xmachines/shared/vitest/interfaces/XmBrowserConfigOptions.md +4 -4
  427. package/api/README.md +2 -1
  428. package/api/llms.txt +4 -3
  429. package/contributing/architecture.md +105 -124
  430. package/contributing/configuration.md +15 -15
  431. package/contributing/deployment.md +82 -6
  432. package/contributing/development.md +58 -30
  433. package/contributing/migrating-to-play-atom.md +209 -0
  434. package/contributing/testing.md +61 -64
  435. package/examples/@xmachines/play-dom-demo/README.md +40 -63
  436. package/examples/@xmachines/play-dom-demo/functions/createAuthActionHandlers.md +35 -0
  437. package/examples/@xmachines/play-dom-demo/functions/createConfirmDialog.md +27 -0
  438. package/examples/@xmachines/play-dom-demo/functions/createNavBar.md +2 -2
  439. package/examples/@xmachines/play-dom-demo/functions/initShell.md +7 -6
  440. package/examples/@xmachines/play-dom-demo/type-aliases/AuthCatalog.md +1 -1
  441. package/examples/@xmachines/play-dom-demo/variables/About.md +1 -1
  442. package/examples/@xmachines/play-dom-demo/variables/Button.md +12 -0
  443. package/examples/@xmachines/play-dom-demo/variables/Contact.md +1 -1
  444. package/examples/@xmachines/play-dom-demo/variables/Dashboard.md +1 -1
  445. package/examples/@xmachines/play-dom-demo/variables/Field.md +19 -0
  446. package/examples/@xmachines/play-dom-demo/variables/Home.md +1 -1
  447. package/examples/@xmachines/play-dom-demo/variables/Login.md +1 -1
  448. package/examples/@xmachines/play-dom-demo/variables/NavBarView.md +1 -1
  449. package/examples/@xmachines/play-dom-demo/variables/Navigation.md +1 -1
  450. package/examples/@xmachines/play-dom-demo/variables/Overview.md +1 -1
  451. package/examples/@xmachines/play-dom-demo/variables/Panel.md +14 -0
  452. package/examples/@xmachines/play-dom-demo/variables/Profile.md +1 -1
  453. package/examples/@xmachines/play-dom-demo/variables/Settings.md +1 -1
  454. package/examples/@xmachines/play-dom-demo/variables/Stats.md +1 -1
  455. package/examples/@xmachines/play-dom-demo/variables/authCatalog.md +190 -165
  456. package/examples/@xmachines/play-dom-demo/variables/demoComponents.md +30 -0
  457. package/examples/@xmachines/play-dom-router-demo/README.md +20 -27
  458. package/examples/@xmachines/play-react-demo/README.md +33 -57
  459. package/examples/@xmachines/play-react-demo/functions/createAuthActionHandlers.md +35 -0
  460. package/examples/@xmachines/play-react-demo/type-aliases/AuthCatalog.md +1 -1
  461. package/examples/@xmachines/play-react-demo/variables/About.md +1 -1
  462. package/examples/@xmachines/play-react-demo/variables/Button.md +12 -0
  463. package/examples/@xmachines/play-react-demo/variables/Contact.md +1 -1
  464. package/examples/@xmachines/play-react-demo/variables/Dashboard.md +1 -1
  465. package/examples/@xmachines/play-react-demo/variables/DebugPanel.md +4 -3
  466. package/examples/@xmachines/play-react-demo/variables/Field.md +18 -0
  467. package/examples/@xmachines/play-react-demo/variables/Home.md +1 -1
  468. package/examples/@xmachines/play-react-demo/variables/Login.md +1 -1
  469. package/examples/@xmachines/play-react-demo/variables/NavBar.md +1 -1
  470. package/examples/@xmachines/play-react-demo/variables/NavBarView.md +1 -1
  471. package/examples/@xmachines/play-react-demo/variables/Navigation.md +1 -1
  472. package/examples/@xmachines/play-react-demo/variables/Overview.md +1 -1
  473. package/examples/@xmachines/play-react-demo/variables/Panel.md +15 -0
  474. package/examples/@xmachines/play-react-demo/variables/Profile.md +1 -1
  475. package/examples/@xmachines/play-react-demo/variables/Settings.md +1 -1
  476. package/examples/@xmachines/play-react-demo/variables/Shell.md +2 -1
  477. package/examples/@xmachines/play-react-demo/variables/Stats.md +1 -1
  478. package/examples/@xmachines/play-react-demo/variables/authCatalog.md +190 -165
  479. package/examples/@xmachines/play-react-demo/variables/demoComponents.md +30 -0
  480. package/examples/@xmachines/play-react-router-demo/README.md +32 -32
  481. package/examples/@xmachines/play-solid-demo/README.md +33 -57
  482. package/examples/@xmachines/play-solid-demo/functions/createAuthActionHandlers.md +35 -0
  483. package/examples/@xmachines/play-solid-demo/type-aliases/AuthCatalog.md +1 -1
  484. package/examples/@xmachines/play-solid-demo/variables/About.md +1 -1
  485. package/examples/@xmachines/play-solid-demo/variables/Button.md +11 -0
  486. package/examples/@xmachines/play-solid-demo/variables/Contact.md +1 -1
  487. package/examples/@xmachines/play-solid-demo/variables/Dashboard.md +1 -1
  488. package/examples/@xmachines/play-solid-demo/variables/DebugPanel.md +5 -3
  489. package/examples/@xmachines/play-solid-demo/variables/Field.md +11 -0
  490. package/examples/@xmachines/play-solid-demo/variables/Home.md +1 -1
  491. package/examples/@xmachines/play-solid-demo/variables/Login.md +1 -1
  492. package/examples/@xmachines/play-solid-demo/variables/NavBar.md +1 -1
  493. package/examples/@xmachines/play-solid-demo/variables/NavBarView.md +1 -1
  494. package/examples/@xmachines/play-solid-demo/variables/Navigation.md +1 -1
  495. package/examples/@xmachines/play-solid-demo/variables/Overview.md +1 -1
  496. package/examples/@xmachines/play-solid-demo/variables/Panel.md +11 -0
  497. package/examples/@xmachines/play-solid-demo/variables/Profile.md +1 -1
  498. package/examples/@xmachines/play-solid-demo/variables/Settings.md +1 -1
  499. package/examples/@xmachines/play-solid-demo/variables/Shell.md +2 -1
  500. package/examples/@xmachines/play-solid-demo/variables/Stats.md +1 -1
  501. package/examples/@xmachines/play-solid-demo/variables/authCatalog.md +114 -2
  502. package/examples/@xmachines/play-solid-demo/variables/demoComponents.md +30 -0
  503. package/examples/@xmachines/play-solid-router-demo/README.md +20 -23
  504. package/examples/@xmachines/play-svelte-demo/README.md +38 -44
  505. package/examples/@xmachines/play-svelte-demo/functions/createAuthActionHandlers.md +35 -0
  506. package/examples/@xmachines/play-svelte-demo/type-aliases/AuthCatalog.md +1 -1
  507. package/examples/@xmachines/play-svelte-demo/variables/authCatalog.md +114 -2
  508. package/examples/@xmachines/play-svelte-demo/variables/demoComponents.md +30 -0
  509. package/examples/@xmachines/play-svelte-spa-router-demo/README.md +20 -26
  510. package/examples/@xmachines/play-sveltekit-router-demo/README.md +20 -26
  511. package/examples/@xmachines/play-tanstack-react-router-demo/README.md +29 -31
  512. package/examples/@xmachines/play-tanstack-solid-router-demo/README.md +25 -27
  513. package/examples/@xmachines/play-vue-demo/README.md +36 -60
  514. package/examples/@xmachines/play-vue-demo/functions/createAuthActionHandlers.md +35 -0
  515. package/examples/@xmachines/play-vue-demo/type-aliases/AuthCatalog.md +1 -1
  516. package/examples/@xmachines/play-vue-demo/variables/App.md +1 -1
  517. package/examples/@xmachines/play-vue-demo/variables/authCatalog.md +114 -2
  518. package/examples/@xmachines/play-vue-demo/variables/demoComponents.md +11 -0
  519. package/examples/@xmachines/play-vue-router-demo/README.md +12 -23
  520. package/examples/README.md +3 -3
  521. package/examples/basic-state-machine.md +4 -4
  522. package/examples/form-validation.md +1 -1
  523. package/examples/multi-router-integration.md +23 -23
  524. package/examples/routing-patterns.md +5 -5
  525. package/examples/traffic-light.md +6 -6
  526. package/guides/README.md +1 -1
  527. package/guides/actor-model.md +26 -17
  528. package/guides/atoms.md +264 -0
  529. package/guides/getting-started.md +52 -17
  530. package/guides/inspector.md +3 -3
  531. package/guides/routing.md +67 -47
  532. package/guides/state-machines.md +4 -4
  533. package/package.json +3 -3
  534. package/rfc/play.md +83 -52
  535. package/api/@xmachines/play-react/functions/useSignalEffect.md +0 -77
  536. package/api/@xmachines/play-router/index/functions/getPatternParamNames.md +0 -29
  537. package/api/@xmachines/play-router/index/functions/getRequiredPatternParamNames.md +0 -39
  538. package/api/@xmachines/play-signals/README.md +0 -209
  539. package/api/@xmachines/play-signals/functions/watchSignal.md +0 -65
  540. package/api/@xmachines/play-signals/interfaces/ComputedOptions.md +0 -36
  541. package/api/@xmachines/play-signals/interfaces/SignalComputed.md +0 -49
  542. package/api/@xmachines/play-signals/interfaces/SignalOptions.md +0 -37
  543. package/api/@xmachines/play-signals/interfaces/SignalState.md +0 -68
  544. package/api/@xmachines/play-signals/interfaces/SignalWatcher.md +0 -97
  545. package/api/@xmachines/play-signals/namespaces/Signal/README.md +0 -22
  546. package/api/@xmachines/play-signals/namespaces/Signal/classes/Computed.md +0 -52
  547. package/api/@xmachines/play-signals/namespaces/Signal/classes/State.md +0 -72
  548. package/api/@xmachines/play-signals/namespaces/Signal/interfaces/Options.md +0 -19
  549. package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/README.md +0 -21
  550. package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/classes/Watcher.md +0 -85
  551. package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/currentComputed.md +0 -13
  552. package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/hasSinks.md +0 -19
  553. package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/hasSources.md +0 -19
  554. package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/introspectSinks.md +0 -19
  555. package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/introspectSources.md +0 -19
  556. package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/untrack.md +0 -25
  557. package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/variables/unwatched.md +0 -9
  558. package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/variables/watched.md +0 -9
  559. package/api/@xmachines/play-signals/namespaces/Signal/variables/isComputed.md +0 -19
  560. package/api/@xmachines/play-signals/namespaces/Signal/variables/isState.md +0 -19
  561. package/api/@xmachines/play-signals/namespaces/Signal/variables/isWatcher.md +0 -19
  562. package/api/@xmachines/play-signals/type-aliases/WatcherNotify.md +0 -33
  563. package/api/@xmachines/play-url/index/functions/getNormalizedParamNameMap.md +0 -32
  564. package/api/@xmachines/play-url/index/functions/getPatternParamNames.md +0 -29
  565. package/api/@xmachines/play-url/index/functions/getRequiredPatternParamNames.md +0 -39
  566. package/api/@xmachines/play-url/index/functions/isParameterizedPattern.md +0 -36
  567. package/api/@xmachines/play-url/index/functions/normalizeParamNames.md +0 -36
  568. package/guides/signals.md +0 -209
@@ -36,8 +36,17 @@ const authCatalog: Catalog<
36
36
  {
37
37
  children: SchemaType<"array", SchemaType<"string", unknown>>;
38
38
  props: SchemaType<"propsOf", string>;
39
+ repeat: {
40
+ inner?: unknown;
41
+ kind: "any";
42
+ optional: true;
43
+ };
39
44
  type: SchemaType<"ref", string>;
40
- visible: SchemaType<"any", unknown>;
45
+ visible: {
46
+ inner?: unknown;
47
+ kind: "any";
48
+ optional: true;
49
+ };
41
50
  }
42
51
  >
43
52
  >;
@@ -47,6 +56,24 @@ const authCatalog: Catalog<
47
56
  },
48
57
  {
49
58
  actions: {
59
+ addTask: {
60
+ description: "Add a task (sends task.add to the machine)";
61
+ params: ZodObject<
62
+ {
63
+ title: ZodString;
64
+ },
65
+ $strip
66
+ >;
67
+ };
68
+ completeTask: {
69
+ description: "Mark a task done (sends task.complete to the machine)";
70
+ params: ZodObject<
71
+ {
72
+ id: ZodString;
73
+ },
74
+ $strip
75
+ >;
76
+ };
50
77
  login: {
51
78
  description: "Login with username";
52
79
  params: ZodObject<
@@ -59,6 +86,24 @@ const authCatalog: Catalog<
59
86
  logout: {
60
87
  description: "Logout and return to home";
61
88
  };
89
+ removeTask: {
90
+ description: "Remove a task (sends task.remove to the machine)";
91
+ params: ZodObject<
92
+ {
93
+ id: ZodString;
94
+ },
95
+ $strip
96
+ >;
97
+ };
98
+ resetForm: {
99
+ description: "Reset a demo form to its defaults (confirm-gated in the spec)";
100
+ params: ZodObject<
101
+ {
102
+ form: ZodString;
103
+ },
104
+ $strip
105
+ >;
106
+ };
62
107
  route: {
63
108
  description: "Navigate to a route by path (e.g. '#home', '#login', '#dashboard')";
64
109
  params: ZodObject<
@@ -69,6 +114,16 @@ const authCatalog: Catalog<
69
114
  $strip
70
115
  >;
71
116
  };
117
+ submitForm: {
118
+ description: "Submit a demo form; rejects when the form did not pass validation";
119
+ params: ZodObject<
120
+ {
121
+ form: ZodString;
122
+ valid: ZodOptional<ZodNullable<ZodBoolean>>;
123
+ },
124
+ $strip
125
+ >;
126
+ };
72
127
  };
73
128
  components: {
74
129
  About: {
@@ -79,6 +134,23 @@ const authCatalog: Catalog<
79
134
  $strip
80
135
  >;
81
136
  };
137
+ Button: {
138
+ props: ZodObject<
139
+ {
140
+ disabled: ZodOptional<ZodBoolean>;
141
+ label: ZodString;
142
+ testId: ZodOptional<ZodString>;
143
+ variant: ZodOptional<
144
+ ZodEnum<{
145
+ danger: "danger";
146
+ primary: "primary";
147
+ secondary: "secondary";
148
+ }>
149
+ >;
150
+ },
151
+ $strip
152
+ >;
153
+ };
82
154
  Contact: {
83
155
  props: ZodObject<
84
156
  {
@@ -96,6 +168,26 @@ const authCatalog: Catalog<
96
168
  $strip
97
169
  >;
98
170
  };
171
+ Field: {
172
+ props: ZodObject<
173
+ {
174
+ checks: ZodOptional<ZodArray<ZodCustom<ValidationCheck, ValidationCheck>>>;
175
+ formErrors: ZodOptional<ZodRecord<ZodString, ZodArray<ZodString>>>;
176
+ inputType: ZodOptional<
177
+ ZodEnum<{
178
+ email: "email";
179
+ text: "text";
180
+ textarea: "textarea";
181
+ }>
182
+ >;
183
+ label: ZodString;
184
+ placeholder: ZodOptional<ZodString>;
185
+ testId: ZodOptional<ZodString>;
186
+ value: ZodOptional<ZodString>;
187
+ },
188
+ $strip
189
+ >;
190
+ };
99
191
  Home: {
100
192
  props: ZodObject<
101
193
  {
@@ -139,6 +231,26 @@ const authCatalog: Catalog<
139
231
  $strip
140
232
  >;
141
233
  };
234
+ Panel: {
235
+ props: ZodObject<
236
+ {
237
+ note: ZodOptional<
238
+ ZodUnion<readonly [ZodString, ZodNumber, ZodBoolean, ZodNull]>
239
+ >;
240
+ testId: ZodOptional<ZodString>;
241
+ title: ZodOptional<ZodUnion<readonly [ZodString, ZodNumber]>>;
242
+ tone: ZodOptional<
243
+ ZodEnum<{
244
+ danger: "danger";
245
+ default: "default";
246
+ muted: "muted";
247
+ success: "success";
248
+ }>
249
+ >;
250
+ },
251
+ $strip
252
+ >;
253
+ };
142
254
  Profile: {
143
255
  props: ZodObject<
144
256
  {
@@ -169,4 +281,4 @@ const authCatalog: Catalog<
169
281
  >;
170
282
  ```
171
283
 
172
- Defined in: [packages/play-vue/examples/demo/src/catalog.ts:5](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.56/packages/play-vue/examples/demo/src/catalog.ts#L5)
284
+ Defined in: [packages/play-vue/examples/demo/src/catalog.ts:5](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.1/packages/play-vue/examples/demo/src/catalog.ts#L5)
@@ -0,0 +1,11 @@
1
+ [Examples](../../../README.md) / [@xmachines/play-vue-demo](../README.md) / demoComponents
2
+
3
+ # Variable: demoComponents
4
+
5
+ ```ts
6
+ const demoComponents: ComponentsMap<typeof authCatalog>;
7
+ ```
8
+
9
+ Defined in: [packages/play-vue/examples/demo/src/components/demo-components.ts:22](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.1/packages/play-vue/examples/demo/src/components/demo-components.ts#L22)
10
+
11
+ demoComponents — the full catalog component map, shared with the router demos.
@@ -1,18 +1,19 @@
1
1
  [Examples](../../README.md) / @xmachines/play-vue-router-demo
2
2
 
3
- <!-- generated-by: gsd-doc-writer -->
4
-
5
3
  # @xmachines/play-vue-router-demo
6
4
 
7
5
  Vue Router integration demo for the XMachines Play architecture using Vue Composition API.
8
6
 
7
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
8
+
9
9
  ## What This Demonstrates
10
10
 
11
11
  - Shared auth machine reused without framework-specific business logic
12
12
  - `PlayRouterProvider` renderer-based integration with Vue Router
13
13
  - Shell-driven rendering via `PlayRenderer` with actor-authoritative navigation
14
- - Vue Composition API mapping to TC39 Signals lifecycle
14
+ - Vue Composition API mapping to atoms lifecycle
15
15
  - Non-browser invariant tests plus browser E2E coverage
16
+ - Stately inspector attached at creation via `options.inspect` — the debug panel's **Show Inspector** button opens the live machine in its own window
16
17
 
17
18
  ## Running the Demo
18
19
 
@@ -33,7 +34,7 @@ Use this order to understand how the demo is wired:
33
34
  2. `src/runtime.ts` creates the actor, starts it, builds the shared `registryResult`, and creates the `routeMap`.
34
35
  3. `src/router.ts` installs a single catch-all route; `PlayRenderer` selects the actual view from actor state.
35
36
  4. `src/App.vue` renders `<PlayRouterProvider>` with the shared actor, routeMap, router instance, and a `renderShell` renderer function.
36
- 5. The renderer function creates the shared `Shell` component with actor, router, and registry as props.
37
+ 5. The renderer function creates the shared `Shell` component with actor, router, registry, and inspector as props — the last of which drives the debug panel's **Show Inspector** button.
37
38
  6. `PlayRouterProvider` waits for `router.isReady()` so direct URL loads are handled correctly.
38
39
  7. Browser tests in `test/browser/` validate startup and auth route transitions.
39
40
 
@@ -55,7 +56,7 @@ export const routes = [{ path: "/:pathMatch(.*)*", name: "xmachines-play", compo
55
56
  import { actor, routeMap, registryResult } from "./runtime.js";
56
57
 
57
58
  const renderShell = (currentActor, currentRouter) =>
58
- h(SharedShell, { actor: currentActor, router: currentRouter, registryResult });
59
+ h(SharedShell, { actor: currentActor, router: currentRouter, registryResult, inspector });
59
60
  </script>
60
61
 
61
62
  <template>
@@ -92,19 +93,17 @@ The demo utilizes XMachines architectural invariants:
92
93
 
93
94
  1. **Actor Authority:** When a user navigates to a protected route via a link, Vue Router updates the location. The `PlayRouterProvider` intercepts this, translates it to a `play.route` event, and sends it to the actor. The actor evaluates guards (e.g. `isAuthenticated`) and transitions.
94
95
  2. **Passive Infrastructure:** The router does not execute Vue route guards for business logic. The actor dictates whether navigation is permitted. The Vue application only renders the state.
95
- 3. **Signal-Only Reactivity:** The bridge leverages Vue's `watch` and `triggerRef` internally to react precisely when signals update, without polluting the Vue component tree with reactive refs that hold business state.
96
+ 3. **Atom-Only Reactivity:** The bridge leverages Vue's `watch` and `triggerRef` internally to react precisely when atoms update, without polluting the Vue component tree with reactive refs that hold business state.
96
97
 
97
98
  ## Watcher Lifecycle and Cleanup Contract
98
99
 
99
100
  This demo follows the canonical watcher lifecycle:
100
101
 
101
- 1. `notify`
102
- 2. `queueMicrotask`
103
- 3. `getPending()`
104
- 4. Read actor signals and sync Vue-local render state
105
- 5. Re-arm with `watch()`/`watch(...signals)`
102
+ 1. The atom notifies the subscription, synchronously, from the `set` that changed it
103
+ 2. `watchAtom` queues one microtask, and it drops each duplicate notification of that batch
104
+ 3. The microtask reads the actor atoms and syncs Vue-local render state
106
105
 
107
- Notifications are one-shot, so re-arm is required. Teardown is explicit: provider/bridge cleanup must flow through `disconnect` and watcher `unwatch`, not GC-only assumptions. The `PlayRouterProvider` wires this seamlessly into the component's `onUnmounted` hook.
106
+ One subscription lives for the whole watch, and no caller arms a watcher again. Teardown is explicit: provider/bridge cleanup must flow through `disconnect` and watcher `unwatch`, not GC-only assumptions. The `PlayRouterProvider` wires this seamlessly into the component's `onUnmounted` hook.
108
107
 
109
108
  ## Adapter Boundaries
110
109
 
@@ -122,18 +121,8 @@ These commands are defined in `package.json`:
122
121
  | `pnpm --filter @xmachines/play-vue-router-demo run test` | Run Vitest test suite |
123
122
  | `pnpm --filter @xmachines/play-vue-router-demo run test:browser` | Run browser-focused Vitest suite |
124
123
 
125
- ## Verification
126
-
127
- Use these checks to validate README claims against the current demo implementation:
128
-
129
- ```bash
130
- pnpm --filter @xmachines/play-vue-router-demo run test
131
- pnpm --filter @xmachines/play-vue-router-demo run test:browser
132
- ```
133
-
134
- Expected result: reactivity integration tests and the browser shared-demo suite both pass, confirming login/logout transitions update both view and URL correctly.
135
-
136
124
  ## Learn More
137
125
 
138
126
  - [Vue Router](../../../api/@xmachines/play-vue-router/README.md)
139
127
  - [Vue](../../../api/@xmachines/play-vue/README.md)
128
+ - [Inspecting a Running Actor](../../../guides/inspector.md)
@@ -8,7 +8,7 @@ Practical code examples demonstrating current XMachines Play patterns and use ca
8
8
 
9
9
  Start with the fundamental machine + actor pattern:
10
10
 
11
- - **[Basic State Machine](basic-state-machine.md)** — `setup().createMachine()` + `definePlayer()` + TC39 Signals
11
+ - **[Basic State Machine](basic-state-machine.md)** — `setup().createMachine()` + `definePlayer()` + atoms
12
12
  - **[Traffic Light](traffic-light.md)** — Multi-state machine with `meta.route` and `formatPlayRouteTransitions`
13
13
  - **[Form Validation](form-validation.md)** — Typed context mutations with `setup.assign`, guards, and `$bindState`
14
14
 
@@ -60,7 +60,7 @@ The conceptual examples in this directory are TypeScript snippets. To run them:
60
60
 
61
61
  ```bash
62
62
  # Install dependencies (from the monorepo root)
63
- pnpm add @xmachines/play-xstate @xmachines/play-actor @xmachines/play-signals xstate
63
+ pnpm add @xmachines/play-xstate @xmachines/play-actor @xmachines/play-atom xstate
64
64
 
65
65
  # Run with tsx
66
66
  pnpm dlx tsx my-example.ts
@@ -81,7 +81,7 @@ pnpm --filter @xmachines/play-dom-router-demo run dev
81
81
  | [`@xmachines/play-xstate`](../api/@xmachines/play-xstate/README.md) | `definePlayer`, `formatPlayRouteTransitions`, `PlayerActor` |
82
82
  | [`@xmachines/play-actor`](../api/@xmachines/play-actor/README.md) | `PlayActor` |
83
83
  | [`@xmachines/play-view`](../api/@xmachines/play-view/README.md) | `Viewable`, `PlaySpec`, `typedSpec` |
84
- | [`@xmachines/play-signals`](../api/@xmachines/play-signals/README.md) | TC39 Signals polyfill, `watchSignal` |
84
+ | [`@xmachines/play-atom`](../api/@xmachines/play-atom/README.md) | The atom primitives, `watchAtom` |
85
85
  | [`@xmachines/play-router`](../api/@xmachines/play-router/README.md) | `RouterBridgeBase`, `RouteMap`, `Routable` |
86
86
  | [`@xmachines/play-router/xstate`](../api/@xmachines/play-router/README.md) | `extractMachineRoutes`, `getRoutableRoutes` |
87
87
 
@@ -63,7 +63,7 @@ actor.start();
63
63
  console.log(actor.getSnapshot().value); // "off"
64
64
  console.log(actor.getSnapshot().context.toggleCount); // 0
65
65
 
66
- // 6. Read state via TC39 Signal
66
+ // 6. Read state from the atom
67
67
  console.log(actor.state.get().value); // "off"
68
68
 
69
69
  // 7. Send events
@@ -87,13 +87,13 @@ actor.stop();
87
87
 
88
88
  3. **`toggleSetup.assign(...)`** — Assigns context mutations using the typed setup's `assign` helper. This provides full inference from the declared context type — no manual type assertions needed.
89
89
 
90
- 4. **`definePlayer({ machine })`** — Wraps the machine in a factory. Calling `createPlayer()` returns a `PlayerActor` — XMachines' actor type that extends XState's actor with TC39 Signal reactivity and Play Architecture hooks.
90
+ 4. **`definePlayer({ machine })`** — Wraps the machine in a factory. Calling `createPlayer()` returns a `PlayerActor` — XMachines' actor type that extends XState's actor with atom reactivity and Play Architecture hooks.
91
91
 
92
92
  5. **`actor.start()`** — Activates the machine. Always call `start()` before sending events.
93
93
 
94
94
  6. **`actor.getSnapshot()`** — Returns the current XState snapshot synchronously. `.value` is the state name; `.context` is the typed context object.
95
95
 
96
- 7. **`actor.state.get()`** — TC39 Signal access to the current snapshot. Useful when wiring infrastructure that observes signals (renderers, router bridges). Equivalent to `actor.getSnapshot()` for one-time reads.
96
+ 7. **`actor.state.get()`** — atom access to the current snapshot. Useful when wiring infrastructure that observes atoms (renderers, router bridges). Equivalent to `actor.getSnapshot()` for one-time reads.
97
97
 
98
98
  8. **Event types use dot-separated lowercase** — `"toggle"` not `"TOGGLE"`. This matches the XMachines convention used throughout the codebase (e.g. `"auth.login"`, `"auth.logout"`, `"play.route"`).
99
99
 
@@ -101,7 +101,7 @@ actor.stop();
101
101
 
102
102
  - **`setup({ types })`**: The XState v5 typed entry point. Declares context, event, and input shapes before machine creation.
103
103
  - **`definePlayer({ machine })`**: Creates a factory function that returns `PlayerActor` instances.
104
- - **`actor.state`**: A `Signal.State<Snapshot>` — TC39 Signals-based reactive handle on the machine snapshot.
104
+ - **`actor.state`**: An `Atom<Snapshot>` — an atom-based reactive handle on the machine snapshot.
105
105
  - **`actor.getSnapshot()`**: Synchronous snapshot access — use for one-time reads and TypeScript-typed context inspection.
106
106
  - **Typed `assign`**: Always call `setup.assign(...)` (not the bare `assign` from xstate) for context mutations.
107
107
 
@@ -224,7 +224,7 @@ view: {
224
224
 
225
225
  ## Connecting the Renderer
226
226
 
227
- The machine spec above defines view structure — but nothing renders until you wire a renderer. Use `createRenderer` from `@xmachines/play-dom`:
227
+ The machine spec above defines view structure — but nothing renders until you wire a renderer. Use `createRenderer` from [`@xmachines/play-dom`](../api/@xmachines/play-dom/README.md):
228
228
 
229
229
  ```typescript
230
230
  import { createRenderer, schema } from "@xmachines/play-dom";
@@ -416,8 +416,8 @@ const disconnect = connectRouter({
416
416
  ```
417
417
 
418
418
  The Svelte adapters take the same two prefix options. They need no `router`:
419
- `@xmachines/play-svelte-spa-router` reads an optional `window`, and
420
- `@xmachines/play-sveltekit-router` reads an optional `location`.
419
+ [`@xmachines/play-svelte-spa-router`](../api/@xmachines/play-svelte-spa-router/README.md) reads an optional `window`, and
420
+ [`@xmachines/play-sveltekit-router`](../api/@xmachines/play-sveltekit-router/README.md) reads an optional `location`.
421
421
 
422
422
  ### What the Prefix Changes
423
423
 
@@ -480,7 +480,7 @@ getRouteMappings(tree, { basePath: "/:machineId/play" });
480
480
  // [{ stateId: "home", path: "/:machineId/play" }, ...]
481
481
  ```
482
482
 
483
- > **Param note.** Under a mount, `@xmachines/play-vue-router` and `@xmachines/play-solid-router` resolve each param from the stripped path with `URLPattern`, and not from the pre-parsed params of their framework: under a prefix the framework matched a route of the **host**, so those params describe the route of the machine never — and a collision of names carries the value of the host. With no prefix, both keep the parse of their framework whenever it reports at least one
483
+ > **Param note.** Under a mount, [`@xmachines/play-vue-router`](../api/@xmachines/play-vue-router/README.md) and [`@xmachines/play-solid-router`](../api/@xmachines/play-solid-router/README.md) resolve each param from the stripped path with `URLPattern`, and not from the pre-parsed params of their framework: under a prefix the framework matched a route of the **host**, so those params describe the route of the machine never — and a collision of names carries the value of the host. With no prefix, both keep the parse of their framework whenever it reports at least one
484
484
  > param the pattern declares, and every required one. A pattern whose params are ALL
485
485
  > optional and a framework that reports none — `/settings/:section?` under a catch-all of
486
486
  > the host — is settled by the PATH: `/settings` is the bare form of that pattern, so
@@ -489,7 +489,7 @@ getRouteMappings(tree, { basePath: "/:machineId/play" });
489
489
  > extraction reads that value.
490
490
  >
491
491
  > These branches decide the CALLS of a navigation, and never the availability of the API.
492
- > `@xmachines/play-router` carries `urlpattern-polyfill` as an ordinary dependency and it
492
+ > [`@xmachines/play-router`](../api/@xmachines/play-router/README.md) carries `urlpattern-polyfill` as an ordinary dependency and it
493
493
  > uses the native `URLPattern` when the runtime has one, so you install no polyfill and
494
494
  > you load none. A BAD pattern is a question of the route map: `RouteMap` compiles each
495
495
  > parameterized route in its constructor and throws an `InvalidRoutePatternError` there.
@@ -497,28 +497,28 @@ getRouteMappings(tree, { basePath: "/:machineId/play" });
497
497
 
498
498
  ## Adapter Summary
499
499
 
500
- | Package | Framework | Pattern | Key Import |
501
- | --------------------------------------- | --------------------- | --------------- | ------------------------------------------------------------------------- |
502
- | `@xmachines/play-dom-router` | Vanilla DOM | `connectRouter` | `connectRouter`, `createRouteMap`, `createBrowserHistory`, `createRouter` |
503
- | `@xmachines/play-react-router` | React Router 7/8 | Provider | `PlayRouterProvider`, `createRouteMapFromTree` |
504
- | `@xmachines/play-tanstack-react-router` | TanStack React Router | Provider | `PlayRouterProvider`, `createRouteMapFromTree` |
505
- | `@xmachines/play-solid-router` | SolidJS Router | Provider | `PlayRouterProvider`, `createRouteMap` |
506
- | `@xmachines/play-tanstack-solid-router` | TanStack Solid Router | Provider | `PlayRouterProvider`, `createRouteMap` |
507
- | `@xmachines/play-vue-router` | Vue Router | Provider | `PlayRouterProvider`, `createRouteMap` |
508
- | `@xmachines/play-sveltekit-router` | SvelteKit | `connectRouter` | `connectRouter`, `createRouteMap` |
509
- | `@xmachines/play-svelte-spa-router` | Svelte SPA Router | `connectRouter` | `connectRouter`, `createRouteMap` |
500
+ | Package | Framework | Pattern | Key Import |
501
+ | ------------------------------------------------------------------------------------------------- | --------------------- | --------------- | ------------------------------------------------------------------------- |
502
+ | [`@xmachines/play-dom-router`](../api/@xmachines/play-dom-router/README.md) | Vanilla DOM | `connectRouter` | `connectRouter`, `createRouteMap`, `createBrowserHistory`, `createRouter` |
503
+ | [`@xmachines/play-react-router`](../api/@xmachines/play-react-router/README.md) | React Router 7/8 | Provider | `PlayRouterProvider`, `createRouteMapFromTree` |
504
+ | [`@xmachines/play-tanstack-react-router`](../api/@xmachines/play-tanstack-react-router/README.md) | TanStack React Router | Provider | `PlayRouterProvider`, `createRouteMapFromTree` |
505
+ | [`@xmachines/play-solid-router`](../api/@xmachines/play-solid-router/README.md) | SolidJS Router | Provider | `PlayRouterProvider`, `createRouteMap` |
506
+ | [`@xmachines/play-tanstack-solid-router`](../api/@xmachines/play-tanstack-solid-router/README.md) | TanStack Solid Router | Provider | `PlayRouterProvider`, `createRouteMap` |
507
+ | [`@xmachines/play-vue-router`](../api/@xmachines/play-vue-router/README.md) | Vue Router | Provider | `PlayRouterProvider`, `createRouteMap` |
508
+ | [`@xmachines/play-sveltekit-router`](../api/@xmachines/play-sveltekit-router/README.md) | SvelteKit | `connectRouter` | `connectRouter`, `createRouteMap` |
509
+ | [`@xmachines/play-svelte-spa-router`](../api/@xmachines/play-svelte-spa-router/README.md) | Svelte SPA Router | `connectRouter` | `connectRouter`, `createRouteMap` |
510
510
 
511
511
  ## Renderer Packages
512
512
 
513
513
  Each framework also has a companion renderer package for the view layer:
514
514
 
515
- | Package | Framework | Key API |
516
- | ------------------------ | ----------- | -------------------------------------------------- |
517
- | `@xmachines/play-dom` | Vanilla DOM | `createPlayUI`, `createRenderer`, `defineRegistry` |
518
- | `@xmachines/play-react` | React | `PlayRenderer`, `defineRegistry` |
519
- | `@xmachines/play-solid` | SolidJS | `PlayRenderer`, `defineRegistry` |
520
- | `@xmachines/play-vue` | Vue 3 | `PlayRenderer`, `defineRegistry` |
521
- | `@xmachines/play-svelte` | Svelte 5 | `PlayRenderer`, `defineRegistry` |
515
+ | Package | Framework | Key API |
516
+ | ------------------------------------------------------------------- | ----------- | -------------------------------------------------- |
517
+ | [`@xmachines/play-dom`](../api/@xmachines/play-dom/README.md) | Vanilla DOM | `createPlayUI`, `createRenderer`, `defineRegistry` |
518
+ | [`@xmachines/play-react`](../api/@xmachines/play-react/README.md) | React | `PlayRenderer`, `defineRegistry` |
519
+ | [`@xmachines/play-solid`](../api/@xmachines/play-solid/README.md) | SolidJS | `PlayRenderer`, `defineRegistry` |
520
+ | [`@xmachines/play-vue`](../api/@xmachines/play-vue/README.md) | Vue 3 | `PlayRenderer`, `defineRegistry` |
521
+ | [`@xmachines/play-svelte`](../api/@xmachines/play-svelte/README.md) | Svelte 5 | `PlayRenderer`, `defineRegistry` |
522
522
 
523
523
  ## Architectural Invariants
524
524
 
@@ -526,9 +526,9 @@ All adapters preserve the 5 architectural invariants:
526
526
 
527
527
  1. **Actor Authority (INV-01):** Machine guards validate all navigation
528
528
  2. **Strict Separation (INV-02):** Business logic (machine) has zero framework imports
529
- 3. **State-Driven Reset (INV-03):** Browser back/forward sends `play.route` events to actor
529
+ 3. **Atom-Only Reactivity (INV-03):** atoms work identically in all adapters
530
530
  4. **Passive Infrastructure (INV-04):** Router observes actor, never decides
531
- 5. **Signal-Only Reactivity (INV-05):** TC39 Signals work identically in all adapters
531
+ 5. **State-Driven Reset (INV-05):** Browser back/forward sends `play.route` events to actor
532
532
 
533
533
  ## Next Steps
534
534
 
@@ -6,7 +6,7 @@ How the `authMachine` uses `meta.route`, `play.route` events, `formatPlayRouteTr
6
6
 
7
7
  XMachines inverts the usual routing model. The **actor** owns navigation — its guards decide which states are valid. The **router** is passive infrastructure that observes `actor.currentRoute` and keeps the browser URL in sync. This is **Actor Authority (INV-01)**.
8
8
 
9
- Every routing interaction starts with a `play.route` event sent to the actor. If the machine's guards allow the transition, the state changes and `actor.currentRoute` updates. The router bridge sees the new signal value and pushes a history entry. The URL never changes unless the actor approves.
9
+ Every routing interaction starts with a `play.route` event sent to the actor. If the machine's guards allow the transition, the state changes and `actor.currentRoute` updates. The router bridge sees the new atom value and pushes a history entry. The URL never changes unless the actor approves.
10
10
 
11
11
  ## Key Concepts
12
12
 
@@ -240,7 +240,7 @@ actor.stop();
240
240
 
241
241
  ## Vanilla Router Setup
242
242
 
243
- To sync the browser URL with `actor.currentRoute`, use `@xmachines/play-dom-router`:
243
+ To sync the browser URL with `actor.currentRoute`, use [`@xmachines/play-dom-router`](../api/@xmachines/play-dom-router/README.md):
244
244
 
245
245
  ```typescript
246
246
  import { createBrowserHistory, createRouter, connectRouter } from "@xmachines/play-dom-router";
@@ -252,7 +252,7 @@ const history = createBrowserHistory({ window });
252
252
  const router = createRouter({ routeTree: authMachine, history });
253
253
 
254
254
  // connectRouter handles all bidirectional sync:
255
- // - actor.currentRoute signal → browser URL (history.push)
255
+ // - actor.currentRoute atom → browser URL (history.push)
256
256
  // - browser URL changes → play.route event sent to actor
257
257
  const disconnect = connectRouter({ actor, router, routeMap });
258
258
 
@@ -265,7 +265,7 @@ window.addEventListener("beforeunload", () => {
265
265
 
266
266
  ## React Router Setup
267
267
 
268
- For React, use `@xmachines/play-react-router` or `@xmachines/play-tanstack-react-router`:
268
+ For React, use [`@xmachines/play-react-router`](../api/@xmachines/play-react-router/README.md) or [`@xmachines/play-tanstack-react-router`](../api/@xmachines/play-tanstack-react-router/README.md):
269
269
 
270
270
  ```tsx
271
271
  import { PlayRouterProvider, createRouteMapFromTree } from "@xmachines/play-tanstack-react-router";
@@ -285,7 +285,7 @@ function App() {
285
285
  | ----------------------------------- | ---------------------------------------------------------------------------------------------- |
286
286
  | **Actor Authority (INV-01)** | Guards on the machine validate every navigation. The router cannot change state directly. |
287
287
  | **Passive Infrastructure (INV-04)** | The router observes `actor.currentRoute` — it never decides where to go. |
288
- | **State-Driven Reset (INV-03)** | Browser back/forward sends `play.route` events to the actor. History is driven by actor state. |
288
+ | **State-Driven Reset (INV-05)** | Browser back/forward sends `play.route` events to the actor. History is driven by actor state. |
289
289
  | **Strict Separation (INV-02)** | The machine has zero framework imports. Guards, actions, and context are pure TypeScript. |
290
290
 
291
291
  ## Next Steps
@@ -81,7 +81,7 @@ const createPlayer = definePlayer({
81
81
  const actor = createPlayer();
82
82
  actor.start();
83
83
 
84
- // 5. Read current route via signal
84
+ // 5. Read current route from the atom
85
85
  console.log(actor.currentRoute.get()); // "/red"
86
86
 
87
87
  // 6. Advance with domain events
@@ -123,14 +123,14 @@ on: {
123
123
  - The machine's context must include `params` and `query` fields (both `Record<string, string>`), because `formatPlayRouteTransitions` assigns them on every `play.route` transition.
124
124
  - `reenter` comes from the object form of `meta.route`, and the default is `false`. Declare `meta: { route: { path: "/red", reenter: true } }` for a state that must re-enter its own domain.
125
125
 
126
- ## `actor.currentRoute` Signal
126
+ ## The `actor.currentRoute` atom
127
127
 
128
- `actor.currentRoute` is a `Signal.Computed<string | null>` derived from the active state's `meta.route` template and `context.params`. Route signals let router bridges observe URL changes reactively without polling.
128
+ `actor.currentRoute` is a `ReadonlyAtom<string | null>` derived from the active state's `meta.route` template and `context.params`. A route atom lets a router bridge observe URL changes reactively without polling.
129
129
 
130
130
  ```typescript
131
- import { watchSignal } from "@xmachines/play-signals";
131
+ import { watchAtom } from "@xmachines/play-atom";
132
132
 
133
- const unwatch = watchSignal(actor.currentRoute, () => {
133
+ const unwatch = watchAtom(actor.currentRoute, () => {
134
134
  console.log("URL changed to:", actor.currentRoute.get());
135
135
  });
136
136
 
@@ -142,7 +142,7 @@ unwatch();
142
142
 
143
143
  - **`meta.route`**: Marks a state as routable. The value is a URL template (e.g. `"/profile/:username"`).
144
144
  - **`formatPlayRouteTransitions`**: Utility that auto-generates `play.route` handlers from `id` + `meta.route` pairs. Wrap your machine config before passing to `createMachine`.
145
- - **`actor.currentRoute`**: TC39 `Signal.Computed` containing the resolved URL for the active state.
145
+ - **`actor.currentRoute`**: a computed atom containing the resolved URL for the active state.
146
146
  - **`play.route` events**: Navigation events with a `to: "#stateId"` target. Use `to: "#red"` (state ID), not `to: "/red"` (URL path).
147
147
 
148
148
  ## Next Steps
package/guides/README.md CHANGED
@@ -13,7 +13,7 @@ Background reading that explains the _why_ behind XMachines design decisions.
13
13
  - **[Understanding State Machines](state-machines.md)** — What finite state machines are, how `meta.route` and `meta.view` extend them, and why they replace boolean flags and component-level routing logic
14
14
  - **[Understanding the Actor Model](actor-model.md)** — The actor/infrastructure split, why the machine has zero framework imports, and how the reset invariant works
15
15
  - **[Understanding Routing](routing.md)** — The URLPattern grammar that a `meta.route` path declares, the prefix rule that decides every optional route, and the three invariants that every router adapter follows
16
- - **[Understanding TC39 Signals](signals.md)** — The three signal primitives (`Signal.State`, `Signal.Computed`, `Signal.subtle.Watcher`), why XMachines uses them instead of observables, and the architectural invariants they enforce
16
+ - **[Understanding Atoms](atoms.md)** — The atom primitives (`createAtom`, `createWritableAtom`, `watchAtom`), why XMachines uses them instead of observables, and the architectural invariants they enforce
17
17
 
18
18
  ## Tooling
19
19
 
@@ -14,12 +14,12 @@ Every XMachines application has exactly two roles:
14
14
 
15
15
  **Infrastructure** — the runtime environment. It reflects actor state into the world and forwards world events to the actor. It has no opinion on whether a transition is valid.
16
16
 
17
- The boundary between them is enforced by the signal protocol: the actor exposes `Signal.State` and `Signal.Computed` properties; infrastructure observes them. The actor never calls into infrastructure; infrastructure never mutates actor state directly.
17
+ The boundary between them is enforced by the atom protocol: the actor exposes `Atom` and `ReadonlyAtom` properties; infrastructure observes them. The actor never calls into infrastructure; infrastructure never mutates actor state directly.
18
18
 
19
19
  ```
20
20
  Actor (business logic)
21
21
  │
22
- │ emits signals: state, and currentRoute / currentView from its capabilities
22
+ │ emits atoms: state, and currentRoute / currentView from its capabilities
23
23
  ▼
24
24
  Infrastructure (runtime adapters)
25
25
  ├── Router Bridge — reflects currentRoute into the URL bar
@@ -35,13 +35,22 @@ Infrastructure → actor: only via actor.send({ type: "..." })
35
35
 
36
36
  An actor in XMachines is a [`PlayerActor`](../api/@xmachines/play-xstate/index/classes/PlayerActor.md) — a concrete class that extends XState's `Actor` class via [`PlayActor`](../api/@xmachines/play-actor/interfaces/PlayActor.md). It implements three reactive properties:
37
37
 
38
- | Property | Type | What it is |
39
- | -------------------- | --------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- |
40
- | `actor.state` | `Signal.State<Snapshot>` | Updated on every XState transition. The full machine snapshot. |
41
- | `actor.currentRoute` | `Signal.Computed<string \| null>` | Derived from the active state node's `meta.route`. Needs the routing capability. |
42
- | `actor.currentView` | `Signal.State<PlaySpec \| null>` | Updated on each transition. Holds the [`PlaySpec`](../api/@xmachines/play-view/index/interfaces/PlaySpec.md) that drives renderers. Needs the view capability. |
38
+ | Property | Type | What it is |
39
+ | -------------------- | -------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- |
40
+ | `actor.state` | `Atom<Snapshot>` | The ONE atom the actor writes. Updated on every XState transition, with the full machine snapshot. |
41
+ | `actor.currentRoute` | `ReadonlyAtom<string \| null>` | DERIVED from `state`, through the active state node's `meta.route`. Needs the routing capability. |
42
+ | `actor.currentView` | `ReadonlyAtom<PlaySpec \| null>` | DERIVED from `state`. Holds the [`PlaySpec`](../api/@xmachines/play-view/index/interfaces/PlaySpec.md) that drives renderers. Needs the view capability. |
43
43
 
44
- All three are set by the actor, never by infrastructure. Infrastructure reads them via signals.
44
+ Infrastructure reads all three and writes none of them.
45
+
46
+ **One write for each transition, and two derivations from it.** `state` receives the new
47
+ snapshot, and the engine then evaluates `currentRoute` and `currentView` from it in one
48
+ propagation. An observer that reads two of these atoms therefore never sees the new state
49
+ beside an old derivation, and the composition order of the capabilities decides nothing.
50
+
51
+ A derivation that fails reports through the `onError` option of the actor and keeps its
52
+ last good value. It throws never, because it runs inside the write and a throw would break
53
+ the transition for every other observer. See [Understanding Atoms](atoms.md).
45
54
 
46
55
  The actor also owns:
47
56
 
@@ -58,7 +67,7 @@ Infrastructure owns everything that touches the environment:
58
67
  - **Pushing URLs**: reading `actor.currentRoute` and calling `history.pushState()` or a router's navigation API.
59
68
  - **Forwarding navigation events**: listening to `popstate`, `routeChange`, or equivalent, then calling `actor.send({ type: "play.route", to: path })`.
60
69
  - **Rendering**: reading `actor.currentView` and projecting the spec through framework components.
61
- - **Lifecycle**: connecting on mount, disconnecting on unmount, explicitly cleaning up signal subscriptions.
70
+ - **Lifecycle**: connecting on mount, disconnecting on unmount, explicitly cleaning up atom subscriptions.
62
71
 
63
72
  Infrastructure does **not**:
64
73
 
@@ -77,7 +86,7 @@ If a user navigates directly to `/admin` in the browser but the actor's guards r
77
86
  1. Receives `{ type: "play.route", to: "/admin" }` from the router bridge.
78
87
  2. Evaluates its guards. The guard fails.
79
88
  3. Does not transition. It remains in its current state (e.g., `/login`).
80
- 4. `actor.currentRoute` still signals `"/login"`.
89
+ 4. `actor.currentRoute` still holds `"/login"`.
81
90
  5. The router bridge, watching `currentRoute`, calls its `navigateRouter("/login")` method.
82
91
  6. The URL bar resets to `/login`.
83
92
 
@@ -97,7 +106,7 @@ An adapter extends the actor class of its own engine. [`PlayerActor`](../api/@xm
97
106
  - XState DevTools attach to actors normally
98
107
  - The full XState ecosystem (testing utilities, visualization) is compatible
99
108
 
100
- [`PlayActor`](../api/@xmachines/play-actor/interfaces/PlayActor.md) asks for two members: a reactive `state` property of type `Signal.State<TSnapshot>`, and a typed `send`. `state` is the single point where the pull-based snapshot API of an engine is bridged to the push-based signal system of TC39.
109
+ [`PlayActor`](../api/@xmachines/play-actor/interfaces/PlayActor.md) asks for two members: a reactive `state` property of type `Atom<TSnapshot>`, and a typed `send`. `state` is the single point where the pull-based snapshot API of an engine is bridged to the push-based atom system.
101
110
 
102
111
  The two optional capability interfaces — [`Routable`](../api/@xmachines/play-router/index/interfaces/Routable.md) and [`Viewable`](../api/@xmachines/play-view/index/interfaces/Viewable.md) — are deliberately separate:
103
112
 
@@ -109,7 +118,7 @@ An actor implements only the capabilities it actually uses:
109
118
  ```typescript
110
119
  // Minimal actor: the contract alone, which is reactive state and send
111
120
  class MinimalActor implements PlayActor<SomeSnapshot, SomeEvent> {
112
- readonly state = new Signal.State<SomeSnapshot>(initial);
121
+ readonly state = createAtom<SomeSnapshot>(initial);
113
122
  send(event: SomeEvent): void {
114
123
  /* dispatch */
115
124
  }
@@ -121,9 +130,9 @@ class PlayerActor
121
130
  extends Actor<SomeMachine>
122
131
  implements PlayActor<SomeSnapshot, SomeEvent>, Routable, Viewable
123
132
  {
124
- readonly state = new Signal.State(this.getSnapshot());
125
- readonly currentRoute = new Signal.Computed(() => deriveRoute(this.state.get()));
126
- readonly currentView = new Signal.State<PlaySpec | null>(null);
133
+ readonly state = createAtom(this.getSnapshot());
134
+ readonly currentRoute = createAtom(() => deriveRoute(this.state.get()));
135
+ readonly currentView = createAtom((): PlaySpec | null => deriveView(this.state.get()));
127
136
  }
128
137
  ```
129
138
 
@@ -161,7 +170,7 @@ const actor = createPlayer(undefined, { snapshot }); // restored from snapshot
161
170
 
162
171
  The machine definition — the `setup().createMachine(...)` call — is pure TypeScript with zero runtime dependencies on browsers, routers, or UI frameworks. This is not a convention; it is enforced by the dependency graph.
163
172
 
164
- [`@xmachines/play-xstate`](../api/@xmachines/play-xstate/README.md) depends on `xstate` and [`@xmachines/play-signals`](../api/@xmachines/play-signals/README.md). It does not depend on React, Vue, any router library, or any browser API. Your machine file inherits those same boundaries.
173
+ [`@xmachines/play-xstate`](../api/@xmachines/play-xstate/README.md) depends on `xstate` and [`@xmachines/play-atom`](../api/@xmachines/play-atom/README.md). It does not depend on React, Vue, any router library, or any browser API. Your machine file inherits those same boundaries.
165
174
 
166
175
  This has concrete practical benefits:
167
176
 
@@ -181,7 +190,7 @@ The Play RFC captures the actor/infrastructure split in a single statement:
181
190
 
182
191
  ## See also
183
192
 
184
- - [Understanding TC39 Signals](signals.md) — how the actor communicates with infrastructure
193
+ - [Understanding Atoms](atoms.md) — how the actor communicates with infrastructure
185
194
  - [Understanding State Machines](state-machines.md) — how the machine definition drives actor behavior
186
195
  - [Getting Started](getting-started.md) — hands-on walkthrough creating and starting an actor
187
196
  - [@xmachines/play-actor](../api/@xmachines/play-actor/README.md) — API reference for [`PlayActor`](../api/@xmachines/play-actor/interfaces/PlayActor.md)