@xmachines/docs 4.0.0 → 5.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 (483) hide show
  1. package/README.md +8 -6
  2. package/api/@xmachines/play/README.md +21 -21
  3. package/api/@xmachines/play/errors/classes/NonNullableError.md +4 -4
  4. package/api/@xmachines/play/errors/classes/PlayError.md +5 -4
  5. package/api/@xmachines/play/index/README.md +2 -2
  6. package/api/@xmachines/play/index/functions/asCleanup.md +4 -5
  7. package/api/@xmachines/play/index/functions/assertNonNullable.md +1 -1
  8. package/api/@xmachines/play/index/functions/shallowEqualExcept.md +1 -1
  9. package/api/@xmachines/play/index/type-aliases/Cleanup.md +3 -3
  10. package/api/@xmachines/play/index/type-aliases/DisposeKey.md +1 -1
  11. package/api/@xmachines/play/index/type-aliases/PlayEvent.md +2 -2
  12. package/api/@xmachines/play/index/variables/DISPOSE.md +1 -1
  13. package/api/@xmachines/play-actor/README.md +9 -9
  14. package/api/@xmachines/play-actor/interfaces/ActorEvent.md +2 -2
  15. package/api/@xmachines/play-actor/interfaces/PlayActor.md +6 -6
  16. package/api/@xmachines/play-atom/README.md +281 -0
  17. package/api/@xmachines/play-atom/functions/watchAtom.md +79 -0
  18. package/api/@xmachines/play-atom/interfaces/AsyncAtomOptions.md +16 -0
  19. package/api/@xmachines/play-atom/interfaces/Atom.md +149 -0
  20. package/api/@xmachines/play-atom/interfaces/AtomObserver.md +25 -0
  21. package/api/@xmachines/play-atom/interfaces/AtomOptions.md +33 -0
  22. package/api/@xmachines/play-atom/interfaces/AtomSubscription.md +23 -0
  23. package/api/@xmachines/play-atom/interfaces/BaseAtom.md +97 -0
  24. package/api/@xmachines/play-atom/interfaces/CreateAtom.md +91 -0
  25. package/api/@xmachines/play-atom/interfaces/Readable.md +93 -0
  26. package/api/@xmachines/play-atom/interfaces/ReadonlyAtom.md +108 -0
  27. package/api/@xmachines/play-atom/type-aliases/AnyAtom.md +13 -0
  28. package/api/@xmachines/play-atom/type-aliases/AsyncAtomState.md +32 -0
  29. package/api/@xmachines/{play-signals → play-atom}/type-aliases/Cleanup.md +4 -4
  30. package/api/@xmachines/play-atom/variables/createAsyncAtom.md +42 -0
  31. package/api/@xmachines/play-atom/variables/createAtom.md +18 -0
  32. package/api/@xmachines/play-atom/variables/createWritableAtom.md +70 -0
  33. package/api/@xmachines/play-dom/README.md +21 -17
  34. package/api/@xmachines/play-dom/classes/PlayRenderer.md +10 -10
  35. package/api/@xmachines/play-dom/functions/asCleanup.md +4 -5
  36. package/api/@xmachines/play-dom/functions/createPlayUI.md +1 -1
  37. package/api/@xmachines/play-dom/functions/createRenderer.md +1 -1
  38. package/api/@xmachines/play-dom/interfaces/CreatePlayUIOptions.md +3 -3
  39. package/api/@xmachines/play-dom/interfaces/MountOptions.md +3 -3
  40. package/api/@xmachines/play-dom/interfaces/PlayDomOptions.md +6 -6
  41. package/api/@xmachines/play-dom/type-aliases/Cleanup.md +3 -3
  42. package/api/@xmachines/play-dom/type-aliases/MountFn.md +1 -1
  43. package/api/@xmachines/play-dom-router/README.md +24 -24
  44. package/api/@xmachines/play-dom-router/classes/DomRouterBridge.md +15 -15
  45. package/api/@xmachines/play-dom-router/classes/RouteMap.md +11 -11
  46. package/api/@xmachines/play-dom-router/functions/asCleanup.md +4 -5
  47. package/api/@xmachines/play-dom-router/functions/connectRouter.md +1 -1
  48. package/api/@xmachines/play-dom-router/functions/createBrowserHistory.md +1 -1
  49. package/api/@xmachines/play-dom-router/functions/createRouter.md +1 -1
  50. package/api/@xmachines/play-dom-router/interfaces/BasePathOptions.md +3 -7
  51. package/api/@xmachines/play-dom-router/interfaces/BrowserHistory.md +15 -15
  52. package/api/@xmachines/play-dom-router/interfaces/BrowserWindow.md +14 -14
  53. package/api/@xmachines/play-dom-router/interfaces/ConnectRouterOptions.md +11 -9
  54. package/api/@xmachines/play-dom-router/interfaces/PlayRouteEvent.md +7 -7
  55. package/api/@xmachines/play-dom-router/interfaces/RoutableActor.md +6 -6
  56. package/api/@xmachines/play-dom-router/interfaces/RouteLookupContract.md +3 -3
  57. package/api/@xmachines/play-dom-router/interfaces/RouteMapOptions.md +10 -4
  58. package/api/@xmachines/play-dom-router/interfaces/RouteMapping.md +3 -3
  59. package/api/@xmachines/play-dom-router/interfaces/RouterBridge.md +15 -17
  60. package/api/@xmachines/play-dom-router/interfaces/RouterConnection.md +7 -7
  61. package/api/@xmachines/play-dom-router/interfaces/VanillaRouter.md +5 -5
  62. package/api/@xmachines/play-dom-router/type-aliases/Cleanup.md +3 -3
  63. package/api/@xmachines/play-dom-router/variables/DISPOSE.md +1 -1
  64. package/api/@xmachines/play-pattern/README.md +115 -0
  65. package/api/@xmachines/play-pattern/functions/buildPath.md +46 -0
  66. package/api/@xmachines/play-pattern/functions/createPatternCache.md +47 -0
  67. package/api/@xmachines/play-pattern/functions/getIndexKey.md +30 -0
  68. package/api/@xmachines/play-pattern/functions/isDotSegment.md +40 -0
  69. package/api/@xmachines/play-pattern/functions/parsePattern.md +28 -0
  70. package/api/@xmachines/play-pattern/interfaces/GroupPart.md +15 -0
  71. package/api/@xmachines/play-pattern/interfaces/LiteralPart.md +14 -0
  72. package/api/@xmachines/play-pattern/interfaces/ParamPart.md +21 -0
  73. package/api/@xmachines/play-pattern/interfaces/ParseOptions.md +19 -0
  74. package/api/@xmachines/play-pattern/interfaces/ParsedPattern.md +23 -0
  75. package/api/@xmachines/play-pattern/interfaces/PatternCache.md +65 -0
  76. package/api/@xmachines/play-pattern/interfaces/PatternParam.md +15 -0
  77. package/api/@xmachines/play-pattern/type-aliases/PathBuildResult.md +74 -0
  78. package/api/@xmachines/play-pattern/type-aliases/PathParams.md +15 -0
  79. package/api/@xmachines/play-pattern/type-aliases/PatternModifier.md +11 -0
  80. package/api/@xmachines/play-pattern/type-aliases/PatternPart.md +9 -0
  81. package/api/@xmachines/play-react/README.md +31 -21
  82. package/api/@xmachines/play-react/classes/PlayErrorBoundary.md +6 -6
  83. package/api/@xmachines/play-react/functions/useActor.md +1 -1
  84. package/api/@xmachines/play-react/functions/useAtomEffect.md +103 -0
  85. package/api/@xmachines/play-react/functions/usePlayView.md +1 -1
  86. package/api/@xmachines/play-react/interfaces/ActorProviderProps.md +8 -8
  87. package/api/@xmachines/play-react/interfaces/PlayErrorBoundaryProps.md +6 -6
  88. package/api/@xmachines/play-react/interfaces/PlayErrorBoundaryState.md +4 -4
  89. package/api/@xmachines/play-react/interfaces/PlayUIProviderProps.md +8 -8
  90. package/api/@xmachines/play-react/interfaces/ViewContextValue.md +5 -5
  91. package/api/@xmachines/play-react/type-aliases/AnyPlayActor.md +1 -1
  92. package/api/@xmachines/play-react/variables/ActorProvider.md +2 -2
  93. package/api/@xmachines/play-react/variables/PlayRenderer.md +1 -1
  94. package/api/@xmachines/play-react/variables/PlayUIProvider.md +1 -1
  95. package/api/@xmachines/play-react-router/README.md +3 -3
  96. package/api/@xmachines/play-react-router/classes/ReactRouterBridge.md +15 -15
  97. package/api/@xmachines/play-react-router/classes/RouteMap.md +11 -11
  98. package/api/@xmachines/play-react-router/functions/createPlayRouterProvider.md +1 -1
  99. package/api/@xmachines/play-react-router/functions/createRouteMapFromTree.md +5 -5
  100. package/api/@xmachines/play-react-router/interfaces/PlayRouteEvent.md +7 -7
  101. package/api/@xmachines/play-react-router/interfaces/PlayRouterProviderProps.md +11 -9
  102. package/api/@xmachines/play-react-router/interfaces/RoutableActor.md +6 -6
  103. package/api/@xmachines/play-react-router/interfaces/RouteMapOptions.md +10 -4
  104. package/api/@xmachines/play-react-router/interfaces/RouteMapping.md +3 -3
  105. package/api/@xmachines/play-react-router/interfaces/RouterBridge.md +15 -17
  106. package/api/@xmachines/play-react-router/type-aliases/PlayRouterBridgeConstructor.md +14 -7
  107. package/api/@xmachines/play-react-router/type-aliases/PlayRouterProviderBaseProps.md +1 -1
  108. package/api/@xmachines/play-react-router/variables/PlayRouterProvider.md +1 -1
  109. package/api/@xmachines/play-router/README.md +25 -14
  110. package/api/@xmachines/play-router/errors/classes/DuplicateBridgeError.md +4 -4
  111. package/api/@xmachines/play-router/errors/classes/DuplicateRoutePathError.md +5 -5
  112. package/api/@xmachines/play-router/errors/classes/EmptyRoutePathError.md +5 -5
  113. package/api/@xmachines/play-router/errors/classes/InvalidBasePathError.md +5 -5
  114. package/api/@xmachines/play-router/errors/classes/InvalidRoutePatternError.md +5 -5
  115. package/api/@xmachines/play-router/errors/classes/InvalidStateIdError.md +5 -5
  116. package/api/@xmachines/play-router/errors/classes/MissingBasePathParamError.md +6 -6
  117. package/api/@xmachines/play-router/errors/classes/RouterSyncError.md +4 -4
  118. package/api/@xmachines/play-router/errors/classes/UnknownStateTypeError.md +6 -6
  119. package/api/@xmachines/play-router/index/README.md +10 -2
  120. package/api/@xmachines/play-router/index/classes/RouteMap.md +11 -11
  121. package/api/@xmachines/play-router/index/classes/RouterBridgeBase.md +10 -10
  122. package/api/@xmachines/play-router/index/functions/buildPlayRouteEvent.md +1 -1
  123. package/api/@xmachines/play-router/index/functions/buildRouteTree.md +1 -1
  124. package/api/@xmachines/play-router/index/functions/cleanFrameworkParams.md +1 -1
  125. package/api/@xmachines/play-router/index/functions/createPatternCache.md +47 -0
  126. package/api/@xmachines/play-router/index/functions/createRouteMapFromTree.md +5 -5
  127. package/api/@xmachines/play-router/index/functions/createRouterConnection.md +1 -1
  128. package/api/@xmachines/play-router/index/functions/detectDuplicateRoutes.md +1 -1
  129. package/api/@xmachines/play-router/index/functions/extractQuery.md +1 -1
  130. package/api/@xmachines/play-router/index/functions/extractRouteParams.md +7 -6
  131. package/api/@xmachines/play-router/index/functions/findRouteById.md +1 -1
  132. package/api/@xmachines/play-router/index/functions/findRouteByPath.md +13 -6
  133. package/api/@xmachines/play-router/index/functions/isMountableBridge.md +1 -1
  134. package/api/@xmachines/play-router/index/functions/joinBasePath.md +2 -1
  135. package/api/@xmachines/play-router/index/functions/mountKey.md +1 -1
  136. package/api/@xmachines/play-router/index/functions/normalizeBasePath.md +1 -1
  137. package/api/@xmachines/play-router/index/functions/openProviderBridge.md +3 -3
  138. package/api/@xmachines/play-router/index/functions/parsePattern.md +28 -0
  139. package/api/@xmachines/play-router/index/functions/pickOwnParams.md +1 -1
  140. package/api/@xmachines/play-router/index/functions/repointProviderBridge.md +1 -1
  141. package/api/@xmachines/play-router/index/functions/resolveBasePath.md +1 -1
  142. package/api/@xmachines/play-router/index/functions/resolveFrameworkParams.md +5 -5
  143. package/api/@xmachines/play-router/index/functions/sanitizePathname.md +9 -24
  144. package/api/@xmachines/play-router/index/functions/splitLocation.md +37 -0
  145. package/api/@xmachines/play-router/index/functions/stripBasePath.md +1 -1
  146. package/api/@xmachines/play-router/index/functions/validateRouteFormat.md +1 -1
  147. package/api/@xmachines/play-router/index/functions/validateStateExists.md +1 -1
  148. package/api/@xmachines/play-router/index/interfaces/BasePathOptions.md +4 -4
  149. package/api/@xmachines/play-router/index/interfaces/BuildPlayRouteEventOptions.md +4 -4
  150. package/api/@xmachines/play-router/index/interfaces/CompileOptions.md +35 -0
  151. package/api/@xmachines/play-router/index/interfaces/FrameworkParamsSource.md +13 -8
  152. package/api/@xmachines/play-router/index/interfaces/LocationLike.md +3 -3
  153. package/api/@xmachines/play-router/index/interfaces/MountableRouterBridge.md +9 -9
  154. package/api/@xmachines/play-router/index/interfaces/OpenProviderBridgeArgs.md +11 -9
  155. package/api/@xmachines/play-router/index/interfaces/ParseOptions.md +24 -0
  156. package/api/@xmachines/play-router/index/interfaces/ParsedPattern.md +23 -0
  157. package/api/@xmachines/play-router/index/interfaces/PatternCache.md +65 -0
  158. package/api/@xmachines/play-router/index/interfaces/PlayRouteEvent.md +7 -7
  159. package/api/@xmachines/play-router/index/interfaces/PlayRouterProviderBaseProps.md +15 -9
  160. package/api/@xmachines/play-router/index/interfaces/ResolvedBasePath.md +3 -3
  161. package/api/@xmachines/play-router/index/interfaces/ResolvedRoutePath.md +3 -3
  162. package/api/@xmachines/play-router/index/interfaces/Routable.md +5 -5
  163. package/api/@xmachines/play-router/index/interfaces/RoutableActor.md +6 -6
  164. package/api/@xmachines/play-router/index/interfaces/RouteInfo.md +8 -8
  165. package/api/@xmachines/play-router/index/interfaces/RouteMapOptions.md +10 -4
  166. package/api/@xmachines/play-router/index/interfaces/RouteMapping.md +3 -3
  167. package/api/@xmachines/play-router/index/interfaces/RouteMatch.md +3 -3
  168. package/api/@xmachines/play-router/index/interfaces/RouteNode.md +10 -10
  169. package/api/@xmachines/play-router/index/interfaces/RouteObject.md +5 -5
  170. package/api/@xmachines/play-router/index/interfaces/RouteTree.md +5 -5
  171. package/api/@xmachines/play-router/index/interfaces/RouteWatcherHandle.md +11 -11
  172. package/api/@xmachines/play-router/index/interfaces/RouterBridge.md +15 -17
  173. package/api/@xmachines/play-router/index/interfaces/RouterBridgeOptions.md +31 -0
  174. package/api/@xmachines/play-router/index/interfaces/RouterConnection.md +7 -7
  175. package/api/@xmachines/play-router/index/interfaces/SplitLocation.md +16 -0
  176. package/api/@xmachines/play-router/index/interfaces/WindowLike.md +3 -3
  177. package/api/@xmachines/play-router/index/type-aliases/PlayRouterBridgeConstructor.md +14 -7
  178. package/api/@xmachines/play-router/index/type-aliases/RouteData.md +1 -1
  179. package/api/@xmachines/play-router/index/type-aliases/RouteDataResolver.md +1 -1
  180. package/api/@xmachines/play-router/index/type-aliases/RouteMetadata.md +1 -1
  181. package/api/@xmachines/play-router/index/type-aliases/URLPatternLike.md +68 -0
  182. package/api/@xmachines/play-router/index/variables/DISPOSE.md +1 -1
  183. package/api/@xmachines/play-router/index/variables/NO_BASE_PATH.md +1 -1
  184. package/api/@xmachines/play-router/index/variables/ROOT_NODE_ID.md +1 -1
  185. package/api/@xmachines/play-router/xstate/functions/createRouteMap.md +5 -5
  186. package/api/@xmachines/play-router/xstate/functions/extractMachineRoutes.md +6 -5
  187. package/api/@xmachines/play-router/xstate/functions/getNavigableRoutes.md +1 -1
  188. package/api/@xmachines/play-router/xstate/functions/getRoutableRoutes.md +1 -1
  189. package/api/@xmachines/play-router/xstate/functions/getRouteMappings.md +1 -1
  190. package/api/@xmachines/play-router/xstate/functions/getTransitionReachableRoutes.md +1 -1
  191. package/api/@xmachines/play-router/xstate/functions/isRouteReachable.md +1 -1
  192. package/api/@xmachines/play-router/xstate/functions/machineToGraph.md +1 -1
  193. package/api/@xmachines/play-router/xstate/functions/routeExists.md +1 -1
  194. package/api/@xmachines/play-router/xstate/interfaces/MachineEdgeData.md +3 -3
  195. package/api/@xmachines/play-router/xstate/interfaces/MachineNodeData.md +5 -5
  196. package/api/@xmachines/play-router/xstate/type-aliases/MachineGraph.md +1 -1
  197. package/api/@xmachines/play-solid/README.md +9 -5
  198. package/api/@xmachines/play-solid/functions/useActor.md +1 -1
  199. package/api/@xmachines/play-solid/functions/usePlayView.md +1 -1
  200. package/api/@xmachines/play-solid/interfaces/ActorProviderProps.md +8 -8
  201. package/api/@xmachines/play-solid/interfaces/PlayUIProviderProps.md +8 -8
  202. package/api/@xmachines/play-solid/interfaces/ViewContextValue.md +5 -5
  203. package/api/@xmachines/play-solid/type-aliases/AnyPlayActor.md +1 -1
  204. package/api/@xmachines/play-solid/variables/ActorContext.md +1 -1
  205. package/api/@xmachines/play-solid/variables/ActorProvider.md +2 -2
  206. package/api/@xmachines/play-solid/variables/PlayRenderer.md +1 -1
  207. package/api/@xmachines/play-solid/variables/PlayUIProvider.md +1 -1
  208. package/api/@xmachines/play-solid-router/README.md +14 -14
  209. package/api/@xmachines/play-solid-router/classes/RouteMap.md +11 -11
  210. package/api/@xmachines/play-solid-router/classes/SolidRouterBridge.md +18 -18
  211. package/api/@xmachines/play-solid-router/functions/createPlayRouterProvider.md +1 -1
  212. package/api/@xmachines/play-solid-router/interfaces/PlayActor.md +6 -6
  213. package/api/@xmachines/play-solid-router/interfaces/PlayRouteEvent.md +7 -7
  214. package/api/@xmachines/play-solid-router/interfaces/PlayRouterProviderProps.md +11 -9
  215. package/api/@xmachines/play-solid-router/interfaces/RoutableActor.md +6 -6
  216. package/api/@xmachines/play-solid-router/interfaces/RouteMapOptions.md +10 -4
  217. package/api/@xmachines/play-solid-router/interfaces/RouteMapping.md +3 -3
  218. package/api/@xmachines/play-solid-router/interfaces/RouterBridge.md +15 -17
  219. package/api/@xmachines/play-solid-router/type-aliases/PlayRouterBridgeConstructor.md +14 -7
  220. package/api/@xmachines/play-solid-router/type-aliases/PlayRouterProviderBaseProps.md +1 -1
  221. package/api/@xmachines/play-solid-router/type-aliases/SolidRouterHooks.md +4 -4
  222. package/api/@xmachines/play-solid-router/variables/PlayRouterProvider.md +1 -1
  223. package/api/@xmachines/play-svelte/README.md +11 -7
  224. package/api/@xmachines/play-svelte/functions/defineRegistry.md +1 -1
  225. package/api/@xmachines/play-svelte/functions/getActorContext.md +1 -1
  226. package/api/@xmachines/play-svelte/functions/getPlayViewContext.md +1 -1
  227. package/api/@xmachines/play-svelte/functions/setActorContext.md +1 -1
  228. package/api/@xmachines/play-svelte/interfaces/ActorProviderProps.md +8 -8
  229. package/api/@xmachines/play-svelte/interfaces/DefineRegistryOptions.md +4 -4
  230. package/api/@xmachines/play-svelte/interfaces/PlayUIProviderProps.md +11 -11
  231. package/api/@xmachines/play-svelte/interfaces/ViewContextValue.md +5 -5
  232. package/api/@xmachines/play-svelte/type-aliases/AnyPlayActor.md +1 -1
  233. package/api/@xmachines/play-svelte-spa-router/README.md +14 -14
  234. package/api/@xmachines/play-svelte-spa-router/classes/RouteMap.md +11 -11
  235. package/api/@xmachines/play-svelte-spa-router/classes/SvelteSpaRouterBridge.md +15 -15
  236. package/api/@xmachines/play-svelte-spa-router/functions/connectRouter.md +1 -1
  237. package/api/@xmachines/play-svelte-spa-router/interfaces/BasePathOptions.md +3 -7
  238. package/api/@xmachines/play-svelte-spa-router/interfaces/ConnectRouterOptions.md +11 -9
  239. package/api/@xmachines/play-svelte-spa-router/interfaces/PlayRouteEvent.md +7 -7
  240. package/api/@xmachines/play-svelte-spa-router/interfaces/RoutableActor.md +6 -6
  241. package/api/@xmachines/play-svelte-spa-router/interfaces/RouteMapOptions.md +10 -4
  242. package/api/@xmachines/play-svelte-spa-router/interfaces/RouteMapping.md +3 -3
  243. package/api/@xmachines/play-svelte-spa-router/interfaces/RouterBridge.md +15 -17
  244. package/api/@xmachines/play-svelte-spa-router/interfaces/RouterConnection.md +7 -7
  245. package/api/@xmachines/play-svelte-spa-router/interfaces/WindowLike.md +3 -3
  246. package/api/@xmachines/play-sveltekit-router/README.md +17 -17
  247. package/api/@xmachines/play-sveltekit-router/classes/RouteMap.md +11 -11
  248. package/api/@xmachines/play-sveltekit-router/classes/SvelteKitRouterBridge.md +15 -15
  249. package/api/@xmachines/play-sveltekit-router/functions/connectRouter.md +1 -1
  250. package/api/@xmachines/play-sveltekit-router/interfaces/BasePathOptions.md +3 -7
  251. package/api/@xmachines/play-sveltekit-router/interfaces/ConnectRouterOptions.md +15 -23
  252. package/api/@xmachines/play-sveltekit-router/interfaces/LocationLike.md +3 -3
  253. package/api/@xmachines/play-sveltekit-router/interfaces/PlayRouteEvent.md +7 -7
  254. package/api/@xmachines/play-sveltekit-router/interfaces/RoutableActor.md +6 -6
  255. package/api/@xmachines/play-sveltekit-router/interfaces/RouteMapOptions.md +10 -4
  256. package/api/@xmachines/play-sveltekit-router/interfaces/RouteMapping.md +3 -3
  257. package/api/@xmachines/play-sveltekit-router/interfaces/RouterBridge.md +15 -17
  258. package/api/@xmachines/play-sveltekit-router/interfaces/RouterConnection.md +7 -7
  259. package/api/@xmachines/play-tanstack-react-router/README.md +7 -7
  260. package/api/@xmachines/play-tanstack-react-router/classes/RouteMap.md +11 -11
  261. package/api/@xmachines/play-tanstack-react-router/classes/TanStackReactRouterBridge.md +11 -11
  262. package/api/@xmachines/play-tanstack-react-router/functions/createPlayRouterProvider.md +1 -1
  263. package/api/@xmachines/play-tanstack-react-router/functions/createRouteMapFromTree.md +5 -5
  264. package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouteEvent.md +7 -7
  265. package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouterProviderProps.md +11 -9
  266. package/api/@xmachines/play-tanstack-react-router/interfaces/RoutableActor.md +6 -6
  267. package/api/@xmachines/play-tanstack-react-router/interfaces/RouteMapOptions.md +10 -4
  268. package/api/@xmachines/play-tanstack-react-router/interfaces/RouteMapping.md +3 -3
  269. package/api/@xmachines/play-tanstack-react-router/interfaces/RouterBridge.md +15 -17
  270. package/api/@xmachines/play-tanstack-react-router/type-aliases/PlayRouterBridgeConstructor.md +14 -7
  271. package/api/@xmachines/play-tanstack-react-router/type-aliases/PlayRouterProviderBaseProps.md +1 -1
  272. package/api/@xmachines/play-tanstack-react-router/type-aliases/TanStackRouterInstance.md +1 -1
  273. package/api/@xmachines/play-tanstack-react-router/type-aliases/TanStackRouterLike.md +5 -5
  274. package/api/@xmachines/play-tanstack-react-router/variables/PlayRouterProvider.md +1 -1
  275. package/api/@xmachines/play-tanstack-router/README.md +1 -1
  276. package/api/@xmachines/play-tanstack-router/classes/TanStackRouterBridgeBase.md +16 -16
  277. package/api/@xmachines/play-tanstack-router/type-aliases/TanStackRouteMapLike.md +3 -3
  278. package/api/@xmachines/play-tanstack-router/type-aliases/TanStackRouterLike.md +5 -5
  279. package/api/@xmachines/play-tanstack-solid-router/README.md +7 -7
  280. package/api/@xmachines/play-tanstack-solid-router/classes/RouteMap.md +11 -11
  281. package/api/@xmachines/play-tanstack-solid-router/classes/TanStackSolidRouterBridge.md +11 -11
  282. package/api/@xmachines/play-tanstack-solid-router/functions/createPlayRouterProvider.md +1 -1
  283. package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayRouteEvent.md +7 -7
  284. package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayRouterProviderProps.md +11 -9
  285. package/api/@xmachines/play-tanstack-solid-router/interfaces/RoutableActor.md +6 -6
  286. package/api/@xmachines/play-tanstack-solid-router/interfaces/RouteMapOptions.md +10 -4
  287. package/api/@xmachines/play-tanstack-solid-router/interfaces/RouteMapping.md +3 -3
  288. package/api/@xmachines/play-tanstack-solid-router/interfaces/RouterBridge.md +15 -17
  289. package/api/@xmachines/play-tanstack-solid-router/type-aliases/PlayRouterBridgeConstructor.md +14 -7
  290. package/api/@xmachines/play-tanstack-solid-router/type-aliases/PlayRouterProviderBaseProps.md +1 -1
  291. package/api/@xmachines/play-tanstack-solid-router/type-aliases/TanStackRouterInstance.md +1 -1
  292. package/api/@xmachines/play-tanstack-solid-router/type-aliases/TanStackRouterLike.md +5 -5
  293. package/api/@xmachines/play-tanstack-solid-router/variables/PlayRouterProvider.md +1 -1
  294. package/api/@xmachines/play-url/README.md +21 -15
  295. package/api/@xmachines/play-url/errors/classes/InvalidBasePathError.md +5 -5
  296. package/api/@xmachines/play-url/errors/classes/InvalidRoutePatternError.md +5 -5
  297. package/api/@xmachines/play-url/errors/classes/MissingBasePathParamError.md +6 -6
  298. package/api/@xmachines/play-url/index/README.md +15 -8
  299. package/api/@xmachines/play-url/index/functions/buildPath.md +46 -0
  300. package/api/@xmachines/play-url/index/functions/cleanFrameworkParams.md +1 -1
  301. package/api/@xmachines/play-url/index/functions/createPatternCache.md +47 -0
  302. package/api/@xmachines/play-url/index/functions/getCandidates.md +1 -1
  303. package/api/@xmachines/play-url/index/functions/getCompiledPattern.md +8 -7
  304. package/api/@xmachines/play-url/index/functions/getIndexKey.md +1 -1
  305. package/api/@xmachines/play-url/index/functions/holdsUnsubstitutedParam.md +2 -2
  306. package/api/@xmachines/play-url/index/functions/isDotSegment.md +40 -0
  307. package/api/@xmachines/play-url/index/functions/joinBasePath.md +2 -1
  308. package/api/@xmachines/play-url/index/functions/normalizeBasePath.md +1 -1
  309. package/api/@xmachines/play-url/index/functions/parsePattern.md +6 -5
  310. package/api/@xmachines/play-url/index/functions/pickOwnParams.md +1 -1
  311. package/api/@xmachines/play-url/index/functions/resolveBasePath.md +1 -1
  312. package/api/@xmachines/play-url/index/functions/resolveFrameworkParams.md +5 -5
  313. package/api/@xmachines/play-url/index/functions/sanitizePathname.md +27 -0
  314. package/api/@xmachines/play-url/index/functions/splitLocation.md +37 -0
  315. package/api/@xmachines/play-url/index/functions/stripBasePath.md +1 -1
  316. package/api/@xmachines/play-url/index/interfaces/BasePathOptions.md +3 -3
  317. package/api/@xmachines/play-url/index/interfaces/CompileOptions.md +21 -0
  318. package/api/@xmachines/play-url/index/interfaces/FrameworkParamsSource.md +13 -8
  319. package/api/@xmachines/play-url/index/interfaces/GroupPart.md +6 -6
  320. package/api/@xmachines/play-url/index/interfaces/LiteralPart.md +5 -5
  321. package/api/@xmachines/play-url/index/interfaces/ParamPart.md +9 -9
  322. package/api/@xmachines/play-url/index/interfaces/ParseOptions.md +24 -0
  323. package/api/@xmachines/play-url/index/interfaces/ParsedPattern.md +14 -14
  324. package/api/@xmachines/play-url/index/interfaces/PatternCache.md +65 -0
  325. package/api/@xmachines/play-url/index/interfaces/PatternParam.md +6 -6
  326. package/api/@xmachines/play-url/index/interfaces/ResolvedBasePath.md +3 -3
  327. package/api/@xmachines/play-url/index/interfaces/SplitLocation.md +16 -0
  328. package/api/@xmachines/play-url/index/type-aliases/PathBuildResult.md +74 -0
  329. package/api/@xmachines/play-url/index/type-aliases/PathParams.md +15 -0
  330. package/api/@xmachines/play-url/index/type-aliases/PatternModifier.md +1 -1
  331. package/api/@xmachines/play-url/index/type-aliases/PatternPart.md +1 -1
  332. package/api/@xmachines/play-url/index/type-aliases/URLPatternCtor.md +1 -1
  333. package/api/@xmachines/play-url/index/type-aliases/URLPatternLike.md +3 -3
  334. package/api/@xmachines/play-url/index/variables/NO_BASE_PATH.md +1 -1
  335. package/api/@xmachines/play-url/index/variables/URLPattern.md +1 -1
  336. package/api/@xmachines/play-view/README.md +19 -8
  337. package/api/@xmachines/play-view/errors/classes/ReadOnlyContextError.md +5 -5
  338. package/api/@xmachines/play-view/index/functions/attachRenderErrorHandler.md +1 -1
  339. package/api/@xmachines/play-view/index/functions/composePlayState.md +1 -1
  340. package/api/@xmachines/play-view/index/functions/createFailureLatch.md +1 -1
  341. package/api/@xmachines/play-view/index/functions/createReportGuard.md +1 -1
  342. package/api/@xmachines/play-view/index/functions/createViewStoreLifecycle.md +1 -1
  343. package/api/@xmachines/play-view/index/functions/guardContextWrites.md +4 -28
  344. package/api/@xmachines/play-view/index/functions/refreshContextSubtree.md +1 -1
  345. package/api/@xmachines/play-view/index/functions/reuseComposedState.md +1 -1
  346. package/api/@xmachines/play-view/index/functions/sameViewInputs.md +1 -1
  347. package/api/@xmachines/play-view/index/functions/toAtomState.md +1 -1
  348. package/api/@xmachines/play-view/index/functions/typedSpec.md +1 -1
  349. package/api/@xmachines/play-view/index/interfaces/BaseActorProviderProps.md +5 -5
  350. package/api/@xmachines/play-view/index/interfaces/BaseViewContextValue.md +5 -5
  351. package/api/@xmachines/play-view/index/interfaces/FailureLatch.md +3 -3
  352. package/api/@xmachines/play-view/index/interfaces/PlaySpec.md +2 -2
  353. package/api/@xmachines/play-view/index/interfaces/ReportGuard.md +5 -5
  354. package/api/@xmachines/play-view/index/interfaces/ReportGuardMessages.md +3 -3
  355. package/api/@xmachines/play-view/index/interfaces/ResolveViewStoreOptions.md +2 -2
  356. package/api/@xmachines/play-view/index/interfaces/ViewInputs.md +4 -4
  357. package/api/@xmachines/play-view/index/interfaces/ViewStoreLifecycle.md +3 -3
  358. package/api/@xmachines/play-view/index/interfaces/ViewStoreResolution.md +4 -4
  359. package/api/@xmachines/play-view/index/interfaces/Viewable.md +5 -5
  360. package/api/@xmachines/play-view/index/type-aliases/ViewActor.md +1 -1
  361. package/api/@xmachines/play-view/index/variables/CONTEXT_STATE_KEY.md +1 -1
  362. package/api/@xmachines/play-vue/README.md +13 -9
  363. package/api/@xmachines/play-vue/functions/defineRegistry.md +1 -1
  364. package/api/@xmachines/play-vue/functions/useActor.md +1 -1
  365. package/api/@xmachines/play-vue/functions/usePlayView.md +1 -1
  366. package/api/@xmachines/play-vue/interfaces/ActorProviderProps.md +6 -6
  367. package/api/@xmachines/play-vue/interfaces/PlayUIProviderProps.md +9 -9
  368. package/api/@xmachines/play-vue/interfaces/ViewContextValue.md +5 -5
  369. package/api/@xmachines/play-vue/type-aliases/AnyPlayActor.md +1 -1
  370. package/api/@xmachines/play-vue/type-aliases/ComponentEntry.md +1 -1
  371. package/api/@xmachines/play-vue/type-aliases/ComponentsMap.md +1 -1
  372. package/api/@xmachines/play-vue/type-aliases/DefineRegistryOptions.md +2 -2
  373. package/api/@xmachines/play-vue/variables/PlayRenderer.md +1 -1
  374. package/api/@xmachines/play-vue-router/README.md +12 -11
  375. package/api/@xmachines/play-vue-router/errors/classes/VueRouterNavigationError.md +4 -4
  376. package/api/@xmachines/play-vue-router/errors/classes/VueRouterSendError.md +4 -4
  377. package/api/@xmachines/play-vue-router/index/classes/RouteMap.md +11 -11
  378. package/api/@xmachines/play-vue-router/index/classes/VueRouterBridge.md +15 -15
  379. package/api/@xmachines/play-vue-router/index/interfaces/PlayRouteEvent.md +7 -7
  380. package/api/@xmachines/play-vue-router/index/interfaces/RoutableActor.md +6 -6
  381. package/api/@xmachines/play-vue-router/index/interfaces/RouteMapOptions.md +10 -4
  382. package/api/@xmachines/play-vue-router/index/interfaces/RouteMapping.md +3 -3
  383. package/api/@xmachines/play-vue-router/index/interfaces/RouterBridge.md +15 -17
  384. package/api/@xmachines/play-vue-router/index/variables/PlayRouterProvider.md +23 -1
  385. package/api/@xmachines/play-xstate/README.md +61 -30
  386. package/api/@xmachines/play-xstate/errors/README.md +1 -0
  387. package/api/@xmachines/play-xstate/errors/classes/ActorThrewNonErrorError.md +4 -4
  388. package/api/@xmachines/play-xstate/errors/classes/InvalidEventError.md +5 -5
  389. package/api/@xmachines/play-xstate/errors/classes/InvalidMachineError.md +4 -4
  390. package/api/@xmachines/play-xstate/errors/classes/InvalidRouteHandlerError.md +5 -5
  391. package/api/@xmachines/play-xstate/errors/classes/InvalidRouteMetadataError.md +5 -5
  392. package/api/@xmachines/play-xstate/errors/classes/InvalidRouteParamError.md +207 -0
  393. package/api/@xmachines/play-xstate/errors/classes/MissingRouteParamError.md +6 -6
  394. package/api/@xmachines/play-xstate/errors/classes/MissingStateIdError.md +6 -6
  395. package/api/@xmachines/play-xstate/index/README.md +2 -2
  396. package/api/@xmachines/play-xstate/index/classes/PlayerActor.md +41 -42
  397. package/api/@xmachines/play-xstate/index/functions/compose.md +4 -4
  398. package/api/@xmachines/play-xstate/index/functions/definePlayer.md +2 -2
  399. package/api/@xmachines/play-xstate/index/interfaces/PlayerConfig.md +4 -4
  400. package/api/@xmachines/play-xstate/index/interfaces/PlayerFactoryResumeOptions.md +2 -2
  401. package/api/@xmachines/play-xstate/index/interfaces/PlayerOptions.md +9 -9
  402. package/api/@xmachines/play-xstate/index/type-aliases/Capability.md +1 -1
  403. package/api/@xmachines/play-xstate/index/type-aliases/PlayerConstructor.md +1 -1
  404. package/api/@xmachines/play-xstate/index/type-aliases/PlayerFactory.md +1 -1
  405. package/api/@xmachines/play-xstate/index/variables/DISPOSE.md +1 -1
  406. package/api/@xmachines/play-xstate/with-routing/functions/buildRouteUrl.md +13 -6
  407. package/api/@xmachines/play-xstate/with-routing/functions/deriveRoute.md +1 -1
  408. package/api/@xmachines/play-xstate/with-routing/functions/formatPlayRouteTransitions.md +1 -1
  409. package/api/@xmachines/play-xstate/with-routing/functions/isAbsoluteRoute.md +1 -1
  410. package/api/@xmachines/play-xstate/with-routing/functions/withRouting.md +1 -1
  411. package/api/@xmachines/play-xstate/with-routing/interfaces/RouteContext.md +5 -5
  412. package/api/@xmachines/play-xstate/with-routing/interfaces/RouteObject.md +5 -5
  413. package/api/@xmachines/play-xstate/with-routing/type-aliases/RouteData.md +1 -1
  414. package/api/@xmachines/play-xstate/with-routing/type-aliases/RouteDataResolver.md +1 -1
  415. package/api/@xmachines/play-xstate/with-routing/type-aliases/RouteMachineConfig.md +4 -4
  416. package/api/@xmachines/play-xstate/with-routing/type-aliases/RouteMetadata.md +1 -1
  417. package/api/@xmachines/play-xstate/with-routing/type-aliases/RouteStateNode.md +5 -5
  418. package/api/@xmachines/play-xstate/with-view/functions/withView.md +6 -5
  419. package/api/@xmachines/shared/vite-aliases/functions/xmAliases.md +1 -1
  420. package/api/@xmachines/shared/vite-aliases/functions/xmCacheDir.md +1 -1
  421. package/api/@xmachines/shared/vite-aliases/functions/xmOptimizeDeps.md +1 -1
  422. package/api/@xmachines/shared/vite-aliases/functions/xmResolve.md +1 -1
  423. package/api/@xmachines/shared/vite-aliases/functions/xmSvelteRunes.md +2 -2
  424. package/api/@xmachines/shared/vitest/functions/defineXmBrowserConfig.md +1 -1
  425. package/api/@xmachines/shared/vitest/functions/defineXmVitestConfig.md +1 -1
  426. package/api/@xmachines/shared/vitest/interfaces/XmBrowserConfigOptions.md +4 -4
  427. package/api/README.md +2 -1
  428. package/api/llms.txt +4 -3
  429. package/contributing/architecture.md +105 -124
  430. package/contributing/configuration.md +15 -15
  431. package/contributing/deployment.md +82 -6
  432. package/contributing/development.md +58 -30
  433. package/contributing/migrating-to-play-atom.md +209 -0
  434. package/contributing/testing.md +61 -64
  435. package/examples/README.md +3 -3
  436. package/examples/basic-state-machine.md +4 -4
  437. package/examples/form-validation.md +1 -1
  438. package/examples/multi-router-integration.md +23 -23
  439. package/examples/routing-patterns.md +5 -5
  440. package/examples/traffic-light.md +6 -6
  441. package/guides/README.md +1 -1
  442. package/guides/actor-model.md +26 -17
  443. package/guides/atoms.md +264 -0
  444. package/guides/getting-started.md +52 -17
  445. package/guides/inspector.md +3 -3
  446. package/guides/routing.md +67 -47
  447. package/guides/state-machines.md +4 -4
  448. package/package.json +3 -3
  449. package/rfc/play.md +83 -52
  450. package/api/@xmachines/play-react/functions/useSignalEffect.md +0 -77
  451. package/api/@xmachines/play-router/index/functions/getPatternParamNames.md +0 -29
  452. package/api/@xmachines/play-router/index/functions/getRequiredPatternParamNames.md +0 -39
  453. package/api/@xmachines/play-signals/README.md +0 -209
  454. package/api/@xmachines/play-signals/functions/watchSignal.md +0 -65
  455. package/api/@xmachines/play-signals/interfaces/ComputedOptions.md +0 -36
  456. package/api/@xmachines/play-signals/interfaces/SignalComputed.md +0 -49
  457. package/api/@xmachines/play-signals/interfaces/SignalOptions.md +0 -37
  458. package/api/@xmachines/play-signals/interfaces/SignalState.md +0 -68
  459. package/api/@xmachines/play-signals/interfaces/SignalWatcher.md +0 -97
  460. package/api/@xmachines/play-signals/namespaces/Signal/README.md +0 -22
  461. package/api/@xmachines/play-signals/namespaces/Signal/classes/Computed.md +0 -52
  462. package/api/@xmachines/play-signals/namespaces/Signal/classes/State.md +0 -72
  463. package/api/@xmachines/play-signals/namespaces/Signal/interfaces/Options.md +0 -19
  464. package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/README.md +0 -21
  465. package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/classes/Watcher.md +0 -85
  466. package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/currentComputed.md +0 -13
  467. package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/hasSinks.md +0 -19
  468. package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/hasSources.md +0 -19
  469. package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/introspectSinks.md +0 -19
  470. package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/introspectSources.md +0 -19
  471. package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/untrack.md +0 -25
  472. package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/variables/unwatched.md +0 -9
  473. package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/variables/watched.md +0 -9
  474. package/api/@xmachines/play-signals/namespaces/Signal/variables/isComputed.md +0 -19
  475. package/api/@xmachines/play-signals/namespaces/Signal/variables/isState.md +0 -19
  476. package/api/@xmachines/play-signals/namespaces/Signal/variables/isWatcher.md +0 -19
  477. package/api/@xmachines/play-signals/type-aliases/WatcherNotify.md +0 -33
  478. package/api/@xmachines/play-url/index/functions/getNormalizedParamNameMap.md +0 -32
  479. package/api/@xmachines/play-url/index/functions/getPatternParamNames.md +0 -29
  480. package/api/@xmachines/play-url/index/functions/getRequiredPatternParamNames.md +0 -39
  481. package/api/@xmachines/play-url/index/functions/isParameterizedPattern.md +0 -36
  482. package/api/@xmachines/play-url/index/functions/normalizeParamNames.md +0 -36
  483. package/guides/signals.md +0 -209
@@ -2,9 +2,9 @@
2
2
 
3
3
  # @xmachines/play-react
4
4
 
5
- React renderer for XMachines Play architecture with signal-driven rendering.
5
+ React renderer for XMachines Play architecture with atom-driven rendering.
6
6
 
7
- [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) [![Version](https://img.shields.io/badge/version-4.0.0-blue)](https://www.npmjs.com/package/@xmachines/play-react)
7
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) [![Version](https://img.shields.io/badge/version-5.0.0-blue)](https://www.npmjs.com/package/@xmachines/play-react)
8
8
 
9
9
  ## Installation
10
10
 
@@ -15,15 +15,20 @@ pnpm add @xmachines/play-react
15
15
  **Peer dependencies.** Install them separately:
16
16
 
17
17
  ```bash
18
- pnpm add react react-dom @xstate/store @xmachines/json-render-react @xmachines/json-render-core @xmachines/json-render-xstate
18
+ pnpm add react react-dom @xmachines/play @xmachines/play-atom @xstate/store @xmachines/json-render-react @xmachines/json-render-core @xmachines/json-render-xstate
19
19
  ```
20
20
 
21
21
  Supported versions:
22
22
 
23
23
  - `react` / `react-dom`: `^18.0.0 || ^19.0.0`
24
- - `@xstate/store`: `^3.17.0`
24
+ - [`@xmachines/play`](../play/README.md) and [`@xmachines/play-atom`](../play-atom/README.md): the version of this release
25
+ - `@xstate/store`: `^4.2.3`
25
26
  - `@xmachines/json-render-*`: `^0.20.0-xm.4`
26
27
 
28
+ `@xstate/store` is the peer of [`@xmachines/play-atom`](../play-atom/README.md), and not of this
29
+ package: this package reads the atom through [`@xmachines/play-atom`](../play-atom/README.md) and
30
+ imports the engine in no source file. Install ONE copy of it.
31
+
27
32
  ## Usage
28
33
 
29
34
  ### Standard usage — `PlayUIProvider` + `PlayRenderer`
@@ -51,7 +56,7 @@ const registryResult = defineRegistry(myCatalog, {
51
56
  },
52
57
  });
53
58
 
54
- // 3. Render — signals drive view transitions automatically
59
+ // 3. Render — atoms drive view transitions automatically
55
60
  function App() {
56
61
  return (
57
62
  <PlayUIProvider actor={actor} registryResult={registryResult}>
@@ -116,18 +121,23 @@ function SubmitButton() {
116
121
  }
117
122
  ```
118
123
 
119
- ### Subscribing to signals directly
124
+ ### Subscribing to atoms directly
120
125
 
121
126
  ```tsx
122
127
  import { useState } from "react";
123
- import { useSignalEffect } from "@xmachines/play-react";
128
+ import { useAtomEffect } from "@xmachines/play-react";
124
129
 
125
130
  function MyComponent({ actor }) {
126
131
  const [view, setView] = useState(null);
127
132
 
128
- useSignalEffect(() => {
129
- setView(actor.currentView.get());
130
- }, [actor]); // deps: re-subscribe when the actor prop swaps
133
+ // The first argument names every atom that runs the effect.
134
+ useAtomEffect(
135
+ [actor.currentView],
136
+ () => {
137
+ setView(actor.currentView.get());
138
+ },
139
+ [actor], // deps: re-subscribe when the actor prop swaps
140
+ );
131
141
 
132
142
  return <div>{view?.root}</div>;
133
143
  }
@@ -141,16 +151,16 @@ function MyComponent({ actor }) {
141
151
  | --------------------- | --------------------------------------------------------------------------------------------------------------------------------------- |
142
152
  | `<PlayUIProvider>` | Composite provider. It wraps `ActorProvider` and `JSONUIProvider`. Use it as the standard entry point. |
143
153
  | `<PlayRenderer>` | Zero-prop leaf component. Reads the current actor view from context and renders it. Must be inside `PlayUIProvider` or `ActorProvider`. |
144
- | `<ActorProvider>` | The low-level provider. It owns the actor bridge, the signal subscription, and the `StateStore` lifecycle of each view. |
154
+ | `<ActorProvider>` | The low-level provider. It owns the actor bridge, the atom subscription, and the `StateStore` lifecycle of each view. |
145
155
  | `<PlayErrorBoundary>` | The React class error boundary that catches a render error of a catalog component. |
146
156
 
147
157
  ### Hooks
148
158
 
149
- | Export | Description |
150
- | ---------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
151
- | `useSignalEffect(callback, deps?)` | Subscribes to the TC39 signal changes. It runs the callback again when a signal that the callback reads changes, and the callback triggers the re-render with its own setState. The optional `deps` array creates the subscription again, like `useEffect`. The hook removes the subscription on unmount. |
152
- | `useActor()` | Returns the raw actor instance. Must be called inside an `ActorProvider`/`PlayUIProvider` tree. |
153
- | `usePlayView()` | Returns `{ spec, handlers, registry, store }` for the current view. Must be called inside an `ActorProvider`/`PlayUIProvider` tree. |
159
+ | Export | Description |
160
+ | ----------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
161
+ | `useAtomEffect(sources, callback, deps?)` | Subscribes to the atoms of `sources`. It runs the callback again when one of them changes, and the callback triggers the re-render with its own setState. A read inside the callback tracks nothing, so name every dependency in `sources`. The optional `deps` array creates the subscription again, like `useEffect`. The hook removes the subscription on unmount. |
162
+ | `useActor()` | Returns the raw actor instance. Must be called inside an `ActorProvider`/`PlayUIProvider` tree. |
163
+ | `usePlayView()` | Returns `{ spec, handlers, registry, store }` for the current view. Must be called inside an `ActorProvider`/`PlayUIProvider` tree. |
154
164
 
155
165
  ### Types
156
166
 
@@ -183,7 +193,7 @@ import {
183
193
 
184
194
  ## Key Principle
185
195
 
186
- React state is **never** the place for the business logic. It only triggers the render cycle of React. The signals (`@xmachines/play-signals`) are the source of truth. `PlayUIProvider` observes the actor signals with `useSignalEffect`, and it renders again when the current view changes. It groups rapid signal updates into microtasks, so React does not render more often than necessary.
196
+ React state is **never** the place for the business logic. It only triggers the render cycle of React. The atoms ([`@xmachines/play-atom`](../play-atom/README.md)) are the source of truth. `PlayUIProvider` observes the actor atoms with `useAtomEffect`, and it renders again when the current view changes. It groups rapid atom updates into microtasks, so React does not render more often than necessary.
187
197
 
188
198
  ## License
189
199
 
@@ -192,13 +202,13 @@ MIT — see [LICENSE](./LICENSE).
192
202
  @xmachines/play-react - React renderer for the XMachines Play architecture
193
203
 
194
204
  This package is the React rendering layer, and it works through providers. It
195
- observes the actor signals and renders the UI components with
205
+ observes the actor atoms and renders the UI components with
196
206
  @xmachines/json-render-react. The architecture can therefore change the
197
- framework, because React is only a render target that subscribes to the signal
207
+ framework, because React is only a render target that subscribes to the atom
198
208
  changes.
199
209
 
200
210
  **Key principle:** React state is NEVER the place for the business logic. It only
201
- triggers the render cycle of React. The signals are the source of truth.
211
+ triggers the render cycle of React. The atoms are the source of truth.
202
212
 
203
213
  **Standard use:**
204
214
 
@@ -254,9 +264,9 @@ composition. Read its source for the reference bridge.
254
264
  - [Renderer](functions/Renderer.md)
255
265
  - [StateProvider](functions/StateProvider.md)
256
266
  - [useActor](functions/useActor.md)
267
+ - [useAtomEffect](functions/useAtomEffect.md)
257
268
  - [useBoundProp](functions/useBoundProp.md)
258
269
  - [useFieldValidation](functions/useFieldValidation.md)
259
270
  - [usePlayView](functions/usePlayView.md)
260
- - [useSignalEffect](functions/useSignalEffect.md)
261
271
  - [ValidationProvider](functions/ValidationProvider.md)
262
272
  - [VisibilityProvider](functions/VisibilityProvider.md)
@@ -2,7 +2,7 @@
2
2
 
3
3
  # Class: PlayErrorBoundary
4
4
 
5
- Defined in: [packages/play-react/src/PlayErrorBoundary.tsx:99](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v4.0.0/packages/play-react/src/PlayErrorBoundary.tsx#L99)
5
+ Defined in: [packages/play-react/src/PlayErrorBoundary.tsx:99](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.0/packages/play-react/src/PlayErrorBoundary.tsx#L99)
6
6
 
7
7
  The React class component that catches a render error of a catalog component.
8
8
 
@@ -37,7 +37,7 @@ CONS-14: the class component pattern works with every React version, 18 and 19.
37
37
  new PlayErrorBoundary(props): PlayErrorBoundary;
38
38
  ```
39
39
 
40
- Defined in: [packages/play-react/src/PlayErrorBoundary.tsx:103](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v4.0.0/packages/play-react/src/PlayErrorBoundary.tsx#L103)
40
+ Defined in: [packages/play-react/src/PlayErrorBoundary.tsx:103](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.0/packages/play-react/src/PlayErrorBoundary.tsx#L103)
41
41
 
42
42
  #### Parameters
43
43
 
@@ -76,7 +76,7 @@ React.Component<
76
76
  componentDidCatch(error, info): void;
77
77
  ```
78
78
 
79
- Defined in: [packages/play-react/src/PlayErrorBoundary.tsx:135](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v4.0.0/packages/play-react/src/PlayErrorBoundary.tsx#L135)
79
+ Defined in: [packages/play-react/src/PlayErrorBoundary.tsx:135](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.0/packages/play-react/src/PlayErrorBoundary.tsx#L135)
80
80
 
81
81
  Catches exceptions generated in descendant components. Unhandled exceptions will cause
82
82
  the entire component tree to unmount.
@@ -378,7 +378,7 @@ React.Component.getSnapshotBeforeUpdate;
378
378
  render(): ReactNode;
379
379
  ```
380
380
 
381
- Defined in: [packages/play-react/src/PlayErrorBoundary.tsx:139](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v4.0.0/packages/play-react/src/PlayErrorBoundary.tsx#L139)
381
+ Defined in: [packages/play-react/src/PlayErrorBoundary.tsx:139](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.0/packages/play-react/src/PlayErrorBoundary.tsx#L139)
382
382
 
383
383
  #### Returns
384
384
 
@@ -609,7 +609,7 @@ React.Component.UNSAFE_componentWillUpdate;
609
609
  static getDerivedStateFromError(error): Pick<PlayErrorBoundaryState, "hasError" | "error">;
610
610
  ```
611
611
 
612
- Defined in: [packages/play-react/src/PlayErrorBoundary.tsx:108](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v4.0.0/packages/play-react/src/PlayErrorBoundary.tsx#L108)
612
+ Defined in: [packages/play-react/src/PlayErrorBoundary.tsx:108](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.0/packages/play-react/src/PlayErrorBoundary.tsx#L108)
613
613
 
614
614
  #### Parameters
615
615
 
@@ -631,7 +631,7 @@ static getDerivedStateFromProps(props, state):
631
631
  | null;
632
632
  ```
633
633
 
634
- Defined in: [packages/play-react/src/PlayErrorBoundary.tsx:126](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v4.0.0/packages/play-react/src/PlayErrorBoundary.tsx#L126)
634
+ Defined in: [packages/play-react/src/PlayErrorBoundary.tsx:126](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.0/packages/play-react/src/PlayErrorBoundary.tsx#L126)
635
635
 
636
636
  Clears the error state after a change of `resetKey`.
637
637
 
@@ -6,7 +6,7 @@
6
6
  function useActor(): AnyPlayActor;
7
7
  ```
8
8
 
9
- Defined in: [packages/play-react/src/useActor.ts:41](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v4.0.0/packages/play-react/src/useActor.ts#L41)
9
+ Defined in: [packages/play-react/src/useActor.ts:41](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.0/packages/play-react/src/useActor.ts#L41)
10
10
 
11
11
  ## Returns
12
12
 
@@ -0,0 +1,103 @@
1
+ [API](../../../README.md) / [@xmachines/play-react](../README.md) / useAtomEffect
2
+
3
+ # Function: useAtomEffect()
4
+
5
+ ```ts
6
+ function useAtomEffect(sources, callback, deps?): void;
7
+ ```
8
+
9
+ Defined in: [packages/play-react/src/useAtomEffect.ts:105](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.0/packages/play-react/src/useAtomEffect.ts#L105)
10
+
11
+ The React hook that subscribes to the named atoms and runs an effect callback
12
+
13
+ The hook puts the SOURCES in a computed atom, and it gives the subscription lifecycle
14
+ to `watchAtom` from `@xmachines/play-atom`. That function owns the coalescing and the
15
+ disposal. It is the one canonical implementation, and every framework renderer uses
16
+ it.
17
+
18
+ Architecture:
19
+
20
+ - The `sources` array names every atom that runs the effect
21
+ - The callback runs OUTSIDE the tracking scope, so a read inside it adds no dependency
22
+ - watchAtom owns the subscription lifecycle
23
+ - The callback triggers each new render with its own setState (see the remarks)
24
+ - The hook cleans up on unmount, so that nothing stays in memory
25
+
26
+ Invariant: Atom-Only Reactivity. The hook watches each atom of `sources`.
27
+ Invariant: Passive Infrastructure. React observes the atoms, and it does not control them.
28
+
29
+ ## Parameters
30
+
31
+ | Parameter | Type | Default value | Description |
32
+ | ---------- | ---------------------------------------------------------------------------- | ------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
33
+ | `sources` | readonly [`Readable`](../../play-atom/interfaces/Readable.md)\<`unknown`\>[] | `undefined` | The atoms that run the effect. The list names every dependency, and the reads of the callback name none: a callback that reads a view store therefore depends on that store not, and a write of the store runs the effect never. |
34
+ | `callback` | () => `void` \| (() => `void`) | `undefined` | The effect function. It can return a cleanup function. It runs one time on the mount, and one time for each write of a source. |
35
+ | `deps` | `DependencyList` | `[]` | The optional dependency list, as in useEffect. On a change of one dependency, the hook removes the watcher and the computed atom, then makes them again and reads the sources from the start. The default is `[]`, which subscribes one time for each mount. Give this list when the identity of the object whose atoms you read can change during the life of the component, for example an `actor` prop. Without the list, the watcher tracks the atoms of the OLD object for ever. |
36
+
37
+ ## Returns
38
+
39
+ `void`
40
+
41
+ ## Example
42
+
43
+ ```typescript
44
+ const MyComponent = ({ actor }) => {
45
+ const [view, setView] = useState(null);
46
+
47
+ // Subscribe to the actor.currentView atom, and subscribe again on a new actor
48
+ useAtomEffect(
49
+ [actor.currentView],
50
+ () => {
51
+ const currentView = actor.currentView.get();
52
+ setView(currentView);
53
+ },
54
+ [actor],
55
+ );
56
+
57
+ return <div>{view?.root}</div>;
58
+ };
59
+ ```
60
+
61
+ ## Remarks
62
+
63
+ **CRITICAL:** name every atom that must run the effect in `sources`. A read inside
64
+ the callback tracks nothing, so an atom that the list leaves out runs the effect
65
+ never.
66
+
67
+ **How often the callback runs:** one time for each MICROTASK, and not one time for
68
+ each write. `watchAtom` owns that rule: it keeps the synchronous notification of
69
+ `@xstate/store` and it defers the callback, so one batch of synchronous writes reaches
70
+ the callback one time, with the last value. Three writes in one tick therefore run the
71
+ callback ONE time.
72
+
73
+ The DERIVATION is the part that runs for each write: `@xstate/store` evaluates a
74
+ computed atom synchronously inside the `set` of a dependency, and that evaluation IS
75
+ the dependency tracking. Keep each source atom cheap to derive.
76
+
77
+ **Re-rendering:** the hook itself does NOT force a React render on an atom
78
+ change. The callback triggers each new render, because it calls setState with the
79
+ new atom value, as in the example above. The setState bailout of React can skip a
80
+ render when the derived value is the same.
81
+
82
+ **A callback that throws:** the FIRST run happens while the hook mounts, so a throw
83
+ there reaches the caller and React reports it. A later run happens in the microtask of
84
+ `watchAtom`, and a throw there reaches no caller. The hook catches it and throws it
85
+ again from a microtask of its own, which reaches the global handler of the runtime.
86
+
87
+ **A SOURCE that throws:** a source derives its value inside the `set` of the atom that
88
+ it reads, and `@xstate/store` evaluates it there for every watcher. A throw from that
89
+ derivation therefore leaves the `set` of the WRITER: the write fails, and every other
90
+ observer of that write is skipped. The hook can catch none of it, because the engine
91
+ runs the derivation before it reaches this hook — a watched computed atom that throws
92
+ does the same with no hook anywhere.
93
+
94
+ Therefore a source derivation must return a value and throw nothing. `currentView` and
95
+ `currentRoute` of `@xmachines/play-xstate` follow that rule: each one catches its own
96
+ failure, reports it through `onError` of the actor from a microtask, and keeps the last
97
+ value. Write a source of your own the same way.
98
+
99
+ **Implementation note:** the hook puts the SOURCES in a computed atom, because a
100
+ subscription needs one atom to watch. That computed atom reads each source and holds
101
+ the dependency edges, `watchAtom` owns the subscription that keeps it live, and the
102
+ callback runs from the observer, which `@xstate/store` calls with no active
103
+ subscriber.
@@ -6,7 +6,7 @@
6
6
  function usePlayView(): ViewContextValue;
7
7
  ```
8
8
 
9
- Defined in: [packages/play-react/src/ActorProvider.tsx:150](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v4.0.0/packages/play-react/src/ActorProvider.tsx#L150)
9
+ Defined in: [packages/play-react/src/ActorProvider.tsx:150](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.0/packages/play-react/src/ActorProvider.tsx#L150)
10
10
 
11
11
  The hook that gives the current view spec, the handlers, and the registry.
12
12
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  # Interface: ActorProviderProps
4
4
 
5
- Defined in: [packages/play-react/src/ActorProvider.tsx:59](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v4.0.0/packages/play-react/src/ActorProvider.tsx#L59)
5
+ Defined in: [packages/play-react/src/ActorProvider.tsx:59](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.0/packages/play-react/src/ActorProvider.tsx#L59)
6
6
 
7
7
  The props of the ActorProvider component.
8
8
 
@@ -18,10 +18,10 @@ The props of the ActorProvider component.
18
18
 
19
19
  | Property | Type | Description | Inherited from | Defined in |
20
20
  | ----------------------------------------------------- | -------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ |
21
- | <a id="property-actor"></a> `actor` | [`ViewActor`](../../play-view/index/type-aliases/ViewActor.md) | The actor instance with the currentView signal. It requires the Viewable capability. | [`BaseActorProviderProps`](../../play-view/index/interfaces/BaseActorProviderProps.md).[`actor`](../../play-view/index/interfaces/BaseActorProviderProps.md#property-actor) | [packages/play-view/src/view-types.ts:169](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v4.0.0/packages/play-view/src/view-types.ts#L169) |
22
- | <a id="property-children"></a> `children` | `ReactNode` | The child components to render inside the provider tree | - | [packages/play-react/src/ActorProvider.tsx:98](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v4.0.0/packages/play-react/src/ActorProvider.tsx#L98) |
23
- | <a id="property-fallback"></a> `fallback?` | `ReactNode` | The component to show when currentView is null, or when a catalog component throws. This prop is optional | - | [packages/play-react/src/ActorProvider.tsx:61](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v4.0.0/packages/play-react/src/ActorProvider.tsx#L61) |
24
- | <a id="property-onerror"></a> `onError?` | (`error`, `info`, `reset`) => `void` | The optional error handler. The provider calls it when a descendant throws during a render. While the error is active, the provider renders the `fallback` instead of its children. The provider clears the error on the next view emission (when `currentView` changes), so a view transition retries the render. Element-level catalog component throws are caught upstream by the per-element boundary of @json-render, and reported through `onRenderError`. This boundary is the outer net for everything else. The THIRD parameter is the reset, for a retry that the host starts — a "Retry" button of its own. It sits after `info`, and not in the second place that the four other renderers use, because `React.ErrorInfo` holds that place already and a move would break every handler that reads `info.componentStack`. The reset clears the contained error and renders again. It renders the view that the actor holds at the MOMENT OF THE CALL, so a host that keeps the callback cannot rewind the screen to the view that failed. A reset that the host calls from inside this handler does nothing, because no input changed between the two attempts, and a reset after the provider is unmounted does nothing. The five renderers hold the same three rules. **A handler that THROWS reaches no caller.** The provider contains that throw, and it writes the throw to `console.error`. This handler runs inside `componentDidCatch`, so a throw that left it would reach the boundary ABOVE this provider, and React can then unmount the complete root — which is the failure that this boundary contained. Report a failure from this handler. To ESCALATE one, raise it from a task of your own — `queueMicrotask(() => { throw error; })` — which reaches the global handler of the page and leaves the containment whole. The five renderers hold this one rule. | - | [packages/play-react/src/ActorProvider.tsx:96](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v4.0.0/packages/play-react/src/ActorProvider.tsx#L96) |
25
- | <a id="property-onrendererror"></a> `onRenderError?` | [`RenderErrorHandler`](../type-aliases/RenderErrorHandler.md) | The provider calls it when one catalog component throws during a render. This handler replaces every onRenderError of defineRegistry. | [`BaseActorProviderProps`](../../play-view/index/interfaces/BaseActorProviderProps.md).[`onRenderError`](../../play-view/index/interfaces/BaseActorProviderProps.md#property-onrendererror) | [packages/play-view/src/view-types.ts:183](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v4.0.0/packages/play-view/src/view-types.ts#L183) |
26
- | <a id="property-registryresult"></a> `registryResult` | `DefineRegistryResult` | The complete result of defineRegistry(). It holds the component registry and the factory of the action handlers. | [`BaseActorProviderProps`](../../play-view/index/interfaces/BaseActorProviderProps.md).[`registryResult`](../../play-view/index/interfaces/BaseActorProviderProps.md#property-registryresult) | [packages/play-view/src/view-types.ts:171](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v4.0.0/packages/play-view/src/view-types.ts#L171) |
27
- | <a id="property-store"></a> `store?` | `StateStore` | The optional external StateStore, which is the controlled mode. With this option, the provider ignores spec.state, and this store is the single source of truth. Without it, the provider makes a new @xstate/store atom for each view transition, with the values of spec.state. | [`BaseActorProviderProps`](../../play-view/index/interfaces/BaseActorProviderProps.md).[`store`](../../play-view/index/interfaces/BaseActorProviderProps.md#property-store) | [packages/play-view/src/view-types.ts:178](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v4.0.0/packages/play-view/src/view-types.ts#L178) |
21
+ | <a id="property-actor"></a> `actor` | [`ViewActor`](../../play-view/index/type-aliases/ViewActor.md) | The actor instance with the currentView atom. It requires the Viewable capability. | [`BaseActorProviderProps`](../../play-view/index/interfaces/BaseActorProviderProps.md).[`actor`](../../play-view/index/interfaces/BaseActorProviderProps.md#property-actor) | [packages/play-view/src/view-types.ts:169](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.0/packages/play-view/src/view-types.ts#L169) |
22
+ | <a id="property-children"></a> `children` | `ReactNode` | The child components to render inside the provider tree | - | [packages/play-react/src/ActorProvider.tsx:98](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.0/packages/play-react/src/ActorProvider.tsx#L98) |
23
+ | <a id="property-fallback"></a> `fallback?` | `ReactNode` | The component to show when currentView is null, or when a catalog component throws. This prop is optional | - | [packages/play-react/src/ActorProvider.tsx:61](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.0/packages/play-react/src/ActorProvider.tsx#L61) |
24
+ | <a id="property-onerror"></a> `onError?` | (`error`, `info`, `reset`) => `void` | The optional error handler. The provider calls it when a descendant throws during a render. While the error is active, the provider renders the `fallback` instead of its children. The provider clears the error on the next view emission (when `currentView` changes), so a view transition retries the render. Element-level catalog component throws are caught upstream by the per-element boundary of @json-render, and reported through `onRenderError`. This boundary is the outer net for everything else. The THIRD parameter is the reset, for a retry that the host starts — a "Retry" button of its own. It sits after `info`, and not in the second place that the four other renderers use, because `React.ErrorInfo` holds that place already and a move would break every handler that reads `info.componentStack`. The reset clears the contained error and renders again. It renders the view that the actor holds at the MOMENT OF THE CALL, so a host that keeps the callback cannot rewind the screen to the view that failed. A reset that the host calls from inside this handler does nothing, because no input changed between the two attempts, and a reset after the provider is unmounted does nothing. The five renderers hold the same three rules. **A handler that THROWS reaches no caller.** The provider contains that throw, and it writes the throw to `console.error`. This handler runs inside `componentDidCatch`, so a throw that left it would reach the boundary ABOVE this provider, and React can then unmount the complete root — which is the failure that this boundary contained. Report a failure from this handler. To ESCALATE one, raise it from a task of your own — `queueMicrotask(() => { throw error; })` — which reaches the global handler of the page and leaves the containment whole. The five renderers hold this one rule. | - | [packages/play-react/src/ActorProvider.tsx:96](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.0/packages/play-react/src/ActorProvider.tsx#L96) |
25
+ | <a id="property-onrendererror"></a> `onRenderError?` | [`RenderErrorHandler`](../type-aliases/RenderErrorHandler.md) | The provider calls it when one catalog component throws during a render. This handler replaces every onRenderError of defineRegistry. | [`BaseActorProviderProps`](../../play-view/index/interfaces/BaseActorProviderProps.md).[`onRenderError`](../../play-view/index/interfaces/BaseActorProviderProps.md#property-onrendererror) | [packages/play-view/src/view-types.ts:183](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.0/packages/play-view/src/view-types.ts#L183) |
26
+ | <a id="property-registryresult"></a> `registryResult` | `DefineRegistryResult` | The complete result of defineRegistry(). It holds the component registry and the factory of the action handlers. | [`BaseActorProviderProps`](../../play-view/index/interfaces/BaseActorProviderProps.md).[`registryResult`](../../play-view/index/interfaces/BaseActorProviderProps.md#property-registryresult) | [packages/play-view/src/view-types.ts:171](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.0/packages/play-view/src/view-types.ts#L171) |
27
+ | <a id="property-store"></a> `store?` | `StateStore` | The optional external StateStore, which is the controlled mode. With this option, the provider ignores spec.state, and this store is the single source of truth. Without it, the provider makes a new @xstate/store atom for each view transition, with the values of spec.state. | [`BaseActorProviderProps`](../../play-view/index/interfaces/BaseActorProviderProps.md).[`store`](../../play-view/index/interfaces/BaseActorProviderProps.md#property-store) | [packages/play-view/src/view-types.ts:178](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.0/packages/play-view/src/view-types.ts#L178) |
@@ -2,7 +2,7 @@
2
2
 
3
3
  # Interface: PlayErrorBoundaryProps
4
4
 
5
- Defined in: [packages/play-react/src/PlayErrorBoundary.tsx:14](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v4.0.0/packages/play-react/src/PlayErrorBoundary.tsx#L14)
5
+ Defined in: [packages/play-react/src/PlayErrorBoundary.tsx:14](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.0/packages/play-react/src/PlayErrorBoundary.tsx#L14)
6
6
 
7
7
  The props of PlayErrorBoundary
8
8
 
@@ -10,8 +10,8 @@ The props of PlayErrorBoundary
10
10
 
11
11
  | Property | Type | Description | Defined in |
12
12
  | ------------------------------------------------------ | --------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- |
13
- | <a id="property-children"></a> `children` | `ReactNode` | The child components to render | [packages/play-react/src/PlayErrorBoundary.tsx:18](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v4.0.0/packages/play-react/src/PlayErrorBoundary.tsx#L18) |
14
- | <a id="property-fallback"></a> `fallback?` | `ReactNode` | The fallback UI to render when a child component throws. The default is null. | [packages/play-react/src/PlayErrorBoundary.tsx:16](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v4.0.0/packages/play-react/src/PlayErrorBoundary.tsx#L16) |
15
- | <a id="property-onerror"></a> `onError?` | (`error`, `info`) => `void` | The optional error handler. It sends each error to an observability tool, such as Sentry | [packages/play-react/src/PlayErrorBoundary.tsx:20](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v4.0.0/packages/play-react/src/PlayErrorBoundary.tsx#L20) |
16
- | <a id="property-resetkey"></a> `resetKey?` | `unknown` | The reset key. The boundary clears its error state when this value changes, and it renders the children again. ActorProvider gives it the current view. A view transition therefore retries the render. Without the key the boundary holds the fallback for the complete life of the provider: the user sends a recovery event, the actor moves to a healthy view, and the screen keeps the fallback. **The boundary compares the value by IDENTITY (`Object.is`) by default.** Give a stable reference. An inline object literal — `resetKey={{ view }}` — is a new value on every render, so the boundary clears its caught error before each one, renders the children that threw, catches again, and calls `onError` again. Hold the value where it survives a render, and build a new one only when an input moves. [PlayErrorBoundaryProps.resetKeyEquals](#property-resetkeyequals) takes the identity rule away, and a caller that gives one needs no stable reference at all. | [packages/play-react/src/PlayErrorBoundary.tsx:39](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v4.0.0/packages/play-react/src/PlayErrorBoundary.tsx#L39) |
17
- | <a id="property-resetkeyequals"></a> `resetKeyEquals?` | (`previous`, `next`) => `boolean` | The comparison of two reset keys. The default is `Object.is`. The boundary clears its error where this function answers `false`. A caller that builds a key of several inputs therefore compares those INPUTS, and it owes the boundary no stable reference for the key that carries them. That is what `ActorProvider` gives. A key of the three view inputs and the retry nonce holds no identity of its own across renders — React makes no promise to keep a `useMemo`, and a ref that the render writes survives a render that React throws away, which the documentation of React forbids for that reason. With a comparison of the fields, a key that carries the same inputs is the same key, whichever render built it. The state of this class is the key of the last COMMIT: React commits the state of a class with the commit, so a render that React discards writes none. The comparison therefore reads the committed key on one side every time. | [packages/play-react/src/PlayErrorBoundary.tsx:63](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v4.0.0/packages/play-react/src/PlayErrorBoundary.tsx#L63) |
13
+ | <a id="property-children"></a> `children` | `ReactNode` | The child components to render | [packages/play-react/src/PlayErrorBoundary.tsx:18](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.0/packages/play-react/src/PlayErrorBoundary.tsx#L18) |
14
+ | <a id="property-fallback"></a> `fallback?` | `ReactNode` | The fallback UI to render when a child component throws. The default is null. | [packages/play-react/src/PlayErrorBoundary.tsx:16](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.0/packages/play-react/src/PlayErrorBoundary.tsx#L16) |
15
+ | <a id="property-onerror"></a> `onError?` | (`error`, `info`) => `void` | The optional error handler. It sends each error to an observability tool, such as Sentry | [packages/play-react/src/PlayErrorBoundary.tsx:20](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.0/packages/play-react/src/PlayErrorBoundary.tsx#L20) |
16
+ | <a id="property-resetkey"></a> `resetKey?` | `unknown` | The reset key. The boundary clears its error state when this value changes, and it renders the children again. ActorProvider gives it the current view. A view transition therefore retries the render. Without the key the boundary holds the fallback for the complete life of the provider: the user sends a recovery event, the actor moves to a healthy view, and the screen keeps the fallback. **The boundary compares the value by IDENTITY (`Object.is`) by default.** Give a stable reference. An inline object literal — `resetKey={{ view }}` — is a new value on every render, so the boundary clears its caught error before each one, renders the children that threw, catches again, and calls `onError` again. Hold the value where it survives a render, and build a new one only when an input moves. [PlayErrorBoundaryProps.resetKeyEquals](#property-resetkeyequals) takes the identity rule away, and a caller that gives one needs no stable reference at all. | [packages/play-react/src/PlayErrorBoundary.tsx:39](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.0/packages/play-react/src/PlayErrorBoundary.tsx#L39) |
17
+ | <a id="property-resetkeyequals"></a> `resetKeyEquals?` | (`previous`, `next`) => `boolean` | The comparison of two reset keys. The default is `Object.is`. The boundary clears its error where this function answers `false`. A caller that builds a key of several inputs therefore compares those INPUTS, and it owes the boundary no stable reference for the key that carries them. That is what `ActorProvider` gives. A key of the three view inputs and the retry nonce holds no identity of its own across renders — React makes no promise to keep a `useMemo`, and a ref that the render writes survives a render that React throws away, which the documentation of React forbids for that reason. With a comparison of the fields, a key that carries the same inputs is the same key, whichever render built it. The state of this class is the key of the last COMMIT: React commits the state of a class with the commit, so a render that React discards writes none. The comparison therefore reads the committed key on one side every time. | [packages/play-react/src/PlayErrorBoundary.tsx:63](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.0/packages/play-react/src/PlayErrorBoundary.tsx#L63) |
@@ -2,7 +2,7 @@
2
2
 
3
3
  # Interface: PlayErrorBoundaryState
4
4
 
5
- Defined in: [packages/play-react/src/PlayErrorBoundary.tsx:71](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v4.0.0/packages/play-react/src/PlayErrorBoundary.tsx#L71)
5
+ Defined in: [packages/play-react/src/PlayErrorBoundary.tsx:71](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.0/packages/play-react/src/PlayErrorBoundary.tsx#L71)
6
6
 
7
7
  The internal state shape of PlayErrorBoundary
8
8
 
@@ -10,6 +10,6 @@ The internal state shape of PlayErrorBoundary
10
10
 
11
11
  | Property | Type | Description | Defined in |
12
12
  | ----------------------------------------- | ----------------- | ------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- |
13
- | <a id="property-error"></a> `error` | `Error` \| `null` | - | [packages/play-react/src/PlayErrorBoundary.tsx:73](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v4.0.0/packages/play-react/src/PlayErrorBoundary.tsx#L73) |
14
- | <a id="property-haserror"></a> `hasError` | `boolean` | - | [packages/play-react/src/PlayErrorBoundary.tsx:72](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v4.0.0/packages/play-react/src/PlayErrorBoundary.tsx#L72) |
15
- | <a id="property-resetkey"></a> `resetKey` | `unknown` | The resetKey of the last render. A different prop clears the error state. | [packages/play-react/src/PlayErrorBoundary.tsx:75](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v4.0.0/packages/play-react/src/PlayErrorBoundary.tsx#L75) |
13
+ | <a id="property-error"></a> `error` | `Error` \| `null` | - | [packages/play-react/src/PlayErrorBoundary.tsx:73](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.0/packages/play-react/src/PlayErrorBoundary.tsx#L73) |
14
+ | <a id="property-haserror"></a> `hasError` | `boolean` | - | [packages/play-react/src/PlayErrorBoundary.tsx:72](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.0/packages/play-react/src/PlayErrorBoundary.tsx#L72) |
15
+ | <a id="property-resetkey"></a> `resetKey` | `unknown` | The resetKey of the last render. A different prop clears the error state. | [packages/play-react/src/PlayErrorBoundary.tsx:75](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.0/packages/play-react/src/PlayErrorBoundary.tsx#L75) |