@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
|
@@ -21,151 +21,193 @@ Used by framework adapters that have a React/Solid/Vue provider context. The `Pl
|
|
|
21
21
|
|
|
22
22
|
### React + TanStack Router (`@xmachines/play-tanstack-react-router`)
|
|
23
23
|
|
|
24
|
-
```
|
|
24
|
+
```tsx
|
|
25
25
|
import { useEffect, useMemo } from "react";
|
|
26
26
|
import { createRouter, createRootRoute } from "@tanstack/react-router";
|
|
27
27
|
import { PlayRouterProvider, createRouteMapFromTree } from "@xmachines/play-tanstack-react-router";
|
|
28
28
|
import { extractMachineRoutes } from "@xmachines/play-router/xstate";
|
|
29
29
|
import { definePlayer, compose, PlayerActor } from "@xmachines/play-xstate";
|
|
30
30
|
import { withRouting } from "@xmachines/play-xstate/routing";
|
|
31
|
-
import {
|
|
32
|
-
import {
|
|
31
|
+
import { withView } from "@xmachines/play-xstate/view";
|
|
32
|
+
import { PlayUIProvider, PlayRenderer, type DefineRegistryResult } from "@xmachines/play-react";
|
|
33
|
+
import type { AnyStateMachine } from "xstate";
|
|
33
34
|
|
|
34
|
-
const
|
|
35
|
+
declare const appMachine: AnyStateMachine; // your machine, with routes and views
|
|
36
|
+
// Your catalog, components and actions: defineRegistry(catalog, { components, actions })
|
|
37
|
+
declare const registryResult: DefineRegistryResult;
|
|
35
38
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
+
// The router needs `withRouting`, and the renderer needs `withView`.
|
|
40
|
+
const createPlayer = definePlayer({
|
|
41
|
+
machine: appMachine,
|
|
42
|
+
actor: compose(PlayerActor, withRouting, withView),
|
|
39
43
|
});
|
|
40
44
|
|
|
41
45
|
function createAppRuntime() {
|
|
42
|
-
|
|
43
|
-
|
|
46
|
+
const actor = createPlayer();
|
|
47
|
+
actor.start();
|
|
44
48
|
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
49
|
+
const routeTree = extractMachineRoutes(appMachine);
|
|
50
|
+
const routeMap = createRouteMapFromTree(routeTree);
|
|
51
|
+
const router = createRouter({ routeTree: createRootRoute(), defaultPreload: "intent" });
|
|
48
52
|
|
|
49
|
-
|
|
53
|
+
return { actor, routeMap, router };
|
|
50
54
|
}
|
|
51
55
|
|
|
52
56
|
export function App() {
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
57
|
+
const { actor, routeMap, router } = useMemo(createAppRuntime, []);
|
|
58
|
+
|
|
59
|
+
useEffect(
|
|
60
|
+
() => () => {
|
|
61
|
+
actor.stop();
|
|
62
|
+
},
|
|
63
|
+
[actor],
|
|
64
|
+
);
|
|
65
|
+
|
|
66
|
+
return (
|
|
67
|
+
<PlayRouterProvider
|
|
68
|
+
actor={actor}
|
|
69
|
+
router={router}
|
|
70
|
+
routeMap={routeMap}
|
|
71
|
+
renderer={(currentActor) => (
|
|
72
|
+
<PlayUIProvider actor={currentActor} registryResult={registryResult}>
|
|
73
|
+
<PlayRenderer />
|
|
74
|
+
</PlayUIProvider>
|
|
75
|
+
)}
|
|
76
|
+
/>
|
|
77
|
+
);
|
|
67
78
|
}
|
|
68
79
|
```
|
|
69
80
|
|
|
70
81
|
### React + React Router 7/8 (`@xmachines/play-react-router`)
|
|
71
82
|
|
|
72
|
-
```
|
|
83
|
+
```tsx
|
|
84
|
+
import { useEffect, useMemo } from "react";
|
|
73
85
|
import { createBrowserRouter, RouterProvider } from "react-router";
|
|
74
86
|
import { PlayRouterProvider, createRouteMapFromTree } from "@xmachines/play-react-router";
|
|
75
87
|
import { extractMachineRoutes } from "@xmachines/play-router/xstate";
|
|
76
88
|
import { definePlayer, compose, PlayerActor } from "@xmachines/play-xstate";
|
|
77
89
|
import { withRouting } from "@xmachines/play-xstate/routing";
|
|
90
|
+
import { withView } from "@xmachines/play-xstate/view";
|
|
91
|
+
import { PlayUIProvider, PlayRenderer, type DefineRegistryResult } from "@xmachines/play-react";
|
|
92
|
+
import type { AnyStateMachine } from "xstate";
|
|
78
93
|
|
|
79
|
-
const
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
const actor = createPlayer();
|
|
83
|
-
actor.start();
|
|
84
|
-
|
|
85
|
-
const routeTree = extractMachineRoutes(authMachine);
|
|
86
|
-
const routeMap = createRouteMapFromTree(routeTree);
|
|
94
|
+
declare const appMachine: AnyStateMachine; // your machine, with routes and views
|
|
95
|
+
// Your catalog, components and actions: defineRegistry(catalog, { components, actions })
|
|
96
|
+
declare const registryResult: DefineRegistryResult;
|
|
87
97
|
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
}
|
|
93
|
-
router = createBrowserRouter([{ path: "*", element: <RoutedShell /> }]);
|
|
98
|
+
const createPlayer = definePlayer({
|
|
99
|
+
machine: appMachine,
|
|
100
|
+
actor: compose(PlayerActor, withRouting, withView),
|
|
101
|
+
});
|
|
94
102
|
|
|
95
|
-
|
|
103
|
+
function createAppRuntime() {
|
|
104
|
+
const actor = createPlayer();
|
|
105
|
+
actor.start();
|
|
106
|
+
|
|
107
|
+
const routeTree = extractMachineRoutes(appMachine);
|
|
108
|
+
const routeMap = createRouteMapFromTree(routeTree);
|
|
109
|
+
|
|
110
|
+
// React Router requires route elements upfront — use a catch-all
|
|
111
|
+
function RoutedShell() {
|
|
112
|
+
return (
|
|
113
|
+
<PlayUIProvider actor={actor} registryResult={registryResult}>
|
|
114
|
+
<PlayRenderer />
|
|
115
|
+
</PlayUIProvider>
|
|
116
|
+
);
|
|
117
|
+
}
|
|
118
|
+
const router = createBrowserRouter([{ path: "*", element: <RoutedShell /> }]);
|
|
119
|
+
|
|
120
|
+
return { actor, routeMap, router };
|
|
96
121
|
}
|
|
97
122
|
|
|
98
123
|
export default function App() {
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
124
|
+
const { actor, routeMap, router } = useMemo(createAppRuntime, []);
|
|
125
|
+
|
|
126
|
+
useEffect(
|
|
127
|
+
() => () => {
|
|
128
|
+
actor.stop();
|
|
129
|
+
},
|
|
130
|
+
[actor],
|
|
131
|
+
);
|
|
132
|
+
|
|
133
|
+
return (
|
|
134
|
+
<PlayRouterProvider
|
|
135
|
+
actor={actor}
|
|
136
|
+
router={router}
|
|
137
|
+
routeMap={routeMap}
|
|
138
|
+
renderer={(_, currentRouter) => <RouterProvider router={currentRouter} />}
|
|
139
|
+
/>
|
|
140
|
+
);
|
|
113
141
|
}
|
|
114
142
|
```
|
|
115
143
|
|
|
116
144
|
### SolidJS + SolidJS Router (`@xmachines/play-solid-router`)
|
|
117
145
|
|
|
118
|
-
```
|
|
119
|
-
import { Router, Route } from "@solidjs/router";
|
|
146
|
+
```tsx
|
|
147
|
+
import { Router, Route, useNavigate, useLocation, useParams } from "@solidjs/router";
|
|
120
148
|
import { onCleanup } from "solid-js";
|
|
121
149
|
import { PlayRouterProvider } from "@xmachines/play-solid-router";
|
|
122
150
|
import { createRouteMap } from "@xmachines/play-router/xstate";
|
|
123
151
|
import { extractMachineRoutes, getRoutableRoutes } from "@xmachines/play-router/xstate";
|
|
124
152
|
import { definePlayer, compose, PlayerActor } from "@xmachines/play-xstate";
|
|
125
153
|
import { withRouting } from "@xmachines/play-xstate/routing";
|
|
154
|
+
import { withView } from "@xmachines/play-xstate/view";
|
|
155
|
+
import { PlayUIProvider, PlayRenderer, type DefineRegistryResult } from "@xmachines/play-solid";
|
|
156
|
+
import type { AnyStateMachine } from "xstate";
|
|
157
|
+
|
|
158
|
+
declare const appMachine: AnyStateMachine; // your machine, with routes and views
|
|
159
|
+
// Your catalog, components and actions: defineRegistry(catalog, { components, actions })
|
|
160
|
+
declare const registryResult: DefineRegistryResult;
|
|
126
161
|
|
|
127
|
-
const createPlayer = definePlayer({
|
|
162
|
+
const createPlayer = definePlayer({
|
|
163
|
+
machine: appMachine,
|
|
164
|
+
actor: compose(PlayerActor, withRouting, withView),
|
|
165
|
+
});
|
|
128
166
|
const actor = createPlayer();
|
|
129
167
|
actor.start();
|
|
130
168
|
|
|
131
|
-
const routeTree = extractMachineRoutes(
|
|
169
|
+
const routeTree = extractMachineRoutes(appMachine);
|
|
132
170
|
const routes = getRoutableRoutes(routeTree);
|
|
133
|
-
const routeMap = createRouteMap(
|
|
171
|
+
const routeMap = createRouteMap(appMachine);
|
|
134
172
|
|
|
135
173
|
// Layout rendered inside Router — has access to navigate/location/params hooks
|
|
136
174
|
const Layout = () => {
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
175
|
+
const navigate = useNavigate();
|
|
176
|
+
const location = useLocation();
|
|
177
|
+
const params = useParams();
|
|
178
|
+
|
|
179
|
+
onCleanup(() => {
|
|
180
|
+
actor.stop();
|
|
181
|
+
});
|
|
182
|
+
|
|
183
|
+
return (
|
|
184
|
+
<PlayRouterProvider
|
|
185
|
+
actor={actor}
|
|
186
|
+
routeMap={routeMap}
|
|
187
|
+
router={{ navigate, location, params }}
|
|
188
|
+
renderer={(currentActor) => (
|
|
189
|
+
<PlayUIProvider actor={currentActor} registryResult={registryResult}>
|
|
190
|
+
<PlayRenderer />
|
|
191
|
+
</PlayUIProvider>
|
|
192
|
+
)}
|
|
193
|
+
/>
|
|
194
|
+
);
|
|
153
195
|
};
|
|
154
196
|
|
|
155
197
|
export default function App() {
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
198
|
+
return (
|
|
199
|
+
<Router root={Layout}>
|
|
200
|
+
{routes.map((route) => (
|
|
201
|
+
<Route path={route.fullPath} component={() => null} />
|
|
202
|
+
))}
|
|
203
|
+
</Router>
|
|
204
|
+
);
|
|
163
205
|
}
|
|
164
206
|
```
|
|
165
207
|
|
|
166
208
|
### SolidJS + TanStack Solid Router (`@xmachines/play-tanstack-solid-router`)
|
|
167
209
|
|
|
168
|
-
```
|
|
210
|
+
```tsx
|
|
169
211
|
import { createRouter, createRootRoute, createRoute, RouterProvider } from "@tanstack/solid-router";
|
|
170
212
|
import { onCleanup } from "solid-js";
|
|
171
213
|
import { PlayRouterProvider } from "@xmachines/play-tanstack-solid-router";
|
|
@@ -173,42 +215,60 @@ import { createRouteMap } from "@xmachines/play-router/xstate";
|
|
|
173
215
|
import { extractMachineRoutes, getRoutableRoutes } from "@xmachines/play-router/xstate";
|
|
174
216
|
import { definePlayer, compose, PlayerActor } from "@xmachines/play-xstate";
|
|
175
217
|
import { withRouting } from "@xmachines/play-xstate/routing";
|
|
218
|
+
import { withView } from "@xmachines/play-xstate/view";
|
|
219
|
+
import { PlayUIProvider, PlayRenderer, type DefineRegistryResult } from "@xmachines/play-solid";
|
|
220
|
+
import type { AnyStateMachine } from "xstate";
|
|
221
|
+
|
|
222
|
+
declare const appMachine: AnyStateMachine; // your machine, with routes and views
|
|
223
|
+
// Your catalog, components and actions: defineRegistry(catalog, { components, actions })
|
|
224
|
+
declare const registryResult: DefineRegistryResult;
|
|
176
225
|
|
|
177
|
-
const createPlayer = definePlayer({
|
|
226
|
+
const createPlayer = definePlayer({
|
|
227
|
+
machine: appMachine,
|
|
228
|
+
actor: compose(PlayerActor, withRouting, withView),
|
|
229
|
+
});
|
|
178
230
|
const actor = createPlayer();
|
|
179
231
|
actor.start();
|
|
180
232
|
|
|
181
|
-
const routeTree = extractMachineRoutes(
|
|
233
|
+
const routeTree = extractMachineRoutes(appMachine);
|
|
182
234
|
const routes = getRoutableRoutes(routeTree);
|
|
183
|
-
const routeMap = createRouteMap(
|
|
235
|
+
const routeMap = createRouteMap(appMachine);
|
|
184
236
|
|
|
185
237
|
const rootRoute = createRootRoute({ component: Layout });
|
|
186
238
|
|
|
187
239
|
// Convert XMachines :param to TanStack $param format
|
|
188
240
|
const tanstackRoutes = routes.map((route) => {
|
|
189
|
-
|
|
190
|
-
|
|
241
|
+
const tanstackPath = route.fullPath.replace(/:(\w+)/g, "$$$1");
|
|
242
|
+
return createRoute({
|
|
243
|
+
getParentRoute: () => rootRoute,
|
|
244
|
+
path: tanstackPath,
|
|
245
|
+
component: () => null,
|
|
246
|
+
});
|
|
191
247
|
});
|
|
192
248
|
|
|
193
249
|
const router = createRouter({ routeTree: rootRoute.addChildren(tanstackRoutes) });
|
|
194
250
|
|
|
195
251
|
function Layout() {
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
252
|
+
onCleanup(() => {
|
|
253
|
+
actor.stop();
|
|
254
|
+
});
|
|
255
|
+
|
|
256
|
+
return (
|
|
257
|
+
<PlayRouterProvider
|
|
258
|
+
actor={actor}
|
|
259
|
+
router={router}
|
|
260
|
+
routeMap={routeMap}
|
|
261
|
+
renderer={(currentActor) => (
|
|
262
|
+
<PlayUIProvider actor={currentActor} registryResult={registryResult}>
|
|
263
|
+
<PlayRenderer />
|
|
264
|
+
</PlayUIProvider>
|
|
265
|
+
)}
|
|
266
|
+
/>
|
|
267
|
+
);
|
|
208
268
|
}
|
|
209
269
|
|
|
210
270
|
export default function App() {
|
|
211
|
-
|
|
271
|
+
return <RouterProvider router={router} />;
|
|
212
272
|
}
|
|
213
273
|
```
|
|
214
274
|
|
|
@@ -226,16 +286,28 @@ export default function App() {
|
|
|
226
286
|
</template>
|
|
227
287
|
|
|
228
288
|
<script setup lang="ts">
|
|
229
|
-
import { h
|
|
289
|
+
import { h } from "vue";
|
|
230
290
|
import { createRouter, createWebHistory } from "vue-router";
|
|
231
291
|
import { PlayRouterProvider } from "@xmachines/play-vue-router";
|
|
232
292
|
import { createRouteMap } from "@xmachines/play-router/xstate";
|
|
233
|
-
import {
|
|
234
|
-
import {
|
|
235
|
-
|
|
236
|
-
|
|
293
|
+
import { definePlayer, compose, PlayerActor } from "@xmachines/play-xstate";
|
|
294
|
+
import { withRouting } from "@xmachines/play-xstate/routing";
|
|
295
|
+
import { withView } from "@xmachines/play-xstate/view";
|
|
296
|
+
import { PlayUIProvider, PlayRenderer, type DefineRegistryResult } from "@xmachines/play-vue";
|
|
297
|
+
import type { AnyStateMachine } from "xstate";
|
|
298
|
+
|
|
299
|
+
declare const appMachine: AnyStateMachine; // your machine, with routes and views
|
|
300
|
+
// Your catalog, Vue SFC components and actions: defineRegistry(catalog, { components, actions })
|
|
301
|
+
declare const registryResult: DefineRegistryResult;
|
|
302
|
+
|
|
303
|
+
const createPlayer = definePlayer({
|
|
304
|
+
machine: appMachine,
|
|
305
|
+
actor: compose(PlayerActor, withRouting, withView),
|
|
306
|
+
});
|
|
307
|
+
const actor = createPlayer();
|
|
308
|
+
actor.start();
|
|
237
309
|
|
|
238
|
-
const routeMap = createRouteMap(
|
|
310
|
+
const routeMap = createRouteMap(appMachine);
|
|
239
311
|
|
|
240
312
|
const router = createRouter({
|
|
241
313
|
history: createWebHistory(),
|
|
@@ -248,13 +320,7 @@ export default function App() {
|
|
|
248
320
|
],
|
|
249
321
|
});
|
|
250
322
|
|
|
251
|
-
const
|
|
252
|
-
components: {/* ...your Vue SFC components */},
|
|
253
|
-
actions: { login: async () => {}, logout: async () => {} /* ... */ },
|
|
254
|
-
});
|
|
255
|
-
|
|
256
|
-
const renderShell = (currentActor, currentRouter) =>
|
|
257
|
-
h(Shell, { actor: currentActor, router: currentRouter, registry });
|
|
323
|
+
const renderShell = () => h(PlayUIProvider, { actor, registryResult }, () => h(PlayRenderer));
|
|
258
324
|
</script>
|
|
259
325
|
```
|
|
260
326
|
|
|
@@ -271,20 +337,24 @@ import { extractMachineRoutes } from "@xmachines/play-router/xstate";
|
|
|
271
337
|
import { definePlayer, compose, PlayerActor } from "@xmachines/play-xstate";
|
|
272
338
|
import { withRouting } from "@xmachines/play-xstate/routing";
|
|
273
339
|
import { withView } from "@xmachines/play-xstate/view";
|
|
274
|
-
import { createPlayUI,
|
|
275
|
-
import {
|
|
340
|
+
import { createPlayUI, type DefineRegistryResult } from "@xmachines/play-dom";
|
|
341
|
+
import type { AnyStateMachine } from "xstate";
|
|
342
|
+
|
|
343
|
+
declare const appMachine: AnyStateMachine; // your machine, with routes and views
|
|
344
|
+
// Your catalog, components and actions: defineRegistry(catalog, { components, actions })
|
|
345
|
+
declare const registryResult: DefineRegistryResult;
|
|
276
346
|
|
|
277
347
|
// The router needs `withRouting`, and the renderer below needs `withView`.
|
|
278
348
|
const createPlayer = definePlayer({
|
|
279
|
-
machine:
|
|
349
|
+
machine: appMachine,
|
|
280
350
|
actor: compose(PlayerActor, withRouting, withView),
|
|
281
351
|
});
|
|
282
352
|
const actor = createPlayer();
|
|
283
353
|
actor.start();
|
|
284
354
|
|
|
285
355
|
// Router setup
|
|
286
|
-
const routeTree = extractMachineRoutes(
|
|
287
|
-
const routeMap = createRouteMap(
|
|
356
|
+
const routeTree = extractMachineRoutes(appMachine);
|
|
357
|
+
const routeMap = createRouteMap(appMachine);
|
|
288
358
|
const history = createBrowserHistory({ window });
|
|
289
359
|
const router = createRouter({ routeTree, history });
|
|
290
360
|
|
|
@@ -294,9 +364,6 @@ const router = createRouter({ routeTree, history });
|
|
|
294
364
|
const disconnect = connectRouter({ actor, router, routeMap });
|
|
295
365
|
|
|
296
366
|
// Renderer setup
|
|
297
|
-
const registryResult = defineRegistry(authCatalog, {
|
|
298
|
-
components: {/* ...your DOM components */},
|
|
299
|
-
});
|
|
300
367
|
const mount = createPlayUI(registryResult);
|
|
301
368
|
const disconnectRenderer = mount(actor, document.getElementById("app")!);
|
|
302
369
|
|
|
@@ -316,38 +383,40 @@ function teardown(): void {
|
|
|
316
383
|
|
|
317
384
|
```typescript
|
|
318
385
|
// lib/router.ts
|
|
319
|
-
import {
|
|
320
|
-
import { authCatalog, authMachine } from "@xmachines/play-actor-shared";
|
|
386
|
+
import type { DefineRegistryResult } from "@xmachines/play-svelte";
|
|
321
387
|
import { definePlayer, compose, PlayerActor } from "@xmachines/play-xstate";
|
|
322
388
|
import { withRouting } from "@xmachines/play-xstate/routing";
|
|
323
389
|
import { withView } from "@xmachines/play-xstate/view";
|
|
324
390
|
import { connectRouter } from "@xmachines/play-sveltekit-router";
|
|
325
391
|
import { createRouteMap } from "@xmachines/play-router/xstate";
|
|
326
|
-
|
|
327
|
-
machine: authMachine,
|
|
328
|
-
actor: compose(PlayerActor, withRouting, withView),
|
|
329
|
-
});
|
|
392
|
+
import type { AnyStateMachine } from "xstate";
|
|
330
393
|
|
|
331
|
-
const
|
|
332
|
-
|
|
333
|
-
|
|
394
|
+
declare const appMachine: AnyStateMachine; // your machine, with routes and views
|
|
395
|
+
// Your catalog, Svelte components and actions: defineRegistry(catalog, { components, actions })
|
|
396
|
+
export declare const registryResult: DefineRegistryResult;
|
|
397
|
+
|
|
398
|
+
const createPlayer = definePlayer({
|
|
399
|
+
machine: appMachine,
|
|
400
|
+
actor: compose(PlayerActor, withRouting, withView),
|
|
334
401
|
});
|
|
335
402
|
|
|
336
|
-
export const actor =
|
|
403
|
+
export const actor = createPlayer();
|
|
337
404
|
actor.start();
|
|
338
405
|
|
|
339
|
-
export const routeMap = createRouteMap(
|
|
406
|
+
export const routeMap = createRouteMap(appMachine);
|
|
340
407
|
export const disconnectRouter = connectRouter({ actor, routeMap });
|
|
341
408
|
```
|
|
342
409
|
|
|
343
410
|
```html
|
|
344
411
|
<!-- App.svelte -->
|
|
345
412
|
<script lang="ts">
|
|
346
|
-
import
|
|
347
|
-
import { actor,
|
|
413
|
+
import { PlayUIProvider, PlayRenderer } from "@xmachines/play-svelte";
|
|
414
|
+
import { actor, registryResult } from "./lib/router.js";
|
|
348
415
|
</script>
|
|
349
416
|
|
|
350
|
-
<
|
|
417
|
+
<PlayUIProvider {actor} {registryResult}>
|
|
418
|
+
<PlayRenderer />
|
|
419
|
+
</PlayUIProvider>
|
|
351
420
|
```
|
|
352
421
|
|
|
353
422
|
### Svelte SPA Router (`@xmachines/play-svelte-spa-router`)
|
|
@@ -359,17 +428,19 @@ import { createRouteMap } from "@xmachines/play-router/xstate";
|
|
|
359
428
|
import { definePlayer, compose, PlayerActor } from "@xmachines/play-xstate";
|
|
360
429
|
import { withRouting } from "@xmachines/play-xstate/routing";
|
|
361
430
|
import { withView } from "@xmachines/play-xstate/view";
|
|
362
|
-
import {
|
|
431
|
+
import type { AnyStateMachine } from "xstate";
|
|
432
|
+
|
|
433
|
+
declare const appMachine: AnyStateMachine; // your machine, with routes and views
|
|
363
434
|
|
|
364
|
-
const
|
|
365
|
-
machine:
|
|
435
|
+
const createPlayer = definePlayer({
|
|
436
|
+
machine: appMachine,
|
|
366
437
|
actor: compose(PlayerActor, withRouting, withView),
|
|
367
438
|
});
|
|
368
439
|
|
|
369
|
-
export const actor =
|
|
440
|
+
export const actor = createPlayer();
|
|
370
441
|
actor.start();
|
|
371
442
|
|
|
372
|
-
export const routeMap = createRouteMap(
|
|
443
|
+
export const routeMap = createRouteMap(appMachine);
|
|
373
444
|
export const disconnectRouter = connectRouter({ actor, routeMap });
|
|
374
445
|
```
|
|
375
446
|
|
|
@@ -384,6 +455,26 @@ The shape that motivates this is a URL such as `/:machineId/play/dashboard`. The
|
|
|
384
455
|
`basePath` and `basePathParams` are **reactive props**. They need no stable reference, unlike `actor`, `router`, and `routeMap`, and a change moves the live bridge instead of rebuilding it:
|
|
385
456
|
|
|
386
457
|
```tsx
|
|
458
|
+
import { useLoaderData } from "@tanstack/react-router";
|
|
459
|
+
import {
|
|
460
|
+
PlayRouterProvider,
|
|
461
|
+
type RoutableActor,
|
|
462
|
+
type RouteMap,
|
|
463
|
+
type TanStackRouterInstance,
|
|
464
|
+
} from "@xmachines/play-tanstack-react-router";
|
|
465
|
+
import {
|
|
466
|
+
PlayUIProvider,
|
|
467
|
+
PlayRenderer,
|
|
468
|
+
type PlayUIProviderProps,
|
|
469
|
+
type DefineRegistryResult,
|
|
470
|
+
} from "@xmachines/play-react";
|
|
471
|
+
|
|
472
|
+
// The actor, the router, the route map, and the registry of the TanStack example above
|
|
473
|
+
declare const actor: RoutableActor & PlayUIProviderProps["actor"];
|
|
474
|
+
declare const router: TanStackRouterInstance;
|
|
475
|
+
declare const routeMap: RouteMap;
|
|
476
|
+
declare const registryResult: DefineRegistryResult;
|
|
477
|
+
|
|
387
478
|
function PlayRoute() {
|
|
388
479
|
const { machineId } = useLoaderData({ from: "/$machineId/play/$" });
|
|
389
480
|
|
|
@@ -394,7 +485,11 @@ function PlayRoute() {
|
|
|
394
485
|
routeMap={routeMap} // unchanged — the route map stays machine-relative
|
|
395
486
|
basePath="/:machineId/play"
|
|
396
487
|
basePathParams={{ machineId }} // the loader resolved this already
|
|
397
|
-
renderer={(currentActor) =>
|
|
488
|
+
renderer={(currentActor) => (
|
|
489
|
+
<PlayUIProvider actor={currentActor} registryResult={registryResult}>
|
|
490
|
+
<PlayRenderer />
|
|
491
|
+
</PlayUIProvider>
|
|
492
|
+
)}
|
|
398
493
|
/>
|
|
399
494
|
);
|
|
400
495
|
}
|
|
@@ -409,6 +504,19 @@ function PlayRoute() {
|
|
|
409
504
|
vanilla DOM adapter needs `router`, as it does in the example above:
|
|
410
505
|
|
|
411
506
|
```typescript
|
|
507
|
+
import {
|
|
508
|
+
connectRouter,
|
|
509
|
+
type RoutableActor,
|
|
510
|
+
type RouteMap,
|
|
511
|
+
type VanillaRouter,
|
|
512
|
+
} from "@xmachines/play-dom-router";
|
|
513
|
+
|
|
514
|
+
// The actor, the router, and the route map of the vanilla DOM example above
|
|
515
|
+
declare const actor: RoutableActor;
|
|
516
|
+
declare const router: VanillaRouter;
|
|
517
|
+
declare const routeMap: RouteMap;
|
|
518
|
+
declare const machineId: string; // the host resolved this, for example in a loader
|
|
519
|
+
|
|
412
520
|
const disconnect = connectRouter({
|
|
413
521
|
actor,
|
|
414
522
|
router, // required: @xmachines/play-dom-router reads its history
|
|
@@ -439,6 +547,10 @@ The prefix resolves in advance, because the bridge writes a real browser URL. It
|
|
|
439
547
|
**The machine stays authoritative over its own params (INV-01).** `event.params` carries what the pattern of the machine declares and nothing else. The params of the prefix belong to the host, so they travel in no `play.route` event, and a host param that shares a name with one of the machine can shadow it never. Read the resolved mount from the bridge instead, where it cannot go stale:
|
|
440
548
|
|
|
441
549
|
```typescript
|
|
550
|
+
import type { RouterBridgeBase } from "@xmachines/play-router";
|
|
551
|
+
|
|
552
|
+
declare const bridge: RouterBridgeBase; // the bridge of any adapter
|
|
553
|
+
|
|
442
554
|
bridge.basePath; // "/abc123/play"
|
|
443
555
|
bridge.basePathParams; // { machineId: "abc123" }
|
|
444
556
|
```
|
|
@@ -458,6 +570,11 @@ Several machines can be alive together, each mounted at its own prefix, all shar
|
|
|
458
570
|
`setBasePath()` moves **where** an actor is mounted, and never **which** actor is mounted. The actor, the route map, and its LRU cache all stay:
|
|
459
571
|
|
|
460
572
|
```typescript
|
|
573
|
+
import type { RouterBridgeBase } from "@xmachines/play-router";
|
|
574
|
+
|
|
575
|
+
declare const bridge: RouterBridgeBase; // the bridge of any adapter
|
|
576
|
+
declare const machineId: string;
|
|
577
|
+
|
|
461
578
|
// The host moved this actor from one region of its URL space to another.
|
|
462
579
|
bridge.setBasePath("/:region/:machineId/play", { region: "us", machineId });
|
|
463
580
|
```
|
|
@@ -470,13 +587,17 @@ For a host router that declares real route objects, ask for the list — and dro
|
|
|
470
587
|
|
|
471
588
|
```typescript
|
|
472
589
|
import { extractMachineRoutes, getRouteMappings } from "@xmachines/play-router/xstate";
|
|
590
|
+
import type { AnyStateMachine } from "xstate";
|
|
591
|
+
|
|
592
|
+
declare const appMachine: AnyStateMachine; // your machine, with routes
|
|
593
|
+
declare const machineId: string; // "abc123", which the loader resolved
|
|
473
594
|
|
|
474
|
-
const tree = extractMachineRoutes(
|
|
595
|
+
const tree = extractMachineRoutes(appMachine);
|
|
475
596
|
|
|
476
597
|
// Concrete, for a route that the host adds after a loader resolved the mount
|
|
477
598
|
getRouteMappings(tree, { basePath: "/:machineId/play", basePathParams: { machineId } });
|
|
478
599
|
// [{ stateId: "home", path: "/abc123/play" },
|
|
479
|
-
// { stateId: "profile", path: "/abc123/play/profile/:
|
|
600
|
+
// { stateId: "profile", path: "/abc123/play/profile/:username" }, ...]
|
|
480
601
|
|
|
481
602
|
// The pattern, for a static route declaration of the host
|
|
482
603
|
getRouteMappings(tree, { basePath: "/:machineId/play" });
|