@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
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
[Examples](../../../README.md) / [@xmachines/play-react-demo](../README.md) / App
|
|
2
|
+
|
|
3
|
+
# Function: App()
|
|
4
|
+
|
|
5
|
+
```ts
|
|
6
|
+
function App(): Element;
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
Defined in: [packages/play-react/examples/demo/src/App.tsx:72](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.1.0/packages/play-react/examples/demo/src/App.tsx#L72)
|
|
10
|
+
|
|
11
|
+
## Returns
|
|
12
|
+
|
|
13
|
+
`Element`
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
[Documentation](../../../README.md) / [@xmachines/play-react-demo](../README.md) / DebugPanel
|
|
2
|
+
|
|
3
|
+
# Function: DebugPanel()
|
|
4
|
+
|
|
5
|
+
```ts
|
|
6
|
+
function DebugPanel(__namedParameters): Element;
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
Defined in: [components/DebugPanel.tsx:5](https://gitlab.com/xmachin-es/xmachines-js/-/blob/c1160fb00ac900a09815213d9ed6bef8b9f03da6/packages/play-react/examples/demo/src/components/DebugPanel.tsx#L5)
|
|
10
|
+
|
|
11
|
+
## Parameters
|
|
12
|
+
|
|
13
|
+
| Parameter | Type |
|
|
14
|
+
| ------------------------- | --------------------------- |
|
|
15
|
+
| `__namedParameters` | \{ `actor`: `AuthActor`; \} |
|
|
16
|
+
| `__namedParameters.actor` | `AuthActor` |
|
|
17
|
+
|
|
18
|
+
## Returns
|
|
19
|
+
|
|
20
|
+
`Element`
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
[Documentation](../../../README.md) / [@xmachines/play-react-demo](../README.md) / HeaderNav
|
|
2
|
+
|
|
3
|
+
# Function: HeaderNav()
|
|
4
|
+
|
|
5
|
+
```ts
|
|
6
|
+
function HeaderNav(__namedParameters): Element;
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
Defined in: [components/HeaderNav.tsx:13](https://gitlab.com/xmachin-es/xmachines-js/-/blob/c1160fb00ac900a09815213d9ed6bef8b9f03da6/packages/play-react/examples/demo/src/components/HeaderNav.tsx#L13)
|
|
10
|
+
|
|
11
|
+
## Parameters
|
|
12
|
+
|
|
13
|
+
| Parameter | Type |
|
|
14
|
+
| ------------------------- | --------------------------- |
|
|
15
|
+
| `__namedParameters` | \{ `actor`: `AuthActor`; \} |
|
|
16
|
+
| `__namedParameters.actor` | `AuthActor` |
|
|
17
|
+
|
|
18
|
+
## Returns
|
|
19
|
+
|
|
20
|
+
`Element`
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
[Documentation](../../../README.md) / [@xmachines/play-react-demo](../README.md) / Shell
|
|
2
|
+
|
|
3
|
+
# Function: Shell()
|
|
4
|
+
|
|
5
|
+
```ts
|
|
6
|
+
function Shell(__namedParameters): Element;
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
Defined in: [components/Shell.tsx:14](https://gitlab.com/xmachin-es/xmachines-js/-/blob/c1160fb00ac900a09815213d9ed6bef8b9f03da6/packages/play-react/examples/demo/src/components/Shell.tsx#L14)
|
|
10
|
+
|
|
11
|
+
## Parameters
|
|
12
|
+
|
|
13
|
+
| Parameter | Type | Description |
|
|
14
|
+
| ---------------------------- | ---------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- |
|
|
15
|
+
| `__namedParameters` | \{ `actor`: `AuthActor`; `registry`: `ComponentRegistry`; `router?`: `unknown`; \} | - |
|
|
16
|
+
| `__namedParameters.actor` | `AuthActor` | - |
|
|
17
|
+
| `__namedParameters.registry` | `ComponentRegistry` | - |
|
|
18
|
+
| `__namedParameters.router?` | `unknown` | Bridged router instance — accepted for prop parity with router demos but unused. |
|
|
19
|
+
|
|
20
|
+
## Returns
|
|
21
|
+
|
|
22
|
+
`Element`
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
[Examples](../../../README.md) / [@xmachines/play-react-demo](../README.md) / AuthCatalog
|
|
2
|
+
|
|
3
|
+
# Type Alias: AuthCatalog
|
|
4
|
+
|
|
5
|
+
```ts
|
|
6
|
+
type AuthCatalog = typeof authCatalog;
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
Defined in: [packages/play-react/examples/demo/src/catalog.ts:6](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.1.0/packages/play-react/examples/demo/src/catalog.ts#L6)
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
[Examples](../../../README.md) / [@xmachines/play-react-demo](../README.md) / About
|
|
2
|
+
|
|
3
|
+
# Variable: About
|
|
4
|
+
|
|
5
|
+
```ts
|
|
6
|
+
const About: ComponentFn<AuthCatalog, "About">;
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
Defined in: [packages/play-react/examples/demo/src/components/About.tsx:10](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.1.0/packages/play-react/examples/demo/src/components/About.tsx#L10)
|
|
10
|
+
|
|
11
|
+
About — Public information page
|
|
12
|
+
|
|
13
|
+
Uses ComponentFn<AuthCatalog, "About"> for catalog-typed props.
|
|
14
|
+
Navigation is handled by HeaderNav — this component only renders content.
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
[Examples](../../../README.md) / [@xmachines/play-react-demo](../README.md) / Contact
|
|
2
|
+
|
|
3
|
+
# Variable: Contact
|
|
4
|
+
|
|
5
|
+
```ts
|
|
6
|
+
const Contact: ComponentFn<AuthCatalog, "Contact">;
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
Defined in: [packages/play-react/examples/demo/src/components/Contact.tsx:10](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.1.0/packages/play-react/examples/demo/src/components/Contact.tsx#L10)
|
|
10
|
+
|
|
11
|
+
Contact — Public contact page
|
|
12
|
+
|
|
13
|
+
Uses ComponentFn<AuthCatalog, "Contact"> for catalog-typed props.
|
|
14
|
+
Navigation is handled by HeaderNav — this component only renders content.
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
[Examples](../../../README.md) / [@xmachines/play-react-demo](../README.md) / Dashboard
|
|
2
|
+
|
|
3
|
+
# Variable: Dashboard
|
|
4
|
+
|
|
5
|
+
```ts
|
|
6
|
+
const Dashboard: ComponentFn<AuthCatalog, "Dashboard">;
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
Defined in: [packages/play-react/examples/demo/src/components/Dashboard.tsx:12](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.1.0/packages/play-react/examples/demo/src/components/Dashboard.tsx#L12)
|
|
10
|
+
|
|
11
|
+
Dashboard — Protected authenticated home
|
|
12
|
+
|
|
13
|
+
Uses ComponentFn<AuthCatalog, "Dashboard"> for catalog-typed props.
|
|
14
|
+
Emits "logout" to trigger the auth.logout event via PlayRenderer actions map.
|
|
15
|
+
Navigation is handled by HeaderNav — this component only handles auth actions.
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
[Examples](../../../README.md) / [@xmachines/play-react-demo](../README.md) / DebugPanel
|
|
2
|
+
|
|
3
|
+
# Variable: DebugPanel
|
|
4
|
+
|
|
5
|
+
```ts
|
|
6
|
+
const DebugPanel: FC<{
|
|
7
|
+
actor: AuthActor;
|
|
8
|
+
inspector: DemoInspector;
|
|
9
|
+
}>;
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
Defined in: [packages/play-react/examples/demo/src/components/DebugPanel.tsx:11](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.1.0/packages/play-react/examples/demo/src/components/DebugPanel.tsx#L11)
|
|
13
|
+
|
|
14
|
+
DebugPanel — Live debug footer. Observes actor.state and actor.currentRoute
|
|
15
|
+
via useSignalEffect and displays current state value, can-logout status,
|
|
16
|
+
and active route, plus the button that opens the Stately inspector window.
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
[Examples](../../../README.md) / [@xmachines/play-react-demo](../README.md) / Home
|
|
2
|
+
|
|
3
|
+
# Variable: Home
|
|
4
|
+
|
|
5
|
+
```ts
|
|
6
|
+
const Home: ComponentFn<AuthCatalog, "Home">;
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
Defined in: [packages/play-react/examples/demo/src/components/Home.tsx:10](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.1.0/packages/play-react/examples/demo/src/components/Home.tsx#L10)
|
|
10
|
+
|
|
11
|
+
Home - Public landing page component
|
|
12
|
+
|
|
13
|
+
Uses ComponentFn<AuthCatalog, "Home"> for catalog-typed props.
|
|
14
|
+
Navigation is handled by HeaderNav — this component only renders content.
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
[Examples](../../../README.md) / [@xmachines/play-react-demo](../README.md) / Login
|
|
2
|
+
|
|
3
|
+
# Variable: Login
|
|
4
|
+
|
|
5
|
+
```ts
|
|
6
|
+
const Login: ComponentFn<AuthCatalog, "Login">;
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
Defined in: [packages/play-react/examples/demo/src/components/Login.tsx:14](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.1.0/packages/play-react/examples/demo/src/components/Login.tsx#L14)
|
|
10
|
+
|
|
11
|
+
Login — Authentication form
|
|
12
|
+
|
|
13
|
+
Uses ComponentFn<AuthCatalog, "Login"> for catalog-typed props.
|
|
14
|
+
Username is bound via $bindState from the spec — useStateBinding provides reactive two-way
|
|
15
|
+
binding to the @xstate/store atom backing the current view's state store.
|
|
16
|
+
Emits "submit" on form submit — spec resolves the username state and calls login handler.
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
[Examples](../../../README.md) / [@xmachines/play-react-demo](../README.md) / NavBar
|
|
2
|
+
|
|
3
|
+
# Variable: NavBar
|
|
4
|
+
|
|
5
|
+
```ts
|
|
6
|
+
const NavBar: FC<{
|
|
7
|
+
actor: AuthActor;
|
|
8
|
+
}>;
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
Defined in: [packages/play-react/examples/demo/src/components/NavBar.tsx:12](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.1.0/packages/play-react/examples/demo/src/components/NavBar.tsx#L12)
|
|
12
|
+
|
|
13
|
+
NavBar — App-shell navigation component.
|
|
14
|
+
|
|
15
|
+
Framework component (takes `actor`) used in the App shell header.
|
|
16
|
+
Calls actor.send() directly for navigation — ActionProvider not needed here.
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
[Examples](../../../README.md) / [@xmachines/play-react-demo](../README.md) / NavBarView
|
|
2
|
+
|
|
3
|
+
# Variable: NavBarView
|
|
4
|
+
|
|
5
|
+
```ts
|
|
6
|
+
const NavBarView: ComponentFn<AuthCatalog, "NavBar">;
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
Defined in: [packages/play-react/examples/demo/src/components/NavBarView.tsx:11](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.1.0/packages/play-react/examples/demo/src/components/NavBarView.tsx#L11)
|
|
10
|
+
|
|
11
|
+
NavBarView — Catalog-typed NavBar for use in defineRegistry components map.
|
|
12
|
+
|
|
13
|
+
Receives props from the spec (isAuthenticated, username) and renders a
|
|
14
|
+
static status indicator. Navigation buttons live in the shell-level NavBar
|
|
15
|
+
component which calls actor.send() directly.
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
[Examples](../../../README.md) / [@xmachines/play-react-demo](../README.md) / Navigation
|
|
2
|
+
|
|
3
|
+
# Variable: Navigation
|
|
4
|
+
|
|
5
|
+
```ts
|
|
6
|
+
const Navigation: ComponentFn<AuthCatalog, "Navigation">;
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
Defined in: [packages/play-react/examples/demo/src/components/Navigation.tsx:10](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.1.0/packages/play-react/examples/demo/src/components/Navigation.tsx#L10)
|
|
10
|
+
|
|
11
|
+
Navigation - Status display component
|
|
12
|
+
|
|
13
|
+
Uses ComponentFn<AuthCatalog, "Navigation"> for catalog-typed props.
|
|
14
|
+
This component displays navigation state info. Actual navigation is handled by HeaderNav.
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
[Examples](../../../README.md) / [@xmachines/play-react-demo](../README.md) / Overview
|
|
2
|
+
|
|
3
|
+
# Variable: Overview
|
|
4
|
+
|
|
5
|
+
```ts
|
|
6
|
+
const Overview: ComponentFn<AuthCatalog, "Overview">;
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
Defined in: [packages/play-react/examples/demo/src/components/Overview.tsx:10](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.1.0/packages/play-react/examples/demo/src/components/Overview.tsx#L10)
|
|
10
|
+
|
|
11
|
+
Overview - Dashboard overview child route component
|
|
12
|
+
|
|
13
|
+
Uses ComponentFn<AuthCatalog, "Overview"> for catalog-typed props.
|
|
14
|
+
Relative route "overview" resolves to /dashboard/overview.
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
[Examples](../../../README.md) / [@xmachines/play-react-demo](../README.md) / Profile
|
|
2
|
+
|
|
3
|
+
# Variable: Profile
|
|
4
|
+
|
|
5
|
+
```ts
|
|
6
|
+
const Profile: ComponentFn<AuthCatalog, "Profile">;
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
Defined in: [packages/play-react/examples/demo/src/components/Profile.tsx:11](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.1.0/packages/play-react/examples/demo/src/components/Profile.tsx#L11)
|
|
10
|
+
|
|
11
|
+
Profile — Protected user profile page
|
|
12
|
+
|
|
13
|
+
Uses ComponentFn<AuthCatalog, "Profile"> for catalog-typed props.
|
|
14
|
+
Navigation is handled by HeaderNav — this component only renders content.
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
[Examples](../../../README.md) / [@xmachines/play-react-demo](../README.md) / Settings
|
|
2
|
+
|
|
3
|
+
# Variable: Settings
|
|
4
|
+
|
|
5
|
+
```ts
|
|
6
|
+
const Settings: ComponentFn<AuthCatalog, "Settings">;
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
Defined in: [packages/play-react/examples/demo/src/components/Settings.tsx:11](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.1.0/packages/play-react/examples/demo/src/components/Settings.tsx#L11)
|
|
10
|
+
|
|
11
|
+
Settings — Protected settings page
|
|
12
|
+
|
|
13
|
+
Uses ComponentFn<AuthCatalog, "Settings"> for catalog-typed props.
|
|
14
|
+
Navigation is handled by HeaderNav — this component only renders content.
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
[Examples](../../../README.md) / [@xmachines/play-react-demo](../README.md) / Shell
|
|
2
|
+
|
|
3
|
+
# Variable: Shell
|
|
4
|
+
|
|
5
|
+
```ts
|
|
6
|
+
const Shell: FC<{
|
|
7
|
+
actor: AuthActor;
|
|
8
|
+
inspector: DemoInspector;
|
|
9
|
+
registryResult: DefineRegistryResult;
|
|
10
|
+
router?: unknown;
|
|
11
|
+
}>;
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
Defined in: [packages/play-react/examples/demo/src/components/Shell.tsx:14](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.1.0/packages/play-react/examples/demo/src/components/Shell.tsx#L14)
|
|
15
|
+
|
|
16
|
+
Demo Shell layout component.
|
|
17
|
+
|
|
18
|
+
Wraps NavBar, PlayRenderer, and DebugPanel in the standard demo chrome.
|
|
19
|
+
Router-agnostic — all navigation is driven via play.route events on the actor.
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
[Examples](../../../README.md) / [@xmachines/play-react-demo](../README.md) / Stats
|
|
2
|
+
|
|
3
|
+
# Variable: Stats
|
|
4
|
+
|
|
5
|
+
```ts
|
|
6
|
+
const Stats: ComponentFn<AuthCatalog, "Stats">;
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
Defined in: [packages/play-react/examples/demo/src/components/Stats.tsx:10](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.1.0/packages/play-react/examples/demo/src/components/Stats.tsx#L10)
|
|
10
|
+
|
|
11
|
+
Stats - Dashboard stats child route component
|
|
12
|
+
|
|
13
|
+
Uses ComponentFn<AuthCatalog, "Stats"> for catalog-typed props.
|
|
14
|
+
Relative route "stats" resolves to /dashboard/stats.
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
[Examples](../../../README.md) / [@xmachines/play-react-demo](../README.md) / authCatalog
|
|
2
|
+
|
|
3
|
+
# Variable: authCatalog
|
|
4
|
+
|
|
5
|
+
```ts
|
|
6
|
+
const authCatalog: Catalog<
|
|
7
|
+
{
|
|
8
|
+
catalog: SchemaType<
|
|
9
|
+
"object",
|
|
10
|
+
{
|
|
11
|
+
actions: SchemaType<
|
|
12
|
+
"map",
|
|
13
|
+
{
|
|
14
|
+
description: SchemaType<"string", unknown>;
|
|
15
|
+
params: SchemaType<"zod", unknown>;
|
|
16
|
+
}
|
|
17
|
+
>;
|
|
18
|
+
components: SchemaType<
|
|
19
|
+
"map",
|
|
20
|
+
{
|
|
21
|
+
description: SchemaType<"string", unknown>;
|
|
22
|
+
example: SchemaType<"any", unknown>;
|
|
23
|
+
props: SchemaType<"zod", unknown>;
|
|
24
|
+
slots: SchemaType<"array", SchemaType<"string", unknown>>;
|
|
25
|
+
}
|
|
26
|
+
>;
|
|
27
|
+
}
|
|
28
|
+
>;
|
|
29
|
+
spec: SchemaType<
|
|
30
|
+
"object",
|
|
31
|
+
{
|
|
32
|
+
elements: SchemaType<
|
|
33
|
+
"record",
|
|
34
|
+
SchemaType<
|
|
35
|
+
"object",
|
|
36
|
+
{
|
|
37
|
+
children: SchemaType<"array", SchemaType<"string", unknown>>;
|
|
38
|
+
props: SchemaType<"propsOf", string>;
|
|
39
|
+
type: SchemaType<"ref", string>;
|
|
40
|
+
visible: SchemaType<"any", unknown>;
|
|
41
|
+
}
|
|
42
|
+
>
|
|
43
|
+
>;
|
|
44
|
+
root: SchemaType<"string", unknown>;
|
|
45
|
+
}
|
|
46
|
+
>;
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
actions: {
|
|
50
|
+
login: {
|
|
51
|
+
description: "Login with username";
|
|
52
|
+
params: ZodObject<
|
|
53
|
+
{
|
|
54
|
+
username: ZodString;
|
|
55
|
+
},
|
|
56
|
+
$strip
|
|
57
|
+
>;
|
|
58
|
+
};
|
|
59
|
+
logout: {
|
|
60
|
+
description: "Logout and return to home";
|
|
61
|
+
};
|
|
62
|
+
route: {
|
|
63
|
+
description: "Navigate to a route by path (e.g. '#home', '#login', '#dashboard')";
|
|
64
|
+
params: ZodObject<
|
|
65
|
+
{
|
|
66
|
+
params: ZodOptional<ZodRecord<ZodString, ZodString>>;
|
|
67
|
+
to: ZodString;
|
|
68
|
+
},
|
|
69
|
+
$strip
|
|
70
|
+
>;
|
|
71
|
+
};
|
|
72
|
+
};
|
|
73
|
+
components: {
|
|
74
|
+
About: {
|
|
75
|
+
props: ZodObject<
|
|
76
|
+
{
|
|
77
|
+
title: ZodString;
|
|
78
|
+
},
|
|
79
|
+
$strip
|
|
80
|
+
>;
|
|
81
|
+
};
|
|
82
|
+
Contact: {
|
|
83
|
+
props: ZodObject<
|
|
84
|
+
{
|
|
85
|
+
title: ZodString;
|
|
86
|
+
},
|
|
87
|
+
$strip
|
|
88
|
+
>;
|
|
89
|
+
};
|
|
90
|
+
Dashboard: {
|
|
91
|
+
props: ZodObject<
|
|
92
|
+
{
|
|
93
|
+
username: ZodString;
|
|
94
|
+
welcome: ZodBoolean;
|
|
95
|
+
},
|
|
96
|
+
$strip
|
|
97
|
+
>;
|
|
98
|
+
};
|
|
99
|
+
Home: {
|
|
100
|
+
props: ZodObject<
|
|
101
|
+
{
|
|
102
|
+
title: ZodString;
|
|
103
|
+
},
|
|
104
|
+
$strip
|
|
105
|
+
>;
|
|
106
|
+
};
|
|
107
|
+
Login: {
|
|
108
|
+
props: ZodObject<
|
|
109
|
+
{
|
|
110
|
+
title: ZodString;
|
|
111
|
+
username: ZodOptional<ZodString>;
|
|
112
|
+
},
|
|
113
|
+
$strip
|
|
114
|
+
>;
|
|
115
|
+
};
|
|
116
|
+
NavBar: {
|
|
117
|
+
props: ZodObject<
|
|
118
|
+
{
|
|
119
|
+
isAuthenticated: ZodBoolean;
|
|
120
|
+
username: ZodNullable<ZodString>;
|
|
121
|
+
},
|
|
122
|
+
$strip
|
|
123
|
+
>;
|
|
124
|
+
};
|
|
125
|
+
Navigation: {
|
|
126
|
+
props: ZodObject<
|
|
127
|
+
{
|
|
128
|
+
currentPath: ZodString;
|
|
129
|
+
isAuthenticated: ZodBoolean;
|
|
130
|
+
},
|
|
131
|
+
$strip
|
|
132
|
+
>;
|
|
133
|
+
};
|
|
134
|
+
Overview: {
|
|
135
|
+
props: ZodObject<
|
|
136
|
+
{
|
|
137
|
+
title: ZodString;
|
|
138
|
+
},
|
|
139
|
+
$strip
|
|
140
|
+
>;
|
|
141
|
+
};
|
|
142
|
+
Profile: {
|
|
143
|
+
props: ZodObject<
|
|
144
|
+
{
|
|
145
|
+
username: ZodString;
|
|
146
|
+
},
|
|
147
|
+
$strip
|
|
148
|
+
>;
|
|
149
|
+
};
|
|
150
|
+
Settings: {
|
|
151
|
+
props: ZodObject<
|
|
152
|
+
{
|
|
153
|
+
section: ZodOptional<ZodString>;
|
|
154
|
+
username: ZodString;
|
|
155
|
+
},
|
|
156
|
+
$strip
|
|
157
|
+
>;
|
|
158
|
+
};
|
|
159
|
+
Stats: {
|
|
160
|
+
props: ZodObject<
|
|
161
|
+
{
|
|
162
|
+
title: ZodString;
|
|
163
|
+
},
|
|
164
|
+
$strip
|
|
165
|
+
>;
|
|
166
|
+
};
|
|
167
|
+
};
|
|
168
|
+
}
|
|
169
|
+
>;
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
Defined in: [packages/play-react/examples/demo/src/catalog.ts:5](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.1.0/packages/play-react/examples/demo/src/catalog.ts#L5)
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
[Examples](../../README.md) / @xmachines/play-react-router-demo
|
|
2
|
+
|
|
3
|
+
# @xmachines/play-react-router-demo
|
|
4
|
+
|
|
5
|
+
React Router v7 integration demo for the XMachines Play architecture.
|
|
6
|
+
|
|
7
|
+
[](https://opensource.org/licenses/MIT)
|
|
8
|
+
|
|
9
|
+
## What This Demonstrates
|
|
10
|
+
|
|
11
|
+
- Shared auth machine reused without framework-specific business logic
|
|
12
|
+
- `PlayRouterProvider` renderer-based integration with React Router
|
|
13
|
+
- Shell-driven rendering via `PlayRenderer` with actor-authoritative navigation
|
|
14
|
+
- Canonical TC39 Signals lifecycle mapped to React's rendering loop
|
|
15
|
+
- Browser E2E coverage via a shared demo browser suite
|
|
16
|
+
|
|
17
|
+
## Running the Demo
|
|
18
|
+
|
|
19
|
+
From the repository root:
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
pnpm install
|
|
23
|
+
pnpm --filter @xmachines/play-react-router-demo run dev
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
Then open `http://localhost:3006`.
|
|
27
|
+
|
|
28
|
+
## Step-by-Step Code Flow
|
|
29
|
+
|
|
30
|
+
Use this order to understand the implementation:
|
|
31
|
+
|
|
32
|
+
1. `src/main.tsx` mounts `<App />`.
|
|
33
|
+
2. `src/App.tsx` calls `useMemo(createAppRuntime, [])` to create the actor and browser router, starting the actor once per mounted app.
|
|
34
|
+
3. `src/runtime.ts` pre-builds the `routeMap` (via `createRouteMap(authMachine)`) and exports `createPlayer`, `routeMap`, and `createRegistryResult` — keeping runtime setup separate from React lifecycle concerns.
|
|
35
|
+
4. `createAppRuntime()` creates the actor, builds a `registryResult` from the registry, and constructs a React Router data router with a `RoutedShell` wrapper.
|
|
36
|
+
5. `PlayRouterProvider` wires actor navigation and router changes in both directions, using the pre-built `routeMap`.
|
|
37
|
+
6. `Shell` (inside `App.tsx`) receives `actor`, `router`, and `registryResult`, matching the other router demos.
|
|
38
|
+
7. The `renderer` prop renders `<RouterProvider router={currentRouter} />` directly — no intermediate `ReactRouterApp` wrapper is needed.
|
|
39
|
+
8. Browser tests in `test/browser/` validate startup and auth navigation flow via a shared demo suite.
|
|
40
|
+
|
|
41
|
+
```tsx
|
|
42
|
+
// src/main.tsx (shape)
|
|
43
|
+
createRoot(document.getElementById("root")!).render(<App />);
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
```ts
|
|
47
|
+
// src/runtime.ts (shape)
|
|
48
|
+
export const createPlayer = definePlayer({ machine: authMachine });
|
|
49
|
+
export const routeMap = createRouteMap(authMachine);
|
|
50
|
+
|
|
51
|
+
export function createRegistryResult(actor: ReturnType<typeof createPlayer>) {
|
|
52
|
+
return defineRegistry(authCatalog, {
|
|
53
|
+
components: { Home, About, Contact, Login, Dashboard /* … */ },
|
|
54
|
+
actions: {
|
|
55
|
+
login: async (args) => actor.send({ type: "auth.login", username: args.username }),
|
|
56
|
+
logout: async () => actor.send({ type: "auth.logout" }),
|
|
57
|
+
route: async (args) => actor.send({ type: "play.route", to: args.to }),
|
|
58
|
+
},
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
```tsx
|
|
64
|
+
// src/App.tsx (shape)
|
|
65
|
+
function createAppRuntime() {
|
|
66
|
+
const actor = createPlayer();
|
|
67
|
+
actor.start();
|
|
68
|
+
|
|
69
|
+
const registryResult = createRegistryResult(actor);
|
|
70
|
+
|
|
71
|
+
let router!: BrowserRouterInstance;
|
|
72
|
+
|
|
73
|
+
function RoutedShell() {
|
|
74
|
+
return <Shell actor={actor} router={router} registryResult={registryResult} />;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
router = createBrowserRouter([{ path: "*", element: <RoutedShell /> }]);
|
|
78
|
+
|
|
79
|
+
return { actor, router };
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
const { actor, router } = useMemo(createAppRuntime, []);
|
|
83
|
+
|
|
84
|
+
return (
|
|
85
|
+
<PlayRouterProvider
|
|
86
|
+
actor={actor}
|
|
87
|
+
router={router}
|
|
88
|
+
routeMap={routeMap}
|
|
89
|
+
renderer={(_, currentRouter) => <RouterProvider router={currentRouter} />}
|
|
90
|
+
/>
|
|
91
|
+
);
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
## Key Files
|
|
95
|
+
|
|
96
|
+
- `src/main.tsx` - React entry point that mounts `<App />`
|
|
97
|
+
- `src/runtime.ts` - actor factory (`createPlayer`), pre-built `routeMap`, and `createRegistryResult` registry wiring
|
|
98
|
+
- `src/App.tsx` - actor lifecycle, provider wiring, and `RoutedShell` composition
|
|
99
|
+
- `test/browser/shared-demo.browser.test.tsx` - browser E2E suite for startup and auth navigation flow
|
|
100
|
+
|
|
101
|
+
## State Machine & Architecture Details
|
|
102
|
+
|
|
103
|
+
The demo utilizes XMachines architectural invariants:
|
|
104
|
+
|
|
105
|
+
1. **Actor Authority:** Navigation triggers URL changes, which the `PlayRouterProvider` intercepts and converts into `play.route` events. The actor evaluates these events against its internal guards and transitions.
|
|
106
|
+
2. **Passive Infrastructure:** The router does not execute business logic. The actor dictates whether navigation is permitted. The React application only triggers renders.
|
|
107
|
+
3. **Signal-Only Reactivity:** The bridge leverages React's `useSyncExternalStore` (internally within the hooks) to react precisely when signals update, without polluting the React component tree with `useState` or `useEffect` for business logic.
|
|
108
|
+
|
|
109
|
+
## Watcher Lifecycle and Cleanup Contract
|
|
110
|
+
|
|
111
|
+
This demo follows the same watcher lifecycle used across [`@xmachines/play-signals`](../../../api/@xmachines/play-signals/README.md) and framework adapters:
|
|
112
|
+
|
|
113
|
+
1. `notify`
|
|
114
|
+
2. `queueMicrotask`
|
|
115
|
+
3. Drain pending work with `getPending()`
|
|
116
|
+
4. Read actor signals and project framework-local state
|
|
117
|
+
5. Re-arm via `watch()`/`watch(...signals)`
|
|
118
|
+
|
|
119
|
+
Watcher notifications are one-shot. Cleanup is explicit: bridge/provider teardown must call `disconnect`/`unwatch` paths, never rely on GC-only cleanup. The `PlayRouterProvider` handles this natively on component unmount.
|
|
120
|
+
|
|
121
|
+
## Adapter Boundaries
|
|
122
|
+
|
|
123
|
+
`PlayRouterProvider` and the React Router bridge stay passive infrastructure. Business validity remains actor-owned, while `RouterBridgeBase` remains the shared policy layer and the concrete React adapter stays a thin port, delegating DOM synchronization to React Router. The demo keeps the same `Shell(actor, router, registryResult)` shape as the other router demos, with `RouterProvider` rendered directly inside the `renderer` callback — no additional wrapper component is required.
|
|
124
|
+
|
|
125
|
+
## Available Scripts
|
|
126
|
+
|
|
127
|
+
These commands are defined in `package.json`:
|
|
128
|
+
|
|
129
|
+
| Command | Description |
|
|
130
|
+
| ------------------------------------------------------------------ | ---------------------------------------------- |
|
|
131
|
+
| `pnpm --filter @xmachines/play-react-router-demo run dev` | Start Vite dev server (http://localhost:3006/) |
|
|
132
|
+
| `pnpm --filter @xmachines/play-react-router-demo run build` | Build production bundle |
|
|
133
|
+
| `pnpm --filter @xmachines/play-react-router-demo run preview` | Preview built bundle |
|
|
134
|
+
| `pnpm --filter @xmachines/play-react-router-demo run test` | Run Vitest test suite |
|
|
135
|
+
| `pnpm --filter @xmachines/play-react-router-demo run test:browser` | Run browser-focused Vitest suite |
|
|
136
|
+
|
|
137
|
+
## Verification
|
|
138
|
+
|
|
139
|
+
Use these checks to validate README claims against the current demo implementation:
|
|
140
|
+
|
|
141
|
+
```bash
|
|
142
|
+
pnpm --filter @xmachines/play-react-router-demo run test
|
|
143
|
+
pnpm --filter @xmachines/play-react-router-demo run test:browser
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
Expected result: tests pass for startup and auth-flow browser scenarios.
|
|
147
|
+
|
|
148
|
+
## Learn More
|
|
149
|
+
|
|
150
|
+
- [React Router](../../../api/@xmachines/play-react-router/README.md)
|
|
151
|
+
- [React](../../../api/@xmachines/play-react/README.md)
|