@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
@@ -1,18 +1,19 @@
1
1
  [Examples](../../README.md) / @xmachines/play-sveltekit-router-demo
2
2
 
3
- <!-- generated-by: gsd-doc-writer -->
4
-
5
3
  # @xmachines/play-sveltekit-router-demo
6
4
 
7
5
  Svelte 5 + SvelteKit router adapter integration demo for the XMachines Play architecture using browser pathname URL routing.
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
  - `connectRouter` pathname URL ↔ actor sync via [`@xmachines/play-sveltekit-router`](../../../api/@xmachines/play-sveltekit-router/README.md)
13
13
  - Shell-driven rendering via `PlayUIProvider` + `PlayRenderer` with actor-authoritative navigation
14
- - Canonical TC39 Signals lifecycle integrated with Svelte 5 runes
14
+ - Canonical atoms lifecycle integrated with Svelte 5 runes
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
 
@@ -32,13 +33,18 @@ Use this order to understand the implementation:
32
33
  1. `src/main.ts` mounts `App.svelte` and registers HMR cleanup via `cleanup`.
33
34
  2. `src/runtime.ts` creates the actor, builds the registry, calls `createRouteMap(authMachine)`, and wires `connectRouter({ actor, routeMap })`.
34
35
  3. `connectRouter` synchronizes browser pathname changes with the actor via `play.route` events and reflects actor-approved routes back to the pathname URL.
35
- 4. `src/App.svelte` imports the singleton `actor` and `registryResult` from `src/runtime.ts` and delegates to the shared `Shell.svelte`.
36
- 5. `Shell.svelte` renders `<PlayUIProvider>` + `<PlayRenderer />` with the actor and registryResult and provides the shared UI shell (nav, debug panel).
36
+ 4. `src/App.svelte` imports the singleton `actor`, `registryResult`, and `inspector` from `src/runtime.ts` and delegates to the shared `Shell.svelte`.
37
+ 5. `Shell.svelte` renders `<PlayUIProvider>` + `<PlayRenderer />` with the actor and registryResult and provides the shared UI shell (nav, debug panel with the **Show Inspector** button).
37
38
  6. Browser tests in `test/browser/` validate startup and auth route transitions.
38
39
 
39
40
  ```ts
40
41
  // src/runtime.ts (shape)
41
- const createDemoPlayer = definePlayer({ machine: authMachine });
42
+ export const inspector = createDemoInspector();
43
+ const createDemoPlayer = definePlayer({
44
+ machine: authMachine,
45
+ options: { inspect: inspector.inspect },
46
+ actor: compose(PlayerActor, withRouting, withView),
47
+ });
42
48
  export const actor = createDemoPlayer();
43
49
  actor.start();
44
50
 
@@ -55,10 +61,10 @@ export function cleanup(): void {
55
61
  <!-- src/App.svelte (shape) -->
56
62
  <script lang="ts">
57
63
  import { Shell } from "@xmachines/play-svelte-demo";
58
- import { actor, registryResult } from "./runtime.js";
64
+ import { actor, inspector, registryResult } from "./runtime.js";
59
65
  </script>
60
66
 
61
- <Shell {actor} {registryResult} />
67
+ <Shell {actor} {registryResult} {inspector} />
62
68
  ```
63
69
 
64
70
  ```svelte
@@ -84,19 +90,17 @@ The demo utilizes XMachines architectural invariants:
84
90
 
85
91
  1. **Actor Authority:** When a user clicks a nav link, the browser pathname changes. `connectRouter` intercepts this, translates it to a `play.route` event, and sends it to the actor. The actor evaluates guards (e.g. `isAuthenticated`) and transitions to the appropriate state.
86
92
  2. **Passive Infrastructure:** The SvelteKit router adapter does not execute business logic. The actor dictates whether navigation is permitted. The Svelte application only renders the state.
87
- 3. **Signal-Only Reactivity:** The bridge leverages Svelte 5 rune reactivity internally to react precisely when actor signals update, without ad-hoc `$state` stores for business logic.
93
+ 3. **Atom-Only Reactivity:** The bridge leverages Svelte 5 rune reactivity internally to react precisely when actor atoms update, without ad-hoc `$state` stores for business logic.
88
94
 
89
95
  ## Watcher Lifecycle and Cleanup Contract
90
96
 
91
97
  This demo follows the canonical watcher lifecycle used across all `@xmachines` framework adapters:
92
98
 
93
- 1. `notify`
94
- 2. `queueMicrotask`
95
- 3. `getPending()`
96
- 4. Read actor signals and project Svelte-local render state
97
- 5. Re-arm with `watch()`/`watch(...signals)`
99
+ 1. The atom notifies the subscription, synchronously, from the `set` that changed it
100
+ 2. `watchAtom` queues one microtask, and it drops each duplicate notification of that batch
101
+ 3. The microtask reads the actor atoms and projects Svelte-local render state
98
102
 
99
- Watcher notifications are one-shot. Cleanup is explicit: `cleanup()` calls `disconnectRouter()` and `actor.stop()` during HMR disposal, preventing memory leaks and ghost subscriptions.
103
+ One subscription lives for the whole watch, and no caller arms a watcher again. Cleanup is explicit: `cleanup()` calls `disconnectRouter()` and `actor.stop()` during HMR disposal, preventing memory leaks and ghost subscriptions.
100
104
 
101
105
  ## Adapter Boundaries
102
106
 
@@ -116,18 +120,8 @@ These commands are defined in `package.json`:
116
120
  | `pnpm --filter @xmachines/play-sveltekit-router-demo run test` | Run Vitest test suite |
117
121
  | `pnpm --filter @xmachines/play-sveltekit-router-demo run test:browser` | Run browser-focused Vitest suite |
118
122
 
119
- ## Verification
120
-
121
- Use these checks to validate README claims against the current demo implementation:
122
-
123
- ```bash
124
- pnpm --filter @xmachines/play-sveltekit-router-demo run test
125
- pnpm --filter @xmachines/play-sveltekit-router-demo run test:browser
126
- ```
127
-
128
- Expected result: library-pattern invariant tests pass and the browser demo suite validates startup rendering and auth navigation.
129
-
130
123
  ## Learn More
131
124
 
132
125
  - [SvelteKit Router](../../../api/@xmachines/play-sveltekit-router/README.md)
133
126
  - [Svelte](../../../api/@xmachines/play-svelte/README.md)
127
+ - [Inspecting a Running Actor](../../../guides/inspector.md)
@@ -1,17 +1,18 @@
1
1
  [Examples](../../README.md) / @xmachines/play-tanstack-react-router-demo
2
2
 
3
- <!-- generated-by: gsd-doc-writer -->
4
-
5
3
  # @xmachines/play-tanstack-react-router-demo
6
4
 
7
5
  React + TanStack Router integration demo for the XMachines Play architecture with actor-authoritative routing.
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 TanStack Router
13
13
  - Shell-driven rendering via `PlayRenderer` with actor-authoritative navigation
14
14
  - Non-browser invariant tests plus browser E2E coverage
15
+ - Stately inspector attached at creation via `options.inspect` — the debug panel's **Show Inspector** button opens the live machine in its own window
15
16
 
16
17
  ## Running the Demo
17
18
 
@@ -30,13 +31,16 @@ Use this order to understand the implementation:
30
31
 
31
32
  1. `src/main.tsx` mounts `<App />`.
32
33
  2. `src/App.tsx` calls `useMemo(createAppRuntime, [])` to create the actor from the shared machine and start it once per mounted app.
33
- 3. `src/runtime.ts` exports `createPlayer` (via `definePlayer`), `routeMap` (via `createRouteMap(authMachine)`), and `createRegistryResult` which binds UI components and actor event actions.
34
+ 3. `src/runtime.ts` exports `inspector` (via `createDemoInspector()`), `createPlayer` (via `definePlayer`, with `options.inspect` wired to the inspector), `routeMap` (via `createRouteMap(authMachine)`), and `createRegistryResult` which binds UI components and actor event actions.
34
35
  4. `createAppRuntime()` constructs a TanStack `createRootRoute`/`createRouter` instance, then `PlayRouterProvider` bridges it to the actor and renders `Shell` via `renderer(actor, router)`.
35
- 5. `Shell` renders `PlayRenderer`, header/nav, and debug panel from actor state.
36
+ 5. `Shell` is the shared demo layout component imported from `@xmachines/play-react-demo` (defined in `packages/play-react/examples/demo/src/components/Shell.tsx`, a workspace-only package). It renders `PlayUIProvider` + `PlayRenderer`, header/nav, and the debug panel — including the **Show Inspector** button — from actor state.
36
37
  6. Tests in `test/` and `test/browser/` validate invariant and runtime behavior.
37
38
 
38
39
  ```tsx
39
40
  // src/App.tsx (shape)
41
+ import { Shell } from "@xmachines/play-react-demo"; // shared demo shell (workspace-only package)
42
+ import { createPlayer, inspector, routeMap, createRegistryResult } from "./runtime.js";
43
+
40
44
  function createAppRuntime() {
41
45
  const actor = createPlayer();
42
46
  actor.start();
@@ -57,7 +61,12 @@ return (
57
61
  router={router}
58
62
  routeMap={routeMap}
59
63
  renderer={(currentActor, currentRouter) => (
60
- <Shell actor={currentActor} router={currentRouter} registryResult={registryResult} />
64
+ <Shell
65
+ actor={currentActor}
66
+ router={currentRouter}
67
+ registryResult={registryResult}
68
+ inspector={inspector}
69
+ />
61
70
  )}
62
71
  />
63
72
  );
@@ -65,16 +74,17 @@ return (
65
74
 
66
75
  ```tsx
67
76
  // src/runtime.ts (shape)
68
- export const createPlayer = definePlayer({ machine: authMachine });
77
+ export const inspector = createDemoInspector();
78
+ export const createPlayer = definePlayer({
79
+ machine: authMachine,
80
+ options: { inspect: inspector.inspect },
81
+ });
69
82
  export const routeMap = createRouteMap(authMachine);
70
83
 
71
- export function createRegistryResult(actor) {
84
+ export function createRegistryResult(actor: ReturnType<typeof createPlayer>) {
72
85
  return defineRegistry(authCatalog, {
73
- actions: {
74
- login: async (args) => actor.send({ type: "auth.login", username: args.username }),
75
- logout: async () => actor.send({ type: "auth.logout" }),
76
- route: async (args) => actor.send({ type: "play.route", to: args.to, ...args.params }),
77
- },
86
+ components: demoComponents,
87
+ actions: createAuthActionHandlers(actor),
78
88
  });
79
89
  }
80
90
  ```
@@ -87,7 +97,7 @@ export function createRegistryResult(actor) {
87
97
  - `test/actor-authority.test.ts` - actor authority and guarded navigation behavior
88
98
  - `test/passive-infra.test.ts` - passive infrastructure separation contracts
89
99
  - `test/strict-separation.test.ts` - machine/view infrastructure separation contracts
90
- - `test/signal-only.test.ts` - signal-only reactivity invariant
100
+ - `test/atom-only.test.ts` - atom-only reactivity invariant
91
101
  - `test/route-parameters.test.ts` - route parameter handling
92
102
  - `test/invalid-route-redirect.test.ts` - invalid route redirect behavior
93
103
  - `test/xstate-route-events.test.ts` - XState route event contracts
@@ -108,19 +118,17 @@ The demo utilizes XMachines architectural invariants:
108
118
 
109
119
  1. **Actor Authority:** When a user navigates to a protected route, TanStack Router updates the URL. 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 executes state transitions.
110
120
  2. **Passive Infrastructure:** The router does not execute route loaders or guards for business logic. The actor dictates whether navigation is permitted.
111
- 3. **Signal-Only Reactivity:** The bridge leverages React's internal mechanisms combined with TanStack's `router.subscribe` to react precisely when signals update, without relying on `useEffect` synchronization inside the application codebase.
121
+ 3. **Atom-Only Reactivity:** The bridge leverages React's internal mechanisms combined with TanStack's `router.subscribe` to react precisely when atoms update, without relying on `useEffect` synchronization inside the application codebase.
112
122
 
113
123
  ## Watcher Lifecycle and Cleanup Contract
114
124
 
115
125
  This demo follows the canonical watcher lifecycle:
116
126
 
117
- 1. `notify`
118
- 2. `queueMicrotask`
119
- 3. `getPending()`
120
- 4. Read actor signals and trigger React state updates
121
- 5. Re-arm with `watch()`/`watch(...signals)`
127
+ 1. The atom notifies the subscription, synchronously, from the `set` that changed it
128
+ 2. `watchAtom` queues one microtask, and it drops each duplicate notification of that batch
129
+ 3. The microtask reads the actor atoms and triggers React state updates
122
130
 
123
- Watcher notifications are one-shot. Cleanup is explicit and lifecycle-bound: the provider automatically triggers `bridge.disconnect()` when the component tree unmounts to prevent memory leaks and zombie subscriptions.
131
+ One subscription lives for the whole watch, and no caller arms a watcher again. Cleanup is explicit and lifecycle-bound: the provider automatically triggers `bridge.disconnect()` when the component tree unmounts to prevent memory leaks and zombie subscriptions.
124
132
 
125
133
  ## Adapter Boundaries
126
134
 
@@ -138,19 +146,9 @@ These commands are defined in `package.json`:
138
146
  | `pnpm --filter @xmachines/play-tanstack-react-router-demo run test` | Run Vitest test suite |
139
147
  | `pnpm --filter @xmachines/play-tanstack-react-router-demo run test:browser` | Run browser-focused Vitest suite |
140
148
 
141
- ## Verification
142
-
143
- Use these checks to validate README claims against the current demo implementation:
144
-
145
- ```bash
146
- pnpm --filter @xmachines/play-tanstack-react-router-demo run test
147
- pnpm --filter @xmachines/play-tanstack-react-router-demo run test:browser
148
- ```
149
-
150
- Expected result: invariant test suite and the browser shared-demo suite both pass, confirming actor authority, route sync, and guard-driven redirection.
151
-
152
149
  ## Learn More
153
150
 
154
151
  - [TanStack React Router](../../../api/@xmachines/play-tanstack-react-router/README.md)
155
152
  - [React](../../../api/@xmachines/play-react/README.md)
156
153
  - [TanStack Solid Router](../play-tanstack-solid-router-demo/README.md)
154
+ - [Inspecting a Running Actor](../../../guides/inspector.md)
@@ -1,11 +1,11 @@
1
1
  [Examples](../../README.md) / @xmachines/play-tanstack-solid-router-demo
2
2
 
3
- <!-- generated-by: gsd-doc-writer -->
4
-
5
3
  # @xmachines/play-tanstack-solid-router-demo
6
4
 
7
5
  Solid + `@tanstack/solid-router` integration demo for the XMachines Play architecture with actor-authoritative routing.
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
@@ -13,6 +13,7 @@ Solid + `@tanstack/solid-router` integration demo for the XMachines Play archite
13
13
  - Shell-driven rendering via `PlayRenderer` with actor-authoritative navigation
14
14
  - Object-based routing and deep location observation using TanStack's Solid primitives
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 the implementation:
33
34
  2. `src/runtime.ts` initializes the actor, builds the registry, and creates the route map using `createRouteMap(authMachine)`.
34
35
  3. `src/App.tsx` constructs the TanStack Router route tree from machine routes and wires `PlayRouterProvider` with the actor, router, and route map from `runtime.ts`.
35
36
  4. Router infrastructure stays passive: it forwards navigation intent to the actor via the `PlayRouterProvider` and reflects actor-approved route changes back to TanStack.
36
- 5. `Shell` (from `@xmachines/play-solid-demo`) renders actor-projected state (`PlayRenderer`) and emits actor events via the `registryResult` actions.
37
+ 5. `Shell` (from `@xmachines/play-solid-demo`) renders actor-projected state (`PlayRenderer`), emits actor events via the `registryResult` actions, and shows the debug panel's **Show Inspector** button.
37
38
  6. `test/library-pattern.test.ts` plus `test/browser/` verify invariants and browser routing behavior.
38
39
 
39
40
  ```tsx
@@ -43,7 +44,11 @@ render(() => <App />, document.getElementById("app")!);
43
44
 
44
45
  ```ts
45
46
  // src/runtime.ts (shape)
46
- const createPlayer = definePlayer({ machine: authMachine });
47
+ export const inspector = createDemoInspector();
48
+ const createPlayer = definePlayer({
49
+ machine: authMachine,
50
+ options: { inspect: inspector.inspect },
51
+ });
47
52
  export const actor = createPlayer();
48
53
  actor.start();
49
54
 
@@ -54,25 +59,30 @@ export const routes = getRoutableRoutes(routeTree);
54
59
 
55
60
  ```tsx
56
61
  // src/App.tsx (shape)
57
- import { actor, registryResult, routeMap, routes } from "./runtime.js";
62
+ import { Shell } from "@xmachines/play-solid-demo"; // shared demo shell (workspace-only package)
63
+ import { actor, inspector, registryResult, routeMap, routes } from "./runtime.js";
58
64
 
65
+ // router: the TanStack router built below in src/App.tsx from `routes`
59
66
  return (
60
67
  <PlayRouterProvider
61
68
  actor={actor}
62
69
  router={router}
63
70
  routeMap={routeMap}
64
71
  renderer={(currentActor, currentRouter) => (
65
- <Shell actor={currentActor} router={currentRouter} registryResult={registryResult} />
72
+ <Shell
73
+ actor={currentActor}
74
+ router={currentRouter}
75
+ registryResult={registryResult}
76
+ inspector={inspector}
77
+ />
66
78
  )}
67
79
  />
68
80
  );
69
81
  ```
70
82
 
71
83
  ```ts
72
- // src/runtime.ts — actor events wired via registryResult actions
73
- login: async (args) => actor.send({ type: "auth.login", username: args.username }),
74
- logout: async () => actor.send({ type: "auth.logout" }),
75
- route: async (args) => actor.send({ type: "play.route", to: args.to, ...params }),
84
+ // src/runtime.ts — actor events wired via the shared handler factory
85
+ actions: createAuthActionHandlers(actor), // login/logout/route + task events + form actions
76
86
  ```
77
87
 
78
88
  ## Key Files
@@ -90,17 +100,15 @@ The demo utilizes XMachines architectural invariants:
90
100
 
91
101
  1. **Actor Authority:** When a user clicks a link, TanStack Router updates the location object. The `PlayRouterProvider` intercepts this, translates it to a `play.route` event, and sends it to the actor. The actor evaluates guards and applies state transitions.
92
102
  2. **Passive Infrastructure:** The router does not execute route loaders or guards for business logic. The actor dictates whether navigation is permitted.
93
- 3. **Signal-Only Reactivity:** The bridge leverages Solid's `createEffect` and TanStack's `router.subscribe` to observe location changes and signal updates without polling.
103
+ 3. **Atom-Only Reactivity:** The bridge leverages Solid's `createEffect` and TanStack's `router.subscribe` to observe location changes and atom updates without polling.
94
104
 
95
105
  ## Watcher Lifecycle and Cleanup Contract
96
106
 
97
107
  This demo follows the canonical watcher lifecycle:
98
108
 
99
- 1. `notify`
100
- 2. `queueMicrotask`
101
- 3. `getPending()`
102
- 4. Read actor signals and trigger state updates
103
- 5. Re-arm with `watch()`/`watch(...signals)`
109
+ 1. The atom notifies the subscription, synchronously, from the `set` that changed it
110
+ 2. `watchAtom` queues one microtask, and it drops each duplicate notification of that batch
111
+ 3. The microtask reads the actor atoms and triggers state updates
104
112
 
105
113
  In Solid, this is largely abstracted by `createEffect` within the bridge adapter. Cleanup remains explicit: the provider executes `bridge.disconnect()` on unmount (`onCleanup`) to prevent ghost subscriptions, ensuring safe component teardown and hot module replacement.
106
114
 
@@ -120,20 +128,10 @@ These commands are defined in `package.json`:
120
128
  | `pnpm --filter @xmachines/play-tanstack-solid-router-demo run test` | Run Vitest test suite |
121
129
  | `pnpm --filter @xmachines/play-tanstack-solid-router-demo run test:browser` | Run browser-focused Vitest suite |
122
130
 
123
- ## Verification
124
-
125
- Use these checks to validate README claims against the current demo implementation:
126
-
127
- ```bash
128
- pnpm --filter @xmachines/play-tanstack-solid-router-demo run test
129
- pnpm --filter @xmachines/play-tanstack-solid-router-demo run test:browser
130
- ```
131
-
132
- Expected result: library-pattern invariant tests and the browser shared-demo suite both pass, confirming actor-driven route and view updates including protected route redirection.
133
-
134
131
  ## Learn More
135
132
 
136
133
  - [TanStack Solid Router](../../../api/@xmachines/play-tanstack-solid-router/README.md)
137
134
  - [SolidJS](../../../api/@xmachines/play-solid/README.md)
138
135
  - [Solid Router](../play-solid-router-demo/README.md)
139
136
  - [TanStack React Router](../play-tanstack-react-router-demo/README.md)
137
+ - [Inspecting a Running Actor](../../../guides/inspector.md)
@@ -1,18 +1,24 @@
1
1
  [Examples](../../README.md) / @xmachines/play-vue-demo
2
2
 
3
- <!-- generated-by: gsd-doc-writer -->
4
-
5
3
  # @xmachines/play-vue-demo
6
4
 
7
5
  Vue 3 renderer demo for [`@xmachines/play-vue`](../../../api/@xmachines/play-vue/README.md) — actor + `PlayRenderer` without a router.
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
  - `PlayRenderer` rendering actor-projected views with a typed `defineRegistry` catalog
13
13
  - Auth machine states drive view switching via `auth.login` / `auth.logout` events only — no URL routing
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 renderer 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
17
+ - json-render 0.20 showcase pages driven purely by spec:
18
+ - **Overview** — two data planes side by side: `/context/tasks` (machine context via the read-only `/context` projection; `repeat` + `key`, `$item`-filtered lists, per-row actions sending inspectable machine events) next to ephemeral store state (`pushState`/`removeState`/`setState` built-ins driving filter chips and toggles that survive context updates)
19
+ - **Stats** — nested repeats (`repeat.statePath: { $item: "members" }`) over `/context/teams`
20
+ - **Settings** — declarative field validation, the `validateForm` built-in, a confirm-gated `resetForm` host action, and `onSuccess`/`onError` chains
21
+ - **Contact** — a chained named action: submit validates, then routes home on success or writes `"$error.message"` to state on failure
16
22
 
17
23
  ## Running the Demo
18
24
 
@@ -29,23 +35,29 @@ Then open `http://localhost:3004`.
29
35
 
30
36
  Use this order to understand the implementation:
31
37
 
32
- 1. `src/main.ts` calls `definePlayer({ machine: authMachine })`, starts the actor, and mounts the Vue app.
38
+ 1. `src/main.ts` creates the page's inspector with `createDemoInspector()`, calls `definePlayer({ machine: authMachine, options: { inspect: inspector.inspect } })`, starts the actor, provides both `actor` and `inspector` to the app, and mounts it.
33
39
  2. The actor is provided to all components via `app.provide("actor", actor)`.
34
- 3. `src/App.vue` injects the actor, declares a typed `ComponentsMap<typeof authCatalog>` for `demoViews`, and builds the `registryResult` with `defineRegistry(authCatalog, { components: demoViews, actions })` inside `computed` — action handlers use `satisfies ActionFn` for catalog-typed safety and dispatch to `actor.send()`.
40
+ 3. `src/App.vue` injects the actor and builds the `registryResult` inside `computed` with `defineRegistry(authCatalog, { components: demoComponents, actions: createAuthActionHandlers(typedActor) })` — the component map lives once in `src/components/demo-components.ts` (shared with the router demos) and the handlers dispatch to `actor.send()`.
35
41
  4. `<PlayUIProvider :actor="typedActor" :registryResult="registryResult"><PlayRenderer /></PlayUIProvider>` observes `actor.currentView` and renders the active spec.
36
- 5. A `NavBar` SFC observes `actor` signals directly for nav visibility.
37
- 6. `<DebugPanel :actor="typedActor" />` shows live state, auth status, and current route.
42
+ 5. A `NavBar` SFC observes `actor` atoms directly for nav visibility.
43
+ 6. `<DebugPanel :actor="typedActor" :inspector="inspector" />` shows live state, auth status, and current route, plus the **Show Inspector** button.
38
44
  7. HMR cleanup calls `actor.stop()` via `import.meta.hot.dispose`.
39
45
  8. Browser tests in `test/browser/` validate startup and interaction behavior.
40
46
 
41
47
  ```ts
42
48
  // src/main.ts
43
- const createPlayer = definePlayer({ machine: authMachine });
49
+ const inspector = createDemoInspector();
50
+ const createPlayer = definePlayer({
51
+ machine: authMachine,
52
+ options: { inspect: inspector.inspect },
53
+ actor: compose(PlayerActor, withRouting, withView),
54
+ });
44
55
  const actor = createPlayer() as AuthActor;
45
56
  actor.start();
46
57
 
47
58
  const app = createApp(App);
48
59
  app.provide("actor", actor);
60
+ app.provide("inspector", inspector);
49
61
  app.mount("#app");
50
62
  ```
51
63
 
@@ -56,41 +68,12 @@ import type { ComponentsMap } from "@xmachines/play-vue";
56
68
  import type { ActionFn } from "@xmachines/json-render-vue";
57
69
 
58
70
  const typedActor = assertNonNullable(inject<AuthActor>("actor"), "actor");
59
-
60
- const demoViews: ComponentsMap<typeof authCatalog> = {
61
- Home: HomeSFC,
62
- About: AboutSFC,
63
- Contact: ContactSFC,
64
- Login: LoginSFC,
65
- Dashboard: DashboardSFC,
66
- Overview: OverviewSFC,
67
- Stats: StatsSFC,
68
- Profile: ProfileSFC,
69
- Settings: SettingsSFC,
70
- Navigation: NavigationSFC,
71
- NavBar: NavBarViewSFC,
72
- };
71
+ const inspector = assertNonNullable(inject<DemoInspector>("inspector"), "inspector");
73
72
 
74
73
  const registryResult = computed(() =>
75
74
  defineRegistry(authCatalog, {
76
- components: demoViews,
77
- actions: {
78
- login: (async (args) => {
79
- typedActor.send({
80
- type: "auth.login",
81
- username: assertNonNullable(args, "args").username,
82
- });
83
- }) satisfies ActionFn<typeof authCatalog, "login">,
84
- logout: async () => typedActor.send({ type: "auth.logout" }),
85
- route: (async (args) => {
86
- const { to, params } = assertNonNullable(args, "args");
87
- typedActor.send({
88
- type: "play.route",
89
- to,
90
- ...(params != null && { params }),
91
- });
92
- }) satisfies ActionFn<typeof authCatalog, "route">,
93
- },
75
+ components: demoComponents, // one shared map — Home…NavBar plus the 0.20 Panel/Field/Button leaves
76
+ actions: createAuthActionHandlers(typedActor), // login/logout/route + task events + form actions
94
77
  }),
95
78
  );
96
79
  </script>
@@ -106,7 +89,7 @@ const registryResult = computed(() =>
106
89
  <PlayRenderer />
107
90
  </PlayUIProvider>
108
91
  </main>
109
- <DebugPanel :actor="typedActor" />
92
+ <DebugPanel :actor="typedActor" :inspector="inspector" />
110
93
  </div>
111
94
  </template>
112
95
  ```
@@ -126,20 +109,18 @@ const registryResult = computed(() =>
126
109
  The demo utilizes XMachines architectural invariants:
127
110
 
128
111
  1. **Actor Authority:** View components dispatch `auth.login` and `auth.logout` events to the actor. The actor evaluates guards and transitions — Vue never decides which view to render.
129
- 2. **Passive Infrastructure:** `PlayRenderer` observes `actor.currentView` signals only. It holds no business state and makes no routing decisions.
130
- 3. **Signal-Only Reactivity:** The bridge leverages Vue's reactivity model internally to react precisely when actor signals update, without polluting the component tree with reactive refs holding business state.
112
+ 2. **Passive Infrastructure:** `PlayRenderer` observes `actor.currentView` atoms only. It holds no business state and makes no routing decisions.
113
+ 3. **Atom-Only Reactivity:** The bridge leverages Vue's reactivity model internally to react precisely when actor atoms update, without polluting the component tree with reactive refs holding business state.
131
114
 
132
115
  ## Watcher Lifecycle and Cleanup Contract
133
116
 
134
117
  This demo follows the canonical watcher lifecycle used across all `@xmachines` framework adapters:
135
118
 
136
- 1. `notify`
137
- 2. `queueMicrotask`
138
- 3. `getPending()`
139
- 4. Read actor signals and sync Vue-local render state
140
- 5. Re-arm with `watch()`/`watch(...signals)`
119
+ 1. The atom notifies the subscription, synchronously, from the `set` that changed it
120
+ 2. `watchAtom` queues one microtask, and it drops each duplicate notification of that batch
121
+ 3. The microtask reads the actor atoms and syncs Vue-local render state
141
122
 
142
- Watcher notifications are one-shot. Cleanup is explicit: `actor.stop()` is called during HMR disposal, and `PlayRenderer` handles internal watcher teardown natively on component unmount.
123
+ One subscription lives for the whole watch, and no caller arms a watcher again. Cleanup is explicit: `actor.stop()` is called during HMR disposal, and `PlayRenderer` handles internal watcher teardown natively on component unmount.
143
124
 
144
125
  ## Adapter Boundaries
145
126
 
@@ -157,21 +138,11 @@ These commands are defined in `package.json`:
157
138
  | `pnpm --filter @xmachines/play-vue-demo run test` | Run Vitest test suite |
158
139
  | `pnpm --filter @xmachines/play-vue-demo run test:browser` | Run browser-focused Vitest suite |
159
140
 
160
- ## Verification
161
-
162
- Use these checks to validate README claims against the current demo implementation:
163
-
164
- ```bash
165
- pnpm --filter @xmachines/play-vue-demo run test
166
- pnpm --filter @xmachines/play-vue-demo run test:browser
167
- ```
168
-
169
- Expected result: library-pattern invariant tests pass and the browser renderer suite completes.
170
-
171
141
  ## Learn More
172
142
 
173
143
  - [Vue](../../../api/@xmachines/play-vue/README.md)
174
144
  - [Vue Router](../play-vue-router-demo/README.md)
145
+ - [Inspecting a Running Actor](../../../guides/inspector.md)
175
146
 
176
147
  ## Type Aliases
177
148
 
@@ -181,3 +152,8 @@ Expected result: library-pattern invariant tests pass and the browser renderer s
181
152
 
182
153
  - [App](variables/App.md)
183
154
  - [authCatalog](variables/authCatalog.md)
155
+ - [demoComponents](variables/demoComponents.md)
156
+
157
+ ## Functions
158
+
159
+ - [createAuthActionHandlers](functions/createAuthActionHandlers.md)
@@ -0,0 +1,35 @@
1
+ [Examples](../../../README.md) / [@xmachines/play-vue-demo](../README.md) / createAuthActionHandlers
2
+
3
+ # Function: createAuthActionHandlers()
4
+
5
+ ```ts
6
+ function createAuthActionHandlers(actor): object;
7
+ ```
8
+
9
+ Defined in: [packages/play-actor/examples/shared/src/actions.ts:48](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.1/packages/play-actor/examples/shared/src/actions.ts#L48)
10
+
11
+ Build the demo action handler map for one actor.
12
+
13
+ Returned functions use the `(params, setState) => Promise<void>` shape every
14
+ framework's `defineRegistry` accepts; spread the result into its `actions`.
15
+
16
+ ## Parameters
17
+
18
+ | Parameter | Type |
19
+ | --------- | ----------- |
20
+ | `actor` | `AuthActor` |
21
+
22
+ ## Returns
23
+
24
+ `object`
25
+
26
+ | Name | Type | Defined in |
27
+ | ---------------- | ------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
28
+ | `addTask()` | (`params?`) => `Promise`\<`void`\> | [packages/play-actor/examples/shared/src/actions.ts:65](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.1/packages/play-actor/examples/shared/src/actions.ts#L65) |
29
+ | `completeTask()` | (`params`, `_setState`, `state`) => `Promise`\<`void`\> | [packages/play-actor/examples/shared/src/actions.ts:72](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.1/packages/play-actor/examples/shared/src/actions.ts#L72) |
30
+ | `login()` | (`params?`) => `Promise`\<`void`\> | [packages/play-actor/examples/shared/src/actions.ts:50](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.1/packages/play-actor/examples/shared/src/actions.ts#L50) |
31
+ | `logout()` | () => `Promise`\<`void`\> | [packages/play-actor/examples/shared/src/actions.ts:54](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.1/packages/play-actor/examples/shared/src/actions.ts#L54) |
32
+ | `removeTask()` | (`params`, `_setState`, `state`) => `Promise`\<`void`\> | [packages/play-actor/examples/shared/src/actions.ts:81](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.1/packages/play-actor/examples/shared/src/actions.ts#L81) |
33
+ | `resetForm()` | (`params`, `setState`) => `Promise`\<`void`\> | [packages/play-actor/examples/shared/src/actions.ts:99](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.1/packages/play-actor/examples/shared/src/actions.ts#L99) |
34
+ | `route()` | (`params?`) => `Promise`\<`void`\> | [packages/play-actor/examples/shared/src/actions.ts:55](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.1/packages/play-actor/examples/shared/src/actions.ts#L55) |
35
+ | `submitForm()` | (`params?`) => `Promise`\<`void`\> | [packages/play-actor/examples/shared/src/actions.ts:92](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.1/packages/play-actor/examples/shared/src/actions.ts#L92) |
@@ -6,4 +6,4 @@
6
6
  type AuthCatalog = typeof authCatalog;
7
7
  ```
8
8
 
9
- Defined in: [packages/play-vue/examples/demo/src/catalog.ts:6](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.56/packages/play-vue/examples/demo/src/catalog.ts#L6)
9
+ Defined in: [packages/play-vue/examples/demo/src/catalog.ts:6](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.1/packages/play-vue/examples/demo/src/catalog.ts#L6)
@@ -6,4 +6,4 @@
6
6
  const App: DefineComponent<{}, {}, unknown>;
7
7
  ```
8
8
 
9
- Defined in: [packages/play-vue/examples/demo/src/env.d.ts:5](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.56/packages/play-vue/examples/demo/src/env.d.ts#L5)
9
+ Defined in: [packages/play-vue/examples/demo/src/env.d.ts:5](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.1/packages/play-vue/examples/demo/src/env.d.ts#L5)