@xmachines/docs 3.0.0 → 4.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 (485) hide show
  1. package/README.md +8 -16
  2. package/api/@xmachines/play/README.md +11 -100
  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 +35 -10
  6. package/api/@xmachines/play/index/README.md +75 -0
  7. package/api/@xmachines/play/{functions → index/functions}/asCleanup.md +2 -2
  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 +3 -3
  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 +78 -229
  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-dom/README.md +28 -40
  18. package/api/@xmachines/play-dom/classes/PlayRenderer.md +12 -11
  19. package/api/@xmachines/play-dom/functions/asCleanup.md +78 -0
  20. package/api/@xmachines/play-dom/functions/createPlayUI.md +4 -4
  21. package/api/@xmachines/play-dom/functions/createRenderer.md +1 -1
  22. package/api/@xmachines/play-dom/interfaces/CreatePlayUIOptions.md +3 -3
  23. package/api/@xmachines/play-dom/interfaces/MountOptions.md +3 -3
  24. package/api/@xmachines/play-dom/interfaces/PlayDomOptions.md +6 -6
  25. package/api/@xmachines/play-dom/type-aliases/Cleanup.md +2 -2
  26. package/api/@xmachines/play-dom/type-aliases/MountFn.md +29 -12
  27. package/api/@xmachines/play-dom-router/README.md +70 -70
  28. package/api/@xmachines/play-dom-router/classes/DomRouterBridge.md +22 -21
  29. package/api/@xmachines/{play-vue-router → play-dom-router}/classes/RouteMap.md +12 -6
  30. package/api/@xmachines/play-dom-router/functions/asCleanup.md +78 -0
  31. package/api/@xmachines/play-dom-router/functions/connectRouter.md +3 -8
  32. package/api/@xmachines/play-dom-router/functions/createBrowserHistory.md +9 -3
  33. package/api/@xmachines/play-dom-router/functions/createRouter.md +8 -14
  34. package/api/@xmachines/play-dom-router/interfaces/BasePathOptions.md +5 -5
  35. package/api/@xmachines/play-dom-router/interfaces/BrowserHistory.md +70 -26
  36. package/api/@xmachines/play-dom-router/interfaces/BrowserWindow.md +14 -14
  37. package/api/@xmachines/play-dom-router/interfaces/ConnectRouterOptions.md +8 -8
  38. package/api/@xmachines/play-dom-router/interfaces/PlayRouteEvent.md +9 -14
  39. package/api/@xmachines/play-dom-router/interfaces/RoutableActor.md +24 -21
  40. package/api/@xmachines/play-dom-router/interfaces/RouteLookupContract.md +3 -3
  41. package/api/@xmachines/play-dom-router/interfaces/RouteMapOptions.md +4 -4
  42. package/api/@xmachines/play-dom-router/interfaces/RouteMapping.md +3 -3
  43. package/api/@xmachines/play-dom-router/interfaces/RouterBridge.md +3 -3
  44. package/api/@xmachines/play-dom-router/interfaces/RouterConnection.md +8 -8
  45. package/api/@xmachines/play-dom-router/interfaces/VanillaRouter.md +36 -23
  46. package/api/@xmachines/play-dom-router/type-aliases/Cleanup.md +2 -2
  47. package/api/@xmachines/play-dom-router/variables/DISPOSE.md +2 -2
  48. package/api/@xmachines/play-react/README.md +17 -39
  49. package/api/@xmachines/play-react/classes/PlayErrorBoundary.md +14 -10
  50. package/api/@xmachines/play-react/functions/useActor.md +1 -1
  51. package/api/@xmachines/play-react/functions/usePlayView.md +1 -1
  52. package/api/@xmachines/play-react/functions/useSignalEffect.md +1 -1
  53. package/api/@xmachines/play-react/interfaces/ActorProviderProps.md +11 -11
  54. package/api/@xmachines/play-react/interfaces/PlayErrorBoundaryProps.md +6 -6
  55. package/api/@xmachines/play-react/interfaces/PlayErrorBoundaryState.md +4 -4
  56. package/api/@xmachines/play-react/interfaces/PlayUIProviderProps.md +13 -13
  57. package/api/@xmachines/play-react/interfaces/ViewContextValue.md +8 -8
  58. package/api/@xmachines/play-react/type-aliases/AnyPlayActor.md +11 -3
  59. package/api/@xmachines/play-react/variables/ActorProvider.md +1 -1
  60. package/api/@xmachines/play-react/variables/PlayRenderer.md +1 -1
  61. package/api/@xmachines/play-react/variables/PlayUIProvider.md +1 -1
  62. package/api/@xmachines/play-react/variables/schema.md +52 -0
  63. package/api/@xmachines/play-react-router/README.md +22 -50
  64. package/api/@xmachines/play-react-router/classes/ReactRouterBridge.md +17 -16
  65. package/api/@xmachines/play-react-router/classes/RouteMap.md +11 -5
  66. package/api/@xmachines/play-react-router/functions/createPlayRouterProvider.md +11 -8
  67. package/api/@xmachines/play-react-router/functions/createRouteMapFromTree.md +16 -9
  68. package/api/@xmachines/play-react-router/interfaces/PlayRouteEvent.md +9 -14
  69. package/api/@xmachines/play-react-router/interfaces/PlayRouterProviderProps.md +10 -10
  70. package/api/@xmachines/play-react-router/interfaces/RoutableActor.md +72 -0
  71. package/api/@xmachines/play-react-router/interfaces/RouteMapOptions.md +4 -4
  72. package/api/@xmachines/play-react-router/interfaces/RouteMapping.md +3 -3
  73. package/api/@xmachines/play-react-router/interfaces/RouterBridge.md +3 -3
  74. package/api/@xmachines/play-react-router/type-aliases/PlayRouterBridgeConstructor.md +17 -7
  75. package/api/@xmachines/play-react-router/type-aliases/PlayRouterProviderBaseProps.md +5 -5
  76. package/api/@xmachines/play-react-router/variables/PlayRouterProvider.md +4 -4
  77. package/api/@xmachines/play-router/README.md +104 -196
  78. package/api/@xmachines/play-router/errors/README.md +15 -0
  79. package/api/@xmachines/play-router/errors/classes/DuplicateBridgeError.md +191 -0
  80. package/api/@xmachines/play-router/errors/classes/DuplicateRoutePathError.md +175 -0
  81. package/api/@xmachines/play-router/errors/classes/EmptyRoutePathError.md +175 -0
  82. package/api/@xmachines/play-router/errors/classes/InvalidBasePathError.md +200 -0
  83. package/api/@xmachines/play-router/errors/classes/InvalidRoutePatternError.md +203 -0
  84. package/api/@xmachines/play-router/errors/classes/InvalidStateIdError.md +175 -0
  85. package/api/@xmachines/play-router/errors/classes/MissingBasePathParamError.md +199 -0
  86. package/api/@xmachines/play-router/errors/classes/RouterSyncError.md +192 -0
  87. package/api/@xmachines/play-router/errors/classes/UnknownStateTypeError.md +182 -0
  88. package/api/@xmachines/play-router/index/README.md +75 -0
  89. package/api/@xmachines/play-router/{classes → index/classes}/RouteMap.md +12 -6
  90. package/api/@xmachines/play-router/{classes → index/classes}/RouterBridgeBase.md +19 -17
  91. package/api/@xmachines/play-router/{functions → index/functions}/buildPlayRouteEvent.md +2 -2
  92. package/api/@xmachines/play-router/{functions → index/functions}/buildRouteTree.md +14 -4
  93. package/api/@xmachines/play-router/{functions → index/functions}/cleanFrameworkParams.md +3 -4
  94. package/api/@xmachines/play-router/{functions → index/functions}/createRouteMapFromTree.md +13 -6
  95. package/api/@xmachines/play-router/{functions → index/functions}/createRouterConnection.md +2 -2
  96. package/api/@xmachines/play-router/{functions → index/functions}/detectDuplicateRoutes.md +2 -2
  97. package/api/@xmachines/play-router/{functions → index/functions}/extractQuery.md +2 -2
  98. package/api/@xmachines/play-router/{functions → index/functions}/extractRouteParams.md +3 -3
  99. package/api/@xmachines/play-router/{functions → index/functions}/findRouteById.md +2 -2
  100. package/api/@xmachines/play-router/{functions → index/functions}/findRouteByPath.md +2 -2
  101. package/api/@xmachines/play-router/index/functions/getPatternParamNames.md +29 -0
  102. package/api/@xmachines/play-router/index/functions/getRequiredPatternParamNames.md +39 -0
  103. package/api/@xmachines/play-router/{functions → index/functions}/isMountableBridge.md +2 -2
  104. package/api/@xmachines/play-router/index/functions/joinBasePath.md +37 -0
  105. package/api/@xmachines/play-router/{functions → index/functions}/mountKey.md +2 -2
  106. package/api/@xmachines/play-router/index/functions/normalizeBasePath.md +43 -0
  107. package/api/@xmachines/play-router/{functions → index/functions}/openProviderBridge.md +14 -14
  108. package/api/@xmachines/play-router/index/functions/pickOwnParams.md +41 -0
  109. package/api/@xmachines/play-router/{functions → index/functions}/repointProviderBridge.md +2 -2
  110. package/api/@xmachines/play-router/index/functions/resolveBasePath.md +51 -0
  111. package/api/@xmachines/play-router/{functions → index/functions}/resolveFrameworkParams.md +11 -13
  112. package/api/@xmachines/play-router/{functions → index/functions}/sanitizePathname.md +2 -2
  113. package/api/@xmachines/play-router/index/functions/stripBasePath.md +44 -0
  114. package/api/@xmachines/play-router/{functions → index/functions}/validateRouteFormat.md +2 -2
  115. package/api/@xmachines/play-router/{functions → index/functions}/validateStateExists.md +2 -2
  116. package/api/@xmachines/play-router/{interfaces → index/interfaces}/BasePathOptions.md +6 -6
  117. package/api/@xmachines/play-router/index/interfaces/BuildPlayRouteEventOptions.md +13 -0
  118. package/api/@xmachines/play-router/index/interfaces/FrameworkParamsSource.md +47 -0
  119. package/api/@xmachines/play-router/{interfaces → index/interfaces}/LocationLike.md +6 -6
  120. package/api/@xmachines/play-router/{interfaces → index/interfaces}/MountableRouterBridge.md +9 -9
  121. package/api/@xmachines/play-router/{interfaces → index/interfaces}/OpenProviderBridgeArgs.md +13 -13
  122. package/api/@xmachines/play-router/index/interfaces/PlayRouteEvent.md +130 -0
  123. package/api/@xmachines/play-router/{interfaces → index/interfaces}/PlayRouterProviderBaseProps.md +15 -15
  124. package/api/@xmachines/play-router/index/interfaces/ResolvedBasePath.md +14 -0
  125. package/api/@xmachines/play-router/{interfaces → index/interfaces}/ResolvedRoutePath.md +6 -6
  126. package/api/@xmachines/play-router/index/interfaces/Routable.md +26 -0
  127. package/api/@xmachines/play-router/index/interfaces/RoutableActor.md +72 -0
  128. package/api/@xmachines/play-router/{interfaces → index/interfaces}/RouteInfo.md +11 -11
  129. package/api/@xmachines/play-router/{interfaces → index/interfaces}/RouteMapOptions.md +5 -5
  130. package/api/@xmachines/play-router/{interfaces → index/interfaces}/RouteMapping.md +6 -6
  131. package/api/@xmachines/play-router/index/interfaces/RouteMatch.md +12 -0
  132. package/api/@xmachines/play-router/{interfaces → index/interfaces}/RouteNode.md +13 -13
  133. package/api/@xmachines/play-router/index/interfaces/RouteObject.md +34 -0
  134. package/api/@xmachines/play-router/index/interfaces/RouteTree.md +27 -0
  135. package/api/@xmachines/play-router/{interfaces → index/interfaces}/RouteWatcherHandle.md +7 -7
  136. package/api/@xmachines/play-router/{interfaces → index/interfaces}/RouterBridge.md +5 -5
  137. package/api/@xmachines/play-router/{interfaces → index/interfaces}/RouterConnection.md +10 -10
  138. package/api/@xmachines/play-router/{interfaces → index/interfaces}/WindowLike.md +4 -4
  139. package/api/@xmachines/play-router/index/type-aliases/PlayRouterBridgeConstructor.md +46 -0
  140. package/api/@xmachines/play-router/index/type-aliases/RouteData.md +12 -0
  141. package/api/@xmachines/play-router/index/type-aliases/RouteDataResolver.md +31 -0
  142. package/api/@xmachines/play-router/index/type-aliases/RouteMetadata.md +11 -0
  143. package/api/@xmachines/{play-xstate → play-router/index}/variables/DISPOSE.md +3 -3
  144. package/api/@xmachines/play-router/index/variables/NO_BASE_PATH.md +18 -0
  145. package/api/@xmachines/play-router/index/variables/ROOT_NODE_ID.md +18 -0
  146. package/api/@xmachines/play-router/xstate/README.md +53 -0
  147. package/api/@xmachines/play-router/{functions → xstate/functions}/createRouteMap.md +8 -6
  148. package/api/@xmachines/play-router/{functions → xstate/functions}/extractMachineRoutes.md +4 -4
  149. package/api/@xmachines/play-router/xstate/functions/getNavigableRoutes.md +35 -0
  150. package/api/@xmachines/play-router/{functions → xstate/functions}/getRoutableRoutes.md +6 -6
  151. package/api/@xmachines/play-router/{functions → xstate/functions}/getRouteMappings.md +7 -7
  152. package/api/@xmachines/play-router/{functions → xstate/functions}/getTransitionReachableRoutes.md +2 -2
  153. package/api/@xmachines/play-router/{functions → xstate/functions}/isRouteReachable.md +2 -2
  154. package/api/@xmachines/play-router/{functions → xstate/functions}/machineToGraph.md +2 -2
  155. package/api/@xmachines/play-router/xstate/functions/routeExists.md +26 -0
  156. package/api/@xmachines/play-router/xstate/interfaces/MachineEdgeData.md +15 -0
  157. package/api/@xmachines/play-router/xstate/interfaces/MachineNodeData.md +17 -0
  158. package/api/@xmachines/play-router/{type-aliases → xstate/type-aliases}/MachineGraph.md +2 -2
  159. package/api/@xmachines/play-signals/README.md +2 -24
  160. package/api/@xmachines/play-signals/functions/watchSignal.md +1 -1
  161. package/api/@xmachines/play-signals/interfaces/ComputedOptions.md +2 -2
  162. package/api/@xmachines/play-signals/interfaces/SignalComputed.md +2 -2
  163. package/api/@xmachines/play-signals/interfaces/SignalOptions.md +2 -2
  164. package/api/@xmachines/play-signals/interfaces/SignalState.md +3 -3
  165. package/api/@xmachines/play-signals/interfaces/SignalWatcher.md +4 -4
  166. package/api/@xmachines/play-signals/type-aliases/Cleanup.md +2 -2
  167. package/api/@xmachines/play-signals/type-aliases/WatcherNotify.md +1 -1
  168. package/api/@xmachines/play-solid/README.md +14 -31
  169. package/api/@xmachines/play-solid/functions/useActor.md +1 -1
  170. package/api/@xmachines/play-solid/functions/usePlayView.md +1 -1
  171. package/api/@xmachines/play-solid/interfaces/ActorProviderProps.md +11 -11
  172. package/api/@xmachines/play-solid/interfaces/PlayUIProviderProps.md +13 -13
  173. package/api/@xmachines/play-solid/interfaces/ViewContextValue.md +8 -8
  174. package/api/@xmachines/play-solid/type-aliases/AnyPlayActor.md +11 -3
  175. package/api/@xmachines/play-solid/variables/ActorContext.md +1 -1
  176. package/api/@xmachines/play-solid/variables/ActorProvider.md +1 -1
  177. package/api/@xmachines/play-solid/variables/PlayRenderer.md +1 -1
  178. package/api/@xmachines/play-solid/variables/PlayUIProvider.md +1 -1
  179. package/api/@xmachines/play-solid/variables/schema.md +71 -0
  180. package/api/@xmachines/play-solid-router/README.md +31 -52
  181. package/api/@xmachines/play-solid-router/classes/RouteMap.md +11 -5
  182. package/api/@xmachines/play-solid-router/classes/SolidRouterBridge.md +30 -53
  183. package/api/@xmachines/play-solid-router/functions/createPlayRouterProvider.md +9 -8
  184. package/api/@xmachines/play-solid-router/interfaces/PlayActor.md +38 -35
  185. package/api/@xmachines/play-solid-router/interfaces/PlayRouteEvent.md +9 -14
  186. package/api/@xmachines/play-solid-router/interfaces/PlayRouterProviderProps.md +12 -12
  187. package/api/@xmachines/play-solid-router/interfaces/RoutableActor.md +72 -0
  188. package/api/@xmachines/play-solid-router/interfaces/RouteMapOptions.md +4 -4
  189. package/api/@xmachines/play-solid-router/interfaces/RouteMapping.md +5 -5
  190. package/api/@xmachines/play-solid-router/interfaces/RouterBridge.md +3 -3
  191. package/api/@xmachines/play-solid-router/type-aliases/PlayRouterBridgeConstructor.md +17 -7
  192. package/api/@xmachines/play-solid-router/type-aliases/PlayRouterProviderBaseProps.md +5 -5
  193. package/api/@xmachines/play-solid-router/type-aliases/SolidRouterHooks.md +4 -4
  194. package/api/@xmachines/play-solid-router/variables/PlayRouterProvider.md +4 -4
  195. package/api/@xmachines/play-svelte/README.md +11 -26
  196. package/api/@xmachines/play-svelte/functions/defineRegistry.md +1 -1
  197. package/api/@xmachines/play-svelte/functions/getActorContext.md +1 -1
  198. package/api/@xmachines/play-svelte/functions/getPlayViewContext.md +1 -1
  199. package/api/@xmachines/play-svelte/functions/setActorContext.md +1 -1
  200. package/api/@xmachines/play-svelte/interfaces/ActorProviderProps.md +12 -12
  201. package/api/@xmachines/play-svelte/interfaces/DefineRegistryOptions.md +4 -4
  202. package/api/@xmachines/play-svelte/interfaces/PlayUIProviderProps.md +14 -14
  203. package/api/@xmachines/play-svelte/interfaces/ViewContextValue.md +8 -8
  204. package/api/@xmachines/play-svelte/type-aliases/AnyPlayActor.md +11 -3
  205. package/api/@xmachines/play-svelte/variables/schema.md +16 -0
  206. package/api/@xmachines/play-svelte-spa-router/README.md +22 -41
  207. package/api/@xmachines/play-svelte-spa-router/classes/RouteMap.md +11 -5
  208. package/api/@xmachines/play-svelte-spa-router/classes/SvelteSpaRouterBridge.md +22 -21
  209. package/api/@xmachines/play-svelte-spa-router/functions/connectRouter.md +3 -2
  210. package/api/@xmachines/play-svelte-spa-router/interfaces/BasePathOptions.md +5 -5
  211. package/api/@xmachines/play-svelte-spa-router/interfaces/ConnectRouterOptions.md +8 -8
  212. package/api/@xmachines/play-svelte-spa-router/interfaces/PlayRouteEvent.md +9 -14
  213. package/api/@xmachines/play-svelte-spa-router/interfaces/RoutableActor.md +72 -0
  214. package/api/@xmachines/play-svelte-spa-router/interfaces/RouteMapOptions.md +4 -4
  215. package/api/@xmachines/play-svelte-spa-router/interfaces/RouteMapping.md +3 -3
  216. package/api/@xmachines/play-svelte-spa-router/interfaces/RouterBridge.md +3 -3
  217. package/api/@xmachines/play-svelte-spa-router/interfaces/RouterConnection.md +8 -8
  218. package/api/@xmachines/play-svelte-spa-router/interfaces/WindowLike.md +3 -3
  219. package/api/@xmachines/play-sveltekit-router/README.md +17 -35
  220. package/api/@xmachines/play-sveltekit-router/classes/RouteMap.md +11 -5
  221. package/api/@xmachines/play-sveltekit-router/classes/SvelteKitRouterBridge.md +22 -21
  222. package/api/@xmachines/play-sveltekit-router/functions/connectRouter.md +3 -2
  223. package/api/@xmachines/play-sveltekit-router/interfaces/BasePathOptions.md +5 -5
  224. package/api/@xmachines/play-sveltekit-router/interfaces/ConnectRouterOptions.md +8 -8
  225. package/api/@xmachines/play-sveltekit-router/interfaces/LocationLike.md +3 -3
  226. package/api/@xmachines/play-sveltekit-router/interfaces/PlayRouteEvent.md +9 -14
  227. package/api/@xmachines/play-sveltekit-router/interfaces/RoutableActor.md +72 -0
  228. package/api/@xmachines/play-sveltekit-router/interfaces/RouteMapOptions.md +4 -4
  229. package/api/@xmachines/play-sveltekit-router/interfaces/RouteMapping.md +3 -3
  230. package/api/@xmachines/play-sveltekit-router/interfaces/RouterBridge.md +3 -3
  231. package/api/@xmachines/play-sveltekit-router/interfaces/RouterConnection.md +8 -8
  232. package/api/@xmachines/play-tanstack-react-router/README.md +19 -43
  233. package/api/@xmachines/play-tanstack-react-router/classes/RouteMap.md +11 -5
  234. package/api/@xmachines/play-tanstack-react-router/classes/TanStackReactRouterBridge.md +18 -17
  235. package/api/@xmachines/play-tanstack-react-router/functions/createPlayRouterProvider.md +11 -8
  236. package/api/@xmachines/play-tanstack-react-router/functions/createRouteMapFromTree.md +16 -9
  237. package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouteEvent.md +9 -14
  238. package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouterProviderProps.md +10 -10
  239. package/api/@xmachines/play-tanstack-react-router/interfaces/RoutableActor.md +72 -0
  240. package/api/@xmachines/play-tanstack-react-router/interfaces/RouteMapOptions.md +4 -4
  241. package/api/@xmachines/play-tanstack-react-router/interfaces/RouteMapping.md +3 -3
  242. package/api/@xmachines/play-tanstack-react-router/interfaces/RouterBridge.md +3 -3
  243. package/api/@xmachines/play-tanstack-react-router/type-aliases/PlayRouterBridgeConstructor.md +17 -7
  244. package/api/@xmachines/play-tanstack-react-router/type-aliases/PlayRouterProviderBaseProps.md +5 -5
  245. package/api/@xmachines/play-tanstack-react-router/type-aliases/TanStackRouterInstance.md +1 -1
  246. package/api/@xmachines/play-tanstack-react-router/type-aliases/TanStackRouterLike.md +5 -5
  247. package/api/@xmachines/play-tanstack-react-router/variables/PlayRouterProvider.md +4 -4
  248. package/api/@xmachines/play-tanstack-router/README.md +6 -4
  249. package/api/@xmachines/play-tanstack-router/classes/TanStackRouterBridgeBase.md +17 -20
  250. package/api/@xmachines/play-tanstack-router/type-aliases/TanStackRouteMapLike.md +3 -3
  251. package/api/@xmachines/play-tanstack-router/type-aliases/TanStackRouterLike.md +5 -5
  252. package/api/@xmachines/play-tanstack-solid-router/README.md +26 -52
  253. package/api/@xmachines/play-tanstack-solid-router/classes/RouteMap.md +11 -5
  254. package/api/@xmachines/play-tanstack-solid-router/classes/TanStackSolidRouterBridge.md +49 -45
  255. package/api/@xmachines/play-tanstack-solid-router/functions/createPlayRouterProvider.md +9 -8
  256. package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayRouteEvent.md +9 -14
  257. package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayRouterProviderProps.md +10 -10
  258. package/api/@xmachines/play-tanstack-solid-router/interfaces/RoutableActor.md +72 -0
  259. package/api/@xmachines/play-tanstack-solid-router/interfaces/RouteMapOptions.md +4 -4
  260. package/api/@xmachines/play-tanstack-solid-router/interfaces/RouteMapping.md +3 -3
  261. package/api/@xmachines/play-tanstack-solid-router/interfaces/RouterBridge.md +3 -3
  262. package/api/@xmachines/play-tanstack-solid-router/type-aliases/PlayRouterBridgeConstructor.md +17 -7
  263. package/api/@xmachines/play-tanstack-solid-router/type-aliases/PlayRouterProviderBaseProps.md +5 -5
  264. package/api/@xmachines/play-tanstack-solid-router/type-aliases/TanStackRouterInstance.md +1 -1
  265. package/api/@xmachines/play-tanstack-solid-router/type-aliases/TanStackRouterLike.md +5 -5
  266. package/api/@xmachines/play-tanstack-solid-router/variables/PlayRouterProvider.md +4 -4
  267. package/api/@xmachines/play-url/README.md +69 -0
  268. package/api/@xmachines/play-url/errors/README.md +17 -0
  269. package/api/@xmachines/play-url/errors/classes/InvalidBasePathError.md +200 -0
  270. package/api/@xmachines/play-url/errors/classes/InvalidRoutePatternError.md +203 -0
  271. package/api/@xmachines/play-url/errors/classes/MissingBasePathParamError.md +199 -0
  272. package/api/@xmachines/play-url/index/README.md +65 -0
  273. package/api/@xmachines/play-url/index/functions/cleanFrameworkParams.md +39 -0
  274. package/api/@xmachines/play-url/index/functions/getCandidates.md +29 -0
  275. package/api/@xmachines/play-url/index/functions/getCompiledPattern.md +31 -0
  276. package/api/@xmachines/play-url/index/functions/getIndexKey.md +30 -0
  277. package/api/@xmachines/play-url/index/functions/getNormalizedParamNameMap.md +32 -0
  278. package/api/@xmachines/play-url/index/functions/getPatternParamNames.md +29 -0
  279. package/api/@xmachines/play-url/index/functions/getRequiredPatternParamNames.md +39 -0
  280. package/api/@xmachines/play-url/index/functions/holdsUnsubstitutedParam.md +36 -0
  281. package/api/@xmachines/play-url/index/functions/isParameterizedPattern.md +36 -0
  282. package/api/@xmachines/{play-router → play-url/index}/functions/joinBasePath.md +2 -2
  283. package/api/@xmachines/{play-router → play-url/index}/functions/normalizeBasePath.md +2 -2
  284. package/api/@xmachines/play-url/index/functions/normalizeParamNames.md +36 -0
  285. package/api/@xmachines/play-url/index/functions/parsePattern.md +27 -0
  286. package/api/@xmachines/{play-router → play-url/index}/functions/pickOwnParams.md +4 -4
  287. package/api/@xmachines/{play-router → play-url/index}/functions/resolveBasePath.md +2 -2
  288. package/api/@xmachines/play-url/index/functions/resolveFrameworkParams.md +49 -0
  289. package/api/@xmachines/{play-router → play-url/index}/functions/stripBasePath.md +2 -2
  290. package/api/@xmachines/play-url/index/interfaces/BasePathOptions.md +28 -0
  291. package/api/@xmachines/{play-router → play-url/index}/interfaces/FrameworkParamsSource.md +9 -9
  292. package/api/@xmachines/play-url/index/interfaces/GroupPart.md +15 -0
  293. package/api/@xmachines/play-url/index/interfaces/LiteralPart.md +14 -0
  294. package/api/@xmachines/play-url/index/interfaces/ParamPart.md +21 -0
  295. package/api/@xmachines/play-url/index/interfaces/ParsedPattern.md +23 -0
  296. package/api/@xmachines/play-url/index/interfaces/PatternParam.md +15 -0
  297. package/api/@xmachines/{play-router → play-url/index}/interfaces/ResolvedBasePath.md +6 -6
  298. package/api/@xmachines/play-url/index/type-aliases/PatternModifier.md +11 -0
  299. package/api/@xmachines/play-url/index/type-aliases/PatternPart.md +9 -0
  300. package/api/@xmachines/play-url/index/type-aliases/URLPatternCtor.md +22 -0
  301. package/api/@xmachines/play-url/index/type-aliases/URLPatternLike.md +68 -0
  302. package/api/@xmachines/{play-router → play-url/index}/variables/NO_BASE_PATH.md +2 -2
  303. package/api/@xmachines/play-url/index/variables/URLPattern.md +21 -0
  304. package/api/@xmachines/play-view/README.md +165 -0
  305. package/api/@xmachines/play-view/errors/README.md +17 -0
  306. package/api/@xmachines/play-view/errors/classes/ReadOnlyContextError.md +192 -0
  307. package/api/@xmachines/play-view/index/README.md +55 -0
  308. package/api/@xmachines/{play-actor → play-view/index}/functions/attachRenderErrorHandler.md +6 -6
  309. package/api/@xmachines/{play-actor → play-view/index}/functions/composePlayState.md +2 -2
  310. package/api/@xmachines/{play-actor → play-view/index}/functions/createFailureLatch.md +2 -2
  311. package/api/@xmachines/{play-actor → play-view/index}/functions/createReportGuard.md +2 -2
  312. package/api/@xmachines/{play-actor → play-view/index}/functions/createViewStoreLifecycle.md +2 -2
  313. package/api/@xmachines/{play-actor → play-view/index}/functions/guardContextWrites.md +2 -2
  314. package/api/@xmachines/{play-actor → play-view/index}/functions/refreshContextSubtree.md +2 -2
  315. package/api/@xmachines/{play-actor → play-view/index}/functions/reuseComposedState.md +3 -3
  316. package/api/@xmachines/{play-actor → play-view/index}/functions/sameViewInputs.md +2 -2
  317. package/api/@xmachines/{play-actor → play-view/index}/functions/toAtomState.md +2 -2
  318. package/api/@xmachines/{play-actor → play-view/index}/functions/typedSpec.md +2 -2
  319. package/api/@xmachines/play-view/index/interfaces/BaseActorProviderProps.md +49 -0
  320. package/api/@xmachines/{play-actor → play-view/index}/interfaces/BaseViewContextValue.md +12 -12
  321. package/api/@xmachines/{play-actor → play-view/index}/interfaces/FailureLatch.md +6 -5
  322. package/api/@xmachines/{play-actor → play-view/index}/interfaces/PlaySpec.md +8 -8
  323. package/api/@xmachines/{play-actor → play-view/index}/interfaces/ReportGuard.md +6 -6
  324. package/api/@xmachines/{play-actor → play-view/index}/interfaces/ReportGuardMessages.md +6 -6
  325. package/api/@xmachines/{play-actor → play-view/index}/interfaces/ResolveViewStoreOptions.md +5 -5
  326. package/api/@xmachines/{play-actor → play-view/index}/interfaces/ViewInputs.md +7 -7
  327. package/api/@xmachines/{play-actor → play-view/index}/interfaces/ViewStoreLifecycle.md +6 -5
  328. package/api/@xmachines/{play-actor → play-view/index}/interfaces/ViewStoreResolution.md +7 -7
  329. package/api/@xmachines/{play-actor → play-view/index}/interfaces/Viewable.md +5 -5
  330. package/api/@xmachines/play-view/index/type-aliases/ViewActor.md +26 -0
  331. package/api/@xmachines/{play-actor → play-view/index}/variables/CONTEXT_STATE_KEY.md +2 -2
  332. package/api/@xmachines/play-vue/README.md +15 -33
  333. package/api/@xmachines/play-vue/functions/defineRegistry.md +1 -1
  334. package/api/@xmachines/play-vue/functions/useActor.md +1 -1
  335. package/api/@xmachines/play-vue/functions/usePlayView.md +1 -1
  336. package/api/@xmachines/play-vue/interfaces/ActorProviderProps.md +9 -9
  337. package/api/@xmachines/play-vue/interfaces/PlayUIProviderProps.md +11 -11
  338. package/api/@xmachines/play-vue/interfaces/ViewContextValue.md +8 -8
  339. package/api/@xmachines/play-vue/type-aliases/AnyPlayActor.md +11 -3
  340. package/api/@xmachines/play-vue/type-aliases/ComponentEntry.md +1 -1
  341. package/api/@xmachines/play-vue/type-aliases/ComponentsMap.md +1 -1
  342. package/api/@xmachines/play-vue/type-aliases/DefineRegistryOptions.md +2 -2
  343. package/api/@xmachines/play-vue/variables/PlayRenderer.md +1 -1
  344. package/api/@xmachines/play-vue/variables/schema.md +71 -0
  345. package/api/@xmachines/play-vue-router/README.md +34 -77
  346. package/api/@xmachines/play-vue-router/errors/README.md +8 -0
  347. package/api/@xmachines/play-vue-router/errors/classes/VueRouterNavigationError.md +193 -0
  348. package/api/@xmachines/play-vue-router/errors/classes/VueRouterSendError.md +177 -0
  349. package/api/@xmachines/play-vue-router/index/README.md +20 -0
  350. package/api/@xmachines/play-vue-router/index/classes/RouteMap.md +157 -0
  351. package/api/@xmachines/play-vue-router/{classes → index/classes}/VueRouterBridge.md +24 -43
  352. package/api/@xmachines/play-vue-router/index/interfaces/PlayRouteEvent.md +130 -0
  353. package/api/@xmachines/play-vue-router/index/interfaces/RoutableActor.md +72 -0
  354. package/api/@xmachines/play-vue-router/{interfaces → index/interfaces}/RouteMapOptions.md +5 -5
  355. package/api/@xmachines/play-vue-router/{interfaces → index/interfaces}/RouteMapping.md +6 -6
  356. package/api/@xmachines/play-vue-router/{interfaces → index/interfaces}/RouterBridge.md +5 -5
  357. package/api/@xmachines/play-vue-router/{variables → index/variables}/PlayRouterProvider.md +4 -4
  358. package/api/@xmachines/play-xstate/README.md +153 -105
  359. package/api/@xmachines/play-xstate/errors/README.md +13 -0
  360. package/api/@xmachines/play-xstate/errors/classes/ActorThrewNonErrorError.md +199 -0
  361. package/api/@xmachines/play-xstate/errors/classes/InvalidEventError.md +198 -0
  362. package/api/@xmachines/play-xstate/errors/classes/InvalidMachineError.md +169 -0
  363. package/api/@xmachines/play-xstate/errors/classes/InvalidRouteHandlerError.md +197 -0
  364. package/api/@xmachines/play-xstate/errors/classes/InvalidRouteMetadataError.md +176 -0
  365. package/api/@xmachines/play-xstate/errors/classes/MissingRouteParamError.md +199 -0
  366. package/api/@xmachines/play-xstate/errors/classes/MissingStateIdError.md +203 -0
  367. package/api/@xmachines/play-xstate/index/README.md +38 -0
  368. package/api/@xmachines/play-xstate/index/classes/PlayerActor.md +584 -0
  369. package/api/@xmachines/play-xstate/index/functions/compose.md +224 -0
  370. package/api/@xmachines/play-xstate/index/functions/definePlayer.md +158 -0
  371. package/api/@xmachines/play-xstate/index/interfaces/PlayerConfig.md +22 -0
  372. package/api/@xmachines/play-xstate/{interfaces → index/interfaces}/PlayerFactoryResumeOptions.md +3 -3
  373. package/api/@xmachines/play-xstate/{interfaces → index/interfaces}/PlayerOptions.md +8 -8
  374. package/api/@xmachines/play-xstate/index/type-aliases/Capability.md +33 -0
  375. package/api/@xmachines/play-xstate/index/type-aliases/PlayerConstructor.md +39 -0
  376. package/api/@xmachines/play-xstate/index/type-aliases/PlayerFactory.md +27 -0
  377. package/api/@xmachines/{play-router → play-xstate/index}/variables/DISPOSE.md +3 -3
  378. package/api/@xmachines/play-xstate/with-routing/README.md +46 -0
  379. package/api/@xmachines/play-xstate/{functions → with-routing/functions}/buildRouteUrl.md +2 -2
  380. package/api/@xmachines/play-xstate/{functions → with-routing/functions}/deriveRoute.md +4 -4
  381. package/api/@xmachines/play-xstate/{functions → with-routing/functions}/formatPlayRouteTransitions.md +2 -2
  382. package/api/@xmachines/play-xstate/{functions → with-routing/functions}/isAbsoluteRoute.md +3 -3
  383. package/api/@xmachines/play-xstate/with-routing/functions/withRouting.md +36 -0
  384. package/api/@xmachines/play-xstate/{interfaces → with-routing/interfaces}/RouteContext.md +6 -6
  385. package/api/@xmachines/play-xstate/with-routing/interfaces/RouteObject.md +34 -0
  386. package/api/@xmachines/play-xstate/with-routing/type-aliases/RouteData.md +12 -0
  387. package/api/@xmachines/play-xstate/with-routing/type-aliases/RouteDataResolver.md +31 -0
  388. package/api/@xmachines/play-xstate/{type-aliases → with-routing/type-aliases}/RouteMachineConfig.md +5 -5
  389. package/api/@xmachines/play-xstate/with-routing/type-aliases/RouteMetadata.md +11 -0
  390. package/api/@xmachines/play-xstate/{type-aliases → with-routing/type-aliases}/RouteStateNode.md +21 -7
  391. package/api/@xmachines/play-xstate/with-view/README.md +31 -0
  392. package/api/@xmachines/play-xstate/with-view/functions/withView.md +32 -0
  393. package/api/@xmachines/shared/README.md +10 -32
  394. package/api/@xmachines/shared/vite-aliases/functions/xmAliases.md +1 -1
  395. package/api/@xmachines/shared/vite-aliases/functions/xmCacheDir.md +1 -1
  396. package/api/@xmachines/shared/vite-aliases/functions/xmOptimizeDeps.md +1 -1
  397. package/api/@xmachines/shared/vite-aliases/functions/xmResolve.md +1 -1
  398. package/api/@xmachines/shared/vite-aliases/functions/xmSvelteRunes.md +2 -2
  399. package/api/@xmachines/shared/vitest/functions/defineXmBrowserConfig.md +1 -1
  400. package/api/@xmachines/shared/vitest/functions/defineXmVitestConfig.md +2 -1
  401. package/api/@xmachines/shared/vitest/interfaces/XmBrowserConfigOptions.md +4 -4
  402. package/api/README.md +2 -0
  403. package/api/llms.txt +15 -10
  404. package/contributing/architecture.md +94 -66
  405. package/contributing/configuration.md +85 -26
  406. package/contributing/deployment.md +30 -28
  407. package/contributing/development.md +51 -10
  408. package/contributing/testing.md +87 -28
  409. package/examples/README.md +9 -7
  410. package/examples/form-validation.md +3 -2
  411. package/examples/multi-router-integration.md +61 -39
  412. package/examples/routing-patterns.md +15 -14
  413. package/examples/traffic-light.md +11 -5
  414. package/guides/README.md +1 -0
  415. package/guides/actor-model.md +35 -26
  416. package/guides/getting-started.md +49 -46
  417. package/guides/inspector.md +4 -4
  418. package/guides/routing.md +245 -0
  419. package/guides/state-machines.md +16 -17
  420. package/package.json +10 -9
  421. package/rfc/play.md +35 -22
  422. package/api/@xmachines/play-actor/classes/AbstractActor.md +0 -505
  423. package/api/@xmachines/play-actor/interfaces/BaseActorProviderProps.md +0 -48
  424. package/api/@xmachines/play-actor/interfaces/Routable.md +0 -14
  425. package/api/@xmachines/play-dom/type-aliases/DisposablePlayUI.md +0 -36
  426. package/api/@xmachines/play-dom-router/functions/createRouteMap.md +0 -40
  427. package/api/@xmachines/play-dom-router/interfaces/DisposableBrowserHistory.md +0 -262
  428. package/api/@xmachines/play-dom-router/interfaces/DisposableVanillaRouter.md +0 -80
  429. package/api/@xmachines/play-dom-router/interfaces/RouteMap.md +0 -122
  430. package/api/@xmachines/play-react/type-aliases/PlayRendererProps.md +0 -13
  431. package/api/@xmachines/play-react-router/functions/createRouteMap.md +0 -40
  432. package/api/@xmachines/play-react-router/interfaces/PlayActor.md +0 -70
  433. package/api/@xmachines/play-router/functions/getNavigableRoutes.md +0 -35
  434. package/api/@xmachines/play-router/functions/getPatternParamNames.md +0 -24
  435. package/api/@xmachines/play-router/functions/getRequiredPatternParamNames.md +0 -36
  436. package/api/@xmachines/play-router/functions/routeExists.md +0 -26
  437. package/api/@xmachines/play-router/interfaces/BuildPlayRouteEventOptions.md +0 -13
  438. package/api/@xmachines/play-router/interfaces/MachineEdgeData.md +0 -15
  439. package/api/@xmachines/play-router/interfaces/MachineNodeData.md +0 -17
  440. package/api/@xmachines/play-router/interfaces/PlayActor.md +0 -70
  441. package/api/@xmachines/play-router/interfaces/PlayRouteEvent.md +0 -135
  442. package/api/@xmachines/play-router/interfaces/RoutableActor.md +0 -65
  443. package/api/@xmachines/play-router/interfaces/RouteMatch.md +0 -12
  444. package/api/@xmachines/play-router/interfaces/RouteObject.md +0 -21
  445. package/api/@xmachines/play-router/interfaces/RouteTree.md +0 -21
  446. package/api/@xmachines/play-router/type-aliases/BaseRouteMapping.md +0 -13
  447. package/api/@xmachines/play-router/type-aliases/PlayRouterBridgeConstructor.md +0 -36
  448. package/api/@xmachines/play-router/type-aliases/RouteMetadata.md +0 -11
  449. package/api/@xmachines/play-solid-router/functions/createRouteMap.md +0 -40
  450. package/api/@xmachines/play-solid-router/interfaces/AbstractActor.md +0 -471
  451. package/api/@xmachines/play-solid-router/type-aliases/RoutableActor.md +0 -13
  452. package/api/@xmachines/play-svelte-spa-router/functions/createRouteMap.md +0 -40
  453. package/api/@xmachines/play-svelte-spa-router/type-aliases/RoutableActor.md +0 -9
  454. package/api/@xmachines/play-sveltekit-router/functions/createRouteMap.md +0 -40
  455. package/api/@xmachines/play-sveltekit-router/type-aliases/RoutableActor.md +0 -9
  456. package/api/@xmachines/play-tanstack-react-router/functions/createRouteMap.md +0 -40
  457. package/api/@xmachines/play-tanstack-react-router/functions/extractMachineRoutes.md +0 -29
  458. package/api/@xmachines/play-tanstack-react-router/interfaces/PlayActor.md +0 -70
  459. package/api/@xmachines/play-tanstack-react-router/interfaces/RouteNavigateEvent.md +0 -31
  460. package/api/@xmachines/play-tanstack-solid-router/functions/createRouteMap.md +0 -40
  461. package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayActor.md +0 -70
  462. package/api/@xmachines/play-tanstack-solid-router/type-aliases/RoutableActor.md +0 -13
  463. package/api/@xmachines/play-vue/interfaces/VisibilityProviderProps.md +0 -9
  464. package/api/@xmachines/play-vue/variables/getPlayViewContext.md +0 -39
  465. package/api/@xmachines/play-vue-router/functions/createRouteMap.md +0 -40
  466. package/api/@xmachines/play-vue-router/interfaces/PlayActor.md +0 -70
  467. package/api/@xmachines/play-vue-router/interfaces/PlayRouteEvent.md +0 -135
  468. package/api/@xmachines/play-vue-router/type-aliases/RoutableActor.md +0 -13
  469. package/api/@xmachines/play-vue-router/type-aliases/VueRouteMap.md +0 -13
  470. package/api/@xmachines/play-vue-router/variables/VueRouteMap.md +0 -13
  471. package/api/@xmachines/play-xstate/classes/PlayerActor.md +0 -568
  472. package/api/@xmachines/play-xstate/functions/composeGuards.md +0 -86
  473. package/api/@xmachines/play-xstate/functions/composeGuardsOr.md +0 -72
  474. package/api/@xmachines/play-xstate/functions/contextFieldMatches.md +0 -43
  475. package/api/@xmachines/play-xstate/functions/definePlayer.md +0 -78
  476. package/api/@xmachines/play-xstate/functions/eventMatches.md +0 -45
  477. package/api/@xmachines/play-xstate/functions/hasContext.md +0 -45
  478. package/api/@xmachines/play-xstate/functions/negateGuard.md +0 -67
  479. package/api/@xmachines/play-xstate/interfaces/PlayerConfig.md +0 -20
  480. package/api/@xmachines/play-xstate/interfaces/RouteObject.md +0 -17
  481. package/api/@xmachines/play-xstate/type-aliases/ComposedGuard.md +0 -19
  482. package/api/@xmachines/play-xstate/type-aliases/Guard.md +0 -36
  483. package/api/@xmachines/play-xstate/type-aliases/GuardArray.md +0 -23
  484. package/api/@xmachines/play-xstate/type-aliases/PlayerFactory.md +0 -26
  485. package/api/@xmachines/play-xstate/type-aliases/RouteMetadata.md +0 -9
@@ -2,9 +2,9 @@
2
2
 
3
3
  # @xmachines/play-actor
4
4
 
5
- Abstract Actor base class for XMachines Play Architecture.
5
+ The actor contract of the XMachines Play Architecture. It names no state machine library.
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-actor)
7
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) [![Version](https://img.shields.io/badge/version-4.0.0-blue)](https://www.npmjs.com/package/@xmachines/play-actor)
8
8
 
9
9
  ## Installation
10
10
 
@@ -15,285 +15,134 @@ pnpm add @xmachines/play-actor
15
15
  **Peer dependencies.** Install them with the package:
16
16
 
17
17
  ```bash
18
- pnpm add xstate @xmachines/play @xmachines/play-signals @xmachines/json-render-core
18
+ pnpm add @xmachines/play-signals
19
19
  ```
20
20
 
21
21
  ## Overview
22
22
 
23
- `@xmachines/play-actor` gives you `AbstractActor`, a minimal base class. The class extends the XState `Actor` class, and it enforces the **signal protocol** of the Play Architecture (RFC section 5.3). It exposes reactive TC39 Signals for the infrastructure layer. It also keeps the complete compatibility with the XState ecosystem, which includes the devtools and the inspection.
23
+ `@xmachines/play-actor` gives you `PlayActor`, the contract that every layer above reads.
24
+ An actor of XMachines holds exactly two things:
24
25
 
25
- The core protocol is small on purpose:
26
+ | Member | Type | Description |
27
+ | ------- | ------------------------- | ------------------------------------------ |
28
+ | `state` | `Signal.State<TSnapshot>` | The reactive snapshot of the current state |
29
+ | `send` | `(event: TEvent) => void` | The typed event dispatch |
26
30
 
27
- | Property | Type | Description |
28
- | -------- | ------------------------- | ---------------------------------------- |
29
- | `state` | `Signal.State<unknown>` | Reactive snapshot of current actor state |
30
- | `send` | `(event: TEvent) => void` | Event dispatch method |
31
+ **It is an interface, and no base class.** A state machine library is the concern of an
32
+ adapter, and [`@xmachines/play-xstate`](../play-xstate/README.md) is the adapter of XState
33
+ v5. This package therefore names `xstate` nowhere.
31
34
 
32
- Separate interfaces declare the optional capabilities. A concrete actor implements only the interfaces that it needs:
35
+ The contract was an abstract CLASS that extended `Actor` of `xstate`, and the class carried
36
+ no implementation at all: both of its members were abstract. Its whole effect was to force
37
+ the inheritance of XState on every consumer of the contract, including
38
+ [`@xmachines/play-view`](../play-view/README.md) and
39
+ [`@xmachines/play-router`](../play-router/README.md), which read `currentView`,
40
+ `currentRoute` and `send`, and no other member.
33
41
 
34
- | Interface | Property | Description |
35
- | ---------- | ----------------------------------------------- | ------------------------------------- |
36
- | `Routable` | `currentRoute: Signal.Computed<string \| null>` | Current route path derived from state |
37
- | `Routable` | `initialRoute: string \| null` | The route where the actor starts |
38
- | `Viewable` | `currentView: Signal.State<PlaySpec \| null>` | Current JSON-render view spec |
42
+ ### The capabilities are optional, and separate
39
43
 
40
- An adapter, such as [`@xmachines/play-xstate`](../play-xstate/README.md), makes the concrete implementations.
44
+ A capability lives with the package that holds its shared machinery. Neither one implies
45
+ the other, and neither one names an engine.
41
46
 
42
- ## API Summary
47
+ | Capability | Interface | Package | Adds |
48
+ | ---------- | ---------- | ---------------------------------------------------- | ------------------------------ |
49
+ | Routing | `Routable` | [`@xmachines/play-router`](../play-router/README.md) | `currentRoute`, `initialRoute` |
50
+ | View | `Viewable` | [`@xmachines/play-view`](../play-view/README.md) | `currentView` |
43
51
 
44
- ### `AbstractActor<TLogic, TEvent>`
52
+ ## API Summary
45
53
 
46
- The abstract base class extends the XState `Actor<TLogic>` class.
54
+ ### `PlayActor<TSnapshot, TEvent>`
47
55
 
48
- A subclass **is** the actor. Give the logic and its options to `super()`, so that one
49
- instance holds the running machine. Reach the `send` method of XState through the
50
- prototype. This class declares `send` as abstract for one reason only: to narrow the
51
- event type. TypeScript forbids a `super` call to an abstract member.
56
+ Both type parameters carry their real type through, and neither one erases it.
52
57
 
53
58
  ```ts
54
- import { AbstractActor } from "@xmachines/play-actor";
59
+ import type { PlayActor } from "@xmachines/play-actor";
55
60
  import { Signal } from "@xmachines/play-signals";
56
- import { Actor, type ActorOptions, type AnyActorLogic } from "xstate";
57
61
 
58
- class MyActor extends AbstractActor<AnyActorLogic> {
59
- // Required: reactive state signal
60
- state: Signal.State<unknown>;
62
+ type Snapshot = { readonly value: string };
63
+ type AuthEvent =
64
+ { readonly type: "auth.login"; readonly username: string } | { readonly type: "auth.logout" };
61
65
 
62
- constructor(logic: AnyActorLogic, options?: ActorOptions<AnyActorLogic>) {
63
- super(logic, options);
64
- this.state = new Signal.State(this.getSnapshot());
65
- super.subscribe((snapshot) => this.state.set(snapshot));
66
- }
66
+ class AuthActor implements PlayActor<Snapshot, AuthEvent> {
67
+ readonly state = new Signal.State<Snapshot>({ value: "guest" });
67
68
 
68
- // Required: typed event dispatch
69
- override send(event: { type: string }): void {
70
- Actor.prototype.send.call(this, event);
69
+ send(event: AuthEvent): void {
70
+ if (event.type === "auth.login") this.state.set({ value: "authenticated" });
71
71
  }
72
72
  }
73
- ```
74
-
75
- With a typed event union:
76
-
77
- ```ts
78
- // imports as in the previous example
79
- type AuthEvent = { type: "auth.login"; username: string } | { type: "auth.logout" };
80
-
81
- class AuthActor extends AbstractActor<AnyActorLogic, AuthEvent> {
82
- state = new Signal.State({ isAuthenticated: false, username: null });
83
73
 
84
- override send(event: AuthEvent): void {
85
- Actor.prototype.send.call(this, event);
86
- }
87
- }
74
+ // The snapshot type reaches the reader, and it is no `unknown`:
75
+ const actor: PlayActor<Snapshot, AuthEvent> = new AuthActor();
76
+ const value: string = actor.state.get().value;
88
77
  ```
89
78
 
90
- ### `typedSpec(spec)`
91
-
92
- This identity helper gives a view-spec literal the type `PlaySpec` at the definition site. The
93
- XState `meta` field has the type `Record<string, unknown>`. Therefore this helper is the place
94
- where the spec shape receives the compile-time check and the IDE autocomplete. The helper has no
95
- cost at run time.
79
+ A plain object satisfies the contract as well. Nothing here asks for a class.
96
80
 
97
81
  ```ts
98
- import { typedSpec } from "@xmachines/play-actor";
99
-
100
- // In an XState machine meta block:
101
- meta: {
102
- view: typedSpec({
103
- root: "root",
104
- elements: {
105
- root: {
106
- type: "Dashboard",
107
- props: { username: { $state: "/context/username" } },
108
- children: [],
109
- },
110
- },
111
- }),
112
- }
113
- ```
114
-
115
- ### `PlaySpec`
116
-
117
- This type extends the `Spec` type of `@xmachines/json-render-core`. Each derived view receives
118
- the complete machine context in its state store, under the read-only **`/context` subtree**. A
119
- spec therefore reads the context through the ordinary `{ $state: "/context/…" }` grammar: in a
120
- prop, in a `visible` condition, and in `repeat.statePath`.
121
-
122
- `/context` is read-only by design. Nothing can write to it. The machine context changes through
123
- an event only. A `$bindState` write or a `setState` write under `/context` throws an error, and
124
- the error names the event to send. This is the model: the bindable ephemeral state is at the
125
- root of the store, from `spec.state`; the domain state is in the machine, and it changes through
126
- events that are meaningful and easy to inspect.
127
-
128
- The path shows the origin of each value. `/context/params/username` comes from the URL.
129
- `/context/username` belongs to the machine. One value can never hide the other.
130
-
131
- The model projects everything, and this has two consequences. The first consequence is
132
- **exposure**. The complete context is visible to the client in the view store, which includes a
133
- debug panel, an inspector, and a validator. The context is a client-side value in each case, so
134
- keep a secret out of it.
135
-
136
- The second consequence is **emission granularity**. The emit gate compares the context field by
137
- field, at the top level only. Therefore an event that changes any field emits the view again
138
- with the same `viewKey`. A provider refreshes `/context` in the live store, and it does not seed
139
- the store again. The component does not remount, and the ephemeral view state and the focus
140
- stay. However, a new emission is still a render pass in the framework layer. Keep
141
- high-frequency ephemeral data, such as a draft for each keystroke or a timer, in the view store
142
- (`spec.state` with `$bindState`) or in a child actor. The domain state belongs in the context. A
143
- keystroke does not.
144
-
145
- ```ts
146
- import type { PlaySpec } from "@xmachines/play-actor";
147
-
148
- const spec: PlaySpec = {
149
- root: "root",
150
- elements: {
151
- root: {
152
- type: "Profile",
153
- props: { username: { $state: "/context/username" } },
154
- children: [],
155
- },
156
- },
82
+ const actor: PlayActor<Snapshot, AuthEvent> = {
83
+ state: new Signal.State<Snapshot>({ value: "guest" }),
84
+ send: () => {},
157
85
  };
158
86
  ```
159
87
 
160
- > Historical note: an earlier version had a `contextProps` field. At first the field drove an
161
- > implicit prop-enrichment pass. That pass merged the allowlisted context fields and the URL
162
- > params into the props of every element. We removed it, because it put values into components
163
- > that never asked for them, and it let URL data from the user hide machine-owned state. The
164
- > field was then a projection filter for a short time. We removed that filter too, because a
165
- > limit on what a view can read added machinery without a real problem to solve. Always
166
- > validate the **derived** view (`actor.currentView.get()`), not the raw `meta.view`. The
167
- > `state` of the derived spec carries the projection, so a tool such as `validateSpec` sees a
168
- > spec that is consistent with itself.
88
+ ### `ActorEvent`
169
89
 
170
- ### `Routable`
90
+ The minimal shape of an event that an actor receives: `{ readonly type: string }`. It is
91
+ the constraint of `TEvent`, and it is the base of `PlayEvent` of
92
+ [`@xmachines/play`](../play/README.md).
171
93
 
172
- Interface for actors that support routing.
94
+ ### An actor with a capability
173
95
 
174
- ```ts
175
- import { AbstractActor, type Routable } from "@xmachines/play-actor";
176
- import { Signal } from "@xmachines/play-signals";
177
- import type { AnyActorLogic, EventObject } from "xstate";
178
-
179
- // Implement in a concrete actor (note: RoutableActor interface is exported from @xmachines/play-router):
180
- class MyRoutableActor extends AbstractActor<AnyActorLogic> implements Routable {
181
- state = new Signal.State<{ path?: string }>({});
182
- currentRoute = new Signal.Computed<string | null>(() => this.state.get().path ?? null);
183
- initialRoute = "/";
184
- override send(event: EventObject): void {
185
- /* dispatch */
186
- }
187
- }
188
- ```
189
-
190
- ### `Viewable`
191
-
192
- Interface for actors that expose a renderable view signal.
96
+ A concrete actor implements the contract and the capabilities that it needs. It extends the
97
+ actor class of its own engine, and the contract stays out of the inheritance.
193
98
 
194
99
  ```ts
195
- import type { Viewable } from "@xmachines/play-actor";
196
- import type { PlaySpec } from "@xmachines/play-actor";
100
+ import type { PlayActor } from "@xmachines/play-actor";
101
+ import type { Routable } from "@xmachines/play-router";
197
102
  import { Signal } from "@xmachines/play-signals";
198
-
199
- // currentView carries PlaySpec | null
200
- const signal = new Signal.State<PlaySpec | null>(null);
201
- const viewable: Viewable = { currentView: signal };
202
- ```
203
-
204
- ### `BaseActorProviderProps<TRegistry>`
205
-
206
- The framework-agnostic base props. Every `ActorProvider` implementation shares them: React, Vue, Solid, and Svelte. Each framework renderer package extends this interface.
207
-
208
- ```ts
209
- import type { BaseActorProviderProps } from "@xmachines/play-actor";
210
- import type { DefineRegistryResult } from "@xmachines/json-render-react";
211
-
212
- interface ActorProviderProps extends BaseActorProviderProps<DefineRegistryResult> {
213
- fallback?: React.ReactNode;
214
- children: React.ReactNode;
103
+ import { Actor, type AnyActorLogic } from "xstate";
104
+
105
+ class MyRoutableActor
106
+ extends Actor<AnyActorLogic>
107
+ implements PlayActor<unknown, { readonly type: string }>, Routable
108
+ {
109
+ readonly state = new Signal.State<unknown>({});
110
+ readonly currentRoute = new Signal.Computed<string | null>(() => null);
111
+ readonly initialRoute = "/";
215
112
  }
216
113
  ```
217
114
 
218
- ### `BaseViewContextValue<TRegistry>`
219
-
220
- The framework-agnostic base of the `ViewContextValue` type in each framework. It holds the `spec`, `handlers`, `registry`, and `store` fields. These fields are identical in React, Vue, Solid, and Svelte.
221
-
222
- ## Testing
223
-
224
- Run the test suite for this package in isolation:
225
-
226
- ```bash
227
- # From the package directory
228
- pnpm test
229
-
230
- # From the monorepo root (workspace-scoped)
231
- pnpm --filter @xmachines/play-actor test
232
-
233
- # Watch mode
234
- pnpm --filter @xmachines/play-actor run test:watch
235
- ```
115
+ [`@xmachines/play-xstate`](../play-xstate/README.md) does exactly this, and it composes
116
+ each capability with `compose(PlayerActor, withRouting, withView)`.
236
117
 
237
118
  ## Requirements
238
119
 
239
- - **Node.js** `>=22.0.0`
120
+ - **Node.js** `>=24.0.0`
240
121
  - **TypeScript** `>=5.7` (strict mode)
241
122
  - **ESM only** — `"type": "module"`
242
123
 
243
- @xmachines/play-actor - the abstract Actor base class of the Play Architecture
124
+ @xmachines/play-actor - the actor contract of the Play Architecture
244
125
 
245
- This package gives you AbstractActor, a minimal base class. It extends the XState
246
- Actor class, and it enforces the signal protocol of the Play Architecture (RFC
247
- section 5.3).
126
+ The contract is minimal, and it names no engine: `state` and `send`. A state machine
127
+ library is the concern of an adapter, and `@xmachines/play-xstate` is the adapter of
128
+ XState v5.
248
129
 
249
- The core protocol is minimal: state and send. Two interfaces give the optional
250
- capabilities:
130
+ A capability is optional, and each one lives with the package that holds its shared
131
+ machinery:
251
132
 
252
- - Routable: for an actor with a routing support
253
- - Viewable: for an actor with a view rendering
133
+ - `Routable`, for an actor with a routing support, is in `@xmachines/play-router`, with
134
+ the bridge that reads it
135
+ - `Viewable`, for an actor with a view rendering, is in `@xmachines/play-view`, with the
136
+ view store lifecycle, the context projection and the provider guards
254
137
 
255
- The class keeps the compatibility with the XState ecosystem, such as the
256
- inspection and the devtools. It also exposes the reactive signals of the
257
- communication with the infrastructure layer.
138
+ A consumer that needs one capability installs one package, and a consumer that needs
139
+ neither installs neither. Neither capability implies the other.
258
140
 
259
141
  ## See
260
142
 
261
143
  [Play RFC](../../../rfc/play.md)
262
144
 
263
- ## Classes
264
-
265
- - [AbstractActor](classes/AbstractActor.md)
266
-
267
145
  ## Interfaces
268
146
 
269
- - [BaseActorProviderProps](interfaces/BaseActorProviderProps.md)
270
- - [BaseViewContextValue](interfaces/BaseViewContextValue.md)
271
- - [FailureLatch](interfaces/FailureLatch.md)
272
- - [PlaySpec](interfaces/PlaySpec.md)
273
- - [ReportGuard](interfaces/ReportGuard.md)
274
- - [ReportGuardMessages](interfaces/ReportGuardMessages.md)
275
- - [ResolveViewStoreOptions](interfaces/ResolveViewStoreOptions.md)
276
- - [Routable](interfaces/Routable.md)
277
- - [Viewable](interfaces/Viewable.md)
278
- - [ViewInputs](interfaces/ViewInputs.md)
279
- - [ViewStoreLifecycle](interfaces/ViewStoreLifecycle.md)
280
- - [ViewStoreResolution](interfaces/ViewStoreResolution.md)
281
-
282
- ## Variables
283
-
284
- - [CONTEXT\_STATE\_KEY](variables/CONTEXT_STATE_KEY.md)
285
-
286
- ## Functions
287
-
288
- - [attachRenderErrorHandler](functions/attachRenderErrorHandler.md)
289
- - [composePlayState](functions/composePlayState.md)
290
- - [createFailureLatch](functions/createFailureLatch.md)
291
- - [createReportGuard](functions/createReportGuard.md)
292
- - [createViewStoreLifecycle](functions/createViewStoreLifecycle.md)
293
- - [guardContextWrites](functions/guardContextWrites.md)
294
- - [refreshContextSubtree](functions/refreshContextSubtree.md)
295
- - [reuseComposedState](functions/reuseComposedState.md)
296
- - [sameViewInputs](functions/sameViewInputs.md)
297
- - [shallowEqualExcept](functions/shallowEqualExcept.md)
298
- - [toAtomState](functions/toAtomState.md)
299
- - [typedSpec](functions/typedSpec.md)
147
+ - [ActorEvent](interfaces/ActorEvent.md)
148
+ - [PlayActor](interfaces/PlayActor.md)
@@ -0,0 +1,18 @@
1
+ [API](../../../README.md) / [@xmachines/play-actor](../README.md) / ActorEvent
2
+
3
+ # Interface: ActorEvent
4
+
5
+ Defined in: [play-actor.ts:38](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v4.0.0/packages/play-actor/src/play-actor.ts#L38)
6
+
7
+ The minimal shape of an event that an actor receives.
8
+
9
+ It is the base of `PlayEvent` of `@xmachines/play`, and this package declares it again
10
+ rather than import it: the constraint must accept the event union of a CONCRETE machine,
11
+ and `PlayEvent` carries `Record<string, unknown>` in its default payload. An interface of
12
+ a union member holds no index signature, so it satisfies that default never.
13
+
14
+ ## Properties
15
+
16
+ | Property | Modifier | Type | Defined in |
17
+ | --------------------------------- | ---------- | -------- | ---------------------------------------------------------------------------------------------------------------------- |
18
+ | <a id="property-type"></a> `type` | `readonly` | `string` | [play-actor.ts:39](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v4.0.0/packages/play-actor/src/play-actor.ts#L39) |
@@ -0,0 +1,73 @@
1
+ [API](../../../README.md) / [@xmachines/play-actor](../README.md) / PlayActor
2
+
3
+ # Interface: PlayActor\<TSnapshot, TEvent\>
4
+
5
+ Defined in: [play-actor.ts:75](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v4.0.0/packages/play-actor/src/play-actor.ts#L75)
6
+
7
+ The actor contract of the Play Architecture. It names NO engine.
8
+
9
+ An actor of XMachines holds exactly two things, and this interface names both: the
10
+ reactive snapshot, and the typed event dispatch. A state machine library is the concern
11
+ of an adapter, and `@xmachines/play-xstate` is the adapter of XState v5.
12
+
13
+ Both type parameters carry their real type through, and neither one erases it.
14
+ `AbstractActor` declares `Signal.State<unknown>`, so every consumer of a snapshot reads
15
+ `unknown` and asserts its way back.
16
+
17
+ A capability is optional, and each one lives with the package that holds its shared
18
+ machinery: `Routable` is in `@xmachines/play-router`, and `Viewable` is in
19
+ `@xmachines/play-view`. Neither one names an engine either, and neither one implies the
20
+ other.
21
+
22
+ ## Example
23
+
24
+ ```typescript
25
+ import type { PlayActor } from "@xmachines/play-actor";
26
+ import type { Viewable } from "@xmachines/play-view";
27
+
28
+ // A renderer reads the view capability and the send of the contract. It names no
29
+ // engine, and it keeps the event union of the machine.
30
+ function mount<TSnapshot, TEvent extends ActorEvent>(
31
+ actor: PlayActor<TSnapshot, TEvent> & Viewable,
32
+ ): void {
33
+ actor.currentView.get();
34
+ }
35
+ ```
36
+
37
+ ## Type Parameters
38
+
39
+ | Type Parameter | Default type | Description |
40
+ | ------------------------------------------------ | ----------------------------- | ---------------------------------------------------------------------------------- |
41
+ | `TSnapshot` | `unknown` | The type of the snapshot that `state` holds, for example `SnapshotFrom<TMachine>`. |
42
+ | `TEvent` _extends_ [`ActorEvent`](ActorEvent.md) | [`ActorEvent`](ActorEvent.md) | The event union that `send` accepts, for example `EventFromLogic<TMachine>`. |
43
+
44
+ ## Properties
45
+
46
+ | Property | Modifier | Type | Description | Defined in |
47
+ | ----------------------------------- | ---------- | ------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- |
48
+ | <a id="property-state"></a> `state` | `readonly` | [`State`](../../play-signals/namespaces/Signal/classes/State.md)\<`TSnapshot`\> | The reactive snapshot of the current actor state. The infrastructure observes this signal, and it reacts to each state change. It therefore holds no coupling to the internal state machine of the actor. | [play-actor.ts:82](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v4.0.0/packages/play-actor/src/play-actor.ts#L82) |
49
+
50
+ ## Methods
51
+
52
+ ### send()
53
+
54
+ ```ts
55
+ send(event): void;
56
+ ```
57
+
58
+ Defined in: [play-actor.ts:90](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v4.0.0/packages/play-actor/src/play-actor.ts#L90)
59
+
60
+ Sends an event to the actor.
61
+
62
+ `TEvent` gives the type safety: a concrete adapter binds it to the event union of its
63
+ own machine, and the compiler then refuses an event that the machine does not declare.
64
+
65
+ #### Parameters
66
+
67
+ | Parameter | Type |
68
+ | --------- | -------- |
69
+ | `event` | `TEvent` |
70
+
71
+ #### Returns
72
+
73
+ `void`
@@ -4,7 +4,7 @@
4
4
 
5
5
  Vanilla DOM renderer for XMachines Play architecture with signal-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-4.0.0-blue)](https://www.npmjs.com/package/@xmachines/play-dom)
8
8
 
9
9
  ## Installation
10
10
 
@@ -15,14 +15,15 @@ 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 @xstate/store @xmachines/json-render-core @xmachines/json-render-dom @xmachines/json-render-xstate
19
19
  ```
20
20
 
21
21
  ## Quick Start
22
22
 
23
23
  ```typescript
24
24
  import { createRenderer, schema } from "@xmachines/play-dom";
25
- import { definePlayer } from "@xmachines/play-xstate";
25
+ import { definePlayer, compose, PlayerActor } from "@xmachines/play-xstate";
26
+ import { withView } from "@xmachines/play-xstate/view";
26
27
  import { defineCatalog } from "@xmachines/json-render-core";
27
28
  import { createMachine } from "xstate";
28
29
  import { z } from "zod";
@@ -82,7 +83,8 @@ const machine = createMachine({
82
83
  },
83
84
  },
84
85
  });
85
- const actor = definePlayer({ machine })();
86
+ // `mount` needs the view capability
87
+ const actor = definePlayer({ machine, actor: compose(PlayerActor, withView) })();
86
88
  actor.start();
87
89
 
88
90
  // 5. Mount when actor and container are ready
@@ -364,34 +366,32 @@ const Home: ComponentFn<typeof catalog, "Home"> = ({ ctx }) => {
364
366
  | Export | Kind | Description |
365
367
  | ---------------------------------------- | -------- | ------------------------------------------------------------------- |
366
368
  | `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` |
369
+ | `createPlayUI(registryResult, options?)` | function | The complete factory. It returns a `MountFn` |
368
370
  | `PlayRenderer` | class | The renderer class, with a `connect()` and `disconnect()` lifecycle |
369
371
  | `defineRegistry(catalog, options)` | function | Build a catalog-typed `DomRegistry` with typed handlers |
370
372
  | `renderSpec(...)` | function | The pure low-level Spec → DOM renderer |
371
373
  | `schema` | const | The `@xmachines/json-render-dom` schema — pass to `defineCatalog()` |
372
- | `Cleanup` | type | The release a mount returns, re-exported from `@xmachines/play` |
374
+ | `asCleanup`, `Cleanup` | | The release a mount returns, re-exported from `@xmachines/play` |
373
375
 
374
376
  ### Key Types
375
377
 
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` |
378
+ | Type | Description |
379
+ | ------------------------ | ------------------------------------------------------------------------------------------------------------- |
380
+ | `ComponentFn<C, K>` | Catalog-typed component function — returns `HTMLElement \| Text \| null` |
381
+ | `ComponentContext<C, K>` | The context of each component: `props`, `children`, `emit`, `on`, `bindings`, and `ctx` |
382
+ | `ActionFn<C, K>` | Catalog-typed action function — receives `(params, setState, state)` |
383
+ | `EventHandle` | The handle that `on(eventName)` returns. It has `emit()`, `shouldPreventDefault`, and `bound` |
384
+ | `SetState` | State updater: `(prev => next) => void` |
385
+ | `DefineRegistryResult` | The result of `defineRegistry`. It has `registry`, `handlers`, and `executeAction` |
386
+ | `PlayDomOptions` | Options for `PlayRenderer` — extends `UIProviderOptions`, adds `fallback` and `onError` |
387
+ | `CreatePlayUIOptions` | Options for `createPlayUI` — extends `UIProviderOptions`, adds `fallback` and `onError` |
388
+ | `MountOptions` | Per-mount options for `MountFn`: `store`, `loading` |
389
+ | `MountFn` | The mount: `(actor, container, options?) → Cleanup`. `createPlayUI` returns one, and a consumer may write one |
390
+ | `UIProviderOptions` | Shared options: `functions`, `validationFunctions`, `navigate`, `onRenderError` |
391
+ | `BaseComponentProps<P>` | Catalog-agnostic component props for shared component libraries |
392
+ | `DomRegistry` | Raw registry type: `Record<string, DomComponentRenderer>` |
393
+ | `DomSchema` | Type of the `schema` export |
394
+ | `Cleanup` | The release of a mount, re-exported from `@xmachines/play` |
395
395
 
396
396
  ## Rendering Behavior
397
397
 
@@ -401,18 +401,6 @@ const Home: ComponentFn<typeof catalog, "Home"> = ({ ctx }) => {
401
401
  - **A second `connect()` is safe** — a `connect()` call on a connected renderer disconnects it first.
402
402
  - **`disconnect()` clears the container** and cancels every signal watcher and store watcher.
403
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.
415
-
416
404
  @xmachines/play-dom — the vanilla DOM renderer of the XMachines Play architecture.
417
405
 
418
406
  The public API has two layers:
@@ -420,9 +408,9 @@ The public API has two layers:
420
408
  **The XMachines layer**, in this package:
421
409
 
422
410
  - `createRenderer()` — the one-call factory. It returns `mount(actor, container, options?) → disconnect`
423
- - `createPlayUI()` — the complete factory, with every option. It returns a `DisposablePlayUI`
411
+ - `createPlayUI()` — the complete factory, with every option. It returns a `MountFn`
424
412
  - `PlayRenderer` — the renderer class, with a `connect()` and `disconnect()` lifecycle
425
- - `PlayDomOptions`, `CreatePlayUIOptions`, `MountFn`, `DisposablePlayUI`, `MountOptions`
413
+ - `PlayDomOptions`, `CreatePlayUIOptions`, `MountFn`, `MountOptions`
426
414
 
427
415
  **The json-render layer**, re-exported from @xmachines/json-render-dom:
428
416
 
@@ -468,7 +456,6 @@ The public API has two layers:
468
456
  - [ComponentRegistry](type-aliases/ComponentRegistry.md)
469
457
  - [ConfirmHandler](type-aliases/ConfirmHandler.md)
470
458
  - [DefineRegistryOptions](type-aliases/DefineRegistryOptions.md)
471
- - [DisposablePlayUI](type-aliases/DisposablePlayUI.md)
472
459
  - [DomComponentRenderer](type-aliases/DomComponentRenderer.md)
473
460
  - [DomRegistry](type-aliases/DomRegistry.md)
474
461
  - [DomSchema](type-aliases/DomSchema.md)
@@ -482,6 +469,7 @@ The public API has two layers:
482
469
 
483
470
  ## Functions
484
471
 
472
+ - [asCleanup](functions/asCleanup.md)
485
473
  - [createPlayUI](functions/createPlayUI.md)
486
474
  - [createRenderer](functions/createRenderer.md)
487
475
  - [createValidationRegistry](functions/createValidationRegistry.md)