@xmachines/docs 1.0.0-beta.28 → 1.0.0-beta.30

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 (319) hide show
  1. package/api/@xmachines/play/README.md +4 -4
  2. package/api/@xmachines/play/classes/PlayError.md +10 -4
  3. package/api/@xmachines/play/type-aliases/PlayEvent.md +3 -3
  4. package/api/@xmachines/play-actor/README.md +6 -6
  5. package/api/@xmachines/play-actor/classes/AbstractActor.md +25 -3
  6. package/api/@xmachines/play-actor/functions/typedSpec.md +1 -1
  7. package/api/@xmachines/play-actor/interfaces/PlaySpec.md +2 -2
  8. package/api/@xmachines/play-actor/interfaces/Routable.md +3 -3
  9. package/api/@xmachines/play-actor/interfaces/ViewMetadata.md +3 -3
  10. package/api/@xmachines/play-actor/interfaces/Viewable.md +2 -2
  11. package/api/@xmachines/play-dom/classes/PlayRenderer.md +4 -4
  12. package/api/@xmachines/play-dom/functions/connectRenderer.md +1 -1
  13. package/api/@xmachines/play-dom/functions/defineRegistry.md +1 -1
  14. package/api/@xmachines/play-dom/functions/renderSpec.md +1 -1
  15. package/api/@xmachines/play-dom/interfaces/ComponentContext.md +7 -7
  16. package/api/@xmachines/play-dom/interfaces/ConnectRendererOptions.md +7 -7
  17. package/api/@xmachines/play-dom/interfaces/DefineRegistryOptions.md +3 -3
  18. package/api/@xmachines/play-dom/interfaces/DefineRegistryResult.md +3 -3
  19. package/api/@xmachines/play-dom/interfaces/DomRenderContext.md +7 -7
  20. package/api/@xmachines/play-dom/interfaces/EventHandle.md +4 -4
  21. package/api/@xmachines/play-dom/interfaces/PlayDomOptions.md +3 -3
  22. package/api/@xmachines/play-dom/type-aliases/ComponentFn.md +1 -1
  23. package/api/@xmachines/play-dom/type-aliases/ComponentRegistry.md +1 -1
  24. package/api/@xmachines/play-dom/type-aliases/DomComponentRenderer.md +1 -1
  25. package/api/@xmachines/play-dom/type-aliases/DomRegistry.md +1 -1
  26. package/api/@xmachines/play-dom-router/functions/connectRouter.md +1 -1
  27. package/api/@xmachines/play-dom-router/functions/createBrowserHistory.md +1 -1
  28. package/api/@xmachines/play-dom-router/functions/createRouteMap.md +1 -1
  29. package/api/@xmachines/play-dom-router/functions/createRouter.md +1 -1
  30. package/api/@xmachines/play-dom-router/interfaces/BrowserHistory.md +14 -14
  31. package/api/@xmachines/play-dom-router/interfaces/BrowserWindow.md +14 -14
  32. package/api/@xmachines/play-dom-router/interfaces/ConnectRouterOptions.md +4 -4
  33. package/api/@xmachines/play-dom-router/interfaces/PlayRouteEvent.md +7 -7
  34. package/api/@xmachines/play-dom-router/interfaces/RouteMap.md +3 -3
  35. package/api/@xmachines/play-dom-router/interfaces/RouteMapLike.md +3 -3
  36. package/api/@xmachines/play-dom-router/interfaces/RouteMapping.md +3 -3
  37. package/api/@xmachines/play-dom-router/interfaces/RouterBridge.md +4 -4
  38. package/api/@xmachines/play-dom-router/interfaces/VanillaRouter.md +4 -4
  39. package/api/@xmachines/play-dom-router/type-aliases/RoutableActor.md +1 -1
  40. package/api/@xmachines/play-react/README.md +1 -1
  41. package/api/@xmachines/play-react/classes/PlayErrorBoundary.md +31 -5
  42. package/api/@xmachines/play-react/functions/defineRegistry.md +2 -0
  43. package/api/@xmachines/play-react/functions/useActor.md +1 -1
  44. package/api/@xmachines/play-react/functions/useBoundProp.md +2 -0
  45. package/api/@xmachines/play-react/functions/useSignalEffect.md +1 -1
  46. package/api/@xmachines/play-react/functions/useStateBinding.md +2 -0
  47. package/api/@xmachines/play-react/interfaces/ComponentContext.md +2 -0
  48. package/api/@xmachines/play-react/interfaces/PlayErrorBoundaryProps.md +4 -4
  49. package/api/@xmachines/play-react/interfaces/PlayErrorBoundaryState.md +3 -3
  50. package/api/@xmachines/play-react/interfaces/PlayRendererProps.md +7 -7
  51. package/api/@xmachines/play-react/type-aliases/ComponentFn.md +2 -0
  52. package/api/@xmachines/play-react/type-aliases/PlayActor.md +1 -1
  53. package/api/@xmachines/play-react/variables/PlayRenderer.md +1 -1
  54. package/api/@xmachines/play-react-router/README.md +3 -3
  55. package/api/@xmachines/play-react-router/classes/ReactRouterBridge.md +23 -23
  56. package/api/@xmachines/play-react-router/classes/RouteMap.md +4 -4
  57. package/api/@xmachines/play-react-router/functions/PlayRouterProvider.md +1 -1
  58. package/api/@xmachines/play-react-router/functions/createRouteMapFromTree.md +1 -1
  59. package/api/@xmachines/play-react-router/interfaces/PlayRouteEvent.md +7 -7
  60. package/api/@xmachines/play-react-router/interfaces/PlayRouterProviderProps.md +5 -5
  61. package/api/@xmachines/play-react-router/interfaces/RouteMapping.md +3 -3
  62. package/api/@xmachines/play-react-router/interfaces/RouterBridge.md +4 -4
  63. package/api/@xmachines/play-router/README.md +5 -5
  64. package/api/@xmachines/play-router/classes/BaseRouteMap.md +4 -4
  65. package/api/@xmachines/play-router/classes/RouterBridgeBase.md +23 -23
  66. package/api/@xmachines/play-router/functions/buildPlayRouteEvent.md +1 -1
  67. package/api/@xmachines/play-router/functions/buildRouteTree.md +1 -1
  68. package/api/@xmachines/play-router/functions/createRouteMap.md +1 -1
  69. package/api/@xmachines/play-router/functions/createRouteMapFromMachine.md +1 -1
  70. package/api/@xmachines/play-router/functions/createRouteMapFromTree.md +1 -1
  71. package/api/@xmachines/play-router/functions/detectDuplicateRoutes.md +1 -1
  72. package/api/@xmachines/play-router/functions/extractMachineRoutes.md +1 -1
  73. package/api/@xmachines/play-router/functions/extractQuery.md +1 -1
  74. package/api/@xmachines/play-router/functions/extractRouteParams.md +1 -1
  75. package/api/@xmachines/play-router/functions/findRouteById.md +1 -1
  76. package/api/@xmachines/play-router/functions/findRouteByPath.md +1 -1
  77. package/api/@xmachines/play-router/functions/getNavigableRoutes.md +1 -1
  78. package/api/@xmachines/play-router/functions/getRoutableRoutes.md +1 -1
  79. package/api/@xmachines/play-router/functions/getTransitionReachableRoutes.md +1 -1
  80. package/api/@xmachines/play-router/functions/isRouteReachable.md +1 -1
  81. package/api/@xmachines/play-router/functions/machineToGraph.md +1 -1
  82. package/api/@xmachines/play-router/functions/routeExists.md +1 -1
  83. package/api/@xmachines/play-router/functions/sanitizePathname.md +1 -1
  84. package/api/@xmachines/play-router/functions/validateRouteFormat.md +1 -1
  85. package/api/@xmachines/play-router/functions/validateStateExists.md +1 -1
  86. package/api/@xmachines/play-router/interfaces/BuildPlayRouteEventOptions.md +4 -4
  87. package/api/@xmachines/play-router/interfaces/LocationLike.md +3 -3
  88. package/api/@xmachines/play-router/interfaces/MachineEdgeData.md +3 -3
  89. package/api/@xmachines/play-router/interfaces/MachineNodeData.md +5 -5
  90. package/api/@xmachines/play-router/interfaces/PlayRouteEvent.md +7 -7
  91. package/api/@xmachines/play-router/interfaces/RouteInfo.md +8 -8
  92. package/api/@xmachines/play-router/interfaces/RouteMap.md +4 -4
  93. package/api/@xmachines/play-router/interfaces/RouteMapping.md +3 -3
  94. package/api/@xmachines/play-router/interfaces/RouteMatch.md +3 -3
  95. package/api/@xmachines/play-router/interfaces/RouteNode.md +10 -10
  96. package/api/@xmachines/play-router/interfaces/RouteObject.md +2 -2
  97. package/api/@xmachines/play-router/interfaces/RouteTree.md +5 -5
  98. package/api/@xmachines/play-router/interfaces/RouteWatcherHandle.md +3 -3
  99. package/api/@xmachines/play-router/interfaces/RouterBridge.md +4 -4
  100. package/api/@xmachines/play-router/interfaces/WindowLike.md +3 -3
  101. package/api/@xmachines/play-router/type-aliases/MachineGraph.md +1 -1
  102. package/api/@xmachines/play-router/type-aliases/RouteMetadata.md +1 -1
  103. package/api/@xmachines/play-signals/README.md +2 -2
  104. package/api/@xmachines/play-signals/functions/watchSignal.md +1 -1
  105. package/api/@xmachines/play-signals/interfaces/ComputedOptions.md +2 -2
  106. package/api/@xmachines/play-signals/interfaces/SignalComputed.md +2 -2
  107. package/api/@xmachines/play-signals/interfaces/SignalOptions.md +2 -2
  108. package/api/@xmachines/play-signals/interfaces/SignalState.md +3 -3
  109. package/api/@xmachines/play-signals/interfaces/SignalWatcher.md +4 -4
  110. package/api/@xmachines/play-signals/namespaces/Signal/classes/Computed.md +6 -0
  111. package/api/@xmachines/play-signals/namespaces/Signal/classes/State.md +8 -0
  112. package/api/@xmachines/play-signals/namespaces/Signal/interfaces/Options.md +2 -0
  113. package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/classes/Watcher.md +10 -0
  114. package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/currentComputed.md +2 -0
  115. package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/hasSinks.md +2 -0
  116. package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/hasSources.md +2 -0
  117. package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/introspectSinks.md +2 -0
  118. package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/introspectSources.md +2 -0
  119. package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/untrack.md +2 -0
  120. package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/variables/unwatched.md +2 -0
  121. package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/variables/watched.md +2 -0
  122. package/api/@xmachines/play-signals/namespaces/Signal/variables/isComputed.md +2 -0
  123. package/api/@xmachines/play-signals/namespaces/Signal/variables/isState.md +2 -0
  124. package/api/@xmachines/play-signals/namespaces/Signal/variables/isWatcher.md +2 -0
  125. package/api/@xmachines/play-signals/type-aliases/WatcherNotify.md +1 -1
  126. package/api/@xmachines/play-solid/README.md +3 -3
  127. package/api/@xmachines/play-solid/functions/defineRegistry.md +2 -0
  128. package/api/@xmachines/play-solid/functions/useActor.md +1 -1
  129. package/api/@xmachines/play-solid/functions/useStateBinding.md +2 -0
  130. package/api/@xmachines/play-solid/interfaces/ComponentContext.md +2 -0
  131. package/api/@xmachines/play-solid/interfaces/PlayRendererProps.md +7 -7
  132. package/api/@xmachines/play-solid/type-aliases/ComponentFn.md +2 -0
  133. package/api/@xmachines/play-solid/type-aliases/PlayActor.md +1 -1
  134. package/api/@xmachines/play-solid/variables/PlayRenderer.md +1 -1
  135. package/api/@xmachines/play-solid-router/README.md +1 -1
  136. package/api/@xmachines/play-solid-router/classes/RouteMap.md +4 -4
  137. package/api/@xmachines/play-solid-router/classes/SolidRouterBridge.md +24 -24
  138. package/api/@xmachines/play-solid-router/functions/PlayRouterProvider.md +1 -1
  139. package/api/@xmachines/play-solid-router/functions/createRouteMap.md +1 -1
  140. package/api/@xmachines/play-solid-router/interfaces/AbstractActor.md +23 -3
  141. package/api/@xmachines/play-solid-router/interfaces/PlayRouteEvent.md +7 -7
  142. package/api/@xmachines/play-solid-router/interfaces/PlayRouterProviderProps.md +5 -5
  143. package/api/@xmachines/play-solid-router/interfaces/RouteMapping.md +3 -3
  144. package/api/@xmachines/play-solid-router/interfaces/RouterBridge.md +4 -4
  145. package/api/@xmachines/play-solid-router/type-aliases/RoutableActor.md +1 -1
  146. package/api/@xmachines/play-solid-router/type-aliases/SolidRouterHooks.md +4 -4
  147. package/api/@xmachines/play-svelte/functions/defineRegistry.md +2 -0
  148. package/api/@xmachines/play-svelte/interfaces/BaseComponentProps.md +2 -0
  149. package/api/@xmachines/play-svelte/interfaces/ComponentContext.md +2 -0
  150. package/api/@xmachines/play-svelte/interfaces/PlayRendererProps.md +7 -7
  151. package/api/@xmachines/play-svelte/type-aliases/ComponentFn.md +2 -0
  152. package/api/@xmachines/play-svelte/type-aliases/PlayRenderer.md +2 -0
  153. package/api/@xmachines/play-svelte/variables/PlayRenderer.md +2 -0
  154. package/api/@xmachines/play-svelte-spa-router/classes/RouteMap.md +4 -4
  155. package/api/@xmachines/play-svelte-spa-router/functions/connectRouter.md +1 -1
  156. package/api/@xmachines/play-svelte-spa-router/functions/createRouteMap.md +1 -1
  157. package/api/@xmachines/play-svelte-spa-router/interfaces/ConnectRouterOptions.md +4 -4
  158. package/api/@xmachines/play-svelte-spa-router/interfaces/PlayRouteEvent.md +7 -7
  159. package/api/@xmachines/play-svelte-spa-router/interfaces/RouteMapping.md +3 -3
  160. package/api/@xmachines/play-svelte-spa-router/interfaces/RouterBridge.md +4 -4
  161. package/api/@xmachines/play-svelte-spa-router/interfaces/WindowLike.md +3 -3
  162. package/api/@xmachines/play-svelte-spa-router/type-aliases/RoutableActor.md +1 -1
  163. package/api/@xmachines/play-sveltekit-router/classes/RouteMap.md +4 -4
  164. package/api/@xmachines/play-sveltekit-router/functions/connectRouter.md +1 -1
  165. package/api/@xmachines/play-sveltekit-router/functions/createRouteMap.md +1 -1
  166. package/api/@xmachines/play-sveltekit-router/interfaces/ConnectRouterOptions.md +4 -4
  167. package/api/@xmachines/play-sveltekit-router/interfaces/LocationLike.md +3 -3
  168. package/api/@xmachines/play-sveltekit-router/interfaces/PlayRouteEvent.md +7 -7
  169. package/api/@xmachines/play-sveltekit-router/interfaces/RouteMapping.md +3 -3
  170. package/api/@xmachines/play-sveltekit-router/interfaces/RouterBridge.md +4 -4
  171. package/api/@xmachines/play-sveltekit-router/type-aliases/RoutableActor.md +1 -1
  172. package/api/@xmachines/play-tanstack-react-router/README.md +4 -4
  173. package/api/@xmachines/play-tanstack-react-router/classes/RouteMap.md +4 -4
  174. package/api/@xmachines/play-tanstack-react-router/classes/TanStackReactRouterBridge.md +23 -23
  175. package/api/@xmachines/play-tanstack-react-router/functions/PlayRouterProvider.md +1 -1
  176. package/api/@xmachines/play-tanstack-react-router/functions/createRouteMap.md +1 -1
  177. package/api/@xmachines/play-tanstack-react-router/functions/createRouteMapFromTree.md +1 -1
  178. package/api/@xmachines/play-tanstack-react-router/functions/extractMachineRoutes.md +1 -1
  179. package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouteEvent.md +7 -7
  180. package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouterProviderProps.md +5 -5
  181. package/api/@xmachines/play-tanstack-react-router/interfaces/RouteMapping.md +3 -3
  182. package/api/@xmachines/play-tanstack-react-router/interfaces/RouteNavigateEvent.md +3 -3
  183. package/api/@xmachines/play-tanstack-react-router/interfaces/RouterBridge.md +4 -4
  184. package/api/@xmachines/play-tanstack-react-router/type-aliases/TanStackRouterInstance.md +1 -1
  185. package/api/@xmachines/play-tanstack-react-router/type-aliases/TanStackRouterLike.md +4 -4
  186. package/api/@xmachines/play-tanstack-solid-router/README.md +5 -5
  187. package/api/@xmachines/play-tanstack-solid-router/classes/RouteMap.md +4 -4
  188. package/api/@xmachines/play-tanstack-solid-router/classes/SolidRouterBridge.md +24 -24
  189. package/api/@xmachines/play-tanstack-solid-router/functions/PlayRouterProvider.md +1 -1
  190. package/api/@xmachines/play-tanstack-solid-router/functions/createRouteMap.md +1 -1
  191. package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayRouteEvent.md +7 -7
  192. package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayRouterProviderProps.md +5 -5
  193. package/api/@xmachines/play-tanstack-solid-router/interfaces/RouteMapping.md +3 -3
  194. package/api/@xmachines/play-tanstack-solid-router/interfaces/RouterBridge.md +4 -4
  195. package/api/@xmachines/play-tanstack-solid-router/type-aliases/RoutableActor.md +1 -1
  196. package/api/@xmachines/play-tanstack-solid-router/type-aliases/TanStackRouterInstance.md +1 -1
  197. package/api/@xmachines/play-tanstack-solid-router/type-aliases/TanStackRouterLike.md +3 -3
  198. package/api/@xmachines/play-vue/README.md +1 -1
  199. package/api/@xmachines/play-vue/functions/defineRegistry.md +1 -1
  200. package/api/@xmachines/play-vue/functions/useActor.md +1 -1
  201. package/api/@xmachines/play-vue/functions/useStateBinding.md +2 -0
  202. package/api/@xmachines/play-vue/interfaces/ComponentContext.md +2 -0
  203. package/api/@xmachines/play-vue/interfaces/PlayRendererProps.md +5 -5
  204. package/api/@xmachines/play-vue/type-aliases/ComponentEntry.md +1 -1
  205. package/api/@xmachines/play-vue/type-aliases/ComponentFn.md +2 -0
  206. package/api/@xmachines/play-vue/type-aliases/ComponentsMap.md +1 -1
  207. package/api/@xmachines/play-vue/type-aliases/DefineRegistryOptions.md +2 -2
  208. package/api/@xmachines/play-vue/type-aliases/PlayActor.md +1 -1
  209. package/api/@xmachines/play-vue/variables/PlayRenderer.md +1 -1
  210. package/api/@xmachines/play-vue-router/README.md +1 -1
  211. package/api/@xmachines/play-vue-router/classes/RouteMap.md +4 -4
  212. package/api/@xmachines/play-vue-router/classes/VueBaseRouteMap.md +4 -4
  213. package/api/@xmachines/play-vue-router/classes/VueRouterBridge.md +24 -24
  214. package/api/@xmachines/play-vue-router/functions/createRouteMap.md +1 -1
  215. package/api/@xmachines/play-vue-router/interfaces/PlayRouteEvent.md +7 -7
  216. package/api/@xmachines/play-vue-router/interfaces/RouteMapping.md +3 -3
  217. package/api/@xmachines/play-vue-router/interfaces/RouterBridge.md +4 -4
  218. package/api/@xmachines/play-vue-router/type-aliases/RoutableActor.md +1 -1
  219. package/api/@xmachines/play-vue-router/variables/PlayRouterProvider.md +1 -1
  220. package/api/@xmachines/play-xstate/README.md +10 -10
  221. package/api/@xmachines/play-xstate/classes/PlayerActor.md +26 -12
  222. package/api/@xmachines/play-xstate/functions/buildRouteUrl.md +1 -1
  223. package/api/@xmachines/play-xstate/functions/composeGuards.md +1 -1
  224. package/api/@xmachines/play-xstate/functions/composeGuardsOr.md +1 -1
  225. package/api/@xmachines/play-xstate/functions/contextFieldMatches.md +1 -1
  226. package/api/@xmachines/play-xstate/functions/definePlayer.md +2 -2
  227. package/api/@xmachines/play-xstate/functions/deriveRoute.md +2 -2
  228. package/api/@xmachines/play-xstate/functions/eventMatches.md +1 -1
  229. package/api/@xmachines/play-xstate/functions/formatPlayRouteTransitions.md +1 -1
  230. package/api/@xmachines/play-xstate/functions/hasContext.md +1 -1
  231. package/api/@xmachines/play-xstate/functions/isAbsoluteRoute.md +1 -1
  232. package/api/@xmachines/play-xstate/functions/negateGuard.md +1 -1
  233. package/api/@xmachines/play-xstate/interfaces/PlayerConfig.md +3 -3
  234. package/api/@xmachines/play-xstate/interfaces/PlayerFactoryResumeOptions.md +2 -2
  235. package/api/@xmachines/play-xstate/interfaces/PlayerOptions.md +6 -6
  236. package/api/@xmachines/play-xstate/interfaces/RouteContext.md +5 -5
  237. package/api/@xmachines/play-xstate/type-aliases/ComposedGuard.md +1 -1
  238. package/api/@xmachines/play-xstate/type-aliases/Guard.md +1 -1
  239. package/api/@xmachines/play-xstate/type-aliases/GuardArray.md +1 -1
  240. package/api/@xmachines/play-xstate/type-aliases/PlayerFactory.md +1 -1
  241. package/api/@xmachines/play-xstate/type-aliases/RouteMachineConfig.md +4 -4
  242. package/api/@xmachines/play-xstate/type-aliases/RouteStateNode.md +4 -4
  243. package/api/@xmachines/shared/functions/defineXmVitestConfig.md +1 -1
  244. package/api/@xmachines/shared/functions/xmAliases.md +1 -1
  245. package/api/README.md +1 -41
  246. package/api/llms.txt +4 -8
  247. package/{api → examples}/@xmachines/play-dom-demo/README.md +2 -2
  248. package/examples/@xmachines/play-dom-demo/functions/initShell.md +20 -0
  249. package/{api → examples}/@xmachines/play-dom-demo/variables/About.md +1 -1
  250. package/{api → examples}/@xmachines/play-dom-demo/variables/Contact.md +1 -1
  251. package/{api → examples}/@xmachines/play-dom-demo/variables/Dashboard.md +1 -1
  252. package/{api → examples}/@xmachines/play-dom-demo/variables/Home.md +1 -1
  253. package/{api → examples}/@xmachines/play-dom-demo/variables/Login.md +1 -1
  254. package/{api → examples}/@xmachines/play-dom-demo/variables/Navigation.md +1 -1
  255. package/{api → examples}/@xmachines/play-dom-demo/variables/Overview.md +1 -1
  256. package/{api → examples}/@xmachines/play-dom-demo/variables/Profile.md +1 -1
  257. package/{api → examples}/@xmachines/play-dom-demo/variables/Settings.md +1 -1
  258. package/{api → examples}/@xmachines/play-dom-demo/variables/Stats.md +1 -1
  259. package/{api → examples}/@xmachines/play-dom-router-demo/README.md +3 -3
  260. package/{api → examples}/@xmachines/play-react-demo/README.md +2 -2
  261. package/{api → examples}/@xmachines/play-react-demo/functions/App.md +1 -1
  262. package/examples/@xmachines/play-react-demo/functions/DebugPanel.md +20 -0
  263. package/examples/@xmachines/play-react-demo/functions/HeaderNav.md +20 -0
  264. package/examples/@xmachines/play-react-demo/functions/Shell.md +22 -0
  265. package/{api → examples}/@xmachines/play-react-demo/variables/About.md +1 -1
  266. package/{api → examples}/@xmachines/play-react-demo/variables/Contact.md +1 -1
  267. package/{api → examples}/@xmachines/play-react-demo/variables/Dashboard.md +1 -1
  268. package/{api → examples}/@xmachines/play-react-demo/variables/Home.md +1 -1
  269. package/{api → examples}/@xmachines/play-react-demo/variables/Login.md +1 -1
  270. package/{api → examples}/@xmachines/play-react-demo/variables/Navigation.md +1 -1
  271. package/{api → examples}/@xmachines/play-react-demo/variables/Overview.md +1 -1
  272. package/{api → examples}/@xmachines/play-react-demo/variables/Profile.md +1 -1
  273. package/{api → examples}/@xmachines/play-react-demo/variables/Settings.md +1 -1
  274. package/{api → examples}/@xmachines/play-react-demo/variables/Stats.md +1 -1
  275. package/{api → examples}/@xmachines/play-react-router-demo/README.md +2 -2
  276. package/{api → examples}/@xmachines/play-solid-demo/README.md +3 -3
  277. package/{api → examples}/@xmachines/play-solid-demo/functions/App.md +1 -1
  278. package/examples/@xmachines/play-solid-demo/functions/DebugPanel.md +20 -0
  279. package/examples/@xmachines/play-solid-demo/functions/HeaderNav.md +20 -0
  280. package/examples/@xmachines/play-solid-demo/functions/Shell.md +22 -0
  281. package/{api → examples}/@xmachines/play-solid-demo/variables/About.md +1 -1
  282. package/{api → examples}/@xmachines/play-solid-demo/variables/Contact.md +1 -1
  283. package/{api → examples}/@xmachines/play-solid-demo/variables/Dashboard.md +1 -1
  284. package/{api → examples}/@xmachines/play-solid-demo/variables/Home.md +1 -1
  285. package/{api → examples}/@xmachines/play-solid-demo/variables/Login.md +1 -1
  286. package/{api → examples}/@xmachines/play-solid-demo/variables/Navigation.md +1 -1
  287. package/{api → examples}/@xmachines/play-solid-demo/variables/Overview.md +1 -1
  288. package/{api → examples}/@xmachines/play-solid-demo/variables/Profile.md +1 -1
  289. package/{api → examples}/@xmachines/play-solid-demo/variables/Settings.md +1 -1
  290. package/{api → examples}/@xmachines/play-solid-demo/variables/Stats.md +1 -1
  291. package/{api → examples}/@xmachines/play-solid-router-demo/README.md +3 -3
  292. package/{api → examples}/@xmachines/play-svelte-demo/README.md +1 -1
  293. package/examples/@xmachines/play-svelte-spa-router-demo/README.md +129 -0
  294. package/examples/@xmachines/play-sveltekit-router-demo/README.md +130 -0
  295. package/{api → examples}/@xmachines/play-tanstack-react-router-demo/README.md +3 -3
  296. package/{api → examples}/@xmachines/play-tanstack-solid-router-demo/README.md +4 -4
  297. package/{api → examples}/@xmachines/play-vue-demo/README.md +2 -2
  298. package/{api → examples}/@xmachines/play-vue-router-demo/README.md +2 -2
  299. package/examples/README.md +46 -30
  300. package/package.json +6 -4
  301. package/api/@xmachines/play-actor-shared/README.md +0 -155
  302. package/api/@xmachines/play-actor-shared/interfaces/AuthContext.md +0 -14
  303. package/api/@xmachines/play-actor-shared/type-aliases/AuthActor.md +0 -27
  304. package/api/@xmachines/play-actor-shared/type-aliases/AuthCatalog.md +0 -16
  305. package/api/@xmachines/play-actor-shared/type-aliases/AuthEvents.md +0 -17
  306. package/api/@xmachines/play-actor-shared/type-aliases/AuthInput.md +0 -9
  307. package/api/@xmachines/play-actor-shared/type-aliases/AuthSnapshot.md +0 -11
  308. package/api/@xmachines/play-actor-shared/type-aliases/CatalogProps.md +0 -187
  309. package/api/@xmachines/play-actor-shared/type-aliases/InferProps.md +0 -17
  310. package/api/@xmachines/play-actor-shared/variables/authCatalog.md +0 -173
  311. package/api/@xmachines/play-actor-shared/variables/authMachine.md +0 -189
  312. package/api/@xmachines/play-actor-shared/variables/authSetup.md +0 -22
  313. package/api/@xmachines/play-dom-demo/functions/initShell.md +0 -20
  314. package/api/@xmachines/play-react-demo/functions/DebugPanel.md +0 -20
  315. package/api/@xmachines/play-react-demo/functions/HeaderNav.md +0 -20
  316. package/api/@xmachines/play-react-demo/functions/Shell.md +0 -22
  317. package/api/@xmachines/play-solid-demo/functions/DebugPanel.md +0 -20
  318. package/api/@xmachines/play-solid-demo/functions/HeaderNav.md +0 -20
  319. package/api/@xmachines/play-solid-demo/functions/Shell.md +0 -22
@@ -0,0 +1,129 @@
1
+ [Documentation](../../README.md) / @xmachines/play-svelte-spa-router-demo
2
+
3
+ # Svelte SPA Router Demo
4
+
5
+ Svelte 5 + `svelte-spa-router` integration demo for the XMachines Play architecture using hash-based URL routing.
6
+
7
+ ## What This Demonstrates
8
+
9
+ - Shared auth machine reused without framework-specific business logic
10
+ - `connectRouter` hash-URL ↔ actor sync via `@xmachines/play-svelte-spa-router`
11
+ - Shell-driven rendering via `PlayRenderer` with actor-authoritative navigation
12
+ - Canonical TC39 Signals lifecycle integrated with Svelte 5 runes
13
+ - Non-browser invariant tests plus browser E2E coverage
14
+
15
+ ## Running the Demo
16
+
17
+ From the repository root:
18
+
19
+ ```bash
20
+ npm install
21
+ npm run dev -w @xmachines/play-svelte-spa-router-demo
22
+ ```
23
+
24
+ Then open `http://localhost:5173`.
25
+
26
+ ## Step-by-Step Code Flow
27
+
28
+ Use this order to understand the implementation:
29
+
30
+ 1. `src/main.ts` mounts `App.svelte` and registers HMR cleanup via `cleanupDemo`.
31
+ 2. `src/lib/router.ts` creates the actor, builds the registry, calls `createRouteMap(authMachine)`, and wires `connectRouter({ actor, routeMap })`.
32
+ 3. `connectRouter` synchronizes hash URL changes with the actor via `play.route` events and reflects actor-approved routes back to the hash URL.
33
+ 4. `src/App.svelte` imports the singleton `actor` and `registry` from `src/lib/router.ts` and delegates to the shared `Shell.svelte`.
34
+ 5. `Shell.svelte` renders `<PlayRenderer>` with the actor and registry and provides the shared UI shell (nav, debug panel).
35
+ 6. Browser tests in `test/browser/` validate startup and auth route transitions.
36
+
37
+ ```ts
38
+ // src/lib/router.ts (shape)
39
+ const createDemoPlayer = definePlayer({ machine: authMachine });
40
+ export const actor = createDemoPlayer();
41
+ actor.start();
42
+
43
+ export const routeMap = createRouteMap(authMachine);
44
+ export const disconnectRouter = connectRouter({ actor, routeMap });
45
+
46
+ export function cleanupDemo(): void {
47
+ disconnectRouter();
48
+ actor.stop();
49
+ }
50
+ ```
51
+
52
+ ```svelte
53
+ <!-- src/App.svelte (shape) -->
54
+ <script lang="ts">
55
+ import Shell from "@xmachines/play-svelte-demo/src/components/Shell.svelte";
56
+ import { actor, registry } from "./lib/router.js";
57
+ </script>
58
+
59
+ <Shell {actor} {registry} />
60
+ ```
61
+
62
+ ```svelte
63
+ <!-- Shell.svelte — sending events (shape) -->
64
+ <PlayRenderer
65
+ actor={props.actor}
66
+ registry={props.registry}
67
+ actions={{ login: "auth.login", logout: "auth.logout" }}
68
+ />
69
+ ```
70
+
71
+ ## Key Files
72
+
73
+ - `src/main.ts` - Svelte app mount and HMR cleanup registration
74
+ - `src/lib/router.ts` - actor creation, registry construction, route map, and `connectRouter` wiring
75
+ - `src/App.svelte` - minimal root component delegating to shared `Shell.svelte`
76
+ - `test/library-pattern.test.ts` - architecture boundary and invariant assertions
77
+ - `test/browser/shared-demo.browser.test.ts` - browser startup and auth route flow coverage
78
+
79
+ ## State Machine & Architecture Details
80
+
81
+ The demo utilizes XMachines architectural invariants:
82
+
83
+ 1. **Actor Authority:** When a user clicks a nav link, the hash URL 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.
84
+ 2. **Passive Infrastructure:** `svelte-spa-router` does not execute business logic. The actor dictates whether navigation is permitted. The Svelte application only renders the state.
85
+ 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.
86
+
87
+ ## Watcher Lifecycle and Cleanup Contract
88
+
89
+ This demo follows the canonical watcher lifecycle used across all `@xmachines` framework adapters:
90
+
91
+ 1. `notify`
92
+ 2. `queueMicrotask`
93
+ 3. `getPending()`
94
+ 4. Read actor signals and project Svelte-local render state
95
+ 5. Re-arm with `watch()`/`watch(...signals)`
96
+
97
+ Watcher notifications are one-shot. Cleanup is explicit: `cleanupDemo()` calls `disconnectRouter()` and `actor.stop()` during HMR disposal, preventing memory leaks and ghost subscriptions.
98
+
99
+ ## Adapter Boundaries
100
+
101
+ `connectRouter` (from `@xmachines/play-svelte-spa-router`) is passive infrastructure. It translates hash URL changes into `play.route` events and reflects actor-approved route changes back to the URL. Business validity remains actor-owned. The shared `Shell.svelte` from `@xmachines/play-svelte-demo` is reused to avoid duplicating view components across router demos.
102
+
103
+ ## Available Scripts
104
+
105
+ These commands are defined in `package.json`:
106
+
107
+ | Command | Description |
108
+ | ---------------------------------------------------------------- | -------------------------------- |
109
+ | `npm run dev -w @xmachines/play-svelte-spa-router-demo` | Start Vite dev server |
110
+ | `npm run build -w @xmachines/play-svelte-spa-router-demo` | Build production bundle |
111
+ | `npm run preview -w @xmachines/play-svelte-spa-router-demo` | Preview built bundle |
112
+ | `npm run test -w @xmachines/play-svelte-spa-router-demo` | Run Vitest test suite |
113
+ | `npm run test:browser -w @xmachines/play-svelte-spa-router-demo` | Run browser-focused Vitest suite |
114
+
115
+ ## Verification
116
+
117
+ Use these checks to validate README claims against the current demo implementation:
118
+
119
+ ```bash
120
+ npm run test -w @xmachines/play-svelte-spa-router-demo
121
+ npm run test:browser -w @xmachines/play-svelte-spa-router-demo
122
+ ```
123
+
124
+ Expected result: library-pattern invariant tests pass and the browser demo suite validates startup rendering and auth navigation.
125
+
126
+ ## Learn More
127
+
128
+ - [Svelte SPA Router package README](../../README.md)
129
+ - [Svelte package README](../../../play-svelte/README.md)
@@ -0,0 +1,130 @@
1
+ [Documentation](../../README.md) / @xmachines/play-sveltekit-router-demo
2
+
3
+ # SvelteKit Router Demo
4
+
5
+ Svelte 5 + SvelteKit router adapter integration demo for the XMachines Play architecture using browser pathname URL routing.
6
+
7
+ ## What This Demonstrates
8
+
9
+ - Shared auth machine reused without framework-specific business logic
10
+ - `connectRouter` pathname URL ↔ actor sync via `@xmachines/play-sveltekit-router`
11
+ - Shell-driven rendering via `PlayRenderer` with actor-authoritative navigation
12
+ - Canonical TC39 Signals lifecycle integrated with Svelte 5 runes
13
+ - Non-browser invariant tests plus browser E2E coverage
14
+
15
+ ## Running the Demo
16
+
17
+ From the repository root:
18
+
19
+ ```bash
20
+ npm install
21
+ npm run dev -w @xmachines/play-sveltekit-router-demo
22
+ ```
23
+
24
+ Then open `http://localhost:5173`.
25
+
26
+ ## Step-by-Step Code Flow
27
+
28
+ Use this order to understand the implementation:
29
+
30
+ 1. `src/main.ts` mounts `App.svelte` and registers HMR cleanup via `cleanupDemo`.
31
+ 2. `src/lib/router.ts` creates the actor, builds the registry, calls `createRouteMap(authMachine)`, and wires `connectRouter({ actor, routeMap })`.
32
+ 3. `connectRouter` synchronizes browser pathname changes with the actor via `play.route` events and reflects actor-approved routes back to the pathname URL.
33
+ 4. `src/App.svelte` imports the singleton `actor` and `registry` from `src/lib/router.ts` and delegates to the shared `Shell.svelte`.
34
+ 5. `Shell.svelte` renders `<PlayRenderer>` with the actor and registry and provides the shared UI shell (nav, debug panel).
35
+ 6. Browser tests in `test/browser/` validate startup and auth route transitions.
36
+
37
+ ```ts
38
+ // src/lib/router.ts (shape)
39
+ const createDemoPlayer = definePlayer({ machine: authMachine });
40
+ export const actor = createDemoPlayer();
41
+ actor.start();
42
+
43
+ export const routeMap = createRouteMap(authMachine);
44
+ export const disconnectRouter = connectRouter({ actor, routeMap });
45
+
46
+ export function cleanupDemo(): void {
47
+ disconnectRouter();
48
+ actor.stop();
49
+ }
50
+ ```
51
+
52
+ ```svelte
53
+ <!-- src/App.svelte (shape) -->
54
+ <script lang="ts">
55
+ import Shell from "@xmachines/play-svelte-demo/src/components/Shell.svelte";
56
+ import { actor, registry } from "./lib/router.js";
57
+ </script>
58
+
59
+ <Shell {actor} {registry} />
60
+ ```
61
+
62
+ ```svelte
63
+ <!-- Shell.svelte — sending events (shape) -->
64
+ <PlayRenderer
65
+ actor={props.actor}
66
+ registry={props.registry}
67
+ actions={{ login: "auth.login", logout: "auth.logout" }}
68
+ />
69
+ ```
70
+
71
+ ## Key Files
72
+
73
+ - `src/main.ts` - Svelte app mount and HMR cleanup registration
74
+ - `src/lib/router.ts` - actor creation, registry construction, route map, and `connectRouter` wiring
75
+ - `src/lib/navigation.ts` - SvelteKit navigation helpers for pathname observation
76
+ - `src/App.svelte` - minimal root component delegating to shared `Shell.svelte`
77
+ - `test/library-pattern.test.ts` - architecture boundary and invariant assertions
78
+ - `test/browser/shared-demo.browser.test.ts` - browser startup and auth route flow coverage
79
+
80
+ ## State Machine & Architecture Details
81
+
82
+ The demo utilizes XMachines architectural invariants:
83
+
84
+ 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.
85
+ 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.
86
+ 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.
87
+
88
+ ## Watcher Lifecycle and Cleanup Contract
89
+
90
+ This demo follows the canonical watcher lifecycle used across all `@xmachines` framework adapters:
91
+
92
+ 1. `notify`
93
+ 2. `queueMicrotask`
94
+ 3. `getPending()`
95
+ 4. Read actor signals and project Svelte-local render state
96
+ 5. Re-arm with `watch()`/`watch(...signals)`
97
+
98
+ Watcher notifications are one-shot. Cleanup is explicit: `cleanupDemo()` calls `disconnectRouter()` and `actor.stop()` during HMR disposal, preventing memory leaks and ghost subscriptions.
99
+
100
+ ## Adapter Boundaries
101
+
102
+ `connectRouter` (from `@xmachines/play-sveltekit-router`) is passive infrastructure. It translates pathname URL changes into `play.route` events and reflects actor-approved route changes back to the browser pathname. Business validity remains actor-owned. The shared `Shell.svelte` from `@xmachines/play-svelte-demo` is reused to avoid duplicating view components across router demos.
103
+
104
+ ## Available Scripts
105
+
106
+ These commands are defined in `package.json`:
107
+
108
+ | Command | Description |
109
+ | --------------------------------------------------------------- | -------------------------------- |
110
+ | `npm run dev -w @xmachines/play-sveltekit-router-demo` | Start Vite dev server |
111
+ | `npm run build -w @xmachines/play-sveltekit-router-demo` | Build production bundle |
112
+ | `npm run preview -w @xmachines/play-sveltekit-router-demo` | Preview built bundle |
113
+ | `npm run test -w @xmachines/play-sveltekit-router-demo` | Run Vitest test suite |
114
+ | `npm run test:browser -w @xmachines/play-sveltekit-router-demo` | Run browser-focused Vitest suite |
115
+
116
+ ## Verification
117
+
118
+ Use these checks to validate README claims against the current demo implementation:
119
+
120
+ ```bash
121
+ npm run test -w @xmachines/play-sveltekit-router-demo
122
+ npm run test:browser -w @xmachines/play-sveltekit-router-demo
123
+ ```
124
+
125
+ Expected result: library-pattern invariant tests pass and the browser demo suite validates startup rendering and auth navigation.
126
+
127
+ ## Learn More
128
+
129
+ - [SvelteKit Router package README](../../README.md)
130
+ - [Svelte package README](../../../play-svelte/README.md)
@@ -125,6 +125,6 @@ Expected result: invariant test suite and the browser shared-demo suite both pas
125
125
 
126
126
  ## Learn More
127
127
 
128
- - [TanStack React Router package README](../play-tanstack-react-router/README.md)
129
- - [React package README](../play-react/README.md)
130
- - [TanStack Solid Router demo README](../play-tanstack-solid-router-demo/README.md)
128
+ - [TanStack React Router package README](../../README.md)
129
+ - [React package README](../../../play-react/README.md)
130
+ - [TanStack Solid Router demo README](../../../play-tanstack-solid-router/examples/demo/README.md)
@@ -119,7 +119,7 @@ Expected result: library-pattern invariant tests and the browser shared-demo sui
119
119
 
120
120
  ## Learn More
121
121
 
122
- - [TanStack Solid Router package README](../play-tanstack-solid-router/README.md)
123
- - [SolidJS package README](../play-solid/README.md)
124
- - [Solid Router demo README](../play-solid-router-demo/README.md)
125
- - [TanStack React Router demo README](../play-tanstack-react-router-demo/README.md)
122
+ - [TanStack Solid Router package README](../../README.md)
123
+ - [SolidJS package README](../../../play-solid/README.md)
124
+ - [Solid Router demo README](../../../play-solid-router/examples/demo/README.md)
125
+ - [TanStack React Router demo README](../../../play-tanstack-react-router/examples/demo/README.md)
@@ -141,5 +141,5 @@ Expected result: library-pattern invariant tests pass and the browser renderer s
141
141
 
142
142
  ## Learn More
143
143
 
144
- - [Vue package README](../play-vue/README.md)
145
- - [Vue Router demo README](../play-vue-router-demo/README.md)
144
+ - [Vue package README](../../README.md)
145
+ - [Vue Router demo README](../../../play-vue-router/examples/demo/README.md)
@@ -136,5 +136,5 @@ Expected result: reactivity integration tests and the browser shared-demo suite
136
136
 
137
137
  ## Learn More
138
138
 
139
- - [Vue Router package README](../play-vue-router/README.md)
140
- - [Vue package README](../play-vue/README.md)
139
+ - [Vue Router package README](../../README.md)
140
+ - [Vue package README](../../../play-vue/README.md)
@@ -1,5 +1,3 @@
1
- <!-- generated-by: gsd-doc-writer -->
2
-
3
1
  # XMachines Examples
4
2
 
5
3
  Practical code examples demonstrating current XMachines Play patterns and use cases.
@@ -27,28 +25,30 @@ Complete working implementations of actor-authoritative routing with all archite
27
25
 
28
26
  ## Complete Demo Applications
29
27
 
30
- ### Framework-Agnostic Baseline
31
-
32
- - **[Vanilla JavaScript Router Demo](../api/@xmachines/play-dom-router-demo/README.md)** — Pure browser integration: `connectRouter` + `connectRenderer` + DOM components. The lowest-level reference implementation.
33
-
34
- ### React Integrations
35
-
36
- - **[TanStack React Router Demo](../api/@xmachines/play-tanstack-react-router-demo/README.md)** — Canonical reference implementation with all 5 invariants, comprehensive routing, authentication guards, and browser tests.
37
- - **[React Router Demo](../api/@xmachines/play-react-router-demo/README.md)** — React Router v7 data-router integration using a catch-all route and `ReactRouterBridge`.
38
-
39
- ### Vue Integration
28
+ ### Renderer Demos
40
29
 
41
- - **[Vue Router Demo](../api/@xmachines/play-vue-router-demo/README.md)** — Vue Composition API integration with `PlayRouterProvider` and the shared `authMachine`.
30
+ <!-- typedoc:renderer-demos:start -->
42
31
 
43
- ### Svelte Integrations
32
+ - [@xmachines/play-dom-demo](@xmachines/play-dom-demo/README.md)
33
+ - [@xmachines/play-react-demo](@xmachines/play-react-demo/README.md)
34
+ - [@xmachines/play-solid-demo](@xmachines/play-solid-demo/README.md)
35
+ - [@xmachines/play-svelte-demo](@xmachines/play-svelte-demo/README.md)
36
+ - [@xmachines/play-vue-demo](@xmachines/play-vue-demo/README.md)
37
+ <!-- typedoc:renderer-demos:end -->
44
38
 
45
- - **[SvelteKit Router Demo](../api/@xmachines/play-sveltekit-router-demo/README.md)** — SvelteKit-style routing with `connectRouter` + `afterNavigate`/`goto` and Svelte 5 runes.
46
- - **[Svelte SPA Router Demo](../api/@xmachines/play-svelte-spa-router-demo/README.md)** — Hash-based SPA routing using `svelte-spa-router` with the same actor-authoritative flow.
39
+ ### Router Demos
47
40
 
48
- ### SolidJS Integrations
41
+ <!-- typedoc:router-demos:start -->
49
42
 
50
- - **[Solid Router Demo](../api/@xmachines/play-solid-router-demo/README.md)** — `@solidjs/router` integration with `PlayRouterProvider` and SolidJS fine-grained reactivity.
51
- - **[TanStack Solid Router Demo](../api/@xmachines/play-tanstack-solid-router-demo/README.md)** — TanStack Router for Solid with dynamic route creation from the machine's route tree.
43
+ - [@xmachines/play-dom-router-demo](@xmachines/play-dom-router-demo/README.md)
44
+ - [@xmachines/play-react-router-demo](@xmachines/play-react-router-demo/README.md)
45
+ - [@xmachines/play-solid-router-demo](@xmachines/play-solid-router-demo/README.md)
46
+ - [@xmachines/play-svelte-spa-router-demo](@xmachines/play-svelte-spa-router-demo/README.md)
47
+ - [@xmachines/play-sveltekit-router-demo](@xmachines/play-sveltekit-router-demo/README.md)
48
+ - [@xmachines/play-tanstack-react-router-demo](@xmachines/play-tanstack-react-router-demo/README.md)
49
+ - [@xmachines/play-tanstack-solid-router-demo](@xmachines/play-tanstack-solid-router-demo/README.md)
50
+ - [@xmachines/play-vue-router-demo](@xmachines/play-vue-router-demo/README.md)
51
+ <!-- typedoc:router-demos:end -->
52
52
 
53
53
  ## Running the Code Examples
54
54
 
@@ -62,25 +62,45 @@ npm install @xmachines/play-xstate @xmachines/play-actor @xmachines/play-signals
62
62
  npx tsx my-example.ts
63
63
  ```
64
64
 
65
- To run a complete demo application, `cd` into the relevant package and start its dev server:
65
+ To run a complete demo application, use the workspace package name:
66
66
 
67
67
  ```bash
68
- # Example: vanilla DOM router demo
69
- cd packages/play-dom-router/examples/demo
70
- npm install
71
- npm run dev
68
+ npm run dev -w @xmachines/play-dom-router-demo
72
69
  ```
73
70
 
74
71
  ## Key Packages
75
72
 
73
+ ### Core
74
+
76
75
  | Package | Role |
77
76
  | ------------------------- | ----------------------------------------------------------- |
78
77
  | `@xmachines/play-xstate` | `definePlayer`, `formatPlayRouteTransitions`, `PlayerActor` |
79
78
  | `@xmachines/play-actor` | `AbstractActor`, `typedSpec` |
80
79
  | `@xmachines/play-signals` | TC39 Signals polyfill, `watchSignal` |
81
80
  | `@xmachines/play-router` | `extractMachineRoutes`, `getRoutableRoutes` |
82
- | `@xmachines/play-dom` | `connectRenderer`, `defineRegistry` (vanilla) |
83
- | `@xmachines/play-react` | `PlayRenderer`, `defineRegistry` (React) |
81
+
82
+ ### Renderers
83
+
84
+ | Package | Role |
85
+ | ------------------------ | ----------------------------------- |
86
+ | `@xmachines/play-dom` | `connectRenderer`, `defineRegistry` |
87
+ | `@xmachines/play-react` | `PlayRenderer`, `defineRegistry` |
88
+ | `@xmachines/play-solid` | `PlayRenderer`, `defineRegistry` |
89
+ | `@xmachines/play-svelte` | `PlayRenderer`, `defineRegistry` |
90
+ | `@xmachines/play-vue` | `PlayRenderer`, `defineRegistry` |
91
+
92
+ ### Router Adapters
93
+
94
+ | Package | Router |
95
+ | --------------------------------------- | ----------------------- |
96
+ | `@xmachines/play-dom-router` | Vanilla browser history |
97
+ | `@xmachines/play-react-router` | React Router v7 |
98
+ | `@xmachines/play-tanstack-react-router` | TanStack Router (React) |
99
+ | `@xmachines/play-solid-router` | SolidJS Router |
100
+ | `@xmachines/play-tanstack-solid-router` | TanStack Router (Solid) |
101
+ | `@xmachines/play-vue-router` | Vue Router |
102
+ | `@xmachines/play-svelte-spa-router` | svelte-spa-router |
103
+ | `@xmachines/play-sveltekit-router` | SvelteKit |
84
104
 
85
105
  ## Related Documentation
86
106
 
@@ -88,7 +108,3 @@ npm run dev
88
108
  - **[Installation Guide](../guides/installation.md)** — Package installation and TypeScript setup
89
109
  - **[API Reference](../api/README.md)** — Generated API docs for all public packages
90
110
  - **[Play RFC](../rfc/play.md)** — Complete architectural specification
91
-
92
- ---
93
-
94
- **Contributing Examples:** Have a useful example to share? See the repository contribution guidelines.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xmachines/docs",
3
- "version": "1.0.0-beta.28",
3
+ "version": "1.0.0-beta.30",
4
4
  "description": "Documentation for XMachines",
5
5
  "keywords": [
6
6
  "documentation",
@@ -45,14 +45,16 @@
45
45
  "lint:fix": "oxlint --fix .",
46
46
  "format": "oxfmt .",
47
47
  "format:check": "oxfmt --check .",
48
- "typedoc": "typedoc"
48
+ "typedoc": "typedoc",
49
+ "test": "vitest run"
49
50
  },
50
51
  "devDependencies": {
51
- "@xmachines/shared": "1.0.0-beta.28",
52
+ "@xmachines/shared": "1.0.0-beta.30",
52
53
  "oxfmt": "^0.43.0",
53
54
  "oxlint": "^1.57.0",
54
55
  "typedoc": "^0.28.18",
55
56
  "typedoc-plugin-llms-txt": "^0.1.2",
56
- "typedoc-plugin-markdown": "^4.11.0"
57
+ "typedoc-plugin-markdown": "^4.11.0",
58
+ "vitest": "^4.1.2"
57
59
  }
58
60
  }
@@ -1,155 +0,0 @@
1
- [Documentation](../../README.md) / @xmachines/play-actor-shared
2
-
3
- # play-actor Shared Demo Package
4
-
5
- Shared auth machine, catalog, and browser test fixtures consumed by all `@xmachines` renderer and router adapter demos.
6
-
7
- ## What This Demonstrates
8
-
9
- - A single `authMachine` reused across every framework demo without modification
10
- - Framework-agnostic `authCatalog` defining typed component prop shapes and action param schemas
11
- - Shared browser test suite (`renderer-demo-browser-suite.ts`) importable by any renderer demo
12
- - State machine invariants: public routes, protected routes with auth guards, and nested sub-states
13
-
14
- ## Running the Demo
15
-
16
- This is a shared fixture package — it has no standalone dev server. Run its tests from the repository root:
17
-
18
- ```bash
19
- npm install
20
- npm run test -w @xmachines/play-actor-shared
21
- ```
22
-
23
- ## Step-by-Step Code Flow
24
-
25
- Use this order to understand the package structure:
26
-
27
- 1. `src/auth-machine.ts` defines the `authMachine` using XState `setup()` with `formatPlayRouteTransitions` — all states include `meta.route` and `meta.view` for router and renderer integration.
28
- 2. `src/catalog.ts` defines `authCatalog` using `defineCatalog` from `@json-render/core` — typed component prop schemas (via Zod) and action param schemas for `login`, `logout`, and all `route*` actions.
29
- 3. `src/index.ts` re-exports `authMachine`, `authCatalog`, and all associated TypeScript types (`AuthActor`, `AuthContext`, `AuthEvents`, `AuthSnapshot`, `AuthCatalog`).
30
- 4. `test/shared-package.test.ts` verifies machine invariants: starts at home, unauthenticated; `auth.login` transitions to `dashboard.overview`; `auth.logout` returns to `home`.
31
- 5. `test/renderer-demo-browser-suite.ts` exports `defineNoRouterDemoBrowserSuite` — a portable browser test helper used by renderer demos that mount `<App />` and assert DOM state.
32
-
33
- ```ts
34
- // src/auth-machine.ts (shape)
35
- export const authMachine = authSetup.createMachine(
36
- formatPlayRouteTransitions({
37
- id: "auth",
38
- initial: "home",
39
- on: {
40
- "auth.login": { target: ".dashboard", guard: ({ context }) => !context.isAuthenticated },
41
- "auth.logout": { target: ".home", guard: ({ context }) => context.isAuthenticated },
42
- },
43
- states: {
44
- home: { meta: { route: "/", view: { component: "Home", spec: { ... } } } },
45
- login: { meta: { route: "/login", view: { component: "Login", spec: { ... } } } },
46
- dashboard: {
47
- meta: { route: "/dashboard" },
48
- initial: "overview",
49
- always: { guard: ({ context }) => !context.isAuthenticated, target: "login" },
50
- states: {
51
- overview: { meta: { route: "overview", view: { component: "Overview", spec: { ... } } } },
52
- stats: { meta: { route: "stats", view: { component: "Stats", spec: { ... } } } },
53
- },
54
- },
55
- profile: { meta: { route: "/profile/:username", view: { component: "Profile", spec: { ... } } } },
56
- settings: { meta: { route: "/settings/:section?", view: { component: "Settings", spec: { ... } } } },
57
- },
58
- }),
59
- );
60
- ```
61
-
62
- ```ts
63
- // src/catalog.ts (shape)
64
- export const authCatalog = defineCatalog(schema, {
65
- components: {
66
- Home: { props: z.object({ title: z.string() }) },
67
- Login: { props: z.object({ title: z.string() }) },
68
- Dashboard: { props: z.object({ welcome: z.boolean(), username: z.string() }) },
69
- Profile: { props: z.object({ username: z.string() }) },
70
- // ... more components
71
- },
72
- actions: {
73
- login: { params: z.object({ username: z.string() }), description: "Login with username" },
74
- logout: { description: "Logout and return to home" },
75
- // ... more actions
76
- },
77
- });
78
- ```
79
-
80
- ## Key Files
81
-
82
- - `src/auth-machine.ts` - XState auth machine with route metadata, guards, and nested dashboard states
83
- - `src/catalog.ts` - `authCatalog` with typed component and action schemas
84
- - `src/index.ts` - public re-exports: `authMachine`, `authCatalog`, all types
85
- - `src/index.css` - shared demo stylesheet imported by all renderer demos
86
- - `test/shared-package.test.ts` - machine invariant tests (start state, login, logout)
87
- - `test/renderer-demo-browser-suite.ts` - portable browser test helper for renderer demos
88
-
89
- ## State Machine & Architecture Details
90
-
91
- The auth machine embodies XMachines architectural invariants:
92
-
93
- 1. **Actor Authority:** All navigation uses `play.route` events — the machine evaluates each route transition against its current state and guard conditions. Framework adapters never bypass this.
94
- 2. **Passive Infrastructure:** `meta.route` on each state is metadata for the router adapter to read, not a command. The actor drives the URL, not the other way around.
95
- 3. **Signal-Only Reactivity:** The machine exposes `actor.currentView` and `actor.currentRoute` as TC39 Signals. Framework renderers and router adapters observe these signals — they never poll or subscribe to snapshots directly.
96
-
97
- ## Watcher Lifecycle and Cleanup Contract
98
-
99
- The shared machine itself does not manage watchers — that responsibility belongs to each framework adapter. However, the machine's signal-based architecture requires adapters to follow the canonical lifecycle:
100
-
101
- 1. `notify`
102
- 2. `queueMicrotask`
103
- 3. `getPending()`
104
- 4. Read actor signals and project framework-local state
105
- 5. Re-arm with `watch()`/`watch(...signals)`
106
-
107
- The `test/renderer-demo-browser-suite.ts` exports `defineNoRouterDemoBrowserSuite`, which each renderer demo uses to assert startup rendering and debug panel state without coupling to framework internals.
108
-
109
- ## Adapter Boundaries
110
-
111
- This package is pure shared infrastructure: no framework imports, no DOM dependencies. It defines the contract (machine + catalog) that all framework adapters implement against. The `AuthActor` type exported here is the preferred import for components across all framework demos — it decouples component implementations from the concrete machine type.
112
-
113
- ## Available Scripts
114
-
115
- These commands are defined in `package.json`:
116
-
117
- | Command | Description |
118
- | ------------------------------------------------------ | -------------------------------- |
119
- | `npm run test -w @xmachines/play-actor-shared` | Run Vitest test suite |
120
- | `npm run test:browser -w @xmachines/play-actor-shared` | Run browser-focused Vitest suite |
121
- | `npm run build -w @xmachines/play-actor-shared` | Build TypeScript declarations |
122
-
123
- ## Verification
124
-
125
- Use these checks to validate the shared package invariants:
126
-
127
- ```bash
128
- npm run test -w @xmachines/play-actor-shared
129
- ```
130
-
131
- Expected result: machine exports, start state, login, and logout invariants all pass.
132
-
133
- ## Learn More
134
-
135
- - [play-actor package README](../play-actor/README.md)
136
-
137
- ## Interfaces
138
-
139
- - [AuthContext](interfaces/AuthContext.md)
140
-
141
- ## Type Aliases
142
-
143
- - [AuthActor](type-aliases/AuthActor.md)
144
- - [AuthCatalog](type-aliases/AuthCatalog.md)
145
- - [AuthEvents](type-aliases/AuthEvents.md)
146
- - [AuthInput](type-aliases/AuthInput.md)
147
- - [AuthSnapshot](type-aliases/AuthSnapshot.md)
148
- - [CatalogProps](type-aliases/CatalogProps.md)
149
- - [InferProps](type-aliases/InferProps.md)
150
-
151
- ## Variables
152
-
153
- - [authCatalog](variables/authCatalog.md)
154
- - [authMachine](variables/authMachine.md)
155
- - [authSetup](variables/authSetup.md)
@@ -1,14 +0,0 @@
1
- [Documentation](../../../README.md) / [@xmachines/play-actor-shared](../README.md) / AuthContext
2
-
3
- # Interface: AuthContext
4
-
5
- Defined in: [packages/play-actor/examples/shared/src/auth-machine.ts:27](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.28/packages/play-actor/examples/shared/src/auth-machine.ts#L27)
6
-
7
- ## Properties
8
-
9
- | Property | Type | Defined in |
10
- | ------------------------------------------------------- | ------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
11
- | <a id="property-isauthenticated"></a> `isAuthenticated` | `boolean` | [packages/play-actor/examples/shared/src/auth-machine.ts:28](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.28/packages/play-actor/examples/shared/src/auth-machine.ts#L28) |
12
- | <a id="property-params"></a> `params` | `Record`\<`string`, `string`\> | [packages/play-actor/examples/shared/src/auth-machine.ts:30](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.28/packages/play-actor/examples/shared/src/auth-machine.ts#L30) |
13
- | <a id="property-query"></a> `query` | `Record`\<`string`, `string`\> | [packages/play-actor/examples/shared/src/auth-machine.ts:31](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.28/packages/play-actor/examples/shared/src/auth-machine.ts#L31) |
14
- | <a id="property-username"></a> `username` | `string` \| `null` | [packages/play-actor/examples/shared/src/auth-machine.ts:29](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.28/packages/play-actor/examples/shared/src/auth-machine.ts#L29) |
@@ -1,27 +0,0 @@
1
- [Documentation](../../../README.md) / [@xmachines/play-actor-shared](../README.md) / AuthActor
2
-
3
- # Type Alias: AuthActor
4
-
5
- ```ts
6
- type AuthActor = PlayerActor<typeof authMachine>;
7
- ```
8
-
9
- Defined in: [packages/play-actor/examples/shared/src/auth-machine.ts:293](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.28/packages/play-actor/examples/shared/src/auth-machine.ts#L293)
10
-
11
- The actor type for the auth machine.
12
-
13
- Import this in components and router adapters instead of `typeof authMachine`.
14
- Components declare their dependency on the capability contract (AuthContext +
15
- AuthEvents + routing/view signals) without coupling to the concrete machine
16
- implementation.
17
-
18
- ## Example
19
-
20
- ```ts
21
- import type { AuthActor } from "@xmachines/play-actor-shared";
22
-
23
- function HeaderNav({ actor }: { actor: AuthActor }) {
24
- const snap = actor.getSnapshot();
25
- snap.context.username; // typed as string | null — no cast needed
26
- }
27
- ```
@@ -1,16 +0,0 @@
1
- [Documentation](../../../README.md) / [@xmachines/play-actor-shared](../README.md) / AuthCatalog
2
-
3
- # Type Alias: AuthCatalog
4
-
5
- ```ts
6
- type AuthCatalog = typeof authCatalog;
7
- ```
8
-
9
- Defined in: [packages/play-actor/examples/shared/src/catalog.ts:69](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.28/packages/play-actor/examples/shared/src/catalog.ts#L69)
10
-
11
- The type of the auth catalog — use as the `C` type param in `ComponentFn<AuthCatalog, "X">`,
12
- `ComponentContext<AuthCatalog, "X">`, and `defineRegistry(authCatalog, ...)`.
13
-
14
- Prefer this over `typeof authCatalog` at every call site: it's more readable,
15
- follows the PascalCase convention for types, and insulates components from
16
- the catalog's runtime representation.