@xmachines/docs 6.0.0 → 7.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +9 -8
- 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 +4 -4
- package/api/@xmachines/core/errors/classes/DisposeConflictError.md +4 -4
- 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 +4 -4
- package/api/@xmachines/play/errors/classes/PlayError.md +6 -4
- package/api/@xmachines/play/index/functions/assertNonNullable.md +1 -1
- package/api/@xmachines/play/index/type-aliases/PlayEvent.md +2 -2
- package/api/@xmachines/play-actor/README.md +9 -1
- package/api/@xmachines/play-actor/interfaces/ActorEvent.md +2 -2
- package/api/@xmachines/play-actor/interfaces/PlayActor.md +3 -3
- package/api/@xmachines/play-atom/README.md +17 -5
- package/api/@xmachines/play-atom/functions/watchAtom.md +1 -1
- package/api/@xmachines/play-atom/interfaces/AsyncAtomOptions.md +2 -2
- package/api/@xmachines/play-atom/interfaces/Atom.md +6 -6
- package/api/@xmachines/play-atom/interfaces/AtomObserver.md +4 -4
- package/api/@xmachines/play-atom/interfaces/AtomOptions.md +2 -2
- 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 +138 -60
- 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 +3 -3
- 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 +41 -5
- 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 +3 -3
- package/api/@xmachines/play-dom-router/interfaces/BrowserHistory.md +14 -14
- package/api/@xmachines/play-dom-router/interfaces/BrowserWindow.md +14 -14
- package/api/@xmachines/play-dom-router/interfaces/ConnectRouterOptions.md +8 -8
- package/api/@xmachines/play-dom-router/interfaces/PlayRouteEvent.md +7 -7
- package/api/@xmachines/play-dom-router/interfaces/RoutableActor.md +4 -4
- package/api/@xmachines/play-dom-router/interfaces/RouteLookupContract.md +3 -3
- package/api/@xmachines/play-dom-router/interfaces/RouteMapOptions.md +4 -4
- package/api/@xmachines/play-dom-router/interfaces/RouteMapping.md +3 -3
- package/api/@xmachines/play-dom-router/interfaces/RouterBridge.md +3 -3
- package/api/@xmachines/play-dom-router/interfaces/RouterConnection.md +6 -6
- package/api/@xmachines/play-dom-router/interfaces/VanillaRouter.md +4 -4
- 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 +4 -4
- package/api/@xmachines/play-pattern/interfaces/KeyValueCache.md +3 -3
- package/api/@xmachines/play-pattern/interfaces/LiteralPart.md +3 -3
- package/api/@xmachines/play-pattern/interfaces/ParamPart.md +7 -7
- package/api/@xmachines/play-pattern/interfaces/ParseOptions.md +2 -2
- package/api/@xmachines/play-pattern/interfaces/ParsedPattern.md +12 -12
- package/api/@xmachines/play-pattern/interfaces/PatternParam.md +4 -4
- 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 +57 -18
- 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 +6 -6
- package/api/@xmachines/play-react/interfaces/PlayErrorBoundaryState.md +4 -4
- 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 +5 -5
- 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 +7 -7
- package/api/@xmachines/play-react-router/interfaces/PlayRouterProviderProps.md +9 -9
- package/api/@xmachines/play-react-router/interfaces/RoutableActor.md +4 -4
- package/api/@xmachines/play-react-router/interfaces/RouteMapOptions.md +4 -4
- package/api/@xmachines/play-react-router/interfaces/RouteMapping.md +3 -3
- package/api/@xmachines/play-react-router/interfaces/RouterBridge.md +3 -3
- package/api/@xmachines/play-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 +79 -23
- package/api/@xmachines/play-router/errors/classes/DuplicateBridgeError.md +4 -4
- package/api/@xmachines/play-router/errors/classes/DuplicateRoutePathError.md +5 -5
- package/api/@xmachines/play-router/errors/classes/EmptyRoutePathError.md +5 -5
- package/api/@xmachines/play-router/errors/classes/InvalidBasePathError.md +5 -5
- package/api/@xmachines/play-router/errors/classes/InvalidRoutePatternError.md +5 -5
- package/api/@xmachines/play-router/errors/classes/InvalidStateIdError.md +5 -5
- package/api/@xmachines/play-router/errors/classes/MissingBasePathParamError.md +6 -6
- package/api/@xmachines/play-router/errors/classes/RouterSyncError.md +4 -4
- package/api/@xmachines/play-router/errors/classes/UnknownStateTypeError.md +6 -6
- 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 +3 -3
- 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 +3 -3
- package/api/@xmachines/play-router/index/interfaces/BuildPlayRouteEventOptions.md +4 -4
- package/api/@xmachines/play-router/index/interfaces/CompileOptions.md +3 -3
- package/api/@xmachines/play-router/index/interfaces/FrameworkParamsSource.md +7 -7
- package/api/@xmachines/play-router/index/interfaces/KeyValueCache.md +3 -3
- package/api/@xmachines/play-router/index/interfaces/LocationLike.md +3 -3
- package/api/@xmachines/play-router/index/interfaces/MountableRouterBridge.md +6 -6
- package/api/@xmachines/play-router/index/interfaces/OpenProviderBridgeArgs.md +8 -8
- package/api/@xmachines/play-router/index/interfaces/ParseOptions.md +2 -2
- package/api/@xmachines/play-router/index/interfaces/ParsedPattern.md +12 -12
- package/api/@xmachines/play-router/index/interfaces/PlayRouteEvent.md +7 -7
- package/api/@xmachines/play-router/index/interfaces/PlayRouterProviderBaseProps.md +9 -9
- package/api/@xmachines/play-router/index/interfaces/ResolvedBasePath.md +3 -3
- package/api/@xmachines/play-router/index/interfaces/ResolvedRoutePath.md +3 -3
- package/api/@xmachines/play-router/index/interfaces/Routable.md +3 -3
- package/api/@xmachines/play-router/index/interfaces/RoutableActor.md +4 -4
- package/api/@xmachines/play-router/index/interfaces/RouteInfo.md +8 -8
- package/api/@xmachines/play-router/index/interfaces/RouteMapOptions.md +4 -4
- package/api/@xmachines/play-router/index/interfaces/RouteMapping.md +3 -3
- package/api/@xmachines/play-router/index/interfaces/RouteMatch.md +3 -3
- package/api/@xmachines/play-router/index/interfaces/RouteNode.md +10 -10
- package/api/@xmachines/play-router/index/interfaces/RouteObject.md +12 -15
- package/api/@xmachines/play-router/index/interfaces/RouteTree.md +5 -5
- 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 +6 -6
- package/api/@xmachines/play-router/index/interfaces/RouterConnection.md +6 -6
- package/api/@xmachines/play-router/index/interfaces/SplitLocation.md +5 -5
- 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/functions/createRouteMap.md +1 -1
- package/api/@xmachines/play-router/xstate/functions/extractMachineRoutes.md +1 -1
- 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 +1 -1
- package/api/@xmachines/play-router/xstate/functions/isRouteReachable.md +1 -1
- 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/MachineEdgeData.md +3 -3
- package/api/@xmachines/play-router/xstate/interfaces/MachineNodeData.md +5 -5
- package/api/@xmachines/play-router/xstate/type-aliases/MachineGraph.md +1 -1
- package/api/@xmachines/play-solid/README.md +35 -14
- package/api/@xmachines/play-solid/functions/defineRegistry.md +5 -5
- 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/ComponentContext.md +9 -8
- 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 +5 -5
- 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/variables/schema.md +35 -54
- package/api/@xmachines/play-solid-router/README.md +22 -6
- package/api/@xmachines/play-solid-router/classes/RouteMap.md +4 -4
- package/api/@xmachines/play-solid-router/classes/SolidRouterBridge.md +8 -8
- package/api/@xmachines/play-solid-router/functions/createPlayRouterProvider.md +1 -1
- package/api/@xmachines/play-solid-router/interfaces/PlayActor.md +3 -3
- package/api/@xmachines/play-solid-router/interfaces/PlayRouteEvent.md +7 -7
- package/api/@xmachines/play-solid-router/interfaces/PlayRouterProviderProps.md +9 -9
- package/api/@xmachines/play-solid-router/interfaces/RoutableActor.md +4 -4
- package/api/@xmachines/play-solid-router/interfaces/RouteMapOptions.md +4 -4
- package/api/@xmachines/play-solid-router/interfaces/RouteMapping.md +3 -3
- package/api/@xmachines/play-solid-router/interfaces/RouterBridge.md +3 -3
- package/api/@xmachines/play-solid-router/type-aliases/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 +18 -10
- 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/BaseComponentProps.md +10 -8
- package/api/@xmachines/play-svelte/interfaces/ComponentContext.md +10 -8
- 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 +5 -5
- 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 +9 -5
- 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 +3 -3
- package/api/@xmachines/play-svelte-spa-router/interfaces/ConnectRouterOptions.md +8 -8
- package/api/@xmachines/play-svelte-spa-router/interfaces/PlayRouteEvent.md +7 -7
- package/api/@xmachines/play-svelte-spa-router/interfaces/RoutableActor.md +4 -4
- package/api/@xmachines/play-svelte-spa-router/interfaces/RouteMapOptions.md +4 -4
- package/api/@xmachines/play-svelte-spa-router/interfaces/RouteMapping.md +3 -3
- package/api/@xmachines/play-svelte-spa-router/interfaces/RouterBridge.md +3 -3
- package/api/@xmachines/play-svelte-spa-router/interfaces/RouterConnection.md +6 -6
- package/api/@xmachines/play-svelte-spa-router/interfaces/WindowLike.md +3 -3
- package/api/@xmachines/play-sveltekit-router/README.md +65 -13
- 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 +3 -3
- package/api/@xmachines/play-sveltekit-router/interfaces/ConnectRouterOptions.md +13 -16
- package/api/@xmachines/play-sveltekit-router/interfaces/LocationLike.md +3 -3
- package/api/@xmachines/play-sveltekit-router/interfaces/PlayRouteEvent.md +7 -7
- package/api/@xmachines/play-sveltekit-router/interfaces/RoutableActor.md +4 -4
- package/api/@xmachines/play-sveltekit-router/interfaces/RouteMapOptions.md +4 -4
- package/api/@xmachines/play-sveltekit-router/interfaces/RouteMapping.md +3 -3
- package/api/@xmachines/play-sveltekit-router/interfaces/RouterBridge.md +3 -3
- package/api/@xmachines/play-sveltekit-router/interfaces/RouterConnection.md +6 -6
- 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 +34 -16
- 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 +7 -7
- package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouterProviderProps.md +9 -9
- package/api/@xmachines/play-tanstack-react-router/interfaces/RoutableActor.md +4 -4
- package/api/@xmachines/play-tanstack-react-router/interfaces/RouteMapOptions.md +4 -4
- package/api/@xmachines/play-tanstack-react-router/interfaces/RouteMapping.md +3 -3
- 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 +5 -3
- 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 +45 -11
- 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 +7 -7
- package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayRouterProviderProps.md +9 -9
- package/api/@xmachines/play-tanstack-solid-router/interfaces/RoutableActor.md +4 -4
- package/api/@xmachines/play-tanstack-solid-router/interfaces/RouteMapOptions.md +4 -4
- package/api/@xmachines/play-tanstack-solid-router/interfaces/RouteMapping.md +3 -3
- package/api/@xmachines/play-tanstack-solid-router/interfaces/RouterBridge.md +3 -3
- package/api/@xmachines/play-tanstack-solid-router/type-aliases/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 +5 -5
- package/api/@xmachines/play-url/errors/classes/InvalidRoutePatternError.md +5 -5
- package/api/@xmachines/play-url/errors/classes/MissingBasePathParamError.md +6 -6
- 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 +3 -3
- package/api/@xmachines/play-url/index/interfaces/CompileOptions.md +3 -3
- package/api/@xmachines/play-url/index/interfaces/FrameworkParamsSource.md +7 -7
- package/api/@xmachines/play-url/index/interfaces/GroupPart.md +4 -4
- package/api/@xmachines/play-url/index/interfaces/KeyValueCache.md +3 -3
- package/api/@xmachines/play-url/index/interfaces/LiteralPart.md +3 -3
- package/api/@xmachines/play-url/index/interfaces/ParamPart.md +7 -7
- package/api/@xmachines/play-url/index/interfaces/ParseOptions.md +2 -2
- package/api/@xmachines/play-url/index/interfaces/ParsedPattern.md +12 -12
- package/api/@xmachines/play-url/index/interfaces/PatternParam.md +4 -4
- package/api/@xmachines/play-url/index/interfaces/ResolvedBasePath.md +3 -3
- package/api/@xmachines/play-url/index/interfaces/SplitLocation.md +5 -5
- 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 +92 -35
- package/api/@xmachines/play-view/errors/README.md +2 -0
- package/api/@xmachines/play-view/errors/classes/InvalidViewOutletError.md +204 -0
- package/api/@xmachines/play-view/errors/classes/ReadOnlyContextError.md +5 -5
- package/api/@xmachines/play-view/errors/classes/ViewElementKeyCollisionError.md +181 -0
- package/api/@xmachines/play-view/index/README.md +16 -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 +41 -0
- 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 +11 -11
- package/api/@xmachines/play-view/index/interfaces/BaseActorProviderProps.md +8 -8
- package/api/@xmachines/play-view/index/interfaces/BaseViewContextValue.md +5 -5
- package/api/@xmachines/play-view/index/interfaces/ComposedView.md +16 -0
- package/api/@xmachines/play-view/index/interfaces/HandlerFactory.md +19 -0
- package/api/@xmachines/play-view/index/interfaces/PlaySpec.md +12 -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 +2 -2
- package/api/@xmachines/play-view/index/interfaces/ViewMeta.md +25 -0
- package/api/@xmachines/play-view/index/interfaces/ViewOutlet.md +23 -0
- 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 +15 -0
- package/api/@xmachines/play-view/index/interfaces/ViewTreeChild.md +14 -0
- 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 +21 -18
- 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 +5 -5
- 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 +2 -2
- 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 +4 -4
- package/api/@xmachines/play-vue-router/errors/classes/VueRouterSendError.md +4 -4
- 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 +7 -7
- package/api/@xmachines/play-vue-router/index/interfaces/RoutableActor.md +4 -4
- package/api/@xmachines/play-vue-router/index/interfaces/RouteMapOptions.md +4 -4
- package/api/@xmachines/play-vue-router/index/interfaces/RouteMapping.md +3 -3
- 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 +87 -28
- package/api/@xmachines/play-xstate/errors/classes/ActorThrewNonErrorError.md +4 -4
- package/api/@xmachines/play-xstate/errors/classes/InvalidEventError.md +5 -5
- package/api/@xmachines/play-xstate/errors/classes/InvalidMachineError.md +4 -4
- package/api/@xmachines/play-xstate/errors/classes/InvalidRouteHandlerError.md +5 -5
- package/api/@xmachines/play-xstate/errors/classes/InvalidRouteMetadataError.md +5 -5
- package/api/@xmachines/play-xstate/errors/classes/InvalidRouteParamError.md +7 -7
- package/api/@xmachines/play-xstate/errors/classes/MissingRouteParamError.md +6 -6
- package/api/@xmachines/play-xstate/errors/classes/MissingStateIdError.md +6 -6
- package/api/@xmachines/play-xstate/index/classes/PlayerActor.md +10 -10
- package/api/@xmachines/play-xstate/index/functions/compose.md +4 -4
- package/api/@xmachines/play-xstate/index/functions/definePlayer.md +2 -2
- package/api/@xmachines/play-xstate/index/interfaces/PlayerConfig.md +4 -4
- package/api/@xmachines/play-xstate/index/interfaces/PlayerFactoryResumeOptions.md +2 -2
- package/api/@xmachines/play-xstate/index/interfaces/PlayerOptions.md +7 -7
- 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 +1 -1
- package/api/@xmachines/play-xstate/with-routing/functions/formatPlayRouteTransitions.md +1 -1
- 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 +5 -5
- package/api/@xmachines/play-xstate/with-routing/interfaces/RouteObject.md +12 -15
- 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 +2 -4
- package/api/@xmachines/shared/README.md +1 -0
- package/api/@xmachines/shared/vite-aliases/README.md +7 -0
- package/api/@xmachines/shared/vite-aliases/functions/xmAliases.md +11 -5
- package/api/@xmachines/shared/vite-aliases/functions/xmBuildOutput.md +37 -0
- package/api/@xmachines/shared/vite-aliases/functions/xmBuildOutputFile.md +28 -0
- 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 +2 -2
- package/api/@xmachines/shared/vite-aliases/functions/xmTestTarget.md +26 -0
- package/api/@xmachines/shared/vite-aliases/type-aliases/XmTestTarget.md +15 -0
- package/api/@xmachines/shared/vitest/functions/defineXmBrowserConfig.md +1 -1
- package/api/@xmachines/shared/vitest/functions/defineXmVitestConfig.md +5 -1
- package/api/@xmachines/shared/vitest/interfaces/XmBrowserConfigOptions.md +4 -4
- package/api/llms.txt +8 -4
- package/contributing/architecture.md +96 -51
- package/contributing/configuration.md +55 -14
- package/contributing/deployment.md +3 -3
- package/contributing/development.md +31 -4
- package/contributing/migrating-to-play-atom.md +11 -5
- package/contributing/testing.md +93 -33
- package/examples/@xmachines/play-dom-demo/README.md +2 -2
- package/examples/@xmachines/play-dom-demo/functions/createAuthActionHandlers.md +9 -9
- 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 +15 -15
- 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 +9 -9
- 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 +15 -15
- 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 +9 -9
- 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 +190 -277
- 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 +9 -9
- package/examples/@xmachines/play-svelte-demo/type-aliases/AuthCatalog.md +1 -1
- package/examples/@xmachines/play-svelte-demo/variables/authCatalog.md +190 -277
- package/examples/@xmachines/play-svelte-demo/variables/demoComponents.md +15 -15
- 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 +9 -9
- 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/form-validation.md +17 -13
- package/examples/multi-router-integration.md +269 -148
- package/examples/routing-patterns.md +44 -9
- package/examples/traffic-light.md +7 -3
- package/guides/README.md +5 -4
- package/guides/actor-model.md +41 -23
- package/guides/atoms.md +52 -12
- package/guides/getting-started.md +65 -19
- package/guides/inspector.md +72 -12
- package/guides/routing.md +44 -45
- package/guides/state-machines.md +102 -15
- package/guides/views.md +367 -0
- package/package.json +6 -6
- package/rfc/play.md +55 -21
- 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" });
|
|
@@ -492,7 +613,7 @@ getRouteMappings(tree, { basePath: "/:machineId/play" });
|
|
|
492
613
|
> extraction reads that value.
|
|
493
614
|
>
|
|
494
615
|
> These branches decide the CALLS of a navigation, and never the availability of the API.
|
|
495
|
-
> [`@xmachines/play-
|
|
616
|
+
> [`@xmachines/play-url`](../api/@xmachines/play-url/README.md) carries `urlpattern-polyfill` as an ordinary dependency and it
|
|
496
617
|
> uses the native `URLPattern` when the runtime has one, so you install no polyfill and
|
|
497
618
|
> you load none. A BAD pattern is a question of the route map: `RouteMap` compiles each
|
|
498
619
|
> parameterized route in its constructor and throws an `InvalidRoutePatternError` there.
|