@xmachines/docs 4.0.0 → 5.0.1

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 (568) hide show
  1. package/README.md +8 -6
  2. package/api/@xmachines/play/README.md +21 -21
  3. package/api/@xmachines/play/errors/classes/NonNullableError.md +4 -4
  4. package/api/@xmachines/play/errors/classes/PlayError.md +5 -4
  5. package/api/@xmachines/play/index/README.md +2 -2
  6. package/api/@xmachines/play/index/functions/asCleanup.md +4 -5
  7. package/api/@xmachines/play/index/functions/assertNonNullable.md +1 -1
  8. package/api/@xmachines/play/index/functions/shallowEqualExcept.md +1 -1
  9. package/api/@xmachines/play/index/type-aliases/Cleanup.md +3 -3
  10. package/api/@xmachines/play/index/type-aliases/DisposeKey.md +1 -1
  11. package/api/@xmachines/play/index/type-aliases/PlayEvent.md +2 -2
  12. package/api/@xmachines/play/index/variables/DISPOSE.md +1 -1
  13. package/api/@xmachines/play-actor/README.md +9 -9
  14. package/api/@xmachines/play-actor/interfaces/ActorEvent.md +2 -2
  15. package/api/@xmachines/play-actor/interfaces/PlayActor.md +6 -6
  16. package/api/@xmachines/play-atom/README.md +281 -0
  17. package/api/@xmachines/play-atom/functions/watchAtom.md +79 -0
  18. package/api/@xmachines/play-atom/interfaces/AsyncAtomOptions.md +16 -0
  19. package/api/@xmachines/play-atom/interfaces/Atom.md +149 -0
  20. package/api/@xmachines/play-atom/interfaces/AtomObserver.md +25 -0
  21. package/api/@xmachines/play-atom/interfaces/AtomOptions.md +33 -0
  22. package/api/@xmachines/play-atom/interfaces/AtomSubscription.md +23 -0
  23. package/api/@xmachines/play-atom/interfaces/BaseAtom.md +97 -0
  24. package/api/@xmachines/play-atom/interfaces/CreateAtom.md +91 -0
  25. package/api/@xmachines/play-atom/interfaces/Readable.md +93 -0
  26. package/api/@xmachines/play-atom/interfaces/ReadonlyAtom.md +108 -0
  27. package/api/@xmachines/play-atom/type-aliases/AnyAtom.md +13 -0
  28. package/api/@xmachines/play-atom/type-aliases/AsyncAtomState.md +32 -0
  29. package/api/@xmachines/{play-signals → play-atom}/type-aliases/Cleanup.md +4 -4
  30. package/api/@xmachines/play-atom/variables/createAsyncAtom.md +42 -0
  31. package/api/@xmachines/play-atom/variables/createAtom.md +18 -0
  32. package/api/@xmachines/play-atom/variables/createWritableAtom.md +70 -0
  33. package/api/@xmachines/play-dom/README.md +21 -17
  34. package/api/@xmachines/play-dom/classes/PlayRenderer.md +10 -10
  35. package/api/@xmachines/play-dom/functions/asCleanup.md +4 -5
  36. package/api/@xmachines/play-dom/functions/createPlayUI.md +1 -1
  37. package/api/@xmachines/play-dom/functions/createRenderer.md +1 -1
  38. package/api/@xmachines/play-dom/interfaces/CreatePlayUIOptions.md +3 -3
  39. package/api/@xmachines/play-dom/interfaces/MountOptions.md +3 -3
  40. package/api/@xmachines/play-dom/interfaces/PlayDomOptions.md +6 -6
  41. package/api/@xmachines/play-dom/type-aliases/Cleanup.md +3 -3
  42. package/api/@xmachines/play-dom/type-aliases/MountFn.md +1 -1
  43. package/api/@xmachines/play-dom-router/README.md +24 -24
  44. package/api/@xmachines/play-dom-router/classes/DomRouterBridge.md +15 -15
  45. package/api/@xmachines/play-dom-router/classes/RouteMap.md +11 -11
  46. package/api/@xmachines/play-dom-router/functions/asCleanup.md +4 -5
  47. package/api/@xmachines/play-dom-router/functions/connectRouter.md +1 -1
  48. package/api/@xmachines/play-dom-router/functions/createBrowserHistory.md +1 -1
  49. package/api/@xmachines/play-dom-router/functions/createRouter.md +1 -1
  50. package/api/@xmachines/play-dom-router/interfaces/BasePathOptions.md +3 -7
  51. package/api/@xmachines/play-dom-router/interfaces/BrowserHistory.md +15 -15
  52. package/api/@xmachines/play-dom-router/interfaces/BrowserWindow.md +14 -14
  53. package/api/@xmachines/play-dom-router/interfaces/ConnectRouterOptions.md +11 -9
  54. package/api/@xmachines/play-dom-router/interfaces/PlayRouteEvent.md +7 -7
  55. package/api/@xmachines/play-dom-router/interfaces/RoutableActor.md +6 -6
  56. package/api/@xmachines/play-dom-router/interfaces/RouteLookupContract.md +3 -3
  57. package/api/@xmachines/play-dom-router/interfaces/RouteMapOptions.md +10 -4
  58. package/api/@xmachines/play-dom-router/interfaces/RouteMapping.md +3 -3
  59. package/api/@xmachines/play-dom-router/interfaces/RouterBridge.md +15 -17
  60. package/api/@xmachines/play-dom-router/interfaces/RouterConnection.md +7 -7
  61. package/api/@xmachines/play-dom-router/interfaces/VanillaRouter.md +5 -5
  62. package/api/@xmachines/play-dom-router/type-aliases/Cleanup.md +3 -3
  63. package/api/@xmachines/play-dom-router/variables/DISPOSE.md +1 -1
  64. package/api/@xmachines/play-pattern/README.md +115 -0
  65. package/api/@xmachines/play-pattern/functions/buildPath.md +46 -0
  66. package/api/@xmachines/play-pattern/functions/createPatternCache.md +47 -0
  67. package/api/@xmachines/play-pattern/functions/getIndexKey.md +30 -0
  68. package/api/@xmachines/play-pattern/functions/isDotSegment.md +40 -0
  69. package/api/@xmachines/play-pattern/functions/parsePattern.md +28 -0
  70. package/api/@xmachines/play-pattern/interfaces/GroupPart.md +15 -0
  71. package/api/@xmachines/play-pattern/interfaces/LiteralPart.md +14 -0
  72. package/api/@xmachines/play-pattern/interfaces/ParamPart.md +21 -0
  73. package/api/@xmachines/play-pattern/interfaces/ParseOptions.md +19 -0
  74. package/api/@xmachines/play-pattern/interfaces/ParsedPattern.md +23 -0
  75. package/api/@xmachines/play-pattern/interfaces/PatternCache.md +65 -0
  76. package/api/@xmachines/play-pattern/interfaces/PatternParam.md +15 -0
  77. package/api/@xmachines/play-pattern/type-aliases/PathBuildResult.md +74 -0
  78. package/api/@xmachines/play-pattern/type-aliases/PathParams.md +15 -0
  79. package/api/@xmachines/play-pattern/type-aliases/PatternModifier.md +11 -0
  80. package/api/@xmachines/play-pattern/type-aliases/PatternPart.md +9 -0
  81. package/api/@xmachines/play-react/README.md +31 -21
  82. package/api/@xmachines/play-react/classes/PlayErrorBoundary.md +6 -6
  83. package/api/@xmachines/play-react/functions/useActor.md +1 -1
  84. package/api/@xmachines/play-react/functions/useAtomEffect.md +103 -0
  85. package/api/@xmachines/play-react/functions/usePlayView.md +1 -1
  86. package/api/@xmachines/play-react/interfaces/ActorProviderProps.md +8 -8
  87. package/api/@xmachines/play-react/interfaces/PlayErrorBoundaryProps.md +6 -6
  88. package/api/@xmachines/play-react/interfaces/PlayErrorBoundaryState.md +4 -4
  89. package/api/@xmachines/play-react/interfaces/PlayUIProviderProps.md +8 -8
  90. package/api/@xmachines/play-react/interfaces/ViewContextValue.md +5 -5
  91. package/api/@xmachines/play-react/type-aliases/AnyPlayActor.md +1 -1
  92. package/api/@xmachines/play-react/variables/ActorProvider.md +2 -2
  93. package/api/@xmachines/play-react/variables/PlayRenderer.md +1 -1
  94. package/api/@xmachines/play-react/variables/PlayUIProvider.md +1 -1
  95. package/api/@xmachines/play-react-router/README.md +3 -3
  96. package/api/@xmachines/play-react-router/classes/ReactRouterBridge.md +15 -15
  97. package/api/@xmachines/play-react-router/classes/RouteMap.md +11 -11
  98. package/api/@xmachines/play-react-router/functions/createPlayRouterProvider.md +1 -1
  99. package/api/@xmachines/play-react-router/functions/createRouteMapFromTree.md +5 -5
  100. package/api/@xmachines/play-react-router/interfaces/PlayRouteEvent.md +7 -7
  101. package/api/@xmachines/play-react-router/interfaces/PlayRouterProviderProps.md +11 -9
  102. package/api/@xmachines/play-react-router/interfaces/RoutableActor.md +6 -6
  103. package/api/@xmachines/play-react-router/interfaces/RouteMapOptions.md +10 -4
  104. package/api/@xmachines/play-react-router/interfaces/RouteMapping.md +3 -3
  105. package/api/@xmachines/play-react-router/interfaces/RouterBridge.md +15 -17
  106. package/api/@xmachines/play-react-router/type-aliases/PlayRouterBridgeConstructor.md +14 -7
  107. package/api/@xmachines/play-react-router/type-aliases/PlayRouterProviderBaseProps.md +1 -1
  108. package/api/@xmachines/play-react-router/variables/PlayRouterProvider.md +1 -1
  109. package/api/@xmachines/play-router/README.md +25 -14
  110. package/api/@xmachines/play-router/errors/classes/DuplicateBridgeError.md +4 -4
  111. package/api/@xmachines/play-router/errors/classes/DuplicateRoutePathError.md +5 -5
  112. package/api/@xmachines/play-router/errors/classes/EmptyRoutePathError.md +5 -5
  113. package/api/@xmachines/play-router/errors/classes/InvalidBasePathError.md +5 -5
  114. package/api/@xmachines/play-router/errors/classes/InvalidRoutePatternError.md +5 -5
  115. package/api/@xmachines/play-router/errors/classes/InvalidStateIdError.md +5 -5
  116. package/api/@xmachines/play-router/errors/classes/MissingBasePathParamError.md +6 -6
  117. package/api/@xmachines/play-router/errors/classes/RouterSyncError.md +4 -4
  118. package/api/@xmachines/play-router/errors/classes/UnknownStateTypeError.md +6 -6
  119. package/api/@xmachines/play-router/index/README.md +10 -2
  120. package/api/@xmachines/play-router/index/classes/RouteMap.md +11 -11
  121. package/api/@xmachines/play-router/index/classes/RouterBridgeBase.md +10 -10
  122. package/api/@xmachines/play-router/index/functions/buildPlayRouteEvent.md +1 -1
  123. package/api/@xmachines/play-router/index/functions/buildRouteTree.md +1 -1
  124. package/api/@xmachines/play-router/index/functions/cleanFrameworkParams.md +1 -1
  125. package/api/@xmachines/play-router/index/functions/createPatternCache.md +47 -0
  126. package/api/@xmachines/play-router/index/functions/createRouteMapFromTree.md +5 -5
  127. package/api/@xmachines/play-router/index/functions/createRouterConnection.md +1 -1
  128. package/api/@xmachines/play-router/index/functions/detectDuplicateRoutes.md +1 -1
  129. package/api/@xmachines/play-router/index/functions/extractQuery.md +1 -1
  130. package/api/@xmachines/play-router/index/functions/extractRouteParams.md +7 -6
  131. package/api/@xmachines/play-router/index/functions/findRouteById.md +1 -1
  132. package/api/@xmachines/play-router/index/functions/findRouteByPath.md +13 -6
  133. package/api/@xmachines/play-router/index/functions/isMountableBridge.md +1 -1
  134. package/api/@xmachines/play-router/index/functions/joinBasePath.md +2 -1
  135. package/api/@xmachines/play-router/index/functions/mountKey.md +1 -1
  136. package/api/@xmachines/play-router/index/functions/normalizeBasePath.md +1 -1
  137. package/api/@xmachines/play-router/index/functions/openProviderBridge.md +3 -3
  138. package/api/@xmachines/play-router/index/functions/parsePattern.md +28 -0
  139. package/api/@xmachines/play-router/index/functions/pickOwnParams.md +1 -1
  140. package/api/@xmachines/play-router/index/functions/repointProviderBridge.md +1 -1
  141. package/api/@xmachines/play-router/index/functions/resolveBasePath.md +1 -1
  142. package/api/@xmachines/play-router/index/functions/resolveFrameworkParams.md +5 -5
  143. package/api/@xmachines/play-router/index/functions/sanitizePathname.md +9 -24
  144. package/api/@xmachines/play-router/index/functions/splitLocation.md +37 -0
  145. package/api/@xmachines/play-router/index/functions/stripBasePath.md +1 -1
  146. package/api/@xmachines/play-router/index/functions/validateRouteFormat.md +1 -1
  147. package/api/@xmachines/play-router/index/functions/validateStateExists.md +1 -1
  148. package/api/@xmachines/play-router/index/interfaces/BasePathOptions.md +4 -4
  149. package/api/@xmachines/play-router/index/interfaces/BuildPlayRouteEventOptions.md +4 -4
  150. package/api/@xmachines/play-router/index/interfaces/CompileOptions.md +35 -0
  151. package/api/@xmachines/play-router/index/interfaces/FrameworkParamsSource.md +13 -8
  152. package/api/@xmachines/play-router/index/interfaces/LocationLike.md +3 -3
  153. package/api/@xmachines/play-router/index/interfaces/MountableRouterBridge.md +9 -9
  154. package/api/@xmachines/play-router/index/interfaces/OpenProviderBridgeArgs.md +11 -9
  155. package/api/@xmachines/play-router/index/interfaces/ParseOptions.md +24 -0
  156. package/api/@xmachines/play-router/index/interfaces/ParsedPattern.md +23 -0
  157. package/api/@xmachines/play-router/index/interfaces/PatternCache.md +65 -0
  158. package/api/@xmachines/play-router/index/interfaces/PlayRouteEvent.md +7 -7
  159. package/api/@xmachines/play-router/index/interfaces/PlayRouterProviderBaseProps.md +15 -9
  160. package/api/@xmachines/play-router/index/interfaces/ResolvedBasePath.md +3 -3
  161. package/api/@xmachines/play-router/index/interfaces/ResolvedRoutePath.md +3 -3
  162. package/api/@xmachines/play-router/index/interfaces/Routable.md +5 -5
  163. package/api/@xmachines/play-router/index/interfaces/RoutableActor.md +6 -6
  164. package/api/@xmachines/play-router/index/interfaces/RouteInfo.md +8 -8
  165. package/api/@xmachines/play-router/index/interfaces/RouteMapOptions.md +10 -4
  166. package/api/@xmachines/play-router/index/interfaces/RouteMapping.md +3 -3
  167. package/api/@xmachines/play-router/index/interfaces/RouteMatch.md +3 -3
  168. package/api/@xmachines/play-router/index/interfaces/RouteNode.md +10 -10
  169. package/api/@xmachines/play-router/index/interfaces/RouteObject.md +5 -5
  170. package/api/@xmachines/play-router/index/interfaces/RouteTree.md +5 -5
  171. package/api/@xmachines/play-router/index/interfaces/RouteWatcherHandle.md +11 -11
  172. package/api/@xmachines/play-router/index/interfaces/RouterBridge.md +15 -17
  173. package/api/@xmachines/play-router/index/interfaces/RouterBridgeOptions.md +31 -0
  174. package/api/@xmachines/play-router/index/interfaces/RouterConnection.md +7 -7
  175. package/api/@xmachines/play-router/index/interfaces/SplitLocation.md +16 -0
  176. package/api/@xmachines/play-router/index/interfaces/WindowLike.md +3 -3
  177. package/api/@xmachines/play-router/index/type-aliases/PlayRouterBridgeConstructor.md +14 -7
  178. package/api/@xmachines/play-router/index/type-aliases/RouteData.md +1 -1
  179. package/api/@xmachines/play-router/index/type-aliases/RouteDataResolver.md +1 -1
  180. package/api/@xmachines/play-router/index/type-aliases/RouteMetadata.md +1 -1
  181. package/api/@xmachines/play-router/index/type-aliases/URLPatternLike.md +68 -0
  182. package/api/@xmachines/play-router/index/variables/DISPOSE.md +1 -1
  183. package/api/@xmachines/play-router/index/variables/NO_BASE_PATH.md +1 -1
  184. package/api/@xmachines/play-router/index/variables/ROOT_NODE_ID.md +1 -1
  185. package/api/@xmachines/play-router/xstate/functions/createRouteMap.md +5 -5
  186. package/api/@xmachines/play-router/xstate/functions/extractMachineRoutes.md +6 -5
  187. package/api/@xmachines/play-router/xstate/functions/getNavigableRoutes.md +1 -1
  188. package/api/@xmachines/play-router/xstate/functions/getRoutableRoutes.md +1 -1
  189. package/api/@xmachines/play-router/xstate/functions/getRouteMappings.md +1 -1
  190. package/api/@xmachines/play-router/xstate/functions/getTransitionReachableRoutes.md +1 -1
  191. package/api/@xmachines/play-router/xstate/functions/isRouteReachable.md +1 -1
  192. package/api/@xmachines/play-router/xstate/functions/machineToGraph.md +1 -1
  193. package/api/@xmachines/play-router/xstate/functions/routeExists.md +1 -1
  194. package/api/@xmachines/play-router/xstate/interfaces/MachineEdgeData.md +3 -3
  195. package/api/@xmachines/play-router/xstate/interfaces/MachineNodeData.md +5 -5
  196. package/api/@xmachines/play-router/xstate/type-aliases/MachineGraph.md +1 -1
  197. package/api/@xmachines/play-solid/README.md +9 -5
  198. package/api/@xmachines/play-solid/functions/useActor.md +1 -1
  199. package/api/@xmachines/play-solid/functions/usePlayView.md +1 -1
  200. package/api/@xmachines/play-solid/interfaces/ActorProviderProps.md +8 -8
  201. package/api/@xmachines/play-solid/interfaces/PlayUIProviderProps.md +8 -8
  202. package/api/@xmachines/play-solid/interfaces/ViewContextValue.md +5 -5
  203. package/api/@xmachines/play-solid/type-aliases/AnyPlayActor.md +1 -1
  204. package/api/@xmachines/play-solid/variables/ActorContext.md +1 -1
  205. package/api/@xmachines/play-solid/variables/ActorProvider.md +2 -2
  206. package/api/@xmachines/play-solid/variables/PlayRenderer.md +1 -1
  207. package/api/@xmachines/play-solid/variables/PlayUIProvider.md +1 -1
  208. package/api/@xmachines/play-solid-router/README.md +14 -14
  209. package/api/@xmachines/play-solid-router/classes/RouteMap.md +11 -11
  210. package/api/@xmachines/play-solid-router/classes/SolidRouterBridge.md +18 -18
  211. package/api/@xmachines/play-solid-router/functions/createPlayRouterProvider.md +1 -1
  212. package/api/@xmachines/play-solid-router/interfaces/PlayActor.md +6 -6
  213. package/api/@xmachines/play-solid-router/interfaces/PlayRouteEvent.md +7 -7
  214. package/api/@xmachines/play-solid-router/interfaces/PlayRouterProviderProps.md +11 -9
  215. package/api/@xmachines/play-solid-router/interfaces/RoutableActor.md +6 -6
  216. package/api/@xmachines/play-solid-router/interfaces/RouteMapOptions.md +10 -4
  217. package/api/@xmachines/play-solid-router/interfaces/RouteMapping.md +3 -3
  218. package/api/@xmachines/play-solid-router/interfaces/RouterBridge.md +15 -17
  219. package/api/@xmachines/play-solid-router/type-aliases/PlayRouterBridgeConstructor.md +14 -7
  220. package/api/@xmachines/play-solid-router/type-aliases/PlayRouterProviderBaseProps.md +1 -1
  221. package/api/@xmachines/play-solid-router/type-aliases/SolidRouterHooks.md +4 -4
  222. package/api/@xmachines/play-solid-router/variables/PlayRouterProvider.md +1 -1
  223. package/api/@xmachines/play-svelte/README.md +11 -7
  224. package/api/@xmachines/play-svelte/functions/defineRegistry.md +1 -1
  225. package/api/@xmachines/play-svelte/functions/getActorContext.md +1 -1
  226. package/api/@xmachines/play-svelte/functions/getPlayViewContext.md +1 -1
  227. package/api/@xmachines/play-svelte/functions/setActorContext.md +1 -1
  228. package/api/@xmachines/play-svelte/interfaces/ActorProviderProps.md +8 -8
  229. package/api/@xmachines/play-svelte/interfaces/DefineRegistryOptions.md +4 -4
  230. package/api/@xmachines/play-svelte/interfaces/PlayUIProviderProps.md +11 -11
  231. package/api/@xmachines/play-svelte/interfaces/ViewContextValue.md +5 -5
  232. package/api/@xmachines/play-svelte/type-aliases/AnyPlayActor.md +1 -1
  233. package/api/@xmachines/play-svelte-spa-router/README.md +14 -14
  234. package/api/@xmachines/play-svelte-spa-router/classes/RouteMap.md +11 -11
  235. package/api/@xmachines/play-svelte-spa-router/classes/SvelteSpaRouterBridge.md +15 -15
  236. package/api/@xmachines/play-svelte-spa-router/functions/connectRouter.md +1 -1
  237. package/api/@xmachines/play-svelte-spa-router/interfaces/BasePathOptions.md +3 -7
  238. package/api/@xmachines/play-svelte-spa-router/interfaces/ConnectRouterOptions.md +11 -9
  239. package/api/@xmachines/play-svelte-spa-router/interfaces/PlayRouteEvent.md +7 -7
  240. package/api/@xmachines/play-svelte-spa-router/interfaces/RoutableActor.md +6 -6
  241. package/api/@xmachines/play-svelte-spa-router/interfaces/RouteMapOptions.md +10 -4
  242. package/api/@xmachines/play-svelte-spa-router/interfaces/RouteMapping.md +3 -3
  243. package/api/@xmachines/play-svelte-spa-router/interfaces/RouterBridge.md +15 -17
  244. package/api/@xmachines/play-svelte-spa-router/interfaces/RouterConnection.md +7 -7
  245. package/api/@xmachines/play-svelte-spa-router/interfaces/WindowLike.md +3 -3
  246. package/api/@xmachines/play-sveltekit-router/README.md +17 -17
  247. package/api/@xmachines/play-sveltekit-router/classes/RouteMap.md +11 -11
  248. package/api/@xmachines/play-sveltekit-router/classes/SvelteKitRouterBridge.md +15 -15
  249. package/api/@xmachines/play-sveltekit-router/functions/connectRouter.md +1 -1
  250. package/api/@xmachines/play-sveltekit-router/interfaces/BasePathOptions.md +3 -7
  251. package/api/@xmachines/play-sveltekit-router/interfaces/ConnectRouterOptions.md +15 -23
  252. package/api/@xmachines/play-sveltekit-router/interfaces/LocationLike.md +3 -3
  253. package/api/@xmachines/play-sveltekit-router/interfaces/PlayRouteEvent.md +7 -7
  254. package/api/@xmachines/play-sveltekit-router/interfaces/RoutableActor.md +6 -6
  255. package/api/@xmachines/play-sveltekit-router/interfaces/RouteMapOptions.md +10 -4
  256. package/api/@xmachines/play-sveltekit-router/interfaces/RouteMapping.md +3 -3
  257. package/api/@xmachines/play-sveltekit-router/interfaces/RouterBridge.md +15 -17
  258. package/api/@xmachines/play-sveltekit-router/interfaces/RouterConnection.md +7 -7
  259. package/api/@xmachines/play-tanstack-react-router/README.md +7 -7
  260. package/api/@xmachines/play-tanstack-react-router/classes/RouteMap.md +11 -11
  261. package/api/@xmachines/play-tanstack-react-router/classes/TanStackReactRouterBridge.md +11 -11
  262. package/api/@xmachines/play-tanstack-react-router/functions/createPlayRouterProvider.md +1 -1
  263. package/api/@xmachines/play-tanstack-react-router/functions/createRouteMapFromTree.md +5 -5
  264. package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouteEvent.md +7 -7
  265. package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouterProviderProps.md +11 -9
  266. package/api/@xmachines/play-tanstack-react-router/interfaces/RoutableActor.md +6 -6
  267. package/api/@xmachines/play-tanstack-react-router/interfaces/RouteMapOptions.md +10 -4
  268. package/api/@xmachines/play-tanstack-react-router/interfaces/RouteMapping.md +3 -3
  269. package/api/@xmachines/play-tanstack-react-router/interfaces/RouterBridge.md +15 -17
  270. package/api/@xmachines/play-tanstack-react-router/type-aliases/PlayRouterBridgeConstructor.md +14 -7
  271. package/api/@xmachines/play-tanstack-react-router/type-aliases/PlayRouterProviderBaseProps.md +1 -1
  272. package/api/@xmachines/play-tanstack-react-router/type-aliases/TanStackRouterInstance.md +1 -1
  273. package/api/@xmachines/play-tanstack-react-router/type-aliases/TanStackRouterLike.md +5 -5
  274. package/api/@xmachines/play-tanstack-react-router/variables/PlayRouterProvider.md +1 -1
  275. package/api/@xmachines/play-tanstack-router/README.md +1 -1
  276. package/api/@xmachines/play-tanstack-router/classes/TanStackRouterBridgeBase.md +16 -16
  277. package/api/@xmachines/play-tanstack-router/type-aliases/TanStackRouteMapLike.md +3 -3
  278. package/api/@xmachines/play-tanstack-router/type-aliases/TanStackRouterLike.md +5 -5
  279. package/api/@xmachines/play-tanstack-solid-router/README.md +7 -7
  280. package/api/@xmachines/play-tanstack-solid-router/classes/RouteMap.md +11 -11
  281. package/api/@xmachines/play-tanstack-solid-router/classes/TanStackSolidRouterBridge.md +11 -11
  282. package/api/@xmachines/play-tanstack-solid-router/functions/createPlayRouterProvider.md +1 -1
  283. package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayRouteEvent.md +7 -7
  284. package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayRouterProviderProps.md +11 -9
  285. package/api/@xmachines/play-tanstack-solid-router/interfaces/RoutableActor.md +6 -6
  286. package/api/@xmachines/play-tanstack-solid-router/interfaces/RouteMapOptions.md +10 -4
  287. package/api/@xmachines/play-tanstack-solid-router/interfaces/RouteMapping.md +3 -3
  288. package/api/@xmachines/play-tanstack-solid-router/interfaces/RouterBridge.md +15 -17
  289. package/api/@xmachines/play-tanstack-solid-router/type-aliases/PlayRouterBridgeConstructor.md +14 -7
  290. package/api/@xmachines/play-tanstack-solid-router/type-aliases/PlayRouterProviderBaseProps.md +1 -1
  291. package/api/@xmachines/play-tanstack-solid-router/type-aliases/TanStackRouterInstance.md +1 -1
  292. package/api/@xmachines/play-tanstack-solid-router/type-aliases/TanStackRouterLike.md +5 -5
  293. package/api/@xmachines/play-tanstack-solid-router/variables/PlayRouterProvider.md +1 -1
  294. package/api/@xmachines/play-url/README.md +21 -15
  295. package/api/@xmachines/play-url/errors/classes/InvalidBasePathError.md +5 -5
  296. package/api/@xmachines/play-url/errors/classes/InvalidRoutePatternError.md +5 -5
  297. package/api/@xmachines/play-url/errors/classes/MissingBasePathParamError.md +6 -6
  298. package/api/@xmachines/play-url/index/README.md +15 -8
  299. package/api/@xmachines/play-url/index/functions/buildPath.md +46 -0
  300. package/api/@xmachines/play-url/index/functions/cleanFrameworkParams.md +1 -1
  301. package/api/@xmachines/play-url/index/functions/createPatternCache.md +47 -0
  302. package/api/@xmachines/play-url/index/functions/getCandidates.md +1 -1
  303. package/api/@xmachines/play-url/index/functions/getCompiledPattern.md +8 -7
  304. package/api/@xmachines/play-url/index/functions/getIndexKey.md +1 -1
  305. package/api/@xmachines/play-url/index/functions/holdsUnsubstitutedParam.md +2 -2
  306. package/api/@xmachines/play-url/index/functions/isDotSegment.md +40 -0
  307. package/api/@xmachines/play-url/index/functions/joinBasePath.md +2 -1
  308. package/api/@xmachines/play-url/index/functions/normalizeBasePath.md +1 -1
  309. package/api/@xmachines/play-url/index/functions/parsePattern.md +6 -5
  310. package/api/@xmachines/play-url/index/functions/pickOwnParams.md +1 -1
  311. package/api/@xmachines/play-url/index/functions/resolveBasePath.md +1 -1
  312. package/api/@xmachines/play-url/index/functions/resolveFrameworkParams.md +5 -5
  313. package/api/@xmachines/play-url/index/functions/sanitizePathname.md +27 -0
  314. package/api/@xmachines/play-url/index/functions/splitLocation.md +37 -0
  315. package/api/@xmachines/play-url/index/functions/stripBasePath.md +1 -1
  316. package/api/@xmachines/play-url/index/interfaces/BasePathOptions.md +3 -3
  317. package/api/@xmachines/play-url/index/interfaces/CompileOptions.md +21 -0
  318. package/api/@xmachines/play-url/index/interfaces/FrameworkParamsSource.md +13 -8
  319. package/api/@xmachines/play-url/index/interfaces/GroupPart.md +6 -6
  320. package/api/@xmachines/play-url/index/interfaces/LiteralPart.md +5 -5
  321. package/api/@xmachines/play-url/index/interfaces/ParamPart.md +9 -9
  322. package/api/@xmachines/play-url/index/interfaces/ParseOptions.md +24 -0
  323. package/api/@xmachines/play-url/index/interfaces/ParsedPattern.md +14 -14
  324. package/api/@xmachines/play-url/index/interfaces/PatternCache.md +65 -0
  325. package/api/@xmachines/play-url/index/interfaces/PatternParam.md +6 -6
  326. package/api/@xmachines/play-url/index/interfaces/ResolvedBasePath.md +3 -3
  327. package/api/@xmachines/play-url/index/interfaces/SplitLocation.md +16 -0
  328. package/api/@xmachines/play-url/index/type-aliases/PathBuildResult.md +74 -0
  329. package/api/@xmachines/play-url/index/type-aliases/PathParams.md +15 -0
  330. package/api/@xmachines/play-url/index/type-aliases/PatternModifier.md +1 -1
  331. package/api/@xmachines/play-url/index/type-aliases/PatternPart.md +1 -1
  332. package/api/@xmachines/play-url/index/type-aliases/URLPatternCtor.md +1 -1
  333. package/api/@xmachines/play-url/index/type-aliases/URLPatternLike.md +3 -3
  334. package/api/@xmachines/play-url/index/variables/NO_BASE_PATH.md +1 -1
  335. package/api/@xmachines/play-url/index/variables/URLPattern.md +1 -1
  336. package/api/@xmachines/play-view/README.md +19 -8
  337. package/api/@xmachines/play-view/errors/classes/ReadOnlyContextError.md +5 -5
  338. package/api/@xmachines/play-view/index/functions/attachRenderErrorHandler.md +1 -1
  339. package/api/@xmachines/play-view/index/functions/composePlayState.md +1 -1
  340. package/api/@xmachines/play-view/index/functions/createFailureLatch.md +1 -1
  341. package/api/@xmachines/play-view/index/functions/createReportGuard.md +1 -1
  342. package/api/@xmachines/play-view/index/functions/createViewStoreLifecycle.md +1 -1
  343. package/api/@xmachines/play-view/index/functions/guardContextWrites.md +4 -28
  344. package/api/@xmachines/play-view/index/functions/refreshContextSubtree.md +1 -1
  345. package/api/@xmachines/play-view/index/functions/reuseComposedState.md +1 -1
  346. package/api/@xmachines/play-view/index/functions/sameViewInputs.md +1 -1
  347. package/api/@xmachines/play-view/index/functions/toAtomState.md +1 -1
  348. package/api/@xmachines/play-view/index/functions/typedSpec.md +1 -1
  349. package/api/@xmachines/play-view/index/interfaces/BaseActorProviderProps.md +5 -5
  350. package/api/@xmachines/play-view/index/interfaces/BaseViewContextValue.md +5 -5
  351. package/api/@xmachines/play-view/index/interfaces/FailureLatch.md +3 -3
  352. package/api/@xmachines/play-view/index/interfaces/PlaySpec.md +2 -2
  353. package/api/@xmachines/play-view/index/interfaces/ReportGuard.md +5 -5
  354. package/api/@xmachines/play-view/index/interfaces/ReportGuardMessages.md +3 -3
  355. package/api/@xmachines/play-view/index/interfaces/ResolveViewStoreOptions.md +2 -2
  356. package/api/@xmachines/play-view/index/interfaces/ViewInputs.md +4 -4
  357. package/api/@xmachines/play-view/index/interfaces/ViewStoreLifecycle.md +3 -3
  358. package/api/@xmachines/play-view/index/interfaces/ViewStoreResolution.md +4 -4
  359. package/api/@xmachines/play-view/index/interfaces/Viewable.md +5 -5
  360. package/api/@xmachines/play-view/index/type-aliases/ViewActor.md +1 -1
  361. package/api/@xmachines/play-view/index/variables/CONTEXT_STATE_KEY.md +1 -1
  362. package/api/@xmachines/play-vue/README.md +13 -9
  363. package/api/@xmachines/play-vue/functions/defineRegistry.md +1 -1
  364. package/api/@xmachines/play-vue/functions/useActor.md +1 -1
  365. package/api/@xmachines/play-vue/functions/usePlayView.md +1 -1
  366. package/api/@xmachines/play-vue/interfaces/ActorProviderProps.md +6 -6
  367. package/api/@xmachines/play-vue/interfaces/PlayUIProviderProps.md +9 -9
  368. package/api/@xmachines/play-vue/interfaces/ViewContextValue.md +5 -5
  369. package/api/@xmachines/play-vue/type-aliases/AnyPlayActor.md +1 -1
  370. package/api/@xmachines/play-vue/type-aliases/ComponentEntry.md +1 -1
  371. package/api/@xmachines/play-vue/type-aliases/ComponentsMap.md +1 -1
  372. package/api/@xmachines/play-vue/type-aliases/DefineRegistryOptions.md +2 -2
  373. package/api/@xmachines/play-vue/variables/PlayRenderer.md +1 -1
  374. package/api/@xmachines/play-vue-router/README.md +12 -11
  375. package/api/@xmachines/play-vue-router/errors/classes/VueRouterNavigationError.md +4 -4
  376. package/api/@xmachines/play-vue-router/errors/classes/VueRouterSendError.md +4 -4
  377. package/api/@xmachines/play-vue-router/index/classes/RouteMap.md +11 -11
  378. package/api/@xmachines/play-vue-router/index/classes/VueRouterBridge.md +15 -15
  379. package/api/@xmachines/play-vue-router/index/interfaces/PlayRouteEvent.md +7 -7
  380. package/api/@xmachines/play-vue-router/index/interfaces/RoutableActor.md +6 -6
  381. package/api/@xmachines/play-vue-router/index/interfaces/RouteMapOptions.md +10 -4
  382. package/api/@xmachines/play-vue-router/index/interfaces/RouteMapping.md +3 -3
  383. package/api/@xmachines/play-vue-router/index/interfaces/RouterBridge.md +15 -17
  384. package/api/@xmachines/play-vue-router/index/variables/PlayRouterProvider.md +23 -1
  385. package/api/@xmachines/play-xstate/README.md +61 -30
  386. package/api/@xmachines/play-xstate/errors/README.md +1 -0
  387. package/api/@xmachines/play-xstate/errors/classes/ActorThrewNonErrorError.md +4 -4
  388. package/api/@xmachines/play-xstate/errors/classes/InvalidEventError.md +5 -5
  389. package/api/@xmachines/play-xstate/errors/classes/InvalidMachineError.md +4 -4
  390. package/api/@xmachines/play-xstate/errors/classes/InvalidRouteHandlerError.md +5 -5
  391. package/api/@xmachines/play-xstate/errors/classes/InvalidRouteMetadataError.md +5 -5
  392. package/api/@xmachines/play-xstate/errors/classes/InvalidRouteParamError.md +207 -0
  393. package/api/@xmachines/play-xstate/errors/classes/MissingRouteParamError.md +6 -6
  394. package/api/@xmachines/play-xstate/errors/classes/MissingStateIdError.md +6 -6
  395. package/api/@xmachines/play-xstate/index/README.md +2 -2
  396. package/api/@xmachines/play-xstate/index/classes/PlayerActor.md +41 -42
  397. package/api/@xmachines/play-xstate/index/functions/compose.md +4 -4
  398. package/api/@xmachines/play-xstate/index/functions/definePlayer.md +2 -2
  399. package/api/@xmachines/play-xstate/index/interfaces/PlayerConfig.md +4 -4
  400. package/api/@xmachines/play-xstate/index/interfaces/PlayerFactoryResumeOptions.md +2 -2
  401. package/api/@xmachines/play-xstate/index/interfaces/PlayerOptions.md +9 -9
  402. package/api/@xmachines/play-xstate/index/type-aliases/Capability.md +1 -1
  403. package/api/@xmachines/play-xstate/index/type-aliases/PlayerConstructor.md +1 -1
  404. package/api/@xmachines/play-xstate/index/type-aliases/PlayerFactory.md +1 -1
  405. package/api/@xmachines/play-xstate/index/variables/DISPOSE.md +1 -1
  406. package/api/@xmachines/play-xstate/with-routing/functions/buildRouteUrl.md +13 -6
  407. package/api/@xmachines/play-xstate/with-routing/functions/deriveRoute.md +1 -1
  408. package/api/@xmachines/play-xstate/with-routing/functions/formatPlayRouteTransitions.md +1 -1
  409. package/api/@xmachines/play-xstate/with-routing/functions/isAbsoluteRoute.md +1 -1
  410. package/api/@xmachines/play-xstate/with-routing/functions/withRouting.md +1 -1
  411. package/api/@xmachines/play-xstate/with-routing/interfaces/RouteContext.md +5 -5
  412. package/api/@xmachines/play-xstate/with-routing/interfaces/RouteObject.md +5 -5
  413. package/api/@xmachines/play-xstate/with-routing/type-aliases/RouteData.md +1 -1
  414. package/api/@xmachines/play-xstate/with-routing/type-aliases/RouteDataResolver.md +1 -1
  415. package/api/@xmachines/play-xstate/with-routing/type-aliases/RouteMachineConfig.md +4 -4
  416. package/api/@xmachines/play-xstate/with-routing/type-aliases/RouteMetadata.md +1 -1
  417. package/api/@xmachines/play-xstate/with-routing/type-aliases/RouteStateNode.md +5 -5
  418. package/api/@xmachines/play-xstate/with-view/functions/withView.md +6 -5
  419. package/api/@xmachines/shared/vite-aliases/functions/xmAliases.md +1 -1
  420. package/api/@xmachines/shared/vite-aliases/functions/xmCacheDir.md +1 -1
  421. package/api/@xmachines/shared/vite-aliases/functions/xmOptimizeDeps.md +1 -1
  422. package/api/@xmachines/shared/vite-aliases/functions/xmResolve.md +1 -1
  423. package/api/@xmachines/shared/vite-aliases/functions/xmSvelteRunes.md +2 -2
  424. package/api/@xmachines/shared/vitest/functions/defineXmBrowserConfig.md +1 -1
  425. package/api/@xmachines/shared/vitest/functions/defineXmVitestConfig.md +1 -1
  426. package/api/@xmachines/shared/vitest/interfaces/XmBrowserConfigOptions.md +4 -4
  427. package/api/README.md +2 -1
  428. package/api/llms.txt +4 -3
  429. package/contributing/architecture.md +105 -124
  430. package/contributing/configuration.md +15 -15
  431. package/contributing/deployment.md +82 -6
  432. package/contributing/development.md +58 -30
  433. package/contributing/migrating-to-play-atom.md +209 -0
  434. package/contributing/testing.md +61 -64
  435. package/examples/@xmachines/play-dom-demo/README.md +40 -63
  436. package/examples/@xmachines/play-dom-demo/functions/createAuthActionHandlers.md +35 -0
  437. package/examples/@xmachines/play-dom-demo/functions/createConfirmDialog.md +27 -0
  438. package/examples/@xmachines/play-dom-demo/functions/createNavBar.md +2 -2
  439. package/examples/@xmachines/play-dom-demo/functions/initShell.md +7 -6
  440. package/examples/@xmachines/play-dom-demo/type-aliases/AuthCatalog.md +1 -1
  441. package/examples/@xmachines/play-dom-demo/variables/About.md +1 -1
  442. package/examples/@xmachines/play-dom-demo/variables/Button.md +12 -0
  443. package/examples/@xmachines/play-dom-demo/variables/Contact.md +1 -1
  444. package/examples/@xmachines/play-dom-demo/variables/Dashboard.md +1 -1
  445. package/examples/@xmachines/play-dom-demo/variables/Field.md +19 -0
  446. package/examples/@xmachines/play-dom-demo/variables/Home.md +1 -1
  447. package/examples/@xmachines/play-dom-demo/variables/Login.md +1 -1
  448. package/examples/@xmachines/play-dom-demo/variables/NavBarView.md +1 -1
  449. package/examples/@xmachines/play-dom-demo/variables/Navigation.md +1 -1
  450. package/examples/@xmachines/play-dom-demo/variables/Overview.md +1 -1
  451. package/examples/@xmachines/play-dom-demo/variables/Panel.md +14 -0
  452. package/examples/@xmachines/play-dom-demo/variables/Profile.md +1 -1
  453. package/examples/@xmachines/play-dom-demo/variables/Settings.md +1 -1
  454. package/examples/@xmachines/play-dom-demo/variables/Stats.md +1 -1
  455. package/examples/@xmachines/play-dom-demo/variables/authCatalog.md +190 -165
  456. package/examples/@xmachines/play-dom-demo/variables/demoComponents.md +30 -0
  457. package/examples/@xmachines/play-dom-router-demo/README.md +20 -27
  458. package/examples/@xmachines/play-react-demo/README.md +33 -57
  459. package/examples/@xmachines/play-react-demo/functions/createAuthActionHandlers.md +35 -0
  460. package/examples/@xmachines/play-react-demo/type-aliases/AuthCatalog.md +1 -1
  461. package/examples/@xmachines/play-react-demo/variables/About.md +1 -1
  462. package/examples/@xmachines/play-react-demo/variables/Button.md +12 -0
  463. package/examples/@xmachines/play-react-demo/variables/Contact.md +1 -1
  464. package/examples/@xmachines/play-react-demo/variables/Dashboard.md +1 -1
  465. package/examples/@xmachines/play-react-demo/variables/DebugPanel.md +4 -3
  466. package/examples/@xmachines/play-react-demo/variables/Field.md +18 -0
  467. package/examples/@xmachines/play-react-demo/variables/Home.md +1 -1
  468. package/examples/@xmachines/play-react-demo/variables/Login.md +1 -1
  469. package/examples/@xmachines/play-react-demo/variables/NavBar.md +1 -1
  470. package/examples/@xmachines/play-react-demo/variables/NavBarView.md +1 -1
  471. package/examples/@xmachines/play-react-demo/variables/Navigation.md +1 -1
  472. package/examples/@xmachines/play-react-demo/variables/Overview.md +1 -1
  473. package/examples/@xmachines/play-react-demo/variables/Panel.md +15 -0
  474. package/examples/@xmachines/play-react-demo/variables/Profile.md +1 -1
  475. package/examples/@xmachines/play-react-demo/variables/Settings.md +1 -1
  476. package/examples/@xmachines/play-react-demo/variables/Shell.md +2 -1
  477. package/examples/@xmachines/play-react-demo/variables/Stats.md +1 -1
  478. package/examples/@xmachines/play-react-demo/variables/authCatalog.md +190 -165
  479. package/examples/@xmachines/play-react-demo/variables/demoComponents.md +30 -0
  480. package/examples/@xmachines/play-react-router-demo/README.md +32 -32
  481. package/examples/@xmachines/play-solid-demo/README.md +33 -57
  482. package/examples/@xmachines/play-solid-demo/functions/createAuthActionHandlers.md +35 -0
  483. package/examples/@xmachines/play-solid-demo/type-aliases/AuthCatalog.md +1 -1
  484. package/examples/@xmachines/play-solid-demo/variables/About.md +1 -1
  485. package/examples/@xmachines/play-solid-demo/variables/Button.md +11 -0
  486. package/examples/@xmachines/play-solid-demo/variables/Contact.md +1 -1
  487. package/examples/@xmachines/play-solid-demo/variables/Dashboard.md +1 -1
  488. package/examples/@xmachines/play-solid-demo/variables/DebugPanel.md +5 -3
  489. package/examples/@xmachines/play-solid-demo/variables/Field.md +11 -0
  490. package/examples/@xmachines/play-solid-demo/variables/Home.md +1 -1
  491. package/examples/@xmachines/play-solid-demo/variables/Login.md +1 -1
  492. package/examples/@xmachines/play-solid-demo/variables/NavBar.md +1 -1
  493. package/examples/@xmachines/play-solid-demo/variables/NavBarView.md +1 -1
  494. package/examples/@xmachines/play-solid-demo/variables/Navigation.md +1 -1
  495. package/examples/@xmachines/play-solid-demo/variables/Overview.md +1 -1
  496. package/examples/@xmachines/play-solid-demo/variables/Panel.md +11 -0
  497. package/examples/@xmachines/play-solid-demo/variables/Profile.md +1 -1
  498. package/examples/@xmachines/play-solid-demo/variables/Settings.md +1 -1
  499. package/examples/@xmachines/play-solid-demo/variables/Shell.md +2 -1
  500. package/examples/@xmachines/play-solid-demo/variables/Stats.md +1 -1
  501. package/examples/@xmachines/play-solid-demo/variables/authCatalog.md +114 -2
  502. package/examples/@xmachines/play-solid-demo/variables/demoComponents.md +30 -0
  503. package/examples/@xmachines/play-solid-router-demo/README.md +20 -23
  504. package/examples/@xmachines/play-svelte-demo/README.md +38 -44
  505. package/examples/@xmachines/play-svelte-demo/functions/createAuthActionHandlers.md +35 -0
  506. package/examples/@xmachines/play-svelte-demo/type-aliases/AuthCatalog.md +1 -1
  507. package/examples/@xmachines/play-svelte-demo/variables/authCatalog.md +114 -2
  508. package/examples/@xmachines/play-svelte-demo/variables/demoComponents.md +30 -0
  509. package/examples/@xmachines/play-svelte-spa-router-demo/README.md +20 -26
  510. package/examples/@xmachines/play-sveltekit-router-demo/README.md +20 -26
  511. package/examples/@xmachines/play-tanstack-react-router-demo/README.md +29 -31
  512. package/examples/@xmachines/play-tanstack-solid-router-demo/README.md +25 -27
  513. package/examples/@xmachines/play-vue-demo/README.md +36 -60
  514. package/examples/@xmachines/play-vue-demo/functions/createAuthActionHandlers.md +35 -0
  515. package/examples/@xmachines/play-vue-demo/type-aliases/AuthCatalog.md +1 -1
  516. package/examples/@xmachines/play-vue-demo/variables/App.md +1 -1
  517. package/examples/@xmachines/play-vue-demo/variables/authCatalog.md +114 -2
  518. package/examples/@xmachines/play-vue-demo/variables/demoComponents.md +11 -0
  519. package/examples/@xmachines/play-vue-router-demo/README.md +12 -23
  520. package/examples/README.md +3 -3
  521. package/examples/basic-state-machine.md +4 -4
  522. package/examples/form-validation.md +1 -1
  523. package/examples/multi-router-integration.md +23 -23
  524. package/examples/routing-patterns.md +5 -5
  525. package/examples/traffic-light.md +6 -6
  526. package/guides/README.md +1 -1
  527. package/guides/actor-model.md +26 -17
  528. package/guides/atoms.md +264 -0
  529. package/guides/getting-started.md +52 -17
  530. package/guides/inspector.md +3 -3
  531. package/guides/routing.md +67 -47
  532. package/guides/state-machines.md +4 -4
  533. package/package.json +3 -3
  534. package/rfc/play.md +83 -52
  535. package/api/@xmachines/play-react/functions/useSignalEffect.md +0 -77
  536. package/api/@xmachines/play-router/index/functions/getPatternParamNames.md +0 -29
  537. package/api/@xmachines/play-router/index/functions/getRequiredPatternParamNames.md +0 -39
  538. package/api/@xmachines/play-signals/README.md +0 -209
  539. package/api/@xmachines/play-signals/functions/watchSignal.md +0 -65
  540. package/api/@xmachines/play-signals/interfaces/ComputedOptions.md +0 -36
  541. package/api/@xmachines/play-signals/interfaces/SignalComputed.md +0 -49
  542. package/api/@xmachines/play-signals/interfaces/SignalOptions.md +0 -37
  543. package/api/@xmachines/play-signals/interfaces/SignalState.md +0 -68
  544. package/api/@xmachines/play-signals/interfaces/SignalWatcher.md +0 -97
  545. package/api/@xmachines/play-signals/namespaces/Signal/README.md +0 -22
  546. package/api/@xmachines/play-signals/namespaces/Signal/classes/Computed.md +0 -52
  547. package/api/@xmachines/play-signals/namespaces/Signal/classes/State.md +0 -72
  548. package/api/@xmachines/play-signals/namespaces/Signal/interfaces/Options.md +0 -19
  549. package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/README.md +0 -21
  550. package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/classes/Watcher.md +0 -85
  551. package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/currentComputed.md +0 -13
  552. package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/hasSinks.md +0 -19
  553. package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/hasSources.md +0 -19
  554. package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/introspectSinks.md +0 -19
  555. package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/introspectSources.md +0 -19
  556. package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/untrack.md +0 -25
  557. package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/variables/unwatched.md +0 -9
  558. package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/variables/watched.md +0 -9
  559. package/api/@xmachines/play-signals/namespaces/Signal/variables/isComputed.md +0 -19
  560. package/api/@xmachines/play-signals/namespaces/Signal/variables/isState.md +0 -19
  561. package/api/@xmachines/play-signals/namespaces/Signal/variables/isWatcher.md +0 -19
  562. package/api/@xmachines/play-signals/type-aliases/WatcherNotify.md +0 -33
  563. package/api/@xmachines/play-url/index/functions/getNormalizedParamNameMap.md +0 -32
  564. package/api/@xmachines/play-url/index/functions/getPatternParamNames.md +0 -29
  565. package/api/@xmachines/play-url/index/functions/getRequiredPatternParamNames.md +0 -39
  566. package/api/@xmachines/play-url/index/functions/isParameterizedPattern.md +0 -36
  567. package/api/@xmachines/play-url/index/functions/normalizeParamNames.md +0 -36
  568. package/guides/signals.md +0 -209
@@ -0,0 +1,30 @@
1
+ [Examples](../../../README.md) / [@xmachines/play-dom-demo](../README.md) / demoComponents
2
+
3
+ # Variable: demoComponents
4
+
5
+ ```ts
6
+ const demoComponents: object;
7
+ ```
8
+
9
+ Defined in: [packages/play-dom/examples/demo/src/components/demo-components.ts:20](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.1/packages/play-dom/examples/demo/src/components/demo-components.ts#L20)
10
+
11
+ demoComponents — the full catalog component map, shared with the router demos.
12
+
13
+ ## Type Declaration
14
+
15
+ | Name | Type | Default value | Description | Defined in |
16
+ | --------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
17
+ | <a id="property-about"></a> `About` | [`ComponentFn`](../../play-dom/type-aliases/ComponentFn.md)\<`Catalog`\<\{ `catalog`: `SchemaType`\<`"object"`, \{ `actions`: `SchemaType`\<`"map"`, \{ `description`: `SchemaType`\<`"string"`, `unknown`\>; `params`: `SchemaType`\<`"zod"`, `unknown`\>; \}\>; `components`: `SchemaType`\<`"map"`, \{ `description`: `SchemaType`\<`"string"`, `unknown`\>; `example`: `SchemaType`\<`"any"`, `unknown`\>; `props`: `SchemaType`\<`"zod"`, `unknown`\>; `slots`: `SchemaType`\<`"array"`, `SchemaType`\<`"string"`, `unknown`\>\>; \}\>; \}\>; `spec`: `SchemaType`\<`"object"`, \{ `elements`: `SchemaType`\<`"record"`, `SchemaType`\<`"object"`, \{ `children`: `SchemaType`\<`"array"`, `SchemaType`\<..., ...\>\>; `props`: `SchemaType`\<`"propsOf"`, `string`\>; `repeat`: \{ `inner?`: `unknown`; `kind`: `"any"`; `optional`: `true`; \}; `slots`: \{ `inner?`: ... \| ...; `kind`: `"record"`; `optional`: `true`; \}; `type`: `SchemaType`\<`"ref"`, `string`\>; `visible`: \{ `inner?`: `unknown`; `kind`: `"any"`; `optional`: `true`; \}; \}\>\>; `root`: `SchemaType`\<`"string"`, `unknown`\>; \}\>; \}, \{ `actions`: \{ `addTask`: \{ `description`: `"Add a task (sends task.add to the machine)"`; `params`: `ZodObject`\<\{ `title`: `ZodString`; \}, `$strip`\>; \}; `completeTask`: \{ `description`: `"Mark a task done (sends task.complete to the machine)"`; `params`: `ZodObject`\<\{ `id`: `ZodString`; \}, `$strip`\>; \}; `login`: \{ `description`: `"Login with username"`; `params`: `ZodObject`\<\{ `username`: `ZodString`; \}, `$strip`\>; \}; `logout`: \{ `description`: `"Logout and return to home"`; \}; `removeTask`: \{ `description`: `"Remove a task (sends task.remove to the machine)"`; `params`: `ZodObject`\<\{ `id`: `ZodString`; \}, `$strip`\>; \}; `resetForm`: \{ `description`: `"Reset a demo form to its defaults (confirm-gated in the spec)"`; `params`: `ZodObject`\<\{ `form`: `ZodString`; \}, `$strip`\>; \}; `route`: \{ `description`: `"Navigate to a route by path (e.g. '#home', '#login', '#dashboard')"`; `params`: `ZodObject`\<\{ `params`: `ZodOptional`\<`ZodRecord`\<`ZodString`, `ZodString`\>\>; `to`: `ZodString`; \}, `$strip`\>; \}; `submitForm`: \{ `description`: `"Submit a demo form; rejects when the form did not pass validation"`; `params`: `ZodObject`\<\{ `form`: `ZodString`; `valid`: `ZodOptional`\<`ZodNullable`\<`ZodBoolean`\>\>; \}, `$strip`\>; \}; \}; `components`: \{ `About`: \{ `props`: `ZodObject`\<\{ `title`: `ZodString`; \}, `$strip`\>; \}; `Button`: \{ `props`: `ZodObject`\<\{ `disabled`: `ZodOptional`\<`ZodBoolean`\>; `label`: `ZodString`; `testId`: `ZodOptional`\<`ZodString`\>; `variant`: `ZodOptional`\<`ZodEnum`\<\{ `danger`: ...; `primary`: ...; `secondary`: ...; \}\>\>; \}, `$strip`\>; \}; `Contact`: \{ `props`: `ZodObject`\<\{ `title`: `ZodString`; \}, `$strip`\>; \}; `Dashboard`: \{ `props`: `ZodObject`\<\{ `username`: `ZodString`; `welcome`: `ZodBoolean`; \}, `$strip`\>; \}; `Field`: \{ `props`: `ZodObject`\<\{ `checks`: `ZodOptional`\<`ZodArray`\<`ZodCustom`\<..., ...\>\>\>; `formErrors`: `ZodOptional`\<`ZodRecord`\<`ZodString`, `ZodArray`\<...\>\>\>; `inputType`: `ZodOptional`\<`ZodEnum`\<\{ `email`: ...; `text`: ...; `textarea`: ...; \}\>\>; `label`: `ZodString`; `placeholder`: `ZodOptional`\<`ZodString`\>; `testId`: `ZodOptional`\<`ZodString`\>; `value`: `ZodOptional`\<`ZodString`\>; \}, `$strip`\>; \}; `Home`: \{ `props`: `ZodObject`\<\{ `title`: `ZodString`; \}, `$strip`\>; \}; `Login`: \{ `props`: `ZodObject`\<\{ `title`: `ZodString`; `username`: `ZodOptional`\<`ZodString`\>; \}, `$strip`\>; \}; `NavBar`: \{ `props`: `ZodObject`\<\{ `isAuthenticated`: `ZodBoolean`; `username`: `ZodNullable`\<`ZodString`\>; \}, `$strip`\>; \}; `Navigation`: \{ `props`: `ZodObject`\<\{ `currentPath`: `ZodString`; `isAuthenticated`: `ZodBoolean`; \}, `$strip`\>; \}; `Overview`: \{ `props`: `ZodObject`\<\{ `title`: `ZodString`; \}, `$strip`\>; \}; `Panel`: \{ `props`: `ZodObject`\<\{ `note`: `ZodOptional`\<`ZodUnion`\<readonly \[..., ..., ..., ...\]\>\>; `testId`: `ZodOptional`\<`ZodString`\>; `title`: `ZodOptional`\<`ZodUnion`\<readonly \[..., ...\]\>\>; `tone`: `ZodOptional`\<`ZodEnum`\<\{ `danger`: ...; `default`: ...; `muted`: ...; `success`: ...; \}\>\>; \}, `$strip`\>; \}; `Profile`: \{ `props`: `ZodObject`\<\{ `username`: `ZodString`; \}, `$strip`\>; \}; `Settings`: \{ `props`: `ZodObject`\<\{ `section`: `ZodOptional`\<`ZodString`\>; `username`: `ZodString`; \}, `$strip`\>; \}; `Stats`: \{ `props`: `ZodObject`\<\{ `title`: `ZodString`; \}, `$strip`\>; \}; \}; \}\>, `"About"`\> | - | About — Public information page. Catalog-typed DOM component (ComponentFn<AuthCatalog, 'About'>). Renders static content from props. | [packages/play-dom/examples/demo/src/components/demo-components.ts:22](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.1/packages/play-dom/examples/demo/src/components/demo-components.ts#L22) |
18
+ | <a id="property-button"></a> `Button` | [`ComponentFn`](../../play-dom/type-aliases/ComponentFn.md)\<`Catalog`\<\{ `catalog`: `SchemaType`\<`"object"`, \{ `actions`: `SchemaType`\<`"map"`, \{ `description`: `SchemaType`\<`"string"`, `unknown`\>; `params`: `SchemaType`\<`"zod"`, `unknown`\>; \}\>; `components`: `SchemaType`\<`"map"`, \{ `description`: `SchemaType`\<`"string"`, `unknown`\>; `example`: `SchemaType`\<`"any"`, `unknown`\>; `props`: `SchemaType`\<`"zod"`, `unknown`\>; `slots`: `SchemaType`\<`"array"`, `SchemaType`\<`"string"`, `unknown`\>\>; \}\>; \}\>; `spec`: `SchemaType`\<`"object"`, \{ `elements`: `SchemaType`\<`"record"`, `SchemaType`\<`"object"`, \{ `children`: `SchemaType`\<`"array"`, `SchemaType`\<..., ...\>\>; `props`: `SchemaType`\<`"propsOf"`, `string`\>; `repeat`: \{ `inner?`: `unknown`; `kind`: `"any"`; `optional`: `true`; \}; `slots`: \{ `inner?`: ... \| ...; `kind`: `"record"`; `optional`: `true`; \}; `type`: `SchemaType`\<`"ref"`, `string`\>; `visible`: \{ `inner?`: `unknown`; `kind`: `"any"`; `optional`: `true`; \}; \}\>\>; `root`: `SchemaType`\<`"string"`, `unknown`\>; \}\>; \}, \{ `actions`: \{ `addTask`: \{ `description`: `"Add a task (sends task.add to the machine)"`; `params`: `ZodObject`\<\{ `title`: `ZodString`; \}, `$strip`\>; \}; `completeTask`: \{ `description`: `"Mark a task done (sends task.complete to the machine)"`; `params`: `ZodObject`\<\{ `id`: `ZodString`; \}, `$strip`\>; \}; `login`: \{ `description`: `"Login with username"`; `params`: `ZodObject`\<\{ `username`: `ZodString`; \}, `$strip`\>; \}; `logout`: \{ `description`: `"Logout and return to home"`; \}; `removeTask`: \{ `description`: `"Remove a task (sends task.remove to the machine)"`; `params`: `ZodObject`\<\{ `id`: `ZodString`; \}, `$strip`\>; \}; `resetForm`: \{ `description`: `"Reset a demo form to its defaults (confirm-gated in the spec)"`; `params`: `ZodObject`\<\{ `form`: `ZodString`; \}, `$strip`\>; \}; `route`: \{ `description`: `"Navigate to a route by path (e.g. '#home', '#login', '#dashboard')"`; `params`: `ZodObject`\<\{ `params`: `ZodOptional`\<`ZodRecord`\<`ZodString`, `ZodString`\>\>; `to`: `ZodString`; \}, `$strip`\>; \}; `submitForm`: \{ `description`: `"Submit a demo form; rejects when the form did not pass validation"`; `params`: `ZodObject`\<\{ `form`: `ZodString`; `valid`: `ZodOptional`\<`ZodNullable`\<`ZodBoolean`\>\>; \}, `$strip`\>; \}; \}; `components`: \{ `About`: \{ `props`: `ZodObject`\<\{ `title`: `ZodString`; \}, `$strip`\>; \}; `Button`: \{ `props`: `ZodObject`\<\{ `disabled`: `ZodOptional`\<`ZodBoolean`\>; `label`: `ZodString`; `testId`: `ZodOptional`\<`ZodString`\>; `variant`: `ZodOptional`\<`ZodEnum`\<\{ `danger`: ...; `primary`: ...; `secondary`: ...; \}\>\>; \}, `$strip`\>; \}; `Contact`: \{ `props`: `ZodObject`\<\{ `title`: `ZodString`; \}, `$strip`\>; \}; `Dashboard`: \{ `props`: `ZodObject`\<\{ `username`: `ZodString`; `welcome`: `ZodBoolean`; \}, `$strip`\>; \}; `Field`: \{ `props`: `ZodObject`\<\{ `checks`: `ZodOptional`\<`ZodArray`\<`ZodCustom`\<..., ...\>\>\>; `formErrors`: `ZodOptional`\<`ZodRecord`\<`ZodString`, `ZodArray`\<...\>\>\>; `inputType`: `ZodOptional`\<`ZodEnum`\<\{ `email`: ...; `text`: ...; `textarea`: ...; \}\>\>; `label`: `ZodString`; `placeholder`: `ZodOptional`\<`ZodString`\>; `testId`: `ZodOptional`\<`ZodString`\>; `value`: `ZodOptional`\<`ZodString`\>; \}, `$strip`\>; \}; `Home`: \{ `props`: `ZodObject`\<\{ `title`: `ZodString`; \}, `$strip`\>; \}; `Login`: \{ `props`: `ZodObject`\<\{ `title`: `ZodString`; `username`: `ZodOptional`\<`ZodString`\>; \}, `$strip`\>; \}; `NavBar`: \{ `props`: `ZodObject`\<\{ `isAuthenticated`: `ZodBoolean`; `username`: `ZodNullable`\<`ZodString`\>; \}, `$strip`\>; \}; `Navigation`: \{ `props`: `ZodObject`\<\{ `currentPath`: `ZodString`; `isAuthenticated`: `ZodBoolean`; \}, `$strip`\>; \}; `Overview`: \{ `props`: `ZodObject`\<\{ `title`: `ZodString`; \}, `$strip`\>; \}; `Panel`: \{ `props`: `ZodObject`\<\{ `note`: `ZodOptional`\<`ZodUnion`\<readonly \[..., ..., ..., ...\]\>\>; `testId`: `ZodOptional`\<`ZodString`\>; `title`: `ZodOptional`\<`ZodUnion`\<readonly \[..., ...\]\>\>; `tone`: `ZodOptional`\<`ZodEnum`\<\{ `danger`: ...; `default`: ...; `muted`: ...; `success`: ...; \}\>\>; \}, `$strip`\>; \}; `Profile`: \{ `props`: `ZodObject`\<\{ `username`: `ZodString`; \}, `$strip`\>; \}; `Settings`: \{ `props`: `ZodObject`\<\{ `section`: `ZodOptional`\<`ZodString`\>; `username`: `ZodString`; \}, `$strip`\>; \}; `Stats`: \{ `props`: `ZodObject`\<\{ `title`: `ZodString`; \}, `$strip`\>; \}; \}; \}\>, `"Button"`\> | - | Button — emits `press`; the spec's `on.press` binding decides what happens (a host action sending a machine event, or a built-in like setState). | [packages/play-dom/examples/demo/src/components/demo-components.ts:34](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.1/packages/play-dom/examples/demo/src/components/demo-components.ts#L34) |
19
+ | <a id="property-contact"></a> `Contact` | [`ComponentFn`](../../play-dom/type-aliases/ComponentFn.md)\<`Catalog`\<\{ `catalog`: `SchemaType`\<`"object"`, \{ `actions`: `SchemaType`\<`"map"`, \{ `description`: `SchemaType`\<`"string"`, `unknown`\>; `params`: `SchemaType`\<`"zod"`, `unknown`\>; \}\>; `components`: `SchemaType`\<`"map"`, \{ `description`: `SchemaType`\<`"string"`, `unknown`\>; `example`: `SchemaType`\<`"any"`, `unknown`\>; `props`: `SchemaType`\<`"zod"`, `unknown`\>; `slots`: `SchemaType`\<`"array"`, `SchemaType`\<`"string"`, `unknown`\>\>; \}\>; \}\>; `spec`: `SchemaType`\<`"object"`, \{ `elements`: `SchemaType`\<`"record"`, `SchemaType`\<`"object"`, \{ `children`: `SchemaType`\<`"array"`, `SchemaType`\<..., ...\>\>; `props`: `SchemaType`\<`"propsOf"`, `string`\>; `repeat`: \{ `inner?`: `unknown`; `kind`: `"any"`; `optional`: `true`; \}; `slots`: \{ `inner?`: ... \| ...; `kind`: `"record"`; `optional`: `true`; \}; `type`: `SchemaType`\<`"ref"`, `string`\>; `visible`: \{ `inner?`: `unknown`; `kind`: `"any"`; `optional`: `true`; \}; \}\>\>; `root`: `SchemaType`\<`"string"`, `unknown`\>; \}\>; \}, \{ `actions`: \{ `addTask`: \{ `description`: `"Add a task (sends task.add to the machine)"`; `params`: `ZodObject`\<\{ `title`: `ZodString`; \}, `$strip`\>; \}; `completeTask`: \{ `description`: `"Mark a task done (sends task.complete to the machine)"`; `params`: `ZodObject`\<\{ `id`: `ZodString`; \}, `$strip`\>; \}; `login`: \{ `description`: `"Login with username"`; `params`: `ZodObject`\<\{ `username`: `ZodString`; \}, `$strip`\>; \}; `logout`: \{ `description`: `"Logout and return to home"`; \}; `removeTask`: \{ `description`: `"Remove a task (sends task.remove to the machine)"`; `params`: `ZodObject`\<\{ `id`: `ZodString`; \}, `$strip`\>; \}; `resetForm`: \{ `description`: `"Reset a demo form to its defaults (confirm-gated in the spec)"`; `params`: `ZodObject`\<\{ `form`: `ZodString`; \}, `$strip`\>; \}; `route`: \{ `description`: `"Navigate to a route by path (e.g. '#home', '#login', '#dashboard')"`; `params`: `ZodObject`\<\{ `params`: `ZodOptional`\<`ZodRecord`\<`ZodString`, `ZodString`\>\>; `to`: `ZodString`; \}, `$strip`\>; \}; `submitForm`: \{ `description`: `"Submit a demo form; rejects when the form did not pass validation"`; `params`: `ZodObject`\<\{ `form`: `ZodString`; `valid`: `ZodOptional`\<`ZodNullable`\<`ZodBoolean`\>\>; \}, `$strip`\>; \}; \}; `components`: \{ `About`: \{ `props`: `ZodObject`\<\{ `title`: `ZodString`; \}, `$strip`\>; \}; `Button`: \{ `props`: `ZodObject`\<\{ `disabled`: `ZodOptional`\<`ZodBoolean`\>; `label`: `ZodString`; `testId`: `ZodOptional`\<`ZodString`\>; `variant`: `ZodOptional`\<`ZodEnum`\<\{ `danger`: ...; `primary`: ...; `secondary`: ...; \}\>\>; \}, `$strip`\>; \}; `Contact`: \{ `props`: `ZodObject`\<\{ `title`: `ZodString`; \}, `$strip`\>; \}; `Dashboard`: \{ `props`: `ZodObject`\<\{ `username`: `ZodString`; `welcome`: `ZodBoolean`; \}, `$strip`\>; \}; `Field`: \{ `props`: `ZodObject`\<\{ `checks`: `ZodOptional`\<`ZodArray`\<`ZodCustom`\<..., ...\>\>\>; `formErrors`: `ZodOptional`\<`ZodRecord`\<`ZodString`, `ZodArray`\<...\>\>\>; `inputType`: `ZodOptional`\<`ZodEnum`\<\{ `email`: ...; `text`: ...; `textarea`: ...; \}\>\>; `label`: `ZodString`; `placeholder`: `ZodOptional`\<`ZodString`\>; `testId`: `ZodOptional`\<`ZodString`\>; `value`: `ZodOptional`\<`ZodString`\>; \}, `$strip`\>; \}; `Home`: \{ `props`: `ZodObject`\<\{ `title`: `ZodString`; \}, `$strip`\>; \}; `Login`: \{ `props`: `ZodObject`\<\{ `title`: `ZodString`; `username`: `ZodOptional`\<`ZodString`\>; \}, `$strip`\>; \}; `NavBar`: \{ `props`: `ZodObject`\<\{ `isAuthenticated`: `ZodBoolean`; `username`: `ZodNullable`\<`ZodString`\>; \}, `$strip`\>; \}; `Navigation`: \{ `props`: `ZodObject`\<\{ `currentPath`: `ZodString`; `isAuthenticated`: `ZodBoolean`; \}, `$strip`\>; \}; `Overview`: \{ `props`: `ZodObject`\<\{ `title`: `ZodString`; \}, `$strip`\>; \}; `Panel`: \{ `props`: `ZodObject`\<\{ `note`: `ZodOptional`\<`ZodUnion`\<readonly \[..., ..., ..., ...\]\>\>; `testId`: `ZodOptional`\<`ZodString`\>; `title`: `ZodOptional`\<`ZodUnion`\<readonly \[..., ...\]\>\>; `tone`: `ZodOptional`\<`ZodEnum`\<\{ `danger`: ...; `default`: ...; `muted`: ...; `success`: ...; \}\>\>; \}, `$strip`\>; \}; `Profile`: \{ `props`: `ZodObject`\<\{ `username`: `ZodString`; \}, `$strip`\>; \}; `Settings`: \{ `props`: `ZodObject`\<\{ `section`: `ZodOptional`\<`ZodString`\>; `username`: `ZodString`; \}, `$strip`\>; \}; `Stats`: \{ `props`: `ZodObject`\<\{ `title`: `ZodString`; \}, `$strip`\>; \}; \}; \}\>, `"Contact"`\> | - | Contact — Public contact page. Catalog-typed DOM component (ComponentFn<AuthCatalog, 'Contact'>). Renders static content from props. | [packages/play-dom/examples/demo/src/components/demo-components.ts:23](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.1/packages/play-dom/examples/demo/src/components/demo-components.ts#L23) |
20
+ | <a id="property-dashboard"></a> `Dashboard` | [`ComponentFn`](../../play-dom/type-aliases/ComponentFn.md)\<`Catalog`\<\{ `catalog`: `SchemaType`\<`"object"`, \{ `actions`: `SchemaType`\<`"map"`, \{ `description`: `SchemaType`\<`"string"`, `unknown`\>; `params`: `SchemaType`\<`"zod"`, `unknown`\>; \}\>; `components`: `SchemaType`\<`"map"`, \{ `description`: `SchemaType`\<`"string"`, `unknown`\>; `example`: `SchemaType`\<`"any"`, `unknown`\>; `props`: `SchemaType`\<`"zod"`, `unknown`\>; `slots`: `SchemaType`\<`"array"`, `SchemaType`\<`"string"`, `unknown`\>\>; \}\>; \}\>; `spec`: `SchemaType`\<`"object"`, \{ `elements`: `SchemaType`\<`"record"`, `SchemaType`\<`"object"`, \{ `children`: `SchemaType`\<`"array"`, `SchemaType`\<..., ...\>\>; `props`: `SchemaType`\<`"propsOf"`, `string`\>; `repeat`: \{ `inner?`: `unknown`; `kind`: `"any"`; `optional`: `true`; \}; `slots`: \{ `inner?`: ... \| ...; `kind`: `"record"`; `optional`: `true`; \}; `type`: `SchemaType`\<`"ref"`, `string`\>; `visible`: \{ `inner?`: `unknown`; `kind`: `"any"`; `optional`: `true`; \}; \}\>\>; `root`: `SchemaType`\<`"string"`, `unknown`\>; \}\>; \}, \{ `actions`: \{ `addTask`: \{ `description`: `"Add a task (sends task.add to the machine)"`; `params`: `ZodObject`\<\{ `title`: `ZodString`; \}, `$strip`\>; \}; `completeTask`: \{ `description`: `"Mark a task done (sends task.complete to the machine)"`; `params`: `ZodObject`\<\{ `id`: `ZodString`; \}, `$strip`\>; \}; `login`: \{ `description`: `"Login with username"`; `params`: `ZodObject`\<\{ `username`: `ZodString`; \}, `$strip`\>; \}; `logout`: \{ `description`: `"Logout and return to home"`; \}; `removeTask`: \{ `description`: `"Remove a task (sends task.remove to the machine)"`; `params`: `ZodObject`\<\{ `id`: `ZodString`; \}, `$strip`\>; \}; `resetForm`: \{ `description`: `"Reset a demo form to its defaults (confirm-gated in the spec)"`; `params`: `ZodObject`\<\{ `form`: `ZodString`; \}, `$strip`\>; \}; `route`: \{ `description`: `"Navigate to a route by path (e.g. '#home', '#login', '#dashboard')"`; `params`: `ZodObject`\<\{ `params`: `ZodOptional`\<`ZodRecord`\<`ZodString`, `ZodString`\>\>; `to`: `ZodString`; \}, `$strip`\>; \}; `submitForm`: \{ `description`: `"Submit a demo form; rejects when the form did not pass validation"`; `params`: `ZodObject`\<\{ `form`: `ZodString`; `valid`: `ZodOptional`\<`ZodNullable`\<`ZodBoolean`\>\>; \}, `$strip`\>; \}; \}; `components`: \{ `About`: \{ `props`: `ZodObject`\<\{ `title`: `ZodString`; \}, `$strip`\>; \}; `Button`: \{ `props`: `ZodObject`\<\{ `disabled`: `ZodOptional`\<`ZodBoolean`\>; `label`: `ZodString`; `testId`: `ZodOptional`\<`ZodString`\>; `variant`: `ZodOptional`\<`ZodEnum`\<\{ `danger`: ...; `primary`: ...; `secondary`: ...; \}\>\>; \}, `$strip`\>; \}; `Contact`: \{ `props`: `ZodObject`\<\{ `title`: `ZodString`; \}, `$strip`\>; \}; `Dashboard`: \{ `props`: `ZodObject`\<\{ `username`: `ZodString`; `welcome`: `ZodBoolean`; \}, `$strip`\>; \}; `Field`: \{ `props`: `ZodObject`\<\{ `checks`: `ZodOptional`\<`ZodArray`\<`ZodCustom`\<..., ...\>\>\>; `formErrors`: `ZodOptional`\<`ZodRecord`\<`ZodString`, `ZodArray`\<...\>\>\>; `inputType`: `ZodOptional`\<`ZodEnum`\<\{ `email`: ...; `text`: ...; `textarea`: ...; \}\>\>; `label`: `ZodString`; `placeholder`: `ZodOptional`\<`ZodString`\>; `testId`: `ZodOptional`\<`ZodString`\>; `value`: `ZodOptional`\<`ZodString`\>; \}, `$strip`\>; \}; `Home`: \{ `props`: `ZodObject`\<\{ `title`: `ZodString`; \}, `$strip`\>; \}; `Login`: \{ `props`: `ZodObject`\<\{ `title`: `ZodString`; `username`: `ZodOptional`\<`ZodString`\>; \}, `$strip`\>; \}; `NavBar`: \{ `props`: `ZodObject`\<\{ `isAuthenticated`: `ZodBoolean`; `username`: `ZodNullable`\<`ZodString`\>; \}, `$strip`\>; \}; `Navigation`: \{ `props`: `ZodObject`\<\{ `currentPath`: `ZodString`; `isAuthenticated`: `ZodBoolean`; \}, `$strip`\>; \}; `Overview`: \{ `props`: `ZodObject`\<\{ `title`: `ZodString`; \}, `$strip`\>; \}; `Panel`: \{ `props`: `ZodObject`\<\{ `note`: `ZodOptional`\<`ZodUnion`\<readonly \[..., ..., ..., ...\]\>\>; `testId`: `ZodOptional`\<`ZodString`\>; `title`: `ZodOptional`\<`ZodUnion`\<readonly \[..., ...\]\>\>; `tone`: `ZodOptional`\<`ZodEnum`\<\{ `danger`: ...; `default`: ...; `muted`: ...; `success`: ...; \}\>\>; \}, `$strip`\>; \}; `Profile`: \{ `props`: `ZodObject`\<\{ `username`: `ZodString`; \}, `$strip`\>; \}; `Settings`: \{ `props`: `ZodObject`\<\{ `section`: `ZodOptional`\<`ZodString`\>; `username`: `ZodString`; \}, `$strip`\>; \}; `Stats`: \{ `props`: `ZodObject`\<\{ `title`: `ZodString`; \}, `$strip`\>; \}; \}; \}\>, `"Dashboard"`\> | - | Dashboard — Protected authenticated home. Catalog-typed DOM component (ComponentFn<AuthCatalog, 'Dashboard'>). Renders welcome message; logout button emits 'logout' action. | [packages/play-dom/examples/demo/src/components/demo-components.ts:25](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.1/packages/play-dom/examples/demo/src/components/demo-components.ts#L25) |
21
+ | <a id="property-field"></a> `Field` | [`ComponentFn`](../../play-dom/type-aliases/ComponentFn.md)\<`Catalog`\<\{ `catalog`: `SchemaType`\<`"object"`, \{ `actions`: `SchemaType`\<`"map"`, \{ `description`: `SchemaType`\<`"string"`, `unknown`\>; `params`: `SchemaType`\<`"zod"`, `unknown`\>; \}\>; `components`: `SchemaType`\<`"map"`, \{ `description`: `SchemaType`\<`"string"`, `unknown`\>; `example`: `SchemaType`\<`"any"`, `unknown`\>; `props`: `SchemaType`\<`"zod"`, `unknown`\>; `slots`: `SchemaType`\<`"array"`, `SchemaType`\<`"string"`, `unknown`\>\>; \}\>; \}\>; `spec`: `SchemaType`\<`"object"`, \{ `elements`: `SchemaType`\<`"record"`, `SchemaType`\<`"object"`, \{ `children`: `SchemaType`\<`"array"`, `SchemaType`\<..., ...\>\>; `props`: `SchemaType`\<`"propsOf"`, `string`\>; `repeat`: \{ `inner?`: `unknown`; `kind`: `"any"`; `optional`: `true`; \}; `slots`: \{ `inner?`: ... \| ...; `kind`: `"record"`; `optional`: `true`; \}; `type`: `SchemaType`\<`"ref"`, `string`\>; `visible`: \{ `inner?`: `unknown`; `kind`: `"any"`; `optional`: `true`; \}; \}\>\>; `root`: `SchemaType`\<`"string"`, `unknown`\>; \}\>; \}, \{ `actions`: \{ `addTask`: \{ `description`: `"Add a task (sends task.add to the machine)"`; `params`: `ZodObject`\<\{ `title`: `ZodString`; \}, `$strip`\>; \}; `completeTask`: \{ `description`: `"Mark a task done (sends task.complete to the machine)"`; `params`: `ZodObject`\<\{ `id`: `ZodString`; \}, `$strip`\>; \}; `login`: \{ `description`: `"Login with username"`; `params`: `ZodObject`\<\{ `username`: `ZodString`; \}, `$strip`\>; \}; `logout`: \{ `description`: `"Logout and return to home"`; \}; `removeTask`: \{ `description`: `"Remove a task (sends task.remove to the machine)"`; `params`: `ZodObject`\<\{ `id`: `ZodString`; \}, `$strip`\>; \}; `resetForm`: \{ `description`: `"Reset a demo form to its defaults (confirm-gated in the spec)"`; `params`: `ZodObject`\<\{ `form`: `ZodString`; \}, `$strip`\>; \}; `route`: \{ `description`: `"Navigate to a route by path (e.g. '#home', '#login', '#dashboard')"`; `params`: `ZodObject`\<\{ `params`: `ZodOptional`\<`ZodRecord`\<`ZodString`, `ZodString`\>\>; `to`: `ZodString`; \}, `$strip`\>; \}; `submitForm`: \{ `description`: `"Submit a demo form; rejects when the form did not pass validation"`; `params`: `ZodObject`\<\{ `form`: `ZodString`; `valid`: `ZodOptional`\<`ZodNullable`\<`ZodBoolean`\>\>; \}, `$strip`\>; \}; \}; `components`: \{ `About`: \{ `props`: `ZodObject`\<\{ `title`: `ZodString`; \}, `$strip`\>; \}; `Button`: \{ `props`: `ZodObject`\<\{ `disabled`: `ZodOptional`\<`ZodBoolean`\>; `label`: `ZodString`; `testId`: `ZodOptional`\<`ZodString`\>; `variant`: `ZodOptional`\<`ZodEnum`\<\{ `danger`: ...; `primary`: ...; `secondary`: ...; \}\>\>; \}, `$strip`\>; \}; `Contact`: \{ `props`: `ZodObject`\<\{ `title`: `ZodString`; \}, `$strip`\>; \}; `Dashboard`: \{ `props`: `ZodObject`\<\{ `username`: `ZodString`; `welcome`: `ZodBoolean`; \}, `$strip`\>; \}; `Field`: \{ `props`: `ZodObject`\<\{ `checks`: `ZodOptional`\<`ZodArray`\<`ZodCustom`\<..., ...\>\>\>; `formErrors`: `ZodOptional`\<`ZodRecord`\<`ZodString`, `ZodArray`\<...\>\>\>; `inputType`: `ZodOptional`\<`ZodEnum`\<\{ `email`: ...; `text`: ...; `textarea`: ...; \}\>\>; `label`: `ZodString`; `placeholder`: `ZodOptional`\<`ZodString`\>; `testId`: `ZodOptional`\<`ZodString`\>; `value`: `ZodOptional`\<`ZodString`\>; \}, `$strip`\>; \}; `Home`: \{ `props`: `ZodObject`\<\{ `title`: `ZodString`; \}, `$strip`\>; \}; `Login`: \{ `props`: `ZodObject`\<\{ `title`: `ZodString`; `username`: `ZodOptional`\<`ZodString`\>; \}, `$strip`\>; \}; `NavBar`: \{ `props`: `ZodObject`\<\{ `isAuthenticated`: `ZodBoolean`; `username`: `ZodNullable`\<`ZodString`\>; \}, `$strip`\>; \}; `Navigation`: \{ `props`: `ZodObject`\<\{ `currentPath`: `ZodString`; `isAuthenticated`: `ZodBoolean`; \}, `$strip`\>; \}; `Overview`: \{ `props`: `ZodObject`\<\{ `title`: `ZodString`; \}, `$strip`\>; \}; `Panel`: \{ `props`: `ZodObject`\<\{ `note`: `ZodOptional`\<`ZodUnion`\<readonly \[..., ..., ..., ...\]\>\>; `testId`: `ZodOptional`\<`ZodString`\>; `title`: `ZodOptional`\<`ZodUnion`\<readonly \[..., ...\]\>\>; `tone`: `ZodOptional`\<`ZodEnum`\<\{ `danger`: ...; `default`: ...; `muted`: ...; `success`: ...; \}\>\>; \}, `$strip`\>; \}; `Profile`: \{ `props`: `ZodObject`\<\{ `username`: `ZodString`; \}, `$strip`\>; \}; `Settings`: \{ `props`: `ZodObject`\<\{ `section`: `ZodOptional`\<`ZodString`\>; `username`: `ZodString`; \}, `$strip`\>; \}; `Stats`: \{ `props`: `ZodObject`\<\{ `title`: `ZodString`; \}, `$strip`\>; \}; \}; \}\>, `"Field"`\> | - | Field — labelled input with two-way $bindState binding and declarative validation checks. ctx.validation.registerField registers the bound state path with the DOM renderer's validation registry so the `validateForm` built-in sees it (the incremental renderer releases the registration when the element unmounts). Error DISPLAY deliberately reads `props.formErrors` — the result validateForm wrote to state — so every renderer surfaces errors at the same moment: after submit. | [packages/play-dom/examples/demo/src/components/demo-components.ts:33](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.1/packages/play-dom/examples/demo/src/components/demo-components.ts#L33) |
22
+ | <a id="property-home"></a> `Home` | [`ComponentFn`](../../play-dom/type-aliases/ComponentFn.md)\<`Catalog`\<\{ `catalog`: `SchemaType`\<`"object"`, \{ `actions`: `SchemaType`\<`"map"`, \{ `description`: `SchemaType`\<`"string"`, `unknown`\>; `params`: `SchemaType`\<`"zod"`, `unknown`\>; \}\>; `components`: `SchemaType`\<`"map"`, \{ `description`: `SchemaType`\<`"string"`, `unknown`\>; `example`: `SchemaType`\<`"any"`, `unknown`\>; `props`: `SchemaType`\<`"zod"`, `unknown`\>; `slots`: `SchemaType`\<`"array"`, `SchemaType`\<`"string"`, `unknown`\>\>; \}\>; \}\>; `spec`: `SchemaType`\<`"object"`, \{ `elements`: `SchemaType`\<`"record"`, `SchemaType`\<`"object"`, \{ `children`: `SchemaType`\<`"array"`, `SchemaType`\<..., ...\>\>; `props`: `SchemaType`\<`"propsOf"`, `string`\>; `repeat`: \{ `inner?`: `unknown`; `kind`: `"any"`; `optional`: `true`; \}; `slots`: \{ `inner?`: ... \| ...; `kind`: `"record"`; `optional`: `true`; \}; `type`: `SchemaType`\<`"ref"`, `string`\>; `visible`: \{ `inner?`: `unknown`; `kind`: `"any"`; `optional`: `true`; \}; \}\>\>; `root`: `SchemaType`\<`"string"`, `unknown`\>; \}\>; \}, \{ `actions`: \{ `addTask`: \{ `description`: `"Add a task (sends task.add to the machine)"`; `params`: `ZodObject`\<\{ `title`: `ZodString`; \}, `$strip`\>; \}; `completeTask`: \{ `description`: `"Mark a task done (sends task.complete to the machine)"`; `params`: `ZodObject`\<\{ `id`: `ZodString`; \}, `$strip`\>; \}; `login`: \{ `description`: `"Login with username"`; `params`: `ZodObject`\<\{ `username`: `ZodString`; \}, `$strip`\>; \}; `logout`: \{ `description`: `"Logout and return to home"`; \}; `removeTask`: \{ `description`: `"Remove a task (sends task.remove to the machine)"`; `params`: `ZodObject`\<\{ `id`: `ZodString`; \}, `$strip`\>; \}; `resetForm`: \{ `description`: `"Reset a demo form to its defaults (confirm-gated in the spec)"`; `params`: `ZodObject`\<\{ `form`: `ZodString`; \}, `$strip`\>; \}; `route`: \{ `description`: `"Navigate to a route by path (e.g. '#home', '#login', '#dashboard')"`; `params`: `ZodObject`\<\{ `params`: `ZodOptional`\<`ZodRecord`\<`ZodString`, `ZodString`\>\>; `to`: `ZodString`; \}, `$strip`\>; \}; `submitForm`: \{ `description`: `"Submit a demo form; rejects when the form did not pass validation"`; `params`: `ZodObject`\<\{ `form`: `ZodString`; `valid`: `ZodOptional`\<`ZodNullable`\<`ZodBoolean`\>\>; \}, `$strip`\>; \}; \}; `components`: \{ `About`: \{ `props`: `ZodObject`\<\{ `title`: `ZodString`; \}, `$strip`\>; \}; `Button`: \{ `props`: `ZodObject`\<\{ `disabled`: `ZodOptional`\<`ZodBoolean`\>; `label`: `ZodString`; `testId`: `ZodOptional`\<`ZodString`\>; `variant`: `ZodOptional`\<`ZodEnum`\<\{ `danger`: ...; `primary`: ...; `secondary`: ...; \}\>\>; \}, `$strip`\>; \}; `Contact`: \{ `props`: `ZodObject`\<\{ `title`: `ZodString`; \}, `$strip`\>; \}; `Dashboard`: \{ `props`: `ZodObject`\<\{ `username`: `ZodString`; `welcome`: `ZodBoolean`; \}, `$strip`\>; \}; `Field`: \{ `props`: `ZodObject`\<\{ `checks`: `ZodOptional`\<`ZodArray`\<`ZodCustom`\<..., ...\>\>\>; `formErrors`: `ZodOptional`\<`ZodRecord`\<`ZodString`, `ZodArray`\<...\>\>\>; `inputType`: `ZodOptional`\<`ZodEnum`\<\{ `email`: ...; `text`: ...; `textarea`: ...; \}\>\>; `label`: `ZodString`; `placeholder`: `ZodOptional`\<`ZodString`\>; `testId`: `ZodOptional`\<`ZodString`\>; `value`: `ZodOptional`\<`ZodString`\>; \}, `$strip`\>; \}; `Home`: \{ `props`: `ZodObject`\<\{ `title`: `ZodString`; \}, `$strip`\>; \}; `Login`: \{ `props`: `ZodObject`\<\{ `title`: `ZodString`; `username`: `ZodOptional`\<`ZodString`\>; \}, `$strip`\>; \}; `NavBar`: \{ `props`: `ZodObject`\<\{ `isAuthenticated`: `ZodBoolean`; `username`: `ZodNullable`\<`ZodString`\>; \}, `$strip`\>; \}; `Navigation`: \{ `props`: `ZodObject`\<\{ `currentPath`: `ZodString`; `isAuthenticated`: `ZodBoolean`; \}, `$strip`\>; \}; `Overview`: \{ `props`: `ZodObject`\<\{ `title`: `ZodString`; \}, `$strip`\>; \}; `Panel`: \{ `props`: `ZodObject`\<\{ `note`: `ZodOptional`\<`ZodUnion`\<readonly \[..., ..., ..., ...\]\>\>; `testId`: `ZodOptional`\<`ZodString`\>; `title`: `ZodOptional`\<`ZodUnion`\<readonly \[..., ...\]\>\>; `tone`: `ZodOptional`\<`ZodEnum`\<\{ `danger`: ...; `default`: ...; `muted`: ...; `success`: ...; \}\>\>; \}, `$strip`\>; \}; `Profile`: \{ `props`: `ZodObject`\<\{ `username`: `ZodString`; \}, `$strip`\>; \}; `Settings`: \{ `props`: `ZodObject`\<\{ `section`: `ZodOptional`\<`ZodString`\>; `username`: `ZodString`; \}, `$strip`\>; \}; `Stats`: \{ `props`: `ZodObject`\<\{ `title`: `ZodString`; \}, `$strip`\>; \}; \}; \}\>, `"Home"`\> | - | Home — Public landing page. Catalog-typed DOM component (ComponentFn<AuthCatalog, 'Home'>). Renders static welcome content from props. | [packages/play-dom/examples/demo/src/components/demo-components.ts:21](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.1/packages/play-dom/examples/demo/src/components/demo-components.ts#L21) |
23
+ | <a id="property-login"></a> `Login` | [`ComponentFn`](../../play-dom/type-aliases/ComponentFn.md)\<`Catalog`\<\{ `catalog`: `SchemaType`\<`"object"`, \{ `actions`: `SchemaType`\<`"map"`, \{ `description`: `SchemaType`\<`"string"`, `unknown`\>; `params`: `SchemaType`\<`"zod"`, `unknown`\>; \}\>; `components`: `SchemaType`\<`"map"`, \{ `description`: `SchemaType`\<`"string"`, `unknown`\>; `example`: `SchemaType`\<`"any"`, `unknown`\>; `props`: `SchemaType`\<`"zod"`, `unknown`\>; `slots`: `SchemaType`\<`"array"`, `SchemaType`\<`"string"`, `unknown`\>\>; \}\>; \}\>; `spec`: `SchemaType`\<`"object"`, \{ `elements`: `SchemaType`\<`"record"`, `SchemaType`\<`"object"`, \{ `children`: `SchemaType`\<`"array"`, `SchemaType`\<..., ...\>\>; `props`: `SchemaType`\<`"propsOf"`, `string`\>; `repeat`: \{ `inner?`: `unknown`; `kind`: `"any"`; `optional`: `true`; \}; `slots`: \{ `inner?`: ... \| ...; `kind`: `"record"`; `optional`: `true`; \}; `type`: `SchemaType`\<`"ref"`, `string`\>; `visible`: \{ `inner?`: `unknown`; `kind`: `"any"`; `optional`: `true`; \}; \}\>\>; `root`: `SchemaType`\<`"string"`, `unknown`\>; \}\>; \}, \{ `actions`: \{ `addTask`: \{ `description`: `"Add a task (sends task.add to the machine)"`; `params`: `ZodObject`\<\{ `title`: `ZodString`; \}, `$strip`\>; \}; `completeTask`: \{ `description`: `"Mark a task done (sends task.complete to the machine)"`; `params`: `ZodObject`\<\{ `id`: `ZodString`; \}, `$strip`\>; \}; `login`: \{ `description`: `"Login with username"`; `params`: `ZodObject`\<\{ `username`: `ZodString`; \}, `$strip`\>; \}; `logout`: \{ `description`: `"Logout and return to home"`; \}; `removeTask`: \{ `description`: `"Remove a task (sends task.remove to the machine)"`; `params`: `ZodObject`\<\{ `id`: `ZodString`; \}, `$strip`\>; \}; `resetForm`: \{ `description`: `"Reset a demo form to its defaults (confirm-gated in the spec)"`; `params`: `ZodObject`\<\{ `form`: `ZodString`; \}, `$strip`\>; \}; `route`: \{ `description`: `"Navigate to a route by path (e.g. '#home', '#login', '#dashboard')"`; `params`: `ZodObject`\<\{ `params`: `ZodOptional`\<`ZodRecord`\<`ZodString`, `ZodString`\>\>; `to`: `ZodString`; \}, `$strip`\>; \}; `submitForm`: \{ `description`: `"Submit a demo form; rejects when the form did not pass validation"`; `params`: `ZodObject`\<\{ `form`: `ZodString`; `valid`: `ZodOptional`\<`ZodNullable`\<`ZodBoolean`\>\>; \}, `$strip`\>; \}; \}; `components`: \{ `About`: \{ `props`: `ZodObject`\<\{ `title`: `ZodString`; \}, `$strip`\>; \}; `Button`: \{ `props`: `ZodObject`\<\{ `disabled`: `ZodOptional`\<`ZodBoolean`\>; `label`: `ZodString`; `testId`: `ZodOptional`\<`ZodString`\>; `variant`: `ZodOptional`\<`ZodEnum`\<\{ `danger`: ...; `primary`: ...; `secondary`: ...; \}\>\>; \}, `$strip`\>; \}; `Contact`: \{ `props`: `ZodObject`\<\{ `title`: `ZodString`; \}, `$strip`\>; \}; `Dashboard`: \{ `props`: `ZodObject`\<\{ `username`: `ZodString`; `welcome`: `ZodBoolean`; \}, `$strip`\>; \}; `Field`: \{ `props`: `ZodObject`\<\{ `checks`: `ZodOptional`\<`ZodArray`\<`ZodCustom`\<..., ...\>\>\>; `formErrors`: `ZodOptional`\<`ZodRecord`\<`ZodString`, `ZodArray`\<...\>\>\>; `inputType`: `ZodOptional`\<`ZodEnum`\<\{ `email`: ...; `text`: ...; `textarea`: ...; \}\>\>; `label`: `ZodString`; `placeholder`: `ZodOptional`\<`ZodString`\>; `testId`: `ZodOptional`\<`ZodString`\>; `value`: `ZodOptional`\<`ZodString`\>; \}, `$strip`\>; \}; `Home`: \{ `props`: `ZodObject`\<\{ `title`: `ZodString`; \}, `$strip`\>; \}; `Login`: \{ `props`: `ZodObject`\<\{ `title`: `ZodString`; `username`: `ZodOptional`\<`ZodString`\>; \}, `$strip`\>; \}; `NavBar`: \{ `props`: `ZodObject`\<\{ `isAuthenticated`: `ZodBoolean`; `username`: `ZodNullable`\<`ZodString`\>; \}, `$strip`\>; \}; `Navigation`: \{ `props`: `ZodObject`\<\{ `currentPath`: `ZodString`; `isAuthenticated`: `ZodBoolean`; \}, `$strip`\>; \}; `Overview`: \{ `props`: `ZodObject`\<\{ `title`: `ZodString`; \}, `$strip`\>; \}; `Panel`: \{ `props`: `ZodObject`\<\{ `note`: `ZodOptional`\<`ZodUnion`\<readonly \[..., ..., ..., ...\]\>\>; `testId`: `ZodOptional`\<`ZodString`\>; `title`: `ZodOptional`\<`ZodUnion`\<readonly \[..., ...\]\>\>; `tone`: `ZodOptional`\<`ZodEnum`\<\{ `danger`: ...; `default`: ...; `muted`: ...; `success`: ...; \}\>\>; \}, `$strip`\>; \}; `Profile`: \{ `props`: `ZodObject`\<\{ `username`: `ZodString`; \}, `$strip`\>; \}; `Settings`: \{ `props`: `ZodObject`\<\{ `section`: `ZodOptional`\<`ZodString`\>; `username`: `ZodString`; \}, `$strip`\>; \}; `Stats`: \{ `props`: `ZodObject`\<\{ `title`: `ZodString`; \}, `$strip`\>; \}; \}; \}\>, `"Login"`\> | - | Login — Authentication form. Catalog-typed DOM component (ComponentFn<AuthCatalog, 'Login'>). Binds username input to ctx.store via $bindState; emits 'submit' on form submit. | [packages/play-dom/examples/demo/src/components/demo-components.ts:24](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.1/packages/play-dom/examples/demo/src/components/demo-components.ts#L24) |
24
+ | <a id="property-navbar"></a> `NavBar` | [`ComponentFn`](../../play-dom/type-aliases/ComponentFn.md)\<`Catalog`\<\{ `catalog`: `SchemaType`\<`"object"`, \{ `actions`: `SchemaType`\<`"map"`, \{ `description`: `SchemaType`\<`"string"`, `unknown`\>; `params`: `SchemaType`\<`"zod"`, `unknown`\>; \}\>; `components`: `SchemaType`\<`"map"`, \{ `description`: `SchemaType`\<`"string"`, `unknown`\>; `example`: `SchemaType`\<`"any"`, `unknown`\>; `props`: `SchemaType`\<`"zod"`, `unknown`\>; `slots`: `SchemaType`\<`"array"`, `SchemaType`\<`"string"`, `unknown`\>\>; \}\>; \}\>; `spec`: `SchemaType`\<`"object"`, \{ `elements`: `SchemaType`\<`"record"`, `SchemaType`\<`"object"`, \{ `children`: `SchemaType`\<`"array"`, `SchemaType`\<..., ...\>\>; `props`: `SchemaType`\<`"propsOf"`, `string`\>; `repeat`: \{ `inner?`: `unknown`; `kind`: `"any"`; `optional`: `true`; \}; `slots`: \{ `inner?`: ... \| ...; `kind`: `"record"`; `optional`: `true`; \}; `type`: `SchemaType`\<`"ref"`, `string`\>; `visible`: \{ `inner?`: `unknown`; `kind`: `"any"`; `optional`: `true`; \}; \}\>\>; `root`: `SchemaType`\<`"string"`, `unknown`\>; \}\>; \}, \{ `actions`: \{ `addTask`: \{ `description`: `"Add a task (sends task.add to the machine)"`; `params`: `ZodObject`\<\{ `title`: `ZodString`; \}, `$strip`\>; \}; `completeTask`: \{ `description`: `"Mark a task done (sends task.complete to the machine)"`; `params`: `ZodObject`\<\{ `id`: `ZodString`; \}, `$strip`\>; \}; `login`: \{ `description`: `"Login with username"`; `params`: `ZodObject`\<\{ `username`: `ZodString`; \}, `$strip`\>; \}; `logout`: \{ `description`: `"Logout and return to home"`; \}; `removeTask`: \{ `description`: `"Remove a task (sends task.remove to the machine)"`; `params`: `ZodObject`\<\{ `id`: `ZodString`; \}, `$strip`\>; \}; `resetForm`: \{ `description`: `"Reset a demo form to its defaults (confirm-gated in the spec)"`; `params`: `ZodObject`\<\{ `form`: `ZodString`; \}, `$strip`\>; \}; `route`: \{ `description`: `"Navigate to a route by path (e.g. '#home', '#login', '#dashboard')"`; `params`: `ZodObject`\<\{ `params`: `ZodOptional`\<`ZodRecord`\<`ZodString`, `ZodString`\>\>; `to`: `ZodString`; \}, `$strip`\>; \}; `submitForm`: \{ `description`: `"Submit a demo form; rejects when the form did not pass validation"`; `params`: `ZodObject`\<\{ `form`: `ZodString`; `valid`: `ZodOptional`\<`ZodNullable`\<`ZodBoolean`\>\>; \}, `$strip`\>; \}; \}; `components`: \{ `About`: \{ `props`: `ZodObject`\<\{ `title`: `ZodString`; \}, `$strip`\>; \}; `Button`: \{ `props`: `ZodObject`\<\{ `disabled`: `ZodOptional`\<`ZodBoolean`\>; `label`: `ZodString`; `testId`: `ZodOptional`\<`ZodString`\>; `variant`: `ZodOptional`\<`ZodEnum`\<\{ `danger`: ...; `primary`: ...; `secondary`: ...; \}\>\>; \}, `$strip`\>; \}; `Contact`: \{ `props`: `ZodObject`\<\{ `title`: `ZodString`; \}, `$strip`\>; \}; `Dashboard`: \{ `props`: `ZodObject`\<\{ `username`: `ZodString`; `welcome`: `ZodBoolean`; \}, `$strip`\>; \}; `Field`: \{ `props`: `ZodObject`\<\{ `checks`: `ZodOptional`\<`ZodArray`\<`ZodCustom`\<..., ...\>\>\>; `formErrors`: `ZodOptional`\<`ZodRecord`\<`ZodString`, `ZodArray`\<...\>\>\>; `inputType`: `ZodOptional`\<`ZodEnum`\<\{ `email`: ...; `text`: ...; `textarea`: ...; \}\>\>; `label`: `ZodString`; `placeholder`: `ZodOptional`\<`ZodString`\>; `testId`: `ZodOptional`\<`ZodString`\>; `value`: `ZodOptional`\<`ZodString`\>; \}, `$strip`\>; \}; `Home`: \{ `props`: `ZodObject`\<\{ `title`: `ZodString`; \}, `$strip`\>; \}; `Login`: \{ `props`: `ZodObject`\<\{ `title`: `ZodString`; `username`: `ZodOptional`\<`ZodString`\>; \}, `$strip`\>; \}; `NavBar`: \{ `props`: `ZodObject`\<\{ `isAuthenticated`: `ZodBoolean`; `username`: `ZodNullable`\<`ZodString`\>; \}, `$strip`\>; \}; `Navigation`: \{ `props`: `ZodObject`\<\{ `currentPath`: `ZodString`; `isAuthenticated`: `ZodBoolean`; \}, `$strip`\>; \}; `Overview`: \{ `props`: `ZodObject`\<\{ `title`: `ZodString`; \}, `$strip`\>; \}; `Panel`: \{ `props`: `ZodObject`\<\{ `note`: `ZodOptional`\<`ZodUnion`\<readonly \[..., ..., ..., ...\]\>\>; `testId`: `ZodOptional`\<`ZodString`\>; `title`: `ZodOptional`\<`ZodUnion`\<readonly \[..., ...\]\>\>; `tone`: `ZodOptional`\<`ZodEnum`\<\{ `danger`: ...; `default`: ...; `muted`: ...; `success`: ...; \}\>\>; \}, `$strip`\>; \}; `Profile`: \{ `props`: `ZodObject`\<\{ `username`: `ZodString`; \}, `$strip`\>; \}; `Settings`: \{ `props`: `ZodObject`\<\{ `section`: `ZodOptional`\<`ZodString`\>; `username`: `ZodString`; \}, `$strip`\>; \}; `Stats`: \{ `props`: `ZodObject`\<\{ `title`: `ZodString`; \}, `$strip`\>; \}; \}; \}\>, `"NavBar"`\> | `NavBarView` | - | [packages/play-dom/examples/demo/src/components/demo-components.ts:31](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.1/packages/play-dom/examples/demo/src/components/demo-components.ts#L31) |
25
+ | <a id="property-navigation"></a> `Navigation` | [`ComponentFn`](../../play-dom/type-aliases/ComponentFn.md)\<`Catalog`\<\{ `catalog`: `SchemaType`\<`"object"`, \{ `actions`: `SchemaType`\<`"map"`, \{ `description`: `SchemaType`\<`"string"`, `unknown`\>; `params`: `SchemaType`\<`"zod"`, `unknown`\>; \}\>; `components`: `SchemaType`\<`"map"`, \{ `description`: `SchemaType`\<`"string"`, `unknown`\>; `example`: `SchemaType`\<`"any"`, `unknown`\>; `props`: `SchemaType`\<`"zod"`, `unknown`\>; `slots`: `SchemaType`\<`"array"`, `SchemaType`\<`"string"`, `unknown`\>\>; \}\>; \}\>; `spec`: `SchemaType`\<`"object"`, \{ `elements`: `SchemaType`\<`"record"`, `SchemaType`\<`"object"`, \{ `children`: `SchemaType`\<`"array"`, `SchemaType`\<..., ...\>\>; `props`: `SchemaType`\<`"propsOf"`, `string`\>; `repeat`: \{ `inner?`: `unknown`; `kind`: `"any"`; `optional`: `true`; \}; `slots`: \{ `inner?`: ... \| ...; `kind`: `"record"`; `optional`: `true`; \}; `type`: `SchemaType`\<`"ref"`, `string`\>; `visible`: \{ `inner?`: `unknown`; `kind`: `"any"`; `optional`: `true`; \}; \}\>\>; `root`: `SchemaType`\<`"string"`, `unknown`\>; \}\>; \}, \{ `actions`: \{ `addTask`: \{ `description`: `"Add a task (sends task.add to the machine)"`; `params`: `ZodObject`\<\{ `title`: `ZodString`; \}, `$strip`\>; \}; `completeTask`: \{ `description`: `"Mark a task done (sends task.complete to the machine)"`; `params`: `ZodObject`\<\{ `id`: `ZodString`; \}, `$strip`\>; \}; `login`: \{ `description`: `"Login with username"`; `params`: `ZodObject`\<\{ `username`: `ZodString`; \}, `$strip`\>; \}; `logout`: \{ `description`: `"Logout and return to home"`; \}; `removeTask`: \{ `description`: `"Remove a task (sends task.remove to the machine)"`; `params`: `ZodObject`\<\{ `id`: `ZodString`; \}, `$strip`\>; \}; `resetForm`: \{ `description`: `"Reset a demo form to its defaults (confirm-gated in the spec)"`; `params`: `ZodObject`\<\{ `form`: `ZodString`; \}, `$strip`\>; \}; `route`: \{ `description`: `"Navigate to a route by path (e.g. '#home', '#login', '#dashboard')"`; `params`: `ZodObject`\<\{ `params`: `ZodOptional`\<`ZodRecord`\<`ZodString`, `ZodString`\>\>; `to`: `ZodString`; \}, `$strip`\>; \}; `submitForm`: \{ `description`: `"Submit a demo form; rejects when the form did not pass validation"`; `params`: `ZodObject`\<\{ `form`: `ZodString`; `valid`: `ZodOptional`\<`ZodNullable`\<`ZodBoolean`\>\>; \}, `$strip`\>; \}; \}; `components`: \{ `About`: \{ `props`: `ZodObject`\<\{ `title`: `ZodString`; \}, `$strip`\>; \}; `Button`: \{ `props`: `ZodObject`\<\{ `disabled`: `ZodOptional`\<`ZodBoolean`\>; `label`: `ZodString`; `testId`: `ZodOptional`\<`ZodString`\>; `variant`: `ZodOptional`\<`ZodEnum`\<\{ `danger`: ...; `primary`: ...; `secondary`: ...; \}\>\>; \}, `$strip`\>; \}; `Contact`: \{ `props`: `ZodObject`\<\{ `title`: `ZodString`; \}, `$strip`\>; \}; `Dashboard`: \{ `props`: `ZodObject`\<\{ `username`: `ZodString`; `welcome`: `ZodBoolean`; \}, `$strip`\>; \}; `Field`: \{ `props`: `ZodObject`\<\{ `checks`: `ZodOptional`\<`ZodArray`\<`ZodCustom`\<..., ...\>\>\>; `formErrors`: `ZodOptional`\<`ZodRecord`\<`ZodString`, `ZodArray`\<...\>\>\>; `inputType`: `ZodOptional`\<`ZodEnum`\<\{ `email`: ...; `text`: ...; `textarea`: ...; \}\>\>; `label`: `ZodString`; `placeholder`: `ZodOptional`\<`ZodString`\>; `testId`: `ZodOptional`\<`ZodString`\>; `value`: `ZodOptional`\<`ZodString`\>; \}, `$strip`\>; \}; `Home`: \{ `props`: `ZodObject`\<\{ `title`: `ZodString`; \}, `$strip`\>; \}; `Login`: \{ `props`: `ZodObject`\<\{ `title`: `ZodString`; `username`: `ZodOptional`\<`ZodString`\>; \}, `$strip`\>; \}; `NavBar`: \{ `props`: `ZodObject`\<\{ `isAuthenticated`: `ZodBoolean`; `username`: `ZodNullable`\<`ZodString`\>; \}, `$strip`\>; \}; `Navigation`: \{ `props`: `ZodObject`\<\{ `currentPath`: `ZodString`; `isAuthenticated`: `ZodBoolean`; \}, `$strip`\>; \}; `Overview`: \{ `props`: `ZodObject`\<\{ `title`: `ZodString`; \}, `$strip`\>; \}; `Panel`: \{ `props`: `ZodObject`\<\{ `note`: `ZodOptional`\<`ZodUnion`\<readonly \[..., ..., ..., ...\]\>\>; `testId`: `ZodOptional`\<`ZodString`\>; `title`: `ZodOptional`\<`ZodUnion`\<readonly \[..., ...\]\>\>; `tone`: `ZodOptional`\<`ZodEnum`\<\{ `danger`: ...; `default`: ...; `muted`: ...; `success`: ...; \}\>\>; \}, `$strip`\>; \}; `Profile`: \{ `props`: `ZodObject`\<\{ `username`: `ZodString`; \}, `$strip`\>; \}; `Settings`: \{ `props`: `ZodObject`\<\{ `section`: `ZodOptional`\<`ZodString`\>; `username`: `ZodString`; \}, `$strip`\>; \}; `Stats`: \{ `props`: `ZodObject`\<\{ `title`: `ZodString`; \}, `$strip`\>; \}; \}; \}\>, `"Navigation"`\> | - | Navigation — Navigation status display. Catalog-typed DOM component (ComponentFn<AuthCatalog, 'Navigation'>). Renders current path and auth status from props. | [packages/play-dom/examples/demo/src/components/demo-components.ts:30](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.1/packages/play-dom/examples/demo/src/components/demo-components.ts#L30) |
26
+ | <a id="property-overview"></a> `Overview` | [`ComponentFn`](../../play-dom/type-aliases/ComponentFn.md)\<`Catalog`\<\{ `catalog`: `SchemaType`\<`"object"`, \{ `actions`: `SchemaType`\<`"map"`, \{ `description`: `SchemaType`\<`"string"`, `unknown`\>; `params`: `SchemaType`\<`"zod"`, `unknown`\>; \}\>; `components`: `SchemaType`\<`"map"`, \{ `description`: `SchemaType`\<`"string"`, `unknown`\>; `example`: `SchemaType`\<`"any"`, `unknown`\>; `props`: `SchemaType`\<`"zod"`, `unknown`\>; `slots`: `SchemaType`\<`"array"`, `SchemaType`\<`"string"`, `unknown`\>\>; \}\>; \}\>; `spec`: `SchemaType`\<`"object"`, \{ `elements`: `SchemaType`\<`"record"`, `SchemaType`\<`"object"`, \{ `children`: `SchemaType`\<`"array"`, `SchemaType`\<..., ...\>\>; `props`: `SchemaType`\<`"propsOf"`, `string`\>; `repeat`: \{ `inner?`: `unknown`; `kind`: `"any"`; `optional`: `true`; \}; `slots`: \{ `inner?`: ... \| ...; `kind`: `"record"`; `optional`: `true`; \}; `type`: `SchemaType`\<`"ref"`, `string`\>; `visible`: \{ `inner?`: `unknown`; `kind`: `"any"`; `optional`: `true`; \}; \}\>\>; `root`: `SchemaType`\<`"string"`, `unknown`\>; \}\>; \}, \{ `actions`: \{ `addTask`: \{ `description`: `"Add a task (sends task.add to the machine)"`; `params`: `ZodObject`\<\{ `title`: `ZodString`; \}, `$strip`\>; \}; `completeTask`: \{ `description`: `"Mark a task done (sends task.complete to the machine)"`; `params`: `ZodObject`\<\{ `id`: `ZodString`; \}, `$strip`\>; \}; `login`: \{ `description`: `"Login with username"`; `params`: `ZodObject`\<\{ `username`: `ZodString`; \}, `$strip`\>; \}; `logout`: \{ `description`: `"Logout and return to home"`; \}; `removeTask`: \{ `description`: `"Remove a task (sends task.remove to the machine)"`; `params`: `ZodObject`\<\{ `id`: `ZodString`; \}, `$strip`\>; \}; `resetForm`: \{ `description`: `"Reset a demo form to its defaults (confirm-gated in the spec)"`; `params`: `ZodObject`\<\{ `form`: `ZodString`; \}, `$strip`\>; \}; `route`: \{ `description`: `"Navigate to a route by path (e.g. '#home', '#login', '#dashboard')"`; `params`: `ZodObject`\<\{ `params`: `ZodOptional`\<`ZodRecord`\<`ZodString`, `ZodString`\>\>; `to`: `ZodString`; \}, `$strip`\>; \}; `submitForm`: \{ `description`: `"Submit a demo form; rejects when the form did not pass validation"`; `params`: `ZodObject`\<\{ `form`: `ZodString`; `valid`: `ZodOptional`\<`ZodNullable`\<`ZodBoolean`\>\>; \}, `$strip`\>; \}; \}; `components`: \{ `About`: \{ `props`: `ZodObject`\<\{ `title`: `ZodString`; \}, `$strip`\>; \}; `Button`: \{ `props`: `ZodObject`\<\{ `disabled`: `ZodOptional`\<`ZodBoolean`\>; `label`: `ZodString`; `testId`: `ZodOptional`\<`ZodString`\>; `variant`: `ZodOptional`\<`ZodEnum`\<\{ `danger`: ...; `primary`: ...; `secondary`: ...; \}\>\>; \}, `$strip`\>; \}; `Contact`: \{ `props`: `ZodObject`\<\{ `title`: `ZodString`; \}, `$strip`\>; \}; `Dashboard`: \{ `props`: `ZodObject`\<\{ `username`: `ZodString`; `welcome`: `ZodBoolean`; \}, `$strip`\>; \}; `Field`: \{ `props`: `ZodObject`\<\{ `checks`: `ZodOptional`\<`ZodArray`\<`ZodCustom`\<..., ...\>\>\>; `formErrors`: `ZodOptional`\<`ZodRecord`\<`ZodString`, `ZodArray`\<...\>\>\>; `inputType`: `ZodOptional`\<`ZodEnum`\<\{ `email`: ...; `text`: ...; `textarea`: ...; \}\>\>; `label`: `ZodString`; `placeholder`: `ZodOptional`\<`ZodString`\>; `testId`: `ZodOptional`\<`ZodString`\>; `value`: `ZodOptional`\<`ZodString`\>; \}, `$strip`\>; \}; `Home`: \{ `props`: `ZodObject`\<\{ `title`: `ZodString`; \}, `$strip`\>; \}; `Login`: \{ `props`: `ZodObject`\<\{ `title`: `ZodString`; `username`: `ZodOptional`\<`ZodString`\>; \}, `$strip`\>; \}; `NavBar`: \{ `props`: `ZodObject`\<\{ `isAuthenticated`: `ZodBoolean`; `username`: `ZodNullable`\<`ZodString`\>; \}, `$strip`\>; \}; `Navigation`: \{ `props`: `ZodObject`\<\{ `currentPath`: `ZodString`; `isAuthenticated`: `ZodBoolean`; \}, `$strip`\>; \}; `Overview`: \{ `props`: `ZodObject`\<\{ `title`: `ZodString`; \}, `$strip`\>; \}; `Panel`: \{ `props`: `ZodObject`\<\{ `note`: `ZodOptional`\<`ZodUnion`\<readonly \[..., ..., ..., ...\]\>\>; `testId`: `ZodOptional`\<`ZodString`\>; `title`: `ZodOptional`\<`ZodUnion`\<readonly \[..., ...\]\>\>; `tone`: `ZodOptional`\<`ZodEnum`\<\{ `danger`: ...; `default`: ...; `muted`: ...; `success`: ...; \}\>\>; \}, `$strip`\>; \}; `Profile`: \{ `props`: `ZodObject`\<\{ `username`: `ZodString`; \}, `$strip`\>; \}; `Settings`: \{ `props`: `ZodObject`\<\{ `section`: `ZodOptional`\<`ZodString`\>; `username`: `ZodString`; \}, `$strip`\>; \}; `Stats`: \{ `props`: `ZodObject`\<\{ `title`: `ZodString`; \}, `$strip`\>; \}; \}; \}\>, `"Overview"`\> | - | Overview — Dashboard overview child route. Catalog-typed DOM component (ComponentFn<AuthCatalog, 'Overview'>). Relative route resolves to /dashboard/overview. Logout and goToStats buttons emit actions. | [packages/play-dom/examples/demo/src/components/demo-components.ts:26](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.1/packages/play-dom/examples/demo/src/components/demo-components.ts#L26) |
27
+ | <a id="property-panel"></a> `Panel` | [`ComponentFn`](../../play-dom/type-aliases/ComponentFn.md)\<`Catalog`\<\{ `catalog`: `SchemaType`\<`"object"`, \{ `actions`: `SchemaType`\<`"map"`, \{ `description`: `SchemaType`\<`"string"`, `unknown`\>; `params`: `SchemaType`\<`"zod"`, `unknown`\>; \}\>; `components`: `SchemaType`\<`"map"`, \{ `description`: `SchemaType`\<`"string"`, `unknown`\>; `example`: `SchemaType`\<`"any"`, `unknown`\>; `props`: `SchemaType`\<`"zod"`, `unknown`\>; `slots`: `SchemaType`\<`"array"`, `SchemaType`\<`"string"`, `unknown`\>\>; \}\>; \}\>; `spec`: `SchemaType`\<`"object"`, \{ `elements`: `SchemaType`\<`"record"`, `SchemaType`\<`"object"`, \{ `children`: `SchemaType`\<`"array"`, `SchemaType`\<..., ...\>\>; `props`: `SchemaType`\<`"propsOf"`, `string`\>; `repeat`: \{ `inner?`: `unknown`; `kind`: `"any"`; `optional`: `true`; \}; `slots`: \{ `inner?`: ... \| ...; `kind`: `"record"`; `optional`: `true`; \}; `type`: `SchemaType`\<`"ref"`, `string`\>; `visible`: \{ `inner?`: `unknown`; `kind`: `"any"`; `optional`: `true`; \}; \}\>\>; `root`: `SchemaType`\<`"string"`, `unknown`\>; \}\>; \}, \{ `actions`: \{ `addTask`: \{ `description`: `"Add a task (sends task.add to the machine)"`; `params`: `ZodObject`\<\{ `title`: `ZodString`; \}, `$strip`\>; \}; `completeTask`: \{ `description`: `"Mark a task done (sends task.complete to the machine)"`; `params`: `ZodObject`\<\{ `id`: `ZodString`; \}, `$strip`\>; \}; `login`: \{ `description`: `"Login with username"`; `params`: `ZodObject`\<\{ `username`: `ZodString`; \}, `$strip`\>; \}; `logout`: \{ `description`: `"Logout and return to home"`; \}; `removeTask`: \{ `description`: `"Remove a task (sends task.remove to the machine)"`; `params`: `ZodObject`\<\{ `id`: `ZodString`; \}, `$strip`\>; \}; `resetForm`: \{ `description`: `"Reset a demo form to its defaults (confirm-gated in the spec)"`; `params`: `ZodObject`\<\{ `form`: `ZodString`; \}, `$strip`\>; \}; `route`: \{ `description`: `"Navigate to a route by path (e.g. '#home', '#login', '#dashboard')"`; `params`: `ZodObject`\<\{ `params`: `ZodOptional`\<`ZodRecord`\<`ZodString`, `ZodString`\>\>; `to`: `ZodString`; \}, `$strip`\>; \}; `submitForm`: \{ `description`: `"Submit a demo form; rejects when the form did not pass validation"`; `params`: `ZodObject`\<\{ `form`: `ZodString`; `valid`: `ZodOptional`\<`ZodNullable`\<`ZodBoolean`\>\>; \}, `$strip`\>; \}; \}; `components`: \{ `About`: \{ `props`: `ZodObject`\<\{ `title`: `ZodString`; \}, `$strip`\>; \}; `Button`: \{ `props`: `ZodObject`\<\{ `disabled`: `ZodOptional`\<`ZodBoolean`\>; `label`: `ZodString`; `testId`: `ZodOptional`\<`ZodString`\>; `variant`: `ZodOptional`\<`ZodEnum`\<\{ `danger`: ...; `primary`: ...; `secondary`: ...; \}\>\>; \}, `$strip`\>; \}; `Contact`: \{ `props`: `ZodObject`\<\{ `title`: `ZodString`; \}, `$strip`\>; \}; `Dashboard`: \{ `props`: `ZodObject`\<\{ `username`: `ZodString`; `welcome`: `ZodBoolean`; \}, `$strip`\>; \}; `Field`: \{ `props`: `ZodObject`\<\{ `checks`: `ZodOptional`\<`ZodArray`\<`ZodCustom`\<..., ...\>\>\>; `formErrors`: `ZodOptional`\<`ZodRecord`\<`ZodString`, `ZodArray`\<...\>\>\>; `inputType`: `ZodOptional`\<`ZodEnum`\<\{ `email`: ...; `text`: ...; `textarea`: ...; \}\>\>; `label`: `ZodString`; `placeholder`: `ZodOptional`\<`ZodString`\>; `testId`: `ZodOptional`\<`ZodString`\>; `value`: `ZodOptional`\<`ZodString`\>; \}, `$strip`\>; \}; `Home`: \{ `props`: `ZodObject`\<\{ `title`: `ZodString`; \}, `$strip`\>; \}; `Login`: \{ `props`: `ZodObject`\<\{ `title`: `ZodString`; `username`: `ZodOptional`\<`ZodString`\>; \}, `$strip`\>; \}; `NavBar`: \{ `props`: `ZodObject`\<\{ `isAuthenticated`: `ZodBoolean`; `username`: `ZodNullable`\<`ZodString`\>; \}, `$strip`\>; \}; `Navigation`: \{ `props`: `ZodObject`\<\{ `currentPath`: `ZodString`; `isAuthenticated`: `ZodBoolean`; \}, `$strip`\>; \}; `Overview`: \{ `props`: `ZodObject`\<\{ `title`: `ZodString`; \}, `$strip`\>; \}; `Panel`: \{ `props`: `ZodObject`\<\{ `note`: `ZodOptional`\<`ZodUnion`\<readonly \[..., ..., ..., ...\]\>\>; `testId`: `ZodOptional`\<`ZodString`\>; `title`: `ZodOptional`\<`ZodUnion`\<readonly \[..., ...\]\>\>; `tone`: `ZodOptional`\<`ZodEnum`\<\{ `danger`: ...; `default`: ...; `muted`: ...; `success`: ...; \}\>\>; \}, `$strip`\>; \}; `Profile`: \{ `props`: `ZodObject`\<\{ `username`: `ZodString`; \}, `$strip`\>; \}; `Settings`: \{ `props`: `ZodObject`\<\{ `section`: `ZodOptional`\<`ZodString`\>; `username`: `ZodString`; \}, `$strip`\>; \}; `Stats`: \{ `props`: `ZodObject`\<\{ `title`: `ZodString`; \}, `$strip`\>; \}; \}; \}\>, `"Panel"`\> | - | Panel — generic container leaf for the 0.20 showcase. Renders an optional title and note, then appends its rendered spec `children` — repeat containers render ONCE and their children render per item, so a Panel is both the list shell and the row. | [packages/play-dom/examples/demo/src/components/demo-components.ts:32](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.1/packages/play-dom/examples/demo/src/components/demo-components.ts#L32) |
28
+ | <a id="property-profile"></a> `Profile` | [`ComponentFn`](../../play-dom/type-aliases/ComponentFn.md)\<`Catalog`\<\{ `catalog`: `SchemaType`\<`"object"`, \{ `actions`: `SchemaType`\<`"map"`, \{ `description`: `SchemaType`\<`"string"`, `unknown`\>; `params`: `SchemaType`\<`"zod"`, `unknown`\>; \}\>; `components`: `SchemaType`\<`"map"`, \{ `description`: `SchemaType`\<`"string"`, `unknown`\>; `example`: `SchemaType`\<`"any"`, `unknown`\>; `props`: `SchemaType`\<`"zod"`, `unknown`\>; `slots`: `SchemaType`\<`"array"`, `SchemaType`\<`"string"`, `unknown`\>\>; \}\>; \}\>; `spec`: `SchemaType`\<`"object"`, \{ `elements`: `SchemaType`\<`"record"`, `SchemaType`\<`"object"`, \{ `children`: `SchemaType`\<`"array"`, `SchemaType`\<..., ...\>\>; `props`: `SchemaType`\<`"propsOf"`, `string`\>; `repeat`: \{ `inner?`: `unknown`; `kind`: `"any"`; `optional`: `true`; \}; `slots`: \{ `inner?`: ... \| ...; `kind`: `"record"`; `optional`: `true`; \}; `type`: `SchemaType`\<`"ref"`, `string`\>; `visible`: \{ `inner?`: `unknown`; `kind`: `"any"`; `optional`: `true`; \}; \}\>\>; `root`: `SchemaType`\<`"string"`, `unknown`\>; \}\>; \}, \{ `actions`: \{ `addTask`: \{ `description`: `"Add a task (sends task.add to the machine)"`; `params`: `ZodObject`\<\{ `title`: `ZodString`; \}, `$strip`\>; \}; `completeTask`: \{ `description`: `"Mark a task done (sends task.complete to the machine)"`; `params`: `ZodObject`\<\{ `id`: `ZodString`; \}, `$strip`\>; \}; `login`: \{ `description`: `"Login with username"`; `params`: `ZodObject`\<\{ `username`: `ZodString`; \}, `$strip`\>; \}; `logout`: \{ `description`: `"Logout and return to home"`; \}; `removeTask`: \{ `description`: `"Remove a task (sends task.remove to the machine)"`; `params`: `ZodObject`\<\{ `id`: `ZodString`; \}, `$strip`\>; \}; `resetForm`: \{ `description`: `"Reset a demo form to its defaults (confirm-gated in the spec)"`; `params`: `ZodObject`\<\{ `form`: `ZodString`; \}, `$strip`\>; \}; `route`: \{ `description`: `"Navigate to a route by path (e.g. '#home', '#login', '#dashboard')"`; `params`: `ZodObject`\<\{ `params`: `ZodOptional`\<`ZodRecord`\<`ZodString`, `ZodString`\>\>; `to`: `ZodString`; \}, `$strip`\>; \}; `submitForm`: \{ `description`: `"Submit a demo form; rejects when the form did not pass validation"`; `params`: `ZodObject`\<\{ `form`: `ZodString`; `valid`: `ZodOptional`\<`ZodNullable`\<`ZodBoolean`\>\>; \}, `$strip`\>; \}; \}; `components`: \{ `About`: \{ `props`: `ZodObject`\<\{ `title`: `ZodString`; \}, `$strip`\>; \}; `Button`: \{ `props`: `ZodObject`\<\{ `disabled`: `ZodOptional`\<`ZodBoolean`\>; `label`: `ZodString`; `testId`: `ZodOptional`\<`ZodString`\>; `variant`: `ZodOptional`\<`ZodEnum`\<\{ `danger`: ...; `primary`: ...; `secondary`: ...; \}\>\>; \}, `$strip`\>; \}; `Contact`: \{ `props`: `ZodObject`\<\{ `title`: `ZodString`; \}, `$strip`\>; \}; `Dashboard`: \{ `props`: `ZodObject`\<\{ `username`: `ZodString`; `welcome`: `ZodBoolean`; \}, `$strip`\>; \}; `Field`: \{ `props`: `ZodObject`\<\{ `checks`: `ZodOptional`\<`ZodArray`\<`ZodCustom`\<..., ...\>\>\>; `formErrors`: `ZodOptional`\<`ZodRecord`\<`ZodString`, `ZodArray`\<...\>\>\>; `inputType`: `ZodOptional`\<`ZodEnum`\<\{ `email`: ...; `text`: ...; `textarea`: ...; \}\>\>; `label`: `ZodString`; `placeholder`: `ZodOptional`\<`ZodString`\>; `testId`: `ZodOptional`\<`ZodString`\>; `value`: `ZodOptional`\<`ZodString`\>; \}, `$strip`\>; \}; `Home`: \{ `props`: `ZodObject`\<\{ `title`: `ZodString`; \}, `$strip`\>; \}; `Login`: \{ `props`: `ZodObject`\<\{ `title`: `ZodString`; `username`: `ZodOptional`\<`ZodString`\>; \}, `$strip`\>; \}; `NavBar`: \{ `props`: `ZodObject`\<\{ `isAuthenticated`: `ZodBoolean`; `username`: `ZodNullable`\<`ZodString`\>; \}, `$strip`\>; \}; `Navigation`: \{ `props`: `ZodObject`\<\{ `currentPath`: `ZodString`; `isAuthenticated`: `ZodBoolean`; \}, `$strip`\>; \}; `Overview`: \{ `props`: `ZodObject`\<\{ `title`: `ZodString`; \}, `$strip`\>; \}; `Panel`: \{ `props`: `ZodObject`\<\{ `note`: `ZodOptional`\<`ZodUnion`\<readonly \[..., ..., ..., ...\]\>\>; `testId`: `ZodOptional`\<`ZodString`\>; `title`: `ZodOptional`\<`ZodUnion`\<readonly \[..., ...\]\>\>; `tone`: `ZodOptional`\<`ZodEnum`\<\{ `danger`: ...; `default`: ...; `muted`: ...; `success`: ...; \}\>\>; \}, `$strip`\>; \}; `Profile`: \{ `props`: `ZodObject`\<\{ `username`: `ZodString`; \}, `$strip`\>; \}; `Settings`: \{ `props`: `ZodObject`\<\{ `section`: `ZodOptional`\<`ZodString`\>; `username`: `ZodString`; \}, `$strip`\>; \}; `Stats`: \{ `props`: `ZodObject`\<\{ `title`: `ZodString`; \}, `$strip`\>; \}; \}; \}\>, `"Profile"`\> | - | Profile — Protected user profile page. Catalog-typed DOM component (ComponentFn<AuthCatalog, 'Profile'>). Renders username from route params filled into props. | [packages/play-dom/examples/demo/src/components/demo-components.ts:28](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.1/packages/play-dom/examples/demo/src/components/demo-components.ts#L28) |
29
+ | <a id="property-settings"></a> `Settings` | [`ComponentFn`](../../play-dom/type-aliases/ComponentFn.md)\<`Catalog`\<\{ `catalog`: `SchemaType`\<`"object"`, \{ `actions`: `SchemaType`\<`"map"`, \{ `description`: `SchemaType`\<`"string"`, `unknown`\>; `params`: `SchemaType`\<`"zod"`, `unknown`\>; \}\>; `components`: `SchemaType`\<`"map"`, \{ `description`: `SchemaType`\<`"string"`, `unknown`\>; `example`: `SchemaType`\<`"any"`, `unknown`\>; `props`: `SchemaType`\<`"zod"`, `unknown`\>; `slots`: `SchemaType`\<`"array"`, `SchemaType`\<`"string"`, `unknown`\>\>; \}\>; \}\>; `spec`: `SchemaType`\<`"object"`, \{ `elements`: `SchemaType`\<`"record"`, `SchemaType`\<`"object"`, \{ `children`: `SchemaType`\<`"array"`, `SchemaType`\<..., ...\>\>; `props`: `SchemaType`\<`"propsOf"`, `string`\>; `repeat`: \{ `inner?`: `unknown`; `kind`: `"any"`; `optional`: `true`; \}; `slots`: \{ `inner?`: ... \| ...; `kind`: `"record"`; `optional`: `true`; \}; `type`: `SchemaType`\<`"ref"`, `string`\>; `visible`: \{ `inner?`: `unknown`; `kind`: `"any"`; `optional`: `true`; \}; \}\>\>; `root`: `SchemaType`\<`"string"`, `unknown`\>; \}\>; \}, \{ `actions`: \{ `addTask`: \{ `description`: `"Add a task (sends task.add to the machine)"`; `params`: `ZodObject`\<\{ `title`: `ZodString`; \}, `$strip`\>; \}; `completeTask`: \{ `description`: `"Mark a task done (sends task.complete to the machine)"`; `params`: `ZodObject`\<\{ `id`: `ZodString`; \}, `$strip`\>; \}; `login`: \{ `description`: `"Login with username"`; `params`: `ZodObject`\<\{ `username`: `ZodString`; \}, `$strip`\>; \}; `logout`: \{ `description`: `"Logout and return to home"`; \}; `removeTask`: \{ `description`: `"Remove a task (sends task.remove to the machine)"`; `params`: `ZodObject`\<\{ `id`: `ZodString`; \}, `$strip`\>; \}; `resetForm`: \{ `description`: `"Reset a demo form to its defaults (confirm-gated in the spec)"`; `params`: `ZodObject`\<\{ `form`: `ZodString`; \}, `$strip`\>; \}; `route`: \{ `description`: `"Navigate to a route by path (e.g. '#home', '#login', '#dashboard')"`; `params`: `ZodObject`\<\{ `params`: `ZodOptional`\<`ZodRecord`\<`ZodString`, `ZodString`\>\>; `to`: `ZodString`; \}, `$strip`\>; \}; `submitForm`: \{ `description`: `"Submit a demo form; rejects when the form did not pass validation"`; `params`: `ZodObject`\<\{ `form`: `ZodString`; `valid`: `ZodOptional`\<`ZodNullable`\<`ZodBoolean`\>\>; \}, `$strip`\>; \}; \}; `components`: \{ `About`: \{ `props`: `ZodObject`\<\{ `title`: `ZodString`; \}, `$strip`\>; \}; `Button`: \{ `props`: `ZodObject`\<\{ `disabled`: `ZodOptional`\<`ZodBoolean`\>; `label`: `ZodString`; `testId`: `ZodOptional`\<`ZodString`\>; `variant`: `ZodOptional`\<`ZodEnum`\<\{ `danger`: ...; `primary`: ...; `secondary`: ...; \}\>\>; \}, `$strip`\>; \}; `Contact`: \{ `props`: `ZodObject`\<\{ `title`: `ZodString`; \}, `$strip`\>; \}; `Dashboard`: \{ `props`: `ZodObject`\<\{ `username`: `ZodString`; `welcome`: `ZodBoolean`; \}, `$strip`\>; \}; `Field`: \{ `props`: `ZodObject`\<\{ `checks`: `ZodOptional`\<`ZodArray`\<`ZodCustom`\<..., ...\>\>\>; `formErrors`: `ZodOptional`\<`ZodRecord`\<`ZodString`, `ZodArray`\<...\>\>\>; `inputType`: `ZodOptional`\<`ZodEnum`\<\{ `email`: ...; `text`: ...; `textarea`: ...; \}\>\>; `label`: `ZodString`; `placeholder`: `ZodOptional`\<`ZodString`\>; `testId`: `ZodOptional`\<`ZodString`\>; `value`: `ZodOptional`\<`ZodString`\>; \}, `$strip`\>; \}; `Home`: \{ `props`: `ZodObject`\<\{ `title`: `ZodString`; \}, `$strip`\>; \}; `Login`: \{ `props`: `ZodObject`\<\{ `title`: `ZodString`; `username`: `ZodOptional`\<`ZodString`\>; \}, `$strip`\>; \}; `NavBar`: \{ `props`: `ZodObject`\<\{ `isAuthenticated`: `ZodBoolean`; `username`: `ZodNullable`\<`ZodString`\>; \}, `$strip`\>; \}; `Navigation`: \{ `props`: `ZodObject`\<\{ `currentPath`: `ZodString`; `isAuthenticated`: `ZodBoolean`; \}, `$strip`\>; \}; `Overview`: \{ `props`: `ZodObject`\<\{ `title`: `ZodString`; \}, `$strip`\>; \}; `Panel`: \{ `props`: `ZodObject`\<\{ `note`: `ZodOptional`\<`ZodUnion`\<readonly \[..., ..., ..., ...\]\>\>; `testId`: `ZodOptional`\<`ZodString`\>; `title`: `ZodOptional`\<`ZodUnion`\<readonly \[..., ...\]\>\>; `tone`: `ZodOptional`\<`ZodEnum`\<\{ `danger`: ...; `default`: ...; `muted`: ...; `success`: ...; \}\>\>; \}, `$strip`\>; \}; `Profile`: \{ `props`: `ZodObject`\<\{ `username`: `ZodString`; \}, `$strip`\>; \}; `Settings`: \{ `props`: `ZodObject`\<\{ `section`: `ZodOptional`\<`ZodString`\>; `username`: `ZodString`; \}, `$strip`\>; \}; `Stats`: \{ `props`: `ZodObject`\<\{ `title`: `ZodString`; \}, `$strip`\>; \}; \}; \}\>, `"Settings"`\> | - | Settings — Protected settings page. Catalog-typed DOM component (ComponentFn<AuthCatalog, 'Settings'>). Renders active section and username from props. | [packages/play-dom/examples/demo/src/components/demo-components.ts:29](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.1/packages/play-dom/examples/demo/src/components/demo-components.ts#L29) |
30
+ | <a id="property-stats"></a> `Stats` | [`ComponentFn`](../../play-dom/type-aliases/ComponentFn.md)\<`Catalog`\<\{ `catalog`: `SchemaType`\<`"object"`, \{ `actions`: `SchemaType`\<`"map"`, \{ `description`: `SchemaType`\<`"string"`, `unknown`\>; `params`: `SchemaType`\<`"zod"`, `unknown`\>; \}\>; `components`: `SchemaType`\<`"map"`, \{ `description`: `SchemaType`\<`"string"`, `unknown`\>; `example`: `SchemaType`\<`"any"`, `unknown`\>; `props`: `SchemaType`\<`"zod"`, `unknown`\>; `slots`: `SchemaType`\<`"array"`, `SchemaType`\<`"string"`, `unknown`\>\>; \}\>; \}\>; `spec`: `SchemaType`\<`"object"`, \{ `elements`: `SchemaType`\<`"record"`, `SchemaType`\<`"object"`, \{ `children`: `SchemaType`\<`"array"`, `SchemaType`\<..., ...\>\>; `props`: `SchemaType`\<`"propsOf"`, `string`\>; `repeat`: \{ `inner?`: `unknown`; `kind`: `"any"`; `optional`: `true`; \}; `slots`: \{ `inner?`: ... \| ...; `kind`: `"record"`; `optional`: `true`; \}; `type`: `SchemaType`\<`"ref"`, `string`\>; `visible`: \{ `inner?`: `unknown`; `kind`: `"any"`; `optional`: `true`; \}; \}\>\>; `root`: `SchemaType`\<`"string"`, `unknown`\>; \}\>; \}, \{ `actions`: \{ `addTask`: \{ `description`: `"Add a task (sends task.add to the machine)"`; `params`: `ZodObject`\<\{ `title`: `ZodString`; \}, `$strip`\>; \}; `completeTask`: \{ `description`: `"Mark a task done (sends task.complete to the machine)"`; `params`: `ZodObject`\<\{ `id`: `ZodString`; \}, `$strip`\>; \}; `login`: \{ `description`: `"Login with username"`; `params`: `ZodObject`\<\{ `username`: `ZodString`; \}, `$strip`\>; \}; `logout`: \{ `description`: `"Logout and return to home"`; \}; `removeTask`: \{ `description`: `"Remove a task (sends task.remove to the machine)"`; `params`: `ZodObject`\<\{ `id`: `ZodString`; \}, `$strip`\>; \}; `resetForm`: \{ `description`: `"Reset a demo form to its defaults (confirm-gated in the spec)"`; `params`: `ZodObject`\<\{ `form`: `ZodString`; \}, `$strip`\>; \}; `route`: \{ `description`: `"Navigate to a route by path (e.g. '#home', '#login', '#dashboard')"`; `params`: `ZodObject`\<\{ `params`: `ZodOptional`\<`ZodRecord`\<`ZodString`, `ZodString`\>\>; `to`: `ZodString`; \}, `$strip`\>; \}; `submitForm`: \{ `description`: `"Submit a demo form; rejects when the form did not pass validation"`; `params`: `ZodObject`\<\{ `form`: `ZodString`; `valid`: `ZodOptional`\<`ZodNullable`\<`ZodBoolean`\>\>; \}, `$strip`\>; \}; \}; `components`: \{ `About`: \{ `props`: `ZodObject`\<\{ `title`: `ZodString`; \}, `$strip`\>; \}; `Button`: \{ `props`: `ZodObject`\<\{ `disabled`: `ZodOptional`\<`ZodBoolean`\>; `label`: `ZodString`; `testId`: `ZodOptional`\<`ZodString`\>; `variant`: `ZodOptional`\<`ZodEnum`\<\{ `danger`: ...; `primary`: ...; `secondary`: ...; \}\>\>; \}, `$strip`\>; \}; `Contact`: \{ `props`: `ZodObject`\<\{ `title`: `ZodString`; \}, `$strip`\>; \}; `Dashboard`: \{ `props`: `ZodObject`\<\{ `username`: `ZodString`; `welcome`: `ZodBoolean`; \}, `$strip`\>; \}; `Field`: \{ `props`: `ZodObject`\<\{ `checks`: `ZodOptional`\<`ZodArray`\<`ZodCustom`\<..., ...\>\>\>; `formErrors`: `ZodOptional`\<`ZodRecord`\<`ZodString`, `ZodArray`\<...\>\>\>; `inputType`: `ZodOptional`\<`ZodEnum`\<\{ `email`: ...; `text`: ...; `textarea`: ...; \}\>\>; `label`: `ZodString`; `placeholder`: `ZodOptional`\<`ZodString`\>; `testId`: `ZodOptional`\<`ZodString`\>; `value`: `ZodOptional`\<`ZodString`\>; \}, `$strip`\>; \}; `Home`: \{ `props`: `ZodObject`\<\{ `title`: `ZodString`; \}, `$strip`\>; \}; `Login`: \{ `props`: `ZodObject`\<\{ `title`: `ZodString`; `username`: `ZodOptional`\<`ZodString`\>; \}, `$strip`\>; \}; `NavBar`: \{ `props`: `ZodObject`\<\{ `isAuthenticated`: `ZodBoolean`; `username`: `ZodNullable`\<`ZodString`\>; \}, `$strip`\>; \}; `Navigation`: \{ `props`: `ZodObject`\<\{ `currentPath`: `ZodString`; `isAuthenticated`: `ZodBoolean`; \}, `$strip`\>; \}; `Overview`: \{ `props`: `ZodObject`\<\{ `title`: `ZodString`; \}, `$strip`\>; \}; `Panel`: \{ `props`: `ZodObject`\<\{ `note`: `ZodOptional`\<`ZodUnion`\<readonly \[..., ..., ..., ...\]\>\>; `testId`: `ZodOptional`\<`ZodString`\>; `title`: `ZodOptional`\<`ZodUnion`\<readonly \[..., ...\]\>\>; `tone`: `ZodOptional`\<`ZodEnum`\<\{ `danger`: ...; `default`: ...; `muted`: ...; `success`: ...; \}\>\>; \}, `$strip`\>; \}; `Profile`: \{ `props`: `ZodObject`\<\{ `username`: `ZodString`; \}, `$strip`\>; \}; `Settings`: \{ `props`: `ZodObject`\<\{ `section`: `ZodOptional`\<`ZodString`\>; `username`: `ZodString`; \}, `$strip`\>; \}; `Stats`: \{ `props`: `ZodObject`\<\{ `title`: `ZodString`; \}, `$strip`\>; \}; \}; \}\>, `"Stats"`\> | - | Stats — Dashboard stats child route. Catalog-typed DOM component (ComponentFn<AuthCatalog, 'Stats'>). Relative route resolves to /dashboard/stats. goToOverview button emits action. | [packages/play-dom/examples/demo/src/components/demo-components.ts:27](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.1/packages/play-dom/examples/demo/src/components/demo-components.ts#L27) |
@@ -1,18 +1,19 @@
1
1
  [Examples](../../README.md) / @xmachines/play-dom-router-demo
2
2
 
3
- <!-- generated-by: gsd-doc-writer -->
4
-
5
3
  # @xmachines/play-dom-router-demo
6
4
 
7
5
  Pure TypeScript integration demo for [`@xmachines/play-dom-router`](../../../api/@xmachines/play-dom-router/README.md) — actor-authoritative routing with the Browser History API and no framework.
8
6
 
7
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
8
+
9
9
  ## What This Demonstrates
10
10
 
11
11
  - Shared auth machine reused without framework-specific business logic
12
12
  - `connectRouter` + `createBrowserHistory` wiring actor ↔ browser History API
13
13
  - Shell-driven DOM rendering via `connectRenderer` with actor-authoritative navigation
14
- - Manual TC39 Signal watcher lifecycle — the mechanism that framework adapters abstract
14
+ - Manual atom watcher lifecycle — the mechanism that framework adapters abstract
15
15
  - Non-browser invariant tests plus browser E2E coverage
16
+ - Stately inspector attached at creation via `options.inspect` — the debug panel's **Show Inspector** button opens the live machine in its own window
16
17
 
17
18
  ## Running the Demo
18
19
 
@@ -30,9 +31,9 @@ Then open `http://localhost:3005`.
30
31
  Use this order to understand the implementation:
31
32
 
32
33
  1. `src/main.ts` looks up the host element (throws if absent), calls `initApp(app)` from `src/runtime.ts`, and registers unload cleanup.
33
- 2. `src/runtime.ts` creates the actor from the shared machine via `definePlayer`, starts it, initializes router sync via `initRouter(actor)`, mounts the shared DOM shell via `initShell(actor, host)`, and returns one cleanup function.
34
+ 2. `src/runtime.ts` creates the page's inspector with `createDemoInspector()`, creates the actor from the shared machine via `definePlayer` with `options.inspect` wired to it, starts it, initializes router sync via `initRouter(actor)`, mounts the shared DOM shell via `initShell(actor, host, inspector)`, and returns one cleanup function.
34
35
  3. `initRouter(actor)` from `src/router.ts` extracts route metadata, creates a browser history wrapper, instantiates a router, and calls `connectRouter` to wire bidirectional actor ↔ URL sync.
35
- 4. `initShell(actor, host)` is imported from `@xmachines/play-dom-demo`, so the router demo reuses the shared DOM shell instead of duplicating the scaffold and renderer wiring.
36
+ 4. `initShell(actor, host, inspector)` is imported from `@xmachines/play-dom-demo`, so the router demo reuses the shared DOM shell — inspector button included — instead of duplicating the scaffold and renderer wiring.
36
37
  5. Navigation buttons and links dispatch `play.route`, `auth.login`, and `auth.logout` events directly to the actor — no URL mutations from the shell.
37
38
  6. Browser tests in `test/browser/` validate startup rendering and the full auth route flow.
38
39
 
@@ -50,7 +51,7 @@ window.addEventListener("beforeunload", () => {
50
51
 
51
52
  ```ts
52
53
  // src/router.ts (shape)
53
- export function initRouter(actor) {
54
+ export function initRouter(actor: RoutableActor) {
54
55
  const routeTree = extractMachineRoutes(authMachine);
55
56
  const routeMap = createRouteMap(authMachine);
56
57
  const history = createBrowserHistory({ window });
@@ -67,12 +68,16 @@ export function initRouter(actor) {
67
68
  ```ts
68
69
  // src/runtime.ts (shape)
69
70
  export function initApp(host: HTMLElement): () => void {
70
- const createPlayer = definePlayer({ machine: authMachine });
71
+ const inspector = createDemoInspector();
72
+ const createPlayer = definePlayer({
73
+ machine: authMachine,
74
+ options: { inspect: inspector.inspect },
75
+ });
71
76
  const actor = createPlayer();
72
77
  actor.start();
73
78
 
74
79
  const cleanupRouter = initRouter(actor);
75
- const cleanupShell = initShell(actor, host);
80
+ const cleanupShell = initShell(actor, host, inspector);
76
81
 
77
82
  return () => {
78
83
  cleanupShell();
@@ -87,7 +92,7 @@ export function initApp(host: HTMLElement): () => void {
87
92
  - `src/main.ts` - host lookup, app bootstrap, and unload cleanup
88
93
  - `src/runtime.ts` - actor startup, router initialization, and shared shell wiring
89
94
  - `src/router.ts` - `createBrowserHistory`, `createRouter`, and `connectRouter` wiring
90
- - `@xmachines/play-dom-demo` - shared DOM shell, NavBar, DebugPanel, and renderer wiring reused by this router demo
95
+ - `@xmachines/play-dom-demo` - shared DOM shell, NavBar, DebugPanel (including the **Show Inspector** button), and renderer wiring reused by this router demo
91
96
  - `test/library-pattern.test.ts` - architecture boundary and invariant assertions
92
97
  - `test/browser/shared-demo.browser.test.ts` - startup rendering and full auth route browser flow
93
98
 
@@ -97,19 +102,17 @@ The demo utilizes XMachines architectural invariants at the lowest level:
97
102
 
98
103
  1. **Actor Authority:** Intercepting browser `popstate` events or navigation button clicks dispatches a `play.route` event to the actor. The actor processes the request against the current state, ensuring any auth logic is correctly applied.
99
104
  2. **Passive Infrastructure:** The router simply updates `window.history` and the DOM solely renders HTML based on what `actor.currentView` yields. Neither holds business state.
100
- 3. **Signal-Only Reactivity:** The integration registers `watchSignal` observers that trigger DOM reconciliation, illustrating the underlying mechanism that framework adapters abstract.
105
+ 3. **Atom-Only Reactivity:** The integration registers `watchAtom` observers that trigger DOM reconciliation, illustrating the underlying mechanism that framework adapters abstract.
101
106
 
102
107
  ## Watcher Lifecycle and Cleanup Contract
103
108
 
104
109
  Even in the vanilla demo, watcher handling follows the canonical lifecycle:
105
110
 
106
- 1. `notify`
107
- 2. `queueMicrotask`
108
- 3. `getPending()`
109
- 4. Read actor signals and project DOM state
110
- 5. Re-arm with `watch()`/`watch(...signals)`
111
+ 1. The atom notifies the subscription, synchronously, from the `set` that changed it
112
+ 2. `watchAtom` queues one microtask, and it drops each duplicate notification of that batch
113
+ 3. The microtask reads the actor atoms and projects DOM state
111
114
 
112
- Watcher notifications are one-shot, so re-arm is mandatory. Router/shell teardown must explicitly call cleanup (`disconnect`/`unwatch`) and not rely on GC-only behavior. In vanilla TypeScript, this means retaining cleanup functions and calling them on `beforeunload` or during hot-module replacement.
115
+ One subscription lives for the whole watch, and no caller arms a watcher again. Router/shell teardown must explicitly call cleanup (`disconnect`/`unwatch`) and not rely on GC-only behavior. In vanilla TypeScript, this means retaining cleanup functions and calling them on `beforeunload` or during hot-module replacement.
113
116
 
114
117
  ## Adapter Boundaries
115
118
 
@@ -127,19 +130,9 @@ These commands are defined in `package.json`:
127
130
  | `pnpm --filter @xmachines/play-dom-router-demo run test` | Run Vitest test suite |
128
131
  | `pnpm --filter @xmachines/play-dom-router-demo run test:browser` | Run browser-focused Vitest suite |
129
132
 
130
- ## Verification
131
-
132
- Use these checks to validate README claims against the current demo implementation:
133
-
134
- ```bash
135
- pnpm --filter @xmachines/play-dom-router-demo run test
136
- pnpm --filter @xmachines/play-dom-router-demo run test:browser
137
- ```
138
-
139
- Expected result: tests pass, including startup rendering and the full browser auth flow in `test/browser/`.
140
-
141
133
  ## Learn More
142
134
 
143
135
  - [Play DOM Router](../../../api/@xmachines/play-dom-router/README.md)
144
136
  - [Play DOM](../play-dom-demo/README.md)
145
137
  - [Play Router](../../../api/@xmachines/play-router/README.md)
138
+ - [Inspecting a Running Actor](../../../guides/inspector.md)
@@ -1,18 +1,24 @@
1
1
  [Examples](../../README.md) / @xmachines/play-react-demo
2
2
 
3
- <!-- generated-by: gsd-doc-writer -->
4
-
5
3
  # @xmachines/play-react-demo
6
4
 
7
5
  React renderer demo for [`@xmachines/play-react`](../../../api/@xmachines/play-react/README.md) — actor + `PlayRenderer` without a router.
8
6
 
7
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
8
+
9
9
  ## What This Demonstrates
10
10
 
11
11
  - Shared auth machine reused without framework-specific business logic
12
12
  - `PlayRenderer` rendering actor-projected views with a typed `defineRegistry` catalog
13
13
  - Auth machine states drive view switching via `auth.login` / `auth.logout` events only — no `play.route` routing
14
- - Canonical TC39 Signals lifecycle surfaced through React's rendering model
14
+ - Canonical atoms lifecycle surfaced through React's rendering model
15
15
  - Non-browser invariant tests plus browser renderer coverage
16
+ - Stately inspector attached at creation via `options.inspect` — the debug panel's **Show Inspector** button opens the live machine in its own window
17
+ - json-render 0.20 showcase pages driven purely by spec:
18
+ - **Overview** — two data planes side by side: `/context/tasks` (machine context via the read-only `/context` projection; `repeat` + `key`, `$item`-filtered lists, per-row actions sending inspectable machine events) next to ephemeral store state (`pushState`/`removeState`/`setState` built-ins driving filter chips and toggles that survive context updates)
19
+ - **Stats** — nested repeats (`repeat.statePath: { $item: "members" }`) over `/context/teams`
20
+ - **Settings** — declarative field validation, the `validateForm` built-in, a confirm-gated `resetForm` host action, and `onSuccess`/`onError` chains
21
+ - **Contact** — a chained named action: submit validates, then routes home on success or writes `"$error.message"` to state on failure
16
22
 
17
23
  ## Running the Demo
18
24
 
@@ -30,11 +36,11 @@ Then open `http://localhost:3001`.
30
36
  Use this order to understand the implementation:
31
37
 
32
38
  1. `src/main.tsx` mounts `<App />`.
33
- 2. `src/App.tsx` creates the actor at module scope via `definePlayer({ machine: authMachine })()` — created once when the module is first evaluated.
39
+ 2. `src/App.tsx` creates the page's inspector with `createDemoInspector()` and the actor at module scope via `definePlayer({ machine: authMachine, options: { inspect: inspector.inspect }, actor: compose(PlayerActor, withRouting, withView) })()` — both created once when the module is first evaluated.
34
40
  3. `defineRegistry(authCatalog, { components, actions })` builds the typed `registryResult` — real async action handlers dispatching to `actor.send()`.
35
41
  4. `<PlayUIProvider actor={actor} registryResult={registryResult}><PlayRenderer /></PlayUIProvider>` observes `actor.currentView` and renders the active spec.
36
- 5. A `NavBar` component observes `actor` signals directly for nav visibility.
37
- 6. `<DebugPanel actor={actor} />` shows live state, auth status, and current route.
42
+ 5. A `NavBar` component observes `actor` atoms directly for nav visibility.
43
+ 6. `<DebugPanel actor={actor} inspector={inspector} />` shows live state, auth status, and current route, plus the **Show Inspector** button.
38
44
  7. Browser tests in `test/browser/` validate startup and interaction behavior.
39
45
 
40
46
  ```tsx
@@ -46,39 +52,17 @@ createRoot(document.getElementById("root")!).render(<App />);
46
52
  // src/App.tsx (shape)
47
53
  // Both actor and registryResult are module-scope singletons — created once,
48
54
  // never recreated, no useMemo needed inside the component.
49
- const actor: AuthActor = definePlayer({ machine: authMachine })();
55
+ const inspector = createDemoInspector();
56
+ const actor: AuthActor = definePlayer({
57
+ machine: authMachine,
58
+ options: { inspect: inspector.inspect },
59
+ actor: compose(PlayerActor, withRouting, withView),
60
+ })();
50
61
  actor.start();
51
62
 
52
63
  const registryResult = defineRegistry(authCatalog, {
53
- components: {
54
- Home,
55
- About,
56
- Contact,
57
- Login,
58
- Dashboard,
59
- Overview,
60
- Stats,
61
- Profile,
62
- Settings,
63
- Navigation,
64
- NavBar: NavBarView,
65
- },
66
- actions: {
67
- login: async (args) =>
68
- actor.send({
69
- type: "auth.login",
70
- username: assertNonNullable(args, "args").username,
71
- }),
72
- logout: async () => actor.send({ type: "auth.logout" }),
73
- route: async (args) => {
74
- const { to, params } = assertNonNullable(args, "args");
75
- actor.send({
76
- type: "play.route",
77
- to,
78
- ...(params != null && { params }),
79
- });
80
- },
81
- },
64
+ components: demoComponents, // one shared map — Home…NavBar plus the 0.20 Panel/Field/Button leaves
65
+ actions: createAuthActionHandlers(actor), // login/logout/route + task events + form actions
82
66
  });
83
67
 
84
68
  export function App() {
@@ -93,7 +77,7 @@ export function App() {
93
77
  <PlayRenderer />
94
78
  </PlayUIProvider>
95
79
  </main>
96
- <DebugPanel actor={actor} />
80
+ <DebugPanel actor={actor} inspector={inspector} />
97
81
  </div>
98
82
  );
99
83
  }
@@ -113,20 +97,18 @@ export function App() {
113
97
  The demo utilizes XMachines architectural invariants:
114
98
 
115
99
  1. **Actor Authority:** View components dispatch `auth.login` and `auth.logout` events to the actor. The actor evaluates guards and transitions — React never decides which view to render.
116
- 2. **Passive Infrastructure:** `PlayRenderer` observes `actor.currentView` signals only. It holds no business state and makes no routing decisions.
117
- 3. **Signal-Only Reactivity:** The bridge leverages React's rendering model to react precisely when actor signals update, without polluting the component tree with `useState` or `useEffect` for business logic.
100
+ 2. **Passive Infrastructure:** `PlayRenderer` observes `actor.currentView` atoms only. It holds no business state and makes no routing decisions.
101
+ 3. **Atom-Only Reactivity:** The bridge leverages React's rendering model to react precisely when actor atoms update, without polluting the component tree with `useState` or `useEffect` for business logic.
118
102
 
119
103
  ## Watcher Lifecycle and Cleanup Contract
120
104
 
121
105
  This demo follows the canonical watcher lifecycle used across all `@xmachines` framework adapters:
122
106
 
123
- 1. `notify`
124
- 2. `queueMicrotask`
125
- 3. `getPending()`
126
- 4. Read actor signals and project React render state
127
- 5. Re-arm with `watch()`/`watch(...signals)`
107
+ 1. The atom notifies the subscription, synchronously, from the `set` that changed it
108
+ 2. `watchAtom` queues one microtask, and it drops each duplicate notification of that batch
109
+ 3. The microtask reads the actor atoms and projects React render state
128
110
 
129
- Watcher notifications are one-shot. Cleanup is explicit: `actor.stop()` is called on component unmount via `useEffect`, and `PlayRenderer` handles internal watcher teardown natively.
111
+ One subscription lives for the whole watch, and no caller arms a watcher again. Cleanup is explicit: `actor.stop()` is called on component unmount via `useEffect`, and `PlayRenderer` handles internal watcher teardown natively.
130
112
 
131
113
  ## Adapter Boundaries
132
114
 
@@ -144,21 +126,11 @@ These commands are defined in `package.json`:
144
126
  | `pnpm --filter @xmachines/play-react-demo run test` | Run Vitest test suite |
145
127
  | `pnpm --filter @xmachines/play-react-demo run test:browser` | Run browser-focused Vitest suite |
146
128
 
147
- ## Verification
148
-
149
- Use these checks to validate README claims against the current demo implementation:
150
-
151
- ```bash
152
- pnpm --filter @xmachines/play-react-demo run test
153
- pnpm --filter @xmachines/play-react-demo run test:browser
154
- ```
155
-
156
- Expected result: library-pattern invariant tests pass and the browser renderer suite completes.
157
-
158
129
  ## Learn More
159
130
 
160
131
  - [play-react](../../../api/@xmachines/play-react/README.md)
161
132
  - [React Router demo](../play-react-router-demo/README.md)
133
+ - [Inspecting a Running Actor](../../../guides/inspector.md)
162
134
 
163
135
  ## Type Aliases
164
136
 
@@ -168,15 +140,19 @@ Expected result: library-pattern invariant tests pass and the browser renderer s
168
140
 
169
141
  - [About](variables/About.md)
170
142
  - [authCatalog](variables/authCatalog.md)
143
+ - [Button](variables/Button.md)
171
144
  - [Contact](variables/Contact.md)
172
145
  - [Dashboard](variables/Dashboard.md)
173
146
  - [DebugPanel](variables/DebugPanel.md)
147
+ - [demoComponents](variables/demoComponents.md)
148
+ - [Field](variables/Field.md)
174
149
  - [Home](variables/Home.md)
175
150
  - [Login](variables/Login.md)
176
151
  - [NavBar](variables/NavBar.md)
177
152
  - [NavBarView](variables/NavBarView.md)
178
153
  - [Navigation](variables/Navigation.md)
179
154
  - [Overview](variables/Overview.md)
155
+ - [Panel](variables/Panel.md)
180
156
  - [Profile](variables/Profile.md)
181
157
  - [Settings](variables/Settings.md)
182
158
  - [Shell](variables/Shell.md)
@@ -184,4 +160,4 @@ Expected result: library-pattern invariant tests pass and the browser renderer s
184
160
 
185
161
  ## Functions
186
162
 
187
- - [App](functions/App.md)
163
+ - [createAuthActionHandlers](functions/createAuthActionHandlers.md)
@@ -0,0 +1,35 @@
1
+ [Examples](../../../README.md) / [@xmachines/play-react-demo](../README.md) / createAuthActionHandlers
2
+
3
+ # Function: createAuthActionHandlers()
4
+
5
+ ```ts
6
+ function createAuthActionHandlers(actor): object;
7
+ ```
8
+
9
+ Defined in: [packages/play-actor/examples/shared/src/actions.ts:48](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.1/packages/play-actor/examples/shared/src/actions.ts#L48)
10
+
11
+ Build the demo action handler map for one actor.
12
+
13
+ Returned functions use the `(params, setState) => Promise<void>` shape every
14
+ framework's `defineRegistry` accepts; spread the result into its `actions`.
15
+
16
+ ## Parameters
17
+
18
+ | Parameter | Type |
19
+ | --------- | ----------- |
20
+ | `actor` | `AuthActor` |
21
+
22
+ ## Returns
23
+
24
+ `object`
25
+
26
+ | Name | Type | Defined in |
27
+ | ---------------- | ------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
28
+ | `addTask()` | (`params?`) => `Promise`\<`void`\> | [packages/play-actor/examples/shared/src/actions.ts:65](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.1/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/v5.0.1/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/v5.0.1/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/v5.0.1/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/v5.0.1/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/v5.0.1/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/v5.0.1/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/v5.0.1/packages/play-actor/examples/shared/src/actions.ts#L92) |
@@ -6,4 +6,4 @@
6
6
  type AuthCatalog = typeof authCatalog;
7
7
  ```
8
8
 
9
- Defined in: [packages/play-react/examples/demo/src/catalog.ts:6](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.56/packages/play-react/examples/demo/src/catalog.ts#L6)
9
+ Defined in: [packages/play-react/examples/demo/src/catalog.ts:6](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.1/packages/play-react/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-react/examples/demo/src/components/About.tsx:10](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.56/packages/play-react/examples/demo/src/components/About.tsx#L10)
9
+ Defined in: [packages/play-react/examples/demo/src/components/About.tsx:10](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.1/packages/play-react/examples/demo/src/components/About.tsx#L10)
10
10
 
11
11
  About — Public information page
12
12
 
@@ -0,0 +1,12 @@
1
+ [Examples](../../../README.md) / [@xmachines/play-react-demo](../README.md) / Button
2
+
3
+ # Variable: Button
4
+
5
+ ```ts
6
+ const Button: ComponentFn<AuthCatalog, "Button">;
7
+ ```
8
+
9
+ Defined in: [packages/play-react/examples/demo/src/components/Button.tsx:8](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.1/packages/play-react/examples/demo/src/components/Button.tsx#L8)
10
+
11
+ Button — emits `press`; the spec's `on.press` binding decides what happens
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-react/examples/demo/src/components/Contact.tsx:10](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.56/packages/play-react/examples/demo/src/components/Contact.tsx#L10)
9
+ Defined in: [packages/play-react/examples/demo/src/components/Contact.tsx:10](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v5.0.1/packages/play-react/examples/demo/src/components/Contact.tsx#L10)
10
10
 
11
11
  Contact — Public contact page
12
12