@xmachines/docs 6.1.0 → 8.0.0-next.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 +5 -5
- package/api/@xmachines/core/README.md +7 -2
- package/api/@xmachines/core/cache/functions/createLruCache.md +1 -1
- package/api/@xmachines/core/cache/interfaces/KeyValueCache.md +3 -3
- package/api/@xmachines/core/errors/classes/BaseError.md +11 -11
- package/api/@xmachines/core/errors/classes/DisposeConflictError.md +11 -11
- package/api/@xmachines/core/utils/functions/asDisposable.md +2 -2
- package/api/@xmachines/core/utils/functions/createNullRecord.md +1 -1
- package/api/@xmachines/core/utils/functions/createWarnOnce.md +1 -1
- package/api/@xmachines/core/utils/functions/describeValue.md +1 -1
- package/api/@xmachines/core/utils/functions/isError.md +1 -1
- package/api/@xmachines/core/utils/functions/isThenable.md +1 -1
- package/api/@xmachines/core/utils/functions/releaseQuietly.md +1 -1
- package/api/@xmachines/core/utils/functions/rethrowLater.md +1 -1
- package/api/@xmachines/core/utils/functions/safeString.md +1 -1
- package/api/@xmachines/core/utils/functions/shallowEqualExcept.md +1 -1
- package/api/@xmachines/core/utils/type-aliases/DisposeKey.md +1 -1
- package/api/@xmachines/core/utils/type-aliases/DisposeMember.md +1 -1
- package/api/@xmachines/core/utils/variables/DISPOSE.md +1 -1
- package/api/@xmachines/play/README.md +10 -5
- package/api/@xmachines/play/errors/classes/NonNullableError.md +11 -11
- package/api/@xmachines/play/errors/classes/PlayError.md +12 -11
- package/api/@xmachines/play/index/functions/assertNonNullable.md +1 -1
- package/api/@xmachines/play/index/type-aliases/PlayEvent.md +4 -4
- package/api/@xmachines/play-actor/README.md +11 -3
- package/api/@xmachines/play-actor/interfaces/ActorEvent.md +4 -4
- package/api/@xmachines/play-actor/interfaces/PlayActor.md +6 -6
- package/api/@xmachines/play-atom/README.md +21 -7
- package/api/@xmachines/play-atom/functions/watchAtom.md +1 -1
- package/api/@xmachines/play-atom/interfaces/AsyncAtomOptions.md +4 -4
- package/api/@xmachines/play-atom/interfaces/Atom.md +6 -6
- package/api/@xmachines/play-atom/interfaces/AtomObserver.md +6 -6
- package/api/@xmachines/play-atom/interfaces/AtomOptions.md +4 -4
- package/api/@xmachines/play-atom/interfaces/AtomSubscription.md +2 -2
- package/api/@xmachines/play-atom/interfaces/BaseAtom.md +4 -4
- package/api/@xmachines/play-atom/interfaces/CreateAtom.md +3 -3
- package/api/@xmachines/play-atom/interfaces/Readable.md +4 -4
- package/api/@xmachines/play-atom/interfaces/ReadonlyAtom.md +4 -4
- package/api/@xmachines/play-atom/type-aliases/AnyAtom.md +1 -1
- package/api/@xmachines/play-atom/type-aliases/AsyncAtomState.md +1 -1
- package/api/@xmachines/play-atom/variables/createAsyncAtom.md +1 -1
- package/api/@xmachines/play-atom/variables/createAtom.md +1 -1
- package/api/@xmachines/play-atom/variables/createWritableAtom.md +1 -1
- package/api/@xmachines/play-dom/README.md +136 -50
- package/api/@xmachines/play-dom/classes/PlayRenderer.md +12 -12
- package/api/@xmachines/play-dom/functions/createPlayUI.md +5 -5
- package/api/@xmachines/play-dom/functions/createRenderer.md +1 -1
- package/api/@xmachines/play-dom/functions/renderSpec.md +3 -2
- package/api/@xmachines/play-dom/interfaces/ComponentContext.md +9 -9
- package/api/@xmachines/play-dom/interfaces/CreatePlayUIOptions.md +15 -14
- package/api/@xmachines/play-dom/interfaces/DomRenderContext.md +26 -20
- package/api/@xmachines/play-dom/interfaces/MountOptions.md +5 -5
- package/api/@xmachines/play-dom/interfaces/PassOptions.md +14 -0
- package/api/@xmachines/play-dom/interfaces/PlayDomOptions.md +18 -17
- package/api/@xmachines/play-dom/interfaces/RenderErrorInfo.md +16 -0
- package/api/@xmachines/play-dom/interfaces/RenderSpecOptions.md +17 -15
- package/api/@xmachines/play-dom/interfaces/UIProviderOptions.md +9 -8
- package/api/@xmachines/play-dom/interfaces/ValidationRegistry.md +14 -11
- package/api/@xmachines/play-dom/type-aliases/ConfirmHandler.md +9 -10
- package/api/@xmachines/play-dom/type-aliases/DefineRegistryOptions.md +4 -3
- package/api/@xmachines/play-dom/type-aliases/MountFn.md +1 -1
- package/api/@xmachines/play-dom/type-aliases/OnRenderError.md +27 -0
- package/api/@xmachines/play-dom/type-aliases/RenderErrorKind.md +21 -0
- package/api/@xmachines/play-dom-router/README.md +44 -6
- package/api/@xmachines/play-dom-router/classes/DomRouterBridge.md +7 -7
- package/api/@xmachines/play-dom-router/classes/RouteMap.md +4 -4
- 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/createRouter.md +1 -1
- package/api/@xmachines/play-dom-router/interfaces/BasePathOptions.md +5 -5
- 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 +10 -10
- package/api/@xmachines/play-dom-router/interfaces/PlayRouteEvent.md +9 -9
- 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/RouteMapOptions.md +6 -6
- 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/RouterConnection.md +8 -8
- package/api/@xmachines/play-dom-router/interfaces/VanillaRouter.md +6 -6
- package/api/@xmachines/play-pattern/README.md +1 -1
- package/api/@xmachines/play-pattern/functions/buildPath.md +1 -1
- package/api/@xmachines/play-pattern/functions/createLruCache.md +1 -1
- package/api/@xmachines/play-pattern/functions/getIndexKey.md +1 -1
- package/api/@xmachines/play-pattern/functions/isDotSegment.md +1 -1
- package/api/@xmachines/play-pattern/functions/parsePattern.md +1 -1
- package/api/@xmachines/play-pattern/interfaces/GroupPart.md +6 -6
- package/api/@xmachines/play-pattern/interfaces/KeyValueCache.md +3 -3
- package/api/@xmachines/play-pattern/interfaces/LiteralPart.md +5 -5
- package/api/@xmachines/play-pattern/interfaces/ParamPart.md +9 -9
- package/api/@xmachines/play-pattern/interfaces/ParseOptions.md +4 -4
- package/api/@xmachines/play-pattern/interfaces/ParsedPattern.md +14 -14
- package/api/@xmachines/play-pattern/interfaces/PatternParam.md +6 -6
- package/api/@xmachines/play-pattern/type-aliases/PathBuildResult.md +1 -1
- package/api/@xmachines/play-pattern/type-aliases/PathParams.md +1 -1
- package/api/@xmachines/play-pattern/type-aliases/PatternModifier.md +1 -1
- package/api/@xmachines/play-pattern/type-aliases/PatternPart.md +1 -1
- package/api/@xmachines/play-react/README.md +58 -19
- package/api/@xmachines/play-react/classes/PlayErrorBoundary.md +6 -6
- package/api/@xmachines/play-react/functions/defineRegistry.md +1 -1
- package/api/@xmachines/play-react/functions/useActor.md +1 -1
- package/api/@xmachines/play-react/functions/useAtomEffect.md +1 -1
- package/api/@xmachines/play-react/functions/usePlayView.md +1 -1
- package/api/@xmachines/play-react/interfaces/ActionProviderProps.md +5 -5
- package/api/@xmachines/play-react/interfaces/ActorProviderProps.md +11 -11
- package/api/@xmachines/play-react/interfaces/DefineRegistryResult.md +15 -0
- package/api/@xmachines/play-react/interfaces/PlayErrorBoundaryProps.md +8 -8
- package/api/@xmachines/play-react/interfaces/PlayErrorBoundaryState.md +6 -6
- package/api/@xmachines/play-react/interfaces/PlayUIProviderProps.md +13 -13
- package/api/@xmachines/play-react/interfaces/RenderErrorInfo.md +16 -0
- package/api/@xmachines/play-react/interfaces/RendererProps.md +7 -7
- 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/type-aliases/OnRenderError.md +27 -0
- package/api/@xmachines/play-react/type-aliases/RenderErrorKind.md +21 -0
- package/api/@xmachines/play-react/variables/ActorProvider.md +14 -4
- 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 +26 -5
- package/api/@xmachines/play-react-router/classes/ReactRouterBridge.md +7 -7
- 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/createRouteMapFromTree.md +1 -1
- package/api/@xmachines/play-react-router/interfaces/PlayRouteEvent.md +9 -9
- package/api/@xmachines/play-react-router/interfaces/PlayRouterProviderProps.md +11 -11
- package/api/@xmachines/play-react-router/interfaces/RoutableActor.md +6 -6
- package/api/@xmachines/play-react-router/interfaces/RouteMapOptions.md +6 -6
- 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/type-aliases/PlayRouterProviderBaseProps.md +1 -1
- package/api/@xmachines/play-react-router/variables/PlayRouterProvider.md +1 -1
- package/api/@xmachines/play-router/README.md +87 -29
- package/api/@xmachines/play-router/errors/classes/DuplicateBridgeError.md +11 -11
- package/api/@xmachines/play-router/errors/classes/DuplicateRoutePathError.md +12 -12
- package/api/@xmachines/play-router/errors/classes/EmptyRoutePathError.md +12 -12
- package/api/@xmachines/play-router/errors/classes/InvalidBasePathError.md +12 -12
- package/api/@xmachines/play-router/errors/classes/InvalidRoutePatternError.md +12 -12
- package/api/@xmachines/play-router/errors/classes/InvalidStateIdError.md +12 -12
- package/api/@xmachines/play-router/errors/classes/MissingBasePathParamError.md +13 -13
- package/api/@xmachines/play-router/errors/classes/RouterSyncError.md +11 -11
- package/api/@xmachines/play-router/errors/classes/UnknownStateTypeError.md +13 -13
- package/api/@xmachines/play-router/index/classes/RouteMap.md +4 -4
- package/api/@xmachines/play-router/index/classes/RouterBridgeBase.md +7 -7
- package/api/@xmachines/play-router/index/functions/buildPlayRouteEvent.md +1 -1
- package/api/@xmachines/play-router/index/functions/buildRouteTree.md +1 -1
- package/api/@xmachines/play-router/index/functions/cleanFrameworkParams.md +1 -1
- package/api/@xmachines/play-router/index/functions/createLruCache.md +1 -1
- package/api/@xmachines/play-router/index/functions/createRouteMapFromTree.md +1 -1
- package/api/@xmachines/play-router/index/functions/createRouterConnection.md +1 -1
- package/api/@xmachines/play-router/index/functions/detectDuplicateRoutes.md +1 -1
- package/api/@xmachines/play-router/index/functions/extractQuery.md +1 -1
- package/api/@xmachines/play-router/index/functions/extractRouteParams.md +1 -1
- package/api/@xmachines/play-router/index/functions/findRouteById.md +1 -1
- package/api/@xmachines/play-router/index/functions/findRouteByPath.md +1 -1
- package/api/@xmachines/play-router/index/functions/isMountableBridge.md +1 -1
- package/api/@xmachines/play-router/index/functions/joinBasePath.md +1 -1
- package/api/@xmachines/play-router/index/functions/mountKey.md +1 -1
- package/api/@xmachines/play-router/index/functions/normalizeBasePath.md +1 -1
- package/api/@xmachines/play-router/index/functions/openProviderBridge.md +5 -5
- package/api/@xmachines/play-router/index/functions/parsePattern.md +1 -1
- package/api/@xmachines/play-router/index/functions/pickOwnParams.md +1 -1
- package/api/@xmachines/play-router/index/functions/repointProviderBridge.md +1 -1
- package/api/@xmachines/play-router/index/functions/resolveBasePath.md +1 -1
- package/api/@xmachines/play-router/index/functions/resolveFrameworkParams.md +1 -1
- package/api/@xmachines/play-router/index/functions/sanitizePathname.md +1 -1
- package/api/@xmachines/play-router/index/functions/splitLocation.md +1 -1
- package/api/@xmachines/play-router/index/functions/stripBasePath.md +1 -1
- package/api/@xmachines/play-router/index/functions/validateRouteFormat.md +1 -1
- package/api/@xmachines/play-router/index/functions/validateStateExists.md +1 -1
- package/api/@xmachines/play-router/index/interfaces/BasePathOptions.md +5 -5
- package/api/@xmachines/play-router/index/interfaces/BuildPlayRouteEventOptions.md +6 -6
- package/api/@xmachines/play-router/index/interfaces/CompileOptions.md +5 -5
- package/api/@xmachines/play-router/index/interfaces/FrameworkParamsSource.md +9 -9
- package/api/@xmachines/play-router/index/interfaces/KeyValueCache.md +3 -3
- package/api/@xmachines/play-router/index/interfaces/LocationLike.md +5 -5
- package/api/@xmachines/play-router/index/interfaces/MountableRouterBridge.md +8 -8
- package/api/@xmachines/play-router/index/interfaces/OpenProviderBridgeArgs.md +10 -10
- package/api/@xmachines/play-router/index/interfaces/ParseOptions.md +4 -4
- package/api/@xmachines/play-router/index/interfaces/ParsedPattern.md +14 -14
- package/api/@xmachines/play-router/index/interfaces/PlayRouteEvent.md +9 -9
- package/api/@xmachines/play-router/index/interfaces/PlayRouterProviderBaseProps.md +11 -11
- package/api/@xmachines/play-router/index/interfaces/ResolvedBasePath.md +5 -5
- package/api/@xmachines/play-router/index/interfaces/ResolvedRoutePath.md +5 -5
- package/api/@xmachines/play-router/index/interfaces/Routable.md +5 -5
- package/api/@xmachines/play-router/index/interfaces/RoutableActor.md +6 -6
- package/api/@xmachines/play-router/index/interfaces/RouteInfo.md +10 -10
- package/api/@xmachines/play-router/index/interfaces/RouteMapOptions.md +6 -6
- package/api/@xmachines/play-router/index/interfaces/RouteMapping.md +5 -5
- package/api/@xmachines/play-router/index/interfaces/RouteMatch.md +5 -5
- package/api/@xmachines/play-router/index/interfaces/RouteNode.md +12 -12
- package/api/@xmachines/play-router/index/interfaces/RouteObject.md +7 -7
- package/api/@xmachines/play-router/index/interfaces/RouteTree.md +7 -7
- package/api/@xmachines/play-router/index/interfaces/RouteWatcherHandle.md +3 -3
- package/api/@xmachines/play-router/index/interfaces/RouterBridge.md +3 -3
- package/api/@xmachines/play-router/index/interfaces/RouterBridgeOptions.md +8 -8
- package/api/@xmachines/play-router/index/interfaces/RouterConnection.md +8 -8
- package/api/@xmachines/play-router/index/interfaces/SplitLocation.md +7 -7
- package/api/@xmachines/play-router/index/interfaces/WindowLike.md +3 -3
- package/api/@xmachines/play-router/index/type-aliases/PlayRouterBridgeConstructor.md +1 -1
- package/api/@xmachines/play-router/index/type-aliases/RouteData.md +1 -1
- package/api/@xmachines/play-router/index/type-aliases/RouteDataResolver.md +1 -1
- package/api/@xmachines/play-router/index/type-aliases/RouteMetadata.md +1 -1
- package/api/@xmachines/play-router/index/type-aliases/URLPatternLike.md +3 -3
- package/api/@xmachines/play-router/index/variables/NO_BASE_PATH.md +1 -1
- package/api/@xmachines/play-router/index/variables/ROOT_NODE_ID.md +1 -1
- package/api/@xmachines/play-router/xstate/README.md +5 -2
- package/api/@xmachines/play-router/xstate/functions/createRouteMap.md +2 -2
- package/api/@xmachines/play-router/xstate/functions/extractMachineRoutes.md +5 -5
- package/api/@xmachines/play-router/xstate/functions/getNavigableRoutes.md +1 -1
- package/api/@xmachines/play-router/xstate/functions/getRoutableRoutes.md +1 -1
- package/api/@xmachines/play-router/xstate/functions/getRouteMappings.md +1 -1
- package/api/@xmachines/play-router/xstate/functions/getTransitionReachableRoutes.md +7 -8
- package/api/@xmachines/play-router/xstate/functions/isRouteReachable.md +8 -9
- package/api/@xmachines/play-router/xstate/functions/machineToGraph.md +1 -1
- package/api/@xmachines/play-router/xstate/functions/routeExists.md +1 -1
- package/api/@xmachines/play-router/xstate/interfaces/Graph.md +26 -0
- package/api/@xmachines/play-router/xstate/interfaces/GraphEdge.md +22 -0
- package/api/@xmachines/play-router/xstate/interfaces/GraphNode.md +21 -0
- package/api/@xmachines/play-router/xstate/interfaces/MachineEdgeData.md +6 -6
- package/api/@xmachines/play-router/xstate/interfaces/MachineNodeData.md +7 -7
- package/api/@xmachines/play-router/xstate/type-aliases/MachineGraph.md +4 -6
- package/api/@xmachines/play-solid/README.md +35 -11
- package/api/@xmachines/play-solid/functions/useActor.md +1 -1
- package/api/@xmachines/play-solid/functions/useBoundProp.md +8 -5
- package/api/@xmachines/play-solid/functions/useFieldValidation.md +6 -4
- package/api/@xmachines/play-solid/functions/usePlayView.md +1 -1
- package/api/@xmachines/play-solid/functions/useStateBinding.md +5 -3
- package/api/@xmachines/play-solid/functions/useStateValue.md +5 -3
- 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/RenderErrorInfo.md +16 -0
- package/api/@xmachines/play-solid/interfaces/RendererProps.md +7 -7
- 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/type-aliases/OnRenderError.md +27 -0
- package/api/@xmachines/play-solid/type-aliases/RenderErrorKind.md +21 -0
- package/api/@xmachines/play-solid/variables/ActorContext.md +1 -1
- package/api/@xmachines/play-solid/variables/ActorProvider.md +17 -3
- 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 +24 -10
- package/api/@xmachines/play-solid-router/classes/RouteMap.md +4 -4
- package/api/@xmachines/play-solid-router/classes/SolidRouterBridge.md +7 -7
- package/api/@xmachines/play-solid-router/functions/createPlayRouterProvider.md +1 -1
- package/api/@xmachines/play-solid-router/interfaces/PlayActor.md +6 -6
- package/api/@xmachines/play-solid-router/interfaces/PlayRouteEvent.md +9 -9
- package/api/@xmachines/play-solid-router/interfaces/PlayRouterProviderProps.md +11 -11
- package/api/@xmachines/play-solid-router/interfaces/RoutableActor.md +6 -6
- package/api/@xmachines/play-solid-router/interfaces/RouteMapOptions.md +6 -6
- 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/PlayRouterProviderBaseProps.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 +19 -11
- package/api/@xmachines/play-svelte/functions/defineRegistry.md +3 -4
- 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 +12 -12
- package/api/@xmachines/play-svelte/interfaces/DefineRegistryOptions.md +8 -8
- package/api/@xmachines/play-svelte/interfaces/DefineRegistryResult.md +15 -0
- package/api/@xmachines/play-svelte/interfaces/PlayUIProviderProps.md +14 -14
- package/api/@xmachines/play-svelte/interfaces/RenderErrorInfo.md +16 -0
- 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/type-aliases/OnRenderError.md +27 -0
- package/api/@xmachines/play-svelte/type-aliases/RenderErrorKind.md +21 -0
- package/api/@xmachines/play-svelte-spa-router/README.md +14 -7
- package/api/@xmachines/play-svelte-spa-router/classes/RouteMap.md +4 -4
- package/api/@xmachines/play-svelte-spa-router/classes/SvelteSpaRouterBridge.md +7 -7
- package/api/@xmachines/play-svelte-spa-router/functions/connectRouter.md +1 -1
- package/api/@xmachines/play-svelte-spa-router/interfaces/BasePathOptions.md +5 -5
- package/api/@xmachines/play-svelte-spa-router/interfaces/ConnectRouterOptions.md +10 -10
- package/api/@xmachines/play-svelte-spa-router/interfaces/PlayRouteEvent.md +9 -9
- package/api/@xmachines/play-svelte-spa-router/interfaces/RoutableActor.md +6 -6
- package/api/@xmachines/play-svelte-spa-router/interfaces/RouteMapOptions.md +6 -6
- 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/RouterConnection.md +8 -8
- package/api/@xmachines/play-svelte-spa-router/interfaces/WindowLike.md +3 -3
- package/api/@xmachines/play-sveltekit-router/README.md +67 -14
- package/api/@xmachines/play-sveltekit-router/classes/RouteMap.md +4 -4
- package/api/@xmachines/play-sveltekit-router/classes/SvelteKitRouterBridge.md +29 -19
- package/api/@xmachines/play-sveltekit-router/functions/connectRouter.md +1 -1
- package/api/@xmachines/play-sveltekit-router/interfaces/BasePathOptions.md +5 -5
- package/api/@xmachines/play-sveltekit-router/interfaces/ConnectRouterOptions.md +13 -16
- package/api/@xmachines/play-sveltekit-router/interfaces/LocationLike.md +5 -5
- package/api/@xmachines/play-sveltekit-router/interfaces/PlayRouteEvent.md +9 -9
- package/api/@xmachines/play-sveltekit-router/interfaces/RoutableActor.md +6 -6
- package/api/@xmachines/play-sveltekit-router/interfaces/RouteMapOptions.md +6 -6
- 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/interfaces/RouterConnection.md +8 -8
- package/api/@xmachines/play-sveltekit-router/interfaces/SvelteKitRouterBridgeOptions.md +25 -0
- package/api/@xmachines/play-sveltekit-router/type-aliases/ShallowNavigation.md +21 -0
- package/api/@xmachines/play-tanstack-react-router/README.md +36 -17
- package/api/@xmachines/play-tanstack-react-router/classes/RouteMap.md +4 -4
- package/api/@xmachines/play-tanstack-react-router/classes/TanStackReactRouterBridge.md +7 -7
- package/api/@xmachines/play-tanstack-react-router/functions/createPlayRouterProvider.md +1 -1
- package/api/@xmachines/play-tanstack-react-router/functions/createRouteMapFromTree.md +1 -1
- package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouteEvent.md +9 -9
- package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouterProviderProps.md +11 -11
- package/api/@xmachines/play-tanstack-react-router/interfaces/RoutableActor.md +6 -6
- package/api/@xmachines/play-tanstack-react-router/interfaces/RouteMapOptions.md +6 -6
- package/api/@xmachines/play-tanstack-react-router/interfaces/RouteMapping.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/PlayRouterProviderBaseProps.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 +5 -5
- package/api/@xmachines/play-tanstack-react-router/variables/PlayRouterProvider.md +1 -1
- package/api/@xmachines/play-tanstack-router/README.md +7 -4
- package/api/@xmachines/play-tanstack-router/classes/TanStackRouterBridgeBase.md +7 -7
- package/api/@xmachines/play-tanstack-router/type-aliases/TanStackRouteMapLike.md +3 -3
- package/api/@xmachines/play-tanstack-router/type-aliases/TanStackRouterLike.md +5 -5
- package/api/@xmachines/play-tanstack-solid-router/README.md +50 -17
- package/api/@xmachines/play-tanstack-solid-router/classes/RouteMap.md +4 -4
- package/api/@xmachines/play-tanstack-solid-router/classes/TanStackSolidRouterBridge.md +7 -7
- package/api/@xmachines/play-tanstack-solid-router/functions/createPlayRouterProvider.md +1 -1
- package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayRouteEvent.md +9 -9
- package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayRouterProviderProps.md +11 -11
- package/api/@xmachines/play-tanstack-solid-router/interfaces/RoutableActor.md +6 -6
- package/api/@xmachines/play-tanstack-solid-router/interfaces/RouteMapOptions.md +6 -6
- 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/PlayRouterProviderBaseProps.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 +5 -5
- package/api/@xmachines/play-tanstack-solid-router/variables/PlayRouterProvider.md +1 -1
- package/api/@xmachines/play-url/README.md +1 -1
- package/api/@xmachines/play-url/errors/classes/InvalidBasePathError.md +12 -12
- package/api/@xmachines/play-url/errors/classes/InvalidRoutePatternError.md +12 -12
- package/api/@xmachines/play-url/errors/classes/MissingBasePathParamError.md +13 -13
- package/api/@xmachines/play-url/index/functions/buildPath.md +1 -1
- package/api/@xmachines/play-url/index/functions/cleanFrameworkParams.md +1 -1
- package/api/@xmachines/play-url/index/functions/createLruCache.md +1 -1
- package/api/@xmachines/play-url/index/functions/getCandidates.md +1 -1
- package/api/@xmachines/play-url/index/functions/getCompiledPattern.md +1 -1
- package/api/@xmachines/play-url/index/functions/getIndexKey.md +1 -1
- package/api/@xmachines/play-url/index/functions/holdsUnsubstitutedParam.md +1 -1
- package/api/@xmachines/play-url/index/functions/isDotSegment.md +1 -1
- package/api/@xmachines/play-url/index/functions/joinBasePath.md +1 -1
- package/api/@xmachines/play-url/index/functions/normalizeBasePath.md +1 -1
- package/api/@xmachines/play-url/index/functions/parsePattern.md +1 -1
- package/api/@xmachines/play-url/index/functions/pickOwnParams.md +1 -1
- package/api/@xmachines/play-url/index/functions/resolveBasePath.md +1 -1
- package/api/@xmachines/play-url/index/functions/resolveFrameworkParams.md +1 -1
- package/api/@xmachines/play-url/index/functions/sanitizePathname.md +1 -1
- package/api/@xmachines/play-url/index/functions/splitLocation.md +1 -1
- package/api/@xmachines/play-url/index/functions/stripBasePath.md +1 -1
- package/api/@xmachines/play-url/index/interfaces/BasePathOptions.md +5 -5
- package/api/@xmachines/play-url/index/interfaces/CompileOptions.md +5 -5
- package/api/@xmachines/play-url/index/interfaces/FrameworkParamsSource.md +9 -9
- package/api/@xmachines/play-url/index/interfaces/GroupPart.md +6 -6
- package/api/@xmachines/play-url/index/interfaces/KeyValueCache.md +3 -3
- package/api/@xmachines/play-url/index/interfaces/LiteralPart.md +5 -5
- package/api/@xmachines/play-url/index/interfaces/ParamPart.md +9 -9
- package/api/@xmachines/play-url/index/interfaces/ParseOptions.md +4 -4
- package/api/@xmachines/play-url/index/interfaces/ParsedPattern.md +14 -14
- package/api/@xmachines/play-url/index/interfaces/PatternParam.md +6 -6
- package/api/@xmachines/play-url/index/interfaces/ResolvedBasePath.md +5 -5
- package/api/@xmachines/play-url/index/interfaces/SplitLocation.md +7 -7
- package/api/@xmachines/play-url/index/type-aliases/PathBuildResult.md +1 -1
- package/api/@xmachines/play-url/index/type-aliases/PathParams.md +1 -1
- package/api/@xmachines/play-url/index/type-aliases/PatternModifier.md +1 -1
- package/api/@xmachines/play-url/index/type-aliases/PatternPart.md +1 -1
- package/api/@xmachines/play-url/index/type-aliases/URLPatternCtor.md +1 -1
- package/api/@xmachines/play-url/index/type-aliases/URLPatternLike.md +3 -3
- package/api/@xmachines/play-url/index/variables/NO_BASE_PATH.md +1 -1
- package/api/@xmachines/play-url/index/variables/URLPattern.md +1 -1
- package/api/@xmachines/play-view/README.md +45 -19
- package/api/@xmachines/play-view/errors/README.md +1 -0
- package/api/@xmachines/play-view/errors/classes/InvalidViewOutletError.md +13 -13
- package/api/@xmachines/play-view/errors/classes/ReadOnlyContextError.md +12 -12
- package/api/@xmachines/play-view/errors/classes/ViewElementKeyCollisionError.md +181 -0
- package/api/@xmachines/play-view/index/README.md +10 -4
- package/api/@xmachines/play-view/index/functions/attachRenderErrorHandler.md +10 -9
- package/api/@xmachines/play-view/index/functions/bindStoreHandlers.md +34 -0
- package/api/@xmachines/play-view/index/functions/composePlayState.md +1 -1
- package/api/@xmachines/play-view/index/functions/composeViews.md +8 -2
- package/api/@xmachines/play-view/index/functions/createActorProxy.md +39 -0
- package/api/@xmachines/play-view/index/functions/createRenderErrorBinding.md +35 -0
- package/api/@xmachines/play-view/index/functions/createReportGuard.md +1 -1
- package/api/@xmachines/play-view/index/functions/createViewSession.md +29 -0
- package/api/@xmachines/play-view/index/functions/createViewStoreLifecycle.md +1 -1
- package/api/@xmachines/play-view/index/functions/forwardRenderError.md +45 -0
- package/api/@xmachines/play-view/index/functions/guardContextWrites.md +1 -1
- package/api/@xmachines/play-view/index/functions/refreshContextSubtree.md +1 -1
- package/api/@xmachines/play-view/index/functions/reuseComposedState.md +1 -1
- package/api/@xmachines/play-view/index/functions/toAtomState.md +1 -1
- package/api/@xmachines/play-view/index/functions/typedSpec.md +1 -1
- package/api/@xmachines/play-view/index/interfaces/BaseActorProviderProps.md +8 -8
- package/api/@xmachines/play-view/index/interfaces/BaseViewContextValue.md +7 -7
- package/api/@xmachines/play-view/index/interfaces/ComposedView.md +7 -7
- package/api/@xmachines/play-view/index/interfaces/HandlerFactory.md +19 -0
- package/api/@xmachines/play-view/index/interfaces/PlaySpec.md +8 -8
- package/api/@xmachines/play-view/index/interfaces/ReportGuard.md +5 -5
- package/api/@xmachines/play-view/index/interfaces/ReportGuardMessages.md +5 -5
- package/api/@xmachines/play-view/index/interfaces/ResolveViewStoreOptions.md +4 -4
- package/api/@xmachines/play-view/index/interfaces/ViewMeta.md +7 -7
- package/api/@xmachines/play-view/index/interfaces/ViewOutlet.md +5 -5
- package/api/@xmachines/play-view/index/interfaces/ViewSession.md +155 -0
- package/api/@xmachines/play-view/index/interfaces/ViewSessionOptions.md +12 -0
- package/api/@xmachines/play-view/index/interfaces/ViewSessionSnapshot.md +23 -0
- package/api/@xmachines/play-view/index/interfaces/ViewStoreLifecycle.md +22 -3
- package/api/@xmachines/play-view/index/interfaces/ViewStoreResolution.md +7 -6
- package/api/@xmachines/play-view/index/interfaces/ViewTree.md +6 -6
- package/api/@xmachines/play-view/index/interfaces/ViewTreeChild.md +5 -5
- package/api/@xmachines/play-view/index/interfaces/Viewable.md +4 -4
- package/api/@xmachines/play-view/index/type-aliases/StateUpdater.md +21 -0
- package/api/@xmachines/play-view/index/type-aliases/ViewActor.md +1 -1
- package/api/@xmachines/play-view/index/variables/CONTEXT_STATE_KEY.md +1 -1
- package/api/@xmachines/play-vue/README.md +20 -15
- package/api/@xmachines/play-vue/functions/defineRegistry.md +1 -1
- package/api/@xmachines/play-vue/functions/useActor.md +1 -1
- package/api/@xmachines/play-vue/functions/useBoundProp.md +10 -4
- package/api/@xmachines/play-vue/functions/useFieldValidation.md +12 -5
- package/api/@xmachines/play-vue/functions/usePlayView.md +1 -1
- package/api/@xmachines/play-vue/interfaces/ActorProviderProps.md +8 -8
- package/api/@xmachines/play-vue/interfaces/PlayUIProviderProps.md +11 -11
- package/api/@xmachines/play-vue/interfaces/RenderErrorInfo.md +16 -0
- package/api/@xmachines/play-vue/interfaces/RendererProps.md +7 -7
- package/api/@xmachines/play-vue/interfaces/ViewContextValue.md +7 -7
- 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/type-aliases/OnRenderError.md +27 -0
- package/api/@xmachines/play-vue/type-aliases/RenderErrorKind.md +21 -0
- package/api/@xmachines/play-vue/variables/PlayRenderer.md +1 -1
- package/api/@xmachines/play-vue/variables/Renderer.md +3 -3
- package/api/@xmachines/play-vue-router/README.md +18 -11
- package/api/@xmachines/play-vue-router/errors/classes/VueRouterNavigationError.md +11 -11
- package/api/@xmachines/play-vue-router/errors/classes/VueRouterSendError.md +11 -11
- package/api/@xmachines/play-vue-router/index/classes/RouteMap.md +4 -4
- package/api/@xmachines/play-vue-router/index/classes/VueRouterBridge.md +7 -7
- package/api/@xmachines/play-vue-router/index/interfaces/PlayRouteEvent.md +9 -9
- package/api/@xmachines/play-vue-router/index/interfaces/RoutableActor.md +6 -6
- package/api/@xmachines/play-vue-router/index/interfaces/RouteMapOptions.md +6 -6
- package/api/@xmachines/play-vue-router/index/interfaces/RouteMapping.md +5 -5
- package/api/@xmachines/play-vue-router/index/interfaces/RouterBridge.md +3 -3
- package/api/@xmachines/play-vue-router/index/variables/PlayRouterProvider.md +1 -1
- package/api/@xmachines/play-xstate/README.md +120 -57
- package/api/@xmachines/play-xstate/errors/classes/ActorThrewNonErrorError.md +11 -11
- package/api/@xmachines/play-xstate/errors/classes/InvalidEventError.md +12 -12
- package/api/@xmachines/play-xstate/errors/classes/InvalidMachineError.md +11 -11
- package/api/@xmachines/play-xstate/errors/classes/InvalidRouteHandlerError.md +12 -12
- package/api/@xmachines/play-xstate/errors/classes/InvalidRouteMetadataError.md +12 -12
- package/api/@xmachines/play-xstate/errors/classes/InvalidRouteParamError.md +14 -14
- package/api/@xmachines/play-xstate/errors/classes/MissingRouteParamError.md +13 -13
- package/api/@xmachines/play-xstate/errors/classes/MissingStateIdError.md +15 -15
- package/api/@xmachines/play-xstate/index/README.md +1 -1
- package/api/@xmachines/play-xstate/index/classes/PlayerActor.md +201 -124
- package/api/@xmachines/play-xstate/index/functions/compose.md +4 -4
- package/api/@xmachines/play-xstate/index/functions/definePlayer.md +14 -10
- package/api/@xmachines/play-xstate/index/interfaces/PlayerConfig.md +6 -6
- package/api/@xmachines/play-xstate/index/interfaces/PlayerFactoryResumeOptions.md +4 -4
- package/api/@xmachines/play-xstate/index/interfaces/PlayerOptions.md +9 -9
- package/api/@xmachines/play-xstate/index/type-aliases/Capability.md +1 -1
- package/api/@xmachines/play-xstate/index/type-aliases/PlayerConstructor.md +1 -1
- package/api/@xmachines/play-xstate/index/type-aliases/PlayerFactory.md +1 -1
- package/api/@xmachines/play-xstate/with-routing/functions/buildRouteUrl.md +1 -1
- package/api/@xmachines/play-xstate/with-routing/functions/deriveRoute.md +13 -5
- package/api/@xmachines/play-xstate/with-routing/functions/formatPlayRouteTransitions.md +26 -13
- package/api/@xmachines/play-xstate/with-routing/functions/isAbsoluteRoute.md +1 -1
- package/api/@xmachines/play-xstate/with-routing/functions/withRouting.md +1 -1
- package/api/@xmachines/play-xstate/with-routing/interfaces/RouteContext.md +8 -8
- package/api/@xmachines/play-xstate/with-routing/interfaces/RouteObject.md +7 -7
- package/api/@xmachines/play-xstate/with-routing/type-aliases/RouteData.md +1 -1
- package/api/@xmachines/play-xstate/with-routing/type-aliases/RouteDataResolver.md +1 -1
- package/api/@xmachines/play-xstate/with-routing/type-aliases/RouteMachineConfig.md +4 -4
- package/api/@xmachines/play-xstate/with-routing/type-aliases/RouteMetadata.md +1 -1
- package/api/@xmachines/play-xstate/with-routing/type-aliases/RouteStateNode.md +5 -5
- package/api/@xmachines/play-xstate/with-view/functions/withView.md +1 -1
- package/api/@xmachines/shared/README.md +1 -0
- package/api/@xmachines/shared/vite-aliases/functions/xmAliases.md +1 -1
- package/api/@xmachines/shared/vite-aliases/functions/xmBuildOutput.md +1 -1
- package/api/@xmachines/shared/vite-aliases/functions/xmBuildOutputFile.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/vite-aliases/functions/xmTestTarget.md +1 -1
- package/api/@xmachines/shared/vite-aliases/type-aliases/XmTestTarget.md +1 -1
- 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 +100 -61
- package/contributing/configuration.md +44 -62
- package/contributing/deployment.md +131 -161
- package/contributing/development.md +34 -9
- package/contributing/migrating-to-play-atom.md +23 -5
- package/contributing/testing.md +64 -33
- package/examples/@xmachines/play-dom-demo/README.md +2 -2
- package/examples/@xmachines/play-dom-demo/functions/createAuthActionHandlers.md +11 -11
- package/examples/@xmachines/play-dom-demo/functions/createConfirmDialog.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/Button.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/Field.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/Panel.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-dom-demo/variables/demoComponents.md +17 -17
- package/examples/@xmachines/play-dom-router-demo/README.md +4 -3
- package/examples/@xmachines/play-react-demo/README.md +2 -2
- package/examples/@xmachines/play-react-demo/functions/createAuthActionHandlers.md +11 -11
- 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/Button.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/Field.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/Panel.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-react-demo/variables/demoComponents.md +17 -17
- package/examples/@xmachines/play-react-router-demo/README.md +4 -3
- package/examples/@xmachines/play-solid-demo/README.md +3 -3
- package/examples/@xmachines/play-solid-demo/functions/createAuthActionHandlers.md +11 -11
- 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/Button.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/Field.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/Panel.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-solid-demo/variables/demoComponents.md +17 -17
- package/examples/@xmachines/play-solid-router-demo/README.md +9 -3
- package/examples/@xmachines/play-svelte-demo/README.md +1 -1
- package/examples/@xmachines/play-svelte-demo/functions/createAuthActionHandlers.md +11 -11
- 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-svelte-demo/variables/demoComponents.md +17 -17
- package/examples/@xmachines/play-svelte-spa-router-demo/README.md +1 -1
- package/examples/@xmachines/play-sveltekit-router-demo/README.md +1 -1
- package/examples/@xmachines/play-tanstack-react-router-demo/README.md +3 -2
- package/examples/@xmachines/play-tanstack-solid-router-demo/README.md +9 -8
- package/examples/@xmachines/play-vue-demo/README.md +2 -2
- package/examples/@xmachines/play-vue-demo/functions/createAuthActionHandlers.md +11 -11
- 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/@xmachines/play-vue-demo/variables/demoComponents.md +1 -1
- package/examples/@xmachines/play-vue-router-demo/README.md +3 -3
- package/examples/README.md +1 -1
- package/examples/basic-state-machine.md +19 -23
- package/examples/form-validation.md +60 -61
- package/examples/multi-router-integration.md +268 -147
- package/examples/routing-patterns.md +73 -43
- package/examples/traffic-light.md +24 -22
- package/guides/actor-model.md +38 -21
- package/guides/atoms.md +48 -8
- package/guides/getting-started.md +106 -62
- package/guides/inspector.md +103 -37
- package/guides/routing.md +7 -2
- package/guides/state-machines.md +106 -68
- package/guides/views.md +40 -18
- package/package.json +6 -6
- package/rfc/git.md +13 -5
- package/rfc/play.md +53 -31
- package/rfc/run.md +7 -4
- package/api/@xmachines/play-view/index/functions/createFailureLatch.md +0 -20
- package/api/@xmachines/play-view/index/functions/sameViewInputs.md +0 -25
- package/api/@xmachines/play-view/index/interfaces/FailureLatch.md +0 -60
- package/api/@xmachines/play-view/index/interfaces/ViewInputs.md +0 -19
|
@@ -6,25 +6,25 @@
|
|
|
6
6
|
const demoComponents: object;
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
Defined in: [packages/play-svelte/examples/demo/src/components/demo-components.ts:20](https://gitlab.com/xmachin-es/xmachines-js/-/blob/
|
|
9
|
+
Defined in: [packages/play-svelte/examples/demo/src/components/demo-components.ts:20](https://gitlab.com/xmachin-es/xmachines-js/-/blob/docs-v8.0.0-next.1/packages/play-svelte/examples/demo/src/components/demo-components.ts#L20)
|
|
10
10
|
|
|
11
11
|
demoComponents — the full catalog component map, shared with the router demos.
|
|
12
12
|
|
|
13
13
|
## Type Declaration
|
|
14
14
|
|
|
15
|
-
| Name | Type | Default value | Defined in
|
|
16
|
-
| --------------------------------------------- | --------------------- | ------------- |
|
|
17
|
-
| <a id="property-about"></a> `About` | `LegacyComponentType` | - | [packages/play-svelte/examples/demo/src/components/demo-components.ts:22](https://gitlab.com/xmachin-es/xmachines-js/-/blob/
|
|
18
|
-
| <a id="property-button"></a> `Button` | `LegacyComponentType` | - | [packages/play-svelte/examples/demo/src/components/demo-components.ts:34](https://gitlab.com/xmachin-es/xmachines-js/-/blob/
|
|
19
|
-
| <a id="property-contact"></a> `Contact` | `LegacyComponentType` | - | [packages/play-svelte/examples/demo/src/components/demo-components.ts:23](https://gitlab.com/xmachin-es/xmachines-js/-/blob/
|
|
20
|
-
| <a id="property-dashboard"></a> `Dashboard` | `LegacyComponentType` | - | [packages/play-svelte/examples/demo/src/components/demo-components.ts:25](https://gitlab.com/xmachin-es/xmachines-js/-/blob/
|
|
21
|
-
| <a id="property-field"></a> `Field` | `LegacyComponentType` | - | [packages/play-svelte/examples/demo/src/components/demo-components.ts:33](https://gitlab.com/xmachin-es/xmachines-js/-/blob/
|
|
22
|
-
| <a id="property-home"></a> `Home` | `LegacyComponentType` | - | [packages/play-svelte/examples/demo/src/components/demo-components.ts:21](https://gitlab.com/xmachin-es/xmachines-js/-/blob/
|
|
23
|
-
| <a id="property-login"></a> `Login` | `LegacyComponentType` | - | [packages/play-svelte/examples/demo/src/components/demo-components.ts:24](https://gitlab.com/xmachin-es/xmachines-js/-/blob/
|
|
24
|
-
| <a id="property-navbar"></a> `NavBar` | `LegacyComponentType` | `NavBarView` | [packages/play-svelte/examples/demo/src/components/demo-components.ts:31](https://gitlab.com/xmachin-es/xmachines-js/-/blob/
|
|
25
|
-
| <a id="property-navigation"></a> `Navigation` | `LegacyComponentType` | - | [packages/play-svelte/examples/demo/src/components/demo-components.ts:30](https://gitlab.com/xmachin-es/xmachines-js/-/blob/
|
|
26
|
-
| <a id="property-overview"></a> `Overview` | `LegacyComponentType` | - | [packages/play-svelte/examples/demo/src/components/demo-components.ts:26](https://gitlab.com/xmachin-es/xmachines-js/-/blob/
|
|
27
|
-
| <a id="property-panel"></a> `Panel` | `LegacyComponentType` | - | [packages/play-svelte/examples/demo/src/components/demo-components.ts:32](https://gitlab.com/xmachin-es/xmachines-js/-/blob/
|
|
28
|
-
| <a id="property-profile"></a> `Profile` | `LegacyComponentType` | - | [packages/play-svelte/examples/demo/src/components/demo-components.ts:28](https://gitlab.com/xmachin-es/xmachines-js/-/blob/
|
|
29
|
-
| <a id="property-settings"></a> `Settings` | `LegacyComponentType` | - | [packages/play-svelte/examples/demo/src/components/demo-components.ts:29](https://gitlab.com/xmachin-es/xmachines-js/-/blob/
|
|
30
|
-
| <a id="property-stats"></a> `Stats` | `LegacyComponentType` | - | [packages/play-svelte/examples/demo/src/components/demo-components.ts:27](https://gitlab.com/xmachin-es/xmachines-js/-/blob/
|
|
15
|
+
| Name | Type | Default value | Defined in |
|
|
16
|
+
| --------------------------------------------- | --------------------- | ------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
|
17
|
+
| <a id="property-about"></a> `About` | `LegacyComponentType` | - | [packages/play-svelte/examples/demo/src/components/demo-components.ts:22](https://gitlab.com/xmachin-es/xmachines-js/-/blob/docs-v8.0.0-next.1/packages/play-svelte/examples/demo/src/components/demo-components.ts#L22) |
|
|
18
|
+
| <a id="property-button"></a> `Button` | `LegacyComponentType` | - | [packages/play-svelte/examples/demo/src/components/demo-components.ts:34](https://gitlab.com/xmachin-es/xmachines-js/-/blob/docs-v8.0.0-next.1/packages/play-svelte/examples/demo/src/components/demo-components.ts#L34) |
|
|
19
|
+
| <a id="property-contact"></a> `Contact` | `LegacyComponentType` | - | [packages/play-svelte/examples/demo/src/components/demo-components.ts:23](https://gitlab.com/xmachin-es/xmachines-js/-/blob/docs-v8.0.0-next.1/packages/play-svelte/examples/demo/src/components/demo-components.ts#L23) |
|
|
20
|
+
| <a id="property-dashboard"></a> `Dashboard` | `LegacyComponentType` | - | [packages/play-svelte/examples/demo/src/components/demo-components.ts:25](https://gitlab.com/xmachin-es/xmachines-js/-/blob/docs-v8.0.0-next.1/packages/play-svelte/examples/demo/src/components/demo-components.ts#L25) |
|
|
21
|
+
| <a id="property-field"></a> `Field` | `LegacyComponentType` | - | [packages/play-svelte/examples/demo/src/components/demo-components.ts:33](https://gitlab.com/xmachin-es/xmachines-js/-/blob/docs-v8.0.0-next.1/packages/play-svelte/examples/demo/src/components/demo-components.ts#L33) |
|
|
22
|
+
| <a id="property-home"></a> `Home` | `LegacyComponentType` | - | [packages/play-svelte/examples/demo/src/components/demo-components.ts:21](https://gitlab.com/xmachin-es/xmachines-js/-/blob/docs-v8.0.0-next.1/packages/play-svelte/examples/demo/src/components/demo-components.ts#L21) |
|
|
23
|
+
| <a id="property-login"></a> `Login` | `LegacyComponentType` | - | [packages/play-svelte/examples/demo/src/components/demo-components.ts:24](https://gitlab.com/xmachin-es/xmachines-js/-/blob/docs-v8.0.0-next.1/packages/play-svelte/examples/demo/src/components/demo-components.ts#L24) |
|
|
24
|
+
| <a id="property-navbar"></a> `NavBar` | `LegacyComponentType` | `NavBarView` | [packages/play-svelte/examples/demo/src/components/demo-components.ts:31](https://gitlab.com/xmachin-es/xmachines-js/-/blob/docs-v8.0.0-next.1/packages/play-svelte/examples/demo/src/components/demo-components.ts#L31) |
|
|
25
|
+
| <a id="property-navigation"></a> `Navigation` | `LegacyComponentType` | - | [packages/play-svelte/examples/demo/src/components/demo-components.ts:30](https://gitlab.com/xmachin-es/xmachines-js/-/blob/docs-v8.0.0-next.1/packages/play-svelte/examples/demo/src/components/demo-components.ts#L30) |
|
|
26
|
+
| <a id="property-overview"></a> `Overview` | `LegacyComponentType` | - | [packages/play-svelte/examples/demo/src/components/demo-components.ts:26](https://gitlab.com/xmachin-es/xmachines-js/-/blob/docs-v8.0.0-next.1/packages/play-svelte/examples/demo/src/components/demo-components.ts#L26) |
|
|
27
|
+
| <a id="property-panel"></a> `Panel` | `LegacyComponentType` | - | [packages/play-svelte/examples/demo/src/components/demo-components.ts:32](https://gitlab.com/xmachin-es/xmachines-js/-/blob/docs-v8.0.0-next.1/packages/play-svelte/examples/demo/src/components/demo-components.ts#L32) |
|
|
28
|
+
| <a id="property-profile"></a> `Profile` | `LegacyComponentType` | - | [packages/play-svelte/examples/demo/src/components/demo-components.ts:28](https://gitlab.com/xmachin-es/xmachines-js/-/blob/docs-v8.0.0-next.1/packages/play-svelte/examples/demo/src/components/demo-components.ts#L28) |
|
|
29
|
+
| <a id="property-settings"></a> `Settings` | `LegacyComponentType` | - | [packages/play-svelte/examples/demo/src/components/demo-components.ts:29](https://gitlab.com/xmachin-es/xmachines-js/-/blob/docs-v8.0.0-next.1/packages/play-svelte/examples/demo/src/components/demo-components.ts#L29) |
|
|
30
|
+
| <a id="property-stats"></a> `Stats` | `LegacyComponentType` | - | [packages/play-svelte/examples/demo/src/components/demo-components.ts:27](https://gitlab.com/xmachin-es/xmachines-js/-/blob/docs-v8.0.0-next.1/packages/play-svelte/examples/demo/src/components/demo-components.ts#L27) |
|
|
@@ -37,7 +37,7 @@ Use this order to understand the implementation:
|
|
|
37
37
|
5. `Shell.svelte` renders `<PlayUIProvider>` + `<PlayRenderer />` with the actor and registryResult and provides the shared UI shell (nav, debug panel with the **Show Inspector** button).
|
|
38
38
|
6. Browser tests in `test/browser/` validate startup and auth route transitions.
|
|
39
39
|
|
|
40
|
-
```ts
|
|
40
|
+
```ts fragment
|
|
41
41
|
// src/runtime.ts (shape)
|
|
42
42
|
export const inspector = createDemoInspector();
|
|
43
43
|
const createDemoPlayer = definePlayer({
|
|
@@ -37,7 +37,7 @@ Use this order to understand the implementation:
|
|
|
37
37
|
5. `Shell.svelte` renders `<PlayUIProvider>` + `<PlayRenderer />` with the actor and registryResult and provides the shared UI shell (nav, debug panel with the **Show Inspector** button).
|
|
38
38
|
6. Browser tests in `test/browser/` validate startup and auth route transitions.
|
|
39
39
|
|
|
40
|
-
```ts
|
|
40
|
+
```ts fragment
|
|
41
41
|
// src/runtime.ts (shape)
|
|
42
42
|
export const inspector = createDemoInspector();
|
|
43
43
|
const createDemoPlayer = definePlayer({
|
|
@@ -36,7 +36,7 @@ Use this order to understand the implementation:
|
|
|
36
36
|
5. `Shell` is the shared demo layout component imported from [`@xmachines/play-react-demo`](../play-react-demo/README.md) (defined in `packages/play-react/examples/demo/src/components/Shell.tsx`, a workspace-only package). It renders `PlayUIProvider` + `PlayRenderer`, header/nav, and the debug panel — including the **Show Inspector** button — from actor state.
|
|
37
37
|
6. Tests in `test/` and `test/browser/` validate invariant and runtime behavior.
|
|
38
38
|
|
|
39
|
-
```tsx
|
|
39
|
+
```tsx fragment
|
|
40
40
|
// src/App.tsx (shape)
|
|
41
41
|
import { Shell } from "@xmachines/play-react-demo"; // shared demo shell (workspace-only package)
|
|
42
42
|
import { createPlayer, inspector, routeMap, createRegistryResult } from "./runtime.js";
|
|
@@ -72,12 +72,13 @@ return (
|
|
|
72
72
|
);
|
|
73
73
|
```
|
|
74
74
|
|
|
75
|
-
```tsx
|
|
75
|
+
```tsx fragment
|
|
76
76
|
// src/runtime.ts (shape)
|
|
77
77
|
export const inspector = createDemoInspector();
|
|
78
78
|
export const createPlayer = definePlayer({
|
|
79
79
|
machine: authMachine,
|
|
80
80
|
options: { inspect: inspector.inspect },
|
|
81
|
+
actor: compose(PlayerActor, withRouting, withView),
|
|
81
82
|
});
|
|
82
83
|
export const routeMap = createRouteMap(authMachine);
|
|
83
84
|
|
|
@@ -37,27 +37,33 @@ Use this order to understand the implementation:
|
|
|
37
37
|
5. `Shell` (from [`@xmachines/play-solid-demo`](../play-solid-demo/README.md)) renders actor-projected state (`PlayRenderer`), emits actor events via the `registryResult` actions, and shows the debug panel's **Show Inspector** button.
|
|
38
38
|
6. `test/library-pattern.test.ts` plus `test/browser/` verify invariants and browser routing behavior.
|
|
39
39
|
|
|
40
|
-
```tsx
|
|
40
|
+
```tsx fragment
|
|
41
41
|
// src/main.tsx (shape)
|
|
42
42
|
render(() => <App />, document.getElementById("app")!);
|
|
43
43
|
```
|
|
44
44
|
|
|
45
|
-
```ts
|
|
45
|
+
```ts fragment
|
|
46
46
|
// src/runtime.ts (shape)
|
|
47
47
|
export const inspector = createDemoInspector();
|
|
48
48
|
const createPlayer = definePlayer({
|
|
49
49
|
machine: authMachine,
|
|
50
50
|
options: { inspect: inspector.inspect },
|
|
51
|
+
actor: compose(PlayerActor, withRouting, withView),
|
|
51
52
|
});
|
|
52
53
|
export const actor = createPlayer();
|
|
53
54
|
actor.start();
|
|
54
55
|
|
|
56
|
+
export const registryResult = defineRegistry(authCatalog, {
|
|
57
|
+
components: demoComponents,
|
|
58
|
+
actions: createAuthActionHandlers(actor), // login/logout/route + task events + form actions
|
|
59
|
+
});
|
|
60
|
+
|
|
55
61
|
export const routeMap = createRouteMap(authMachine);
|
|
56
62
|
const routeTree = extractMachineRoutes(authMachine);
|
|
57
63
|
export const routes = getRoutableRoutes(routeTree);
|
|
58
64
|
```
|
|
59
65
|
|
|
60
|
-
```tsx
|
|
66
|
+
```tsx fragment
|
|
61
67
|
// src/App.tsx (shape)
|
|
62
68
|
import { Shell } from "@xmachines/play-solid-demo"; // shared demo shell (workspace-only package)
|
|
63
69
|
import { actor, inspector, registryResult, routeMap, routes } from "./runtime.js";
|
|
@@ -80,11 +86,6 @@ return (
|
|
|
80
86
|
);
|
|
81
87
|
```
|
|
82
88
|
|
|
83
|
-
```ts
|
|
84
|
-
// src/runtime.ts — actor events wired via the shared handler factory
|
|
85
|
-
actions: createAuthActionHandlers(actor), // login/logout/route + task events + form actions
|
|
86
|
-
```
|
|
87
|
-
|
|
88
89
|
## Key Files
|
|
89
90
|
|
|
90
91
|
- `src/runtime.ts` - actor lifecycle, registry, route map, and routable routes setup
|
|
@@ -44,7 +44,7 @@ Use this order to understand the implementation:
|
|
|
44
44
|
7. HMR cleanup calls `actor.stop()` via `import.meta.hot.dispose`.
|
|
45
45
|
8. Browser tests in `test/browser/` validate startup and interaction behavior.
|
|
46
46
|
|
|
47
|
-
```ts
|
|
47
|
+
```ts fragment
|
|
48
48
|
// src/main.ts
|
|
49
49
|
const inspector = createDemoInspector();
|
|
50
50
|
const createPlayer = definePlayer({
|
|
@@ -52,7 +52,7 @@ const createPlayer = definePlayer({
|
|
|
52
52
|
options: { inspect: inspector.inspect },
|
|
53
53
|
actor: compose(PlayerActor, withRouting, withView),
|
|
54
54
|
});
|
|
55
|
-
const actor = createPlayer()
|
|
55
|
+
const actor = createPlayer();
|
|
56
56
|
actor.start();
|
|
57
57
|
|
|
58
58
|
const app = createApp(App);
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
function createAuthActionHandlers(actor): object;
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
Defined in: [packages/play-actor/examples/shared/src/actions.ts:48](https://gitlab.com/xmachin-es/xmachines-js/-/blob/
|
|
9
|
+
Defined in: [packages/play-actor/examples/shared/src/actions.ts:48](https://gitlab.com/xmachin-es/xmachines-js/-/blob/docs-v8.0.0-next.1/packages/play-actor/examples/shared/src/actions.ts#L48)
|
|
10
10
|
|
|
11
11
|
Build the demo action handler map for one actor.
|
|
12
12
|
|
|
@@ -23,13 +23,13 @@ framework's `defineRegistry` accepts; spread the result into its `actions`.
|
|
|
23
23
|
|
|
24
24
|
`object`
|
|
25
25
|
|
|
26
|
-
| Name | Type | Defined in
|
|
27
|
-
| ---------------- | ------------------------------------------------------- |
|
|
28
|
-
| `addTask()` | (`params?`) => `Promise`\<`void`\> | [packages/play-actor/examples/shared/src/actions.ts:65](https://gitlab.com/xmachin-es/xmachines-js/-/blob/
|
|
29
|
-
| `completeTask()` | (`params`, `_setState`, `state`) => `Promise`\<`void`\> | [packages/play-actor/examples/shared/src/actions.ts:72](https://gitlab.com/xmachin-es/xmachines-js/-/blob/
|
|
30
|
-
| `login()` | (`params?`) => `Promise`\<`void`\> | [packages/play-actor/examples/shared/src/actions.ts:50](https://gitlab.com/xmachin-es/xmachines-js/-/blob/
|
|
31
|
-
| `logout()` | () => `Promise`\<`void`\> | [packages/play-actor/examples/shared/src/actions.ts:54](https://gitlab.com/xmachin-es/xmachines-js/-/blob/
|
|
32
|
-
| `removeTask()` | (`params`, `_setState`, `state`) => `Promise`\<`void`\> | [packages/play-actor/examples/shared/src/actions.ts:81](https://gitlab.com/xmachin-es/xmachines-js/-/blob/
|
|
33
|
-
| `resetForm()` | (`params`, `setState`) => `Promise`\<`void`\> | [packages/play-actor/examples/shared/src/actions.ts:99](https://gitlab.com/xmachin-es/xmachines-js/-/blob/
|
|
34
|
-
| `route()` | (`params?`) => `Promise`\<`void`\> | [packages/play-actor/examples/shared/src/actions.ts:55](https://gitlab.com/xmachin-es/xmachines-js/-/blob/
|
|
35
|
-
| `submitForm()` | (`params?`) => `Promise`\<`void`\> | [packages/play-actor/examples/shared/src/actions.ts:92](https://gitlab.com/xmachin-es/xmachines-js/-/blob/
|
|
26
|
+
| Name | Type | Defined in |
|
|
27
|
+
| ---------------- | ------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
|
28
|
+
| `addTask()` | (`params?`) => `Promise`\<`void`\> | [packages/play-actor/examples/shared/src/actions.ts:65](https://gitlab.com/xmachin-es/xmachines-js/-/blob/docs-v8.0.0-next.1/packages/play-actor/examples/shared/src/actions.ts#L65) |
|
|
29
|
+
| `completeTask()` | (`params`, `_setState`, `state`) => `Promise`\<`void`\> | [packages/play-actor/examples/shared/src/actions.ts:72](https://gitlab.com/xmachin-es/xmachines-js/-/blob/docs-v8.0.0-next.1/packages/play-actor/examples/shared/src/actions.ts#L72) |
|
|
30
|
+
| `login()` | (`params?`) => `Promise`\<`void`\> | [packages/play-actor/examples/shared/src/actions.ts:50](https://gitlab.com/xmachin-es/xmachines-js/-/blob/docs-v8.0.0-next.1/packages/play-actor/examples/shared/src/actions.ts#L50) |
|
|
31
|
+
| `logout()` | () => `Promise`\<`void`\> | [packages/play-actor/examples/shared/src/actions.ts:54](https://gitlab.com/xmachin-es/xmachines-js/-/blob/docs-v8.0.0-next.1/packages/play-actor/examples/shared/src/actions.ts#L54) |
|
|
32
|
+
| `removeTask()` | (`params`, `_setState`, `state`) => `Promise`\<`void`\> | [packages/play-actor/examples/shared/src/actions.ts:81](https://gitlab.com/xmachin-es/xmachines-js/-/blob/docs-v8.0.0-next.1/packages/play-actor/examples/shared/src/actions.ts#L81) |
|
|
33
|
+
| `resetForm()` | (`params`, `setState`) => `Promise`\<`void`\> | [packages/play-actor/examples/shared/src/actions.ts:99](https://gitlab.com/xmachin-es/xmachines-js/-/blob/docs-v8.0.0-next.1/packages/play-actor/examples/shared/src/actions.ts#L99) |
|
|
34
|
+
| `route()` | (`params?`) => `Promise`\<`void`\> | [packages/play-actor/examples/shared/src/actions.ts:55](https://gitlab.com/xmachin-es/xmachines-js/-/blob/docs-v8.0.0-next.1/packages/play-actor/examples/shared/src/actions.ts#L55) |
|
|
35
|
+
| `submitForm()` | (`params?`) => `Promise`\<`void`\> | [packages/play-actor/examples/shared/src/actions.ts:92](https://gitlab.com/xmachin-es/xmachines-js/-/blob/docs-v8.0.0-next.1/packages/play-actor/examples/shared/src/actions.ts#L92) |
|
|
@@ -6,4 +6,4 @@
|
|
|
6
6
|
type AuthCatalog = typeof authCatalog;
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
Defined in: [packages/play-vue/examples/demo/src/catalog.ts:6](https://gitlab.com/xmachin-es/xmachines-js/-/blob/
|
|
9
|
+
Defined in: [packages/play-vue/examples/demo/src/catalog.ts:6](https://gitlab.com/xmachin-es/xmachines-js/-/blob/docs-v8.0.0-next.1/packages/play-vue/examples/demo/src/catalog.ts#L6)
|
|
@@ -6,4 +6,4 @@
|
|
|
6
6
|
const App: DefineComponent<{}, {}, unknown>;
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
Defined in: [packages/play-vue/examples/demo/src/env.d.ts:5](https://gitlab.com/xmachin-es/xmachines-js/-/blob/
|
|
9
|
+
Defined in: [packages/play-vue/examples/demo/src/env.d.ts:5](https://gitlab.com/xmachin-es/xmachines-js/-/blob/docs-v8.0.0-next.1/packages/play-vue/examples/demo/src/env.d.ts#L5)
|
|
@@ -194,4 +194,4 @@ const authCatalog: Catalog<{
|
|
|
194
194
|
}>;
|
|
195
195
|
```
|
|
196
196
|
|
|
197
|
-
Defined in: [packages/play-vue/examples/demo/src/catalog.ts:5](https://gitlab.com/xmachin-es/xmachines-js/-/blob/
|
|
197
|
+
Defined in: [packages/play-vue/examples/demo/src/catalog.ts:5](https://gitlab.com/xmachin-es/xmachines-js/-/blob/docs-v8.0.0-next.1/packages/play-vue/examples/demo/src/catalog.ts#L5)
|
|
@@ -6,6 +6,6 @@
|
|
|
6
6
|
const demoComponents: ComponentsMap<typeof authCatalog>;
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
Defined in: [packages/play-vue/examples/demo/src/components/demo-components.ts:22](https://gitlab.com/xmachin-es/xmachines-js/-/blob/
|
|
9
|
+
Defined in: [packages/play-vue/examples/demo/src/components/demo-components.ts:22](https://gitlab.com/xmachin-es/xmachines-js/-/blob/docs-v8.0.0-next.1/packages/play-vue/examples/demo/src/components/demo-components.ts#L22)
|
|
10
10
|
|
|
11
11
|
demoComponents — the full catalog component map, shared with the router demos.
|
|
@@ -38,14 +38,14 @@ Use this order to understand how the demo is wired:
|
|
|
38
38
|
6. `PlayRouterProvider` waits for `router.isReady()` so direct URL loads are handled correctly.
|
|
39
39
|
7. Browser tests in `test/browser/` validate startup and auth route transitions.
|
|
40
40
|
|
|
41
|
-
```ts
|
|
41
|
+
```ts fragment
|
|
42
42
|
// src/main.ts (shape)
|
|
43
43
|
const app = createApp(App);
|
|
44
44
|
app.use(router);
|
|
45
45
|
app.mount("#app");
|
|
46
46
|
```
|
|
47
47
|
|
|
48
|
-
```ts
|
|
48
|
+
```ts fragment
|
|
49
49
|
// src/router.ts (shape)
|
|
50
50
|
export const routes = [{ path: "/:pathMatch(.*)*", name: "xmachines-play", component: RouteHost }];
|
|
51
51
|
```
|
|
@@ -69,7 +69,7 @@ const renderShell = (currentActor, currentRouter) =>
|
|
|
69
69
|
</template>
|
|
70
70
|
```
|
|
71
71
|
|
|
72
|
-
```ts
|
|
72
|
+
```ts fragment
|
|
73
73
|
// src/runtime.ts (shape)
|
|
74
74
|
export const actor = createPlayer();
|
|
75
75
|
actor.start();
|
package/examples/README.md
CHANGED
|
@@ -10,7 +10,7 @@ Start with the fundamental machine + actor pattern:
|
|
|
10
10
|
|
|
11
11
|
- **[Basic State Machine](basic-state-machine.md)** — `setup().createMachine()` + `definePlayer()` + atoms
|
|
12
12
|
- **[Traffic Light](traffic-light.md)** — Multi-state machine with `meta.route` and `formatPlayRouteTransitions`
|
|
13
|
-
- **[Form Validation](form-validation.md)** — Typed context
|
|
13
|
+
- **[Form Validation](form-validation.md)** — Typed context patches, guards in transition functions, and `$bindState`
|
|
14
14
|
|
|
15
15
|
### Level 2: Routing Patterns
|
|
16
16
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Basic State Machine
|
|
2
2
|
|
|
3
|
-
Learn how to define a simple toggle machine using the current XState
|
|
3
|
+
Learn how to define a simple toggle machine using the current XState v6 + XMachines `setup().createMachine()` + `definePlayer()` pattern.
|
|
4
4
|
|
|
5
5
|
## Use Case
|
|
6
6
|
|
|
@@ -9,15 +9,15 @@ This example demonstrates a toggle switch — the foundation for understanding s
|
|
|
9
9
|
## Complete Code
|
|
10
10
|
|
|
11
11
|
```typescript
|
|
12
|
-
import { setup } from "xstate";
|
|
12
|
+
import { setup, types } from "xstate";
|
|
13
13
|
import { definePlayer } from "@xmachines/play-xstate";
|
|
14
14
|
|
|
15
|
-
// 1. Declare
|
|
15
|
+
// 1. Declare the schemas of the context, the events, and the input via setup()
|
|
16
16
|
const toggleSetup = setup({
|
|
17
|
-
|
|
18
|
-
context: {
|
|
19
|
-
events: {
|
|
20
|
-
input: {
|
|
17
|
+
schemas: {
|
|
18
|
+
context: types<{ toggleCount: number }>(),
|
|
19
|
+
events: { toggle: types<void>() },
|
|
20
|
+
input: types<{ toggleCount?: number } | undefined>(),
|
|
21
21
|
},
|
|
22
22
|
});
|
|
23
23
|
|
|
@@ -31,22 +31,18 @@ const toggleMachine = toggleSetup.createMachine({
|
|
|
31
31
|
states: {
|
|
32
32
|
off: {
|
|
33
33
|
on: {
|
|
34
|
-
toggle: {
|
|
34
|
+
toggle: ({ context }) => ({
|
|
35
35
|
target: "on",
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
}),
|
|
39
|
-
},
|
|
36
|
+
context: { toggleCount: context.toggleCount + 1 },
|
|
37
|
+
}),
|
|
40
38
|
},
|
|
41
39
|
},
|
|
42
40
|
on: {
|
|
43
41
|
on: {
|
|
44
|
-
toggle: {
|
|
42
|
+
toggle: ({ context }) => ({
|
|
45
43
|
target: "off",
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
}),
|
|
49
|
-
},
|
|
44
|
+
context: { toggleCount: context.toggleCount + 1 },
|
|
45
|
+
}),
|
|
50
46
|
},
|
|
51
47
|
},
|
|
52
48
|
},
|
|
@@ -81,11 +77,11 @@ actor.stop();
|
|
|
81
77
|
|
|
82
78
|
## Code Explanation
|
|
83
79
|
|
|
84
|
-
1. **`setup({
|
|
80
|
+
1. **`setup({ schemas })`** — Declares the schemas of `context`, `events`, and `input` before the machine is created. `types<T>()` gives a schema that carries the type alone, with no validation at run time. `events` is a map from the type of each event to its payload, and `types<void>()` declares an event without a payload. This is the XState v6 typed entry point. Never pass type parameters directly to `createMachine`.
|
|
85
81
|
|
|
86
|
-
2. **`toggleSetup.createMachine(...)`** — Creates the state machine.
|
|
82
|
+
2. **`toggleSetup.createMachine(...)`** — Creates the state machine. The scoped `toggleSetup.createMachine` checks each transition function against the declared schemas.
|
|
87
83
|
|
|
88
|
-
3.
|
|
84
|
+
3. **A transition function** — Each transition is a function of `{ context, event }`. It returns the `target` and a `context` patch, which XState merges into the context at the top level. The context of the declared type gives the function full inference, with no type assertions.
|
|
89
85
|
|
|
90
86
|
4. **`definePlayer({ machine })`** — Wraps the machine in a factory. Calling `createPlayer()` returns a `PlayerActor` — XMachines' actor type that extends XState's actor with atom reactivity and Play Architecture hooks.
|
|
91
87
|
|
|
@@ -99,14 +95,14 @@ actor.stop();
|
|
|
99
95
|
|
|
100
96
|
## Key Concepts
|
|
101
97
|
|
|
102
|
-
- **`setup({
|
|
98
|
+
- **`setup({ schemas })`**: The XState v6 typed entry point. Declares the context, the event map, and the input before machine creation.
|
|
103
99
|
- **`definePlayer({ machine })`**: Creates a factory function that returns `PlayerActor` instances.
|
|
104
100
|
- **`actor.state`**: An `Atom<Snapshot>` — an atom-based reactive handle on the machine snapshot.
|
|
105
101
|
- **`actor.getSnapshot()`**: Synchronous snapshot access — use for one-time reads and TypeScript-typed context inspection.
|
|
106
|
-
- **
|
|
102
|
+
- **Context patches**: A transition function returns `{ context: { ... } }` to change the context. XState 6 has no `assign` action.
|
|
107
103
|
|
|
108
104
|
## Next Steps
|
|
109
105
|
|
|
110
106
|
- **[Traffic Light Example](traffic-light.md)** — Multi-state machine with `meta.route` and `formatPlayRouteTransitions`
|
|
111
|
-
- **[Form Validation Example](form-validation.md)** — Typed context
|
|
107
|
+
- **[Form Validation Example](form-validation.md)** — Typed context patches and guards in transition functions
|
|
112
108
|
- **[Routing Patterns](routing-patterns.md)** — Adding `meta.route` to states and using `play.route` events
|
|
@@ -1,22 +1,25 @@
|
|
|
1
1
|
# Form Validation with Typed Context
|
|
2
2
|
|
|
3
|
-
Managing login form state using `setup({
|
|
3
|
+
Managing login form state using `setup({ schemas })`, transition functions with context patches and guards, and `meta.view` with `$bindState`.
|
|
4
4
|
|
|
5
5
|
## Use Case
|
|
6
6
|
|
|
7
7
|
This example mirrors the `authMachine` login pattern: a form state with a local state store (`$bindState` two-way binding), a guard on the submit action, and a `meta.view` spec describing the component tree. It covers:
|
|
8
8
|
|
|
9
|
-
- Typed context
|
|
10
|
-
- Guards as
|
|
9
|
+
- Typed context patches, returned by transition functions
|
|
10
|
+
- Guards as conditions inside the transition functions
|
|
11
11
|
- `meta.view` spec with `$bindState` for two-way form binding
|
|
12
12
|
- Sending typed domain events from the view layer
|
|
13
13
|
|
|
14
14
|
## Complete Code
|
|
15
15
|
|
|
16
16
|
```typescript
|
|
17
|
-
import { setup } from "xstate";
|
|
18
|
-
import { definePlayer } from "@xmachines/play-xstate";
|
|
17
|
+
import { setup, types } from "xstate";
|
|
18
|
+
import { compose, definePlayer, PlayerActor } from "@xmachines/play-xstate";
|
|
19
19
|
import { formatPlayRouteTransitions } from "@xmachines/play-xstate/routing";
|
|
20
|
+
import { withView } from "@xmachines/play-xstate/view";
|
|
21
|
+
import type { PlayRouteEvent, RouteMetadata } from "@xmachines/play-router";
|
|
22
|
+
import type { ViewMeta } from "@xmachines/play-view";
|
|
20
23
|
|
|
21
24
|
// Context shape
|
|
22
25
|
interface LoginContext {
|
|
@@ -27,30 +30,25 @@ interface LoginContext {
|
|
|
27
30
|
query: Record<string, string>;
|
|
28
31
|
}
|
|
29
32
|
|
|
30
|
-
//
|
|
31
|
-
type
|
|
32
|
-
| {
|
|
33
|
-
type: "play.route";
|
|
34
|
-
to: string;
|
|
35
|
-
params?: Record<string, string>;
|
|
36
|
-
query?: Record<string, string>;
|
|
37
|
-
}
|
|
38
|
-
| { type: "auth.login"; username: string }
|
|
39
|
-
| { type: "auth.logout" };
|
|
40
|
-
|
|
41
|
-
// 1. Typed setup — always use setup() before createMachine()
|
|
33
|
+
// 1. Typed setup — always use setup() before createMachine(). The events are a map from
|
|
34
|
+
// the type of each event (lowercase dot-separated names) to its payload.
|
|
42
35
|
const loginSetup = setup({
|
|
43
|
-
|
|
44
|
-
context:
|
|
45
|
-
events: {
|
|
46
|
-
|
|
36
|
+
schemas: {
|
|
37
|
+
context: types<LoginContext>(),
|
|
38
|
+
events: {
|
|
39
|
+
"play.route": types<Omit<PlayRouteEvent, "type">>(),
|
|
40
|
+
"auth.login": types<{ username: string }>(),
|
|
41
|
+
"auth.logout": types<void>(),
|
|
42
|
+
},
|
|
43
|
+
input: types<Partial<LoginContext> | undefined>(),
|
|
44
|
+
meta: types<{ route?: RouteMetadata; view?: ViewMeta }>(),
|
|
47
45
|
},
|
|
48
46
|
});
|
|
49
47
|
|
|
50
48
|
// 2. Machine — wraps config in formatPlayRouteTransitions for play.route support
|
|
51
49
|
const loginMachine = loginSetup.createMachine(
|
|
52
50
|
formatPlayRouteTransitions({
|
|
53
|
-
id: "
|
|
51
|
+
id: "loginFlow",
|
|
54
52
|
initial: "idle",
|
|
55
53
|
context: ({ input }) => ({
|
|
56
54
|
isAuthenticated: input?.isAuthenticated ?? false,
|
|
@@ -62,24 +60,23 @@ const loginMachine = loginSetup.createMachine(
|
|
|
62
60
|
|
|
63
61
|
// Root-level event handlers — accessible from any state
|
|
64
62
|
on: {
|
|
65
|
-
"auth.login": {
|
|
66
|
-
|
|
67
|
-
//
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
63
|
+
"auth.login": ({ context, event }) => {
|
|
64
|
+
// Guard: allow login only when not already authenticated. A transition
|
|
65
|
+
// function that returns nothing leaves the event unhandled.
|
|
66
|
+
if (context.isAuthenticated) return;
|
|
67
|
+
return {
|
|
68
|
+
target: ".dashboard",
|
|
69
|
+
// The event map types `event.username` for this transition
|
|
70
|
+
context: {
|
|
71
|
+
isAuthenticated: true,
|
|
72
|
+
errorMessage: null,
|
|
73
|
+
username: event.username,
|
|
74
|
+
},
|
|
75
|
+
};
|
|
75
76
|
},
|
|
76
|
-
"auth.logout": {
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
actions: loginSetup.assign({
|
|
80
|
-
isAuthenticated: false,
|
|
81
|
-
username: null,
|
|
82
|
-
}),
|
|
77
|
+
"auth.logout": ({ context }) => {
|
|
78
|
+
if (!context.isAuthenticated) return;
|
|
79
|
+
return { target: ".idle", context: { isAuthenticated: false, username: null } };
|
|
83
80
|
},
|
|
84
81
|
},
|
|
85
82
|
|
|
@@ -146,17 +143,18 @@ const loginMachine = loginSetup.createMachine(
|
|
|
146
143
|
},
|
|
147
144
|
},
|
|
148
145
|
// always-guard: redirect to login if not authenticated
|
|
149
|
-
always: {
|
|
150
|
-
|
|
151
|
-
target: "login",
|
|
152
|
-
},
|
|
146
|
+
always: ({ context }) =>
|
|
147
|
+
context.isAuthenticated ? undefined : { target: "login" },
|
|
153
148
|
},
|
|
154
149
|
},
|
|
155
150
|
}),
|
|
156
151
|
);
|
|
157
152
|
|
|
158
|
-
// 3. Factory and actor
|
|
159
|
-
const createPlayer = definePlayer({
|
|
153
|
+
// 3. Factory and actor — withView derives the meta.view spec that a renderer reads
|
|
154
|
+
const createPlayer = definePlayer({
|
|
155
|
+
machine: loginMachine,
|
|
156
|
+
actor: compose(PlayerActor, withView),
|
|
157
|
+
});
|
|
160
158
|
const actor = createPlayer();
|
|
161
159
|
actor.start();
|
|
162
160
|
|
|
@@ -169,8 +167,9 @@ actor.send({ type: "auth.login", username: "alice" });
|
|
|
169
167
|
console.log(actor.getSnapshot().value); // "dashboard"
|
|
170
168
|
console.log(actor.getSnapshot().context.username); // "alice"
|
|
171
169
|
|
|
172
|
-
// 6. Guard prevents re-login while authenticated
|
|
173
|
-
|
|
170
|
+
// 6. Guard prevents re-login while authenticated. `can` asks without a send: a send of an
|
|
171
|
+
// event that no transition takes makes the development build of XState 6 log a warning.
|
|
172
|
+
console.log(actor.can({ type: "auth.login", username: "bob" })); // false — the guard refuses it
|
|
174
173
|
console.log(actor.getSnapshot().context.username); // still "alice"
|
|
175
174
|
|
|
176
175
|
// 7. Logout
|
|
@@ -190,9 +189,9 @@ actor.stop();
|
|
|
190
189
|
| `{ $bindState: "/username" }` | Two-way | Prop reads and writes the state store key `/username` |
|
|
191
190
|
| `{ $state: "/username" }` | Read-only | Reads the current value from the state store at `/username` |
|
|
192
191
|
|
|
193
|
-
The `state:` key in `meta.view` sets the initial values for the local store. When the user types in the form field, the
|
|
192
|
+
The `state:` key in `meta.view` sets the initial values for the local store. When the user types in the form field, the component writes the value to the store. On submit, action params read the final value via `$state`.
|
|
194
193
|
|
|
195
|
-
```typescript
|
|
194
|
+
```typescript fragment
|
|
196
195
|
// In the machine meta.view — the renderer handles the rest:
|
|
197
196
|
view: {
|
|
198
197
|
root: "root",
|
|
@@ -216,10 +215,10 @@ view: {
|
|
|
216
215
|
|
|
217
216
|
## Key Concepts
|
|
218
217
|
|
|
219
|
-
- **`setup({
|
|
220
|
-
-
|
|
221
|
-
- **Guards
|
|
222
|
-
- **`always` transitions**: Entry guards on states. Used for protected routes — if the
|
|
218
|
+
- **`setup({ schemas })`**: Always declare the context, the event map, the input, and the `meta` of the states before `createMachine`.
|
|
219
|
+
- **Context patches**: A transition function returns `{ context: { ... } }`. XState merges the patch into the context at the top level. XState 6 has no `assign` action.
|
|
220
|
+
- **Guards inside transition functions**: `if (context.isAuthenticated) return;` — a transition function that returns nothing leaves the event unhandled. A guard checks a state invariant ("can I BE in this state?"), not event details.
|
|
221
|
+
- **`always` transitions**: Entry guards on states. Used for protected routes — if the function returns a target, the machine redirects before the state is fully entered.
|
|
223
222
|
- **Lowercase dot-separated event types**: `"auth.login"`, `"auth.logout"`, `"play.route"` — not `SCREAMING_SNAKE_CASE`.
|
|
224
223
|
|
|
225
224
|
## Connecting the Renderer
|
|
@@ -231,6 +230,10 @@ import { createRenderer, schema } from "@xmachines/play-dom";
|
|
|
231
230
|
import { defineCatalog } from "@xmachines/json-render-core";
|
|
232
231
|
import { z } from "zod";
|
|
233
232
|
import type { ComponentFn } from "@xmachines/play-dom";
|
|
233
|
+
import type { ViewActor } from "@xmachines/play-view";
|
|
234
|
+
|
|
235
|
+
// The started actor of the complete code above
|
|
236
|
+
declare const actor: ViewActor & { stop(): void };
|
|
234
237
|
|
|
235
238
|
const catalog = defineCatalog(schema, {
|
|
236
239
|
components: {
|
|
@@ -257,10 +260,9 @@ const Login: ComponentFn<AppCatalog, "Login"> = ({ props, on, ctx }) => {
|
|
|
257
260
|
const section = document.createElement("section");
|
|
258
261
|
const input = document.createElement("input");
|
|
259
262
|
input.value = props.username ?? "";
|
|
260
|
-
//
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
});
|
|
263
|
+
// Write each keystroke to the store path that $bindState binds to the prop
|
|
264
|
+
const username = ctx.bound<string>("username");
|
|
265
|
+
input.addEventListener("input", () => username.set(input.value));
|
|
264
266
|
const button = document.createElement("button");
|
|
265
267
|
button.textContent = "Log In";
|
|
266
268
|
const submit = on("submit"); // bound to the spec's on.submit binding
|
|
@@ -283,9 +285,6 @@ const Dashboard: ComponentFn<AppCatalog, "Dashboard"> = ({ props, on }) => {
|
|
|
283
285
|
// createRenderer builds the factory once — call mount() when the actor is ready
|
|
284
286
|
const mount = createRenderer(catalog, { Home, Login, Dashboard });
|
|
285
287
|
|
|
286
|
-
const actor = createPlayer();
|
|
287
|
-
actor.start();
|
|
288
|
-
|
|
289
288
|
const disconnect = mount(actor, document.getElementById("app")!);
|
|
290
289
|
|
|
291
290
|
// Call teardown() when the app ends before the page does, for example when the component
|
|
@@ -302,7 +301,7 @@ function teardown(): void {
|
|
|
302
301
|
|
|
303
302
|
- `actions` in `defineCatalog` must include every action name referenced in `meta.view` `on:` bindings. TypeScript enforces this via `CatalogHasActions`.
|
|
304
303
|
- `on("submit").emit()` resolves `params` from the current state store at call time — the `$state: "/username"` in the spec is read at that moment, not at render time.
|
|
305
|
-
- `ctx.
|
|
304
|
+
- `ctx.bound("username").set(value)` writes to the store path that `$bindState` binds to the prop. The `$bindState` directive gives the prop its value from the store. The component writes the input back to the store.
|
|
306
305
|
|
|
307
306
|
## Next Steps
|
|
308
307
|
|