@xmachines/docs 6.0.0 → 7.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 (604) hide show
  1. package/README.md +9 -8
  2. package/api/@xmachines/core/README.md +7 -2
  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 +10 -5
  21. package/api/@xmachines/play/errors/classes/NonNullableError.md +4 -4
  22. package/api/@xmachines/play/errors/classes/PlayError.md +6 -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 +9 -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 +17 -5
  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 +138 -60
  45. package/api/@xmachines/play-dom/classes/PlayRenderer.md +12 -12
  46. package/api/@xmachines/play-dom/functions/createPlayUI.md +5 -5
  47. package/api/@xmachines/play-dom/functions/createRenderer.md +1 -1
  48. package/api/@xmachines/play-dom/functions/renderSpec.md +3 -2
  49. package/api/@xmachines/play-dom/interfaces/ComponentContext.md +9 -9
  50. package/api/@xmachines/play-dom/interfaces/CreatePlayUIOptions.md +15 -14
  51. package/api/@xmachines/play-dom/interfaces/DomRenderContext.md +26 -20
  52. package/api/@xmachines/play-dom/interfaces/MountOptions.md +3 -3
  53. package/api/@xmachines/play-dom/interfaces/PassOptions.md +14 -0
  54. package/api/@xmachines/play-dom/interfaces/PlayDomOptions.md +18 -17
  55. package/api/@xmachines/play-dom/interfaces/RenderErrorInfo.md +16 -0
  56. package/api/@xmachines/play-dom/interfaces/RenderSpecOptions.md +17 -15
  57. package/api/@xmachines/play-dom/interfaces/UIProviderOptions.md +9 -8
  58. package/api/@xmachines/play-dom/interfaces/ValidationRegistry.md +14 -11
  59. package/api/@xmachines/play-dom/type-aliases/ConfirmHandler.md +9 -10
  60. package/api/@xmachines/play-dom/type-aliases/DefineRegistryOptions.md +4 -3
  61. package/api/@xmachines/play-dom/type-aliases/MountFn.md +1 -1
  62. package/api/@xmachines/play-dom/type-aliases/OnRenderError.md +27 -0
  63. package/api/@xmachines/play-dom/type-aliases/RenderErrorKind.md +21 -0
  64. package/api/@xmachines/play-dom-router/README.md +41 -5
  65. package/api/@xmachines/play-dom-router/classes/DomRouterBridge.md +7 -7
  66. package/api/@xmachines/play-dom-router/classes/RouteMap.md +4 -4
  67. package/api/@xmachines/play-dom-router/functions/connectRouter.md +1 -1
  68. package/api/@xmachines/play-dom-router/functions/createBrowserHistory.md +1 -1
  69. package/api/@xmachines/play-dom-router/functions/createRouter.md +1 -1
  70. package/api/@xmachines/play-dom-router/interfaces/BasePathOptions.md +3 -3
  71. package/api/@xmachines/play-dom-router/interfaces/BrowserHistory.md +14 -14
  72. package/api/@xmachines/play-dom-router/interfaces/BrowserWindow.md +14 -14
  73. package/api/@xmachines/play-dom-router/interfaces/ConnectRouterOptions.md +8 -8
  74. package/api/@xmachines/play-dom-router/interfaces/PlayRouteEvent.md +7 -7
  75. package/api/@xmachines/play-dom-router/interfaces/RoutableActor.md +4 -4
  76. package/api/@xmachines/play-dom-router/interfaces/RouteLookupContract.md +3 -3
  77. package/api/@xmachines/play-dom-router/interfaces/RouteMapOptions.md +4 -4
  78. package/api/@xmachines/play-dom-router/interfaces/RouteMapping.md +3 -3
  79. package/api/@xmachines/play-dom-router/interfaces/RouterBridge.md +3 -3
  80. package/api/@xmachines/play-dom-router/interfaces/RouterConnection.md +6 -6
  81. package/api/@xmachines/play-dom-router/interfaces/VanillaRouter.md +4 -4
  82. package/api/@xmachines/play-pattern/README.md +1 -1
  83. package/api/@xmachines/play-pattern/functions/buildPath.md +1 -1
  84. package/api/@xmachines/play-pattern/functions/createLruCache.md +1 -1
  85. package/api/@xmachines/play-pattern/functions/getIndexKey.md +1 -1
  86. package/api/@xmachines/play-pattern/functions/isDotSegment.md +1 -1
  87. package/api/@xmachines/play-pattern/functions/parsePattern.md +1 -1
  88. package/api/@xmachines/play-pattern/interfaces/GroupPart.md +4 -4
  89. package/api/@xmachines/play-pattern/interfaces/KeyValueCache.md +3 -3
  90. package/api/@xmachines/play-pattern/interfaces/LiteralPart.md +3 -3
  91. package/api/@xmachines/play-pattern/interfaces/ParamPart.md +7 -7
  92. package/api/@xmachines/play-pattern/interfaces/ParseOptions.md +2 -2
  93. package/api/@xmachines/play-pattern/interfaces/ParsedPattern.md +12 -12
  94. package/api/@xmachines/play-pattern/interfaces/PatternParam.md +4 -4
  95. package/api/@xmachines/play-pattern/type-aliases/PathBuildResult.md +1 -1
  96. package/api/@xmachines/play-pattern/type-aliases/PathParams.md +1 -1
  97. package/api/@xmachines/play-pattern/type-aliases/PatternModifier.md +1 -1
  98. package/api/@xmachines/play-pattern/type-aliases/PatternPart.md +1 -1
  99. package/api/@xmachines/play-react/README.md +57 -18
  100. package/api/@xmachines/play-react/classes/PlayErrorBoundary.md +6 -6
  101. package/api/@xmachines/play-react/functions/defineRegistry.md +1 -1
  102. package/api/@xmachines/play-react/functions/useActor.md +1 -1
  103. package/api/@xmachines/play-react/functions/useAtomEffect.md +1 -1
  104. package/api/@xmachines/play-react/functions/usePlayView.md +1 -1
  105. package/api/@xmachines/play-react/interfaces/ActionProviderProps.md +5 -5
  106. package/api/@xmachines/play-react/interfaces/ActorProviderProps.md +11 -11
  107. package/api/@xmachines/play-react/interfaces/DefineRegistryResult.md +15 -0
  108. package/api/@xmachines/play-react/interfaces/PlayErrorBoundaryProps.md +6 -6
  109. package/api/@xmachines/play-react/interfaces/PlayErrorBoundaryState.md +4 -4
  110. package/api/@xmachines/play-react/interfaces/PlayUIProviderProps.md +13 -13
  111. package/api/@xmachines/play-react/interfaces/RenderErrorInfo.md +16 -0
  112. package/api/@xmachines/play-react/interfaces/RendererProps.md +7 -7
  113. package/api/@xmachines/play-react/interfaces/ViewContextValue.md +5 -5
  114. package/api/@xmachines/play-react/type-aliases/AnyPlayActor.md +1 -1
  115. package/api/@xmachines/play-react/type-aliases/OnRenderError.md +27 -0
  116. package/api/@xmachines/play-react/type-aliases/RenderErrorKind.md +21 -0
  117. package/api/@xmachines/play-react/variables/ActorProvider.md +14 -4
  118. package/api/@xmachines/play-react/variables/PlayRenderer.md +1 -1
  119. package/api/@xmachines/play-react/variables/PlayUIProvider.md +1 -1
  120. package/api/@xmachines/play-react-router/README.md +26 -5
  121. package/api/@xmachines/play-react-router/classes/ReactRouterBridge.md +7 -7
  122. package/api/@xmachines/play-react-router/classes/RouteMap.md +4 -4
  123. package/api/@xmachines/play-react-router/functions/createPlayRouterProvider.md +1 -1
  124. package/api/@xmachines/play-react-router/functions/createRouteMapFromTree.md +1 -1
  125. package/api/@xmachines/play-react-router/interfaces/PlayRouteEvent.md +7 -7
  126. package/api/@xmachines/play-react-router/interfaces/PlayRouterProviderProps.md +9 -9
  127. package/api/@xmachines/play-react-router/interfaces/RoutableActor.md +4 -4
  128. package/api/@xmachines/play-react-router/interfaces/RouteMapOptions.md +4 -4
  129. package/api/@xmachines/play-react-router/interfaces/RouteMapping.md +3 -3
  130. package/api/@xmachines/play-react-router/interfaces/RouterBridge.md +3 -3
  131. package/api/@xmachines/play-react-router/type-aliases/PlayRouterBridgeConstructor.md +1 -1
  132. package/api/@xmachines/play-react-router/type-aliases/PlayRouterProviderBaseProps.md +1 -1
  133. package/api/@xmachines/play-react-router/variables/PlayRouterProvider.md +1 -1
  134. package/api/@xmachines/play-router/README.md +79 -23
  135. package/api/@xmachines/play-router/errors/classes/DuplicateBridgeError.md +4 -4
  136. package/api/@xmachines/play-router/errors/classes/DuplicateRoutePathError.md +5 -5
  137. package/api/@xmachines/play-router/errors/classes/EmptyRoutePathError.md +5 -5
  138. package/api/@xmachines/play-router/errors/classes/InvalidBasePathError.md +5 -5
  139. package/api/@xmachines/play-router/errors/classes/InvalidRoutePatternError.md +5 -5
  140. package/api/@xmachines/play-router/errors/classes/InvalidStateIdError.md +5 -5
  141. package/api/@xmachines/play-router/errors/classes/MissingBasePathParamError.md +6 -6
  142. package/api/@xmachines/play-router/errors/classes/RouterSyncError.md +4 -4
  143. package/api/@xmachines/play-router/errors/classes/UnknownStateTypeError.md +6 -6
  144. package/api/@xmachines/play-router/index/classes/RouteMap.md +4 -4
  145. package/api/@xmachines/play-router/index/classes/RouterBridgeBase.md +7 -7
  146. package/api/@xmachines/play-router/index/functions/buildPlayRouteEvent.md +1 -1
  147. package/api/@xmachines/play-router/index/functions/buildRouteTree.md +1 -1
  148. package/api/@xmachines/play-router/index/functions/cleanFrameworkParams.md +1 -1
  149. package/api/@xmachines/play-router/index/functions/createLruCache.md +1 -1
  150. package/api/@xmachines/play-router/index/functions/createRouteMapFromTree.md +1 -1
  151. package/api/@xmachines/play-router/index/functions/createRouterConnection.md +1 -1
  152. package/api/@xmachines/play-router/index/functions/detectDuplicateRoutes.md +1 -1
  153. package/api/@xmachines/play-router/index/functions/extractQuery.md +1 -1
  154. package/api/@xmachines/play-router/index/functions/extractRouteParams.md +1 -1
  155. package/api/@xmachines/play-router/index/functions/findRouteById.md +1 -1
  156. package/api/@xmachines/play-router/index/functions/findRouteByPath.md +1 -1
  157. package/api/@xmachines/play-router/index/functions/isMountableBridge.md +1 -1
  158. package/api/@xmachines/play-router/index/functions/joinBasePath.md +1 -1
  159. package/api/@xmachines/play-router/index/functions/mountKey.md +1 -1
  160. package/api/@xmachines/play-router/index/functions/normalizeBasePath.md +1 -1
  161. package/api/@xmachines/play-router/index/functions/openProviderBridge.md +3 -3
  162. package/api/@xmachines/play-router/index/functions/parsePattern.md +1 -1
  163. package/api/@xmachines/play-router/index/functions/pickOwnParams.md +1 -1
  164. package/api/@xmachines/play-router/index/functions/repointProviderBridge.md +1 -1
  165. package/api/@xmachines/play-router/index/functions/resolveBasePath.md +1 -1
  166. package/api/@xmachines/play-router/index/functions/resolveFrameworkParams.md +1 -1
  167. package/api/@xmachines/play-router/index/functions/sanitizePathname.md +1 -1
  168. package/api/@xmachines/play-router/index/functions/splitLocation.md +1 -1
  169. package/api/@xmachines/play-router/index/functions/stripBasePath.md +1 -1
  170. package/api/@xmachines/play-router/index/functions/validateRouteFormat.md +1 -1
  171. package/api/@xmachines/play-router/index/functions/validateStateExists.md +1 -1
  172. package/api/@xmachines/play-router/index/interfaces/BasePathOptions.md +3 -3
  173. package/api/@xmachines/play-router/index/interfaces/BuildPlayRouteEventOptions.md +4 -4
  174. package/api/@xmachines/play-router/index/interfaces/CompileOptions.md +3 -3
  175. package/api/@xmachines/play-router/index/interfaces/FrameworkParamsSource.md +7 -7
  176. package/api/@xmachines/play-router/index/interfaces/KeyValueCache.md +3 -3
  177. package/api/@xmachines/play-router/index/interfaces/LocationLike.md +3 -3
  178. package/api/@xmachines/play-router/index/interfaces/MountableRouterBridge.md +6 -6
  179. package/api/@xmachines/play-router/index/interfaces/OpenProviderBridgeArgs.md +8 -8
  180. package/api/@xmachines/play-router/index/interfaces/ParseOptions.md +2 -2
  181. package/api/@xmachines/play-router/index/interfaces/ParsedPattern.md +12 -12
  182. package/api/@xmachines/play-router/index/interfaces/PlayRouteEvent.md +7 -7
  183. package/api/@xmachines/play-router/index/interfaces/PlayRouterProviderBaseProps.md +9 -9
  184. package/api/@xmachines/play-router/index/interfaces/ResolvedBasePath.md +3 -3
  185. package/api/@xmachines/play-router/index/interfaces/ResolvedRoutePath.md +3 -3
  186. package/api/@xmachines/play-router/index/interfaces/Routable.md +3 -3
  187. package/api/@xmachines/play-router/index/interfaces/RoutableActor.md +4 -4
  188. package/api/@xmachines/play-router/index/interfaces/RouteInfo.md +8 -8
  189. package/api/@xmachines/play-router/index/interfaces/RouteMapOptions.md +4 -4
  190. package/api/@xmachines/play-router/index/interfaces/RouteMapping.md +3 -3
  191. package/api/@xmachines/play-router/index/interfaces/RouteMatch.md +3 -3
  192. package/api/@xmachines/play-router/index/interfaces/RouteNode.md +10 -10
  193. package/api/@xmachines/play-router/index/interfaces/RouteObject.md +12 -15
  194. package/api/@xmachines/play-router/index/interfaces/RouteTree.md +5 -5
  195. package/api/@xmachines/play-router/index/interfaces/RouteWatcherHandle.md +3 -3
  196. package/api/@xmachines/play-router/index/interfaces/RouterBridge.md +3 -3
  197. package/api/@xmachines/play-router/index/interfaces/RouterBridgeOptions.md +6 -6
  198. package/api/@xmachines/play-router/index/interfaces/RouterConnection.md +6 -6
  199. package/api/@xmachines/play-router/index/interfaces/SplitLocation.md +5 -5
  200. package/api/@xmachines/play-router/index/interfaces/WindowLike.md +3 -3
  201. package/api/@xmachines/play-router/index/type-aliases/PlayRouterBridgeConstructor.md +1 -1
  202. package/api/@xmachines/play-router/index/type-aliases/RouteData.md +1 -1
  203. package/api/@xmachines/play-router/index/type-aliases/RouteDataResolver.md +1 -1
  204. package/api/@xmachines/play-router/index/type-aliases/RouteMetadata.md +1 -1
  205. package/api/@xmachines/play-router/index/type-aliases/URLPatternLike.md +3 -3
  206. package/api/@xmachines/play-router/index/variables/NO_BASE_PATH.md +1 -1
  207. package/api/@xmachines/play-router/index/variables/ROOT_NODE_ID.md +1 -1
  208. package/api/@xmachines/play-router/xstate/functions/createRouteMap.md +1 -1
  209. package/api/@xmachines/play-router/xstate/functions/extractMachineRoutes.md +1 -1
  210. package/api/@xmachines/play-router/xstate/functions/getNavigableRoutes.md +1 -1
  211. package/api/@xmachines/play-router/xstate/functions/getRoutableRoutes.md +1 -1
  212. package/api/@xmachines/play-router/xstate/functions/getRouteMappings.md +1 -1
  213. package/api/@xmachines/play-router/xstate/functions/getTransitionReachableRoutes.md +1 -1
  214. package/api/@xmachines/play-router/xstate/functions/isRouteReachable.md +1 -1
  215. package/api/@xmachines/play-router/xstate/functions/machineToGraph.md +1 -1
  216. package/api/@xmachines/play-router/xstate/functions/routeExists.md +1 -1
  217. package/api/@xmachines/play-router/xstate/interfaces/MachineEdgeData.md +3 -3
  218. package/api/@xmachines/play-router/xstate/interfaces/MachineNodeData.md +5 -5
  219. package/api/@xmachines/play-router/xstate/type-aliases/MachineGraph.md +1 -1
  220. package/api/@xmachines/play-solid/README.md +35 -14
  221. package/api/@xmachines/play-solid/functions/defineRegistry.md +5 -5
  222. package/api/@xmachines/play-solid/functions/useActor.md +1 -1
  223. package/api/@xmachines/play-solid/functions/useBoundProp.md +8 -5
  224. package/api/@xmachines/play-solid/functions/useFieldValidation.md +6 -4
  225. package/api/@xmachines/play-solid/functions/usePlayView.md +1 -1
  226. package/api/@xmachines/play-solid/functions/useStateBinding.md +5 -3
  227. package/api/@xmachines/play-solid/functions/useStateValue.md +5 -3
  228. package/api/@xmachines/play-solid/interfaces/ActorProviderProps.md +10 -10
  229. package/api/@xmachines/play-solid/interfaces/ComponentContext.md +9 -8
  230. package/api/@xmachines/play-solid/interfaces/PlayUIProviderProps.md +13 -13
  231. package/api/@xmachines/play-solid/interfaces/RenderErrorInfo.md +16 -0
  232. package/api/@xmachines/play-solid/interfaces/RendererProps.md +7 -7
  233. package/api/@xmachines/play-solid/interfaces/ViewContextValue.md +5 -5
  234. package/api/@xmachines/play-solid/type-aliases/AnyPlayActor.md +1 -1
  235. package/api/@xmachines/play-solid/type-aliases/OnRenderError.md +27 -0
  236. package/api/@xmachines/play-solid/type-aliases/RenderErrorKind.md +21 -0
  237. package/api/@xmachines/play-solid/variables/ActorContext.md +1 -1
  238. package/api/@xmachines/play-solid/variables/ActorProvider.md +17 -3
  239. package/api/@xmachines/play-solid/variables/PlayRenderer.md +1 -1
  240. package/api/@xmachines/play-solid/variables/PlayUIProvider.md +1 -1
  241. package/api/@xmachines/play-solid/variables/schema.md +35 -54
  242. package/api/@xmachines/play-solid-router/README.md +22 -6
  243. package/api/@xmachines/play-solid-router/classes/RouteMap.md +4 -4
  244. package/api/@xmachines/play-solid-router/classes/SolidRouterBridge.md +8 -8
  245. package/api/@xmachines/play-solid-router/functions/createPlayRouterProvider.md +1 -1
  246. package/api/@xmachines/play-solid-router/interfaces/PlayActor.md +3 -3
  247. package/api/@xmachines/play-solid-router/interfaces/PlayRouteEvent.md +7 -7
  248. package/api/@xmachines/play-solid-router/interfaces/PlayRouterProviderProps.md +9 -9
  249. package/api/@xmachines/play-solid-router/interfaces/RoutableActor.md +4 -4
  250. package/api/@xmachines/play-solid-router/interfaces/RouteMapOptions.md +4 -4
  251. package/api/@xmachines/play-solid-router/interfaces/RouteMapping.md +3 -3
  252. package/api/@xmachines/play-solid-router/interfaces/RouterBridge.md +3 -3
  253. package/api/@xmachines/play-solid-router/type-aliases/PlayRouterBridgeConstructor.md +1 -1
  254. package/api/@xmachines/play-solid-router/type-aliases/PlayRouterProviderBaseProps.md +1 -1
  255. package/api/@xmachines/play-solid-router/type-aliases/SolidRouterHooks.md +4 -4
  256. package/api/@xmachines/play-solid-router/variables/PlayRouterProvider.md +1 -1
  257. package/api/@xmachines/play-svelte/README.md +18 -10
  258. package/api/@xmachines/play-svelte/functions/defineRegistry.md +3 -4
  259. package/api/@xmachines/play-svelte/functions/getActorContext.md +1 -1
  260. package/api/@xmachines/play-svelte/functions/getPlayViewContext.md +1 -1
  261. package/api/@xmachines/play-svelte/functions/setActorContext.md +1 -1
  262. package/api/@xmachines/play-svelte/interfaces/ActorProviderProps.md +12 -12
  263. package/api/@xmachines/play-svelte/interfaces/BaseComponentProps.md +10 -8
  264. package/api/@xmachines/play-svelte/interfaces/ComponentContext.md +10 -8
  265. package/api/@xmachines/play-svelte/interfaces/DefineRegistryOptions.md +8 -8
  266. package/api/@xmachines/play-svelte/interfaces/DefineRegistryResult.md +15 -0
  267. package/api/@xmachines/play-svelte/interfaces/PlayUIProviderProps.md +14 -14
  268. package/api/@xmachines/play-svelte/interfaces/RenderErrorInfo.md +16 -0
  269. package/api/@xmachines/play-svelte/interfaces/ViewContextValue.md +5 -5
  270. package/api/@xmachines/play-svelte/type-aliases/AnyPlayActor.md +1 -1
  271. package/api/@xmachines/play-svelte/type-aliases/OnRenderError.md +27 -0
  272. package/api/@xmachines/play-svelte/type-aliases/RenderErrorKind.md +21 -0
  273. package/api/@xmachines/play-svelte-spa-router/README.md +9 -5
  274. package/api/@xmachines/play-svelte-spa-router/classes/RouteMap.md +4 -4
  275. package/api/@xmachines/play-svelte-spa-router/classes/SvelteSpaRouterBridge.md +7 -7
  276. package/api/@xmachines/play-svelte-spa-router/functions/connectRouter.md +1 -1
  277. package/api/@xmachines/play-svelte-spa-router/interfaces/BasePathOptions.md +3 -3
  278. package/api/@xmachines/play-svelte-spa-router/interfaces/ConnectRouterOptions.md +8 -8
  279. package/api/@xmachines/play-svelte-spa-router/interfaces/PlayRouteEvent.md +7 -7
  280. package/api/@xmachines/play-svelte-spa-router/interfaces/RoutableActor.md +4 -4
  281. package/api/@xmachines/play-svelte-spa-router/interfaces/RouteMapOptions.md +4 -4
  282. package/api/@xmachines/play-svelte-spa-router/interfaces/RouteMapping.md +3 -3
  283. package/api/@xmachines/play-svelte-spa-router/interfaces/RouterBridge.md +3 -3
  284. package/api/@xmachines/play-svelte-spa-router/interfaces/RouterConnection.md +6 -6
  285. package/api/@xmachines/play-svelte-spa-router/interfaces/WindowLike.md +3 -3
  286. package/api/@xmachines/play-sveltekit-router/README.md +65 -13
  287. package/api/@xmachines/play-sveltekit-router/classes/RouteMap.md +4 -4
  288. package/api/@xmachines/play-sveltekit-router/classes/SvelteKitRouterBridge.md +29 -19
  289. package/api/@xmachines/play-sveltekit-router/functions/connectRouter.md +1 -1
  290. package/api/@xmachines/play-sveltekit-router/interfaces/BasePathOptions.md +3 -3
  291. package/api/@xmachines/play-sveltekit-router/interfaces/ConnectRouterOptions.md +13 -16
  292. package/api/@xmachines/play-sveltekit-router/interfaces/LocationLike.md +3 -3
  293. package/api/@xmachines/play-sveltekit-router/interfaces/PlayRouteEvent.md +7 -7
  294. package/api/@xmachines/play-sveltekit-router/interfaces/RoutableActor.md +4 -4
  295. package/api/@xmachines/play-sveltekit-router/interfaces/RouteMapOptions.md +4 -4
  296. package/api/@xmachines/play-sveltekit-router/interfaces/RouteMapping.md +3 -3
  297. package/api/@xmachines/play-sveltekit-router/interfaces/RouterBridge.md +3 -3
  298. package/api/@xmachines/play-sveltekit-router/interfaces/RouterConnection.md +6 -6
  299. package/api/@xmachines/play-sveltekit-router/interfaces/SvelteKitRouterBridgeOptions.md +25 -0
  300. package/api/@xmachines/play-sveltekit-router/type-aliases/ShallowNavigation.md +21 -0
  301. package/api/@xmachines/play-tanstack-react-router/README.md +34 -16
  302. package/api/@xmachines/play-tanstack-react-router/classes/RouteMap.md +4 -4
  303. package/api/@xmachines/play-tanstack-react-router/classes/TanStackReactRouterBridge.md +7 -7
  304. package/api/@xmachines/play-tanstack-react-router/functions/createPlayRouterProvider.md +1 -1
  305. package/api/@xmachines/play-tanstack-react-router/functions/createRouteMapFromTree.md +1 -1
  306. package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouteEvent.md +7 -7
  307. package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouterProviderProps.md +9 -9
  308. package/api/@xmachines/play-tanstack-react-router/interfaces/RoutableActor.md +4 -4
  309. package/api/@xmachines/play-tanstack-react-router/interfaces/RouteMapOptions.md +4 -4
  310. package/api/@xmachines/play-tanstack-react-router/interfaces/RouteMapping.md +3 -3
  311. package/api/@xmachines/play-tanstack-react-router/interfaces/RouterBridge.md +3 -3
  312. package/api/@xmachines/play-tanstack-react-router/type-aliases/PlayRouterBridgeConstructor.md +1 -1
  313. package/api/@xmachines/play-tanstack-react-router/type-aliases/PlayRouterProviderBaseProps.md +1 -1
  314. package/api/@xmachines/play-tanstack-react-router/type-aliases/TanStackRouterInstance.md +1 -1
  315. package/api/@xmachines/play-tanstack-react-router/type-aliases/TanStackRouterLike.md +5 -5
  316. package/api/@xmachines/play-tanstack-react-router/variables/PlayRouterProvider.md +1 -1
  317. package/api/@xmachines/play-tanstack-router/README.md +5 -3
  318. package/api/@xmachines/play-tanstack-router/classes/TanStackRouterBridgeBase.md +7 -7
  319. package/api/@xmachines/play-tanstack-router/type-aliases/TanStackRouteMapLike.md +3 -3
  320. package/api/@xmachines/play-tanstack-router/type-aliases/TanStackRouterLike.md +5 -5
  321. package/api/@xmachines/play-tanstack-solid-router/README.md +45 -11
  322. package/api/@xmachines/play-tanstack-solid-router/classes/RouteMap.md +4 -4
  323. package/api/@xmachines/play-tanstack-solid-router/classes/TanStackSolidRouterBridge.md +7 -7
  324. package/api/@xmachines/play-tanstack-solid-router/functions/createPlayRouterProvider.md +1 -1
  325. package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayRouteEvent.md +7 -7
  326. package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayRouterProviderProps.md +9 -9
  327. package/api/@xmachines/play-tanstack-solid-router/interfaces/RoutableActor.md +4 -4
  328. package/api/@xmachines/play-tanstack-solid-router/interfaces/RouteMapOptions.md +4 -4
  329. package/api/@xmachines/play-tanstack-solid-router/interfaces/RouteMapping.md +3 -3
  330. package/api/@xmachines/play-tanstack-solid-router/interfaces/RouterBridge.md +3 -3
  331. package/api/@xmachines/play-tanstack-solid-router/type-aliases/PlayRouterBridgeConstructor.md +1 -1
  332. package/api/@xmachines/play-tanstack-solid-router/type-aliases/PlayRouterProviderBaseProps.md +1 -1
  333. package/api/@xmachines/play-tanstack-solid-router/type-aliases/TanStackRouterInstance.md +1 -1
  334. package/api/@xmachines/play-tanstack-solid-router/type-aliases/TanStackRouterLike.md +5 -5
  335. package/api/@xmachines/play-tanstack-solid-router/variables/PlayRouterProvider.md +1 -1
  336. package/api/@xmachines/play-url/README.md +1 -1
  337. package/api/@xmachines/play-url/errors/classes/InvalidBasePathError.md +5 -5
  338. package/api/@xmachines/play-url/errors/classes/InvalidRoutePatternError.md +5 -5
  339. package/api/@xmachines/play-url/errors/classes/MissingBasePathParamError.md +6 -6
  340. package/api/@xmachines/play-url/index/functions/buildPath.md +1 -1
  341. package/api/@xmachines/play-url/index/functions/cleanFrameworkParams.md +1 -1
  342. package/api/@xmachines/play-url/index/functions/createLruCache.md +1 -1
  343. package/api/@xmachines/play-url/index/functions/getCandidates.md +1 -1
  344. package/api/@xmachines/play-url/index/functions/getCompiledPattern.md +1 -1
  345. package/api/@xmachines/play-url/index/functions/getIndexKey.md +1 -1
  346. package/api/@xmachines/play-url/index/functions/holdsUnsubstitutedParam.md +1 -1
  347. package/api/@xmachines/play-url/index/functions/isDotSegment.md +1 -1
  348. package/api/@xmachines/play-url/index/functions/joinBasePath.md +1 -1
  349. package/api/@xmachines/play-url/index/functions/normalizeBasePath.md +1 -1
  350. package/api/@xmachines/play-url/index/functions/parsePattern.md +1 -1
  351. package/api/@xmachines/play-url/index/functions/pickOwnParams.md +1 -1
  352. package/api/@xmachines/play-url/index/functions/resolveBasePath.md +1 -1
  353. package/api/@xmachines/play-url/index/functions/resolveFrameworkParams.md +1 -1
  354. package/api/@xmachines/play-url/index/functions/sanitizePathname.md +1 -1
  355. package/api/@xmachines/play-url/index/functions/splitLocation.md +1 -1
  356. package/api/@xmachines/play-url/index/functions/stripBasePath.md +1 -1
  357. package/api/@xmachines/play-url/index/interfaces/BasePathOptions.md +3 -3
  358. package/api/@xmachines/play-url/index/interfaces/CompileOptions.md +3 -3
  359. package/api/@xmachines/play-url/index/interfaces/FrameworkParamsSource.md +7 -7
  360. package/api/@xmachines/play-url/index/interfaces/GroupPart.md +4 -4
  361. package/api/@xmachines/play-url/index/interfaces/KeyValueCache.md +3 -3
  362. package/api/@xmachines/play-url/index/interfaces/LiteralPart.md +3 -3
  363. package/api/@xmachines/play-url/index/interfaces/ParamPart.md +7 -7
  364. package/api/@xmachines/play-url/index/interfaces/ParseOptions.md +2 -2
  365. package/api/@xmachines/play-url/index/interfaces/ParsedPattern.md +12 -12
  366. package/api/@xmachines/play-url/index/interfaces/PatternParam.md +4 -4
  367. package/api/@xmachines/play-url/index/interfaces/ResolvedBasePath.md +3 -3
  368. package/api/@xmachines/play-url/index/interfaces/SplitLocation.md +5 -5
  369. package/api/@xmachines/play-url/index/type-aliases/PathBuildResult.md +1 -1
  370. package/api/@xmachines/play-url/index/type-aliases/PathParams.md +1 -1
  371. package/api/@xmachines/play-url/index/type-aliases/PatternModifier.md +1 -1
  372. package/api/@xmachines/play-url/index/type-aliases/PatternPart.md +1 -1
  373. package/api/@xmachines/play-url/index/type-aliases/URLPatternCtor.md +1 -1
  374. package/api/@xmachines/play-url/index/type-aliases/URLPatternLike.md +3 -3
  375. package/api/@xmachines/play-url/index/variables/NO_BASE_PATH.md +1 -1
  376. package/api/@xmachines/play-url/index/variables/URLPattern.md +1 -1
  377. package/api/@xmachines/play-view/README.md +92 -35
  378. package/api/@xmachines/play-view/errors/README.md +2 -0
  379. package/api/@xmachines/play-view/errors/classes/InvalidViewOutletError.md +204 -0
  380. package/api/@xmachines/play-view/errors/classes/ReadOnlyContextError.md +5 -5
  381. package/api/@xmachines/play-view/errors/classes/ViewElementKeyCollisionError.md +181 -0
  382. package/api/@xmachines/play-view/index/README.md +16 -4
  383. package/api/@xmachines/play-view/index/functions/attachRenderErrorHandler.md +10 -9
  384. package/api/@xmachines/play-view/index/functions/bindStoreHandlers.md +34 -0
  385. package/api/@xmachines/play-view/index/functions/composePlayState.md +1 -1
  386. package/api/@xmachines/play-view/index/functions/composeViews.md +41 -0
  387. package/api/@xmachines/play-view/index/functions/createActorProxy.md +39 -0
  388. package/api/@xmachines/play-view/index/functions/createRenderErrorBinding.md +35 -0
  389. package/api/@xmachines/play-view/index/functions/createReportGuard.md +1 -1
  390. package/api/@xmachines/play-view/index/functions/createViewSession.md +29 -0
  391. package/api/@xmachines/play-view/index/functions/createViewStoreLifecycle.md +1 -1
  392. package/api/@xmachines/play-view/index/functions/forwardRenderError.md +45 -0
  393. package/api/@xmachines/play-view/index/functions/guardContextWrites.md +1 -1
  394. package/api/@xmachines/play-view/index/functions/refreshContextSubtree.md +1 -1
  395. package/api/@xmachines/play-view/index/functions/reuseComposedState.md +1 -1
  396. package/api/@xmachines/play-view/index/functions/toAtomState.md +1 -1
  397. package/api/@xmachines/play-view/index/functions/typedSpec.md +11 -11
  398. package/api/@xmachines/play-view/index/interfaces/BaseActorProviderProps.md +8 -8
  399. package/api/@xmachines/play-view/index/interfaces/BaseViewContextValue.md +5 -5
  400. package/api/@xmachines/play-view/index/interfaces/ComposedView.md +16 -0
  401. package/api/@xmachines/play-view/index/interfaces/HandlerFactory.md +19 -0
  402. package/api/@xmachines/play-view/index/interfaces/PlaySpec.md +12 -8
  403. package/api/@xmachines/play-view/index/interfaces/ReportGuard.md +5 -5
  404. package/api/@xmachines/play-view/index/interfaces/ReportGuardMessages.md +5 -5
  405. package/api/@xmachines/play-view/index/interfaces/ResolveViewStoreOptions.md +2 -2
  406. package/api/@xmachines/play-view/index/interfaces/ViewMeta.md +25 -0
  407. package/api/@xmachines/play-view/index/interfaces/ViewOutlet.md +23 -0
  408. package/api/@xmachines/play-view/index/interfaces/ViewSession.md +155 -0
  409. package/api/@xmachines/play-view/index/interfaces/ViewSessionOptions.md +12 -0
  410. package/api/@xmachines/play-view/index/interfaces/ViewSessionSnapshot.md +23 -0
  411. package/api/@xmachines/play-view/index/interfaces/ViewStoreLifecycle.md +22 -3
  412. package/api/@xmachines/play-view/index/interfaces/ViewStoreResolution.md +7 -6
  413. package/api/@xmachines/play-view/index/interfaces/ViewTree.md +15 -0
  414. package/api/@xmachines/play-view/index/interfaces/ViewTreeChild.md +14 -0
  415. package/api/@xmachines/play-view/index/interfaces/Viewable.md +4 -4
  416. package/api/@xmachines/play-view/index/type-aliases/StateUpdater.md +21 -0
  417. package/api/@xmachines/play-view/index/type-aliases/ViewActor.md +1 -1
  418. package/api/@xmachines/play-view/index/variables/CONTEXT_STATE_KEY.md +1 -1
  419. package/api/@xmachines/play-vue/README.md +21 -18
  420. package/api/@xmachines/play-vue/functions/defineRegistry.md +1 -1
  421. package/api/@xmachines/play-vue/functions/useActor.md +1 -1
  422. package/api/@xmachines/play-vue/functions/useBoundProp.md +10 -4
  423. package/api/@xmachines/play-vue/functions/useFieldValidation.md +12 -5
  424. package/api/@xmachines/play-vue/functions/usePlayView.md +1 -1
  425. package/api/@xmachines/play-vue/interfaces/ActorProviderProps.md +8 -8
  426. package/api/@xmachines/play-vue/interfaces/PlayUIProviderProps.md +11 -11
  427. package/api/@xmachines/play-vue/interfaces/RenderErrorInfo.md +16 -0
  428. package/api/@xmachines/play-vue/interfaces/RendererProps.md +7 -7
  429. package/api/@xmachines/play-vue/interfaces/ViewContextValue.md +5 -5
  430. package/api/@xmachines/play-vue/type-aliases/AnyPlayActor.md +1 -1
  431. package/api/@xmachines/play-vue/type-aliases/ComponentEntry.md +1 -1
  432. package/api/@xmachines/play-vue/type-aliases/ComponentsMap.md +1 -1
  433. package/api/@xmachines/play-vue/type-aliases/DefineRegistryOptions.md +2 -2
  434. package/api/@xmachines/play-vue/type-aliases/OnRenderError.md +27 -0
  435. package/api/@xmachines/play-vue/type-aliases/RenderErrorKind.md +21 -0
  436. package/api/@xmachines/play-vue/variables/PlayRenderer.md +1 -1
  437. package/api/@xmachines/play-vue/variables/Renderer.md +3 -3
  438. package/api/@xmachines/play-vue-router/README.md +18 -11
  439. package/api/@xmachines/play-vue-router/errors/classes/VueRouterNavigationError.md +4 -4
  440. package/api/@xmachines/play-vue-router/errors/classes/VueRouterSendError.md +4 -4
  441. package/api/@xmachines/play-vue-router/index/classes/RouteMap.md +4 -4
  442. package/api/@xmachines/play-vue-router/index/classes/VueRouterBridge.md +7 -7
  443. package/api/@xmachines/play-vue-router/index/interfaces/PlayRouteEvent.md +7 -7
  444. package/api/@xmachines/play-vue-router/index/interfaces/RoutableActor.md +4 -4
  445. package/api/@xmachines/play-vue-router/index/interfaces/RouteMapOptions.md +4 -4
  446. package/api/@xmachines/play-vue-router/index/interfaces/RouteMapping.md +3 -3
  447. package/api/@xmachines/play-vue-router/index/interfaces/RouterBridge.md +3 -3
  448. package/api/@xmachines/play-vue-router/index/variables/PlayRouterProvider.md +1 -1
  449. package/api/@xmachines/play-xstate/README.md +87 -28
  450. package/api/@xmachines/play-xstate/errors/classes/ActorThrewNonErrorError.md +4 -4
  451. package/api/@xmachines/play-xstate/errors/classes/InvalidEventError.md +5 -5
  452. package/api/@xmachines/play-xstate/errors/classes/InvalidMachineError.md +4 -4
  453. package/api/@xmachines/play-xstate/errors/classes/InvalidRouteHandlerError.md +5 -5
  454. package/api/@xmachines/play-xstate/errors/classes/InvalidRouteMetadataError.md +5 -5
  455. package/api/@xmachines/play-xstate/errors/classes/InvalidRouteParamError.md +7 -7
  456. package/api/@xmachines/play-xstate/errors/classes/MissingRouteParamError.md +6 -6
  457. package/api/@xmachines/play-xstate/errors/classes/MissingStateIdError.md +6 -6
  458. package/api/@xmachines/play-xstate/index/classes/PlayerActor.md +10 -10
  459. package/api/@xmachines/play-xstate/index/functions/compose.md +4 -4
  460. package/api/@xmachines/play-xstate/index/functions/definePlayer.md +2 -2
  461. package/api/@xmachines/play-xstate/index/interfaces/PlayerConfig.md +4 -4
  462. package/api/@xmachines/play-xstate/index/interfaces/PlayerFactoryResumeOptions.md +2 -2
  463. package/api/@xmachines/play-xstate/index/interfaces/PlayerOptions.md +7 -7
  464. package/api/@xmachines/play-xstate/index/type-aliases/Capability.md +1 -1
  465. package/api/@xmachines/play-xstate/index/type-aliases/PlayerConstructor.md +1 -1
  466. package/api/@xmachines/play-xstate/index/type-aliases/PlayerFactory.md +1 -1
  467. package/api/@xmachines/play-xstate/with-routing/functions/buildRouteUrl.md +1 -1
  468. package/api/@xmachines/play-xstate/with-routing/functions/deriveRoute.md +1 -1
  469. package/api/@xmachines/play-xstate/with-routing/functions/formatPlayRouteTransitions.md +1 -1
  470. package/api/@xmachines/play-xstate/with-routing/functions/isAbsoluteRoute.md +1 -1
  471. package/api/@xmachines/play-xstate/with-routing/functions/withRouting.md +1 -1
  472. package/api/@xmachines/play-xstate/with-routing/interfaces/RouteContext.md +5 -5
  473. package/api/@xmachines/play-xstate/with-routing/interfaces/RouteObject.md +12 -15
  474. package/api/@xmachines/play-xstate/with-routing/type-aliases/RouteData.md +1 -1
  475. package/api/@xmachines/play-xstate/with-routing/type-aliases/RouteDataResolver.md +1 -1
  476. package/api/@xmachines/play-xstate/with-routing/type-aliases/RouteMachineConfig.md +4 -4
  477. package/api/@xmachines/play-xstate/with-routing/type-aliases/RouteMetadata.md +1 -1
  478. package/api/@xmachines/play-xstate/with-routing/type-aliases/RouteStateNode.md +5 -5
  479. package/api/@xmachines/play-xstate/with-view/functions/withView.md +2 -4
  480. package/api/@xmachines/shared/README.md +1 -0
  481. package/api/@xmachines/shared/vite-aliases/README.md +7 -0
  482. package/api/@xmachines/shared/vite-aliases/functions/xmAliases.md +11 -5
  483. package/api/@xmachines/shared/vite-aliases/functions/xmBuildOutput.md +37 -0
  484. package/api/@xmachines/shared/vite-aliases/functions/xmBuildOutputFile.md +28 -0
  485. package/api/@xmachines/shared/vite-aliases/functions/xmCacheDir.md +1 -1
  486. package/api/@xmachines/shared/vite-aliases/functions/xmOptimizeDeps.md +1 -1
  487. package/api/@xmachines/shared/vite-aliases/functions/xmResolve.md +1 -1
  488. package/api/@xmachines/shared/vite-aliases/functions/xmSvelteRunes.md +2 -2
  489. package/api/@xmachines/shared/vite-aliases/functions/xmTestTarget.md +26 -0
  490. package/api/@xmachines/shared/vite-aliases/type-aliases/XmTestTarget.md +15 -0
  491. package/api/@xmachines/shared/vitest/functions/defineXmBrowserConfig.md +1 -1
  492. package/api/@xmachines/shared/vitest/functions/defineXmVitestConfig.md +5 -1
  493. package/api/@xmachines/shared/vitest/interfaces/XmBrowserConfigOptions.md +4 -4
  494. package/api/llms.txt +8 -4
  495. package/contributing/architecture.md +96 -51
  496. package/contributing/configuration.md +55 -14
  497. package/contributing/deployment.md +3 -3
  498. package/contributing/development.md +31 -4
  499. package/contributing/migrating-to-play-atom.md +11 -5
  500. package/contributing/testing.md +93 -33
  501. package/examples/@xmachines/play-dom-demo/README.md +2 -2
  502. package/examples/@xmachines/play-dom-demo/functions/createAuthActionHandlers.md +9 -9
  503. package/examples/@xmachines/play-dom-demo/functions/createConfirmDialog.md +1 -1
  504. package/examples/@xmachines/play-dom-demo/functions/createNavBar.md +1 -1
  505. package/examples/@xmachines/play-dom-demo/functions/initShell.md +1 -1
  506. package/examples/@xmachines/play-dom-demo/type-aliases/AuthCatalog.md +1 -1
  507. package/examples/@xmachines/play-dom-demo/variables/About.md +1 -1
  508. package/examples/@xmachines/play-dom-demo/variables/Button.md +1 -1
  509. package/examples/@xmachines/play-dom-demo/variables/Contact.md +1 -1
  510. package/examples/@xmachines/play-dom-demo/variables/Dashboard.md +1 -1
  511. package/examples/@xmachines/play-dom-demo/variables/Field.md +1 -1
  512. package/examples/@xmachines/play-dom-demo/variables/Home.md +1 -1
  513. package/examples/@xmachines/play-dom-demo/variables/Login.md +1 -1
  514. package/examples/@xmachines/play-dom-demo/variables/NavBarView.md +1 -1
  515. package/examples/@xmachines/play-dom-demo/variables/Navigation.md +1 -1
  516. package/examples/@xmachines/play-dom-demo/variables/Overview.md +1 -1
  517. package/examples/@xmachines/play-dom-demo/variables/Panel.md +1 -1
  518. package/examples/@xmachines/play-dom-demo/variables/Profile.md +1 -1
  519. package/examples/@xmachines/play-dom-demo/variables/Settings.md +1 -1
  520. package/examples/@xmachines/play-dom-demo/variables/Stats.md +1 -1
  521. package/examples/@xmachines/play-dom-demo/variables/authCatalog.md +1 -1
  522. package/examples/@xmachines/play-dom-demo/variables/demoComponents.md +15 -15
  523. package/examples/@xmachines/play-dom-router-demo/README.md +4 -3
  524. package/examples/@xmachines/play-react-demo/README.md +2 -2
  525. package/examples/@xmachines/play-react-demo/functions/createAuthActionHandlers.md +9 -9
  526. package/examples/@xmachines/play-react-demo/type-aliases/AuthCatalog.md +1 -1
  527. package/examples/@xmachines/play-react-demo/variables/About.md +1 -1
  528. package/examples/@xmachines/play-react-demo/variables/Button.md +1 -1
  529. package/examples/@xmachines/play-react-demo/variables/Contact.md +1 -1
  530. package/examples/@xmachines/play-react-demo/variables/Dashboard.md +1 -1
  531. package/examples/@xmachines/play-react-demo/variables/DebugPanel.md +1 -1
  532. package/examples/@xmachines/play-react-demo/variables/Field.md +1 -1
  533. package/examples/@xmachines/play-react-demo/variables/Home.md +1 -1
  534. package/examples/@xmachines/play-react-demo/variables/Login.md +1 -1
  535. package/examples/@xmachines/play-react-demo/variables/NavBar.md +1 -1
  536. package/examples/@xmachines/play-react-demo/variables/NavBarView.md +1 -1
  537. package/examples/@xmachines/play-react-demo/variables/Navigation.md +1 -1
  538. package/examples/@xmachines/play-react-demo/variables/Overview.md +1 -1
  539. package/examples/@xmachines/play-react-demo/variables/Panel.md +1 -1
  540. package/examples/@xmachines/play-react-demo/variables/Profile.md +1 -1
  541. package/examples/@xmachines/play-react-demo/variables/Settings.md +1 -1
  542. package/examples/@xmachines/play-react-demo/variables/Shell.md +1 -1
  543. package/examples/@xmachines/play-react-demo/variables/Stats.md +1 -1
  544. package/examples/@xmachines/play-react-demo/variables/authCatalog.md +1 -1
  545. package/examples/@xmachines/play-react-demo/variables/demoComponents.md +15 -15
  546. package/examples/@xmachines/play-react-router-demo/README.md +4 -3
  547. package/examples/@xmachines/play-solid-demo/README.md +3 -3
  548. package/examples/@xmachines/play-solid-demo/functions/createAuthActionHandlers.md +9 -9
  549. package/examples/@xmachines/play-solid-demo/type-aliases/AuthCatalog.md +1 -1
  550. package/examples/@xmachines/play-solid-demo/variables/About.md +1 -1
  551. package/examples/@xmachines/play-solid-demo/variables/Button.md +1 -1
  552. package/examples/@xmachines/play-solid-demo/variables/Contact.md +1 -1
  553. package/examples/@xmachines/play-solid-demo/variables/Dashboard.md +1 -1
  554. package/examples/@xmachines/play-solid-demo/variables/DebugPanel.md +1 -1
  555. package/examples/@xmachines/play-solid-demo/variables/Field.md +1 -1
  556. package/examples/@xmachines/play-solid-demo/variables/Home.md +1 -1
  557. package/examples/@xmachines/play-solid-demo/variables/Login.md +1 -1
  558. package/examples/@xmachines/play-solid-demo/variables/NavBar.md +1 -1
  559. package/examples/@xmachines/play-solid-demo/variables/NavBarView.md +1 -1
  560. package/examples/@xmachines/play-solid-demo/variables/Navigation.md +1 -1
  561. package/examples/@xmachines/play-solid-demo/variables/Overview.md +1 -1
  562. package/examples/@xmachines/play-solid-demo/variables/Panel.md +1 -1
  563. package/examples/@xmachines/play-solid-demo/variables/Profile.md +1 -1
  564. package/examples/@xmachines/play-solid-demo/variables/Settings.md +1 -1
  565. package/examples/@xmachines/play-solid-demo/variables/Shell.md +1 -1
  566. package/examples/@xmachines/play-solid-demo/variables/Stats.md +1 -1
  567. package/examples/@xmachines/play-solid-demo/variables/authCatalog.md +190 -277
  568. package/examples/@xmachines/play-solid-demo/variables/demoComponents.md +17 -17
  569. package/examples/@xmachines/play-solid-router-demo/README.md +9 -3
  570. package/examples/@xmachines/play-svelte-demo/README.md +1 -1
  571. package/examples/@xmachines/play-svelte-demo/functions/createAuthActionHandlers.md +9 -9
  572. package/examples/@xmachines/play-svelte-demo/type-aliases/AuthCatalog.md +1 -1
  573. package/examples/@xmachines/play-svelte-demo/variables/authCatalog.md +190 -277
  574. package/examples/@xmachines/play-svelte-demo/variables/demoComponents.md +15 -15
  575. package/examples/@xmachines/play-svelte-spa-router-demo/README.md +1 -1
  576. package/examples/@xmachines/play-sveltekit-router-demo/README.md +1 -1
  577. package/examples/@xmachines/play-tanstack-react-router-demo/README.md +3 -2
  578. package/examples/@xmachines/play-tanstack-solid-router-demo/README.md +9 -8
  579. package/examples/@xmachines/play-vue-demo/README.md +2 -2
  580. package/examples/@xmachines/play-vue-demo/functions/createAuthActionHandlers.md +9 -9
  581. package/examples/@xmachines/play-vue-demo/type-aliases/AuthCatalog.md +1 -1
  582. package/examples/@xmachines/play-vue-demo/variables/App.md +1 -1
  583. package/examples/@xmachines/play-vue-demo/variables/authCatalog.md +1 -1
  584. package/examples/@xmachines/play-vue-demo/variables/demoComponents.md +1 -1
  585. package/examples/@xmachines/play-vue-router-demo/README.md +3 -3
  586. package/examples/README.md +1 -1
  587. package/examples/form-validation.md +17 -13
  588. package/examples/multi-router-integration.md +269 -148
  589. package/examples/routing-patterns.md +44 -9
  590. package/examples/traffic-light.md +7 -3
  591. package/guides/README.md +5 -4
  592. package/guides/actor-model.md +41 -23
  593. package/guides/atoms.md +52 -12
  594. package/guides/getting-started.md +65 -19
  595. package/guides/inspector.md +72 -12
  596. package/guides/routing.md +44 -45
  597. package/guides/state-machines.md +102 -15
  598. package/guides/views.md +367 -0
  599. package/package.json +6 -6
  600. package/rfc/play.md +55 -21
  601. package/api/@xmachines/play-view/index/functions/createFailureLatch.md +0 -20
  602. package/api/@xmachines/play-view/index/functions/sameViewInputs.md +0 -25
  603. package/api/@xmachines/play-view/index/interfaces/FailureLatch.md +0 -60
  604. package/api/@xmachines/play-view/index/interfaces/ViewInputs.md +0 -19
@@ -12,6 +12,7 @@ This guide covers everything you need to set up a local development environment,
12
12
  - [Code Style](#code-style)
13
13
  - [Writing Style](#writing-style-asd-ste100)
14
14
  - [Link a Package That You Name](#link-a-package-that-you-name)
15
+ - [Code Examples in Documents](#code-examples-in-documents)
15
16
  - [Branch Conventions](#branch-conventions)
16
17
  - [PR Process](#pr-process)
17
18
 
@@ -88,7 +89,7 @@ packages/
88
89
  ├── play-pattern/ # The route pattern language: one parse, and the path it builds back
89
90
  ├── play-url/ # The URL layer: the URLPattern API, a base path, framework params
90
91
  ├── play-actor/ # The actor contract (PlayActor). It names no engine
91
- ├── play-view/ # The shared view half (Viewable, PlaySpec, the view store lifecycle)
92
+ ├── play-view/ # The shared view half (Viewable, PlaySpec, the view session)
92
93
  ├── play-xstate/ # XState v5 adapter (definePlayer, PlayerActor)
93
94
  ├── play-router/ # Route extraction and RouterBridgeBase
94
95
  ├── play-dom/ # Vanilla DOM renderer
@@ -135,11 +136,14 @@ All commands are run from the **repository root** unless otherwise noted.
135
136
  | `pnpm run build` | Incremental build — all packages in dependency order (not a type-check) |
136
137
  | `pnpm --filter @xmachines/<pkg> run build` | Build a single package (and its deps) |
137
138
  | `pnpm run clean` | Remove coverage, Vite caches, and all `dist/` directories in packages |
138
- | `pnpm test` | Run all unit/integration tests once |
139
+ | `pnpm test` | Run all unit/integration tests once, on the source |
140
+ | `pnpm run test:dist` | Run the same tests on the build output (run `pnpm run build` first) |
139
141
  | `pnpm run test:watch` | Re-run tests on file changes (interactive) |
140
142
  | `pnpm run test:browser` | Run Playwright browser tests |
143
+ | `pnpm run test:browser:dist` | Run Playwright browser tests on the build output |
141
144
  | `pnpm run test:coverage` | Run tests with V8 coverage reporting |
142
145
  | `pnpm run test:browser:coverage` | Run browser tests with coverage reporting |
146
+ | `pnpm run test:docs:examples` | Compile and run the code examples of the documentation |
143
147
  | `pnpm run test:build` | Complete type-check of every package and its tests (`tsconfig.test.json`) |
144
148
  | `pnpm run lint` | Lint all packages with oxlint |
145
149
  | `pnpm run lint:fix` | Auto-fix lint issues |
@@ -427,7 +431,7 @@ Use `unknown` with type guards instead of `any`. Prefix unused locals/parameters
427
431
 
428
432
  1. Always use `.js` extensions in imports, even for TypeScript source files:
429
433
 
430
- ```typescript
434
+ ```typescript fragment
431
435
  // ✅ Correct
432
436
  import { PlayError } from "./errors.js";
433
437
 
@@ -437,7 +441,7 @@ Use `unknown` with type guards instead of `any`. Prefix unused locals/parameters
437
441
 
438
442
  2. Use `import type` for type-only imports (required by `verbatimModuleSyntax`):
439
443
 
440
- ```typescript
444
+ ```typescript fragment
441
445
  import type { RouteNode, RouteTree } from "../src/types.js";
442
446
  ```
443
447
 
@@ -493,6 +497,29 @@ Three places keep a plain code span:
493
497
 
494
498
  ---
495
499
 
500
+ ## Code Examples in Documents
501
+
502
+ A reader copies a code example and expects it to work. Two tests therefore read every `ts`, `typescript` and `tsx` block of the hand-written markdown:
503
+
504
+ - `tests/doc-examples/compile.test.ts` compiles each block against the source of the workspace. It writes the block into the package that can resolve its imports, and it uses the `tsconfig.json` of that package.
505
+ - `tests/doc-examples/run.test.ts` runs each complete block in jsdom. A block is complete when it declares no value that the reader supplies, holds no JSX, and loads no package that needs a compiler of Solid, Vue or Svelte, the runtime of SvelteKit, or a test runner such as `vitest`. A type import loads nothing, so it does not count. A run fails on each `console.error` and `console.warn`, unless the block logs on purpose. The page holds the elements `#app`, `#root`, `#loading` and `#crashed`.
506
+
507
+ Give an example of a call its imports, so that it compiles. Use `declare const` only for a value that the reader supplies, such as their machine or a DOM element. Two words after the language change what the tests do:
508
+
509
+ | Fence | Use it for | Compiled | Run |
510
+ | ------------------ | ------------------------------------------------------------------------------ | -------- | --- |
511
+ | ` ```ts ` | An example that a reader can copy | yes | yes |
512
+ | ` ```ts norun ` | An example that compiles, but runs only in a test or in a component | yes | no |
513
+ | ` ```ts fragment ` | A part of a larger file, such as one state of a machine, or a ✅/❌ comparison | no | no |
514
+
515
+ GitHub, GitLab and TypeDoc read the first word of a fence alone, so the second word changes nothing on a rendered page.
516
+
517
+ An example for a reader imports published packages alone. A private workspace package, such as a demo or [`@xmachines/shared`](../api/@xmachines/shared/README.md), fails the check, because a reader cannot install it. The contributor guides and the README of a private package can import one.
518
+
519
+ Check one document with `DOC_EXAMPLES=<part of its path> pnpm vitest run tests/doc-examples/compile.test.ts`, and run its examples with `DOC_EXAMPLES=<part of its path> pnpm vitest run tests/doc-examples/run.test.ts`. `pnpm run test:docs:examples` runs both, for every document. The dist run leaves them out, and CI runs them in the `test:docs:examples` job.
520
+
521
+ ---
522
+
496
523
  ## Branch Conventions
497
524
 
498
525
  Use a `<type>/` prefix that matches the conventional commit type for the work being done:
@@ -95,8 +95,14 @@ If you call `subscribe` directly, wrap the body.
95
95
  **A DERIVATION must contain its own failures.** A subscriber makes a computed atom eager, so the derivation itself runs inside the `set`, before any observer. No subscriber can wrap that, so the rule belongs to the derivation: report through your error channel, and return the previous value. `currentRoute` and `currentView` of the actor both do this, and a release before this one let `currentRoute` throw — which was safe only while the TC39 watcher read it from a microtask.
96
96
 
97
97
  ```typescript
98
+ import { createAtom, type ReadonlyAtom } from "@xmachines/play-atom";
99
+
100
+ declare const source: ReadonlyAtom<string>;
101
+ declare function expensiveDerivation(input: string): number;
102
+ declare function report(error: unknown): void;
103
+
98
104
  // A derivation that a subscriber may watch.
99
- const derived = createAtom((previous) => {
105
+ const derived = createAtom<number | null>((previous) => {
100
106
  try {
101
107
  return expensiveDerivation(source.get());
102
108
  } catch (error) {
@@ -112,7 +118,7 @@ const derived = createAtom((previous) => {
112
118
 
113
119
  **Derive the value, and read `previous`.** Almost every `untrack` guarded the same shape: a gate that compares the new value with the last one it emitted. A computed atom is handed that last value, so the gate needs no read and therefore tracks nothing. `withView` of [`@xmachines/play-xstate`](../api/@xmachines/play-xstate/README.md) is the worked example:
114
120
 
115
- ```typescript
121
+ ```typescript fragment
116
122
  // Before: a written atom, plus untrack to read what it held.
117
123
  this.currentView = new Signal.State<View | null>(null);
118
124
  const last = Signal.subtle.untrack(() => this.currentView.get());
@@ -136,7 +142,7 @@ A read that already stands outside every computed atom and every effect tracks n
136
142
 
137
143
  The codemod renames the call, and it cannot write the source list. Add that array yourself, and move the callback one place to the right:
138
144
 
139
- ```tsx
145
+ ```tsx fragment
140
146
  // Before
141
147
  useSignalEffect(() => {
142
148
  setView(actor.currentView.get());
@@ -195,7 +201,7 @@ Property 'set' is missing in type 'ReadonlyAtom<T>' but required in type 'Atom<T
195
201
 
196
202
  Use `createWritableAtom`, which states the one signature:
197
203
 
198
- ```typescript
204
+ ```typescript fragment
199
205
  import { createWritableAtom } from "@xmachines/play-atom";
200
206
 
201
207
  this.state = createWritableAtom(this.getSnapshot());
@@ -205,6 +211,6 @@ this.state = createWritableAtom(this.getSnapshot());
205
211
 
206
212
  ## See also
207
213
 
208
- - [Understanding Atoms](../guides/atoms.md) — the concepts, and the invariants
214
+ - [Atoms](../guides/atoms.md) — the concepts, and the invariants
209
215
  - [`@xmachines/play-atom`](../api/@xmachines/play-atom/README.md) — the API reference
210
216
  - [Play RFC](../rfc/play.md) — section 5.1.1 defines the reactive substrate
@@ -4,11 +4,11 @@ This document describes the test framework, conventions, and CI integration for
4
4
 
5
5
  ## Test Framework and Setup
6
6
 
7
- The monorepo uses **[Vitest](https://vitest.dev/) `^5.0.1`** as its test framework, with **@vitest/coverage-v8** for coverage reporting and **@vitest/browser-playwright** (Playwright/Chromium) for browser-mode tests.
7
+ The monorepo uses **[Vitest](https://vitest.dev/) `^5.0.3`** as its test framework, with **@vitest/coverage-v8** for coverage reporting and **@vitest/browser-playwright** (Playwright/Chromium) for browser-mode tests.
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
 
@@ -25,7 +25,7 @@ All packages extend the shared Vitest configuration helper `defineXmVitestConfig
25
25
 
26
26
  `patches/@testing-library__jest-dom@7.0.1.patch` moves the matcher declaration of the library from `Assertion` to `Matchers`. The library declares this:
27
27
 
28
- ```ts
28
+ ```ts fragment
29
29
  declare module "vitest" {
30
30
  interface Assertion<T = any> extends TestingLibraryMatchers<any, T> {}
31
31
  }
@@ -35,14 +35,6 @@ Vitest 5 declares `interface Assertion<R extends void | Promise<void> = void, T
35
35
 
36
36
  Delete the patch, its `patchedDependencies` entry in `pnpm-workspace.yaml`, and `tests/jest-dom-augmentation.test.ts` on the day the library ships a declaration that vitest 5 accepts. See [testing-library/jest-dom#738](https://github.com/testing-library/jest-dom/issues/738).
37
37
 
38
- ### The vitest mocker patch
39
-
40
- `patches/@vitest__mocker@5.0.1.patch` takes the `configureServer` hook off `vitest:mocks:interceptor` when the caller passes `registerWebSocketEvents: false`, which is how `@vitest/browser` calls it.
41
-
42
- Vitest returns that plugin from the `applyToEnvironment` of another plugin, and Vite 8 ignores a `configureServer` that it finds there. Vite reports the fact one time for each environment, so a run of 29 projects wrote 29 lines, in the `test` job and in the `test:browser` job both. The hook returns at once for `registerWebSocketEvents: false`, so the omission changes no behaviour.
43
-
44
- Delete the patch and its `patchedDependencies` entry when vitest ships the fix. See [vitest-dev/vitest#11276](https://github.com/vitest-dev/vitest/issues/11276).
45
-
46
38
  Before running any tests, ensure all dependencies are installed:
47
39
 
48
40
  ```bash
@@ -77,6 +69,33 @@ pnpm run test:browser
77
69
 
78
70
  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
71
 
72
+ ### Tests on the build output
73
+
74
+ ```bash
75
+ pnpm run build
76
+ pnpm run test:dist # the node suites
77
+ pnpm run test:browser:dist # the browser suites
78
+ ```
79
+
80
+ `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. Run the source suites while you work. CI runs the dist suites alone, so each test counts one time in the merge request.
81
+
82
+ 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:
83
+
84
+ - **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.
85
+ - **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.
86
+
87
+ 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/`.
88
+
89
+ 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.
90
+
91
+ **Keep one file set.** Both runs collect the same files, except the code examples of the documentation. The examples document the API, so the dist run leaves out the `doc-examples` project, and CI runs it in the `test:docs:examples` job. 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 other test is excluded today.
92
+
93
+ **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.
94
+
95
+ 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.
96
+
97
+ CI measures the coverage on the dist run. The source maps of `dist/` carry the source, so the report names the files of `src/`. v8 matches `coverage.include` against the file that ran, before it reads the source map. The root config therefore adds `packages/*/dist/**/*.js` to `include` in the dist run, and `excludeAfterRemap` applies the filter again to the files of `src/`. The browser config sets no `include`, so it needs neither setting. A file can show a few statements more or less than in a source run, because the build and the dev transform of Vite emit different code. `pnpm run test:coverage` measures the source, locally.
98
+
80
99
  ### With coverage
81
100
 
82
101
  ```bash
@@ -242,6 +261,10 @@ The root `vitest.config.ts` needs no edit: it collects `packages/*/vitest.config
242
261
 
243
262
  ```typescript
244
263
  import { describe, it, test, expect, vi, beforeEach, afterEach } from "vitest";
264
+ import type { PlayActor } from "@xmachines/play-actor";
265
+ import type { PlayRouteEvent, Routable } from "@xmachines/play-router";
266
+
267
+ declare function createMockActor(startRoute: string): PlayActor<unknown, PlayRouteEvent> & Routable;
245
268
 
246
269
  describe("ClassName or functionName()", () => {
247
270
  describe("feature group or scenario", () => {
@@ -261,13 +284,16 @@ describe("ClassName or functionName()", () => {
261
284
 
262
285
  **Import style:** Always use `.js` extensions in imports (ESM requirement):
263
286
 
264
- ```typescript
265
- import { PlayActor } from "../src/abstract-actor.js";
287
+ ```typescript fragment
288
+ import type { PlayActor } from "../src/play-actor.js";
266
289
  ```
267
290
 
268
291
  ### Lifecycle hooks
269
292
 
270
293
  ```typescript
294
+ import { cleanup } from "@testing-library/react";
295
+ import { afterEach, beforeEach, vi } from "vitest";
296
+
271
297
  beforeEach(() => {
272
298
  vi.spyOn(console, "error").mockImplementation(() => {});
273
299
  });
@@ -285,6 +311,8 @@ afterEach(() => {
285
311
  - **Framework router objects** (TanStack Router, Vue Router, React Router, SolidJS Router) — mock with typed `vi.fn()` interfaces because they are external framework dependencies and carry significant setup complexity:
286
312
 
287
313
  ```typescript
314
+ import { vi } from "vitest";
315
+
288
316
  const mocks = vi.hoisted(() => ({ goto: vi.fn() }));
289
317
 
290
318
  vi.mock("$app/navigation", () => ({ goto: mocks.goto }));
@@ -294,7 +322,9 @@ afterEach(() => {
294
322
 
295
323
  - **`console.warn` / `console.error`** when testing code that legitimately emits warnings — mock to suppress noise and assert call counts:
296
324
 
297
- ```typescript
325
+ ```typescript norun
326
+ import { expect, vi } from "vitest";
327
+
298
328
  const warnSpy = vi.spyOn(console, "warn").mockImplementation(() => {});
299
329
  // ... test ...
300
330
  expect(warnSpy).toHaveBeenCalled();
@@ -311,10 +341,11 @@ afterEach(() => {
311
341
 
312
342
  ### Test actor patterns
313
343
 
314
- **Preferred: extend `PlayActor` for full type safety:**
344
+ **Preferred: implement `PlayActor` for full type safety:**
315
345
 
316
346
  ```typescript
317
- import { PlayActor } from "@xmachines/play-actor";
347
+ import { createAtom, type Atom, type ReadonlyAtom } from "@xmachines/play-atom";
348
+ import type { PlayActor } from "@xmachines/play-actor";
318
349
  import type { Routable } from "@xmachines/play-router";
319
350
 
320
351
  class MockActor implements PlayActor, Routable {
@@ -329,7 +360,7 @@ class MockActor implements PlayActor, Routable {
329
360
  this.initialRoute = startRoute;
330
361
  }
331
362
 
332
- override send(_event: { readonly type: string } & Record<string, unknown>): void {
363
+ send(_event: { readonly type: string } & Record<string, unknown>): void {
333
364
  // no-op or capture events for assertion
334
365
  }
335
366
  }
@@ -338,18 +369,16 @@ class MockActor implements PlayActor, Routable {
338
369
  **Factory functions for lightweight inline mocks — use `stubOf`, never a double-cast:**
339
370
 
340
371
  ```typescript
372
+ import { vi } from "vitest";
373
+ import { createAtom } from "@xmachines/play-atom";
374
+ import type { PlaySpec, ViewActor } from "@xmachines/play-view";
341
375
  import { stubOf } from "@xmachines/shared/test-support";
342
376
 
343
377
  function createMockActor(initialView: PlaySpec | null = null) {
344
378
  return stubOf<ViewActor>({
345
379
  currentView: createAtom<PlaySpec | null>(initialView),
346
380
  send: vi.fn(),
347
- start: vi.fn(),
348
- stop: vi.fn(),
349
- getSnapshot: vi.fn(),
350
- subscribe: vi.fn(),
351
381
  state: createAtom<unknown>({}),
352
- currentRoute: createAtom(() => null),
353
382
  });
354
383
  }
355
384
  ```
@@ -366,6 +395,11 @@ greppable escape hatch.
366
395
  **Flushing the microtask queue (required for `watchAtom` delivery):**
367
396
 
368
397
  ```typescript
398
+ import { expect, vi } from "vitest";
399
+
400
+ declare const result: string;
401
+ declare const expected: string;
402
+
369
403
  function waitForMicrotask(): Promise<void> {
370
404
  return new Promise<void>((resolve) => queueMicrotask(resolve));
371
405
  }
@@ -378,8 +412,12 @@ await vi.waitFor(() => expect(result).toBe(expected), { timeout: 100 });
378
412
  **Atom watch pattern:**
379
413
 
380
414
  ```typescript
415
+ import { expect } from "vitest";
381
416
  import { createAtom, watchAtom } from "@xmachines/play-atom";
382
417
 
418
+ const state = createAtom({ path: "/" });
419
+ const actor = { state, currentRoute: createAtom(() => state.get().path) };
420
+
383
421
  let notified: string | null = null;
384
422
  const stop = watchAtom(actor.currentRoute, (route) => {
385
423
  notified = route;
@@ -400,12 +438,15 @@ stop(); // Always clean up
400
438
  For type-only assertions, use `@ts-expect-error` in `.spec.ts` files:
401
439
 
402
440
  ```typescript
403
- const bad: PlaySpec = typedSpec({
441
+ import { expect } from "vitest";
442
+ import { typedSpec, type ViewMeta } from "@xmachines/play-view";
443
+
444
+ const bad: ViewMeta = typedSpec({
404
445
  root: "root",
405
446
  elements: {},
406
- // @ts-expect-error "stat" is not a PlaySpec field — typedSpec flags it on an
447
+ // @ts-expect-error "stat" is not a ViewMeta field — typedSpec flags it on an
407
448
  // inline literal (excess-property checking does not reach aliased or spread
408
- // objects; use `satisfies PlaySpec` at the literal for those)
449
+ // objects; use `satisfies ViewMeta` at the literal for those)
409
450
  stat: {},
410
451
  });
411
452
  // At runtime the object exists; only the compile-time error is being tested
@@ -416,6 +457,11 @@ For purely structural type assertions with no runtime test needed, use `.typeche
416
457
 
417
458
  ```typescript
418
459
  // packages/play-xstate/test/define-player.typecheck.ts
460
+ import { createMachine } from "xstate";
461
+ import { definePlayer } from "@xmachines/play-xstate";
462
+
463
+ const actor = definePlayer({ machine: createMachine({}) })();
464
+
419
465
  type IsAny<T> = 0 extends 1 & T ? true : false;
420
466
  type AssertFalse<T extends false> = T;
421
467
 
@@ -428,8 +474,17 @@ These files are validated by `pnpm run test:build` (`tsc --build tsconfig.test.j
428
474
  ### Error testing
429
475
 
430
476
  ```typescript
477
+ import { expect } from "vitest";
478
+ import type { AnyStateMachine } from "xstate";
479
+ import type { PlayEvent } from "@xmachines/play";
480
+ import type { PlayActor } from "@xmachines/play-actor";
481
+ import { extractMachineRoutes } from "@xmachines/play-router/xstate";
482
+ import { InvalidEventError } from "@xmachines/play-xstate/errors";
431
483
  import { unsafeCast } from "@xmachines/shared/test-support";
432
484
 
485
+ declare const actor: PlayActor;
486
+ declare const dupMachine: AnyStateMachine;
487
+
433
488
  // Synchronous throws — feed a runtime guard an invalid value through
434
489
  // unsafeCast, the named escape hatch (never `null as unknown as PlayEvent`).
435
490
  expect(() => actor.send(unsafeCast<PlayEvent>(null))).toThrow(InvalidEventError);
@@ -462,7 +517,7 @@ A report that a spy swallows and no assertion reads is worse than the noise, bec
462
517
 
463
518
  The `@xmachines/play-router-shared` package exports a shared behavioral contract suite that all router bridge adapters must satisfy. It lives here (rather than in [`@xmachines/play-router`](../api/@xmachines/play-router/README.md)) because the suite drives a real actor via [`@xmachines/play-xstate`](../api/@xmachines/play-xstate/README.md) and uses the shared `authMachine` fixture from `@xmachines/play-actor-shared`, so it sits one layer above the router package and keeps [`@xmachines/play-router`](../api/@xmachines/play-router/README.md) free of any dependency on the actor runtime:
464
519
 
465
- ```typescript
520
+ ```typescript fragment
466
521
  // packages/play-router/examples/shared/test/router-bridge-contract.ts
467
522
  export function runBridgeContractTests(opts: ContractSuiteOptions): void;
468
523
 
@@ -486,7 +541,7 @@ The contract covers: deep-link sync on connect, router→actor navigation sync,
486
541
 
487
542
  **Compile-time bridge contract verification:**
488
543
 
489
- ```typescript
544
+ ```typescript fragment
490
545
  import { assertImplementsRouterBridge } from "@xmachines/play-router-shared/test/router-bridge-contract.js";
491
546
  import { MyRouterBridge } from "../src/my-router-bridge.js";
492
547
 
@@ -528,18 +583,23 @@ Tests run in GitLab CI using the `to-be-continuous/node` pipeline component (ver
528
583
  - Pushes to the default branch (`$CI_DEFAULT_BRANCH`)
529
584
  - Merge requests (`$CI_MERGE_REQUEST_IID`)
530
585
 
531
- **CI test command** (from `.gitlab-ci.yml`):
586
+ **CI test jobs** (from `.gitlab-ci.yml`):
532
587
 
533
588
  ```bash
534
- pnpm run test:coverage
589
+ pnpm run test:dist --coverage # test:dist
590
+ pnpm run test:browser:dist --coverage # test:browser:dist, on the Playwright image
591
+ pnpm run test:docs:examples # test:docs:examples
535
592
  ```
536
593
 
537
- 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.
594
+ CI runs the suites on the build output alone. `test:dist` and `test:browser:dist` take `dist/` from `node-build` through `needs:`, so they test the build that the pipeline produced. 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. `test:docs:examples` reads the source, so it waits for no build.
595
+
596
+ The jobs pass no reporter flag. `vitest.config.ts` and `vitest.browser.config.ts` own the reporters, the JUnit file and the coverage directory, and they read `COVERAGE_REPORTS_DIR` — which the dist jobs set to `reports/`. A new package therefore needs no CI change. `test:docs:examples` shares the root config with `test:dist`, so it names its own JUnit file on the command line.
538
597
 
539
- **Artifacts:** The `test` job publishes:
598
+ **Artifacts:**
540
599
 
541
- - JUnit XML report at `reports/test-results.xml` (surfaced in GitLab's test results panel)
542
- - Cobertura coverage XML at `reports/cobertura-coverage.xml` (used for GitLab's coverage percentage badge — extracted from the `All files` line)
600
+ - `test:dist`: JUnit at `reports/test-results.xml`, and Cobertura at `reports/cobertura-coverage.xml`. GitLab reads the coverage percentage from the `All files` line.
601
+ - `test:browser:dist`: JUnit at `reports/browser-results.xml`, and its own Cobertura report. GitLab merges the two Cobertura reports.
602
+ - `test:docs:examples`: JUnit at `reports/docs-examples.xml`.
543
603
 
544
604
  Coverage and test results are always uploaded (`when: always`) so failures are visible even when the job itself fails.
545
605
 
@@ -43,7 +43,7 @@ Use this order to understand the implementation:
43
43
  6. `createDebugPanel(actor, shell, inspector)` in `src/components/DebugPanel.ts` uses `watchAtom(actor.state, ...)` and `watchAtom(actor.currentRoute, ...)` to drive live debug panel updates, and renders the **Show Inspector** button that calls `inspector.show()`.
44
44
  7. Browser tests in `test/browser/` validate startup rendering and auth interactions.
45
45
 
46
- ```ts
46
+ ```ts fragment
47
47
  // src/main.ts (shape)
48
48
  const inspector = createDemoInspector();
49
49
  const createPlayer = definePlayer({
@@ -63,7 +63,7 @@ if (!app) throw new Error("Root element not found");
63
63
  initShell(actor, app, inspector);
64
64
  ```
65
65
 
66
- ```ts
66
+ ```ts fragment
67
67
  // src/components/Shell.ts (shape)
68
68
  const registryResult = defineRegistry(authCatalog, {
69
69
  components: demoComponents, // one shared map — Home…NavBar plus the 0.20 Panel/Field/Button leaves
@@ -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/v7.0.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/v7.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/v7.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/v7.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/v7.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/v7.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/v7.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/v7.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/v7.0.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/v7.0.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/v7.0.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/v7.0.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/v7.0.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/v7.0.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/v7.0.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/v7.0.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/v7.0.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/v7.0.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.
@@ -6,7 +6,7 @@
6
6
  const Home: ComponentFn<AuthCatalog, "Home">;
7
7
  ```
8
8
 
9
- Defined in: [packages/play-dom/examples/demo/src/components/Home.ts:9](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v6.0.0/packages/play-dom/examples/demo/src/components/Home.ts#L9)
9
+ Defined in: [packages/play-dom/examples/demo/src/components/Home.ts:9](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v7.0.0/packages/play-dom/examples/demo/src/components/Home.ts#L9)
10
10
 
11
11
  Home — Public landing page. Catalog-typed DOM component
12
12
  (ComponentFn<AuthCatalog, 'Home'>). Renders static welcome content from
@@ -6,7 +6,7 @@
6
6
  const Login: ComponentFn<AuthCatalog, "Login">;
7
7
  ```
8
8
 
9
- Defined in: [packages/play-dom/examples/demo/src/components/Login.ts:9](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v6.0.0/packages/play-dom/examples/demo/src/components/Login.ts#L9)
9
+ Defined in: [packages/play-dom/examples/demo/src/components/Login.ts:9](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v7.0.0/packages/play-dom/examples/demo/src/components/Login.ts#L9)
10
10
 
11
11
  Login — Authentication form. Catalog-typed DOM component
12
12
  (ComponentFn<AuthCatalog, 'Login'>). Binds username input to ctx.store via
@@ -6,7 +6,7 @@
6
6
  const NavBarView: ComponentFn<AuthCatalog, "NavBar">;
7
7
  ```
8
8
 
9
- Defined in: [packages/play-dom/examples/demo/src/components/NavBarView.ts:12](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v6.0.0/packages/play-dom/examples/demo/src/components/NavBarView.ts#L12)
9
+ Defined in: [packages/play-dom/examples/demo/src/components/NavBarView.ts:12](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v7.0.0/packages/play-dom/examples/demo/src/components/NavBarView.ts#L12)
10
10
 
11
11
  NavBarView — Catalog-typed NavBar component for DOM renderer.
12
12
 
@@ -6,7 +6,7 @@
6
6
  const Navigation: ComponentFn<AuthCatalog, "Navigation">;
7
7
  ```
8
8
 
9
- Defined in: [packages/play-dom/examples/demo/src/components/Navigation.ts:9](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v6.0.0/packages/play-dom/examples/demo/src/components/Navigation.ts#L9)
9
+ Defined in: [packages/play-dom/examples/demo/src/components/Navigation.ts:9](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v7.0.0/packages/play-dom/examples/demo/src/components/Navigation.ts#L9)
10
10
 
11
11
  Navigation — Navigation status display. Catalog-typed DOM component
12
12
  (ComponentFn<AuthCatalog, 'Navigation'>). Renders current path and auth
@@ -6,7 +6,7 @@
6
6
  const Overview: ComponentFn<AuthCatalog, "Overview">;
7
7
  ```
8
8
 
9
- Defined in: [packages/play-dom/examples/demo/src/components/Overview.ts:9](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v6.0.0/packages/play-dom/examples/demo/src/components/Overview.ts#L9)
9
+ Defined in: [packages/play-dom/examples/demo/src/components/Overview.ts:9](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v7.0.0/packages/play-dom/examples/demo/src/components/Overview.ts#L9)
10
10
 
11
11
  Overview — Dashboard overview child route. Catalog-typed DOM component
12
12
  (ComponentFn<AuthCatalog, 'Overview'>). Relative route resolves to