@xmachines/docs 1.0.0-beta.34 → 1.0.0-beta.35
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/api/@xmachines/play/classes/NonNullableError.md +4 -4
- package/api/@xmachines/play/classes/PlayError.md +4 -4
- package/api/@xmachines/play/functions/assertNonNullable.md +1 -1
- package/api/@xmachines/play/type-aliases/PlayEvent.md +2 -2
- package/api/@xmachines/play-actor/README.md +9 -9
- package/api/@xmachines/play-actor/classes/AbstractActor.md +3 -3
- package/api/@xmachines/play-actor/functions/typedSpec.md +1 -1
- package/api/@xmachines/play-actor/interfaces/BaseActorProviderProps.md +5 -5
- package/api/@xmachines/play-actor/interfaces/BaseViewContextValue.md +5 -5
- package/api/@xmachines/play-actor/interfaces/PlaySpec.md +2 -2
- package/api/@xmachines/play-actor/interfaces/Routable.md +3 -3
- package/api/@xmachines/play-actor/interfaces/Viewable.md +2 -2
- package/api/@xmachines/play-dom/README.md +4 -3
- package/api/@xmachines/play-dom/classes/PlayRenderer.md +4 -4
- package/api/@xmachines/play-dom/functions/connectRenderer.md +1 -1
- package/api/@xmachines/play-dom/functions/createPlayUI.md +1 -1
- package/api/@xmachines/play-dom/functions/createRenderer.md +1 -1
- package/api/@xmachines/play-dom/functions/defineRegistry.md +1 -23
- package/api/@xmachines/play-dom/functions/renderSpec.md +1 -1
- package/api/@xmachines/play-dom/interfaces/ComponentContext.md +7 -7
- package/api/@xmachines/play-dom/interfaces/ConnectRendererOptions.md +13 -13
- package/api/@xmachines/play-dom/interfaces/CreatePlayUIOptions.md +8 -8
- package/api/@xmachines/play-dom/interfaces/DefineRegistryResult.md +4 -4
- package/api/@xmachines/play-dom/interfaces/DomRenderContext.md +12 -12
- package/api/@xmachines/play-dom/interfaces/EventHandle.md +4 -4
- package/api/@xmachines/play-dom/interfaces/MountOptions.md +3 -3
- package/api/@xmachines/play-dom/interfaces/PlayDomOptions.md +5 -5
- package/api/@xmachines/play-dom/interfaces/UIProviderOptions.md +5 -5
- package/api/@xmachines/play-dom/type-aliases/ActionFn.md +1 -1
- package/api/@xmachines/play-dom/type-aliases/Actions.md +1 -1
- package/api/@xmachines/play-dom/type-aliases/BaseComponentProps.md +7 -7
- package/api/@xmachines/play-dom/type-aliases/CatalogHasActions.md +1 -1
- package/api/@xmachines/play-dom/type-aliases/ComponentFn.md +1 -1
- package/api/@xmachines/play-dom/type-aliases/ComponentRegistry.md +1 -1
- package/api/@xmachines/play-dom/type-aliases/DefineRegistryOptions.md +2 -2
- package/api/@xmachines/play-dom/type-aliases/DomComponentRenderer.md +1 -1
- package/api/@xmachines/play-dom/type-aliases/DomRegistry.md +1 -1
- package/api/@xmachines/play-dom/type-aliases/DomSchema.md +1 -1
- package/api/@xmachines/play-dom/type-aliases/MountFn.md +1 -1
- package/api/@xmachines/play-dom/type-aliases/SetState.md +1 -1
- package/api/@xmachines/play-dom/variables/schema.md +1 -1
- package/api/@xmachines/play-dom-router/README.md +3 -3
- package/api/@xmachines/play-dom-router/functions/connectRouter.md +1 -1
- package/api/@xmachines/play-dom-router/functions/createBrowserHistory.md +1 -1
- package/api/@xmachines/play-dom-router/functions/createRouteMap.md +3 -3
- package/api/@xmachines/play-dom-router/functions/createRouter.md +1 -1
- package/api/@xmachines/play-dom-router/interfaces/BrowserHistory.md +14 -14
- package/api/@xmachines/play-dom-router/interfaces/BrowserWindow.md +14 -14
- package/api/@xmachines/play-dom-router/interfaces/ConnectRouterOptions.md +4 -4
- package/api/@xmachines/play-dom-router/interfaces/PlayRouteEvent.md +6 -6
- package/api/@xmachines/play-dom-router/interfaces/{RouteMapLike.md → RouteLookupContract.md} +7 -7
- package/api/@xmachines/play-dom-router/interfaces/RouteMap.md +6 -11
- package/api/@xmachines/play-dom-router/interfaces/RouteMapping.md +8 -8
- package/api/@xmachines/play-dom-router/interfaces/RouterBridge.md +3 -3
- package/api/@xmachines/play-dom-router/interfaces/VanillaRouter.md +4 -4
- package/api/@xmachines/play-dom-router/type-aliases/RoutableActor.md +1 -1
- package/api/@xmachines/play-react/classes/PlayErrorBoundary.md +5 -5
- package/api/@xmachines/play-react/functions/useActor.md +1 -1
- package/api/@xmachines/play-react/functions/usePlayView.md +1 -1
- package/api/@xmachines/play-react/functions/useSignalEffect.md +1 -1
- package/api/@xmachines/play-react/interfaces/ActorProviderProps.md +8 -8
- package/api/@xmachines/play-react/interfaces/PlayErrorBoundaryProps.md +4 -4
- package/api/@xmachines/play-react/interfaces/PlayErrorBoundaryState.md +3 -3
- package/api/@xmachines/play-react/interfaces/PlayUIProviderProps.md +8 -8
- package/api/@xmachines/play-react/interfaces/ViewContextValue.md +5 -5
- package/api/@xmachines/play-react/type-aliases/PlayActor.md +1 -1
- package/api/@xmachines/play-react/variables/ActorProvider.md +1 -1
- package/api/@xmachines/play-react/variables/PlayRenderer.md +2 -2
- package/api/@xmachines/play-react/variables/PlayUIProvider.md +1 -1
- package/api/@xmachines/play-react-router/README.md +1 -0
- package/api/@xmachines/play-react-router/classes/ReactRouterBridge.md +24 -24
- package/api/@xmachines/play-react-router/classes/RouteMap.md +38 -22
- package/api/@xmachines/play-react-router/functions/PlayRouterProvider.md +1 -1
- package/api/@xmachines/play-react-router/functions/createRouteMap.md +21 -0
- package/api/@xmachines/play-react-router/functions/createRouteMapFromTree.md +5 -5
- package/api/@xmachines/play-react-router/interfaces/PlayRouteEvent.md +6 -6
- package/api/@xmachines/play-react-router/interfaces/PlayRouterProviderProps.md +5 -5
- package/api/@xmachines/play-react-router/interfaces/RouteMapping.md +8 -8
- package/api/@xmachines/play-react-router/interfaces/RouterBridge.md +3 -3
- package/api/@xmachines/play-router/README.md +6 -6
- package/api/@xmachines/play-router/classes/{BaseRouteMap.md → RouteMap.md} +11 -11
- package/api/@xmachines/play-router/classes/RouterBridgeBase.md +24 -24
- package/api/@xmachines/play-router/functions/buildPlayRouteEvent.md +2 -2
- package/api/@xmachines/play-router/functions/buildRouteTree.md +1 -1
- package/api/@xmachines/play-router/functions/createRouteMap.md +6 -6
- package/api/@xmachines/play-router/functions/createRouteMapFromMachine.md +5 -5
- package/api/@xmachines/play-router/functions/createRouteMapFromTree.md +6 -6
- package/api/@xmachines/play-router/functions/detectDuplicateRoutes.md +1 -1
- package/api/@xmachines/play-router/functions/extractMachineRoutes.md +1 -1
- package/api/@xmachines/play-router/functions/extractQuery.md +1 -1
- package/api/@xmachines/play-router/functions/extractRouteParams.md +1 -1
- package/api/@xmachines/play-router/functions/findRouteById.md +1 -1
- package/api/@xmachines/play-router/functions/findRouteByPath.md +1 -1
- package/api/@xmachines/play-router/functions/getNavigableRoutes.md +1 -1
- package/api/@xmachines/play-router/functions/getRoutableRoutes.md +1 -1
- package/api/@xmachines/play-router/functions/getTransitionReachableRoutes.md +1 -1
- package/api/@xmachines/play-router/functions/isRouteReachable.md +1 -1
- package/api/@xmachines/play-router/functions/machineToGraph.md +1 -1
- package/api/@xmachines/play-router/functions/routeExists.md +1 -1
- package/api/@xmachines/play-router/functions/sanitizePathname.md +1 -1
- package/api/@xmachines/play-router/functions/validateRouteFormat.md +1 -1
- package/api/@xmachines/play-router/functions/validateStateExists.md +1 -1
- package/api/@xmachines/play-router/interfaces/BuildPlayRouteEventOptions.md +4 -4
- package/api/@xmachines/play-router/interfaces/LocationLike.md +3 -3
- package/api/@xmachines/play-router/interfaces/MachineEdgeData.md +3 -3
- package/api/@xmachines/play-router/interfaces/MachineNodeData.md +5 -5
- package/api/@xmachines/play-router/interfaces/PlayRouteEvent.md +6 -6
- package/api/@xmachines/play-router/interfaces/RouteInfo.md +8 -8
- package/api/@xmachines/play-router/interfaces/RouteMapping.md +8 -8
- package/api/@xmachines/play-router/interfaces/RouteMatch.md +3 -3
- package/api/@xmachines/play-router/interfaces/{RouteMap.md → RouteMatcher.md} +13 -13
- package/api/@xmachines/play-router/interfaces/RouteNode.md +10 -10
- package/api/@xmachines/play-router/interfaces/RouteObject.md +2 -2
- package/api/@xmachines/play-router/interfaces/RouteTree.md +5 -5
- package/api/@xmachines/play-router/interfaces/RouteWatcherHandle.md +3 -3
- package/api/@xmachines/play-router/interfaces/RouterBridge.md +3 -3
- package/api/@xmachines/play-router/interfaces/WindowLike.md +3 -3
- package/api/@xmachines/play-router/type-aliases/MachineGraph.md +1 -1
- package/api/@xmachines/play-router/type-aliases/RouteMetadata.md +1 -1
- package/api/@xmachines/play-signals/functions/watchSignal.md +1 -1
- package/api/@xmachines/play-signals/interfaces/ComputedOptions.md +2 -2
- package/api/@xmachines/play-signals/interfaces/SignalComputed.md +2 -2
- package/api/@xmachines/play-signals/interfaces/SignalOptions.md +2 -2
- package/api/@xmachines/play-signals/interfaces/SignalState.md +3 -3
- package/api/@xmachines/play-signals/interfaces/SignalWatcher.md +4 -4
- package/api/@xmachines/play-signals/type-aliases/WatcherNotify.md +1 -1
- package/api/@xmachines/play-solid/functions/useActor.md +1 -1
- package/api/@xmachines/play-solid/functions/usePlayView.md +1 -1
- package/api/@xmachines/play-solid/interfaces/ActorProviderProps.md +8 -8
- package/api/@xmachines/play-solid/interfaces/PlayUIProviderProps.md +8 -8
- package/api/@xmachines/play-solid/interfaces/ViewContextValue.md +5 -5
- package/api/@xmachines/play-solid/type-aliases/PlayActor.md +1 -1
- package/api/@xmachines/play-solid/variables/ActorContext.md +1 -1
- package/api/@xmachines/play-solid/variables/ActorProvider.md +1 -1
- package/api/@xmachines/play-solid/variables/PlayRenderer.md +1 -1
- package/api/@xmachines/play-solid/variables/PlayUIProvider.md +1 -1
- package/api/@xmachines/play-solid-router/README.md +2 -2
- package/api/@xmachines/play-solid-router/classes/RouteMap.md +9 -9
- package/api/@xmachines/play-solid-router/classes/SolidRouterBridge.md +25 -25
- package/api/@xmachines/play-solid-router/functions/PlayRouterProvider.md +1 -1
- package/api/@xmachines/play-solid-router/functions/createRouteMap.md +3 -3
- package/api/@xmachines/play-solid-router/interfaces/AbstractActor.md +3 -3
- package/api/@xmachines/play-solid-router/interfaces/PlayRouteEvent.md +6 -6
- package/api/@xmachines/play-solid-router/interfaces/PlayRouterProviderProps.md +5 -5
- package/api/@xmachines/play-solid-router/interfaces/RouteMapping.md +8 -8
- package/api/@xmachines/play-solid-router/interfaces/RouterBridge.md +3 -3
- package/api/@xmachines/play-solid-router/type-aliases/RoutableActor.md +1 -1
- package/api/@xmachines/play-solid-router/type-aliases/SolidRouterHooks.md +4 -4
- package/api/@xmachines/play-svelte/functions/defineRegistry.md +1 -1
- package/api/@xmachines/play-svelte/functions/getActorContext.md +1 -1
- package/api/@xmachines/play-svelte/functions/getPlayViewContext.md +1 -1
- package/api/@xmachines/play-svelte/functions/setActorContext.md +1 -1
- package/api/@xmachines/play-svelte/interfaces/ActorProviderProps.md +8 -8
- package/api/@xmachines/play-svelte/interfaces/DefineRegistryOptions.md +4 -4
- package/api/@xmachines/play-svelte/interfaces/ViewContextValue.md +5 -5
- package/api/@xmachines/play-svelte/type-aliases/PlayActor.md +1 -1
- package/api/@xmachines/play-svelte-spa-router/classes/RouteMap.md +9 -9
- package/api/@xmachines/play-svelte-spa-router/functions/connectRouter.md +1 -1
- package/api/@xmachines/play-svelte-spa-router/functions/createRouteMap.md +3 -3
- package/api/@xmachines/play-svelte-spa-router/interfaces/ConnectRouterOptions.md +4 -4
- package/api/@xmachines/play-svelte-spa-router/interfaces/PlayRouteEvent.md +6 -6
- package/api/@xmachines/play-svelte-spa-router/interfaces/RouteMapping.md +8 -8
- package/api/@xmachines/play-svelte-spa-router/interfaces/RouterBridge.md +3 -3
- package/api/@xmachines/play-svelte-spa-router/interfaces/WindowLike.md +3 -3
- package/api/@xmachines/play-svelte-spa-router/type-aliases/RoutableActor.md +1 -1
- package/api/@xmachines/play-sveltekit-router/classes/RouteMap.md +9 -9
- package/api/@xmachines/play-sveltekit-router/functions/connectRouter.md +1 -1
- package/api/@xmachines/play-sveltekit-router/functions/createRouteMap.md +3 -3
- package/api/@xmachines/play-sveltekit-router/interfaces/ConnectRouterOptions.md +4 -4
- package/api/@xmachines/play-sveltekit-router/interfaces/LocationLike.md +3 -3
- package/api/@xmachines/play-sveltekit-router/interfaces/PlayRouteEvent.md +6 -6
- package/api/@xmachines/play-sveltekit-router/interfaces/RouteMapping.md +8 -8
- package/api/@xmachines/play-sveltekit-router/interfaces/RouterBridge.md +3 -3
- package/api/@xmachines/play-sveltekit-router/type-aliases/RoutableActor.md +1 -1
- package/api/@xmachines/play-tanstack-react-router/README.md +1 -1
- package/api/@xmachines/play-tanstack-react-router/classes/RouteMap.md +38 -22
- package/api/@xmachines/play-tanstack-react-router/classes/TanStackReactRouterBridge.md +24 -24
- package/api/@xmachines/play-tanstack-react-router/functions/PlayRouterProvider.md +1 -1
- package/api/@xmachines/play-tanstack-react-router/functions/createRouteMap.md +7 -39
- package/api/@xmachines/play-tanstack-react-router/functions/createRouteMapFromTree.md +5 -5
- package/api/@xmachines/play-tanstack-react-router/functions/extractMachineRoutes.md +1 -1
- package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouteEvent.md +6 -6
- package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouterProviderProps.md +5 -5
- package/api/@xmachines/play-tanstack-react-router/interfaces/RouteMapping.md +8 -8
- package/api/@xmachines/play-tanstack-react-router/interfaces/RouteNavigateEvent.md +3 -3
- package/api/@xmachines/play-tanstack-react-router/interfaces/RouterBridge.md +3 -3
- package/api/@xmachines/play-tanstack-react-router/type-aliases/TanStackRouterInstance.md +1 -1
- package/api/@xmachines/play-tanstack-react-router/type-aliases/TanStackRouterLike.md +4 -4
- package/api/@xmachines/play-tanstack-solid-router/README.md +1 -1
- package/api/@xmachines/play-tanstack-solid-router/classes/RouteMap.md +9 -9
- package/api/@xmachines/play-tanstack-solid-router/classes/SolidRouterBridge.md +25 -25
- package/api/@xmachines/play-tanstack-solid-router/functions/PlayRouterProvider.md +1 -1
- package/api/@xmachines/play-tanstack-solid-router/functions/createRouteMap.md +3 -3
- package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayRouteEvent.md +6 -6
- package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayRouterProviderProps.md +5 -5
- package/api/@xmachines/play-tanstack-solid-router/interfaces/RouteMapping.md +8 -8
- package/api/@xmachines/play-tanstack-solid-router/interfaces/RouterBridge.md +3 -3
- package/api/@xmachines/play-tanstack-solid-router/type-aliases/RoutableActor.md +1 -1
- package/api/@xmachines/play-tanstack-solid-router/type-aliases/TanStackRouterInstance.md +1 -1
- package/api/@xmachines/play-tanstack-solid-router/type-aliases/TanStackRouterLike.md +3 -3
- package/api/@xmachines/play-vue/functions/defineRegistry.md +1 -1
- package/api/@xmachines/play-vue/functions/getPlayViewContext.md +1 -1
- package/api/@xmachines/play-vue/functions/useActor.md +1 -1
- package/api/@xmachines/play-vue/interfaces/ActorProviderProps.md +5 -5
- package/api/@xmachines/play-vue/interfaces/PlayUIProviderProps.md +8 -8
- package/api/@xmachines/play-vue/interfaces/ViewContextValue.md +5 -5
- package/api/@xmachines/play-vue/type-aliases/ComponentEntry.md +1 -1
- package/api/@xmachines/play-vue/type-aliases/ComponentsMap.md +1 -1
- package/api/@xmachines/play-vue/type-aliases/DefineRegistryOptions.md +2 -2
- package/api/@xmachines/play-vue/type-aliases/PlayActor.md +1 -1
- package/api/@xmachines/play-vue/variables/PlayRenderer.md +1 -1
- package/api/@xmachines/play-vue-router/README.md +9 -4
- package/api/@xmachines/play-vue-router/classes/RouteMap.md +38 -20
- package/api/@xmachines/play-vue-router/classes/VueRouterBridge.md +25 -25
- package/api/@xmachines/play-vue-router/functions/createRouteMap.md +1 -1
- package/api/@xmachines/play-vue-router/interfaces/PlayRouteEvent.md +6 -6
- package/api/@xmachines/play-vue-router/interfaces/RouteMapping.md +8 -8
- package/api/@xmachines/play-vue-router/interfaces/RouterBridge.md +3 -3
- package/api/@xmachines/play-vue-router/type-aliases/RoutableActor.md +1 -1
- package/api/@xmachines/play-vue-router/variables/PlayRouterProvider.md +1 -1
- package/api/@xmachines/play-xstate/README.md +1 -1
- package/api/@xmachines/play-xstate/classes/PlayerActor.md +14 -14
- package/api/@xmachines/play-xstate/functions/buildRouteUrl.md +1 -1
- package/api/@xmachines/play-xstate/functions/composeGuards.md +1 -1
- package/api/@xmachines/play-xstate/functions/composeGuardsOr.md +1 -1
- package/api/@xmachines/play-xstate/functions/contextFieldMatches.md +1 -1
- package/api/@xmachines/play-xstate/functions/definePlayer.md +1 -1
- package/api/@xmachines/play-xstate/functions/deriveRoute.md +1 -1
- package/api/@xmachines/play-xstate/functions/eventMatches.md +1 -1
- package/api/@xmachines/play-xstate/functions/formatPlayRouteTransitions.md +1 -1
- package/api/@xmachines/play-xstate/functions/hasContext.md +1 -1
- package/api/@xmachines/play-xstate/functions/isAbsoluteRoute.md +1 -1
- package/api/@xmachines/play-xstate/functions/negateGuard.md +1 -1
- package/api/@xmachines/play-xstate/interfaces/PlayerConfig.md +3 -3
- package/api/@xmachines/play-xstate/interfaces/PlayerFactoryResumeOptions.md +2 -2
- package/api/@xmachines/play-xstate/interfaces/PlayerOptions.md +6 -6
- package/api/@xmachines/play-xstate/interfaces/RouteContext.md +5 -5
- package/api/@xmachines/play-xstate/type-aliases/ComposedGuard.md +1 -1
- package/api/@xmachines/play-xstate/type-aliases/Guard.md +1 -1
- package/api/@xmachines/play-xstate/type-aliases/GuardArray.md +1 -1
- package/api/@xmachines/play-xstate/type-aliases/PlayerFactory.md +1 -1
- package/api/@xmachines/play-xstate/type-aliases/RouteMachineConfig.md +4 -4
- package/api/@xmachines/play-xstate/type-aliases/RouteStateNode.md +4 -4
- package/api/@xmachines/shared/README.md +47 -47
- package/api/@xmachines/shared/functions/defineXmVitestConfig.md +1 -1
- package/api/@xmachines/shared/functions/xmAliases.md +1 -1
- package/api/llms.txt +4 -2
- package/examples/@xmachines/play-dom-demo/README.md +2 -2
- package/examples/@xmachines/play-dom-demo/functions/createNavBar.md +4 -3
- package/examples/@xmachines/play-dom-demo/functions/initShell.md +5 -1
- package/examples/@xmachines/play-dom-demo/type-aliases/AuthCatalog.md +1 -1
- package/examples/@xmachines/play-dom-demo/variables/About.md +4 -1
- package/examples/@xmachines/play-dom-demo/variables/Contact.md +4 -1
- package/examples/@xmachines/play-dom-demo/variables/Dashboard.md +5 -1
- package/examples/@xmachines/play-dom-demo/variables/Home.md +5 -1
- package/examples/@xmachines/play-dom-demo/variables/Login.md +5 -1
- package/examples/@xmachines/play-dom-demo/variables/NavBarView.md +8 -1
- package/examples/@xmachines/play-dom-demo/variables/Navigation.md +5 -1
- package/examples/@xmachines/play-dom-demo/variables/Overview.md +5 -1
- package/examples/@xmachines/play-dom-demo/variables/Profile.md +5 -1
- package/examples/@xmachines/play-dom-demo/variables/Settings.md +5 -1
- package/examples/@xmachines/play-dom-demo/variables/Stats.md +5 -1
- package/examples/@xmachines/play-dom-demo/variables/authCatalog.md +1 -1
- package/examples/@xmachines/play-dom-router-demo/README.md +26 -22
- package/examples/@xmachines/play-react-demo/README.md +2 -2
- package/examples/@xmachines/play-react-demo/functions/App.md +1 -1
- package/examples/@xmachines/play-react-demo/type-aliases/AuthCatalog.md +1 -1
- package/examples/@xmachines/play-react-demo/variables/About.md +6 -1
- package/examples/@xmachines/play-react-demo/variables/Contact.md +6 -1
- package/examples/@xmachines/play-react-demo/variables/Dashboard.md +7 -1
- package/examples/@xmachines/play-react-demo/variables/DebugPanel.md +5 -1
- package/examples/@xmachines/play-react-demo/variables/Home.md +6 -1
- package/examples/@xmachines/play-react-demo/variables/Login.md +8 -1
- package/examples/@xmachines/play-react-demo/variables/NavBar.md +6 -1
- package/examples/@xmachines/play-react-demo/variables/NavBarView.md +7 -1
- package/examples/@xmachines/play-react-demo/variables/Navigation.md +6 -1
- package/examples/@xmachines/play-react-demo/variables/Overview.md +6 -1
- package/examples/@xmachines/play-react-demo/variables/Profile.md +6 -1
- package/examples/@xmachines/play-react-demo/variables/Settings.md +6 -1
- package/examples/@xmachines/play-react-demo/variables/Shell.md +6 -1
- package/examples/@xmachines/play-react-demo/variables/Stats.md +6 -1
- package/examples/@xmachines/play-react-demo/variables/authCatalog.md +1 -1
- package/examples/@xmachines/play-react-router-demo/README.md +5 -3
- package/examples/@xmachines/play-solid-demo/README.md +2 -2
- package/examples/@xmachines/play-solid-demo/functions/App.md +1 -1
- package/examples/@xmachines/play-solid-demo/type-aliases/AuthCatalog.md +1 -1
- package/examples/@xmachines/play-solid-demo/variables/About.md +1 -1
- package/examples/@xmachines/play-solid-demo/variables/Contact.md +1 -1
- package/examples/@xmachines/play-solid-demo/variables/Dashboard.md +1 -1
- package/examples/@xmachines/play-solid-demo/variables/DebugPanel.md +5 -1
- package/examples/@xmachines/play-solid-demo/variables/Home.md +1 -1
- package/examples/@xmachines/play-solid-demo/variables/Login.md +1 -1
- package/examples/@xmachines/play-solid-demo/variables/NavBar.md +1 -1
- package/examples/@xmachines/play-solid-demo/variables/NavBarView.md +6 -3
- package/examples/@xmachines/play-solid-demo/variables/Navigation.md +1 -1
- package/examples/@xmachines/play-solid-demo/variables/Overview.md +1 -1
- package/examples/@xmachines/play-solid-demo/variables/Profile.md +1 -1
- package/examples/@xmachines/play-solid-demo/variables/Settings.md +1 -1
- package/examples/@xmachines/play-solid-demo/variables/Shell.md +5 -1
- package/examples/@xmachines/play-solid-demo/variables/Stats.md +1 -1
- package/examples/@xmachines/play-solid-demo/variables/authCatalog.md +1 -1
- package/examples/@xmachines/play-solid-router-demo/README.md +6 -4
- package/examples/@xmachines/play-svelte-demo/README.md +11 -1
- 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 +2 -2
- package/examples/@xmachines/play-sveltekit-router-demo/README.md +2 -2
- package/examples/@xmachines/play-tanstack-react-router-demo/README.md +3 -3
- package/examples/@xmachines/play-tanstack-solid-router-demo/README.md +4 -4
- package/examples/@xmachines/play-vue-demo/README.md +11 -2
- 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 +21 -24
- package/examples/README.md +2 -0
- package/package.json +2 -2
- package/rfc/play.md +19 -19
- package/api/@xmachines/play-vue-router/classes/VueBaseRouteMap.md +0 -141
- package/api/_media/README.md +0 -404
|
@@ -140,7 +140,7 @@ What the shared Vitest layer provides automatically:
|
|
|
140
140
|
- Shared setup injection (`config/vitest.setup.ts`) unless already present
|
|
141
141
|
- Node setup injection (`config/vitest.node.setup.ts`) for non-browser projects
|
|
142
142
|
- Runtime preflight:
|
|
143
|
-
|
|
143
|
+
- Node.js runtime/version check (`>=22`) in node setup
|
|
144
144
|
- DOM matcher extension via `@testing-library/jest-dom/vitest`
|
|
145
145
|
|
|
146
146
|
### Vitest Setup Injection Rules
|
|
@@ -190,9 +190,9 @@ import { foo } from "./bar"; // ❌ Wrong
|
|
|
190
190
|
- **Plugins:** TypeScript, Unicorn, Import
|
|
191
191
|
- **Categories:** Correctness (error), Suspicious (warn), Performance (warn)
|
|
192
192
|
- **Key Rules:**
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
193
|
+
- Circular dependency detection (`import/no-cycle`)
|
|
194
|
+
- Unused variables (allow `_` prefix)
|
|
195
|
+
- TypeScript-specific checks
|
|
196
196
|
|
|
197
197
|
### Oxfmt (`config/oxfmt.json`)
|
|
198
198
|
|
|
@@ -206,14 +206,14 @@ import { foo } from "./bar"; // ❌ Wrong
|
|
|
206
206
|
- **Helper API:** `defineXmVitestConfig(importMetaUrl, overrides)` merges shared defaults with package-specific Vitest config
|
|
207
207
|
- **Auto-aliasing:** `resolve.alias` is wired to `xmAliases(importMetaUrl)` so workspace packages resolve to source
|
|
208
208
|
- **Cross-runtime setup (`config/vitest.setup.ts`):**
|
|
209
|
-
|
|
209
|
+
- extends `expect` with `@testing-library/jest-dom/vitest`
|
|
210
210
|
- **URLPattern setup (`config/vitest.urlpattern.setup.ts`):**
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
211
|
+
- loads `urlpattern-polyfill` — opt-in per package via `setupFiles: ["@xmachines/shared/vitest-urlpattern-setup"]`
|
|
212
|
+
- required for packages exercising URLPattern-based route matching (play-router and adapters)
|
|
213
|
+
- mirrors what consumers must do in production on Node < 24 or older browsers
|
|
214
214
|
- **Node-only setup (`config/vitest.node.setup.ts`):**
|
|
215
|
-
|
|
216
|
-
|
|
215
|
+
- asserts Node runtime (`process.release.name === "node"`)
|
|
216
|
+
- enforces Node version `>=22`
|
|
217
217
|
- **Browser behavior:** Browser projects do not receive node-only setup injection
|
|
218
218
|
- **Override model:** Package-level config still controls test environment, includes/excludes, plugins, coverage, and browser provider
|
|
219
219
|
|
|
@@ -228,22 +228,22 @@ import { foo } from "./bar"; // ❌ Wrong
|
|
|
228
228
|
### Vite Alias Troubleshooting
|
|
229
229
|
|
|
230
230
|
- **`[xmAliases] Could not find workspace root`**
|
|
231
|
-
|
|
232
|
-
|
|
231
|
+
- Ensure `xmAliases` receives `import.meta.url` from the calling config file.
|
|
232
|
+
- Ensure the config file lives somewhere under the monorepo root.
|
|
233
233
|
- **Workspace package import resolves to missing `dist/` files**
|
|
234
|
-
|
|
235
|
-
|
|
234
|
+
- Ensure config includes `resolve.alias: xmAliases(import.meta.url)`.
|
|
235
|
+
- Re-run after cleaning caches when lockfile/deps changed.
|
|
236
236
|
|
|
237
237
|
### Vitest Troubleshooting
|
|
238
238
|
|
|
239
239
|
- **`URLPattern is unavailable after setup`**
|
|
240
|
-
|
|
241
|
-
|
|
240
|
+
- Ensure `test.setupFiles` is not replacing shared setup unexpectedly.
|
|
241
|
+
- Ensure config is created via `defineXmVitestConfig(...)`.
|
|
242
242
|
- **`Node runtime is required for this Vitest configuration`**
|
|
243
|
-
|
|
244
|
-
|
|
243
|
+
- This indicates node-only setup loaded in a browser project.
|
|
244
|
+
- Set `test.browser.enabled: true` in that project config.
|
|
245
245
|
- **Workspace import resolution failures (e.g. `@xmachines/play-signals`)**
|
|
246
|
-
|
|
246
|
+
- Confirm config uses `defineXmVitestConfig(import.meta.url, ...)` so aliases are injected.
|
|
247
247
|
|
|
248
248
|
## TypeScript Composite Build System
|
|
249
249
|
|
|
@@ -311,31 +311,31 @@ When creating a new package:
|
|
|
311
311
|
|
|
312
312
|
1. **Add to root tsconfig.json references:**
|
|
313
313
|
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
314
|
+
```json
|
|
315
|
+
{
|
|
316
|
+
"references": [{ "path": "./packages/your-new-package" }]
|
|
317
|
+
}
|
|
318
|
+
```
|
|
319
319
|
|
|
320
320
|
2. **Enable composite in package tsconfig.json:**
|
|
321
321
|
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
322
|
+
```json
|
|
323
|
+
{
|
|
324
|
+
"extends": "@xmachines/shared/tsconfig",
|
|
325
|
+
"compilerOptions": {
|
|
326
|
+
"composite": true,
|
|
327
|
+
"rootDir": "./src",
|
|
328
|
+
"outDir": "./dist"
|
|
329
|
+
}
|
|
330
|
+
}
|
|
331
|
+
```
|
|
332
332
|
|
|
333
333
|
3. **Declare dependencies (if any):**
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
334
|
+
```json
|
|
335
|
+
{
|
|
336
|
+
"references": [{ "path": "../dependency-package" }]
|
|
337
|
+
}
|
|
338
|
+
```
|
|
339
339
|
|
|
340
340
|
### IDE Benefits
|
|
341
341
|
|
|
@@ -355,14 +355,14 @@ To add a new shared configuration (e.g., for Jest, Vitest, etc.):
|
|
|
355
355
|
|
|
356
356
|
1. Create `config/<tool>.json` (or `.js`, `.ts` as appropriate)
|
|
357
357
|
2. Add exports to `package.json` exports field:
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
358
|
+
```json
|
|
359
|
+
{
|
|
360
|
+
"exports": {
|
|
361
|
+
"./<tool>": "./config/<tool>.json",
|
|
362
|
+
"./config/<tool>.json": "./config/<tool>.json"
|
|
363
|
+
}
|
|
364
|
+
}
|
|
365
|
+
```
|
|
366
366
|
3. Document in this README with usage examples
|
|
367
367
|
4. Note whether the tool supports package exports or requires relative paths
|
|
368
368
|
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
function defineXmVitestConfig(importMetaUrl, overrides): UserConfig;
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
Defined in: [index.ts:10](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
9
|
+
Defined in: [index.ts:10](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.35/packages/shared/src/index.ts#L10)
|
|
10
10
|
|
|
11
11
|
Create a Vitest config with XMachines workspace defaults.
|
|
12
12
|
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
function xmAliases(importMetaUrl): Record<string, string>;
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
Defined in: [index.ts:20](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
9
|
+
Defined in: [index.ts:20](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.35/packages/shared/src/index.ts#L20)
|
|
10
10
|
|
|
11
11
|
Build Vite/Vitest alias entries for all `@xmachines/*` workspace packages.
|
|
12
12
|
|
package/api/llms.txt
CHANGED
|
@@ -54,8 +54,8 @@
|
|
|
54
54
|
## Quick Reference
|
|
55
55
|
|
|
56
56
|
```javascript
|
|
57
|
-
import { definePlayer
|
|
58
|
-
import { extractMachineRoutes } from '@xmachines/play-router';
|
|
57
|
+
import { definePlayer } from '@xmachines/play-xstate';
|
|
58
|
+
import { createRouteMap, extractMachineRoutes } from '@xmachines/play-router';
|
|
59
59
|
import { defineRegistry } from '@json-render/react';
|
|
60
60
|
import { PlayRenderer } from '@xmachines/play-react';
|
|
61
61
|
|
|
@@ -66,6 +66,8 @@ actor.start();
|
|
|
66
66
|
const currentView = actor.currentView.get();
|
|
67
67
|
const currentRoute = actor.currentRoute.get();
|
|
68
68
|
const routeTree = extractMachineRoutes(machine);
|
|
69
|
+
const routeMatcher = createRouteMap(routeTree);
|
|
70
|
+
const routeMatch = routeMatcher.match(currentRoute ?? '/');
|
|
69
71
|
|
|
70
72
|
const { registry } = defineRegistry(catalog, { components, actions });
|
|
71
73
|
<PlayRenderer actor={actor} registry={registry} actions={{ login: 'auth.login' }} />
|
|
@@ -144,8 +144,8 @@ Expected result: library-pattern invariant tests pass and the browser renderer s
|
|
|
144
144
|
|
|
145
145
|
## Learn More
|
|
146
146
|
|
|
147
|
-
- [Play DOM
|
|
148
|
-
- [Play DOM Router
|
|
147
|
+
- [Play DOM](../../README.md)
|
|
148
|
+
- [Play DOM Router](../../../play-dom-router/examples/demo)
|
|
149
149
|
|
|
150
150
|
## Type Aliases
|
|
151
151
|
|
|
@@ -6,10 +6,11 @@
|
|
|
6
6
|
function createNavBar(actor, container): () => void;
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
Defined in: [play-dom/examples/demo/src/components/NavBar.ts:
|
|
9
|
+
Defined in: [play-dom/examples/demo/src/components/NavBar.ts:9](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.35/packages/play-dom/examples/demo/src/components/NavBar.ts#L9)
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
|
|
11
|
+
NavBar — App-shell navigation factory. Mounts a reactive nav into
|
|
12
|
+
`container`, observes actor.state via watchSignal, and updates button
|
|
13
|
+
visibility based on auth state. Returns a disconnect function.
|
|
13
14
|
|
|
14
15
|
## Parameters
|
|
15
16
|
|
|
@@ -6,7 +6,11 @@
|
|
|
6
6
|
function initShell(actor, appElement): () => void;
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
Defined in: [play-dom/examples/demo/src/
|
|
9
|
+
Defined in: [play-dom/examples/demo/src/components/Shell.ts:24](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.35/packages/play-dom/examples/demo/src/components/Shell.ts#L24)
|
|
10
|
+
|
|
11
|
+
Shell — DOM shell layout factory. Renders demo chrome (header + main +
|
|
12
|
+
debug panel), mounts NavBar, connects DOM renderer, and wires DebugPanel.
|
|
13
|
+
Returns a disconnect function.
|
|
10
14
|
|
|
11
15
|
## Parameters
|
|
12
16
|
|
|
@@ -6,4 +6,4 @@
|
|
|
6
6
|
type AuthCatalog = typeof authCatalog;
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
Defined in: [play-dom/examples/demo/src/catalog.ts:6](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
9
|
+
Defined in: [play-dom/examples/demo/src/catalog.ts:6](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.35/packages/play-dom/examples/demo/src/catalog.ts#L6)
|
|
@@ -6,4 +6,7 @@
|
|
|
6
6
|
const About: ComponentFn<AuthCatalog, "About">;
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
Defined in: [play-dom/examples/demo/src/components/About.ts:
|
|
9
|
+
Defined in: [play-dom/examples/demo/src/components/About.ts:8](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.35/packages/play-dom/examples/demo/src/components/About.ts#L8)
|
|
10
|
+
|
|
11
|
+
About — Public information page. Catalog-typed DOM component
|
|
12
|
+
(ComponentFn<AuthCatalog, 'About'>). Renders static content from props.
|
|
@@ -6,4 +6,7 @@
|
|
|
6
6
|
const Contact: ComponentFn<AuthCatalog, "Contact">;
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
Defined in: [play-dom/examples/demo/src/components/Contact.ts:
|
|
9
|
+
Defined in: [play-dom/examples/demo/src/components/Contact.ts:8](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.35/packages/play-dom/examples/demo/src/components/Contact.ts#L8)
|
|
10
|
+
|
|
11
|
+
Contact — Public contact page. Catalog-typed DOM component
|
|
12
|
+
(ComponentFn<AuthCatalog, 'Contact'>). Renders static content from props.
|
|
@@ -6,4 +6,8 @@
|
|
|
6
6
|
const Dashboard: ComponentFn<AuthCatalog, "Dashboard">;
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
Defined in: [play-dom/examples/demo/src/components/Dashboard.ts:
|
|
9
|
+
Defined in: [play-dom/examples/demo/src/components/Dashboard.ts:9](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.35/packages/play-dom/examples/demo/src/components/Dashboard.ts#L9)
|
|
10
|
+
|
|
11
|
+
Dashboard — Protected authenticated home. Catalog-typed DOM component
|
|
12
|
+
(ComponentFn<AuthCatalog, 'Dashboard'>). Renders welcome message; logout
|
|
13
|
+
button emits 'logout' action.
|
|
@@ -6,4 +6,8 @@
|
|
|
6
6
|
const Home: ComponentFn<AuthCatalog, "Home">;
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
Defined in: [play-dom/examples/demo/src/components/Home.ts:
|
|
9
|
+
Defined in: [play-dom/examples/demo/src/components/Home.ts:9](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.35/packages/play-dom/examples/demo/src/components/Home.ts#L9)
|
|
10
|
+
|
|
11
|
+
Home — Public landing page. Catalog-typed DOM component
|
|
12
|
+
(ComponentFn<AuthCatalog, 'Home'>). Renders static welcome content from
|
|
13
|
+
props.
|
|
@@ -6,4 +6,8 @@
|
|
|
6
6
|
const Login: ComponentFn<AuthCatalog, "Login">;
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
Defined in: [play-dom/examples/demo/src/components/Login.ts:
|
|
9
|
+
Defined in: [play-dom/examples/demo/src/components/Login.ts:9](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.35/packages/play-dom/examples/demo/src/components/Login.ts#L9)
|
|
10
|
+
|
|
11
|
+
Login — Authentication form. Catalog-typed DOM component
|
|
12
|
+
(ComponentFn<AuthCatalog, 'Login'>). Binds username input to ctx.store via
|
|
13
|
+
$bindState; emits 'submit' on form submit.
|
|
@@ -6,4 +6,11 @@
|
|
|
6
6
|
const NavBarView: ComponentFn<AuthCatalog, "NavBar">;
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
Defined in: [play-dom/examples/demo/src/components/NavBarView.ts:
|
|
9
|
+
Defined in: [play-dom/examples/demo/src/components/NavBarView.ts:12](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.35/packages/play-dom/examples/demo/src/components/NavBarView.ts#L12)
|
|
10
|
+
|
|
11
|
+
NavBarView — Catalog-typed NavBar component for DOM renderer.
|
|
12
|
+
|
|
13
|
+
Receives props from spec (isAuthenticated, username) and renders a static nav element.
|
|
14
|
+
Used in the defineRegistry components map.
|
|
15
|
+
|
|
16
|
+
The actor-driven NavBar (createNavBar) is mounted at the shell level.
|
|
@@ -6,4 +6,8 @@
|
|
|
6
6
|
const Navigation: ComponentFn<AuthCatalog, "Navigation">;
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
Defined in: [play-dom/examples/demo/src/components/Navigation.ts:
|
|
9
|
+
Defined in: [play-dom/examples/demo/src/components/Navigation.ts:9](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.35/packages/play-dom/examples/demo/src/components/Navigation.ts#L9)
|
|
10
|
+
|
|
11
|
+
Navigation — Navigation status display. Catalog-typed DOM component
|
|
12
|
+
(ComponentFn<AuthCatalog, 'Navigation'>). Renders current path and auth
|
|
13
|
+
status from props.
|
|
@@ -6,4 +6,8 @@
|
|
|
6
6
|
const Overview: ComponentFn<AuthCatalog, "Overview">;
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
Defined in: [play-dom/examples/demo/src/components/Overview.ts:
|
|
9
|
+
Defined in: [play-dom/examples/demo/src/components/Overview.ts:9](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.35/packages/play-dom/examples/demo/src/components/Overview.ts#L9)
|
|
10
|
+
|
|
11
|
+
Overview — Dashboard overview child route. Catalog-typed DOM component
|
|
12
|
+
(ComponentFn<AuthCatalog, 'Overview'>). Relative route resolves to
|
|
13
|
+
/dashboard/overview. Logout and goToStats buttons emit actions.
|
|
@@ -6,4 +6,8 @@
|
|
|
6
6
|
const Profile: ComponentFn<AuthCatalog, "Profile">;
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
Defined in: [play-dom/examples/demo/src/components/Profile.ts:
|
|
9
|
+
Defined in: [play-dom/examples/demo/src/components/Profile.ts:9](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.35/packages/play-dom/examples/demo/src/components/Profile.ts#L9)
|
|
10
|
+
|
|
11
|
+
Profile — Protected user profile page. Catalog-typed DOM component
|
|
12
|
+
(ComponentFn<AuthCatalog, 'Profile'>). Renders username from route params
|
|
13
|
+
filled into props.
|
|
@@ -6,4 +6,8 @@
|
|
|
6
6
|
const Settings: ComponentFn<AuthCatalog, "Settings">;
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
Defined in: [play-dom/examples/demo/src/components/Settings.ts:
|
|
9
|
+
Defined in: [play-dom/examples/demo/src/components/Settings.ts:9](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.35/packages/play-dom/examples/demo/src/components/Settings.ts#L9)
|
|
10
|
+
|
|
11
|
+
Settings — Protected settings page. Catalog-typed DOM component
|
|
12
|
+
(ComponentFn<AuthCatalog, 'Settings'>). Renders active section and username
|
|
13
|
+
from props.
|
|
@@ -6,4 +6,8 @@
|
|
|
6
6
|
const Stats: ComponentFn<AuthCatalog, "Stats">;
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
Defined in: [play-dom/examples/demo/src/components/Stats.ts:
|
|
9
|
+
Defined in: [play-dom/examples/demo/src/components/Stats.ts:9](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.35/packages/play-dom/examples/demo/src/components/Stats.ts#L9)
|
|
10
|
+
|
|
11
|
+
Stats — Dashboard stats child route. Catalog-typed DOM component
|
|
12
|
+
(ComponentFn<AuthCatalog, 'Stats'>). Relative route resolves to
|
|
13
|
+
/dashboard/stats. goToOverview button emits action.
|
|
@@ -169,4 +169,4 @@ const authCatalog: Catalog<
|
|
|
169
169
|
>;
|
|
170
170
|
```
|
|
171
171
|
|
|
172
|
-
Defined in: [play-dom/examples/demo/src/catalog.ts:5](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
172
|
+
Defined in: [play-dom/examples/demo/src/catalog.ts:5](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.35/packages/play-dom/examples/demo/src/catalog.ts#L5)
|
|
@@ -27,22 +27,22 @@ Then open `http://localhost:5174`.
|
|
|
27
27
|
|
|
28
28
|
Use this order to understand the implementation:
|
|
29
29
|
|
|
30
|
-
1. `src/main.ts`
|
|
31
|
-
2. `
|
|
32
|
-
3. `
|
|
33
|
-
4.
|
|
34
|
-
5.
|
|
30
|
+
1. `src/main.ts` looks up the host element, calls `initApp(app)` from `src/runtime.ts`, and registers unload cleanup.
|
|
31
|
+
2. `src/runtime.ts` creates the actor from the shared machine, starts it, initializes router sync via `initRouter(actor)`, mounts the shared DOM shell via `initShell(actor, host)`, and returns one cleanup function.
|
|
32
|
+
3. `initRouter(actor)` from `src/router.ts` extracts route metadata, creates a browser history wrapper, instantiates a router, and calls `connectRouter` to wire bidirectional actor ↔ URL sync.
|
|
33
|
+
4. `initShell(actor, host)` is imported from `@xmachines/play-dom-demo`, so the router demo reuses the shared DOM shell instead of duplicating the scaffold and renderer wiring.
|
|
34
|
+
5. Navigation buttons and links dispatch `play.route`, `auth.login`, and `auth.logout` events directly to the actor — no URL mutations from the shell.
|
|
35
|
+
6. Browser tests in `test/browser/` validate startup rendering and the full auth route flow.
|
|
35
36
|
|
|
36
37
|
```ts
|
|
37
38
|
// src/main.ts (shape)
|
|
38
|
-
const actor = createPlayer();
|
|
39
|
-
actor.start();
|
|
40
|
-
|
|
41
|
-
const cleanupRouter = initRouter(actor);
|
|
42
39
|
const app = document.getElementById("app");
|
|
40
|
+
let cleanup;
|
|
43
41
|
if (app) {
|
|
44
|
-
|
|
42
|
+
cleanup = initApp(app);
|
|
45
43
|
}
|
|
44
|
+
|
|
45
|
+
window.addEventListener("beforeunload", () => cleanup?.());
|
|
46
46
|
```
|
|
47
47
|
|
|
48
48
|
```ts
|
|
@@ -62,22 +62,26 @@ export function initRouter(actor) {
|
|
|
62
62
|
```
|
|
63
63
|
|
|
64
64
|
```ts
|
|
65
|
-
// src/
|
|
66
|
-
const
|
|
65
|
+
// src/runtime.ts (shape)
|
|
66
|
+
const actor = createPlayer();
|
|
67
|
+
actor.start();
|
|
67
68
|
|
|
68
|
-
const
|
|
69
|
-
|
|
70
|
-
navLogout.hidden = !snapshot.context.isAuthenticated;
|
|
71
|
-
});
|
|
69
|
+
const cleanupRouter = initRouter(actor);
|
|
70
|
+
const cleanupShell = initShell(actor, host);
|
|
72
71
|
|
|
73
|
-
|
|
72
|
+
return () => {
|
|
73
|
+
cleanupShell();
|
|
74
|
+
cleanupRouter();
|
|
75
|
+
actor.stop();
|
|
76
|
+
};
|
|
74
77
|
```
|
|
75
78
|
|
|
76
79
|
## Key Files
|
|
77
80
|
|
|
78
|
-
- `src/main.ts` -
|
|
81
|
+
- `src/main.ts` - host lookup, app bootstrap, and unload cleanup
|
|
82
|
+
- `src/runtime.ts` - actor startup, router initialization, and shared shell wiring
|
|
79
83
|
- `src/router.ts` - `createBrowserHistory`, `createRouter`, and `connectRouter` wiring
|
|
80
|
-
-
|
|
84
|
+
- `@xmachines/play-dom-demo` - shared DOM shell, NavBar, DebugPanel, and renderer wiring reused by this router demo
|
|
81
85
|
- `test/library-pattern.test.ts` - architecture boundary and invariant assertions
|
|
82
86
|
- `test/browser/startup.browser.test.ts` - startup rendering assertion for public home + login action
|
|
83
87
|
- `test/browser/auth-flow.browser.test.ts` - login → dashboard → profile → logout browser flow
|
|
@@ -131,6 +135,6 @@ Expected result: tests pass, including startup rendering and the full browser au
|
|
|
131
135
|
|
|
132
136
|
## Learn More
|
|
133
137
|
|
|
134
|
-
- [Play DOM Router
|
|
135
|
-
- [Play DOM
|
|
136
|
-
- [Play Router
|
|
138
|
+
- [Play DOM Router](../../README.md)
|
|
139
|
+
- [Play DOM](../../../play-dom/examples/demo)
|
|
140
|
+
- [Play Router](../../../play-router)
|
|
@@ -156,8 +156,8 @@ Expected result: library-pattern invariant tests pass and the browser renderer s
|
|
|
156
156
|
|
|
157
157
|
## Learn More
|
|
158
158
|
|
|
159
|
-
- [React
|
|
160
|
-
- [React Router
|
|
159
|
+
- [React](../../README.md)
|
|
160
|
+
- [React Router](../../../play-react-router/examples/demo)
|
|
161
161
|
|
|
162
162
|
## Type Aliases
|
|
163
163
|
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
function App(): Element;
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
Defined in: [packages/play-react/examples/demo/src/App.tsx:36](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
9
|
+
Defined in: [packages/play-react/examples/demo/src/App.tsx:36](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.35/packages/play-react/examples/demo/src/App.tsx#L36)
|
|
10
10
|
|
|
11
11
|
## Returns
|
|
12
12
|
|
|
@@ -6,4 +6,4 @@
|
|
|
6
6
|
type AuthCatalog = typeof authCatalog;
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
Defined in: [packages/play-react/examples/demo/src/catalog.ts:6](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
9
|
+
Defined in: [packages/play-react/examples/demo/src/catalog.ts:6](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.35/packages/play-react/examples/demo/src/catalog.ts#L6)
|
|
@@ -6,4 +6,9 @@
|
|
|
6
6
|
const About: ComponentFn<AuthCatalog, "About">;
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
Defined in: [packages/play-react/examples/demo/src/components/About.tsx:
|
|
9
|
+
Defined in: [packages/play-react/examples/demo/src/components/About.tsx:10](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.35/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.
|
|
@@ -6,4 +6,9 @@
|
|
|
6
6
|
const Contact: ComponentFn<AuthCatalog, "Contact">;
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
Defined in: [packages/play-react/examples/demo/src/components/Contact.tsx:
|
|
9
|
+
Defined in: [packages/play-react/examples/demo/src/components/Contact.tsx:10](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.35/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.
|
|
@@ -6,4 +6,10 @@
|
|
|
6
6
|
const Dashboard: ComponentFn<AuthCatalog, "Dashboard">;
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
Defined in: [packages/play-react/examples/demo/src/components/Dashboard.tsx:
|
|
9
|
+
Defined in: [packages/play-react/examples/demo/src/components/Dashboard.tsx:12](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.35/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.
|
|
@@ -8,4 +8,8 @@ const DebugPanel: FC<{
|
|
|
8
8
|
}>;
|
|
9
9
|
```
|
|
10
10
|
|
|
11
|
-
Defined in: [packages/play-react/examples/demo/src/components/DebugPanel.tsx:
|
|
11
|
+
Defined in: [packages/play-react/examples/demo/src/components/DebugPanel.tsx:11](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.35/packages/play-react/examples/demo/src/components/DebugPanel.tsx#L11)
|
|
12
|
+
|
|
13
|
+
DebugPanel — Live debug footer. Observes actor.state and actor.currentRoute
|
|
14
|
+
via useSignalEffect and displays current state value, can-logout status,
|
|
15
|
+
and active route.
|
|
@@ -6,4 +6,9 @@
|
|
|
6
6
|
const Home: ComponentFn<AuthCatalog, "Home">;
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
Defined in: [packages/play-react/examples/demo/src/components/Home.tsx:
|
|
9
|
+
Defined in: [packages/play-react/examples/demo/src/components/Home.tsx:10](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.35/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.
|
|
@@ -6,4 +6,11 @@
|
|
|
6
6
|
const Login: ComponentFn<AuthCatalog, "Login">;
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
Defined in: [packages/play-react/examples/demo/src/components/Login.tsx:
|
|
9
|
+
Defined in: [packages/play-react/examples/demo/src/components/Login.tsx:14](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.35/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.
|
|
@@ -8,4 +8,9 @@ const NavBar: FC<{
|
|
|
8
8
|
}>;
|
|
9
9
|
```
|
|
10
10
|
|
|
11
|
-
Defined in: [packages/play-react/examples/demo/src/components/NavBar.tsx:
|
|
11
|
+
Defined in: [packages/play-react/examples/demo/src/components/NavBar.tsx:12](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.35/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.
|
|
@@ -6,4 +6,10 @@
|
|
|
6
6
|
const NavBarView: ComponentFn<AuthCatalog, "NavBar">;
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
Defined in: [packages/play-react/examples/demo/src/components/NavBarView.tsx:
|
|
9
|
+
Defined in: [packages/play-react/examples/demo/src/components/NavBarView.tsx:11](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.35/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.
|
|
@@ -6,4 +6,9 @@
|
|
|
6
6
|
const Navigation: ComponentFn<AuthCatalog, "Navigation">;
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
Defined in: [packages/play-react/examples/demo/src/components/Navigation.tsx:
|
|
9
|
+
Defined in: [packages/play-react/examples/demo/src/components/Navigation.tsx:10](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.35/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.
|
|
@@ -6,4 +6,9 @@
|
|
|
6
6
|
const Overview: ComponentFn<AuthCatalog, "Overview">;
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
Defined in: [packages/play-react/examples/demo/src/components/Overview.tsx:
|
|
9
|
+
Defined in: [packages/play-react/examples/demo/src/components/Overview.tsx:10](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.35/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.
|