@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
@@ -2,9 +2,9 @@
2
2
 
3
3
  # @xmachines/play-dom
4
4
 
5
- Vanilla DOM renderer for XMachines Play architecture with signal-driven rendering.
5
+ Vanilla DOM 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-dom)
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-dom)
8
8
 
9
9
  ## Installation
10
10
 
@@ -15,14 +15,19 @@ pnpm add @xmachines/play-dom
15
15
  **Peer dependencies:**
16
16
 
17
17
  ```bash
18
- pnpm add xstate @xstate/store @xmachines/json-render-core @xmachines/json-render-dom @xmachines/json-render-xstate
18
+ pnpm add @xmachines/play @xmachines/play-atom @xstate/store @xmachines/json-render-core @xmachines/json-render-dom @xmachines/json-render-xstate
19
19
  ```
20
20
 
21
+ `@xstate/store` is the peer of [`@xmachines/play-atom`](../play-atom/README.md), and not of this
22
+ package: this package reads the atom through [`@xmachines/play-atom`](../play-atom/README.md) and
23
+ imports the engine in no source file. Install ONE copy of it.
24
+
21
25
  ## Quick Start
22
26
 
23
27
  ```typescript
24
28
  import { createRenderer, schema } from "@xmachines/play-dom";
25
- import { definePlayer } from "@xmachines/play-xstate";
29
+ import { definePlayer, compose, PlayerActor } from "@xmachines/play-xstate";
30
+ import { withView } from "@xmachines/play-xstate/view";
26
31
  import { defineCatalog } from "@xmachines/json-render-core";
27
32
  import { createMachine } from "xstate";
28
33
  import { z } from "zod";
@@ -82,7 +87,8 @@ const machine = createMachine({
82
87
  },
83
88
  },
84
89
  });
85
- const actor = definePlayer({ machine })();
90
+ // `mount` needs the view capability
91
+ const actor = definePlayer({ machine, actor: compose(PlayerActor, withView) })();
86
92
  actor.start();
87
93
 
88
94
  // 5. Mount when actor and container are ready
@@ -169,7 +175,7 @@ renderer.disconnect();
169
175
  **Controlled store mode.** Give the renderer an external `StateStore`. The renderer then shares the state with the other parts of your application:
170
176
 
171
177
  ```typescript
172
- import { createAtom } from "@xstate/store";
178
+ import { createAtom } from "@xmachines/play-atom";
173
179
  import { xstateStoreStateStore } from "@xmachines/json-render-xstate";
174
180
 
175
181
  const atom = createAtom<Record<string, unknown>>({ username: "" });
@@ -284,7 +290,7 @@ Without `onRenderError`, the renderer writes all three types of error to `consol
284
290
  **Read this if you catch what `mount()` or `connect()` throws.**
285
291
 
286
292
  In 2.2.0 the renderer had no containment. A view that failed the rebuild threw out of
287
- `mount()` and out of the callback of the signal watcher, so a `try` of the host, an error
293
+ `mount()` and out of the callback of the atom watcher, so a `try` of the host, an error
288
294
  boundary of the framework around it, or the global handler of the page received it.
289
295
 
290
296
  In 2.3.0 the renderer contains such a failure ALWAYS. No option turns the containment on,
@@ -361,57 +367,43 @@ const Home: ComponentFn<typeof catalog, "Home"> = ({ ctx }) => {
361
367
 
362
368
  ### XMachines Layer
363
369
 
364
- | Export | Kind | Description |
365
- | ---------------------------------------- | -------- | ------------------------------------------------------------------- |
366
- | `createRenderer(catalog, components)` | function | The one-call factory. Its `mount` hands a `Cleanup` back |
367
- | `createPlayUI(registryResult, options?)` | function | The complete factory. It returns a `DisposablePlayUI` |
368
- | `PlayRenderer` | class | The renderer class, with a `connect()` and `disconnect()` lifecycle |
369
- | `defineRegistry(catalog, options)` | function | Build a catalog-typed `DomRegistry` with typed handlers |
370
- | `renderSpec(...)` | function | The pure low-level Spec → DOM renderer |
371
- | `schema` | const | The `@xmachines/json-render-dom` schema — pass to `defineCatalog()` |
372
- | `Cleanup` | type | The release a mount returns, re-exported from `@xmachines/play` |
370
+ | Export | Kind | Description |
371
+ | ---------------------------------------- | -------- | ------------------------------------------------------------------------------------ |
372
+ | `createRenderer(catalog, components)` | function | The one-call factory. Its `mount` hands a `Cleanup` back |
373
+ | `createPlayUI(registryResult, options?)` | function | The complete factory. It returns a `MountFn` |
374
+ | `PlayRenderer` | class | The renderer class, with a `connect()` and `disconnect()` lifecycle |
375
+ | `defineRegistry(catalog, options)` | function | Build a catalog-typed `DomRegistry` with typed handlers |
376
+ | `renderSpec(...)` | function | The pure low-level Spec → DOM renderer |
377
+ | `schema` | const | The `@xmachines/json-render-dom` schema — pass to `defineCatalog()` |
378
+ | `asCleanup`, `Cleanup` | — | The release a mount returns, re-exported from [`@xmachines/play`](../play/README.md) |
373
379
 
374
380
  ### Key Types
375
381
 
376
- | Type | Description |
377
- | ------------------------ | --------------------------------------------------------------------------------------------- |
378
- | `ComponentFn<C, K>` | Catalog-typed component function — returns `HTMLElement \| Text \| null` |
379
- | `ComponentContext<C, K>` | The context of each component: `props`, `children`, `emit`, `on`, `bindings`, and `ctx` |
380
- | `ActionFn<C, K>` | Catalog-typed action function — receives `(params, setState, state)` |
381
- | `EventHandle` | The handle that `on(eventName)` returns. It has `emit()`, `shouldPreventDefault`, and `bound` |
382
- | `SetState` | State updater: `(prev => next) => void` |
383
- | `DefineRegistryResult` | The result of `defineRegistry`. It has `registry`, `handlers`, and `executeAction` |
384
- | `PlayDomOptions` | Options for `PlayRenderer` — extends `UIProviderOptions`, adds `fallback` and `onError` |
385
- | `CreatePlayUIOptions` | Options for `createPlayUI` — extends `UIProviderOptions`, adds `fallback` and `onError` |
386
- | `MountOptions` | Per-mount options for `MountFn`: `store`, `loading` |
387
- | `MountFn` | The type of a mount that a consumer writes: `(actor, container, options?) → disconnect` |
388
- | `DisposablePlayUI` | The mount that `createPlayUI` builds. It hands a `Cleanup` back, so `using` releases it |
389
- | `UIProviderOptions` | Shared options: `functions`, `validationFunctions`, `navigate`, `onRenderError` |
390
- | `BaseComponentProps<P>` | Catalog-agnostic component props for shared component libraries |
391
- | `DomRegistry` | Raw registry type: `Record<string, DomComponentRenderer>` |
392
- | `DomSchema` | Type of the `schema` export |
393
- | `ComputedFunction` | The type of a named compute function for the `functions` option |
394
- | `Cleanup` | The release of a mount, re-exported from `@xmachines/play` |
382
+ | Type | Description |
383
+ | ------------------------ | ------------------------------------------------------------------------------------------------------------- |
384
+ | `ComponentFn<C, K>` | Catalog-typed component function — returns `HTMLElement \| Text \| null` |
385
+ | `ComponentContext<C, K>` | The context of each component: `props`, `children`, `emit`, `on`, `bindings`, and `ctx` |
386
+ | `ActionFn<C, K>` | Catalog-typed action function — receives `(params, setState, state)` |
387
+ | `EventHandle` | The handle that `on(eventName)` returns. It has `emit()`, `shouldPreventDefault`, and `bound` |
388
+ | `SetState` | State updater: `(prev => next) => void` |
389
+ | `DefineRegistryResult` | The result of `defineRegistry`. It has `registry`, `handlers`, and `executeAction` |
390
+ | `PlayDomOptions` | Options for `PlayRenderer` — extends `UIProviderOptions`, adds `fallback` and `onError` |
391
+ | `CreatePlayUIOptions` | Options for `createPlayUI` — extends `UIProviderOptions`, adds `fallback` and `onError` |
392
+ | `MountOptions` | Per-mount options for `MountFn`: `store`, `loading` |
393
+ | `MountFn` | The mount: `(actor, container, options?) → Cleanup`. `createPlayUI` returns one, and a consumer may write one |
394
+ | `UIProviderOptions` | Shared options: `functions`, `validationFunctions`, `navigate`, `onRenderError` |
395
+ | `BaseComponentProps<P>` | Catalog-agnostic component props for shared component libraries |
396
+ | `DomRegistry` | Raw registry type: `Record<string, DomComponentRenderer>` |
397
+ | `DomSchema` | Type of the `schema` export |
398
+ | `Cleanup` | The release of a mount, re-exported from [`@xmachines/play`](../play/README.md) |
395
399
 
396
400
  ## Rendering Behavior
397
401
 
398
402
  - **The first render is synchronous** — the renderer fills the container before `connect()` returns.
399
- - **A signal-driven render waits for a microtask** — `watchSignal` puts each update on the next tick of the microtask queue.
403
+ - **An atom-driven render waits for a microtask** — `watchAtom` puts each update on the next tick of the microtask queue.
400
404
  - **A null view** clears the container, and the renderer then shows the `fallback` element when you give one. It shows it for every null view, and not for the first mount only — the four framework providers hold the same rule for their placeholder content.
401
405
  - **A second `connect()` is safe** — a `connect()` call on a connected renderer disconnects it first.
402
- - **`disconnect()` clears the container** and cancels every signal watcher and store watcher.
403
-
404
- ## Testing
405
-
406
- ```bash
407
- # Run all tests (jsdom environment)
408
- pnpm test
409
-
410
- # Run with coverage
411
- pnpm run test:coverage
412
- ```
413
-
414
- The tests are in `test/`. They use [Vitest](https://vitest.dev/) in a jsdom environment. The coverage thresholds are 80% for lines, functions, branches, and statements.
406
+ - **`disconnect()` clears the container** and cancels every atom watcher and store watcher.
415
407
 
416
408
  @xmachines/play-dom — the vanilla DOM renderer of the XMachines Play architecture.
417
409
 
@@ -420,9 +412,9 @@ The public API has two layers:
420
412
  **The XMachines layer**, in this package:
421
413
 
422
414
  - `createRenderer()` — the one-call factory. It returns `mount(actor, container, options?) → disconnect`
423
- - `createPlayUI()` — the complete factory, with every option. It returns a `DisposablePlayUI`
415
+ - `createPlayUI()` — the complete factory, with every option. It returns a `MountFn`
424
416
  - `PlayRenderer` — the renderer class, with a `connect()` and `disconnect()` lifecycle
425
- - `PlayDomOptions`, `CreatePlayUIOptions`, `MountFn`, `DisposablePlayUI`, `MountOptions`
417
+ - `PlayDomOptions`, `CreatePlayUIOptions`, `MountFn`, `MountOptions`
426
418
 
427
419
  **The json-render layer**, re-exported from @xmachines/json-render-dom:
428
420
 
@@ -468,7 +460,6 @@ The public API has two layers:
468
460
  - [ComponentRegistry](type-aliases/ComponentRegistry.md)
469
461
  - [ConfirmHandler](type-aliases/ConfirmHandler.md)
470
462
  - [DefineRegistryOptions](type-aliases/DefineRegistryOptions.md)
471
- - [DisposablePlayUI](type-aliases/DisposablePlayUI.md)
472
463
  - [DomComponentRenderer](type-aliases/DomComponentRenderer.md)
473
464
  - [DomRegistry](type-aliases/DomRegistry.md)
474
465
  - [DomSchema](type-aliases/DomSchema.md)
@@ -482,6 +473,7 @@ The public API has two layers:
482
473
 
483
474
  ## Functions
484
475
 
476
+ - [asCleanup](functions/asCleanup.md)
485
477
  - [createPlayUI](functions/createPlayUI.md)
486
478
  - [createRenderer](functions/createRenderer.md)
487
479
  - [createValidationRegistry](functions/createValidationRegistry.md)
@@ -2,11 +2,11 @@
2
2
 
3
3
  # Class: PlayRenderer
4
4
 
5
- Defined in: [packages/play-dom/src/PlayRenderer.ts:131](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v3.0.0/packages/play-dom/src/PlayRenderer.ts#L131)
5
+ Defined in: [packages/play-dom/src/PlayRenderer.ts:129](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.0/packages/play-dom/src/PlayRenderer.ts#L129)
6
6
 
7
- PlayRenderer connects the `currentView` signal of an actor to the DOM renderer.
7
+ PlayRenderer connects the `currentView` atom of an actor to the DOM renderer.
8
8
 
9
- It watches `actor.currentView` through the TC39 Signals. It renders each
9
+ It watches `actor.currentView` through the atoms. It renders each
10
10
  `DomComponentRenderer` function into `container` on every view transition.
11
11
  `disconnect()` clears the container.
12
12
 
@@ -38,7 +38,7 @@ renderer.disconnect();
38
38
  **The controlled store mode** — you give your own `StateStore`:
39
39
 
40
40
  ```typescript
41
- import { createAtom } from "@xstate/store";
41
+ import { createAtom } from "@xmachines/play-atom";
42
42
  import { xstateStoreStateStore } from "@xmachines/json-render-xstate";
43
43
 
44
44
  const atom = createAtom({ username: "" });
@@ -60,19 +60,20 @@ new PlayRenderer(
60
60
  container,
61
61
  actor,
62
62
  registry,
63
- options?): PlayRenderer;
63
+ options?
64
+ ): PlayRenderer;
64
65
  ```
65
66
 
66
- Defined in: [packages/play-dom/src/PlayRenderer.ts:225](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v3.0.0/packages/play-dom/src/PlayRenderer.ts#L225)
67
+ Defined in: [packages/play-dom/src/PlayRenderer.ts:223](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.0/packages/play-dom/src/PlayRenderer.ts#L223)
67
68
 
68
69
  #### Parameters
69
70
 
70
- | Parameter | Type | Description |
71
- | ----------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
72
- | `container` | `HTMLElement` | The `HTMLElement` to render into. Each view transition clears it and fills it again. |
73
- | `actor` | [`AbstractActor`](../../play-actor/classes/AbstractActor.md)\<[`AnyActorLogic`](https://www.jsdocs.io/package/xstate#AnyActorLogic), [`EventObject`](https://www.jsdocs.io/package/xstate#EventObject)\> & [`Viewable`](../../play-actor/interfaces/Viewable.md) | The actor with the `currentView` signal. It must implement `Viewable`. |
74
- | `registry` | [`DomRegistry`](../type-aliases/DomRegistry.md) | The map of the component renderers, usually `registryResult.registry` from `defineRegistry`. |
75
- | `options` | [`PlayDomOptions`](../interfaces/PlayDomOptions.md) | The configuration. See [PlayDomOptions](../interfaces/PlayDomOptions.md): - `registryResult` — it connects `setState` and `state` of the xstate store for you. - `store` — an external `StateStore`, which is the controlled mode. It replaces the values of `spec.state`. - `loading` — the flag of the streaming mode. It stops each warning about an absent child. - `functions` — the named compute functions of a `$computed` prop expression. - `directives` — your own dynamic values with a `$` prefix. The renderer resolves them with the props. - `validationFunctions` — your own check functions. They are available at `ctx.ctx.validationFunctions`. - `navigate` — the navigation callback. The renderer calls it for `onSuccess: { navigate: "..." }`. - `onRenderError` — the `(error, name)` handler of a component render error and of an action handler rejection. It stops the `console.error` fallback. - `onError` — the `(error, reset)` handler of a failure of a complete rebuild. The renderer contains such a failure always, and this option says where the report goes. - `fallback` — the element to show for every null view, and after a contained failure. |
71
+ | Parameter | Type | Description |
72
+ | ----------- | -------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
73
+ | `container` | `HTMLElement` | The `HTMLElement` to render into. Each view transition clears it and fills it again. |
74
+ | `actor` | [`ViewActor`](../../play-view/index/type-aliases/ViewActor.md) | The actor with the `currentView` atom. It must implement `Viewable`. |
75
+ | `registry` | [`DomRegistry`](../type-aliases/DomRegistry.md) | The map of the component renderers, usually `registryResult.registry` from `defineRegistry`. |
76
+ | `options` | [`PlayDomOptions`](../interfaces/PlayDomOptions.md) | The configuration. See [PlayDomOptions](../interfaces/PlayDomOptions.md): - `registryResult` — it connects `setState` and `state` of the xstate store for you. - `store` — an external `StateStore`, which is the controlled mode. It replaces the values of `spec.state`. - `loading` — the flag of the streaming mode. It stops each warning about an absent child. - `functions` — the named compute functions of a `$computed` prop expression. - `directives` — your own dynamic values with a `$` prefix. The renderer resolves them with the props. - `validationFunctions` — your own check functions. They are available at `ctx.ctx.validationFunctions`. - `navigate` — the navigation callback. The renderer calls it for `onSuccess: { navigate: "..." }`. - `onRenderError` — the `(error, name)` handler of a component render error and of an action handler rejection. It stops the `console.error` fallback. - `onError` — the `(error, reset)` handler of a failure of a complete rebuild. The renderer contains such a failure always, and this option says where the report goes. - `fallback` — the element to show for every null view, and after a contained failure. |
76
77
 
77
78
  #### Returns
78
79
 
@@ -86,13 +87,13 @@ Defined in: [packages/play-dom/src/PlayRenderer.ts:225](https://gitlab.com/xmach
86
87
  connect(): void;
87
88
  ```
88
89
 
89
- Defined in: [packages/play-dom/src/PlayRenderer.ts:241](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v3.0.0/packages/play-dom/src/PlayRenderer.ts#L241)
90
+ Defined in: [packages/play-dom/src/PlayRenderer.ts:239](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.0/packages/play-dom/src/PlayRenderer.ts#L239)
90
91
 
91
92
  Starts the watch of actor.currentView, and renders into the container.
92
- It renders the first view synchronously, then it subscribes to the signal changes.
93
+ It renders the first view synchronously, then it subscribes to the atom changes.
93
94
 
94
95
  A `connect()` call on a connected renderer, where a `disconnect()` call did not
95
- follow the previous `connect()`, installs a second `watchSignal` subscription.
96
+ follow the previous `connect()`, installs a second `watchAtom` subscription.
96
97
  Each view change then renders two times. Therefore this method disconnects the
97
98
  renderer first.
98
99
 
@@ -108,7 +109,7 @@ renderer first.
108
109
  disconnect(): void;
109
110
  ```
110
111
 
111
- Defined in: [packages/play-dom/src/PlayRenderer.ts:285](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v3.0.0/packages/play-dom/src/PlayRenderer.ts#L285)
112
+ Defined in: [packages/play-dom/src/PlayRenderer.ts:283](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.0/packages/play-dom/src/PlayRenderer.ts#L283)
112
113
 
113
114
  Stops the watch and clears the container.
114
115
 
@@ -0,0 +1,77 @@
1
+ [API](../../../README.md) / [@xmachines/play-dom](../README.md) / asCleanup
2
+
3
+ # Function: asCleanup()
4
+
5
+ ```ts
6
+ function asCleanup<R>(release): Cleanup;
7
+ ```
8
+
9
+ Defined in: [packages/play/src/disposable.ts:149](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.0/packages/play/src/disposable.ts#L149)
10
+
11
+ Makes one release function serve as a [Cleanup](../type-aliases/Cleanup.md).
12
+
13
+ The function comes back as itself, with [DISPOSE](../../play/index/variables/DISPOSE.md) added. Nothing wraps it, so
14
+ the identity of the release holds: a caller that compares two releases, or that puts
15
+ one in a `Set`, sees what it saw before this protocol existed.
16
+
17
+ The release therefore must be idempotent. A scope releases the value one time, but a
18
+ caller that runs the function AND lets the scope end runs it two times. Every release
19
+ of this workspace already accepts that, because a teardown that runs two times is
20
+ older than this protocol.
21
+
22
+ The release must be synchronous. `Disposable` and not `AsyncDisposable`: a
23
+ `Disposable` serves `using` AND `await using`, because `await using` falls back to
24
+ `Symbol.dispose`, while an `AsyncDisposable` raises a TypeError under a plain `using`
25
+ and forces every holder into an async function. Nothing in this workspace releases
26
+ asynchronously. An `AsyncCleanup` can arrive the day something does.
27
+
28
+ The `R extends void | undefined` bound is what holds that line. A plain `() => void`
29
+ parameter would ACCEPT `async () => {}`, because TypeScript lets a function that
30
+ returns a value stand where one returning `void` is wanted. The promise would then go
31
+ on the floor: the scope releases, the release looks finished, and the work runs later
32
+ with nobody able to await it. The bound rejects that at the call, and it rejects a
33
+ release that returns any other value as well.
34
+
35
+ The bound holds where the compiler knows the return type. It cannot hold where the
36
+ caller erased it: `R` infers `any` for a release typed `any`, such as a bare
37
+ `vi.fn()`, and `any` satisfies every constraint. A release declared `() => void` whose
38
+ body is async passes for the same reason — the declaration, and not the body, is what
39
+ the call site sees. Write the release inline, or type it, and the bound applies.
40
+
41
+ The release lands under [DISPOSE](../../play/index/variables/DISPOSE.md) and, when the two differ, under the
42
+ `Symbol.dispose` that exists at the CALL. `DISPOSE` resolves when the module evaluates,
43
+ so a polyfill that installs the well-known symbol later would otherwise leave the
44
+ release on the registered key while a downlevelled `using` reads the well-known one.
45
+ Writing both closes that window for every release this function publishes.
46
+
47
+ ## Type Parameters
48
+
49
+ | Type Parameter |
50
+ | ----------------------------------- |
51
+ | `R` _extends_ `void` \| `undefined` |
52
+
53
+ ## Parameters
54
+
55
+ | Parameter | Type | Description |
56
+ | --------- | --------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
57
+ | `release` | () => `R` | The release to publish. It must return nothing. The function is changed in place, so pass a function that this release owns: a shared or module-level function becomes a `Disposable` for every other holder of it. |
58
+
59
+ ## Returns
60
+
61
+ [`Cleanup`](../type-aliases/Cleanup.md)
62
+
63
+ The same function, now also a `Disposable`.
64
+
65
+ ## Throws
66
+
67
+ TypeError - When the release is frozen or is otherwise not extensible. The
68
+ protocol adds a property, and a sealed function accepts none.
69
+
70
+ ## Example
71
+
72
+ ```ts
73
+ export function watchAtom<T>(atom: Readable<T>, onValue: (v: T) => void): Cleanup {
74
+ const subscription = atom.subscribe(() => onValue(atom.get()));
75
+ return asCleanup(() => subscription.unsubscribe());
76
+ }
77
+ ```
@@ -3,10 +3,10 @@
3
3
  # Function: createPlayUI()
4
4
 
5
5
  ```ts
6
- function createPlayUI(registryResult, options?): DisposablePlayUI;
6
+ function createPlayUI(registryResult, options?): MountFn;
7
7
  ```
8
8
 
9
- Defined in: [packages/play-dom/src/create-play-ui.ts:126](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v3.0.0/packages/play-dom/src/create-play-ui.ts#L126)
9
+ Defined in: [packages/play-dom/src/create-play-ui.ts:118](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.0/packages/play-dom/src/create-play-ui.ts#L118)
10
10
 
11
11
  Creates the mount function of the complete DOM renderer.
12
12
 
@@ -23,6 +23,6 @@ and a container.
23
23
 
24
24
  ## Returns
25
25
 
26
- [`DisposablePlayUI`](../type-aliases/DisposablePlayUI.md)
26
+ [`MountFn`](../type-aliases/MountFn.md)
27
27
 
28
- The [DisposablePlayUI](../type-aliases/DisposablePlayUI.md): `(actor, container, mountOptions?) → disconnect`
28
+ The [MountFn](../type-aliases/MountFn.md): `(actor, container, mountOptions?) → disconnect`
@@ -6,7 +6,7 @@
6
6
  function createRenderer<C>(catalog, componentMap): (actor, container, options?) => Cleanup;
7
7
  ```
8
8
 
9
- Defined in: [packages/play-dom/src/create-renderer.ts:89](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v3.0.0/packages/play-dom/src/create-renderer.ts#L89)
9
+ Defined in: [packages/play-dom/src/create-renderer.ts:88](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.0/packages/play-dom/src/create-renderer.ts#L88)
10
10
 
11
11
  Creates a DOM renderer factory from a catalog and a component map. You can use
12
12
  the factory more than one time.
@@ -2,7 +2,7 @@
2
2
 
3
3
  # Interface: CreatePlayUIOptions
4
4
 
5
- Defined in: [packages/play-dom/src/types.ts:152](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v3.0.0/packages/play-dom/src/types.ts#L152)
5
+ Defined in: [packages/play-dom/src/types.ts:152](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.0/packages/play-dom/src/types.ts#L152)
6
6
 
7
7
  The options of `createPlayUI()`, the complete DOM factory.
8
8
 
@@ -31,10 +31,10 @@ createPlayUI
31
31
  | Property | Type | Description | Inherited from | Defined in |
32
32
  | ---------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- |
33
33
  | <a id="property-directives"></a> `directives?` | `DirectiveDefinition`\<`ZodType`\<`unknown`, `unknown`, `$ZodTypeInternals`\<`unknown`, `unknown`\>\>\>[] | Custom directives — user-defined `$`-prefixed dynamic values that extend the spec expression language (e.g. `{ $format: "currency", value: ... }`). Each entry is a `DirectiveDefinition` built with `defineDirective` from `@xmachines/json-render-core`. The array is converted to a `DirectiveRegistry` once per render pass and forwarded to `resolveElementProps` via `PropResolutionContext.directives`. Built-in expressions (`$state`, `$cond`, etc.) always take precedence over custom directives. Mirrors the `directives` prop on `JSONUIProvider` / `JsonUIProvider` introduced in **Json-render** 0.19. **Example** `import { defineDirective, resolvePropValue } from "@xmachines/json-render-core"; import { z } from "zod"; const formatDirective = defineDirective({ name: "$format", description: "Locale-aware number formatting.", schema: z.object({ $format: z.enum(["number", "currency"]), value: z.unknown() }), resolve(value, ctx) { const resolved = resolvePropValue(value.value, ctx); return new Intl.NumberFormat().format(resolved as number); }, }); renderSpec(spec, store, registry, { directives: [formatDirective] });` | [`UIProviderOptions`](UIProviderOptions.md).[`directives`](UIProviderOptions.md#property-directives) | - |
34
- | <a id="property-fallback"></a> `fallback?` | `HTMLElement` \| (() => `HTMLElement`) \| `null` | The optional fallback content — see [PlayDomOptions.fallback](PlayDomOptions.md#property-fallback) for what the renderer does with it. The factory shows it for every null view, and after a failure of a rebuild that the renderer contains. **Give a FUNCTION when the factory mounts more than one time.** ONE factory serves every `mount()` call, and `appendChild` MOVES a node. A single element therefore passes from one container to the next on every null view, and the container that loses it goes empty without a notice. A function runs one time for each mount, so every renderer owns its own element: `const mount = createPlayUI(registryResult, { fallback: () => { const element = document.createElement("p"); element.textContent = "Loading…"; return element; }, });` An element stays correct for a factory that mounts one time. | - | [packages/play-dom/src/types.ts:176](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v3.0.0/packages/play-dom/src/types.ts#L176) |
34
+ | <a id="property-fallback"></a> `fallback?` | `HTMLElement` \| (() => `HTMLElement`) \| `null` | The optional fallback content — see [PlayDomOptions.fallback](PlayDomOptions.md#property-fallback) for what the renderer does with it. The factory shows it for every null view, and after a failure of a rebuild that the renderer contains. **Give a FUNCTION when the factory mounts more than one time.** ONE factory serves every `mount()` call, and `appendChild` MOVES a node. A single element therefore passes from one container to the next on every null view, and the container that loses it goes empty without a notice. A function runs one time for each mount, so every renderer owns its own element: `const mount = createPlayUI(registryResult, { fallback: () => { const element = document.createElement("p"); element.textContent = "Loading…"; return element; }, });` An element stays correct for a factory that mounts one time. | - | [packages/play-dom/src/types.ts:176](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.0/packages/play-dom/src/types.ts#L176) |
35
35
  | <a id="property-functions"></a> `functions?` | `Record`\<`string`, `ComputedFunction`\> | Named compute functions for `{ $computed: "name", args: {...} }` prop expressions. Each function receives the resolved `args` object and returns the computed value. Forwarded directly to `resolveElementProps` via `PropResolutionContext.functions`, matching the `FunctionsContext` provider in the framework renderers. Without this option, `$computed` expressions resolve to `undefined` (no throw). **Example** `renderSpec(spec, store, registry, { functions: { fullName: (args) => `${args.first} ${args.last}`, formatCurrency: (args) => new Intl.NumberFormat().format(args.amount as number), }, });` Mirrors the `functions` prop on `JSONUIProvider` / `JsonUIProvider`. | [`UIProviderOptions`](UIProviderOptions.md).[`functions`](UIProviderOptions.md#property-functions) | - |
36
36
  | <a id="property-navigate"></a> `navigate?` | (`path`) => `void` | Programmatic navigation function. Called automatically when an action binding resolves with `onSuccess: { navigate: "/path" }`. The resolved path string is passed as the sole argument. Mirrors the `navigate` prop in `ActionProvider` from the framework renderers, where it is captured in the `execute()` closure. Also available to component implementations directly via `ctx.ctx.navigate` for cases where navigation needs to be triggered outside of an action binding. **Example** `import { useNavigate } from "my-router"; const navigate = useNavigate(); renderSpec(spec, store, registry, { navigate });` Spec binding that triggers navigation: `{ "on": { "click": { "action": "doSomething", "onSuccess": { "navigate": "/dashboard" } } } }` | [`UIProviderOptions`](UIProviderOptions.md).[`navigate`](UIProviderOptions.md#property-navigate) | - |
37
37
  | <a id="property-onconfirm"></a> `onConfirm?` | [`ConfirmHandler`](../type-aliases/ConfirmHandler.md) | Confirmation hook for actions that declare `confirm` in their binding. Consulted by `emit()` before executing a confirm-gated action. Return (or resolve) `true` to execute, `false` to skip. Without this handler, confirm-gated actions are skipped with a `console.warn` — they never execute unconfirmed. See [ConfirmHandler](../type-aliases/ConfirmHandler.md) for the full contract. This is the headless equivalent of the `pendingConfirmation` / `confirmAction()` / `cancelAction()` flow in the framework adapters. | [`UIProviderOptions`](UIProviderOptions.md).[`onConfirm`](UIProviderOptions.md#property-onconfirm) | - |
38
- | <a id="property-onerror"></a> `onError?` | (`error`, `reset`) => `void` | The optional handler of a failure of a complete rebuild of the view. This option is NOT the same as `onRenderError`, which [UIProviderOptions](UIProviderOptions.md) gives: the inner renderer routes a render error of one component, and a rejection of one action handler, to `onRenderError`. It contains each of them per element, and the rebuild continues. `onError` receives the failure of the complete rebuild that no per-element boundary caught. The renderer CONTAINS a rebuild that throws, with this option and without it: it resets the state of the failed rebuild, so that the next emission makes a complete render again, and it clears the container. `connect()` renders the first view synchronously, so a bad initial view makes `connect()` throw no more. A WRITE of the store takes the same path. The renderer resolves the props of every element that the write touched, so a `$computed` function that throws on the new state aborts that render too. The renderer contains such a failure as well, and the action handler that wrote the state receives no exception. This option says WHERE the report goes. Without it, the renderer writes the contained failure to `console.error`. A handler that THROWS reaches no caller: the renderer contains that throw too, and it writes the throw to `console.error`. A host that must escalate a failure raises it from a task of its own — `queueMicrotask(() => { throw error; })` — which reaches the global handler of the page and leaves the containment whole. The five renderers hold this one rule. The second parameter is the RESET, for a retry that the host starts — a "Retry" button of its own. 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 `disconnect()` does nothing. A reset belongs to ONE connection. `connect()` starts a connection, and the reset of a report of an older connection does nothing. A host that calls `connect()` again from inside this handler abandons the connection that reported. The "Retry" button of that report must not render into the connection that took its place. Call the reset of the newest report. This option matches the `onError` prop of the framework renderer providers, and the five renderers hold the same three rules for the reset. | [`PlayDomOptions`](PlayDomOptions.md).[`onError`](PlayDomOptions.md#property-onerror) | [packages/play-dom/src/types.ts:100](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v3.0.0/packages/play-dom/src/types.ts#L100) |
38
+ | <a id="property-onerror"></a> `onError?` | (`error`, `reset`) => `void` | The optional handler of a failure of a complete rebuild of the view. This option is NOT the same as `onRenderError`, which [UIProviderOptions](UIProviderOptions.md) gives: the inner renderer routes a render error of one component, and a rejection of one action handler, to `onRenderError`. It contains each of them per element, and the rebuild continues. `onError` receives the failure of the complete rebuild that no per-element boundary caught. The renderer CONTAINS a rebuild that throws, with this option and without it: it resets the state of the failed rebuild, so that the next emission makes a complete render again, and it clears the container. `connect()` renders the first view synchronously, so a bad initial view makes `connect()` throw no more. A WRITE of the store takes the same path. The renderer resolves the props of every element that the write touched, so a `$computed` function that throws on the new state aborts that render too. The renderer contains such a failure as well, and the action handler that wrote the state receives no exception. This option says WHERE the report goes. Without it, the renderer writes the contained failure to `console.error`. A handler that THROWS reaches no caller: the renderer contains that throw too, and it writes the throw to `console.error`. A host that must escalate a failure raises it from a task of its own — `queueMicrotask(() => { throw error; })` — which reaches the global handler of the page and leaves the containment whole. The five renderers hold this one rule. The second parameter is the RESET, for a retry that the host starts — a "Retry" button of its own. 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 `disconnect()` does nothing. A reset belongs to ONE connection. `connect()` starts a connection, and the reset of a report of an older connection does nothing. A host that calls `connect()` again from inside this handler abandons the connection that reported. The "Retry" button of that report must not render into the connection that took its place. Call the reset of the newest report. This option matches the `onError` prop of the framework renderer providers, and the five renderers hold the same three rules for the reset. | [`PlayDomOptions`](PlayDomOptions.md).[`onError`](PlayDomOptions.md#property-onerror) | [packages/play-dom/src/types.ts:100](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.0/packages/play-dom/src/types.ts#L100) |
39
39
  | <a id="property-onrendererror"></a> `onRenderError?` | [`RenderErrorHandler`](../type-aliases/RenderErrorHandler.md) | Unified error handler for component render errors and action handler rejections. Matches `RenderErrorHandler = (error: unknown, name: string) => void`. Invoked for three distinct error classes: - `(error, elementType)` — when a component renderer throws synchronously during `renderSpec` - `(error, actionName)` — when an action handler rejects during `emit()` (on-event path) - `(error, actionName)` — when an action handler rejects during a `watch` binding callback When provided, suppresses the `console.error` fallback for all three error types. Forwarded into `renderSpec` as the `onRenderError` parameter and into `DomRenderContext.onRenderError` so both `emit()` and `watch` handlers route their errors through the same channel as component render errors. **Example** `renderSpec(spec, store, registry, { onRenderError: (err, name) => { myErrorReporter.capture(err, { context: name }); }, });` | [`UIProviderOptions`](UIProviderOptions.md).[`onRenderError`](UIProviderOptions.md#property-onrendererror) | - |
40
40
  | <a id="property-validationfunctions"></a> `validationFunctions?` | `Record`\<`string`, (`value`, `args?`) => `boolean`\> | Custom validation functions for inline field validation. Each function receives `(value, args?)` and returns `true` (valid) or `false` (invalid). Functions are available to component implementations via `ctx.ctx.validationFunctions` and should be passed as `customFunctions` to `runValidationCheck` / `runValidation` from `@xmachines/json-render-core`. Mirrors `customFunctions` in `ValidationProvider` from the framework renderers. The DOM renderer has no automatic `ValidationProvider` tree — validation must be invoked explicitly by component implementations. **Example** `import { runValidationCheck } from "@xmachines/json-render-core"; renderSpec(spec, store, registry, { validationFunctions: { isEven: (value) => typeof value === "number" && value % 2 === 0, phoneNumber: (value) => /^\+?[\d\s\-()]{7,}$/.test(String(value)), }, }); // Inside a ComponentFn: const MyField: ComponentFn<typeof catalog, "MyField"> = ({ ctx }) => { const result = runValidationCheck( { type: "isEven", message: "must be even" }, { value: someValue, stateModel: {}, customFunctions: ctx.ctx.validationFunctions }, ); // result.valid, result.message };` | [`UIProviderOptions`](UIProviderOptions.md).[`validationFunctions`](UIProviderOptions.md#property-validationfunctions) | - |
@@ -2,7 +2,7 @@
2
2
 
3
3
  # Interface: MountOptions
4
4
 
5
- Defined in: [packages/play-dom/src/create-play-ui.ts:51](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v3.0.0/packages/play-dom/src/create-play-ui.ts#L51)
5
+ Defined in: [packages/play-dom/src/create-play-ui.ts:50](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.0/packages/play-dom/src/create-play-ui.ts#L50)
6
6
 
7
7
  The mount options of the `MountFn` that `createPlayUI` returns.
8
8
 
@@ -15,5 +15,5 @@ time.
15
15
 
16
16
  | Property | Type | Description | Defined in |
17
17
  | ---------------------------------------- | ------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- |
18
- | <a id="property-loading"></a> `loading?` | `boolean` | With the value `true`, the renderer stops each warning about an absent child during the ingestion of a streaming spec. It also gives `ctx.ctx.loading` to each component implementation. | [packages/play-dom/src/create-play-ui.ts:63](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v3.0.0/packages/play-dom/src/create-play-ui.ts#L63) |
19
- | <a id="property-store"></a> `store?` | `StateStore` | The optional external `StateStore`, which is the controlled mode. Without it, the renderer makes a new `@xstate/store` atom for each view transition, with the values of `spec.state`. | [packages/play-dom/src/create-play-ui.ts:57](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v3.0.0/packages/play-dom/src/create-play-ui.ts#L57) |
18
+ | <a id="property-loading"></a> `loading?` | `boolean` | With the value `true`, the renderer stops each warning about an absent child during the ingestion of a streaming spec. It also gives `ctx.ctx.loading` to each component implementation. | [packages/play-dom/src/create-play-ui.ts:62](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.0/packages/play-dom/src/create-play-ui.ts#L62) |
19
+ | <a id="property-store"></a> `store?` | `StateStore` | The optional external `StateStore`, which is the controlled mode. Without it, the renderer makes a new `@xstate/store` atom for each view transition, with the values of `spec.state`. | [packages/play-dom/src/create-play-ui.ts:56](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.0/packages/play-dom/src/create-play-ui.ts#L56) |