@xmachines/docs 1.0.0-beta.32 → 1.0.0-beta.33
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.
- package/api/@xmachines/play/classes/NonNullableError.md +4 -4
- package/api/@xmachines/play/classes/PlayError.md +4 -4
- package/api/@xmachines/play/functions/assertNonNullable.md +1 -1
- package/api/@xmachines/play/type-aliases/PlayEvent.md +2 -2
- package/api/@xmachines/play-actor/classes/AbstractActor.md +3 -3
- package/api/@xmachines/play-actor/functions/typedSpec.md +1 -1
- package/api/@xmachines/play-actor/interfaces/PlaySpec.md +2 -2
- package/api/@xmachines/play-actor/interfaces/Routable.md +3 -3
- package/api/@xmachines/play-actor/interfaces/ViewMetadata.md +3 -3
- package/api/@xmachines/play-actor/interfaces/Viewable.md +2 -2
- package/api/@xmachines/play-dom/README.md +228 -39
- package/api/@xmachines/play-dom/classes/PlayRenderer.md +39 -26
- package/api/@xmachines/play-dom/functions/connectRenderer.md +39 -20
- package/api/@xmachines/play-dom/functions/createRenderer.md +43 -0
- package/api/@xmachines/play-dom/functions/defineRegistry.md +5 -5
- package/api/@xmachines/play-dom/functions/renderSpec.md +43 -9
- package/api/@xmachines/play-dom/interfaces/ComponentContext.md +7 -7
- package/api/@xmachines/play-dom/interfaces/ConnectRendererOptions.md +11 -9
- package/api/@xmachines/play-dom/interfaces/DefineRegistryResult.md +7 -7
- package/api/@xmachines/play-dom/interfaces/DomRenderContext.md +14 -9
- package/api/@xmachines/play-dom/interfaces/EventHandle.md +4 -4
- package/api/@xmachines/play-dom/interfaces/PlayDomOptions.md +7 -5
- package/api/@xmachines/play-dom/type-aliases/ActionFn.md +23 -7
- package/api/@xmachines/play-dom/type-aliases/Actions.md +1 -1
- package/api/@xmachines/play-dom/type-aliases/BaseComponentProps.md +114 -0
- package/api/@xmachines/play-dom/type-aliases/CatalogHasActions.md +25 -0
- package/api/@xmachines/play-dom/type-aliases/ComponentFn.md +1 -1
- package/api/@xmachines/play-dom/type-aliases/ComponentRegistry.md +1 -1
- package/api/@xmachines/play-dom/type-aliases/DefineRegistryOptions.md +39 -0
- package/api/@xmachines/play-dom/type-aliases/DomComponentRenderer.md +1 -1
- package/api/@xmachines/play-dom/type-aliases/DomRegistry.md +1 -1
- package/api/@xmachines/play-dom/type-aliases/DomSchema.md +1 -1
- package/api/@xmachines/play-dom/type-aliases/SetState.md +30 -0
- package/api/@xmachines/play-dom/variables/schema.md +1 -1
- package/api/@xmachines/play-dom-router/README.md +166 -59
- package/api/@xmachines/play-dom-router/functions/connectRouter.md +1 -1
- package/api/@xmachines/play-dom-router/functions/createBrowserHistory.md +1 -1
- package/api/@xmachines/play-dom-router/functions/createRouteMap.md +1 -1
- package/api/@xmachines/play-dom-router/functions/createRouter.md +1 -1
- package/api/@xmachines/play-dom-router/interfaces/BrowserHistory.md +14 -14
- package/api/@xmachines/play-dom-router/interfaces/BrowserWindow.md +14 -14
- package/api/@xmachines/play-dom-router/interfaces/ConnectRouterOptions.md +4 -4
- package/api/@xmachines/play-dom-router/interfaces/PlayRouteEvent.md +6 -6
- package/api/@xmachines/play-dom-router/interfaces/RouteMap.md +3 -3
- package/api/@xmachines/play-dom-router/interfaces/RouteMapLike.md +3 -3
- package/api/@xmachines/play-dom-router/interfaces/RouteMapping.md +3 -3
- package/api/@xmachines/play-dom-router/interfaces/RouterBridge.md +3 -3
- package/api/@xmachines/play-dom-router/interfaces/VanillaRouter.md +4 -4
- package/api/@xmachines/play-dom-router/type-aliases/RoutableActor.md +1 -1
- package/api/@xmachines/play-react/README.md +1 -0
- package/api/@xmachines/play-react/classes/PlayErrorBoundary.md +5 -5
- package/api/@xmachines/play-react/functions/useActor.md +1 -1
- package/api/@xmachines/play-react/functions/useSignalEffect.md +1 -1
- package/api/@xmachines/play-react/interfaces/PlayErrorBoundaryProps.md +4 -4
- package/api/@xmachines/play-react/interfaces/PlayErrorBoundaryState.md +3 -3
- package/api/@xmachines/play-react/interfaces/PlayRendererProps.md +9 -8
- package/api/@xmachines/play-react/type-aliases/PlayActor.md +1 -1
- package/api/@xmachines/play-react/type-aliases/RenderErrorHandler.md +22 -0
- package/api/@xmachines/play-react/variables/PlayRenderer.md +1 -1
- package/api/@xmachines/play-react-router/classes/ReactRouterBridge.md +23 -23
- package/api/@xmachines/play-react-router/classes/RouteMap.md +4 -4
- package/api/@xmachines/play-react-router/functions/PlayRouterProvider.md +1 -1
- package/api/@xmachines/play-react-router/functions/createRouteMapFromTree.md +1 -1
- package/api/@xmachines/play-react-router/interfaces/PlayRouteEvent.md +6 -6
- package/api/@xmachines/play-react-router/interfaces/PlayRouterProviderProps.md +5 -5
- package/api/@xmachines/play-react-router/interfaces/RouteMapping.md +3 -3
- package/api/@xmachines/play-react-router/interfaces/RouterBridge.md +3 -3
- package/api/@xmachines/play-router/classes/BaseRouteMap.md +4 -4
- package/api/@xmachines/play-router/classes/RouterBridgeBase.md +23 -23
- package/api/@xmachines/play-router/functions/buildPlayRouteEvent.md +1 -1
- package/api/@xmachines/play-router/functions/buildRouteTree.md +1 -1
- package/api/@xmachines/play-router/functions/createRouteMap.md +1 -1
- package/api/@xmachines/play-router/functions/createRouteMapFromMachine.md +1 -1
- package/api/@xmachines/play-router/functions/createRouteMapFromTree.md +1 -1
- package/api/@xmachines/play-router/functions/detectDuplicateRoutes.md +1 -1
- package/api/@xmachines/play-router/functions/extractMachineRoutes.md +1 -1
- package/api/@xmachines/play-router/functions/extractQuery.md +1 -1
- package/api/@xmachines/play-router/functions/extractRouteParams.md +1 -1
- package/api/@xmachines/play-router/functions/findRouteById.md +1 -1
- package/api/@xmachines/play-router/functions/findRouteByPath.md +1 -1
- package/api/@xmachines/play-router/functions/getNavigableRoutes.md +1 -1
- package/api/@xmachines/play-router/functions/getRoutableRoutes.md +1 -1
- package/api/@xmachines/play-router/functions/getTransitionReachableRoutes.md +1 -1
- package/api/@xmachines/play-router/functions/isRouteReachable.md +1 -1
- package/api/@xmachines/play-router/functions/machineToGraph.md +1 -1
- package/api/@xmachines/play-router/functions/routeExists.md +1 -1
- package/api/@xmachines/play-router/functions/sanitizePathname.md +1 -1
- package/api/@xmachines/play-router/functions/validateRouteFormat.md +1 -1
- package/api/@xmachines/play-router/functions/validateStateExists.md +1 -1
- package/api/@xmachines/play-router/interfaces/BuildPlayRouteEventOptions.md +4 -4
- package/api/@xmachines/play-router/interfaces/LocationLike.md +3 -3
- package/api/@xmachines/play-router/interfaces/MachineEdgeData.md +3 -3
- package/api/@xmachines/play-router/interfaces/MachineNodeData.md +5 -5
- package/api/@xmachines/play-router/interfaces/PlayRouteEvent.md +6 -6
- package/api/@xmachines/play-router/interfaces/RouteInfo.md +8 -8
- package/api/@xmachines/play-router/interfaces/RouteMap.md +4 -4
- package/api/@xmachines/play-router/interfaces/RouteMapping.md +3 -3
- package/api/@xmachines/play-router/interfaces/RouteMatch.md +3 -3
- package/api/@xmachines/play-router/interfaces/RouteNode.md +10 -10
- package/api/@xmachines/play-router/interfaces/RouteObject.md +2 -2
- package/api/@xmachines/play-router/interfaces/RouteTree.md +5 -5
- package/api/@xmachines/play-router/interfaces/RouteWatcherHandle.md +3 -3
- package/api/@xmachines/play-router/interfaces/RouterBridge.md +3 -3
- package/api/@xmachines/play-router/interfaces/WindowLike.md +3 -3
- package/api/@xmachines/play-router/type-aliases/MachineGraph.md +1 -1
- package/api/@xmachines/play-router/type-aliases/RouteMetadata.md +1 -1
- package/api/@xmachines/play-signals/functions/watchSignal.md +1 -1
- package/api/@xmachines/play-signals/interfaces/ComputedOptions.md +2 -2
- package/api/@xmachines/play-signals/interfaces/SignalComputed.md +2 -2
- package/api/@xmachines/play-signals/interfaces/SignalOptions.md +2 -2
- package/api/@xmachines/play-signals/interfaces/SignalState.md +3 -3
- package/api/@xmachines/play-signals/interfaces/SignalWatcher.md +4 -4
- package/api/@xmachines/play-signals/type-aliases/WatcherNotify.md +1 -1
- package/api/@xmachines/play-solid/README.md +1 -0
- package/api/@xmachines/play-solid/functions/useActor.md +1 -1
- package/api/@xmachines/play-solid/interfaces/PlayRendererProps.md +9 -8
- package/api/@xmachines/play-solid/type-aliases/PlayActor.md +1 -1
- package/api/@xmachines/play-solid/type-aliases/RenderErrorHandler.md +22 -0
- package/api/@xmachines/play-solid/variables/PlayRenderer.md +1 -1
- package/api/@xmachines/play-solid-router/classes/RouteMap.md +4 -4
- package/api/@xmachines/play-solid-router/classes/SolidRouterBridge.md +24 -24
- package/api/@xmachines/play-solid-router/functions/PlayRouterProvider.md +1 -1
- package/api/@xmachines/play-solid-router/functions/createRouteMap.md +1 -1
- package/api/@xmachines/play-solid-router/interfaces/AbstractActor.md +3 -3
- package/api/@xmachines/play-solid-router/interfaces/PlayRouteEvent.md +6 -6
- package/api/@xmachines/play-solid-router/interfaces/PlayRouterProviderProps.md +5 -5
- package/api/@xmachines/play-solid-router/interfaces/RouteMapping.md +3 -3
- package/api/@xmachines/play-solid-router/interfaces/RouterBridge.md +3 -3
- package/api/@xmachines/play-solid-router/type-aliases/RoutableActor.md +1 -1
- package/api/@xmachines/play-solid-router/type-aliases/SolidRouterHooks.md +4 -4
- package/api/@xmachines/play-svelte/README.md +44 -9
- package/api/@xmachines/play-svelte/functions/defineRegistry.md +1 -1
- package/api/@xmachines/play-svelte/interfaces/DefineRegistryOptions.md +6 -5
- package/api/@xmachines/play-svelte/interfaces/PlayRendererProps.md +9 -8
- package/api/@xmachines/play-svelte/type-aliases/RenderErrorHandler.md +23 -0
- package/api/@xmachines/play-svelte-spa-router/classes/RouteMap.md +4 -4
- package/api/@xmachines/play-svelte-spa-router/functions/connectRouter.md +1 -1
- package/api/@xmachines/play-svelte-spa-router/functions/createRouteMap.md +1 -1
- package/api/@xmachines/play-svelte-spa-router/interfaces/ConnectRouterOptions.md +4 -4
- package/api/@xmachines/play-svelte-spa-router/interfaces/PlayRouteEvent.md +6 -6
- package/api/@xmachines/play-svelte-spa-router/interfaces/RouteMapping.md +3 -3
- package/api/@xmachines/play-svelte-spa-router/interfaces/RouterBridge.md +3 -3
- package/api/@xmachines/play-svelte-spa-router/interfaces/WindowLike.md +3 -3
- package/api/@xmachines/play-svelte-spa-router/type-aliases/RoutableActor.md +1 -1
- package/api/@xmachines/play-sveltekit-router/classes/RouteMap.md +4 -4
- package/api/@xmachines/play-sveltekit-router/functions/connectRouter.md +1 -1
- package/api/@xmachines/play-sveltekit-router/functions/createRouteMap.md +1 -1
- package/api/@xmachines/play-sveltekit-router/interfaces/ConnectRouterOptions.md +4 -4
- package/api/@xmachines/play-sveltekit-router/interfaces/LocationLike.md +3 -3
- package/api/@xmachines/play-sveltekit-router/interfaces/PlayRouteEvent.md +6 -6
- package/api/@xmachines/play-sveltekit-router/interfaces/RouteMapping.md +3 -3
- package/api/@xmachines/play-sveltekit-router/interfaces/RouterBridge.md +3 -3
- package/api/@xmachines/play-sveltekit-router/type-aliases/RoutableActor.md +1 -1
- package/api/@xmachines/play-tanstack-react-router/classes/RouteMap.md +4 -4
- package/api/@xmachines/play-tanstack-react-router/classes/TanStackReactRouterBridge.md +23 -23
- package/api/@xmachines/play-tanstack-react-router/functions/PlayRouterProvider.md +1 -1
- package/api/@xmachines/play-tanstack-react-router/functions/createRouteMap.md +1 -1
- package/api/@xmachines/play-tanstack-react-router/functions/createRouteMapFromTree.md +1 -1
- package/api/@xmachines/play-tanstack-react-router/functions/extractMachineRoutes.md +1 -1
- package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouteEvent.md +6 -6
- package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouterProviderProps.md +5 -5
- package/api/@xmachines/play-tanstack-react-router/interfaces/RouteMapping.md +3 -3
- package/api/@xmachines/play-tanstack-react-router/interfaces/RouteNavigateEvent.md +3 -3
- package/api/@xmachines/play-tanstack-react-router/interfaces/RouterBridge.md +3 -3
- package/api/@xmachines/play-tanstack-react-router/type-aliases/TanStackRouterInstance.md +1 -1
- package/api/@xmachines/play-tanstack-react-router/type-aliases/TanStackRouterLike.md +4 -4
- package/api/@xmachines/play-tanstack-solid-router/classes/RouteMap.md +4 -4
- package/api/@xmachines/play-tanstack-solid-router/classes/SolidRouterBridge.md +24 -24
- package/api/@xmachines/play-tanstack-solid-router/functions/PlayRouterProvider.md +1 -1
- package/api/@xmachines/play-tanstack-solid-router/functions/createRouteMap.md +1 -1
- package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayRouteEvent.md +6 -6
- package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayRouterProviderProps.md +5 -5
- package/api/@xmachines/play-tanstack-solid-router/interfaces/RouteMapping.md +3 -3
- package/api/@xmachines/play-tanstack-solid-router/interfaces/RouterBridge.md +3 -3
- package/api/@xmachines/play-tanstack-solid-router/type-aliases/RoutableActor.md +1 -1
- package/api/@xmachines/play-tanstack-solid-router/type-aliases/TanStackRouterInstance.md +1 -1
- package/api/@xmachines/play-tanstack-solid-router/type-aliases/TanStackRouterLike.md +3 -3
- package/api/@xmachines/play-vue/README.md +1 -0
- package/api/@xmachines/play-vue/functions/defineRegistry.md +1 -1
- package/api/@xmachines/play-vue/functions/useActor.md +1 -1
- package/api/@xmachines/play-vue/interfaces/PlayRendererProps.md +7 -6
- package/api/@xmachines/play-vue/type-aliases/ComponentEntry.md +1 -1
- package/api/@xmachines/play-vue/type-aliases/ComponentsMap.md +1 -1
- package/api/@xmachines/play-vue/type-aliases/DefineRegistryOptions.md +2 -2
- package/api/@xmachines/play-vue/type-aliases/PlayActor.md +1 -1
- package/api/@xmachines/play-vue/type-aliases/RenderErrorHandler.md +22 -0
- package/api/@xmachines/play-vue/variables/PlayRenderer.md +1 -1
- package/api/@xmachines/play-vue-router/classes/RouteMap.md +4 -4
- package/api/@xmachines/play-vue-router/classes/VueBaseRouteMap.md +4 -4
- package/api/@xmachines/play-vue-router/classes/VueRouterBridge.md +24 -24
- package/api/@xmachines/play-vue-router/functions/createRouteMap.md +1 -1
- package/api/@xmachines/play-vue-router/interfaces/PlayRouteEvent.md +6 -6
- package/api/@xmachines/play-vue-router/interfaces/RouteMapping.md +3 -3
- package/api/@xmachines/play-vue-router/interfaces/RouterBridge.md +3 -3
- package/api/@xmachines/play-vue-router/type-aliases/RoutableActor.md +1 -1
- package/api/@xmachines/play-vue-router/variables/PlayRouterProvider.md +1 -1
- package/api/@xmachines/play-xstate/classes/PlayerActor.md +12 -12
- package/api/@xmachines/play-xstate/functions/buildRouteUrl.md +1 -1
- package/api/@xmachines/play-xstate/functions/composeGuards.md +1 -1
- package/api/@xmachines/play-xstate/functions/composeGuardsOr.md +1 -1
- package/api/@xmachines/play-xstate/functions/contextFieldMatches.md +1 -1
- package/api/@xmachines/play-xstate/functions/definePlayer.md +1 -1
- package/api/@xmachines/play-xstate/functions/deriveRoute.md +1 -1
- package/api/@xmachines/play-xstate/functions/eventMatches.md +1 -1
- package/api/@xmachines/play-xstate/functions/formatPlayRouteTransitions.md +1 -1
- package/api/@xmachines/play-xstate/functions/hasContext.md +1 -1
- package/api/@xmachines/play-xstate/functions/isAbsoluteRoute.md +1 -1
- package/api/@xmachines/play-xstate/functions/negateGuard.md +1 -1
- package/api/@xmachines/play-xstate/interfaces/PlayerConfig.md +3 -3
- package/api/@xmachines/play-xstate/interfaces/PlayerFactoryResumeOptions.md +2 -2
- package/api/@xmachines/play-xstate/interfaces/PlayerOptions.md +6 -6
- package/api/@xmachines/play-xstate/interfaces/RouteContext.md +5 -5
- package/api/@xmachines/play-xstate/type-aliases/ComposedGuard.md +1 -1
- package/api/@xmachines/play-xstate/type-aliases/Guard.md +1 -1
- package/api/@xmachines/play-xstate/type-aliases/GuardArray.md +1 -1
- package/api/@xmachines/play-xstate/type-aliases/PlayerFactory.md +1 -1
- package/api/@xmachines/play-xstate/type-aliases/RouteMachineConfig.md +4 -4
- package/api/@xmachines/play-xstate/type-aliases/RouteStateNode.md +4 -4
- package/api/@xmachines/shared/functions/defineXmVitestConfig.md +1 -1
- package/api/@xmachines/shared/functions/xmAliases.md +1 -1
- package/api/_media/README.md +321 -0
- package/examples/@xmachines/play-dom-demo/functions/createNavBar.md +1 -1
- package/examples/@xmachines/play-dom-demo/functions/initShell.md +1 -1
- package/examples/@xmachines/play-dom-demo/type-aliases/AuthCatalog.md +1 -1
- package/examples/@xmachines/play-dom-demo/variables/About.md +1 -1
- package/examples/@xmachines/play-dom-demo/variables/Contact.md +1 -1
- package/examples/@xmachines/play-dom-demo/variables/Dashboard.md +1 -1
- package/examples/@xmachines/play-dom-demo/variables/Home.md +1 -1
- package/examples/@xmachines/play-dom-demo/variables/Login.md +1 -1
- package/examples/@xmachines/play-dom-demo/variables/NavBarView.md +1 -1
- package/examples/@xmachines/play-dom-demo/variables/Navigation.md +1 -1
- package/examples/@xmachines/play-dom-demo/variables/Overview.md +1 -1
- package/examples/@xmachines/play-dom-demo/variables/Profile.md +1 -1
- package/examples/@xmachines/play-dom-demo/variables/Settings.md +1 -1
- package/examples/@xmachines/play-dom-demo/variables/Stats.md +1 -1
- package/examples/@xmachines/play-dom-demo/variables/authCatalog.md +1 -1
- package/examples/@xmachines/play-react-demo/functions/App.md +1 -1
- package/examples/@xmachines/play-react-demo/type-aliases/AuthCatalog.md +1 -1
- package/examples/@xmachines/play-react-demo/variables/About.md +1 -1
- package/examples/@xmachines/play-react-demo/variables/Contact.md +1 -1
- package/examples/@xmachines/play-react-demo/variables/Dashboard.md +1 -1
- package/examples/@xmachines/play-react-demo/variables/DebugPanel.md +1 -1
- package/examples/@xmachines/play-react-demo/variables/Home.md +1 -1
- package/examples/@xmachines/play-react-demo/variables/Login.md +1 -1
- package/examples/@xmachines/play-react-demo/variables/NavBar.md +1 -1
- package/examples/@xmachines/play-react-demo/variables/NavBarView.md +1 -1
- package/examples/@xmachines/play-react-demo/variables/Navigation.md +1 -1
- package/examples/@xmachines/play-react-demo/variables/Overview.md +1 -1
- package/examples/@xmachines/play-react-demo/variables/Profile.md +1 -1
- package/examples/@xmachines/play-react-demo/variables/Settings.md +1 -1
- package/examples/@xmachines/play-react-demo/variables/Shell.md +1 -1
- package/examples/@xmachines/play-react-demo/variables/Stats.md +1 -1
- package/examples/@xmachines/play-react-demo/variables/authCatalog.md +1 -1
- package/examples/@xmachines/play-solid-demo/functions/App.md +1 -1
- package/examples/@xmachines/play-solid-demo/type-aliases/AuthCatalog.md +1 -1
- package/examples/@xmachines/play-solid-demo/variables/About.md +1 -1
- package/examples/@xmachines/play-solid-demo/variables/Contact.md +1 -1
- package/examples/@xmachines/play-solid-demo/variables/Dashboard.md +1 -1
- package/examples/@xmachines/play-solid-demo/variables/DebugPanel.md +1 -1
- package/examples/@xmachines/play-solid-demo/variables/Home.md +1 -1
- package/examples/@xmachines/play-solid-demo/variables/Login.md +1 -1
- package/examples/@xmachines/play-solid-demo/variables/NavBar.md +1 -1
- package/examples/@xmachines/play-solid-demo/variables/NavBarView.md +1 -1
- package/examples/@xmachines/play-solid-demo/variables/Navigation.md +1 -1
- package/examples/@xmachines/play-solid-demo/variables/Overview.md +1 -1
- package/examples/@xmachines/play-solid-demo/variables/Profile.md +1 -1
- package/examples/@xmachines/play-solid-demo/variables/Settings.md +1 -1
- package/examples/@xmachines/play-solid-demo/variables/Shell.md +1 -1
- package/examples/@xmachines/play-solid-demo/variables/Stats.md +1 -1
- package/examples/@xmachines/play-solid-demo/variables/authCatalog.md +1 -1
- package/examples/form-validation.md +80 -0
- package/examples/routing-patterns.md +9 -19
- package/guides/getting-started.md +51 -38
- package/guides/installation.md +6 -6
- package/package.json +2 -2
- package/api/@xmachines/play-dom/interfaces/DefineRegistryOptions.md +0 -23
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
# Interface: PlayerFactoryResumeOptions\<TMachine\>
|
|
4
4
|
|
|
5
|
-
Defined in: [packages/play-xstate/src/types.ts:47](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
5
|
+
Defined in: [packages/play-xstate/src/types.ts:47](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-xstate/src/types.ts#L47)
|
|
6
6
|
|
|
7
7
|
Optional restore arguments for the player factory.
|
|
8
8
|
|
|
@@ -19,4 +19,4 @@ Mirrors XState's createActor options bag while preserving the existing
|
|
|
19
19
|
|
|
20
20
|
| Property | Type | Description | Defined in |
|
|
21
21
|
| ------------------------------------------ | --------------------------------------------------------------------------------- | ------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
22
|
-
| <a id="property-snapshot"></a> `snapshot?` | [`SnapshotFrom`](https://www.jsdocs.io/package/xstate#SnapshotFrom)\<`TMachine`\> | Persisted XState snapshot used to restore actor state. | [packages/play-xstate/src/types.ts:49](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
22
|
+
| <a id="property-snapshot"></a> `snapshot?` | [`SnapshotFrom`](https://www.jsdocs.io/package/xstate#SnapshotFrom)\<`TMachine`\> | Persisted XState snapshot used to restore actor state. | [packages/play-xstate/src/types.ts:49](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-xstate/src/types.ts#L49) |
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
# Interface: PlayerOptions\<TMachine\>
|
|
4
4
|
|
|
5
|
-
Defined in: [packages/play-xstate/src/types.ts:20](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
5
|
+
Defined in: [packages/play-xstate/src/types.ts:20](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-xstate/src/types.ts#L20)
|
|
6
6
|
|
|
7
7
|
Player lifecycle hooks
|
|
8
8
|
|
|
@@ -18,8 +18,8 @@ Per CONTEXT.md: Rich set of hooks for observability
|
|
|
18
18
|
|
|
19
19
|
| Property | Type | Description | Defined in |
|
|
20
20
|
| ---------------------------------------------------- | --------------------------------------------- | -------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
21
|
-
| <a id="property-onerror"></a> `onError?` | (`actor`, `error`) => `void` | Called on actor errors | [packages/play-xstate/src/types.ts:38](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
22
|
-
| <a id="property-onstart"></a> `onStart?` | (`actor`) => `void` | Called when actor starts | [packages/play-xstate/src/types.ts:22](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
23
|
-
| <a id="property-onstatechange"></a> `onStateChange?` | (`actor`, `state`) => `void` | Called when state signal changes | [packages/play-xstate/src/types.ts:35](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
24
|
-
| <a id="property-onstop"></a> `onStop?` | (`actor`) => `void` | Called when actor stops | [packages/play-xstate/src/types.ts:25](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
25
|
-
| <a id="property-ontransition"></a> `onTransition?` | (`actor`, `prevState`, `nextState`) => `void` | Called on every state transition | [packages/play-xstate/src/types.ts:28](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
21
|
+
| <a id="property-onerror"></a> `onError?` | (`actor`, `error`) => `void` | Called on actor errors | [packages/play-xstate/src/types.ts:38](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-xstate/src/types.ts#L38) |
|
|
22
|
+
| <a id="property-onstart"></a> `onStart?` | (`actor`) => `void` | Called when actor starts | [packages/play-xstate/src/types.ts:22](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-xstate/src/types.ts#L22) |
|
|
23
|
+
| <a id="property-onstatechange"></a> `onStateChange?` | (`actor`, `state`) => `void` | Called when state signal changes | [packages/play-xstate/src/types.ts:35](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-xstate/src/types.ts#L35) |
|
|
24
|
+
| <a id="property-onstop"></a> `onStop?` | (`actor`) => `void` | Called when actor stops | [packages/play-xstate/src/types.ts:25](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-xstate/src/types.ts#L25) |
|
|
25
|
+
| <a id="property-ontransition"></a> `onTransition?` | (`actor`, `prevState`, `nextState`) => `void` | Called on every state transition | [packages/play-xstate/src/types.ts:28](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-xstate/src/types.ts#L28) |
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
# Interface: RouteContext
|
|
4
4
|
|
|
5
|
-
Defined in: [packages/play-xstate/src/routing/types.ts:19](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
5
|
+
Defined in: [packages/play-xstate/src/routing/types.ts:19](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-xstate/src/routing/types.ts#L19)
|
|
6
6
|
|
|
7
7
|
Route build context from machine context.
|
|
8
8
|
|
|
@@ -18,7 +18,7 @@ must populate `params` explicitly.
|
|
|
18
18
|
|
|
19
19
|
| Property | Type | Description | Defined in |
|
|
20
20
|
| ------------------------------------------ | ------------------------------- | ---------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
21
|
-
| <a id="property-basepath"></a> `basePath?` | `string` | Base path for relative routes | [packages/play-xstate/src/routing/types.ts:21](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
22
|
-
| <a id="property-hash"></a> `hash?` | `string` | Hash fragment | [packages/play-xstate/src/routing/types.ts:27](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
23
|
-
| <a id="property-params"></a> `params?` | `Record`\<`string`, `unknown`\> | Path-only route parameters to substitute (e.g., `:userId` from `/profile/:userId`) | [packages/play-xstate/src/routing/types.ts:23](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
24
|
-
| <a id="property-query"></a> `query?` | `Record`\<`string`, `unknown`\> | Query parameters | [packages/play-xstate/src/routing/types.ts:25](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
21
|
+
| <a id="property-basepath"></a> `basePath?` | `string` | Base path for relative routes | [packages/play-xstate/src/routing/types.ts:21](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-xstate/src/routing/types.ts#L21) |
|
|
22
|
+
| <a id="property-hash"></a> `hash?` | `string` | Hash fragment | [packages/play-xstate/src/routing/types.ts:27](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-xstate/src/routing/types.ts#L27) |
|
|
23
|
+
| <a id="property-params"></a> `params?` | `Record`\<`string`, `unknown`\> | Path-only route parameters to substitute (e.g., `:userId` from `/profile/:userId`) | [packages/play-xstate/src/routing/types.ts:23](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-xstate/src/routing/types.ts#L23) |
|
|
24
|
+
| <a id="property-query"></a> `query?` | `Record`\<`string`, `unknown`\> | Query parameters | [packages/play-xstate/src/routing/types.ts:25](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-xstate/src/routing/types.ts#L25) |
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
type ComposedGuard = GuardPredicate<MachineContext, EventObject, unknown, ParameterizedObject>;
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
Defined in: [packages/play-xstate/src/guards/compose.ts:14](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
9
|
+
Defined in: [packages/play-xstate/src/guards/compose.ts:14](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-xstate/src/guards/compose.ts#L14)
|
|
10
10
|
|
|
11
11
|
Narrowest public return type for guard composition helpers.
|
|
12
12
|
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
type Guard<TContext, TEvent> = (args) => boolean;
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
Defined in: [packages/play-xstate/src/guards/types.ts:13](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
9
|
+
Defined in: [packages/play-xstate/src/guards/types.ts:13](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-xstate/src/guards/types.ts#L13)
|
|
10
10
|
|
|
11
11
|
Standard XState guard function signature
|
|
12
12
|
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
type GuardArray<TContext, TEvent> = Guard<TContext, TEvent>[] | string[];
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
Defined in: [packages/play-xstate/src/guards/types.ts:23](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
9
|
+
Defined in: [packages/play-xstate/src/guards/types.ts:23](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-xstate/src/guards/types.ts#L23)
|
|
10
10
|
|
|
11
11
|
Array of guard predicates or guard names
|
|
12
12
|
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
type PlayerFactory<TMachine> = (input?, options?) => PlayerActor<TMachine>;
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
Defined in: [packages/play-xstate/src/types.ts:57](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
9
|
+
Defined in: [packages/play-xstate/src/types.ts:57](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-xstate/src/types.ts#L57)
|
|
10
10
|
|
|
11
11
|
Factory function returned by definePlayer()
|
|
12
12
|
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
type RouteMachineConfig = object;
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
Defined in: [packages/play-xstate/src/routing/format-play-route-transitions.ts:48](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
9
|
+
Defined in: [packages/play-xstate/src/routing/format-play-route-transitions.ts:48](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-xstate/src/routing/format-play-route-transitions.ts#L48)
|
|
10
10
|
|
|
11
11
|
Minimal structural constraint for machine configs accepted by
|
|
12
12
|
`formatPlayRouteTransitions`.
|
|
@@ -32,7 +32,7 @@ through the transform, so the return value remains directly usable by
|
|
|
32
32
|
optional context?: unknown;
|
|
33
33
|
```
|
|
34
34
|
|
|
35
|
-
Defined in: [packages/play-xstate/src/routing/format-play-route-transitions.ts:49](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
35
|
+
Defined in: [packages/play-xstate/src/routing/format-play-route-transitions.ts:49](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-xstate/src/routing/format-play-route-transitions.ts#L49)
|
|
36
36
|
|
|
37
37
|
---
|
|
38
38
|
|
|
@@ -42,7 +42,7 @@ Defined in: [packages/play-xstate/src/routing/format-play-route-transitions.ts:4
|
|
|
42
42
|
optional on?: Record<string, unknown>;
|
|
43
43
|
```
|
|
44
44
|
|
|
45
|
-
Defined in: [packages/play-xstate/src/routing/format-play-route-transitions.ts:51](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
45
|
+
Defined in: [packages/play-xstate/src/routing/format-play-route-transitions.ts:51](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-xstate/src/routing/format-play-route-transitions.ts#L51)
|
|
46
46
|
|
|
47
47
|
---
|
|
48
48
|
|
|
@@ -52,4 +52,4 @@ Defined in: [packages/play-xstate/src/routing/format-play-route-transitions.ts:5
|
|
|
52
52
|
optional states?: Record<string, unknown>;
|
|
53
53
|
```
|
|
54
54
|
|
|
55
|
-
Defined in: [packages/play-xstate/src/routing/format-play-route-transitions.ts:50](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
55
|
+
Defined in: [packages/play-xstate/src/routing/format-play-route-transitions.ts:50](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-xstate/src/routing/format-play-route-transitions.ts#L50)
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
type RouteStateNode = object;
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
Defined in: [packages/play-xstate/src/routing/format-play-route-transitions.ts:13](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
9
|
+
Defined in: [packages/play-xstate/src/routing/format-play-route-transitions.ts:13](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-xstate/src/routing/format-play-route-transitions.ts#L13)
|
|
10
10
|
|
|
11
11
|
Minimal structural shape of a single XState state node as read by
|
|
12
12
|
`formatPlayRouteTransitions` when crawling the machine config.
|
|
@@ -29,7 +29,7 @@ the index signature.
|
|
|
29
29
|
optional id?: string;
|
|
30
30
|
```
|
|
31
31
|
|
|
32
|
-
Defined in: [packages/play-xstate/src/routing/format-play-route-transitions.ts:15](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
32
|
+
Defined in: [packages/play-xstate/src/routing/format-play-route-transitions.ts:15](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-xstate/src/routing/format-play-route-transitions.ts#L15)
|
|
33
33
|
|
|
34
34
|
Optional explicit state ID (e.g. `"home"`, `"settings"`). Used as the `#id` target in `play.route` events.
|
|
35
35
|
|
|
@@ -41,7 +41,7 @@ Optional explicit state ID (e.g. `"home"`, `"settings"`). Used as the `#id` targ
|
|
|
41
41
|
optional meta?: object;
|
|
42
42
|
```
|
|
43
43
|
|
|
44
|
-
Defined in: [packages/play-xstate/src/routing/format-play-route-transitions.ts:17](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
44
|
+
Defined in: [packages/play-xstate/src/routing/format-play-route-transitions.ts:17](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-xstate/src/routing/format-play-route-transitions.ts#L17)
|
|
45
45
|
|
|
46
46
|
State metadata — `meta.route` marks the state as routable.
|
|
47
47
|
|
|
@@ -61,6 +61,6 @@ URL path template (e.g. `"/profile/:username"`, `"/settings/:section?"`).
|
|
|
61
61
|
optional states?: Record<string, RouteStateNode>;
|
|
62
62
|
```
|
|
63
63
|
|
|
64
|
-
Defined in: [packages/play-xstate/src/routing/format-play-route-transitions.ts:22](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
64
|
+
Defined in: [packages/play-xstate/src/routing/format-play-route-transitions.ts:22](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-xstate/src/routing/format-play-route-transitions.ts#L22)
|
|
65
65
|
|
|
66
66
|
Nested child states, recursively crawled for additional route declarations.
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
function defineXmVitestConfig(importMetaUrl, overrides): UserConfig;
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
Defined in: [index.ts:10](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
9
|
+
Defined in: [index.ts:10](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/shared/src/index.ts#L10)
|
|
10
10
|
|
|
11
11
|
Create a Vitest config with XMachines workspace defaults.
|
|
12
12
|
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
function xmAliases(importMetaUrl): Record<string, string>;
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
Defined in: [index.ts:20](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
9
|
+
Defined in: [index.ts:20](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/shared/src/index.ts#L20)
|
|
10
10
|
|
|
11
11
|
Build Vite/Vitest alias entries for all `@xmachines/*` workspace packages.
|
|
12
12
|
|
|
@@ -0,0 +1,321 @@
|
|
|
1
|
+
[Documentation](../../README.md) / @xmachines/play-dom
|
|
2
|
+
|
|
3
|
+
# @xmachines/play-dom
|
|
4
|
+
|
|
5
|
+
**Vanilla DOM renderer for XMachines**
|
|
6
|
+
|
|
7
|
+
Framework-free view rendering driven by an XState v5 actor's `currentView` TC39 Signal. Implements the same catalog-typed `defineRegistry` / `ComponentFn` / `ActionFn` API surface as `@json-render/react`, `/solid`, `/vue`, and `/svelte`.
|
|
8
|
+
|
|
9
|
+
## Installation
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
npm install @xmachines/play-dom @json-render/core zod
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## Key Exports
|
|
16
|
+
|
|
17
|
+
| Export | Description |
|
|
18
|
+
| --------------------------------------------------- | ------------------------------------------------------------------------------------------- |
|
|
19
|
+
| `createRenderer(catalog, componentMap)` | One-call factory: returns `mount(actor, container, options?) → disconnect` |
|
|
20
|
+
| `connectRenderer(options)` | Functional API: connect actor → DOM with full options |
|
|
21
|
+
| `defineRegistry(catalog, { components, actions })` | Build a catalog-typed `DomRegistry` with typed action handlers |
|
|
22
|
+
| `PlayRenderer` | Class-based renderer — `connect()` / `disconnect()` lifecycle |
|
|
23
|
+
| `schema` | DOM schema for `defineCatalog` (mirrors `@json-render/react/schema`) |
|
|
24
|
+
| `ComponentFn<C, K>` | Catalog-typed DOM component function type |
|
|
25
|
+
| `ComponentContext<C, K>` | Context passed to each `ComponentFn` — `props`, `on`, `emit`, `children`, `bindings`, `ctx` |
|
|
26
|
+
| `ActionFn<C, K>` | `(params, setState, state) => Promise<void>` — catalog-typed action handler |
|
|
27
|
+
| `SetState` | `(updater: prev => next) => void` — write to the local state store |
|
|
28
|
+
| `BaseComponentProps<P>` | Base type for catalog component prop definitions |
|
|
29
|
+
| `CatalogHasActions<C>` | Conditional type: `true` when catalog declares actions |
|
|
30
|
+
| `renderSpec(spec, store, registry, send, handlers)` | Pure Spec → DOM renderer (advanced use) |
|
|
31
|
+
|
|
32
|
+
## Quick Start — `createRenderer`
|
|
33
|
+
|
|
34
|
+
The preferred one-call pattern — mirrors all framework renderers:
|
|
35
|
+
|
|
36
|
+
```typescript
|
|
37
|
+
import { createRenderer, schema } from "@xmachines/play-dom";
|
|
38
|
+
import { defineCatalog } from "@json-render/core";
|
|
39
|
+
import { z } from "zod";
|
|
40
|
+
import type { ComponentFn } from "@xmachines/play-dom";
|
|
41
|
+
|
|
42
|
+
// 1. Define catalog
|
|
43
|
+
const catalog = defineCatalog(schema, {
|
|
44
|
+
components: {
|
|
45
|
+
Home: { props: z.object({ title: z.string() }) },
|
|
46
|
+
Login: { props: z.object({ title: z.string(), username: z.string().optional() }) },
|
|
47
|
+
},
|
|
48
|
+
actions: {
|
|
49
|
+
login: { params: z.object({ username: z.string() }) },
|
|
50
|
+
logout: {},
|
|
51
|
+
},
|
|
52
|
+
});
|
|
53
|
+
type AppCatalog = typeof catalog;
|
|
54
|
+
|
|
55
|
+
// 2. Implement components
|
|
56
|
+
const Home: ComponentFn<AppCatalog, "Home"> = ({ props }) => {
|
|
57
|
+
const el = document.createElement("section");
|
|
58
|
+
el.textContent = props.title;
|
|
59
|
+
return el;
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
const Login: ComponentFn<AppCatalog, "Login"> = ({ props, on }) => {
|
|
63
|
+
const section = document.createElement("section");
|
|
64
|
+
const input = document.createElement("input");
|
|
65
|
+
input.value = props.username ?? "";
|
|
66
|
+
input.addEventListener("input", () => ctx.store.update((s) => ({ ...s, username: input.value })));
|
|
67
|
+
|
|
68
|
+
const button = document.createElement("button");
|
|
69
|
+
button.textContent = "Log In";
|
|
70
|
+
const submit = on("submit");
|
|
71
|
+
button.addEventListener("click", () => submit.emit());
|
|
72
|
+
|
|
73
|
+
section.append(input, button);
|
|
74
|
+
return section;
|
|
75
|
+
};
|
|
76
|
+
|
|
77
|
+
// 3. Create the renderer factory (once, at module level)
|
|
78
|
+
const mount = createRenderer(catalog, { Home, Login });
|
|
79
|
+
|
|
80
|
+
// 4. Mount when actor and container are ready
|
|
81
|
+
const actor = createPlayer()();
|
|
82
|
+
actor.start();
|
|
83
|
+
|
|
84
|
+
const disconnect = mount(actor, document.getElementById("app")!);
|
|
85
|
+
|
|
86
|
+
// Cleanup:
|
|
87
|
+
disconnect();
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
## `defineRegistry` — Full Control
|
|
91
|
+
|
|
92
|
+
When you need `registryResult.executeAction()` or want to share the registry with `connectRenderer`:
|
|
93
|
+
|
|
94
|
+
```typescript
|
|
95
|
+
import { defineRegistry, connectRenderer, schema } from "@xmachines/play-dom";
|
|
96
|
+
import { defineCatalog } from "@json-render/core";
|
|
97
|
+
import { z } from "zod";
|
|
98
|
+
|
|
99
|
+
const catalog = defineCatalog(schema, {
|
|
100
|
+
components: {
|
|
101
|
+
Home: { props: z.object({ title: z.string() }) },
|
|
102
|
+
},
|
|
103
|
+
actions: {
|
|
104
|
+
login: { params: z.object({ username: z.string() }) },
|
|
105
|
+
logout: {},
|
|
106
|
+
},
|
|
107
|
+
});
|
|
108
|
+
|
|
109
|
+
// Action handlers receive (params, setState, state)
|
|
110
|
+
// - params: resolved from the spec's on.submit.params (e.g. { $state: "/username" })
|
|
111
|
+
// - setState: write to the local state store (e.g. to clear a form)
|
|
112
|
+
// - state: current local state store snapshot
|
|
113
|
+
const registryResult = defineRegistry(catalog, {
|
|
114
|
+
components: {
|
|
115
|
+
Home: ({ props }) => {
|
|
116
|
+
const el = document.createElement("section");
|
|
117
|
+
el.textContent = props.title;
|
|
118
|
+
return el;
|
|
119
|
+
},
|
|
120
|
+
},
|
|
121
|
+
actions: {
|
|
122
|
+
login: async (params, setState) => {
|
|
123
|
+
if (!params) return;
|
|
124
|
+
actor.send({ type: "auth.login", username: params.username });
|
|
125
|
+
setState((prev) => ({ ...prev, username: "" })); // clear the form
|
|
126
|
+
},
|
|
127
|
+
logout: async () => actor.send({ type: "auth.logout" }),
|
|
128
|
+
},
|
|
129
|
+
});
|
|
130
|
+
|
|
131
|
+
const disconnect = connectRenderer({
|
|
132
|
+
actor,
|
|
133
|
+
registry: registryResult.registry,
|
|
134
|
+
registryResult, // wires setState/state from xstate store automatically
|
|
135
|
+
container: document.getElementById("app")!,
|
|
136
|
+
});
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
## Component API
|
|
140
|
+
|
|
141
|
+
### `ComponentFn<C, K>` — component function signature
|
|
142
|
+
|
|
143
|
+
```typescript
|
|
144
|
+
const MyCard: ComponentFn<AppCatalog, "Card"> = ({
|
|
145
|
+
props, // catalog-typed props for this component
|
|
146
|
+
children, // Node[] — rendered child nodes
|
|
147
|
+
on, // (eventName) => EventHandle — get emit() for catalog-declared events
|
|
148
|
+
emit, // (eventName) => void — fire an event directly
|
|
149
|
+
bindings, // Record<string, string> — $bindState paths for two-way bindings
|
|
150
|
+
ctx, // DomRenderContext — store, send, handlers, loading, functions
|
|
151
|
+
}) => {
|
|
152
|
+
const el = document.createElement("div");
|
|
153
|
+
el.append(...children);
|
|
154
|
+
return el;
|
|
155
|
+
};
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
### Two-way binding with `$bindState`
|
|
159
|
+
|
|
160
|
+
In the view spec:
|
|
161
|
+
|
|
162
|
+
```json
|
|
163
|
+
{ "username": { "$bindState": "/username" } }
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
In the component:
|
|
167
|
+
|
|
168
|
+
```typescript
|
|
169
|
+
const Login: ComponentFn<AppCatalog, "Login"> = ({ props, ctx }) => {
|
|
170
|
+
const input = document.createElement("input");
|
|
171
|
+
input.value = props.username ?? "";
|
|
172
|
+
// Write back to the store on user input
|
|
173
|
+
input.addEventListener("input", () => {
|
|
174
|
+
ctx.store.update((s) => ({ ...s, username: input.value }));
|
|
175
|
+
});
|
|
176
|
+
return input;
|
|
177
|
+
};
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
### `on()` — event handle
|
|
181
|
+
|
|
182
|
+
```typescript
|
|
183
|
+
const submit = on("submit"); // EventHandle
|
|
184
|
+
if (submit.bound) {
|
|
185
|
+
button.addEventListener("click", (e) => {
|
|
186
|
+
if (submit.shouldPreventDefault) e.preventDefault();
|
|
187
|
+
submit.emit(); // resolves params from store, calls action handler
|
|
188
|
+
});
|
|
189
|
+
}
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
### `ActionFn` — action handler signature
|
|
193
|
+
|
|
194
|
+
```typescript
|
|
195
|
+
// Full signature — all three params are available
|
|
196
|
+
login: async (params, setState, state) => {
|
|
197
|
+
actor.send({ type: "auth.login", username: params!.username });
|
|
198
|
+
setState(prev => ({ ...prev, username: "" }));
|
|
199
|
+
console.log("previous state was:", state);
|
|
200
|
+
},
|
|
201
|
+
|
|
202
|
+
// Params-only — setState/state can be omitted if unused
|
|
203
|
+
logout: async () => actor.send({ type: "auth.logout" }),
|
|
204
|
+
route: async (params) => actor.send({ type: "play.route", to: params!.to }),
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
## Spec Features
|
|
208
|
+
|
|
209
|
+
`renderSpec` / `renderElement` supports these spec directives:
|
|
210
|
+
|
|
211
|
+
| Directive | Description |
|
|
212
|
+
| ------------------------------------------------------ | ------------------------------------------------------------------------------------- |
|
|
213
|
+
| `visible` | Boolean or `{ $state: "/path" }` — hide element when false |
|
|
214
|
+
| `on.submit` / `on.click` | Action binding — `{ action: "login", params: { username: { $state: "/username" } } }` |
|
|
215
|
+
| `repeat: { statePath, key? }` | Render children once per item in the state array at `statePath` |
|
|
216
|
+
| `watch: { "/path": actionBinding }` | Fire action when store path changes after mount |
|
|
217
|
+
| `props.username: { $bindState: "/username" }` | Two-way binding — read from store, write back via `ctx.store.update()` |
|
|
218
|
+
| `props.value: { $state: "/value" }` | Read-only store reference |
|
|
219
|
+
| `props.label: { $computed: "computeFn", args: [...] }` | Computed prop via `functions` map |
|
|
220
|
+
|
|
221
|
+
## `PlayRenderer` — class API
|
|
222
|
+
|
|
223
|
+
```typescript
|
|
224
|
+
import { PlayRenderer, defineRegistry } from "@xmachines/play-dom";
|
|
225
|
+
|
|
226
|
+
const { registry, registryResult } = defineRegistry(catalog, { components, actions });
|
|
227
|
+
|
|
228
|
+
const renderer = new PlayRenderer(document.getElementById("app")!, actor, registry, {
|
|
229
|
+
registryResult,
|
|
230
|
+
});
|
|
231
|
+
|
|
232
|
+
renderer.connect(); // starts watching actor.currentView
|
|
233
|
+
renderer.disconnect(); // stops watching, clears container
|
|
234
|
+
|
|
235
|
+
// double-connect is safe — connect() calls disconnect() internally if already connected
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
## Options Reference
|
|
239
|
+
|
|
240
|
+
### `ConnectRendererOptions` / `PlayDomOptions`
|
|
241
|
+
|
|
242
|
+
| Option | Type | Description |
|
|
243
|
+
| ---------------- | ------------------------------- | ----------------------------------------------------------------------------- |
|
|
244
|
+
| `actor` | `AbstractActor & Viewable` | Actor providing `currentView` signal |
|
|
245
|
+
| `registry` | `DomRegistry` | Component renderer map from `defineRegistry` |
|
|
246
|
+
| `registryResult` | `DefineRegistryResult` | Preferred — auto-wires `setState`/`state` from xstate store |
|
|
247
|
+
| `handlers` | `Record<string, ActionHandler>` | Pre-resolved handlers (legacy / advanced) |
|
|
248
|
+
| `container` | `HTMLElement` | DOM element to render into |
|
|
249
|
+
| `fallback` | `HTMLElement \| null` | Shown on initial mount when view is `null` (initial mount only) |
|
|
250
|
+
| `store` | `StateStore` | External store — controlled mode, overrides `spec.state` |
|
|
251
|
+
| `loading` | `boolean` | Streaming mode — suppresses missing-child warnings, exposes `ctx.ctx.loading` |
|
|
252
|
+
|
|
253
|
+
## Learn More
|
|
254
|
+
|
|
255
|
+
- [DOM Router adapter `@xmachines/play-dom-router`](../play-dom-router/README.md)
|
|
256
|
+
- [API reference](../../_media/README.md)
|
|
257
|
+
- [Play RFC](../../packages/docs/rfc/play.md)
|
|
258
|
+
|
|
259
|
+
@xmachines/play-dom — Vanilla DOM renderer for XMachines Play architecture.
|
|
260
|
+
|
|
261
|
+
Public API split into two layers:
|
|
262
|
+
|
|
263
|
+
**XMachines layer** (this package):
|
|
264
|
+
|
|
265
|
+
- `createRenderer()` — one-call factory: returns `mount(actor, container, options?) → disconnect`
|
|
266
|
+
- `PlayRenderer` — class-based renderer with `connect()` / `disconnect()` lifecycle
|
|
267
|
+
- `connectRenderer()` — functional API (backward-compat alternative to `PlayRenderer`)
|
|
268
|
+
- `ConnectRendererOptions`, `PlayDomOptions`
|
|
269
|
+
|
|
270
|
+
**json-render layer** (upstreamable to @json-render/dom):
|
|
271
|
+
|
|
272
|
+
- `defineRegistry` — build a catalog-typed DomRegistry
|
|
273
|
+
- `renderSpec` — pure Spec → DOM renderer (uses resolveElementProps from core)
|
|
274
|
+
- `ComponentFn` — catalog-typed component function type
|
|
275
|
+
- `ComponentContext` — catalog-typed render context (props, emit, on, children, bindings)
|
|
276
|
+
- `ComponentRegistry` — catalog-typed registry input type
|
|
277
|
+
- `DomComponentRenderer` — raw element-level renderer type
|
|
278
|
+
- `DomRegistry` — raw registry type
|
|
279
|
+
- `DomRenderContext` — raw render context
|
|
280
|
+
- `EventHandle` — event handle returned by on()
|
|
281
|
+
- `SetState` — state updater function passed to ActionFn
|
|
282
|
+
- `CatalogHasActions` — conditional type: true when catalog declares actions
|
|
283
|
+
- `BaseComponentProps` — base props type for catalog component definitions
|
|
284
|
+
|
|
285
|
+
## Classes
|
|
286
|
+
|
|
287
|
+
- [PlayRenderer](classes/PlayRenderer.md)
|
|
288
|
+
|
|
289
|
+
## Interfaces
|
|
290
|
+
|
|
291
|
+
- [ComponentContext](interfaces/ComponentContext.md)
|
|
292
|
+
- [ConnectRendererOptions](interfaces/ConnectRendererOptions.md)
|
|
293
|
+
- [DefineRegistryResult](interfaces/DefineRegistryResult.md)
|
|
294
|
+
- [DomRenderContext](interfaces/DomRenderContext.md)
|
|
295
|
+
- [EventHandle](interfaces/EventHandle.md)
|
|
296
|
+
- [PlayDomOptions](interfaces/PlayDomOptions.md)
|
|
297
|
+
|
|
298
|
+
## Type Aliases
|
|
299
|
+
|
|
300
|
+
- [ActionFn](type-aliases/ActionFn.md)
|
|
301
|
+
- [Actions](type-aliases/Actions.md)
|
|
302
|
+
- [BaseComponentProps](type-aliases/BaseComponentProps.md)
|
|
303
|
+
- [CatalogHasActions](type-aliases/CatalogHasActions.md)
|
|
304
|
+
- [ComponentFn](type-aliases/ComponentFn.md)
|
|
305
|
+
- [ComponentRegistry](type-aliases/ComponentRegistry.md)
|
|
306
|
+
- [DefineRegistryOptions](type-aliases/DefineRegistryOptions.md)
|
|
307
|
+
- [DomComponentRenderer](type-aliases/DomComponentRenderer.md)
|
|
308
|
+
- [DomRegistry](type-aliases/DomRegistry.md)
|
|
309
|
+
- [DomSchema](type-aliases/DomSchema.md)
|
|
310
|
+
- [SetState](type-aliases/SetState.md)
|
|
311
|
+
|
|
312
|
+
## Variables
|
|
313
|
+
|
|
314
|
+
- [schema](variables/schema.md)
|
|
315
|
+
|
|
316
|
+
## Functions
|
|
317
|
+
|
|
318
|
+
- [connectRenderer](functions/connectRenderer.md)
|
|
319
|
+
- [createRenderer](functions/createRenderer.md)
|
|
320
|
+
- [defineRegistry](functions/defineRegistry.md)
|
|
321
|
+
- [renderSpec](functions/renderSpec.md)
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
function createNavBar(actor, container): () => void;
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
Defined in: [play-dom/examples/demo/src/components/NavBar.ts:15](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
9
|
+
Defined in: [play-dom/examples/demo/src/components/NavBar.ts:15](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-dom/examples/demo/src/components/NavBar.ts#L15)
|
|
10
10
|
|
|
11
11
|
Create and mount a reactive NavBar into the given container element.
|
|
12
12
|
Returns a cleanup function to stop watching.
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
function initShell(actor, appElement): () => void;
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
Defined in: [play-dom/examples/demo/src/shell.ts:
|
|
9
|
+
Defined in: [play-dom/examples/demo/src/shell.ts:35](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-dom/examples/demo/src/shell.ts#L35)
|
|
10
10
|
|
|
11
11
|
## Parameters
|
|
12
12
|
|
|
@@ -6,4 +6,4 @@
|
|
|
6
6
|
type AuthCatalog = typeof authCatalog;
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
Defined in: [play-dom/examples/demo/src/catalog.ts:6](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
9
|
+
Defined in: [play-dom/examples/demo/src/catalog.ts:6](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-dom/examples/demo/src/catalog.ts#L6)
|
|
@@ -6,4 +6,4 @@
|
|
|
6
6
|
const About: ComponentFn<AuthCatalog, "About">;
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
Defined in: [play-dom/examples/demo/src/components/About.ts:4](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
9
|
+
Defined in: [play-dom/examples/demo/src/components/About.ts:4](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-dom/examples/demo/src/components/About.ts#L4)
|
|
@@ -6,4 +6,4 @@
|
|
|
6
6
|
const Contact: ComponentFn<AuthCatalog, "Contact">;
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
Defined in: [play-dom/examples/demo/src/components/Contact.ts:4](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
9
|
+
Defined in: [play-dom/examples/demo/src/components/Contact.ts:4](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-dom/examples/demo/src/components/Contact.ts#L4)
|
|
@@ -6,4 +6,4 @@
|
|
|
6
6
|
const Dashboard: ComponentFn<AuthCatalog, "Dashboard">;
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
Defined in: [play-dom/examples/demo/src/components/Dashboard.ts:4](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
9
|
+
Defined in: [play-dom/examples/demo/src/components/Dashboard.ts:4](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-dom/examples/demo/src/components/Dashboard.ts#L4)
|
|
@@ -6,4 +6,4 @@
|
|
|
6
6
|
const Home: ComponentFn<AuthCatalog, "Home">;
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
Defined in: [play-dom/examples/demo/src/components/Home.ts:4](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
9
|
+
Defined in: [play-dom/examples/demo/src/components/Home.ts:4](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-dom/examples/demo/src/components/Home.ts#L4)
|
|
@@ -6,4 +6,4 @@
|
|
|
6
6
|
const Login: ComponentFn<AuthCatalog, "Login">;
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
Defined in: [play-dom/examples/demo/src/components/Login.ts:
|
|
9
|
+
Defined in: [play-dom/examples/demo/src/components/Login.ts:7](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-dom/examples/demo/src/components/Login.ts#L7)
|
|
@@ -6,4 +6,4 @@
|
|
|
6
6
|
const NavBarView: ComponentFn<AuthCatalog, "NavBar">;
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
Defined in: [play-dom/examples/demo/src/components/NavBarView.ts:13](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
9
|
+
Defined in: [play-dom/examples/demo/src/components/NavBarView.ts:13](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-dom/examples/demo/src/components/NavBarView.ts#L13)
|
|
@@ -6,4 +6,4 @@
|
|
|
6
6
|
const Navigation: ComponentFn<AuthCatalog, "Navigation">;
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
Defined in: [play-dom/examples/demo/src/components/Navigation.ts:4](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
9
|
+
Defined in: [play-dom/examples/demo/src/components/Navigation.ts:4](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-dom/examples/demo/src/components/Navigation.ts#L4)
|
|
@@ -6,4 +6,4 @@
|
|
|
6
6
|
const Overview: ComponentFn<AuthCatalog, "Overview">;
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
Defined in: [play-dom/examples/demo/src/components/Overview.ts:4](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
9
|
+
Defined in: [play-dom/examples/demo/src/components/Overview.ts:4](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-dom/examples/demo/src/components/Overview.ts#L4)
|
|
@@ -6,4 +6,4 @@
|
|
|
6
6
|
const Profile: ComponentFn<AuthCatalog, "Profile">;
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
Defined in: [play-dom/examples/demo/src/components/Profile.ts:4](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
9
|
+
Defined in: [play-dom/examples/demo/src/components/Profile.ts:4](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-dom/examples/demo/src/components/Profile.ts#L4)
|
|
@@ -6,4 +6,4 @@
|
|
|
6
6
|
const Settings: ComponentFn<AuthCatalog, "Settings">;
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
Defined in: [play-dom/examples/demo/src/components/Settings.ts:4](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
9
|
+
Defined in: [play-dom/examples/demo/src/components/Settings.ts:4](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.33/packages/play-dom/examples/demo/src/components/Settings.ts#L4)
|