@xmachines/docs 1.0.0-beta.45 → 1.0.0-beta.48
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 +135 -7
- package/api/@xmachines/play/README.md +134 -57
- package/api/@xmachines/play/classes/NonNullableError.md +4 -4
- package/api/@xmachines/play/classes/PlayError.md +4 -4
- package/api/@xmachines/play/functions/assertNonNullable.md +1 -1
- package/api/@xmachines/play/type-aliases/PlayEvent.md +2 -2
- package/api/@xmachines/play-actor/README.md +130 -155
- package/api/@xmachines/play-actor/classes/AbstractActor.md +3 -3
- package/api/@xmachines/play-actor/functions/typedSpec.md +1 -1
- package/api/@xmachines/play-actor/interfaces/BaseActorProviderProps.md +5 -5
- package/api/@xmachines/play-actor/interfaces/BaseViewContextValue.md +5 -5
- package/api/@xmachines/play-actor/interfaces/PlaySpec.md +2 -2
- package/api/@xmachines/play-actor/interfaces/Routable.md +3 -3
- package/api/@xmachines/play-actor/interfaces/Viewable.md +2 -2
- package/api/@xmachines/play-dom/README.md +140 -232
- package/api/@xmachines/play-dom/classes/PlayRenderer.md +4 -4
- package/api/@xmachines/play-dom/functions/connectRenderer.md +1 -1
- package/api/@xmachines/play-dom/functions/createPlayUI.md +1 -1
- package/api/@xmachines/play-dom/functions/createRenderer.md +1 -1
- package/api/@xmachines/play-dom/functions/defineRegistry.md +1 -1
- package/api/@xmachines/play-dom/functions/renderSpec.md +1 -1
- package/api/@xmachines/play-dom/interfaces/ComponentContext.md +7 -7
- package/api/@xmachines/play-dom/interfaces/ConnectRendererOptions.md +13 -13
- package/api/@xmachines/play-dom/interfaces/CreatePlayUIOptions.md +6 -6
- package/api/@xmachines/play-dom/interfaces/DefineRegistryResult.md +4 -4
- package/api/@xmachines/play-dom/interfaces/DomRenderContext.md +12 -12
- package/api/@xmachines/play-dom/interfaces/EventHandle.md +4 -4
- package/api/@xmachines/play-dom/interfaces/MountOptions.md +3 -3
- package/api/@xmachines/play-dom/interfaces/PlayDomOptions.md +5 -5
- package/api/@xmachines/play-dom/interfaces/UIProviderOptions.md +5 -5
- package/api/@xmachines/play-dom/type-aliases/ActionFn.md +1 -1
- package/api/@xmachines/play-dom/type-aliases/Actions.md +1 -1
- package/api/@xmachines/play-dom/type-aliases/BaseComponentProps.md +7 -7
- package/api/@xmachines/play-dom/type-aliases/CatalogHasActions.md +1 -1
- package/api/@xmachines/play-dom/type-aliases/ComponentFn.md +1 -1
- package/api/@xmachines/play-dom/type-aliases/ComponentRegistry.md +1 -1
- package/api/@xmachines/play-dom/type-aliases/DefineRegistryOptions.md +2 -2
- package/api/@xmachines/play-dom/type-aliases/DomComponentRenderer.md +1 -1
- package/api/@xmachines/play-dom/type-aliases/DomRegistry.md +1 -1
- package/api/@xmachines/play-dom/type-aliases/DomSchema.md +1 -1
- package/api/@xmachines/play-dom/type-aliases/MountFn.md +1 -1
- package/api/@xmachines/play-dom/type-aliases/SetState.md +1 -1
- package/api/@xmachines/play-dom/variables/schema.md +1 -1
- package/api/@xmachines/play-dom-router/README.md +160 -158
- package/api/@xmachines/play-dom-router/functions/connectRouter.md +1 -1
- package/api/@xmachines/play-dom-router/functions/createBrowserHistory.md +1 -1
- package/api/@xmachines/play-dom-router/functions/createRouteMap.md +1 -1
- package/api/@xmachines/play-dom-router/functions/createRouter.md +1 -1
- 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 +4 -4
- package/api/@xmachines/play-dom-router/interfaces/PlayRouteEvent.md +6 -6
- package/api/@xmachines/play-dom-router/interfaces/RouteLookupContract.md +3 -3
- package/api/@xmachines/play-dom-router/interfaces/RouteMap.md +3 -3
- package/api/@xmachines/play-dom-router/interfaces/RouteMapOptions.md +2 -2
- 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/VanillaRouter.md +4 -4
- package/api/@xmachines/play-dom-router/type-aliases/RoutableActor.md +1 -1
- package/api/@xmachines/play-react/README.md +109 -320
- package/api/@xmachines/play-react/classes/PlayErrorBoundary.md +5 -5
- package/api/@xmachines/play-react/functions/useActor.md +1 -1
- package/api/@xmachines/play-react/functions/usePlayView.md +1 -1
- package/api/@xmachines/play-react/functions/useSignalEffect.md +1 -1
- package/api/@xmachines/play-react/interfaces/ActorProviderProps.md +8 -8
- package/api/@xmachines/play-react/interfaces/PlayErrorBoundaryProps.md +4 -4
- package/api/@xmachines/play-react/interfaces/PlayErrorBoundaryState.md +3 -3
- package/api/@xmachines/play-react/interfaces/PlayUIProviderProps.md +8 -8
- package/api/@xmachines/play-react/interfaces/ViewContextValue.md +5 -5
- package/api/@xmachines/play-react/type-aliases/PlayActor.md +1 -1
- package/api/@xmachines/play-react/variables/ActorProvider.md +1 -1
- package/api/@xmachines/play-react/variables/PlayRenderer.md +1 -1
- package/api/@xmachines/play-react/variables/PlayUIProvider.md +1 -1
- package/api/@xmachines/play-react-router/README.md +107 -124
- package/api/@xmachines/play-react-router/classes/ReactRouterBridge.md +23 -23
- package/api/@xmachines/play-react-router/classes/RouteMap.md +4 -4
- package/api/@xmachines/play-react-router/functions/PlayRouterProvider.md +1 -1
- package/api/@xmachines/play-react-router/functions/createRouteMap.md +1 -1
- package/api/@xmachines/play-react-router/functions/createRouteMapFromTree.md +1 -1
- package/api/@xmachines/play-react-router/interfaces/PlayRouteEvent.md +6 -6
- package/api/@xmachines/play-react-router/interfaces/PlayRouterProviderProps.md +5 -5
- package/api/@xmachines/play-react-router/interfaces/RouteMapOptions.md +2 -2
- 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-router/README.md +235 -475
- package/api/@xmachines/play-router/classes/RouteMap.md +4 -4
- package/api/@xmachines/play-router/classes/RouterBridgeBase.md +23 -23
- package/api/@xmachines/play-router/functions/buildPlayRouteEvent.md +1 -1
- package/api/@xmachines/play-router/functions/buildRouteTree.md +1 -1
- package/api/@xmachines/play-router/functions/createRouteMap.md +1 -1
- package/api/@xmachines/play-router/functions/createRouteMapFromTree.md +1 -1
- package/api/@xmachines/play-router/functions/createRouteMatcher.md +1 -1
- package/api/@xmachines/play-router/functions/detectDuplicateRoutes.md +1 -1
- package/api/@xmachines/play-router/functions/extractMachineRoutes.md +1 -1
- package/api/@xmachines/play-router/functions/extractQuery.md +1 -1
- package/api/@xmachines/play-router/functions/extractRouteParams.md +1 -1
- package/api/@xmachines/play-router/functions/findRouteById.md +1 -1
- package/api/@xmachines/play-router/functions/findRouteByPath.md +1 -1
- package/api/@xmachines/play-router/functions/getNavigableRoutes.md +1 -1
- package/api/@xmachines/play-router/functions/getRoutableRoutes.md +1 -1
- package/api/@xmachines/play-router/functions/getTransitionReachableRoutes.md +1 -1
- package/api/@xmachines/play-router/functions/isRouteReachable.md +1 -1
- package/api/@xmachines/play-router/functions/machineToGraph.md +1 -1
- package/api/@xmachines/play-router/functions/routeExists.md +1 -1
- package/api/@xmachines/play-router/functions/sanitizePathname.md +1 -1
- package/api/@xmachines/play-router/functions/validateRouteFormat.md +1 -1
- package/api/@xmachines/play-router/functions/validateStateExists.md +1 -1
- package/api/@xmachines/play-router/interfaces/BuildPlayRouteEventOptions.md +4 -4
- package/api/@xmachines/play-router/interfaces/LocationLike.md +3 -3
- package/api/@xmachines/play-router/interfaces/MachineEdgeData.md +3 -3
- package/api/@xmachines/play-router/interfaces/MachineNodeData.md +5 -5
- package/api/@xmachines/play-router/interfaces/PlayRouteEvent.md +6 -6
- package/api/@xmachines/play-router/interfaces/RouteInfo.md +8 -8
- package/api/@xmachines/play-router/interfaces/RouteMapOptions.md +2 -2
- package/api/@xmachines/play-router/interfaces/RouteMapping.md +3 -3
- package/api/@xmachines/play-router/interfaces/RouteMatch.md +3 -3
- package/api/@xmachines/play-router/interfaces/RouteMatcher.md +4 -4
- package/api/@xmachines/play-router/interfaces/RouteNode.md +10 -10
- package/api/@xmachines/play-router/interfaces/RouteObject.md +2 -2
- package/api/@xmachines/play-router/interfaces/RouteTree.md +5 -5
- package/api/@xmachines/play-router/interfaces/RouteWatcherHandle.md +3 -3
- package/api/@xmachines/play-router/interfaces/RouterBridge.md +3 -3
- package/api/@xmachines/play-router/interfaces/WindowLike.md +3 -3
- package/api/@xmachines/play-router/type-aliases/MachineGraph.md +1 -1
- package/api/@xmachines/play-router/type-aliases/RouteMetadata.md +1 -1
- package/api/@xmachines/play-signals/README.md +105 -73
- package/api/@xmachines/play-signals/functions/watchSignal.md +1 -1
- package/api/@xmachines/play-signals/interfaces/ComputedOptions.md +2 -2
- package/api/@xmachines/play-signals/interfaces/SignalComputed.md +2 -2
- package/api/@xmachines/play-signals/interfaces/SignalOptions.md +2 -2
- package/api/@xmachines/play-signals/interfaces/SignalState.md +3 -3
- package/api/@xmachines/play-signals/interfaces/SignalWatcher.md +4 -4
- package/api/@xmachines/play-signals/type-aliases/WatcherNotify.md +1 -1
- package/api/@xmachines/play-solid/README.md +117 -263
- package/api/@xmachines/play-solid/functions/useActor.md +1 -1
- package/api/@xmachines/play-solid/functions/usePlayView.md +1 -1
- package/api/@xmachines/play-solid/interfaces/ActorProviderProps.md +8 -8
- package/api/@xmachines/play-solid/interfaces/PlayUIProviderProps.md +8 -8
- package/api/@xmachines/play-solid/interfaces/ViewContextValue.md +5 -5
- package/api/@xmachines/play-solid/type-aliases/PlayActor.md +1 -1
- package/api/@xmachines/play-solid/variables/ActorContext.md +1 -1
- package/api/@xmachines/play-solid/variables/ActorProvider.md +1 -1
- package/api/@xmachines/play-solid/variables/PlayRenderer.md +1 -1
- package/api/@xmachines/play-solid/variables/PlayUIProvider.md +1 -1
- package/api/@xmachines/play-solid-router/README.md +93 -606
- package/api/@xmachines/play-solid-router/classes/RouteMap.md +4 -4
- package/api/@xmachines/play-solid-router/classes/SolidRouterBridge.md +24 -24
- package/api/@xmachines/play-solid-router/functions/PlayRouterProvider.md +1 -1
- package/api/@xmachines/play-solid-router/functions/createRouteMap.md +1 -1
- package/api/@xmachines/play-solid-router/interfaces/AbstractActor.md +3 -3
- package/api/@xmachines/play-solid-router/interfaces/PlayRouteEvent.md +6 -6
- package/api/@xmachines/play-solid-router/interfaces/PlayRouterProviderProps.md +5 -5
- package/api/@xmachines/play-solid-router/interfaces/RouteMapOptions.md +2 -2
- 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/RoutableActor.md +1 -1
- package/api/@xmachines/play-solid-router/type-aliases/SolidRouterHooks.md +4 -4
- package/api/@xmachines/play-svelte/README.md +111 -103
- package/api/@xmachines/play-svelte/functions/defineRegistry.md +1 -1
- package/api/@xmachines/play-svelte/functions/getActorContext.md +1 -1
- package/api/@xmachines/play-svelte/functions/getPlayViewContext.md +1 -1
- package/api/@xmachines/play-svelte/functions/setActorContext.md +1 -1
- package/api/@xmachines/play-svelte/interfaces/ActorProviderProps.md +8 -8
- package/api/@xmachines/play-svelte/interfaces/DefineRegistryOptions.md +4 -4
- package/api/@xmachines/play-svelte/interfaces/PlayUIProviderProps.md +11 -11
- package/api/@xmachines/play-svelte/interfaces/ViewContextValue.md +5 -5
- package/api/@xmachines/play-svelte/type-aliases/PlayActor.md +1 -1
- package/api/@xmachines/play-svelte-spa-router/README.md +156 -17
- package/api/@xmachines/play-svelte-spa-router/classes/RouteMap.md +4 -4
- package/api/@xmachines/play-svelte-spa-router/functions/connectRouter.md +1 -1
- package/api/@xmachines/play-svelte-spa-router/functions/createRouteMap.md +1 -1
- package/api/@xmachines/play-svelte-spa-router/interfaces/ConnectRouterOptions.md +4 -4
- package/api/@xmachines/play-svelte-spa-router/interfaces/PlayRouteEvent.md +6 -6
- package/api/@xmachines/play-svelte-spa-router/interfaces/RouteMapOptions.md +2 -2
- 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/WindowLike.md +3 -3
- package/api/@xmachines/play-svelte-spa-router/type-aliases/RoutableActor.md +1 -1
- package/api/@xmachines/play-sveltekit-router/README.md +168 -17
- package/api/@xmachines/play-sveltekit-router/classes/RouteMap.md +4 -4
- package/api/@xmachines/play-sveltekit-router/functions/connectRouter.md +1 -1
- package/api/@xmachines/play-sveltekit-router/functions/createRouteMap.md +1 -1
- package/api/@xmachines/play-sveltekit-router/interfaces/ConnectRouterOptions.md +4 -4
- package/api/@xmachines/play-sveltekit-router/interfaces/LocationLike.md +3 -3
- package/api/@xmachines/play-sveltekit-router/interfaces/PlayRouteEvent.md +6 -6
- package/api/@xmachines/play-sveltekit-router/interfaces/RouteMapOptions.md +2 -2
- 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/type-aliases/RoutableActor.md +1 -1
- package/api/@xmachines/play-tanstack-react-router/README.md +147 -122
- package/api/@xmachines/play-tanstack-react-router/classes/RouteMap.md +4 -4
- package/api/@xmachines/play-tanstack-react-router/classes/TanStackReactRouterBridge.md +23 -23
- package/api/@xmachines/play-tanstack-react-router/functions/PlayRouterProvider.md +1 -1
- package/api/@xmachines/play-tanstack-react-router/functions/createRouteMap.md +1 -1
- package/api/@xmachines/play-tanstack-react-router/functions/createRouteMapFromTree.md +1 -1
- package/api/@xmachines/play-tanstack-react-router/functions/extractMachineRoutes.md +1 -1
- package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouteEvent.md +6 -6
- package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouterProviderProps.md +5 -5
- package/api/@xmachines/play-tanstack-react-router/interfaces/RouteMapOptions.md +2 -2
- package/api/@xmachines/play-tanstack-react-router/interfaces/RouteMapping.md +3 -3
- package/api/@xmachines/play-tanstack-react-router/interfaces/RouteNavigateEvent.md +3 -3
- package/api/@xmachines/play-tanstack-react-router/interfaces/RouterBridge.md +3 -3
- package/api/@xmachines/play-tanstack-react-router/type-aliases/TanStackRouterInstance.md +1 -1
- package/api/@xmachines/play-tanstack-react-router/type-aliases/TanStackRouterLike.md +4 -4
- package/api/@xmachines/play-tanstack-solid-router/README.md +195 -173
- package/api/@xmachines/play-tanstack-solid-router/classes/RouteMap.md +4 -4
- package/api/@xmachines/play-tanstack-solid-router/classes/SolidRouterBridge.md +24 -24
- package/api/@xmachines/play-tanstack-solid-router/functions/PlayRouterProvider.md +1 -1
- package/api/@xmachines/play-tanstack-solid-router/functions/createRouteMap.md +1 -1
- package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayRouteEvent.md +6 -6
- package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayRouterProviderProps.md +5 -5
- package/api/@xmachines/play-tanstack-solid-router/interfaces/RouteMapOptions.md +2 -2
- 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/RoutableActor.md +1 -1
- package/api/@xmachines/play-tanstack-solid-router/type-aliases/TanStackRouterInstance.md +1 -1
- package/api/@xmachines/play-tanstack-solid-router/type-aliases/TanStackRouterLike.md +3 -3
- package/api/@xmachines/play-vue/README.md +126 -271
- package/api/@xmachines/play-vue/functions/defineRegistry.md +1 -1
- package/api/@xmachines/play-vue/functions/getPlayViewContext.md +1 -1
- package/api/@xmachines/play-vue/functions/useActor.md +1 -1
- package/api/@xmachines/play-vue/interfaces/ActorProviderProps.md +5 -5
- package/api/@xmachines/play-vue/interfaces/PlayUIProviderProps.md +8 -8
- package/api/@xmachines/play-vue/interfaces/ViewContextValue.md +5 -5
- package/api/@xmachines/play-vue/interfaces/VisibilityProviderProps.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/PlayActor.md +1 -1
- package/api/@xmachines/play-vue/variables/PlayRenderer.md +1 -1
- package/api/@xmachines/play-vue-router/README.md +148 -528
- package/api/@xmachines/play-vue-router/classes/RouteMap.md +4 -4
- package/api/@xmachines/play-vue-router/classes/VueRouterBridge.md +24 -24
- package/api/@xmachines/play-vue-router/functions/createRouteMap.md +1 -1
- package/api/@xmachines/play-vue-router/interfaces/PlayRouteEvent.md +6 -6
- package/api/@xmachines/play-vue-router/interfaces/RouteMapOptions.md +2 -2
- package/api/@xmachines/play-vue-router/interfaces/RouteMapping.md +3 -3
- package/api/@xmachines/play-vue-router/interfaces/RouterBridge.md +3 -3
- package/api/@xmachines/play-vue-router/type-aliases/RoutableActor.md +1 -1
- package/api/@xmachines/play-vue-router/variables/PlayRouterProvider.md +1 -1
- package/api/@xmachines/play-xstate/README.md +167 -496
- package/api/@xmachines/play-xstate/classes/PlayerActor.md +12 -12
- package/api/@xmachines/play-xstate/functions/buildRouteUrl.md +1 -1
- package/api/@xmachines/play-xstate/functions/composeGuards.md +1 -1
- package/api/@xmachines/play-xstate/functions/composeGuardsOr.md +1 -1
- package/api/@xmachines/play-xstate/functions/contextFieldMatches.md +1 -1
- package/api/@xmachines/play-xstate/functions/definePlayer.md +1 -1
- package/api/@xmachines/play-xstate/functions/deriveRoute.md +1 -1
- package/api/@xmachines/play-xstate/functions/eventMatches.md +1 -1
- package/api/@xmachines/play-xstate/functions/formatPlayRouteTransitions.md +1 -1
- package/api/@xmachines/play-xstate/functions/hasContext.md +1 -1
- package/api/@xmachines/play-xstate/functions/isAbsoluteRoute.md +1 -1
- package/api/@xmachines/play-xstate/functions/negateGuard.md +1 -1
- package/api/@xmachines/play-xstate/interfaces/PlayerConfig.md +3 -3
- package/api/@xmachines/play-xstate/interfaces/PlayerFactoryResumeOptions.md +2 -2
- package/api/@xmachines/play-xstate/interfaces/PlayerOptions.md +6 -6
- package/api/@xmachines/play-xstate/interfaces/RouteContext.md +5 -5
- package/api/@xmachines/play-xstate/type-aliases/ComposedGuard.md +1 -1
- package/api/@xmachines/play-xstate/type-aliases/Guard.md +1 -1
- package/api/@xmachines/play-xstate/type-aliases/GuardArray.md +1 -1
- package/api/@xmachines/play-xstate/type-aliases/PlayerFactory.md +1 -1
- package/api/@xmachines/play-xstate/type-aliases/RouteMachineConfig.md +4 -4
- package/api/@xmachines/play-xstate/type-aliases/RouteStateNode.md +4 -4
- package/api/@xmachines/shared/README.md +81 -294
- package/api/@xmachines/shared/vite-aliases/functions/xmAliases.md +1 -1
- package/api/@xmachines/shared/vite-aliases/functions/xmCacheDir.md +1 -1
- package/api/@xmachines/shared/vite-aliases/functions/xmOptimizeDeps.md +1 -1
- package/api/@xmachines/shared/vite-aliases/functions/xmResolve.md +1 -1
- package/api/@xmachines/shared/vitest/functions/defineXmVitestConfig.md +1 -1
- package/examples/@xmachines/play-dom-demo/README.md +4 -4
- package/examples/@xmachines/play-dom-demo/functions/createNavBar.md +1 -1
- package/examples/@xmachines/play-dom-demo/functions/initShell.md +1 -1
- package/examples/@xmachines/play-dom-demo/type-aliases/AuthCatalog.md +1 -1
- package/examples/@xmachines/play-dom-demo/variables/About.md +1 -1
- package/examples/@xmachines/play-dom-demo/variables/Contact.md +1 -1
- package/examples/@xmachines/play-dom-demo/variables/Dashboard.md +1 -1
- package/examples/@xmachines/play-dom-demo/variables/Home.md +1 -1
- package/examples/@xmachines/play-dom-demo/variables/Login.md +1 -1
- package/examples/@xmachines/play-dom-demo/variables/NavBarView.md +1 -1
- package/examples/@xmachines/play-dom-demo/variables/Navigation.md +1 -1
- package/examples/@xmachines/play-dom-demo/variables/Overview.md +1 -1
- package/examples/@xmachines/play-dom-demo/variables/Profile.md +1 -1
- package/examples/@xmachines/play-dom-demo/variables/Settings.md +1 -1
- package/examples/@xmachines/play-dom-demo/variables/Stats.md +1 -1
- package/examples/@xmachines/play-dom-demo/variables/authCatalog.md +1 -1
- package/examples/@xmachines/play-dom-router-demo/README.md +3 -3
- package/examples/@xmachines/play-react-demo/README.md +2 -2
- package/examples/@xmachines/play-react-demo/functions/App.md +1 -1
- package/examples/@xmachines/play-react-demo/type-aliases/AuthCatalog.md +1 -1
- package/examples/@xmachines/play-react-demo/variables/About.md +1 -1
- package/examples/@xmachines/play-react-demo/variables/Contact.md +1 -1
- package/examples/@xmachines/play-react-demo/variables/Dashboard.md +1 -1
- package/examples/@xmachines/play-react-demo/variables/DebugPanel.md +1 -1
- package/examples/@xmachines/play-react-demo/variables/Home.md +1 -1
- package/examples/@xmachines/play-react-demo/variables/Login.md +1 -1
- package/examples/@xmachines/play-react-demo/variables/NavBar.md +1 -1
- package/examples/@xmachines/play-react-demo/variables/NavBarView.md +1 -1
- package/examples/@xmachines/play-react-demo/variables/Navigation.md +1 -1
- package/examples/@xmachines/play-react-demo/variables/Overview.md +1 -1
- package/examples/@xmachines/play-react-demo/variables/Profile.md +1 -1
- package/examples/@xmachines/play-react-demo/variables/Settings.md +1 -1
- package/examples/@xmachines/play-react-demo/variables/Shell.md +1 -1
- package/examples/@xmachines/play-react-demo/variables/Stats.md +1 -1
- package/examples/@xmachines/play-react-demo/variables/authCatalog.md +1 -1
- package/examples/@xmachines/play-react-router-demo/README.md +2 -2
- package/examples/@xmachines/play-solid-demo/README.md +2 -2
- package/examples/@xmachines/play-solid-demo/functions/App.md +1 -1
- package/examples/@xmachines/play-solid-demo/type-aliases/AuthCatalog.md +1 -1
- package/examples/@xmachines/play-solid-demo/variables/About.md +1 -1
- package/examples/@xmachines/play-solid-demo/variables/Contact.md +1 -1
- package/examples/@xmachines/play-solid-demo/variables/Dashboard.md +1 -1
- package/examples/@xmachines/play-solid-demo/variables/DebugPanel.md +1 -1
- package/examples/@xmachines/play-solid-demo/variables/Home.md +1 -1
- package/examples/@xmachines/play-solid-demo/variables/Login.md +1 -1
- package/examples/@xmachines/play-solid-demo/variables/NavBar.md +1 -1
- package/examples/@xmachines/play-solid-demo/variables/NavBarView.md +1 -1
- package/examples/@xmachines/play-solid-demo/variables/Navigation.md +1 -1
- package/examples/@xmachines/play-solid-demo/variables/Overview.md +1 -1
- package/examples/@xmachines/play-solid-demo/variables/Profile.md +1 -1
- package/examples/@xmachines/play-solid-demo/variables/Settings.md +1 -1
- package/examples/@xmachines/play-solid-demo/variables/Shell.md +1 -1
- package/examples/@xmachines/play-solid-demo/variables/Stats.md +1 -1
- package/examples/@xmachines/play-solid-demo/variables/authCatalog.md +1 -1
- package/examples/@xmachines/play-solid-router-demo/README.md +1 -1
- package/examples/@xmachines/play-svelte-demo/README.md +2 -2
- 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-spa-router-demo/README.md +3 -3
- package/examples/@xmachines/play-sveltekit-router-demo/README.md +3 -3
- package/examples/@xmachines/play-tanstack-react-router-demo/README.md +1 -1
- package/examples/@xmachines/play-tanstack-solid-router-demo/README.md +1 -1
- package/examples/@xmachines/play-vue-demo/README.md +2 -2
- 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-router-demo/README.md +1 -1
- package/examples/README.md +24 -25
- package/examples/form-validation.md +2 -2
- package/guides/README.md +7 -7
- package/guides/actor-model.md +18 -18
- package/guides/architecture.md +500 -0
- package/guides/configuration.md +556 -0
- package/guides/deployment.md +336 -0
- package/guides/development.md +617 -0
- package/guides/getting-started.md +351 -142
- package/guides/signals.md +19 -19
- package/guides/state-machines.md +16 -16
- package/guides/testing.md +460 -0
- package/package.json +5 -5
- package/guides/installation.md +0 -257
|
@@ -1,38 +1,49 @@
|
|
|
1
1
|
[API](../../README.md) / @xmachines/play-dom-router
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
**Vanilla DOM router integration for XMachines**
|
|
3
|
+
<!-- generated-by: gsd-doc-writer -->
|
|
6
4
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
## Overview
|
|
10
|
-
|
|
11
|
-
`@xmachines/play-dom-router` provides the **concrete browser implementations** intentionally separated from the environment-agnostic core:
|
|
5
|
+
# @xmachines/play-dom-router
|
|
12
6
|
|
|
13
|
-
|
|
14
|
-
| ------------------------------- | ------------------------------------------------------------------------------------------------------- |
|
|
15
|
-
| `createBrowserHistory(options)` | Wraps `window.history` with patch-based `pushState`/`replaceState` interception and a `subscribe()` API |
|
|
16
|
-
| `createRouter(options)` | Lightweight router binding a `BrowserHistory` to a route tree |
|
|
17
|
-
| `connectRouter(options)` | Bidirectional actor ↔ URL sync — history changes → `play.route`, `currentRoute` → `history.push` |
|
|
18
|
-
| `createRouteMap(machine)` | Build a `RouteMap` from a machine's `meta.route` declarations |
|
|
7
|
+
**Vanilla DOM router (Browser History API) for XMachines Play Architecture.**
|
|
19
8
|
|
|
20
|
-
|
|
9
|
+
Framework-agnostic router integration that synchronizes a Play actor's `currentRoute` TC39 Signal with the browser's `window.history` API — no framework required. Implements the same [`RouterBridgeBase`](../play-router/README.md) pattern as all other router adapters in the XMachines ecosystem.
|
|
21
10
|
|
|
22
|
-
|
|
11
|
+
## Installation
|
|
23
12
|
|
|
24
|
-
|
|
25
|
-
-
|
|
26
|
-
|
|
27
|
-
-
|
|
13
|
+
```bash
|
|
14
|
+
npm install @xmachines/play-dom-router @xmachines/play-router @xmachines/play-actor
|
|
15
|
+
```
|
|
28
16
|
|
|
29
|
-
|
|
17
|
+
Peer dependency:
|
|
30
18
|
|
|
31
19
|
```bash
|
|
32
|
-
npm install
|
|
20
|
+
npm install xstate@^5.30.0
|
|
33
21
|
```
|
|
34
22
|
|
|
35
|
-
|
|
23
|
+
## Overview
|
|
24
|
+
|
|
25
|
+
[`@xmachines/play-dom-router`](README.md) connects a Play actor to the browser URL through the `DomRouterBridge` (extends `RouterBridgeBase` from [`@xmachines/play-router`](../play-router/README.md)):
|
|
26
|
+
|
|
27
|
+
- Actor route signal (`actor.currentRoute`) drives `history.push()` — actor is authoritative.
|
|
28
|
+
- Browser navigation events (`popstate`, `pushState`, `replaceState`) send `play.route` intents back to the actor.
|
|
29
|
+
- Guarded state transitions remain actor-owned (Actor Authority).
|
|
30
|
+
- Circular update prevention via `isProcessingNavigation` flag — inherited from `RouterBridgeBase`.
|
|
31
|
+
|
|
32
|
+
## Key Exports
|
|
33
|
+
|
|
34
|
+
| Export | Description |
|
|
35
|
+
| -------------------------------- | ------------------------------------------------------------------------------------------ |
|
|
36
|
+
| `createBrowserHistory(options)` | Wraps `window.history` with a subscribable `BrowserHistory` interface |
|
|
37
|
+
| `createRouter(options)` | Creates a `VanillaRouter` combining `BrowserHistory` and `RouteTree` |
|
|
38
|
+
| `connectRouter(options)` | Connects a `VanillaRouter` to a `Routable` actor — returns a `disconnect` cleanup function |
|
|
39
|
+
| `createRouteMap` | Re-exported from `@xmachines/play-router` — builds bidirectional path ↔ state ID map |
|
|
40
|
+
| `BrowserHistory` | Interface for the history wrapper |
|
|
41
|
+
| `BrowserWindow` | Structural window interface (accepts `Window`, JSDOM, or any test double) |
|
|
42
|
+
| `VanillaRouter` | Interface for the router wrapper |
|
|
43
|
+
| `ConnectRouterOptions` | Options type for `connectRouter` |
|
|
44
|
+
| `RouteLookupContract` | Structural interface for bidirectional route lookup |
|
|
45
|
+
| `RoutableActor` | `AbstractActor & Routable & Viewable` convenience type |
|
|
46
|
+
| `RouterBridge`, `PlayRouteEvent` | Types re-exported from `@xmachines/play-router` |
|
|
36
47
|
|
|
37
48
|
## Quick Start
|
|
38
49
|
|
|
@@ -43,42 +54,28 @@ import {
|
|
|
43
54
|
connectRouter,
|
|
44
55
|
createRouteMap,
|
|
45
56
|
} from "@xmachines/play-dom-router";
|
|
46
|
-
import {
|
|
47
|
-
import { setup } from "xstate";
|
|
48
|
-
import type { PlayRouteEvent } from "@xmachines/play-router";
|
|
49
|
-
|
|
50
|
-
const machine = setup({
|
|
51
|
-
types: {
|
|
52
|
-
events: {} as PlayRouteEvent,
|
|
53
|
-
context: {} as { params: Record<string, string>; query: Record<string, string> },
|
|
54
|
-
},
|
|
55
|
-
}).createMachine(
|
|
56
|
-
formatPlayRouteTransitions({
|
|
57
|
-
id: "app",
|
|
58
|
-
initial: "home",
|
|
59
|
-
context: { params: {}, query: {} },
|
|
60
|
-
states: {
|
|
61
|
-
home: { id: "home", meta: { route: "/" } },
|
|
62
|
-
about: { id: "about", meta: { route: "/about" } },
|
|
63
|
-
},
|
|
64
|
-
}),
|
|
65
|
-
);
|
|
57
|
+
import { extractMachineRoutes } from "@xmachines/play-router";
|
|
66
58
|
|
|
59
|
+
// 1. Extract route tree and build route map from your XState machine
|
|
60
|
+
const routeTree = extractMachineRoutes(machine);
|
|
67
61
|
const routeMap = createRouteMap(machine);
|
|
62
|
+
|
|
63
|
+
// 2. Create browser history wrapper (accepts window or any BrowserWindow-compatible object)
|
|
68
64
|
const history = createBrowserHistory({ window });
|
|
69
|
-
const router = createRouter({ routeTree: machine, history });
|
|
70
65
|
|
|
71
|
-
|
|
66
|
+
// 3. Create router
|
|
67
|
+
const router = createRouter({ routeTree, history });
|
|
68
|
+
|
|
69
|
+
// 4. Start actor and connect
|
|
70
|
+
const actor = definePlayer({ machine, catalog })();
|
|
72
71
|
actor.start();
|
|
73
72
|
|
|
74
|
-
// Bidirectional sync: actor ↔ browser URL
|
|
75
73
|
const disconnect = connectRouter({ actor, router, routeMap });
|
|
76
74
|
|
|
77
|
-
// Cleanup on unload
|
|
75
|
+
// Cleanup (e.g. on page unload)
|
|
78
76
|
window.addEventListener("beforeunload", () => {
|
|
79
77
|
disconnect();
|
|
80
78
|
router.destroy();
|
|
81
|
-
actor.stop();
|
|
82
79
|
});
|
|
83
80
|
```
|
|
84
81
|
|
|
@@ -86,165 +83,170 @@ window.addEventListener("beforeunload", () => {
|
|
|
86
83
|
|
|
87
84
|
### `createBrowserHistory(options)`
|
|
88
85
|
|
|
89
|
-
Wraps `window.history`
|
|
86
|
+
Wraps `window.history` to provide a subscribable history interface. Patches `pushState`/`replaceState` to detect programmatic navigations in addition to `popstate` events for back/forward.
|
|
90
87
|
|
|
91
88
|
```typescript
|
|
92
89
|
const history = createBrowserHistory({ window });
|
|
93
90
|
|
|
91
|
+
// Subscribe to URL changes
|
|
94
92
|
const unsubscribe = history.subscribe((location) => {
|
|
95
|
-
console.log("URL changed:", location.pathname, location.search
|
|
93
|
+
console.log("URL changed:", location.pathname, location.search);
|
|
96
94
|
});
|
|
97
95
|
|
|
96
|
+
// Programmatic navigation
|
|
98
97
|
history.push("/dashboard");
|
|
99
98
|
history.replace("/login");
|
|
100
|
-
history.back();
|
|
101
|
-
history.forward();
|
|
102
|
-
history.go(-2);
|
|
99
|
+
history.back();
|
|
103
100
|
|
|
104
|
-
// Cleanup —
|
|
101
|
+
// Cleanup — safe to call more than once; cooperates with other wrappers on the same window
|
|
105
102
|
unsubscribe();
|
|
106
|
-
history.destroy();
|
|
103
|
+
history.destroy();
|
|
107
104
|
```
|
|
108
105
|
|
|
109
|
-
|
|
106
|
+
**`BrowserHistory` interface:**
|
|
110
107
|
|
|
111
|
-
|
|
108
|
+
| Method | Description |
|
|
109
|
+
| ----------------------- | -------------------------------------------------------------------------- |
|
|
110
|
+
| `location` | Read-only `{ pathname, search, hash, state }` |
|
|
111
|
+
| `push(path, state?)` | Push a new entry to history |
|
|
112
|
+
| `replace(path, state?)` | Replace the current history entry |
|
|
113
|
+
| `go(delta)` | Navigate relative to current position |
|
|
114
|
+
| `back()` | Navigate backward |
|
|
115
|
+
| `forward()` | Navigate forward |
|
|
116
|
+
| `subscribe(listener)` | Subscribe to location changes — returns unsubscribe function |
|
|
117
|
+
| `createHref(path)` | Create an href from a path |
|
|
118
|
+
| `destroy()` | Cleanup — removes listeners and restores patched methods when last wrapper |
|
|
112
119
|
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
```
|
|
120
|
+
**`BrowserWindow` interface:**
|
|
121
|
+
|
|
122
|
+
Accepts `window`, a JSDOM window, or any object implementing the structural interface. Covers only properties actually used — avoids coupling to `Window & typeof globalThis`.
|
|
117
123
|
|
|
118
124
|
### `createRouter(options)`
|
|
119
125
|
|
|
120
|
-
Creates a
|
|
126
|
+
Creates a `VanillaRouter` wrapping `history` and `routeTree`. Designed for parity with TanStack Router's setup flow.
|
|
121
127
|
|
|
122
128
|
```typescript
|
|
123
|
-
const router = createRouter({ routeTree
|
|
124
|
-
|
|
125
|
-
//
|
|
126
|
-
//
|
|
127
|
-
router.destroy(); // removes event listeners, destroys the BrowserHistory
|
|
129
|
+
const router = createRouter({ routeTree, history });
|
|
130
|
+
// router.history — the BrowserHistory instance
|
|
131
|
+
// router.routeTree — for structure reference
|
|
132
|
+
// router.destroy() — calls history.destroy()
|
|
128
133
|
```
|
|
129
134
|
|
|
130
135
|
### `connectRouter(options)`
|
|
131
136
|
|
|
132
|
-
|
|
137
|
+
Connects a `VanillaRouter` to a `Routable` actor. Handles all bidirectional synchronization:
|
|
133
138
|
|
|
134
|
-
-
|
|
135
|
-
-
|
|
136
|
-
-
|
|
139
|
+
- On connect: syncs initial URL → actor or actor route → browser (restore vs. deep-link detection).
|
|
140
|
+
- While connected: actor route changes push to history; browser navigations send `play.route` events.
|
|
141
|
+
- Returns a cleanup function that disconnects the bridge.
|
|
137
142
|
|
|
138
143
|
```typescript
|
|
139
|
-
const disconnect = connectRouter({
|
|
144
|
+
const disconnect = connectRouter({
|
|
145
|
+
actor, // AbstractActor & Routable
|
|
146
|
+
router, // VanillaRouter from createRouter()
|
|
147
|
+
routeMap, // RouteLookupContract — any object with getStateIdByPath / getPathByStateId
|
|
148
|
+
});
|
|
140
149
|
|
|
141
|
-
// Later
|
|
150
|
+
// Later:
|
|
142
151
|
disconnect();
|
|
143
152
|
```
|
|
144
153
|
|
|
145
|
-
|
|
154
|
+
**`ConnectRouterOptions`:**
|
|
155
|
+
|
|
156
|
+
| Option | Type | Description |
|
|
157
|
+
| ---------- | -------------------------- | ----------------------------------------- |
|
|
158
|
+
| `actor` | `AbstractActor & Routable` | Actor to synchronize with the browser URL |
|
|
159
|
+
| `router` | `VanillaRouter` | Router from `createRouter()` |
|
|
160
|
+
| `routeMap` | `RouteLookupContract` | Bidirectional path ↔ state ID lookup |
|
|
146
161
|
|
|
147
|
-
|
|
162
|
+
**`RouteLookupContract`:**
|
|
148
163
|
|
|
149
164
|
```typescript
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
165
|
+
interface RouteLookupContract {
|
|
166
|
+
getStateIdByPath(path: string): string | null | undefined;
|
|
167
|
+
getPathByStateId(id: string): string | null | undefined;
|
|
168
|
+
}
|
|
153
169
|
```
|
|
154
170
|
|
|
155
|
-
|
|
171
|
+
Any object satisfying this structural interface is accepted — including `RouteMap` instances from `@xmachines/play-router`, subclasses, or test doubles.
|
|
172
|
+
|
|
173
|
+
### `createRouteMap` (re-export)
|
|
156
174
|
|
|
157
|
-
|
|
175
|
+
Re-exported from `@xmachines/play-router`. Builds a bidirectional `RouteMap` from an XState machine:
|
|
158
176
|
|
|
159
177
|
```typescript
|
|
160
|
-
import {
|
|
161
|
-
createBrowserHistory,
|
|
162
|
-
createRouter,
|
|
163
|
-
connectRouter,
|
|
164
|
-
createRouteMap,
|
|
165
|
-
} from "@xmachines/play-dom-router";
|
|
166
|
-
import { createRenderer, schema } from "@xmachines/play-dom";
|
|
167
|
-
import { defineCatalog } from "@json-render/core";
|
|
168
|
-
import { z } from "zod";
|
|
169
|
-
import type { ComponentFn } from "@xmachines/play-dom";
|
|
170
|
-
|
|
171
|
-
// 1. Define catalog + components
|
|
172
|
-
const catalog = defineCatalog(schema, {
|
|
173
|
-
components: {
|
|
174
|
-
Home: { props: z.object({ title: z.string() }) },
|
|
175
|
-
About: { props: z.object({ title: z.string() }) },
|
|
176
|
-
},
|
|
177
|
-
actions: {
|
|
178
|
-
route: { params: z.object({ to: z.string() }) },
|
|
179
|
-
},
|
|
180
|
-
});
|
|
178
|
+
import { createRouteMap } from "@xmachines/play-dom-router";
|
|
181
179
|
|
|
182
|
-
const Home: ComponentFn<typeof catalog, "Home"> = ({ props }) => {
|
|
183
|
-
const el = document.createElement("section");
|
|
184
|
-
el.textContent = props.title;
|
|
185
|
-
return el;
|
|
186
|
-
};
|
|
187
|
-
const About: ComponentFn<typeof catalog, "About"> = ({ props }) => {
|
|
188
|
-
const el = document.createElement("section");
|
|
189
|
-
el.textContent = props.title;
|
|
190
|
-
return el;
|
|
191
|
-
};
|
|
192
|
-
|
|
193
|
-
// 2. Create renderer factory
|
|
194
|
-
const mount = createRenderer(catalog, { Home, About });
|
|
195
|
-
|
|
196
|
-
// 3. Wire router + renderer
|
|
197
180
|
const routeMap = createRouteMap(machine);
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
actor.start();
|
|
181
|
+
routeMap.getStateIdByPath("/dashboard"); // "dashboard"
|
|
182
|
+
routeMap.getPathByStateId("dashboard"); // "/dashboard"
|
|
183
|
+
```
|
|
202
184
|
|
|
203
|
-
|
|
204
|
-
const disconnectRenderer = mount(actor, document.getElementById("app")!);
|
|
185
|
+
## URLPattern Support
|
|
205
186
|
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
187
|
+
This package uses the [URLPattern API](https://developer.mozilla.org/en-US/docs/Web/API/URLPattern) for route pattern matching via [`@xmachines/play-router`](../play-router/README.md). URLPattern is available natively on Node.js 24+ and modern browsers (Chrome 95+, Firefox 117+, Safari 16.4+). On older environments, load a polyfill **before** importing this package — see [`@xmachines/play-router`](../play-router/README.md) for details.
|
|
188
|
+
|
|
189
|
+
## Testing
|
|
190
|
+
|
|
191
|
+
Run tests in isolation:
|
|
192
|
+
|
|
193
|
+
```bash
|
|
194
|
+
npm test
|
|
195
|
+
# or from monorepo root:
|
|
196
|
+
npm test -w @xmachines/play-dom-router
|
|
213
197
|
```
|
|
214
198
|
|
|
215
|
-
|
|
199
|
+
Tests run in Node.js environment with `URLPattern` polyfill setup. Browser-specific tests are in `test/browser/` and run separately via `vitest.browser.config.ts`.
|
|
216
200
|
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
201
|
+
Coverage thresholds:
|
|
202
|
+
|
|
203
|
+
| Type | Threshold |
|
|
204
|
+
| ---------- | --------- |
|
|
205
|
+
| Lines | 80% |
|
|
206
|
+
| Functions | 80% |
|
|
207
|
+
| Branches | 75% |
|
|
208
|
+
| Statements | 80% |
|
|
209
|
+
|
|
210
|
+
## Architecture
|
|
211
|
+
|
|
212
|
+
The bridge-first data flow:
|
|
213
|
+
|
|
214
|
+
1. `connectRouter` instantiates `DomRouterBridge` (extends `RouterBridgeBase`) and calls `bridge.connect()`.
|
|
215
|
+
2. On connect, `RouterBridgeBase` performs initial sync: if browser URL differs from actor route, a `play.route` event is sent; if actor route differs and browser is at the machine's initial route (restore scenario), the actor wins and history is updated.
|
|
216
|
+
3. Actor route changes (via `currentRoute` Signal) trigger `history.push(path)`.
|
|
217
|
+
4. Browser URL changes (popstate, patched pushState/replaceState) call `syncActorFromRouter(pathname, search)`, which sends a `play.route` event.
|
|
218
|
+
5. Circular updates are prevented by the `isProcessingNavigation` flag in `RouterBridgeBase`.
|
|
219
|
+
|
|
220
|
+
```
|
|
221
|
+
Browser URL
|
|
222
|
+
│ popstate / pushState / replaceState
|
|
223
|
+
▼
|
|
224
|
+
DomRouterBridge
|
|
225
|
+
│ play.route event
|
|
226
|
+
▼
|
|
227
|
+
Actor (XState machine)
|
|
228
|
+
│ currentRoute Signal change
|
|
229
|
+
▼
|
|
230
|
+
DomRouterBridge
|
|
231
|
+
│ history.push(path)
|
|
232
|
+
▼
|
|
233
|
+
Browser URL
|
|
239
234
|
```
|
|
240
235
|
|
|
241
|
-
##
|
|
236
|
+
## Related Packages
|
|
237
|
+
|
|
238
|
+
- [@xmachines/play-router](../play-router/README.md) — `RouterBridgeBase`, `createRouteMap`, `extractMachineRoutes`
|
|
239
|
+
- [@xmachines/play-actor](../play-actor/README.md) — `AbstractActor`, `Routable`, `Viewable`
|
|
240
|
+
- [@xmachines/play-dom](../play-dom/README.md) — Vanilla DOM renderer for view rendering alongside routing
|
|
241
|
+
- [@xmachines/play-xstate](../play-xstate/README.md) — `definePlayer`, `PlayerActor`
|
|
242
|
+
|
|
243
|
+
## Part of the XMachines monorepo
|
|
244
|
+
|
|
245
|
+
This package is part of the [xmachines-js](../../README.md) monorepo.
|
|
246
|
+
|
|
247
|
+
## License
|
|
242
248
|
|
|
243
|
-
|
|
244
|
-
- [Vanilla DOM renderer](../play-dom/README.md)
|
|
245
|
-
- [Router core](../play-router/README.md)
|
|
246
|
-
- [Routing Patterns guide](../../packages/docs/examples/routing-patterns.md)
|
|
247
|
-
- [Play RFC](../../packages/docs/rfc/play.md)
|
|
249
|
+
MIT — see [LICENSE](LICENSE).
|
|
248
250
|
|
|
249
251
|
## Interfaces
|
|
250
252
|
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
function connectRouter(options): () => void;
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
Defined in: [play-dom-router/src/connect-router.ts:48](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
9
|
+
Defined in: [play-dom-router/src/connect-router.ts:48](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.48/packages/play-dom-router/src/connect-router.ts#L48)
|
|
10
10
|
|
|
11
11
|
Connect vanilla router to actor (pure browser integration).
|
|
12
12
|
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
function createBrowserHistory(options): BrowserHistory;
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
Defined in: [play-dom-router/src/create-browser-history.ts:120](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
9
|
+
Defined in: [play-dom-router/src/create-browser-history.ts:120](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.48/packages/play-dom-router/src/create-browser-history.ts#L120)
|
|
10
10
|
|
|
11
11
|
Create browser history that wraps window.history
|
|
12
12
|
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
function createRouteMap(machine, options?): RouteMap;
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
Defined in: [play-router/src/create-route-map.ts:45](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
9
|
+
Defined in: [play-router/src/create-route-map.ts:45](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.48/packages/play-router/src/create-route-map.ts#L45)
|
|
10
10
|
|
|
11
11
|
Create a `RouteMap` from an XState state machine.
|
|
12
12
|
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
function createRouter(options): VanillaRouter;
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
Defined in: [play-dom-router/src/create-router.ts:52](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
9
|
+
Defined in: [play-dom-router/src/create-router.ts:52](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.48/packages/play-dom-router/src/create-router.ts#L52)
|
|
10
10
|
|
|
11
11
|
Create vanilla router for framework-agnostic routing.
|
|
12
12
|
|
|
@@ -2,17 +2,17 @@
|
|
|
2
2
|
|
|
3
3
|
# Interface: BrowserHistory
|
|
4
4
|
|
|
5
|
-
Defined in: [play-dom-router/src/create-browser-history.ts:1](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
5
|
+
Defined in: [play-dom-router/src/create-browser-history.ts:1](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.48/packages/play-dom-router/src/create-browser-history.ts#L1)
|
|
6
6
|
|
|
7
7
|
## Properties
|
|
8
8
|
|
|
9
9
|
| Property | Modifier | Type | Description | Defined in |
|
|
10
10
|
| ----------------------------------------- | ---------- | --------- | -------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
11
|
-
| <a id="property-location"></a> `location` | `readonly` | `object` | Get current location state | [play-dom-router/src/create-browser-history.ts:5](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
12
|
-
| `location.hash` | `public` | `string` | - | [play-dom-router/src/create-browser-history.ts:8](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
13
|
-
| `location.pathname` | `public` | `string` | - | [play-dom-router/src/create-browser-history.ts:6](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
14
|
-
| `location.search` | `public` | `string` | - | [play-dom-router/src/create-browser-history.ts:7](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
15
|
-
| `location.state` | `public` | `unknown` | - | [play-dom-router/src/create-browser-history.ts:9](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
11
|
+
| <a id="property-location"></a> `location` | `readonly` | `object` | Get current location state | [play-dom-router/src/create-browser-history.ts:5](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.48/packages/play-dom-router/src/create-browser-history.ts#L5) |
|
|
12
|
+
| `location.hash` | `public` | `string` | - | [play-dom-router/src/create-browser-history.ts:8](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.48/packages/play-dom-router/src/create-browser-history.ts#L8) |
|
|
13
|
+
| `location.pathname` | `public` | `string` | - | [play-dom-router/src/create-browser-history.ts:6](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.48/packages/play-dom-router/src/create-browser-history.ts#L6) |
|
|
14
|
+
| `location.search` | `public` | `string` | - | [play-dom-router/src/create-browser-history.ts:7](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.48/packages/play-dom-router/src/create-browser-history.ts#L7) |
|
|
15
|
+
| `location.state` | `public` | `unknown` | - | [play-dom-router/src/create-browser-history.ts:9](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.48/packages/play-dom-router/src/create-browser-history.ts#L9) |
|
|
16
16
|
|
|
17
17
|
## Methods
|
|
18
18
|
|
|
@@ -22,7 +22,7 @@ Defined in: [play-dom-router/src/create-browser-history.ts:1](https://gitlab.com
|
|
|
22
22
|
back(): void;
|
|
23
23
|
```
|
|
24
24
|
|
|
25
|
-
Defined in: [play-dom-router/src/create-browser-history.ts:26](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
25
|
+
Defined in: [play-dom-router/src/create-browser-history.ts:26](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.48/packages/play-dom-router/src/create-browser-history.ts#L26)
|
|
26
26
|
|
|
27
27
|
#### Returns
|
|
28
28
|
|
|
@@ -36,7 +36,7 @@ Defined in: [play-dom-router/src/create-browser-history.ts:26](https://gitlab.co
|
|
|
36
36
|
createHref(path): string;
|
|
37
37
|
```
|
|
38
38
|
|
|
39
|
-
Defined in: [play-dom-router/src/create-browser-history.ts:38](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
39
|
+
Defined in: [play-dom-router/src/create-browser-history.ts:38](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.48/packages/play-dom-router/src/create-browser-history.ts#L38)
|
|
40
40
|
|
|
41
41
|
Create href from path
|
|
42
42
|
|
|
@@ -58,7 +58,7 @@ Create href from path
|
|
|
58
58
|
destroy(): void;
|
|
59
59
|
```
|
|
60
60
|
|
|
61
|
-
Defined in: [play-dom-router/src/create-browser-history.ts:47](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
61
|
+
Defined in: [play-dom-router/src/create-browser-history.ts:47](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.48/packages/play-dom-router/src/create-browser-history.ts#L47)
|
|
62
62
|
|
|
63
63
|
Cleanup.
|
|
64
64
|
|
|
@@ -78,7 +78,7 @@ wrapper is destroyed.
|
|
|
78
78
|
forward(): void;
|
|
79
79
|
```
|
|
80
80
|
|
|
81
|
-
Defined in: [play-dom-router/src/create-browser-history.ts:27](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
81
|
+
Defined in: [play-dom-router/src/create-browser-history.ts:27](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.48/packages/play-dom-router/src/create-browser-history.ts#L27)
|
|
82
82
|
|
|
83
83
|
#### Returns
|
|
84
84
|
|
|
@@ -92,7 +92,7 @@ Defined in: [play-dom-router/src/create-browser-history.ts:27](https://gitlab.co
|
|
|
92
92
|
go(delta): void;
|
|
93
93
|
```
|
|
94
94
|
|
|
95
|
-
Defined in: [play-dom-router/src/create-browser-history.ts:25](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
95
|
+
Defined in: [play-dom-router/src/create-browser-history.ts:25](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.48/packages/play-dom-router/src/create-browser-history.ts#L25)
|
|
96
96
|
|
|
97
97
|
Go back/forward
|
|
98
98
|
|
|
@@ -114,7 +114,7 @@ Go back/forward
|
|
|
114
114
|
push(path, state?): void;
|
|
115
115
|
```
|
|
116
116
|
|
|
117
|
-
Defined in: [play-dom-router/src/create-browser-history.ts:15](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
117
|
+
Defined in: [play-dom-router/src/create-browser-history.ts:15](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.48/packages/play-dom-router/src/create-browser-history.ts#L15)
|
|
118
118
|
|
|
119
119
|
Push new URL to history
|
|
120
120
|
|
|
@@ -137,7 +137,7 @@ Push new URL to history
|
|
|
137
137
|
replace(path, state?): void;
|
|
138
138
|
```
|
|
139
139
|
|
|
140
|
-
Defined in: [play-dom-router/src/create-browser-history.ts:20](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
140
|
+
Defined in: [play-dom-router/src/create-browser-history.ts:20](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.48/packages/play-dom-router/src/create-browser-history.ts#L20)
|
|
141
141
|
|
|
142
142
|
Replace current URL in history
|
|
143
143
|
|
|
@@ -160,7 +160,7 @@ Replace current URL in history
|
|
|
160
160
|
subscribe(listener): () => void;
|
|
161
161
|
```
|
|
162
162
|
|
|
163
|
-
Defined in: [play-dom-router/src/create-browser-history.ts:33](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
163
|
+
Defined in: [play-dom-router/src/create-browser-history.ts:33](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.48/packages/play-dom-router/src/create-browser-history.ts#L33)
|
|
164
164
|
|
|
165
165
|
Subscribe to history changes
|
|
166
166
|
Returns unsubscribe function
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
# Interface: BrowserWindow
|
|
4
4
|
|
|
5
|
-
Defined in: [play-dom-router/src/create-browser-history.ts:59](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
5
|
+
Defined in: [play-dom-router/src/create-browser-history.ts:59](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.48/packages/play-dom-router/src/create-browser-history.ts#L59)
|
|
6
6
|
|
|
7
7
|
Minimal window interface for createBrowserHistory
|
|
8
8
|
|
|
@@ -14,17 +14,17 @@ Avoids coupling to `Window & typeof globalThis` which varies across environments
|
|
|
14
14
|
|
|
15
15
|
| Property | Modifier | Type | Defined in |
|
|
16
16
|
| ----------------------------------------- | ---------- | --------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
17
|
-
| <a id="property-history"></a> `history` | `public` | `object` | [play-dom-router/src/create-browser-history.ts:60](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
18
|
-
| `history.state` | `readonly` | `unknown` | [play-dom-router/src/create-browser-history.ts:61](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
19
|
-
| `history.back` | `public` | `void` | [play-dom-router/src/create-browser-history.ts:65](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
20
|
-
| `history.forward` | `public` | `void` | [play-dom-router/src/create-browser-history.ts:66](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
21
|
-
| `history.go` | `public` | `void` | [play-dom-router/src/create-browser-history.ts:64](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
22
|
-
| `history.pushState` | `public` | `void` | [play-dom-router/src/create-browser-history.ts:62](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
23
|
-
| `history.replaceState` | `public` | `void` | [play-dom-router/src/create-browser-history.ts:63](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
24
|
-
| <a id="property-location"></a> `location` | `public` | `object` | [play-dom-router/src/create-browser-history.ts:68](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
25
|
-
| `location.hash` | `readonly` | `string` | [play-dom-router/src/create-browser-history.ts:71](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
26
|
-
| `location.pathname` | `readonly` | `string` | [play-dom-router/src/create-browser-history.ts:69](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
27
|
-
| `location.search` | `readonly` | `string` | [play-dom-router/src/create-browser-history.ts:70](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
17
|
+
| <a id="property-history"></a> `history` | `public` | `object` | [play-dom-router/src/create-browser-history.ts:60](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.48/packages/play-dom-router/src/create-browser-history.ts#L60) |
|
|
18
|
+
| `history.state` | `readonly` | `unknown` | [play-dom-router/src/create-browser-history.ts:61](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.48/packages/play-dom-router/src/create-browser-history.ts#L61) |
|
|
19
|
+
| `history.back` | `public` | `void` | [play-dom-router/src/create-browser-history.ts:65](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.48/packages/play-dom-router/src/create-browser-history.ts#L65) |
|
|
20
|
+
| `history.forward` | `public` | `void` | [play-dom-router/src/create-browser-history.ts:66](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.48/packages/play-dom-router/src/create-browser-history.ts#L66) |
|
|
21
|
+
| `history.go` | `public` | `void` | [play-dom-router/src/create-browser-history.ts:64](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.48/packages/play-dom-router/src/create-browser-history.ts#L64) |
|
|
22
|
+
| `history.pushState` | `public` | `void` | [play-dom-router/src/create-browser-history.ts:62](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.48/packages/play-dom-router/src/create-browser-history.ts#L62) |
|
|
23
|
+
| `history.replaceState` | `public` | `void` | [play-dom-router/src/create-browser-history.ts:63](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.48/packages/play-dom-router/src/create-browser-history.ts#L63) |
|
|
24
|
+
| <a id="property-location"></a> `location` | `public` | `object` | [play-dom-router/src/create-browser-history.ts:68](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.48/packages/play-dom-router/src/create-browser-history.ts#L68) |
|
|
25
|
+
| `location.hash` | `readonly` | `string` | [play-dom-router/src/create-browser-history.ts:71](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.48/packages/play-dom-router/src/create-browser-history.ts#L71) |
|
|
26
|
+
| `location.pathname` | `readonly` | `string` | [play-dom-router/src/create-browser-history.ts:69](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.48/packages/play-dom-router/src/create-browser-history.ts#L69) |
|
|
27
|
+
| `location.search` | `readonly` | `string` | [play-dom-router/src/create-browser-history.ts:70](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.48/packages/play-dom-router/src/create-browser-history.ts#L70) |
|
|
28
28
|
|
|
29
29
|
## Methods
|
|
30
30
|
|
|
@@ -34,7 +34,7 @@ Avoids coupling to `Window & typeof globalThis` which varies across environments
|
|
|
34
34
|
addEventListener(type, listener): void;
|
|
35
35
|
```
|
|
36
36
|
|
|
37
|
-
Defined in: [play-dom-router/src/create-browser-history.ts:73](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
37
|
+
Defined in: [play-dom-router/src/create-browser-history.ts:73](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.48/packages/play-dom-router/src/create-browser-history.ts#L73)
|
|
38
38
|
|
|
39
39
|
#### Parameters
|
|
40
40
|
|
|
@@ -55,7 +55,7 @@ Defined in: [play-dom-router/src/create-browser-history.ts:73](https://gitlab.co
|
|
|
55
55
|
removeEventListener(type, listener): void;
|
|
56
56
|
```
|
|
57
57
|
|
|
58
|
-
Defined in: [play-dom-router/src/create-browser-history.ts:74](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
58
|
+
Defined in: [play-dom-router/src/create-browser-history.ts:74](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.48/packages/play-dom-router/src/create-browser-history.ts#L74)
|
|
59
59
|
|
|
60
60
|
#### Parameters
|
|
61
61
|
|