@xmachines/docs 6.0.0 → 6.1.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 (538) hide show
  1. package/README.md +6 -5
  2. package/api/@xmachines/core/README.md +1 -1
  3. package/api/@xmachines/core/cache/functions/createLruCache.md +1 -1
  4. package/api/@xmachines/core/cache/interfaces/KeyValueCache.md +3 -3
  5. package/api/@xmachines/core/errors/classes/BaseError.md +4 -4
  6. package/api/@xmachines/core/errors/classes/DisposeConflictError.md +4 -4
  7. package/api/@xmachines/core/utils/functions/asDisposable.md +2 -2
  8. package/api/@xmachines/core/utils/functions/createNullRecord.md +1 -1
  9. package/api/@xmachines/core/utils/functions/createWarnOnce.md +1 -1
  10. package/api/@xmachines/core/utils/functions/describeValue.md +1 -1
  11. package/api/@xmachines/core/utils/functions/isError.md +1 -1
  12. package/api/@xmachines/core/utils/functions/isThenable.md +1 -1
  13. package/api/@xmachines/core/utils/functions/releaseQuietly.md +1 -1
  14. package/api/@xmachines/core/utils/functions/rethrowLater.md +1 -1
  15. package/api/@xmachines/core/utils/functions/safeString.md +1 -1
  16. package/api/@xmachines/core/utils/functions/shallowEqualExcept.md +1 -1
  17. package/api/@xmachines/core/utils/type-aliases/DisposeKey.md +1 -1
  18. package/api/@xmachines/core/utils/type-aliases/DisposeMember.md +1 -1
  19. package/api/@xmachines/core/utils/variables/DISPOSE.md +1 -1
  20. package/api/@xmachines/play/README.md +1 -1
  21. package/api/@xmachines/play/errors/classes/NonNullableError.md +4 -4
  22. package/api/@xmachines/play/errors/classes/PlayError.md +5 -4
  23. package/api/@xmachines/play/index/functions/assertNonNullable.md +1 -1
  24. package/api/@xmachines/play/index/type-aliases/PlayEvent.md +2 -2
  25. package/api/@xmachines/play-actor/README.md +1 -1
  26. package/api/@xmachines/play-actor/interfaces/ActorEvent.md +2 -2
  27. package/api/@xmachines/play-actor/interfaces/PlayActor.md +3 -3
  28. package/api/@xmachines/play-atom/README.md +2 -2
  29. package/api/@xmachines/play-atom/functions/watchAtom.md +1 -1
  30. package/api/@xmachines/play-atom/interfaces/AsyncAtomOptions.md +2 -2
  31. package/api/@xmachines/play-atom/interfaces/Atom.md +6 -6
  32. package/api/@xmachines/play-atom/interfaces/AtomObserver.md +4 -4
  33. package/api/@xmachines/play-atom/interfaces/AtomOptions.md +2 -2
  34. package/api/@xmachines/play-atom/interfaces/AtomSubscription.md +2 -2
  35. package/api/@xmachines/play-atom/interfaces/BaseAtom.md +4 -4
  36. package/api/@xmachines/play-atom/interfaces/CreateAtom.md +3 -3
  37. package/api/@xmachines/play-atom/interfaces/Readable.md +4 -4
  38. package/api/@xmachines/play-atom/interfaces/ReadonlyAtom.md +4 -4
  39. package/api/@xmachines/play-atom/type-aliases/AnyAtom.md +1 -1
  40. package/api/@xmachines/play-atom/type-aliases/AsyncAtomState.md +1 -1
  41. package/api/@xmachines/play-atom/variables/createAsyncAtom.md +1 -1
  42. package/api/@xmachines/play-atom/variables/createAtom.md +1 -1
  43. package/api/@xmachines/play-atom/variables/createWritableAtom.md +1 -1
  44. package/api/@xmachines/play-dom/README.md +9 -14
  45. package/api/@xmachines/play-dom/classes/PlayRenderer.md +4 -4
  46. package/api/@xmachines/play-dom/functions/createPlayUI.md +1 -1
  47. package/api/@xmachines/play-dom/functions/createRenderer.md +1 -1
  48. package/api/@xmachines/play-dom/interfaces/CreatePlayUIOptions.md +11 -11
  49. package/api/@xmachines/play-dom/interfaces/DomRenderContext.md +2 -2
  50. package/api/@xmachines/play-dom/interfaces/MountOptions.md +3 -3
  51. package/api/@xmachines/play-dom/interfaces/PlayDomOptions.md +14 -14
  52. package/api/@xmachines/play-dom/type-aliases/MountFn.md +1 -1
  53. package/api/@xmachines/play-dom-router/README.md +1 -1
  54. package/api/@xmachines/play-dom-router/classes/DomRouterBridge.md +7 -7
  55. package/api/@xmachines/play-dom-router/classes/RouteMap.md +4 -4
  56. package/api/@xmachines/play-dom-router/functions/connectRouter.md +1 -1
  57. package/api/@xmachines/play-dom-router/functions/createBrowserHistory.md +1 -1
  58. package/api/@xmachines/play-dom-router/functions/createRouter.md +1 -1
  59. package/api/@xmachines/play-dom-router/interfaces/BasePathOptions.md +3 -3
  60. package/api/@xmachines/play-dom-router/interfaces/BrowserHistory.md +14 -14
  61. package/api/@xmachines/play-dom-router/interfaces/BrowserWindow.md +14 -14
  62. package/api/@xmachines/play-dom-router/interfaces/ConnectRouterOptions.md +8 -8
  63. package/api/@xmachines/play-dom-router/interfaces/PlayRouteEvent.md +7 -7
  64. package/api/@xmachines/play-dom-router/interfaces/RoutableActor.md +4 -4
  65. package/api/@xmachines/play-dom-router/interfaces/RouteLookupContract.md +3 -3
  66. package/api/@xmachines/play-dom-router/interfaces/RouteMapOptions.md +4 -4
  67. package/api/@xmachines/play-dom-router/interfaces/RouteMapping.md +3 -3
  68. package/api/@xmachines/play-dom-router/interfaces/RouterBridge.md +3 -3
  69. package/api/@xmachines/play-dom-router/interfaces/RouterConnection.md +6 -6
  70. package/api/@xmachines/play-dom-router/interfaces/VanillaRouter.md +4 -4
  71. package/api/@xmachines/play-pattern/README.md +1 -1
  72. package/api/@xmachines/play-pattern/functions/buildPath.md +1 -1
  73. package/api/@xmachines/play-pattern/functions/createLruCache.md +1 -1
  74. package/api/@xmachines/play-pattern/functions/getIndexKey.md +1 -1
  75. package/api/@xmachines/play-pattern/functions/isDotSegment.md +1 -1
  76. package/api/@xmachines/play-pattern/functions/parsePattern.md +1 -1
  77. package/api/@xmachines/play-pattern/interfaces/GroupPart.md +4 -4
  78. package/api/@xmachines/play-pattern/interfaces/KeyValueCache.md +3 -3
  79. package/api/@xmachines/play-pattern/interfaces/LiteralPart.md +3 -3
  80. package/api/@xmachines/play-pattern/interfaces/ParamPart.md +7 -7
  81. package/api/@xmachines/play-pattern/interfaces/ParseOptions.md +2 -2
  82. package/api/@xmachines/play-pattern/interfaces/ParsedPattern.md +12 -12
  83. package/api/@xmachines/play-pattern/interfaces/PatternParam.md +4 -4
  84. package/api/@xmachines/play-pattern/type-aliases/PathBuildResult.md +1 -1
  85. package/api/@xmachines/play-pattern/type-aliases/PathParams.md +1 -1
  86. package/api/@xmachines/play-pattern/type-aliases/PatternModifier.md +1 -1
  87. package/api/@xmachines/play-pattern/type-aliases/PatternPart.md +1 -1
  88. package/api/@xmachines/play-react/README.md +2 -2
  89. package/api/@xmachines/play-react/classes/PlayErrorBoundary.md +6 -6
  90. package/api/@xmachines/play-react/functions/useActor.md +1 -1
  91. package/api/@xmachines/play-react/functions/useAtomEffect.md +1 -1
  92. package/api/@xmachines/play-react/functions/usePlayView.md +1 -1
  93. package/api/@xmachines/play-react/interfaces/ActorProviderProps.md +8 -8
  94. package/api/@xmachines/play-react/interfaces/PlayErrorBoundaryProps.md +6 -6
  95. package/api/@xmachines/play-react/interfaces/PlayErrorBoundaryState.md +4 -4
  96. package/api/@xmachines/play-react/interfaces/PlayUIProviderProps.md +8 -8
  97. package/api/@xmachines/play-react/interfaces/ViewContextValue.md +5 -5
  98. package/api/@xmachines/play-react/type-aliases/AnyPlayActor.md +1 -1
  99. package/api/@xmachines/play-react/variables/ActorProvider.md +1 -1
  100. package/api/@xmachines/play-react/variables/PlayRenderer.md +1 -1
  101. package/api/@xmachines/play-react/variables/PlayUIProvider.md +1 -1
  102. package/api/@xmachines/play-react-router/README.md +1 -1
  103. package/api/@xmachines/play-react-router/classes/ReactRouterBridge.md +7 -7
  104. package/api/@xmachines/play-react-router/classes/RouteMap.md +4 -4
  105. package/api/@xmachines/play-react-router/functions/createPlayRouterProvider.md +1 -1
  106. package/api/@xmachines/play-react-router/functions/createRouteMapFromTree.md +1 -1
  107. package/api/@xmachines/play-react-router/interfaces/PlayRouteEvent.md +7 -7
  108. package/api/@xmachines/play-react-router/interfaces/PlayRouterProviderProps.md +9 -9
  109. package/api/@xmachines/play-react-router/interfaces/RoutableActor.md +4 -4
  110. package/api/@xmachines/play-react-router/interfaces/RouteMapOptions.md +4 -4
  111. package/api/@xmachines/play-react-router/interfaces/RouteMapping.md +3 -3
  112. package/api/@xmachines/play-react-router/interfaces/RouterBridge.md +3 -3
  113. package/api/@xmachines/play-react-router/type-aliases/PlayRouterBridgeConstructor.md +1 -1
  114. package/api/@xmachines/play-react-router/type-aliases/PlayRouterProviderBaseProps.md +1 -1
  115. package/api/@xmachines/play-react-router/variables/PlayRouterProvider.md +1 -1
  116. package/api/@xmachines/play-router/README.md +7 -8
  117. package/api/@xmachines/play-router/errors/classes/DuplicateBridgeError.md +4 -4
  118. package/api/@xmachines/play-router/errors/classes/DuplicateRoutePathError.md +5 -5
  119. package/api/@xmachines/play-router/errors/classes/EmptyRoutePathError.md +5 -5
  120. package/api/@xmachines/play-router/errors/classes/InvalidBasePathError.md +5 -5
  121. package/api/@xmachines/play-router/errors/classes/InvalidRoutePatternError.md +5 -5
  122. package/api/@xmachines/play-router/errors/classes/InvalidStateIdError.md +5 -5
  123. package/api/@xmachines/play-router/errors/classes/MissingBasePathParamError.md +6 -6
  124. package/api/@xmachines/play-router/errors/classes/RouterSyncError.md +4 -4
  125. package/api/@xmachines/play-router/errors/classes/UnknownStateTypeError.md +6 -6
  126. package/api/@xmachines/play-router/index/classes/RouteMap.md +4 -4
  127. package/api/@xmachines/play-router/index/classes/RouterBridgeBase.md +7 -7
  128. package/api/@xmachines/play-router/index/functions/buildPlayRouteEvent.md +1 -1
  129. package/api/@xmachines/play-router/index/functions/buildRouteTree.md +1 -1
  130. package/api/@xmachines/play-router/index/functions/cleanFrameworkParams.md +1 -1
  131. package/api/@xmachines/play-router/index/functions/createLruCache.md +1 -1
  132. package/api/@xmachines/play-router/index/functions/createRouteMapFromTree.md +1 -1
  133. package/api/@xmachines/play-router/index/functions/createRouterConnection.md +1 -1
  134. package/api/@xmachines/play-router/index/functions/detectDuplicateRoutes.md +1 -1
  135. package/api/@xmachines/play-router/index/functions/extractQuery.md +1 -1
  136. package/api/@xmachines/play-router/index/functions/extractRouteParams.md +1 -1
  137. package/api/@xmachines/play-router/index/functions/findRouteById.md +1 -1
  138. package/api/@xmachines/play-router/index/functions/findRouteByPath.md +1 -1
  139. package/api/@xmachines/play-router/index/functions/isMountableBridge.md +1 -1
  140. package/api/@xmachines/play-router/index/functions/joinBasePath.md +1 -1
  141. package/api/@xmachines/play-router/index/functions/mountKey.md +1 -1
  142. package/api/@xmachines/play-router/index/functions/normalizeBasePath.md +1 -1
  143. package/api/@xmachines/play-router/index/functions/openProviderBridge.md +3 -3
  144. package/api/@xmachines/play-router/index/functions/parsePattern.md +1 -1
  145. package/api/@xmachines/play-router/index/functions/pickOwnParams.md +1 -1
  146. package/api/@xmachines/play-router/index/functions/repointProviderBridge.md +1 -1
  147. package/api/@xmachines/play-router/index/functions/resolveBasePath.md +1 -1
  148. package/api/@xmachines/play-router/index/functions/resolveFrameworkParams.md +1 -1
  149. package/api/@xmachines/play-router/index/functions/sanitizePathname.md +1 -1
  150. package/api/@xmachines/play-router/index/functions/splitLocation.md +1 -1
  151. package/api/@xmachines/play-router/index/functions/stripBasePath.md +1 -1
  152. package/api/@xmachines/play-router/index/functions/validateRouteFormat.md +1 -1
  153. package/api/@xmachines/play-router/index/functions/validateStateExists.md +1 -1
  154. package/api/@xmachines/play-router/index/interfaces/BasePathOptions.md +3 -3
  155. package/api/@xmachines/play-router/index/interfaces/BuildPlayRouteEventOptions.md +4 -4
  156. package/api/@xmachines/play-router/index/interfaces/CompileOptions.md +3 -3
  157. package/api/@xmachines/play-router/index/interfaces/FrameworkParamsSource.md +7 -7
  158. package/api/@xmachines/play-router/index/interfaces/KeyValueCache.md +3 -3
  159. package/api/@xmachines/play-router/index/interfaces/LocationLike.md +3 -3
  160. package/api/@xmachines/play-router/index/interfaces/MountableRouterBridge.md +6 -6
  161. package/api/@xmachines/play-router/index/interfaces/OpenProviderBridgeArgs.md +8 -8
  162. package/api/@xmachines/play-router/index/interfaces/ParseOptions.md +2 -2
  163. package/api/@xmachines/play-router/index/interfaces/ParsedPattern.md +12 -12
  164. package/api/@xmachines/play-router/index/interfaces/PlayRouteEvent.md +7 -7
  165. package/api/@xmachines/play-router/index/interfaces/PlayRouterProviderBaseProps.md +9 -9
  166. package/api/@xmachines/play-router/index/interfaces/ResolvedBasePath.md +3 -3
  167. package/api/@xmachines/play-router/index/interfaces/ResolvedRoutePath.md +3 -3
  168. package/api/@xmachines/play-router/index/interfaces/Routable.md +3 -3
  169. package/api/@xmachines/play-router/index/interfaces/RoutableActor.md +4 -4
  170. package/api/@xmachines/play-router/index/interfaces/RouteInfo.md +8 -8
  171. package/api/@xmachines/play-router/index/interfaces/RouteMapOptions.md +4 -4
  172. package/api/@xmachines/play-router/index/interfaces/RouteMapping.md +3 -3
  173. package/api/@xmachines/play-router/index/interfaces/RouteMatch.md +3 -3
  174. package/api/@xmachines/play-router/index/interfaces/RouteNode.md +10 -10
  175. package/api/@xmachines/play-router/index/interfaces/RouteObject.md +12 -15
  176. package/api/@xmachines/play-router/index/interfaces/RouteTree.md +5 -5
  177. package/api/@xmachines/play-router/index/interfaces/RouteWatcherHandle.md +3 -3
  178. package/api/@xmachines/play-router/index/interfaces/RouterBridge.md +3 -3
  179. package/api/@xmachines/play-router/index/interfaces/RouterBridgeOptions.md +5 -5
  180. package/api/@xmachines/play-router/index/interfaces/RouterConnection.md +6 -6
  181. package/api/@xmachines/play-router/index/interfaces/SplitLocation.md +5 -5
  182. package/api/@xmachines/play-router/index/interfaces/WindowLike.md +3 -3
  183. package/api/@xmachines/play-router/index/type-aliases/PlayRouterBridgeConstructor.md +1 -1
  184. package/api/@xmachines/play-router/index/type-aliases/RouteData.md +1 -1
  185. package/api/@xmachines/play-router/index/type-aliases/RouteDataResolver.md +1 -1
  186. package/api/@xmachines/play-router/index/type-aliases/RouteMetadata.md +1 -1
  187. package/api/@xmachines/play-router/index/type-aliases/URLPatternLike.md +3 -3
  188. package/api/@xmachines/play-router/index/variables/NO_BASE_PATH.md +1 -1
  189. package/api/@xmachines/play-router/index/variables/ROOT_NODE_ID.md +1 -1
  190. package/api/@xmachines/play-router/xstate/functions/createRouteMap.md +1 -1
  191. package/api/@xmachines/play-router/xstate/functions/extractMachineRoutes.md +1 -1
  192. package/api/@xmachines/play-router/xstate/functions/getNavigableRoutes.md +1 -1
  193. package/api/@xmachines/play-router/xstate/functions/getRoutableRoutes.md +1 -1
  194. package/api/@xmachines/play-router/xstate/functions/getRouteMappings.md +1 -1
  195. package/api/@xmachines/play-router/xstate/functions/getTransitionReachableRoutes.md +1 -1
  196. package/api/@xmachines/play-router/xstate/functions/isRouteReachable.md +1 -1
  197. package/api/@xmachines/play-router/xstate/functions/machineToGraph.md +1 -1
  198. package/api/@xmachines/play-router/xstate/functions/routeExists.md +1 -1
  199. package/api/@xmachines/play-router/xstate/interfaces/MachineEdgeData.md +3 -3
  200. package/api/@xmachines/play-router/xstate/interfaces/MachineNodeData.md +5 -5
  201. package/api/@xmachines/play-router/xstate/type-aliases/MachineGraph.md +1 -1
  202. package/api/@xmachines/play-solid/README.md +1 -4
  203. package/api/@xmachines/play-solid/functions/defineRegistry.md +5 -5
  204. package/api/@xmachines/play-solid/functions/useActor.md +1 -1
  205. package/api/@xmachines/play-solid/functions/usePlayView.md +1 -1
  206. package/api/@xmachines/play-solid/interfaces/ActorProviderProps.md +8 -8
  207. package/api/@xmachines/play-solid/interfaces/ComponentContext.md +9 -8
  208. package/api/@xmachines/play-solid/interfaces/PlayUIProviderProps.md +8 -8
  209. package/api/@xmachines/play-solid/interfaces/ViewContextValue.md +5 -5
  210. package/api/@xmachines/play-solid/type-aliases/AnyPlayActor.md +1 -1
  211. package/api/@xmachines/play-solid/variables/ActorContext.md +1 -1
  212. package/api/@xmachines/play-solid/variables/ActorProvider.md +1 -1
  213. package/api/@xmachines/play-solid/variables/PlayRenderer.md +1 -1
  214. package/api/@xmachines/play-solid/variables/PlayUIProvider.md +1 -1
  215. package/api/@xmachines/play-solid/variables/schema.md +35 -54
  216. package/api/@xmachines/play-solid-router/README.md +2 -2
  217. package/api/@xmachines/play-solid-router/classes/RouteMap.md +4 -4
  218. package/api/@xmachines/play-solid-router/classes/SolidRouterBridge.md +8 -8
  219. package/api/@xmachines/play-solid-router/functions/createPlayRouterProvider.md +1 -1
  220. package/api/@xmachines/play-solid-router/interfaces/PlayActor.md +3 -3
  221. package/api/@xmachines/play-solid-router/interfaces/PlayRouteEvent.md +7 -7
  222. package/api/@xmachines/play-solid-router/interfaces/PlayRouterProviderProps.md +9 -9
  223. package/api/@xmachines/play-solid-router/interfaces/RoutableActor.md +4 -4
  224. package/api/@xmachines/play-solid-router/interfaces/RouteMapOptions.md +4 -4
  225. package/api/@xmachines/play-solid-router/interfaces/RouteMapping.md +3 -3
  226. package/api/@xmachines/play-solid-router/interfaces/RouterBridge.md +3 -3
  227. package/api/@xmachines/play-solid-router/type-aliases/PlayRouterBridgeConstructor.md +1 -1
  228. package/api/@xmachines/play-solid-router/type-aliases/PlayRouterProviderBaseProps.md +1 -1
  229. package/api/@xmachines/play-solid-router/type-aliases/SolidRouterHooks.md +4 -4
  230. package/api/@xmachines/play-solid-router/variables/PlayRouterProvider.md +1 -1
  231. package/api/@xmachines/play-svelte/README.md +2 -2
  232. package/api/@xmachines/play-svelte/functions/defineRegistry.md +1 -1
  233. package/api/@xmachines/play-svelte/functions/getActorContext.md +1 -1
  234. package/api/@xmachines/play-svelte/functions/getPlayViewContext.md +1 -1
  235. package/api/@xmachines/play-svelte/functions/setActorContext.md +1 -1
  236. package/api/@xmachines/play-svelte/interfaces/ActorProviderProps.md +8 -8
  237. package/api/@xmachines/play-svelte/interfaces/BaseComponentProps.md +10 -8
  238. package/api/@xmachines/play-svelte/interfaces/ComponentContext.md +10 -8
  239. package/api/@xmachines/play-svelte/interfaces/DefineRegistryOptions.md +4 -4
  240. package/api/@xmachines/play-svelte/interfaces/PlayUIProviderProps.md +11 -11
  241. package/api/@xmachines/play-svelte/interfaces/ViewContextValue.md +5 -5
  242. package/api/@xmachines/play-svelte/type-aliases/AnyPlayActor.md +1 -1
  243. package/api/@xmachines/play-svelte-spa-router/README.md +1 -1
  244. package/api/@xmachines/play-svelte-spa-router/classes/RouteMap.md +4 -4
  245. package/api/@xmachines/play-svelte-spa-router/classes/SvelteSpaRouterBridge.md +7 -7
  246. package/api/@xmachines/play-svelte-spa-router/functions/connectRouter.md +1 -1
  247. package/api/@xmachines/play-svelte-spa-router/interfaces/BasePathOptions.md +3 -3
  248. package/api/@xmachines/play-svelte-spa-router/interfaces/ConnectRouterOptions.md +8 -8
  249. package/api/@xmachines/play-svelte-spa-router/interfaces/PlayRouteEvent.md +7 -7
  250. package/api/@xmachines/play-svelte-spa-router/interfaces/RoutableActor.md +4 -4
  251. package/api/@xmachines/play-svelte-spa-router/interfaces/RouteMapOptions.md +4 -4
  252. package/api/@xmachines/play-svelte-spa-router/interfaces/RouteMapping.md +3 -3
  253. package/api/@xmachines/play-svelte-spa-router/interfaces/RouterBridge.md +3 -3
  254. package/api/@xmachines/play-svelte-spa-router/interfaces/RouterConnection.md +6 -6
  255. package/api/@xmachines/play-svelte-spa-router/interfaces/WindowLike.md +3 -3
  256. package/api/@xmachines/play-sveltekit-router/README.md +1 -1
  257. package/api/@xmachines/play-sveltekit-router/classes/RouteMap.md +4 -4
  258. package/api/@xmachines/play-sveltekit-router/classes/SvelteKitRouterBridge.md +7 -7
  259. package/api/@xmachines/play-sveltekit-router/functions/connectRouter.md +1 -1
  260. package/api/@xmachines/play-sveltekit-router/interfaces/BasePathOptions.md +3 -3
  261. package/api/@xmachines/play-sveltekit-router/interfaces/ConnectRouterOptions.md +8 -8
  262. package/api/@xmachines/play-sveltekit-router/interfaces/LocationLike.md +3 -3
  263. package/api/@xmachines/play-sveltekit-router/interfaces/PlayRouteEvent.md +7 -7
  264. package/api/@xmachines/play-sveltekit-router/interfaces/RoutableActor.md +4 -4
  265. package/api/@xmachines/play-sveltekit-router/interfaces/RouteMapOptions.md +4 -4
  266. package/api/@xmachines/play-sveltekit-router/interfaces/RouteMapping.md +3 -3
  267. package/api/@xmachines/play-sveltekit-router/interfaces/RouterBridge.md +3 -3
  268. package/api/@xmachines/play-sveltekit-router/interfaces/RouterConnection.md +6 -6
  269. package/api/@xmachines/play-tanstack-react-router/README.md +1 -1
  270. package/api/@xmachines/play-tanstack-react-router/classes/RouteMap.md +4 -4
  271. package/api/@xmachines/play-tanstack-react-router/classes/TanStackReactRouterBridge.md +7 -7
  272. package/api/@xmachines/play-tanstack-react-router/functions/createPlayRouterProvider.md +1 -1
  273. package/api/@xmachines/play-tanstack-react-router/functions/createRouteMapFromTree.md +1 -1
  274. package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouteEvent.md +7 -7
  275. package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouterProviderProps.md +9 -9
  276. package/api/@xmachines/play-tanstack-react-router/interfaces/RoutableActor.md +4 -4
  277. package/api/@xmachines/play-tanstack-react-router/interfaces/RouteMapOptions.md +4 -4
  278. package/api/@xmachines/play-tanstack-react-router/interfaces/RouteMapping.md +3 -3
  279. package/api/@xmachines/play-tanstack-react-router/interfaces/RouterBridge.md +3 -3
  280. package/api/@xmachines/play-tanstack-react-router/type-aliases/PlayRouterBridgeConstructor.md +1 -1
  281. package/api/@xmachines/play-tanstack-react-router/type-aliases/PlayRouterProviderBaseProps.md +1 -1
  282. package/api/@xmachines/play-tanstack-react-router/type-aliases/TanStackRouterInstance.md +1 -1
  283. package/api/@xmachines/play-tanstack-react-router/type-aliases/TanStackRouterLike.md +5 -5
  284. package/api/@xmachines/play-tanstack-react-router/variables/PlayRouterProvider.md +1 -1
  285. package/api/@xmachines/play-tanstack-router/README.md +1 -1
  286. package/api/@xmachines/play-tanstack-router/classes/TanStackRouterBridgeBase.md +7 -7
  287. package/api/@xmachines/play-tanstack-router/type-aliases/TanStackRouteMapLike.md +3 -3
  288. package/api/@xmachines/play-tanstack-router/type-aliases/TanStackRouterLike.md +5 -5
  289. package/api/@xmachines/play-tanstack-solid-router/README.md +1 -1
  290. package/api/@xmachines/play-tanstack-solid-router/classes/RouteMap.md +4 -4
  291. package/api/@xmachines/play-tanstack-solid-router/classes/TanStackSolidRouterBridge.md +7 -7
  292. package/api/@xmachines/play-tanstack-solid-router/functions/createPlayRouterProvider.md +1 -1
  293. package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayRouteEvent.md +7 -7
  294. package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayRouterProviderProps.md +9 -9
  295. package/api/@xmachines/play-tanstack-solid-router/interfaces/RoutableActor.md +4 -4
  296. package/api/@xmachines/play-tanstack-solid-router/interfaces/RouteMapOptions.md +4 -4
  297. package/api/@xmachines/play-tanstack-solid-router/interfaces/RouteMapping.md +3 -3
  298. package/api/@xmachines/play-tanstack-solid-router/interfaces/RouterBridge.md +3 -3
  299. package/api/@xmachines/play-tanstack-solid-router/type-aliases/PlayRouterBridgeConstructor.md +1 -1
  300. package/api/@xmachines/play-tanstack-solid-router/type-aliases/PlayRouterProviderBaseProps.md +1 -1
  301. package/api/@xmachines/play-tanstack-solid-router/type-aliases/TanStackRouterInstance.md +1 -1
  302. package/api/@xmachines/play-tanstack-solid-router/type-aliases/TanStackRouterLike.md +5 -5
  303. package/api/@xmachines/play-tanstack-solid-router/variables/PlayRouterProvider.md +1 -1
  304. package/api/@xmachines/play-url/README.md +1 -1
  305. package/api/@xmachines/play-url/errors/classes/InvalidBasePathError.md +5 -5
  306. package/api/@xmachines/play-url/errors/classes/InvalidRoutePatternError.md +5 -5
  307. package/api/@xmachines/play-url/errors/classes/MissingBasePathParamError.md +6 -6
  308. package/api/@xmachines/play-url/index/functions/buildPath.md +1 -1
  309. package/api/@xmachines/play-url/index/functions/cleanFrameworkParams.md +1 -1
  310. package/api/@xmachines/play-url/index/functions/createLruCache.md +1 -1
  311. package/api/@xmachines/play-url/index/functions/getCandidates.md +1 -1
  312. package/api/@xmachines/play-url/index/functions/getCompiledPattern.md +1 -1
  313. package/api/@xmachines/play-url/index/functions/getIndexKey.md +1 -1
  314. package/api/@xmachines/play-url/index/functions/holdsUnsubstitutedParam.md +1 -1
  315. package/api/@xmachines/play-url/index/functions/isDotSegment.md +1 -1
  316. package/api/@xmachines/play-url/index/functions/joinBasePath.md +1 -1
  317. package/api/@xmachines/play-url/index/functions/normalizeBasePath.md +1 -1
  318. package/api/@xmachines/play-url/index/functions/parsePattern.md +1 -1
  319. package/api/@xmachines/play-url/index/functions/pickOwnParams.md +1 -1
  320. package/api/@xmachines/play-url/index/functions/resolveBasePath.md +1 -1
  321. package/api/@xmachines/play-url/index/functions/resolveFrameworkParams.md +1 -1
  322. package/api/@xmachines/play-url/index/functions/sanitizePathname.md +1 -1
  323. package/api/@xmachines/play-url/index/functions/splitLocation.md +1 -1
  324. package/api/@xmachines/play-url/index/functions/stripBasePath.md +1 -1
  325. package/api/@xmachines/play-url/index/interfaces/BasePathOptions.md +3 -3
  326. package/api/@xmachines/play-url/index/interfaces/CompileOptions.md +3 -3
  327. package/api/@xmachines/play-url/index/interfaces/FrameworkParamsSource.md +7 -7
  328. package/api/@xmachines/play-url/index/interfaces/GroupPart.md +4 -4
  329. package/api/@xmachines/play-url/index/interfaces/KeyValueCache.md +3 -3
  330. package/api/@xmachines/play-url/index/interfaces/LiteralPart.md +3 -3
  331. package/api/@xmachines/play-url/index/interfaces/ParamPart.md +7 -7
  332. package/api/@xmachines/play-url/index/interfaces/ParseOptions.md +2 -2
  333. package/api/@xmachines/play-url/index/interfaces/ParsedPattern.md +12 -12
  334. package/api/@xmachines/play-url/index/interfaces/PatternParam.md +4 -4
  335. package/api/@xmachines/play-url/index/interfaces/ResolvedBasePath.md +3 -3
  336. package/api/@xmachines/play-url/index/interfaces/SplitLocation.md +5 -5
  337. package/api/@xmachines/play-url/index/type-aliases/PathBuildResult.md +1 -1
  338. package/api/@xmachines/play-url/index/type-aliases/PathParams.md +1 -1
  339. package/api/@xmachines/play-url/index/type-aliases/PatternModifier.md +1 -1
  340. package/api/@xmachines/play-url/index/type-aliases/PatternPart.md +1 -1
  341. package/api/@xmachines/play-url/index/type-aliases/URLPatternCtor.md +1 -1
  342. package/api/@xmachines/play-url/index/type-aliases/URLPatternLike.md +3 -3
  343. package/api/@xmachines/play-url/index/variables/NO_BASE_PATH.md +1 -1
  344. package/api/@xmachines/play-url/index/variables/URLPattern.md +1 -1
  345. package/api/@xmachines/play-view/README.md +53 -22
  346. package/api/@xmachines/play-view/errors/README.md +1 -0
  347. package/api/@xmachines/play-view/errors/classes/InvalidViewOutletError.md +204 -0
  348. package/api/@xmachines/play-view/errors/classes/ReadOnlyContextError.md +5 -5
  349. package/api/@xmachines/play-view/index/README.md +6 -0
  350. package/api/@xmachines/play-view/index/functions/attachRenderErrorHandler.md +1 -1
  351. package/api/@xmachines/play-view/index/functions/composePlayState.md +1 -1
  352. package/api/@xmachines/play-view/index/functions/composeViews.md +35 -0
  353. package/api/@xmachines/play-view/index/functions/createFailureLatch.md +1 -1
  354. package/api/@xmachines/play-view/index/functions/createReportGuard.md +1 -1
  355. package/api/@xmachines/play-view/index/functions/createViewStoreLifecycle.md +1 -1
  356. package/api/@xmachines/play-view/index/functions/guardContextWrites.md +1 -1
  357. package/api/@xmachines/play-view/index/functions/refreshContextSubtree.md +1 -1
  358. package/api/@xmachines/play-view/index/functions/reuseComposedState.md +1 -1
  359. package/api/@xmachines/play-view/index/functions/sameViewInputs.md +1 -1
  360. package/api/@xmachines/play-view/index/functions/toAtomState.md +1 -1
  361. package/api/@xmachines/play-view/index/functions/typedSpec.md +11 -11
  362. package/api/@xmachines/play-view/index/interfaces/BaseActorProviderProps.md +5 -5
  363. package/api/@xmachines/play-view/index/interfaces/BaseViewContextValue.md +5 -5
  364. package/api/@xmachines/play-view/index/interfaces/ComposedView.md +16 -0
  365. package/api/@xmachines/play-view/index/interfaces/FailureLatch.md +3 -3
  366. package/api/@xmachines/play-view/index/interfaces/PlaySpec.md +12 -8
  367. package/api/@xmachines/play-view/index/interfaces/ReportGuard.md +5 -5
  368. package/api/@xmachines/play-view/index/interfaces/ReportGuardMessages.md +3 -3
  369. package/api/@xmachines/play-view/index/interfaces/ResolveViewStoreOptions.md +2 -2
  370. package/api/@xmachines/play-view/index/interfaces/ViewInputs.md +4 -4
  371. package/api/@xmachines/play-view/index/interfaces/ViewMeta.md +25 -0
  372. package/api/@xmachines/play-view/index/interfaces/ViewOutlet.md +23 -0
  373. package/api/@xmachines/play-view/index/interfaces/ViewStoreLifecycle.md +3 -3
  374. package/api/@xmachines/play-view/index/interfaces/ViewStoreResolution.md +4 -4
  375. package/api/@xmachines/play-view/index/interfaces/ViewTree.md +15 -0
  376. package/api/@xmachines/play-view/index/interfaces/ViewTreeChild.md +14 -0
  377. package/api/@xmachines/play-view/index/interfaces/Viewable.md +4 -4
  378. package/api/@xmachines/play-view/index/type-aliases/ViewActor.md +1 -1
  379. package/api/@xmachines/play-view/index/variables/CONTEXT_STATE_KEY.md +1 -1
  380. package/api/@xmachines/play-vue/README.md +3 -5
  381. package/api/@xmachines/play-vue/functions/defineRegistry.md +1 -1
  382. package/api/@xmachines/play-vue/functions/useActor.md +1 -1
  383. package/api/@xmachines/play-vue/functions/usePlayView.md +1 -1
  384. package/api/@xmachines/play-vue/interfaces/ActorProviderProps.md +8 -8
  385. package/api/@xmachines/play-vue/interfaces/PlayUIProviderProps.md +11 -11
  386. package/api/@xmachines/play-vue/interfaces/ViewContextValue.md +5 -5
  387. package/api/@xmachines/play-vue/type-aliases/AnyPlayActor.md +1 -1
  388. package/api/@xmachines/play-vue/type-aliases/ComponentEntry.md +1 -1
  389. package/api/@xmachines/play-vue/type-aliases/ComponentsMap.md +1 -1
  390. package/api/@xmachines/play-vue/type-aliases/DefineRegistryOptions.md +2 -2
  391. package/api/@xmachines/play-vue/variables/PlayRenderer.md +1 -1
  392. package/api/@xmachines/play-vue-router/README.md +1 -1
  393. package/api/@xmachines/play-vue-router/errors/classes/VueRouterNavigationError.md +4 -4
  394. package/api/@xmachines/play-vue-router/errors/classes/VueRouterSendError.md +4 -4
  395. package/api/@xmachines/play-vue-router/index/classes/RouteMap.md +4 -4
  396. package/api/@xmachines/play-vue-router/index/classes/VueRouterBridge.md +7 -7
  397. package/api/@xmachines/play-vue-router/index/interfaces/PlayRouteEvent.md +7 -7
  398. package/api/@xmachines/play-vue-router/index/interfaces/RoutableActor.md +4 -4
  399. package/api/@xmachines/play-vue-router/index/interfaces/RouteMapOptions.md +4 -4
  400. package/api/@xmachines/play-vue-router/index/interfaces/RouteMapping.md +3 -3
  401. package/api/@xmachines/play-vue-router/index/interfaces/RouterBridge.md +3 -3
  402. package/api/@xmachines/play-vue-router/index/variables/PlayRouterProvider.md +1 -1
  403. package/api/@xmachines/play-xstate/README.md +24 -17
  404. package/api/@xmachines/play-xstate/errors/classes/ActorThrewNonErrorError.md +4 -4
  405. package/api/@xmachines/play-xstate/errors/classes/InvalidEventError.md +5 -5
  406. package/api/@xmachines/play-xstate/errors/classes/InvalidMachineError.md +4 -4
  407. package/api/@xmachines/play-xstate/errors/classes/InvalidRouteHandlerError.md +5 -5
  408. package/api/@xmachines/play-xstate/errors/classes/InvalidRouteMetadataError.md +5 -5
  409. package/api/@xmachines/play-xstate/errors/classes/InvalidRouteParamError.md +7 -7
  410. package/api/@xmachines/play-xstate/errors/classes/MissingRouteParamError.md +6 -6
  411. package/api/@xmachines/play-xstate/errors/classes/MissingStateIdError.md +6 -6
  412. package/api/@xmachines/play-xstate/index/classes/PlayerActor.md +10 -10
  413. package/api/@xmachines/play-xstate/index/functions/compose.md +4 -4
  414. package/api/@xmachines/play-xstate/index/functions/definePlayer.md +2 -2
  415. package/api/@xmachines/play-xstate/index/interfaces/PlayerConfig.md +4 -4
  416. package/api/@xmachines/play-xstate/index/interfaces/PlayerFactoryResumeOptions.md +2 -2
  417. package/api/@xmachines/play-xstate/index/interfaces/PlayerOptions.md +7 -7
  418. package/api/@xmachines/play-xstate/index/type-aliases/Capability.md +1 -1
  419. package/api/@xmachines/play-xstate/index/type-aliases/PlayerConstructor.md +1 -1
  420. package/api/@xmachines/play-xstate/index/type-aliases/PlayerFactory.md +1 -1
  421. package/api/@xmachines/play-xstate/with-routing/functions/buildRouteUrl.md +1 -1
  422. package/api/@xmachines/play-xstate/with-routing/functions/deriveRoute.md +1 -1
  423. package/api/@xmachines/play-xstate/with-routing/functions/formatPlayRouteTransitions.md +1 -1
  424. package/api/@xmachines/play-xstate/with-routing/functions/isAbsoluteRoute.md +1 -1
  425. package/api/@xmachines/play-xstate/with-routing/functions/withRouting.md +1 -1
  426. package/api/@xmachines/play-xstate/with-routing/interfaces/RouteContext.md +5 -5
  427. package/api/@xmachines/play-xstate/with-routing/interfaces/RouteObject.md +12 -15
  428. package/api/@xmachines/play-xstate/with-routing/type-aliases/RouteData.md +1 -1
  429. package/api/@xmachines/play-xstate/with-routing/type-aliases/RouteDataResolver.md +1 -1
  430. package/api/@xmachines/play-xstate/with-routing/type-aliases/RouteMachineConfig.md +4 -4
  431. package/api/@xmachines/play-xstate/with-routing/type-aliases/RouteMetadata.md +1 -1
  432. package/api/@xmachines/play-xstate/with-routing/type-aliases/RouteStateNode.md +5 -5
  433. package/api/@xmachines/play-xstate/with-view/functions/withView.md +2 -4
  434. package/api/@xmachines/shared/vite-aliases/README.md +7 -0
  435. package/api/@xmachines/shared/vite-aliases/functions/xmAliases.md +11 -5
  436. package/api/@xmachines/shared/vite-aliases/functions/xmBuildOutput.md +37 -0
  437. package/api/@xmachines/shared/vite-aliases/functions/xmBuildOutputFile.md +28 -0
  438. package/api/@xmachines/shared/vite-aliases/functions/xmCacheDir.md +1 -1
  439. package/api/@xmachines/shared/vite-aliases/functions/xmOptimizeDeps.md +1 -1
  440. package/api/@xmachines/shared/vite-aliases/functions/xmResolve.md +1 -1
  441. package/api/@xmachines/shared/vite-aliases/functions/xmSvelteRunes.md +2 -2
  442. package/api/@xmachines/shared/vite-aliases/functions/xmTestTarget.md +26 -0
  443. package/api/@xmachines/shared/vite-aliases/type-aliases/XmTestTarget.md +15 -0
  444. package/api/@xmachines/shared/vitest/functions/defineXmBrowserConfig.md +1 -1
  445. package/api/@xmachines/shared/vitest/functions/defineXmVitestConfig.md +5 -1
  446. package/api/@xmachines/shared/vitest/interfaces/XmBrowserConfigOptions.md +4 -4
  447. package/api/llms.txt +8 -4
  448. package/contributing/architecture.md +18 -8
  449. package/contributing/configuration.md +39 -6
  450. package/contributing/development.md +3 -1
  451. package/contributing/migrating-to-play-atom.md +1 -1
  452. package/contributing/testing.md +33 -4
  453. package/examples/@xmachines/play-dom-demo/functions/createAuthActionHandlers.md +9 -9
  454. package/examples/@xmachines/play-dom-demo/functions/createConfirmDialog.md +1 -1
  455. package/examples/@xmachines/play-dom-demo/functions/createNavBar.md +1 -1
  456. package/examples/@xmachines/play-dom-demo/functions/initShell.md +1 -1
  457. package/examples/@xmachines/play-dom-demo/type-aliases/AuthCatalog.md +1 -1
  458. package/examples/@xmachines/play-dom-demo/variables/About.md +1 -1
  459. package/examples/@xmachines/play-dom-demo/variables/Button.md +1 -1
  460. package/examples/@xmachines/play-dom-demo/variables/Contact.md +1 -1
  461. package/examples/@xmachines/play-dom-demo/variables/Dashboard.md +1 -1
  462. package/examples/@xmachines/play-dom-demo/variables/Field.md +1 -1
  463. package/examples/@xmachines/play-dom-demo/variables/Home.md +1 -1
  464. package/examples/@xmachines/play-dom-demo/variables/Login.md +1 -1
  465. package/examples/@xmachines/play-dom-demo/variables/NavBarView.md +1 -1
  466. package/examples/@xmachines/play-dom-demo/variables/Navigation.md +1 -1
  467. package/examples/@xmachines/play-dom-demo/variables/Overview.md +1 -1
  468. package/examples/@xmachines/play-dom-demo/variables/Panel.md +1 -1
  469. package/examples/@xmachines/play-dom-demo/variables/Profile.md +1 -1
  470. package/examples/@xmachines/play-dom-demo/variables/Settings.md +1 -1
  471. package/examples/@xmachines/play-dom-demo/variables/Stats.md +1 -1
  472. package/examples/@xmachines/play-dom-demo/variables/authCatalog.md +1 -1
  473. package/examples/@xmachines/play-dom-demo/variables/demoComponents.md +15 -15
  474. package/examples/@xmachines/play-react-demo/functions/createAuthActionHandlers.md +9 -9
  475. package/examples/@xmachines/play-react-demo/type-aliases/AuthCatalog.md +1 -1
  476. package/examples/@xmachines/play-react-demo/variables/About.md +1 -1
  477. package/examples/@xmachines/play-react-demo/variables/Button.md +1 -1
  478. package/examples/@xmachines/play-react-demo/variables/Contact.md +1 -1
  479. package/examples/@xmachines/play-react-demo/variables/Dashboard.md +1 -1
  480. package/examples/@xmachines/play-react-demo/variables/DebugPanel.md +1 -1
  481. package/examples/@xmachines/play-react-demo/variables/Field.md +1 -1
  482. package/examples/@xmachines/play-react-demo/variables/Home.md +1 -1
  483. package/examples/@xmachines/play-react-demo/variables/Login.md +1 -1
  484. package/examples/@xmachines/play-react-demo/variables/NavBar.md +1 -1
  485. package/examples/@xmachines/play-react-demo/variables/NavBarView.md +1 -1
  486. package/examples/@xmachines/play-react-demo/variables/Navigation.md +1 -1
  487. package/examples/@xmachines/play-react-demo/variables/Overview.md +1 -1
  488. package/examples/@xmachines/play-react-demo/variables/Panel.md +1 -1
  489. package/examples/@xmachines/play-react-demo/variables/Profile.md +1 -1
  490. package/examples/@xmachines/play-react-demo/variables/Settings.md +1 -1
  491. package/examples/@xmachines/play-react-demo/variables/Shell.md +1 -1
  492. package/examples/@xmachines/play-react-demo/variables/Stats.md +1 -1
  493. package/examples/@xmachines/play-react-demo/variables/authCatalog.md +1 -1
  494. package/examples/@xmachines/play-react-demo/variables/demoComponents.md +15 -15
  495. package/examples/@xmachines/play-solid-demo/functions/createAuthActionHandlers.md +9 -9
  496. package/examples/@xmachines/play-solid-demo/type-aliases/AuthCatalog.md +1 -1
  497. package/examples/@xmachines/play-solid-demo/variables/About.md +1 -1
  498. package/examples/@xmachines/play-solid-demo/variables/Button.md +1 -1
  499. package/examples/@xmachines/play-solid-demo/variables/Contact.md +1 -1
  500. package/examples/@xmachines/play-solid-demo/variables/Dashboard.md +1 -1
  501. package/examples/@xmachines/play-solid-demo/variables/DebugPanel.md +1 -1
  502. package/examples/@xmachines/play-solid-demo/variables/Field.md +1 -1
  503. package/examples/@xmachines/play-solid-demo/variables/Home.md +1 -1
  504. package/examples/@xmachines/play-solid-demo/variables/Login.md +1 -1
  505. package/examples/@xmachines/play-solid-demo/variables/NavBar.md +1 -1
  506. package/examples/@xmachines/play-solid-demo/variables/NavBarView.md +1 -1
  507. package/examples/@xmachines/play-solid-demo/variables/Navigation.md +1 -1
  508. package/examples/@xmachines/play-solid-demo/variables/Overview.md +1 -1
  509. package/examples/@xmachines/play-solid-demo/variables/Panel.md +1 -1
  510. package/examples/@xmachines/play-solid-demo/variables/Profile.md +1 -1
  511. package/examples/@xmachines/play-solid-demo/variables/Settings.md +1 -1
  512. package/examples/@xmachines/play-solid-demo/variables/Shell.md +1 -1
  513. package/examples/@xmachines/play-solid-demo/variables/Stats.md +1 -1
  514. package/examples/@xmachines/play-solid-demo/variables/authCatalog.md +190 -277
  515. package/examples/@xmachines/play-solid-demo/variables/demoComponents.md +17 -17
  516. package/examples/@xmachines/play-svelte-demo/functions/createAuthActionHandlers.md +9 -9
  517. package/examples/@xmachines/play-svelte-demo/type-aliases/AuthCatalog.md +1 -1
  518. package/examples/@xmachines/play-svelte-demo/variables/authCatalog.md +190 -277
  519. package/examples/@xmachines/play-svelte-demo/variables/demoComponents.md +15 -15
  520. package/examples/@xmachines/play-vue-demo/functions/createAuthActionHandlers.md +9 -9
  521. package/examples/@xmachines/play-vue-demo/type-aliases/AuthCatalog.md +1 -1
  522. package/examples/@xmachines/play-vue-demo/variables/App.md +1 -1
  523. package/examples/@xmachines/play-vue-demo/variables/authCatalog.md +1 -1
  524. package/examples/@xmachines/play-vue-demo/variables/demoComponents.md +1 -1
  525. package/examples/README.md +1 -1
  526. package/examples/multi-router-integration.md +1 -1
  527. package/examples/routing-patterns.md +1 -1
  528. package/examples/traffic-light.md +1 -1
  529. package/guides/README.md +5 -4
  530. package/guides/actor-model.md +4 -4
  531. package/guides/atoms.md +4 -4
  532. package/guides/getting-started.md +2 -6
  533. package/guides/inspector.md +1 -1
  534. package/guides/routing.md +41 -45
  535. package/guides/state-machines.md +69 -4
  536. package/guides/views.md +347 -0
  537. package/package.json +1 -1
  538. package/rfc/play.md +24 -8
@@ -0,0 +1,28 @@
1
+ [API](../../../../README.md) / [@xmachines/shared](../../README.md) / [vite-aliases](../README.md) / xmBuildOutputFile
2
+
3
+ # Function: xmBuildOutputFile()
4
+
5
+ ```ts
6
+ function xmBuildOutputFile(packageDir, sourceFile): string;
7
+ ```
8
+
9
+ Defined in: [vite-aliases.ts:359](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v6.1.0/packages/shared/config/vite-aliases.ts#L359)
10
+
11
+ The file in `dist/` that the build writes for one source file of a package.
12
+
13
+ The library build keeps the module structure (`preserveModules`, with `src/` as the root),
14
+ and tsc writes the same layout. So `src/a/b.ts` becomes `dist/a/b.js`. A `.tsx`, `.vue` or
15
+ `.svelte` file becomes `.js` too. A runes module `x.svelte.ts` becomes `x.js`: the build of
16
+ play-svelte drops the infix, because a consumer's Svelte plugin compiles each `*.svelte.js`
17
+ again (see `packages/play-svelte/vite.config.ts`).
18
+
19
+ ## Parameters
20
+
21
+ | Parameter | Type | Description |
22
+ | ------------ | -------- | ------------------------------------------- |
23
+ | `packageDir` | `string` | The package directory. |
24
+ | `sourceFile` | `string` | An absolute path under `<packageDir>/src/`. |
25
+
26
+ ## Returns
27
+
28
+ `string`
@@ -6,7 +6,7 @@
6
6
  function xmCacheDir(importMetaUrl, name): string;
7
7
  ```
8
8
 
9
- Defined in: [vite-aliases.ts:355](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v6.0.0/packages/shared/config/vite-aliases.ts#L355)
9
+ Defined in: [vite-aliases.ts:495](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v6.1.0/packages/shared/config/vite-aliases.ts#L495)
10
10
 
11
11
  Returns the shared Vite `cacheDir` for this workspace package.
12
12
 
@@ -6,7 +6,7 @@
6
6
  function xmOptimizeDeps(include?): DepOptimizationOptions;
7
7
  ```
8
8
 
9
- Defined in: [vite-aliases.ts:308](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v6.0.0/packages/shared/config/vite-aliases.ts#L308)
9
+ Defined in: [vite-aliases.ts:448](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v6.1.0/packages/shared/config/vite-aliases.ts#L448)
10
10
 
11
11
  Returns the standard Vite `optimizeDeps` config for browser test projects.
12
12
 
@@ -6,7 +6,7 @@
6
6
  function xmResolve(importMetaUrl, extra?): ResolveOptions & object;
7
7
  ```
8
8
 
9
- Defined in: [vite-aliases.ts:275](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v6.0.0/packages/shared/config/vite-aliases.ts#L275)
9
+ Defined in: [vite-aliases.ts:333](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v6.1.0/packages/shared/config/vite-aliases.ts#L333)
10
10
 
11
11
  Full Vite `resolve` config for @xmachines/* workspace packages.
12
12
 
@@ -6,7 +6,7 @@
6
6
  function xmSvelteRunes(): object;
7
7
  ```
8
8
 
9
- Defined in: [vite-aliases.ts:334](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v6.0.0/packages/shared/config/vite-aliases.ts#L334)
9
+ Defined in: [vite-aliases.ts:474](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v6.1.0/packages/shared/config/vite-aliases.ts#L474)
10
10
 
11
11
  Svelte plugin options that enforce runes mode for workspace sources only.
12
12
 
@@ -35,4 +35,4 @@ one and change the other.
35
35
 
36
36
  | Name | Type | Defined in |
37
37
  | ------------------------- | ------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- |
38
- | `dynamicCompileOptions()` | (`data`) => \| \{ `runes`: `boolean`; \} \| `undefined` | [vite-aliases.ts:335](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v6.0.0/packages/shared/config/vite-aliases.ts#L335) |
38
+ | `dynamicCompileOptions()` | (`data`) => \| \{ `runes`: `boolean`; \} \| `undefined` | [vite-aliases.ts:475](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v6.1.0/packages/shared/config/vite-aliases.ts#L475) |
@@ -0,0 +1,26 @@
1
+ [API](../../../../README.md) / [@xmachines/shared](../../README.md) / [vite-aliases](../README.md) / xmTestTarget
2
+
3
+ # Function: xmTestTarget()
4
+
5
+ ```ts
6
+ function xmTestTarget(env?): XmTestTarget;
7
+ ```
8
+
9
+ Defined in: [vite-aliases.ts:25](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v6.1.0/packages/shared/config/vite-aliases.ts#L25)
10
+
11
+ Reads the test target from the `XM_TEST_TARGET` environment variable.
12
+
13
+ The variable is the one switch of the dist run. The config helpers of this package read
14
+ it, so no package config holds a second copy of the dist setup. An unset or empty variable
15
+ gives `source`. Any other value than `source` or `dist` is an error: a typo must not run
16
+ the suite against the source and report the result as a run against the build.
17
+
18
+ ## Parameters
19
+
20
+ | Parameter | Type | Default value | Description |
21
+ | --------- | ------------ | ------------- | ------------------------------------------------------ |
22
+ | `env` | `ProcessEnv` | `process.env` | The environment to read. The default is `process.env`. |
23
+
24
+ ## Returns
25
+
26
+ [`XmTestTarget`](../type-aliases/XmTestTarget.md)
@@ -0,0 +1,15 @@
1
+ [API](../../../../README.md) / [@xmachines/shared](../../README.md) / [vite-aliases](../README.md) / XmTestTarget
2
+
3
+ # Type Alias: XmTestTarget
4
+
5
+ ```ts
6
+ type XmTestTarget = "source" | "dist";
7
+ ```
8
+
9
+ Defined in: [vite-aliases.ts:13](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v6.1.0/packages/shared/config/vite-aliases.ts#L13)
10
+
11
+ The code that a test run loads for each published `@xmachines/*` package.
12
+
13
+ - `source` — the TypeScript under `src/`. `pnpm test` runs this way, and it needs no build.
14
+ - `dist` — the build output under `dist/`, through the `exports` map of each package, as
15
+ a consumer gets it. `pnpm run test:dist` runs this way, after `pnpm run build`.
@@ -6,7 +6,7 @@
6
6
  function defineXmBrowserConfig(importMetaUrl, overrides, options?): UserConfig;
7
7
  ```
8
8
 
9
- Defined in: [vitest.ts:209](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v6.0.0/packages/shared/config/vitest.ts#L209)
9
+ Defined in: [vitest.ts:224](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v6.1.0/packages/shared/config/vitest.ts#L224)
10
10
 
11
11
  Create a Vitest browser-mode config with XMachines workspace defaults.
12
12
 
@@ -6,7 +6,7 @@
6
6
  function defineXmVitestConfig(importMetaUrl, overrides): UserConfig;
7
7
  ```
8
8
 
9
- Defined in: [vitest.ts:65](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v6.0.0/packages/shared/config/vitest.ts#L65)
9
+ Defined in: [vitest.ts:76](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v6.1.0/packages/shared/config/vitest.ts#L76)
10
10
 
11
11
  Create a Vitest config with XMachines workspace defaults.
12
12
 
@@ -14,6 +14,10 @@ What this applies automatically:
14
14
 
15
15
  - `resolve.alias` from `xmAliases(importMetaUrl)` so `@xmachines/*` imports
16
16
  resolve to source in local/dev test runs.
17
+ - In the dist run (`XM_TEST_TARGET=dist`), the `xmBuildOutput` plugin, and an
18
+ alias map with no published package in it: each `@xmachines/*` import then
19
+ resolves through its `exports` map to `dist/`, and each `src/` file that a
20
+ test imports by path resolves to its counterpart in `dist/`.
17
21
  - `config/vitest.setup.ts` when missing.
18
22
  - `config/vitest.node.setup.ts` for non-browser projects when missing.
19
23
  - `pool: "vmThreads"` for jsdom projects that declare no pool.
@@ -2,7 +2,7 @@
2
2
 
3
3
  # Interface: XmBrowserConfigOptions
4
4
 
5
- Defined in: [vitest.ts:159](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v6.0.0/packages/shared/config/vitest.ts#L159)
5
+ Defined in: [vitest.ts:174](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v6.1.0/packages/shared/config/vitest.ts#L174)
6
6
 
7
7
  Options for [defineXmBrowserConfig](../functions/defineXmBrowserConfig.md) that live outside the plain
8
8
  Vitest config overrides.
@@ -11,6 +11,6 @@ Vitest config overrides.
11
11
 
12
12
  | Property | Type | Description | Defined in |
13
13
  | -------------------------------------------------- | ---------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- |
14
- | <a id="property-base"></a> `base?` | `UserConfig` | Base Vite config to layer the browser test config on top of (typically a demo's `vite.config.ts`). When set, the base is expected to provide its own `resolve`/`plugins`, so the `cacheDir` and `resolve` defaults are not applied — mirroring the previous `mergeConfig(viteConfig, ...)` pattern in demo browser configs. | [vitest.ts:167](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v6.0.0/packages/shared/config/vitest.ts#L167) |
15
- | <a id="property-optimizedeps"></a> `optimizeDeps?` | `string`[] | Extra package specifiers to pre-bundle via `xmOptimizeDeps` (e.g. `["@xmachines/json-render-vue", "@xmachines/json-render-vue/schema"]`). Ignored when `overrides.optimizeDeps` is set, which then replaces the default `xmOptimizeDeps()` wholesale. | [vitest.ts:174](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v6.0.0/packages/shared/config/vitest.ts#L174) |
16
- | <a id="property-resolve"></a> `resolve?` | `Partial`\<`ResolveOptions` & `object`\> | Extra resolve options forwarded to `xmResolve` (e.g. `conditions` or additional `alias` entries). Not applied when `base` is set — the base config owns `resolve` in that layout. | [vitest.ts:180](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v6.0.0/packages/shared/config/vitest.ts#L180) |
14
+ | <a id="property-base"></a> `base?` | `UserConfig` | Base Vite config to layer the browser test config on top of (typically a demo's `vite.config.ts`). When set, the base is expected to provide its own `resolve`/`plugins`, so the `cacheDir` and `resolve` defaults are not applied — mirroring the previous `mergeConfig(viteConfig, ...)` pattern in demo browser configs. | [vitest.ts:182](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v6.1.0/packages/shared/config/vitest.ts#L182) |
15
+ | <a id="property-optimizedeps"></a> `optimizeDeps?` | `string`[] | Extra package specifiers to pre-bundle via `xmOptimizeDeps` (e.g. `["@xmachines/json-render-vue", "@xmachines/json-render-vue/schema"]`). Ignored when `overrides.optimizeDeps` is set, which then replaces the default `xmOptimizeDeps()` wholesale. | [vitest.ts:189](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v6.1.0/packages/shared/config/vitest.ts#L189) |
16
+ | <a id="property-resolve"></a> `resolve?` | `Partial`\<`ResolveOptions` & `object`\> | Extra resolve options forwarded to `xmResolve` (e.g. `conditions` or additional `alias` entries). Not applied when `base` is set — the base config owns `resolve` in that layout. | [vitest.ts:195](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v6.1.0/packages/shared/config/vitest.ts#L195) |
package/api/llms.txt CHANGED
@@ -64,8 +64,7 @@ import { withRouting } from '@xmachines/play-xstate/routing';
64
64
  import { withView } from '@xmachines/play-xstate/view';
65
65
  import { createRouteMapFromTree, extractRouteParams } from '@xmachines/play-router';
66
66
  import { extractMachineRoutes } from '@xmachines/play-router/xstate';
67
- import { defineRegistry } from '@xmachines/json-render-react';
68
- import { PlayRenderer } from '@xmachines/play-react';
67
+ import { PlayUIProvider, PlayRenderer, defineRegistry } from '@xmachines/play-react';
69
68
 
70
69
  const createPlayer = definePlayer({ machine, actor: compose(PlayerActor, withRouting, withView) });
71
70
  const actor = createPlayer();
@@ -77,6 +76,11 @@ const routeTree = extractMachineRoutes(machine);
77
76
  const routeMap = createRouteMapFromTree(routeTree);
78
77
  const stateId = routeMap.getStateIdByPath(currentRoute ?? '/');
79
78
 
80
- const { registry } = defineRegistry(catalog, { components, actions });
81
- <PlayRenderer actor={actor} registry={registry} actions={{ login: 'auth.login' }} />
79
+ const registryResult = defineRegistry(catalog, {
80
+ components,
81
+ actions: { login: async ({ username }) => actor.send({ type: 'auth.login', username }) },
82
+ });
83
+ <PlayUIProvider actor={actor} registryResult={registryResult}>
84
+ <PlayRenderer />
85
+ </PlayUIProvider>
82
86
  ```
@@ -184,20 +184,30 @@ flowchart TD
184
184
  F -->|"URL = machine initial state"| H
185
185
  ```
186
186
 
187
- ### View Prop Enrichment
187
+ ### View derivation
188
188
 
189
189
  ```mermaid
190
190
  flowchart TD
191
- A["XState snapshot.getMeta()"]
192
- B["resolveViewMeta(meta)\nfinds deepest meta.view with root + elements\n(its record key becomes viewKey)"]
191
+ A["XState snapshot"]
192
+ O{"a state node of the machine\ndeclares meta.view.outlets?\n(cached for each machine)"}
193
+ T["resolveViewTree(root, snapshot.value)\na view with outlets composes its active children;\nany other node keeps its deepest view"]
194
+ G["composeViews(tree) in play-view\ncached for each tree: elements, authored state, viewParts\nviewKey = the id of the outermost composing state"]
195
+ B["resolveViewMeta(active branch: the routed region first)\nfinds deepest meta.view with root + elements\n(its record key becomes viewKey)"]
193
196
  C["snapshot.context\nprojected wholesale as the /context slice"]
194
197
  D["composePlayState(spec.state, slice)\nstate: { ...authored, context: slice }"]
195
198
  E["reuseComposedState (in the currentView atom)\ncarry previous state reference when the slice is value-unchanged"]
196
199
  F["Derived PlaySpec (with viewKey) is the value of the currentView atom"]
197
200
 
198
- A --> B --> C --> D --> E --> F
201
+ A --> O
202
+ O -->|"yes"| T
203
+ T -->|"an active view composes"| G --> C
204
+ T -->|"no active view composes:\nthe view that the walk resolved"| C
205
+ O -->|"no"| B --> C
206
+ C --> D --> E --> F
199
207
  ```
200
208
 
209
+ The composition keeps each element of the outer view by reference, except an element that receives a child view. It prefixes each key of a child view with the id of its state. `composeViews` caches the result for each tree of view objects. A context assign therefore emits the same `elements` and `viewParts` references, and the emit gate of `withView` walks no element. When the `viewKey` stays and the `viewParts` value changes, `createViewStoreLifecycle` writes the authored keys that the store does not hold. play-dom then gives the new spec to `setSpec` of the incremental renderer, which keeps each node whose element did not change.
210
+
201
211
  **State atoms on the actor:**
202
212
 
203
213
  | Atom | Type | Description |
@@ -245,7 +255,7 @@ Optional capability interface. Exposes `currentView: ReadonlyAtom<PlaySpec | nul
245
255
 
246
256
  ### [`PlaySpec`](../api/@xmachines/play-view/index/interfaces/PlaySpec.md)
247
257
 
248
- Extends `@xmachines/json-render-core` `Spec`. `deriveCurrentView` projects the machine's whole context into the derived spec's `state` under the read-only `/context` subtree, and stamps a `viewKey` from the selected meta entry so providers can reseed vs refresh their store. Specs read context through the ordinary `{ $state: "/context/…" }` grammar; element props are never enriched. `typedSpec()` type-checks the spec literal at the definition site (XState's `meta` is untyped).
258
+ Extends `@xmachines/json-render-core` `Spec`. `deriveCurrentView` projects the machine's whole context into the derived spec's `state` under the read-only `/context` subtree, and stamps a `viewKey` from the selected meta entry so providers can reseed vs refresh their store. An authored `outlets` field composes the views of the active substates into the view of their parent, and the composed spec also carries `viewParts`. Specs read context through the ordinary `{ $state: "/context/…" }` grammar; element props are never enriched. `typedSpec()` type-checks the spec literal at the definition site (XState's `meta` is untyped).
249
259
 
250
260
  ### [`PlayerActor<TMachine>`](../api/@xmachines/play-xstate/index/classes/PlayerActor.md)
251
261
 
@@ -261,7 +271,7 @@ The core imports neither capability, so an application that declares no route lo
261
271
 
262
272
  **The composition order decides nothing.** `PlayerActor` writes ONE atom for each transition — `state` — and every capability that publishes a value DERIVES it with a computed atom over that one. The engine evaluates `currentRoute` and `currentView` from a single write, in topological order, so a router bridge sees a guard redirect and a renderer sees the view of the same snapshot whatever order `compose` applied.
263
273
 
264
- An earlier release wrote `currentView` from an `onSnapshot` override, and the order was load-bearing there: two writes flushed two times, and an observer of `state` and `currentView` read the new state beside the old view in between. `onSnapshot` remains for a capability that must run an EFFECT on a transition, and an override still calls `super.onSnapshot()` first.
274
+ A capability that must run an EFFECT on a transition overrides `onSnapshot`, and the override calls `super.onSnapshot()` first.
265
275
 
266
276
  ### [`definePlayer(config)`](../api/@xmachines/play-xstate/index/functions/definePlayer.md) → [`PlayerFactory`](../api/@xmachines/play-xstate/index/type-aliases/PlayerFactory.md)
267
277
 
@@ -436,7 +446,7 @@ packages/<name>/
436
446
 
437
447
  The monorepo uses **TypeScript composite project references** (`"composite": true` per package) for a correct, incremental, dependency-ordered build. The root `tsconfig.json` lists every package in layer order — leaves first, dependents last — and it is the ONLY build order of the workspace. `tsc --build` at the root reads that array and resolves the graph.
438
448
 
439
- **The layer table and the diagram live in [development.md](development.md#build-layers).** They stood here too, and the copy drifted: it kept the numbers of an earlier release, so a reader who added a package placed it in the wrong block of the root array. One home for the question, as for the `references` arrays that the root file replaced.
449
+ **The layer table and the diagram live in [development.md](development.md#build-layers).**
440
450
 
441
451
  Two facts about the graph belong to this document, because they are architecture and not build order:
442
452
 
@@ -614,7 +624,7 @@ Custom `watchRouterChanges()` implementations that bypass `syncActorFromRouter()
614
624
 
615
625
  Five paths reach that case. The host gives no `onError` prop. The handler of the host throws, or the producer of the `fallback` throws, or a release of the caller throws — each of those reports the failure of the HOST, which no handler of the host receives. `ActorProvider` of play-vue stops a second report of one error, and `onError` stays silent there on purpose, because the four other renderers see such an error never.
616
626
 
617
- Three other places write to `console.warn`, and each one reports a configuration that the library cannot refuse: `warnOnce` of [`@xmachines/play-view`](../api/@xmachines/play-view/README.md) names a `/context` projection that it cannot derive, one time for each spec; [`@xmachines/play-xstate`](../api/@xmachines/play-xstate/README.md) names the `meta.view.contextProps` field that 1.x removed, one time for each spec; and [`@xmachines/play-router`](../api/@xmachines/play-router/README.md) names a `basePath` that a bridge with no mount ignores. A warning is the answer where a throw would stop an application for a fault that it can still run with. No other library source calls `console.*`.
627
+ Three other places write to `console.warn`, and each one reports a configuration that the library cannot refuse: `warnOnce` of [`@xmachines/play-view`](../api/@xmachines/play-view/README.md) names a `/context` projection that it cannot derive, one time for each spec; [`@xmachines/play-xstate`](../api/@xmachines/play-xstate/README.md) names a `meta.view.contextProps` field, which the view does not read, one time for each spec; and [`@xmachines/play-router`](../api/@xmachines/play-router/README.md) names a `basePath` that a bridge with no mount ignores. A warning is the answer where a throw would stop an application for a fault that it can still run with. No other library source calls `console.*`.
618
628
 
619
629
  **Authentication:** Not in scope. Enforced via XState guards on `play.route` transitions. The guard evaluates machine `context` (e.g., `isLoggedIn`) before permitting navigation. No library-level auth primitives — the machine defines all access control.
620
630
 
@@ -6,12 +6,20 @@ This document describes every configuration file, environment variable, and per-
6
6
 
7
7
  ## Environment Variables
8
8
 
9
- The monorepo itself has no application runtime that reads environment variables. The only variables are for the **dev container** tooling and the **CI/CD release pipeline**.
9
+ The monorepo itself has no application runtime that reads environment variables. The only variables are for the **dev container** tooling, the **test runs**, and the **CI/CD release pipeline**.
10
10
 
11
11
  ### Dev Container Variables
12
12
 
13
13
  The dev container currently defines no workspace-specific environment variables; `.devcontainer/.env` (loaded via `env_file` in `.devcontainer/compose.yaml`) is available for local overrides if a future tool needs one. Copy `.devcontainer/.env.sample` to `.devcontainer/.env` to get started.
14
14
 
15
+ ### Test Run Variable
16
+
17
+ | Variable | Required | Default | Description |
18
+ | ---------------- | -------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
19
+ | `XM_TEST_TARGET` | Optional | `source` | The code that a test run loads for each published package: `source` (the `src/` tree) or `dist` (the build output). Any other value stops the run with an error. |
20
+
21
+ **Defined in:** the `test:dist` and `test:browser:dist` scripts of the root `package.json`. **Read by:** `xmTestTarget` of [`@xmachines/shared/vite-aliases`](../api/@xmachines/shared/README.md), which every config helper of that package calls. Do not set it by hand: run `pnpm run test:dist`. See [testing.md](testing.md#tests-on-the-build-output).
22
+
15
23
  ### CI / Release Pipeline Variable
16
24
 
17
25
  | Variable | Required | Default | Description |
@@ -329,7 +337,7 @@ stays.
329
337
 
330
338
  **Location:** `/vitest.config.ts`
331
339
  **Tool:** [Vitest](https://vitest.dev/) `^4.1.5`
332
- **Run:** `pnpm test` / `pnpm run test:coverage`
340
+ **Run:** `pnpm test` / `pnpm run test:coverage` / `pnpm run test:dist`
333
341
 
334
342
  Root Vitest config is a **workspace coordinator** that lists all per-package configs under `test.projects`. It sets conservative monorepo-wide defaults:
335
343
 
@@ -354,8 +362,10 @@ Root Vitest config is a **workspace coordinator** that lists all per-package con
354
362
 
355
363
  Coverage provider: `v8`. Individual packages may declare higher per-package thresholds in their own `vitest.config.ts`.
356
364
 
365
+ The JUnit file is `test-results.xml`. The dist run (`XM_TEST_TARGET=dist`) writes `test-results-dist.xml`, and it prefixes each class name with `dist:`, so the two runs stay apart in the merge request widget.
366
+
357
367
  **Browser test config:** `/vitest.browser.config.ts`
358
- Run with `pnpm run test:browser`. Uses Playwright Chromium via Vitest browser mode. `testTimeout` is `20000` ms; `maxWorkers` is `2` (default; demo integration projects override with `pool: "threads"` + `maxWorkers: 2`).
368
+ Run with `pnpm run test:browser`, or with `pnpm run test:browser:dist` against the build output. Uses Playwright Chromium via Vitest browser mode. `testTimeout` is `20000` ms; `maxWorkers` is `2` (default; demo integration projects override with `pool: "threads"` + `maxWorkers: 2`).
359
369
 
360
370
  ### Per-Package Vitest Config — `@xmachines/shared/vitest`
361
371
 
@@ -365,6 +375,8 @@ Run with `pnpm run test:browser`. Uses Playwright Chromium via Vitest browser mo
365
375
  Packages use `defineXmVitestConfig(import.meta.url, overrides)` to create their config. It automatically injects:
366
376
 
367
377
  - `resolve.alias` via `xmAliases()` so `@xmachines/*` imports resolve to TypeScript source without a prior build.
378
+ - In the dist run, the `xmBuildOutput` plugin. The alias map then holds no published package, so each `@xmachines/*` import resolves through its `exports` map to `dist/`. The plugin moves each `src/` file that a test imports by path to its counterpart in `dist/`.
379
+ - `test.provide.xmTestTarget`, which a test reads with `inject("xmTestTarget")`.
368
380
  - `vitest.node.setup.ts` for non-browser projects (if not already present).
369
381
  - `vitest.setup.ts` for all projects (if not already present).
370
382
 
@@ -387,10 +399,12 @@ export default defineXmVitestConfig(import.meta.url, {
387
399
  **Location:** `packages/shared/config/vite-aliases.ts`
388
400
  **Exported as:** [`@xmachines/shared/vite-aliases`](../api/@xmachines/shared/README.md)
389
401
 
390
- Provides two helpers used in all `vitest.config.ts` and `vite.config.ts` files:
402
+ Provides the helpers used in all `vitest.config.ts` and `vite.config.ts` files:
391
403
 
392
- - **`xmAliases(import.meta.url)`** — returns a `Record<string, string>` mapping every `@xmachines/*` package to its TypeScript source entry. Enables tests and dev servers to run without a prior `pnpm run build`.
393
- - **`xmResolve(import.meta.url)`** — returns a full Vite `resolve` config with `xmAliases` plus `preserveSymlinks: true` and `conditions: ["source"]`.
404
+ - **`xmAliases(import.meta.url)`** — returns a `Record<string, string>` mapping every `@xmachines/*` package to its TypeScript source entry. Enables tests and dev servers to run without a prior `pnpm run build`. In the dist run, the map holds no entry for a published package except `<name>/src`.
405
+ - **`xmResolve(import.meta.url)`** — returns a full Vite `resolve` config with `xmAliases` plus `preserveSymlinks: false`. It sets no `conditions`: the aliases do the work that the `source` condition does for TypeScript.
406
+ - **`xmTestTarget()`** — reads `XM_TEST_TARGET`, and returns `source` or `dist`.
407
+ - **`xmBuildOutput(import.meta.url)`** — the Vite plugin of the dist run. It moves each `src/` file of a published package to its counterpart in `dist/`, and it fails the import when the build output holds no such file. It also fails the run when anything loads a `src/` file of a published package.
394
408
  - **`xmCacheDir(import.meta.url, name)`** — returns a shared Vite cache path under `node_modules/.vite/<name>` to prevent redundant dep optimizer runs across projects.
395
409
  - **`xmOptimizeDeps(include?)`** — returns an `optimizeDeps.include` list holding exactly the specifiers passed in. Nothing is pre-bundled by default, and every entry has to be a package the calling project declares: pnpm gives each package its own `node_modules`, so Vite cannot resolve an undeclared specifier — it warns on stderr and carries on, which reads as a failure in a passing job.
396
410
 
@@ -436,6 +450,25 @@ Any step above can be skipped with the `SEMREL_SKIP_STEPS` CI variable, which th
436
450
 
437
451
  ---
438
452
 
453
+ ### Dependency Updates — `renovate.json5`
454
+
455
+ **Location:** `/renovate.json5`
456
+ **Tool:** [Renovate](https://docs.renovatebot.com/), from the `xmachin-es/renovate` project
457
+
458
+ Renovate updates the npm dependencies of every package of the workspace, the demos under `packages/*/examples/*` too. It also updates the to-be-continuous components that `.gitlab-ci.yml` includes. The bot runs one time each week. For each new version, it opens a merge request, and the pipeline of that merge request tests the new version. The Dependency Dashboard issue lists every update that Renovate knows.
459
+
460
+ The rules of the file:
461
+
462
+ - **Three days of cooldown.** The renovate component waits 3 days for a new version, which also covers the cooldown of one day in pnpm 11. The `@xmachines/*` packages have no cooldown, as in `pnpm-workspace.yaml`.
463
+ - **One merge request for json-render.** The `@xmachines/json-render-*` packages move together. The merge request moves every range, the `peerDependencies` too, as a `feat(deps):` commit. Renovate proposes the prereleases of the fork (`0.22.0-xm.1`), which it skips by default. Update the ranges that the README files name on the branch of that merge request.
464
+ - **No new major for an audit floor.** An override with a major in its key, for example `brace-expansion@2`, gets no update to the next major.
465
+ - **Approval for a patched package.** `pnpm-workspace.yaml` patches `@testing-library/jest-dom` and `@vitest/mocker` at one version. An update of these packages, or of vitest, needs a new patch. Approve it in the Dependency Dashboard, then move the patch on its branch.
466
+ - **Commit types.** A component update is a `ci:` commit, so semantic-release makes no release from it. An npm update is a `fix(deps):` commit for a `dependencies` entry, and a `chore(deps):` commit for any other type.
467
+
468
+ A new version of a component can rename an input and not say so. A pipeline that fails with no job is then an error in the inputs. Compare the inputs in `.gitlab-ci.yml` with the `spec` of the new version before you merge.
469
+
470
+ ---
471
+
439
472
  ## Per-Environment Overrides
440
473
 
441
474
  This monorepo has no application-level config with per-environment overrides (no `.env.development` / `.env.production` files). All configuration is tool-level (TypeScript, linter, formatter, test runner) and is environment-agnostic.
@@ -135,9 +135,11 @@ All commands are run from the **repository root** unless otherwise noted.
135
135
  | `pnpm run build` | Incremental build — all packages in dependency order (not a type-check) |
136
136
  | `pnpm --filter @xmachines/<pkg> run build` | Build a single package (and its deps) |
137
137
  | `pnpm run clean` | Remove coverage, Vite caches, and all `dist/` directories in packages |
138
- | `pnpm test` | Run all unit/integration tests once |
138
+ | `pnpm test` | Run all unit/integration tests once, on the source |
139
+ | `pnpm run test:dist` | Run the same tests on the build output (run `pnpm run build` first) |
139
140
  | `pnpm run test:watch` | Re-run tests on file changes (interactive) |
140
141
  | `pnpm run test:browser` | Run Playwright browser tests |
142
+ | `pnpm run test:browser:dist` | Run Playwright browser tests on the build output |
141
143
  | `pnpm run test:coverage` | Run tests with V8 coverage reporting |
142
144
  | `pnpm run test:browser:coverage` | Run browser tests with coverage reporting |
143
145
  | `pnpm run test:build` | Complete type-check of every package and its tests (`tsconfig.test.json`) |
@@ -205,6 +205,6 @@ this.state = createWritableAtom(this.getSnapshot());
205
205
 
206
206
  ## See also
207
207
 
208
- - [Understanding Atoms](../guides/atoms.md) — the concepts, and the invariants
208
+ - [Atoms](../guides/atoms.md) — the concepts, and the invariants
209
209
  - [`@xmachines/play-atom`](../api/@xmachines/play-atom/README.md) — the API reference
210
210
  - [Play RFC](../rfc/play.md) — section 5.1.1 defines the reactive substrate
@@ -8,7 +8,7 @@ The monorepo uses **[Vitest](https://vitest.dev/) `^5.0.1`** as its test framewo
8
8
 
9
9
  All packages extend the shared Vitest configuration helper `defineXmVitestConfig` (from [`@xmachines/shared/vitest`](../api/@xmachines/shared/README.md)) which automatically applies:
10
10
 
11
- - `@xmachines/*` source aliases so imports resolve to source during test runs
11
+ - `@xmachines/*` source aliases so imports resolve to source during test runs — or, in the dist run, to the build output (see [Tests on the build output](#tests-on-the-build-output))
12
12
  - [`@xmachines/shared/vitest-setup`](../api/@xmachines/shared/README.md) — extends Vitest matchers with `@testing-library/jest-dom`
13
13
  - [`@xmachines/shared/vitest-node-setup`](../api/@xmachines/shared/README.md) — enforces Node.js ≥ 24 on non-browser projects
14
14
 
@@ -77,6 +77,33 @@ pnpm run test:browser
77
77
 
78
78
  Runs `vitest run --config vitest.browser.config.ts`. Launches all browser-mode projects using headless Chromium via Playwright. Includes both package-level browser unit tests and full demo-app integration flows. The browser global setup (`vitest.browser.global-setup.ts`) raises `process.setMaxListeners` to 32 before workers spawn to prevent false-positive `MaxListenersExceededWarning` with multiple parallel browser projects.
79
79
 
80
+ ### Tests on the build output
81
+
82
+ ```bash
83
+ pnpm run build
84
+ pnpm run test:dist # the node suites
85
+ pnpm run test:browser:dist # the browser suites
86
+ ```
87
+
88
+ `pnpm test` runs every suite on the SOURCE of each package. It needs no build, and it cannot see a defect of the build. `pnpm run test:dist` runs the same test files on the BUILD OUTPUT, as a consumer installs it. The 6.0.0 release shows why both runs are necessary. [`@xmachines/play-vue`](../api/@xmachines/play-vue/README.md) and [`@xmachines/play-svelte`](../api/@xmachines/play-svelte/README.md) shipped compiled for server-side rendering, and neither rendered in a browser. Every source suite was green. The node dist run fails 14 test files on that output, and the browser dist run fails the Vue suites.
89
+
90
+ The two scripts set `XM_TEST_TARGET=dist`, and the config helpers of [`@xmachines/shared/vite-aliases`](../api/@xmachines/shared/README.md) read it. No package config holds a copy of the dist setup. The variable changes two things:
91
+
92
+ - **A specifier.** The alias map drops each published package. [`@xmachines/play-xstate/routing`](../api/@xmachines/play-xstate/README.md) then resolves through the `exports` map of the package to `dist/with-routing.js`. The `source` condition is not set either, so the resolution is the one that a consumer gets.
93
+ - **A path into `src/`.** A test imports the module under test by path, as `../src/define-player.js`, and that import reaches no exports map. The `xmBuildOutput` plugin moves it to `dist/define-player.js`, which is the file that the package entry imports. The test and the package then share ONE module, and a `vi.mock` of the `src/` path replaces the module of the build. The build keeps the module structure, so each source file has one counterpart.
94
+
95
+ The private packages — the demos and the `examples/shared` fixtures — reach no consumer, and the build does not compile them for one. Both runs read their source, and that source imports the packages from `dist/`.
96
+
97
+ The plugin fails an import when the build output holds no counterpart. The import then names both files. A fallback to the source would hide the defect that the dist run exists to find. The plugin also fails the run when anything loads a `src/` file of a published package by another route.
98
+
99
+ **Keep one file set.** Both runs collect the same files. A test that cannot run on the build output imports an internal module that the package does not ship. Import that module through the public entry of the package. If that is not possible, exclude the test from the dist run in its project config, and write the reason beside the exclusion. No test is excluded today.
100
+
101
+ **The proof.** `packages/play-xstate/test/test-target.test.ts` (node) and `packages/play-dom/test/browser/test-target.browser.test.ts` (browser) run in both runs. Each reads the target with `inject("xmTestTarget")`, and it asserts which file each kind of import loads. `import.meta.resolve` cannot answer that question, because it asks the resolver of Node. A stack trace cannot answer it either, because Vite applies the source maps of `dist/` and names `src/` in both runs.
102
+
103
+ Run `pnpm run build` first. The dist run reads whatever `dist/` holds, and it does not build. A change to `src/` reaches the dist run only through a new build.
104
+
105
+ Coverage stays on the source run. The build output carries none of the lines that the gate measures.
106
+
80
107
  ### With coverage
81
108
 
82
109
  ```bash
@@ -400,12 +427,12 @@ stop(); // Always clean up
400
427
  For type-only assertions, use `@ts-expect-error` in `.spec.ts` files:
401
428
 
402
429
  ```typescript
403
- const bad: PlaySpec = typedSpec({
430
+ const bad: ViewMeta = typedSpec({
404
431
  root: "root",
405
432
  elements: {},
406
- // @ts-expect-error "stat" is not a PlaySpec field — typedSpec flags it on an
433
+ // @ts-expect-error "stat" is not a ViewMeta field — typedSpec flags it on an
407
434
  // inline literal (excess-property checking does not reach aliased or spread
408
- // objects; use `satisfies PlaySpec` at the literal for those)
435
+ // objects; use `satisfies ViewMeta` at the literal for those)
409
436
  stat: {},
410
437
  });
411
438
  // At runtime the object exists; only the compile-time error is being tested
@@ -536,6 +563,8 @@ pnpm run test:coverage
536
563
 
537
564
  The job passes no reporter flag. `vitest.config.ts` owns the reporters, the JUnit file and the coverage directory, and it reads `COVERAGE_REPORTS_DIR` — which the `test` job sets to `reports/`. A new package therefore needs no CI change.
538
565
 
566
+ **Tests on the build output:** `test:dist` runs `pnpm run test:dist`, and `test:browser:dist` runs `pnpm run test:browser:dist` on the Playwright image. Both take `dist/` from `node-build` through `needs:`, so they test the build that the pipeline produced. They follow the rules of `test`, and they block: a failure is a defect of the tarball that a consumer installs, and it holds the release, because `semantic-release` runs in a later stage. They write `reports/test-results-dist.xml` and `reports/browser-results-dist.xml`, and each test case carries a `dist:` class name, so the widget of the merge request keeps them apart from the source runs. Neither job collects coverage.
567
+
539
568
  **Artifacts:** The `test` job publishes:
540
569
 
541
570
  - JUnit XML report at `reports/test-results.xml` (surfaced in GitLab's test results panel)
@@ -6,7 +6,7 @@
6
6
  function createAuthActionHandlers(actor): object;
7
7
  ```
8
8
 
9
- Defined in: [packages/play-actor/examples/shared/src/actions.ts:48](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v6.0.0/packages/play-actor/examples/shared/src/actions.ts#L48)
9
+ Defined in: [packages/play-actor/examples/shared/src/actions.ts:48](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v6.1.0/packages/play-actor/examples/shared/src/actions.ts#L48)
10
10
 
11
11
  Build the demo action handler map for one actor.
12
12
 
@@ -25,11 +25,11 @@ framework's `defineRegistry` accepts; spread the result into its `actions`.
25
25
 
26
26
  | Name | Type | Defined in |
27
27
  | ---------------- | ------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
28
- | `addTask()` | (`params?`) => `Promise`\<`void`\> | [packages/play-actor/examples/shared/src/actions.ts:65](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v6.0.0/packages/play-actor/examples/shared/src/actions.ts#L65) |
29
- | `completeTask()` | (`params`, `_setState`, `state`) => `Promise`\<`void`\> | [packages/play-actor/examples/shared/src/actions.ts:72](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v6.0.0/packages/play-actor/examples/shared/src/actions.ts#L72) |
30
- | `login()` | (`params?`) => `Promise`\<`void`\> | [packages/play-actor/examples/shared/src/actions.ts:50](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v6.0.0/packages/play-actor/examples/shared/src/actions.ts#L50) |
31
- | `logout()` | () => `Promise`\<`void`\> | [packages/play-actor/examples/shared/src/actions.ts:54](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v6.0.0/packages/play-actor/examples/shared/src/actions.ts#L54) |
32
- | `removeTask()` | (`params`, `_setState`, `state`) => `Promise`\<`void`\> | [packages/play-actor/examples/shared/src/actions.ts:81](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v6.0.0/packages/play-actor/examples/shared/src/actions.ts#L81) |
33
- | `resetForm()` | (`params`, `setState`) => `Promise`\<`void`\> | [packages/play-actor/examples/shared/src/actions.ts:99](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v6.0.0/packages/play-actor/examples/shared/src/actions.ts#L99) |
34
- | `route()` | (`params?`) => `Promise`\<`void`\> | [packages/play-actor/examples/shared/src/actions.ts:55](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v6.0.0/packages/play-actor/examples/shared/src/actions.ts#L55) |
35
- | `submitForm()` | (`params?`) => `Promise`\<`void`\> | [packages/play-actor/examples/shared/src/actions.ts:92](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v6.0.0/packages/play-actor/examples/shared/src/actions.ts#L92) |
28
+ | `addTask()` | (`params?`) => `Promise`\<`void`\> | [packages/play-actor/examples/shared/src/actions.ts:65](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v6.1.0/packages/play-actor/examples/shared/src/actions.ts#L65) |
29
+ | `completeTask()` | (`params`, `_setState`, `state`) => `Promise`\<`void`\> | [packages/play-actor/examples/shared/src/actions.ts:72](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v6.1.0/packages/play-actor/examples/shared/src/actions.ts#L72) |
30
+ | `login()` | (`params?`) => `Promise`\<`void`\> | [packages/play-actor/examples/shared/src/actions.ts:50](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v6.1.0/packages/play-actor/examples/shared/src/actions.ts#L50) |
31
+ | `logout()` | () => `Promise`\<`void`\> | [packages/play-actor/examples/shared/src/actions.ts:54](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v6.1.0/packages/play-actor/examples/shared/src/actions.ts#L54) |
32
+ | `removeTask()` | (`params`, `_setState`, `state`) => `Promise`\<`void`\> | [packages/play-actor/examples/shared/src/actions.ts:81](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v6.1.0/packages/play-actor/examples/shared/src/actions.ts#L81) |
33
+ | `resetForm()` | (`params`, `setState`) => `Promise`\<`void`\> | [packages/play-actor/examples/shared/src/actions.ts:99](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v6.1.0/packages/play-actor/examples/shared/src/actions.ts#L99) |
34
+ | `route()` | (`params?`) => `Promise`\<`void`\> | [packages/play-actor/examples/shared/src/actions.ts:55](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v6.1.0/packages/play-actor/examples/shared/src/actions.ts#L55) |
35
+ | `submitForm()` | (`params?`) => `Promise`\<`void`\> | [packages/play-actor/examples/shared/src/actions.ts:92](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v6.1.0/packages/play-actor/examples/shared/src/actions.ts#L92) |
@@ -6,7 +6,7 @@
6
6
  function createConfirmDialog(confirm): Promise<boolean>;
7
7
  ```
8
8
 
9
- Defined in: [packages/play-dom/examples/demo/src/components/ConfirmDialog.ts:12](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v6.0.0/packages/play-dom/examples/demo/src/components/ConfirmDialog.ts#L12)
9
+ Defined in: [packages/play-dom/examples/demo/src/components/ConfirmDialog.ts:12](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v6.1.0/packages/play-dom/examples/demo/src/components/ConfirmDialog.ts#L12)
10
10
 
11
11
  ConfirmDialog — the DOM demo's onConfirm implementation.
12
12
 
@@ -6,7 +6,7 @@
6
6
  function createNavBar(actor, container): () => void;
7
7
  ```
8
8
 
9
- Defined in: [packages/play-dom/examples/demo/src/components/NavBar.ts:9](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v6.0.0/packages/play-dom/examples/demo/src/components/NavBar.ts#L9)
9
+ Defined in: [packages/play-dom/examples/demo/src/components/NavBar.ts:9](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v6.1.0/packages/play-dom/examples/demo/src/components/NavBar.ts#L9)
10
10
 
11
11
  NavBar — App-shell navigation factory. Mounts a reactive nav into
12
12
  `container`, observes actor.state via watchAtom, and updates button
@@ -6,7 +6,7 @@
6
6
  function initShell(actor, appElement, inspector): () => void;
7
7
  ```
8
8
 
9
- Defined in: [packages/play-dom/examples/demo/src/components/Shell.ts:18](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v6.0.0/packages/play-dom/examples/demo/src/components/Shell.ts#L18)
9
+ Defined in: [packages/play-dom/examples/demo/src/components/Shell.ts:18](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v6.1.0/packages/play-dom/examples/demo/src/components/Shell.ts#L18)
10
10
 
11
11
  Shell — DOM shell layout factory. Renders demo chrome (header + main +
12
12
  debug panel), mounts NavBar, connects DOM renderer, and wires DebugPanel.
@@ -6,4 +6,4 @@
6
6
  type AuthCatalog = typeof authCatalog;
7
7
  ```
8
8
 
9
- Defined in: [packages/play-dom/examples/demo/src/catalog.ts:6](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v6.0.0/packages/play-dom/examples/demo/src/catalog.ts#L6)
9
+ Defined in: [packages/play-dom/examples/demo/src/catalog.ts:6](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v6.1.0/packages/play-dom/examples/demo/src/catalog.ts#L6)
@@ -6,7 +6,7 @@
6
6
  const About: ComponentFn<AuthCatalog, "About">;
7
7
  ```
8
8
 
9
- Defined in: [packages/play-dom/examples/demo/src/components/About.ts:8](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v6.0.0/packages/play-dom/examples/demo/src/components/About.ts#L8)
9
+ Defined in: [packages/play-dom/examples/demo/src/components/About.ts:8](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v6.1.0/packages/play-dom/examples/demo/src/components/About.ts#L8)
10
10
 
11
11
  About — Public information page. Catalog-typed DOM component
12
12
  (ComponentFn<AuthCatalog, 'About'>). Renders static content from props.
@@ -6,7 +6,7 @@
6
6
  const Button: ComponentFn<AuthCatalog, "Button">;
7
7
  ```
8
8
 
9
- Defined in: [packages/play-dom/examples/demo/src/components/Button.ts:8](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v6.0.0/packages/play-dom/examples/demo/src/components/Button.ts#L8)
9
+ Defined in: [packages/play-dom/examples/demo/src/components/Button.ts:8](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v6.1.0/packages/play-dom/examples/demo/src/components/Button.ts#L8)
10
10
 
11
11
  Button — emits `press`; the spec's `on.press` binding decides what happens
12
12
  (a host action sending a machine event, or a built-in like setState).
@@ -6,7 +6,7 @@
6
6
  const Contact: ComponentFn<AuthCatalog, "Contact">;
7
7
  ```
8
8
 
9
- Defined in: [packages/play-dom/examples/demo/src/components/Contact.ts:8](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v6.0.0/packages/play-dom/examples/demo/src/components/Contact.ts#L8)
9
+ Defined in: [packages/play-dom/examples/demo/src/components/Contact.ts:8](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v6.1.0/packages/play-dom/examples/demo/src/components/Contact.ts#L8)
10
10
 
11
11
  Contact — Public contact page. Catalog-typed DOM component
12
12
  (ComponentFn<AuthCatalog, 'Contact'>). Renders static content from props.
@@ -6,7 +6,7 @@
6
6
  const Dashboard: ComponentFn<AuthCatalog, "Dashboard">;
7
7
  ```
8
8
 
9
- Defined in: [packages/play-dom/examples/demo/src/components/Dashboard.ts:9](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v6.0.0/packages/play-dom/examples/demo/src/components/Dashboard.ts#L9)
9
+ Defined in: [packages/play-dom/examples/demo/src/components/Dashboard.ts:9](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v6.1.0/packages/play-dom/examples/demo/src/components/Dashboard.ts#L9)
10
10
 
11
11
  Dashboard — Protected authenticated home. Catalog-typed DOM component
12
12
  (ComponentFn<AuthCatalog, 'Dashboard'>). Renders welcome message; logout
@@ -6,7 +6,7 @@
6
6
  const Field: ComponentFn<AuthCatalog, "Field">;
7
7
  ```
8
8
 
9
- Defined in: [packages/play-dom/examples/demo/src/components/Field.ts:15](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v6.0.0/packages/play-dom/examples/demo/src/components/Field.ts#L15)
9
+ Defined in: [packages/play-dom/examples/demo/src/components/Field.ts:15](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v6.1.0/packages/play-dom/examples/demo/src/components/Field.ts#L15)
10
10
 
11
11
  Field — labelled input with two-way $bindState binding and declarative
12
12
  validation checks.