@xmachines/docs 3.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 (567) hide show
  1. package/README.md +14 -20
  2. package/api/@xmachines/play/README.md +29 -118
  3. package/api/@xmachines/play/errors/README.md +8 -0
  4. package/api/@xmachines/play/{classes → errors/classes}/NonNullableError.md +6 -6
  5. package/api/@xmachines/play/{classes → errors/classes}/PlayError.md +36 -10
  6. package/api/@xmachines/play/index/README.md +75 -0
  7. package/api/@xmachines/play/index/functions/asCleanup.md +77 -0
  8. package/api/@xmachines/play/{functions → index/functions}/assertNonNullable.md +2 -2
  9. package/api/@xmachines/{play-actor → play/index}/functions/shallowEqualExcept.md +3 -3
  10. package/api/@xmachines/play/{type-aliases → index/type-aliases}/Cleanup.md +5 -5
  11. package/api/@xmachines/play/{type-aliases → index/type-aliases}/DisposeKey.md +2 -2
  12. package/api/@xmachines/play/{type-aliases → index/type-aliases}/PlayEvent.md +4 -4
  13. package/api/@xmachines/play/{variables → index/variables}/DISPOSE.md +2 -2
  14. package/api/@xmachines/play-actor/README.md +80 -231
  15. package/api/@xmachines/play-actor/interfaces/ActorEvent.md +18 -0
  16. package/api/@xmachines/play-actor/interfaces/PlayActor.md +73 -0
  17. package/api/@xmachines/play-atom/README.md +281 -0
  18. package/api/@xmachines/play-atom/functions/watchAtom.md +79 -0
  19. package/api/@xmachines/play-atom/interfaces/AsyncAtomOptions.md +16 -0
  20. package/api/@xmachines/play-atom/interfaces/Atom.md +149 -0
  21. package/api/@xmachines/play-atom/interfaces/AtomObserver.md +25 -0
  22. package/api/@xmachines/play-atom/interfaces/AtomOptions.md +33 -0
  23. package/api/@xmachines/play-atom/interfaces/AtomSubscription.md +23 -0
  24. package/api/@xmachines/play-atom/interfaces/BaseAtom.md +97 -0
  25. package/api/@xmachines/play-atom/interfaces/CreateAtom.md +91 -0
  26. package/api/@xmachines/play-atom/interfaces/Readable.md +93 -0
  27. package/api/@xmachines/play-atom/interfaces/ReadonlyAtom.md +108 -0
  28. package/api/@xmachines/play-atom/type-aliases/AnyAtom.md +13 -0
  29. package/api/@xmachines/play-atom/type-aliases/AsyncAtomState.md +32 -0
  30. package/api/@xmachines/{play-signals → play-atom}/type-aliases/Cleanup.md +5 -5
  31. package/api/@xmachines/play-atom/variables/createAsyncAtom.md +42 -0
  32. package/api/@xmachines/play-atom/variables/createAtom.md +18 -0
  33. package/api/@xmachines/play-atom/variables/createWritableAtom.md +70 -0
  34. package/api/@xmachines/play-dom/README.md +44 -52
  35. package/api/@xmachines/play-dom/classes/PlayRenderer.md +17 -16
  36. package/api/@xmachines/play-dom/functions/asCleanup.md +77 -0
  37. package/api/@xmachines/play-dom/functions/createPlayUI.md +4 -4
  38. package/api/@xmachines/play-dom/functions/createRenderer.md +1 -1
  39. package/api/@xmachines/play-dom/interfaces/CreatePlayUIOptions.md +3 -3
  40. package/api/@xmachines/play-dom/interfaces/MountOptions.md +3 -3
  41. package/api/@xmachines/play-dom/interfaces/PlayDomOptions.md +6 -6
  42. package/api/@xmachines/play-dom/type-aliases/Cleanup.md +4 -4
  43. package/api/@xmachines/play-dom/type-aliases/MountFn.md +29 -12
  44. package/api/@xmachines/play-dom-router/README.md +83 -83
  45. package/api/@xmachines/play-dom-router/classes/DomRouterBridge.md +24 -23
  46. package/api/@xmachines/play-dom-router/{interfaces → classes}/RouteMap.md +42 -7
  47. package/api/@xmachines/{play → play-dom-router}/functions/asCleanup.md +5 -6
  48. package/api/@xmachines/play-dom-router/functions/connectRouter.md +3 -8
  49. package/api/@xmachines/play-dom-router/functions/createBrowserHistory.md +9 -3
  50. package/api/@xmachines/play-dom-router/functions/createRouter.md +8 -14
  51. package/api/@xmachines/play-dom-router/interfaces/BasePathOptions.md +5 -9
  52. package/api/@xmachines/play-dom-router/interfaces/BrowserHistory.md +70 -26
  53. package/api/@xmachines/play-dom-router/interfaces/BrowserWindow.md +14 -14
  54. package/api/@xmachines/play-dom-router/interfaces/ConnectRouterOptions.md +11 -9
  55. package/api/@xmachines/play-dom-router/interfaces/PlayRouteEvent.md +9 -14
  56. package/api/@xmachines/play-dom-router/interfaces/RoutableActor.md +24 -21
  57. package/api/@xmachines/play-dom-router/interfaces/RouteLookupContract.md +3 -3
  58. package/api/@xmachines/play-dom-router/interfaces/RouteMapOptions.md +10 -4
  59. package/api/@xmachines/play-dom-router/interfaces/RouteMapping.md +3 -3
  60. package/api/@xmachines/play-dom-router/interfaces/RouterBridge.md +15 -17
  61. package/api/@xmachines/play-dom-router/interfaces/RouterConnection.md +8 -8
  62. package/api/@xmachines/play-dom-router/interfaces/VanillaRouter.md +36 -23
  63. package/api/@xmachines/play-dom-router/type-aliases/Cleanup.md +4 -4
  64. package/api/@xmachines/play-dom-router/variables/DISPOSE.md +2 -2
  65. package/api/@xmachines/play-pattern/README.md +115 -0
  66. package/api/@xmachines/play-pattern/functions/buildPath.md +46 -0
  67. package/api/@xmachines/play-pattern/functions/createPatternCache.md +47 -0
  68. package/api/@xmachines/play-pattern/functions/getIndexKey.md +30 -0
  69. package/api/@xmachines/play-pattern/functions/isDotSegment.md +40 -0
  70. package/api/@xmachines/play-pattern/functions/parsePattern.md +28 -0
  71. package/api/@xmachines/play-pattern/interfaces/GroupPart.md +15 -0
  72. package/api/@xmachines/play-pattern/interfaces/LiteralPart.md +14 -0
  73. package/api/@xmachines/play-pattern/interfaces/ParamPart.md +21 -0
  74. package/api/@xmachines/play-pattern/interfaces/ParseOptions.md +19 -0
  75. package/api/@xmachines/play-pattern/interfaces/ParsedPattern.md +23 -0
  76. package/api/@xmachines/play-pattern/interfaces/PatternCache.md +65 -0
  77. package/api/@xmachines/play-pattern/interfaces/PatternParam.md +15 -0
  78. package/api/@xmachines/play-pattern/type-aliases/PathBuildResult.md +74 -0
  79. package/api/@xmachines/play-pattern/type-aliases/PathParams.md +15 -0
  80. package/api/@xmachines/play-pattern/type-aliases/PatternModifier.md +11 -0
  81. package/api/@xmachines/play-pattern/type-aliases/PatternPart.md +9 -0
  82. package/api/@xmachines/play-react/README.md +46 -58
  83. package/api/@xmachines/play-react/classes/PlayErrorBoundary.md +14 -10
  84. package/api/@xmachines/play-react/functions/useActor.md +1 -1
  85. package/api/@xmachines/play-react/functions/useAtomEffect.md +103 -0
  86. package/api/@xmachines/play-react/functions/usePlayView.md +1 -1
  87. package/api/@xmachines/play-react/interfaces/ActorProviderProps.md +11 -11
  88. package/api/@xmachines/play-react/interfaces/PlayErrorBoundaryProps.md +6 -6
  89. package/api/@xmachines/play-react/interfaces/PlayErrorBoundaryState.md +4 -4
  90. package/api/@xmachines/play-react/interfaces/PlayUIProviderProps.md +13 -13
  91. package/api/@xmachines/play-react/interfaces/ViewContextValue.md +8 -8
  92. package/api/@xmachines/play-react/type-aliases/AnyPlayActor.md +11 -3
  93. package/api/@xmachines/play-react/variables/ActorProvider.md +2 -2
  94. package/api/@xmachines/play-react/variables/PlayRenderer.md +1 -1
  95. package/api/@xmachines/play-react/variables/PlayUIProvider.md +1 -1
  96. package/api/@xmachines/play-react/variables/schema.md +52 -0
  97. package/api/@xmachines/play-react-router/README.md +23 -51
  98. package/api/@xmachines/play-react-router/classes/ReactRouterBridge.md +24 -23
  99. package/api/@xmachines/play-react-router/classes/RouteMap.md +18 -12
  100. package/api/@xmachines/play-react-router/functions/createPlayRouterProvider.md +11 -8
  101. package/api/@xmachines/play-react-router/functions/createRouteMapFromTree.md +16 -9
  102. package/api/@xmachines/play-react-router/interfaces/PlayRouteEvent.md +9 -14
  103. package/api/@xmachines/play-react-router/interfaces/PlayRouterProviderProps.md +14 -12
  104. package/api/@xmachines/play-react-router/interfaces/RoutableActor.md +72 -0
  105. package/api/@xmachines/play-react-router/interfaces/RouteMapOptions.md +10 -4
  106. package/api/@xmachines/play-react-router/interfaces/RouteMapping.md +3 -3
  107. package/api/@xmachines/play-react-router/interfaces/RouterBridge.md +15 -17
  108. package/api/@xmachines/play-react-router/type-aliases/PlayRouterBridgeConstructor.md +29 -12
  109. package/api/@xmachines/play-react-router/type-aliases/PlayRouterProviderBaseProps.md +5 -5
  110. package/api/@xmachines/play-react-router/variables/PlayRouterProvider.md +4 -4
  111. package/api/@xmachines/play-router/README.md +116 -197
  112. package/api/@xmachines/play-router/errors/README.md +15 -0
  113. package/api/@xmachines/play-router/errors/classes/DuplicateBridgeError.md +191 -0
  114. package/api/@xmachines/play-router/errors/classes/DuplicateRoutePathError.md +175 -0
  115. package/api/@xmachines/play-router/errors/classes/EmptyRoutePathError.md +175 -0
  116. package/api/@xmachines/play-router/errors/classes/InvalidBasePathError.md +200 -0
  117. package/api/@xmachines/play-router/errors/classes/InvalidRoutePatternError.md +203 -0
  118. package/api/@xmachines/play-router/errors/classes/InvalidStateIdError.md +175 -0
  119. package/api/@xmachines/play-router/errors/classes/MissingBasePathParamError.md +199 -0
  120. package/api/@xmachines/play-router/errors/classes/RouterSyncError.md +192 -0
  121. package/api/@xmachines/play-router/errors/classes/UnknownStateTypeError.md +182 -0
  122. package/api/@xmachines/play-router/index/README.md +83 -0
  123. package/api/@xmachines/play-router/{classes → index/classes}/RouteMap.md +19 -13
  124. package/api/@xmachines/play-router/{classes → index/classes}/RouterBridgeBase.md +22 -20
  125. package/api/@xmachines/play-router/{functions → index/functions}/buildPlayRouteEvent.md +2 -2
  126. package/api/@xmachines/play-router/{functions → index/functions}/buildRouteTree.md +14 -4
  127. package/api/@xmachines/play-router/{functions → index/functions}/cleanFrameworkParams.md +3 -4
  128. package/api/@xmachines/play-router/index/functions/createPatternCache.md +47 -0
  129. package/api/@xmachines/play-router/{functions → index/functions}/createRouteMapFromTree.md +17 -10
  130. package/api/@xmachines/play-router/{functions → index/functions}/createRouterConnection.md +2 -2
  131. package/api/@xmachines/play-router/{functions → index/functions}/detectDuplicateRoutes.md +2 -2
  132. package/api/@xmachines/play-router/{functions → index/functions}/extractQuery.md +2 -2
  133. package/api/@xmachines/play-router/{functions → index/functions}/extractRouteParams.md +9 -8
  134. package/api/@xmachines/play-router/{functions → index/functions}/findRouteById.md +2 -2
  135. package/api/@xmachines/play-router/index/functions/findRouteByPath.md +48 -0
  136. package/api/@xmachines/play-router/{functions → index/functions}/isMountableBridge.md +2 -2
  137. package/api/@xmachines/play-router/index/functions/joinBasePath.md +38 -0
  138. package/api/@xmachines/play-router/{functions → index/functions}/mountKey.md +2 -2
  139. package/api/@xmachines/play-router/index/functions/normalizeBasePath.md +43 -0
  140. package/api/@xmachines/play-router/{functions → index/functions}/openProviderBridge.md +14 -14
  141. package/api/@xmachines/play-router/index/functions/parsePattern.md +28 -0
  142. package/api/@xmachines/play-router/index/functions/pickOwnParams.md +41 -0
  143. package/api/@xmachines/play-router/{functions → index/functions}/repointProviderBridge.md +2 -2
  144. package/api/@xmachines/play-router/index/functions/resolveBasePath.md +51 -0
  145. package/api/@xmachines/play-router/index/functions/resolveFrameworkParams.md +49 -0
  146. package/api/@xmachines/play-router/index/functions/sanitizePathname.md +27 -0
  147. package/api/@xmachines/play-router/index/functions/splitLocation.md +37 -0
  148. package/api/@xmachines/play-router/index/functions/stripBasePath.md +44 -0
  149. package/api/@xmachines/play-router/{functions → index/functions}/validateRouteFormat.md +2 -2
  150. package/api/@xmachines/play-router/{functions → index/functions}/validateStateExists.md +2 -2
  151. package/api/@xmachines/play-router/index/interfaces/BasePathOptions.md +32 -0
  152. package/api/@xmachines/play-router/index/interfaces/BuildPlayRouteEventOptions.md +13 -0
  153. package/api/@xmachines/play-router/index/interfaces/CompileOptions.md +35 -0
  154. package/api/@xmachines/play-router/index/interfaces/FrameworkParamsSource.md +52 -0
  155. package/api/@xmachines/play-router/{interfaces → index/interfaces}/LocationLike.md +6 -6
  156. package/api/@xmachines/play-router/{interfaces → index/interfaces}/MountableRouterBridge.md +12 -12
  157. package/api/@xmachines/play-router/index/interfaces/OpenProviderBridgeArgs.md +30 -0
  158. package/api/@xmachines/play-router/index/interfaces/ParseOptions.md +24 -0
  159. package/api/@xmachines/play-router/index/interfaces/ParsedPattern.md +23 -0
  160. package/api/@xmachines/play-router/index/interfaces/PatternCache.md +65 -0
  161. package/api/@xmachines/play-router/index/interfaces/PlayRouteEvent.md +130 -0
  162. package/api/@xmachines/play-router/index/interfaces/PlayRouterProviderBaseProps.md +39 -0
  163. package/api/@xmachines/play-router/index/interfaces/ResolvedBasePath.md +14 -0
  164. package/api/@xmachines/play-router/{interfaces → index/interfaces}/ResolvedRoutePath.md +6 -6
  165. package/api/@xmachines/play-router/index/interfaces/Routable.md +26 -0
  166. package/api/@xmachines/play-router/index/interfaces/RoutableActor.md +72 -0
  167. package/api/@xmachines/play-router/{interfaces → index/interfaces}/RouteInfo.md +11 -11
  168. package/api/@xmachines/play-router/index/interfaces/RouteMapOptions.md +19 -0
  169. package/api/@xmachines/play-router/{interfaces → index/interfaces}/RouteMapping.md +6 -6
  170. package/api/@xmachines/play-router/index/interfaces/RouteMatch.md +12 -0
  171. package/api/@xmachines/play-router/{interfaces → index/interfaces}/RouteNode.md +13 -13
  172. package/api/@xmachines/play-router/index/interfaces/RouteObject.md +34 -0
  173. package/api/@xmachines/play-router/index/interfaces/RouteTree.md +27 -0
  174. package/api/@xmachines/play-router/index/interfaces/RouteWatcherHandle.md +55 -0
  175. package/api/@xmachines/play-router/{interfaces → index/interfaces}/RouterBridge.md +17 -19
  176. package/api/@xmachines/play-router/index/interfaces/RouterBridgeOptions.md +31 -0
  177. package/api/@xmachines/play-router/{interfaces → index/interfaces}/RouterConnection.md +10 -10
  178. package/api/@xmachines/play-router/index/interfaces/SplitLocation.md +16 -0
  179. package/api/@xmachines/play-router/{interfaces → index/interfaces}/WindowLike.md +4 -4
  180. package/api/@xmachines/play-router/index/type-aliases/PlayRouterBridgeConstructor.md +53 -0
  181. package/api/@xmachines/play-router/index/type-aliases/RouteData.md +12 -0
  182. package/api/@xmachines/play-router/index/type-aliases/RouteDataResolver.md +31 -0
  183. package/api/@xmachines/play-router/index/type-aliases/RouteMetadata.md +11 -0
  184. package/api/@xmachines/play-router/index/type-aliases/URLPatternLike.md +68 -0
  185. package/api/@xmachines/{play-xstate → play-router/index}/variables/DISPOSE.md +3 -3
  186. package/api/@xmachines/play-router/index/variables/NO_BASE_PATH.md +18 -0
  187. package/api/@xmachines/play-router/index/variables/ROOT_NODE_ID.md +18 -0
  188. package/api/@xmachines/play-router/xstate/README.md +53 -0
  189. package/api/@xmachines/play-router/{functions → xstate/functions}/createRouteMap.md +11 -9
  190. package/api/@xmachines/play-router/xstate/functions/extractMachineRoutes.md +30 -0
  191. package/api/@xmachines/play-router/xstate/functions/getNavigableRoutes.md +35 -0
  192. package/api/@xmachines/play-router/{functions → xstate/functions}/getRoutableRoutes.md +6 -6
  193. package/api/@xmachines/play-router/{functions → xstate/functions}/getRouteMappings.md +7 -7
  194. package/api/@xmachines/play-router/{functions → xstate/functions}/getTransitionReachableRoutes.md +2 -2
  195. package/api/@xmachines/play-router/{functions → xstate/functions}/isRouteReachable.md +2 -2
  196. package/api/@xmachines/play-router/{functions → xstate/functions}/machineToGraph.md +2 -2
  197. package/api/@xmachines/play-router/xstate/functions/routeExists.md +26 -0
  198. package/api/@xmachines/play-router/xstate/interfaces/MachineEdgeData.md +15 -0
  199. package/api/@xmachines/play-router/xstate/interfaces/MachineNodeData.md +17 -0
  200. package/api/@xmachines/play-router/{type-aliases → xstate/type-aliases}/MachineGraph.md +2 -2
  201. package/api/@xmachines/play-solid/README.md +21 -34
  202. package/api/@xmachines/play-solid/functions/useActor.md +1 -1
  203. package/api/@xmachines/play-solid/functions/usePlayView.md +1 -1
  204. package/api/@xmachines/play-solid/interfaces/ActorProviderProps.md +11 -11
  205. package/api/@xmachines/play-solid/interfaces/PlayUIProviderProps.md +13 -13
  206. package/api/@xmachines/play-solid/interfaces/ViewContextValue.md +8 -8
  207. package/api/@xmachines/play-solid/type-aliases/AnyPlayActor.md +11 -3
  208. package/api/@xmachines/play-solid/variables/ActorContext.md +1 -1
  209. package/api/@xmachines/play-solid/variables/ActorProvider.md +2 -2
  210. package/api/@xmachines/play-solid/variables/PlayRenderer.md +1 -1
  211. package/api/@xmachines/play-solid/variables/PlayUIProvider.md +1 -1
  212. package/api/@xmachines/play-solid/variables/schema.md +71 -0
  213. package/api/@xmachines/play-solid-router/README.md +34 -55
  214. package/api/@xmachines/play-solid-router/classes/RouteMap.md +18 -12
  215. package/api/@xmachines/play-solid-router/classes/SolidRouterBridge.md +33 -56
  216. package/api/@xmachines/play-solid-router/functions/createPlayRouterProvider.md +9 -8
  217. package/api/@xmachines/play-solid-router/interfaces/PlayActor.md +38 -35
  218. package/api/@xmachines/play-solid-router/interfaces/PlayRouteEvent.md +9 -14
  219. package/api/@xmachines/play-solid-router/interfaces/PlayRouterProviderProps.md +14 -12
  220. package/api/@xmachines/play-solid-router/interfaces/RoutableActor.md +72 -0
  221. package/api/@xmachines/play-solid-router/interfaces/RouteMapOptions.md +10 -4
  222. package/api/@xmachines/play-solid-router/interfaces/RouteMapping.md +5 -5
  223. package/api/@xmachines/play-solid-router/interfaces/RouterBridge.md +15 -17
  224. package/api/@xmachines/play-solid-router/type-aliases/PlayRouterBridgeConstructor.md +29 -12
  225. package/api/@xmachines/play-solid-router/type-aliases/PlayRouterProviderBaseProps.md +5 -5
  226. package/api/@xmachines/play-solid-router/type-aliases/SolidRouterHooks.md +4 -4
  227. package/api/@xmachines/play-solid-router/variables/PlayRouterProvider.md +4 -4
  228. package/api/@xmachines/play-svelte/README.md +18 -29
  229. package/api/@xmachines/play-svelte/functions/defineRegistry.md +1 -1
  230. package/api/@xmachines/play-svelte/functions/getActorContext.md +1 -1
  231. package/api/@xmachines/play-svelte/functions/getPlayViewContext.md +1 -1
  232. package/api/@xmachines/play-svelte/functions/setActorContext.md +1 -1
  233. package/api/@xmachines/play-svelte/interfaces/ActorProviderProps.md +12 -12
  234. package/api/@xmachines/play-svelte/interfaces/DefineRegistryOptions.md +4 -4
  235. package/api/@xmachines/play-svelte/interfaces/PlayUIProviderProps.md +14 -14
  236. package/api/@xmachines/play-svelte/interfaces/ViewContextValue.md +8 -8
  237. package/api/@xmachines/play-svelte/type-aliases/AnyPlayActor.md +11 -3
  238. package/api/@xmachines/play-svelte/variables/schema.md +16 -0
  239. package/api/@xmachines/play-svelte-spa-router/README.md +25 -44
  240. package/api/@xmachines/play-svelte-spa-router/classes/RouteMap.md +18 -12
  241. package/api/@xmachines/play-svelte-spa-router/classes/SvelteSpaRouterBridge.md +24 -23
  242. package/api/@xmachines/play-svelte-spa-router/functions/connectRouter.md +3 -2
  243. package/api/@xmachines/play-svelte-spa-router/interfaces/BasePathOptions.md +5 -9
  244. package/api/@xmachines/play-svelte-spa-router/interfaces/ConnectRouterOptions.md +11 -9
  245. package/api/@xmachines/play-svelte-spa-router/interfaces/PlayRouteEvent.md +9 -14
  246. package/api/@xmachines/play-svelte-spa-router/interfaces/RoutableActor.md +72 -0
  247. package/api/@xmachines/play-svelte-spa-router/interfaces/RouteMapOptions.md +10 -4
  248. package/api/@xmachines/play-svelte-spa-router/interfaces/RouteMapping.md +3 -3
  249. package/api/@xmachines/play-svelte-spa-router/interfaces/RouterBridge.md +15 -17
  250. package/api/@xmachines/play-svelte-spa-router/interfaces/RouterConnection.md +8 -8
  251. package/api/@xmachines/play-svelte-spa-router/interfaces/WindowLike.md +3 -3
  252. package/api/@xmachines/play-sveltekit-router/README.md +32 -50
  253. package/api/@xmachines/play-sveltekit-router/classes/RouteMap.md +18 -12
  254. package/api/@xmachines/play-sveltekit-router/classes/SvelteKitRouterBridge.md +24 -23
  255. package/api/@xmachines/play-sveltekit-router/functions/connectRouter.md +3 -2
  256. package/api/@xmachines/play-sveltekit-router/interfaces/BasePathOptions.md +5 -9
  257. package/api/@xmachines/play-sveltekit-router/interfaces/ConnectRouterOptions.md +15 -23
  258. package/api/@xmachines/play-sveltekit-router/interfaces/LocationLike.md +3 -3
  259. package/api/@xmachines/play-sveltekit-router/interfaces/PlayRouteEvent.md +9 -14
  260. package/api/@xmachines/play-sveltekit-router/interfaces/RoutableActor.md +72 -0
  261. package/api/@xmachines/play-sveltekit-router/interfaces/RouteMapOptions.md +10 -4
  262. package/api/@xmachines/play-sveltekit-router/interfaces/RouteMapping.md +3 -3
  263. package/api/@xmachines/play-sveltekit-router/interfaces/RouterBridge.md +15 -17
  264. package/api/@xmachines/play-sveltekit-router/interfaces/RouterConnection.md +8 -8
  265. package/api/@xmachines/play-tanstack-react-router/README.md +25 -49
  266. package/api/@xmachines/play-tanstack-react-router/classes/RouteMap.md +18 -12
  267. package/api/@xmachines/play-tanstack-react-router/classes/TanStackReactRouterBridge.md +22 -21
  268. package/api/@xmachines/play-tanstack-react-router/functions/createPlayRouterProvider.md +11 -8
  269. package/api/@xmachines/play-tanstack-react-router/functions/createRouteMapFromTree.md +16 -9
  270. package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouteEvent.md +9 -14
  271. package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouterProviderProps.md +14 -12
  272. package/api/@xmachines/play-tanstack-react-router/interfaces/RoutableActor.md +72 -0
  273. package/api/@xmachines/play-tanstack-react-router/interfaces/RouteMapOptions.md +10 -4
  274. package/api/@xmachines/play-tanstack-react-router/interfaces/RouteMapping.md +3 -3
  275. package/api/@xmachines/play-tanstack-react-router/interfaces/RouterBridge.md +15 -17
  276. package/api/@xmachines/play-tanstack-react-router/type-aliases/PlayRouterBridgeConstructor.md +29 -12
  277. package/api/@xmachines/play-tanstack-react-router/type-aliases/PlayRouterProviderBaseProps.md +5 -5
  278. package/api/@xmachines/play-tanstack-react-router/type-aliases/TanStackRouterInstance.md +1 -1
  279. package/api/@xmachines/play-tanstack-react-router/type-aliases/TanStackRouterLike.md +5 -5
  280. package/api/@xmachines/play-tanstack-react-router/variables/PlayRouterProvider.md +4 -4
  281. package/api/@xmachines/play-tanstack-router/README.md +6 -4
  282. package/api/@xmachines/play-tanstack-router/classes/TanStackRouterBridgeBase.md +26 -29
  283. package/api/@xmachines/play-tanstack-router/type-aliases/TanStackRouteMapLike.md +3 -3
  284. package/api/@xmachines/play-tanstack-router/type-aliases/TanStackRouterLike.md +5 -5
  285. package/api/@xmachines/play-tanstack-solid-router/README.md +29 -55
  286. package/api/@xmachines/play-tanstack-solid-router/classes/RouteMap.md +18 -12
  287. package/api/@xmachines/play-tanstack-solid-router/classes/TanStackSolidRouterBridge.md +52 -48
  288. package/api/@xmachines/play-tanstack-solid-router/functions/createPlayRouterProvider.md +9 -8
  289. package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayRouteEvent.md +9 -14
  290. package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayRouterProviderProps.md +14 -12
  291. package/api/@xmachines/play-tanstack-solid-router/interfaces/RoutableActor.md +72 -0
  292. package/api/@xmachines/play-tanstack-solid-router/interfaces/RouteMapOptions.md +10 -4
  293. package/api/@xmachines/play-tanstack-solid-router/interfaces/RouteMapping.md +3 -3
  294. package/api/@xmachines/play-tanstack-solid-router/interfaces/RouterBridge.md +15 -17
  295. package/api/@xmachines/play-tanstack-solid-router/type-aliases/PlayRouterBridgeConstructor.md +29 -12
  296. package/api/@xmachines/play-tanstack-solid-router/type-aliases/PlayRouterProviderBaseProps.md +5 -5
  297. package/api/@xmachines/play-tanstack-solid-router/type-aliases/TanStackRouterInstance.md +1 -1
  298. package/api/@xmachines/play-tanstack-solid-router/type-aliases/TanStackRouterLike.md +5 -5
  299. package/api/@xmachines/play-tanstack-solid-router/variables/PlayRouterProvider.md +4 -4
  300. package/api/@xmachines/play-url/README.md +75 -0
  301. package/api/@xmachines/play-url/errors/README.md +17 -0
  302. package/api/@xmachines/play-url/errors/classes/InvalidBasePathError.md +200 -0
  303. package/api/@xmachines/play-url/errors/classes/InvalidRoutePatternError.md +203 -0
  304. package/api/@xmachines/play-url/errors/classes/MissingBasePathParamError.md +199 -0
  305. package/api/@xmachines/play-url/index/README.md +72 -0
  306. package/api/@xmachines/play-url/index/functions/buildPath.md +46 -0
  307. package/api/@xmachines/play-url/index/functions/cleanFrameworkParams.md +39 -0
  308. package/api/@xmachines/play-url/index/functions/createPatternCache.md +47 -0
  309. package/api/@xmachines/play-url/index/functions/getCandidates.md +29 -0
  310. package/api/@xmachines/play-url/index/functions/getCompiledPattern.md +32 -0
  311. package/api/@xmachines/play-url/index/functions/getIndexKey.md +30 -0
  312. package/api/@xmachines/play-url/index/functions/holdsUnsubstitutedParam.md +36 -0
  313. package/api/@xmachines/play-url/index/functions/isDotSegment.md +40 -0
  314. package/api/@xmachines/{play-router → play-url/index}/functions/joinBasePath.md +3 -2
  315. package/api/@xmachines/{play-router → play-url/index}/functions/normalizeBasePath.md +2 -2
  316. package/api/@xmachines/play-url/index/functions/parsePattern.md +28 -0
  317. package/api/@xmachines/{play-router → play-url/index}/functions/pickOwnParams.md +4 -4
  318. package/api/@xmachines/{play-router → play-url/index}/functions/resolveBasePath.md +2 -2
  319. package/api/@xmachines/play-url/index/functions/resolveFrameworkParams.md +49 -0
  320. package/api/@xmachines/play-url/index/functions/sanitizePathname.md +27 -0
  321. package/api/@xmachines/play-url/index/functions/splitLocation.md +37 -0
  322. package/api/@xmachines/{play-router → play-url/index}/functions/stripBasePath.md +2 -2
  323. package/api/@xmachines/{play-router → play-url/index}/interfaces/BasePathOptions.md +6 -10
  324. package/api/@xmachines/play-url/index/interfaces/CompileOptions.md +21 -0
  325. package/api/@xmachines/play-url/index/interfaces/FrameworkParamsSource.md +52 -0
  326. package/api/@xmachines/play-url/index/interfaces/GroupPart.md +15 -0
  327. package/api/@xmachines/play-url/index/interfaces/LiteralPart.md +14 -0
  328. package/api/@xmachines/play-url/index/interfaces/ParamPart.md +21 -0
  329. package/api/@xmachines/play-url/index/interfaces/ParseOptions.md +24 -0
  330. package/api/@xmachines/play-url/index/interfaces/ParsedPattern.md +23 -0
  331. package/api/@xmachines/play-url/index/interfaces/PatternCache.md +65 -0
  332. package/api/@xmachines/play-url/index/interfaces/PatternParam.md +15 -0
  333. package/api/@xmachines/{play-router → play-url/index}/interfaces/ResolvedBasePath.md +6 -6
  334. package/api/@xmachines/play-url/index/interfaces/SplitLocation.md +16 -0
  335. package/api/@xmachines/play-url/index/type-aliases/PathBuildResult.md +74 -0
  336. package/api/@xmachines/play-url/index/type-aliases/PathParams.md +15 -0
  337. package/api/@xmachines/play-url/index/type-aliases/PatternModifier.md +11 -0
  338. package/api/@xmachines/play-url/index/type-aliases/PatternPart.md +9 -0
  339. package/api/@xmachines/play-url/index/type-aliases/URLPatternCtor.md +22 -0
  340. package/api/@xmachines/play-url/index/type-aliases/URLPatternLike.md +68 -0
  341. package/api/@xmachines/{play-router → play-url/index}/variables/NO_BASE_PATH.md +2 -2
  342. package/api/@xmachines/play-url/index/variables/URLPattern.md +21 -0
  343. package/api/@xmachines/play-view/README.md +176 -0
  344. package/api/@xmachines/play-view/errors/README.md +17 -0
  345. package/api/@xmachines/play-view/errors/classes/ReadOnlyContextError.md +192 -0
  346. package/api/@xmachines/play-view/index/README.md +55 -0
  347. package/api/@xmachines/{play-actor → play-view/index}/functions/attachRenderErrorHandler.md +6 -6
  348. package/api/@xmachines/{play-actor → play-view/index}/functions/composePlayState.md +2 -2
  349. package/api/@xmachines/{play-actor → play-view/index}/functions/createFailureLatch.md +2 -2
  350. package/api/@xmachines/{play-actor → play-view/index}/functions/createReportGuard.md +2 -2
  351. package/api/@xmachines/{play-actor → play-view/index}/functions/createViewStoreLifecycle.md +2 -2
  352. package/api/@xmachines/play-view/index/functions/guardContextWrites.md +19 -0
  353. package/api/@xmachines/{play-actor → play-view/index}/functions/refreshContextSubtree.md +2 -2
  354. package/api/@xmachines/{play-actor → play-view/index}/functions/reuseComposedState.md +3 -3
  355. package/api/@xmachines/{play-actor → play-view/index}/functions/sameViewInputs.md +2 -2
  356. package/api/@xmachines/{play-actor → play-view/index}/functions/toAtomState.md +2 -2
  357. package/api/@xmachines/{play-actor → play-view/index}/functions/typedSpec.md +2 -2
  358. package/api/@xmachines/play-view/index/interfaces/BaseActorProviderProps.md +49 -0
  359. package/api/@xmachines/{play-actor → play-view/index}/interfaces/BaseViewContextValue.md +12 -12
  360. package/api/@xmachines/{play-actor → play-view/index}/interfaces/FailureLatch.md +6 -5
  361. package/api/@xmachines/{play-actor → play-view/index}/interfaces/PlaySpec.md +8 -8
  362. package/api/@xmachines/{play-actor → play-view/index}/interfaces/ReportGuard.md +6 -6
  363. package/api/@xmachines/{play-actor → play-view/index}/interfaces/ReportGuardMessages.md +6 -6
  364. package/api/@xmachines/{play-actor → play-view/index}/interfaces/ResolveViewStoreOptions.md +5 -5
  365. package/api/@xmachines/{play-actor → play-view/index}/interfaces/ViewInputs.md +7 -7
  366. package/api/@xmachines/{play-actor → play-view/index}/interfaces/ViewStoreLifecycle.md +6 -5
  367. package/api/@xmachines/{play-actor → play-view/index}/interfaces/ViewStoreResolution.md +7 -7
  368. package/api/@xmachines/play-view/index/interfaces/Viewable.md +18 -0
  369. package/api/@xmachines/play-view/index/type-aliases/ViewActor.md +26 -0
  370. package/api/@xmachines/{play-actor → play-view/index}/variables/CONTEXT_STATE_KEY.md +2 -2
  371. package/api/@xmachines/play-vue/README.md +26 -40
  372. package/api/@xmachines/play-vue/functions/defineRegistry.md +1 -1
  373. package/api/@xmachines/play-vue/functions/useActor.md +1 -1
  374. package/api/@xmachines/play-vue/functions/usePlayView.md +1 -1
  375. package/api/@xmachines/play-vue/interfaces/ActorProviderProps.md +9 -9
  376. package/api/@xmachines/play-vue/interfaces/PlayUIProviderProps.md +11 -11
  377. package/api/@xmachines/play-vue/interfaces/ViewContextValue.md +8 -8
  378. package/api/@xmachines/play-vue/type-aliases/AnyPlayActor.md +11 -3
  379. package/api/@xmachines/play-vue/type-aliases/ComponentEntry.md +1 -1
  380. package/api/@xmachines/play-vue/type-aliases/ComponentsMap.md +1 -1
  381. package/api/@xmachines/play-vue/type-aliases/DefineRegistryOptions.md +2 -2
  382. package/api/@xmachines/play-vue/variables/PlayRenderer.md +1 -1
  383. package/api/@xmachines/play-vue/variables/schema.md +71 -0
  384. package/api/@xmachines/play-vue-router/README.md +42 -84
  385. package/api/@xmachines/play-vue-router/errors/README.md +8 -0
  386. package/api/@xmachines/play-vue-router/errors/classes/VueRouterNavigationError.md +193 -0
  387. package/api/@xmachines/play-vue-router/errors/classes/VueRouterSendError.md +177 -0
  388. package/api/@xmachines/play-vue-router/index/README.md +20 -0
  389. package/api/@xmachines/play-vue-router/{classes → index/classes}/RouteMap.md +19 -13
  390. package/api/@xmachines/play-vue-router/{classes → index/classes}/VueRouterBridge.md +26 -45
  391. package/api/@xmachines/play-vue-router/index/interfaces/PlayRouteEvent.md +130 -0
  392. package/api/@xmachines/play-vue-router/index/interfaces/RoutableActor.md +72 -0
  393. package/api/@xmachines/play-vue-router/index/interfaces/RouteMapOptions.md +19 -0
  394. package/api/@xmachines/play-vue-router/{interfaces → index/interfaces}/RouteMapping.md +6 -6
  395. package/api/@xmachines/play-vue-router/{interfaces → index/interfaces}/RouterBridge.md +17 -19
  396. package/api/@xmachines/play-vue-router/{variables → index/variables}/PlayRouterProvider.md +26 -4
  397. package/api/@xmachines/play-xstate/README.md +195 -116
  398. package/api/@xmachines/play-xstate/errors/README.md +14 -0
  399. package/api/@xmachines/play-xstate/errors/classes/ActorThrewNonErrorError.md +199 -0
  400. package/api/@xmachines/play-xstate/errors/classes/InvalidEventError.md +198 -0
  401. package/api/@xmachines/play-xstate/errors/classes/InvalidMachineError.md +169 -0
  402. package/api/@xmachines/play-xstate/errors/classes/InvalidRouteHandlerError.md +197 -0
  403. package/api/@xmachines/play-xstate/errors/classes/InvalidRouteMetadataError.md +176 -0
  404. package/api/@xmachines/play-xstate/errors/classes/InvalidRouteParamError.md +207 -0
  405. package/api/@xmachines/play-xstate/errors/classes/MissingRouteParamError.md +199 -0
  406. package/api/@xmachines/play-xstate/errors/classes/MissingStateIdError.md +203 -0
  407. package/api/@xmachines/play-xstate/index/README.md +38 -0
  408. package/api/@xmachines/play-xstate/index/classes/PlayerActor.md +583 -0
  409. package/api/@xmachines/play-xstate/index/functions/compose.md +224 -0
  410. package/api/@xmachines/play-xstate/index/functions/definePlayer.md +158 -0
  411. package/api/@xmachines/play-xstate/index/interfaces/PlayerConfig.md +22 -0
  412. package/api/@xmachines/play-xstate/{interfaces → index/interfaces}/PlayerFactoryResumeOptions.md +3 -3
  413. package/api/@xmachines/play-xstate/{interfaces → index/interfaces}/PlayerOptions.md +10 -10
  414. package/api/@xmachines/play-xstate/index/type-aliases/Capability.md +33 -0
  415. package/api/@xmachines/play-xstate/index/type-aliases/PlayerConstructor.md +39 -0
  416. package/api/@xmachines/play-xstate/index/type-aliases/PlayerFactory.md +27 -0
  417. package/api/@xmachines/{play-router → play-xstate/index}/variables/DISPOSE.md +3 -3
  418. package/api/@xmachines/play-xstate/with-routing/README.md +46 -0
  419. package/api/@xmachines/play-xstate/with-routing/functions/buildRouteUrl.md +57 -0
  420. package/api/@xmachines/play-xstate/{functions → with-routing/functions}/deriveRoute.md +4 -4
  421. package/api/@xmachines/play-xstate/{functions → with-routing/functions}/formatPlayRouteTransitions.md +2 -2
  422. package/api/@xmachines/play-xstate/{functions → with-routing/functions}/isAbsoluteRoute.md +3 -3
  423. package/api/@xmachines/play-xstate/with-routing/functions/withRouting.md +36 -0
  424. package/api/@xmachines/play-xstate/{interfaces → with-routing/interfaces}/RouteContext.md +6 -6
  425. package/api/@xmachines/play-xstate/with-routing/interfaces/RouteObject.md +34 -0
  426. package/api/@xmachines/play-xstate/with-routing/type-aliases/RouteData.md +12 -0
  427. package/api/@xmachines/play-xstate/with-routing/type-aliases/RouteDataResolver.md +31 -0
  428. package/api/@xmachines/play-xstate/{type-aliases → with-routing/type-aliases}/RouteMachineConfig.md +5 -5
  429. package/api/@xmachines/play-xstate/with-routing/type-aliases/RouteMetadata.md +11 -0
  430. package/api/@xmachines/play-xstate/{type-aliases → with-routing/type-aliases}/RouteStateNode.md +21 -7
  431. package/api/@xmachines/play-xstate/with-view/README.md +31 -0
  432. package/api/@xmachines/play-xstate/with-view/functions/withView.md +33 -0
  433. package/api/@xmachines/shared/README.md +10 -32
  434. package/api/@xmachines/shared/vite-aliases/functions/xmAliases.md +1 -1
  435. package/api/@xmachines/shared/vite-aliases/functions/xmCacheDir.md +1 -1
  436. package/api/@xmachines/shared/vite-aliases/functions/xmOptimizeDeps.md +1 -1
  437. package/api/@xmachines/shared/vite-aliases/functions/xmResolve.md +1 -1
  438. package/api/@xmachines/shared/vite-aliases/functions/xmSvelteRunes.md +2 -2
  439. package/api/@xmachines/shared/vitest/functions/defineXmBrowserConfig.md +1 -1
  440. package/api/@xmachines/shared/vitest/functions/defineXmVitestConfig.md +2 -1
  441. package/api/@xmachines/shared/vitest/interfaces/XmBrowserConfigOptions.md +4 -4
  442. package/api/README.md +4 -1
  443. package/api/llms.txt +18 -12
  444. package/contributing/architecture.md +157 -148
  445. package/contributing/configuration.md +100 -41
  446. package/contributing/deployment.md +112 -34
  447. package/contributing/development.md +103 -34
  448. package/contributing/migrating-to-play-atom.md +209 -0
  449. package/contributing/testing.md +136 -80
  450. package/examples/README.md +11 -9
  451. package/examples/basic-state-machine.md +4 -4
  452. package/examples/form-validation.md +4 -3
  453. package/examples/multi-router-integration.md +81 -59
  454. package/examples/routing-patterns.md +20 -19
  455. package/examples/traffic-light.md +17 -11
  456. package/guides/README.md +2 -1
  457. package/guides/actor-model.md +50 -32
  458. package/guides/atoms.md +264 -0
  459. package/guides/getting-started.md +91 -53
  460. package/guides/inspector.md +7 -7
  461. package/guides/routing.md +265 -0
  462. package/guides/state-machines.md +20 -21
  463. package/package.json +10 -9
  464. package/rfc/play.md +104 -60
  465. package/api/@xmachines/play-actor/classes/AbstractActor.md +0 -505
  466. package/api/@xmachines/play-actor/functions/guardContextWrites.md +0 -43
  467. package/api/@xmachines/play-actor/interfaces/BaseActorProviderProps.md +0 -48
  468. package/api/@xmachines/play-actor/interfaces/Routable.md +0 -14
  469. package/api/@xmachines/play-actor/interfaces/Viewable.md +0 -18
  470. package/api/@xmachines/play-dom/type-aliases/DisposablePlayUI.md +0 -36
  471. package/api/@xmachines/play-dom-router/functions/createRouteMap.md +0 -40
  472. package/api/@xmachines/play-dom-router/interfaces/DisposableBrowserHistory.md +0 -262
  473. package/api/@xmachines/play-dom-router/interfaces/DisposableVanillaRouter.md +0 -80
  474. package/api/@xmachines/play-react/functions/useSignalEffect.md +0 -77
  475. package/api/@xmachines/play-react/type-aliases/PlayRendererProps.md +0 -13
  476. package/api/@xmachines/play-react-router/functions/createRouteMap.md +0 -40
  477. package/api/@xmachines/play-react-router/interfaces/PlayActor.md +0 -70
  478. package/api/@xmachines/play-router/functions/extractMachineRoutes.md +0 -29
  479. package/api/@xmachines/play-router/functions/findRouteByPath.md +0 -41
  480. package/api/@xmachines/play-router/functions/getNavigableRoutes.md +0 -35
  481. package/api/@xmachines/play-router/functions/getPatternParamNames.md +0 -24
  482. package/api/@xmachines/play-router/functions/getRequiredPatternParamNames.md +0 -36
  483. package/api/@xmachines/play-router/functions/resolveFrameworkParams.md +0 -51
  484. package/api/@xmachines/play-router/functions/routeExists.md +0 -26
  485. package/api/@xmachines/play-router/functions/sanitizePathname.md +0 -42
  486. package/api/@xmachines/play-router/interfaces/BuildPlayRouteEventOptions.md +0 -13
  487. package/api/@xmachines/play-router/interfaces/FrameworkParamsSource.md +0 -47
  488. package/api/@xmachines/play-router/interfaces/MachineEdgeData.md +0 -15
  489. package/api/@xmachines/play-router/interfaces/MachineNodeData.md +0 -17
  490. package/api/@xmachines/play-router/interfaces/OpenProviderBridgeArgs.md +0 -28
  491. package/api/@xmachines/play-router/interfaces/PlayActor.md +0 -70
  492. package/api/@xmachines/play-router/interfaces/PlayRouteEvent.md +0 -135
  493. package/api/@xmachines/play-router/interfaces/PlayRouterProviderBaseProps.md +0 -33
  494. package/api/@xmachines/play-router/interfaces/RoutableActor.md +0 -65
  495. package/api/@xmachines/play-router/interfaces/RouteMapOptions.md +0 -13
  496. package/api/@xmachines/play-router/interfaces/RouteMatch.md +0 -12
  497. package/api/@xmachines/play-router/interfaces/RouteObject.md +0 -21
  498. package/api/@xmachines/play-router/interfaces/RouteTree.md +0 -21
  499. package/api/@xmachines/play-router/interfaces/RouteWatcherHandle.md +0 -55
  500. package/api/@xmachines/play-router/type-aliases/BaseRouteMapping.md +0 -13
  501. package/api/@xmachines/play-router/type-aliases/PlayRouterBridgeConstructor.md +0 -36
  502. package/api/@xmachines/play-router/type-aliases/RouteMetadata.md +0 -11
  503. package/api/@xmachines/play-signals/README.md +0 -231
  504. package/api/@xmachines/play-signals/functions/watchSignal.md +0 -65
  505. package/api/@xmachines/play-signals/interfaces/ComputedOptions.md +0 -36
  506. package/api/@xmachines/play-signals/interfaces/SignalComputed.md +0 -49
  507. package/api/@xmachines/play-signals/interfaces/SignalOptions.md +0 -37
  508. package/api/@xmachines/play-signals/interfaces/SignalState.md +0 -68
  509. package/api/@xmachines/play-signals/interfaces/SignalWatcher.md +0 -97
  510. package/api/@xmachines/play-signals/namespaces/Signal/README.md +0 -22
  511. package/api/@xmachines/play-signals/namespaces/Signal/classes/Computed.md +0 -52
  512. package/api/@xmachines/play-signals/namespaces/Signal/classes/State.md +0 -72
  513. package/api/@xmachines/play-signals/namespaces/Signal/interfaces/Options.md +0 -19
  514. package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/README.md +0 -21
  515. package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/classes/Watcher.md +0 -85
  516. package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/currentComputed.md +0 -13
  517. package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/hasSinks.md +0 -19
  518. package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/hasSources.md +0 -19
  519. package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/introspectSinks.md +0 -19
  520. package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/introspectSources.md +0 -19
  521. package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/untrack.md +0 -25
  522. package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/variables/unwatched.md +0 -9
  523. package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/variables/watched.md +0 -9
  524. package/api/@xmachines/play-signals/namespaces/Signal/variables/isComputed.md +0 -19
  525. package/api/@xmachines/play-signals/namespaces/Signal/variables/isState.md +0 -19
  526. package/api/@xmachines/play-signals/namespaces/Signal/variables/isWatcher.md +0 -19
  527. package/api/@xmachines/play-signals/type-aliases/WatcherNotify.md +0 -33
  528. package/api/@xmachines/play-solid-router/functions/createRouteMap.md +0 -40
  529. package/api/@xmachines/play-solid-router/interfaces/AbstractActor.md +0 -471
  530. package/api/@xmachines/play-solid-router/type-aliases/RoutableActor.md +0 -13
  531. package/api/@xmachines/play-svelte-spa-router/functions/createRouteMap.md +0 -40
  532. package/api/@xmachines/play-svelte-spa-router/type-aliases/RoutableActor.md +0 -9
  533. package/api/@xmachines/play-sveltekit-router/functions/createRouteMap.md +0 -40
  534. package/api/@xmachines/play-sveltekit-router/type-aliases/RoutableActor.md +0 -9
  535. package/api/@xmachines/play-tanstack-react-router/functions/createRouteMap.md +0 -40
  536. package/api/@xmachines/play-tanstack-react-router/functions/extractMachineRoutes.md +0 -29
  537. package/api/@xmachines/play-tanstack-react-router/interfaces/PlayActor.md +0 -70
  538. package/api/@xmachines/play-tanstack-react-router/interfaces/RouteNavigateEvent.md +0 -31
  539. package/api/@xmachines/play-tanstack-solid-router/functions/createRouteMap.md +0 -40
  540. package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayActor.md +0 -70
  541. package/api/@xmachines/play-tanstack-solid-router/type-aliases/RoutableActor.md +0 -13
  542. package/api/@xmachines/play-vue/interfaces/VisibilityProviderProps.md +0 -9
  543. package/api/@xmachines/play-vue/variables/getPlayViewContext.md +0 -39
  544. package/api/@xmachines/play-vue-router/functions/createRouteMap.md +0 -40
  545. package/api/@xmachines/play-vue-router/interfaces/PlayActor.md +0 -70
  546. package/api/@xmachines/play-vue-router/interfaces/PlayRouteEvent.md +0 -135
  547. package/api/@xmachines/play-vue-router/interfaces/RouteMapOptions.md +0 -13
  548. package/api/@xmachines/play-vue-router/type-aliases/RoutableActor.md +0 -13
  549. package/api/@xmachines/play-vue-router/type-aliases/VueRouteMap.md +0 -13
  550. package/api/@xmachines/play-vue-router/variables/VueRouteMap.md +0 -13
  551. package/api/@xmachines/play-xstate/classes/PlayerActor.md +0 -568
  552. package/api/@xmachines/play-xstate/functions/buildRouteUrl.md +0 -50
  553. package/api/@xmachines/play-xstate/functions/composeGuards.md +0 -86
  554. package/api/@xmachines/play-xstate/functions/composeGuardsOr.md +0 -72
  555. package/api/@xmachines/play-xstate/functions/contextFieldMatches.md +0 -43
  556. package/api/@xmachines/play-xstate/functions/definePlayer.md +0 -78
  557. package/api/@xmachines/play-xstate/functions/eventMatches.md +0 -45
  558. package/api/@xmachines/play-xstate/functions/hasContext.md +0 -45
  559. package/api/@xmachines/play-xstate/functions/negateGuard.md +0 -67
  560. package/api/@xmachines/play-xstate/interfaces/PlayerConfig.md +0 -20
  561. package/api/@xmachines/play-xstate/interfaces/RouteObject.md +0 -17
  562. package/api/@xmachines/play-xstate/type-aliases/ComposedGuard.md +0 -19
  563. package/api/@xmachines/play-xstate/type-aliases/Guard.md +0 -36
  564. package/api/@xmachines/play-xstate/type-aliases/GuardArray.md +0 -23
  565. package/api/@xmachines/play-xstate/type-aliases/PlayerFactory.md +0 -26
  566. package/api/@xmachines/play-xstate/type-aliases/RouteMetadata.md +0 -9
  567. package/guides/signals.md +0 -209
@@ -0,0 +1,65 @@
1
+ [API](../../../README.md) / [@xmachines/play-pattern](../README.md) / PatternCache
2
+
3
+ # Interface: PatternCache\<V\>
4
+
5
+ Defined in: [cache.ts:53](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.0/packages/play-pattern/src/cache.ts#L53)
6
+
7
+ What this package needs from a cache: a read and a write, both by a string key.
8
+
9
+ The contract is this small on purpose. A `Map` satisfies it, and so does an LRU of any
10
+ library — a caller that wants a time to live or an eviction callback brings the module
11
+ that has one, and this package needs to know nothing about it.
12
+
13
+ A cache may forget an entry at any time, and it may forget none. Both are correct: the
14
+ parser runs again for an entry that is absent.
15
+
16
+ ## Type Parameters
17
+
18
+ | Type Parameter |
19
+ | -------------- |
20
+ | `V` |
21
+
22
+ ## Methods
23
+
24
+ ### get()
25
+
26
+ ```ts
27
+ get(key): V | undefined;
28
+ ```
29
+
30
+ Defined in: [cache.ts:55](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.0/packages/play-pattern/src/cache.ts#L55)
31
+
32
+ Reads one entry, or `undefined` when the cache holds none for the key.
33
+
34
+ #### Parameters
35
+
36
+ | Parameter | Type |
37
+ | --------- | -------- |
38
+ | `key` | `string` |
39
+
40
+ #### Returns
41
+
42
+ `V` \| `undefined`
43
+
44
+ ---
45
+
46
+ ### set()
47
+
48
+ ```ts
49
+ set(key, value): void;
50
+ ```
51
+
52
+ Defined in: [cache.ts:57](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.0/packages/play-pattern/src/cache.ts#L57)
53
+
54
+ Writes one entry.
55
+
56
+ #### Parameters
57
+
58
+ | Parameter | Type |
59
+ | --------- | -------- |
60
+ | `key` | `string` |
61
+ | `value` | `V` |
62
+
63
+ #### Returns
64
+
65
+ `void`
@@ -0,0 +1,15 @@
1
+ [API](../../../README.md) / [@xmachines/play-pattern](../README.md) / PatternParam
2
+
3
+ # Interface: PatternParam
4
+
5
+ Defined in: [pattern-grammar.ts:101](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.0/packages/play-pattern/src/pattern-grammar.ts#L101)
6
+
7
+ One named param of a pattern, with the question that every caller asks about it.
8
+
9
+ ## Properties
10
+
11
+ | Property | Modifier | Type | Description | Defined in |
12
+ | ------------------------------------------- | ---------- | --------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------ |
13
+ | <a id="property-groupname"></a> `groupName` | `readonly` | `string` | The name that URLPattern compiles, for example `cat_id`. | [pattern-grammar.ts:105](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.0/packages/play-pattern/src/pattern-grammar.ts#L105) |
14
+ | <a id="property-name"></a> `name` | `readonly` | `string` | The name as the pattern declares it, for example `cat-id`. | [pattern-grammar.ts:103](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.0/packages/play-pattern/src/pattern-grammar.ts#L103) |
15
+ | <a id="property-optional"></a> `optional` | `readonly` | `boolean` | True when a matching path can carry no value for this param. The modifier `?` and the modifier `*` make a param optional, and so does EVERY group above it that carries one of the two. The modifier `+` does not: it repeats a param that one value must still fill. | [pattern-grammar.ts:113](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.0/packages/play-pattern/src/pattern-grammar.ts#L113) |
@@ -0,0 +1,74 @@
1
+ [API](../../../README.md) / [@xmachines/play-pattern](../README.md) / PathBuildResult
2
+
3
+ # Type Alias: PathBuildResult
4
+
5
+ ```ts
6
+ type PathBuildResult =
7
+ | {
8
+ ok: true;
9
+ path: string;
10
+ }
11
+ | {
12
+ missing: string;
13
+ ok: false;
14
+ reason: "missing";
15
+ }
16
+ | {
17
+ ok: false;
18
+ param: string;
19
+ reason: "unresolvable";
20
+ value: string;
21
+ };
22
+ ```
23
+
24
+ Defined in: [pattern-grammar.ts:651](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.0/packages/play-pattern/src/pattern-grammar.ts#L651)
25
+
26
+ The answer of [buildPath](../functions/buildPath.md).
27
+
28
+ ## Union Members
29
+
30
+ ### Type Literal
31
+
32
+ ```ts
33
+ {
34
+ ok: true;
35
+ path: string;
36
+ }
37
+ ```
38
+
39
+ The pattern built a path, and every part that needs a value has one.
40
+
41
+ ---
42
+
43
+ ### Type Literal
44
+
45
+ ```ts
46
+ {
47
+ missing: string;
48
+ ok: false;
49
+ reason: "missing";
50
+ }
51
+ ```
52
+
53
+ A part needs a value that the caller did not give.
54
+
55
+ `missing` names the param as the PATTERN declares it, with each hyphen kept, so a
56
+ caller reports the name that its author wrote.
57
+
58
+ ---
59
+
60
+ ### Type Literal
61
+
62
+ ```ts
63
+ {
64
+ ok: false;
65
+ param: string;
66
+ reason: "unresolvable";
67
+ value: string;
68
+ }
69
+ ```
70
+
71
+ A param carries a value that no path can hold, so the pattern matches the result
72
+ back never. `param` names the param, and `value` holds what the caller gave.
73
+
74
+ A dot segment is the one such value today: see [isDotSegment](../functions/isDotSegment.md).
@@ -0,0 +1,15 @@
1
+ [API](../../../README.md) / [@xmachines/play-pattern](../README.md) / PathParams
2
+
3
+ # Type Alias: PathParams
4
+
5
+ ```ts
6
+ type PathParams = Readonly<Record<string, unknown>>;
7
+ ```
8
+
9
+ Defined in: [pattern-grammar.ts:681](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.0/packages/play-pattern/src/pattern-grammar.ts#L681)
10
+
11
+ The values that a caller gives, keyed by the declared name of the param.
12
+
13
+ The value is `unknown`, because a caller reads it from the context of an actor and that
14
+ context carries whatever the machine put there. [buildPath](../functions/buildPath.md) calls `String` on a
15
+ value that is neither `undefined` nor `null`.
@@ -0,0 +1,11 @@
1
+ [API](../../../README.md) / [@xmachines/play-pattern](../README.md) / PatternModifier
2
+
3
+ # Type Alias: PatternModifier
4
+
5
+ ```ts
6
+ type PatternModifier = "" | "?" | "+" | "*";
7
+ ```
8
+
9
+ Defined in: [pattern-grammar.ts:56](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.0/packages/play-pattern/src/pattern-grammar.ts#L56)
10
+
11
+ The modifier of a part. `""` means that the part carries none.
@@ -0,0 +1,9 @@
1
+ [API](../../../README.md) / [@xmachines/play-pattern](../README.md) / PatternPart
2
+
3
+ # Type Alias: PatternPart
4
+
5
+ ```ts
6
+ type PatternPart = LiteralPart | ParamPart | GroupPart;
7
+ ```
8
+
9
+ Defined in: [pattern-grammar.ts:98](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.0/packages/play-pattern/src/pattern-grammar.ts#L98)
@@ -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-3.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,16 +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 @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`: `^5.31.0`
25
- - `@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`
26
26
  - `@xmachines/json-render-*`: `^0.20.0-xm.4`
27
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
+
28
32
  ## Usage
29
33
 
30
34
  ### Standard usage — `PlayUIProvider` + `PlayRenderer`
@@ -33,13 +37,14 @@ The recommended pattern for actor-driven React rendering:
33
37
 
34
38
  ```tsx
35
39
  import { PlayUIProvider, PlayRenderer, defineRegistry } from "@xmachines/play-react";
36
- import { definePlayer } from "@xmachines/play-xstate";
40
+ import { definePlayer, compose, PlayerActor } from "@xmachines/play-xstate";
41
+ import { withView } from "@xmachines/play-xstate/view";
37
42
  import { myMachine } from "./machine.js"; // your xstate machine (states carry meta.view specs)
38
- import { myCatalog } from "./catalog.js"; // defineCatalog(schema, ...) result, using the schema from "@xmachines/json-render-react/schema"
43
+ import { myCatalog } from "./catalog.js"; // the result of defineCatalog(schema, ...), with `schema` from "@xmachines/play-react"
39
44
  import { Login, Dashboard } from "./components.js"; // your React components
40
45
 
41
- // 1. Create and start the actor
42
- const actor = definePlayer({ machine: myMachine })();
46
+ // 1. Create and start the actor — a renderer needs the view capability
47
+ const actor = definePlayer({ machine: myMachine, actor: compose(PlayerActor, withView) })();
43
48
  actor.start();
44
49
 
45
50
  // 2. Define the component registry with action handlers
@@ -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,28 +151,28 @@ 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
 
157
- | Export | Description |
158
- | ------------------------ | -------------------------------------------------------------------------------------------------- |
159
- | `PlayUIProviderProps` | Props for `<PlayUIProvider>` |
160
- | `ActorProviderProps` | Props for `<ActorProvider>` (also exported as `PlayRendererProps` for migration compatibility) |
161
- | `PlayErrorBoundaryProps` | Props for `<PlayErrorBoundary>` |
162
- | `PlayErrorBoundaryState` | State shape for `<PlayErrorBoundary>` |
163
- | `AnyPlayActor` | Type alias for `AbstractActor<AnyActorLogic>` — the bare actor type that the context providers use |
164
- | `ViewContextValue` | The value shape that `usePlayView()` returns |
165
- | `RenderErrorHandler` | Error handler callback type for render errors |
167
+ | Export | Description |
168
+ | ------------------------ | ------------------------------------------------------------------------------- |
169
+ | `PlayUIProviderProps` | Props for `<PlayUIProvider>` |
170
+ | `ActorProviderProps` | Props for `<ActorProvider>` |
171
+ | `PlayErrorBoundaryProps` | Props for `<PlayErrorBoundary>` |
172
+ | `PlayErrorBoundaryState` | State shape for `<PlayErrorBoundary>` |
173
+ | `AnyPlayActor` | Type alias for `PlayActor` — the bare actor type that the context providers use |
174
+ | `ViewContextValue` | The value shape that `usePlayView()` returns |
175
+ | `RenderErrorHandler` | Error handler callback type for render errors |
166
176
 
167
177
  ### Re-exports from `@xmachines/json-render-react`
168
178
 
@@ -183,29 +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.
187
-
188
- ## Testing
189
-
190
- Run unit tests (jsdom environment):
191
-
192
- ```bash
193
- pnpm --filter @xmachines/play-react test
194
- ```
195
-
196
- Run tests with coverage:
197
-
198
- ```bash
199
- pnpm --filter @xmachines/play-react run test:coverage
200
- ```
201
-
202
- Run the browser integration tests. They require Chromium:
203
-
204
- ```bash
205
- pnpm --filter @xmachines/play-react run test:browser
206
- ```
207
-
208
- Coverage thresholds: 80% lines, functions, branches, and statements.
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.
209
197
 
210
198
  ## License
211
199
 
@@ -214,13 +202,13 @@ MIT — see [LICENSE](./LICENSE).
214
202
  @xmachines/play-react - React renderer for the XMachines Play architecture
215
203
 
216
204
  This package is the React rendering layer, and it works through providers. It
217
- observes the actor signals and renders the UI components with
205
+ observes the actor atoms and renders the UI components with
218
206
  @xmachines/json-render-react. The architecture can therefore change the
219
- 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
220
208
  changes.
221
209
 
222
210
  **Key principle:** React state is NEVER the place for the business logic. It only
223
- 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.
224
212
 
225
213
  **Standard use:**
226
214
 
@@ -259,7 +247,6 @@ composition. Read its source for the reference bridge.
259
247
 
260
248
  - [AnyPlayActor](type-aliases/AnyPlayActor.md)
261
249
  - [ComponentFn](type-aliases/ComponentFn.md)
262
- - [~~PlayRendererProps~~](type-aliases/PlayRendererProps.md)
263
250
  - [RenderErrorHandler](type-aliases/RenderErrorHandler.md)
264
251
 
265
252
  ## Variables
@@ -267,6 +254,7 @@ composition. Read its source for the reference bridge.
267
254
  - [ActorProvider](variables/ActorProvider.md)
268
255
  - [PlayRenderer](variables/PlayRenderer.md)
269
256
  - [PlayUIProvider](variables/PlayUIProvider.md)
257
+ - [schema](variables/schema.md)
270
258
 
271
259
  ## Functions
272
260
 
@@ -276,9 +264,9 @@ composition. Read its source for the reference bridge.
276
264
  - [Renderer](functions/Renderer.md)
277
265
  - [StateProvider](functions/StateProvider.md)
278
266
  - [useActor](functions/useActor.md)
267
+ - [useAtomEffect](functions/useAtomEffect.md)
279
268
  - [useBoundProp](functions/useBoundProp.md)
280
269
  - [useFieldValidation](functions/useFieldValidation.md)
281
270
  - [usePlayView](functions/usePlayView.md)
282
- - [useSignalEffect](functions/useSignalEffect.md)
283
271
  - [ValidationProvider](functions/ValidationProvider.md)
284
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/v3.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/v3.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/v3.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.
@@ -128,7 +128,8 @@ React.Component.componentDidMount;
128
128
  optional componentDidUpdate(
129
129
  prevProps,
130
130
  prevState,
131
- snapshot?): void;
131
+ snapshot?
132
+ ): void;
132
133
  ```
133
134
 
134
135
  Defined in: `@types/react`
@@ -268,7 +269,8 @@ React.Component.componentWillUnmount;
268
269
  optional componentWillUpdate(
269
270
  nextProps,
270
271
  nextState,
271
- nextContext): void;
272
+ nextContext
273
+ ): void;
272
274
  ```
273
275
 
274
276
  Defined in: `@types/react`
@@ -376,7 +378,7 @@ React.Component.getSnapshotBeforeUpdate;
376
378
  render(): ReactNode;
377
379
  ```
378
380
 
379
- Defined in: [packages/play-react/src/PlayErrorBoundary.tsx:139](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v3.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)
380
382
 
381
383
  #### Returns
382
384
 
@@ -429,7 +431,8 @@ React.Component.setState;
429
431
  optional shouldComponentUpdate(
430
432
  nextProps,
431
433
  nextState,
432
- nextContext): boolean;
434
+ nextContext
435
+ ): boolean;
433
436
  ```
434
437
 
435
438
  Defined in: `@types/react`
@@ -555,7 +558,8 @@ React.Component.UNSAFE_componentWillReceiveProps;
555
558
  optional UNSAFE_componentWillUpdate(
556
559
  nextProps,
557
560
  nextState,
558
- nextContext): void;
561
+ nextContext
562
+ ): void;
559
563
  ```
560
564
 
561
565
  Defined in: `@types/react`
@@ -605,7 +609,7 @@ React.Component.UNSAFE_componentWillUpdate;
605
609
  static getDerivedStateFromError(error): Pick<PlayErrorBoundaryState, "hasError" | "error">;
606
610
  ```
607
611
 
608
- Defined in: [packages/play-react/src/PlayErrorBoundary.tsx:108](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v3.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)
609
613
 
610
614
  #### Parameters
611
615
 
@@ -627,7 +631,7 @@ static getDerivedStateFromProps(props, state):
627
631
  | null;
628
632
  ```
629
633
 
630
- Defined in: [packages/play-react/src/PlayErrorBoundary.tsx:126](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v3.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)
631
635
 
632
636
  Clears the error state after a change of `resetKey`.
633
637
 
@@ -6,7 +6,7 @@
6
6
  function useActor(): AnyPlayActor;
7
7
  ```
8
8
 
9
- Defined in: [packages/play-react/src/useActor.ts:34](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v3.0.0/packages/play-react/src/useActor.ts#L34)
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/v3.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