@xmachines/docs 6.1.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 (595) hide show
  1. package/README.md +4 -4
  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 +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 +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 +16 -4
  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 +131 -48
  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 +73 -16
  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 +5 -5
  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 -11
  221. package/api/@xmachines/play-solid/functions/useActor.md +1 -1
  222. package/api/@xmachines/play-solid/functions/useBoundProp.md +8 -5
  223. package/api/@xmachines/play-solid/functions/useFieldValidation.md +6 -4
  224. package/api/@xmachines/play-solid/functions/usePlayView.md +1 -1
  225. package/api/@xmachines/play-solid/functions/useStateBinding.md +5 -3
  226. package/api/@xmachines/play-solid/functions/useStateValue.md +5 -3
  227. package/api/@xmachines/play-solid/interfaces/ActorProviderProps.md +10 -10
  228. package/api/@xmachines/play-solid/interfaces/PlayUIProviderProps.md +13 -13
  229. package/api/@xmachines/play-solid/interfaces/RenderErrorInfo.md +16 -0
  230. package/api/@xmachines/play-solid/interfaces/RendererProps.md +7 -7
  231. package/api/@xmachines/play-solid/interfaces/ViewContextValue.md +5 -5
  232. package/api/@xmachines/play-solid/type-aliases/AnyPlayActor.md +1 -1
  233. package/api/@xmachines/play-solid/type-aliases/OnRenderError.md +27 -0
  234. package/api/@xmachines/play-solid/type-aliases/RenderErrorKind.md +21 -0
  235. package/api/@xmachines/play-solid/variables/ActorContext.md +1 -1
  236. package/api/@xmachines/play-solid/variables/ActorProvider.md +17 -3
  237. package/api/@xmachines/play-solid/variables/PlayRenderer.md +1 -1
  238. package/api/@xmachines/play-solid/variables/PlayUIProvider.md +1 -1
  239. package/api/@xmachines/play-solid-router/README.md +21 -5
  240. package/api/@xmachines/play-solid-router/classes/RouteMap.md +4 -4
  241. package/api/@xmachines/play-solid-router/classes/SolidRouterBridge.md +7 -7
  242. package/api/@xmachines/play-solid-router/functions/createPlayRouterProvider.md +1 -1
  243. package/api/@xmachines/play-solid-router/interfaces/PlayActor.md +3 -3
  244. package/api/@xmachines/play-solid-router/interfaces/PlayRouteEvent.md +7 -7
  245. package/api/@xmachines/play-solid-router/interfaces/PlayRouterProviderProps.md +9 -9
  246. package/api/@xmachines/play-solid-router/interfaces/RoutableActor.md +4 -4
  247. package/api/@xmachines/play-solid-router/interfaces/RouteMapOptions.md +4 -4
  248. package/api/@xmachines/play-solid-router/interfaces/RouteMapping.md +3 -3
  249. package/api/@xmachines/play-solid-router/interfaces/RouterBridge.md +3 -3
  250. package/api/@xmachines/play-solid-router/type-aliases/PlayRouterBridgeConstructor.md +1 -1
  251. package/api/@xmachines/play-solid-router/type-aliases/PlayRouterProviderBaseProps.md +1 -1
  252. package/api/@xmachines/play-solid-router/type-aliases/SolidRouterHooks.md +4 -4
  253. package/api/@xmachines/play-solid-router/variables/PlayRouterProvider.md +1 -1
  254. package/api/@xmachines/play-svelte/README.md +18 -10
  255. package/api/@xmachines/play-svelte/functions/defineRegistry.md +3 -4
  256. package/api/@xmachines/play-svelte/functions/getActorContext.md +1 -1
  257. package/api/@xmachines/play-svelte/functions/getPlayViewContext.md +1 -1
  258. package/api/@xmachines/play-svelte/functions/setActorContext.md +1 -1
  259. package/api/@xmachines/play-svelte/interfaces/ActorProviderProps.md +12 -12
  260. package/api/@xmachines/play-svelte/interfaces/DefineRegistryOptions.md +8 -8
  261. package/api/@xmachines/play-svelte/interfaces/DefineRegistryResult.md +15 -0
  262. package/api/@xmachines/play-svelte/interfaces/PlayUIProviderProps.md +14 -14
  263. package/api/@xmachines/play-svelte/interfaces/RenderErrorInfo.md +16 -0
  264. package/api/@xmachines/play-svelte/interfaces/ViewContextValue.md +5 -5
  265. package/api/@xmachines/play-svelte/type-aliases/AnyPlayActor.md +1 -1
  266. package/api/@xmachines/play-svelte/type-aliases/OnRenderError.md +27 -0
  267. package/api/@xmachines/play-svelte/type-aliases/RenderErrorKind.md +21 -0
  268. package/api/@xmachines/play-svelte-spa-router/README.md +9 -5
  269. package/api/@xmachines/play-svelte-spa-router/classes/RouteMap.md +4 -4
  270. package/api/@xmachines/play-svelte-spa-router/classes/SvelteSpaRouterBridge.md +7 -7
  271. package/api/@xmachines/play-svelte-spa-router/functions/connectRouter.md +1 -1
  272. package/api/@xmachines/play-svelte-spa-router/interfaces/BasePathOptions.md +3 -3
  273. package/api/@xmachines/play-svelte-spa-router/interfaces/ConnectRouterOptions.md +8 -8
  274. package/api/@xmachines/play-svelte-spa-router/interfaces/PlayRouteEvent.md +7 -7
  275. package/api/@xmachines/play-svelte-spa-router/interfaces/RoutableActor.md +4 -4
  276. package/api/@xmachines/play-svelte-spa-router/interfaces/RouteMapOptions.md +4 -4
  277. package/api/@xmachines/play-svelte-spa-router/interfaces/RouteMapping.md +3 -3
  278. package/api/@xmachines/play-svelte-spa-router/interfaces/RouterBridge.md +3 -3
  279. package/api/@xmachines/play-svelte-spa-router/interfaces/RouterConnection.md +6 -6
  280. package/api/@xmachines/play-svelte-spa-router/interfaces/WindowLike.md +3 -3
  281. package/api/@xmachines/play-sveltekit-router/README.md +65 -13
  282. package/api/@xmachines/play-sveltekit-router/classes/RouteMap.md +4 -4
  283. package/api/@xmachines/play-sveltekit-router/classes/SvelteKitRouterBridge.md +29 -19
  284. package/api/@xmachines/play-sveltekit-router/functions/connectRouter.md +1 -1
  285. package/api/@xmachines/play-sveltekit-router/interfaces/BasePathOptions.md +3 -3
  286. package/api/@xmachines/play-sveltekit-router/interfaces/ConnectRouterOptions.md +13 -16
  287. package/api/@xmachines/play-sveltekit-router/interfaces/LocationLike.md +3 -3
  288. package/api/@xmachines/play-sveltekit-router/interfaces/PlayRouteEvent.md +7 -7
  289. package/api/@xmachines/play-sveltekit-router/interfaces/RoutableActor.md +4 -4
  290. package/api/@xmachines/play-sveltekit-router/interfaces/RouteMapOptions.md +4 -4
  291. package/api/@xmachines/play-sveltekit-router/interfaces/RouteMapping.md +3 -3
  292. package/api/@xmachines/play-sveltekit-router/interfaces/RouterBridge.md +3 -3
  293. package/api/@xmachines/play-sveltekit-router/interfaces/RouterConnection.md +6 -6
  294. package/api/@xmachines/play-sveltekit-router/interfaces/SvelteKitRouterBridgeOptions.md +25 -0
  295. package/api/@xmachines/play-sveltekit-router/type-aliases/ShallowNavigation.md +21 -0
  296. package/api/@xmachines/play-tanstack-react-router/README.md +34 -16
  297. package/api/@xmachines/play-tanstack-react-router/classes/RouteMap.md +4 -4
  298. package/api/@xmachines/play-tanstack-react-router/classes/TanStackReactRouterBridge.md +7 -7
  299. package/api/@xmachines/play-tanstack-react-router/functions/createPlayRouterProvider.md +1 -1
  300. package/api/@xmachines/play-tanstack-react-router/functions/createRouteMapFromTree.md +1 -1
  301. package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouteEvent.md +7 -7
  302. package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouterProviderProps.md +9 -9
  303. package/api/@xmachines/play-tanstack-react-router/interfaces/RoutableActor.md +4 -4
  304. package/api/@xmachines/play-tanstack-react-router/interfaces/RouteMapOptions.md +4 -4
  305. package/api/@xmachines/play-tanstack-react-router/interfaces/RouteMapping.md +3 -3
  306. package/api/@xmachines/play-tanstack-react-router/interfaces/RouterBridge.md +3 -3
  307. package/api/@xmachines/play-tanstack-react-router/type-aliases/PlayRouterBridgeConstructor.md +1 -1
  308. package/api/@xmachines/play-tanstack-react-router/type-aliases/PlayRouterProviderBaseProps.md +1 -1
  309. package/api/@xmachines/play-tanstack-react-router/type-aliases/TanStackRouterInstance.md +1 -1
  310. package/api/@xmachines/play-tanstack-react-router/type-aliases/TanStackRouterLike.md +5 -5
  311. package/api/@xmachines/play-tanstack-react-router/variables/PlayRouterProvider.md +1 -1
  312. package/api/@xmachines/play-tanstack-router/README.md +5 -3
  313. package/api/@xmachines/play-tanstack-router/classes/TanStackRouterBridgeBase.md +7 -7
  314. package/api/@xmachines/play-tanstack-router/type-aliases/TanStackRouteMapLike.md +3 -3
  315. package/api/@xmachines/play-tanstack-router/type-aliases/TanStackRouterLike.md +5 -5
  316. package/api/@xmachines/play-tanstack-solid-router/README.md +45 -11
  317. package/api/@xmachines/play-tanstack-solid-router/classes/RouteMap.md +4 -4
  318. package/api/@xmachines/play-tanstack-solid-router/classes/TanStackSolidRouterBridge.md +7 -7
  319. package/api/@xmachines/play-tanstack-solid-router/functions/createPlayRouterProvider.md +1 -1
  320. package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayRouteEvent.md +7 -7
  321. package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayRouterProviderProps.md +9 -9
  322. package/api/@xmachines/play-tanstack-solid-router/interfaces/RoutableActor.md +4 -4
  323. package/api/@xmachines/play-tanstack-solid-router/interfaces/RouteMapOptions.md +4 -4
  324. package/api/@xmachines/play-tanstack-solid-router/interfaces/RouteMapping.md +3 -3
  325. package/api/@xmachines/play-tanstack-solid-router/interfaces/RouterBridge.md +3 -3
  326. package/api/@xmachines/play-tanstack-solid-router/type-aliases/PlayRouterBridgeConstructor.md +1 -1
  327. package/api/@xmachines/play-tanstack-solid-router/type-aliases/PlayRouterProviderBaseProps.md +1 -1
  328. package/api/@xmachines/play-tanstack-solid-router/type-aliases/TanStackRouterInstance.md +1 -1
  329. package/api/@xmachines/play-tanstack-solid-router/type-aliases/TanStackRouterLike.md +5 -5
  330. package/api/@xmachines/play-tanstack-solid-router/variables/PlayRouterProvider.md +1 -1
  331. package/api/@xmachines/play-url/README.md +1 -1
  332. package/api/@xmachines/play-url/errors/classes/InvalidBasePathError.md +5 -5
  333. package/api/@xmachines/play-url/errors/classes/InvalidRoutePatternError.md +5 -5
  334. package/api/@xmachines/play-url/errors/classes/MissingBasePathParamError.md +6 -6
  335. package/api/@xmachines/play-url/index/functions/buildPath.md +1 -1
  336. package/api/@xmachines/play-url/index/functions/cleanFrameworkParams.md +1 -1
  337. package/api/@xmachines/play-url/index/functions/createLruCache.md +1 -1
  338. package/api/@xmachines/play-url/index/functions/getCandidates.md +1 -1
  339. package/api/@xmachines/play-url/index/functions/getCompiledPattern.md +1 -1
  340. package/api/@xmachines/play-url/index/functions/getIndexKey.md +1 -1
  341. package/api/@xmachines/play-url/index/functions/holdsUnsubstitutedParam.md +1 -1
  342. package/api/@xmachines/play-url/index/functions/isDotSegment.md +1 -1
  343. package/api/@xmachines/play-url/index/functions/joinBasePath.md +1 -1
  344. package/api/@xmachines/play-url/index/functions/normalizeBasePath.md +1 -1
  345. package/api/@xmachines/play-url/index/functions/parsePattern.md +1 -1
  346. package/api/@xmachines/play-url/index/functions/pickOwnParams.md +1 -1
  347. package/api/@xmachines/play-url/index/functions/resolveBasePath.md +1 -1
  348. package/api/@xmachines/play-url/index/functions/resolveFrameworkParams.md +1 -1
  349. package/api/@xmachines/play-url/index/functions/sanitizePathname.md +1 -1
  350. package/api/@xmachines/play-url/index/functions/splitLocation.md +1 -1
  351. package/api/@xmachines/play-url/index/functions/stripBasePath.md +1 -1
  352. package/api/@xmachines/play-url/index/interfaces/BasePathOptions.md +3 -3
  353. package/api/@xmachines/play-url/index/interfaces/CompileOptions.md +3 -3
  354. package/api/@xmachines/play-url/index/interfaces/FrameworkParamsSource.md +7 -7
  355. package/api/@xmachines/play-url/index/interfaces/GroupPart.md +4 -4
  356. package/api/@xmachines/play-url/index/interfaces/KeyValueCache.md +3 -3
  357. package/api/@xmachines/play-url/index/interfaces/LiteralPart.md +3 -3
  358. package/api/@xmachines/play-url/index/interfaces/ParamPart.md +7 -7
  359. package/api/@xmachines/play-url/index/interfaces/ParseOptions.md +2 -2
  360. package/api/@xmachines/play-url/index/interfaces/ParsedPattern.md +12 -12
  361. package/api/@xmachines/play-url/index/interfaces/PatternParam.md +4 -4
  362. package/api/@xmachines/play-url/index/interfaces/ResolvedBasePath.md +3 -3
  363. package/api/@xmachines/play-url/index/interfaces/SplitLocation.md +5 -5
  364. package/api/@xmachines/play-url/index/type-aliases/PathBuildResult.md +1 -1
  365. package/api/@xmachines/play-url/index/type-aliases/PathParams.md +1 -1
  366. package/api/@xmachines/play-url/index/type-aliases/PatternModifier.md +1 -1
  367. package/api/@xmachines/play-url/index/type-aliases/PatternPart.md +1 -1
  368. package/api/@xmachines/play-url/index/type-aliases/URLPatternCtor.md +1 -1
  369. package/api/@xmachines/play-url/index/type-aliases/URLPatternLike.md +3 -3
  370. package/api/@xmachines/play-url/index/variables/NO_BASE_PATH.md +1 -1
  371. package/api/@xmachines/play-url/index/variables/URLPattern.md +1 -1
  372. package/api/@xmachines/play-view/README.md +45 -19
  373. package/api/@xmachines/play-view/errors/README.md +1 -0
  374. package/api/@xmachines/play-view/errors/classes/InvalidViewOutletError.md +6 -6
  375. package/api/@xmachines/play-view/errors/classes/ReadOnlyContextError.md +5 -5
  376. package/api/@xmachines/play-view/errors/classes/ViewElementKeyCollisionError.md +181 -0
  377. package/api/@xmachines/play-view/index/README.md +10 -4
  378. package/api/@xmachines/play-view/index/functions/attachRenderErrorHandler.md +10 -9
  379. package/api/@xmachines/play-view/index/functions/bindStoreHandlers.md +34 -0
  380. package/api/@xmachines/play-view/index/functions/composePlayState.md +1 -1
  381. package/api/@xmachines/play-view/index/functions/composeViews.md +8 -2
  382. package/api/@xmachines/play-view/index/functions/createActorProxy.md +39 -0
  383. package/api/@xmachines/play-view/index/functions/createRenderErrorBinding.md +35 -0
  384. package/api/@xmachines/play-view/index/functions/createReportGuard.md +1 -1
  385. package/api/@xmachines/play-view/index/functions/createViewSession.md +29 -0
  386. package/api/@xmachines/play-view/index/functions/createViewStoreLifecycle.md +1 -1
  387. package/api/@xmachines/play-view/index/functions/forwardRenderError.md +45 -0
  388. package/api/@xmachines/play-view/index/functions/guardContextWrites.md +1 -1
  389. package/api/@xmachines/play-view/index/functions/refreshContextSubtree.md +1 -1
  390. package/api/@xmachines/play-view/index/functions/reuseComposedState.md +1 -1
  391. package/api/@xmachines/play-view/index/functions/toAtomState.md +1 -1
  392. package/api/@xmachines/play-view/index/functions/typedSpec.md +1 -1
  393. package/api/@xmachines/play-view/index/interfaces/BaseActorProviderProps.md +8 -8
  394. package/api/@xmachines/play-view/index/interfaces/BaseViewContextValue.md +5 -5
  395. package/api/@xmachines/play-view/index/interfaces/ComposedView.md +5 -5
  396. package/api/@xmachines/play-view/index/interfaces/HandlerFactory.md +19 -0
  397. package/api/@xmachines/play-view/index/interfaces/PlaySpec.md +3 -3
  398. package/api/@xmachines/play-view/index/interfaces/ReportGuard.md +5 -5
  399. package/api/@xmachines/play-view/index/interfaces/ReportGuardMessages.md +5 -5
  400. package/api/@xmachines/play-view/index/interfaces/ResolveViewStoreOptions.md +2 -2
  401. package/api/@xmachines/play-view/index/interfaces/ViewMeta.md +2 -2
  402. package/api/@xmachines/play-view/index/interfaces/ViewOutlet.md +3 -3
  403. package/api/@xmachines/play-view/index/interfaces/ViewSession.md +155 -0
  404. package/api/@xmachines/play-view/index/interfaces/ViewSessionOptions.md +12 -0
  405. package/api/@xmachines/play-view/index/interfaces/ViewSessionSnapshot.md +23 -0
  406. package/api/@xmachines/play-view/index/interfaces/ViewStoreLifecycle.md +22 -3
  407. package/api/@xmachines/play-view/index/interfaces/ViewStoreResolution.md +7 -6
  408. package/api/@xmachines/play-view/index/interfaces/ViewTree.md +4 -4
  409. package/api/@xmachines/play-view/index/interfaces/ViewTreeChild.md +3 -3
  410. package/api/@xmachines/play-view/index/interfaces/Viewable.md +2 -2
  411. package/api/@xmachines/play-view/index/type-aliases/StateUpdater.md +21 -0
  412. package/api/@xmachines/play-view/index/type-aliases/ViewActor.md +1 -1
  413. package/api/@xmachines/play-view/index/variables/CONTEXT_STATE_KEY.md +1 -1
  414. package/api/@xmachines/play-vue/README.md +20 -15
  415. package/api/@xmachines/play-vue/functions/defineRegistry.md +1 -1
  416. package/api/@xmachines/play-vue/functions/useActor.md +1 -1
  417. package/api/@xmachines/play-vue/functions/useBoundProp.md +10 -4
  418. package/api/@xmachines/play-vue/functions/useFieldValidation.md +12 -5
  419. package/api/@xmachines/play-vue/functions/usePlayView.md +1 -1
  420. package/api/@xmachines/play-vue/interfaces/ActorProviderProps.md +8 -8
  421. package/api/@xmachines/play-vue/interfaces/PlayUIProviderProps.md +11 -11
  422. package/api/@xmachines/play-vue/interfaces/RenderErrorInfo.md +16 -0
  423. package/api/@xmachines/play-vue/interfaces/RendererProps.md +7 -7
  424. package/api/@xmachines/play-vue/interfaces/ViewContextValue.md +5 -5
  425. package/api/@xmachines/play-vue/type-aliases/AnyPlayActor.md +1 -1
  426. package/api/@xmachines/play-vue/type-aliases/ComponentEntry.md +1 -1
  427. package/api/@xmachines/play-vue/type-aliases/ComponentsMap.md +1 -1
  428. package/api/@xmachines/play-vue/type-aliases/DefineRegistryOptions.md +2 -2
  429. package/api/@xmachines/play-vue/type-aliases/OnRenderError.md +27 -0
  430. package/api/@xmachines/play-vue/type-aliases/RenderErrorKind.md +21 -0
  431. package/api/@xmachines/play-vue/variables/PlayRenderer.md +1 -1
  432. package/api/@xmachines/play-vue/variables/Renderer.md +3 -3
  433. package/api/@xmachines/play-vue-router/README.md +18 -11
  434. package/api/@xmachines/play-vue-router/errors/classes/VueRouterNavigationError.md +4 -4
  435. package/api/@xmachines/play-vue-router/errors/classes/VueRouterSendError.md +4 -4
  436. package/api/@xmachines/play-vue-router/index/classes/RouteMap.md +4 -4
  437. package/api/@xmachines/play-vue-router/index/classes/VueRouterBridge.md +7 -7
  438. package/api/@xmachines/play-vue-router/index/interfaces/PlayRouteEvent.md +7 -7
  439. package/api/@xmachines/play-vue-router/index/interfaces/RoutableActor.md +4 -4
  440. package/api/@xmachines/play-vue-router/index/interfaces/RouteMapOptions.md +4 -4
  441. package/api/@xmachines/play-vue-router/index/interfaces/RouteMapping.md +3 -3
  442. package/api/@xmachines/play-vue-router/index/interfaces/RouterBridge.md +3 -3
  443. package/api/@xmachines/play-vue-router/index/variables/PlayRouterProvider.md +1 -1
  444. package/api/@xmachines/play-xstate/README.md +64 -12
  445. package/api/@xmachines/play-xstate/errors/classes/ActorThrewNonErrorError.md +4 -4
  446. package/api/@xmachines/play-xstate/errors/classes/InvalidEventError.md +5 -5
  447. package/api/@xmachines/play-xstate/errors/classes/InvalidMachineError.md +4 -4
  448. package/api/@xmachines/play-xstate/errors/classes/InvalidRouteHandlerError.md +5 -5
  449. package/api/@xmachines/play-xstate/errors/classes/InvalidRouteMetadataError.md +5 -5
  450. package/api/@xmachines/play-xstate/errors/classes/InvalidRouteParamError.md +7 -7
  451. package/api/@xmachines/play-xstate/errors/classes/MissingRouteParamError.md +6 -6
  452. package/api/@xmachines/play-xstate/errors/classes/MissingStateIdError.md +6 -6
  453. package/api/@xmachines/play-xstate/index/classes/PlayerActor.md +10 -10
  454. package/api/@xmachines/play-xstate/index/functions/compose.md +4 -4
  455. package/api/@xmachines/play-xstate/index/functions/definePlayer.md +2 -2
  456. package/api/@xmachines/play-xstate/index/interfaces/PlayerConfig.md +4 -4
  457. package/api/@xmachines/play-xstate/index/interfaces/PlayerFactoryResumeOptions.md +2 -2
  458. package/api/@xmachines/play-xstate/index/interfaces/PlayerOptions.md +7 -7
  459. package/api/@xmachines/play-xstate/index/type-aliases/Capability.md +1 -1
  460. package/api/@xmachines/play-xstate/index/type-aliases/PlayerConstructor.md +1 -1
  461. package/api/@xmachines/play-xstate/index/type-aliases/PlayerFactory.md +1 -1
  462. package/api/@xmachines/play-xstate/with-routing/functions/buildRouteUrl.md +1 -1
  463. package/api/@xmachines/play-xstate/with-routing/functions/deriveRoute.md +1 -1
  464. package/api/@xmachines/play-xstate/with-routing/functions/formatPlayRouteTransitions.md +1 -1
  465. package/api/@xmachines/play-xstate/with-routing/functions/isAbsoluteRoute.md +1 -1
  466. package/api/@xmachines/play-xstate/with-routing/functions/withRouting.md +1 -1
  467. package/api/@xmachines/play-xstate/with-routing/interfaces/RouteContext.md +5 -5
  468. package/api/@xmachines/play-xstate/with-routing/interfaces/RouteObject.md +5 -5
  469. package/api/@xmachines/play-xstate/with-routing/type-aliases/RouteData.md +1 -1
  470. package/api/@xmachines/play-xstate/with-routing/type-aliases/RouteDataResolver.md +1 -1
  471. package/api/@xmachines/play-xstate/with-routing/type-aliases/RouteMachineConfig.md +4 -4
  472. package/api/@xmachines/play-xstate/with-routing/type-aliases/RouteMetadata.md +1 -1
  473. package/api/@xmachines/play-xstate/with-routing/type-aliases/RouteStateNode.md +5 -5
  474. package/api/@xmachines/play-xstate/with-view/functions/withView.md +1 -1
  475. package/api/@xmachines/shared/README.md +1 -0
  476. package/api/@xmachines/shared/vite-aliases/functions/xmAliases.md +1 -1
  477. package/api/@xmachines/shared/vite-aliases/functions/xmBuildOutput.md +1 -1
  478. package/api/@xmachines/shared/vite-aliases/functions/xmBuildOutputFile.md +1 -1
  479. package/api/@xmachines/shared/vite-aliases/functions/xmCacheDir.md +1 -1
  480. package/api/@xmachines/shared/vite-aliases/functions/xmOptimizeDeps.md +1 -1
  481. package/api/@xmachines/shared/vite-aliases/functions/xmResolve.md +1 -1
  482. package/api/@xmachines/shared/vite-aliases/functions/xmSvelteRunes.md +2 -2
  483. package/api/@xmachines/shared/vite-aliases/functions/xmTestTarget.md +1 -1
  484. package/api/@xmachines/shared/vite-aliases/type-aliases/XmTestTarget.md +1 -1
  485. package/api/@xmachines/shared/vitest/functions/defineXmBrowserConfig.md +1 -1
  486. package/api/@xmachines/shared/vitest/functions/defineXmVitestConfig.md +1 -1
  487. package/api/@xmachines/shared/vitest/interfaces/XmBrowserConfigOptions.md +4 -4
  488. package/contributing/architecture.md +88 -53
  489. package/contributing/configuration.md +20 -12
  490. package/contributing/deployment.md +3 -3
  491. package/contributing/development.md +28 -3
  492. package/contributing/migrating-to-play-atom.md +10 -4
  493. package/contributing/testing.md +64 -33
  494. package/examples/@xmachines/play-dom-demo/README.md +2 -2
  495. package/examples/@xmachines/play-dom-demo/functions/createAuthActionHandlers.md +9 -9
  496. package/examples/@xmachines/play-dom-demo/functions/createConfirmDialog.md +1 -1
  497. package/examples/@xmachines/play-dom-demo/functions/createNavBar.md +1 -1
  498. package/examples/@xmachines/play-dom-demo/functions/initShell.md +1 -1
  499. package/examples/@xmachines/play-dom-demo/type-aliases/AuthCatalog.md +1 -1
  500. package/examples/@xmachines/play-dom-demo/variables/About.md +1 -1
  501. package/examples/@xmachines/play-dom-demo/variables/Button.md +1 -1
  502. package/examples/@xmachines/play-dom-demo/variables/Contact.md +1 -1
  503. package/examples/@xmachines/play-dom-demo/variables/Dashboard.md +1 -1
  504. package/examples/@xmachines/play-dom-demo/variables/Field.md +1 -1
  505. package/examples/@xmachines/play-dom-demo/variables/Home.md +1 -1
  506. package/examples/@xmachines/play-dom-demo/variables/Login.md +1 -1
  507. package/examples/@xmachines/play-dom-demo/variables/NavBarView.md +1 -1
  508. package/examples/@xmachines/play-dom-demo/variables/Navigation.md +1 -1
  509. package/examples/@xmachines/play-dom-demo/variables/Overview.md +1 -1
  510. package/examples/@xmachines/play-dom-demo/variables/Panel.md +1 -1
  511. package/examples/@xmachines/play-dom-demo/variables/Profile.md +1 -1
  512. package/examples/@xmachines/play-dom-demo/variables/Settings.md +1 -1
  513. package/examples/@xmachines/play-dom-demo/variables/Stats.md +1 -1
  514. package/examples/@xmachines/play-dom-demo/variables/authCatalog.md +1 -1
  515. package/examples/@xmachines/play-dom-demo/variables/demoComponents.md +15 -15
  516. package/examples/@xmachines/play-dom-router-demo/README.md +4 -3
  517. package/examples/@xmachines/play-react-demo/README.md +2 -2
  518. package/examples/@xmachines/play-react-demo/functions/createAuthActionHandlers.md +9 -9
  519. package/examples/@xmachines/play-react-demo/type-aliases/AuthCatalog.md +1 -1
  520. package/examples/@xmachines/play-react-demo/variables/About.md +1 -1
  521. package/examples/@xmachines/play-react-demo/variables/Button.md +1 -1
  522. package/examples/@xmachines/play-react-demo/variables/Contact.md +1 -1
  523. package/examples/@xmachines/play-react-demo/variables/Dashboard.md +1 -1
  524. package/examples/@xmachines/play-react-demo/variables/DebugPanel.md +1 -1
  525. package/examples/@xmachines/play-react-demo/variables/Field.md +1 -1
  526. package/examples/@xmachines/play-react-demo/variables/Home.md +1 -1
  527. package/examples/@xmachines/play-react-demo/variables/Login.md +1 -1
  528. package/examples/@xmachines/play-react-demo/variables/NavBar.md +1 -1
  529. package/examples/@xmachines/play-react-demo/variables/NavBarView.md +1 -1
  530. package/examples/@xmachines/play-react-demo/variables/Navigation.md +1 -1
  531. package/examples/@xmachines/play-react-demo/variables/Overview.md +1 -1
  532. package/examples/@xmachines/play-react-demo/variables/Panel.md +1 -1
  533. package/examples/@xmachines/play-react-demo/variables/Profile.md +1 -1
  534. package/examples/@xmachines/play-react-demo/variables/Settings.md +1 -1
  535. package/examples/@xmachines/play-react-demo/variables/Shell.md +1 -1
  536. package/examples/@xmachines/play-react-demo/variables/Stats.md +1 -1
  537. package/examples/@xmachines/play-react-demo/variables/authCatalog.md +1 -1
  538. package/examples/@xmachines/play-react-demo/variables/demoComponents.md +15 -15
  539. package/examples/@xmachines/play-react-router-demo/README.md +4 -3
  540. package/examples/@xmachines/play-solid-demo/README.md +3 -3
  541. package/examples/@xmachines/play-solid-demo/functions/createAuthActionHandlers.md +9 -9
  542. package/examples/@xmachines/play-solid-demo/type-aliases/AuthCatalog.md +1 -1
  543. package/examples/@xmachines/play-solid-demo/variables/About.md +1 -1
  544. package/examples/@xmachines/play-solid-demo/variables/Button.md +1 -1
  545. package/examples/@xmachines/play-solid-demo/variables/Contact.md +1 -1
  546. package/examples/@xmachines/play-solid-demo/variables/Dashboard.md +1 -1
  547. package/examples/@xmachines/play-solid-demo/variables/DebugPanel.md +1 -1
  548. package/examples/@xmachines/play-solid-demo/variables/Field.md +1 -1
  549. package/examples/@xmachines/play-solid-demo/variables/Home.md +1 -1
  550. package/examples/@xmachines/play-solid-demo/variables/Login.md +1 -1
  551. package/examples/@xmachines/play-solid-demo/variables/NavBar.md +1 -1
  552. package/examples/@xmachines/play-solid-demo/variables/NavBarView.md +1 -1
  553. package/examples/@xmachines/play-solid-demo/variables/Navigation.md +1 -1
  554. package/examples/@xmachines/play-solid-demo/variables/Overview.md +1 -1
  555. package/examples/@xmachines/play-solid-demo/variables/Panel.md +1 -1
  556. package/examples/@xmachines/play-solid-demo/variables/Profile.md +1 -1
  557. package/examples/@xmachines/play-solid-demo/variables/Settings.md +1 -1
  558. package/examples/@xmachines/play-solid-demo/variables/Shell.md +1 -1
  559. package/examples/@xmachines/play-solid-demo/variables/Stats.md +1 -1
  560. package/examples/@xmachines/play-solid-demo/variables/authCatalog.md +1 -1
  561. package/examples/@xmachines/play-solid-demo/variables/demoComponents.md +15 -15
  562. package/examples/@xmachines/play-solid-router-demo/README.md +9 -3
  563. package/examples/@xmachines/play-svelte-demo/README.md +1 -1
  564. package/examples/@xmachines/play-svelte-demo/functions/createAuthActionHandlers.md +9 -9
  565. package/examples/@xmachines/play-svelte-demo/type-aliases/AuthCatalog.md +1 -1
  566. package/examples/@xmachines/play-svelte-demo/variables/authCatalog.md +1 -1
  567. package/examples/@xmachines/play-svelte-demo/variables/demoComponents.md +15 -15
  568. package/examples/@xmachines/play-svelte-spa-router-demo/README.md +1 -1
  569. package/examples/@xmachines/play-sveltekit-router-demo/README.md +1 -1
  570. package/examples/@xmachines/play-tanstack-react-router-demo/README.md +3 -2
  571. package/examples/@xmachines/play-tanstack-solid-router-demo/README.md +9 -8
  572. package/examples/@xmachines/play-vue-demo/README.md +2 -2
  573. package/examples/@xmachines/play-vue-demo/functions/createAuthActionHandlers.md +9 -9
  574. package/examples/@xmachines/play-vue-demo/type-aliases/AuthCatalog.md +1 -1
  575. package/examples/@xmachines/play-vue-demo/variables/App.md +1 -1
  576. package/examples/@xmachines/play-vue-demo/variables/authCatalog.md +1 -1
  577. package/examples/@xmachines/play-vue-demo/variables/demoComponents.md +1 -1
  578. package/examples/@xmachines/play-vue-router-demo/README.md +3 -3
  579. package/examples/form-validation.md +17 -13
  580. package/examples/multi-router-integration.md +268 -147
  581. package/examples/routing-patterns.md +43 -8
  582. package/examples/traffic-light.md +6 -2
  583. package/guides/actor-model.md +37 -19
  584. package/guides/atoms.md +48 -8
  585. package/guides/getting-started.md +63 -13
  586. package/guides/inspector.md +71 -11
  587. package/guides/routing.md +4 -1
  588. package/guides/state-machines.md +35 -13
  589. package/guides/views.md +34 -14
  590. package/package.json +6 -6
  591. package/rfc/play.md +31 -13
  592. package/api/@xmachines/play-view/index/functions/createFailureLatch.md +0 -20
  593. package/api/@xmachines/play-view/index/functions/sameViewInputs.md +0 -25
  594. package/api/@xmachines/play-view/index/interfaces/FailureLatch.md +0 -60
  595. 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
@@ -142,6 +143,7 @@ All commands are run from the **repository root** unless otherwise noted.
142
143
  | `pnpm run test:browser:dist` | Run Playwright browser tests on the build output |
143
144
  | `pnpm run test:coverage` | Run tests with V8 coverage reporting |
144
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 |
145
147
  | `pnpm run test:build` | Complete type-check of every package and its tests (`tsconfig.test.json`) |
146
148
  | `pnpm run lint` | Lint all packages with oxlint |
147
149
  | `pnpm run lint:fix` | Auto-fix lint issues |
@@ -429,7 +431,7 @@ Use `unknown` with type guards instead of `any`. Prefix unused locals/parameters
429
431
 
430
432
  1. Always use `.js` extensions in imports, even for TypeScript source files:
431
433
 
432
- ```typescript
434
+ ```typescript fragment
433
435
  // ✅ Correct
434
436
  import { PlayError } from "./errors.js";
435
437
 
@@ -439,7 +441,7 @@ Use `unknown` with type guards instead of `any`. Prefix unused locals/parameters
439
441
 
440
442
  2. Use `import type` for type-only imports (required by `verbatimModuleSyntax`):
441
443
 
442
- ```typescript
444
+ ```typescript fragment
443
445
  import type { RouteNode, RouteTree } from "../src/types.js";
444
446
  ```
445
447
 
@@ -495,6 +497,29 @@ Three places keep a plain code span:
495
497
 
496
498
  ---
497
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
+
498
523
  ## Branch Conventions
499
524
 
500
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());
@@ -4,7 +4,7 @@ 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
 
@@ -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
@@ -85,7 +77,7 @@ pnpm run test:dist # the node suites
85
77
  pnpm run test:browser:dist # the browser suites
86
78
  ```
87
79
 
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.
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.
89
81
 
90
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:
91
83
 
@@ -96,13 +88,13 @@ The private packages — the demos and the `examples/shared` fixtures — reach
96
88
 
97
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.
98
90
 
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.
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.
100
92
 
101
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.
102
94
 
103
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.
104
96
 
105
- Coverage stays on the source run. The build output carries none of the lines that the gate measures.
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.
106
98
 
107
99
  ### With coverage
108
100
 
@@ -269,6 +261,10 @@ The root `vitest.config.ts` needs no edit: it collects `packages/*/vitest.config
269
261
 
270
262
  ```typescript
271
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;
272
268
 
273
269
  describe("ClassName or functionName()", () => {
274
270
  describe("feature group or scenario", () => {
@@ -288,13 +284,16 @@ describe("ClassName or functionName()", () => {
288
284
 
289
285
  **Import style:** Always use `.js` extensions in imports (ESM requirement):
290
286
 
291
- ```typescript
292
- import { PlayActor } from "../src/abstract-actor.js";
287
+ ```typescript fragment
288
+ import type { PlayActor } from "../src/play-actor.js";
293
289
  ```
294
290
 
295
291
  ### Lifecycle hooks
296
292
 
297
293
  ```typescript
294
+ import { cleanup } from "@testing-library/react";
295
+ import { afterEach, beforeEach, vi } from "vitest";
296
+
298
297
  beforeEach(() => {
299
298
  vi.spyOn(console, "error").mockImplementation(() => {});
300
299
  });
@@ -312,6 +311,8 @@ afterEach(() => {
312
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:
313
312
 
314
313
  ```typescript
314
+ import { vi } from "vitest";
315
+
315
316
  const mocks = vi.hoisted(() => ({ goto: vi.fn() }));
316
317
 
317
318
  vi.mock("$app/navigation", () => ({ goto: mocks.goto }));
@@ -321,7 +322,9 @@ afterEach(() => {
321
322
 
322
323
  - **`console.warn` / `console.error`** when testing code that legitimately emits warnings — mock to suppress noise and assert call counts:
323
324
 
324
- ```typescript
325
+ ```typescript norun
326
+ import { expect, vi } from "vitest";
327
+
325
328
  const warnSpy = vi.spyOn(console, "warn").mockImplementation(() => {});
326
329
  // ... test ...
327
330
  expect(warnSpy).toHaveBeenCalled();
@@ -338,10 +341,11 @@ afterEach(() => {
338
341
 
339
342
  ### Test actor patterns
340
343
 
341
- **Preferred: extend `PlayActor` for full type safety:**
344
+ **Preferred: implement `PlayActor` for full type safety:**
342
345
 
343
346
  ```typescript
344
- 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";
345
349
  import type { Routable } from "@xmachines/play-router";
346
350
 
347
351
  class MockActor implements PlayActor, Routable {
@@ -356,7 +360,7 @@ class MockActor implements PlayActor, Routable {
356
360
  this.initialRoute = startRoute;
357
361
  }
358
362
 
359
- override send(_event: { readonly type: string } & Record<string, unknown>): void {
363
+ send(_event: { readonly type: string } & Record<string, unknown>): void {
360
364
  // no-op or capture events for assertion
361
365
  }
362
366
  }
@@ -365,18 +369,16 @@ class MockActor implements PlayActor, Routable {
365
369
  **Factory functions for lightweight inline mocks — use `stubOf`, never a double-cast:**
366
370
 
367
371
  ```typescript
372
+ import { vi } from "vitest";
373
+ import { createAtom } from "@xmachines/play-atom";
374
+ import type { PlaySpec, ViewActor } from "@xmachines/play-view";
368
375
  import { stubOf } from "@xmachines/shared/test-support";
369
376
 
370
377
  function createMockActor(initialView: PlaySpec | null = null) {
371
378
  return stubOf<ViewActor>({
372
379
  currentView: createAtom<PlaySpec | null>(initialView),
373
380
  send: vi.fn(),
374
- start: vi.fn(),
375
- stop: vi.fn(),
376
- getSnapshot: vi.fn(),
377
- subscribe: vi.fn(),
378
381
  state: createAtom<unknown>({}),
379
- currentRoute: createAtom(() => null),
380
382
  });
381
383
  }
382
384
  ```
@@ -393,6 +395,11 @@ greppable escape hatch.
393
395
  **Flushing the microtask queue (required for `watchAtom` delivery):**
394
396
 
395
397
  ```typescript
398
+ import { expect, vi } from "vitest";
399
+
400
+ declare const result: string;
401
+ declare const expected: string;
402
+
396
403
  function waitForMicrotask(): Promise<void> {
397
404
  return new Promise<void>((resolve) => queueMicrotask(resolve));
398
405
  }
@@ -405,8 +412,12 @@ await vi.waitFor(() => expect(result).toBe(expected), { timeout: 100 });
405
412
  **Atom watch pattern:**
406
413
 
407
414
  ```typescript
415
+ import { expect } from "vitest";
408
416
  import { createAtom, watchAtom } from "@xmachines/play-atom";
409
417
 
418
+ const state = createAtom({ path: "/" });
419
+ const actor = { state, currentRoute: createAtom(() => state.get().path) };
420
+
410
421
  let notified: string | null = null;
411
422
  const stop = watchAtom(actor.currentRoute, (route) => {
412
423
  notified = route;
@@ -427,6 +438,9 @@ stop(); // Always clean up
427
438
  For type-only assertions, use `@ts-expect-error` in `.spec.ts` files:
428
439
 
429
440
  ```typescript
441
+ import { expect } from "vitest";
442
+ import { typedSpec, type ViewMeta } from "@xmachines/play-view";
443
+
430
444
  const bad: ViewMeta = typedSpec({
431
445
  root: "root",
432
446
  elements: {},
@@ -443,6 +457,11 @@ For purely structural type assertions with no runtime test needed, use `.typeche
443
457
 
444
458
  ```typescript
445
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
+
446
465
  type IsAny<T> = 0 extends 1 & T ? true : false;
447
466
  type AssertFalse<T extends false> = T;
448
467
 
@@ -455,8 +474,17 @@ These files are validated by `pnpm run test:build` (`tsc --build tsconfig.test.j
455
474
  ### Error testing
456
475
 
457
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";
458
483
  import { unsafeCast } from "@xmachines/shared/test-support";
459
484
 
485
+ declare const actor: PlayActor;
486
+ declare const dupMachine: AnyStateMachine;
487
+
460
488
  // Synchronous throws — feed a runtime guard an invalid value through
461
489
  // unsafeCast, the named escape hatch (never `null as unknown as PlayEvent`).
462
490
  expect(() => actor.send(unsafeCast<PlayEvent>(null))).toThrow(InvalidEventError);
@@ -489,7 +517,7 @@ A report that a spy swallows and no assertion reads is worse than the noise, bec
489
517
 
490
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:
491
519
 
492
- ```typescript
520
+ ```typescript fragment
493
521
  // packages/play-router/examples/shared/test/router-bridge-contract.ts
494
522
  export function runBridgeContractTests(opts: ContractSuiteOptions): void;
495
523
 
@@ -513,7 +541,7 @@ The contract covers: deep-link sync on connect, router→actor navigation sync,
513
541
 
514
542
  **Compile-time bridge contract verification:**
515
543
 
516
- ```typescript
544
+ ```typescript fragment
517
545
  import { assertImplementsRouterBridge } from "@xmachines/play-router-shared/test/router-bridge-contract.js";
518
546
  import { MyRouterBridge } from "../src/my-router-bridge.js";
519
547
 
@@ -555,20 +583,23 @@ Tests run in GitLab CI using the `to-be-continuous/node` pipeline component (ver
555
583
  - Pushes to the default branch (`$CI_DEFAULT_BRANCH`)
556
584
  - Merge requests (`$CI_MERGE_REQUEST_IID`)
557
585
 
558
- **CI test command** (from `.gitlab-ci.yml`):
586
+ **CI test jobs** (from `.gitlab-ci.yml`):
559
587
 
560
588
  ```bash
561
- 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
562
592
  ```
563
593
 
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.
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.
565
595
 
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.
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.
567
597
 
568
- **Artifacts:** The `test` job publishes:
598
+ **Artifacts:**
569
599
 
570
- - JUnit XML report at `reports/test-results.xml` (surfaced in GitLab's test results panel)
571
- - 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`.
572
603
 
573
604
  Coverage and test results are always uploaded (`when: always`) so failures are visible even when the job itself fails.
574
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.1.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.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) |
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.1.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.1.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.1.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.1.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.1.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.1.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.1.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.1.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.1.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.1.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.1.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.1.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.1.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.1.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
@@ -6,7 +6,7 @@
6
6
  const Panel: ComponentFn<AuthCatalog, "Panel">;
7
7
  ```
8
8
 
9
- Defined in: [packages/play-dom/examples/demo/src/components/Panel.ts:10](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v6.1.0/packages/play-dom/examples/demo/src/components/Panel.ts#L10)
9
+ Defined in: [packages/play-dom/examples/demo/src/components/Panel.ts:10](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v7.0.0/packages/play-dom/examples/demo/src/components/Panel.ts#L10)
10
10
 
11
11
  Panel — generic container leaf for the 0.20 showcase.
12
12
  Renders an optional title and note, then appends its rendered spec
@@ -6,7 +6,7 @@
6
6
  const Profile: ComponentFn<AuthCatalog, "Profile">;
7
7
  ```
8
8
 
9
- Defined in: [packages/play-dom/examples/demo/src/components/Profile.ts:9](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v6.1.0/packages/play-dom/examples/demo/src/components/Profile.ts#L9)
9
+ Defined in: [packages/play-dom/examples/demo/src/components/Profile.ts:9](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v7.0.0/packages/play-dom/examples/demo/src/components/Profile.ts#L9)
10
10
 
11
11
  Profile — Protected user profile page. Catalog-typed DOM component
12
12
  (ComponentFn<AuthCatalog, 'Profile'>). Renders username from route params
@@ -6,7 +6,7 @@
6
6
  const Settings: ComponentFn<AuthCatalog, "Settings">;
7
7
  ```
8
8
 
9
- Defined in: [packages/play-dom/examples/demo/src/components/Settings.ts:9](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v6.1.0/packages/play-dom/examples/demo/src/components/Settings.ts#L9)
9
+ Defined in: [packages/play-dom/examples/demo/src/components/Settings.ts:9](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v7.0.0/packages/play-dom/examples/demo/src/components/Settings.ts#L9)
10
10
 
11
11
  Settings — Protected settings page. Catalog-typed DOM component
12
12
  (ComponentFn<AuthCatalog, 'Settings'>). Renders active section and username