@xmachines/docs 1.1.0 → 2.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 (379) hide show
  1. package/README.md +5 -2
  2. package/api/@xmachines/play/README.md +1 -2
  3. package/api/@xmachines/play/classes/NonNullableError.md +4 -4
  4. package/api/@xmachines/play/classes/PlayError.md +4 -4
  5. package/api/@xmachines/play/functions/assertNonNullable.md +1 -1
  6. package/api/@xmachines/play/type-aliases/PlayEvent.md +2 -2
  7. package/api/@xmachines/play-actor/README.md +61 -18
  8. package/api/@xmachines/play-actor/classes/AbstractActor.md +3 -3
  9. package/api/@xmachines/play-actor/functions/attachRenderErrorHandler.md +1 -1
  10. package/api/@xmachines/play-actor/functions/composePlayState.md +26 -0
  11. package/api/@xmachines/play-actor/functions/createViewStoreLifecycle.md +21 -0
  12. package/api/@xmachines/play-actor/functions/guardContextWrites.md +41 -0
  13. package/api/@xmachines/play-actor/functions/refreshContextSubtree.md +27 -0
  14. package/api/@xmachines/play-actor/functions/reuseComposedState.md +41 -0
  15. package/api/@xmachines/play-actor/functions/shallowEqualExcept.md +28 -0
  16. package/api/@xmachines/play-actor/functions/toAtomState.md +1 -1
  17. package/api/@xmachines/play-actor/functions/typedSpec.md +23 -26
  18. package/api/@xmachines/play-actor/interfaces/BaseActorProviderProps.md +5 -5
  19. package/api/@xmachines/play-actor/interfaces/BaseViewContextValue.md +5 -5
  20. package/api/@xmachines/play-actor/interfaces/PlaySpec.md +12 -14
  21. package/api/@xmachines/play-actor/interfaces/ResolveViewStoreOptions.md +11 -0
  22. package/api/@xmachines/play-actor/interfaces/Routable.md +3 -3
  23. package/api/@xmachines/play-actor/interfaces/ViewStoreLifecycle.md +50 -0
  24. package/api/@xmachines/play-actor/interfaces/ViewStoreResolution.md +15 -0
  25. package/api/@xmachines/play-actor/interfaces/Viewable.md +2 -2
  26. package/api/@xmachines/play-actor/variables/CONTEXT_STATE_KEY.md +15 -0
  27. package/api/@xmachines/play-dom/README.md +5 -3
  28. package/api/@xmachines/play-dom/classes/PlayRenderer.md +4 -4
  29. package/api/@xmachines/play-dom/functions/createPlayUI.md +1 -1
  30. package/api/@xmachines/play-dom/functions/createRenderer.md +1 -1
  31. package/api/@xmachines/play-dom/functions/createValidationRegistry.md +22 -0
  32. package/api/@xmachines/play-dom/functions/defineRegistry.md +5 -5
  33. package/api/@xmachines/play-dom/interfaces/ComponentContext.md +9 -8
  34. package/api/@xmachines/play-dom/interfaces/CreatePlayUIOptions.md +2 -2
  35. package/api/@xmachines/play-dom/interfaces/DomRenderContext.md +2 -0
  36. package/api/@xmachines/play-dom/interfaces/FieldValidationState.md +16 -0
  37. package/api/@xmachines/play-dom/interfaces/MountOptions.md +3 -3
  38. package/api/@xmachines/play-dom/interfaces/PlayDomOptions.md +4 -4
  39. package/api/@xmachines/play-dom/interfaces/RenderSpecOptions.md +2 -0
  40. package/api/@xmachines/play-dom/interfaces/ValidationRegistry.md +21 -0
  41. package/api/@xmachines/play-dom/type-aliases/BaseComponentProps.md +10 -0
  42. package/api/@xmachines/play-dom/type-aliases/MountFn.md +1 -1
  43. package/api/@xmachines/play-dom/variables/schema.md +35 -45
  44. package/api/@xmachines/play-dom-router/README.md +1 -2
  45. package/api/@xmachines/play-dom-router/functions/connectRouter.md +1 -1
  46. package/api/@xmachines/play-dom-router/functions/createBrowserHistory.md +1 -1
  47. package/api/@xmachines/play-dom-router/functions/createRouteMap.md +1 -1
  48. package/api/@xmachines/play-dom-router/functions/createRouter.md +1 -1
  49. package/api/@xmachines/play-dom-router/interfaces/BrowserHistory.md +14 -14
  50. package/api/@xmachines/play-dom-router/interfaces/BrowserWindow.md +14 -14
  51. package/api/@xmachines/play-dom-router/interfaces/ConnectRouterOptions.md +4 -4
  52. package/api/@xmachines/play-dom-router/interfaces/PlayRouteEvent.md +6 -6
  53. package/api/@xmachines/play-dom-router/interfaces/RoutableActor.md +4 -4
  54. package/api/@xmachines/play-dom-router/interfaces/RouteLookupContract.md +3 -3
  55. package/api/@xmachines/play-dom-router/interfaces/RouteMap.md +3 -3
  56. package/api/@xmachines/play-dom-router/interfaces/RouteMapOptions.md +2 -2
  57. package/api/@xmachines/play-dom-router/interfaces/RouteMapping.md +3 -3
  58. package/api/@xmachines/play-dom-router/interfaces/RouterBridge.md +3 -3
  59. package/api/@xmachines/play-dom-router/interfaces/VanillaRouter.md +4 -4
  60. package/api/@xmachines/play-react/README.md +2 -2
  61. package/api/@xmachines/play-react/classes/PlayErrorBoundary.md +5 -5
  62. package/api/@xmachines/play-react/functions/defineRegistry.md +5 -5
  63. package/api/@xmachines/play-react/functions/useActor.md +1 -1
  64. package/api/@xmachines/play-react/functions/useFieldValidation.md +31 -0
  65. package/api/@xmachines/play-react/functions/usePlayView.md +1 -1
  66. package/api/@xmachines/play-react/functions/useSignalEffect.md +1 -1
  67. package/api/@xmachines/play-react/interfaces/ActorProviderProps.md +8 -8
  68. package/api/@xmachines/play-react/interfaces/ComponentContext.md +9 -8
  69. package/api/@xmachines/play-react/interfaces/PlayErrorBoundaryProps.md +4 -4
  70. package/api/@xmachines/play-react/interfaces/PlayErrorBoundaryState.md +3 -3
  71. package/api/@xmachines/play-react/interfaces/PlayUIProviderProps.md +8 -8
  72. package/api/@xmachines/play-react/interfaces/ViewContextValue.md +5 -5
  73. package/api/@xmachines/play-react/type-aliases/AnyPlayActor.md +1 -1
  74. package/api/@xmachines/play-react/variables/ActorProvider.md +1 -1
  75. package/api/@xmachines/play-react/variables/PlayRenderer.md +1 -1
  76. package/api/@xmachines/play-react/variables/PlayUIProvider.md +1 -1
  77. package/api/@xmachines/play-react-router/README.md +1 -2
  78. package/api/@xmachines/play-react-router/classes/ReactRouterBridge.md +4 -4
  79. package/api/@xmachines/play-react-router/classes/RouteMap.md +4 -4
  80. package/api/@xmachines/play-react-router/functions/createPlayRouterProvider.md +1 -1
  81. package/api/@xmachines/play-react-router/functions/createRouteMap.md +1 -1
  82. package/api/@xmachines/play-react-router/functions/createRouteMapFromTree.md +1 -1
  83. package/api/@xmachines/play-react-router/interfaces/PlayActor.md +5 -5
  84. package/api/@xmachines/play-react-router/interfaces/PlayRouteEvent.md +6 -6
  85. package/api/@xmachines/play-react-router/interfaces/PlayRouterProviderBaseProps.md +5 -5
  86. package/api/@xmachines/play-react-router/interfaces/PlayRouterProviderProps.md +5 -5
  87. package/api/@xmachines/play-react-router/interfaces/RouteMapOptions.md +2 -2
  88. package/api/@xmachines/play-react-router/interfaces/RouteMapping.md +3 -3
  89. package/api/@xmachines/play-react-router/interfaces/RouterBridge.md +3 -3
  90. package/api/@xmachines/play-react-router/type-aliases/PlayRouterBridgeConstructor.md +1 -1
  91. package/api/@xmachines/play-react-router/variables/PlayRouterProvider.md +1 -1
  92. package/api/@xmachines/play-router/README.md +1 -2
  93. package/api/@xmachines/play-router/classes/RouteMap.md +4 -4
  94. package/api/@xmachines/play-router/classes/RouterBridgeBase.md +4 -4
  95. package/api/@xmachines/play-router/functions/buildPlayRouteEvent.md +1 -1
  96. package/api/@xmachines/play-router/functions/buildRouteTree.md +1 -1
  97. package/api/@xmachines/play-router/functions/createRouteMap.md +1 -1
  98. package/api/@xmachines/play-router/functions/createRouteMapFromTree.md +1 -1
  99. package/api/@xmachines/play-router/functions/detectDuplicateRoutes.md +1 -1
  100. package/api/@xmachines/play-router/functions/extractMachineRoutes.md +1 -1
  101. package/api/@xmachines/play-router/functions/extractQuery.md +1 -1
  102. package/api/@xmachines/play-router/functions/extractRouteParams.md +1 -1
  103. package/api/@xmachines/play-router/functions/findRouteById.md +1 -1
  104. package/api/@xmachines/play-router/functions/findRouteByPath.md +1 -1
  105. package/api/@xmachines/play-router/functions/getNavigableRoutes.md +1 -1
  106. package/api/@xmachines/play-router/functions/getRoutableRoutes.md +1 -1
  107. package/api/@xmachines/play-router/functions/getTransitionReachableRoutes.md +1 -1
  108. package/api/@xmachines/play-router/functions/isRouteReachable.md +1 -1
  109. package/api/@xmachines/play-router/functions/machineToGraph.md +1 -1
  110. package/api/@xmachines/play-router/functions/routeExists.md +1 -1
  111. package/api/@xmachines/play-router/functions/sanitizePathname.md +1 -1
  112. package/api/@xmachines/play-router/functions/validateRouteFormat.md +1 -1
  113. package/api/@xmachines/play-router/functions/validateStateExists.md +1 -1
  114. package/api/@xmachines/play-router/interfaces/BuildPlayRouteEventOptions.md +4 -4
  115. package/api/@xmachines/play-router/interfaces/LocationLike.md +3 -3
  116. package/api/@xmachines/play-router/interfaces/MachineEdgeData.md +3 -3
  117. package/api/@xmachines/play-router/interfaces/MachineNodeData.md +5 -5
  118. package/api/@xmachines/play-router/interfaces/PlayActor.md +5 -5
  119. package/api/@xmachines/play-router/interfaces/PlayRouteEvent.md +6 -6
  120. package/api/@xmachines/play-router/interfaces/ResolvedRoutePath.md +3 -3
  121. package/api/@xmachines/play-router/interfaces/RoutableActor.md +4 -4
  122. package/api/@xmachines/play-router/interfaces/RouteInfo.md +8 -8
  123. package/api/@xmachines/play-router/interfaces/RouteMapOptions.md +2 -2
  124. package/api/@xmachines/play-router/interfaces/RouteMapping.md +3 -3
  125. package/api/@xmachines/play-router/interfaces/RouteMatch.md +3 -3
  126. package/api/@xmachines/play-router/interfaces/RouteNode.md +10 -10
  127. package/api/@xmachines/play-router/interfaces/RouteObject.md +2 -2
  128. package/api/@xmachines/play-router/interfaces/RouteTree.md +5 -5
  129. package/api/@xmachines/play-router/interfaces/RouteWatcherHandle.md +3 -3
  130. package/api/@xmachines/play-router/interfaces/RouterBridge.md +3 -3
  131. package/api/@xmachines/play-router/interfaces/WindowLike.md +3 -3
  132. package/api/@xmachines/play-router/type-aliases/MachineGraph.md +1 -1
  133. package/api/@xmachines/play-router/type-aliases/RouteMetadata.md +1 -1
  134. package/api/@xmachines/play-signals/README.md +1 -2
  135. package/api/@xmachines/play-signals/functions/watchSignal.md +1 -1
  136. package/api/@xmachines/play-signals/interfaces/ComputedOptions.md +2 -2
  137. package/api/@xmachines/play-signals/interfaces/SignalComputed.md +2 -2
  138. package/api/@xmachines/play-signals/interfaces/SignalOptions.md +2 -2
  139. package/api/@xmachines/play-signals/interfaces/SignalState.md +3 -3
  140. package/api/@xmachines/play-signals/interfaces/SignalWatcher.md +4 -4
  141. package/api/@xmachines/play-signals/type-aliases/WatcherNotify.md +1 -1
  142. package/api/@xmachines/play-solid/README.md +1 -2
  143. package/api/@xmachines/play-solid/functions/useActor.md +1 -1
  144. package/api/@xmachines/play-solid/functions/usePlayView.md +1 -1
  145. package/api/@xmachines/play-solid/interfaces/ActorProviderProps.md +8 -8
  146. package/api/@xmachines/play-solid/interfaces/PlayUIProviderProps.md +8 -8
  147. package/api/@xmachines/play-solid/interfaces/ViewContextValue.md +5 -5
  148. package/api/@xmachines/play-solid/type-aliases/AnyPlayActor.md +1 -1
  149. package/api/@xmachines/play-solid/variables/ActorContext.md +1 -1
  150. package/api/@xmachines/play-solid/variables/ActorProvider.md +1 -1
  151. package/api/@xmachines/play-solid/variables/PlayRenderer.md +1 -1
  152. package/api/@xmachines/play-solid/variables/PlayUIProvider.md +1 -1
  153. package/api/@xmachines/play-solid-router/README.md +1 -2
  154. package/api/@xmachines/play-solid-router/classes/RouteMap.md +4 -4
  155. package/api/@xmachines/play-solid-router/classes/SolidRouterBridge.md +5 -5
  156. package/api/@xmachines/play-solid-router/functions/createPlayRouterProvider.md +1 -1
  157. package/api/@xmachines/play-solid-router/functions/createRouteMap.md +1 -1
  158. package/api/@xmachines/play-solid-router/interfaces/AbstractActor.md +3 -3
  159. package/api/@xmachines/play-solid-router/interfaces/PlayActor.md +5 -5
  160. package/api/@xmachines/play-solid-router/interfaces/PlayRouteEvent.md +6 -6
  161. package/api/@xmachines/play-solid-router/interfaces/PlayRouterProviderBaseProps.md +5 -5
  162. package/api/@xmachines/play-solid-router/interfaces/PlayRouterProviderProps.md +5 -5
  163. package/api/@xmachines/play-solid-router/interfaces/RouteMapOptions.md +2 -2
  164. package/api/@xmachines/play-solid-router/interfaces/RouteMapping.md +3 -3
  165. package/api/@xmachines/play-solid-router/interfaces/RouterBridge.md +3 -3
  166. package/api/@xmachines/play-solid-router/type-aliases/PlayRouterBridgeConstructor.md +1 -1
  167. package/api/@xmachines/play-solid-router/type-aliases/RoutableActor.md +1 -1
  168. package/api/@xmachines/play-solid-router/type-aliases/SolidRouterHooks.md +4 -4
  169. package/api/@xmachines/play-solid-router/variables/PlayRouterProvider.md +1 -1
  170. package/api/@xmachines/play-svelte/README.md +20 -3
  171. package/api/@xmachines/play-svelte/functions/defineRegistry.md +1 -1
  172. package/api/@xmachines/play-svelte/functions/getActorContext.md +1 -1
  173. package/api/@xmachines/play-svelte/functions/getPlayViewContext.md +1 -1
  174. package/api/@xmachines/play-svelte/functions/setActorContext.md +1 -1
  175. package/api/@xmachines/play-svelte/interfaces/ActorProviderProps.md +8 -8
  176. package/api/@xmachines/play-svelte/interfaces/DefineRegistryOptions.md +4 -4
  177. package/api/@xmachines/play-svelte/interfaces/PlayUIProviderProps.md +11 -11
  178. package/api/@xmachines/play-svelte/interfaces/ViewContextValue.md +5 -5
  179. package/api/@xmachines/play-svelte/type-aliases/AnyPlayActor.md +1 -1
  180. package/api/@xmachines/play-svelte-spa-router/README.md +1 -2
  181. package/api/@xmachines/play-svelte-spa-router/classes/RouteMap.md +4 -4
  182. package/api/@xmachines/play-svelte-spa-router/functions/connectRouter.md +1 -1
  183. package/api/@xmachines/play-svelte-spa-router/functions/createRouteMap.md +1 -1
  184. package/api/@xmachines/play-svelte-spa-router/interfaces/ConnectRouterOptions.md +4 -4
  185. package/api/@xmachines/play-svelte-spa-router/interfaces/PlayRouteEvent.md +6 -6
  186. package/api/@xmachines/play-svelte-spa-router/interfaces/RouteMapOptions.md +2 -2
  187. package/api/@xmachines/play-svelte-spa-router/interfaces/RouteMapping.md +3 -3
  188. package/api/@xmachines/play-svelte-spa-router/interfaces/RouterBridge.md +3 -3
  189. package/api/@xmachines/play-svelte-spa-router/interfaces/WindowLike.md +3 -3
  190. package/api/@xmachines/play-svelte-spa-router/type-aliases/RoutableActor.md +1 -1
  191. package/api/@xmachines/play-sveltekit-router/README.md +1 -2
  192. package/api/@xmachines/play-sveltekit-router/classes/RouteMap.md +4 -4
  193. package/api/@xmachines/play-sveltekit-router/functions/connectRouter.md +1 -1
  194. package/api/@xmachines/play-sveltekit-router/functions/createRouteMap.md +1 -1
  195. package/api/@xmachines/play-sveltekit-router/interfaces/ConnectRouterOptions.md +4 -4
  196. package/api/@xmachines/play-sveltekit-router/interfaces/LocationLike.md +3 -3
  197. package/api/@xmachines/play-sveltekit-router/interfaces/PlayRouteEvent.md +6 -6
  198. package/api/@xmachines/play-sveltekit-router/interfaces/RouteMapOptions.md +2 -2
  199. package/api/@xmachines/play-sveltekit-router/interfaces/RouteMapping.md +3 -3
  200. package/api/@xmachines/play-sveltekit-router/interfaces/RouterBridge.md +3 -3
  201. package/api/@xmachines/play-sveltekit-router/type-aliases/RoutableActor.md +1 -1
  202. package/api/@xmachines/play-tanstack-react-router/README.md +1 -2
  203. package/api/@xmachines/play-tanstack-react-router/classes/RouteMap.md +4 -4
  204. package/api/@xmachines/play-tanstack-react-router/classes/TanStackReactRouterBridge.md +4 -4
  205. package/api/@xmachines/play-tanstack-react-router/functions/createPlayRouterProvider.md +1 -1
  206. package/api/@xmachines/play-tanstack-react-router/functions/createRouteMap.md +1 -1
  207. package/api/@xmachines/play-tanstack-react-router/functions/createRouteMapFromTree.md +1 -1
  208. package/api/@xmachines/play-tanstack-react-router/functions/extractMachineRoutes.md +1 -1
  209. package/api/@xmachines/play-tanstack-react-router/interfaces/PlayActor.md +5 -5
  210. package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouteEvent.md +6 -6
  211. package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouterProviderBaseProps.md +5 -5
  212. package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouterProviderProps.md +5 -5
  213. package/api/@xmachines/play-tanstack-react-router/interfaces/RouteMapOptions.md +2 -2
  214. package/api/@xmachines/play-tanstack-react-router/interfaces/RouteMapping.md +3 -3
  215. package/api/@xmachines/play-tanstack-react-router/interfaces/RouteNavigateEvent.md +3 -3
  216. package/api/@xmachines/play-tanstack-react-router/interfaces/RouterBridge.md +3 -3
  217. package/api/@xmachines/play-tanstack-react-router/type-aliases/PlayRouterBridgeConstructor.md +1 -1
  218. package/api/@xmachines/play-tanstack-react-router/type-aliases/TanStackRouterInstance.md +1 -1
  219. package/api/@xmachines/play-tanstack-react-router/type-aliases/TanStackRouterLike.md +4 -4
  220. package/api/@xmachines/play-tanstack-react-router/variables/PlayRouterProvider.md +1 -1
  221. package/api/@xmachines/play-tanstack-router/README.md +1 -2
  222. package/api/@xmachines/play-tanstack-router/classes/TanStackRouterBridgeBase.md +2 -2
  223. package/api/@xmachines/play-tanstack-router/type-aliases/TanStackRouteMapLike.md +3 -3
  224. package/api/@xmachines/play-tanstack-router/type-aliases/TanStackRouterLike.md +4 -4
  225. package/api/@xmachines/play-tanstack-solid-router/README.md +1 -2
  226. package/api/@xmachines/play-tanstack-solid-router/classes/RouteMap.md +4 -4
  227. package/api/@xmachines/play-tanstack-solid-router/classes/TanStackSolidRouterBridge.md +5 -5
  228. package/api/@xmachines/play-tanstack-solid-router/functions/createPlayRouterProvider.md +1 -1
  229. package/api/@xmachines/play-tanstack-solid-router/functions/createRouteMap.md +1 -1
  230. package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayActor.md +5 -5
  231. package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayRouteEvent.md +6 -6
  232. package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayRouterProviderBaseProps.md +5 -5
  233. package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayRouterProviderProps.md +5 -5
  234. package/api/@xmachines/play-tanstack-solid-router/interfaces/RouteMapOptions.md +2 -2
  235. package/api/@xmachines/play-tanstack-solid-router/interfaces/RouteMapping.md +3 -3
  236. package/api/@xmachines/play-tanstack-solid-router/interfaces/RouterBridge.md +3 -3
  237. package/api/@xmachines/play-tanstack-solid-router/type-aliases/PlayRouterBridgeConstructor.md +1 -1
  238. package/api/@xmachines/play-tanstack-solid-router/type-aliases/RoutableActor.md +1 -1
  239. package/api/@xmachines/play-tanstack-solid-router/type-aliases/TanStackRouterInstance.md +1 -1
  240. package/api/@xmachines/play-tanstack-solid-router/type-aliases/TanStackRouterLike.md +4 -4
  241. package/api/@xmachines/play-tanstack-solid-router/variables/PlayRouterProvider.md +1 -1
  242. package/api/@xmachines/play-vue/README.md +3 -3
  243. package/api/@xmachines/play-vue/functions/defineRegistry.md +1 -1
  244. package/api/@xmachines/play-vue/functions/getPlayViewContext.md +1 -1
  245. package/api/@xmachines/play-vue/functions/useActor.md +1 -1
  246. package/api/@xmachines/play-vue/functions/useFieldValidation.md +31 -0
  247. package/api/@xmachines/play-vue/interfaces/ActorProviderProps.md +5 -5
  248. package/api/@xmachines/play-vue/interfaces/PlayUIProviderProps.md +8 -8
  249. package/api/@xmachines/play-vue/interfaces/ViewContextValue.md +5 -5
  250. package/api/@xmachines/play-vue/interfaces/VisibilityProviderProps.md +1 -1
  251. package/api/@xmachines/play-vue/type-aliases/AnyPlayActor.md +1 -1
  252. package/api/@xmachines/play-vue/type-aliases/ComponentEntry.md +1 -1
  253. package/api/@xmachines/play-vue/type-aliases/ComponentsMap.md +1 -1
  254. package/api/@xmachines/play-vue/type-aliases/DefineRegistryOptions.md +2 -2
  255. package/api/@xmachines/play-vue/variables/PlayRenderer.md +1 -1
  256. package/api/@xmachines/play-vue-router/README.md +1 -2
  257. package/api/@xmachines/play-vue-router/classes/RouteMap.md +4 -4
  258. package/api/@xmachines/play-vue-router/classes/VueRouterBridge.md +5 -5
  259. package/api/@xmachines/play-vue-router/functions/createRouteMap.md +1 -1
  260. package/api/@xmachines/play-vue-router/interfaces/PlayActor.md +5 -5
  261. package/api/@xmachines/play-vue-router/interfaces/PlayRouteEvent.md +6 -6
  262. package/api/@xmachines/play-vue-router/interfaces/RouteMapOptions.md +2 -2
  263. package/api/@xmachines/play-vue-router/interfaces/RouteMapping.md +3 -3
  264. package/api/@xmachines/play-vue-router/interfaces/RouterBridge.md +3 -3
  265. package/api/@xmachines/play-vue-router/type-aliases/RoutableActor.md +1 -1
  266. package/api/@xmachines/play-vue-router/variables/PlayRouterProvider.md +1 -1
  267. package/api/@xmachines/play-xstate/README.md +36 -2
  268. package/api/@xmachines/play-xstate/classes/PlayerActor.md +28 -28
  269. package/api/@xmachines/play-xstate/functions/buildRouteUrl.md +1 -1
  270. package/api/@xmachines/play-xstate/functions/composeGuards.md +1 -1
  271. package/api/@xmachines/play-xstate/functions/composeGuardsOr.md +1 -1
  272. package/api/@xmachines/play-xstate/functions/contextFieldMatches.md +1 -1
  273. package/api/@xmachines/play-xstate/functions/definePlayer.md +1 -1
  274. package/api/@xmachines/play-xstate/functions/deriveRoute.md +1 -1
  275. package/api/@xmachines/play-xstate/functions/eventMatches.md +1 -1
  276. package/api/@xmachines/play-xstate/functions/formatPlayRouteTransitions.md +1 -1
  277. package/api/@xmachines/play-xstate/functions/hasContext.md +1 -1
  278. package/api/@xmachines/play-xstate/functions/isAbsoluteRoute.md +1 -1
  279. package/api/@xmachines/play-xstate/functions/negateGuard.md +1 -1
  280. package/api/@xmachines/play-xstate/interfaces/PlayerConfig.md +3 -3
  281. package/api/@xmachines/play-xstate/interfaces/PlayerFactoryResumeOptions.md +2 -2
  282. package/api/@xmachines/play-xstate/interfaces/PlayerOptions.md +7 -7
  283. package/api/@xmachines/play-xstate/interfaces/RouteContext.md +5 -5
  284. package/api/@xmachines/play-xstate/interfaces/RouteObject.md +2 -2
  285. package/api/@xmachines/play-xstate/type-aliases/ComposedGuard.md +1 -1
  286. package/api/@xmachines/play-xstate/type-aliases/Guard.md +1 -1
  287. package/api/@xmachines/play-xstate/type-aliases/GuardArray.md +1 -1
  288. package/api/@xmachines/play-xstate/type-aliases/PlayerFactory.md +1 -1
  289. package/api/@xmachines/play-xstate/type-aliases/RouteMachineConfig.md +4 -4
  290. package/api/@xmachines/play-xstate/type-aliases/RouteMetadata.md +1 -1
  291. package/api/@xmachines/play-xstate/type-aliases/RouteStateNode.md +4 -4
  292. package/api/@xmachines/shared/vite-aliases/functions/xmAliases.md +1 -1
  293. package/api/@xmachines/shared/vite-aliases/functions/xmCacheDir.md +1 -1
  294. package/api/@xmachines/shared/vite-aliases/functions/xmOptimizeDeps.md +1 -1
  295. package/api/@xmachines/shared/vite-aliases/functions/xmResolve.md +1 -1
  296. package/api/@xmachines/shared/vite-aliases/functions/xmSvelteRunes.md +7 -2
  297. package/api/@xmachines/shared/vitest/functions/defineXmBrowserConfig.md +1 -1
  298. package/api/@xmachines/shared/vitest/functions/defineXmVitestConfig.md +1 -1
  299. package/api/@xmachines/shared/vitest/interfaces/XmBrowserConfigOptions.md +4 -4
  300. package/contributing/architecture.md +6 -6
  301. package/contributing/deployment.md +2 -2
  302. package/contributing/development.md +5 -3
  303. package/contributing/testing.md +24 -10
  304. package/examples/@xmachines/play-dom-demo/README.md +2 -2
  305. package/examples/@xmachines/play-dom-demo/functions/createNavBar.md +1 -1
  306. package/examples/@xmachines/play-dom-demo/functions/initShell.md +6 -7
  307. package/examples/@xmachines/play-dom-demo/type-aliases/AuthCatalog.md +1 -1
  308. package/examples/@xmachines/play-dom-demo/variables/About.md +1 -1
  309. package/examples/@xmachines/play-dom-demo/variables/Contact.md +1 -1
  310. package/examples/@xmachines/play-dom-demo/variables/Dashboard.md +1 -1
  311. package/examples/@xmachines/play-dom-demo/variables/Home.md +1 -1
  312. package/examples/@xmachines/play-dom-demo/variables/Login.md +1 -1
  313. package/examples/@xmachines/play-dom-demo/variables/NavBarView.md +1 -1
  314. package/examples/@xmachines/play-dom-demo/variables/Navigation.md +1 -1
  315. package/examples/@xmachines/play-dom-demo/variables/Overview.md +1 -1
  316. package/examples/@xmachines/play-dom-demo/variables/Profile.md +1 -1
  317. package/examples/@xmachines/play-dom-demo/variables/Settings.md +1 -1
  318. package/examples/@xmachines/play-dom-demo/variables/Stats.md +1 -1
  319. package/examples/@xmachines/play-dom-demo/variables/authCatalog.md +1 -1
  320. package/examples/@xmachines/play-dom-router-demo/README.md +2 -2
  321. package/examples/@xmachines/play-react-demo/README.md +2 -2
  322. package/examples/@xmachines/play-react-demo/functions/App.md +1 -1
  323. package/examples/@xmachines/play-react-demo/type-aliases/AuthCatalog.md +1 -1
  324. package/examples/@xmachines/play-react-demo/variables/About.md +1 -1
  325. package/examples/@xmachines/play-react-demo/variables/Contact.md +1 -1
  326. package/examples/@xmachines/play-react-demo/variables/Dashboard.md +1 -1
  327. package/examples/@xmachines/play-react-demo/variables/DebugPanel.md +2 -3
  328. package/examples/@xmachines/play-react-demo/variables/Home.md +1 -1
  329. package/examples/@xmachines/play-react-demo/variables/Login.md +1 -1
  330. package/examples/@xmachines/play-react-demo/variables/NavBar.md +1 -1
  331. package/examples/@xmachines/play-react-demo/variables/NavBarView.md +1 -1
  332. package/examples/@xmachines/play-react-demo/variables/Navigation.md +1 -1
  333. package/examples/@xmachines/play-react-demo/variables/Overview.md +1 -1
  334. package/examples/@xmachines/play-react-demo/variables/Profile.md +1 -1
  335. package/examples/@xmachines/play-react-demo/variables/Settings.md +1 -1
  336. package/examples/@xmachines/play-react-demo/variables/Shell.md +1 -2
  337. package/examples/@xmachines/play-react-demo/variables/Stats.md +1 -1
  338. package/examples/@xmachines/play-react-demo/variables/authCatalog.md +1 -1
  339. package/examples/@xmachines/play-react-router-demo/README.md +2 -2
  340. package/examples/@xmachines/play-solid-demo/README.md +2 -2
  341. package/examples/@xmachines/play-solid-demo/functions/App.md +1 -1
  342. package/examples/@xmachines/play-solid-demo/type-aliases/AuthCatalog.md +1 -1
  343. package/examples/@xmachines/play-solid-demo/variables/About.md +1 -1
  344. package/examples/@xmachines/play-solid-demo/variables/Contact.md +1 -1
  345. package/examples/@xmachines/play-solid-demo/variables/Dashboard.md +1 -1
  346. package/examples/@xmachines/play-solid-demo/variables/DebugPanel.md +2 -4
  347. package/examples/@xmachines/play-solid-demo/variables/Home.md +1 -1
  348. package/examples/@xmachines/play-solid-demo/variables/Login.md +1 -1
  349. package/examples/@xmachines/play-solid-demo/variables/NavBar.md +1 -1
  350. package/examples/@xmachines/play-solid-demo/variables/NavBarView.md +1 -1
  351. package/examples/@xmachines/play-solid-demo/variables/Navigation.md +1 -1
  352. package/examples/@xmachines/play-solid-demo/variables/Overview.md +1 -1
  353. package/examples/@xmachines/play-solid-demo/variables/Profile.md +1 -1
  354. package/examples/@xmachines/play-solid-demo/variables/Settings.md +1 -1
  355. package/examples/@xmachines/play-solid-demo/variables/Shell.md +1 -2
  356. package/examples/@xmachines/play-solid-demo/variables/Stats.md +1 -1
  357. package/examples/@xmachines/play-solid-demo/variables/authCatalog.md +1 -1
  358. package/examples/@xmachines/play-solid-router-demo/README.md +2 -2
  359. package/examples/@xmachines/play-svelte-demo/README.md +2 -2
  360. package/examples/@xmachines/play-svelte-demo/type-aliases/AuthCatalog.md +1 -1
  361. package/examples/@xmachines/play-svelte-demo/variables/authCatalog.md +1 -1
  362. package/examples/@xmachines/play-svelte-spa-router-demo/README.md +2 -2
  363. package/examples/@xmachines/play-sveltekit-router-demo/README.md +2 -2
  364. package/examples/@xmachines/play-tanstack-react-router-demo/README.md +2 -2
  365. package/examples/@xmachines/play-tanstack-solid-router-demo/README.md +2 -2
  366. package/examples/@xmachines/play-vue-demo/README.md +2 -2
  367. package/examples/@xmachines/play-vue-demo/type-aliases/AuthCatalog.md +1 -1
  368. package/examples/@xmachines/play-vue-demo/variables/App.md +1 -1
  369. package/examples/@xmachines/play-vue-demo/variables/authCatalog.md +1 -1
  370. package/examples/@xmachines/play-vue-router-demo/README.md +2 -2
  371. package/examples/README.md +3 -0
  372. package/examples/form-validation.md +1 -1
  373. package/guides/README.md +6 -0
  374. package/guides/actor-model.md +1 -1
  375. package/guides/getting-started.md +4 -2
  376. package/guides/inspector.md +197 -0
  377. package/guides/state-machines.md +3 -1
  378. package/package.json +2 -2
  379. package/rfc/play.md +11 -2
package/README.md CHANGED
@@ -4,8 +4,7 @@
4
4
 
5
5
  Part of the `XMachines Play monorepo`.
6
6
 
7
- [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
8
- [![Version](https://img.shields.io/badge/version-1.1.0-blue)](https://www.npmjs.com/package/@xmachines/docs)
7
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) [![Version](https://img.shields.io/badge/version-2.0.0-blue)](https://www.npmjs.com/package/@xmachines/docs)
9
8
 
10
9
  ## Overview
11
10
 
@@ -84,6 +83,10 @@ Concept guides and tutorials for working with XMachines:
84
83
  - **[Understanding the Actor Model](guides/actor-model.md)** — Actor/infrastructure split, `AbstractActor`, and the reset invariant
85
84
  - **[Understanding TC39 Signals](guides/signals.md)** — Signal primitives and the five architectural invariants they enforce
86
85
 
86
+ **Tooling:**
87
+
88
+ - **[Inspecting a Running Actor](guides/inspector.md)** — `PlayerOptions.inspect`, the Stately inspector, late attachment, and browser-free transports
89
+
87
90
  ### Contributing & Operations
88
91
 
89
92
  Reference documentation for contributors and maintainers:
@@ -4,8 +4,7 @@
4
4
 
5
5
  > Core protocol layer for the Universal Player Architecture — defines `PlayEvent`, `PlayError`, and architectural contracts enabling loose coupling between business logic and runtime adapters.
6
6
 
7
- [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
8
- [![Version](https://img.shields.io/badge/version-1.1.0-blue)](https://www.npmjs.com/package/@xmachines/play)
7
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) [![Version](https://img.shields.io/badge/version-2.0.0-blue)](https://www.npmjs.com/package/@xmachines/play)
9
8
 
10
9
  Part of the [XMachines JS monorepo](../../README.md).
11
10
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  # Class: NonNullableError
4
4
 
5
- Defined in: [packages/play/src/errors.ts:111](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.1.0/packages/play/src/errors.ts#L111)
5
+ Defined in: [packages/play/src/errors.ts:111](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v2.0.0/packages/play/src/errors.ts#L111)
6
6
 
7
7
  Thrown by [assertNonNullable](../functions/assertNonNullable.md) when a value is `null` or `undefined`.
8
8
 
@@ -35,7 +35,7 @@ try {
35
35
  new NonNullableError(message, options?): NonNullableError;
36
36
  ```
37
37
 
38
- Defined in: [packages/play/src/errors.ts:112](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.1.0/packages/play/src/errors.ts#L112)
38
+ Defined in: [packages/play/src/errors.ts:112](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v2.0.0/packages/play/src/errors.ts#L112)
39
39
 
40
40
  #### Parameters
41
41
 
@@ -57,10 +57,10 @@ Defined in: [packages/play/src/errors.ts:112](https://gitlab.com/xmachin-es/xmac
57
57
  | Property | Modifier | Type | Description | Inherited from | Defined in |
58
58
  | ------------------------------------------------------- | ---------- | --------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- |
59
59
  | <a id="property-cause"></a> `cause?` | `public` | `unknown` | - | [`PlayError`](PlayError.md).[`cause`](PlayError.md#property-cause) | - |
60
- | <a id="property-code"></a> `code` | `readonly` | `string` | A stable, machine-readable error identifier. Error codes follow the `PLAY_<PACKAGE>_<DESCRIPTION>` naming convention and are guaranteed stable across patch and minor releases within a major version. Never match on `.message` — always match on `.code` or the subclass. | [`PlayError`](PlayError.md).[`code`](PlayError.md#property-code) | [packages/play/src/errors.ts:75](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.1.0/packages/play/src/errors.ts#L75) |
60
+ | <a id="property-code"></a> `code` | `readonly` | `string` | A stable, machine-readable error identifier. Error codes follow the `PLAY_<PACKAGE>_<DESCRIPTION>` naming convention and are guaranteed stable across patch and minor releases within a major version. Never match on `.message` — always match on `.code` or the subclass. | [`PlayError`](PlayError.md).[`code`](PlayError.md#property-code) | [packages/play/src/errors.ts:75](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v2.0.0/packages/play/src/errors.ts#L75) |
61
61
  | <a id="property-message"></a> `message` | `public` | `string` | - | [`PlayError`](PlayError.md).[`message`](PlayError.md#property-message) | - |
62
62
  | <a id="property-name"></a> `name` | `public` | `string` | - | [`PlayError`](PlayError.md).[`name`](PlayError.md#property-name) | - |
63
- | <a id="property-scope"></a> `scope` | `readonly` | `string` | The class or module that threw this error (e.g. `"RouterBridgeBase"`). | [`PlayError`](PlayError.md).[`scope`](PlayError.md#property-scope) | [packages/play/src/errors.ts:66](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.1.0/packages/play/src/errors.ts#L66) |
63
+ | <a id="property-scope"></a> `scope` | `readonly` | `string` | The class or module that threw this error (e.g. `"RouterBridgeBase"`). | [`PlayError`](PlayError.md).[`scope`](PlayError.md#property-scope) | [packages/play/src/errors.ts:66](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v2.0.0/packages/play/src/errors.ts#L66) |
64
64
  | <a id="property-stack"></a> `stack?` | `public` | `string` | - | [`PlayError`](PlayError.md).[`stack`](PlayError.md#property-stack) | - |
65
65
  | <a id="property-stacktracelimit"></a> `stackTraceLimit` | `static` | `number` | The `Error.stackTraceLimit` property specifies the number of stack frames collected by a stack trace (whether generated by `new Error().stack` or `Error.captureStackTrace(obj)`). The default value is `10` but may be set to any valid JavaScript number. Changes will affect any stack trace captured _after_ the value has been changed. If set to a non-number value, or set to a negative number, stack traces will not capture any frames. | [`PlayError`](PlayError.md).[`stackTraceLimit`](PlayError.md#property-stacktracelimit) | - |
66
66
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  # Class: PlayError
4
4
 
5
- Defined in: [packages/play/src/errors.ts:64](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.1.0/packages/play/src/errors.ts#L64)
5
+ Defined in: [packages/play/src/errors.ts:64](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v2.0.0/packages/play/src/errors.ts#L64)
6
6
 
7
7
  Base class for all typed runtime errors thrown by `@xmachines/*` packages.
8
8
 
@@ -87,7 +87,7 @@ new PlayError(
87
87
  options?): PlayError;
88
88
  ```
89
89
 
90
- Defined in: [packages/play/src/errors.ts:83](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.1.0/packages/play/src/errors.ts#L83)
90
+ Defined in: [packages/play/src/errors.ts:83](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v2.0.0/packages/play/src/errors.ts#L83)
91
91
 
92
92
  #### Parameters
93
93
 
@@ -113,10 +113,10 @@ Error.constructor;
113
113
  | Property | Modifier | Type | Description | Inherited from | Defined in |
114
114
  | ------------------------------------------------------- | ---------- | --------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------- | -------------------------------------------------------------------------------------------------------------------------- |
115
115
  | <a id="property-cause"></a> `cause?` | `public` | `unknown` | - | `Error.cause` | - |
116
- | <a id="property-code"></a> `code` | `readonly` | `string` | A stable, machine-readable error identifier. Error codes follow the `PLAY_<PACKAGE>_<DESCRIPTION>` naming convention and are guaranteed stable across patch and minor releases within a major version. Never match on `.message` — always match on `.code` or the subclass. | - | [packages/play/src/errors.ts:75](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.1.0/packages/play/src/errors.ts#L75) |
116
+ | <a id="property-code"></a> `code` | `readonly` | `string` | A stable, machine-readable error identifier. Error codes follow the `PLAY_<PACKAGE>_<DESCRIPTION>` naming convention and are guaranteed stable across patch and minor releases within a major version. Never match on `.message` — always match on `.code` or the subclass. | - | [packages/play/src/errors.ts:75](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v2.0.0/packages/play/src/errors.ts#L75) |
117
117
  | <a id="property-message"></a> `message` | `public` | `string` | - | `Error.message` | - |
118
118
  | <a id="property-name"></a> `name` | `public` | `string` | - | `Error.name` | - |
119
- | <a id="property-scope"></a> `scope` | `readonly` | `string` | The class or module that threw this error (e.g. `"RouterBridgeBase"`). | - | [packages/play/src/errors.ts:66](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.1.0/packages/play/src/errors.ts#L66) |
119
+ | <a id="property-scope"></a> `scope` | `readonly` | `string` | The class or module that threw this error (e.g. `"RouterBridgeBase"`). | - | [packages/play/src/errors.ts:66](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v2.0.0/packages/play/src/errors.ts#L66) |
120
120
  | <a id="property-stack"></a> `stack?` | `public` | `string` | - | `Error.stack` | - |
121
121
  | <a id="property-stacktracelimit"></a> `stackTraceLimit` | `static` | `number` | The `Error.stackTraceLimit` property specifies the number of stack frames collected by a stack trace (whether generated by `new Error().stack` or `Error.captureStackTrace(obj)`). The default value is `10` but may be set to any valid JavaScript number. Changes will affect any stack trace captured _after_ the value has been changed. If set to a non-number value, or set to a negative number, stack traces will not capture any frames. | `Error.stackTraceLimit` | - |
122
122
 
@@ -6,7 +6,7 @@
6
6
  function assertNonNullable<V>(value, name?): NonNullable<V>;
7
7
  ```
8
8
 
9
- Defined in: [packages/play/src/utils.ts:39](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.1.0/packages/play/src/utils.ts#L39)
9
+ Defined in: [packages/play/src/utils.ts:39](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v2.0.0/packages/play/src/utils.ts#L39)
10
10
 
11
11
  Assert that `value` is neither `null` nor `undefined`, and return it typed
12
12
  as `NonNullable<V>` — combining the guard and the narrowed value in a single
@@ -6,7 +6,7 @@
6
6
  type PlayEvent<TPayload> = object & TPayload;
7
7
  ```
8
8
 
9
- Defined in: [packages/play/src/types.ts:69](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.1.0/packages/play/src/types.ts#L69)
9
+ Defined in: [packages/play/src/types.ts:69](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v2.0.0/packages/play/src/types.ts#L69)
10
10
 
11
11
  Generic event type for Play Architecture
12
12
 
@@ -34,7 +34,7 @@ Robot, and other state machine libraries.
34
34
 
35
35
  | Name | Type | Defined in |
36
36
  | ------ | -------- | ------------------------------------------------------------------------------------------------------------------------ |
37
- | `type` | `string` | [packages/play/src/types.ts:70](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.1.0/packages/play/src/types.ts#L70) |
37
+ | `type` | `string` | [packages/play/src/types.ts:70](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v2.0.0/packages/play/src/types.ts#L70) |
38
38
 
39
39
  ## Type Parameters
40
40
 
@@ -4,8 +4,7 @@
4
4
 
5
5
  Abstract Actor base class for XMachines Play Architecture.
6
6
 
7
- [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
8
- [![Version](https://img.shields.io/badge/version-1.1.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-2.0.0-blue)](https://www.npmjs.com/package/@xmachines/play-actor)
9
8
 
10
9
  Part of the [xmachines-js monorepo](../../README.md).
11
10
 
@@ -18,7 +17,7 @@ pnpm add @xmachines/play-actor
18
17
  **Peer dependencies** — install alongside the package:
19
18
 
20
19
  ```bash
21
- pnpm add xstate @xmachines/play @xmachines/play-signals
20
+ pnpm add xstate @xmachines/play @xmachines/play-signals @xmachines/json-render-core
22
21
  ```
23
22
 
24
23
  ## Overview
@@ -89,27 +88,25 @@ class AuthActor extends AbstractActor<AnyActorLogic, AuthEvent> {
89
88
  }
90
89
  ```
91
90
 
92
- ### `typedSpec<TContext>(spec)`
91
+ ### `typedSpec(spec)`
93
92
 
94
- Identity helper that constrains a `PlaySpec` object's `contextProps` to keys of a specific machine context type. This enables compile-time validation and IDE autocomplete without any runtime cost.
93
+ Identity helper that types a view-spec literal as `PlaySpec` at the definition site. XState's
94
+ `meta` field is `Record<string, unknown>`, so this is where the spec shape gets compile-time
95
+ validation and IDE autocomplete — without any runtime cost.
95
96
 
96
97
  ```ts
97
98
  import { typedSpec } from "@xmachines/play-actor";
98
99
 
99
- interface DashboardCtx {
100
- username: string;
101
- params: Record<string, string>;
102
- query: Record<string, string>;
103
- }
104
-
105
100
  // In an XState machine meta block:
106
101
  meta: {
107
- view: typedSpec<DashboardCtx>({
102
+ view: typedSpec({
108
103
  root: "root",
109
- contextProps: ["username"], // ✓ key of DashboardCtx
110
- // contextProps: ["usernaem"], // ✗ compile error
111
104
  elements: {
112
- root: { type: "Dashboard", props: {}, children: [] },
105
+ root: {
106
+ type: "Dashboard",
107
+ props: { username: { $state: "/context/username" } },
108
+ children: [],
109
+ },
113
110
  },
114
111
  }),
115
112
  }
@@ -117,20 +114,53 @@ meta: {
117
114
 
118
115
  ### `PlaySpec`
119
116
 
120
- Extends `@xmachines/json-render-core`'s `Spec` with an optional `contextProps` field — an explicit allowlist of machine context fields that are merged into element props at view derivation time.
117
+ Extends `@xmachines/json-render-core`'s `Spec`. The machine's whole context is projected into
118
+ every derived view's state store under the read-only **`/context` subtree**, so specs read it
119
+ through the ordinary `{ $state: "/context/…" }` grammar — in props, `visible` conditions, and
120
+ `repeat.statePath` alike.
121
+
122
+ `/context` is read-only by design — never writable. Machine context changes only through events;
123
+ a `$bindState` or `setState` write under `/context` throws with an error naming the event to
124
+ send instead. This is the model: bindable ephemeral state lives at the store root (seeded from
125
+ `spec.state`), domain state lives in the machine and changes via meaningful, inspectable events.
126
+
127
+ Provenance is legible in the path: `/context/params/username` is visibly URL-derived, while
128
+ `/context/username` is machine-owned — one can never shadow the other.
129
+
130
+ Two consequences of the everything-is-projected model are worth knowing. First, **exposure**:
131
+ the whole context is client-visible in the view store (debug panels, inspectors, validators) —
132
+ context is a client-side value either way, so keep secrets out of it. Second, **emission
133
+ granularity**: the emit gate compares context per top-level field, so an event that changes any
134
+ field re-emits the view with the same `viewKey`. Providers refresh `/context` in the live store
135
+ rather than reseeding it — no remount, ephemeral view state and focus survive — but a
136
+ re-emission is still a render pass in the framework layer. Keep high-frequency ephemeral data
137
+ (per-keystroke drafts, timers) in the view store (`spec.state` + `$bindState`) or a child actor
138
+ rather than in machine context; domain state belongs in context, keystrokes do not.
121
139
 
122
140
  ```ts
123
141
  import type { PlaySpec } from "@xmachines/play-actor";
124
142
 
125
143
  const spec: PlaySpec = {
126
144
  root: "root",
127
- contextProps: ["username"], // only these keys are exposed to components
128
145
  elements: {
129
- root: { type: "Profile", props: { username: undefined }, children: [] },
146
+ root: {
147
+ type: "Profile",
148
+ props: { username: { $state: "/context/username" } },
149
+ children: [],
150
+ },
130
151
  },
131
152
  };
132
153
  ```
133
154
 
155
+ > Historical note: earlier versions had a `contextProps` field. It first drove an implicit
156
+ > prop-enrichment pass that merged allowlisted context fields and URL params into every
157
+ > element's props (removed — it injected values into components that never asked for them and
158
+ > let user-manipulable URL data silently shadow machine-owned state), and was then briefly a
159
+ > projection filter (removed — filtering what a view may read added machinery without a real
160
+ > problem to solve). Validate the **derived** view (`actor.currentView.get()`), not the raw
161
+ > `meta.view`: the derived spec's `state` carries the projection, so tools like `validateSpec`
162
+ > see a self-consistent spec.
163
+
134
164
  ### `Routable`
135
165
 
136
166
  Interface for actors that support routing.
@@ -230,11 +260,24 @@ reactive signals for Infrastructure layer communication.
230
260
  - [BaseActorProviderProps](interfaces/BaseActorProviderProps.md)
231
261
  - [BaseViewContextValue](interfaces/BaseViewContextValue.md)
232
262
  - [PlaySpec](interfaces/PlaySpec.md)
263
+ - [ResolveViewStoreOptions](interfaces/ResolveViewStoreOptions.md)
233
264
  - [Routable](interfaces/Routable.md)
234
265
  - [Viewable](interfaces/Viewable.md)
266
+ - [ViewStoreLifecycle](interfaces/ViewStoreLifecycle.md)
267
+ - [ViewStoreResolution](interfaces/ViewStoreResolution.md)
268
+
269
+ ## Variables
270
+
271
+ - [CONTEXT\_STATE\_KEY](variables/CONTEXT_STATE_KEY.md)
235
272
 
236
273
  ## Functions
237
274
 
238
275
  - [attachRenderErrorHandler](functions/attachRenderErrorHandler.md)
276
+ - [composePlayState](functions/composePlayState.md)
277
+ - [createViewStoreLifecycle](functions/createViewStoreLifecycle.md)
278
+ - [guardContextWrites](functions/guardContextWrites.md)
279
+ - [refreshContextSubtree](functions/refreshContextSubtree.md)
280
+ - [reuseComposedState](functions/reuseComposedState.md)
281
+ - [shallowEqualExcept](functions/shallowEqualExcept.md)
239
282
  - [toAtomState](functions/toAtomState.md)
240
283
  - [typedSpec](functions/typedSpec.md)
@@ -2,7 +2,7 @@
2
2
 
3
3
  # Abstract Class: AbstractActor\<TLogic, TEvent\>
4
4
 
5
- Defined in: [packages/play-actor/src/abstract-actor.ts:193](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.1.0/packages/play-actor/src/abstract-actor.ts#L193)
5
+ Defined in: [packages/play-actor/src/abstract-actor.ts:190](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v2.0.0/packages/play-actor/src/abstract-actor.ts#L190)
6
6
 
7
7
  Abstract base class for Play Architecture actors.
8
8
 
@@ -75,7 +75,7 @@ Actor<TLogic>.constructor
75
75
  | <a id="property-ref"></a> `ref` | `public` | [`ActorRef`](https://www.jsdocs.io/package/xstate#ActorRef)\<[`SnapshotFrom`](https://www.jsdocs.io/package/xstate#SnapshotFrom)\<`TLogic`\>, [`EventFromLogic`](https://www.jsdocs.io/package/xstate#EventFromLogic)\<`TLogic`\>, [`EmittedFrom`](https://www.jsdocs.io/package/xstate#EmittedFrom)\<`TLogic`\>\> | - | `Actor.ref` | - |
76
76
  | <a id="property-sessionid"></a> `sessionId` | `public` | `string` | The globally unique process ID for this invocation. | `Actor.sessionId` | - |
77
77
  | <a id="property-src"></a> `src` | `public` | \| `string` \| [`AnyActorLogic`](https://www.jsdocs.io/package/xstate#AnyActorLogic) | - | `Actor.src` | - |
78
- | <a id="property-state"></a> `state` | `abstract` | [`State`](../../play-signals/namespaces/Signal/classes/State.md)\<`unknown`\> | Reactive snapshot of current actor state. Infrastructure observes this signal to react to state changes without directly coupling to the actor's internal state machine implementation. | - | [packages/play-actor/src/abstract-actor.ts:203](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.1.0/packages/play-actor/src/abstract-actor.ts#L203) |
78
+ | <a id="property-state"></a> `state` | `abstract` | [`State`](../../play-signals/namespaces/Signal/classes/State.md)\<`unknown`\> | Reactive snapshot of current actor state. Infrastructure observes this signal to react to state changes without directly coupling to the actor's internal state machine implementation. | - | [packages/play-actor/src/abstract-actor.ts:200](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v2.0.0/packages/play-actor/src/abstract-actor.ts#L200) |
79
79
  | <a id="property-system"></a> `system` | `public` | [`AnyActorSystem`](https://www.jsdocs.io/package/xstate#AnyActorSystem) | The system to which this actor belongs. | `Actor.system` | - |
80
80
  | <a id="property-systemid"></a> `systemId` | `public` | `string` \| `undefined` | - | `Actor.systemId` | - |
81
81
 
@@ -246,7 +246,7 @@ Actor.select;
246
246
  abstract send(event): void;
247
247
  ```
248
248
 
249
- Defined in: [packages/play-actor/src/abstract-actor.ts:218](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.1.0/packages/play-actor/src/abstract-actor.ts#L218)
249
+ Defined in: [packages/play-actor/src/abstract-actor.ts:215](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v2.0.0/packages/play-actor/src/abstract-actor.ts#L215)
250
250
 
251
251
  Send event to Actor.
252
252
 
@@ -6,7 +6,7 @@
6
6
  function attachRenderErrorHandler<TRegistry>(registry, handler): TRegistry;
7
7
  ```
8
8
 
9
- Defined in: [packages/play-actor/src/provider-guards.ts:64](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.1.0/packages/play-actor/src/provider-guards.ts#L64)
9
+ Defined in: [packages/play-actor/src/provider-guards.ts:64](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v2.0.0/packages/play-actor/src/provider-guards.ts#L64)
10
10
 
11
11
  Clone a component registry and inject an `onRenderError` handler.
12
12
 
@@ -0,0 +1,26 @@
1
+ [API](../../../README.md) / [@xmachines/play-actor](../README.md) / composePlayState
2
+
3
+ # Function: composePlayState()
4
+
5
+ ```ts
6
+ function composePlayState(authoredState, slice): Record<string, unknown> | undefined;
7
+ ```
8
+
9
+ Defined in: [packages/play-actor/src/context-projection.ts:220](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v2.0.0/packages/play-actor/src/context-projection.ts#L220)
10
+
11
+ Compose a view's effective state: the authored `spec.state` plus the
12
+ `/context` slice.
13
+
14
+ When the authored state already declares the reserved key, the projection is
15
+ skipped (authored state wins) with a dev warning — no existing spec breaks.
16
+
17
+ ## Parameters
18
+
19
+ | Parameter | Type | Description |
20
+ | --------------- | ---------------------------------------------- | --------------------------------------------------------------------------------- |
21
+ | `authoredState` | `Record`\<`string`, `unknown`\> \| `undefined` | The raw `meta.view.state` (may be anything; sanitized by the caller/toAtomState). |
22
+ | `slice` | `Record`\<`string`, `unknown`\> \| `undefined` | The machine's context, projected wholesale. |
23
+
24
+ ## Returns
25
+
26
+ `Record`\<`string`, `unknown`\> \| `undefined`
@@ -0,0 +1,21 @@
1
+ [API](../../../README.md) / [@xmachines/play-actor](../README.md) / createViewStoreLifecycle
2
+
3
+ # Function: createViewStoreLifecycle()
4
+
5
+ ```ts
6
+ function createViewStoreLifecycle(createStore): ViewStoreLifecycle;
7
+ ```
8
+
9
+ Defined in: [packages/play-actor/src/view-store-lifecycle.ts:89](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v2.0.0/packages/play-actor/src/view-store-lifecycle.ts#L89)
10
+
11
+ Create a lifecycle coordinator.
12
+
13
+ ## Parameters
14
+
15
+ | Parameter | Type | Description |
16
+ | ------------- | ------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------- |
17
+ | `createStore` | (`seed`) => `StateStore` | Framework-supplied store factory; receives the proto-safe seed (`toAtomState(view.state)` — the composed state already carries /context). |
18
+
19
+ ## Returns
20
+
21
+ [`ViewStoreLifecycle`](../interfaces/ViewStoreLifecycle.md)
@@ -0,0 +1,41 @@
1
+ [API](../../../README.md) / [@xmachines/play-actor](../README.md) / guardContextWrites
2
+
3
+ # Function: guardContextWrites()
4
+
5
+ ```ts
6
+ function guardContextWrites(store): StateStore;
7
+ ```
8
+
9
+ Defined in: [packages/play-actor/src/context-projection.ts:146](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v2.0.0/packages/play-actor/src/context-projection.ts#L146)
10
+
11
+ Wrap a StateStore so writes under `/context` are rejected.
12
+
13
+ Applied by providers to the store they hand to bindings and action handlers
14
+ (`$bindState`, `setState`, chained `set`). The provider keeps the unwrapped
15
+ store and refreshes the projection through it — read-only to the spec, not
16
+ to the machinery.
17
+
18
+ A write whose value is **identical** to the current one passes silently:
19
+ `setState`-style handlers read the full snapshot, transform it, and write
20
+ the whole object back — the untouched `context` key flowing through that
21
+ round-trip is not a mutation attempt. Only a write that would actually
22
+ change the subtree throws.
23
+
24
+ Reads pass through untouched, and every member is delegated explicitly
25
+ rather than spread: a consumer-supplied store may be a class instance, whose
26
+ methods live on the prototype and would not survive `{ ...store }` — the
27
+ first render would die on `store.getSnapshot is not a function`. The wrapper
28
+ is built once per resolved store, so the delegating `getSnapshot`/`subscribe`
29
+ identities stay stable for `useSyncExternalStore`-style consumers.
30
+
31
+ ## Parameters
32
+
33
+ | Parameter | Type | Description |
34
+ | --------- | ------------ | --------------------- |
35
+ | `store` | `StateStore` | The underlying store. |
36
+
37
+ ## Returns
38
+
39
+ `StateStore`
40
+
41
+ A store with guarded `set`/`update`.
@@ -0,0 +1,27 @@
1
+ [API](../../../README.md) / [@xmachines/play-actor](../README.md) / refreshContextSubtree
2
+
3
+ # Function: refreshContextSubtree()
4
+
5
+ ```ts
6
+ function refreshContextSubtree(store, view): void;
7
+ ```
8
+
9
+ Defined in: [packages/play-actor/src/context-projection.ts:203](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v2.0.0/packages/play-actor/src/context-projection.ts#L203)
10
+
11
+ Refresh a live store's `/context` subtree from a derived view's composed
12
+ state. A same-`viewKey` emission means only the projection changed — the
13
+ subtree is replaced wholesale (never merged per-field: `update` cannot
14
+ delete keys) and every ephemeral root-level value is left untouched.
15
+ No-op when the view carries no slice or the store already holds it.
16
+
17
+ ## Parameters
18
+
19
+ | Parameter | Type | Description |
20
+ | ------------- | -------------------------- | --------------------------------------------------------- |
21
+ | `store` | `StateStore` | The UNGUARDED store (providers refresh through it). |
22
+ | `view` | \{ `state?`: `unknown`; \} | The derived view whose `state.context` carries the slice. |
23
+ | `view.state?` | `unknown` | - |
24
+
25
+ ## Returns
26
+
27
+ `void`
@@ -0,0 +1,41 @@
1
+ [API](../../../README.md) / [@xmachines/play-actor](../README.md) / reuseComposedState
2
+
3
+ # Function: reuseComposedState()
4
+
5
+ ```ts
6
+ function reuseComposedState(prev, next): PlaySpec | null;
7
+ ```
8
+
9
+ Defined in: [packages/play-actor/src/context-projection.ts:89](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v2.0.0/packages/play-actor/src/context-projection.ts#L89)
10
+
11
+ Reuse the previous emission's composed `state` — or the whole previous spec
12
+ — when the projection is value-unchanged.
13
+
14
+ `deriveCurrentView` composes `state: { ...meta.view.state, context: slice }`
15
+ fresh per call, and XState's `assign` produces a fresh context object on
16
+ every event — so without reuse, every event would present a new `state`
17
+ reference and the emit gate's per-field `Object.is` would re-emit (and
18
+ remount) constantly. Slices are compared per field ([shallowEqualExcept](shallowEqualExcept.md) —
19
+ XState's `assign` produces a fresh context object per event, so whole-object
20
+ identity would report a change every time); the authored fields are spread
21
+ from the static `meta.view.state`, so for an unchanged `viewKey` their
22
+ references are stable and plain `Object.is` holds.
23
+
24
+ Returns, in order of preference:
25
+
26
+ - `prev` itself when nothing observable changed — the emit gate then
27
+ short-circuits on reference identity with no element walk;
28
+ - `{ ...next, state: prev.state }` when the state is value-unchanged but
29
+ some other top-level field differs;
30
+ - `next` when something actually changed.
31
+
32
+ ## Parameters
33
+
34
+ | Parameter | Type |
35
+ | --------- | ------------------------------------------------- |
36
+ | `prev` | [`PlaySpec`](../interfaces/PlaySpec.md) \| `null` |
37
+ | `next` | [`PlaySpec`](../interfaces/PlaySpec.md) \| `null` |
38
+
39
+ ## Returns
40
+
41
+ [`PlaySpec`](../interfaces/PlaySpec.md) \| `null`
@@ -0,0 +1,28 @@
1
+ [API](../../../README.md) / [@xmachines/play-actor](../README.md) / shallowEqualExcept
2
+
3
+ # Function: shallowEqualExcept()
4
+
5
+ ```ts
6
+ function shallowEqualExcept(a, b, except?): boolean;
7
+ ```
8
+
9
+ Defined in: [packages/play-actor/src/context-projection.ts:56](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v2.0.0/packages/play-actor/src/context-projection.ts#L56)
10
+
11
+ Own-key shallow equality with `Object.is`, optionally ignoring one key on
12
+ both sides.
13
+
14
+ The single comparison rule behind every emission-dedup decision: slice
15
+ equality and the player's emit gate alike (spec-field comparison in
16
+ `viewSpecsEquivalent`, composed-state reuse in [reuseComposedState](reuseComposedState.md)).
17
+
18
+ ## Parameters
19
+
20
+ | Parameter | Type |
21
+ | --------- | -------- |
22
+ | `a` | `object` |
23
+ | `b` | `object` |
24
+ | `except?` | `string` |
25
+
26
+ ## Returns
27
+
28
+ `boolean`
@@ -6,7 +6,7 @@
6
6
  function toAtomState(state): Record<string, unknown>;
7
7
  ```
8
8
 
9
- Defined in: [packages/play-actor/src/provider-guards.ts:36](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.1.0/packages/play-actor/src/provider-guards.ts#L36)
9
+ Defined in: [packages/play-actor/src/provider-guards.ts:36](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v2.0.0/packages/play-actor/src/provider-guards.ts#L36)
10
10
 
11
11
  Safely coerce a spec's `state` field to a plain object for `createAtom`.
12
12
 
@@ -3,32 +3,31 @@
3
3
  # Function: typedSpec()
4
4
 
5
5
  ```ts
6
- function typedSpec<TContext>(spec): PlaySpec;
6
+ function typedSpec(spec): PlaySpec;
7
7
  ```
8
8
 
9
- Defined in: [packages/play-actor/src/abstract-actor.ts:88](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.1.0/packages/play-actor/src/abstract-actor.ts#L88)
9
+ Defined in: [packages/play-actor/src/abstract-actor.ts:89](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v2.0.0/packages/play-actor/src/abstract-actor.ts#L89)
10
10
 
11
- Identity helper that constrains a `PlaySpec` object's `contextProps` to keys
12
- of a specific machine context type, giving compile-time validation and IDE
13
- autocomplete at the definition site.
11
+ Identity helper that types a view spec literal as `PlaySpec` at the
12
+ definition site, giving compile-time validation and IDE autocomplete.
14
13
 
15
14
  XState's `meta` field is typed as `Record<string, unknown>`, so TypeScript
16
- cannot infer the constraint from context. `typedSpec<MyCtx>(...)` is the
17
- opt-in mechanism that activates enforcement where the spec is written.
15
+ cannot infer the spec shape from context. `typedSpec(...)` is the opt-in
16
+ mechanism that activates checking where the spec is written. `viewKey` is
17
+ excluded from the parameter — derivation stamps it and would silently
18
+ overwrite an authored value, so authoring one is rejected at compile time.
18
19
 
19
- At runtime this is a no-op the spec object is returned unchanged.
20
-
21
- ## Type Parameters
20
+ Excess-property checking only applies to an inline object literal; for a
21
+ spec built in a variable or through spreads, use `satisfies PlaySpec` at
22
+ the literal instead.
22
23
 
23
- | Type Parameter |
24
- | ----------------------------- |
25
- | `TContext` _extends_ `object` |
24
+ At runtime this is a no-op — the spec object is returned unchanged.
26
25
 
27
26
  ## Parameters
28
27
 
29
- | Parameter | Type |
30
- | --------- | ------------------------------------------------------------------------------ |
31
- | `spec` | `Omit`\<[`PlaySpec`](../interfaces/PlaySpec.md), `"contextProps"`\> & `object` |
28
+ | Parameter | Type |
29
+ | --------- | -------------------------------------------------------------- |
30
+ | `spec` | `Omit`\<[`PlaySpec`](../interfaces/PlaySpec.md), `"viewKey"`\> |
32
31
 
33
32
  ## Returns
34
33
 
@@ -37,18 +36,16 @@ At runtime this is a no-op — the spec object is returned unchanged.
37
36
  ## Example
38
37
 
39
38
  ```ts
40
- interface DashboardCtx {
41
- username: string;
42
- params: Record<string, string>;
43
- query: Record<string, string>;
44
- }
45
-
46
39
  meta: {
47
- view: typedSpec<DashboardCtx>({
40
+ view: typedSpec({
48
41
  root: "root",
49
- contextProps: ["username"], // ✓ key of DashboardCtx
50
- // contextProps: ["usernaem"], // ✗ compile error
51
- elements: { root: { type: "Dashboard", props: {}, children: [] } },
42
+ elements: {
43
+ root: {
44
+ type: "Dashboard",
45
+ props: { username: { $state: "/context/username" } },
46
+ children: [],
47
+ },
48
+ },
52
49
  }),
53
50
  }
54
51
  ```