@xmachines/docs 6.1.0 → 7.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (595) hide show
  1. package/README.md +4 -4
  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 +4 -4
  6. package/api/@xmachines/core/errors/classes/DisposeConflictError.md +4 -4
  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 +4 -4
  22. package/api/@xmachines/play/errors/classes/PlayError.md +5 -4
  23. package/api/@xmachines/play/index/functions/assertNonNullable.md +1 -1
  24. package/api/@xmachines/play/index/type-aliases/PlayEvent.md +2 -2
  25. package/api/@xmachines/play-actor/README.md +9 -1
  26. package/api/@xmachines/play-actor/interfaces/ActorEvent.md +2 -2
  27. package/api/@xmachines/play-actor/interfaces/PlayActor.md +3 -3
  28. package/api/@xmachines/play-atom/README.md +16 -4
  29. package/api/@xmachines/play-atom/functions/watchAtom.md +1 -1
  30. package/api/@xmachines/play-atom/interfaces/AsyncAtomOptions.md +2 -2
  31. package/api/@xmachines/play-atom/interfaces/Atom.md +6 -6
  32. package/api/@xmachines/play-atom/interfaces/AtomObserver.md +4 -4
  33. package/api/@xmachines/play-atom/interfaces/AtomOptions.md +2 -2
  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 +131 -48
  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 +3 -3
  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 +41 -5
  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 +3 -3
  71. package/api/@xmachines/play-dom-router/interfaces/BrowserHistory.md +14 -14
  72. package/api/@xmachines/play-dom-router/interfaces/BrowserWindow.md +14 -14
  73. package/api/@xmachines/play-dom-router/interfaces/ConnectRouterOptions.md +8 -8
  74. package/api/@xmachines/play-dom-router/interfaces/PlayRouteEvent.md +7 -7
  75. package/api/@xmachines/play-dom-router/interfaces/RoutableActor.md +4 -4
  76. package/api/@xmachines/play-dom-router/interfaces/RouteLookupContract.md +3 -3
  77. package/api/@xmachines/play-dom-router/interfaces/RouteMapOptions.md +4 -4
  78. package/api/@xmachines/play-dom-router/interfaces/RouteMapping.md +3 -3
  79. package/api/@xmachines/play-dom-router/interfaces/RouterBridge.md +3 -3
  80. package/api/@xmachines/play-dom-router/interfaces/RouterConnection.md +6 -6
  81. package/api/@xmachines/play-dom-router/interfaces/VanillaRouter.md +4 -4
  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 +4 -4
  89. package/api/@xmachines/play-pattern/interfaces/KeyValueCache.md +3 -3
  90. package/api/@xmachines/play-pattern/interfaces/LiteralPart.md +3 -3
  91. package/api/@xmachines/play-pattern/interfaces/ParamPart.md +7 -7
  92. package/api/@xmachines/play-pattern/interfaces/ParseOptions.md +2 -2
  93. package/api/@xmachines/play-pattern/interfaces/ParsedPattern.md +12 -12
  94. package/api/@xmachines/play-pattern/interfaces/PatternParam.md +4 -4
  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 +57 -18
  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 +6 -6
  109. package/api/@xmachines/play-react/interfaces/PlayErrorBoundaryState.md +4 -4
  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 +5 -5
  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 +7 -7
  126. package/api/@xmachines/play-react-router/interfaces/PlayRouterProviderProps.md +9 -9
  127. package/api/@xmachines/play-react-router/interfaces/RoutableActor.md +4 -4
  128. package/api/@xmachines/play-react-router/interfaces/RouteMapOptions.md +4 -4
  129. package/api/@xmachines/play-react-router/interfaces/RouteMapping.md +3 -3
  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 +73 -16
  135. package/api/@xmachines/play-router/errors/classes/DuplicateBridgeError.md +4 -4
  136. package/api/@xmachines/play-router/errors/classes/DuplicateRoutePathError.md +5 -5
  137. package/api/@xmachines/play-router/errors/classes/EmptyRoutePathError.md +5 -5
  138. package/api/@xmachines/play-router/errors/classes/InvalidBasePathError.md +5 -5
  139. package/api/@xmachines/play-router/errors/classes/InvalidRoutePatternError.md +5 -5
  140. package/api/@xmachines/play-router/errors/classes/InvalidStateIdError.md +5 -5
  141. package/api/@xmachines/play-router/errors/classes/MissingBasePathParamError.md +6 -6
  142. package/api/@xmachines/play-router/errors/classes/RouterSyncError.md +4 -4
  143. package/api/@xmachines/play-router/errors/classes/UnknownStateTypeError.md +6 -6
  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 +3 -3
  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 +3 -3
  173. package/api/@xmachines/play-router/index/interfaces/BuildPlayRouteEventOptions.md +4 -4
  174. package/api/@xmachines/play-router/index/interfaces/CompileOptions.md +3 -3
  175. package/api/@xmachines/play-router/index/interfaces/FrameworkParamsSource.md +7 -7
  176. package/api/@xmachines/play-router/index/interfaces/KeyValueCache.md +3 -3
  177. package/api/@xmachines/play-router/index/interfaces/LocationLike.md +3 -3
  178. package/api/@xmachines/play-router/index/interfaces/MountableRouterBridge.md +6 -6
  179. package/api/@xmachines/play-router/index/interfaces/OpenProviderBridgeArgs.md +8 -8
  180. package/api/@xmachines/play-router/index/interfaces/ParseOptions.md +2 -2
  181. package/api/@xmachines/play-router/index/interfaces/ParsedPattern.md +12 -12
  182. package/api/@xmachines/play-router/index/interfaces/PlayRouteEvent.md +7 -7
  183. package/api/@xmachines/play-router/index/interfaces/PlayRouterProviderBaseProps.md +9 -9
  184. package/api/@xmachines/play-router/index/interfaces/ResolvedBasePath.md +3 -3
  185. package/api/@xmachines/play-router/index/interfaces/ResolvedRoutePath.md +3 -3
  186. package/api/@xmachines/play-router/index/interfaces/Routable.md +3 -3
  187. package/api/@xmachines/play-router/index/interfaces/RoutableActor.md +4 -4
  188. package/api/@xmachines/play-router/index/interfaces/RouteInfo.md +8 -8
  189. package/api/@xmachines/play-router/index/interfaces/RouteMapOptions.md +4 -4
  190. package/api/@xmachines/play-router/index/interfaces/RouteMapping.md +3 -3
  191. package/api/@xmachines/play-router/index/interfaces/RouteMatch.md +3 -3
  192. package/api/@xmachines/play-router/index/interfaces/RouteNode.md +10 -10
  193. package/api/@xmachines/play-router/index/interfaces/RouteObject.md +5 -5
  194. package/api/@xmachines/play-router/index/interfaces/RouteTree.md +5 -5
  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 +6 -6
  198. package/api/@xmachines/play-router/index/interfaces/RouterConnection.md +6 -6
  199. package/api/@xmachines/play-router/index/interfaces/SplitLocation.md +5 -5
  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/functions/createRouteMap.md +1 -1
  209. package/api/@xmachines/play-router/xstate/functions/extractMachineRoutes.md +1 -1
  210. package/api/@xmachines/play-router/xstate/functions/getNavigableRoutes.md +1 -1
  211. package/api/@xmachines/play-router/xstate/functions/getRoutableRoutes.md +1 -1
  212. package/api/@xmachines/play-router/xstate/functions/getRouteMappings.md +1 -1
  213. package/api/@xmachines/play-router/xstate/functions/getTransitionReachableRoutes.md +1 -1
  214. package/api/@xmachines/play-router/xstate/functions/isRouteReachable.md +1 -1
  215. package/api/@xmachines/play-router/xstate/functions/machineToGraph.md +1 -1
  216. package/api/@xmachines/play-router/xstate/functions/routeExists.md +1 -1
  217. package/api/@xmachines/play-router/xstate/interfaces/MachineEdgeData.md +3 -3
  218. package/api/@xmachines/play-router/xstate/interfaces/MachineNodeData.md +5 -5
  219. package/api/@xmachines/play-router/xstate/type-aliases/MachineGraph.md +1 -1
  220. package/api/@xmachines/play-solid/README.md +35 -11
  221. package/api/@xmachines/play-solid/functions/useActor.md +1 -1
  222. package/api/@xmachines/play-solid/functions/useBoundProp.md +8 -5
  223. package/api/@xmachines/play-solid/functions/useFieldValidation.md +6 -4
  224. package/api/@xmachines/play-solid/functions/usePlayView.md +1 -1
  225. package/api/@xmachines/play-solid/functions/useStateBinding.md +5 -3
  226. package/api/@xmachines/play-solid/functions/useStateValue.md +5 -3
  227. package/api/@xmachines/play-solid/interfaces/ActorProviderProps.md +10 -10
  228. package/api/@xmachines/play-solid/interfaces/PlayUIProviderProps.md +13 -13
  229. package/api/@xmachines/play-solid/interfaces/RenderErrorInfo.md +16 -0
  230. package/api/@xmachines/play-solid/interfaces/RendererProps.md +7 -7
  231. package/api/@xmachines/play-solid/interfaces/ViewContextValue.md +5 -5
  232. package/api/@xmachines/play-solid/type-aliases/AnyPlayActor.md +1 -1
  233. package/api/@xmachines/play-solid/type-aliases/OnRenderError.md +27 -0
  234. package/api/@xmachines/play-solid/type-aliases/RenderErrorKind.md +21 -0
  235. package/api/@xmachines/play-solid/variables/ActorContext.md +1 -1
  236. package/api/@xmachines/play-solid/variables/ActorProvider.md +17 -3
  237. package/api/@xmachines/play-solid/variables/PlayRenderer.md +1 -1
  238. package/api/@xmachines/play-solid/variables/PlayUIProvider.md +1 -1
  239. package/api/@xmachines/play-solid-router/README.md +21 -5
  240. package/api/@xmachines/play-solid-router/classes/RouteMap.md +4 -4
  241. package/api/@xmachines/play-solid-router/classes/SolidRouterBridge.md +7 -7
  242. package/api/@xmachines/play-solid-router/functions/createPlayRouterProvider.md +1 -1
  243. package/api/@xmachines/play-solid-router/interfaces/PlayActor.md +3 -3
  244. package/api/@xmachines/play-solid-router/interfaces/PlayRouteEvent.md +7 -7
  245. package/api/@xmachines/play-solid-router/interfaces/PlayRouterProviderProps.md +9 -9
  246. package/api/@xmachines/play-solid-router/interfaces/RoutableActor.md +4 -4
  247. package/api/@xmachines/play-solid-router/interfaces/RouteMapOptions.md +4 -4
  248. package/api/@xmachines/play-solid-router/interfaces/RouteMapping.md +3 -3
  249. package/api/@xmachines/play-solid-router/interfaces/RouterBridge.md +3 -3
  250. package/api/@xmachines/play-solid-router/type-aliases/PlayRouterBridgeConstructor.md +1 -1
  251. package/api/@xmachines/play-solid-router/type-aliases/PlayRouterProviderBaseProps.md +1 -1
  252. package/api/@xmachines/play-solid-router/type-aliases/SolidRouterHooks.md +4 -4
  253. package/api/@xmachines/play-solid-router/variables/PlayRouterProvider.md +1 -1
  254. package/api/@xmachines/play-svelte/README.md +18 -10
  255. package/api/@xmachines/play-svelte/functions/defineRegistry.md +3 -4
  256. package/api/@xmachines/play-svelte/functions/getActorContext.md +1 -1
  257. package/api/@xmachines/play-svelte/functions/getPlayViewContext.md +1 -1
  258. package/api/@xmachines/play-svelte/functions/setActorContext.md +1 -1
  259. package/api/@xmachines/play-svelte/interfaces/ActorProviderProps.md +12 -12
  260. package/api/@xmachines/play-svelte/interfaces/DefineRegistryOptions.md +8 -8
  261. package/api/@xmachines/play-svelte/interfaces/DefineRegistryResult.md +15 -0
  262. package/api/@xmachines/play-svelte/interfaces/PlayUIProviderProps.md +14 -14
  263. package/api/@xmachines/play-svelte/interfaces/RenderErrorInfo.md +16 -0
  264. package/api/@xmachines/play-svelte/interfaces/ViewContextValue.md +5 -5
  265. package/api/@xmachines/play-svelte/type-aliases/AnyPlayActor.md +1 -1
  266. package/api/@xmachines/play-svelte/type-aliases/OnRenderError.md +27 -0
  267. package/api/@xmachines/play-svelte/type-aliases/RenderErrorKind.md +21 -0
  268. package/api/@xmachines/play-svelte-spa-router/README.md +9 -5
  269. package/api/@xmachines/play-svelte-spa-router/classes/RouteMap.md +4 -4
  270. package/api/@xmachines/play-svelte-spa-router/classes/SvelteSpaRouterBridge.md +7 -7
  271. package/api/@xmachines/play-svelte-spa-router/functions/connectRouter.md +1 -1
  272. package/api/@xmachines/play-svelte-spa-router/interfaces/BasePathOptions.md +3 -3
  273. package/api/@xmachines/play-svelte-spa-router/interfaces/ConnectRouterOptions.md +8 -8
  274. package/api/@xmachines/play-svelte-spa-router/interfaces/PlayRouteEvent.md +7 -7
  275. package/api/@xmachines/play-svelte-spa-router/interfaces/RoutableActor.md +4 -4
  276. package/api/@xmachines/play-svelte-spa-router/interfaces/RouteMapOptions.md +4 -4
  277. package/api/@xmachines/play-svelte-spa-router/interfaces/RouteMapping.md +3 -3
  278. package/api/@xmachines/play-svelte-spa-router/interfaces/RouterBridge.md +3 -3
  279. package/api/@xmachines/play-svelte-spa-router/interfaces/RouterConnection.md +6 -6
  280. package/api/@xmachines/play-svelte-spa-router/interfaces/WindowLike.md +3 -3
  281. package/api/@xmachines/play-sveltekit-router/README.md +65 -13
  282. package/api/@xmachines/play-sveltekit-router/classes/RouteMap.md +4 -4
  283. package/api/@xmachines/play-sveltekit-router/classes/SvelteKitRouterBridge.md +29 -19
  284. package/api/@xmachines/play-sveltekit-router/functions/connectRouter.md +1 -1
  285. package/api/@xmachines/play-sveltekit-router/interfaces/BasePathOptions.md +3 -3
  286. package/api/@xmachines/play-sveltekit-router/interfaces/ConnectRouterOptions.md +13 -16
  287. package/api/@xmachines/play-sveltekit-router/interfaces/LocationLike.md +3 -3
  288. package/api/@xmachines/play-sveltekit-router/interfaces/PlayRouteEvent.md +7 -7
  289. package/api/@xmachines/play-sveltekit-router/interfaces/RoutableActor.md +4 -4
  290. package/api/@xmachines/play-sveltekit-router/interfaces/RouteMapOptions.md +4 -4
  291. package/api/@xmachines/play-sveltekit-router/interfaces/RouteMapping.md +3 -3
  292. package/api/@xmachines/play-sveltekit-router/interfaces/RouterBridge.md +3 -3
  293. package/api/@xmachines/play-sveltekit-router/interfaces/RouterConnection.md +6 -6
  294. package/api/@xmachines/play-sveltekit-router/interfaces/SvelteKitRouterBridgeOptions.md +25 -0
  295. package/api/@xmachines/play-sveltekit-router/type-aliases/ShallowNavigation.md +21 -0
  296. package/api/@xmachines/play-tanstack-react-router/README.md +34 -16
  297. package/api/@xmachines/play-tanstack-react-router/classes/RouteMap.md +4 -4
  298. package/api/@xmachines/play-tanstack-react-router/classes/TanStackReactRouterBridge.md +7 -7
  299. package/api/@xmachines/play-tanstack-react-router/functions/createPlayRouterProvider.md +1 -1
  300. package/api/@xmachines/play-tanstack-react-router/functions/createRouteMapFromTree.md +1 -1
  301. package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouteEvent.md +7 -7
  302. package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouterProviderProps.md +9 -9
  303. package/api/@xmachines/play-tanstack-react-router/interfaces/RoutableActor.md +4 -4
  304. package/api/@xmachines/play-tanstack-react-router/interfaces/RouteMapOptions.md +4 -4
  305. package/api/@xmachines/play-tanstack-react-router/interfaces/RouteMapping.md +3 -3
  306. package/api/@xmachines/play-tanstack-react-router/interfaces/RouterBridge.md +3 -3
  307. package/api/@xmachines/play-tanstack-react-router/type-aliases/PlayRouterBridgeConstructor.md +1 -1
  308. package/api/@xmachines/play-tanstack-react-router/type-aliases/PlayRouterProviderBaseProps.md +1 -1
  309. package/api/@xmachines/play-tanstack-react-router/type-aliases/TanStackRouterInstance.md +1 -1
  310. package/api/@xmachines/play-tanstack-react-router/type-aliases/TanStackRouterLike.md +5 -5
  311. package/api/@xmachines/play-tanstack-react-router/variables/PlayRouterProvider.md +1 -1
  312. package/api/@xmachines/play-tanstack-router/README.md +5 -3
  313. package/api/@xmachines/play-tanstack-router/classes/TanStackRouterBridgeBase.md +7 -7
  314. package/api/@xmachines/play-tanstack-router/type-aliases/TanStackRouteMapLike.md +3 -3
  315. package/api/@xmachines/play-tanstack-router/type-aliases/TanStackRouterLike.md +5 -5
  316. package/api/@xmachines/play-tanstack-solid-router/README.md +45 -11
  317. package/api/@xmachines/play-tanstack-solid-router/classes/RouteMap.md +4 -4
  318. package/api/@xmachines/play-tanstack-solid-router/classes/TanStackSolidRouterBridge.md +7 -7
  319. package/api/@xmachines/play-tanstack-solid-router/functions/createPlayRouterProvider.md +1 -1
  320. package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayRouteEvent.md +7 -7
  321. package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayRouterProviderProps.md +9 -9
  322. package/api/@xmachines/play-tanstack-solid-router/interfaces/RoutableActor.md +4 -4
  323. package/api/@xmachines/play-tanstack-solid-router/interfaces/RouteMapOptions.md +4 -4
  324. package/api/@xmachines/play-tanstack-solid-router/interfaces/RouteMapping.md +3 -3
  325. package/api/@xmachines/play-tanstack-solid-router/interfaces/RouterBridge.md +3 -3
  326. package/api/@xmachines/play-tanstack-solid-router/type-aliases/PlayRouterBridgeConstructor.md +1 -1
  327. package/api/@xmachines/play-tanstack-solid-router/type-aliases/PlayRouterProviderBaseProps.md +1 -1
  328. package/api/@xmachines/play-tanstack-solid-router/type-aliases/TanStackRouterInstance.md +1 -1
  329. package/api/@xmachines/play-tanstack-solid-router/type-aliases/TanStackRouterLike.md +5 -5
  330. package/api/@xmachines/play-tanstack-solid-router/variables/PlayRouterProvider.md +1 -1
  331. package/api/@xmachines/play-url/README.md +1 -1
  332. package/api/@xmachines/play-url/errors/classes/InvalidBasePathError.md +5 -5
  333. package/api/@xmachines/play-url/errors/classes/InvalidRoutePatternError.md +5 -5
  334. package/api/@xmachines/play-url/errors/classes/MissingBasePathParamError.md +6 -6
  335. package/api/@xmachines/play-url/index/functions/buildPath.md +1 -1
  336. package/api/@xmachines/play-url/index/functions/cleanFrameworkParams.md +1 -1
  337. package/api/@xmachines/play-url/index/functions/createLruCache.md +1 -1
  338. package/api/@xmachines/play-url/index/functions/getCandidates.md +1 -1
  339. package/api/@xmachines/play-url/index/functions/getCompiledPattern.md +1 -1
  340. package/api/@xmachines/play-url/index/functions/getIndexKey.md +1 -1
  341. package/api/@xmachines/play-url/index/functions/holdsUnsubstitutedParam.md +1 -1
  342. package/api/@xmachines/play-url/index/functions/isDotSegment.md +1 -1
  343. package/api/@xmachines/play-url/index/functions/joinBasePath.md +1 -1
  344. package/api/@xmachines/play-url/index/functions/normalizeBasePath.md +1 -1
  345. package/api/@xmachines/play-url/index/functions/parsePattern.md +1 -1
  346. package/api/@xmachines/play-url/index/functions/pickOwnParams.md +1 -1
  347. package/api/@xmachines/play-url/index/functions/resolveBasePath.md +1 -1
  348. package/api/@xmachines/play-url/index/functions/resolveFrameworkParams.md +1 -1
  349. package/api/@xmachines/play-url/index/functions/sanitizePathname.md +1 -1
  350. package/api/@xmachines/play-url/index/functions/splitLocation.md +1 -1
  351. package/api/@xmachines/play-url/index/functions/stripBasePath.md +1 -1
  352. package/api/@xmachines/play-url/index/interfaces/BasePathOptions.md +3 -3
  353. package/api/@xmachines/play-url/index/interfaces/CompileOptions.md +3 -3
  354. package/api/@xmachines/play-url/index/interfaces/FrameworkParamsSource.md +7 -7
  355. package/api/@xmachines/play-url/index/interfaces/GroupPart.md +4 -4
  356. package/api/@xmachines/play-url/index/interfaces/KeyValueCache.md +3 -3
  357. package/api/@xmachines/play-url/index/interfaces/LiteralPart.md +3 -3
  358. package/api/@xmachines/play-url/index/interfaces/ParamPart.md +7 -7
  359. package/api/@xmachines/play-url/index/interfaces/ParseOptions.md +2 -2
  360. package/api/@xmachines/play-url/index/interfaces/ParsedPattern.md +12 -12
  361. package/api/@xmachines/play-url/index/interfaces/PatternParam.md +4 -4
  362. package/api/@xmachines/play-url/index/interfaces/ResolvedBasePath.md +3 -3
  363. package/api/@xmachines/play-url/index/interfaces/SplitLocation.md +5 -5
  364. package/api/@xmachines/play-url/index/type-aliases/PathBuildResult.md +1 -1
  365. package/api/@xmachines/play-url/index/type-aliases/PathParams.md +1 -1
  366. package/api/@xmachines/play-url/index/type-aliases/PatternModifier.md +1 -1
  367. package/api/@xmachines/play-url/index/type-aliases/PatternPart.md +1 -1
  368. package/api/@xmachines/play-url/index/type-aliases/URLPatternCtor.md +1 -1
  369. package/api/@xmachines/play-url/index/type-aliases/URLPatternLike.md +3 -3
  370. package/api/@xmachines/play-url/index/variables/NO_BASE_PATH.md +1 -1
  371. package/api/@xmachines/play-url/index/variables/URLPattern.md +1 -1
  372. package/api/@xmachines/play-view/README.md +45 -19
  373. package/api/@xmachines/play-view/errors/README.md +1 -0
  374. package/api/@xmachines/play-view/errors/classes/InvalidViewOutletError.md +6 -6
  375. package/api/@xmachines/play-view/errors/classes/ReadOnlyContextError.md +5 -5
  376. package/api/@xmachines/play-view/errors/classes/ViewElementKeyCollisionError.md +181 -0
  377. package/api/@xmachines/play-view/index/README.md +10 -4
  378. package/api/@xmachines/play-view/index/functions/attachRenderErrorHandler.md +10 -9
  379. package/api/@xmachines/play-view/index/functions/bindStoreHandlers.md +34 -0
  380. package/api/@xmachines/play-view/index/functions/composePlayState.md +1 -1
  381. package/api/@xmachines/play-view/index/functions/composeViews.md +8 -2
  382. package/api/@xmachines/play-view/index/functions/createActorProxy.md +39 -0
  383. package/api/@xmachines/play-view/index/functions/createRenderErrorBinding.md +35 -0
  384. package/api/@xmachines/play-view/index/functions/createReportGuard.md +1 -1
  385. package/api/@xmachines/play-view/index/functions/createViewSession.md +29 -0
  386. package/api/@xmachines/play-view/index/functions/createViewStoreLifecycle.md +1 -1
  387. package/api/@xmachines/play-view/index/functions/forwardRenderError.md +45 -0
  388. package/api/@xmachines/play-view/index/functions/guardContextWrites.md +1 -1
  389. package/api/@xmachines/play-view/index/functions/refreshContextSubtree.md +1 -1
  390. package/api/@xmachines/play-view/index/functions/reuseComposedState.md +1 -1
  391. package/api/@xmachines/play-view/index/functions/toAtomState.md +1 -1
  392. package/api/@xmachines/play-view/index/functions/typedSpec.md +1 -1
  393. package/api/@xmachines/play-view/index/interfaces/BaseActorProviderProps.md +8 -8
  394. package/api/@xmachines/play-view/index/interfaces/BaseViewContextValue.md +5 -5
  395. package/api/@xmachines/play-view/index/interfaces/ComposedView.md +5 -5
  396. package/api/@xmachines/play-view/index/interfaces/HandlerFactory.md +19 -0
  397. package/api/@xmachines/play-view/index/interfaces/PlaySpec.md +3 -3
  398. package/api/@xmachines/play-view/index/interfaces/ReportGuard.md +5 -5
  399. package/api/@xmachines/play-view/index/interfaces/ReportGuardMessages.md +5 -5
  400. package/api/@xmachines/play-view/index/interfaces/ResolveViewStoreOptions.md +2 -2
  401. package/api/@xmachines/play-view/index/interfaces/ViewMeta.md +2 -2
  402. package/api/@xmachines/play-view/index/interfaces/ViewOutlet.md +3 -3
  403. package/api/@xmachines/play-view/index/interfaces/ViewSession.md +155 -0
  404. package/api/@xmachines/play-view/index/interfaces/ViewSessionOptions.md +12 -0
  405. package/api/@xmachines/play-view/index/interfaces/ViewSessionSnapshot.md +23 -0
  406. package/api/@xmachines/play-view/index/interfaces/ViewStoreLifecycle.md +22 -3
  407. package/api/@xmachines/play-view/index/interfaces/ViewStoreResolution.md +7 -6
  408. package/api/@xmachines/play-view/index/interfaces/ViewTree.md +4 -4
  409. package/api/@xmachines/play-view/index/interfaces/ViewTreeChild.md +3 -3
  410. package/api/@xmachines/play-view/index/interfaces/Viewable.md +2 -2
  411. package/api/@xmachines/play-view/index/type-aliases/StateUpdater.md +21 -0
  412. package/api/@xmachines/play-view/index/type-aliases/ViewActor.md +1 -1
  413. package/api/@xmachines/play-view/index/variables/CONTEXT_STATE_KEY.md +1 -1
  414. package/api/@xmachines/play-vue/README.md +20 -15
  415. package/api/@xmachines/play-vue/functions/defineRegistry.md +1 -1
  416. package/api/@xmachines/play-vue/functions/useActor.md +1 -1
  417. package/api/@xmachines/play-vue/functions/useBoundProp.md +10 -4
  418. package/api/@xmachines/play-vue/functions/useFieldValidation.md +12 -5
  419. package/api/@xmachines/play-vue/functions/usePlayView.md +1 -1
  420. package/api/@xmachines/play-vue/interfaces/ActorProviderProps.md +8 -8
  421. package/api/@xmachines/play-vue/interfaces/PlayUIProviderProps.md +11 -11
  422. package/api/@xmachines/play-vue/interfaces/RenderErrorInfo.md +16 -0
  423. package/api/@xmachines/play-vue/interfaces/RendererProps.md +7 -7
  424. package/api/@xmachines/play-vue/interfaces/ViewContextValue.md +5 -5
  425. package/api/@xmachines/play-vue/type-aliases/AnyPlayActor.md +1 -1
  426. package/api/@xmachines/play-vue/type-aliases/ComponentEntry.md +1 -1
  427. package/api/@xmachines/play-vue/type-aliases/ComponentsMap.md +1 -1
  428. package/api/@xmachines/play-vue/type-aliases/DefineRegistryOptions.md +2 -2
  429. package/api/@xmachines/play-vue/type-aliases/OnRenderError.md +27 -0
  430. package/api/@xmachines/play-vue/type-aliases/RenderErrorKind.md +21 -0
  431. package/api/@xmachines/play-vue/variables/PlayRenderer.md +1 -1
  432. package/api/@xmachines/play-vue/variables/Renderer.md +3 -3
  433. package/api/@xmachines/play-vue-router/README.md +18 -11
  434. package/api/@xmachines/play-vue-router/errors/classes/VueRouterNavigationError.md +4 -4
  435. package/api/@xmachines/play-vue-router/errors/classes/VueRouterSendError.md +4 -4
  436. package/api/@xmachines/play-vue-router/index/classes/RouteMap.md +4 -4
  437. package/api/@xmachines/play-vue-router/index/classes/VueRouterBridge.md +7 -7
  438. package/api/@xmachines/play-vue-router/index/interfaces/PlayRouteEvent.md +7 -7
  439. package/api/@xmachines/play-vue-router/index/interfaces/RoutableActor.md +4 -4
  440. package/api/@xmachines/play-vue-router/index/interfaces/RouteMapOptions.md +4 -4
  441. package/api/@xmachines/play-vue-router/index/interfaces/RouteMapping.md +3 -3
  442. package/api/@xmachines/play-vue-router/index/interfaces/RouterBridge.md +3 -3
  443. package/api/@xmachines/play-vue-router/index/variables/PlayRouterProvider.md +1 -1
  444. package/api/@xmachines/play-xstate/README.md +64 -12
  445. package/api/@xmachines/play-xstate/errors/classes/ActorThrewNonErrorError.md +4 -4
  446. package/api/@xmachines/play-xstate/errors/classes/InvalidEventError.md +5 -5
  447. package/api/@xmachines/play-xstate/errors/classes/InvalidMachineError.md +4 -4
  448. package/api/@xmachines/play-xstate/errors/classes/InvalidRouteHandlerError.md +5 -5
  449. package/api/@xmachines/play-xstate/errors/classes/InvalidRouteMetadataError.md +5 -5
  450. package/api/@xmachines/play-xstate/errors/classes/InvalidRouteParamError.md +7 -7
  451. package/api/@xmachines/play-xstate/errors/classes/MissingRouteParamError.md +6 -6
  452. package/api/@xmachines/play-xstate/errors/classes/MissingStateIdError.md +6 -6
  453. package/api/@xmachines/play-xstate/index/classes/PlayerActor.md +10 -10
  454. package/api/@xmachines/play-xstate/index/functions/compose.md +4 -4
  455. package/api/@xmachines/play-xstate/index/functions/definePlayer.md +2 -2
  456. package/api/@xmachines/play-xstate/index/interfaces/PlayerConfig.md +4 -4
  457. package/api/@xmachines/play-xstate/index/interfaces/PlayerFactoryResumeOptions.md +2 -2
  458. package/api/@xmachines/play-xstate/index/interfaces/PlayerOptions.md +7 -7
  459. package/api/@xmachines/play-xstate/index/type-aliases/Capability.md +1 -1
  460. package/api/@xmachines/play-xstate/index/type-aliases/PlayerConstructor.md +1 -1
  461. package/api/@xmachines/play-xstate/index/type-aliases/PlayerFactory.md +1 -1
  462. package/api/@xmachines/play-xstate/with-routing/functions/buildRouteUrl.md +1 -1
  463. package/api/@xmachines/play-xstate/with-routing/functions/deriveRoute.md +1 -1
  464. package/api/@xmachines/play-xstate/with-routing/functions/formatPlayRouteTransitions.md +1 -1
  465. package/api/@xmachines/play-xstate/with-routing/functions/isAbsoluteRoute.md +1 -1
  466. package/api/@xmachines/play-xstate/with-routing/functions/withRouting.md +1 -1
  467. package/api/@xmachines/play-xstate/with-routing/interfaces/RouteContext.md +5 -5
  468. package/api/@xmachines/play-xstate/with-routing/interfaces/RouteObject.md +5 -5
  469. package/api/@xmachines/play-xstate/with-routing/type-aliases/RouteData.md +1 -1
  470. package/api/@xmachines/play-xstate/with-routing/type-aliases/RouteDataResolver.md +1 -1
  471. package/api/@xmachines/play-xstate/with-routing/type-aliases/RouteMachineConfig.md +4 -4
  472. package/api/@xmachines/play-xstate/with-routing/type-aliases/RouteMetadata.md +1 -1
  473. package/api/@xmachines/play-xstate/with-routing/type-aliases/RouteStateNode.md +5 -5
  474. package/api/@xmachines/play-xstate/with-view/functions/withView.md +1 -1
  475. package/api/@xmachines/shared/README.md +1 -0
  476. package/api/@xmachines/shared/vite-aliases/functions/xmAliases.md +1 -1
  477. package/api/@xmachines/shared/vite-aliases/functions/xmBuildOutput.md +1 -1
  478. package/api/@xmachines/shared/vite-aliases/functions/xmBuildOutputFile.md +1 -1
  479. package/api/@xmachines/shared/vite-aliases/functions/xmCacheDir.md +1 -1
  480. package/api/@xmachines/shared/vite-aliases/functions/xmOptimizeDeps.md +1 -1
  481. package/api/@xmachines/shared/vite-aliases/functions/xmResolve.md +1 -1
  482. package/api/@xmachines/shared/vite-aliases/functions/xmSvelteRunes.md +2 -2
  483. package/api/@xmachines/shared/vite-aliases/functions/xmTestTarget.md +1 -1
  484. package/api/@xmachines/shared/vite-aliases/type-aliases/XmTestTarget.md +1 -1
  485. package/api/@xmachines/shared/vitest/functions/defineXmBrowserConfig.md +1 -1
  486. package/api/@xmachines/shared/vitest/functions/defineXmVitestConfig.md +1 -1
  487. package/api/@xmachines/shared/vitest/interfaces/XmBrowserConfigOptions.md +4 -4
  488. package/contributing/architecture.md +88 -53
  489. package/contributing/configuration.md +20 -12
  490. package/contributing/deployment.md +3 -3
  491. package/contributing/development.md +28 -3
  492. package/contributing/migrating-to-play-atom.md +10 -4
  493. package/contributing/testing.md +64 -33
  494. package/examples/@xmachines/play-dom-demo/README.md +2 -2
  495. package/examples/@xmachines/play-dom-demo/functions/createAuthActionHandlers.md +9 -9
  496. package/examples/@xmachines/play-dom-demo/functions/createConfirmDialog.md +1 -1
  497. package/examples/@xmachines/play-dom-demo/functions/createNavBar.md +1 -1
  498. package/examples/@xmachines/play-dom-demo/functions/initShell.md +1 -1
  499. package/examples/@xmachines/play-dom-demo/type-aliases/AuthCatalog.md +1 -1
  500. package/examples/@xmachines/play-dom-demo/variables/About.md +1 -1
  501. package/examples/@xmachines/play-dom-demo/variables/Button.md +1 -1
  502. package/examples/@xmachines/play-dom-demo/variables/Contact.md +1 -1
  503. package/examples/@xmachines/play-dom-demo/variables/Dashboard.md +1 -1
  504. package/examples/@xmachines/play-dom-demo/variables/Field.md +1 -1
  505. package/examples/@xmachines/play-dom-demo/variables/Home.md +1 -1
  506. package/examples/@xmachines/play-dom-demo/variables/Login.md +1 -1
  507. package/examples/@xmachines/play-dom-demo/variables/NavBarView.md +1 -1
  508. package/examples/@xmachines/play-dom-demo/variables/Navigation.md +1 -1
  509. package/examples/@xmachines/play-dom-demo/variables/Overview.md +1 -1
  510. package/examples/@xmachines/play-dom-demo/variables/Panel.md +1 -1
  511. package/examples/@xmachines/play-dom-demo/variables/Profile.md +1 -1
  512. package/examples/@xmachines/play-dom-demo/variables/Settings.md +1 -1
  513. package/examples/@xmachines/play-dom-demo/variables/Stats.md +1 -1
  514. package/examples/@xmachines/play-dom-demo/variables/authCatalog.md +1 -1
  515. package/examples/@xmachines/play-dom-demo/variables/demoComponents.md +15 -15
  516. package/examples/@xmachines/play-dom-router-demo/README.md +4 -3
  517. package/examples/@xmachines/play-react-demo/README.md +2 -2
  518. package/examples/@xmachines/play-react-demo/functions/createAuthActionHandlers.md +9 -9
  519. package/examples/@xmachines/play-react-demo/type-aliases/AuthCatalog.md +1 -1
  520. package/examples/@xmachines/play-react-demo/variables/About.md +1 -1
  521. package/examples/@xmachines/play-react-demo/variables/Button.md +1 -1
  522. package/examples/@xmachines/play-react-demo/variables/Contact.md +1 -1
  523. package/examples/@xmachines/play-react-demo/variables/Dashboard.md +1 -1
  524. package/examples/@xmachines/play-react-demo/variables/DebugPanel.md +1 -1
  525. package/examples/@xmachines/play-react-demo/variables/Field.md +1 -1
  526. package/examples/@xmachines/play-react-demo/variables/Home.md +1 -1
  527. package/examples/@xmachines/play-react-demo/variables/Login.md +1 -1
  528. package/examples/@xmachines/play-react-demo/variables/NavBar.md +1 -1
  529. package/examples/@xmachines/play-react-demo/variables/NavBarView.md +1 -1
  530. package/examples/@xmachines/play-react-demo/variables/Navigation.md +1 -1
  531. package/examples/@xmachines/play-react-demo/variables/Overview.md +1 -1
  532. package/examples/@xmachines/play-react-demo/variables/Panel.md +1 -1
  533. package/examples/@xmachines/play-react-demo/variables/Profile.md +1 -1
  534. package/examples/@xmachines/play-react-demo/variables/Settings.md +1 -1
  535. package/examples/@xmachines/play-react-demo/variables/Shell.md +1 -1
  536. package/examples/@xmachines/play-react-demo/variables/Stats.md +1 -1
  537. package/examples/@xmachines/play-react-demo/variables/authCatalog.md +1 -1
  538. package/examples/@xmachines/play-react-demo/variables/demoComponents.md +15 -15
  539. package/examples/@xmachines/play-react-router-demo/README.md +4 -3
  540. package/examples/@xmachines/play-solid-demo/README.md +3 -3
  541. package/examples/@xmachines/play-solid-demo/functions/createAuthActionHandlers.md +9 -9
  542. package/examples/@xmachines/play-solid-demo/type-aliases/AuthCatalog.md +1 -1
  543. package/examples/@xmachines/play-solid-demo/variables/About.md +1 -1
  544. package/examples/@xmachines/play-solid-demo/variables/Button.md +1 -1
  545. package/examples/@xmachines/play-solid-demo/variables/Contact.md +1 -1
  546. package/examples/@xmachines/play-solid-demo/variables/Dashboard.md +1 -1
  547. package/examples/@xmachines/play-solid-demo/variables/DebugPanel.md +1 -1
  548. package/examples/@xmachines/play-solid-demo/variables/Field.md +1 -1
  549. package/examples/@xmachines/play-solid-demo/variables/Home.md +1 -1
  550. package/examples/@xmachines/play-solid-demo/variables/Login.md +1 -1
  551. package/examples/@xmachines/play-solid-demo/variables/NavBar.md +1 -1
  552. package/examples/@xmachines/play-solid-demo/variables/NavBarView.md +1 -1
  553. package/examples/@xmachines/play-solid-demo/variables/Navigation.md +1 -1
  554. package/examples/@xmachines/play-solid-demo/variables/Overview.md +1 -1
  555. package/examples/@xmachines/play-solid-demo/variables/Panel.md +1 -1
  556. package/examples/@xmachines/play-solid-demo/variables/Profile.md +1 -1
  557. package/examples/@xmachines/play-solid-demo/variables/Settings.md +1 -1
  558. package/examples/@xmachines/play-solid-demo/variables/Shell.md +1 -1
  559. package/examples/@xmachines/play-solid-demo/variables/Stats.md +1 -1
  560. package/examples/@xmachines/play-solid-demo/variables/authCatalog.md +1 -1
  561. package/examples/@xmachines/play-solid-demo/variables/demoComponents.md +15 -15
  562. package/examples/@xmachines/play-solid-router-demo/README.md +9 -3
  563. package/examples/@xmachines/play-svelte-demo/README.md +1 -1
  564. package/examples/@xmachines/play-svelte-demo/functions/createAuthActionHandlers.md +9 -9
  565. package/examples/@xmachines/play-svelte-demo/type-aliases/AuthCatalog.md +1 -1
  566. package/examples/@xmachines/play-svelte-demo/variables/authCatalog.md +1 -1
  567. package/examples/@xmachines/play-svelte-demo/variables/demoComponents.md +15 -15
  568. package/examples/@xmachines/play-svelte-spa-router-demo/README.md +1 -1
  569. package/examples/@xmachines/play-sveltekit-router-demo/README.md +1 -1
  570. package/examples/@xmachines/play-tanstack-react-router-demo/README.md +3 -2
  571. package/examples/@xmachines/play-tanstack-solid-router-demo/README.md +9 -8
  572. package/examples/@xmachines/play-vue-demo/README.md +2 -2
  573. package/examples/@xmachines/play-vue-demo/functions/createAuthActionHandlers.md +9 -9
  574. package/examples/@xmachines/play-vue-demo/type-aliases/AuthCatalog.md +1 -1
  575. package/examples/@xmachines/play-vue-demo/variables/App.md +1 -1
  576. package/examples/@xmachines/play-vue-demo/variables/authCatalog.md +1 -1
  577. package/examples/@xmachines/play-vue-demo/variables/demoComponents.md +1 -1
  578. package/examples/@xmachines/play-vue-router-demo/README.md +3 -3
  579. package/examples/form-validation.md +17 -13
  580. package/examples/multi-router-integration.md +268 -147
  581. package/examples/routing-patterns.md +43 -8
  582. package/examples/traffic-light.md +6 -2
  583. package/guides/actor-model.md +37 -19
  584. package/guides/atoms.md +48 -8
  585. package/guides/getting-started.md +63 -13
  586. package/guides/inspector.md +71 -11
  587. package/guides/routing.md +4 -1
  588. package/guides/state-machines.md +35 -13
  589. package/guides/views.md +34 -14
  590. package/package.json +6 -6
  591. package/rfc/play.md +31 -13
  592. package/api/@xmachines/play-view/index/functions/createFailureLatch.md +0 -20
  593. package/api/@xmachines/play-view/index/functions/sameViewInputs.md +0 -25
  594. package/api/@xmachines/play-view/index/interfaces/FailureLatch.md +0 -60
  595. package/api/@xmachines/play-view/index/interfaces/ViewInputs.md +0 -19
@@ -14,7 +14,7 @@ Every routing interaction starts with a `play.route` event sent to the actor. If
14
14
 
15
15
  Add a `meta.route` URL template to any state to make it routable:
16
16
 
17
- ```typescript
17
+ ```typescript fragment
18
18
  states: {
19
19
  home: {
20
20
  id: "home", // required: used as the play.route target ("#home")
@@ -106,7 +106,7 @@ const authMachine = authSetup.createMachine(
106
106
 
107
107
  `formatPlayRouteTransitions` generates root-level handlers equivalent to:
108
108
 
109
- ```typescript
109
+ ```typescript fragment
110
110
  on: {
111
111
  "play.route": [
112
112
  { target: ".home", guard: ({ event }) => event.to === "#home", reenter: false, actions: assign({ params, query }) },
@@ -124,6 +124,10 @@ on: {
124
124
  To navigate, send a `play.route` event with `to: "#stateId"`:
125
125
 
126
126
  ```typescript
127
+ import type { RoutableActor } from "@xmachines/play-router";
128
+
129
+ declare const actor: RoutableActor; // the started actor of "Complete Actor Usage" below
130
+
127
131
  // Navigate to home
128
132
  actor.send({ type: "play.route", to: "#home" });
129
133
 
@@ -151,7 +155,7 @@ actor.send({
151
155
 
152
156
  Use XState `always` transitions to protect states. If the guard fires, the machine redirects _before_ the state is fully entered:
153
157
 
154
- ```typescript
158
+ ```typescript fragment
155
159
  dashboard: {
156
160
  id: "dashboard",
157
161
  meta: { route: "/dashboard" },
@@ -177,7 +181,7 @@ profile: {
177
181
 
178
182
  Domain events placed at the root `on:` level are handled from any state:
179
183
 
180
- ```typescript
184
+ ```typescript fragment
181
185
  const authMachine = authSetup.createMachine(
182
186
  formatPlayRouteTransitions({
183
187
  // ...
@@ -207,6 +211,12 @@ const authMachine = authSetup.createMachine(
207
211
  ## Complete Actor Usage
208
212
 
209
213
  ```typescript
214
+ import type { AnyStateMachine } from "xstate";
215
+ import { compose, definePlayer, PlayerActor } from "@xmachines/play-xstate";
216
+ import { withRouting } from "@xmachines/play-xstate/routing";
217
+
218
+ declare const authMachine: AnyStateMachine; // the machine of the sections above
219
+
210
220
  const createPlayer = definePlayer({
211
221
  machine: authMachine,
212
222
  actor: compose(PlayerActor, withRouting),
@@ -244,12 +254,18 @@ To sync the browser URL with `actor.currentRoute`, use [`@xmachines/play-dom-rou
244
254
 
245
255
  ```typescript
246
256
  import { createBrowserHistory, createRouter, connectRouter } from "@xmachines/play-dom-router";
247
- import { createRouteMap } from "@xmachines/play-router/xstate";
257
+ import { createRouteMap, extractMachineRoutes } from "@xmachines/play-router/xstate";
258
+ import type { RoutableActor } from "@xmachines/play-router";
259
+ import type { AnyStateMachine } from "xstate";
260
+
261
+ declare const authMachine: AnyStateMachine; // the machine of the sections above
262
+ declare const actor: RoutableActor; // the started actor of "Complete Actor Usage"
263
+
248
264
  // createRouteMap extracts meta.route declarations from the machine
249
265
  const routeMap = createRouteMap(authMachine);
250
266
 
251
267
  const history = createBrowserHistory({ window });
252
- const router = createRouter({ routeTree: authMachine, history });
268
+ const router = createRouter({ routeTree: extractMachineRoutes(authMachine), history });
253
269
 
254
270
  // connectRouter handles all bidirectional sync:
255
271
  // - actor.currentRoute atom → browser URL (history.push)
@@ -271,14 +287,33 @@ function teardown(): void {
271
287
  For React, use [`@xmachines/play-react-router`](../api/@xmachines/play-react-router/README.md) or [`@xmachines/play-tanstack-react-router`](../api/@xmachines/play-tanstack-react-router/README.md):
272
288
 
273
289
  ```tsx
274
- import { PlayRouterProvider, createRouteMapFromTree } from "@xmachines/play-tanstack-react-router";
290
+ import type { ReactNode } from "react";
291
+ import {
292
+ PlayRouterProvider,
293
+ createRouteMapFromTree,
294
+ type RoutableActor,
295
+ type TanStackRouterInstance,
296
+ } from "@xmachines/play-tanstack-react-router";
275
297
  import { extractMachineRoutes } from "@xmachines/play-router/xstate";
298
+ import type { AnyStateMachine } from "xstate";
299
+
300
+ declare const authMachine: AnyStateMachine; // the machine of the sections above
301
+ declare const actor: RoutableActor; // the started actor of "Complete Actor Usage"
302
+ declare const router: TanStackRouterInstance; // your TanStack Router instance
303
+ declare function Shell(props: { actor: RoutableActor }): ReactNode; // your layout component
276
304
 
277
305
  const routeTree = extractMachineRoutes(authMachine);
278
306
  const routeMap = createRouteMapFromTree(routeTree);
279
307
 
280
308
  function App() {
281
- return <PlayRouterProvider actor={actor} router={router} routeMap={routeMap} />;
309
+ return (
310
+ <PlayRouterProvider
311
+ actor={actor}
312
+ router={router}
313
+ routeMap={routeMap}
314
+ renderer={(currentActor) => <Shell actor={currentActor} />}
315
+ />
316
+ );
282
317
  }
283
318
  ```
284
319
 
@@ -36,7 +36,7 @@ const trafficSetup = setup({
36
36
  params?: Record<string, string>;
37
37
  query?: Record<string, string>;
38
38
  },
39
- input: {} as undefined,
39
+ input: undefined,
40
40
  },
41
41
  });
42
42
 
@@ -106,7 +106,7 @@ actor.stop();
106
106
 
107
107
  `formatPlayRouteTransitions` crawls every state that has **both** an `id` and a `meta.route`, then generates root-level `play.route` event handlers of the form:
108
108
 
109
- ```typescript
109
+ ```typescript fragment
110
110
  // Auto-generated by formatPlayRouteTransitions — you don't write this manually:
111
111
  on: {
112
112
  "play.route": [
@@ -129,6 +129,10 @@ on: {
129
129
 
130
130
  ```typescript
131
131
  import { watchAtom } from "@xmachines/play-atom";
132
+ import type { Routable } from "@xmachines/play-router";
133
+
134
+ // The actor of the complete code above.
135
+ declare const actor: Routable;
132
136
 
133
137
  const unwatch = watchAtom(actor.currentRoute, () => {
134
138
  console.log("URL changed to:", actor.currentRoute.get());
@@ -33,7 +33,7 @@ Infrastructure → actor: only via actor.send({ type: "..." })
33
33
 
34
34
  ## What the actor owns
35
35
 
36
- An actor in XMachines is a [`PlayerActor`](../api/@xmachines/play-xstate/index/classes/PlayerActor.md) — a concrete class that extends XState's `Actor` class via [`PlayActor`](../api/@xmachines/play-actor/interfaces/PlayActor.md). It implements three reactive properties:
36
+ An actor in XMachines is a [`PlayerActor`](../api/@xmachines/play-xstate/index/classes/PlayerActor.md) — a concrete class that extends the `Actor` class of XState and implements the [`PlayActor`](../api/@xmachines/play-actor/interfaces/PlayActor.md) interface. With its capabilities, it holds three reactive properties:
37
37
 
38
38
  | Property | Type | What it is |
39
39
  | -------------------- | -------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- |
@@ -116,27 +116,30 @@ The two optional capability interfaces — [`Routable`](../api/@xmachines/play-r
116
116
  An actor implements only the capabilities it actually uses:
117
117
 
118
118
  ```typescript
119
+ import type { PlayActor } from "@xmachines/play-actor";
120
+ import { createAtom } from "@xmachines/play-atom";
121
+ import { compose, PlayerActor } from "@xmachines/play-xstate";
122
+ import { withRouting } from "@xmachines/play-xstate/routing";
123
+ import { withView } from "@xmachines/play-xstate/view";
124
+ import type { AnyStateMachine } from "xstate";
125
+
126
+ type CounterEvent = { type: "increment" };
127
+
119
128
  // Minimal actor: the contract alone, which is reactive state and send
120
- class MinimalActor implements PlayActor<SomeSnapshot, SomeEvent> {
121
- readonly state = createAtom<SomeSnapshot>(initial);
122
- send(event: SomeEvent): void {
123
- /* dispatch */
129
+ class CounterActor implements PlayActor<{ count: number }, CounterEvent> {
130
+ readonly state = createAtom({ count: 0 });
131
+
132
+ send(event: CounterEvent): void {
133
+ if (event.type === "increment") this.state.set(({ count }) => ({ count: count + 1 }));
124
134
  }
125
135
  }
126
136
 
127
- // Full actor: the contract, the routing and the view. It extends the actor class of
128
- // its own engine, and `PlayActor` stays out of the inheritance.
129
- class PlayerActor
130
- extends Actor<SomeMachine>
131
- implements PlayActor<SomeSnapshot, SomeEvent>, Routable, Viewable
132
- {
133
- readonly state = createAtom(this.getSnapshot());
134
- readonly currentRoute = createAtom(() => deriveRoute(this.state.get()));
135
- readonly currentView = createAtom((): PlaySpec | null => deriveView(this.state.get()));
136
- }
137
+ // Full actor: `PlayerActor` extends the `Actor` class of XState, and it implements
138
+ // `PlayActor`. `withRouting` adds `Routable`, and `withView` adds `Viewable`.
139
+ const FullActor = compose(PlayerActor<AnyStateMachine>, withRouting, withView);
137
140
  ```
138
141
 
139
- In practice you never write [`PlayerActor`](../api/@xmachines/play-xstate/index/classes/PlayerActor.md) yourself — [`definePlayer`](../api/@xmachines/play-xstate/index/functions/definePlayer.md) from [`@xmachines/play-xstate`](../api/@xmachines/play-xstate/README.md) creates one from your machine definition.
142
+ In practice you never write the actor class yourself — [`definePlayer`](../api/@xmachines/play-xstate/index/functions/definePlayer.md) from [`@xmachines/play-xstate`](../api/@xmachines/play-xstate/README.md) creates the actor from your machine definition and from the class that `compose` returns.
140
143
 
141
144
  ---
142
145
 
@@ -146,7 +149,9 @@ In practice you never write [`PlayerActor`](../api/@xmachines/play-xstate/index/
146
149
 
147
150
  ```typescript
148
151
  import { definePlayer } from "@xmachines/play-xstate";
149
- import { myMachine } from "./machine.js";
152
+ import { setup } from "xstate";
153
+
154
+ const myMachine = setup({}).createMachine({ id: "app", initial: "idle", states: { idle: {} } });
150
155
 
151
156
  const createPlayer = definePlayer({ machine: myMachine });
152
157
 
@@ -157,11 +162,24 @@ actor.start();
157
162
 
158
163
  [`definePlayer`](../api/@xmachines/play-xstate/index/functions/definePlayer.md) returns a **factory function**, not an actor. This is intentional: it lets you create multiple independent instances (e.g., one per test, one per user session) without re-processing the machine definition each time.
159
164
 
160
- The factory accepts optional `input` (initial context overrides) and a `restore` snapshot (for resumable sessions):
165
+ The factory accepts an optional `input` (initial context overrides) and an optional second argument `{ snapshot }` (a persisted snapshot, for resumable sessions):
161
166
 
162
167
  ```typescript
168
+ import { definePlayer } from "@xmachines/play-xstate";
169
+ import { setup } from "xstate";
170
+
171
+ const machine = setup({
172
+ types: {
173
+ input: {} as { userId: string } | undefined,
174
+ context: {} as { userId: string | null },
175
+ },
176
+ }).createMachine({ context: ({ input }) => ({ userId: input?.userId ?? null }) });
177
+
178
+ const createPlayer = definePlayer({ machine });
179
+
163
180
  const actor = createPlayer({ userId: "abc" }); // with input
164
- const actor = createPlayer(undefined, { snapshot }); // restored from snapshot
181
+ const snapshot = actor.getPersistedSnapshot();
182
+ const restored = createPlayer(undefined, { snapshot }); // restored from snapshot
165
183
  ```
166
184
 
167
185
  ---
package/guides/atoms.md CHANGED
@@ -48,6 +48,8 @@ In XMachines, `actor.state` is an `Atom<Snapshot>`. The actor updates it on ever
48
48
  An atom notifies nobody when the new value compares equal to the old one. The default comparison is `Object.is`, and the `compare` option replaces it:
49
49
 
50
50
  ```typescript
51
+ import { createAtom } from "@xmachines/play-atom";
52
+
51
53
  const point = createAtom(
52
54
  { x: 0, y: 0 },
53
55
  { compare: (previous, next) => previous.x === next.x && previous.y === next.y },
@@ -59,13 +61,18 @@ const point = createAtom(
59
61
  `ReadonlyAtom<T>` derives a value from one or more other atoms. It recomputes only when its dependencies change, and it memoizes the result. The atom tracks each dependency for you: read another atom inside the function, and the edge exists.
60
62
 
61
63
  ```typescript
62
- const route = createAtom(() => {
63
- const snapshot = actor.state.get();
64
- return snapshot.getMeta()?.route ?? null;
65
- });
64
+ import { createAtom } from "@xmachines/play-atom";
65
+ import type { PlayerActor } from "@xmachines/play-xstate";
66
+ import type { AnyStateMachine } from "xstate";
67
+
68
+ declare const actor: PlayerActor<AnyStateMachine>;
69
+
70
+ // Whether the machine is in a state that shows the dashboard. The atom reads actor.state,
71
+ // so it recomputes on each snapshot, and it notifies only when the answer changes.
72
+ const onDashboard = createAtom(() => actor.state.get().matches("dashboard"));
66
73
  ```
67
74
 
68
- In XMachines, `actor.currentRoute` is a `ReadonlyAtom<string | null>`. Router adapters read it to know which URL to push — they do not compute the route themselves. Route derivation stays in the actor where the business logic lives.
75
+ In XMachines, `actor.currentRoute` is such a derived `ReadonlyAtom<string | null>`. It derives the route template of the active branch from `actor.state`, and it then fills the params from the context. Router adapters read it to know which URL to push — they do not compute the route themselves. Route derivation stays in the actor where the business logic lives.
69
76
 
70
77
  > **A computed atom with a subscriber is EAGER.** `@xstate/store` builds a subscription on an effect that READS the atom, so a write to a dependency evaluates the derivation at once, inside that write. A computed atom that nobody subscribes to stays lazy, and it computes on a read. Keep a derivation cheap and free of a side effect.
71
78
 
@@ -80,11 +87,15 @@ The actor writes exactly one atom for each transition — `state` — and `curre
80
87
  A subscriber makes a computed atom eager, so the derivation runs inside the `set` of its dependency — before any observer sees anything. No subscriber can wrap that, so a derivation that something may watch must not throw:
81
88
 
82
89
  ```typescript
83
- const derived = createAtom((previous) => {
90
+ import { createAtom } from "@xmachines/play-atom";
91
+
92
+ const source = createAtom('{ "count": 0 }');
93
+
94
+ const derived = createAtom((previous?: unknown) => {
84
95
  try {
85
- return expensiveDerivation(source.get());
96
+ return JSON.parse(source.get()) as unknown;
86
97
  } catch (error) {
87
- report(error);
98
+ console.error(error);
88
99
  return previous ?? null; // keep the last good value
89
100
  }
90
101
  });
@@ -97,6 +108,8 @@ const derived = createAtom((previous) => {
97
108
  `createAtom` carries two signatures, and TypeScript must prove the argument is not a function before it reaches the writable one. For a concrete type it proves that at once. For a type parameter, or a conditional type over one, it cannot, so it picks the computed signature and returns a `ReadonlyAtom` that carries no `set`.
98
109
 
99
110
  ```typescript
111
+ import { createWritableAtom, type Atom } from "@xmachines/play-atom";
112
+
100
113
  class Holder<T extends { value: unknown }> {
101
114
  public readonly state: Atom<T["value"]>;
102
115
 
@@ -114,6 +127,10 @@ Use `createAtom` everywhere else.
114
127
  Every atom carries `subscribe`. The observer runs **synchronously**, inside the `set` of the atom that changed, and it returns a subscription with `unsubscribe()`.
115
128
 
116
129
  ```typescript
130
+ import type { Routable } from "@xmachines/play-router";
131
+
132
+ declare const actor: Routable;
133
+
117
134
  const subscription = actor.currentRoute.subscribe((route) => {
118
135
  console.log("Route is now:", route);
119
136
  });
@@ -124,6 +141,12 @@ subscription.unsubscribe();
124
141
  The subscription is a plain object. To hold it with `using`, publish it with `asDisposable` of [`@xmachines/core/utils`](../api/@xmachines/core/README.md), and name `unsubscribe` as the release:
125
142
 
126
143
  ```typescript
144
+ import { asDisposable } from "@xmachines/core/utils";
145
+ import type { Routable } from "@xmachines/play-router";
146
+
147
+ declare const actor: Routable;
148
+ declare function render(route: string | null): void;
149
+
127
150
  {
128
151
  const plain = actor.currentRoute.subscribe((route) => render(route));
129
152
  using subscription = asDisposable(plain, () => plain.unsubscribe());
@@ -145,6 +168,11 @@ For both reasons, application code should use [`watchAtom()`](../api/@xmachines/
145
168
  [`@xmachines/play-atom`](../api/@xmachines/play-atom/README.md) exports [`watchAtom(atom, onValue)`](../api/@xmachines/play-atom/functions/watchAtom.md) as a lifecycle-safe wrapper around `subscribe`. It returns a cleanup function:
146
169
 
147
170
  ```typescript
171
+ import { watchAtom } from "@xmachines/play-atom";
172
+ import type { Routable } from "@xmachines/play-router";
173
+
174
+ declare const actor: Routable;
175
+
148
176
  const stop = watchAtom(actor.currentRoute, (route) => {
149
177
  console.log("Route is now:", route);
150
178
  });
@@ -175,6 +203,13 @@ Keep the explicit call where the release outlives the scope that made it — a f
175
203
  teardown reads, an entry in a `Set` of releases:
176
204
 
177
205
  ```typescript
206
+ import { watchAtom } from "@xmachines/play-atom";
207
+ import type { Routable } from "@xmachines/play-router";
208
+
209
+ declare const actor: Routable;
210
+ declare function render(route: string | null): void;
211
+ declare function onUnmount(teardown: () => void): void; // the hook of your framework
212
+
178
213
  const stop = watchAtom(actor.currentRoute, render);
179
214
  onUnmount(() => stop());
180
215
  ```
@@ -185,6 +220,11 @@ it, an exception releases it too, and the code carries no teardown:
185
220
 
186
221
  ```typescript
187
222
  import { asDisposable } from "@xmachines/core/utils";
223
+ import { watchAtom } from "@xmachines/play-atom";
224
+ import type { Routable } from "@xmachines/play-router";
225
+
226
+ declare const actor: Routable;
227
+ declare function render(route: string | null): void;
188
228
 
189
229
  {
190
230
  using stop = asDisposable(watchAtom(actor.currentRoute, render));
@@ -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
 
@@ -154,9 +154,11 @@ 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 @xmachines/play-xstate @xmachines/play-actor @xmachines/play-atom @xmachines/play @xmachines/core @xmachines/json-render-core@0.21.0-xm.6
158
158
  ```
159
159
 
160
+ The json-render packages are exact peers: install the version that this release names, `0.21.0-xm.6`.
161
+
160
162
  | Package | Role |
161
163
  | ------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
162
164
  | `xstate` | XState v5 state machine engine (peer dependency) |
@@ -208,7 +210,6 @@ const appSetup = setup({
208
210
  types: {
209
211
  context: {} as { count: number },
210
212
  events: {} as { type: "toggle" },
211
- input: {} as undefined,
212
213
  },
213
214
  });
214
215
 
@@ -272,6 +273,10 @@ release:
272
273
 
273
274
  ```typescript
274
275
  import { watchAtom } from "@xmachines/play-atom";
276
+ import type { PlayerActor } from "@xmachines/play-xstate";
277
+ import type { AnyStateMachine } from "xstate";
278
+
279
+ declare const actor: PlayerActor<AnyStateMachine>; // the actor of the example above
275
280
 
276
281
  const stop = watchAtom(actor.state, (snapshot) => {
277
282
  console.log("the machine is now:", snapshot.value);
@@ -325,7 +330,6 @@ const appSetup = setup({
325
330
  },
326
331
  events: {} as
327
332
  PlayRouteEvent | { type: "auth.login"; username: string } | { type: "auth.logout" },
328
- input: {} as undefined,
329
333
  },
330
334
  });
331
335
 
@@ -412,16 +416,27 @@ Used with framework-integrated routers like TanStack Router. All three props (`a
412
416
 
413
417
  ```tsx
414
418
  // React + TanStack Router example
415
- import { useMemo, useEffect } from "react";
419
+ import { useMemo, useEffect, type ReactNode } from "react";
416
420
  import { createRouter, createRootRoute } from "@tanstack/react-router";
417
421
  import { PlayRouterProvider, createRouteMapFromTree } from "@xmachines/play-tanstack-react-router";
418
422
  import { extractMachineRoutes } from "@xmachines/play-router/xstate";
423
+ import { compose, definePlayer, PlayerActor } from "@xmachines/play-xstate";
424
+ import { withRouting } from "@xmachines/play-xstate/routing";
425
+ import type { AnyStateMachine } from "xstate";
426
+
427
+ declare const appMachine: AnyStateMachine; // the machine of "Adding Routing"
428
+ declare function Shell(props: { actor: typeof actor }): ReactNode; // your layout
429
+
419
430
  // Build OUTSIDE of JSX — must be stable references
420
431
  const routeTree = extractMachineRoutes(appMachine);
421
432
  const routeMap = createRouteMapFromTree(routeTree);
422
433
  const router = createRouter({ routeTree: createRootRoute() });
423
434
 
424
435
  // Actor also created outside the component (or memoized inside)
436
+ const createPlayer = definePlayer({
437
+ machine: appMachine,
438
+ actor: compose(PlayerActor, withRouting),
439
+ });
425
440
  const actor = createPlayer();
426
441
  actor.start();
427
442
 
@@ -448,12 +463,21 @@ Used with framework-agnostic or server-rendered routers. `connectRouter` handles
448
463
  import { createBrowserHistory, createRouter, connectRouter } from "@xmachines/play-dom-router";
449
464
  import { createRouteMapFromTree } from "@xmachines/play-router";
450
465
  import { extractMachineRoutes } from "@xmachines/play-router/xstate";
466
+ import { compose, definePlayer, PlayerActor } from "@xmachines/play-xstate";
467
+ import { withRouting } from "@xmachines/play-xstate/routing";
468
+ import type { AnyStateMachine } from "xstate";
469
+
470
+ declare const appMachine: AnyStateMachine; // the machine of "Adding Routing"
451
471
 
452
472
  const routeTree = extractMachineRoutes(appMachine);
453
473
  const routeMap = createRouteMapFromTree(routeTree);
454
474
  const history = createBrowserHistory({ window });
455
475
  const router = createRouter({ routeTree, history });
456
476
 
477
+ const createPlayer = definePlayer({
478
+ machine: appMachine,
479
+ actor: compose(PlayerActor, withRouting),
480
+ });
457
481
  const actor = createPlayer();
458
482
  actor.start();
459
483
 
@@ -483,6 +507,10 @@ import { PlayUIProvider, PlayRenderer, defineRegistry } from "@xmachines/play-re
483
507
  import { defineCatalog } from "@xmachines/json-render-core";
484
508
  import { schema } from "@xmachines/play-react";
485
509
  import { z } from "zod";
510
+ import type { ViewActor } from "@xmachines/play-view";
511
+
512
+ type AuthEvent = { type: "auth.login"; username: string } | { type: "auth.logout" };
513
+ declare const actor: ViewActor<unknown, AuthEvent>; // your actor, composed with `withView`
486
514
 
487
515
  const catalog = defineCatalog(schema, {
488
516
  components: {
@@ -501,7 +529,9 @@ const registryResult = defineRegistry(catalog, {
501
529
  Login: ({ on }) => <button onClick={() => on("submit").emit()}>Log in</button>,
502
530
  },
503
531
  actions: {
504
- login: async ({ username }) => actor.send({ type: "auth.login", username }),
532
+ login: async (params) => {
533
+ if (params) actor.send({ type: "auth.login", username: params.username });
534
+ },
505
535
  logout: async () => actor.send({ type: "auth.logout" }),
506
536
  },
507
537
  });
@@ -548,7 +578,9 @@ function App() {
548
578
  Login: { template: `<button @click="on('submit').emit()">Log in</button>` },
549
579
  },
550
580
  actions: {
551
- login: async ({ username }) => actor.send({ type: "auth.login", username }),
581
+ login: async (params) => {
582
+ if (params) actor.send({ type: "auth.login", username: params.username });
583
+ },
552
584
  logout: async () => actor.send({ type: "auth.logout" }),
553
585
  },
554
586
  });
@@ -562,6 +594,10 @@ import { PlayUIProvider, PlayRenderer, defineRegistry } from "@xmachines/play-so
562
594
  import { defineCatalog } from "@xmachines/json-render-core";
563
595
  import { schema } from "@xmachines/play-solid";
564
596
  import { z } from "zod";
597
+ import type { ViewActor } from "@xmachines/play-view";
598
+
599
+ type AuthEvent = { type: "auth.login"; username: string } | { type: "auth.logout" };
600
+ declare const actor: ViewActor<unknown, AuthEvent>; // your actor, composed with `withView`
565
601
 
566
602
  const catalog = defineCatalog(schema, {
567
603
  components: {
@@ -580,7 +616,9 @@ const registryResult = defineRegistry(catalog, {
580
616
  Login: ({ on }) => <button onClick={() => on("submit").emit()}>Log in</button>,
581
617
  },
582
618
  actions: {
583
- login: async ({ username }) => actor.send({ type: "auth.login", username }),
619
+ login: async (params) => {
620
+ if (params) actor.send({ type: "auth.login", username: params.username });
621
+ },
584
622
  logout: async () => actor.send({ type: "auth.logout" }),
585
623
  },
586
624
  });
@@ -601,6 +639,10 @@ import { createPlayUI, defineRegistry, schema } from "@xmachines/play-dom";
601
639
  import { defineCatalog } from "@xmachines/json-render-core";
602
640
  import { z } from "zod";
603
641
  import type { ComponentFn } from "@xmachines/play-dom";
642
+ import type { ViewActor } from "@xmachines/play-view";
643
+
644
+ type AuthEvent = { type: "auth.login"; username: string } | { type: "auth.logout" };
645
+ declare const actor: ViewActor<unknown, AuthEvent>; // your actor, composed with `withView`
604
646
 
605
647
  const catalog = defineCatalog(schema, {
606
648
  components: {
@@ -631,7 +673,9 @@ const Login: ComponentFn<typeof catalog, "Login"> = ({ on }) => {
631
673
  const registryResult = defineRegistry(catalog, {
632
674
  components: { Home, Login },
633
675
  actions: {
634
- login: async ({ username }) => actor.send({ type: "auth.login", username }),
676
+ login: async (params) => {
677
+ if (params) actor.send({ type: "auth.login", username: params.username });
678
+ },
635
679
  logout: async () => actor.send({ type: "auth.logout" }),
636
680
  },
637
681
  });
@@ -658,7 +702,7 @@ nothing is needed — the generated transitions assign `event.query` to context
658
702
  on every navigation. A machine that handles `play.route` by hand must do that
659
703
  assignment itself:
660
704
 
661
- ```typescript
705
+ ```typescript fragment
662
706
  on: {
663
707
  "play.route": {
664
708
  actions: assign({
@@ -675,7 +719,7 @@ on: {
675
719
 
676
720
  **Fix:** Every state with `meta.route` must declare an explicit `id`:
677
721
 
678
- ```typescript
722
+ ```typescript fragment
679
723
  // ❌ Missing id
680
724
  home: { meta: { route: "/" } }
681
725
 
@@ -690,6 +734,12 @@ home: { id: "home", meta: { route: "/" } }
690
734
  **Fix:** Always call `actor.start()` before `actor.send()`:
691
735
 
692
736
  ```typescript
737
+ import { definePlayer } from "@xmachines/play-xstate";
738
+ import type { AnyStateMachine } from "xstate";
739
+
740
+ declare const machine: AnyStateMachine; // your machine
741
+
742
+ const createPlayer = definePlayer({ machine });
693
743
  const actor = createPlayer();
694
744
  actor.start(); // required before any send()
695
745
  actor.send({ type: "toggle" });
@@ -701,7 +751,7 @@ actor.send({ type: "toggle" });
701
751
 
702
752
  **Fix:** Construct stable references outside JSX or memoize them:
703
753
 
704
- ```typescript
754
+ ```typescript fragment
705
755
  // ✅ Built outside the component
706
756
  const routeTree = extractMachineRoutes(appMachine);
707
757
  const routeMap = createRouteMapFromTree(routeTree);