@xmachines/docs 1.0.0-beta.51 → 1.0.0-beta.52
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 +13 -11
- package/api/@xmachines/play/README.md +6 -5
- 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 +2 -2
- 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 +125 -47
- package/api/@xmachines/play-dom/classes/PlayRenderer.md +20 -10
- package/api/@xmachines/play-dom/functions/createPlayUI.md +9 -9
- package/api/@xmachines/play-dom/functions/createRenderer.md +3 -2
- package/api/@xmachines/play-dom/functions/defineRegistry.md +1 -1
- package/api/@xmachines/play-dom/functions/renderSpec.md +17 -13
- package/api/@xmachines/play-dom/interfaces/ComponentContext.md +7 -7
- package/api/@xmachines/play-dom/interfaces/CreatePlayUIOptions.md +15 -12
- package/api/@xmachines/play-dom/interfaces/DefineRegistryResult.md +4 -4
- package/api/@xmachines/play-dom/interfaces/DomRenderContext.md +17 -14
- package/api/@xmachines/play-dom/interfaces/EventHandle.md +4 -4
- package/api/@xmachines/play-dom/interfaces/MountOptions.md +10 -6
- package/api/@xmachines/play-dom/interfaces/PlayDomOptions.md +20 -8
- package/api/@xmachines/play-dom/interfaces/UIProviderOptions.md +13 -10
- 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 +6 -4
- 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 +23 -25
- package/api/@xmachines/play-dom-router/functions/connectRouter.md +1 -1
- package/api/@xmachines/play-dom-router/functions/createBrowserHistory.md +1 -1
- package/api/@xmachines/play-dom-router/functions/createRouteMap.md +1 -1
- package/api/@xmachines/play-dom-router/functions/createRouter.md +1 -1
- package/api/@xmachines/play-dom-router/interfaces/BrowserHistory.md +14 -14
- package/api/@xmachines/play-dom-router/interfaces/BrowserWindow.md +14 -14
- package/api/@xmachines/play-dom-router/interfaces/ConnectRouterOptions.md +6 -6
- package/api/@xmachines/play-dom-router/interfaces/PlayRouteEvent.md +6 -6
- package/api/@xmachines/play-dom-router/interfaces/RoutableActor.md +68 -0
- package/api/@xmachines/play-dom-router/interfaces/RouteLookupContract.md +3 -3
- package/api/@xmachines/play-dom-router/interfaces/RouteMap.md +3 -3
- package/api/@xmachines/play-dom-router/interfaces/RouteMapOptions.md +2 -2
- package/api/@xmachines/play-dom-router/interfaces/RouteMapping.md +3 -3
- package/api/@xmachines/play-dom-router/interfaces/RouterBridge.md +3 -3
- package/api/@xmachines/play-dom-router/interfaces/VanillaRouter.md +4 -4
- package/api/@xmachines/play-react/README.md +3 -3
- package/api/@xmachines/play-react/classes/PlayErrorBoundary.md +5 -5
- package/api/@xmachines/play-react/functions/useActor.md +3 -3
- 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/AnyPlayActor.md +11 -0
- package/api/@xmachines/play-react/variables/ActorProvider.md +1 -1
- package/api/@xmachines/play-react/variables/PlayRenderer.md +1 -1
- package/api/@xmachines/play-react/variables/PlayUIProvider.md +1 -1
- package/api/@xmachines/play-react-router/README.md +16 -1
- package/api/@xmachines/play-react-router/classes/ReactRouterBridge.md +85 -41
- package/api/@xmachines/play-react-router/classes/RouteMap.md +4 -4
- package/api/@xmachines/play-react-router/functions/PlayRouterProvider.md +4 -4
- package/api/@xmachines/play-react-router/functions/createRouteMap.md +1 -1
- package/api/@xmachines/play-react-router/functions/createRouteMapFromTree.md +1 -1
- package/api/@xmachines/play-react-router/interfaces/PlayActor.md +68 -0
- package/api/@xmachines/play-react-router/interfaces/PlayRouteEvent.md +6 -6
- package/api/@xmachines/play-react-router/interfaces/PlayRouterProviderProps.md +8 -8
- package/api/@xmachines/play-react-router/interfaces/RouteMapOptions.md +2 -2
- package/api/@xmachines/play-react-router/interfaces/RouteMapping.md +3 -3
- package/api/@xmachines/play-react-router/interfaces/RouterBridge.md +3 -3
- package/api/@xmachines/play-router/README.md +21 -18
- package/api/@xmachines/play-router/classes/RouteMap.md +4 -4
- package/api/@xmachines/play-router/classes/RouterBridgeBase.md +83 -43
- package/api/@xmachines/play-router/functions/buildPlayRouteEvent.md +1 -1
- package/api/@xmachines/play-router/functions/buildRouteTree.md +1 -1
- package/api/@xmachines/play-router/functions/createRouteMap.md +1 -1
- package/api/@xmachines/play-router/functions/createRouteMapFromTree.md +1 -1
- package/api/@xmachines/play-router/functions/createRouteMatcher.md +1 -1
- package/api/@xmachines/play-router/functions/detectDuplicateRoutes.md +1 -1
- package/api/@xmachines/play-router/functions/extractMachineRoutes.md +1 -1
- package/api/@xmachines/play-router/functions/extractQuery.md +1 -1
- package/api/@xmachines/play-router/functions/extractRouteParams.md +1 -1
- package/api/@xmachines/play-router/functions/findRouteById.md +1 -1
- package/api/@xmachines/play-router/functions/findRouteByPath.md +1 -1
- package/api/@xmachines/play-router/functions/getNavigableRoutes.md +1 -1
- package/api/@xmachines/play-router/functions/getRoutableRoutes.md +1 -1
- package/api/@xmachines/play-router/functions/getTransitionReachableRoutes.md +1 -1
- package/api/@xmachines/play-router/functions/isRouteReachable.md +1 -1
- package/api/@xmachines/play-router/functions/machineToGraph.md +1 -1
- package/api/@xmachines/play-router/functions/routeExists.md +1 -1
- package/api/@xmachines/play-router/functions/sanitizePathname.md +1 -1
- package/api/@xmachines/play-router/functions/validateRouteFormat.md +1 -1
- package/api/@xmachines/play-router/functions/validateStateExists.md +1 -1
- package/api/@xmachines/play-router/interfaces/BuildPlayRouteEventOptions.md +4 -4
- package/api/@xmachines/play-router/interfaces/LocationLike.md +3 -3
- package/api/@xmachines/play-router/interfaces/MachineEdgeData.md +3 -3
- package/api/@xmachines/play-router/interfaces/MachineNodeData.md +5 -5
- package/api/@xmachines/play-router/interfaces/PlayActor.md +68 -0
- package/api/@xmachines/play-router/interfaces/PlayRouteEvent.md +6 -6
- package/api/@xmachines/play-router/interfaces/RoutableActor.md +64 -0
- package/api/@xmachines/play-router/interfaces/RouteInfo.md +8 -8
- package/api/@xmachines/play-router/interfaces/RouteMapOptions.md +2 -2
- package/api/@xmachines/play-router/interfaces/RouteMapping.md +3 -3
- package/api/@xmachines/play-router/interfaces/RouteMatch.md +3 -3
- package/api/@xmachines/play-router/interfaces/RouteMatcher.md +4 -4
- package/api/@xmachines/play-router/interfaces/RouteNode.md +10 -10
- package/api/@xmachines/play-router/interfaces/RouteObject.md +2 -2
- package/api/@xmachines/play-router/interfaces/RouteTree.md +5 -5
- package/api/@xmachines/play-router/interfaces/RouteWatcherHandle.md +3 -3
- package/api/@xmachines/play-router/interfaces/RouterBridge.md +3 -3
- package/api/@xmachines/play-router/interfaces/WindowLike.md +3 -3
- package/api/@xmachines/play-router/type-aliases/MachineGraph.md +1 -1
- package/api/@xmachines/play-router/type-aliases/RouteMetadata.md +1 -1
- package/api/@xmachines/play-signals/README.md +4 -3
- package/api/@xmachines/play-signals/functions/watchSignal.md +1 -1
- package/api/@xmachines/play-signals/interfaces/ComputedOptions.md +2 -2
- package/api/@xmachines/play-signals/interfaces/SignalComputed.md +2 -2
- package/api/@xmachines/play-signals/interfaces/SignalOptions.md +2 -2
- package/api/@xmachines/play-signals/interfaces/SignalState.md +3 -3
- package/api/@xmachines/play-signals/interfaces/SignalWatcher.md +4 -4
- package/api/@xmachines/play-signals/type-aliases/WatcherNotify.md +1 -1
- package/api/@xmachines/play-solid/README.md +18 -20
- package/api/@xmachines/play-solid/functions/useActor.md +3 -3
- 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/AnyPlayActor.md +11 -0
- package/api/@xmachines/play-solid/variables/ActorContext.md +2 -2
- 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 +77 -10
- package/api/@xmachines/play-solid-router/classes/RouteMap.md +4 -4
- package/api/@xmachines/play-solid-router/classes/SolidRouterBridge.md +83 -35
- package/api/@xmachines/play-solid-router/functions/PlayRouterProvider.md +4 -4
- package/api/@xmachines/play-solid-router/functions/createRouteMap.md +1 -1
- package/api/@xmachines/play-solid-router/interfaces/AbstractActor.md +3 -3
- package/api/@xmachines/play-solid-router/interfaces/PlayActor.md +68 -0
- package/api/@xmachines/play-solid-router/interfaces/PlayRouteEvent.md +6 -6
- package/api/@xmachines/play-solid-router/interfaces/PlayRouterProviderProps.md +8 -8
- package/api/@xmachines/play-solid-router/interfaces/RouteMapOptions.md +2 -2
- package/api/@xmachines/play-solid-router/interfaces/RouteMapping.md +3 -3
- package/api/@xmachines/play-solid-router/interfaces/RouterBridge.md +3 -3
- package/api/@xmachines/play-solid-router/type-aliases/RoutableActor.md +6 -4
- package/api/@xmachines/play-solid-router/type-aliases/SolidRouterHooks.md +4 -4
- package/api/@xmachines/play-svelte/README.md +23 -14
- package/api/@xmachines/play-svelte/functions/defineRegistry.md +1 -1
- package/api/@xmachines/play-svelte/functions/getActorContext.md +3 -3
- package/api/@xmachines/play-svelte/functions/getPlayViewContext.md +1 -1
- package/api/@xmachines/play-svelte/functions/setActorContext.md +4 -4
- package/api/@xmachines/play-svelte/interfaces/ActorProviderProps.md +8 -8
- package/api/@xmachines/play-svelte/interfaces/DefineRegistryOptions.md +4 -4
- package/api/@xmachines/play-svelte/interfaces/PlayUIProviderProps.md +11 -11
- package/api/@xmachines/play-svelte/interfaces/ViewContextValue.md +5 -5
- package/api/@xmachines/play-svelte/type-aliases/AnyPlayActor.md +11 -0
- package/api/@xmachines/play-svelte-spa-router/README.md +13 -13
- package/api/@xmachines/play-svelte-spa-router/classes/RouteMap.md +4 -4
- package/api/@xmachines/play-svelte-spa-router/functions/connectRouter.md +1 -1
- package/api/@xmachines/play-svelte-spa-router/functions/createRouteMap.md +1 -1
- package/api/@xmachines/play-svelte-spa-router/interfaces/ConnectRouterOptions.md +6 -6
- package/api/@xmachines/play-svelte-spa-router/interfaces/PlayRouteEvent.md +6 -6
- package/api/@xmachines/play-svelte-spa-router/interfaces/RouteMapOptions.md +2 -2
- package/api/@xmachines/play-svelte-spa-router/interfaces/RouteMapping.md +3 -3
- package/api/@xmachines/play-svelte-spa-router/interfaces/RouterBridge.md +3 -3
- package/api/@xmachines/play-svelte-spa-router/interfaces/WindowLike.md +3 -3
- package/api/@xmachines/play-svelte-spa-router/type-aliases/RoutableActor.md +1 -1
- package/api/@xmachines/play-sveltekit-router/README.md +20 -20
- package/api/@xmachines/play-sveltekit-router/classes/RouteMap.md +4 -4
- package/api/@xmachines/play-sveltekit-router/functions/connectRouter.md +1 -1
- package/api/@xmachines/play-sveltekit-router/functions/createRouteMap.md +1 -1
- package/api/@xmachines/play-sveltekit-router/interfaces/ConnectRouterOptions.md +6 -6
- package/api/@xmachines/play-sveltekit-router/interfaces/LocationLike.md +3 -3
- package/api/@xmachines/play-sveltekit-router/interfaces/PlayRouteEvent.md +6 -6
- package/api/@xmachines/play-sveltekit-router/interfaces/RouteMapOptions.md +2 -2
- package/api/@xmachines/play-sveltekit-router/interfaces/RouteMapping.md +3 -3
- package/api/@xmachines/play-sveltekit-router/interfaces/RouterBridge.md +3 -3
- package/api/@xmachines/play-sveltekit-router/type-aliases/RoutableActor.md +1 -1
- package/api/@xmachines/play-tanstack-react-router/README.md +3 -6
- package/api/@xmachines/play-tanstack-react-router/classes/RouteMap.md +4 -4
- package/api/@xmachines/play-tanstack-react-router/classes/TanStackReactRouterBridge.md +80 -35
- package/api/@xmachines/play-tanstack-react-router/functions/PlayRouterProvider.md +4 -4
- package/api/@xmachines/play-tanstack-react-router/functions/createRouteMap.md +1 -1
- package/api/@xmachines/play-tanstack-react-router/functions/createRouteMapFromTree.md +1 -1
- package/api/@xmachines/play-tanstack-react-router/functions/extractMachineRoutes.md +1 -1
- package/api/@xmachines/play-tanstack-react-router/interfaces/PlayActor.md +68 -0
- package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouteEvent.md +6 -6
- package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouterProviderProps.md +8 -8
- package/api/@xmachines/play-tanstack-react-router/interfaces/RouteMapOptions.md +2 -2
- package/api/@xmachines/play-tanstack-react-router/interfaces/RouteMapping.md +3 -3
- package/api/@xmachines/play-tanstack-react-router/interfaces/RouteNavigateEvent.md +3 -3
- package/api/@xmachines/play-tanstack-react-router/interfaces/RouterBridge.md +3 -3
- package/api/@xmachines/play-tanstack-react-router/type-aliases/TanStackRouterInstance.md +1 -1
- package/api/@xmachines/play-tanstack-react-router/type-aliases/TanStackRouterLike.md +4 -4
- package/api/@xmachines/play-tanstack-solid-router/README.md +23 -17
- package/api/@xmachines/play-tanstack-solid-router/classes/RouteMap.md +4 -4
- package/api/@xmachines/play-tanstack-solid-router/classes/{SolidRouterBridge.md → TanStackSolidRouterBridge.md} +86 -38
- package/api/@xmachines/play-tanstack-solid-router/functions/PlayRouterProvider.md +4 -4
- package/api/@xmachines/play-tanstack-solid-router/functions/createRouteMap.md +1 -1
- package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayActor.md +68 -0
- package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayRouteEvent.md +6 -6
- package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayRouterProviderProps.md +8 -8
- package/api/@xmachines/play-tanstack-solid-router/interfaces/RouteMapOptions.md +2 -2
- package/api/@xmachines/play-tanstack-solid-router/interfaces/RouteMapping.md +3 -3
- package/api/@xmachines/play-tanstack-solid-router/interfaces/RouterBridge.md +3 -3
- package/api/@xmachines/play-tanstack-solid-router/type-aliases/RoutableActor.md +6 -4
- package/api/@xmachines/play-tanstack-solid-router/type-aliases/TanStackRouterInstance.md +2 -2
- package/api/@xmachines/play-tanstack-solid-router/type-aliases/TanStackRouterLike.md +3 -3
- package/api/@xmachines/play-vue/README.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 +3 -3
- package/api/@xmachines/play-vue/interfaces/ActorProviderProps.md +5 -5
- package/api/@xmachines/play-vue/interfaces/PlayUIProviderProps.md +8 -8
- package/api/@xmachines/play-vue/interfaces/ViewContextValue.md +5 -5
- package/api/@xmachines/play-vue/interfaces/VisibilityProviderProps.md +1 -1
- package/api/@xmachines/play-vue/type-aliases/AnyPlayActor.md +11 -0
- 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/variables/PlayRenderer.md +1 -1
- package/api/@xmachines/play-vue-router/README.md +27 -17
- package/api/@xmachines/play-vue-router/classes/RouteMap.md +4 -4
- package/api/@xmachines/play-vue-router/classes/VueRouterBridge.md +81 -33
- package/api/@xmachines/play-vue-router/functions/createRouteMap.md +1 -1
- package/api/@xmachines/play-vue-router/interfaces/PlayActor.md +68 -0
- package/api/@xmachines/play-vue-router/interfaces/PlayRouteEvent.md +6 -6
- package/api/@xmachines/play-vue-router/interfaces/RouteMapOptions.md +2 -2
- package/api/@xmachines/play-vue-router/interfaces/RouteMapping.md +3 -3
- package/api/@xmachines/play-vue-router/interfaces/RouterBridge.md +3 -3
- package/api/@xmachines/play-vue-router/type-aliases/RoutableActor.md +6 -4
- package/api/@xmachines/play-vue-router/variables/PlayRouterProvider.md +3 -3
- package/api/@xmachines/play-xstate/README.md +7 -3
- package/api/@xmachines/play-xstate/classes/PlayerActor.md +12 -12
- package/api/@xmachines/play-xstate/functions/buildRouteUrl.md +1 -1
- package/api/@xmachines/play-xstate/functions/composeGuards.md +1 -1
- package/api/@xmachines/play-xstate/functions/composeGuardsOr.md +1 -1
- package/api/@xmachines/play-xstate/functions/contextFieldMatches.md +1 -1
- package/api/@xmachines/play-xstate/functions/definePlayer.md +1 -1
- package/api/@xmachines/play-xstate/functions/deriveRoute.md +1 -1
- package/api/@xmachines/play-xstate/functions/eventMatches.md +1 -1
- package/api/@xmachines/play-xstate/functions/formatPlayRouteTransitions.md +1 -1
- package/api/@xmachines/play-xstate/functions/hasContext.md +1 -1
- package/api/@xmachines/play-xstate/functions/isAbsoluteRoute.md +1 -1
- package/api/@xmachines/play-xstate/functions/negateGuard.md +1 -1
- package/api/@xmachines/play-xstate/interfaces/PlayerConfig.md +3 -3
- package/api/@xmachines/play-xstate/interfaces/PlayerFactoryResumeOptions.md +2 -2
- package/api/@xmachines/play-xstate/interfaces/PlayerOptions.md +6 -6
- package/api/@xmachines/play-xstate/interfaces/RouteContext.md +5 -5
- package/api/@xmachines/play-xstate/interfaces/RouteObject.md +17 -0
- 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/RouteMetadata.md +9 -0
- package/api/@xmachines/play-xstate/type-aliases/RouteStateNode.md +4 -4
- package/api/@xmachines/shared/README.md +25 -12
- package/api/@xmachines/shared/vite-aliases/functions/xmAliases.md +1 -1
- package/api/@xmachines/shared/vite-aliases/functions/xmCacheDir.md +1 -1
- package/api/@xmachines/shared/vite-aliases/functions/xmOptimizeDeps.md +1 -1
- package/api/@xmachines/shared/vite-aliases/functions/xmResolve.md +1 -1
- package/api/@xmachines/shared/vitest/functions/defineXmVitestConfig.md +1 -1
- package/contributing/architecture.md +599 -0
- package/contributing/configuration.md +262 -419
- package/contributing/development.md +300 -453
- package/contributing/testing.md +165 -172
- package/examples/@xmachines/play-dom-demo/README.md +30 -21
- package/examples/@xmachines/play-dom-demo/functions/createNavBar.md +1 -1
- package/examples/@xmachines/play-dom-demo/functions/initShell.md +1 -1
- package/examples/@xmachines/play-dom-demo/type-aliases/AuthCatalog.md +1 -1
- package/examples/@xmachines/play-dom-demo/variables/About.md +1 -1
- package/examples/@xmachines/play-dom-demo/variables/Contact.md +1 -1
- package/examples/@xmachines/play-dom-demo/variables/Dashboard.md +1 -1
- package/examples/@xmachines/play-dom-demo/variables/Home.md +1 -1
- package/examples/@xmachines/play-dom-demo/variables/Login.md +1 -1
- package/examples/@xmachines/play-dom-demo/variables/NavBarView.md +1 -1
- package/examples/@xmachines/play-dom-demo/variables/Navigation.md +1 -1
- package/examples/@xmachines/play-dom-demo/variables/Overview.md +1 -1
- package/examples/@xmachines/play-dom-demo/variables/Profile.md +1 -1
- package/examples/@xmachines/play-dom-demo/variables/Settings.md +1 -1
- package/examples/@xmachines/play-dom-demo/variables/Stats.md +1 -1
- package/examples/@xmachines/play-dom-demo/variables/authCatalog.md +1 -1
- package/examples/@xmachines/play-dom-router-demo/README.md +23 -18
- package/examples/@xmachines/play-react-demo/README.md +38 -37
- package/examples/@xmachines/play-react-demo/functions/App.md +1 -1
- package/examples/@xmachines/play-react-demo/type-aliases/AuthCatalog.md +1 -1
- package/examples/@xmachines/play-react-demo/variables/About.md +1 -1
- package/examples/@xmachines/play-react-demo/variables/Contact.md +1 -1
- package/examples/@xmachines/play-react-demo/variables/Dashboard.md +1 -1
- package/examples/@xmachines/play-react-demo/variables/DebugPanel.md +1 -1
- package/examples/@xmachines/play-react-demo/variables/Home.md +1 -1
- package/examples/@xmachines/play-react-demo/variables/Login.md +1 -1
- package/examples/@xmachines/play-react-demo/variables/NavBar.md +1 -1
- package/examples/@xmachines/play-react-demo/variables/NavBarView.md +1 -1
- package/examples/@xmachines/play-react-demo/variables/Navigation.md +1 -1
- package/examples/@xmachines/play-react-demo/variables/Overview.md +1 -1
- package/examples/@xmachines/play-react-demo/variables/Profile.md +1 -1
- package/examples/@xmachines/play-react-demo/variables/Settings.md +1 -1
- package/examples/@xmachines/play-react-demo/variables/Shell.md +1 -1
- package/examples/@xmachines/play-react-demo/variables/Stats.md +1 -1
- package/examples/@xmachines/play-react-demo/variables/authCatalog.md +1 -1
- package/examples/@xmachines/play-react-router-demo/README.md +37 -33
- package/examples/@xmachines/play-solid-demo/README.md +5 -2
- package/examples/@xmachines/play-solid-demo/functions/App.md +1 -1
- package/examples/@xmachines/play-solid-demo/type-aliases/AuthCatalog.md +1 -1
- package/examples/@xmachines/play-solid-demo/variables/About.md +1 -1
- package/examples/@xmachines/play-solid-demo/variables/Contact.md +1 -1
- package/examples/@xmachines/play-solid-demo/variables/Dashboard.md +1 -1
- package/examples/@xmachines/play-solid-demo/variables/DebugPanel.md +1 -1
- package/examples/@xmachines/play-solid-demo/variables/Home.md +1 -1
- package/examples/@xmachines/play-solid-demo/variables/Login.md +1 -1
- package/examples/@xmachines/play-solid-demo/variables/NavBar.md +1 -1
- package/examples/@xmachines/play-solid-demo/variables/NavBarView.md +1 -1
- package/examples/@xmachines/play-solid-demo/variables/Navigation.md +1 -1
- package/examples/@xmachines/play-solid-demo/variables/Overview.md +1 -1
- package/examples/@xmachines/play-solid-demo/variables/Profile.md +1 -1
- package/examples/@xmachines/play-solid-demo/variables/Settings.md +1 -1
- package/examples/@xmachines/play-solid-demo/variables/Shell.md +1 -1
- package/examples/@xmachines/play-solid-demo/variables/Stats.md +1 -1
- package/examples/@xmachines/play-solid-demo/variables/authCatalog.md +1 -1
- package/examples/@xmachines/play-solid-router-demo/README.md +38 -25
- package/examples/@xmachines/play-svelte-demo/README.md +8 -5
- package/examples/@xmachines/play-svelte-demo/type-aliases/AuthCatalog.md +1 -1
- package/examples/@xmachines/play-svelte-demo/variables/authCatalog.md +1 -1
- package/examples/@xmachines/play-svelte-spa-router-demo/README.md +11 -9
- package/examples/@xmachines/play-sveltekit-router-demo/README.md +14 -9
- package/examples/@xmachines/play-tanstack-react-router-demo/README.md +39 -13
- package/examples/@xmachines/play-tanstack-solid-router-demo/README.md +27 -13
- package/examples/@xmachines/play-vue-demo/README.md +35 -24
- package/examples/@xmachines/play-vue-demo/type-aliases/AuthCatalog.md +1 -1
- package/examples/@xmachines/play-vue-demo/variables/App.md +1 -1
- package/examples/@xmachines/play-vue-demo/variables/authCatalog.md +1 -1
- package/examples/@xmachines/play-vue-router-demo/README.md +2 -0
- package/examples/README.md +7 -7
- package/examples/multi-router-integration.md +13 -16
- package/examples/routing-patterns.md +2 -2
- package/guides/README.md +1 -1
- package/guides/actor-model.md +2 -2
- package/guides/getting-started.md +325 -132
- package/guides/signals.md +1 -1
- package/guides/state-machines.md +1 -1
- package/package.json +2 -2
- package/api/@xmachines/play-dom/functions/connectRenderer.md +0 -70
- package/api/@xmachines/play-dom/interfaces/ConnectRendererOptions.md +0 -28
- package/api/@xmachines/play-dom-router/type-aliases/RoutableActor.md +0 -9
- package/api/@xmachines/play-react/type-aliases/PlayActor.md +0 -9
- package/api/@xmachines/play-solid/type-aliases/PlayActor.md +0 -9
- package/api/@xmachines/play-svelte/type-aliases/PlayActor.md +0 -9
- package/api/@xmachines/play-vue/type-aliases/PlayActor.md +0 -9
- package/guides/architecture.md +0 -500
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
function App(): Element;
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
Defined in: [packages/play-solid/examples/demo/src/App.tsx:34](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
9
|
+
Defined in: [packages/play-solid/examples/demo/src/App.tsx:34](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.52/packages/play-solid/examples/demo/src/App.tsx#L34)
|
|
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-solid/examples/demo/src/catalog.ts:6](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
9
|
+
Defined in: [packages/play-solid/examples/demo/src/catalog.ts:6](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.52/packages/play-solid/examples/demo/src/catalog.ts#L6)
|
|
@@ -6,4 +6,4 @@
|
|
|
6
6
|
const About: ComponentFn<AuthCatalog, "About">;
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
Defined in: [packages/play-solid/examples/demo/src/components/About.tsx:9](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
9
|
+
Defined in: [packages/play-solid/examples/demo/src/components/About.tsx:9](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.52/packages/play-solid/examples/demo/src/components/About.tsx#L9)
|
|
@@ -6,4 +6,4 @@
|
|
|
6
6
|
const Contact: ComponentFn<AuthCatalog, "Contact">;
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
Defined in: [packages/play-solid/examples/demo/src/components/Contact.tsx:9](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
9
|
+
Defined in: [packages/play-solid/examples/demo/src/components/Contact.tsx:9](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.52/packages/play-solid/examples/demo/src/components/Contact.tsx#L9)
|
|
@@ -6,4 +6,4 @@
|
|
|
6
6
|
const Dashboard: ComponentFn<AuthCatalog, "Dashboard">;
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
Defined in: [packages/play-solid/examples/demo/src/components/Dashboard.tsx:9](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
9
|
+
Defined in: [packages/play-solid/examples/demo/src/components/Dashboard.tsx:9](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.52/packages/play-solid/examples/demo/src/components/Dashboard.tsx#L9)
|
|
@@ -8,7 +8,7 @@ const DebugPanel: Component<{
|
|
|
8
8
|
}>;
|
|
9
9
|
```
|
|
10
10
|
|
|
11
|
-
Defined in: [packages/play-solid/examples/demo/src/components/DebugPanel.tsx:10](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
11
|
+
Defined in: [packages/play-solid/examples/demo/src/components/DebugPanel.tsx:10](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.52/packages/play-solid/examples/demo/src/components/DebugPanel.tsx#L10)
|
|
12
12
|
|
|
13
13
|
DebugPanel — Live debug footer.
|
|
14
14
|
Observes actor.state and actor.currentRoute via watchSignal;
|
|
@@ -6,4 +6,4 @@
|
|
|
6
6
|
const Home: ComponentFn<AuthCatalog, "Home">;
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
Defined in: [packages/play-solid/examples/demo/src/components/Home.tsx:9](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
9
|
+
Defined in: [packages/play-solid/examples/demo/src/components/Home.tsx:9](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.52/packages/play-solid/examples/demo/src/components/Home.tsx#L9)
|
|
@@ -6,4 +6,4 @@
|
|
|
6
6
|
const Login: ComponentFn<AuthCatalog, "Login">;
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
Defined in: [packages/play-solid/examples/demo/src/components/Login.tsx:12](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
9
|
+
Defined in: [packages/play-solid/examples/demo/src/components/Login.tsx:12](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.52/packages/play-solid/examples/demo/src/components/Login.tsx#L12)
|
|
@@ -8,4 +8,4 @@ const NavBar: Component<{
|
|
|
8
8
|
}>;
|
|
9
9
|
```
|
|
10
10
|
|
|
11
|
-
Defined in: [packages/play-solid/examples/demo/src/components/NavBar.tsx:15](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
11
|
+
Defined in: [packages/play-solid/examples/demo/src/components/NavBar.tsx:15](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.52/packages/play-solid/examples/demo/src/components/NavBar.tsx#L15)
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
const NavBarView: ComponentFn<AuthCatalog, "NavBar">;
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
Defined in: [packages/play-solid/examples/demo/src/components/NavBarView.tsx:11](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
9
|
+
Defined in: [packages/play-solid/examples/demo/src/components/NavBarView.tsx:11](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.52/packages/play-solid/examples/demo/src/components/NavBarView.tsx#L11)
|
|
10
10
|
|
|
11
11
|
NavBarView — Catalog-typed NavBar for use in defineRegistry components map.
|
|
12
12
|
|
|
@@ -6,4 +6,4 @@
|
|
|
6
6
|
const Navigation: ComponentFn<AuthCatalog, "Navigation">;
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
Defined in: [packages/play-solid/examples/demo/src/components/Navigation.tsx:9](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
9
|
+
Defined in: [packages/play-solid/examples/demo/src/components/Navigation.tsx:9](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.52/packages/play-solid/examples/demo/src/components/Navigation.tsx#L9)
|
|
@@ -6,4 +6,4 @@
|
|
|
6
6
|
const Overview: ComponentFn<AuthCatalog, "Overview">;
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
Defined in: [packages/play-solid/examples/demo/src/components/Overview.tsx:9](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
9
|
+
Defined in: [packages/play-solid/examples/demo/src/components/Overview.tsx:9](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.52/packages/play-solid/examples/demo/src/components/Overview.tsx#L9)
|
|
@@ -6,4 +6,4 @@
|
|
|
6
6
|
const Profile: ComponentFn<AuthCatalog, "Profile">;
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
Defined in: [packages/play-solid/examples/demo/src/components/Profile.tsx:9](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
9
|
+
Defined in: [packages/play-solid/examples/demo/src/components/Profile.tsx:9](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.52/packages/play-solid/examples/demo/src/components/Profile.tsx#L9)
|
|
@@ -6,4 +6,4 @@
|
|
|
6
6
|
const Settings: ComponentFn<AuthCatalog, "Settings">;
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
Defined in: [packages/play-solid/examples/demo/src/components/Settings.tsx:9](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
9
|
+
Defined in: [packages/play-solid/examples/demo/src/components/Settings.tsx:9](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.52/packages/play-solid/examples/demo/src/components/Settings.tsx#L9)
|
|
@@ -10,7 +10,7 @@ const Shell: Component<{
|
|
|
10
10
|
}>;
|
|
11
11
|
```
|
|
12
12
|
|
|
13
|
-
Defined in: [packages/play-solid/examples/demo/src/components/Shell.tsx:13](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
13
|
+
Defined in: [packages/play-solid/examples/demo/src/components/Shell.tsx:13](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.52/packages/play-solid/examples/demo/src/components/Shell.tsx#L13)
|
|
14
14
|
|
|
15
15
|
Shell — Demo shell layout component.
|
|
16
16
|
Renders standard demo chrome (header + PlayUIProvider/PlayRenderer + DebugPanel).
|
|
@@ -6,4 +6,4 @@
|
|
|
6
6
|
const Stats: ComponentFn<AuthCatalog, "Stats">;
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
Defined in: [packages/play-solid/examples/demo/src/components/Stats.tsx:9](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
9
|
+
Defined in: [packages/play-solid/examples/demo/src/components/Stats.tsx:9](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.52/packages/play-solid/examples/demo/src/components/Stats.tsx#L9)
|
|
@@ -169,4 +169,4 @@ const authCatalog: Catalog<
|
|
|
169
169
|
>;
|
|
170
170
|
```
|
|
171
171
|
|
|
172
|
-
Defined in: [packages/play-solid/examples/demo/src/catalog.ts:5](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
172
|
+
Defined in: [packages/play-solid/examples/demo/src/catalog.ts:5](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.52/packages/play-solid/examples/demo/src/catalog.ts#L5)
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
[Examples](../../README.md) / @xmachines/play-solid-router-demo
|
|
2
2
|
|
|
3
|
+
<!-- generated-by: gsd-doc-writer -->
|
|
4
|
+
|
|
3
5
|
# @xmachines/play-solid-router-demo
|
|
4
6
|
|
|
5
|
-
|
|
7
|
+
SolidJS Router adapter demonstration with authentication flow using the XMachines Play architecture and provider-based router integration.
|
|
6
8
|
|
|
7
9
|
## What This Demonstrates
|
|
8
10
|
|
|
@@ -27,46 +29,57 @@ Then open `http://localhost:3002`.
|
|
|
27
29
|
|
|
28
30
|
Use this order to understand the implementation:
|
|
29
31
|
|
|
30
|
-
1. `src/main.tsx` bootstraps the demo and mounts `<App
|
|
31
|
-
2. `src/
|
|
32
|
-
3.
|
|
33
|
-
4. `
|
|
34
|
-
5. `
|
|
35
|
-
6. `
|
|
32
|
+
1. `src/main.tsx` bootstraps the demo and mounts `<App />` onto `#app`.
|
|
33
|
+
2. `src/runtime.ts` sets up the actor, registry, routes, and route map — all shared module-level singletons.
|
|
34
|
+
3. `src/App.tsx` wires Solid Router routes and the `PlayRouterProvider` using the runtime exports.
|
|
35
|
+
4. A `routeMap` is created by calling `createRouteMap(authMachine)` in `src/runtime.ts`.
|
|
36
|
+
5. `PlayRouterProvider` forwards navigation intent from `@solidjs/router` to the actor, and reflects actor-approved routes back to the URL.
|
|
37
|
+
6. `Shell` (from `@xmachines/play-solid-demo`) renders actor-projected views (`PlayRenderer`) and provides the shared UI shell.
|
|
38
|
+
7. `test/library-pattern.test.ts` and `test/browser/` verify invariants and runtime routing behavior.
|
|
36
39
|
|
|
37
40
|
```tsx
|
|
38
41
|
// src/main.tsx (shape)
|
|
39
|
-
render(() => <App />, document.getElementById("
|
|
42
|
+
render(() => <App />, document.getElementById("app")!);
|
|
40
43
|
```
|
|
41
44
|
|
|
42
45
|
```tsx
|
|
43
|
-
// src/
|
|
44
|
-
const createPlayer = definePlayer({ machine: authMachine
|
|
45
|
-
const actor = createPlayer();
|
|
46
|
+
// src/runtime.ts (shape)
|
|
47
|
+
const createPlayer = definePlayer({ machine: authMachine });
|
|
48
|
+
export const actor = createPlayer();
|
|
46
49
|
actor.start();
|
|
47
50
|
|
|
48
|
-
const routeMap = createRouteMap(authMachine);
|
|
49
|
-
|
|
50
|
-
<PlayRouterProvider
|
|
51
|
-
actor={actor}
|
|
52
|
-
routeMap={routeMap}
|
|
53
|
-
router={{ navigate, location, params }}
|
|
54
|
-
renderer={(currentActor, currentRouter) => (
|
|
55
|
-
<Shell actor={currentActor} router={currentRouter} />
|
|
56
|
-
)}
|
|
57
|
-
/>;
|
|
51
|
+
export const routeMap = createRouteMap(authMachine);
|
|
58
52
|
```
|
|
59
53
|
|
|
60
54
|
```tsx
|
|
61
|
-
// src/
|
|
62
|
-
|
|
55
|
+
// src/App.tsx (shape)
|
|
56
|
+
const Layout: ParentComponent = () => {
|
|
57
|
+
const navigate = useNavigate();
|
|
58
|
+
const location = useLocation();
|
|
59
|
+
const params = useParams();
|
|
60
|
+
|
|
61
|
+
return (
|
|
62
|
+
<PlayRouterProvider
|
|
63
|
+
actor={actor}
|
|
64
|
+
routeMap={routeMap}
|
|
65
|
+
router={{ navigate, location, params }}
|
|
66
|
+
renderer={(currentActor, currentRouter) => (
|
|
67
|
+
<Shell
|
|
68
|
+
actor={currentActor}
|
|
69
|
+
router={currentRouter}
|
|
70
|
+
registryResult={registryResult}
|
|
71
|
+
/>
|
|
72
|
+
)}
|
|
73
|
+
/>
|
|
74
|
+
);
|
|
75
|
+
};
|
|
63
76
|
```
|
|
64
77
|
|
|
65
78
|
## Key Files
|
|
66
79
|
|
|
67
|
-
- `src/
|
|
80
|
+
- `src/runtime.ts` - actor lifecycle, registry, route extraction, and route map creation
|
|
81
|
+
- `src/App.tsx` - Solid Router wiring, `PlayRouterProvider` integration, and renderer composition
|
|
68
82
|
- `src/main.tsx` - Vite bootstrap that mounts `<App />` via Solid's `render`
|
|
69
|
-
- `src/components/` - demo view components that send events to the actor
|
|
70
83
|
- `test/library-pattern.test.ts` - architecture boundary and invariant assertions
|
|
71
84
|
- `test/browser/shared-demo.browser.test.ts` - browser startup and full auth flow coverage
|
|
72
85
|
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
[Examples](../../README.md) / @xmachines/play-svelte-demo
|
|
2
2
|
|
|
3
|
+
<!-- generated-by: gsd-doc-writer -->
|
|
4
|
+
|
|
3
5
|
# @xmachines/play-svelte-demo
|
|
4
6
|
|
|
5
7
|
Svelte 5 renderer demo for [`@xmachines/play-svelte`](../../../api/@xmachines/play-svelte/README.md) — actor + `PlayRenderer` without a router.
|
|
@@ -27,17 +29,18 @@ Then open `http://localhost:5173`.
|
|
|
27
29
|
|
|
28
30
|
Use this order to understand the implementation:
|
|
29
31
|
|
|
30
|
-
1. `src/main.ts` calls `definePlayer({ machine: authMachine })
|
|
32
|
+
1. `src/main.ts` calls `definePlayer({ machine: authMachine })` to create a factory, invokes it to get an actor, starts it, and mounts `App.svelte` via Svelte's `mount`.
|
|
31
33
|
2. The actor is passed to `App` as a prop.
|
|
32
34
|
3. `src/App.svelte` calls `defineRegistry(authCatalog, { components, actions })` to build the typed `registryResult` — real async action handlers dispatching to `actor.send()`.
|
|
33
35
|
4. `App.svelte` delegates to `Shell.svelte`, passing both `actor` and `registryResult`.
|
|
34
|
-
5. `Shell.svelte` renders `<PlayUIProvider><PlayRenderer /></PlayUIProvider>`, `<NavBar>`, and `<DebugPanel>` — the latter two observe actor signals directly
|
|
36
|
+
5. `Shell.svelte` renders `<PlayUIProvider><PlayRenderer /></PlayUIProvider>`, `<NavBar>`, and `<DebugPanel>` — the latter two observe actor signals directly via `watchSignal` inside `$effect`.
|
|
35
37
|
6. HMR cleanup calls `actor.stop()` via `import.meta.hot.dispose`.
|
|
36
38
|
7. Browser tests in `test/browser/` validate startup and interaction behavior.
|
|
37
39
|
|
|
38
40
|
```ts
|
|
39
41
|
// src/main.ts (shape)
|
|
40
|
-
const
|
|
42
|
+
const createPlayer = definePlayer({ machine: authMachine });
|
|
43
|
+
const actor = createPlayer();
|
|
41
44
|
actor.start();
|
|
42
45
|
|
|
43
46
|
mount(App, { target: document.getElementById("app")!, props: { actor } });
|
|
@@ -73,7 +76,7 @@ mount(App, { target: document.getElementById("app")!, props: { actor } });
|
|
|
73
76
|
|
|
74
77
|
- `src/main.ts` - actor creation/start and Svelte app mount with actor as prop
|
|
75
78
|
- `src/App.svelte` - registry construction, delegates rendering to `Shell.svelte`
|
|
76
|
-
- `src/components/Shell.svelte` - shared shell with `PlayUIProvider` + `PlayRenderer`, `
|
|
79
|
+
- `src/components/Shell.svelte` - shared shell with `PlayUIProvider` + `PlayRenderer`, `NavBar`, and `DebugPanel`
|
|
77
80
|
- `src/components/` - demo view Svelte components bound to catalog component keys
|
|
78
81
|
- `test/library-pattern.test.ts` - architecture boundary and invariant assertions
|
|
79
82
|
- `test/browser/renderer-demo.browser.test.ts` - browser-mode renderer coverage
|
|
@@ -127,7 +130,7 @@ Expected result: library-pattern invariant tests pass and the browser renderer s
|
|
|
127
130
|
|
|
128
131
|
## Learn More
|
|
129
132
|
|
|
130
|
-
- [
|
|
133
|
+
- [`@xmachines/play-svelte`](../../../api/@xmachines/play-svelte/README.md) — the Svelte 5 renderer package this demo exercises
|
|
131
134
|
|
|
132
135
|
## Type Aliases
|
|
133
136
|
|
|
@@ -6,4 +6,4 @@
|
|
|
6
6
|
type AuthCatalog = typeof authCatalog;
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
Defined in: [packages/play-svelte/examples/demo/src/catalog.ts:6](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
9
|
+
Defined in: [packages/play-svelte/examples/demo/src/catalog.ts:6](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.52/packages/play-svelte/examples/demo/src/catalog.ts#L6)
|
|
@@ -169,4 +169,4 @@ const authCatalog: Catalog<
|
|
|
169
169
|
>;
|
|
170
170
|
```
|
|
171
171
|
|
|
172
|
-
Defined in: [packages/play-svelte/examples/demo/src/catalog.ts:5](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
172
|
+
Defined in: [packages/play-svelte/examples/demo/src/catalog.ts:5](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.52/packages/play-svelte/examples/demo/src/catalog.ts#L5)
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
[Examples](../../README.md) / @xmachines/play-svelte-spa-router-demo
|
|
2
2
|
|
|
3
|
+
<!-- generated-by: gsd-doc-writer -->
|
|
4
|
+
|
|
3
5
|
# @xmachines/play-svelte-spa-router-demo
|
|
4
6
|
|
|
5
7
|
Svelte 5 + `svelte-spa-router` integration demo for the XMachines Play architecture using hash-based URL routing.
|
|
@@ -21,21 +23,21 @@ npm install
|
|
|
21
23
|
npm run dev -w @xmachines/play-svelte-spa-router-demo
|
|
22
24
|
```
|
|
23
25
|
|
|
24
|
-
Then open `http://localhost:
|
|
26
|
+
Then open `http://localhost:3005`.
|
|
25
27
|
|
|
26
28
|
## Step-by-Step Code Flow
|
|
27
29
|
|
|
28
30
|
Use this order to understand the implementation:
|
|
29
31
|
|
|
30
|
-
1. `src/main.ts` mounts `App.svelte` and registers HMR cleanup via `
|
|
31
|
-
2. `src/
|
|
32
|
+
1. `src/main.ts` mounts `App.svelte` and registers HMR cleanup via `cleanup`.
|
|
33
|
+
2. `src/runtime.ts` creates the actor, builds the registry, calls `createRouteMap(authMachine)`, and wires `connectRouter({ actor, routeMap })`.
|
|
32
34
|
3. `connectRouter` synchronizes hash URL changes with the actor via `play.route` events and reflects actor-approved routes back to the hash URL.
|
|
33
|
-
4. `src/App.svelte` imports the singleton `actor` and `
|
|
35
|
+
4. `src/App.svelte` imports the singleton `actor` and `registryResult` from `src/runtime.ts` and delegates to the shared `Shell.svelte`.
|
|
34
36
|
5. `Shell.svelte` renders `<PlayUIProvider>` + `<PlayRenderer />` with the actor and registryResult and provides the shared UI shell (nav, debug panel).
|
|
35
37
|
6. Browser tests in `test/browser/` validate startup and auth route transitions.
|
|
36
38
|
|
|
37
39
|
```ts
|
|
38
|
-
// src/
|
|
40
|
+
// src/runtime.ts (shape)
|
|
39
41
|
const createDemoPlayer = definePlayer({ machine: authMachine });
|
|
40
42
|
export const actor = createDemoPlayer();
|
|
41
43
|
actor.start();
|
|
@@ -43,7 +45,7 @@ actor.start();
|
|
|
43
45
|
export const routeMap = createRouteMap(authMachine);
|
|
44
46
|
export const disconnectRouter = connectRouter({ actor, routeMap });
|
|
45
47
|
|
|
46
|
-
export function
|
|
48
|
+
export function cleanup(): void {
|
|
47
49
|
disconnectRouter();
|
|
48
50
|
actor.stop();
|
|
49
51
|
}
|
|
@@ -53,7 +55,7 @@ export function cleanupDemo(): void {
|
|
|
53
55
|
<!-- src/App.svelte (shape) -->
|
|
54
56
|
<script lang="ts">
|
|
55
57
|
import { Shell } from "@xmachines/play-svelte-demo";
|
|
56
|
-
import { actor, registryResult } from "./
|
|
58
|
+
import { actor, registryResult } from "./runtime.js";
|
|
57
59
|
</script>
|
|
58
60
|
|
|
59
61
|
<Shell {actor} {registryResult} />
|
|
@@ -69,7 +71,7 @@ export function cleanupDemo(): void {
|
|
|
69
71
|
## Key Files
|
|
70
72
|
|
|
71
73
|
- `src/main.ts` - Svelte app mount and HMR cleanup registration
|
|
72
|
-
- `src/
|
|
74
|
+
- `src/runtime.ts` - actor creation, registry construction, route map, and `connectRouter` wiring
|
|
73
75
|
- `src/App.svelte` - minimal root component delegating to shared `Shell.svelte`
|
|
74
76
|
- `test/library-pattern.test.ts` - architecture boundary and invariant assertions
|
|
75
77
|
- `test/browser/shared-demo.browser.test.ts` - browser startup and auth route flow coverage
|
|
@@ -92,7 +94,7 @@ This demo follows the canonical watcher lifecycle used across all `@xmachines` f
|
|
|
92
94
|
4. Read actor signals and project Svelte-local render state
|
|
93
95
|
5. Re-arm with `watch()`/`watch(...signals)`
|
|
94
96
|
|
|
95
|
-
Watcher notifications are one-shot. Cleanup is explicit: `
|
|
97
|
+
Watcher notifications are one-shot. Cleanup is explicit: `cleanup()` calls `disconnectRouter()` and `actor.stop()` during HMR disposal, preventing memory leaks and ghost subscriptions.
|
|
96
98
|
|
|
97
99
|
## Adapter Boundaries
|
|
98
100
|
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
[Examples](../../README.md) / @xmachines/play-sveltekit-router-demo
|
|
2
2
|
|
|
3
|
+
<!-- generated-by: gsd-doc-writer -->
|
|
4
|
+
|
|
3
5
|
# @xmachines/play-sveltekit-router-demo
|
|
4
6
|
|
|
5
7
|
Svelte 5 + SvelteKit router adapter integration demo for the XMachines Play architecture using browser pathname URL routing.
|
|
@@ -27,15 +29,15 @@ Then open `http://localhost:5173`.
|
|
|
27
29
|
|
|
28
30
|
Use this order to understand the implementation:
|
|
29
31
|
|
|
30
|
-
1. `src/main.ts` mounts `App.svelte` and registers HMR cleanup via `
|
|
31
|
-
2. `src/
|
|
32
|
+
1. `src/main.ts` mounts `App.svelte` and registers HMR cleanup via `cleanup`.
|
|
33
|
+
2. `src/runtime.ts` creates the actor, builds the registry, calls `createRouteMap(authMachine)`, and wires `connectRouter({ actor, routeMap })`.
|
|
32
34
|
3. `connectRouter` synchronizes browser pathname changes with the actor via `play.route` events and reflects actor-approved routes back to the pathname URL.
|
|
33
|
-
4. `src/App.svelte` imports the singleton `actor` and `registryResult` from `src/
|
|
35
|
+
4. `src/App.svelte` imports the singleton `actor` and `registryResult` from `src/runtime.ts` and delegates to the shared `Shell.svelte`.
|
|
34
36
|
5. `Shell.svelte` renders `<PlayUIProvider>` + `<PlayRenderer />` with the actor and registryResult and provides the shared UI shell (nav, debug panel).
|
|
35
37
|
6. Browser tests in `test/browser/` validate startup and auth route transitions.
|
|
36
38
|
|
|
37
39
|
```ts
|
|
38
|
-
// src/
|
|
40
|
+
// src/runtime.ts (shape)
|
|
39
41
|
const createDemoPlayer = definePlayer({ machine: authMachine });
|
|
40
42
|
export const actor = createDemoPlayer();
|
|
41
43
|
actor.start();
|
|
@@ -43,7 +45,7 @@ actor.start();
|
|
|
43
45
|
export const routeMap = createRouteMap(authMachine);
|
|
44
46
|
export const disconnectRouter = connectRouter({ actor, routeMap });
|
|
45
47
|
|
|
46
|
-
export function
|
|
48
|
+
export function cleanup(): void {
|
|
47
49
|
disconnectRouter();
|
|
48
50
|
actor.stop();
|
|
49
51
|
}
|
|
@@ -53,7 +55,7 @@ export function cleanupDemo(): void {
|
|
|
53
55
|
<!-- src/App.svelte (shape) -->
|
|
54
56
|
<script lang="ts">
|
|
55
57
|
import { Shell } from "@xmachines/play-svelte-demo";
|
|
56
|
-
import { actor, registryResult } from "./
|
|
58
|
+
import { actor, registryResult } from "./runtime.js";
|
|
57
59
|
</script>
|
|
58
60
|
|
|
59
61
|
<Shell {actor} {registryResult} />
|
|
@@ -69,8 +71,9 @@ export function cleanupDemo(): void {
|
|
|
69
71
|
## Key Files
|
|
70
72
|
|
|
71
73
|
- `src/main.ts` - Svelte app mount and HMR cleanup registration
|
|
72
|
-
- `src/
|
|
73
|
-
- `src/lib/navigation.ts` - SvelteKit navigation
|
|
74
|
+
- `src/runtime.ts` - actor creation, registry construction, route map, and `connectRouter` wiring
|
|
75
|
+
- `src/lib/navigation.ts` - History API shim implementing SvelteKit's `$app/navigation` contract for Vite dev and production builds
|
|
76
|
+
- `src/app-navigation.d.ts` - TypeScript ambient declaration for the `$app/navigation` module
|
|
74
77
|
- `src/App.svelte` - minimal root component delegating to shared `Shell.svelte`
|
|
75
78
|
- `test/library-pattern.test.ts` - architecture boundary and invariant assertions
|
|
76
79
|
- `test/browser/shared-demo.browser.test.ts` - browser startup and auth route flow coverage
|
|
@@ -93,12 +96,14 @@ This demo follows the canonical watcher lifecycle used across all `@xmachines` f
|
|
|
93
96
|
4. Read actor signals and project Svelte-local render state
|
|
94
97
|
5. Re-arm with `watch()`/`watch(...signals)`
|
|
95
98
|
|
|
96
|
-
Watcher notifications are one-shot. Cleanup is explicit: `
|
|
99
|
+
Watcher notifications are one-shot. Cleanup is explicit: `cleanup()` calls `disconnectRouter()` and `actor.stop()` during HMR disposal, preventing memory leaks and ghost subscriptions.
|
|
97
100
|
|
|
98
101
|
## Adapter Boundaries
|
|
99
102
|
|
|
100
103
|
`connectRouter` (from [`@xmachines/play-sveltekit-router`](../../../api/@xmachines/play-sveltekit-router/README.md)) is passive infrastructure. It translates pathname URL changes into `play.route` events and reflects actor-approved route changes back to the browser pathname. Business validity remains actor-owned. The shared `Shell.svelte` from `@xmachines/play-svelte-demo` is reused to avoid duplicating view components across router demos.
|
|
101
104
|
|
|
105
|
+
The `$app/navigation` module is shimmed by `src/lib/navigation.ts` using the History API, so the demo runs outside a full SvelteKit project (plain Vite dev server and production build).
|
|
106
|
+
|
|
102
107
|
## Available Scripts
|
|
103
108
|
|
|
104
109
|
These commands are defined in `package.json`:
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
[Examples](../../README.md) / @xmachines/play-tanstack-react-router-demo
|
|
2
2
|
|
|
3
|
+
<!-- generated-by: gsd-doc-writer -->
|
|
4
|
+
|
|
3
5
|
# @xmachines/play-tanstack-react-router-demo
|
|
4
6
|
|
|
5
7
|
React + TanStack Router integration demo for the XMachines Play architecture with actor-authoritative routing.
|
|
@@ -27,9 +29,9 @@ Then open `http://localhost:3000`.
|
|
|
27
29
|
Use this order to understand the implementation:
|
|
28
30
|
|
|
29
31
|
1. `src/main.tsx` mounts `<App />`.
|
|
30
|
-
2. `src/App.tsx` calls `useMemo(createAppRuntime, [])` to create the actor from shared machine
|
|
31
|
-
3. `
|
|
32
|
-
4. `createAppRuntime()`
|
|
32
|
+
2. `src/App.tsx` calls `useMemo(createAppRuntime, [])` to create the actor from the shared machine and start it once per mounted app.
|
|
33
|
+
3. `src/runtime.ts` exports `createPlayer` (via `definePlayer`), `routeMap` (via `createRouteMap(authMachine)`), and `createRegistryResult` which binds UI components and actor event actions.
|
|
34
|
+
4. `createAppRuntime()` constructs a TanStack `createRootRoute`/`createRouter` instance, then `PlayRouterProvider` bridges it to the actor and renders `Shell` via `renderer(actor, router)`.
|
|
33
35
|
5. `Shell` renders `PlayRenderer`, header/nav, and debug panel from actor state.
|
|
34
36
|
6. Tests in `test/` and `test/browser/` validate invariant and runtime behavior.
|
|
35
37
|
|
|
@@ -39,14 +41,15 @@ function createAppRuntime() {
|
|
|
39
41
|
const actor = createPlayer();
|
|
40
42
|
actor.start();
|
|
41
43
|
|
|
42
|
-
const
|
|
43
|
-
|
|
44
|
-
const
|
|
44
|
+
const registryResult = createRegistryResult(actor);
|
|
45
|
+
|
|
46
|
+
const rootRoute = createRootRoute();
|
|
47
|
+
const router = createRouter({ routeTree: rootRoute, defaultPreload: "intent" });
|
|
45
48
|
|
|
46
|
-
return { actor,
|
|
49
|
+
return { actor, router, registryResult };
|
|
47
50
|
}
|
|
48
51
|
|
|
49
|
-
const { actor,
|
|
52
|
+
const { actor, router, registryResult } = useMemo(createAppRuntime, []);
|
|
50
53
|
|
|
51
54
|
return (
|
|
52
55
|
<PlayRouterProvider
|
|
@@ -54,27 +57,50 @@ return (
|
|
|
54
57
|
router={router}
|
|
55
58
|
routeMap={routeMap}
|
|
56
59
|
renderer={(currentActor, currentRouter) => (
|
|
57
|
-
<Shell actor={currentActor} router={currentRouter} />
|
|
60
|
+
<Shell actor={currentActor} router={currentRouter} registryResult={registryResult} />
|
|
58
61
|
)}
|
|
59
62
|
/>
|
|
60
63
|
);
|
|
61
64
|
```
|
|
62
65
|
|
|
63
66
|
```tsx
|
|
64
|
-
// src/
|
|
65
|
-
|
|
67
|
+
// src/runtime.ts (shape)
|
|
68
|
+
export const createPlayer = definePlayer({ machine: authMachine });
|
|
69
|
+
export const routeMap = createRouteMap(authMachine);
|
|
70
|
+
|
|
71
|
+
export function createRegistryResult(actor) {
|
|
72
|
+
return defineRegistry(authCatalog, {
|
|
73
|
+
actions: {
|
|
74
|
+
login: async (args) => actor.send({ type: "auth.login", username: args.username }),
|
|
75
|
+
logout: async () => actor.send({ type: "auth.logout" }),
|
|
76
|
+
route: async (args) => actor.send({ type: "play.route", to: args.to, ...args.params }),
|
|
77
|
+
},
|
|
78
|
+
});
|
|
79
|
+
}
|
|
66
80
|
```
|
|
67
81
|
|
|
68
82
|
## Key Files
|
|
69
83
|
|
|
70
84
|
- `src/main.tsx` - React entry point that mounts `<App />`
|
|
71
|
-
- `src/App.tsx` - actor lifecycle,
|
|
72
|
-
- `src/
|
|
85
|
+
- `src/App.tsx` - actor lifecycle, provider wiring, and `Shell` rendering
|
|
86
|
+
- `src/runtime.ts` - actor factory, route map creation, and registry/action binding
|
|
73
87
|
- `test/actor-authority.test.ts` - actor authority and guarded navigation behavior
|
|
88
|
+
- `test/passive-infra.test.ts` - passive infrastructure separation contracts
|
|
74
89
|
- `test/strict-separation.test.ts` - machine/view infrastructure separation contracts
|
|
90
|
+
- `test/signal-only.test.ts` - signal-only reactivity invariant
|
|
91
|
+
- `test/route-parameters.test.ts` - route parameter handling
|
|
92
|
+
- `test/invalid-route-redirect.test.ts` - invalid route redirect behavior
|
|
93
|
+
- `test/xstate-route-events.test.ts` - XState route event contracts
|
|
75
94
|
- `test/browser/shared-demo.browser.test.tsx` - canonical browser auth flow
|
|
76
95
|
- `test/browser/auth-flow.browser.test.tsx` - extended browser auth flow checks
|
|
77
96
|
- `test/browser/back-forward-sync.browser.test.tsx` - URL sync and history behavior
|
|
97
|
+
- `test/browser/dashboard-logout.browser.test.tsx` - logout and redirection flow
|
|
98
|
+
- `test/browser/guard-rejection.browser.test.tsx` - guard-driven rejection in browser
|
|
99
|
+
- `test/browser/login-flow.browser.test.tsx` - login flow browser coverage
|
|
100
|
+
- `test/browser/navigation.browser.test.tsx` - navigation behavior in browser
|
|
101
|
+
- `test/browser/settings-parameter.browser.test.tsx` - parameterized route in browser
|
|
102
|
+
- `test/browser/invalid-route-redirect.browser.test.tsx` - invalid route redirect in browser
|
|
103
|
+
- `test/browser/tanstack-integration.browser.test.tsx` - TanStack Router integration checks
|
|
78
104
|
|
|
79
105
|
## State Machine & Architecture Details
|
|
80
106
|
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
[Examples](../../README.md) / @xmachines/play-tanstack-solid-router-demo
|
|
2
2
|
|
|
3
|
+
<!-- generated-by: gsd-doc-writer -->
|
|
4
|
+
|
|
3
5
|
# @xmachines/play-tanstack-solid-router-demo
|
|
4
6
|
|
|
5
7
|
Solid + `@tanstack/solid-router` integration demo for the XMachines Play architecture with actor-authoritative routing.
|
|
@@ -27,22 +29,32 @@ Then open `http://localhost:3005`.
|
|
|
27
29
|
|
|
28
30
|
Use this order to understand the implementation:
|
|
29
31
|
|
|
30
|
-
1. `src/main.tsx` bootstraps the demo app and mounts `<App
|
|
31
|
-
2. `src/
|
|
32
|
-
3.
|
|
32
|
+
1. `src/main.tsx` bootstraps the demo app and mounts `<App />` onto `#app`.
|
|
33
|
+
2. `src/runtime.ts` initializes the actor, builds the registry, and creates the route map using `createRouteMap(authMachine)`.
|
|
34
|
+
3. `src/App.tsx` constructs the TanStack Router route tree from machine routes and wires `PlayRouterProvider` with the actor, router, and route map from `runtime.ts`.
|
|
33
35
|
4. Router infrastructure stays passive: it forwards navigation intent to the actor via the `PlayRouterProvider` and reflects actor-approved route changes back to TanStack.
|
|
34
|
-
5. `Shell` (
|
|
36
|
+
5. `Shell` (from `@xmachines/play-solid-demo`) renders actor-projected state (`PlayRenderer`) and emits actor events via the `registryResult` actions.
|
|
35
37
|
6. `test/library-pattern.test.ts` plus `test/browser/` verify invariants and browser routing behavior.
|
|
36
38
|
|
|
37
39
|
```tsx
|
|
38
40
|
// src/main.tsx (shape)
|
|
39
|
-
render(() => <App />, document.getElementById("
|
|
41
|
+
render(() => <App />, document.getElementById("app")!);
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
```ts
|
|
45
|
+
// src/runtime.ts (shape)
|
|
46
|
+
const createPlayer = definePlayer({ machine: authMachine });
|
|
47
|
+
export const actor = createPlayer();
|
|
48
|
+
actor.start();
|
|
49
|
+
|
|
50
|
+
export const routeMap = createRouteMap(authMachine);
|
|
51
|
+
const routeTree = extractMachineRoutes(authMachine);
|
|
52
|
+
export const routes = getRoutableRoutes(routeTree);
|
|
40
53
|
```
|
|
41
54
|
|
|
42
55
|
```tsx
|
|
43
56
|
// src/App.tsx (shape)
|
|
44
|
-
|
|
45
|
-
const routeMap = createRouteMap(authMachine);
|
|
57
|
+
import { actor, registryResult, routeMap, routes } from "./runtime.js";
|
|
46
58
|
|
|
47
59
|
return (
|
|
48
60
|
<PlayRouterProvider
|
|
@@ -50,22 +62,24 @@ return (
|
|
|
50
62
|
router={router}
|
|
51
63
|
routeMap={routeMap}
|
|
52
64
|
renderer={(currentActor, currentRouter) => (
|
|
53
|
-
<Shell actor={currentActor} router={currentRouter} />
|
|
65
|
+
<Shell actor={currentActor} router={currentRouter} registryResult={registryResult} />
|
|
54
66
|
)}
|
|
55
67
|
/>
|
|
56
68
|
);
|
|
57
69
|
```
|
|
58
70
|
|
|
59
|
-
```
|
|
60
|
-
// src/
|
|
61
|
-
|
|
71
|
+
```ts
|
|
72
|
+
// src/runtime.ts — actor events wired via registryResult actions
|
|
73
|
+
login: async (args) => actor.send({ type: "auth.login", username: args.username }),
|
|
74
|
+
logout: async () => actor.send({ type: "auth.logout" }),
|
|
75
|
+
route: async (args) => actor.send({ type: "play.route", to: args.to, ...params }),
|
|
62
76
|
```
|
|
63
77
|
|
|
64
78
|
## Key Files
|
|
65
79
|
|
|
66
|
-
- `src/
|
|
80
|
+
- `src/runtime.ts` - actor lifecycle, registry, route map, and routable routes setup
|
|
81
|
+
- `src/App.tsx` - TanStack router construction and `PlayRouterProvider` wiring
|
|
67
82
|
- `src/main.tsx` - Vite bootstrap that mounts `<App />` via Solid's `render`
|
|
68
|
-
- `src/components/` - demo view components that dispatch machine events
|
|
69
83
|
- `test/library-pattern.test.ts` - architecture boundary and invariant assertions
|
|
70
84
|
- `test/browser/shared-demo.browser.test.ts` - browser startup and full auth flow coverage
|
|
71
85
|
- `test/browser/xstate-route-events.browser.test.ts` - actor route event behavior in the browser
|