@xmachines/docs 1.0.0-beta.9 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +137 -7
- package/api/@xmachines/play/README.md +160 -38
- package/api/@xmachines/play/classes/NonNullableError.md +189 -0
- package/api/@xmachines/play/classes/PlayError.md +251 -0
- package/api/@xmachines/play/functions/assertNonNullable.md +56 -0
- package/api/@xmachines/play/type-aliases/PlayEvent.md +6 -6
- package/api/@xmachines/play-actor/README.md +141 -160
- package/api/@xmachines/play-actor/classes/AbstractActor.md +91 -122
- package/api/@xmachines/play-actor/functions/attachRenderErrorHandler.md +40 -0
- package/api/@xmachines/play-actor/functions/toAtomState.md +33 -0
- package/api/@xmachines/play-actor/functions/typedSpec.md +54 -0
- package/api/@xmachines/play-actor/interfaces/BaseActorProviderProps.md +46 -0
- package/api/@xmachines/play-actor/interfaces/BaseViewContextValue.md +33 -0
- package/api/@xmachines/play-actor/interfaces/PlaySpec.md +28 -0
- package/api/@xmachines/play-actor/interfaces/Routable.md +6 -21
- package/api/@xmachines/play-actor/interfaces/Viewable.md +12 -6
- package/api/@xmachines/play-dom/README.md +384 -0
- package/api/@xmachines/play-dom/classes/PlayRenderer.md +115 -0
- package/api/@xmachines/play-dom/functions/createPlayUI.md +28 -0
- package/api/@xmachines/play-dom/functions/createRenderer.md +44 -0
- package/api/@xmachines/play-dom/functions/defineRegistry.md +26 -0
- package/api/@xmachines/play-dom/functions/renderSpec.md +67 -0
- package/api/@xmachines/play-dom/interfaces/ComponentContext.md +23 -0
- package/api/@xmachines/play-dom/interfaces/CreatePlayUIOptions.md +34 -0
- package/api/@xmachines/play-dom/interfaces/DefineRegistryResult.md +17 -0
- package/api/@xmachines/play-dom/interfaces/DomRenderContext.md +28 -0
- package/api/@xmachines/play-dom/interfaces/EventHandle.md +15 -0
- package/api/@xmachines/play-dom/interfaces/MountOptions.md +18 -0
- package/api/@xmachines/play-dom/interfaces/PlayDomOptions.md +30 -0
- package/api/@xmachines/play-dom/interfaces/RenderSpecOptions.md +26 -0
- package/api/@xmachines/play-dom/interfaces/UIProviderOptions.md +32 -0
- package/api/@xmachines/play-dom/type-aliases/ActionFn.md +46 -0
- package/api/@xmachines/play-dom/type-aliases/Actions.md +18 -0
- 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 +26 -0
- package/api/@xmachines/play-dom/type-aliases/ComponentRegistry.md +15 -0
- package/api/@xmachines/play-dom/type-aliases/ConfirmHandler.md +44 -0
- package/api/@xmachines/play-dom/type-aliases/DefineRegistryOptions.md +39 -0
- package/api/@xmachines/play-dom/type-aliases/DomComponentRenderer.md +20 -0
- package/api/@xmachines/play-dom/type-aliases/DomRegistry.md +9 -0
- package/api/@xmachines/play-dom/type-aliases/DomSchema.md +9 -0
- package/api/@xmachines/play-dom/type-aliases/MountFn.md +27 -0
- package/api/@xmachines/play-dom/type-aliases/RenderErrorHandler.md +23 -0
- package/api/@xmachines/play-dom/type-aliases/SetState.md +30 -0
- package/api/@xmachines/play-dom/variables/schema.md +62 -0
- package/api/@xmachines/play-dom-router/README.md +271 -0
- package/api/@xmachines/play-dom-router/functions/connectRouter.md +43 -0
- package/api/@xmachines/{play-router → play-dom-router}/functions/createBrowserHistory.md +10 -2
- package/api/@xmachines/play-dom-router/functions/createRouteMap.md +39 -0
- package/api/@xmachines/play-dom-router/functions/createRouter.md +54 -0
- package/api/@xmachines/play-dom-router/interfaces/BrowserHistory.md +176 -0
- package/api/@xmachines/play-dom-router/interfaces/BrowserWindow.md +69 -0
- package/api/@xmachines/play-dom-router/interfaces/ConnectRouterOptions.md +15 -0
- package/api/@xmachines/play-dom-router/interfaces/PlayRouteEvent.md +129 -0
- package/api/@xmachines/play-dom-router/interfaces/RoutableActor.md +68 -0
- package/api/@xmachines/play-dom-router/interfaces/RouteLookupContract.md +54 -0
- package/api/@xmachines/play-dom-router/interfaces/RouteMap.md +121 -0
- package/api/@xmachines/play-dom-router/interfaces/RouteMapOptions.md +13 -0
- package/api/@xmachines/play-dom-router/interfaces/RouteMapping.md +27 -0
- package/api/@xmachines/play-dom-router/interfaces/RouterBridge.md +104 -0
- package/api/@xmachines/play-dom-router/interfaces/VanillaRouter.md +28 -0
- package/api/@xmachines/play-react/README.md +185 -334
- package/api/@xmachines/play-react/classes/PlayErrorBoundary.md +46 -42
- package/api/@xmachines/play-react/functions/ActionProvider.md +21 -0
- package/api/@xmachines/play-react/functions/JSONUIProvider.md +21 -0
- package/api/@xmachines/play-react/functions/Renderer.md +21 -0
- package/api/@xmachines/play-react/functions/StateProvider.md +27 -0
- package/api/@xmachines/play-react/functions/ValidationProvider.md +21 -0
- package/api/@xmachines/play-react/functions/VisibilityProvider.md +21 -0
- package/api/@xmachines/play-react/functions/defineRegistry.md +49 -0
- package/api/@xmachines/play-react/functions/useActor.md +13 -0
- package/api/@xmachines/play-react/functions/useBoundProp.md +45 -0
- package/api/@xmachines/play-react/functions/usePlayView.md +32 -0
- package/api/@xmachines/play-react/functions/useSignalEffect.md +29 -20
- package/api/@xmachines/play-react/interfaces/ActionProviderProps.md +15 -0
- package/api/@xmachines/play-react/interfaces/ActorProviderProps.md +27 -0
- package/api/@xmachines/play-react/interfaces/ComponentContext.md +37 -0
- package/api/@xmachines/play-react/interfaces/JSONUIProviderProps.md +22 -0
- package/api/@xmachines/play-react/interfaces/PlayErrorBoundaryProps.md +7 -7
- package/api/@xmachines/play-react/interfaces/PlayErrorBoundaryState.md +6 -6
- package/api/@xmachines/play-react/interfaces/PlayUIProviderProps.md +26 -0
- package/api/@xmachines/play-react/interfaces/RendererProps.md +17 -0
- package/api/@xmachines/play-react/interfaces/StateProviderProps.md +16 -0
- package/api/@xmachines/play-react/interfaces/ValidationProviderProps.md +14 -0
- package/api/@xmachines/play-react/interfaces/ViewContextValue.md +20 -0
- package/api/@xmachines/play-react/interfaces/VisibilityProviderProps.md +13 -0
- package/api/@xmachines/play-react/type-aliases/AnyPlayActor.md +11 -0
- package/api/@xmachines/play-react/type-aliases/ComponentFn.md +36 -0
- package/api/@xmachines/play-react/type-aliases/RenderErrorHandler.md +23 -0
- package/api/@xmachines/play-react/variables/ActorProvider.md +33 -0
- package/api/@xmachines/play-react/variables/PlayRenderer.md +6 -56
- package/api/@xmachines/play-react/variables/PlayUIProvider.md +43 -0
- package/api/@xmachines/play-react-router/README.md +130 -114
- package/api/@xmachines/play-react-router/classes/ReactRouterBridge.md +19 -242
- package/api/@xmachines/play-react-router/classes/RouteMap.md +48 -36
- package/api/@xmachines/play-react-router/functions/createPlayRouterProvider.md +45 -0
- package/api/@xmachines/play-react-router/functions/createRouteMap.md +39 -0
- package/api/@xmachines/play-react-router/functions/createRouteMapFromTree.md +23 -12
- package/api/@xmachines/play-react-router/interfaces/PlayActor.md +68 -0
- package/api/@xmachines/play-react-router/interfaces/PlayRouteEvent.md +22 -12
- package/api/@xmachines/play-react-router/interfaces/PlayRouterProviderBaseProps.md +32 -0
- package/api/@xmachines/play-react-router/interfaces/PlayRouterProviderProps.md +25 -9
- package/api/@xmachines/play-react-router/interfaces/RouteMapOptions.md +13 -0
- package/api/@xmachines/play-react-router/interfaces/RouteMapping.md +19 -9
- package/api/@xmachines/play-react-router/interfaces/RouterBridge.md +8 -8
- package/api/@xmachines/play-react-router/type-aliases/PlayRouterBridgeConstructor.md +30 -0
- package/api/@xmachines/play-react-router/variables/PlayRouterProvider.md +32 -0
- package/api/@xmachines/play-router/README.md +275 -353
- package/api/@xmachines/play-router/classes/RouteMap.md +149 -0
- package/api/@xmachines/play-router/classes/RouterBridgeBase.md +21 -221
- package/api/@xmachines/play-router/functions/buildPlayRouteEvent.md +32 -0
- package/api/@xmachines/play-router/functions/buildRouteTree.md +12 -2
- package/api/@xmachines/play-router/functions/createRouteMap.md +22 -36
- package/api/@xmachines/play-router/functions/createRouteMapFromTree.md +46 -0
- package/api/@xmachines/play-router/functions/detectDuplicateRoutes.md +14 -7
- package/api/@xmachines/play-router/functions/extractMachineRoutes.md +10 -46
- package/api/@xmachines/play-router/functions/extractQuery.md +22 -0
- package/api/@xmachines/play-router/functions/extractRouteParams.md +54 -0
- package/api/@xmachines/play-router/functions/findRouteById.md +2 -2
- package/api/@xmachines/play-router/functions/findRouteByPath.md +2 -2
- package/api/@xmachines/play-router/functions/getNavigableRoutes.md +2 -2
- package/api/@xmachines/play-router/functions/getRoutableRoutes.md +2 -2
- package/api/@xmachines/play-router/functions/getTransitionReachableRoutes.md +43 -0
- package/api/@xmachines/play-router/functions/isRouteReachable.md +38 -0
- package/api/@xmachines/play-router/functions/machineToGraph.md +19 -0
- package/api/@xmachines/play-router/functions/routeExists.md +2 -2
- package/api/@xmachines/play-router/functions/sanitizePathname.md +40 -0
- package/api/@xmachines/play-router/functions/validateRouteFormat.md +10 -9
- package/api/@xmachines/play-router/functions/validateStateExists.md +9 -9
- package/api/@xmachines/play-router/interfaces/BuildPlayRouteEventOptions.md +13 -0
- package/api/@xmachines/play-router/interfaces/LocationLike.md +27 -0
- package/api/@xmachines/play-router/interfaces/MachineEdgeData.md +15 -0
- package/api/@xmachines/play-router/interfaces/MachineNodeData.md +17 -0
- package/api/@xmachines/play-router/interfaces/PlayActor.md +68 -0
- package/api/@xmachines/play-router/interfaces/PlayRouteEvent.md +22 -12
- package/api/@xmachines/play-router/interfaces/ResolvedRoutePath.md +17 -0
- package/api/@xmachines/play-router/interfaces/RoutableActor.md +64 -0
- package/api/@xmachines/play-router/interfaces/RouteInfo.md +11 -11
- package/api/@xmachines/play-router/interfaces/RouteMapOptions.md +13 -0
- package/api/@xmachines/play-router/interfaces/RouteMapping.md +27 -0
- package/api/@xmachines/play-router/interfaces/RouteMatch.md +12 -0
- package/api/@xmachines/play-router/interfaces/RouteNode.md +13 -13
- package/api/@xmachines/play-router/interfaces/RouteObject.md +5 -5
- package/api/@xmachines/play-router/interfaces/RouteTree.md +8 -7
- package/api/@xmachines/play-router/interfaces/RouteWatcherHandle.md +55 -0
- package/api/@xmachines/play-router/interfaces/RouterBridge.md +8 -8
- package/api/@xmachines/play-router/interfaces/WindowLike.md +65 -0
- package/api/@xmachines/play-router/type-aliases/MachineGraph.md +20 -0
- package/api/@xmachines/play-router/type-aliases/RouteMetadata.md +2 -2
- package/api/@xmachines/play-signals/README.md +116 -65
- package/api/@xmachines/play-signals/functions/watchSignal.md +42 -0
- package/api/@xmachines/play-signals/interfaces/ComputedOptions.md +7 -5
- package/api/@xmachines/play-signals/interfaces/SignalComputed.md +3 -3
- package/api/@xmachines/play-signals/interfaces/SignalOptions.md +7 -5
- package/api/@xmachines/play-signals/interfaces/SignalState.md +4 -4
- package/api/@xmachines/play-signals/interfaces/SignalWatcher.md +5 -5
- package/api/@xmachines/play-signals/namespaces/Signal/README.md +1 -1
- package/api/@xmachines/play-signals/namespaces/Signal/classes/Computed.md +7 -7
- package/api/@xmachines/play-signals/namespaces/Signal/classes/State.md +8 -8
- package/api/@xmachines/play-signals/namespaces/Signal/interfaces/Options.md +7 -7
- package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/README.md +1 -1
- package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/classes/Watcher.md +9 -9
- package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/currentComputed.md +2 -2
- package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/hasSinks.md +2 -2
- package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/hasSources.md +2 -2
- package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/introspectSinks.md +2 -2
- package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/introspectSources.md +2 -2
- package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/untrack.md +2 -2
- package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/variables/unwatched.md +2 -2
- package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/variables/watched.md +2 -2
- package/api/@xmachines/play-signals/namespaces/Signal/variables/isComputed.md +2 -2
- package/api/@xmachines/play-signals/namespaces/Signal/variables/isState.md +2 -2
- package/api/@xmachines/play-signals/namespaces/Signal/variables/isWatcher.md +2 -2
- package/api/@xmachines/play-signals/type-aliases/WatcherNotify.md +2 -2
- package/api/@xmachines/play-solid/README.md +196 -234
- package/api/@xmachines/play-solid/functions/ActionProvider.md +19 -0
- package/api/@xmachines/play-solid/functions/JSONUIProvider.md +21 -0
- package/api/@xmachines/play-solid/functions/Renderer.md +21 -0
- package/api/@xmachines/play-solid/functions/StateProvider.md +19 -0
- package/api/@xmachines/play-solid/functions/ValidationProvider.md +19 -0
- package/api/@xmachines/play-solid/functions/VisibilityProvider.md +20 -0
- package/api/@xmachines/play-solid/functions/defineRegistry.md +49 -0
- package/api/@xmachines/play-solid/functions/useAction.md +24 -0
- package/api/@xmachines/play-solid/functions/useActions.md +13 -0
- package/api/@xmachines/play-solid/functions/useActor.md +13 -0
- package/api/@xmachines/play-solid/functions/useBoundProp.md +45 -0
- package/api/@xmachines/play-solid/functions/useFieldValidation.md +29 -0
- package/api/@xmachines/play-solid/functions/useIsVisible.md +19 -0
- package/api/@xmachines/play-solid/functions/useOptionalValidation.md +13 -0
- package/api/@xmachines/play-solid/functions/usePlayView.md +30 -0
- package/api/@xmachines/play-solid/functions/useStateBinding.md +25 -0
- package/api/@xmachines/play-solid/functions/useStateStore.md +13 -0
- package/api/@xmachines/play-solid/functions/useStateValue.md +25 -0
- package/api/@xmachines/play-solid/functions/useVisibility.md +13 -0
- package/api/@xmachines/play-solid/interfaces/ActionProviderProps.md +12 -0
- package/api/@xmachines/play-solid/interfaces/ActorProviderProps.md +30 -0
- package/api/@xmachines/play-solid/interfaces/ComponentContext.md +37 -0
- package/api/@xmachines/play-solid/interfaces/DefineRegistryResult.md +15 -0
- package/api/@xmachines/play-solid/interfaces/JSONUIProviderProps.md +22 -0
- package/api/@xmachines/play-solid/interfaces/PlayUIProviderProps.md +26 -0
- package/api/@xmachines/play-solid/interfaces/RendererProps.md +17 -0
- package/api/@xmachines/play-solid/interfaces/StateProviderProps.md +13 -0
- package/api/@xmachines/play-solid/interfaces/ValidationProviderProps.md +11 -0
- package/api/@xmachines/play-solid/interfaces/ViewContextValue.md +21 -0
- package/api/@xmachines/play-solid/type-aliases/AnyPlayActor.md +11 -0
- package/api/@xmachines/play-solid/type-aliases/ComponentFn.md +36 -0
- package/api/@xmachines/play-solid/type-aliases/ComponentRegistry.md +11 -0
- package/api/@xmachines/play-solid/type-aliases/RenderErrorHandler.md +23 -0
- package/api/@xmachines/play-solid/type-aliases/SetState.md +21 -0
- package/api/@xmachines/play-solid/type-aliases/VisibilityProviderProps.md +9 -0
- package/api/@xmachines/play-solid/variables/ActorContext.md +13 -0
- package/api/@xmachines/play-solid/variables/ActorProvider.md +27 -0
- package/api/@xmachines/play-solid/variables/PlayRenderer.md +6 -62
- package/api/@xmachines/play-solid/variables/PlayUIProvider.md +26 -0
- package/api/@xmachines/play-solid-router/README.md +151 -560
- package/api/@xmachines/play-solid-router/classes/RouteMap.md +31 -32
- package/api/@xmachines/play-solid-router/classes/SolidRouterBridge.md +27 -242
- package/api/@xmachines/play-solid-router/functions/createPlayRouterProvider.md +44 -0
- package/api/@xmachines/play-solid-router/functions/createRouteMap.md +18 -11
- package/api/@xmachines/play-solid-router/interfaces/AbstractActor.md +84 -115
- package/api/@xmachines/play-solid-router/interfaces/PlayActor.md +68 -0
- package/api/@xmachines/play-solid-router/interfaces/PlayRouteEvent.md +22 -12
- package/api/@xmachines/play-solid-router/interfaces/PlayRouterProviderBaseProps.md +30 -0
- package/api/@xmachines/play-solid-router/interfaces/PlayRouterProviderProps.md +25 -9
- package/api/@xmachines/play-solid-router/interfaces/RouteMapOptions.md +13 -0
- package/api/@xmachines/play-solid-router/interfaces/RouteMapping.md +20 -7
- package/api/@xmachines/play-solid-router/interfaces/RouterBridge.md +8 -8
- package/api/@xmachines/play-solid-router/type-aliases/PlayRouterBridgeConstructor.md +34 -0
- package/api/@xmachines/play-solid-router/type-aliases/RoutableActor.md +8 -4
- package/api/@xmachines/play-solid-router/type-aliases/SolidRouterHooks.md +22 -19
- package/api/@xmachines/play-solid-router/variables/PlayRouterProvider.md +52 -0
- package/api/@xmachines/play-svelte/README.md +269 -0
- package/api/@xmachines/play-svelte/functions/defineRegistry.md +31 -0
- package/api/@xmachines/play-svelte/functions/getActorContext.md +21 -0
- package/api/@xmachines/play-svelte/functions/getPlayViewContext.md +19 -0
- package/api/@xmachines/play-svelte/functions/setActorContext.md +19 -0
- package/api/@xmachines/play-svelte/interfaces/ActorProviderProps.md +44 -0
- package/api/@xmachines/play-svelte/interfaces/BaseComponentProps.md +29 -0
- package/api/@xmachines/play-svelte/interfaces/ComponentContext.md +29 -0
- package/api/@xmachines/play-svelte/interfaces/DefineRegistryOptions.md +24 -0
- package/api/@xmachines/play-svelte/interfaces/PlayUIProviderProps.md +43 -0
- package/api/@xmachines/play-svelte/interfaces/ViewContextValue.md +24 -0
- package/api/@xmachines/play-svelte/type-aliases/ActionFn.md +30 -0
- package/api/@xmachines/play-svelte/type-aliases/Actions.md +17 -0
- package/api/@xmachines/play-svelte/type-aliases/AnyPlayActor.md +11 -0
- package/api/@xmachines/play-svelte/type-aliases/ComponentFn.md +18 -0
- package/api/@xmachines/play-svelte/type-aliases/JSONUIProviderProps.md +7 -0
- package/api/@xmachines/play-svelte/type-aliases/PlayRenderer.md +9 -0
- package/api/@xmachines/play-svelte/type-aliases/RenderErrorHandler.md +23 -0
- package/api/@xmachines/play-svelte/type-aliases/SetState.md +21 -0
- package/api/@xmachines/play-svelte/variables/PlayRenderer.md +9 -0
- package/api/@xmachines/play-svelte-spa-router/README.md +199 -0
- package/api/@xmachines/play-svelte-spa-router/classes/RouteMap.md +149 -0
- package/api/@xmachines/play-svelte-spa-router/functions/connectRouter.md +32 -0
- package/api/@xmachines/play-svelte-spa-router/functions/createRouteMap.md +39 -0
- package/api/@xmachines/play-svelte-spa-router/interfaces/ConnectRouterOptions.md +17 -0
- package/api/@xmachines/play-svelte-spa-router/interfaces/PlayRouteEvent.md +129 -0
- package/api/@xmachines/play-svelte-spa-router/interfaces/RouteMapOptions.md +13 -0
- package/api/@xmachines/play-svelte-spa-router/interfaces/RouteMapping.md +27 -0
- package/api/@xmachines/play-svelte-spa-router/interfaces/RouterBridge.md +104 -0
- package/api/@xmachines/play-svelte-spa-router/interfaces/WindowLike.md +65 -0
- package/api/@xmachines/play-svelte-spa-router/type-aliases/RoutableActor.md +9 -0
- package/api/@xmachines/play-sveltekit-router/README.md +211 -0
- package/api/@xmachines/play-sveltekit-router/classes/RouteMap.md +149 -0
- package/api/@xmachines/play-sveltekit-router/functions/connectRouter.md +32 -0
- package/api/@xmachines/play-sveltekit-router/functions/createRouteMap.md +39 -0
- package/api/@xmachines/play-sveltekit-router/interfaces/ConnectRouterOptions.md +13 -0
- package/api/@xmachines/play-sveltekit-router/interfaces/LocationLike.md +27 -0
- package/api/@xmachines/play-sveltekit-router/interfaces/PlayRouteEvent.md +129 -0
- package/api/@xmachines/play-sveltekit-router/interfaces/RouteMapOptions.md +13 -0
- package/api/@xmachines/play-sveltekit-router/interfaces/RouteMapping.md +27 -0
- package/api/@xmachines/play-sveltekit-router/interfaces/RouterBridge.md +104 -0
- package/api/@xmachines/play-sveltekit-router/type-aliases/RoutableActor.md +9 -0
- package/api/@xmachines/play-tanstack-react-router/README.md +155 -126
- package/api/@xmachines/play-tanstack-react-router/classes/RouteMap.md +48 -36
- package/api/@xmachines/play-tanstack-react-router/classes/TanStackReactRouterBridge.md +31 -252
- package/api/@xmachines/play-tanstack-react-router/functions/createPlayRouterProvider.md +45 -0
- package/api/@xmachines/play-tanstack-react-router/functions/createRouteMap.md +22 -36
- package/api/@xmachines/play-tanstack-react-router/functions/createRouteMapFromTree.md +23 -12
- package/api/@xmachines/play-tanstack-react-router/functions/extractMachineRoutes.md +28 -0
- package/api/@xmachines/play-tanstack-react-router/interfaces/PlayActor.md +68 -0
- package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouteEvent.md +22 -12
- package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouterProviderBaseProps.md +32 -0
- package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouterProviderProps.md +25 -9
- package/api/@xmachines/play-tanstack-react-router/interfaces/RouteMapOptions.md +13 -0
- package/api/@xmachines/play-tanstack-react-router/interfaces/RouteMapping.md +19 -9
- package/api/@xmachines/play-tanstack-react-router/interfaces/RouteNavigateEvent.md +6 -6
- package/api/@xmachines/play-tanstack-react-router/interfaces/RouterBridge.md +8 -8
- package/api/@xmachines/play-tanstack-react-router/type-aliases/PlayRouterBridgeConstructor.md +30 -0
- package/api/@xmachines/play-tanstack-react-router/type-aliases/TanStackRouterInstance.md +2 -2
- package/api/@xmachines/play-tanstack-react-router/type-aliases/TanStackRouterLike.md +40 -18
- package/api/@xmachines/play-tanstack-react-router/variables/PlayRouterProvider.md +34 -0
- package/api/@xmachines/play-tanstack-router/README.md +58 -0
- package/api/@xmachines/play-tanstack-router/classes/TanStackRouterBridgeBase.md +131 -0
- package/api/@xmachines/play-tanstack-router/type-aliases/TanStackRouteMapLike.md +57 -0
- package/api/@xmachines/play-tanstack-router/type-aliases/TanStackRouterLike.md +100 -0
- package/api/@xmachines/play-tanstack-solid-router/README.md +215 -175
- package/api/@xmachines/play-tanstack-solid-router/classes/RouteMap.md +31 -32
- package/api/@xmachines/play-tanstack-solid-router/classes/TanStackSolidRouterBridge.md +121 -0
- package/api/@xmachines/play-tanstack-solid-router/functions/createPlayRouterProvider.md +44 -0
- package/api/@xmachines/play-tanstack-solid-router/functions/createRouteMap.md +18 -11
- package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayActor.md +68 -0
- package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayRouteEvent.md +22 -12
- package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayRouterProviderBaseProps.md +31 -0
- package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayRouterProviderProps.md +23 -9
- package/api/@xmachines/play-tanstack-solid-router/interfaces/RouteMapOptions.md +13 -0
- package/api/@xmachines/play-tanstack-solid-router/interfaces/RouteMapping.md +14 -10
- package/api/@xmachines/play-tanstack-solid-router/interfaces/RouterBridge.md +8 -8
- package/api/@xmachines/play-tanstack-solid-router/type-aliases/PlayRouterBridgeConstructor.md +30 -0
- package/api/@xmachines/play-tanstack-solid-router/type-aliases/RoutableActor.md +8 -4
- package/api/@xmachines/play-tanstack-solid-router/type-aliases/TanStackRouterInstance.md +3 -3
- package/api/@xmachines/play-tanstack-solid-router/type-aliases/TanStackRouterLike.md +40 -18
- package/api/@xmachines/play-tanstack-solid-router/variables/PlayRouterProvider.md +33 -0
- package/api/@xmachines/play-vue/README.md +192 -210
- package/api/@xmachines/play-vue/functions/defineRegistry.md +32 -0
- package/api/@xmachines/play-vue/functions/getPlayViewContext.md +28 -0
- package/api/@xmachines/play-vue/functions/useActor.md +13 -0
- package/api/@xmachines/play-vue/functions/useBoundProp.md +45 -0
- package/api/@xmachines/play-vue/interfaces/ActionProviderProps.md +12 -0
- package/api/@xmachines/play-vue/interfaces/ActorProviderProps.md +25 -0
- package/api/@xmachines/play-vue/interfaces/ComponentContext.md +37 -0
- package/api/@xmachines/play-vue/interfaces/DefineRegistryResult.md +15 -0
- package/api/@xmachines/play-vue/interfaces/JSONUIProviderProps.md +21 -0
- package/api/@xmachines/play-vue/interfaces/PlayUIProviderProps.md +24 -0
- package/api/@xmachines/play-vue/interfaces/RendererProps.md +17 -0
- package/api/@xmachines/play-vue/interfaces/StateProviderProps.md +15 -0
- package/api/@xmachines/play-vue/interfaces/ValidationProviderProps.md +11 -0
- package/api/@xmachines/play-vue/interfaces/ViewContextValue.md +21 -0
- package/api/@xmachines/play-vue/interfaces/VisibilityProviderProps.md +5 -0
- package/api/@xmachines/play-vue/type-aliases/AnyPlayActor.md +11 -0
- package/api/@xmachines/play-vue/type-aliases/ComponentEntry.md +16 -0
- package/api/@xmachines/play-vue/type-aliases/ComponentFn.md +35 -0
- package/api/@xmachines/play-vue/type-aliases/ComponentsMap.md +15 -0
- package/api/@xmachines/play-vue/type-aliases/DefineRegistryOptions.md +22 -0
- package/api/@xmachines/play-vue/type-aliases/RenderErrorHandler.md +23 -0
- package/api/@xmachines/play-vue/variables/ActionProvider.md +64 -0
- package/api/@xmachines/play-vue/variables/JSONUIProvider.md +105 -0
- package/api/@xmachines/play-vue/variables/PlayRenderer.md +2 -2
- package/api/@xmachines/play-vue/variables/Renderer.md +88 -0
- package/api/@xmachines/play-vue/variables/StateProvider.md +79 -0
- package/api/@xmachines/play-vue/variables/ValidationProvider.md +55 -0
- package/api/@xmachines/play-vue/variables/VisibilityProvider.md +40 -0
- package/api/@xmachines/play-vue-router/README.md +173 -487
- package/api/@xmachines/play-vue-router/classes/RouteMap.md +56 -116
- package/api/@xmachines/play-vue-router/classes/VueRouterBridge.md +23 -271
- package/api/@xmachines/play-vue-router/functions/createRouteMap.md +26 -6
- package/api/@xmachines/play-vue-router/interfaces/PlayActor.md +68 -0
- package/api/@xmachines/play-vue-router/interfaces/PlayRouteEvent.md +22 -12
- package/api/@xmachines/play-vue-router/interfaces/RouteMapOptions.md +13 -0
- package/api/@xmachines/play-vue-router/interfaces/RouteMapping.md +20 -8
- package/api/@xmachines/play-vue-router/interfaces/RouterBridge.md +8 -8
- package/api/@xmachines/play-vue-router/type-aliases/RoutableActor.md +8 -4
- package/api/@xmachines/play-vue-router/variables/PlayRouterProvider.md +12 -6
- package/api/@xmachines/play-xstate/README.md +178 -347
- package/api/@xmachines/play-xstate/classes/PlayerActor.md +161 -191
- package/api/@xmachines/play-xstate/functions/buildRouteUrl.md +31 -20
- package/api/@xmachines/play-xstate/functions/composeGuards.md +2 -2
- package/api/@xmachines/play-xstate/functions/composeGuardsOr.md +2 -2
- package/api/@xmachines/play-xstate/functions/contextFieldMatches.md +38 -0
- package/api/@xmachines/play-xstate/functions/definePlayer.md +14 -63
- package/api/@xmachines/play-xstate/functions/deriveRoute.md +3 -3
- package/api/@xmachines/play-xstate/functions/eventMatches.md +2 -2
- package/api/@xmachines/play-xstate/functions/formatPlayRouteTransitions.md +3 -3
- package/api/@xmachines/play-xstate/functions/hasContext.md +2 -2
- package/api/@xmachines/play-xstate/functions/isAbsoluteRoute.md +2 -2
- package/api/@xmachines/play-xstate/functions/negateGuard.md +2 -2
- package/api/@xmachines/play-xstate/interfaces/PlayerConfig.md +10 -14
- package/api/@xmachines/play-xstate/interfaces/PlayerFactoryResumeOptions.md +22 -0
- package/api/@xmachines/play-xstate/interfaces/PlayerOptions.md +12 -13
- package/api/@xmachines/play-xstate/interfaces/RouteContext.md +15 -13
- package/api/@xmachines/play-xstate/interfaces/RouteObject.md +17 -0
- package/api/@xmachines/play-xstate/type-aliases/ComposedGuard.md +2 -2
- package/api/@xmachines/play-xstate/type-aliases/Guard.md +2 -2
- package/api/@xmachines/play-xstate/type-aliases/GuardArray.md +3 -3
- package/api/@xmachines/play-xstate/type-aliases/PlayerFactory.md +10 -9
- package/api/@xmachines/play-xstate/type-aliases/RouteMachineConfig.md +15 -5
- package/api/@xmachines/play-xstate/type-aliases/RouteMetadata.md +9 -0
- package/api/@xmachines/play-xstate/type-aliases/RouteStateNode.md +22 -6
- package/api/@xmachines/shared/README.md +95 -295
- package/api/@xmachines/shared/vite-aliases/README.md +11 -0
- package/api/@xmachines/shared/vite-aliases/functions/xmAliases.md +38 -0
- package/api/@xmachines/shared/vite-aliases/functions/xmCacheDir.md +27 -0
- package/api/@xmachines/shared/vite-aliases/functions/xmOptimizeDeps.md +30 -0
- package/api/@xmachines/shared/vite-aliases/functions/xmResolve.md +42 -0
- package/api/@xmachines/shared/vite-aliases/functions/xmSvelteRunes.md +33 -0
- package/api/@xmachines/shared/vitest/README.md +12 -0
- package/api/@xmachines/shared/vitest/functions/defineXmBrowserConfig.md +42 -0
- package/api/@xmachines/shared/vitest/functions/defineXmVitestConfig.md +34 -0
- package/api/@xmachines/shared/vitest/interfaces/XmBrowserConfigOptions.md +16 -0
- package/api/README.md +6 -7
- package/api/llms.txt +72 -23
- package/contributing/README.md +10 -0
- package/contributing/architecture.md +599 -0
- package/contributing/configuration.md +368 -0
- package/contributing/deployment.md +312 -0
- package/contributing/development.md +464 -0
- package/contributing/testing.md +453 -0
- package/examples/@xmachines/play-dom-demo/README.md +181 -0
- package/examples/@xmachines/play-dom-demo/functions/createNavBar.md +24 -0
- package/examples/@xmachines/play-dom-demo/functions/initShell.md +24 -0
- package/examples/@xmachines/play-dom-demo/type-aliases/AuthCatalog.md +9 -0
- package/examples/@xmachines/play-dom-demo/variables/About.md +12 -0
- package/examples/@xmachines/play-dom-demo/variables/Contact.md +12 -0
- package/examples/@xmachines/play-dom-demo/variables/Dashboard.md +13 -0
- package/examples/@xmachines/play-dom-demo/variables/Home.md +13 -0
- package/examples/@xmachines/play-dom-demo/variables/Login.md +13 -0
- package/examples/@xmachines/play-dom-demo/variables/NavBarView.md +16 -0
- package/examples/@xmachines/play-dom-demo/variables/Navigation.md +13 -0
- package/examples/@xmachines/play-dom-demo/variables/Overview.md +13 -0
- package/examples/@xmachines/play-dom-demo/variables/Profile.md +13 -0
- package/examples/@xmachines/play-dom-demo/variables/Settings.md +13 -0
- package/examples/@xmachines/play-dom-demo/variables/Stats.md +13 -0
- package/examples/@xmachines/play-dom-demo/variables/authCatalog.md +172 -0
- package/examples/@xmachines/play-dom-router-demo/README.md +145 -0
- package/examples/@xmachines/play-react-demo/README.md +187 -0
- package/examples/@xmachines/play-react-demo/functions/App.md +13 -0
- package/examples/@xmachines/play-react-demo/functions/DebugPanel.md +20 -0
- package/examples/@xmachines/play-react-demo/functions/HeaderNav.md +20 -0
- package/examples/@xmachines/play-react-demo/functions/Shell.md +22 -0
- package/examples/@xmachines/play-react-demo/type-aliases/AuthCatalog.md +9 -0
- package/examples/@xmachines/play-react-demo/variables/About.md +14 -0
- package/examples/@xmachines/play-react-demo/variables/Contact.md +14 -0
- package/examples/@xmachines/play-react-demo/variables/Dashboard.md +15 -0
- package/examples/@xmachines/play-react-demo/variables/DebugPanel.md +15 -0
- package/examples/@xmachines/play-react-demo/variables/Home.md +14 -0
- package/examples/@xmachines/play-react-demo/variables/Login.md +16 -0
- package/examples/@xmachines/play-react-demo/variables/NavBar.md +16 -0
- package/examples/@xmachines/play-react-demo/variables/NavBarView.md +15 -0
- package/examples/@xmachines/play-react-demo/variables/Navigation.md +14 -0
- package/examples/@xmachines/play-react-demo/variables/Overview.md +14 -0
- package/examples/@xmachines/play-react-demo/variables/Profile.md +14 -0
- package/examples/@xmachines/play-react-demo/variables/Settings.md +14 -0
- package/examples/@xmachines/play-react-demo/variables/Shell.md +18 -0
- package/examples/@xmachines/play-react-demo/variables/Stats.md +14 -0
- package/examples/@xmachines/play-react-demo/variables/authCatalog.md +172 -0
- package/examples/@xmachines/play-react-router-demo/README.md +151 -0
- package/examples/@xmachines/play-solid-demo/README.md +187 -0
- package/examples/@xmachines/play-solid-demo/functions/App.md +13 -0
- package/examples/@xmachines/play-solid-demo/functions/DebugPanel.md +20 -0
- package/examples/@xmachines/play-solid-demo/functions/HeaderNav.md +20 -0
- package/examples/@xmachines/play-solid-demo/functions/Shell.md +22 -0
- package/examples/@xmachines/play-solid-demo/type-aliases/AuthCatalog.md +9 -0
- package/examples/@xmachines/play-solid-demo/variables/About.md +9 -0
- package/examples/@xmachines/play-solid-demo/variables/Contact.md +9 -0
- package/examples/@xmachines/play-solid-demo/variables/Dashboard.md +9 -0
- package/examples/@xmachines/play-solid-demo/variables/DebugPanel.md +15 -0
- package/examples/@xmachines/play-solid-demo/variables/Home.md +9 -0
- package/examples/@xmachines/play-solid-demo/variables/Login.md +9 -0
- package/examples/@xmachines/play-solid-demo/variables/NavBar.md +11 -0
- package/examples/@xmachines/play-solid-demo/variables/NavBarView.md +15 -0
- package/examples/@xmachines/play-solid-demo/variables/Navigation.md +9 -0
- package/examples/@xmachines/play-solid-demo/variables/Overview.md +9 -0
- package/examples/@xmachines/play-solid-demo/variables/Profile.md +9 -0
- package/examples/@xmachines/play-solid-demo/variables/Settings.md +9 -0
- package/examples/@xmachines/play-solid-demo/variables/Shell.md +17 -0
- package/examples/@xmachines/play-solid-demo/variables/Stats.md +9 -0
- package/examples/@xmachines/play-solid-demo/variables/authCatalog.md +172 -0
- package/examples/@xmachines/play-solid-router-demo/README.md +137 -0
- package/examples/@xmachines/play-svelte-demo/README.md +143 -0
- package/examples/@xmachines/play-svelte-demo/type-aliases/App.md +9 -0
- package/examples/@xmachines/play-svelte-demo/type-aliases/AuthCatalog.md +9 -0
- package/examples/@xmachines/play-svelte-demo/variables/App.md +9 -0
- package/examples/@xmachines/play-svelte-demo/variables/authCatalog.md +172 -0
- package/examples/@xmachines/play-svelte-spa-router-demo/README.md +129 -0
- package/examples/@xmachines/play-sveltekit-router-demo/README.md +133 -0
- package/examples/@xmachines/play-tanstack-react-router-demo/README.md +156 -0
- package/examples/@xmachines/play-tanstack-solid-router-demo/README.md +139 -0
- package/examples/@xmachines/play-vue-demo/README.md +183 -0
- package/examples/@xmachines/play-vue-demo/type-aliases/AuthCatalog.md +9 -0
- package/examples/@xmachines/play-vue-demo/variables/App.md +9 -0
- package/examples/@xmachines/play-vue-demo/variables/authCatalog.md +172 -0
- package/examples/@xmachines/play-vue-router-demo/README.md +139 -0
- package/examples/README.md +78 -30
- package/examples/basic-state-machine.md +75 -31
- package/examples/form-validation.md +261 -118
- package/examples/multi-router-integration.md +314 -194
- package/examples/routing-patterns.md +230 -189
- package/examples/traffic-light.md +114 -65
- package/guides/README.md +9 -21
- package/guides/actor-model.md +180 -0
- package/guides/getting-started.md +619 -137
- package/guides/signals.md +166 -0
- package/guides/state-machines.md +284 -0
- package/package.json +18 -7
- package/rfc/broker.md +100 -0
- package/rfc/browser.md +44 -0
- package/rfc/cli.md +118 -0
- package/rfc/git.md +61 -0
- package/rfc/mcp.md +43 -0
- package/rfc/node.md +36 -0
- package/rfc/play.md +472 -0
- package/rfc/rest.md +102 -0
- package/rfc/run.md +159 -0
- package/rfc/streams.md +168 -0
- package/api/@xmachines/play-actor/interfaces/ViewMetadata.md +0 -17
- package/api/@xmachines/play-catalog/README.md +0 -331
- package/api/@xmachines/play-catalog/functions/defineCatalog.md +0 -98
- package/api/@xmachines/play-catalog/functions/defineComponents.md +0 -134
- package/api/@xmachines/play-catalog/type-aliases/Catalog.md +0 -48
- package/api/@xmachines/play-catalog/type-aliases/ComponentsFor.md +0 -20
- package/api/@xmachines/play-catalog/type-aliases/InferComponentProps.md +0 -65
- package/api/@xmachines/play-catalog/type-aliases/NoExtraKeys.md +0 -17
- package/api/@xmachines/play-react/interfaces/PlayRendererProps.md +0 -15
- package/api/@xmachines/play-react-router/functions/PlayRouterProvider.md +0 -19
- package/api/@xmachines/play-react-router-demo/README.md +0 -137
- package/api/@xmachines/play-router/classes/BaseRouteMap.md +0 -142
- package/api/@xmachines/play-router/functions/connectRouter.md +0 -67
- package/api/@xmachines/play-router/functions/crawlMachine.md +0 -92
- package/api/@xmachines/play-router/functions/createRouter.md +0 -76
- package/api/@xmachines/play-router/functions/extractRoute.md +0 -45
- package/api/@xmachines/play-router/interfaces/BaseRouteMapping.md +0 -27
- package/api/@xmachines/play-router/interfaces/BrowserHistory.md +0 -172
- package/api/@xmachines/play-router/interfaces/BrowserWindow.md +0 -69
- package/api/@xmachines/play-router/interfaces/ConnectRouterOptions.md +0 -13
- package/api/@xmachines/play-router/interfaces/RouteMap.md +0 -56
- package/api/@xmachines/play-router/interfaces/StateVisit.md +0 -15
- package/api/@xmachines/play-router/interfaces/VanillaRouter.md +0 -28
- package/api/@xmachines/play-router-demo/README.md +0 -137
- package/api/@xmachines/play-solid/interfaces/PlayRendererProps.md +0 -15
- package/api/@xmachines/play-solid-router/functions/PlayRouterProvider.md +0 -19
- package/api/@xmachines/play-solid-router-demo/README.md +0 -127
- package/api/@xmachines/play-tanstack-react-router/functions/PlayRouterProvider.md +0 -19
- package/api/@xmachines/play-tanstack-react-router/functions/extractParams.md +0 -38
- package/api/@xmachines/play-tanstack-react-router/functions/extractQueryParams.md +0 -33
- package/api/@xmachines/play-tanstack-react-router/variables/extractMachineRoutes.md +0 -64
- package/api/@xmachines/play-tanstack-react-router-demo/README.md +0 -126
- package/api/@xmachines/play-tanstack-solid-router/classes/SolidRouterBridge.md +0 -343
- package/api/@xmachines/play-tanstack-solid-router/functions/PlayRouterProvider.md +0 -19
- package/api/@xmachines/play-tanstack-solid-router-demo/README.md +0 -126
- package/api/@xmachines/play-vue/interfaces/PlayRendererProps.md +0 -14
- package/api/@xmachines/play-vue-router/classes/VueBaseRouteMap.md +0 -201
- package/api/@xmachines/play-vue-router-demo/README.md +0 -133
- package/api/@xmachines/play-xstate/functions/mergeViewProps.md +0 -26
- package/api/@xmachines/play-xstate/functions/stateMatches.md +0 -25
- package/api/@xmachines/play-xstate/functions/validateComponentBinding.md +0 -39
- package/api/@xmachines/play-xstate/functions/validateViewProps.md +0 -80
- package/api/@xmachines/play-xstate/interfaces/CatalogEntry.md +0 -16
- package/api/@xmachines/play-xstate/type-aliases/Catalog.md +0 -21
- package/api/@xmachines/play-xstate/type-aliases/ValidationResult.md +0 -17
- package/api/@xmachines/play-xstate/type-aliases/ViewMergeContext.md +0 -35
- package/api/@xmachines/shared/functions/defineXmVitestConfig.md +0 -29
- package/api/@xmachines/shared/functions/xmAliases.md +0 -24
- package/guides/installation.md +0 -323
|
@@ -1,473 +1,308 @@
|
|
|
1
|
-
[
|
|
1
|
+
[API](../../README.md) / @xmachines/play-xstate
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
**XState v5 adapter for Play Architecture with signal-driven reactivity and routing**
|
|
3
|
+
<!-- generated-by: gsd-doc-writer -->
|
|
6
4
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
## Overview
|
|
5
|
+
# @xmachines/play-xstate
|
|
10
6
|
|
|
11
|
-
|
|
7
|
+
> XState v5 adapter for the XMachines Play Architecture — bind state machines to the actor base with signal-driven reactivity and router integration.
|
|
12
8
|
|
|
13
|
-
|
|
9
|
+
[](https://opensource.org/licenses/MIT)
|
|
10
|
+
[](https://www.npmjs.com/package/@xmachines/play-xstate)
|
|
14
11
|
|
|
15
|
-
|
|
16
|
-
- **Strict Separation (INV-02):** Zero React/framework imports in business logic
|
|
17
|
-
- **Signal-Only Reactivity (INV-05):** TC39 Signals expose all state changes
|
|
12
|
+
Part of the [XMachines Play](../../README.md) monorepo.
|
|
18
13
|
|
|
19
|
-
|
|
14
|
+
---
|
|
20
15
|
|
|
21
16
|
## Installation
|
|
22
17
|
|
|
23
18
|
```bash
|
|
24
|
-
|
|
25
|
-
npm install @xmachines/play-xstate
|
|
19
|
+
pnpm add @xmachines/play-xstate xstate
|
|
26
20
|
```
|
|
27
21
|
|
|
28
|
-
|
|
22
|
+
`xstate ^5.31.0` is a peer dependency and must be installed alongside this package.
|
|
29
23
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
> `zod` is a direct dependency of `@xmachines/play-xstate` (not a peer). You do not need to install it separately unless you use it in your own catalog schemas.
|
|
24
|
+
---
|
|
33
25
|
|
|
34
26
|
## Quick Start
|
|
35
27
|
|
|
36
28
|
```typescript
|
|
37
29
|
import { setup } from "xstate";
|
|
38
|
-
import { z } from "zod";
|
|
39
30
|
import { definePlayer } from "@xmachines/play-xstate";
|
|
40
|
-
import { defineCatalog } from "@xmachines/play-catalog";
|
|
41
31
|
|
|
42
|
-
// 1. Define XState machine
|
|
43
|
-
const machine = setup({
|
|
44
|
-
|
|
45
|
-
context: {} as { userId: string },
|
|
46
|
-
events: {} as { type: "play.route"; to: string } | { type: "auth.login"; userId: string },
|
|
47
|
-
},
|
|
48
|
-
guards: {
|
|
49
|
-
isLoggedIn: ({ context }) => !!context.userId,
|
|
50
|
-
},
|
|
51
|
-
}).createMachine({
|
|
52
|
-
id: "app",
|
|
53
|
-
initial: "login",
|
|
54
|
-
context: { userId: "" },
|
|
32
|
+
// 1. Define your XState v5 machine
|
|
33
|
+
const machine = setup({}).createMachine({
|
|
34
|
+
initial: "idle",
|
|
55
35
|
states: {
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
meta: {
|
|
59
|
-
route: "/login",
|
|
60
|
-
view: { component: "LoginForm" },
|
|
61
|
-
},
|
|
62
|
-
on: {
|
|
63
|
-
"auth.login": {
|
|
64
|
-
guard: "isLoggedIn",
|
|
65
|
-
target: "dashboard",
|
|
66
|
-
},
|
|
67
|
-
},
|
|
68
|
-
},
|
|
69
|
-
dashboard: {
|
|
70
|
-
id: "dashboard",
|
|
71
|
-
meta: {
|
|
72
|
-
route: "/dashboard",
|
|
73
|
-
view: { component: "Dashboard", props: { userId: "" } },
|
|
74
|
-
},
|
|
75
|
-
},
|
|
36
|
+
idle: { meta: { route: "/" } },
|
|
37
|
+
active: { meta: { route: "/active" } },
|
|
76
38
|
},
|
|
77
39
|
});
|
|
78
40
|
|
|
79
|
-
// 2.
|
|
80
|
-
const
|
|
81
|
-
LoginForm: z.object({ error: z.string().optional() }),
|
|
82
|
-
Dashboard: z.object({ userId: z.string() }),
|
|
83
|
-
});
|
|
41
|
+
// 2. Create a player factory
|
|
42
|
+
const createPlayer = definePlayer({ machine });
|
|
84
43
|
|
|
85
|
-
// 3.
|
|
86
|
-
const
|
|
87
|
-
|
|
88
|
-
// 4. Create and start actor
|
|
89
|
-
const actor = createPlayer({ userId: "" });
|
|
44
|
+
// 3. Instantiate and start an actor
|
|
45
|
+
const actor = createPlayer();
|
|
90
46
|
actor.start();
|
|
91
47
|
|
|
92
|
-
//
|
|
93
|
-
actor.
|
|
48
|
+
// 4. Observe TC39 Signal-based reactive state
|
|
49
|
+
console.log(actor.currentRoute.get()); // "/"
|
|
50
|
+
console.log(actor.state.get().value); // "idle"
|
|
94
51
|
|
|
95
|
-
//
|
|
96
|
-
|
|
97
|
-
console.log(actor.currentView.get()); // { component: "LoginForm", props: {...} }
|
|
52
|
+
// 5. Send events — machine guards decide transitions
|
|
53
|
+
actor.send({ type: "activate" });
|
|
98
54
|
|
|
99
|
-
|
|
100
|
-
actor.dispose();
|
|
55
|
+
actor.stop();
|
|
101
56
|
```
|
|
102
57
|
|
|
103
|
-
|
|
58
|
+
---
|
|
104
59
|
|
|
105
|
-
|
|
60
|
+
## API Summary
|
|
106
61
|
|
|
107
|
-
|
|
62
|
+
### `definePlayer(config)`
|
|
108
63
|
|
|
109
|
-
|
|
110
|
-
const createPlayer = definePlayer<TMachine, TCatalog>({
|
|
111
|
-
machine: AnyStateMachine,
|
|
112
|
-
catalog?: Catalog,
|
|
113
|
-
options?: PlayerOptions,
|
|
114
|
-
}): PlayerFactory;
|
|
115
|
-
```
|
|
116
|
-
|
|
117
|
-
**Config:**
|
|
118
|
-
|
|
119
|
-
- `machine` (required) - XState v5 state machine
|
|
120
|
-
- `catalog` (optional) - UI component catalog with Zod schemas
|
|
121
|
-
- `options` (optional) - Lifecycle hooks
|
|
64
|
+
Creates a `PlayerFactory` from an XState v5 machine. The factory pattern enables multiple independent actor instances from a single configuration — useful for multi-user scenarios, SSR, or testing.
|
|
122
65
|
|
|
123
|
-
|
|
66
|
+
```typescript
|
|
67
|
+
import { setup } from "xstate";
|
|
68
|
+
import { definePlayer } from "@xmachines/play-xstate";
|
|
124
69
|
|
|
125
|
-
|
|
70
|
+
const machine = setup({
|
|
71
|
+
types: {
|
|
72
|
+
context: {} as { userId: string },
|
|
73
|
+
input: {} as { userId: string },
|
|
74
|
+
},
|
|
75
|
+
}).createMachine({
|
|
76
|
+
context: ({ input }) => ({ userId: input.userId }),
|
|
77
|
+
initial: "home",
|
|
78
|
+
states: { home: {} },
|
|
79
|
+
});
|
|
126
80
|
|
|
127
|
-
```typescript
|
|
128
81
|
const createPlayer = definePlayer({
|
|
129
|
-
machine
|
|
130
|
-
catalog: authCatalog,
|
|
82
|
+
machine,
|
|
131
83
|
options: {
|
|
132
|
-
onStart: (actor) => console.log("
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
84
|
+
onStart: (actor) => console.log("started"),
|
|
85
|
+
onStop: (actor) => console.log("stopped"),
|
|
86
|
+
onTransition: (actor, prev, next) => console.log("transitioned"),
|
|
87
|
+
onStateChange: (actor, state) => console.log("state changed"),
|
|
88
|
+
onError: (actor, err) => console.error(err),
|
|
136
89
|
},
|
|
137
90
|
});
|
|
138
91
|
|
|
139
|
-
|
|
140
|
-
const
|
|
141
|
-
|
|
92
|
+
// Each call returns an independent PlayerActor instance
|
|
93
|
+
const alice = createPlayer({ userId: "alice" });
|
|
94
|
+
const bob = createPlayer({ userId: "bob" });
|
|
142
95
|
```
|
|
143
96
|
|
|
144
|
-
|
|
97
|
+
#### `PlayerFactory` signature
|
|
145
98
|
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
99
|
+
```typescript
|
|
100
|
+
type PlayerFactory<TMachine> = (
|
|
101
|
+
input?: InputFrom<TMachine>,
|
|
102
|
+
options?: PlayerFactoryResumeOptions<TMachine>,
|
|
103
|
+
) => PlayerActor<TMachine>;
|
|
104
|
+
```
|
|
149
105
|
|
|
150
|
-
|
|
151
|
-
- `currentRoute: Signal.Computed<string | null>` — Derived navigation path
|
|
152
|
-
- `currentView: Signal.State<ViewMetadata | null>` — Current UI structure (updated at state entry)
|
|
106
|
+
#### Restoring from a snapshot
|
|
153
107
|
|
|
154
|
-
|
|
108
|
+
```typescript
|
|
109
|
+
const snapshot = actor.getSnapshot();
|
|
110
|
+
actor.stop();
|
|
155
111
|
|
|
156
|
-
|
|
112
|
+
// Restore to the exact saved state
|
|
113
|
+
const restored = createPlayer({ userId: "alice" }, { snapshot });
|
|
114
|
+
restored.start();
|
|
115
|
+
console.log(restored.currentRoute.get()); // same route as when saved
|
|
116
|
+
```
|
|
157
117
|
|
|
158
|
-
|
|
118
|
+
---
|
|
159
119
|
|
|
160
|
-
|
|
161
|
-
new PlayerActor(machine, catalog, options, input?)
|
|
162
|
-
```
|
|
120
|
+
### `PlayerActor<TMachine>`
|
|
163
121
|
|
|
164
|
-
|
|
122
|
+
Concrete actor class that wraps an XState v5 actor and exposes TC39 Signal-based reactive signals. Implements both `Routable` and `Viewable` interfaces from `@xmachines/play-actor`.
|
|
165
123
|
|
|
166
|
-
|
|
124
|
+
#### Signals
|
|
167
125
|
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
126
|
+
| Signal | Type | Description |
|
|
127
|
+
| -------------- | -------------------------------------- | ---------------------------------------------------------------------------------------------------------------- |
|
|
128
|
+
| `state` | `Signal.State<SnapshotFrom<TMachine>>` | Current XState snapshot; updated on every active transition |
|
|
129
|
+
| `currentRoute` | `Signal.Computed<string \| null>` | Derived URL from active state's `meta.route` template and context |
|
|
130
|
+
| `currentView` | `Signal.State<PlaySpec \| null>` | View spec from active state's `meta.view` metadata; enriched with context params |
|
|
131
|
+
| `initialRoute` | `readonly string \| null` | Machine's initial-state route (fixed at construction; used by router bridges for deep-link vs restore detection) |
|
|
172
132
|
|
|
173
|
-
|
|
133
|
+
#### Methods
|
|
174
134
|
|
|
175
|
-
|
|
176
|
-
|
|
135
|
+
| Method | Description |
|
|
136
|
+
| --------------- | -------------------------------------------------------------- |
|
|
137
|
+
| `start()` | Start the actor and fire `onStart` hook |
|
|
138
|
+
| `stop()` | Stop the actor, clean up subscriptions, fire `onStop` hook |
|
|
139
|
+
| `send(event)` | Send a typed event to the machine; fires `onTransition` hook |
|
|
140
|
+
| `can(event)` | Returns `true` if the current state can accept the given event |
|
|
141
|
+
| `getSnapshot()` | Returns the current XState snapshot |
|
|
142
|
+
| `dispose()` | Alias for `stop()` |
|
|
177
143
|
|
|
178
|
-
|
|
144
|
+
#### Signal usage example
|
|
179
145
|
|
|
180
146
|
```typescript
|
|
181
|
-
|
|
182
|
-
actor.start();
|
|
147
|
+
import { Signal } from "@xmachines/play-signals";
|
|
183
148
|
|
|
184
|
-
// Observe signals with watcher
|
|
185
149
|
const watcher = new Signal.subtle.Watcher(() => {
|
|
186
150
|
queueMicrotask(() => {
|
|
187
|
-
|
|
188
|
-
console.log("Route changed:", route);
|
|
151
|
+
console.log("Route changed:", actor.currentRoute.get());
|
|
189
152
|
});
|
|
190
153
|
});
|
|
154
|
+
|
|
191
155
|
watcher.watch(actor.currentRoute);
|
|
192
|
-
actor.
|
|
156
|
+
actor.start();
|
|
193
157
|
```
|
|
194
158
|
|
|
195
|
-
|
|
159
|
+
---
|
|
160
|
+
|
|
161
|
+
### Guard utilities
|
|
162
|
+
|
|
163
|
+
Composable guard helpers that wrap XState's built-in `and()`, `or()`, and `not()` for use in machine `setup({ guards })` definitions.
|
|
196
164
|
|
|
197
165
|
```typescript
|
|
166
|
+
import { setup } from "xstate";
|
|
198
167
|
import {
|
|
199
|
-
composeGuards,
|
|
200
|
-
composeGuardsOr,
|
|
201
|
-
negateGuard,
|
|
202
|
-
hasContext,
|
|
203
|
-
eventMatches,
|
|
204
|
-
|
|
168
|
+
composeGuards, // AND logic: all guards must pass
|
|
169
|
+
composeGuardsOr, // OR logic: at least one guard must pass
|
|
170
|
+
negateGuard, // NOT logic: inverts a guard
|
|
171
|
+
hasContext, // guard: context field is present and non-null
|
|
172
|
+
eventMatches, // guard: event type matches a string
|
|
173
|
+
contextFieldMatches, // guard: context field equals a value
|
|
205
174
|
} from "@xmachines/play-xstate";
|
|
206
175
|
|
|
207
176
|
const machine = setup({
|
|
208
177
|
guards: {
|
|
209
|
-
isLoggedIn:
|
|
210
|
-
|
|
178
|
+
isLoggedIn: ({ context }) => !!context.userId,
|
|
179
|
+
hasAdminRole: ({ context }) => context.role === "admin",
|
|
211
180
|
},
|
|
212
181
|
}).createMachine({
|
|
213
182
|
on: {
|
|
214
183
|
accessAdmin: {
|
|
215
|
-
|
|
216
|
-
guard: composeGuards(["isLoggedIn", "isAdmin"]),
|
|
184
|
+
guard: composeGuards(["isLoggedIn", "hasAdminRole"]),
|
|
217
185
|
target: "adminPanel",
|
|
218
186
|
},
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
target: "publicArea",
|
|
223
|
-
},
|
|
224
|
-
logout: {
|
|
225
|
-
// NOT composition
|
|
226
|
-
guard: negateGuard("isLoggedIn"),
|
|
227
|
-
target: "login",
|
|
187
|
+
accessDashboard: {
|
|
188
|
+
guard: negateGuard("isGuest"),
|
|
189
|
+
target: "dashboard",
|
|
228
190
|
},
|
|
229
191
|
},
|
|
192
|
+
// ...
|
|
230
193
|
});
|
|
231
194
|
```
|
|
232
195
|
|
|
233
|
-
|
|
196
|
+
---
|
|
234
197
|
|
|
235
|
-
|
|
236
|
-
- `eventMatches(type: string)` - Check event type
|
|
237
|
-
- `stateMatches(value: string)` - Check state value
|
|
238
|
-
- `composeGuards(guards: Array)` - AND composition
|
|
239
|
-
- `composeGuardsOr(guards: Array)` - OR composition
|
|
240
|
-
- `negateGuard(guard)` - NOT composition
|
|
198
|
+
### Routing utilities
|
|
241
199
|
|
|
242
|
-
|
|
200
|
+
Helper functions for declarative route configuration in XState machines.
|
|
243
201
|
|
|
244
|
-
|
|
202
|
+
#### `formatPlayRouteTransitions(machineConfig)`
|
|
245
203
|
|
|
246
|
-
|
|
204
|
+
Crawls machine states with `meta.route` and auto-generates `play.route` event handlers at the root level — eliminating boilerplate routing transitions.
|
|
247
205
|
|
|
248
206
|
```typescript
|
|
249
207
|
import { setup } from "xstate";
|
|
250
|
-
import {
|
|
251
|
-
import { defineCatalog } from "@xmachines/play-catalog";
|
|
208
|
+
import { formatPlayRouteTransitions } from "@xmachines/play-xstate";
|
|
252
209
|
|
|
253
|
-
|
|
254
|
-
const machineConfig = {
|
|
210
|
+
const config = formatPlayRouteTransitions({
|
|
255
211
|
id: "app",
|
|
256
|
-
initial: "home",
|
|
257
|
-
context: { isAuthenticated: false },
|
|
258
212
|
states: {
|
|
259
213
|
home: {
|
|
260
214
|
id: "home",
|
|
261
|
-
meta: { route: "/"
|
|
215
|
+
meta: { route: "/home" },
|
|
262
216
|
},
|
|
263
|
-
|
|
264
|
-
id: "
|
|
265
|
-
meta: { route: "/
|
|
266
|
-
// Always-guard validates state entry
|
|
267
|
-
always: [
|
|
268
|
-
{
|
|
269
|
-
target: "login",
|
|
270
|
-
guard: ({ context }) => !context.isAuthenticated,
|
|
271
|
-
},
|
|
272
|
-
],
|
|
217
|
+
profile: {
|
|
218
|
+
id: "profile",
|
|
219
|
+
meta: { route: "/users/:userId" },
|
|
273
220
|
},
|
|
274
|
-
login: {
|
|
275
|
-
id: "login",
|
|
276
|
-
meta: { route: "/login", view: { component: "Login" } },
|
|
277
|
-
},
|
|
278
|
-
},
|
|
279
|
-
};
|
|
280
|
-
|
|
281
|
-
// formatPlayRouteTransitions handles routing infrastructure
|
|
282
|
-
const machine = setup({
|
|
283
|
-
types: {
|
|
284
|
-
events: {} as { type: "play.route"; to: string } | { type: "auth.login" },
|
|
285
221
|
},
|
|
286
|
-
}).createMachine(formatPlayRouteTransitions(machineConfig));
|
|
287
|
-
|
|
288
|
-
const catalog = defineCatalog({
|
|
289
|
-
Home,
|
|
290
|
-
Dashboard,
|
|
291
|
-
Login,
|
|
292
222
|
});
|
|
293
223
|
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
// Navigation via play.route event
|
|
299
|
-
actor.send({ type: "play.route", to: "/dashboard" });
|
|
300
|
-
// Guard validates: Can I BE in dashboard state?
|
|
301
|
-
// If !isAuthenticated → redirects to login
|
|
224
|
+
// config now includes auto-generated play.route handlers:
|
|
225
|
+
// on: { "play.route": [ { target: ".home", guard: e => e.to === "#home" }, ... ] }
|
|
226
|
+
const machine = setup({}).createMachine(config);
|
|
302
227
|
```
|
|
303
228
|
|
|
304
|
-
**
|
|
229
|
+
> **Note:** Every state with `meta.route` must also have an explicit `id` field; omitting it throws `MissingStateIdError` at machine-definition time.
|
|
305
230
|
|
|
306
|
-
|
|
307
|
-
- Always-guards handle business logic (authentication checks)
|
|
308
|
-
- Clear separation: routing is infrastructure, guards are business logic
|
|
231
|
+
#### Other routing exports
|
|
309
232
|
|
|
310
|
-
|
|
233
|
+
| Export | Description |
|
|
234
|
+
| ---------------------------------- | ------------------------------------------------------------------------- |
|
|
235
|
+
| `deriveRoute(meta)` | Extract the route template string from a state's metadata object |
|
|
236
|
+
| `isAbsoluteRoute(route)` | Returns `true` if the route string is an absolute URL path |
|
|
237
|
+
| `buildRouteUrl(template, context)` | Substitute `:param` placeholders in a route template using context values |
|
|
311
238
|
|
|
312
|
-
|
|
313
|
-
// ❌ WRONG - Guard on event checking event properties
|
|
314
|
-
on: {
|
|
315
|
-
"play.route": {
|
|
316
|
-
guard: ({ event }) => event.to === "/dashboard",
|
|
317
|
-
target: "dashboard"
|
|
318
|
-
}
|
|
319
|
-
}
|
|
320
|
-
```
|
|
321
|
-
|
|
322
|
-
**Reference:** See `docs/examples/routing-patterns.md` for canonical `formatPlayRouteTransitions` usage with always-guards for authentication.
|
|
323
|
-
|
|
324
|
-
### Lifecycle Hooks
|
|
325
|
-
|
|
326
|
-
```typescript
|
|
327
|
-
const createPlayer = definePlayer({
|
|
328
|
-
machine,
|
|
329
|
-
catalog,
|
|
330
|
-
options: {
|
|
331
|
-
onStart: (actor) => {
|
|
332
|
-
console.log("Actor started:", actor.id);
|
|
333
|
-
},
|
|
334
|
-
onStop: (actor) => {
|
|
335
|
-
console.log("Actor stopped:", actor.id);
|
|
336
|
-
},
|
|
337
|
-
onTransition: (actor, prev, next) => {
|
|
338
|
-
console.log("State change:", {
|
|
339
|
-
from: prev.value,
|
|
340
|
-
to: next.value,
|
|
341
|
-
timestamp: Date.now(),
|
|
342
|
-
});
|
|
343
|
-
},
|
|
344
|
-
onStateChange: (actor, state) => {
|
|
345
|
-
// Called on every state update
|
|
346
|
-
console.log("Snapshot updated:", state.value);
|
|
347
|
-
},
|
|
348
|
-
onError: (actor, error) => {
|
|
349
|
-
console.error("Actor error:", error);
|
|
350
|
-
// Log to monitoring service, show error UI, etc.
|
|
351
|
-
},
|
|
352
|
-
},
|
|
353
|
-
});
|
|
354
|
-
```
|
|
239
|
+
---
|
|
355
240
|
|
|
356
|
-
|
|
241
|
+
## Exported Types
|
|
357
242
|
|
|
358
243
|
```typescript
|
|
359
|
-
import {
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
//
|
|
369
|
-
//
|
|
370
|
-
//
|
|
371
|
-
//
|
|
372
|
-
|
|
373
|
-
// - Guard evaluation results
|
|
374
|
-
|
|
375
|
-
// Signals accessible via actor properties, not snapshots
|
|
376
|
-
console.log(actor.currentRoute.get()); // "/dashboard"
|
|
244
|
+
import type {
|
|
245
|
+
PlayerConfig, // definePlayer() config argument shape
|
|
246
|
+
PlayerOptions, // Lifecycle hooks (onStart, onStop, onTransition, onStateChange, onError)
|
|
247
|
+
PlayerFactory, // Factory function returned by definePlayer()
|
|
248
|
+
PlayerFactoryResumeOptions, // { snapshot? } for restoring actor state
|
|
249
|
+
Guard, // Single XState guard predicate
|
|
250
|
+
GuardArray, // Array of guards for compose helpers
|
|
251
|
+
ComposedGuard, // Return type of composeGuards / composeGuardsOr / negateGuard
|
|
252
|
+
RouteMachineConfig, // Minimal machine config accepted by formatPlayRouteTransitions
|
|
253
|
+
RouteStateNode, // Single state node shape used during route crawling
|
|
254
|
+
RouteContext, // Context shape expected by buildRouteUrl ({ params?, query?, basePath?, hash? })
|
|
255
|
+
RouteObject, // Route metadata object shape: { path: string }
|
|
256
|
+
RouteMetadata, // Union: string | RouteObject
|
|
257
|
+
} from "@xmachines/play-xstate";
|
|
377
258
|
```
|
|
378
259
|
|
|
379
|
-
|
|
260
|
+
---
|
|
380
261
|
|
|
381
|
-
|
|
262
|
+
## Error Classes
|
|
382
263
|
|
|
383
|
-
|
|
384
|
-
// meta.route marks states as routable
|
|
385
|
-
states: {
|
|
386
|
-
dashboard: {
|
|
387
|
-
id: "dashboard",
|
|
388
|
-
meta: {
|
|
389
|
-
route: "/dashboard", // URL path - marks state as routable
|
|
390
|
-
},
|
|
391
|
-
},
|
|
392
|
-
}
|
|
393
|
-
|
|
394
|
-
// Parameters
|
|
395
|
-
meta: {
|
|
396
|
-
route: "/profile/:userId", // Required parameter
|
|
397
|
-
route: "/settings/:section?", // Optional parameter
|
|
398
|
-
}
|
|
399
|
-
|
|
400
|
-
// Inheritance
|
|
401
|
-
meta: {
|
|
402
|
-
route: "/absolute", // Starts with / → doesn't inherit parent route
|
|
403
|
-
route: "relative", // Doesn't start with / → inherits parent route
|
|
404
|
-
}
|
|
405
|
-
```
|
|
406
|
-
|
|
407
|
-
### View Metadata
|
|
264
|
+
Error classes are exported from the `@xmachines/play-xstate/errors` sub-path to keep the main bundle lean.
|
|
408
265
|
|
|
409
266
|
```typescript
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
}
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
meta: {
|
|
420
|
-
view: {
|
|
421
|
-
component: "Dashboard",
|
|
422
|
-
props: (context) => ({
|
|
423
|
-
userId: context.userId,
|
|
424
|
-
notifications: context.unreadCount,
|
|
425
|
-
}),
|
|
426
|
-
},
|
|
427
|
-
}
|
|
267
|
+
import {
|
|
268
|
+
MissingRouteParamError, // Required :param absent from context when resolving currentRoute
|
|
269
|
+
MissingQueryContextError, // context.params present but context.query missing
|
|
270
|
+
MissingStateIdError, // meta.route declared without a state id field
|
|
271
|
+
InvalidMachineError, // PlayerActor constructed with a non-object machine
|
|
272
|
+
InvalidEventError, // actor.send() called with null/undefined/non-object
|
|
273
|
+
InvalidRouteMetadataError, // meta.route is neither a string nor { path: string }
|
|
274
|
+
EmptyGuardArrayError, // composeGuards/composeGuardsOr called with empty array
|
|
275
|
+
} from "@xmachines/play-xstate/errors";
|
|
428
276
|
```
|
|
429
277
|
|
|
430
|
-
|
|
278
|
+
All error classes extend `PlayError` from `@xmachines/play` and carry typed detail fields (`param`, `template`, `combinator`, etc.) for programmatic inspection without message parsing.
|
|
431
279
|
|
|
432
|
-
|
|
280
|
+
---
|
|
433
281
|
|
|
434
|
-
|
|
282
|
+
## Testing
|
|
435
283
|
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
**XState DevTools:** Maintains Inspector compatibility — snapshots remain pure XState format, signals accessible via actor properties.
|
|
441
|
-
|
|
442
|
-
**Routing:**
|
|
443
|
-
|
|
444
|
-
- `meta.route` property marks states as routable
|
|
445
|
-
- `play.route` events support parameters (enhancement)
|
|
446
|
-
- Route extraction for URL patterns
|
|
284
|
+
```bash
|
|
285
|
+
# Run tests for this package in isolation
|
|
286
|
+
pnpm --filter @xmachines/play-xstate test
|
|
447
287
|
|
|
448
|
-
|
|
288
|
+
# Watch mode
|
|
289
|
+
pnpm --filter @xmachines/play-xstate run test:watch
|
|
290
|
+
```
|
|
449
291
|
|
|
450
|
-
|
|
292
|
+
Tests use [Vitest](https://vitest.dev/) and live in `packages/play-xstate/test/`.
|
|
451
293
|
|
|
452
|
-
|
|
453
|
-
- **[@xmachines/play-signals](../play-signals/README.md)** - TC39 Signals polyfill
|
|
454
|
-
- **[@xmachines/play-catalog](../play-catalog/README.md)** - UI schema validation
|
|
455
|
-
- **[@xmachines/play-router](../play-router/README.md)** - Route extraction
|
|
456
|
-
- **[@xmachines/play](../play/README.md)** - Protocol types (PlayEvent)
|
|
294
|
+
---
|
|
457
295
|
|
|
458
296
|
## License
|
|
459
297
|
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
This work is licensed under the terms of the MIT license.
|
|
463
|
-
For a copy, see <https://opensource.org/licenses/MIT>.
|
|
298
|
+
MIT — see [LICENSE](LICENSE) for details.
|
|
464
299
|
|
|
465
300
|
@xmachines/play-xstate - XState v5 adapter for Play Architecture
|
|
466
301
|
|
|
467
302
|
Provides definePlayer() API for binding XState state machines to the
|
|
468
|
-
actor base with
|
|
303
|
+
actor base with signal lifecycle and DevTools integration.
|
|
469
304
|
|
|
470
|
-
Per
|
|
305
|
+
Per the Play RFC, this package implements the Logic Layer adapter that
|
|
471
306
|
transforms declarative machine definitions into live actors with signal-driven
|
|
472
307
|
reactivity.
|
|
473
308
|
|
|
@@ -477,36 +312,32 @@ reactivity.
|
|
|
477
312
|
|
|
478
313
|
## Interfaces
|
|
479
314
|
|
|
480
|
-
- [CatalogEntry](interfaces/CatalogEntry.md)
|
|
481
315
|
- [PlayerConfig](interfaces/PlayerConfig.md)
|
|
316
|
+
- [PlayerFactoryResumeOptions](interfaces/PlayerFactoryResumeOptions.md)
|
|
482
317
|
- [PlayerOptions](interfaces/PlayerOptions.md)
|
|
483
318
|
- [RouteContext](interfaces/RouteContext.md)
|
|
319
|
+
- [RouteObject](interfaces/RouteObject.md)
|
|
484
320
|
|
|
485
321
|
## Type Aliases
|
|
486
322
|
|
|
487
|
-
- [Catalog](type-aliases/Catalog.md)
|
|
488
323
|
- [ComposedGuard](type-aliases/ComposedGuard.md)
|
|
489
324
|
- [Guard](type-aliases/Guard.md)
|
|
490
325
|
- [GuardArray](type-aliases/GuardArray.md)
|
|
491
326
|
- [PlayerFactory](type-aliases/PlayerFactory.md)
|
|
492
327
|
- [RouteMachineConfig](type-aliases/RouteMachineConfig.md)
|
|
328
|
+
- [RouteMetadata](type-aliases/RouteMetadata.md)
|
|
493
329
|
- [RouteStateNode](type-aliases/RouteStateNode.md)
|
|
494
|
-
- [ValidationResult](type-aliases/ValidationResult.md)
|
|
495
|
-
- [ViewMergeContext](type-aliases/ViewMergeContext.md)
|
|
496
330
|
|
|
497
331
|
## Functions
|
|
498
332
|
|
|
499
333
|
- [buildRouteUrl](functions/buildRouteUrl.md)
|
|
500
334
|
- [composeGuards](functions/composeGuards.md)
|
|
501
335
|
- [composeGuardsOr](functions/composeGuardsOr.md)
|
|
336
|
+
- [contextFieldMatches](functions/contextFieldMatches.md)
|
|
502
337
|
- [definePlayer](functions/definePlayer.md)
|
|
503
338
|
- [deriveRoute](functions/deriveRoute.md)
|
|
504
339
|
- [eventMatches](functions/eventMatches.md)
|
|
505
340
|
- [formatPlayRouteTransitions](functions/formatPlayRouteTransitions.md)
|
|
506
341
|
- [hasContext](functions/hasContext.md)
|
|
507
342
|
- [isAbsoluteRoute](functions/isAbsoluteRoute.md)
|
|
508
|
-
- [mergeViewProps](functions/mergeViewProps.md)
|
|
509
343
|
- [negateGuard](functions/negateGuard.md)
|
|
510
|
-
- [stateMatches](functions/stateMatches.md)
|
|
511
|
-
- [validateComponentBinding](functions/validateComponentBinding.md)
|
|
512
|
-
- [validateViewProps](functions/validateViewProps.md)
|