@xmachines/docs 1.0.0-beta.9 → 1.1.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 +135 -7
- package/api/@xmachines/play/README.md +159 -39
- package/api/@xmachines/play/classes/NonNullableError.md +189 -0
- package/api/@xmachines/play/classes/PlayError.md +251 -0
- package/api/@xmachines/play/functions/assertNonNullable.md +56 -0
- package/api/@xmachines/play/type-aliases/PlayEvent.md +6 -6
- package/api/@xmachines/play-actor/README.md +153 -160
- package/api/@xmachines/play-actor/classes/AbstractActor.md +106 -121
- package/api/@xmachines/play-actor/functions/attachRenderErrorHandler.md +40 -0
- package/api/@xmachines/play-actor/functions/toAtomState.md +33 -0
- package/api/@xmachines/play-actor/functions/typedSpec.md +54 -0
- package/api/@xmachines/play-actor/interfaces/BaseActorProviderProps.md +46 -0
- package/api/@xmachines/play-actor/interfaces/BaseViewContextValue.md +33 -0
- package/api/@xmachines/play-actor/interfaces/PlaySpec.md +28 -0
- package/api/@xmachines/play-actor/interfaces/Routable.md +6 -21
- package/api/@xmachines/play-actor/interfaces/Viewable.md +12 -6
- package/api/@xmachines/play-dom/README.md +385 -0
- package/api/@xmachines/play-dom/classes/PlayRenderer.md +115 -0
- package/api/@xmachines/play-dom/functions/createPlayUI.md +28 -0
- package/api/@xmachines/play-dom/functions/createRenderer.md +44 -0
- package/api/@xmachines/play-dom/functions/defineRegistry.md +26 -0
- package/api/@xmachines/play-dom/functions/renderSpec.md +67 -0
- package/api/@xmachines/play-dom/interfaces/ComponentContext.md +23 -0
- package/api/@xmachines/play-dom/interfaces/CreatePlayUIOptions.md +34 -0
- package/api/@xmachines/play-dom/interfaces/DefineRegistryResult.md +17 -0
- package/api/@xmachines/play-dom/interfaces/DomRenderContext.md +28 -0
- package/api/@xmachines/play-dom/interfaces/EventHandle.md +15 -0
- package/api/@xmachines/play-dom/interfaces/MountOptions.md +18 -0
- package/api/@xmachines/play-dom/interfaces/PlayDomOptions.md +30 -0
- package/api/@xmachines/play-dom/interfaces/RenderSpecOptions.md +26 -0
- package/api/@xmachines/play-dom/interfaces/UIProviderOptions.md +32 -0
- package/api/@xmachines/play-dom/type-aliases/ActionFn.md +46 -0
- package/api/@xmachines/play-dom/type-aliases/Actions.md +18 -0
- package/api/@xmachines/play-dom/type-aliases/BaseComponentProps.md +114 -0
- package/api/@xmachines/play-dom/type-aliases/CatalogHasActions.md +25 -0
- package/api/@xmachines/play-dom/type-aliases/ComponentFn.md +26 -0
- package/api/@xmachines/play-dom/type-aliases/ComponentRegistry.md +15 -0
- package/api/@xmachines/play-dom/type-aliases/ConfirmHandler.md +44 -0
- package/api/@xmachines/play-dom/type-aliases/DefineRegistryOptions.md +39 -0
- package/api/@xmachines/play-dom/type-aliases/DomComponentRenderer.md +20 -0
- package/api/@xmachines/play-dom/type-aliases/DomRegistry.md +9 -0
- package/api/@xmachines/play-dom/type-aliases/DomSchema.md +9 -0
- package/api/@xmachines/play-dom/type-aliases/MountFn.md +27 -0
- package/api/@xmachines/play-dom/type-aliases/RenderErrorHandler.md +23 -0
- package/api/@xmachines/play-dom/type-aliases/SetState.md +30 -0
- package/api/@xmachines/play-dom/variables/schema.md +62 -0
- package/api/@xmachines/play-dom-router/README.md +272 -0
- package/api/@xmachines/play-dom-router/functions/connectRouter.md +43 -0
- package/api/@xmachines/{play-router → play-dom-router}/functions/createBrowserHistory.md +10 -2
- package/api/@xmachines/play-dom-router/functions/createRouteMap.md +39 -0
- package/api/@xmachines/play-dom-router/functions/createRouter.md +54 -0
- package/api/@xmachines/play-dom-router/interfaces/BrowserHistory.md +176 -0
- package/api/@xmachines/play-dom-router/interfaces/BrowserWindow.md +69 -0
- package/api/@xmachines/play-dom-router/interfaces/ConnectRouterOptions.md +15 -0
- package/api/@xmachines/play-dom-router/interfaces/PlayRouteEvent.md +129 -0
- package/api/@xmachines/play-dom-router/interfaces/RoutableActor.md +68 -0
- package/api/@xmachines/play-dom-router/interfaces/RouteLookupContract.md +54 -0
- package/api/@xmachines/play-dom-router/interfaces/RouteMap.md +121 -0
- package/api/@xmachines/play-dom-router/interfaces/RouteMapOptions.md +13 -0
- package/api/@xmachines/play-dom-router/interfaces/RouteMapping.md +27 -0
- package/api/@xmachines/play-dom-router/interfaces/RouterBridge.md +104 -0
- package/api/@xmachines/play-dom-router/interfaces/VanillaRouter.md +28 -0
- package/api/@xmachines/play-react/README.md +185 -333
- package/api/@xmachines/play-react/classes/PlayErrorBoundary.md +46 -42
- package/api/@xmachines/play-react/functions/ActionProvider.md +21 -0
- package/api/@xmachines/play-react/functions/JSONUIProvider.md +21 -0
- package/api/@xmachines/play-react/functions/Renderer.md +21 -0
- package/api/@xmachines/play-react/functions/StateProvider.md +27 -0
- package/api/@xmachines/play-react/functions/ValidationProvider.md +21 -0
- package/api/@xmachines/play-react/functions/VisibilityProvider.md +21 -0
- package/api/@xmachines/play-react/functions/defineRegistry.md +49 -0
- package/api/@xmachines/play-react/functions/useActor.md +13 -0
- package/api/@xmachines/play-react/functions/useBoundProp.md +45 -0
- package/api/@xmachines/play-react/functions/usePlayView.md +32 -0
- package/api/@xmachines/play-react/functions/useSignalEffect.md +29 -20
- package/api/@xmachines/play-react/interfaces/ActionProviderProps.md +15 -0
- package/api/@xmachines/play-react/interfaces/ActorProviderProps.md +27 -0
- package/api/@xmachines/play-react/interfaces/ComponentContext.md +37 -0
- package/api/@xmachines/play-react/interfaces/JSONUIProviderProps.md +22 -0
- package/api/@xmachines/play-react/interfaces/PlayErrorBoundaryProps.md +7 -7
- package/api/@xmachines/play-react/interfaces/PlayErrorBoundaryState.md +6 -6
- package/api/@xmachines/play-react/interfaces/PlayUIProviderProps.md +26 -0
- package/api/@xmachines/play-react/interfaces/RendererProps.md +17 -0
- package/api/@xmachines/play-react/interfaces/StateProviderProps.md +16 -0
- package/api/@xmachines/play-react/interfaces/ValidationProviderProps.md +14 -0
- package/api/@xmachines/play-react/interfaces/ViewContextValue.md +20 -0
- package/api/@xmachines/play-react/interfaces/VisibilityProviderProps.md +13 -0
- package/api/@xmachines/play-react/type-aliases/AnyPlayActor.md +11 -0
- package/api/@xmachines/play-react/type-aliases/ComponentFn.md +36 -0
- package/api/@xmachines/play-react/type-aliases/RenderErrorHandler.md +23 -0
- package/api/@xmachines/play-react/variables/ActorProvider.md +33 -0
- package/api/@xmachines/play-react/variables/PlayRenderer.md +6 -56
- package/api/@xmachines/play-react/variables/PlayUIProvider.md +43 -0
- package/api/@xmachines/play-react-router/README.md +130 -115
- package/api/@xmachines/play-react-router/classes/ReactRouterBridge.md +19 -242
- package/api/@xmachines/play-react-router/classes/RouteMap.md +48 -36
- package/api/@xmachines/play-react-router/functions/createPlayRouterProvider.md +45 -0
- package/api/@xmachines/play-react-router/functions/createRouteMap.md +39 -0
- package/api/@xmachines/play-react-router/functions/createRouteMapFromTree.md +23 -12
- package/api/@xmachines/play-react-router/interfaces/PlayActor.md +68 -0
- package/api/@xmachines/play-react-router/interfaces/PlayRouteEvent.md +22 -12
- package/api/@xmachines/play-react-router/interfaces/PlayRouterProviderBaseProps.md +32 -0
- package/api/@xmachines/play-react-router/interfaces/PlayRouterProviderProps.md +25 -9
- package/api/@xmachines/play-react-router/interfaces/RouteMapOptions.md +13 -0
- package/api/@xmachines/play-react-router/interfaces/RouteMapping.md +19 -9
- package/api/@xmachines/play-react-router/interfaces/RouterBridge.md +8 -8
- package/api/@xmachines/play-react-router/type-aliases/PlayRouterBridgeConstructor.md +30 -0
- package/api/@xmachines/play-react-router/variables/PlayRouterProvider.md +32 -0
- package/api/@xmachines/play-router/README.md +275 -352
- package/api/@xmachines/play-router/classes/RouteMap.md +149 -0
- package/api/@xmachines/play-router/classes/RouterBridgeBase.md +21 -221
- package/api/@xmachines/play-router/functions/buildPlayRouteEvent.md +32 -0
- package/api/@xmachines/play-router/functions/buildRouteTree.md +12 -2
- package/api/@xmachines/play-router/functions/createRouteMap.md +22 -36
- package/api/@xmachines/play-router/functions/createRouteMapFromTree.md +46 -0
- package/api/@xmachines/play-router/functions/detectDuplicateRoutes.md +14 -7
- package/api/@xmachines/play-router/functions/extractMachineRoutes.md +10 -46
- package/api/@xmachines/play-router/functions/extractQuery.md +22 -0
- package/api/@xmachines/play-router/functions/extractRouteParams.md +54 -0
- package/api/@xmachines/play-router/functions/findRouteById.md +2 -2
- package/api/@xmachines/play-router/functions/findRouteByPath.md +2 -2
- package/api/@xmachines/play-router/functions/getNavigableRoutes.md +2 -2
- package/api/@xmachines/play-router/functions/getRoutableRoutes.md +2 -2
- package/api/@xmachines/play-router/functions/getTransitionReachableRoutes.md +43 -0
- package/api/@xmachines/play-router/functions/isRouteReachable.md +38 -0
- package/api/@xmachines/play-router/functions/machineToGraph.md +19 -0
- package/api/@xmachines/play-router/functions/routeExists.md +2 -2
- package/api/@xmachines/play-router/functions/sanitizePathname.md +40 -0
- package/api/@xmachines/play-router/functions/validateRouteFormat.md +10 -9
- package/api/@xmachines/play-router/functions/validateStateExists.md +9 -9
- package/api/@xmachines/play-router/interfaces/BuildPlayRouteEventOptions.md +13 -0
- package/api/@xmachines/play-router/interfaces/LocationLike.md +27 -0
- package/api/@xmachines/play-router/interfaces/MachineEdgeData.md +15 -0
- package/api/@xmachines/play-router/interfaces/MachineNodeData.md +17 -0
- package/api/@xmachines/play-router/interfaces/PlayActor.md +68 -0
- package/api/@xmachines/play-router/interfaces/PlayRouteEvent.md +22 -12
- package/api/@xmachines/play-router/interfaces/ResolvedRoutePath.md +17 -0
- package/api/@xmachines/play-router/interfaces/RoutableActor.md +64 -0
- package/api/@xmachines/play-router/interfaces/RouteInfo.md +11 -11
- package/api/@xmachines/play-router/interfaces/RouteMapOptions.md +13 -0
- package/api/@xmachines/play-router/interfaces/RouteMapping.md +27 -0
- package/api/@xmachines/play-router/interfaces/RouteMatch.md +12 -0
- package/api/@xmachines/play-router/interfaces/RouteNode.md +13 -13
- package/api/@xmachines/play-router/interfaces/RouteObject.md +5 -5
- package/api/@xmachines/play-router/interfaces/RouteTree.md +8 -7
- package/api/@xmachines/play-router/interfaces/RouteWatcherHandle.md +55 -0
- package/api/@xmachines/play-router/interfaces/RouterBridge.md +8 -8
- package/api/@xmachines/play-router/interfaces/WindowLike.md +65 -0
- package/api/@xmachines/play-router/type-aliases/MachineGraph.md +20 -0
- package/api/@xmachines/play-router/type-aliases/RouteMetadata.md +2 -2
- package/api/@xmachines/play-signals/README.md +117 -65
- package/api/@xmachines/play-signals/functions/watchSignal.md +42 -0
- package/api/@xmachines/play-signals/interfaces/ComputedOptions.md +7 -5
- package/api/@xmachines/play-signals/interfaces/SignalComputed.md +3 -3
- package/api/@xmachines/play-signals/interfaces/SignalOptions.md +7 -5
- package/api/@xmachines/play-signals/interfaces/SignalState.md +4 -4
- package/api/@xmachines/play-signals/interfaces/SignalWatcher.md +5 -5
- package/api/@xmachines/play-signals/namespaces/Signal/README.md +1 -1
- package/api/@xmachines/play-signals/namespaces/Signal/classes/Computed.md +7 -7
- package/api/@xmachines/play-signals/namespaces/Signal/classes/State.md +8 -8
- package/api/@xmachines/play-signals/namespaces/Signal/interfaces/Options.md +7 -7
- package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/README.md +1 -1
- package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/classes/Watcher.md +9 -9
- package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/currentComputed.md +2 -2
- package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/hasSinks.md +2 -2
- package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/hasSources.md +2 -2
- package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/introspectSinks.md +2 -2
- package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/introspectSources.md +2 -2
- package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/untrack.md +2 -2
- package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/variables/unwatched.md +2 -2
- package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/variables/watched.md +2 -2
- package/api/@xmachines/play-signals/namespaces/Signal/variables/isComputed.md +2 -2
- package/api/@xmachines/play-signals/namespaces/Signal/variables/isState.md +2 -2
- package/api/@xmachines/play-signals/namespaces/Signal/variables/isWatcher.md +2 -2
- package/api/@xmachines/play-signals/type-aliases/WatcherNotify.md +2 -2
- package/api/@xmachines/play-solid/README.md +196 -233
- package/api/@xmachines/play-solid/functions/ActionProvider.md +19 -0
- package/api/@xmachines/play-solid/functions/JSONUIProvider.md +21 -0
- package/api/@xmachines/play-solid/functions/Renderer.md +21 -0
- package/api/@xmachines/play-solid/functions/StateProvider.md +19 -0
- package/api/@xmachines/play-solid/functions/ValidationProvider.md +19 -0
- package/api/@xmachines/play-solid/functions/VisibilityProvider.md +20 -0
- package/api/@xmachines/play-solid/functions/defineRegistry.md +49 -0
- package/api/@xmachines/play-solid/functions/useAction.md +24 -0
- package/api/@xmachines/play-solid/functions/useActions.md +13 -0
- package/api/@xmachines/play-solid/functions/useActor.md +13 -0
- package/api/@xmachines/play-solid/functions/useBoundProp.md +45 -0
- package/api/@xmachines/play-solid/functions/useFieldValidation.md +29 -0
- package/api/@xmachines/play-solid/functions/useIsVisible.md +19 -0
- package/api/@xmachines/play-solid/functions/useOptionalValidation.md +13 -0
- package/api/@xmachines/play-solid/functions/usePlayView.md +30 -0
- package/api/@xmachines/play-solid/functions/useStateBinding.md +25 -0
- package/api/@xmachines/play-solid/functions/useStateStore.md +13 -0
- package/api/@xmachines/play-solid/functions/useStateValue.md +25 -0
- package/api/@xmachines/play-solid/functions/useVisibility.md +13 -0
- package/api/@xmachines/play-solid/interfaces/ActionProviderProps.md +12 -0
- package/api/@xmachines/play-solid/interfaces/ActorProviderProps.md +30 -0
- package/api/@xmachines/play-solid/interfaces/ComponentContext.md +37 -0
- package/api/@xmachines/play-solid/interfaces/DefineRegistryResult.md +15 -0
- package/api/@xmachines/play-solid/interfaces/JSONUIProviderProps.md +22 -0
- package/api/@xmachines/play-solid/interfaces/PlayUIProviderProps.md +26 -0
- package/api/@xmachines/play-solid/interfaces/RendererProps.md +17 -0
- package/api/@xmachines/play-solid/interfaces/StateProviderProps.md +13 -0
- package/api/@xmachines/play-solid/interfaces/ValidationProviderProps.md +11 -0
- package/api/@xmachines/play-solid/interfaces/ViewContextValue.md +21 -0
- package/api/@xmachines/play-solid/type-aliases/AnyPlayActor.md +11 -0
- package/api/@xmachines/play-solid/type-aliases/ComponentFn.md +36 -0
- package/api/@xmachines/play-solid/type-aliases/ComponentRegistry.md +11 -0
- package/api/@xmachines/play-solid/type-aliases/RenderErrorHandler.md +23 -0
- package/api/@xmachines/play-solid/type-aliases/SetState.md +21 -0
- package/api/@xmachines/play-solid/type-aliases/VisibilityProviderProps.md +9 -0
- package/api/@xmachines/play-solid/variables/ActorContext.md +13 -0
- package/api/@xmachines/play-solid/variables/ActorProvider.md +27 -0
- package/api/@xmachines/play-solid/variables/PlayRenderer.md +6 -62
- package/api/@xmachines/play-solid/variables/PlayUIProvider.md +26 -0
- package/api/@xmachines/play-solid-router/README.md +151 -559
- package/api/@xmachines/play-solid-router/classes/RouteMap.md +31 -32
- package/api/@xmachines/play-solid-router/classes/SolidRouterBridge.md +27 -242
- package/api/@xmachines/play-solid-router/functions/createPlayRouterProvider.md +44 -0
- package/api/@xmachines/play-solid-router/functions/createRouteMap.md +18 -11
- package/api/@xmachines/play-solid-router/interfaces/AbstractActor.md +99 -114
- package/api/@xmachines/play-solid-router/interfaces/PlayActor.md +68 -0
- package/api/@xmachines/play-solid-router/interfaces/PlayRouteEvent.md +22 -12
- package/api/@xmachines/play-solid-router/interfaces/PlayRouterProviderBaseProps.md +30 -0
- package/api/@xmachines/play-solid-router/interfaces/PlayRouterProviderProps.md +25 -9
- package/api/@xmachines/play-solid-router/interfaces/RouteMapOptions.md +13 -0
- package/api/@xmachines/play-solid-router/interfaces/RouteMapping.md +20 -7
- package/api/@xmachines/play-solid-router/interfaces/RouterBridge.md +8 -8
- package/api/@xmachines/play-solid-router/type-aliases/PlayRouterBridgeConstructor.md +34 -0
- package/api/@xmachines/play-solid-router/type-aliases/RoutableActor.md +8 -4
- package/api/@xmachines/play-solid-router/type-aliases/SolidRouterHooks.md +22 -19
- package/api/@xmachines/play-solid-router/variables/PlayRouterProvider.md +52 -0
- package/api/@xmachines/play-svelte/README.md +270 -0
- package/api/@xmachines/play-svelte/functions/defineRegistry.md +31 -0
- package/api/@xmachines/play-svelte/functions/getActorContext.md +21 -0
- package/api/@xmachines/play-svelte/functions/getPlayViewContext.md +19 -0
- package/api/@xmachines/play-svelte/functions/setActorContext.md +19 -0
- package/api/@xmachines/play-svelte/interfaces/ActorProviderProps.md +44 -0
- package/api/@xmachines/play-svelte/interfaces/BaseComponentProps.md +29 -0
- package/api/@xmachines/play-svelte/interfaces/ComponentContext.md +29 -0
- package/api/@xmachines/play-svelte/interfaces/DefineRegistryOptions.md +24 -0
- package/api/@xmachines/play-svelte/interfaces/PlayUIProviderProps.md +43 -0
- package/api/@xmachines/play-svelte/interfaces/ViewContextValue.md +24 -0
- package/api/@xmachines/play-svelte/type-aliases/ActionFn.md +30 -0
- package/api/@xmachines/play-svelte/type-aliases/Actions.md +17 -0
- package/api/@xmachines/play-svelte/type-aliases/AnyPlayActor.md +11 -0
- package/api/@xmachines/play-svelte/type-aliases/ComponentFn.md +18 -0
- package/api/@xmachines/play-svelte/type-aliases/JSONUIProviderProps.md +7 -0
- package/api/@xmachines/play-svelte/type-aliases/PlayRenderer.md +9 -0
- package/api/@xmachines/play-svelte/type-aliases/RenderErrorHandler.md +23 -0
- package/api/@xmachines/play-svelte/type-aliases/SetState.md +21 -0
- package/api/@xmachines/play-svelte/variables/PlayRenderer.md +9 -0
- package/api/@xmachines/play-svelte-spa-router/README.md +197 -0
- package/api/@xmachines/play-svelte-spa-router/classes/RouteMap.md +149 -0
- package/api/@xmachines/play-svelte-spa-router/functions/connectRouter.md +32 -0
- package/api/@xmachines/play-svelte-spa-router/functions/createRouteMap.md +39 -0
- package/api/@xmachines/play-svelte-spa-router/interfaces/ConnectRouterOptions.md +17 -0
- package/api/@xmachines/play-svelte-spa-router/interfaces/PlayRouteEvent.md +129 -0
- package/api/@xmachines/play-svelte-spa-router/interfaces/RouteMapOptions.md +13 -0
- package/api/@xmachines/play-svelte-spa-router/interfaces/RouteMapping.md +27 -0
- package/api/@xmachines/play-svelte-spa-router/interfaces/RouterBridge.md +104 -0
- package/api/@xmachines/play-svelte-spa-router/interfaces/WindowLike.md +65 -0
- package/api/@xmachines/play-svelte-spa-router/type-aliases/RoutableActor.md +9 -0
- package/api/@xmachines/play-sveltekit-router/README.md +212 -0
- package/api/@xmachines/play-sveltekit-router/classes/RouteMap.md +149 -0
- package/api/@xmachines/play-sveltekit-router/functions/connectRouter.md +32 -0
- package/api/@xmachines/play-sveltekit-router/functions/createRouteMap.md +39 -0
- package/api/@xmachines/play-sveltekit-router/interfaces/ConnectRouterOptions.md +13 -0
- package/api/@xmachines/play-sveltekit-router/interfaces/LocationLike.md +27 -0
- package/api/@xmachines/play-sveltekit-router/interfaces/PlayRouteEvent.md +129 -0
- package/api/@xmachines/play-sveltekit-router/interfaces/RouteMapOptions.md +13 -0
- package/api/@xmachines/play-sveltekit-router/interfaces/RouteMapping.md +27 -0
- package/api/@xmachines/play-sveltekit-router/interfaces/RouterBridge.md +104 -0
- package/api/@xmachines/play-sveltekit-router/type-aliases/RoutableActor.md +9 -0
- package/api/@xmachines/play-tanstack-react-router/README.md +155 -125
- package/api/@xmachines/play-tanstack-react-router/classes/RouteMap.md +48 -36
- package/api/@xmachines/play-tanstack-react-router/classes/TanStackReactRouterBridge.md +31 -252
- package/api/@xmachines/play-tanstack-react-router/functions/createPlayRouterProvider.md +45 -0
- package/api/@xmachines/play-tanstack-react-router/functions/createRouteMap.md +22 -36
- package/api/@xmachines/play-tanstack-react-router/functions/createRouteMapFromTree.md +23 -12
- package/api/@xmachines/play-tanstack-react-router/functions/extractMachineRoutes.md +28 -0
- package/api/@xmachines/play-tanstack-react-router/interfaces/PlayActor.md +68 -0
- package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouteEvent.md +22 -12
- package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouterProviderBaseProps.md +32 -0
- package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouterProviderProps.md +25 -9
- package/api/@xmachines/play-tanstack-react-router/interfaces/RouteMapOptions.md +13 -0
- package/api/@xmachines/play-tanstack-react-router/interfaces/RouteMapping.md +19 -9
- package/api/@xmachines/play-tanstack-react-router/interfaces/RouteNavigateEvent.md +6 -6
- package/api/@xmachines/play-tanstack-react-router/interfaces/RouterBridge.md +8 -8
- package/api/@xmachines/play-tanstack-react-router/type-aliases/PlayRouterBridgeConstructor.md +30 -0
- package/api/@xmachines/play-tanstack-react-router/type-aliases/TanStackRouterInstance.md +2 -2
- package/api/@xmachines/play-tanstack-react-router/type-aliases/TanStackRouterLike.md +40 -18
- package/api/@xmachines/play-tanstack-react-router/variables/PlayRouterProvider.md +34 -0
- package/api/@xmachines/play-tanstack-router/README.md +61 -0
- package/api/@xmachines/play-tanstack-router/classes/TanStackRouterBridgeBase.md +131 -0
- package/api/@xmachines/play-tanstack-router/type-aliases/TanStackRouteMapLike.md +57 -0
- package/api/@xmachines/play-tanstack-router/type-aliases/TanStackRouterLike.md +100 -0
- package/api/@xmachines/play-tanstack-solid-router/README.md +216 -175
- package/api/@xmachines/play-tanstack-solid-router/classes/RouteMap.md +31 -32
- package/api/@xmachines/play-tanstack-solid-router/classes/TanStackSolidRouterBridge.md +121 -0
- package/api/@xmachines/play-tanstack-solid-router/functions/createPlayRouterProvider.md +44 -0
- package/api/@xmachines/play-tanstack-solid-router/functions/createRouteMap.md +18 -11
- package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayActor.md +68 -0
- package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayRouteEvent.md +22 -12
- package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayRouterProviderBaseProps.md +31 -0
- package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayRouterProviderProps.md +23 -9
- package/api/@xmachines/play-tanstack-solid-router/interfaces/RouteMapOptions.md +13 -0
- package/api/@xmachines/play-tanstack-solid-router/interfaces/RouteMapping.md +14 -10
- package/api/@xmachines/play-tanstack-solid-router/interfaces/RouterBridge.md +8 -8
- package/api/@xmachines/play-tanstack-solid-router/type-aliases/PlayRouterBridgeConstructor.md +30 -0
- package/api/@xmachines/play-tanstack-solid-router/type-aliases/RoutableActor.md +8 -4
- package/api/@xmachines/play-tanstack-solid-router/type-aliases/TanStackRouterInstance.md +3 -3
- package/api/@xmachines/play-tanstack-solid-router/type-aliases/TanStackRouterLike.md +40 -18
- package/api/@xmachines/play-tanstack-solid-router/variables/PlayRouterProvider.md +33 -0
- package/api/@xmachines/play-vue/README.md +190 -210
- package/api/@xmachines/play-vue/functions/defineRegistry.md +32 -0
- package/api/@xmachines/play-vue/functions/getPlayViewContext.md +28 -0
- package/api/@xmachines/play-vue/functions/useActor.md +13 -0
- package/api/@xmachines/play-vue/functions/useBoundProp.md +45 -0
- package/api/@xmachines/play-vue/interfaces/ActionProviderProps.md +12 -0
- package/api/@xmachines/play-vue/interfaces/ActorProviderProps.md +25 -0
- package/api/@xmachines/play-vue/interfaces/ComponentContext.md +37 -0
- package/api/@xmachines/play-vue/interfaces/DefineRegistryResult.md +15 -0
- package/api/@xmachines/play-vue/interfaces/JSONUIProviderProps.md +21 -0
- package/api/@xmachines/play-vue/interfaces/PlayUIProviderProps.md +24 -0
- package/api/@xmachines/play-vue/interfaces/RendererProps.md +17 -0
- package/api/@xmachines/play-vue/interfaces/StateProviderProps.md +15 -0
- package/api/@xmachines/play-vue/interfaces/ValidationProviderProps.md +11 -0
- package/api/@xmachines/play-vue/interfaces/ViewContextValue.md +21 -0
- package/api/@xmachines/play-vue/interfaces/VisibilityProviderProps.md +5 -0
- package/api/@xmachines/play-vue/type-aliases/AnyPlayActor.md +11 -0
- package/api/@xmachines/play-vue/type-aliases/ComponentEntry.md +16 -0
- package/api/@xmachines/play-vue/type-aliases/ComponentFn.md +35 -0
- package/api/@xmachines/play-vue/type-aliases/ComponentsMap.md +15 -0
- package/api/@xmachines/play-vue/type-aliases/DefineRegistryOptions.md +22 -0
- package/api/@xmachines/play-vue/type-aliases/RenderErrorHandler.md +23 -0
- package/api/@xmachines/play-vue/variables/ActionProvider.md +64 -0
- package/api/@xmachines/play-vue/variables/JSONUIProvider.md +105 -0
- package/api/@xmachines/play-vue/variables/PlayRenderer.md +2 -2
- package/api/@xmachines/play-vue/variables/Renderer.md +88 -0
- package/api/@xmachines/play-vue/variables/StateProvider.md +79 -0
- package/api/@xmachines/play-vue/variables/ValidationProvider.md +55 -0
- package/api/@xmachines/play-vue/variables/VisibilityProvider.md +40 -0
- package/api/@xmachines/play-vue-router/README.md +173 -486
- package/api/@xmachines/play-vue-router/classes/RouteMap.md +56 -116
- package/api/@xmachines/play-vue-router/classes/VueRouterBridge.md +23 -271
- package/api/@xmachines/play-vue-router/functions/createRouteMap.md +26 -6
- package/api/@xmachines/play-vue-router/interfaces/PlayActor.md +68 -0
- package/api/@xmachines/play-vue-router/interfaces/PlayRouteEvent.md +22 -12
- package/api/@xmachines/play-vue-router/interfaces/RouteMapOptions.md +13 -0
- package/api/@xmachines/play-vue-router/interfaces/RouteMapping.md +20 -8
- package/api/@xmachines/play-vue-router/interfaces/RouterBridge.md +8 -8
- package/api/@xmachines/play-vue-router/type-aliases/RoutableActor.md +8 -4
- package/api/@xmachines/play-vue-router/variables/PlayRouterProvider.md +12 -6
- package/api/@xmachines/play-xstate/README.md +203 -354
- package/api/@xmachines/play-xstate/classes/PlayerActor.md +195 -201
- package/api/@xmachines/play-xstate/functions/buildRouteUrl.md +24 -20
- package/api/@xmachines/play-xstate/functions/composeGuards.md +8 -3
- package/api/@xmachines/play-xstate/functions/composeGuardsOr.md +8 -3
- package/api/@xmachines/play-xstate/functions/contextFieldMatches.md +43 -0
- package/api/@xmachines/play-xstate/functions/definePlayer.md +14 -63
- package/api/@xmachines/play-xstate/functions/deriveRoute.md +3 -3
- package/api/@xmachines/play-xstate/functions/eventMatches.md +8 -3
- package/api/@xmachines/play-xstate/functions/formatPlayRouteTransitions.md +3 -3
- package/api/@xmachines/play-xstate/functions/hasContext.md +8 -5
- package/api/@xmachines/play-xstate/functions/isAbsoluteRoute.md +2 -2
- package/api/@xmachines/play-xstate/functions/negateGuard.md +8 -3
- package/api/@xmachines/play-xstate/interfaces/PlayerConfig.md +10 -14
- package/api/@xmachines/play-xstate/interfaces/PlayerFactoryResumeOptions.md +22 -0
- package/api/@xmachines/play-xstate/interfaces/PlayerOptions.md +14 -16
- package/api/@xmachines/play-xstate/interfaces/RouteContext.md +15 -13
- package/api/@xmachines/play-xstate/interfaces/RouteObject.md +17 -0
- package/api/@xmachines/play-xstate/type-aliases/ComposedGuard.md +8 -3
- package/api/@xmachines/play-xstate/type-aliases/Guard.md +8 -6
- package/api/@xmachines/play-xstate/type-aliases/GuardArray.md +9 -7
- package/api/@xmachines/play-xstate/type-aliases/PlayerFactory.md +15 -18
- package/api/@xmachines/play-xstate/type-aliases/RouteMachineConfig.md +15 -5
- package/api/@xmachines/play-xstate/type-aliases/RouteMetadata.md +9 -0
- package/api/@xmachines/play-xstate/type-aliases/RouteStateNode.md +22 -6
- package/api/@xmachines/shared/README.md +95 -295
- package/api/@xmachines/shared/vite-aliases/README.md +11 -0
- package/api/@xmachines/shared/vite-aliases/functions/xmAliases.md +38 -0
- package/api/@xmachines/shared/vite-aliases/functions/xmCacheDir.md +27 -0
- package/api/@xmachines/shared/vite-aliases/functions/xmOptimizeDeps.md +35 -0
- package/api/@xmachines/shared/vite-aliases/functions/xmResolve.md +42 -0
- package/api/@xmachines/shared/vite-aliases/functions/xmSvelteRunes.md +33 -0
- package/api/@xmachines/shared/vitest/README.md +12 -0
- package/api/@xmachines/shared/vitest/functions/defineXmBrowserConfig.md +42 -0
- package/api/@xmachines/shared/vitest/functions/defineXmVitestConfig.md +34 -0
- package/api/@xmachines/shared/vitest/interfaces/XmBrowserConfigOptions.md +16 -0
- package/api/README.md +6 -7
- package/api/llms.txt +72 -23
- package/contributing/README.md +10 -0
- package/contributing/architecture.md +601 -0
- package/contributing/configuration.md +368 -0
- package/contributing/deployment.md +333 -0
- package/contributing/development.md +503 -0
- package/contributing/testing.md +461 -0
- package/examples/@xmachines/play-dom-demo/README.md +181 -0
- package/examples/@xmachines/play-dom-demo/functions/createNavBar.md +24 -0
- package/examples/@xmachines/play-dom-demo/functions/initShell.md +25 -0
- package/examples/@xmachines/play-dom-demo/type-aliases/AuthCatalog.md +9 -0
- package/examples/@xmachines/play-dom-demo/variables/About.md +12 -0
- package/examples/@xmachines/play-dom-demo/variables/Contact.md +12 -0
- package/examples/@xmachines/play-dom-demo/variables/Dashboard.md +13 -0
- package/examples/@xmachines/play-dom-demo/variables/Home.md +13 -0
- package/examples/@xmachines/play-dom-demo/variables/Login.md +13 -0
- package/examples/@xmachines/play-dom-demo/variables/NavBarView.md +16 -0
- package/examples/@xmachines/play-dom-demo/variables/Navigation.md +13 -0
- package/examples/@xmachines/play-dom-demo/variables/Overview.md +13 -0
- package/examples/@xmachines/play-dom-demo/variables/Profile.md +13 -0
- package/examples/@xmachines/play-dom-demo/variables/Settings.md +13 -0
- package/examples/@xmachines/play-dom-demo/variables/Stats.md +13 -0
- package/examples/@xmachines/play-dom-demo/variables/authCatalog.md +172 -0
- package/examples/@xmachines/play-dom-router-demo/README.md +145 -0
- package/examples/@xmachines/play-react-demo/README.md +187 -0
- package/examples/@xmachines/play-react-demo/functions/App.md +13 -0
- package/examples/@xmachines/play-react-demo/functions/DebugPanel.md +20 -0
- package/examples/@xmachines/play-react-demo/functions/HeaderNav.md +20 -0
- package/examples/@xmachines/play-react-demo/functions/Shell.md +22 -0
- package/examples/@xmachines/play-react-demo/type-aliases/AuthCatalog.md +9 -0
- package/examples/@xmachines/play-react-demo/variables/About.md +14 -0
- package/examples/@xmachines/play-react-demo/variables/Contact.md +14 -0
- package/examples/@xmachines/play-react-demo/variables/Dashboard.md +15 -0
- package/examples/@xmachines/play-react-demo/variables/DebugPanel.md +16 -0
- package/examples/@xmachines/play-react-demo/variables/Home.md +14 -0
- package/examples/@xmachines/play-react-demo/variables/Login.md +16 -0
- package/examples/@xmachines/play-react-demo/variables/NavBar.md +16 -0
- package/examples/@xmachines/play-react-demo/variables/NavBarView.md +15 -0
- package/examples/@xmachines/play-react-demo/variables/Navigation.md +14 -0
- package/examples/@xmachines/play-react-demo/variables/Overview.md +14 -0
- package/examples/@xmachines/play-react-demo/variables/Profile.md +14 -0
- package/examples/@xmachines/play-react-demo/variables/Settings.md +14 -0
- package/examples/@xmachines/play-react-demo/variables/Shell.md +19 -0
- package/examples/@xmachines/play-react-demo/variables/Stats.md +14 -0
- package/examples/@xmachines/play-react-demo/variables/authCatalog.md +172 -0
- package/examples/@xmachines/play-react-router-demo/README.md +151 -0
- package/examples/@xmachines/play-solid-demo/README.md +187 -0
- package/examples/@xmachines/play-solid-demo/functions/App.md +13 -0
- package/examples/@xmachines/play-solid-demo/functions/DebugPanel.md +20 -0
- package/examples/@xmachines/play-solid-demo/functions/HeaderNav.md +20 -0
- package/examples/@xmachines/play-solid-demo/functions/Shell.md +22 -0
- package/examples/@xmachines/play-solid-demo/type-aliases/AuthCatalog.md +9 -0
- package/examples/@xmachines/play-solid-demo/variables/About.md +9 -0
- package/examples/@xmachines/play-solid-demo/variables/Contact.md +9 -0
- package/examples/@xmachines/play-solid-demo/variables/Dashboard.md +9 -0
- package/examples/@xmachines/play-solid-demo/variables/DebugPanel.md +17 -0
- package/examples/@xmachines/play-solid-demo/variables/Home.md +9 -0
- package/examples/@xmachines/play-solid-demo/variables/Login.md +9 -0
- package/examples/@xmachines/play-solid-demo/variables/NavBar.md +11 -0
- package/examples/@xmachines/play-solid-demo/variables/NavBarView.md +15 -0
- package/examples/@xmachines/play-solid-demo/variables/Navigation.md +9 -0
- package/examples/@xmachines/play-solid-demo/variables/Overview.md +9 -0
- package/examples/@xmachines/play-solid-demo/variables/Profile.md +9 -0
- package/examples/@xmachines/play-solid-demo/variables/Settings.md +9 -0
- package/examples/@xmachines/play-solid-demo/variables/Shell.md +18 -0
- package/examples/@xmachines/play-solid-demo/variables/Stats.md +9 -0
- package/examples/@xmachines/play-solid-demo/variables/authCatalog.md +172 -0
- package/examples/@xmachines/play-solid-router-demo/README.md +137 -0
- package/examples/@xmachines/play-svelte-demo/README.md +143 -0
- package/examples/@xmachines/play-svelte-demo/type-aliases/App.md +9 -0
- package/examples/@xmachines/play-svelte-demo/type-aliases/AuthCatalog.md +9 -0
- package/examples/@xmachines/play-svelte-demo/variables/App.md +9 -0
- package/examples/@xmachines/play-svelte-demo/variables/authCatalog.md +172 -0
- package/examples/@xmachines/play-svelte-spa-router-demo/README.md +129 -0
- package/examples/@xmachines/play-sveltekit-router-demo/README.md +133 -0
- package/examples/@xmachines/play-tanstack-react-router-demo/README.md +156 -0
- package/examples/@xmachines/play-tanstack-solid-router-demo/README.md +139 -0
- package/examples/@xmachines/play-vue-demo/README.md +183 -0
- package/examples/@xmachines/play-vue-demo/type-aliases/AuthCatalog.md +9 -0
- package/examples/@xmachines/play-vue-demo/variables/App.md +9 -0
- package/examples/@xmachines/play-vue-demo/variables/authCatalog.md +172 -0
- package/examples/@xmachines/play-vue-router-demo/README.md +139 -0
- package/examples/README.md +78 -30
- package/examples/basic-state-machine.md +73 -31
- package/examples/form-validation.md +259 -118
- package/examples/multi-router-integration.md +312 -194
- package/examples/routing-patterns.md +228 -189
- package/examples/traffic-light.md +112 -65
- package/guides/README.md +7 -21
- package/guides/actor-model.md +180 -0
- package/guides/getting-started.md +627 -137
- package/guides/signals.md +166 -0
- package/guides/state-machines.md +284 -0
- package/package.json +21 -7
- package/rfc/broker.md +100 -0
- package/rfc/browser.md +44 -0
- package/rfc/cli.md +118 -0
- package/rfc/git.md +61 -0
- package/rfc/mcp.md +43 -0
- package/rfc/node.md +36 -0
- package/rfc/play.md +472 -0
- package/rfc/rest.md +102 -0
- package/rfc/run.md +159 -0
- package/rfc/streams.md +168 -0
- package/api/@xmachines/play-actor/interfaces/ViewMetadata.md +0 -17
- package/api/@xmachines/play-catalog/README.md +0 -331
- package/api/@xmachines/play-catalog/functions/defineCatalog.md +0 -98
- package/api/@xmachines/play-catalog/functions/defineComponents.md +0 -134
- package/api/@xmachines/play-catalog/type-aliases/Catalog.md +0 -48
- package/api/@xmachines/play-catalog/type-aliases/ComponentsFor.md +0 -20
- package/api/@xmachines/play-catalog/type-aliases/InferComponentProps.md +0 -65
- package/api/@xmachines/play-catalog/type-aliases/NoExtraKeys.md +0 -17
- package/api/@xmachines/play-react/interfaces/PlayRendererProps.md +0 -15
- package/api/@xmachines/play-react-router/functions/PlayRouterProvider.md +0 -19
- package/api/@xmachines/play-react-router-demo/README.md +0 -137
- package/api/@xmachines/play-router/classes/BaseRouteMap.md +0 -142
- package/api/@xmachines/play-router/functions/connectRouter.md +0 -67
- package/api/@xmachines/play-router/functions/crawlMachine.md +0 -92
- package/api/@xmachines/play-router/functions/createRouter.md +0 -76
- package/api/@xmachines/play-router/functions/extractRoute.md +0 -45
- package/api/@xmachines/play-router/interfaces/BaseRouteMapping.md +0 -27
- package/api/@xmachines/play-router/interfaces/BrowserHistory.md +0 -172
- package/api/@xmachines/play-router/interfaces/BrowserWindow.md +0 -69
- package/api/@xmachines/play-router/interfaces/ConnectRouterOptions.md +0 -13
- package/api/@xmachines/play-router/interfaces/RouteMap.md +0 -56
- package/api/@xmachines/play-router/interfaces/StateVisit.md +0 -15
- package/api/@xmachines/play-router/interfaces/VanillaRouter.md +0 -28
- package/api/@xmachines/play-router-demo/README.md +0 -137
- package/api/@xmachines/play-solid/interfaces/PlayRendererProps.md +0 -15
- package/api/@xmachines/play-solid-router/functions/PlayRouterProvider.md +0 -19
- package/api/@xmachines/play-solid-router-demo/README.md +0 -127
- package/api/@xmachines/play-tanstack-react-router/functions/PlayRouterProvider.md +0 -19
- package/api/@xmachines/play-tanstack-react-router/functions/extractParams.md +0 -38
- package/api/@xmachines/play-tanstack-react-router/functions/extractQueryParams.md +0 -33
- package/api/@xmachines/play-tanstack-react-router/variables/extractMachineRoutes.md +0 -64
- package/api/@xmachines/play-tanstack-react-router-demo/README.md +0 -126
- package/api/@xmachines/play-tanstack-solid-router/classes/SolidRouterBridge.md +0 -343
- package/api/@xmachines/play-tanstack-solid-router/functions/PlayRouterProvider.md +0 -19
- package/api/@xmachines/play-tanstack-solid-router-demo/README.md +0 -126
- package/api/@xmachines/play-vue/interfaces/PlayRendererProps.md +0 -14
- package/api/@xmachines/play-vue-router/classes/VueBaseRouteMap.md +0 -201
- package/api/@xmachines/play-vue-router-demo/README.md +0 -133
- package/api/@xmachines/play-xstate/functions/mergeViewProps.md +0 -26
- package/api/@xmachines/play-xstate/functions/stateMatches.md +0 -25
- package/api/@xmachines/play-xstate/functions/validateComponentBinding.md +0 -39
- package/api/@xmachines/play-xstate/functions/validateViewProps.md +0 -80
- package/api/@xmachines/play-xstate/interfaces/CatalogEntry.md +0 -16
- package/api/@xmachines/play-xstate/type-aliases/Catalog.md +0 -21
- package/api/@xmachines/play-xstate/type-aliases/ValidationResult.md +0 -17
- package/api/@xmachines/play-xstate/type-aliases/ViewMergeContext.md +0 -35
- package/api/@xmachines/shared/functions/defineXmVitestConfig.md +0 -29
- package/api/@xmachines/shared/functions/xmAliases.md +0 -24
- package/guides/installation.md +0 -323
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
[Documentation](../../../README.md) / [@xmachines/play-router](../README.md) / BrowserWindow
|
|
2
|
-
|
|
3
|
-
# Interface: BrowserWindow
|
|
4
|
-
|
|
5
|
-
Defined in: [create-browser-history.ts:55](https://gitlab.com/xmachin-es/xmachines-js/-/blob/00a28432ed57807112288436d1ae4387d9f06919/packages/play-router/src/create-browser-history.ts#L55)
|
|
6
|
-
|
|
7
|
-
Minimal window interface for createBrowserHistory
|
|
8
|
-
|
|
9
|
-
Structural interface covering only the properties actually used.
|
|
10
|
-
Accepts Window, JSDOM window, or any compatible test double.
|
|
11
|
-
Avoids coupling to `Window & typeof globalThis` which varies across environments.
|
|
12
|
-
|
|
13
|
-
## Properties
|
|
14
|
-
|
|
15
|
-
| Property | Modifier | Type | Defined in |
|
|
16
|
-
| ----------------------------------------- | ---------- | --------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
17
|
-
| <a id="property-history"></a> `history` | `public` | `object` | [create-browser-history.ts:56](https://gitlab.com/xmachin-es/xmachines-js/-/blob/00a28432ed57807112288436d1ae4387d9f06919/packages/play-router/src/create-browser-history.ts#L56) |
|
|
18
|
-
| `history.state` | `readonly` | `unknown` | [create-browser-history.ts:57](https://gitlab.com/xmachin-es/xmachines-js/-/blob/00a28432ed57807112288436d1ae4387d9f06919/packages/play-router/src/create-browser-history.ts#L57) |
|
|
19
|
-
| `history.back` | `public` | `void` | [create-browser-history.ts:61](https://gitlab.com/xmachin-es/xmachines-js/-/blob/00a28432ed57807112288436d1ae4387d9f06919/packages/play-router/src/create-browser-history.ts#L61) |
|
|
20
|
-
| `history.forward` | `public` | `void` | [create-browser-history.ts:62](https://gitlab.com/xmachin-es/xmachines-js/-/blob/00a28432ed57807112288436d1ae4387d9f06919/packages/play-router/src/create-browser-history.ts#L62) |
|
|
21
|
-
| `history.go` | `public` | `void` | [create-browser-history.ts:60](https://gitlab.com/xmachin-es/xmachines-js/-/blob/00a28432ed57807112288436d1ae4387d9f06919/packages/play-router/src/create-browser-history.ts#L60) |
|
|
22
|
-
| `history.pushState` | `public` | `void` | [create-browser-history.ts:58](https://gitlab.com/xmachin-es/xmachines-js/-/blob/00a28432ed57807112288436d1ae4387d9f06919/packages/play-router/src/create-browser-history.ts#L58) |
|
|
23
|
-
| `history.replaceState` | `public` | `void` | [create-browser-history.ts:59](https://gitlab.com/xmachin-es/xmachines-js/-/blob/00a28432ed57807112288436d1ae4387d9f06919/packages/play-router/src/create-browser-history.ts#L59) |
|
|
24
|
-
| <a id="property-location"></a> `location` | `public` | `object` | [create-browser-history.ts:64](https://gitlab.com/xmachin-es/xmachines-js/-/blob/00a28432ed57807112288436d1ae4387d9f06919/packages/play-router/src/create-browser-history.ts#L64) |
|
|
25
|
-
| `location.hash` | `readonly` | `string` | [create-browser-history.ts:67](https://gitlab.com/xmachin-es/xmachines-js/-/blob/00a28432ed57807112288436d1ae4387d9f06919/packages/play-router/src/create-browser-history.ts#L67) |
|
|
26
|
-
| `location.pathname` | `readonly` | `string` | [create-browser-history.ts:65](https://gitlab.com/xmachin-es/xmachines-js/-/blob/00a28432ed57807112288436d1ae4387d9f06919/packages/play-router/src/create-browser-history.ts#L65) |
|
|
27
|
-
| `location.search` | `readonly` | `string` | [create-browser-history.ts:66](https://gitlab.com/xmachin-es/xmachines-js/-/blob/00a28432ed57807112288436d1ae4387d9f06919/packages/play-router/src/create-browser-history.ts#L66) |
|
|
28
|
-
|
|
29
|
-
## Methods
|
|
30
|
-
|
|
31
|
-
### addEventListener()
|
|
32
|
-
|
|
33
|
-
```ts
|
|
34
|
-
addEventListener(type, listener): void;
|
|
35
|
-
```
|
|
36
|
-
|
|
37
|
-
Defined in: [create-browser-history.ts:69](https://gitlab.com/xmachin-es/xmachines-js/-/blob/00a28432ed57807112288436d1ae4387d9f06919/packages/play-router/src/create-browser-history.ts#L69)
|
|
38
|
-
|
|
39
|
-
#### Parameters
|
|
40
|
-
|
|
41
|
-
| Parameter | Type |
|
|
42
|
-
| ---------- | ------------ |
|
|
43
|
-
| `type` | `"popstate"` |
|
|
44
|
-
| `listener` | () => `void` |
|
|
45
|
-
|
|
46
|
-
#### Returns
|
|
47
|
-
|
|
48
|
-
`void`
|
|
49
|
-
|
|
50
|
-
---
|
|
51
|
-
|
|
52
|
-
### removeEventListener()
|
|
53
|
-
|
|
54
|
-
```ts
|
|
55
|
-
removeEventListener(type, listener): void;
|
|
56
|
-
```
|
|
57
|
-
|
|
58
|
-
Defined in: [create-browser-history.ts:70](https://gitlab.com/xmachin-es/xmachines-js/-/blob/00a28432ed57807112288436d1ae4387d9f06919/packages/play-router/src/create-browser-history.ts#L70)
|
|
59
|
-
|
|
60
|
-
#### Parameters
|
|
61
|
-
|
|
62
|
-
| Parameter | Type |
|
|
63
|
-
| ---------- | ------------ |
|
|
64
|
-
| `type` | `"popstate"` |
|
|
65
|
-
| `listener` | () => `void` |
|
|
66
|
-
|
|
67
|
-
#### Returns
|
|
68
|
-
|
|
69
|
-
`void`
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
[Documentation](../../../README.md) / [@xmachines/play-router](../README.md) / ConnectRouterOptions
|
|
2
|
-
|
|
3
|
-
# Interface: ConnectRouterOptions
|
|
4
|
-
|
|
5
|
-
Defined in: [connect-router.ts:7](https://gitlab.com/xmachin-es/xmachines-js/-/blob/00a28432ed57807112288436d1ae4387d9f06919/packages/play-router/src/connect-router.ts#L7)
|
|
6
|
-
|
|
7
|
-
## Properties
|
|
8
|
-
|
|
9
|
-
| Property | Type | Defined in |
|
|
10
|
-
| ----------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
11
|
-
| <a id="property-actor"></a> `actor` | [`AbstractActor`](../../play-actor/classes/AbstractActor.md)\<`AnyActorLogic`\> & [`Routable`](../../play-actor/interfaces/Routable.md) | [connect-router.ts:8](https://gitlab.com/xmachin-es/xmachines-js/-/blob/00a28432ed57807112288436d1ae4387d9f06919/packages/play-router/src/connect-router.ts#L8) |
|
|
12
|
-
| <a id="property-routemap"></a> `routeMap` | [`RouteMap`](RouteMap.md) | [connect-router.ts:10](https://gitlab.com/xmachin-es/xmachines-js/-/blob/00a28432ed57807112288436d1ae4387d9f06919/packages/play-router/src/connect-router.ts#L10) |
|
|
13
|
-
| <a id="property-router"></a> `router` | [`VanillaRouter`](VanillaRouter.md) | [connect-router.ts:9](https://gitlab.com/xmachin-es/xmachines-js/-/blob/00a28432ed57807112288436d1ae4387d9f06919/packages/play-router/src/connect-router.ts#L9) |
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
[Documentation](../../../README.md) / [@xmachines/play-router](../README.md) / RouteMap
|
|
2
|
-
|
|
3
|
-
# Interface: RouteMap
|
|
4
|
-
|
|
5
|
-
Defined in: [create-route-map.ts:27](https://gitlab.com/xmachin-es/xmachines-js/-/blob/00a28432ed57807112288436d1ae4387d9f06919/packages/play-router/src/create-route-map.ts#L27)
|
|
6
|
-
|
|
7
|
-
Bidirectional route resolution interface returned by `createRouteMap()`.
|
|
8
|
-
|
|
9
|
-
Resolves incoming URL paths to state IDs (with `#` prefix) and extracts
|
|
10
|
-
route parameters. Used by `RouterBridgeBase` to translate router navigation
|
|
11
|
-
events into `play.route` actor events.
|
|
12
|
-
|
|
13
|
-
## See
|
|
14
|
-
|
|
15
|
-
- [createRouteMap](../functions/createRouteMap.md) for the factory function
|
|
16
|
-
- [BaseRouteMap](../classes/BaseRouteMap.md) for direct state ID ↔ path lookups without params extraction
|
|
17
|
-
|
|
18
|
-
## Methods
|
|
19
|
-
|
|
20
|
-
### resolve()
|
|
21
|
-
|
|
22
|
-
```ts
|
|
23
|
-
resolve(path): object;
|
|
24
|
-
```
|
|
25
|
-
|
|
26
|
-
Defined in: [create-route-map.ts:44](https://gitlab.com/xmachin-es/xmachines-js/-/blob/00a28432ed57807112288436d1ae4387d9f06919/packages/play-router/src/create-route-map.ts#L44)
|
|
27
|
-
|
|
28
|
-
Resolve a URL path to a state ID and params.
|
|
29
|
-
|
|
30
|
-
#### Parameters
|
|
31
|
-
|
|
32
|
-
| Parameter | Type | Description |
|
|
33
|
-
| --------- | -------- | ---------------------------------------- |
|
|
34
|
-
| `path` | `string` | URL pathname (e.g., "/settings/account") |
|
|
35
|
-
|
|
36
|
-
#### Returns
|
|
37
|
-
|
|
38
|
-
`object`
|
|
39
|
-
|
|
40
|
-
Object with `to` (state ID with # prefix) and `params`
|
|
41
|
-
|
|
42
|
-
Example:
|
|
43
|
-
|
|
44
|
-
```typescript
|
|
45
|
-
const { to, params } = routeMap.resolve("/settings/account");
|
|
46
|
-
// { to: "#settings", params: { section: "account" } }
|
|
47
|
-
|
|
48
|
-
if (to) {
|
|
49
|
-
actor.send({ type: "play.route", to, params });
|
|
50
|
-
}
|
|
51
|
-
```
|
|
52
|
-
|
|
53
|
-
| Name | Type | Defined in |
|
|
54
|
-
| -------- | ------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
55
|
-
| `params` | `Record`\<`string`, `string`\> | [create-route-map.ts:46](https://gitlab.com/xmachin-es/xmachines-js/-/blob/00a28432ed57807112288436d1ae4387d9f06919/packages/play-router/src/create-route-map.ts#L46) |
|
|
56
|
-
| `to` | `string` \| `null` | [create-route-map.ts:45](https://gitlab.com/xmachin-es/xmachines-js/-/blob/00a28432ed57807112288436d1ae4387d9f06919/packages/play-router/src/create-route-map.ts#L45) |
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
[Documentation](../../../README.md) / [@xmachines/play-router](../README.md) / StateVisit
|
|
2
|
-
|
|
3
|
-
# Interface: StateVisit
|
|
4
|
-
|
|
5
|
-
Defined in: [types.ts:28](https://gitlab.com/xmachin-es/xmachines-js/-/blob/00a28432ed57807112288436d1ae4387d9f06919/packages/play-router/src/types.ts#L28)
|
|
6
|
-
|
|
7
|
-
Represents a visit to a state node during graph crawling
|
|
8
|
-
|
|
9
|
-
## Properties
|
|
10
|
-
|
|
11
|
-
| Property | Type | Description | Defined in |
|
|
12
|
-
| ------------------------------------- | -------------------------------------------------------- | -------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
13
|
-
| <a id="property-node"></a> `node` | `StateNode` | The state node being visited | [types.ts:30](https://gitlab.com/xmachin-es/xmachines-js/-/blob/00a28432ed57807112288436d1ae4387d9f06919/packages/play-router/src/types.ts#L30) |
|
|
14
|
-
| <a id="property-parent"></a> `parent` | `StateNode`\<`MachineContext`, `EventObject`\> \| `null` | Parent state node (null for root) | [types.ts:34](https://gitlab.com/xmachin-es/xmachines-js/-/blob/00a28432ed57807112288436d1ae4387d9f06919/packages/play-router/src/types.ts#L34) |
|
|
15
|
-
| <a id="property-path"></a> `path` | `string`[] | Path from root to this state (e.g., ['dashboard', 'overview']) | [types.ts:32](https://gitlab.com/xmachin-es/xmachines-js/-/blob/00a28432ed57807112288436d1ae4387d9f06919/packages/play-router/src/types.ts#L32) |
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
[Documentation](../../../README.md) / [@xmachines/play-router](../README.md) / VanillaRouter
|
|
2
|
-
|
|
3
|
-
# Interface: VanillaRouter
|
|
4
|
-
|
|
5
|
-
Defined in: [create-router.ts:4](https://gitlab.com/xmachin-es/xmachines-js/-/blob/00a28432ed57807112288436d1ae4387d9f06919/packages/play-router/src/create-router.ts#L4)
|
|
6
|
-
|
|
7
|
-
## Properties
|
|
8
|
-
|
|
9
|
-
| Property | Modifier | Type | Description | Defined in |
|
|
10
|
-
| ------------------------------------------- | ---------- | ------------------------------------- | ------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
11
|
-
| <a id="property-history"></a> `history` | `readonly` | [`BrowserHistory`](BrowserHistory.md) | History instance | [create-router.ts:8](https://gitlab.com/xmachin-es/xmachines-js/-/blob/00a28432ed57807112288436d1ae4387d9f06919/packages/play-router/src/create-router.ts#L8) |
|
|
12
|
-
| <a id="property-routetree"></a> `routeTree` | `readonly` | [`RouteTree`](RouteTree.md) | Route tree (for structure reference) | [create-router.ts:13](https://gitlab.com/xmachin-es/xmachines-js/-/blob/00a28432ed57807112288436d1ae4387d9f06919/packages/play-router/src/create-router.ts#L13) |
|
|
13
|
-
|
|
14
|
-
## Methods
|
|
15
|
-
|
|
16
|
-
### destroy()
|
|
17
|
-
|
|
18
|
-
```ts
|
|
19
|
-
destroy(): void;
|
|
20
|
-
```
|
|
21
|
-
|
|
22
|
-
Defined in: [create-router.ts:18](https://gitlab.com/xmachin-es/xmachines-js/-/blob/00a28432ed57807112288436d1ae4387d9f06919/packages/play-router/src/create-router.ts#L18)
|
|
23
|
-
|
|
24
|
-
Cleanup
|
|
25
|
-
|
|
26
|
-
#### Returns
|
|
27
|
-
|
|
28
|
-
`void`
|
|
@@ -1,137 +0,0 @@
|
|
|
1
|
-
[Documentation](../../README.md) / @xmachines/play-router-demo
|
|
2
|
-
|
|
3
|
-
# Vanilla JavaScript Router Demo
|
|
4
|
-
|
|
5
|
-
Pure JavaScript integration proving Play Architecture works without any framework.
|
|
6
|
-
|
|
7
|
-
## What This Demonstrates
|
|
8
|
-
|
|
9
|
-
This demo uses **no framework** - just vanilla JavaScript with the Browser History API and DOM manipulation. It proves that Play Architecture's universal abstractions work at the lowest level, making framework integrations simpler by comparison.
|
|
10
|
-
|
|
11
|
-
## Key Features
|
|
12
|
-
|
|
13
|
-
- **Zero Framework Dependencies**: Pure JavaScript and DOM
|
|
14
|
-
- **Browser History API**: Direct integration with `window.history`
|
|
15
|
-
- **Same Auth Machine**: Identical authentication logic as React/Vue/SolidJS demos
|
|
16
|
-
- **Reference Implementation**: This demo serves as the visual reference for all framework demos
|
|
17
|
-
|
|
18
|
-
## Running the Demo
|
|
19
|
-
|
|
20
|
-
From the repository root:
|
|
21
|
-
|
|
22
|
-
```bash
|
|
23
|
-
npm install
|
|
24
|
-
npm run dev -w packages/play-router/examples/demo
|
|
25
|
-
```
|
|
26
|
-
|
|
27
|
-
Visit `http://localhost:5174`.
|
|
28
|
-
|
|
29
|
-
## Step-by-Step Code Flow
|
|
30
|
-
|
|
31
|
-
Use this order to understand the demo implementation:
|
|
32
|
-
|
|
33
|
-
1. `src/main.ts` creates the actor from the shared machine/catalog and starts it.
|
|
34
|
-
2. `src/router.ts` extracts machine routes, builds browser-history routing primitives, and connects actor <-> router sync.
|
|
35
|
-
3. `src/shell.ts` subscribes to actor signals and renders state-projected DOM views.
|
|
36
|
-
4. Navigation and auth interactions dispatch actor events (`play.route`, `auth.login`, `auth.logout`) rather than mutating URL/state directly.
|
|
37
|
-
5. Browser tests in `test/browser/` validate startup rendering and the auth route flow end-to-end.
|
|
38
|
-
|
|
39
|
-
```ts
|
|
40
|
-
// src/main.ts (shape)
|
|
41
|
-
const actor = createActorFromSharedMachine();
|
|
42
|
-
actor.start();
|
|
43
|
-
|
|
44
|
-
const cleanupRouter = initRouter(actor);
|
|
45
|
-
const app = document.getElementById("app");
|
|
46
|
-
if (app) {
|
|
47
|
-
initShell(actor, app);
|
|
48
|
-
}
|
|
49
|
-
```
|
|
50
|
-
|
|
51
|
-
```ts
|
|
52
|
-
// src/router.ts (shape)
|
|
53
|
-
const routeTree = extractMachineRoutes(machine);
|
|
54
|
-
const routeMap = createRouteMap(routeTree);
|
|
55
|
-
const history = createBrowserHistory();
|
|
56
|
-
const router = createRouter({ history, routeMap });
|
|
57
|
-
connectRouter({ actor, router, routeMap });
|
|
58
|
-
```
|
|
59
|
-
|
|
60
|
-
```ts
|
|
61
|
-
// src/shell.ts (shape)
|
|
62
|
-
actor.currentView.watch(() => {
|
|
63
|
-
renderView(actor.currentView.get());
|
|
64
|
-
});
|
|
65
|
-
|
|
66
|
-
loginButton.onclick = () => actor.send({ type: "auth.login", username, password });
|
|
67
|
-
logoutButton.onclick = () => actor.send({ type: "auth.logout" });
|
|
68
|
-
```
|
|
69
|
-
|
|
70
|
-
## Key Files
|
|
71
|
-
|
|
72
|
-
- `src/main.ts` - actor startup, router initialization, and shell bootstrap
|
|
73
|
-
- `src/router.ts` - `createBrowserHistory`, `createRouter`, and `connectRouter` wiring
|
|
74
|
-
- `src/shell.ts` - DOM rendering and reactive watcher loop for state-driven updates
|
|
75
|
-
- `test/browser/startup.browser.test.ts` - startup rendering assertion for public home + login action
|
|
76
|
-
- `test/browser/auth-flow.browser.test.ts` - login -> dashboard -> profile -> logout browser flow
|
|
77
|
-
|
|
78
|
-
## State Machine & Architecture Details
|
|
79
|
-
|
|
80
|
-
The demo utilizes XMachines architectural invariants at the lowest level:
|
|
81
|
-
|
|
82
|
-
1. **Actor Authority:** Intercepting browser `popstate` events or link clicks dispatches a `play.route` event to the actor. The actor processes the request against the current state, ensuring any auth logic is correctly applied.
|
|
83
|
-
2. **Passive Infrastructure:** The router simply updates `window.history` and the DOM solely renders HTML text based on what `actor.currentView.get()` yields.
|
|
84
|
-
3. **Signal-Only Reactivity:** The integration registers manual `Signal.subtle.Watcher` observers that manually trigger DOM reconciliation, illustrating the underlying mechanism abstraction used by framework adapters.
|
|
85
|
-
|
|
86
|
-
## Watcher Lifecycle and Cleanup Contract
|
|
87
|
-
|
|
88
|
-
Even in the vanilla demo, watcher handling follows the same canonical lifecycle:
|
|
89
|
-
|
|
90
|
-
1. `notify`
|
|
91
|
-
2. `queueMicrotask`
|
|
92
|
-
3. `getPending()`
|
|
93
|
-
4. Read actor signals and project DOM state
|
|
94
|
-
5. Re-arm with `watch()`/`watch(...signals)`
|
|
95
|
-
|
|
96
|
-
Watcher notifications are one-shot, so re-arm is mandatory. Router/shell teardown must explicitly call cleanup (`disconnect`/`unwatch`) and not rely on GC-only behavior. In vanilla JS, this means retaining the cleanup functions and calling them during hot-module replacement or app unmount.
|
|
97
|
-
|
|
98
|
-
## Adapter Boundaries
|
|
99
|
-
|
|
100
|
-
`connectRouter` and browser-history wiring are passive infrastructure. Actor logic remains authoritative for route validity, and shared synchronization policy stays in `RouterBridgeBase` for framework bridges.
|
|
101
|
-
|
|
102
|
-
## Why Vanilla?
|
|
103
|
-
|
|
104
|
-
Vanilla JavaScript is the foundation:
|
|
105
|
-
|
|
106
|
-
- **Universal Patterns**: If it works in vanilla, frameworks are just convenience layers
|
|
107
|
-
- **No Magic**: Every interaction is explicit - great for learning
|
|
108
|
-
- **Performance Baseline**: Shows the minimal overhead of Play Architecture
|
|
109
|
-
|
|
110
|
-
This demo proves frameworks aren't required for Play Architecture to work.
|
|
111
|
-
|
|
112
|
-
## Available Scripts
|
|
113
|
-
|
|
114
|
-
These commands are defined in `package.json`:
|
|
115
|
-
|
|
116
|
-
| Command | Description |
|
|
117
|
-
| ------------------------------------------------------------ | -------------------------------- |
|
|
118
|
-
| `npm run dev -w packages/play-router/examples/demo` | Start Vite dev server |
|
|
119
|
-
| `npm run build -w packages/play-router/examples/demo` | Build production bundle |
|
|
120
|
-
| `npm run preview -w packages/play-router/examples/demo` | Preview built bundle |
|
|
121
|
-
| `npm run test -w packages/play-router/examples/demo` | Run Vitest test suite |
|
|
122
|
-
| `npm run test:browser -w packages/play-router/examples/demo` | Run browser-focused Vitest suite |
|
|
123
|
-
|
|
124
|
-
## Verification
|
|
125
|
-
|
|
126
|
-
Validate the operational behavior with package-local tests:
|
|
127
|
-
|
|
128
|
-
```bash
|
|
129
|
-
npm run test -w packages/play-router/examples/demo
|
|
130
|
-
npm run test:browser -w packages/play-router/examples/demo
|
|
131
|
-
```
|
|
132
|
-
|
|
133
|
-
Expected result: tests pass, including startup rendering and the full browser auth flow in `test/browser/`.
|
|
134
|
-
|
|
135
|
-
## Learn More
|
|
136
|
-
|
|
137
|
-
- **[Play Router Package README](../play-router/README.md)** - Router APIs and integration patterns
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
[Documentation](../../../README.md) / [@xmachines/play-solid](../README.md) / PlayRendererProps
|
|
2
|
-
|
|
3
|
-
# Interface: PlayRendererProps
|
|
4
|
-
|
|
5
|
-
Defined in: [types.ts:20](https://gitlab.com/xmachin-es/xmachines-js/-/blob/00a28432ed57807112288436d1ae4387d9f06919/packages/play-solid/src/types.ts#L20)
|
|
6
|
-
|
|
7
|
-
Props for PlayRenderer component
|
|
8
|
-
|
|
9
|
-
## Properties
|
|
10
|
-
|
|
11
|
-
| Property | Type | Description | Defined in |
|
|
12
|
-
| --------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
13
|
-
| <a id="property-actor"></a> `actor` | [`AbstractActor`](../../play-actor/classes/AbstractActor.md)\<`AnyActorLogic`\> & [`Viewable`](../../play-actor/interfaces/Viewable.md) | Actor instance with currentView signal (requires Viewable capability) | [types.ts:22](https://gitlab.com/xmachin-es/xmachines-js/-/blob/00a28432ed57807112288436d1ae4387d9f06919/packages/play-solid/src/types.ts#L22) |
|
|
14
|
-
| <a id="property-components"></a> `components` | `Record`\<`string`, `ValidComponent`\> | Map of component names to SolidJS components | [types.ts:25](https://gitlab.com/xmachin-es/xmachines-js/-/blob/00a28432ed57807112288436d1ae4387d9f06919/packages/play-solid/src/types.ts#L25) |
|
|
15
|
-
| <a id="property-fallback"></a> `fallback?` | `any` | Optional element shown when currentView is null | [types.ts:28](https://gitlab.com/xmachin-es/xmachines-js/-/blob/00a28432ed57807112288436d1ae4387d9f06919/packages/play-solid/src/types.ts#L28) |
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
[Documentation](../../../README.md) / [@xmachines/play-solid-router](../README.md) / PlayRouterProvider
|
|
2
|
-
|
|
3
|
-
# Function: PlayRouterProvider()
|
|
4
|
-
|
|
5
|
-
```ts
|
|
6
|
-
function PlayRouterProvider(props): any;
|
|
7
|
-
```
|
|
8
|
-
|
|
9
|
-
Defined in: [packages/play-solid-router/src/play-router-provider.tsx:21](https://gitlab.com/xmachin-es/xmachines-js/-/blob/00a28432ed57807112288436d1ae4387d9f06919/packages/play-solid-router/src/play-router-provider.tsx#L21)
|
|
10
|
-
|
|
11
|
-
## Parameters
|
|
12
|
-
|
|
13
|
-
| Parameter | Type |
|
|
14
|
-
| --------- | --------------------------------------------------------------------- |
|
|
15
|
-
| `props` | [`PlayRouterProviderProps`](../interfaces/PlayRouterProviderProps.md) |
|
|
16
|
-
|
|
17
|
-
## Returns
|
|
18
|
-
|
|
19
|
-
`any`
|
|
@@ -1,127 +0,0 @@
|
|
|
1
|
-
[Documentation](../../README.md) / @xmachines/play-solid-router-demo
|
|
2
|
-
|
|
3
|
-
# Solid Router Demo
|
|
4
|
-
|
|
5
|
-
Solid + `@solidjs/router` demonstration of the Play architecture using provider-based router integration.
|
|
6
|
-
|
|
7
|
-
## What This Demonstrates
|
|
8
|
-
|
|
9
|
-
- Shared auth machine reused without framework-specific business logic
|
|
10
|
-
- `PlayRouterProvider` renderer-based integration with Solid Router
|
|
11
|
-
- Shell-driven rendering via `PlayRenderer` with actor-authoritative navigation
|
|
12
|
-
- Canonical TC39 Signals lifecycle integration with Solid's fine-grained reactivity
|
|
13
|
-
- Non-browser invariant tests plus browser E2E coverage
|
|
14
|
-
|
|
15
|
-
## Running the Demo
|
|
16
|
-
|
|
17
|
-
From this directory (`packages/play-solid-router/examples/demo`):
|
|
18
|
-
|
|
19
|
-
```bash
|
|
20
|
-
npm install
|
|
21
|
-
npm run dev
|
|
22
|
-
```
|
|
23
|
-
|
|
24
|
-
Open `http://localhost:5173`.
|
|
25
|
-
|
|
26
|
-
## Step-by-Step Code Flow
|
|
27
|
-
|
|
28
|
-
Use this order to understand the implementation:
|
|
29
|
-
|
|
30
|
-
1. `src/main.tsx` bootstraps the demo and mounts the `<App />` component.
|
|
31
|
-
2. `src/App.tsx` wires actor lifecycle, shared machine/catalog imports, and router integration.
|
|
32
|
-
3. A `routeMap` is created by extracting routes from the shared `authMachine`.
|
|
33
|
-
4. `PlayRouterProvider` forwards navigation intent from `@solidjs/router` to the actor, and reflects actor-approved routes back to the URL.
|
|
34
|
-
5. `Shell` (inside `src/App.tsx`) renders actor-projected views (`PlayRenderer`) and provides the shared UI shell.
|
|
35
|
-
6. `test/library-pattern.test.ts` and `test/browser/` verify invariants and runtime routing behavior.
|
|
36
|
-
|
|
37
|
-
```tsx
|
|
38
|
-
// src/main.tsx (shape)
|
|
39
|
-
render(() => <App />, document.getElementById("root")!);
|
|
40
|
-
```
|
|
41
|
-
|
|
42
|
-
```tsx
|
|
43
|
-
// src/App.tsx (shape)
|
|
44
|
-
const createPlayer = definePlayer({ machine: authMachine, catalog });
|
|
45
|
-
const actor = createPlayer();
|
|
46
|
-
actor.start();
|
|
47
|
-
|
|
48
|
-
const routeMap = createRouteMap(authMachine);
|
|
49
|
-
|
|
50
|
-
<PlayRouterProvider
|
|
51
|
-
actor={actor}
|
|
52
|
-
routeMap={routeMap}
|
|
53
|
-
router={{ navigate, location, params }}
|
|
54
|
-
renderer={(currentActor, currentRouter) => (
|
|
55
|
-
<Shell actor={currentActor} router={currentRouter} />
|
|
56
|
-
)}
|
|
57
|
-
/>;
|
|
58
|
-
```
|
|
59
|
-
|
|
60
|
-
```tsx
|
|
61
|
-
// src/components/Nav.tsx (shape)
|
|
62
|
-
<button onClick={() => actor.send({ type: "auth.logout" })}>Logout</button>
|
|
63
|
-
```
|
|
64
|
-
|
|
65
|
-
## Key Files
|
|
66
|
-
|
|
67
|
-
- `src/App.tsx` - Integration entry point wiring actor, provider, renderer, and shared machine/catalog imports.
|
|
68
|
-
- `src/main.tsx` - Vite bootstrap for the Solid app.
|
|
69
|
-
- `src/components/` - Demo views and controls that send events to the actor.
|
|
70
|
-
- `test/library-pattern.test.ts` - Node/Vitest invariant checks for architecture boundaries.
|
|
71
|
-
- `test/browser/startup.browser.test.ts` - Browser startup and mount coverage.
|
|
72
|
-
- `test/browser/auth-flow.browser.test.ts` - Browser auth and routing behavior coverage.
|
|
73
|
-
|
|
74
|
-
## State Machine & Architecture Details
|
|
75
|
-
|
|
76
|
-
The demo utilizes XMachines architectural invariants:
|
|
77
|
-
|
|
78
|
-
1. **Actor Authority:** When a user navigates to a protected route, the Solid Router updates the URL. The `PlayRouterProvider` intercepts this, translates it to a `play.route` event, and sends it to the actor. The actor evaluates guards (e.g., is the user logged in?) and transitions to the appropriate state.
|
|
79
|
-
2. **Passive Infrastructure:** Solid components hold no business state. They observe `actor.currentView` to know what to render, and `actor.currentRoute` to reflect the active path.
|
|
80
|
-
3. **Signal-Only Reactivity:** Instead of React-like re-renders, Solid uses `createEffect` internally within the `RouterBridge` to react precisely when signals update.
|
|
81
|
-
|
|
82
|
-
## Watcher Lifecycle and Cleanup Contract
|
|
83
|
-
|
|
84
|
-
This demo follows the canonical watcher lifecycle:
|
|
85
|
-
|
|
86
|
-
1. `notify`
|
|
87
|
-
2. `queueMicrotask`
|
|
88
|
-
3. `getPending()`
|
|
89
|
-
4. Read actor signals and update Solid-local render triggers
|
|
90
|
-
5. Re-arm with `watch()`/`watch(...signals)`
|
|
91
|
-
|
|
92
|
-
Watcher notifications are one-shot. Cleanup is explicit and lifecycle-bound: Solid teardown uses `onCleanup`, and provider/bridge teardown must call `disconnect`/`unwatch` paths rather than relying on GC-only cleanup. This is crucial to prevent memory leaks during component unmounting.
|
|
93
|
-
|
|
94
|
-
## Adapter Boundaries
|
|
95
|
-
|
|
96
|
-
Solid Router integration remains passive infrastructure. `RouterBridgeBase` stays the shared policy point; the Solid adapter only implements framework port behavior (calling `navigate()` and tracking `location.pathname`).
|
|
97
|
-
|
|
98
|
-
## Available Scripts
|
|
99
|
-
|
|
100
|
-
```bash
|
|
101
|
-
npm run dev # Start Vite dev server (default: http://localhost:5173)
|
|
102
|
-
npm run build # Build production assets
|
|
103
|
-
npm run preview # Preview production build locally
|
|
104
|
-
npm run test # Run unit/integration tests via Vitest
|
|
105
|
-
npm run test:browser # Run browser-mode tests via vitest.browser.config.ts
|
|
106
|
-
```
|
|
107
|
-
|
|
108
|
-
## Verification
|
|
109
|
-
|
|
110
|
-
Use these checks from this directory:
|
|
111
|
-
|
|
112
|
-
```bash
|
|
113
|
-
npm run test
|
|
114
|
-
npm run test:browser
|
|
115
|
-
```
|
|
116
|
-
|
|
117
|
-
Manual sanity check:
|
|
118
|
-
|
|
119
|
-
1. Start the app with `npm run dev`.
|
|
120
|
-
2. Open `http://localhost:5173`.
|
|
121
|
-
3. Confirm login/logout transitions update both view and URL, and that accessing protected routes while logged out redirects properly.
|
|
122
|
-
|
|
123
|
-
## Learn More
|
|
124
|
-
|
|
125
|
-
- [Solid Router package README](../play-solid-router/README.md)
|
|
126
|
-
- [TanStack Solid Router demo README](../play-tanstack-solid-router-demo/README.md)
|
|
127
|
-
- [TanStack React Router demo README](../play-tanstack-react-router-demo/README.md)
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
[Documentation](../../../README.md) / [@xmachines/play-tanstack-react-router](../README.md) / PlayRouterProvider
|
|
2
|
-
|
|
3
|
-
# Function: PlayRouterProvider()
|
|
4
|
-
|
|
5
|
-
```ts
|
|
6
|
-
function PlayRouterProvider(__namedParameters): Element;
|
|
7
|
-
```
|
|
8
|
-
|
|
9
|
-
Defined in: [play-tanstack-react-router/src/play-router-provider.tsx:38](https://gitlab.com/xmachin-es/xmachines-js/-/blob/00a28432ed57807112288436d1ae4387d9f06919/packages/play-tanstack-react-router/src/play-router-provider.tsx#L38)
|
|
10
|
-
|
|
11
|
-
## Parameters
|
|
12
|
-
|
|
13
|
-
| Parameter | Type |
|
|
14
|
-
| ------------------- | --------------------------------------------------------------------- |
|
|
15
|
-
| `__namedParameters` | [`PlayRouterProviderProps`](../interfaces/PlayRouterProviderProps.md) |
|
|
16
|
-
|
|
17
|
-
## Returns
|
|
18
|
-
|
|
19
|
-
`Element`
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
[Documentation](../../../README.md) / [@xmachines/play-tanstack-react-router](../README.md) / extractParams
|
|
2
|
-
|
|
3
|
-
# Function: extractParams()
|
|
4
|
-
|
|
5
|
-
```ts
|
|
6
|
-
function extractParams(pathname, pattern): Record<string, string>;
|
|
7
|
-
```
|
|
8
|
-
|
|
9
|
-
Defined in: [play-tanstack-react-router/src/extract-params.ts:29](https://gitlab.com/xmachin-es/xmachines-js/-/blob/00a28432ed57807112288436d1ae4387d9f06919/packages/play-tanstack-react-router/src/extract-params.ts#L29)
|
|
10
|
-
|
|
11
|
-
Extract route parameters from URL path based on route pattern using URLPattern API
|
|
12
|
-
|
|
13
|
-
## Parameters
|
|
14
|
-
|
|
15
|
-
| Parameter | Type | Description |
|
|
16
|
-
| ---------- | -------- | ---------------------------------------------------- |
|
|
17
|
-
| `pathname` | `string` | Actual URL path (e.g., "/profile/123") |
|
|
18
|
-
| `pattern` | `string` | Route pattern with params (e.g., "/profile/:userId") |
|
|
19
|
-
|
|
20
|
-
## Returns
|
|
21
|
-
|
|
22
|
-
`Record`\<`string`, `string`\>
|
|
23
|
-
|
|
24
|
-
Object with extracted parameters
|
|
25
|
-
|
|
26
|
-
## Example
|
|
27
|
-
|
|
28
|
-
```typescript
|
|
29
|
-
extractParams("/profile/123", "/profile/:userId");
|
|
30
|
-
// Returns: { userId: "123" }
|
|
31
|
-
|
|
32
|
-
extractParams("/api/123", "/api/:id(\\d+)");
|
|
33
|
-
// Returns: { id: "123" }
|
|
34
|
-
// Validates numeric constraint via URLPattern
|
|
35
|
-
|
|
36
|
-
extractParams("/docs/intro", "/docs/*");
|
|
37
|
-
// Returns: { "0": "intro" }
|
|
38
|
-
```
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
[Documentation](../../../README.md) / [@xmachines/play-tanstack-react-router](../README.md) / extractQueryParams
|
|
2
|
-
|
|
3
|
-
# Function: extractQueryParams()
|
|
4
|
-
|
|
5
|
-
```ts
|
|
6
|
-
function extractQueryParams(search): Record<string, string>;
|
|
7
|
-
```
|
|
8
|
-
|
|
9
|
-
Defined in: [play-tanstack-react-router/src/extract-params.ts:68](https://gitlab.com/xmachin-es/xmachines-js/-/blob/00a28432ed57807112288436d1ae4387d9f06919/packages/play-tanstack-react-router/src/extract-params.ts#L68)
|
|
10
|
-
|
|
11
|
-
Extract query parameters from search string
|
|
12
|
-
|
|
13
|
-
## Parameters
|
|
14
|
-
|
|
15
|
-
| Parameter | Type | Description |
|
|
16
|
-
| --------- | -------- | -------------------------------------------------------------------------------- |
|
|
17
|
-
| `search` | `string` | Query string with or without leading ? (e.g., "?tab=settings" or "tab=settings") |
|
|
18
|
-
|
|
19
|
-
## Returns
|
|
20
|
-
|
|
21
|
-
`Record`\<`string`, `string`\>
|
|
22
|
-
|
|
23
|
-
Object mapping query parameter names to values
|
|
24
|
-
|
|
25
|
-
## Example
|
|
26
|
-
|
|
27
|
-
```typescript
|
|
28
|
-
extractQueryParams("?tab=settings&theme=dark");
|
|
29
|
-
// Returns: { tab: "settings", theme: "dark" }
|
|
30
|
-
|
|
31
|
-
extractQueryParams("q=hello%20world");
|
|
32
|
-
// Returns: { q: "hello world" } (auto-decoded)
|
|
33
|
-
```
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
[Documentation](../../../README.md) / [@xmachines/play-tanstack-react-router](../README.md) / extractMachineRoutes
|
|
2
|
-
|
|
3
|
-
# Variable: extractMachineRoutes
|
|
4
|
-
|
|
5
|
-
```ts
|
|
6
|
-
const extractMachineRoutes: (machine) => RouteTree;
|
|
7
|
-
```
|
|
8
|
-
|
|
9
|
-
Defined in: play-router/dist/extract-routes.d.ts:40
|
|
10
|
-
|
|
11
|
-
Extract complete route tree from state machine graph
|
|
12
|
-
|
|
13
|
-
Crawls machine starting from root, visits all state nodes (including nested
|
|
14
|
-
and parallel), extracts meta.route metadata, validates route references,
|
|
15
|
-
and builds hierarchical tree.
|
|
16
|
-
|
|
17
|
-
## Parameters
|
|
18
|
-
|
|
19
|
-
| Parameter | Type | Description |
|
|
20
|
-
| --------- | ----------------- | ----------------------- |
|
|
21
|
-
| `machine` | `AnyStateMachine` | XState v5 state machine |
|
|
22
|
-
|
|
23
|
-
## Returns
|
|
24
|
-
|
|
25
|
-
[`RouteTree`](../../play-router/interfaces/RouteTree.md)
|
|
26
|
-
|
|
27
|
-
Route tree with root, byStateId map, and byPath map
|
|
28
|
-
|
|
29
|
-
## Throws
|
|
30
|
-
|
|
31
|
-
If route references non-existent state
|
|
32
|
-
|
|
33
|
-
## Throws
|
|
34
|
-
|
|
35
|
-
If route path is malformed (doesn't start with /)
|
|
36
|
-
|
|
37
|
-
## Throws
|
|
38
|
-
|
|
39
|
-
If parallel states define conflicting routes
|
|
40
|
-
|
|
41
|
-
## Example
|
|
42
|
-
|
|
43
|
-
```typescript
|
|
44
|
-
import { createMachine } from "xstate";
|
|
45
|
-
import { extractMachineRoutes } from "@xmachines/play-router";
|
|
46
|
-
|
|
47
|
-
const machine = createMachine({
|
|
48
|
-
initial: "home",
|
|
49
|
-
states: {
|
|
50
|
-
home: { id: "home", meta: { route: "/" } },
|
|
51
|
-
dashboard: {
|
|
52
|
-
id: "dashboard",
|
|
53
|
-
meta: { route: "/dashboard" },
|
|
54
|
-
initial: "overview",
|
|
55
|
-
states: {
|
|
56
|
-
overview: { id: "overview", meta: { route: "/overview" } },
|
|
57
|
-
},
|
|
58
|
-
},
|
|
59
|
-
},
|
|
60
|
-
});
|
|
61
|
-
|
|
62
|
-
const tree = extractMachineRoutes(machine);
|
|
63
|
-
console.log(tree.byPath.get("/dashboard/overview"));
|
|
64
|
-
```
|