@xmachines/docs 6.1.0 → 8.0.0-next.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 (604) hide show
  1. package/README.md +5 -5
  2. package/api/@xmachines/core/README.md +7 -2
  3. package/api/@xmachines/core/cache/functions/createLruCache.md +1 -1
  4. package/api/@xmachines/core/cache/interfaces/KeyValueCache.md +3 -3
  5. package/api/@xmachines/core/errors/classes/BaseError.md +11 -11
  6. package/api/@xmachines/core/errors/classes/DisposeConflictError.md +11 -11
  7. package/api/@xmachines/core/utils/functions/asDisposable.md +2 -2
  8. package/api/@xmachines/core/utils/functions/createNullRecord.md +1 -1
  9. package/api/@xmachines/core/utils/functions/createWarnOnce.md +1 -1
  10. package/api/@xmachines/core/utils/functions/describeValue.md +1 -1
  11. package/api/@xmachines/core/utils/functions/isError.md +1 -1
  12. package/api/@xmachines/core/utils/functions/isThenable.md +1 -1
  13. package/api/@xmachines/core/utils/functions/releaseQuietly.md +1 -1
  14. package/api/@xmachines/core/utils/functions/rethrowLater.md +1 -1
  15. package/api/@xmachines/core/utils/functions/safeString.md +1 -1
  16. package/api/@xmachines/core/utils/functions/shallowEqualExcept.md +1 -1
  17. package/api/@xmachines/core/utils/type-aliases/DisposeKey.md +1 -1
  18. package/api/@xmachines/core/utils/type-aliases/DisposeMember.md +1 -1
  19. package/api/@xmachines/core/utils/variables/DISPOSE.md +1 -1
  20. package/api/@xmachines/play/README.md +10 -5
  21. package/api/@xmachines/play/errors/classes/NonNullableError.md +11 -11
  22. package/api/@xmachines/play/errors/classes/PlayError.md +12 -11
  23. package/api/@xmachines/play/index/functions/assertNonNullable.md +1 -1
  24. package/api/@xmachines/play/index/type-aliases/PlayEvent.md +4 -4
  25. package/api/@xmachines/play-actor/README.md +11 -3
  26. package/api/@xmachines/play-actor/interfaces/ActorEvent.md +4 -4
  27. package/api/@xmachines/play-actor/interfaces/PlayActor.md +6 -6
  28. package/api/@xmachines/play-atom/README.md +21 -7
  29. package/api/@xmachines/play-atom/functions/watchAtom.md +1 -1
  30. package/api/@xmachines/play-atom/interfaces/AsyncAtomOptions.md +4 -4
  31. package/api/@xmachines/play-atom/interfaces/Atom.md +6 -6
  32. package/api/@xmachines/play-atom/interfaces/AtomObserver.md +6 -6
  33. package/api/@xmachines/play-atom/interfaces/AtomOptions.md +4 -4
  34. package/api/@xmachines/play-atom/interfaces/AtomSubscription.md +2 -2
  35. package/api/@xmachines/play-atom/interfaces/BaseAtom.md +4 -4
  36. package/api/@xmachines/play-atom/interfaces/CreateAtom.md +3 -3
  37. package/api/@xmachines/play-atom/interfaces/Readable.md +4 -4
  38. package/api/@xmachines/play-atom/interfaces/ReadonlyAtom.md +4 -4
  39. package/api/@xmachines/play-atom/type-aliases/AnyAtom.md +1 -1
  40. package/api/@xmachines/play-atom/type-aliases/AsyncAtomState.md +1 -1
  41. package/api/@xmachines/play-atom/variables/createAsyncAtom.md +1 -1
  42. package/api/@xmachines/play-atom/variables/createAtom.md +1 -1
  43. package/api/@xmachines/play-atom/variables/createWritableAtom.md +1 -1
  44. package/api/@xmachines/play-dom/README.md +136 -50
  45. package/api/@xmachines/play-dom/classes/PlayRenderer.md +12 -12
  46. package/api/@xmachines/play-dom/functions/createPlayUI.md +5 -5
  47. package/api/@xmachines/play-dom/functions/createRenderer.md +1 -1
  48. package/api/@xmachines/play-dom/functions/renderSpec.md +3 -2
  49. package/api/@xmachines/play-dom/interfaces/ComponentContext.md +9 -9
  50. package/api/@xmachines/play-dom/interfaces/CreatePlayUIOptions.md +15 -14
  51. package/api/@xmachines/play-dom/interfaces/DomRenderContext.md +26 -20
  52. package/api/@xmachines/play-dom/interfaces/MountOptions.md +5 -5
  53. package/api/@xmachines/play-dom/interfaces/PassOptions.md +14 -0
  54. package/api/@xmachines/play-dom/interfaces/PlayDomOptions.md +18 -17
  55. package/api/@xmachines/play-dom/interfaces/RenderErrorInfo.md +16 -0
  56. package/api/@xmachines/play-dom/interfaces/RenderSpecOptions.md +17 -15
  57. package/api/@xmachines/play-dom/interfaces/UIProviderOptions.md +9 -8
  58. package/api/@xmachines/play-dom/interfaces/ValidationRegistry.md +14 -11
  59. package/api/@xmachines/play-dom/type-aliases/ConfirmHandler.md +9 -10
  60. package/api/@xmachines/play-dom/type-aliases/DefineRegistryOptions.md +4 -3
  61. package/api/@xmachines/play-dom/type-aliases/MountFn.md +1 -1
  62. package/api/@xmachines/play-dom/type-aliases/OnRenderError.md +27 -0
  63. package/api/@xmachines/play-dom/type-aliases/RenderErrorKind.md +21 -0
  64. package/api/@xmachines/play-dom-router/README.md +44 -6
  65. package/api/@xmachines/play-dom-router/classes/DomRouterBridge.md +7 -7
  66. package/api/@xmachines/play-dom-router/classes/RouteMap.md +4 -4
  67. package/api/@xmachines/play-dom-router/functions/connectRouter.md +1 -1
  68. package/api/@xmachines/play-dom-router/functions/createBrowserHistory.md +1 -1
  69. package/api/@xmachines/play-dom-router/functions/createRouter.md +1 -1
  70. package/api/@xmachines/play-dom-router/interfaces/BasePathOptions.md +5 -5
  71. package/api/@xmachines/play-dom-router/interfaces/BrowserHistory.md +16 -16
  72. package/api/@xmachines/play-dom-router/interfaces/BrowserWindow.md +16 -16
  73. package/api/@xmachines/play-dom-router/interfaces/ConnectRouterOptions.md +10 -10
  74. package/api/@xmachines/play-dom-router/interfaces/PlayRouteEvent.md +9 -9
  75. package/api/@xmachines/play-dom-router/interfaces/RoutableActor.md +6 -6
  76. package/api/@xmachines/play-dom-router/interfaces/RouteLookupContract.md +3 -3
  77. package/api/@xmachines/play-dom-router/interfaces/RouteMapOptions.md +6 -6
  78. package/api/@xmachines/play-dom-router/interfaces/RouteMapping.md +5 -5
  79. package/api/@xmachines/play-dom-router/interfaces/RouterBridge.md +3 -3
  80. package/api/@xmachines/play-dom-router/interfaces/RouterConnection.md +8 -8
  81. package/api/@xmachines/play-dom-router/interfaces/VanillaRouter.md +6 -6
  82. package/api/@xmachines/play-pattern/README.md +1 -1
  83. package/api/@xmachines/play-pattern/functions/buildPath.md +1 -1
  84. package/api/@xmachines/play-pattern/functions/createLruCache.md +1 -1
  85. package/api/@xmachines/play-pattern/functions/getIndexKey.md +1 -1
  86. package/api/@xmachines/play-pattern/functions/isDotSegment.md +1 -1
  87. package/api/@xmachines/play-pattern/functions/parsePattern.md +1 -1
  88. package/api/@xmachines/play-pattern/interfaces/GroupPart.md +6 -6
  89. package/api/@xmachines/play-pattern/interfaces/KeyValueCache.md +3 -3
  90. package/api/@xmachines/play-pattern/interfaces/LiteralPart.md +5 -5
  91. package/api/@xmachines/play-pattern/interfaces/ParamPart.md +9 -9
  92. package/api/@xmachines/play-pattern/interfaces/ParseOptions.md +4 -4
  93. package/api/@xmachines/play-pattern/interfaces/ParsedPattern.md +14 -14
  94. package/api/@xmachines/play-pattern/interfaces/PatternParam.md +6 -6
  95. package/api/@xmachines/play-pattern/type-aliases/PathBuildResult.md +1 -1
  96. package/api/@xmachines/play-pattern/type-aliases/PathParams.md +1 -1
  97. package/api/@xmachines/play-pattern/type-aliases/PatternModifier.md +1 -1
  98. package/api/@xmachines/play-pattern/type-aliases/PatternPart.md +1 -1
  99. package/api/@xmachines/play-react/README.md +58 -19
  100. package/api/@xmachines/play-react/classes/PlayErrorBoundary.md +6 -6
  101. package/api/@xmachines/play-react/functions/defineRegistry.md +1 -1
  102. package/api/@xmachines/play-react/functions/useActor.md +1 -1
  103. package/api/@xmachines/play-react/functions/useAtomEffect.md +1 -1
  104. package/api/@xmachines/play-react/functions/usePlayView.md +1 -1
  105. package/api/@xmachines/play-react/interfaces/ActionProviderProps.md +5 -5
  106. package/api/@xmachines/play-react/interfaces/ActorProviderProps.md +11 -11
  107. package/api/@xmachines/play-react/interfaces/DefineRegistryResult.md +15 -0
  108. package/api/@xmachines/play-react/interfaces/PlayErrorBoundaryProps.md +8 -8
  109. package/api/@xmachines/play-react/interfaces/PlayErrorBoundaryState.md +6 -6
  110. package/api/@xmachines/play-react/interfaces/PlayUIProviderProps.md +13 -13
  111. package/api/@xmachines/play-react/interfaces/RenderErrorInfo.md +16 -0
  112. package/api/@xmachines/play-react/interfaces/RendererProps.md +7 -7
  113. package/api/@xmachines/play-react/interfaces/ViewContextValue.md +7 -7
  114. package/api/@xmachines/play-react/type-aliases/AnyPlayActor.md +1 -1
  115. package/api/@xmachines/play-react/type-aliases/OnRenderError.md +27 -0
  116. package/api/@xmachines/play-react/type-aliases/RenderErrorKind.md +21 -0
  117. package/api/@xmachines/play-react/variables/ActorProvider.md +14 -4
  118. package/api/@xmachines/play-react/variables/PlayRenderer.md +1 -1
  119. package/api/@xmachines/play-react/variables/PlayUIProvider.md +1 -1
  120. package/api/@xmachines/play-react-router/README.md +26 -5
  121. package/api/@xmachines/play-react-router/classes/ReactRouterBridge.md +7 -7
  122. package/api/@xmachines/play-react-router/classes/RouteMap.md +4 -4
  123. package/api/@xmachines/play-react-router/functions/createPlayRouterProvider.md +1 -1
  124. package/api/@xmachines/play-react-router/functions/createRouteMapFromTree.md +1 -1
  125. package/api/@xmachines/play-react-router/interfaces/PlayRouteEvent.md +9 -9
  126. package/api/@xmachines/play-react-router/interfaces/PlayRouterProviderProps.md +11 -11
  127. package/api/@xmachines/play-react-router/interfaces/RoutableActor.md +6 -6
  128. package/api/@xmachines/play-react-router/interfaces/RouteMapOptions.md +6 -6
  129. package/api/@xmachines/play-react-router/interfaces/RouteMapping.md +5 -5
  130. package/api/@xmachines/play-react-router/interfaces/RouterBridge.md +3 -3
  131. package/api/@xmachines/play-react-router/type-aliases/PlayRouterBridgeConstructor.md +1 -1
  132. package/api/@xmachines/play-react-router/type-aliases/PlayRouterProviderBaseProps.md +1 -1
  133. package/api/@xmachines/play-react-router/variables/PlayRouterProvider.md +1 -1
  134. package/api/@xmachines/play-router/README.md +87 -29
  135. package/api/@xmachines/play-router/errors/classes/DuplicateBridgeError.md +11 -11
  136. package/api/@xmachines/play-router/errors/classes/DuplicateRoutePathError.md +12 -12
  137. package/api/@xmachines/play-router/errors/classes/EmptyRoutePathError.md +12 -12
  138. package/api/@xmachines/play-router/errors/classes/InvalidBasePathError.md +12 -12
  139. package/api/@xmachines/play-router/errors/classes/InvalidRoutePatternError.md +12 -12
  140. package/api/@xmachines/play-router/errors/classes/InvalidStateIdError.md +12 -12
  141. package/api/@xmachines/play-router/errors/classes/MissingBasePathParamError.md +13 -13
  142. package/api/@xmachines/play-router/errors/classes/RouterSyncError.md +11 -11
  143. package/api/@xmachines/play-router/errors/classes/UnknownStateTypeError.md +13 -13
  144. package/api/@xmachines/play-router/index/classes/RouteMap.md +4 -4
  145. package/api/@xmachines/play-router/index/classes/RouterBridgeBase.md +7 -7
  146. package/api/@xmachines/play-router/index/functions/buildPlayRouteEvent.md +1 -1
  147. package/api/@xmachines/play-router/index/functions/buildRouteTree.md +1 -1
  148. package/api/@xmachines/play-router/index/functions/cleanFrameworkParams.md +1 -1
  149. package/api/@xmachines/play-router/index/functions/createLruCache.md +1 -1
  150. package/api/@xmachines/play-router/index/functions/createRouteMapFromTree.md +1 -1
  151. package/api/@xmachines/play-router/index/functions/createRouterConnection.md +1 -1
  152. package/api/@xmachines/play-router/index/functions/detectDuplicateRoutes.md +1 -1
  153. package/api/@xmachines/play-router/index/functions/extractQuery.md +1 -1
  154. package/api/@xmachines/play-router/index/functions/extractRouteParams.md +1 -1
  155. package/api/@xmachines/play-router/index/functions/findRouteById.md +1 -1
  156. package/api/@xmachines/play-router/index/functions/findRouteByPath.md +1 -1
  157. package/api/@xmachines/play-router/index/functions/isMountableBridge.md +1 -1
  158. package/api/@xmachines/play-router/index/functions/joinBasePath.md +1 -1
  159. package/api/@xmachines/play-router/index/functions/mountKey.md +1 -1
  160. package/api/@xmachines/play-router/index/functions/normalizeBasePath.md +1 -1
  161. package/api/@xmachines/play-router/index/functions/openProviderBridge.md +5 -5
  162. package/api/@xmachines/play-router/index/functions/parsePattern.md +1 -1
  163. package/api/@xmachines/play-router/index/functions/pickOwnParams.md +1 -1
  164. package/api/@xmachines/play-router/index/functions/repointProviderBridge.md +1 -1
  165. package/api/@xmachines/play-router/index/functions/resolveBasePath.md +1 -1
  166. package/api/@xmachines/play-router/index/functions/resolveFrameworkParams.md +1 -1
  167. package/api/@xmachines/play-router/index/functions/sanitizePathname.md +1 -1
  168. package/api/@xmachines/play-router/index/functions/splitLocation.md +1 -1
  169. package/api/@xmachines/play-router/index/functions/stripBasePath.md +1 -1
  170. package/api/@xmachines/play-router/index/functions/validateRouteFormat.md +1 -1
  171. package/api/@xmachines/play-router/index/functions/validateStateExists.md +1 -1
  172. package/api/@xmachines/play-router/index/interfaces/BasePathOptions.md +5 -5
  173. package/api/@xmachines/play-router/index/interfaces/BuildPlayRouteEventOptions.md +6 -6
  174. package/api/@xmachines/play-router/index/interfaces/CompileOptions.md +5 -5
  175. package/api/@xmachines/play-router/index/interfaces/FrameworkParamsSource.md +9 -9
  176. package/api/@xmachines/play-router/index/interfaces/KeyValueCache.md +3 -3
  177. package/api/@xmachines/play-router/index/interfaces/LocationLike.md +5 -5
  178. package/api/@xmachines/play-router/index/interfaces/MountableRouterBridge.md +8 -8
  179. package/api/@xmachines/play-router/index/interfaces/OpenProviderBridgeArgs.md +10 -10
  180. package/api/@xmachines/play-router/index/interfaces/ParseOptions.md +4 -4
  181. package/api/@xmachines/play-router/index/interfaces/ParsedPattern.md +14 -14
  182. package/api/@xmachines/play-router/index/interfaces/PlayRouteEvent.md +9 -9
  183. package/api/@xmachines/play-router/index/interfaces/PlayRouterProviderBaseProps.md +11 -11
  184. package/api/@xmachines/play-router/index/interfaces/ResolvedBasePath.md +5 -5
  185. package/api/@xmachines/play-router/index/interfaces/ResolvedRoutePath.md +5 -5
  186. package/api/@xmachines/play-router/index/interfaces/Routable.md +5 -5
  187. package/api/@xmachines/play-router/index/interfaces/RoutableActor.md +6 -6
  188. package/api/@xmachines/play-router/index/interfaces/RouteInfo.md +10 -10
  189. package/api/@xmachines/play-router/index/interfaces/RouteMapOptions.md +6 -6
  190. package/api/@xmachines/play-router/index/interfaces/RouteMapping.md +5 -5
  191. package/api/@xmachines/play-router/index/interfaces/RouteMatch.md +5 -5
  192. package/api/@xmachines/play-router/index/interfaces/RouteNode.md +12 -12
  193. package/api/@xmachines/play-router/index/interfaces/RouteObject.md +7 -7
  194. package/api/@xmachines/play-router/index/interfaces/RouteTree.md +7 -7
  195. package/api/@xmachines/play-router/index/interfaces/RouteWatcherHandle.md +3 -3
  196. package/api/@xmachines/play-router/index/interfaces/RouterBridge.md +3 -3
  197. package/api/@xmachines/play-router/index/interfaces/RouterBridgeOptions.md +8 -8
  198. package/api/@xmachines/play-router/index/interfaces/RouterConnection.md +8 -8
  199. package/api/@xmachines/play-router/index/interfaces/SplitLocation.md +7 -7
  200. package/api/@xmachines/play-router/index/interfaces/WindowLike.md +3 -3
  201. package/api/@xmachines/play-router/index/type-aliases/PlayRouterBridgeConstructor.md +1 -1
  202. package/api/@xmachines/play-router/index/type-aliases/RouteData.md +1 -1
  203. package/api/@xmachines/play-router/index/type-aliases/RouteDataResolver.md +1 -1
  204. package/api/@xmachines/play-router/index/type-aliases/RouteMetadata.md +1 -1
  205. package/api/@xmachines/play-router/index/type-aliases/URLPatternLike.md +3 -3
  206. package/api/@xmachines/play-router/index/variables/NO_BASE_PATH.md +1 -1
  207. package/api/@xmachines/play-router/index/variables/ROOT_NODE_ID.md +1 -1
  208. package/api/@xmachines/play-router/xstate/README.md +5 -2
  209. package/api/@xmachines/play-router/xstate/functions/createRouteMap.md +2 -2
  210. package/api/@xmachines/play-router/xstate/functions/extractMachineRoutes.md +5 -5
  211. package/api/@xmachines/play-router/xstate/functions/getNavigableRoutes.md +1 -1
  212. package/api/@xmachines/play-router/xstate/functions/getRoutableRoutes.md +1 -1
  213. package/api/@xmachines/play-router/xstate/functions/getRouteMappings.md +1 -1
  214. package/api/@xmachines/play-router/xstate/functions/getTransitionReachableRoutes.md +7 -8
  215. package/api/@xmachines/play-router/xstate/functions/isRouteReachable.md +8 -9
  216. package/api/@xmachines/play-router/xstate/functions/machineToGraph.md +1 -1
  217. package/api/@xmachines/play-router/xstate/functions/routeExists.md +1 -1
  218. package/api/@xmachines/play-router/xstate/interfaces/Graph.md +26 -0
  219. package/api/@xmachines/play-router/xstate/interfaces/GraphEdge.md +22 -0
  220. package/api/@xmachines/play-router/xstate/interfaces/GraphNode.md +21 -0
  221. package/api/@xmachines/play-router/xstate/interfaces/MachineEdgeData.md +6 -6
  222. package/api/@xmachines/play-router/xstate/interfaces/MachineNodeData.md +7 -7
  223. package/api/@xmachines/play-router/xstate/type-aliases/MachineGraph.md +4 -6
  224. package/api/@xmachines/play-solid/README.md +35 -11
  225. package/api/@xmachines/play-solid/functions/useActor.md +1 -1
  226. package/api/@xmachines/play-solid/functions/useBoundProp.md +8 -5
  227. package/api/@xmachines/play-solid/functions/useFieldValidation.md +6 -4
  228. package/api/@xmachines/play-solid/functions/usePlayView.md +1 -1
  229. package/api/@xmachines/play-solid/functions/useStateBinding.md +5 -3
  230. package/api/@xmachines/play-solid/functions/useStateValue.md +5 -3
  231. package/api/@xmachines/play-solid/interfaces/ActorProviderProps.md +10 -10
  232. package/api/@xmachines/play-solid/interfaces/PlayUIProviderProps.md +13 -13
  233. package/api/@xmachines/play-solid/interfaces/RenderErrorInfo.md +16 -0
  234. package/api/@xmachines/play-solid/interfaces/RendererProps.md +7 -7
  235. package/api/@xmachines/play-solid/interfaces/ViewContextValue.md +7 -7
  236. package/api/@xmachines/play-solid/type-aliases/AnyPlayActor.md +1 -1
  237. package/api/@xmachines/play-solid/type-aliases/OnRenderError.md +27 -0
  238. package/api/@xmachines/play-solid/type-aliases/RenderErrorKind.md +21 -0
  239. package/api/@xmachines/play-solid/variables/ActorContext.md +1 -1
  240. package/api/@xmachines/play-solid/variables/ActorProvider.md +17 -3
  241. package/api/@xmachines/play-solid/variables/PlayRenderer.md +1 -1
  242. package/api/@xmachines/play-solid/variables/PlayUIProvider.md +1 -1
  243. package/api/@xmachines/play-solid-router/README.md +24 -10
  244. package/api/@xmachines/play-solid-router/classes/RouteMap.md +4 -4
  245. package/api/@xmachines/play-solid-router/classes/SolidRouterBridge.md +7 -7
  246. package/api/@xmachines/play-solid-router/functions/createPlayRouterProvider.md +1 -1
  247. package/api/@xmachines/play-solid-router/interfaces/PlayActor.md +6 -6
  248. package/api/@xmachines/play-solid-router/interfaces/PlayRouteEvent.md +9 -9
  249. package/api/@xmachines/play-solid-router/interfaces/PlayRouterProviderProps.md +11 -11
  250. package/api/@xmachines/play-solid-router/interfaces/RoutableActor.md +6 -6
  251. package/api/@xmachines/play-solid-router/interfaces/RouteMapOptions.md +6 -6
  252. package/api/@xmachines/play-solid-router/interfaces/RouteMapping.md +5 -5
  253. package/api/@xmachines/play-solid-router/interfaces/RouterBridge.md +3 -3
  254. package/api/@xmachines/play-solid-router/type-aliases/PlayRouterBridgeConstructor.md +1 -1
  255. package/api/@xmachines/play-solid-router/type-aliases/PlayRouterProviderBaseProps.md +1 -1
  256. package/api/@xmachines/play-solid-router/type-aliases/SolidRouterHooks.md +4 -4
  257. package/api/@xmachines/play-solid-router/variables/PlayRouterProvider.md +1 -1
  258. package/api/@xmachines/play-svelte/README.md +19 -11
  259. package/api/@xmachines/play-svelte/functions/defineRegistry.md +3 -4
  260. package/api/@xmachines/play-svelte/functions/getActorContext.md +1 -1
  261. package/api/@xmachines/play-svelte/functions/getPlayViewContext.md +1 -1
  262. package/api/@xmachines/play-svelte/functions/setActorContext.md +1 -1
  263. package/api/@xmachines/play-svelte/interfaces/ActorProviderProps.md +12 -12
  264. package/api/@xmachines/play-svelte/interfaces/DefineRegistryOptions.md +8 -8
  265. package/api/@xmachines/play-svelte/interfaces/DefineRegistryResult.md +15 -0
  266. package/api/@xmachines/play-svelte/interfaces/PlayUIProviderProps.md +14 -14
  267. package/api/@xmachines/play-svelte/interfaces/RenderErrorInfo.md +16 -0
  268. package/api/@xmachines/play-svelte/interfaces/ViewContextValue.md +7 -7
  269. package/api/@xmachines/play-svelte/type-aliases/AnyPlayActor.md +1 -1
  270. package/api/@xmachines/play-svelte/type-aliases/OnRenderError.md +27 -0
  271. package/api/@xmachines/play-svelte/type-aliases/RenderErrorKind.md +21 -0
  272. package/api/@xmachines/play-svelte-spa-router/README.md +14 -7
  273. package/api/@xmachines/play-svelte-spa-router/classes/RouteMap.md +4 -4
  274. package/api/@xmachines/play-svelte-spa-router/classes/SvelteSpaRouterBridge.md +7 -7
  275. package/api/@xmachines/play-svelte-spa-router/functions/connectRouter.md +1 -1
  276. package/api/@xmachines/play-svelte-spa-router/interfaces/BasePathOptions.md +5 -5
  277. package/api/@xmachines/play-svelte-spa-router/interfaces/ConnectRouterOptions.md +10 -10
  278. package/api/@xmachines/play-svelte-spa-router/interfaces/PlayRouteEvent.md +9 -9
  279. package/api/@xmachines/play-svelte-spa-router/interfaces/RoutableActor.md +6 -6
  280. package/api/@xmachines/play-svelte-spa-router/interfaces/RouteMapOptions.md +6 -6
  281. package/api/@xmachines/play-svelte-spa-router/interfaces/RouteMapping.md +5 -5
  282. package/api/@xmachines/play-svelte-spa-router/interfaces/RouterBridge.md +3 -3
  283. package/api/@xmachines/play-svelte-spa-router/interfaces/RouterConnection.md +8 -8
  284. package/api/@xmachines/play-svelte-spa-router/interfaces/WindowLike.md +3 -3
  285. package/api/@xmachines/play-sveltekit-router/README.md +67 -14
  286. package/api/@xmachines/play-sveltekit-router/classes/RouteMap.md +4 -4
  287. package/api/@xmachines/play-sveltekit-router/classes/SvelteKitRouterBridge.md +29 -19
  288. package/api/@xmachines/play-sveltekit-router/functions/connectRouter.md +1 -1
  289. package/api/@xmachines/play-sveltekit-router/interfaces/BasePathOptions.md +5 -5
  290. package/api/@xmachines/play-sveltekit-router/interfaces/ConnectRouterOptions.md +13 -16
  291. package/api/@xmachines/play-sveltekit-router/interfaces/LocationLike.md +5 -5
  292. package/api/@xmachines/play-sveltekit-router/interfaces/PlayRouteEvent.md +9 -9
  293. package/api/@xmachines/play-sveltekit-router/interfaces/RoutableActor.md +6 -6
  294. package/api/@xmachines/play-sveltekit-router/interfaces/RouteMapOptions.md +6 -6
  295. package/api/@xmachines/play-sveltekit-router/interfaces/RouteMapping.md +5 -5
  296. package/api/@xmachines/play-sveltekit-router/interfaces/RouterBridge.md +3 -3
  297. package/api/@xmachines/play-sveltekit-router/interfaces/RouterConnection.md +8 -8
  298. package/api/@xmachines/play-sveltekit-router/interfaces/SvelteKitRouterBridgeOptions.md +25 -0
  299. package/api/@xmachines/play-sveltekit-router/type-aliases/ShallowNavigation.md +21 -0
  300. package/api/@xmachines/play-tanstack-react-router/README.md +36 -17
  301. package/api/@xmachines/play-tanstack-react-router/classes/RouteMap.md +4 -4
  302. package/api/@xmachines/play-tanstack-react-router/classes/TanStackReactRouterBridge.md +7 -7
  303. package/api/@xmachines/play-tanstack-react-router/functions/createPlayRouterProvider.md +1 -1
  304. package/api/@xmachines/play-tanstack-react-router/functions/createRouteMapFromTree.md +1 -1
  305. package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouteEvent.md +9 -9
  306. package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouterProviderProps.md +11 -11
  307. package/api/@xmachines/play-tanstack-react-router/interfaces/RoutableActor.md +6 -6
  308. package/api/@xmachines/play-tanstack-react-router/interfaces/RouteMapOptions.md +6 -6
  309. package/api/@xmachines/play-tanstack-react-router/interfaces/RouteMapping.md +5 -5
  310. package/api/@xmachines/play-tanstack-react-router/interfaces/RouterBridge.md +3 -3
  311. package/api/@xmachines/play-tanstack-react-router/type-aliases/PlayRouterBridgeConstructor.md +1 -1
  312. package/api/@xmachines/play-tanstack-react-router/type-aliases/PlayRouterProviderBaseProps.md +1 -1
  313. package/api/@xmachines/play-tanstack-react-router/type-aliases/TanStackRouterInstance.md +1 -1
  314. package/api/@xmachines/play-tanstack-react-router/type-aliases/TanStackRouterLike.md +5 -5
  315. package/api/@xmachines/play-tanstack-react-router/variables/PlayRouterProvider.md +1 -1
  316. package/api/@xmachines/play-tanstack-router/README.md +7 -4
  317. package/api/@xmachines/play-tanstack-router/classes/TanStackRouterBridgeBase.md +7 -7
  318. package/api/@xmachines/play-tanstack-router/type-aliases/TanStackRouteMapLike.md +3 -3
  319. package/api/@xmachines/play-tanstack-router/type-aliases/TanStackRouterLike.md +5 -5
  320. package/api/@xmachines/play-tanstack-solid-router/README.md +50 -17
  321. package/api/@xmachines/play-tanstack-solid-router/classes/RouteMap.md +4 -4
  322. package/api/@xmachines/play-tanstack-solid-router/classes/TanStackSolidRouterBridge.md +7 -7
  323. package/api/@xmachines/play-tanstack-solid-router/functions/createPlayRouterProvider.md +1 -1
  324. package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayRouteEvent.md +9 -9
  325. package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayRouterProviderProps.md +11 -11
  326. package/api/@xmachines/play-tanstack-solid-router/interfaces/RoutableActor.md +6 -6
  327. package/api/@xmachines/play-tanstack-solid-router/interfaces/RouteMapOptions.md +6 -6
  328. package/api/@xmachines/play-tanstack-solid-router/interfaces/RouteMapping.md +5 -5
  329. package/api/@xmachines/play-tanstack-solid-router/interfaces/RouterBridge.md +3 -3
  330. package/api/@xmachines/play-tanstack-solid-router/type-aliases/PlayRouterBridgeConstructor.md +1 -1
  331. package/api/@xmachines/play-tanstack-solid-router/type-aliases/PlayRouterProviderBaseProps.md +1 -1
  332. package/api/@xmachines/play-tanstack-solid-router/type-aliases/TanStackRouterInstance.md +1 -1
  333. package/api/@xmachines/play-tanstack-solid-router/type-aliases/TanStackRouterLike.md +5 -5
  334. package/api/@xmachines/play-tanstack-solid-router/variables/PlayRouterProvider.md +1 -1
  335. package/api/@xmachines/play-url/README.md +1 -1
  336. package/api/@xmachines/play-url/errors/classes/InvalidBasePathError.md +12 -12
  337. package/api/@xmachines/play-url/errors/classes/InvalidRoutePatternError.md +12 -12
  338. package/api/@xmachines/play-url/errors/classes/MissingBasePathParamError.md +13 -13
  339. package/api/@xmachines/play-url/index/functions/buildPath.md +1 -1
  340. package/api/@xmachines/play-url/index/functions/cleanFrameworkParams.md +1 -1
  341. package/api/@xmachines/play-url/index/functions/createLruCache.md +1 -1
  342. package/api/@xmachines/play-url/index/functions/getCandidates.md +1 -1
  343. package/api/@xmachines/play-url/index/functions/getCompiledPattern.md +1 -1
  344. package/api/@xmachines/play-url/index/functions/getIndexKey.md +1 -1
  345. package/api/@xmachines/play-url/index/functions/holdsUnsubstitutedParam.md +1 -1
  346. package/api/@xmachines/play-url/index/functions/isDotSegment.md +1 -1
  347. package/api/@xmachines/play-url/index/functions/joinBasePath.md +1 -1
  348. package/api/@xmachines/play-url/index/functions/normalizeBasePath.md +1 -1
  349. package/api/@xmachines/play-url/index/functions/parsePattern.md +1 -1
  350. package/api/@xmachines/play-url/index/functions/pickOwnParams.md +1 -1
  351. package/api/@xmachines/play-url/index/functions/resolveBasePath.md +1 -1
  352. package/api/@xmachines/play-url/index/functions/resolveFrameworkParams.md +1 -1
  353. package/api/@xmachines/play-url/index/functions/sanitizePathname.md +1 -1
  354. package/api/@xmachines/play-url/index/functions/splitLocation.md +1 -1
  355. package/api/@xmachines/play-url/index/functions/stripBasePath.md +1 -1
  356. package/api/@xmachines/play-url/index/interfaces/BasePathOptions.md +5 -5
  357. package/api/@xmachines/play-url/index/interfaces/CompileOptions.md +5 -5
  358. package/api/@xmachines/play-url/index/interfaces/FrameworkParamsSource.md +9 -9
  359. package/api/@xmachines/play-url/index/interfaces/GroupPart.md +6 -6
  360. package/api/@xmachines/play-url/index/interfaces/KeyValueCache.md +3 -3
  361. package/api/@xmachines/play-url/index/interfaces/LiteralPart.md +5 -5
  362. package/api/@xmachines/play-url/index/interfaces/ParamPart.md +9 -9
  363. package/api/@xmachines/play-url/index/interfaces/ParseOptions.md +4 -4
  364. package/api/@xmachines/play-url/index/interfaces/ParsedPattern.md +14 -14
  365. package/api/@xmachines/play-url/index/interfaces/PatternParam.md +6 -6
  366. package/api/@xmachines/play-url/index/interfaces/ResolvedBasePath.md +5 -5
  367. package/api/@xmachines/play-url/index/interfaces/SplitLocation.md +7 -7
  368. package/api/@xmachines/play-url/index/type-aliases/PathBuildResult.md +1 -1
  369. package/api/@xmachines/play-url/index/type-aliases/PathParams.md +1 -1
  370. package/api/@xmachines/play-url/index/type-aliases/PatternModifier.md +1 -1
  371. package/api/@xmachines/play-url/index/type-aliases/PatternPart.md +1 -1
  372. package/api/@xmachines/play-url/index/type-aliases/URLPatternCtor.md +1 -1
  373. package/api/@xmachines/play-url/index/type-aliases/URLPatternLike.md +3 -3
  374. package/api/@xmachines/play-url/index/variables/NO_BASE_PATH.md +1 -1
  375. package/api/@xmachines/play-url/index/variables/URLPattern.md +1 -1
  376. package/api/@xmachines/play-view/README.md +45 -19
  377. package/api/@xmachines/play-view/errors/README.md +1 -0
  378. package/api/@xmachines/play-view/errors/classes/InvalidViewOutletError.md +13 -13
  379. package/api/@xmachines/play-view/errors/classes/ReadOnlyContextError.md +12 -12
  380. package/api/@xmachines/play-view/errors/classes/ViewElementKeyCollisionError.md +181 -0
  381. package/api/@xmachines/play-view/index/README.md +10 -4
  382. package/api/@xmachines/play-view/index/functions/attachRenderErrorHandler.md +10 -9
  383. package/api/@xmachines/play-view/index/functions/bindStoreHandlers.md +34 -0
  384. package/api/@xmachines/play-view/index/functions/composePlayState.md +1 -1
  385. package/api/@xmachines/play-view/index/functions/composeViews.md +8 -2
  386. package/api/@xmachines/play-view/index/functions/createActorProxy.md +39 -0
  387. package/api/@xmachines/play-view/index/functions/createRenderErrorBinding.md +35 -0
  388. package/api/@xmachines/play-view/index/functions/createReportGuard.md +1 -1
  389. package/api/@xmachines/play-view/index/functions/createViewSession.md +29 -0
  390. package/api/@xmachines/play-view/index/functions/createViewStoreLifecycle.md +1 -1
  391. package/api/@xmachines/play-view/index/functions/forwardRenderError.md +45 -0
  392. package/api/@xmachines/play-view/index/functions/guardContextWrites.md +1 -1
  393. package/api/@xmachines/play-view/index/functions/refreshContextSubtree.md +1 -1
  394. package/api/@xmachines/play-view/index/functions/reuseComposedState.md +1 -1
  395. package/api/@xmachines/play-view/index/functions/toAtomState.md +1 -1
  396. package/api/@xmachines/play-view/index/functions/typedSpec.md +1 -1
  397. package/api/@xmachines/play-view/index/interfaces/BaseActorProviderProps.md +8 -8
  398. package/api/@xmachines/play-view/index/interfaces/BaseViewContextValue.md +7 -7
  399. package/api/@xmachines/play-view/index/interfaces/ComposedView.md +7 -7
  400. package/api/@xmachines/play-view/index/interfaces/HandlerFactory.md +19 -0
  401. package/api/@xmachines/play-view/index/interfaces/PlaySpec.md +8 -8
  402. package/api/@xmachines/play-view/index/interfaces/ReportGuard.md +5 -5
  403. package/api/@xmachines/play-view/index/interfaces/ReportGuardMessages.md +5 -5
  404. package/api/@xmachines/play-view/index/interfaces/ResolveViewStoreOptions.md +4 -4
  405. package/api/@xmachines/play-view/index/interfaces/ViewMeta.md +7 -7
  406. package/api/@xmachines/play-view/index/interfaces/ViewOutlet.md +5 -5
  407. package/api/@xmachines/play-view/index/interfaces/ViewSession.md +155 -0
  408. package/api/@xmachines/play-view/index/interfaces/ViewSessionOptions.md +12 -0
  409. package/api/@xmachines/play-view/index/interfaces/ViewSessionSnapshot.md +23 -0
  410. package/api/@xmachines/play-view/index/interfaces/ViewStoreLifecycle.md +22 -3
  411. package/api/@xmachines/play-view/index/interfaces/ViewStoreResolution.md +7 -6
  412. package/api/@xmachines/play-view/index/interfaces/ViewTree.md +6 -6
  413. package/api/@xmachines/play-view/index/interfaces/ViewTreeChild.md +5 -5
  414. package/api/@xmachines/play-view/index/interfaces/Viewable.md +4 -4
  415. package/api/@xmachines/play-view/index/type-aliases/StateUpdater.md +21 -0
  416. package/api/@xmachines/play-view/index/type-aliases/ViewActor.md +1 -1
  417. package/api/@xmachines/play-view/index/variables/CONTEXT_STATE_KEY.md +1 -1
  418. package/api/@xmachines/play-vue/README.md +20 -15
  419. package/api/@xmachines/play-vue/functions/defineRegistry.md +1 -1
  420. package/api/@xmachines/play-vue/functions/useActor.md +1 -1
  421. package/api/@xmachines/play-vue/functions/useBoundProp.md +10 -4
  422. package/api/@xmachines/play-vue/functions/useFieldValidation.md +12 -5
  423. package/api/@xmachines/play-vue/functions/usePlayView.md +1 -1
  424. package/api/@xmachines/play-vue/interfaces/ActorProviderProps.md +8 -8
  425. package/api/@xmachines/play-vue/interfaces/PlayUIProviderProps.md +11 -11
  426. package/api/@xmachines/play-vue/interfaces/RenderErrorInfo.md +16 -0
  427. package/api/@xmachines/play-vue/interfaces/RendererProps.md +7 -7
  428. package/api/@xmachines/play-vue/interfaces/ViewContextValue.md +7 -7
  429. package/api/@xmachines/play-vue/type-aliases/AnyPlayActor.md +1 -1
  430. package/api/@xmachines/play-vue/type-aliases/ComponentEntry.md +1 -1
  431. package/api/@xmachines/play-vue/type-aliases/ComponentsMap.md +1 -1
  432. package/api/@xmachines/play-vue/type-aliases/DefineRegistryOptions.md +4 -4
  433. package/api/@xmachines/play-vue/type-aliases/OnRenderError.md +27 -0
  434. package/api/@xmachines/play-vue/type-aliases/RenderErrorKind.md +21 -0
  435. package/api/@xmachines/play-vue/variables/PlayRenderer.md +1 -1
  436. package/api/@xmachines/play-vue/variables/Renderer.md +3 -3
  437. package/api/@xmachines/play-vue-router/README.md +18 -11
  438. package/api/@xmachines/play-vue-router/errors/classes/VueRouterNavigationError.md +11 -11
  439. package/api/@xmachines/play-vue-router/errors/classes/VueRouterSendError.md +11 -11
  440. package/api/@xmachines/play-vue-router/index/classes/RouteMap.md +4 -4
  441. package/api/@xmachines/play-vue-router/index/classes/VueRouterBridge.md +7 -7
  442. package/api/@xmachines/play-vue-router/index/interfaces/PlayRouteEvent.md +9 -9
  443. package/api/@xmachines/play-vue-router/index/interfaces/RoutableActor.md +6 -6
  444. package/api/@xmachines/play-vue-router/index/interfaces/RouteMapOptions.md +6 -6
  445. package/api/@xmachines/play-vue-router/index/interfaces/RouteMapping.md +5 -5
  446. package/api/@xmachines/play-vue-router/index/interfaces/RouterBridge.md +3 -3
  447. package/api/@xmachines/play-vue-router/index/variables/PlayRouterProvider.md +1 -1
  448. package/api/@xmachines/play-xstate/README.md +120 -57
  449. package/api/@xmachines/play-xstate/errors/classes/ActorThrewNonErrorError.md +11 -11
  450. package/api/@xmachines/play-xstate/errors/classes/InvalidEventError.md +12 -12
  451. package/api/@xmachines/play-xstate/errors/classes/InvalidMachineError.md +11 -11
  452. package/api/@xmachines/play-xstate/errors/classes/InvalidRouteHandlerError.md +12 -12
  453. package/api/@xmachines/play-xstate/errors/classes/InvalidRouteMetadataError.md +12 -12
  454. package/api/@xmachines/play-xstate/errors/classes/InvalidRouteParamError.md +14 -14
  455. package/api/@xmachines/play-xstate/errors/classes/MissingRouteParamError.md +13 -13
  456. package/api/@xmachines/play-xstate/errors/classes/MissingStateIdError.md +15 -15
  457. package/api/@xmachines/play-xstate/index/README.md +1 -1
  458. package/api/@xmachines/play-xstate/index/classes/PlayerActor.md +201 -124
  459. package/api/@xmachines/play-xstate/index/functions/compose.md +4 -4
  460. package/api/@xmachines/play-xstate/index/functions/definePlayer.md +14 -10
  461. package/api/@xmachines/play-xstate/index/interfaces/PlayerConfig.md +6 -6
  462. package/api/@xmachines/play-xstate/index/interfaces/PlayerFactoryResumeOptions.md +4 -4
  463. package/api/@xmachines/play-xstate/index/interfaces/PlayerOptions.md +9 -9
  464. package/api/@xmachines/play-xstate/index/type-aliases/Capability.md +1 -1
  465. package/api/@xmachines/play-xstate/index/type-aliases/PlayerConstructor.md +1 -1
  466. package/api/@xmachines/play-xstate/index/type-aliases/PlayerFactory.md +1 -1
  467. package/api/@xmachines/play-xstate/with-routing/functions/buildRouteUrl.md +1 -1
  468. package/api/@xmachines/play-xstate/with-routing/functions/deriveRoute.md +13 -5
  469. package/api/@xmachines/play-xstate/with-routing/functions/formatPlayRouteTransitions.md +26 -13
  470. package/api/@xmachines/play-xstate/with-routing/functions/isAbsoluteRoute.md +1 -1
  471. package/api/@xmachines/play-xstate/with-routing/functions/withRouting.md +1 -1
  472. package/api/@xmachines/play-xstate/with-routing/interfaces/RouteContext.md +8 -8
  473. package/api/@xmachines/play-xstate/with-routing/interfaces/RouteObject.md +7 -7
  474. package/api/@xmachines/play-xstate/with-routing/type-aliases/RouteData.md +1 -1
  475. package/api/@xmachines/play-xstate/with-routing/type-aliases/RouteDataResolver.md +1 -1
  476. package/api/@xmachines/play-xstate/with-routing/type-aliases/RouteMachineConfig.md +4 -4
  477. package/api/@xmachines/play-xstate/with-routing/type-aliases/RouteMetadata.md +1 -1
  478. package/api/@xmachines/play-xstate/with-routing/type-aliases/RouteStateNode.md +5 -5
  479. package/api/@xmachines/play-xstate/with-view/functions/withView.md +1 -1
  480. package/api/@xmachines/shared/README.md +1 -0
  481. package/api/@xmachines/shared/vite-aliases/functions/xmAliases.md +1 -1
  482. package/api/@xmachines/shared/vite-aliases/functions/xmBuildOutput.md +1 -1
  483. package/api/@xmachines/shared/vite-aliases/functions/xmBuildOutputFile.md +1 -1
  484. package/api/@xmachines/shared/vite-aliases/functions/xmCacheDir.md +1 -1
  485. package/api/@xmachines/shared/vite-aliases/functions/xmOptimizeDeps.md +1 -1
  486. package/api/@xmachines/shared/vite-aliases/functions/xmResolve.md +1 -1
  487. package/api/@xmachines/shared/vite-aliases/functions/xmSvelteRunes.md +4 -4
  488. package/api/@xmachines/shared/vite-aliases/functions/xmTestTarget.md +1 -1
  489. package/api/@xmachines/shared/vite-aliases/type-aliases/XmTestTarget.md +1 -1
  490. package/api/@xmachines/shared/vitest/functions/defineXmBrowserConfig.md +1 -1
  491. package/api/@xmachines/shared/vitest/functions/defineXmVitestConfig.md +1 -1
  492. package/api/@xmachines/shared/vitest/interfaces/XmBrowserConfigOptions.md +6 -6
  493. package/contributing/architecture.md +100 -61
  494. package/contributing/configuration.md +44 -62
  495. package/contributing/deployment.md +131 -161
  496. package/contributing/development.md +34 -9
  497. package/contributing/migrating-to-play-atom.md +23 -5
  498. package/contributing/testing.md +64 -33
  499. package/examples/@xmachines/play-dom-demo/README.md +2 -2
  500. package/examples/@xmachines/play-dom-demo/functions/createAuthActionHandlers.md +11 -11
  501. package/examples/@xmachines/play-dom-demo/functions/createConfirmDialog.md +1 -1
  502. package/examples/@xmachines/play-dom-demo/functions/createNavBar.md +1 -1
  503. package/examples/@xmachines/play-dom-demo/functions/initShell.md +1 -1
  504. package/examples/@xmachines/play-dom-demo/type-aliases/AuthCatalog.md +1 -1
  505. package/examples/@xmachines/play-dom-demo/variables/About.md +1 -1
  506. package/examples/@xmachines/play-dom-demo/variables/Button.md +1 -1
  507. package/examples/@xmachines/play-dom-demo/variables/Contact.md +1 -1
  508. package/examples/@xmachines/play-dom-demo/variables/Dashboard.md +1 -1
  509. package/examples/@xmachines/play-dom-demo/variables/Field.md +1 -1
  510. package/examples/@xmachines/play-dom-demo/variables/Home.md +1 -1
  511. package/examples/@xmachines/play-dom-demo/variables/Login.md +1 -1
  512. package/examples/@xmachines/play-dom-demo/variables/NavBarView.md +1 -1
  513. package/examples/@xmachines/play-dom-demo/variables/Navigation.md +1 -1
  514. package/examples/@xmachines/play-dom-demo/variables/Overview.md +1 -1
  515. package/examples/@xmachines/play-dom-demo/variables/Panel.md +1 -1
  516. package/examples/@xmachines/play-dom-demo/variables/Profile.md +1 -1
  517. package/examples/@xmachines/play-dom-demo/variables/Settings.md +1 -1
  518. package/examples/@xmachines/play-dom-demo/variables/Stats.md +1 -1
  519. package/examples/@xmachines/play-dom-demo/variables/authCatalog.md +1 -1
  520. package/examples/@xmachines/play-dom-demo/variables/demoComponents.md +17 -17
  521. package/examples/@xmachines/play-dom-router-demo/README.md +4 -3
  522. package/examples/@xmachines/play-react-demo/README.md +2 -2
  523. package/examples/@xmachines/play-react-demo/functions/createAuthActionHandlers.md +11 -11
  524. package/examples/@xmachines/play-react-demo/type-aliases/AuthCatalog.md +1 -1
  525. package/examples/@xmachines/play-react-demo/variables/About.md +1 -1
  526. package/examples/@xmachines/play-react-demo/variables/Button.md +1 -1
  527. package/examples/@xmachines/play-react-demo/variables/Contact.md +1 -1
  528. package/examples/@xmachines/play-react-demo/variables/Dashboard.md +1 -1
  529. package/examples/@xmachines/play-react-demo/variables/DebugPanel.md +1 -1
  530. package/examples/@xmachines/play-react-demo/variables/Field.md +1 -1
  531. package/examples/@xmachines/play-react-demo/variables/Home.md +1 -1
  532. package/examples/@xmachines/play-react-demo/variables/Login.md +1 -1
  533. package/examples/@xmachines/play-react-demo/variables/NavBar.md +1 -1
  534. package/examples/@xmachines/play-react-demo/variables/NavBarView.md +1 -1
  535. package/examples/@xmachines/play-react-demo/variables/Navigation.md +1 -1
  536. package/examples/@xmachines/play-react-demo/variables/Overview.md +1 -1
  537. package/examples/@xmachines/play-react-demo/variables/Panel.md +1 -1
  538. package/examples/@xmachines/play-react-demo/variables/Profile.md +1 -1
  539. package/examples/@xmachines/play-react-demo/variables/Settings.md +1 -1
  540. package/examples/@xmachines/play-react-demo/variables/Shell.md +1 -1
  541. package/examples/@xmachines/play-react-demo/variables/Stats.md +1 -1
  542. package/examples/@xmachines/play-react-demo/variables/authCatalog.md +1 -1
  543. package/examples/@xmachines/play-react-demo/variables/demoComponents.md +17 -17
  544. package/examples/@xmachines/play-react-router-demo/README.md +4 -3
  545. package/examples/@xmachines/play-solid-demo/README.md +3 -3
  546. package/examples/@xmachines/play-solid-demo/functions/createAuthActionHandlers.md +11 -11
  547. package/examples/@xmachines/play-solid-demo/type-aliases/AuthCatalog.md +1 -1
  548. package/examples/@xmachines/play-solid-demo/variables/About.md +1 -1
  549. package/examples/@xmachines/play-solid-demo/variables/Button.md +1 -1
  550. package/examples/@xmachines/play-solid-demo/variables/Contact.md +1 -1
  551. package/examples/@xmachines/play-solid-demo/variables/Dashboard.md +1 -1
  552. package/examples/@xmachines/play-solid-demo/variables/DebugPanel.md +1 -1
  553. package/examples/@xmachines/play-solid-demo/variables/Field.md +1 -1
  554. package/examples/@xmachines/play-solid-demo/variables/Home.md +1 -1
  555. package/examples/@xmachines/play-solid-demo/variables/Login.md +1 -1
  556. package/examples/@xmachines/play-solid-demo/variables/NavBar.md +1 -1
  557. package/examples/@xmachines/play-solid-demo/variables/NavBarView.md +1 -1
  558. package/examples/@xmachines/play-solid-demo/variables/Navigation.md +1 -1
  559. package/examples/@xmachines/play-solid-demo/variables/Overview.md +1 -1
  560. package/examples/@xmachines/play-solid-demo/variables/Panel.md +1 -1
  561. package/examples/@xmachines/play-solid-demo/variables/Profile.md +1 -1
  562. package/examples/@xmachines/play-solid-demo/variables/Settings.md +1 -1
  563. package/examples/@xmachines/play-solid-demo/variables/Shell.md +1 -1
  564. package/examples/@xmachines/play-solid-demo/variables/Stats.md +1 -1
  565. package/examples/@xmachines/play-solid-demo/variables/authCatalog.md +1 -1
  566. package/examples/@xmachines/play-solid-demo/variables/demoComponents.md +17 -17
  567. package/examples/@xmachines/play-solid-router-demo/README.md +9 -3
  568. package/examples/@xmachines/play-svelte-demo/README.md +1 -1
  569. package/examples/@xmachines/play-svelte-demo/functions/createAuthActionHandlers.md +11 -11
  570. package/examples/@xmachines/play-svelte-demo/type-aliases/AuthCatalog.md +1 -1
  571. package/examples/@xmachines/play-svelte-demo/variables/authCatalog.md +1 -1
  572. package/examples/@xmachines/play-svelte-demo/variables/demoComponents.md +17 -17
  573. package/examples/@xmachines/play-svelte-spa-router-demo/README.md +1 -1
  574. package/examples/@xmachines/play-sveltekit-router-demo/README.md +1 -1
  575. package/examples/@xmachines/play-tanstack-react-router-demo/README.md +3 -2
  576. package/examples/@xmachines/play-tanstack-solid-router-demo/README.md +9 -8
  577. package/examples/@xmachines/play-vue-demo/README.md +2 -2
  578. package/examples/@xmachines/play-vue-demo/functions/createAuthActionHandlers.md +11 -11
  579. package/examples/@xmachines/play-vue-demo/type-aliases/AuthCatalog.md +1 -1
  580. package/examples/@xmachines/play-vue-demo/variables/App.md +1 -1
  581. package/examples/@xmachines/play-vue-demo/variables/authCatalog.md +1 -1
  582. package/examples/@xmachines/play-vue-demo/variables/demoComponents.md +1 -1
  583. package/examples/@xmachines/play-vue-router-demo/README.md +3 -3
  584. package/examples/README.md +1 -1
  585. package/examples/basic-state-machine.md +19 -23
  586. package/examples/form-validation.md +60 -61
  587. package/examples/multi-router-integration.md +268 -147
  588. package/examples/routing-patterns.md +73 -43
  589. package/examples/traffic-light.md +24 -22
  590. package/guides/actor-model.md +38 -21
  591. package/guides/atoms.md +48 -8
  592. package/guides/getting-started.md +106 -62
  593. package/guides/inspector.md +103 -37
  594. package/guides/routing.md +7 -2
  595. package/guides/state-machines.md +106 -68
  596. package/guides/views.md +40 -18
  597. package/package.json +6 -6
  598. package/rfc/git.md +13 -5
  599. package/rfc/play.md +53 -31
  600. package/rfc/run.md +7 -4
  601. package/api/@xmachines/play-view/index/functions/createFailureLatch.md +0 -20
  602. package/api/@xmachines/play-view/index/functions/sameViewInputs.md +0 -25
  603. package/api/@xmachines/play-view/index/interfaces/FailureLatch.md +0 -60
  604. package/api/@xmachines/play-view/index/interfaces/ViewInputs.md +0 -19
@@ -102,13 +102,13 @@ The test suite relies on TypeScript path aliases that resolve to source files. I
102
102
 
103
103
  #### TypeScript errors about missing types after adding a dependency
104
104
 
105
- Run `pnpm install --frozen-lockfile` again to ensure all types are installed. If you added a workspace-local dependency, also add the correct `references` entry in the package's `tsconfig.base.json`.
105
+ Run `pnpm install --frozen-lockfile` again to ensure all types are installed. If you added a workspace-local dependency, declare it in the `package.json` of the package with a `workspace:*` range. The root `tsconfig.json` holds the build order, and `tests/tsconfig-reference-graph.test.ts` fails when that order misses the new edge.
106
106
 
107
107
  #### Lint errors about import extensions
108
108
 
109
109
  All TypeScript imports must end with `.js`, even for `.ts` source files:
110
110
 
111
- ```typescript
111
+ ```typescript fragment
112
112
  // ✅ Correct
113
113
  import { PlayError } from "./errors.js";
114
114
 
@@ -143,7 +143,7 @@ This section covers installing XMachines packages into your own application and
143
143
  - **Node.js** `>= 24.0.0`
144
144
  - **pnpm** via corepack (`corepack enable`)
145
145
  - **TypeScript** `>= 5.7` (strict mode recommended)
146
- - **XState** `v5` (required peer dependency for [`@xmachines/play-xstate`](../api/@xmachines/play-xstate/README.md))
146
+ - **XState** `6.0.0-alpha.71` (required peer dependency for [`@xmachines/play-xstate`](../api/@xmachines/play-xstate/README.md))
147
147
 
148
148
  All packages are ES modules (`"type": "module"`). Use `.js` extensions in all TypeScript imports.
149
149
 
@@ -154,12 +154,14 @@ All packages are ES modules (`"type": "module"`). Use `.js` extensions in all Ty
154
154
  Every XMachines application needs these six packages plus XState:
155
155
 
156
156
  ```bash
157
- pnpm add xstate @xmachines/play-xstate @xmachines/play-actor @xmachines/play-atom @xmachines/play @xmachines/core @xmachines/json-render-core
157
+ pnpm add xstate@6.0.0-alpha.71 @xmachines/play-xstate @xmachines/play-actor @xmachines/play-atom @xmachines/play @xmachines/core @xmachines/json-render-core@0.21.0-xm.7
158
158
  ```
159
159
 
160
+ The json-render packages are exact peers: install the version that this release names, `0.21.0-xm.7`.
161
+
160
162
  | Package | Role |
161
163
  | ------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
162
- | `xstate` | XState v5 state machine engine (peer dependency) |
164
+ | `xstate` | XState v6 state machine engine (peer dependency) |
163
165
  | [`@xmachines/play-xstate`](../api/@xmachines/play-xstate/README.md) | [`definePlayer()`](../api/@xmachines/play-xstate/index/functions/definePlayer.md), [`PlayerActor`](../api/@xmachines/play-xstate/index/classes/PlayerActor.md), routing helpers |
164
166
  | [`@xmachines/play-actor`](../api/@xmachines/play-actor/README.md) | The actor contract: `PlayActor`, which names no state machine library |
165
167
  | [`@xmachines/play-atom`](../api/@xmachines/play-atom/README.md) | The atom primitives (`createAtom`, [`watchAtom`](../api/@xmachines/play-atom/functions/watchAtom.md)) |
@@ -200,15 +202,14 @@ pnpm add @xmachines/play-dom # Vanilla DOM
200
202
  The minimum viable XMachines actor — no framework dependencies:
201
203
 
202
204
  ```typescript
203
- import { setup } from "xstate";
205
+ import { setup, types } from "xstate";
204
206
  import { definePlayer } from "@xmachines/play-xstate";
205
207
 
206
- // 1. Declare types with setup() — the XState v5 typed entry point
208
+ // 1. Declare the schemas with setup() — the XState v6 typed entry point
207
209
  const appSetup = setup({
208
- types: {
209
- context: {} as { count: number },
210
- events: {} as { type: "toggle" },
211
- input: {} as undefined,
210
+ schemas: {
211
+ context: types<{ count: number }>(),
212
+ events: { toggle: types<void>() },
212
213
  },
213
214
  });
214
215
 
@@ -220,18 +221,12 @@ const machine = appSetup.createMachine({
220
221
  states: {
221
222
  off: {
222
223
  on: {
223
- toggle: {
224
- target: "on",
225
- actions: appSetup.assign({ count: ({ context }) => context.count + 1 }),
226
- },
224
+ toggle: ({ context }) => ({ target: "on", context: { count: context.count + 1 } }),
227
225
  },
228
226
  },
229
227
  on: {
230
228
  on: {
231
- toggle: {
232
- target: "off",
233
- actions: appSetup.assign({ count: ({ context }) => context.count + 1 }),
234
- },
229
+ toggle: ({ context }) => ({ target: "off", context: { count: context.count + 1 } }),
235
230
  },
236
231
  },
237
232
  },
@@ -258,8 +253,8 @@ actor.stop();
258
253
 
259
254
  **Key rules:**
260
255
 
261
- - Always use `setup({ types })` before `createMachine` — never bare `createMachine` from xstate.
262
- - Use `setup.assign(...)` for context mutations — not the bare `assign` from xstate.
256
+ - Always use `setup({ schemas })` before `createMachine` — never bare `createMachine` from xstate.
257
+ - Return a context patch from a transition function — `{ context: { count: 1 } }`. XState 6 has no `assign` action.
263
258
  - Call `actor.start()` before sending events.
264
259
  - Call `actor.stop()` when done to clean up atom subscriptions.
265
260
 
@@ -272,6 +267,10 @@ release:
272
267
 
273
268
  ```typescript
274
269
  import { watchAtom } from "@xmachines/play-atom";
270
+ import type { PlayerActor } from "@xmachines/play-xstate";
271
+ import type { AnyStateMachine } from "xstate";
272
+
273
+ declare const actor: PlayerActor<AnyStateMachine>; // the actor of the example above
275
274
 
276
275
  const stop = watchAtom(actor.state, (snapshot) => {
277
276
  console.log("the machine is now:", snapshot.value);
@@ -309,23 +308,27 @@ State machines control navigation through `meta.route` on states and `play.route
309
308
  [`formatPlayRouteTransitions`](../api/@xmachines/play-xstate/with-routing/functions/formatPlayRouteTransitions.md) auto-generates `play.route` handlers from `id` + `meta.route` state pairs:
310
309
 
311
310
  ```typescript
312
- import { setup } from "xstate";
311
+ import { setup, types } from "xstate";
313
312
  import { definePlayer, compose, PlayerActor } from "@xmachines/play-xstate";
314
313
  import { formatPlayRouteTransitions } from "@xmachines/play-xstate/routing";
315
314
  import { withRouting } from "@xmachines/play-xstate/routing";
316
- import type { PlayRouteEvent } from "@xmachines/play-router";
315
+ import type { PlayRouteEvent, RouteMetadata } from "@xmachines/play-router";
317
316
 
318
317
  const appSetup = setup({
319
- types: {
318
+ schemas: {
320
319
  // params and query are REQUIRED for formatPlayRouteTransitions
321
- context: {} as {
320
+ context: types<{
322
321
  isAuthenticated: boolean;
323
322
  params: Record<string, string>;
324
323
  query: Record<string, string>;
324
+ }>(),
325
+ events: {
326
+ "play.route": types<Omit<PlayRouteEvent, "type">>(),
327
+ "auth.login": types<{ username: string }>(),
328
+ "auth.logout": types<void>(),
325
329
  },
326
- events: {} as
327
- PlayRouteEvent | { type: "auth.login"; username: string } | { type: "auth.logout" },
328
- input: {} as undefined,
330
+ // The `meta` of each state: XState 6 types it from this schema
331
+ meta: types<{ route?: RouteMetadata }>(),
329
332
  },
330
333
  });
331
334
 
@@ -343,26 +346,21 @@ const appMachine = appSetup.createMachine(
343
346
  id: "dashboard",
344
347
  meta: { route: "/dashboard" },
345
348
  // always guard: redirect to /login if not authenticated
346
- always: {
347
- guard: ({ context }) => !context.isAuthenticated,
348
- target: "login",
349
- },
349
+ always: ({ context }) =>
350
+ context.isAuthenticated ? undefined : { target: "login" },
350
351
  },
351
352
  profile: { id: "profile", meta: { route: "/profile/:username" } },
352
353
  },
353
354
  on: {
354
- "auth.login": {
355
- target: ".dashboard",
356
- guard: ({ context }) => !context.isAuthenticated,
357
- actions: appSetup.assign({
358
- isAuthenticated: true,
359
- }),
360
- },
361
- "auth.logout": {
362
- target: ".home",
363
- guard: ({ context }) => context.isAuthenticated,
364
- actions: appSetup.assign({ isAuthenticated: false }),
365
- },
355
+ // A transition function is the guard: it returns nothing to refuse the event
356
+ "auth.login": ({ context }) =>
357
+ context.isAuthenticated
358
+ ? undefined
359
+ : { target: ".dashboard", context: { isAuthenticated: true } },
360
+ "auth.logout": ({ context }) =>
361
+ context.isAuthenticated
362
+ ? { target: ".home", context: { isAuthenticated: false } }
363
+ : undefined,
366
364
  },
367
365
  }),
368
366
  );
@@ -412,16 +410,27 @@ Used with framework-integrated routers like TanStack Router. All three props (`a
412
410
 
413
411
  ```tsx
414
412
  // React + TanStack Router example
415
- import { useMemo, useEffect } from "react";
413
+ import { useMemo, useEffect, type ReactNode } from "react";
416
414
  import { createRouter, createRootRoute } from "@tanstack/react-router";
417
415
  import { PlayRouterProvider, createRouteMapFromTree } from "@xmachines/play-tanstack-react-router";
418
416
  import { extractMachineRoutes } from "@xmachines/play-router/xstate";
417
+ import { compose, definePlayer, PlayerActor } from "@xmachines/play-xstate";
418
+ import { withRouting } from "@xmachines/play-xstate/routing";
419
+ import type { AnyStateMachine } from "xstate";
420
+
421
+ declare const appMachine: AnyStateMachine; // the machine of "Adding Routing"
422
+ declare function Shell(props: { actor: typeof actor }): ReactNode; // your layout
423
+
419
424
  // Build OUTSIDE of JSX — must be stable references
420
425
  const routeTree = extractMachineRoutes(appMachine);
421
426
  const routeMap = createRouteMapFromTree(routeTree);
422
427
  const router = createRouter({ routeTree: createRootRoute() });
423
428
 
424
429
  // Actor also created outside the component (or memoized inside)
430
+ const createPlayer = definePlayer({
431
+ machine: appMachine,
432
+ actor: compose(PlayerActor, withRouting),
433
+ });
425
434
  const actor = createPlayer();
426
435
  actor.start();
427
436
 
@@ -448,12 +457,21 @@ Used with framework-agnostic or server-rendered routers. `connectRouter` handles
448
457
  import { createBrowserHistory, createRouter, connectRouter } from "@xmachines/play-dom-router";
449
458
  import { createRouteMapFromTree } from "@xmachines/play-router";
450
459
  import { extractMachineRoutes } from "@xmachines/play-router/xstate";
460
+ import { compose, definePlayer, PlayerActor } from "@xmachines/play-xstate";
461
+ import { withRouting } from "@xmachines/play-xstate/routing";
462
+ import type { AnyStateMachine } from "xstate";
463
+
464
+ declare const appMachine: AnyStateMachine; // the machine of "Adding Routing"
451
465
 
452
466
  const routeTree = extractMachineRoutes(appMachine);
453
467
  const routeMap = createRouteMapFromTree(routeTree);
454
468
  const history = createBrowserHistory({ window });
455
469
  const router = createRouter({ routeTree, history });
456
470
 
471
+ const createPlayer = definePlayer({
472
+ machine: appMachine,
473
+ actor: compose(PlayerActor, withRouting),
474
+ });
457
475
  const actor = createPlayer();
458
476
  actor.start();
459
477
 
@@ -483,6 +501,10 @@ import { PlayUIProvider, PlayRenderer, defineRegistry } from "@xmachines/play-re
483
501
  import { defineCatalog } from "@xmachines/json-render-core";
484
502
  import { schema } from "@xmachines/play-react";
485
503
  import { z } from "zod";
504
+ import type { ViewActor } from "@xmachines/play-view";
505
+
506
+ type AuthEvent = { type: "auth.login"; username: string } | { type: "auth.logout" };
507
+ declare const actor: ViewActor<unknown, AuthEvent>; // your actor, composed with `withView`
486
508
 
487
509
  const catalog = defineCatalog(schema, {
488
510
  components: {
@@ -501,7 +523,9 @@ const registryResult = defineRegistry(catalog, {
501
523
  Login: ({ on }) => <button onClick={() => on("submit").emit()}>Log in</button>,
502
524
  },
503
525
  actions: {
504
- login: async ({ username }) => actor.send({ type: "auth.login", username }),
526
+ login: async (params) => {
527
+ if (params) actor.send({ type: "auth.login", username: params.username });
528
+ },
505
529
  logout: async () => actor.send({ type: "auth.logout" }),
506
530
  },
507
531
  });
@@ -548,7 +572,9 @@ function App() {
548
572
  Login: { template: `<button @click="on('submit').emit()">Log in</button>` },
549
573
  },
550
574
  actions: {
551
- login: async ({ username }) => actor.send({ type: "auth.login", username }),
575
+ login: async (params) => {
576
+ if (params) actor.send({ type: "auth.login", username: params.username });
577
+ },
552
578
  logout: async () => actor.send({ type: "auth.logout" }),
553
579
  },
554
580
  });
@@ -562,6 +588,10 @@ import { PlayUIProvider, PlayRenderer, defineRegistry } from "@xmachines/play-so
562
588
  import { defineCatalog } from "@xmachines/json-render-core";
563
589
  import { schema } from "@xmachines/play-solid";
564
590
  import { z } from "zod";
591
+ import type { ViewActor } from "@xmachines/play-view";
592
+
593
+ type AuthEvent = { type: "auth.login"; username: string } | { type: "auth.logout" };
594
+ declare const actor: ViewActor<unknown, AuthEvent>; // your actor, composed with `withView`
565
595
 
566
596
  const catalog = defineCatalog(schema, {
567
597
  components: {
@@ -580,7 +610,9 @@ const registryResult = defineRegistry(catalog, {
580
610
  Login: ({ on }) => <button onClick={() => on("submit").emit()}>Log in</button>,
581
611
  },
582
612
  actions: {
583
- login: async ({ username }) => actor.send({ type: "auth.login", username }),
613
+ login: async (params) => {
614
+ if (params) actor.send({ type: "auth.login", username: params.username });
615
+ },
584
616
  logout: async () => actor.send({ type: "auth.logout" }),
585
617
  },
586
618
  });
@@ -601,6 +633,10 @@ import { createPlayUI, defineRegistry, schema } from "@xmachines/play-dom";
601
633
  import { defineCatalog } from "@xmachines/json-render-core";
602
634
  import { z } from "zod";
603
635
  import type { ComponentFn } from "@xmachines/play-dom";
636
+ import type { ViewActor } from "@xmachines/play-view";
637
+
638
+ type AuthEvent = { type: "auth.login"; username: string } | { type: "auth.logout" };
639
+ declare const actor: ViewActor<unknown, AuthEvent>; // your actor, composed with `withView`
604
640
 
605
641
  const catalog = defineCatalog(schema, {
606
642
  components: {
@@ -631,7 +667,9 @@ const Login: ComponentFn<typeof catalog, "Login"> = ({ on }) => {
631
667
  const registryResult = defineRegistry(catalog, {
632
668
  components: { Home, Login },
633
669
  actions: {
634
- login: async ({ username }) => actor.send({ type: "auth.login", username }),
670
+ login: async (params) => {
671
+ if (params) actor.send({ type: "auth.login", username: params.username });
672
+ },
635
673
  logout: async () => actor.send({ type: "auth.logout" }),
636
674
  },
637
675
  });
@@ -654,18 +692,18 @@ const disconnect = mount(actor, document.getElementById("app")!);
654
692
  `query` field builds a query-less URL, exactly like `query: {}`.
655
693
 
656
694
  **Fix:** With [`formatPlayRouteTransitions`](../api/@xmachines/play-xstate/with-routing/functions/formatPlayRouteTransitions.md)
657
- nothing is needed — the generated transitions assign `event.query` to context
658
- on every navigation. A machine that handles `play.route` by hand must do that
659
- assignment itself:
695
+ nothing is needed — the generated transitions write `event.query` to context
696
+ on every navigation. A machine that handles `play.route` by hand must return that
697
+ context patch itself:
660
698
 
661
- ```typescript
699
+ ```typescript fragment
662
700
  on: {
663
- "play.route": {
664
- actions: assign({
665
- params: ({ event }) => event.params ?? {},
666
- query: ({ event }) => event.query ?? {},
667
- }),
668
- },
701
+ "play.route": ({ event }) => ({
702
+ context: {
703
+ params: event.params ?? {},
704
+ query: event.query ?? {},
705
+ },
706
+ }),
669
707
  }
670
708
  ```
671
709
 
@@ -675,7 +713,7 @@ on: {
675
713
 
676
714
  **Fix:** Every state with `meta.route` must declare an explicit `id`:
677
715
 
678
- ```typescript
716
+ ```typescript fragment
679
717
  // ❌ Missing id
680
718
  home: { meta: { route: "/" } }
681
719
 
@@ -690,6 +728,12 @@ home: { id: "home", meta: { route: "/" } }
690
728
  **Fix:** Always call `actor.start()` before `actor.send()`:
691
729
 
692
730
  ```typescript
731
+ import { definePlayer } from "@xmachines/play-xstate";
732
+ import type { AnyStateMachine } from "xstate";
733
+
734
+ declare const machine: AnyStateMachine; // your machine
735
+
736
+ const createPlayer = definePlayer({ machine });
693
737
  const actor = createPlayer();
694
738
  actor.start(); // required before any send()
695
739
  actor.send({ type: "toggle" });
@@ -701,7 +745,7 @@ actor.send({ type: "toggle" });
701
745
 
702
746
  **Fix:** Construct stable references outside JSX or memoize them:
703
747
 
704
- ```typescript
748
+ ```typescript fragment
705
749
  // ✅ Built outside the component
706
750
  const routeTree = extractMachineRoutes(appMachine);
707
751
  const routeMap = createRouteMapFromTree(routeTree);
@@ -726,7 +770,7 @@ node --version
726
770
 
727
771
  | Term | Description |
728
772
  | ------------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------- |
729
- | `setup({ types })` | XState v5 entry point — declares TypeScript types for context, events, and input |
773
+ | `setup({ schemas })` | XState v6 entry point — declares the schemas of the context, the events, the input, and the `meta` of the states |
730
774
  | [`definePlayer({ machine })`](../api/@xmachines/play-xstate/index/functions/definePlayer.md) | Creates a factory that produces [`PlayerActor`](../api/@xmachines/play-xstate/index/classes/PlayerActor.md) instances |
731
775
  | `actor.start()` | Activates the machine — always call before sending events |
732
776
  | `actor.send({ type })` | Sends an event; machine guards decide whether a transition occurs |
@@ -1,35 +1,36 @@
1
1
  # Inspecting a Running Actor
2
2
 
3
- A `PlayerActor` is an XState actor, so every XState inspection tool works on it unchanged. This guide covers how to attach an inspector, what the events look like once they arrive, and the two things that are specific to XMachines: the actor _is_ the actor an inspector sees, and the observer is configured on the factory rather than on each instance.
3
+ A `PlayerActor` is an XState actor, so every observer of the inspection events of XState 6 works on it unchanged. This guide covers how to attach an inspector, what the events look like once they arrive, and the two things that are specific to XMachines: the actor _is_ the actor an inspector sees, and the observer is configured on the factory rather than on each instance.
4
4
 
5
- After reading this you will be able to open the [Stately inspector](https://stately.ai/docs/inspector) against a running demo or your own app, inspect an actor that has no browser around it, and wire an inspector that can be turned on after the actor has already started.
5
+ After reading this you will be able to observe a running demo or your own app, inspect an actor that has no browser around it, and wire an inspector that can be turned on after the actor has already started.
6
6
 
7
- - [Quick start](#quick-start) — three lines to a live inspector
7
+ - [Quick start](#quick-start) — one observer on the factory
8
8
  - [Where the observer attaches](#where-the-observer-attaches) — factory-level, creation-time
9
9
  - [Reading the events](#reading-the-events) — identity, `rootId`, the construction caveat
10
10
  - [Turning the inspector on later](#turning-the-inspector-on-later) — dev-tools toggles and replay
11
- - [Inspecting without a browser](#inspecting-without-a-browser) — WebSocket transport, Node and SSR
12
- - [Trying it in the demos](#trying-it-in-the-demos) — the shared demo controller
11
+ - [Inspecting without a browser](#inspecting-without-a-browser) — Node and SSR
12
+ - [Trying it in the demos](#trying-it-in-the-demos) — the shared demo controller and the Stately inspector
13
13
  - [Production considerations](#production-considerations) — cost and data exposure
14
14
 
15
+ > **`@statelyai/inspect` and XState 6.** Release 0.7 of `@statelyai/inspect` imports `toObserver` from `xstate`, which XState 6 no longer exports, so its module does not load beside XState 6. It also reads the inspection events of XState 5. The [demos](#trying-it-in-the-demos) of this repository therefore convert the events of XState 6 to the protocol of the [Stately inspector](https://stately.ai/docs/inspector) app themselves.
16
+
15
17
  ---
16
18
 
17
19
  ## Quick start
18
20
 
19
- Install the inspect client alongside your existing XState dependency:
20
-
21
- ```bash
22
- pnpm add -D @statelyai/inspect
23
- ```
24
-
25
- Create an inspector and hand its `inspect` observer to [`definePlayer`](../api/@xmachines/play-xstate/index/functions/definePlayer.md):
21
+ Hand an observer of the inspection events to [`definePlayer`](../api/@xmachines/play-xstate/index/functions/definePlayer.md):
26
22
 
27
23
  ```typescript
28
- import { createBrowserInspector } from "@statelyai/inspect";
29
24
  import { definePlayer } from "@xmachines/play-xstate";
30
- import { appMachine } from "./machine.js";
25
+ import type { AnyStateMachine, InspectionEvent } from "xstate";
31
26
 
32
- const { inspect } = createBrowserInspector();
27
+ declare const appMachine: AnyStateMachine; // your machine
28
+
29
+ const inspect = (event: InspectionEvent): void => {
30
+ if (event.type === "@xstate.transition") {
31
+ console.log(event.event.type, "→", event.snapshot.status);
32
+ }
33
+ };
33
34
 
34
35
  const createPlayer = definePlayer({
35
36
  machine: appMachine,
@@ -40,11 +41,17 @@ const actor = createPlayer();
40
41
  actor.start();
41
42
  ```
42
43
 
43
- `createBrowserInspector()` opens Stately's hosted inspector in a new tab and streams the actor's events to it. From there the machine draws itself, every transition animates, and the context is readable at each step.
44
+ The observer receives one `@xstate.actor` event for each actor that the system creates, and one `@xstate.transition` event for each transition, with its event and its snapshot.
44
45
 
45
46
  That is the whole integration. [`PlayerOptions.inspect`](../api/@xmachines/play-xstate/index/interfaces/PlayerOptions.md) is forwarded verbatim to XState's `createActor`, so anything XState accepts there is accepted here — a function, or an observer object with a `next` method:
46
47
 
47
48
  ```typescript
49
+ import { definePlayer } from "@xmachines/play-xstate";
50
+ import type { AnyStateMachine, InspectionEvent } from "xstate";
51
+
52
+ declare const machine: AnyStateMachine; // your machine
53
+ declare const sink: { write(event: InspectionEvent): void }; // your log
54
+
48
55
  // Function form — the common case
49
56
  definePlayer({ machine, options: { inspect: (event) => console.log(event.type) } });
50
57
 
@@ -61,6 +68,13 @@ Two properties of the attachment point matter in practice.
61
68
  **It is configured on the factory, not on the instance.** `definePlayer({ machine, options })` returns a factory; `options.inspect` belongs to that configuration, and every actor the factory creates reports to the same observer. The factory's per-call options bag carries `snapshot` for restoring persisted state and nothing else — there is no per-instance `inspect` override. When one factory produces several live actors (multi-user scenarios, SSR, tests), demultiplex the stream by root instead:
62
69
 
63
70
  ```typescript
71
+ import { definePlayer } from "@xmachines/play-xstate";
72
+ import type { AnyStateMachine, InspectionEvent } from "xstate";
73
+
74
+ declare const machine: AnyStateMachine; // your machine
75
+
76
+ const inspect = (event: InspectionEvent) => console.log(event.type);
77
+
64
78
  const createPlayer = definePlayer({ machine, options: { inspect } });
65
79
 
66
80
  const alice = createPlayer({ userId: "alice" });
@@ -81,26 +95,31 @@ Because a `PlayerActor` _is_ the XState actor rather than a wrapper around a hid
81
95
  - `event.actorRef === actor` for the player's own events — recognise a player by identity, no bookkeeping required.
82
96
  - `event.rootId === actor.sessionId` for the whole tree, including invoked and spawned children, whose `actorRef` is the child rather than the player.
83
97
 
84
- The event types are XState's: `@xstate.actor` when an actor registers, `@xstate.event` when an event is sent, `@xstate.snapshot` after a transition, `@xstate.action` for executed actions, and `@xstate.microstep` for intermediate steps.
98
+ XState 6 emits two event types:
99
+
100
+ - `@xstate.actor` when an actor registers: `actorRef`, `parentRef`, `id`, `src`, and its initial `snapshot`.
101
+ - `@xstate.transition` for each transition: the `event`, the resulting `snapshot`, `sourceRef`, `targetRef`, the `microsteps`, the executed `actions`, and the events that the transition `sent`. The stop of an actor is its last `@xstate.transition`, whose `snapshot.status` is `"stopped"`.
102
+
103
+ The `@xstate.event`, `@xstate.snapshot`, `@xstate.action` and `@xstate.microstep` events of XState 5 are facets of `@xstate.transition` now.
85
104
 
86
105
  ### The construction caveat
87
106
 
88
107
  `@xstate.actor` fires from _inside_ the actor's constructor. The `actorRef` it carries is a real `PlayerActor`, but a mid-construction one: `state`, `currentRoute`, `currentView` and `initialRoute` do not exist yet, and reading them there throws — XState itself refuses to read a snapshot in that window.
89
108
 
90
- ```typescript
109
+ ```typescript fragment
91
110
  const inspect = (event: InspectionEvent) => {
92
111
  if (event.type === "@xstate.actor") {
93
112
  // ❌ throws — the atoms are not assigned yet
94
113
  console.log(event.actorRef.currentRoute.get());
95
114
  }
96
- if (event.type === "@xstate.snapshot") {
115
+ if (event.type === "@xstate.transition") {
97
116
  // ✅ construction has returned; atoms are live
98
117
  console.log(event.actorRef.getSnapshot().value);
99
118
  }
100
119
  };
101
120
  ```
102
121
 
103
- Capture the reference during construction if you need it, and read the atoms from a later event or from outside the observer entirely.
122
+ Capture the reference during construction if you need it, and read the atoms from a later event or from outside the observer entirely. The `@xstate.actor` event carries the initial `snapshot` itself, so an observer reads that field and not `getSnapshot()`.
104
123
 
105
124
  ---
106
125
 
@@ -109,6 +128,12 @@ Capture the reference during construction if you need it, and read the atoms fro
109
128
  An inspector that is only created when the user asks for it — a dev-tools toggle, a keyboard shortcut, a debug panel button — cannot be passed to `definePlayer`, which ran at module scope long before the click. Pass a forwarding function instead, so the attachment point is fixed at factory time while the destination stays swappable:
110
129
 
111
130
  ```typescript
131
+ import { definePlayer } from "@xmachines/play-xstate";
132
+ import type { AnyStateMachine, InspectionEvent } from "xstate";
133
+
134
+ declare const appMachine: AnyStateMachine; // your machine
135
+ declare function openInspector(): (event: InspectionEvent) => void; // your transport
136
+
112
137
  let current: ((event: InspectionEvent) => void) | undefined;
113
138
 
114
139
  const createPlayer = definePlayer({
@@ -118,8 +143,7 @@ const createPlayer = definePlayer({
118
143
 
119
144
  // Later, from a click handler
120
145
  export function enableInspector() {
121
- const { inspect } = createBrowserInspector();
122
- current = inspect;
146
+ current = openInspector();
123
147
  }
124
148
  ```
125
149
 
@@ -131,17 +155,25 @@ There is a catch worth knowing before you ship it: events that arrive while `cur
131
155
 
132
156
  ## Inspecting without a browser
133
157
 
134
- `createBrowserInspector` is one transport, not the only one. `@statelyai/inspect` also exports `createWebSocketInspector`, which pairs with `createInspectorServer` from `@statelyai/inspect/server` to stream the same events over a socket — the route to an actor with no browser around it at all, such as one running in a Node process or on the server half of an SSR render:
158
+ An observer needs no browser. A `console.log`, a test spy that asserts a transition sequence, and a writer that appends each event to a log or sends it over a socket are all valid `inspect` values — the route to an actor with no browser around it at all, such as one running in a Node process or on the server half of an SSR render:
135
159
 
136
160
  ```typescript
137
- import { createWebSocketInspector } from "@statelyai/inspect";
161
+ import { definePlayer } from "@xmachines/play-xstate";
162
+ import type { AnyStateMachine, InspectionEvent } from "xstate";
138
163
 
139
- const { inspect } = createWebSocketInspector({ url: "ws://localhost:8080" });
164
+ declare const appMachine: AnyStateMachine; // your machine
165
+ declare const socket: { send(data: string): void }; // your transport
166
+
167
+ const inspect = (event: InspectionEvent): void => {
168
+ if (event.type !== "@xstate.transition") return;
169
+ // The snapshot holds live references, so send the fields that you need
170
+ socket.send(JSON.stringify({ event: event.event, status: event.snapshot.status }));
171
+ };
140
172
 
141
173
  const createPlayer = definePlayer({ machine: appMachine, options: { inspect } });
142
174
  ```
143
175
 
144
- Both transports consume the identical `options.inspect` observer, so switching between them touches only the line that creates the inspector. The same is true of an observer you write yourself: a `console.log`, a test spy asserting a transition sequence, or a writer that appends events to a log are all valid `inspect` values, and none of them require the inspect client at all.
176
+ Every transport consumes the identical `options.inspect` observer, so switching between them touches only the line that creates the observer.
145
177
 
146
178
  ---
147
179
 
@@ -155,36 +187,70 @@ pnpm --filter @xmachines/play-react-demo run dev
155
187
 
156
188
  Click **Show Inspector** in the debug panel at the bottom of the page. The inspector opens in its own window with the machine already drawn and the session's history replayed, and it keeps updating as you log in, navigate, and log out.
157
189
 
158
- The demos share one controller, `createDemoInspector()` from `@xmachines/play-actor-shared`, which each demo passes straight through to `definePlayer`:
190
+ The demos share one controller, `createDemoInspector()`, which each demo passes straight through to `definePlayer`. The controller converts each event of XState 6 to the protocol of the Stately inspector app: `@xstate.actor` becomes the registration of the actor, and each `@xstate.transition` becomes the `@xstate.event` and the `@xstate.snapshot` that the app draws one transition from. It posts the converted events to the window of the inspector app.
191
+
192
+ The controller lives in a private package of this repository, so you cannot install it. The block below shows the buffer and the replay with the public API. It keeps each event from the creation of the actor, and it replays the events when the user opens the inspector:
159
193
 
160
194
  ```typescript
161
- const inspector = createDemoInspector();
195
+ import { definePlayer } from "@xmachines/play-xstate";
196
+ import type { AnyStateMachine, InspectionEvent } from "xstate";
197
+
198
+ declare const appMachine: AnyStateMachine; // your machine
199
+ declare function openInspector(): (event: InspectionEvent) => void; // your transport
200
+
201
+ const buffer: InspectionEvent[] = [];
202
+ let current: ((event: InspectionEvent) => void) | undefined;
162
203
 
163
204
  const actor = definePlayer({
164
- machine: authMachine,
165
- options: { inspect: inspector.inspect },
205
+ machine: appMachine,
206
+ options: {
207
+ inspect: (event) => {
208
+ if (current) {
209
+ current(event);
210
+ return;
211
+ }
212
+ // Keep the last 500 events while nobody opens the inspector. A long session drops
213
+ // its oldest events, also the registration of the root actor, and the inspector
214
+ // then has no machine to draw. The demo controller pins each registration for
215
+ // that reason, and it costs more code.
216
+ buffer.push(event);
217
+ if (buffer.length > 500) buffer.shift();
218
+ },
219
+ },
166
220
  })();
167
221
  actor.start();
168
222
 
169
- // The debug panel's button
170
- <button onClick={() => inspector.show()}>Show Inspector</button>;
223
+ // The click handler of the "Show Inspector" button of the debug panel
224
+ export function showInspector() {
225
+ if (current) return;
226
+ current = openInspector();
227
+ for (const event of buffer.splice(0)) current(event);
228
+ }
171
229
  ```
172
230
 
173
- The controller answers the late-opening problem from the previous section: it buffers serialized events from actor creation, pins the registration of every live root so it can never roll out of the bounded buffer, and flushes those buffers when the inspector window completes its handshake. Several machines can be alive together — one for each document a host has open — and the handshake replays each of them. That is a demo trade-off rather than a general recommendation — every transition pays serialization whether or not anyone ever opens the inspector — but it is what makes the button work at any point in a session. The shared package's own README, at `packages/play-actor/examples/shared/README.md` in this repository, documents the design in full.
231
+ The demo controller answers the late-opening problem from the previous section: it buffers serialized events from actor creation, pins the registration of every live root so it can never roll out of the bounded buffer, and flushes those buffers when the inspector window completes its handshake. Several machines can be alive together — one for each document a host has open — and the handshake replays each of them. That is a demo trade-off rather than a general recommendation — every transition pays serialization whether or not anyone ever opens the inspector — but it is what makes the button work at any point in a session. The shared package's own README, at `packages/play-actor/examples/shared/README.md` in this repository, documents the design in full.
174
232
 
175
233
  ---
176
234
 
177
235
  ## Production considerations
178
236
 
179
- **Cost.** Inspection serializes events. A `console.log` observer is cheap; a browser inspector posting every transition, and any buffering scheme layered on top, is not. Gate the inspector behind a development-only branch, and prefer letting the bundler drop it entirely:
237
+ **Cost.** Inspection serializes events. A `console.log` observer is cheap; a transport posting every transition, and any buffering scheme layered on top, is not. Gate the inspector behind a development-only branch, and prefer letting the bundler drop it entirely:
180
238
 
181
239
  ```typescript
182
- const options = import.meta.env.DEV ? { inspect: createBrowserInspector().inspect } : {};
240
+ /// <reference types="vite/client" />
241
+ import { definePlayer } from "@xmachines/play-xstate";
242
+ import type { AnyStateMachine, InspectionEvent } from "xstate";
243
+
244
+ declare const appMachine: AnyStateMachine; // your machine
245
+ declare function openInspector(): (event: InspectionEvent) => void; // your transport
246
+
247
+ // `import.meta.env.DEV` is the development flag of Vite
248
+ const options = import.meta.env.DEV ? { inspect: openInspector() } : {};
183
249
 
184
250
  const createPlayer = definePlayer({ machine: appMachine, options });
185
251
  ```
186
252
 
187
- **Data exposure.** Inspection events carry the machine's definition and its context — which in a real application may include user identifiers, tokens, or form input. The browser transport posts that data to the inspector's origin over `postMessage`, and the WebSocket transport sends it to whatever server is listening. Treat an inspector connection as a data egress path: keep it out of production builds, and when inspecting a shared environment, know where the events are going.
253
+ **Data exposure.** Inspection events carry the machine's definition and its context — which in a real application may include user identifiers, tokens, or form input. A browser transport posts that data to the inspector's origin over `postMessage`, and a socket transport sends it to whatever server is listening. Treat an inspector connection as a data egress path: keep it out of production builds, and when inspecting a shared environment, know where the events are going.
188
254
 
189
255
  ---
190
256
 
@@ -194,4 +260,4 @@ const createPlayer = definePlayer({ machine: appMachine, options });
194
260
  - **[`PlayerActor`](../api/@xmachines/play-xstate/index/classes/PlayerActor.md)** — the actor an inspector observes
195
261
  - **[The Actor Model](actor-model.md)** — why the actor is the actor, and what that buys
196
262
  - **[Getting Started](getting-started.md)** — installing packages and creating your first actor
197
- - **[Stately inspect docs](https://stately.ai/docs/inspector)** — the inspector itself, its transports and options
263
+ - **[Stately inspect docs](https://stately.ai/docs/inspector)** — the inspector app itself