@xmachines/docs 1.0.0 → 2.0.0-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/api/@xmachines/play/classes/NonNullableError.md +11 -11
- package/api/@xmachines/play/classes/PlayError.md +11 -11
- package/api/@xmachines/play/functions/assertNonNullable.md +1 -1
- package/api/@xmachines/play/type-aliases/PlayEvent.md +4 -4
- package/api/@xmachines/play-actor/classes/AbstractActor.md +20 -19
- package/api/@xmachines/play-actor/functions/attachRenderErrorHandler.md +1 -1
- package/api/@xmachines/play-actor/functions/toAtomState.md +1 -1
- package/api/@xmachines/play-actor/functions/typedSpec.md +1 -1
- package/api/@xmachines/play-actor/interfaces/BaseActorProviderProps.md +7 -7
- package/api/@xmachines/play-actor/interfaces/BaseViewContextValue.md +7 -7
- package/api/@xmachines/play-actor/interfaces/PlaySpec.md +7 -7
- package/api/@xmachines/play-actor/interfaces/Routable.md +5 -5
- package/api/@xmachines/play-actor/interfaces/Viewable.md +4 -4
- package/api/@xmachines/play-dom/classes/PlayRenderer.md +4 -4
- package/api/@xmachines/play-dom/functions/createPlayUI.md +1 -1
- package/api/@xmachines/play-dom/functions/createRenderer.md +1 -1
- package/api/@xmachines/play-dom/interfaces/CreatePlayUIOptions.md +10 -10
- package/api/@xmachines/play-dom/interfaces/MountOptions.md +5 -5
- package/api/@xmachines/play-dom/interfaces/PlayDomOptions.md +12 -12
- package/api/@xmachines/play-dom/type-aliases/MountFn.md +1 -1
- package/api/@xmachines/play-dom-router/README.md +1 -1
- 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 +2 -2
- package/api/@xmachines/play-dom-router/functions/createRouter.md +1 -1
- package/api/@xmachines/play-dom-router/interfaces/BrowserHistory.md +16 -16
- package/api/@xmachines/play-dom-router/interfaces/BrowserWindow.md +16 -16
- package/api/@xmachines/play-dom-router/interfaces/ConnectRouterOptions.md +6 -6
- package/api/@xmachines/play-dom-router/interfaces/PlayRouteEvent.md +8 -8
- package/api/@xmachines/play-dom-router/interfaces/RoutableActor.md +6 -6
- package/api/@xmachines/play-dom-router/interfaces/RouteLookupContract.md +3 -3
- package/api/@xmachines/play-dom-router/interfaces/RouteMap.md +3 -3
- package/api/@xmachines/play-dom-router/interfaces/RouteMapOptions.md +4 -4
- package/api/@xmachines/play-dom-router/interfaces/RouteMapping.md +5 -5
- package/api/@xmachines/play-dom-router/interfaces/RouterBridge.md +3 -3
- package/api/@xmachines/play-dom-router/interfaces/VanillaRouter.md +6 -6
- package/api/@xmachines/play-react/README.md +1 -1
- 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/usePlayView.md +1 -1
- package/api/@xmachines/play-react/functions/useSignalEffect.md +1 -1
- package/api/@xmachines/play-react/interfaces/ActorProviderProps.md +10 -10
- package/api/@xmachines/play-react/interfaces/PlayErrorBoundaryProps.md +6 -6
- package/api/@xmachines/play-react/interfaces/PlayErrorBoundaryState.md +5 -5
- package/api/@xmachines/play-react/interfaces/PlayUIProviderProps.md +13 -13
- package/api/@xmachines/play-react/interfaces/ViewContextValue.md +7 -7
- package/api/@xmachines/play-react/type-aliases/AnyPlayActor.md +1 -1
- package/api/@xmachines/play-react/variables/ActorProvider.md +1 -1
- package/api/@xmachines/play-react/variables/PlayRenderer.md +1 -1
- package/api/@xmachines/play-react/variables/PlayUIProvider.md +1 -1
- package/api/@xmachines/play-react-router/README.md +1 -1
- package/api/@xmachines/play-react-router/classes/ReactRouterBridge.md +4 -4
- package/api/@xmachines/play-react-router/classes/RouteMap.md +4 -4
- package/api/@xmachines/play-react-router/functions/createPlayRouterProvider.md +1 -1
- package/api/@xmachines/play-react-router/functions/createRouteMap.md +2 -2
- package/api/@xmachines/play-react-router/functions/createRouteMapFromTree.md +1 -1
- package/api/@xmachines/play-react-router/interfaces/PlayActor.md +7 -7
- package/api/@xmachines/play-react-router/interfaces/PlayRouteEvent.md +8 -8
- package/api/@xmachines/play-react-router/interfaces/PlayRouterProviderBaseProps.md +7 -7
- package/api/@xmachines/play-react-router/interfaces/PlayRouterProviderProps.md +7 -7
- package/api/@xmachines/play-react-router/interfaces/RouteMapOptions.md +4 -4
- package/api/@xmachines/play-react-router/interfaces/RouteMapping.md +5 -5
- package/api/@xmachines/play-react-router/interfaces/RouterBridge.md +3 -3
- package/api/@xmachines/play-react-router/type-aliases/PlayRouterBridgeConstructor.md +1 -1
- package/api/@xmachines/play-react-router/variables/PlayRouterProvider.md +1 -1
- package/api/@xmachines/play-router/README.md +15 -7
- package/api/@xmachines/play-router/classes/RouteMap.md +4 -4
- package/api/@xmachines/play-router/classes/RouterBridgeBase.md +4 -4
- 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 +2 -2
- 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 +2 -2
- 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 +6 -6
- package/api/@xmachines/play-router/interfaces/LocationLike.md +5 -5
- package/api/@xmachines/play-router/interfaces/MachineEdgeData.md +7 -5
- package/api/@xmachines/play-router/interfaces/MachineNodeData.md +7 -7
- package/api/@xmachines/play-router/interfaces/PlayActor.md +7 -7
- package/api/@xmachines/play-router/interfaces/PlayRouteEvent.md +8 -8
- package/api/@xmachines/play-router/interfaces/ResolvedRoutePath.md +5 -5
- package/api/@xmachines/play-router/interfaces/RoutableActor.md +6 -6
- package/api/@xmachines/play-router/interfaces/RouteInfo.md +10 -10
- package/api/@xmachines/play-router/interfaces/RouteMapOptions.md +4 -4
- package/api/@xmachines/play-router/interfaces/RouteMapping.md +5 -5
- package/api/@xmachines/play-router/interfaces/RouteMatch.md +5 -5
- package/api/@xmachines/play-router/interfaces/RouteNode.md +12 -12
- package/api/@xmachines/play-router/interfaces/RouteObject.md +4 -4
- package/api/@xmachines/play-router/interfaces/RouteTree.md +7 -7
- 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 +4 -4
- package/api/@xmachines/play-signals/interfaces/SignalComputed.md +2 -2
- package/api/@xmachines/play-signals/interfaces/SignalOptions.md +4 -4
- 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/functions/useActor.md +1 -1
- package/api/@xmachines/play-solid/functions/usePlayView.md +1 -1
- package/api/@xmachines/play-solid/interfaces/ActorProviderProps.md +10 -10
- package/api/@xmachines/play-solid/interfaces/PlayUIProviderProps.md +13 -13
- package/api/@xmachines/play-solid/interfaces/ViewContextValue.md +7 -7
- package/api/@xmachines/play-solid/type-aliases/AnyPlayActor.md +1 -1
- package/api/@xmachines/play-solid/variables/ActorContext.md +1 -1
- package/api/@xmachines/play-solid/variables/ActorProvider.md +1 -1
- package/api/@xmachines/play-solid/variables/PlayRenderer.md +1 -1
- package/api/@xmachines/play-solid/variables/PlayUIProvider.md +1 -1
- package/api/@xmachines/play-solid-router/README.md +5 -5
- package/api/@xmachines/play-solid-router/classes/RouteMap.md +4 -4
- package/api/@xmachines/play-solid-router/classes/SolidRouterBridge.md +5 -5
- package/api/@xmachines/play-solid-router/functions/createPlayRouterProvider.md +1 -1
- package/api/@xmachines/play-solid-router/functions/createRouteMap.md +2 -2
- package/api/@xmachines/play-solid-router/interfaces/AbstractActor.md +20 -19
- package/api/@xmachines/play-solid-router/interfaces/PlayActor.md +7 -7
- package/api/@xmachines/play-solid-router/interfaces/PlayRouteEvent.md +8 -8
- package/api/@xmachines/play-solid-router/interfaces/PlayRouterProviderBaseProps.md +7 -7
- package/api/@xmachines/play-solid-router/interfaces/PlayRouterProviderProps.md +7 -7
- package/api/@xmachines/play-solid-router/interfaces/RouteMapOptions.md +4 -4
- package/api/@xmachines/play-solid-router/interfaces/RouteMapping.md +5 -5
- package/api/@xmachines/play-solid-router/interfaces/RouterBridge.md +3 -3
- package/api/@xmachines/play-solid-router/type-aliases/PlayRouterBridgeConstructor.md +1 -1
- 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-solid-router/variables/PlayRouterProvider.md +1 -1
- package/api/@xmachines/play-svelte/README.md +1 -1
- package/api/@xmachines/play-svelte/functions/defineRegistry.md +1 -1
- package/api/@xmachines/play-svelte/functions/getActorContext.md +1 -1
- package/api/@xmachines/play-svelte/functions/getPlayViewContext.md +1 -1
- package/api/@xmachines/play-svelte/functions/setActorContext.md +1 -1
- package/api/@xmachines/play-svelte/interfaces/ActorProviderProps.md +10 -10
- package/api/@xmachines/play-svelte/interfaces/DefineRegistryOptions.md +6 -6
- package/api/@xmachines/play-svelte/interfaces/PlayUIProviderProps.md +13 -13
- package/api/@xmachines/play-svelte/interfaces/ViewContextValue.md +7 -7
- package/api/@xmachines/play-svelte/type-aliases/AnyPlayActor.md +1 -1
- package/api/@xmachines/play-svelte-spa-router/README.md +24 -18
- 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 +2 -2
- package/api/@xmachines/play-svelte-spa-router/interfaces/ConnectRouterOptions.md +6 -6
- package/api/@xmachines/play-svelte-spa-router/interfaces/PlayRouteEvent.md +8 -8
- package/api/@xmachines/play-svelte-spa-router/interfaces/RouteMapOptions.md +4 -4
- package/api/@xmachines/play-svelte-spa-router/interfaces/RouteMapping.md +5 -5
- 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/README.md +5 -5
- 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 +2 -2
- package/api/@xmachines/play-sveltekit-router/interfaces/ConnectRouterOptions.md +6 -6
- package/api/@xmachines/play-sveltekit-router/interfaces/LocationLike.md +5 -5
- package/api/@xmachines/play-sveltekit-router/interfaces/PlayRouteEvent.md +8 -8
- package/api/@xmachines/play-sveltekit-router/interfaces/RouteMapOptions.md +4 -4
- package/api/@xmachines/play-sveltekit-router/interfaces/RouteMapping.md +5 -5
- 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/README.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 +4 -4
- package/api/@xmachines/play-tanstack-react-router/functions/createPlayRouterProvider.md +1 -1
- package/api/@xmachines/play-tanstack-react-router/functions/createRouteMap.md +2 -2
- package/api/@xmachines/play-tanstack-react-router/functions/createRouteMapFromTree.md +1 -1
- package/api/@xmachines/play-tanstack-react-router/functions/extractMachineRoutes.md +2 -2
- package/api/@xmachines/play-tanstack-react-router/interfaces/PlayActor.md +7 -7
- package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouteEvent.md +8 -8
- package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouterProviderBaseProps.md +7 -7
- package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouterProviderProps.md +7 -7
- package/api/@xmachines/play-tanstack-react-router/interfaces/RouteMapOptions.md +4 -4
- package/api/@xmachines/play-tanstack-react-router/interfaces/RouteMapping.md +5 -5
- package/api/@xmachines/play-tanstack-react-router/interfaces/RouteNavigateEvent.md +5 -5
- package/api/@xmachines/play-tanstack-react-router/interfaces/RouterBridge.md +3 -3
- package/api/@xmachines/play-tanstack-react-router/type-aliases/PlayRouterBridgeConstructor.md +1 -1
- 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-react-router/variables/PlayRouterProvider.md +1 -1
- package/api/@xmachines/play-tanstack-router/classes/TanStackRouterBridgeBase.md +2 -2
- package/api/@xmachines/play-tanstack-router/type-aliases/TanStackRouteMapLike.md +3 -3
- package/api/@xmachines/play-tanstack-router/type-aliases/TanStackRouterLike.md +4 -4
- package/api/@xmachines/play-tanstack-solid-router/README.md +5 -5
- package/api/@xmachines/play-tanstack-solid-router/classes/RouteMap.md +4 -4
- package/api/@xmachines/play-tanstack-solid-router/classes/TanStackSolidRouterBridge.md +5 -5
- package/api/@xmachines/play-tanstack-solid-router/functions/createPlayRouterProvider.md +1 -1
- package/api/@xmachines/play-tanstack-solid-router/functions/createRouteMap.md +2 -2
- package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayActor.md +7 -7
- package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayRouteEvent.md +8 -8
- package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayRouterProviderBaseProps.md +7 -7
- package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayRouterProviderProps.md +7 -7
- package/api/@xmachines/play-tanstack-solid-router/interfaces/RouteMapOptions.md +4 -4
- package/api/@xmachines/play-tanstack-solid-router/interfaces/RouteMapping.md +5 -5
- package/api/@xmachines/play-tanstack-solid-router/interfaces/RouterBridge.md +3 -3
- package/api/@xmachines/play-tanstack-solid-router/type-aliases/PlayRouterBridgeConstructor.md +1 -1
- 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 +4 -4
- package/api/@xmachines/play-tanstack-solid-router/variables/PlayRouterProvider.md +1 -1
- package/api/@xmachines/play-vue/README.md +1 -1
- package/api/@xmachines/play-vue/functions/defineRegistry.md +1 -1
- package/api/@xmachines/play-vue/functions/getPlayViewContext.md +1 -1
- package/api/@xmachines/play-vue/functions/useActor.md +1 -1
- package/api/@xmachines/play-vue/interfaces/ActorProviderProps.md +7 -7
- package/api/@xmachines/play-vue/interfaces/PlayUIProviderProps.md +10 -10
- package/api/@xmachines/play-vue/interfaces/ViewContextValue.md +7 -7
- package/api/@xmachines/play-vue/interfaces/VisibilityProviderProps.md +1 -1
- package/api/@xmachines/play-vue/type-aliases/AnyPlayActor.md +1 -1
- 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 +4 -4
- package/api/@xmachines/play-vue/variables/PlayRenderer.md +1 -1
- package/api/@xmachines/play-vue-router/README.md +1 -1
- package/api/@xmachines/play-vue-router/classes/RouteMap.md +4 -4
- package/api/@xmachines/play-vue-router/classes/VueRouterBridge.md +5 -5
- package/api/@xmachines/play-vue-router/functions/createRouteMap.md +2 -2
- package/api/@xmachines/play-vue-router/interfaces/PlayActor.md +7 -7
- package/api/@xmachines/play-vue-router/interfaces/PlayRouteEvent.md +8 -8
- package/api/@xmachines/play-vue-router/interfaces/RouteMapOptions.md +4 -4
- package/api/@xmachines/play-vue-router/interfaces/RouteMapping.md +5 -5
- 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/README.md +88 -25
- package/api/@xmachines/play-xstate/classes/PlayerActor.md +34 -33
- package/api/@xmachines/play-xstate/functions/buildRouteUrl.md +1 -1
- package/api/@xmachines/play-xstate/functions/composeGuards.md +23 -17
- package/api/@xmachines/play-xstate/functions/composeGuardsOr.md +16 -16
- package/api/@xmachines/play-xstate/functions/contextFieldMatches.md +1 -1
- package/api/@xmachines/play-xstate/functions/createRoutedMachine.md +87 -0
- package/api/@xmachines/play-xstate/functions/definePlayer.md +3 -3
- 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 +45 -11
- 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 +15 -15
- package/api/@xmachines/play-xstate/interfaces/PlayerConfig.md +5 -5
- package/api/@xmachines/play-xstate/interfaces/PlayerFactoryResumeOptions.md +4 -4
- package/api/@xmachines/play-xstate/interfaces/PlayerOptions.md +8 -8
- package/api/@xmachines/play-xstate/interfaces/RouteContext.md +7 -7
- package/api/@xmachines/play-xstate/interfaces/RouteObject.md +4 -4
- package/api/@xmachines/play-xstate/type-aliases/ComposedGuard.md +26 -5
- 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/PlayRoutePayload.md +30 -0
- package/api/@xmachines/play-xstate/type-aliases/PlayerFactory.md +1 -1
- package/api/@xmachines/play-xstate/type-aliases/RouteMachineConfig.md +13 -6
- package/api/@xmachines/play-xstate/type-aliases/RouteMetadata.md +1 -1
- package/api/@xmachines/play-xstate/type-aliases/RouteStateNode.md +16 -4
- package/api/@xmachines/play-xstate/type-aliases/SetupLike.md +33 -0
- package/api/@xmachines/play-xstate/type-aliases/WithOptional.md +31 -0
- package/api/@xmachines/play-xstate/variables/emptyEventSchema.md +37 -0
- package/api/@xmachines/play-xstate/variables/playMetaSchema.md +40 -0
- package/api/@xmachines/play-xstate/variables/playRouteEventSchema.md +9 -0
- package/api/@xmachines/shared/vite-aliases/functions/xmAliases.md +1 -1
- package/api/@xmachines/shared/vite-aliases/functions/xmCacheDir.md +1 -1
- package/api/@xmachines/shared/vite-aliases/functions/xmOptimizeDeps.md +1 -1
- package/api/@xmachines/shared/vite-aliases/functions/xmResolve.md +1 -1
- package/api/@xmachines/shared/vite-aliases/functions/xmSvelteRunes.md +4 -4
- package/api/@xmachines/shared/vitest/functions/defineXmBrowserConfig.md +1 -1
- package/api/@xmachines/shared/vitest/functions/defineXmVitestConfig.md +1 -1
- package/api/@xmachines/shared/vitest/interfaces/XmBrowserConfigOptions.md +6 -6
- package/contributing/architecture.md +9 -6
- package/contributing/development.md +1 -1
- 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/@xmachines/play-svelte-demo/type-aliases/AuthCatalog.md +1 -1
- package/examples/@xmachines/play-svelte-demo/variables/authCatalog.md +1 -1
- package/examples/@xmachines/play-vue-demo/type-aliases/AuthCatalog.md +1 -1
- package/examples/@xmachines/play-vue-demo/variables/App.md +1 -1
- package/examples/@xmachines/play-vue-demo/variables/authCatalog.md +1 -1
- package/examples/README.md +1 -1
- package/examples/basic-state-machine.md +22 -24
- package/examples/form-validation.md +118 -109
- package/examples/routing-patterns.md +92 -60
- package/examples/traffic-light.md +46 -57
- package/guides/getting-started.md +79 -68
- package/guides/state-machines.md +68 -52
- package/package.json +2 -2
- package/rfc/play.md +4 -4
|
@@ -6,36 +6,38 @@
|
|
|
6
6
|
function composeGuards<TContext, TEvent>(guards): ComposedGuard;
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
Defined in: [packages/play-xstate/src/guards/compose.ts:
|
|
9
|
+
Defined in: [packages/play-xstate/src/guards/compose.ts:130](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v2.0.0-alpha.1/packages/play-xstate/src/guards/compose.ts#L130)
|
|
10
10
|
|
|
11
|
-
Compose guards with AND logic
|
|
11
|
+
Compose guards with AND logic.
|
|
12
12
|
|
|
13
13
|
Combines multiple guard predicates using AND semantics—all guards must pass for
|
|
14
|
-
the composition to succeed.
|
|
15
|
-
type inference and machine serialization.
|
|
14
|
+
the composition to succeed. Evaluation is short-circuiting, left to right.
|
|
16
15
|
|
|
17
16
|
**Architectural Context:** Supports **Actor Authority (INV-01)** by enabling
|
|
18
17
|
declarative guard composition in state machine transitions. Guards enforce business
|
|
19
18
|
logic rules that determine whether navigation or actions are valid.
|
|
20
19
|
|
|
20
|
+
**XState v6:** the composed value is a plain predicate. Call it inside a
|
|
21
|
+
transition function and return early to block the transition:
|
|
22
|
+
|
|
21
23
|
## Type Parameters
|
|
22
24
|
|
|
23
|
-
| Type Parameter | Default type | Description
|
|
24
|
-
| -------------- | ------------ |
|
|
25
|
-
| `TContext` | `any` | State machine context type |
|
|
26
|
-
| `TEvent` | `any` | Event type
|
|
25
|
+
| Type Parameter | Default type | Description |
|
|
26
|
+
| -------------- | ------------ | ---------------------------------------------------------------------------------------------------------------------- |
|
|
27
|
+
| `TContext` | `any` | State machine context type (defaults to `any` so the documented inline-predicate examples compile without annotations) |
|
|
28
|
+
| `TEvent` | `any` | Event type |
|
|
27
29
|
|
|
28
30
|
## Parameters
|
|
29
31
|
|
|
30
|
-
| Parameter | Type | Description
|
|
31
|
-
| --------- | --------------------------------------------------------------------- |
|
|
32
|
-
| `guards` | [`GuardArray`](../type-aliases/GuardArray.md)\<`TContext`, `TEvent`\> | Array of guard predicates or guard names (string references) |
|
|
32
|
+
| Parameter | Type | Description |
|
|
33
|
+
| --------- | --------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- |
|
|
34
|
+
| `guards` | [`GuardArray`](../type-aliases/GuardArray.md)\<`TContext`, `TEvent`\> | Array of guard predicates or guard names (string references resolved against `args.guards` from `setup({ guards })`) |
|
|
33
35
|
|
|
34
36
|
## Returns
|
|
35
37
|
|
|
36
38
|
[`ComposedGuard`](../type-aliases/ComposedGuard.md)
|
|
37
39
|
|
|
38
|
-
|
|
40
|
+
Predicate returning `true` only when every guard passes
|
|
39
41
|
|
|
40
42
|
## Throws
|
|
41
43
|
|
|
@@ -49,6 +51,8 @@ AND composition with named guards
|
|
|
49
51
|
import { setup } from "xstate";
|
|
50
52
|
import { composeGuards } from "@xmachines/play-xstate";
|
|
51
53
|
|
|
54
|
+
const canAccessAdmin = composeGuards(["isLoggedIn", "hasPermission"]);
|
|
55
|
+
|
|
52
56
|
const machine = setup({
|
|
53
57
|
guards: {
|
|
54
58
|
isLoggedIn: ({ context }) => !!context.userId,
|
|
@@ -56,10 +60,9 @@ const machine = setup({
|
|
|
56
60
|
},
|
|
57
61
|
}).createMachine({
|
|
58
62
|
on: {
|
|
59
|
-
accessAdmin: {
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
target: "adminPanel",
|
|
63
|
+
accessAdmin: (args) => {
|
|
64
|
+
if (!canAccessAdmin(args)) return;
|
|
65
|
+
return { target: "adminPanel" };
|
|
63
66
|
},
|
|
64
67
|
},
|
|
65
68
|
});
|
|
@@ -70,7 +73,10 @@ AND composition with inline predicates
|
|
|
70
73
|
```typescript
|
|
71
74
|
import { composeGuards } from "@xmachines/play-xstate";
|
|
72
75
|
|
|
73
|
-
|
|
76
|
+
const isEligible = composeGuards([
|
|
77
|
+
({ context }) => context.age >= 18,
|
|
78
|
+
({ context }) => context.verified,
|
|
79
|
+
]);
|
|
74
80
|
```
|
|
75
81
|
|
|
76
82
|
## See
|
|
@@ -6,32 +6,31 @@
|
|
|
6
6
|
function composeGuardsOr<TContext, TEvent>(guards): ComposedGuard;
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
Defined in: [packages/play-xstate/src/guards/compose.ts:
|
|
9
|
+
Defined in: [packages/play-xstate/src/guards/compose.ts:189](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v2.0.0-alpha.1/packages/play-xstate/src/guards/compose.ts#L189)
|
|
10
10
|
|
|
11
|
-
Compose guards with OR logic
|
|
11
|
+
Compose guards with OR logic.
|
|
12
12
|
|
|
13
13
|
Combines multiple guard predicates using OR semantics—at least one guard must pass
|
|
14
|
-
for the composition to succeed.
|
|
15
|
-
type inference.
|
|
14
|
+
for the composition to succeed. Evaluation is short-circuiting, left to right.
|
|
16
15
|
|
|
17
16
|
## Type Parameters
|
|
18
17
|
|
|
19
|
-
| Type Parameter | Default type |
|
|
20
|
-
| -------------- | ------------ |
|
|
21
|
-
| `TContext` | `any` |
|
|
22
|
-
| `TEvent` | `any` |
|
|
18
|
+
| Type Parameter | Default type |
|
|
19
|
+
| -------------- | ------------ |
|
|
20
|
+
| `TContext` | `any` |
|
|
21
|
+
| `TEvent` | `any` |
|
|
23
22
|
|
|
24
23
|
## Parameters
|
|
25
24
|
|
|
26
|
-
| Parameter | Type | Description
|
|
27
|
-
| --------- | --------------------------------------------------------------------- |
|
|
28
|
-
| `guards` | [`GuardArray`](../type-aliases/GuardArray.md)\<`TContext`, `TEvent`\> | Array of guard predicates or guard names |
|
|
25
|
+
| Parameter | Type | Description |
|
|
26
|
+
| --------- | --------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- |
|
|
27
|
+
| `guards` | [`GuardArray`](../type-aliases/GuardArray.md)\<`TContext`, `TEvent`\> | Array of guard predicates or guard names (string references resolved against `args.guards` from `setup({ guards })`) |
|
|
29
28
|
|
|
30
29
|
## Returns
|
|
31
30
|
|
|
32
31
|
[`ComposedGuard`](../type-aliases/ComposedGuard.md)
|
|
33
32
|
|
|
34
|
-
|
|
33
|
+
Predicate returning `true` when any guard passes
|
|
35
34
|
|
|
36
35
|
## Throws
|
|
37
36
|
|
|
@@ -45,6 +44,8 @@ OR composition with named guards
|
|
|
45
44
|
import { setup } from "xstate";
|
|
46
45
|
import { composeGuardsOr } from "@xmachines/play-xstate";
|
|
47
46
|
|
|
47
|
+
const canDelete = composeGuardsOr(["isOwner", "isAdmin"]);
|
|
48
|
+
|
|
48
49
|
const machine = setup({
|
|
49
50
|
guards: {
|
|
50
51
|
isOwner: ({ context }) => context.role === "owner",
|
|
@@ -52,10 +53,9 @@ const machine = setup({
|
|
|
52
53
|
},
|
|
53
54
|
}).createMachine({
|
|
54
55
|
on: {
|
|
55
|
-
deleteResource: {
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
actions: "delete",
|
|
56
|
+
deleteResource: (args, enq) => {
|
|
57
|
+
if (!canDelete(args)) return;
|
|
58
|
+
enq(() => deleteIt());
|
|
59
59
|
},
|
|
60
60
|
},
|
|
61
61
|
});
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
function contextFieldMatches<TContext>(fieldPath, expectedValue): Guard<TContext, PlayEvent>;
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
Defined in: [packages/play-xstate/src/guards/helpers.ts:71](https://gitlab.com/xmachin-es/xmachines-js/-/blob/
|
|
9
|
+
Defined in: [packages/play-xstate/src/guards/helpers.ts:71](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v2.0.0-alpha.1/packages/play-xstate/src/guards/helpers.ts#L71)
|
|
10
10
|
|
|
11
11
|
Check if a context field matches an expected value.
|
|
12
12
|
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
[API](../../../README.md) / [@xmachines/play-xstate](../README.md) / createRoutedMachine
|
|
2
|
+
|
|
3
|
+
# Function: createRoutedMachine()
|
|
4
|
+
|
|
5
|
+
```ts
|
|
6
|
+
function createRoutedMachine<TSetup>(s): TSetup["createMachine"];
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
Defined in: [packages/play-xstate/src/routing/create-routed-machine.ts:78](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v2.0.0-alpha.1/packages/play-xstate/src/routing/create-routed-machine.ts#L78)
|
|
10
|
+
|
|
11
|
+
Returns a `createMachine` that routes: identical signature to the setup's
|
|
12
|
+
own `createMachine`, with [formatPlayRouteTransitions](formatPlayRouteTransitions.md) applied to the
|
|
13
|
+
config at runtime.
|
|
14
|
+
|
|
15
|
+
### Why this exists
|
|
16
|
+
|
|
17
|
+
`formatPlayRouteTransitions(config)` accepts a loosely-typed config. A config
|
|
18
|
+
authored as a standalone value loses inline transition-function parameter
|
|
19
|
+
inference entirely (implicit-any under strict mode), and even the inline
|
|
20
|
+
`setup().createMachine(formatPlayRouteTransitions({ ... }))` form depends on
|
|
21
|
+
TypeScript threading contextual typing through two generic calls.
|
|
22
|
+
|
|
23
|
+
This wrapper removes the question: it is typed as the setup's own
|
|
24
|
+
`createMachine`, so the config is contextually typed exactly as if passed to
|
|
25
|
+
`setup().createMachine(...)` directly — transition-function args infer from
|
|
26
|
+
the setup's schemas, sibling targets are validated, and the returned machine
|
|
27
|
+
keeps its full literal state-value typing.
|
|
28
|
+
|
|
29
|
+
Typing is _identical to native_ — including its current gaps: as of xstate
|
|
30
|
+
6.0.0-alpha.20, `event` and `context` reads in transition args are fully
|
|
31
|
+
typed, while returned context patches are property-typed but still carry a
|
|
32
|
+
loose index signature in the alpha itself. Expect that to tighten upstream
|
|
33
|
+
without changes here.
|
|
34
|
+
|
|
35
|
+
## Type Parameters
|
|
36
|
+
|
|
37
|
+
| Type Parameter |
|
|
38
|
+
| -------------------------------------------------------------- |
|
|
39
|
+
| `TSetup` _extends_ [`SetupLike`](../type-aliases/SetupLike.md) |
|
|
40
|
+
|
|
41
|
+
## Parameters
|
|
42
|
+
|
|
43
|
+
| Parameter | Type | Description |
|
|
44
|
+
| --------- | -------- | ------------------------------------------------------------ |
|
|
45
|
+
| `s` | `TSetup` | A `setup(...)` return value (anything with `createMachine`). |
|
|
46
|
+
|
|
47
|
+
## Returns
|
|
48
|
+
|
|
49
|
+
`TSetup`\[`"createMachine"`\]
|
|
50
|
+
|
|
51
|
+
A function with the same signature as `s.createMachine` that
|
|
52
|
+
applies [formatPlayRouteTransitions](formatPlayRouteTransitions.md) before creating the machine.
|
|
53
|
+
|
|
54
|
+
## Example
|
|
55
|
+
|
|
56
|
+
```typescript
|
|
57
|
+
import { setup, types } from "xstate";
|
|
58
|
+
import { createRoutedMachine, playMetaSchema, playRouteEventSchema } from "@xmachines/play-xstate";
|
|
59
|
+
|
|
60
|
+
const authSetup = setup({
|
|
61
|
+
schemas: {
|
|
62
|
+
context: types<{ isAuthenticated: boolean }>(),
|
|
63
|
+
events: { "play.route": playRouteEventSchema },
|
|
64
|
+
meta: playMetaSchema,
|
|
65
|
+
},
|
|
66
|
+
});
|
|
67
|
+
|
|
68
|
+
const machine = createRoutedMachine(authSetup)({
|
|
69
|
+
initial: "home",
|
|
70
|
+
context: { isAuthenticated: false },
|
|
71
|
+
states: {
|
|
72
|
+
home: { id: "home", meta: { route: "/" } },
|
|
73
|
+
login: { id: "login", meta: { route: "/login" } },
|
|
74
|
+
},
|
|
75
|
+
});
|
|
76
|
+
// ({ context }) params in transitions infer from the setup schemas —
|
|
77
|
+
// no explicit annotations needed.
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
Note: routes are injected at runtime, so the machine's static type does not
|
|
81
|
+
gain an `xstate.route` event for them — `play.route` (declared in the
|
|
82
|
+
setup's event schemas) remains the typed public API; native `xstate.route`
|
|
83
|
+
interop is runtime-only.
|
|
84
|
+
|
|
85
|
+
## See
|
|
86
|
+
|
|
87
|
+
[formatPlayRouteTransitions](formatPlayRouteTransitions.md) for the routing transform itself
|
|
@@ -6,11 +6,11 @@
|
|
|
6
6
|
function definePlayer<TMachine>(config): PlayerFactory<TMachine>;
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
Defined in: [packages/play-xstate/src/define-player.ts:61](https://gitlab.com/xmachin-es/xmachines-js/-/blob/
|
|
9
|
+
Defined in: [packages/play-xstate/src/define-player.ts:61](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v2.0.0-alpha.1/packages/play-xstate/src/define-player.ts#L61)
|
|
10
10
|
|
|
11
11
|
Create a player factory from an XState machine
|
|
12
12
|
|
|
13
|
-
Factory pattern that accepts an XState
|
|
13
|
+
Factory pattern that accepts an XState v6 machine,
|
|
14
14
|
returning a function that creates [PlayerActor](../classes/PlayerActor.md) instances. This enables
|
|
15
15
|
creating multiple actor instances from a single configuration, useful for
|
|
16
16
|
testing, multi-instance scenarios, or server-side rendering.
|
|
@@ -19,7 +19,7 @@ testing, multi-instance scenarios, or server-side rendering.
|
|
|
19
19
|
|
|
20
20
|
| Type Parameter | Description |
|
|
21
21
|
| ---------------------------------------------------------------------------------------------- | ---------------------------- |
|
|
22
|
-
| `TMachine` _extends_ [`AnyStateMachine`](https://www.jsdocs.io/package/xstate#AnyStateMachine) | XState
|
|
22
|
+
| `TMachine` _extends_ [`AnyStateMachine`](https://www.jsdocs.io/package/xstate#AnyStateMachine) | XState v6 state machine type |
|
|
23
23
|
|
|
24
24
|
## Parameters
|
|
25
25
|
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
function deriveRoute(stateMeta): string | null;
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
Defined in: [packages/play-xstate/src/routing/derive-route.ts:91](https://gitlab.com/xmachin-es/xmachines-js/-/blob/
|
|
9
|
+
Defined in: [packages/play-xstate/src/routing/derive-route.ts:91](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v2.0.0-alpha.1/packages/play-xstate/src/routing/derive-route.ts#L91)
|
|
10
10
|
|
|
11
11
|
Derive route from XState state metadata
|
|
12
12
|
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
function eventMatches<TEvent>(eventType): Guard<unknown, TEvent>;
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
Defined in: [packages/play-xstate/src/guards/helpers.ts:50](https://gitlab.com/xmachin-es/xmachines-js/-/blob/
|
|
9
|
+
Defined in: [packages/play-xstate/src/guards/helpers.ts:50](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v2.0.0-alpha.1/packages/play-xstate/src/guards/helpers.ts#L50)
|
|
10
10
|
|
|
11
11
|
Check if event type matches expected type
|
|
12
12
|
|
|
@@ -6,14 +6,20 @@
|
|
|
6
6
|
function formatPlayRouteTransitions<T>(machineConfig): T;
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
Defined in: [packages/play-xstate/src/routing/format-play-route-transitions.ts:
|
|
9
|
+
Defined in: [packages/play-xstate/src/routing/format-play-route-transitions.ts:146](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v2.0.0-alpha.1/packages/play-xstate/src/routing/format-play-route-transitions.ts#L146)
|
|
10
10
|
|
|
11
|
-
Formats play.route
|
|
11
|
+
Formats play.route routing from declarative route configs.
|
|
12
12
|
|
|
13
|
-
Crawls machine states looking for states with meta.route and
|
|
14
|
-
|
|
13
|
+
Crawls machine states looking for states with `meta.route` and wires them to
|
|
14
|
+
XState v6's **native routing machinery**:
|
|
15
15
|
|
|
16
|
-
|
|
16
|
+
- every routed state gets a native `route: {}` config (unless it already
|
|
17
|
+
declares its own `route`), making it targetable via the built-in
|
|
18
|
+
`{ type: "xstate.route", to: "#id" }` event (Stately tooling interop and
|
|
19
|
+
statically-known graph edges), and
|
|
20
|
+
- one root-level `play.route` forwarder performs the navigation for those
|
|
21
|
+
targets as ONE atomic transition: target + re-entry + a shallow
|
|
22
|
+
`params`/`query` context patch.
|
|
17
23
|
|
|
18
24
|
## Type Parameters
|
|
19
25
|
|
|
@@ -31,7 +37,7 @@ Inspired by XState's internal formatRouteTransitions (stateUtils.ts line 391).
|
|
|
31
37
|
|
|
32
38
|
`T`
|
|
33
39
|
|
|
34
|
-
The
|
|
40
|
+
The machine config with native `route` configs and the `play.route` forwarder merged in, preserving the original type `T`.
|
|
35
41
|
|
|
36
42
|
## Example
|
|
37
43
|
|
|
@@ -47,8 +53,36 @@ const machineConfig = {
|
|
|
47
53
|
const machine = createMachine(formatPlayRouteTransitions(machineConfig));
|
|
48
54
|
```
|
|
49
55
|
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
-
|
|
54
|
-
|
|
56
|
+
Because the injected `route` configs are static (object form), the machine's
|
|
57
|
+
route transitions keep **statically-known targets** — `toDirectedGraph()` /
|
|
58
|
+
`machineToGraph()` edges point at the actual routed states, so graph
|
|
59
|
+
reachability queries work. (Function-form transition candidates would have
|
|
60
|
+
dynamic targets, opaque to static analysis.)
|
|
61
|
+
|
|
62
|
+
The `play.route` public API and its v5 semantics are preserved:
|
|
63
|
+
|
|
64
|
+
- `send({ type: "play.route", to: "#home", params, query })` navigates and
|
|
65
|
+
patches `context.params`/`context.query` in the SAME transition — exit
|
|
66
|
+
actions of the departing state observe the OLD params, entry actions of
|
|
67
|
+
the target observe the NEW ones, `always` transitions never see a
|
|
68
|
+
half-navigated intermediate state, and entry/exit actions receive the
|
|
69
|
+
original `play.route` event;
|
|
70
|
+
- user-defined `play.route` transitions (e.g. a hand-written 404 fallback)
|
|
71
|
+
are preserved AFTER the forwarder: for unknown targets the forwarder
|
|
72
|
+
returns `undefined`, so evaluation falls through to them;
|
|
73
|
+
- `params`/`query` are only patched when the forwarder navigates — unknown
|
|
74
|
+
and blocked targets leave context untouched.
|
|
75
|
+
|
|
76
|
+
When a state declares its OWN `route` config (which wins over the injected
|
|
77
|
+
default), the forwarder re-raises the event as `xstate.route` instead of
|
|
78
|
+
navigating, so the user's resolver decides — including blocking. The
|
|
79
|
+
forwarder does NOT patch `params`/`query` for such targets (a blocking
|
|
80
|
+
resolver would otherwise leave context describing a route that was never
|
|
81
|
+
entered); the user's function-form resolver owns any context patch, and
|
|
82
|
+
that navigation microstep runs under the `xstate.route` event.
|
|
83
|
+
|
|
84
|
+
Native `xstate.route` events also work directly (Stately ecosystem tooling),
|
|
85
|
+
but bypass the forwarder — no `params`/`query` context patch is applied, so
|
|
86
|
+
stale values from earlier `play.route` events linger in context (and a
|
|
87
|
+
router bridge deriving the URL from context would interpolate those stale
|
|
88
|
+
params).
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
function hasContext<TContext>(path): Guard<TContext, PlayEvent>;
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
Defined in: [packages/play-xstate/src/guards/helpers.ts:24](https://gitlab.com/xmachin-es/xmachines-js/-/blob/
|
|
9
|
+
Defined in: [packages/play-xstate/src/guards/helpers.ts:24](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v2.0.0-alpha.1/packages/play-xstate/src/guards/helpers.ts#L24)
|
|
10
10
|
|
|
11
11
|
Check if context has a truthy value at path
|
|
12
12
|
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
function isAbsoluteRoute(path): boolean;
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
Defined in: [packages/play-xstate/src/routing/derive-route.ts:160](https://gitlab.com/xmachin-es/xmachines-js/-/blob/
|
|
9
|
+
Defined in: [packages/play-xstate/src/routing/derive-route.ts:160](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v2.0.0-alpha.1/packages/play-xstate/src/routing/derive-route.ts#L160)
|
|
10
10
|
|
|
11
11
|
Check if route path is absolute
|
|
12
12
|
|
|
@@ -6,31 +6,30 @@
|
|
|
6
6
|
function negateGuard<TContext, TEvent>(guard): ComposedGuard;
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
Defined in: [packages/play-xstate/src/guards/compose.ts:
|
|
9
|
+
Defined in: [packages/play-xstate/src/guards/compose.ts:248](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v2.0.0-alpha.1/packages/play-xstate/src/guards/compose.ts#L248)
|
|
10
10
|
|
|
11
|
-
Negate a guard
|
|
11
|
+
Negate a guard.
|
|
12
12
|
|
|
13
13
|
Inverts a guard's result—if the guard passes, NOT fails; if guard fails, NOT passes.
|
|
14
|
-
Uses XState's built-in `not()` helper for proper serialization.
|
|
15
14
|
|
|
16
15
|
## Type Parameters
|
|
17
16
|
|
|
18
|
-
| Type Parameter | Default type | Description
|
|
19
|
-
| -------------- | ------------ |
|
|
20
|
-
| `TContext` | `any` | State machine context type |
|
|
21
|
-
| `TEvent` | `any` | Event type
|
|
17
|
+
| Type Parameter | Default type | Description |
|
|
18
|
+
| -------------- | ------------ | ----------------------------------------------------------------------------------------------- |
|
|
19
|
+
| `TContext` | `any` | State machine context type (defaults to `any` so inline predicates compile without annotations) |
|
|
20
|
+
| `TEvent` | `any` | Event type |
|
|
22
21
|
|
|
23
22
|
## Parameters
|
|
24
23
|
|
|
25
|
-
| Parameter | Type | Description
|
|
26
|
-
| --------- | ----------------------------------------------------------------------- |
|
|
27
|
-
| `guard` | `string` \| [`Guard`](../type-aliases/Guard.md)\<`TContext`, `TEvent`\> | Guard predicate or guard name to negate |
|
|
24
|
+
| Parameter | Type | Description |
|
|
25
|
+
| --------- | ----------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- |
|
|
26
|
+
| `guard` | `string` \| [`Guard`](../type-aliases/Guard.md)\<`TContext`, `TEvent`\> | Guard predicate or guard name (resolved against `args.guards` from `setup({ guards })`) to negate |
|
|
28
27
|
|
|
29
28
|
## Returns
|
|
30
29
|
|
|
31
30
|
[`ComposedGuard`](../type-aliases/ComposedGuard.md)
|
|
32
31
|
|
|
33
|
-
|
|
32
|
+
Predicate returning the inverted guard result
|
|
34
33
|
|
|
35
34
|
## Example
|
|
36
35
|
|
|
@@ -40,16 +39,17 @@ NOT composition with named guard
|
|
|
40
39
|
import { setup } from "xstate";
|
|
41
40
|
import { negateGuard } from "@xmachines/play-xstate";
|
|
42
41
|
|
|
42
|
+
const isAuthenticated = negateGuard("isGuest");
|
|
43
|
+
|
|
43
44
|
const machine = setup({
|
|
44
45
|
guards: {
|
|
45
46
|
isGuest: ({ context }) => !context.userId,
|
|
46
47
|
},
|
|
47
48
|
}).createMachine({
|
|
48
49
|
on: {
|
|
49
|
-
accessDashboard: {
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
target: "dashboard",
|
|
50
|
+
accessDashboard: (args) => {
|
|
51
|
+
if (!isAuthenticated(args)) return;
|
|
52
|
+
return { target: "dashboard" };
|
|
53
53
|
},
|
|
54
54
|
},
|
|
55
55
|
});
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
# Interface: PlayerConfig\<TMachine\>
|
|
4
4
|
|
|
5
|
-
Defined in: [packages/play-xstate/src/types.ts:7](https://gitlab.com/xmachin-es/xmachines-js/-/blob/
|
|
5
|
+
Defined in: [packages/play-xstate/src/types.ts:7](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v2.0.0-alpha.1/packages/play-xstate/src/types.ts#L7)
|
|
6
6
|
|
|
7
7
|
Configuration for definePlayer()
|
|
8
8
|
|
|
@@ -14,7 +14,7 @@ Configuration for definePlayer()
|
|
|
14
14
|
|
|
15
15
|
## Properties
|
|
16
16
|
|
|
17
|
-
| Property | Type | Description | Defined in
|
|
18
|
-
| ---------------------------------------- | ------------------------------------------------- | --------------------------------- |
|
|
19
|
-
| <a id="property-machine"></a> `machine` | `TMachine` | XState
|
|
20
|
-
| <a id="property-options"></a> `options?` | [`PlayerOptions`](PlayerOptions.md)\<`TMachine`\> | Lifecycle hooks and configuration | [packages/play-xstate/src/types.ts:12](https://gitlab.com/xmachin-es/xmachines-js/-/blob/
|
|
17
|
+
| Property | Type | Description | Defined in |
|
|
18
|
+
| ---------------------------------------- | ------------------------------------------------- | --------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
19
|
+
| <a id="property-machine"></a> `machine` | `TMachine` | XState v6 state machine | [packages/play-xstate/src/types.ts:9](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v2.0.0-alpha.1/packages/play-xstate/src/types.ts#L9) |
|
|
20
|
+
| <a id="property-options"></a> `options?` | [`PlayerOptions`](PlayerOptions.md)\<`TMachine`\> | Lifecycle hooks and configuration | [packages/play-xstate/src/types.ts:12](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v2.0.0-alpha.1/packages/play-xstate/src/types.ts#L12) |
|
|
@@ -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/
|
|
5
|
+
Defined in: [packages/play-xstate/src/types.ts:47](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v2.0.0-alpha.1/packages/play-xstate/src/types.ts#L47)
|
|
6
6
|
|
|
7
7
|
Optional restore arguments for the player factory.
|
|
8
8
|
|
|
@@ -17,6 +17,6 @@ Mirrors XState's createActor options bag while preserving the existing
|
|
|
17
17
|
|
|
18
18
|
## Properties
|
|
19
19
|
|
|
20
|
-
| Property | Type | Description | Defined in
|
|
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/
|
|
20
|
+
| Property | Type | Description | Defined in |
|
|
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/v2.0.0-alpha.1/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/
|
|
5
|
+
Defined in: [packages/play-xstate/src/types.ts:20](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v2.0.0-alpha.1/packages/play-xstate/src/types.ts#L20)
|
|
6
6
|
|
|
7
7
|
Player lifecycle hooks
|
|
8
8
|
|
|
@@ -16,10 +16,10 @@ Per CONTEXT.md: Rich set of hooks for observability
|
|
|
16
16
|
|
|
17
17
|
## Properties
|
|
18
18
|
|
|
19
|
-
| Property | Type | Description | Defined in
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
19
|
+
| Property | Type | Description | Defined in |
|
|
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/v2.0.0-alpha.1/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/v2.0.0-alpha.1/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/v2.0.0-alpha.1/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/v2.0.0-alpha.1/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/v2.0.0-alpha.1/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/
|
|
5
|
+
Defined in: [packages/play-xstate/src/routing/types.ts:19](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v2.0.0-alpha.1/packages/play-xstate/src/routing/types.ts#L19)
|
|
6
6
|
|
|
7
7
|
Route build context from machine context.
|
|
8
8
|
|
|
@@ -16,9 +16,9 @@ must populate `params` explicitly.
|
|
|
16
16
|
|
|
17
17
|
## Properties
|
|
18
18
|
|
|
19
|
-
| Property | Type | Description | Defined in
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
19
|
+
| Property | Type | Description | Defined in |
|
|
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/v2.0.0-alpha.1/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/v2.0.0-alpha.1/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/v2.0.0-alpha.1/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/v2.0.0-alpha.1/packages/play-xstate/src/routing/types.ts#L25) |
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
# Interface: RouteObject
|
|
4
4
|
|
|
5
|
-
Defined in: [packages/play-xstate/src/routing/types.ts:1](https://gitlab.com/xmachin-es/xmachines-js/-/blob/
|
|
5
|
+
Defined in: [packages/play-xstate/src/routing/types.ts:1](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v2.0.0-alpha.1/packages/play-xstate/src/routing/types.ts#L1)
|
|
6
6
|
|
|
7
7
|
## Indexable
|
|
8
8
|
|
|
@@ -12,6 +12,6 @@ Defined in: [packages/play-xstate/src/routing/types.ts:1](https://gitlab.com/xma
|
|
|
12
12
|
|
|
13
13
|
## Properties
|
|
14
14
|
|
|
15
|
-
| Property | Type | Defined in
|
|
16
|
-
| --------------------------------- | -------- |
|
|
17
|
-
| <a id="property-path"></a> `path` | `string` | [packages/play-xstate/src/routing/types.ts:2](https://gitlab.com/xmachin-es/xmachines-js/-/blob/
|
|
15
|
+
| Property | Type | Defined in |
|
|
16
|
+
| --------------------------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
|
17
|
+
| <a id="property-path"></a> `path` | `string` | [packages/play-xstate/src/routing/types.ts:2](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v2.0.0-alpha.1/packages/play-xstate/src/routing/types.ts#L2) |
|