@xmachines/docs 3.0.0 → 4.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -16
- package/api/@xmachines/play/README.md +11 -100
- package/api/@xmachines/play/errors/README.md +8 -0
- package/api/@xmachines/play/{classes → errors/classes}/NonNullableError.md +6 -6
- package/api/@xmachines/play/{classes → errors/classes}/PlayError.md +35 -10
- package/api/@xmachines/play/index/README.md +75 -0
- package/api/@xmachines/play/{functions → index/functions}/asCleanup.md +2 -2
- package/api/@xmachines/play/{functions → index/functions}/assertNonNullable.md +2 -2
- package/api/@xmachines/{play-actor → play/index}/functions/shallowEqualExcept.md +3 -3
- package/api/@xmachines/play/{type-aliases → index/type-aliases}/Cleanup.md +3 -3
- package/api/@xmachines/play/{type-aliases → index/type-aliases}/DisposeKey.md +2 -2
- package/api/@xmachines/play/{type-aliases → index/type-aliases}/PlayEvent.md +4 -4
- package/api/@xmachines/play/{variables → index/variables}/DISPOSE.md +2 -2
- package/api/@xmachines/play-actor/README.md +78 -229
- package/api/@xmachines/play-actor/interfaces/ActorEvent.md +18 -0
- package/api/@xmachines/play-actor/interfaces/PlayActor.md +73 -0
- package/api/@xmachines/play-dom/README.md +28 -40
- package/api/@xmachines/play-dom/classes/PlayRenderer.md +12 -11
- package/api/@xmachines/play-dom/functions/asCleanup.md +78 -0
- package/api/@xmachines/play-dom/functions/createPlayUI.md +4 -4
- package/api/@xmachines/play-dom/functions/createRenderer.md +1 -1
- package/api/@xmachines/play-dom/interfaces/CreatePlayUIOptions.md +3 -3
- package/api/@xmachines/play-dom/interfaces/MountOptions.md +3 -3
- package/api/@xmachines/play-dom/interfaces/PlayDomOptions.md +6 -6
- package/api/@xmachines/play-dom/type-aliases/Cleanup.md +2 -2
- package/api/@xmachines/play-dom/type-aliases/MountFn.md +29 -12
- package/api/@xmachines/play-dom-router/README.md +70 -70
- package/api/@xmachines/play-dom-router/classes/DomRouterBridge.md +22 -21
- package/api/@xmachines/{play-vue-router → play-dom-router}/classes/RouteMap.md +12 -6
- package/api/@xmachines/play-dom-router/functions/asCleanup.md +78 -0
- package/api/@xmachines/play-dom-router/functions/connectRouter.md +3 -8
- package/api/@xmachines/play-dom-router/functions/createBrowserHistory.md +9 -3
- package/api/@xmachines/play-dom-router/functions/createRouter.md +8 -14
- package/api/@xmachines/play-dom-router/interfaces/BasePathOptions.md +5 -5
- package/api/@xmachines/play-dom-router/interfaces/BrowserHistory.md +70 -26
- package/api/@xmachines/play-dom-router/interfaces/BrowserWindow.md +14 -14
- package/api/@xmachines/play-dom-router/interfaces/ConnectRouterOptions.md +8 -8
- package/api/@xmachines/play-dom-router/interfaces/PlayRouteEvent.md +9 -14
- package/api/@xmachines/play-dom-router/interfaces/RoutableActor.md +24 -21
- package/api/@xmachines/play-dom-router/interfaces/RouteLookupContract.md +3 -3
- package/api/@xmachines/play-dom-router/interfaces/RouteMapOptions.md +4 -4
- 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/RouterConnection.md +8 -8
- package/api/@xmachines/play-dom-router/interfaces/VanillaRouter.md +36 -23
- package/api/@xmachines/play-dom-router/type-aliases/Cleanup.md +2 -2
- package/api/@xmachines/play-dom-router/variables/DISPOSE.md +2 -2
- package/api/@xmachines/play-react/README.md +17 -39
- package/api/@xmachines/play-react/classes/PlayErrorBoundary.md +14 -10
- 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 +11 -11
- package/api/@xmachines/play-react/interfaces/PlayErrorBoundaryProps.md +6 -6
- package/api/@xmachines/play-react/interfaces/PlayErrorBoundaryState.md +4 -4
- package/api/@xmachines/play-react/interfaces/PlayUIProviderProps.md +13 -13
- package/api/@xmachines/play-react/interfaces/ViewContextValue.md +8 -8
- package/api/@xmachines/play-react/type-aliases/AnyPlayActor.md +11 -3
- 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/variables/schema.md +52 -0
- package/api/@xmachines/play-react-router/README.md +22 -50
- package/api/@xmachines/play-react-router/classes/ReactRouterBridge.md +17 -16
- package/api/@xmachines/play-react-router/classes/RouteMap.md +11 -5
- package/api/@xmachines/play-react-router/functions/createPlayRouterProvider.md +11 -8
- package/api/@xmachines/play-react-router/functions/createRouteMapFromTree.md +16 -9
- package/api/@xmachines/play-react-router/interfaces/PlayRouteEvent.md +9 -14
- package/api/@xmachines/play-react-router/interfaces/PlayRouterProviderProps.md +10 -10
- package/api/@xmachines/play-react-router/interfaces/RoutableActor.md +72 -0
- package/api/@xmachines/play-react-router/interfaces/RouteMapOptions.md +4 -4
- 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-react-router/type-aliases/PlayRouterBridgeConstructor.md +17 -7
- package/api/@xmachines/play-react-router/type-aliases/PlayRouterProviderBaseProps.md +5 -5
- package/api/@xmachines/play-react-router/variables/PlayRouterProvider.md +4 -4
- package/api/@xmachines/play-router/README.md +104 -196
- package/api/@xmachines/play-router/errors/README.md +15 -0
- package/api/@xmachines/play-router/errors/classes/DuplicateBridgeError.md +191 -0
- package/api/@xmachines/play-router/errors/classes/DuplicateRoutePathError.md +175 -0
- package/api/@xmachines/play-router/errors/classes/EmptyRoutePathError.md +175 -0
- package/api/@xmachines/play-router/errors/classes/InvalidBasePathError.md +200 -0
- package/api/@xmachines/play-router/errors/classes/InvalidRoutePatternError.md +203 -0
- package/api/@xmachines/play-router/errors/classes/InvalidStateIdError.md +175 -0
- package/api/@xmachines/play-router/errors/classes/MissingBasePathParamError.md +199 -0
- package/api/@xmachines/play-router/errors/classes/RouterSyncError.md +192 -0
- package/api/@xmachines/play-router/errors/classes/UnknownStateTypeError.md +182 -0
- package/api/@xmachines/play-router/index/README.md +75 -0
- package/api/@xmachines/play-router/{classes → index/classes}/RouteMap.md +12 -6
- package/api/@xmachines/play-router/{classes → index/classes}/RouterBridgeBase.md +19 -17
- package/api/@xmachines/play-router/{functions → index/functions}/buildPlayRouteEvent.md +2 -2
- package/api/@xmachines/play-router/{functions → index/functions}/buildRouteTree.md +14 -4
- package/api/@xmachines/play-router/{functions → index/functions}/cleanFrameworkParams.md +3 -4
- package/api/@xmachines/play-router/{functions → index/functions}/createRouteMapFromTree.md +13 -6
- package/api/@xmachines/play-router/{functions → index/functions}/createRouterConnection.md +2 -2
- package/api/@xmachines/play-router/{functions → index/functions}/detectDuplicateRoutes.md +2 -2
- package/api/@xmachines/play-router/{functions → index/functions}/extractQuery.md +2 -2
- package/api/@xmachines/play-router/{functions → index/functions}/extractRouteParams.md +3 -3
- package/api/@xmachines/play-router/{functions → index/functions}/findRouteById.md +2 -2
- package/api/@xmachines/play-router/{functions → index/functions}/findRouteByPath.md +2 -2
- package/api/@xmachines/play-router/index/functions/getPatternParamNames.md +29 -0
- package/api/@xmachines/play-router/index/functions/getRequiredPatternParamNames.md +39 -0
- package/api/@xmachines/play-router/{functions → index/functions}/isMountableBridge.md +2 -2
- package/api/@xmachines/play-router/index/functions/joinBasePath.md +37 -0
- package/api/@xmachines/play-router/{functions → index/functions}/mountKey.md +2 -2
- package/api/@xmachines/play-router/index/functions/normalizeBasePath.md +43 -0
- package/api/@xmachines/play-router/{functions → index/functions}/openProviderBridge.md +14 -14
- package/api/@xmachines/play-router/index/functions/pickOwnParams.md +41 -0
- package/api/@xmachines/play-router/{functions → index/functions}/repointProviderBridge.md +2 -2
- package/api/@xmachines/play-router/index/functions/resolveBasePath.md +51 -0
- package/api/@xmachines/play-router/{functions → index/functions}/resolveFrameworkParams.md +11 -13
- package/api/@xmachines/play-router/{functions → index/functions}/sanitizePathname.md +2 -2
- package/api/@xmachines/play-router/index/functions/stripBasePath.md +44 -0
- package/api/@xmachines/play-router/{functions → index/functions}/validateRouteFormat.md +2 -2
- package/api/@xmachines/play-router/{functions → index/functions}/validateStateExists.md +2 -2
- package/api/@xmachines/play-router/{interfaces → index/interfaces}/BasePathOptions.md +6 -6
- package/api/@xmachines/play-router/index/interfaces/BuildPlayRouteEventOptions.md +13 -0
- package/api/@xmachines/play-router/index/interfaces/FrameworkParamsSource.md +47 -0
- package/api/@xmachines/play-router/{interfaces → index/interfaces}/LocationLike.md +6 -6
- package/api/@xmachines/play-router/{interfaces → index/interfaces}/MountableRouterBridge.md +9 -9
- package/api/@xmachines/play-router/{interfaces → index/interfaces}/OpenProviderBridgeArgs.md +13 -13
- package/api/@xmachines/play-router/index/interfaces/PlayRouteEvent.md +130 -0
- package/api/@xmachines/play-router/{interfaces → index/interfaces}/PlayRouterProviderBaseProps.md +15 -15
- package/api/@xmachines/play-router/index/interfaces/ResolvedBasePath.md +14 -0
- package/api/@xmachines/play-router/{interfaces → index/interfaces}/ResolvedRoutePath.md +6 -6
- package/api/@xmachines/play-router/index/interfaces/Routable.md +26 -0
- package/api/@xmachines/play-router/index/interfaces/RoutableActor.md +72 -0
- package/api/@xmachines/play-router/{interfaces → index/interfaces}/RouteInfo.md +11 -11
- package/api/@xmachines/play-router/{interfaces → index/interfaces}/RouteMapOptions.md +5 -5
- package/api/@xmachines/play-router/{interfaces → index/interfaces}/RouteMapping.md +6 -6
- package/api/@xmachines/play-router/index/interfaces/RouteMatch.md +12 -0
- package/api/@xmachines/play-router/{interfaces → index/interfaces}/RouteNode.md +13 -13
- package/api/@xmachines/play-router/index/interfaces/RouteObject.md +34 -0
- package/api/@xmachines/play-router/index/interfaces/RouteTree.md +27 -0
- package/api/@xmachines/play-router/{interfaces → index/interfaces}/RouteWatcherHandle.md +7 -7
- package/api/@xmachines/play-router/{interfaces → index/interfaces}/RouterBridge.md +5 -5
- package/api/@xmachines/play-router/{interfaces → index/interfaces}/RouterConnection.md +10 -10
- package/api/@xmachines/play-router/{interfaces → index/interfaces}/WindowLike.md +4 -4
- package/api/@xmachines/play-router/index/type-aliases/PlayRouterBridgeConstructor.md +46 -0
- package/api/@xmachines/play-router/index/type-aliases/RouteData.md +12 -0
- package/api/@xmachines/play-router/index/type-aliases/RouteDataResolver.md +31 -0
- package/api/@xmachines/play-router/index/type-aliases/RouteMetadata.md +11 -0
- package/api/@xmachines/{play-xstate → play-router/index}/variables/DISPOSE.md +3 -3
- package/api/@xmachines/play-router/index/variables/NO_BASE_PATH.md +18 -0
- package/api/@xmachines/play-router/index/variables/ROOT_NODE_ID.md +18 -0
- package/api/@xmachines/play-router/xstate/README.md +53 -0
- package/api/@xmachines/play-router/{functions → xstate/functions}/createRouteMap.md +8 -6
- package/api/@xmachines/play-router/{functions → xstate/functions}/extractMachineRoutes.md +4 -4
- package/api/@xmachines/play-router/xstate/functions/getNavigableRoutes.md +35 -0
- package/api/@xmachines/play-router/{functions → xstate/functions}/getRoutableRoutes.md +6 -6
- package/api/@xmachines/play-router/{functions → xstate/functions}/getRouteMappings.md +7 -7
- package/api/@xmachines/play-router/{functions → xstate/functions}/getTransitionReachableRoutes.md +2 -2
- package/api/@xmachines/play-router/{functions → xstate/functions}/isRouteReachable.md +2 -2
- package/api/@xmachines/play-router/{functions → xstate/functions}/machineToGraph.md +2 -2
- package/api/@xmachines/play-router/xstate/functions/routeExists.md +26 -0
- package/api/@xmachines/play-router/xstate/interfaces/MachineEdgeData.md +15 -0
- package/api/@xmachines/play-router/xstate/interfaces/MachineNodeData.md +17 -0
- package/api/@xmachines/play-router/{type-aliases → xstate/type-aliases}/MachineGraph.md +2 -2
- package/api/@xmachines/play-signals/README.md +2 -24
- 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/Cleanup.md +2 -2
- package/api/@xmachines/play-signals/type-aliases/WatcherNotify.md +1 -1
- package/api/@xmachines/play-solid/README.md +14 -31
- 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 +11 -11
- package/api/@xmachines/play-solid/interfaces/PlayUIProviderProps.md +13 -13
- package/api/@xmachines/play-solid/interfaces/ViewContextValue.md +8 -8
- package/api/@xmachines/play-solid/type-aliases/AnyPlayActor.md +11 -3
- 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/variables/schema.md +71 -0
- package/api/@xmachines/play-solid-router/README.md +31 -52
- package/api/@xmachines/play-solid-router/classes/RouteMap.md +11 -5
- package/api/@xmachines/play-solid-router/classes/SolidRouterBridge.md +30 -53
- package/api/@xmachines/play-solid-router/functions/createPlayRouterProvider.md +9 -8
- package/api/@xmachines/play-solid-router/interfaces/PlayActor.md +38 -35
- package/api/@xmachines/play-solid-router/interfaces/PlayRouteEvent.md +9 -14
- package/api/@xmachines/play-solid-router/interfaces/PlayRouterProviderProps.md +12 -12
- package/api/@xmachines/play-solid-router/interfaces/RoutableActor.md +72 -0
- package/api/@xmachines/play-solid-router/interfaces/RouteMapOptions.md +4 -4
- package/api/@xmachines/play-solid-router/interfaces/RouteMapping.md +5 -5
- package/api/@xmachines/play-solid-router/interfaces/RouterBridge.md +3 -3
- package/api/@xmachines/play-solid-router/type-aliases/PlayRouterBridgeConstructor.md +17 -7
- package/api/@xmachines/play-solid-router/type-aliases/PlayRouterProviderBaseProps.md +5 -5
- package/api/@xmachines/play-solid-router/type-aliases/SolidRouterHooks.md +4 -4
- package/api/@xmachines/play-solid-router/variables/PlayRouterProvider.md +4 -4
- package/api/@xmachines/play-svelte/README.md +11 -26
- 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 +12 -12
- package/api/@xmachines/play-svelte/interfaces/DefineRegistryOptions.md +4 -4
- package/api/@xmachines/play-svelte/interfaces/PlayUIProviderProps.md +14 -14
- package/api/@xmachines/play-svelte/interfaces/ViewContextValue.md +8 -8
- package/api/@xmachines/play-svelte/type-aliases/AnyPlayActor.md +11 -3
- package/api/@xmachines/play-svelte/variables/schema.md +16 -0
- package/api/@xmachines/play-svelte-spa-router/README.md +22 -41
- package/api/@xmachines/play-svelte-spa-router/classes/RouteMap.md +11 -5
- package/api/@xmachines/play-svelte-spa-router/classes/SvelteSpaRouterBridge.md +22 -21
- package/api/@xmachines/play-svelte-spa-router/functions/connectRouter.md +3 -2
- package/api/@xmachines/play-svelte-spa-router/interfaces/BasePathOptions.md +5 -5
- package/api/@xmachines/play-svelte-spa-router/interfaces/ConnectRouterOptions.md +8 -8
- package/api/@xmachines/play-svelte-spa-router/interfaces/PlayRouteEvent.md +9 -14
- package/api/@xmachines/play-svelte-spa-router/interfaces/RoutableActor.md +72 -0
- package/api/@xmachines/play-svelte-spa-router/interfaces/RouteMapOptions.md +4 -4
- 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/RouterConnection.md +8 -8
- package/api/@xmachines/play-svelte-spa-router/interfaces/WindowLike.md +3 -3
- package/api/@xmachines/play-sveltekit-router/README.md +17 -35
- package/api/@xmachines/play-sveltekit-router/classes/RouteMap.md +11 -5
- package/api/@xmachines/play-sveltekit-router/classes/SvelteKitRouterBridge.md +22 -21
- package/api/@xmachines/play-sveltekit-router/functions/connectRouter.md +3 -2
- package/api/@xmachines/play-sveltekit-router/interfaces/BasePathOptions.md +5 -5
- package/api/@xmachines/play-sveltekit-router/interfaces/ConnectRouterOptions.md +8 -8
- package/api/@xmachines/play-sveltekit-router/interfaces/LocationLike.md +3 -3
- package/api/@xmachines/play-sveltekit-router/interfaces/PlayRouteEvent.md +9 -14
- package/api/@xmachines/play-sveltekit-router/interfaces/RoutableActor.md +72 -0
- package/api/@xmachines/play-sveltekit-router/interfaces/RouteMapOptions.md +4 -4
- 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/interfaces/RouterConnection.md +8 -8
- package/api/@xmachines/play-tanstack-react-router/README.md +19 -43
- package/api/@xmachines/play-tanstack-react-router/classes/RouteMap.md +11 -5
- package/api/@xmachines/play-tanstack-react-router/classes/TanStackReactRouterBridge.md +18 -17
- package/api/@xmachines/play-tanstack-react-router/functions/createPlayRouterProvider.md +11 -8
- package/api/@xmachines/play-tanstack-react-router/functions/createRouteMapFromTree.md +16 -9
- package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouteEvent.md +9 -14
- package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouterProviderProps.md +10 -10
- package/api/@xmachines/play-tanstack-react-router/interfaces/RoutableActor.md +72 -0
- package/api/@xmachines/play-tanstack-react-router/interfaces/RouteMapOptions.md +4 -4
- package/api/@xmachines/play-tanstack-react-router/interfaces/RouteMapping.md +3 -3
- package/api/@xmachines/play-tanstack-react-router/interfaces/RouterBridge.md +3 -3
- package/api/@xmachines/play-tanstack-react-router/type-aliases/PlayRouterBridgeConstructor.md +17 -7
- package/api/@xmachines/play-tanstack-react-router/type-aliases/PlayRouterProviderBaseProps.md +5 -5
- package/api/@xmachines/play-tanstack-react-router/type-aliases/TanStackRouterInstance.md +1 -1
- package/api/@xmachines/play-tanstack-react-router/type-aliases/TanStackRouterLike.md +5 -5
- package/api/@xmachines/play-tanstack-react-router/variables/PlayRouterProvider.md +4 -4
- package/api/@xmachines/play-tanstack-router/README.md +6 -4
- package/api/@xmachines/play-tanstack-router/classes/TanStackRouterBridgeBase.md +17 -20
- package/api/@xmachines/play-tanstack-router/type-aliases/TanStackRouteMapLike.md +3 -3
- package/api/@xmachines/play-tanstack-router/type-aliases/TanStackRouterLike.md +5 -5
- package/api/@xmachines/play-tanstack-solid-router/README.md +26 -52
- package/api/@xmachines/play-tanstack-solid-router/classes/RouteMap.md +11 -5
- package/api/@xmachines/play-tanstack-solid-router/classes/TanStackSolidRouterBridge.md +49 -45
- package/api/@xmachines/play-tanstack-solid-router/functions/createPlayRouterProvider.md +9 -8
- package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayRouteEvent.md +9 -14
- package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayRouterProviderProps.md +10 -10
- package/api/@xmachines/play-tanstack-solid-router/interfaces/RoutableActor.md +72 -0
- package/api/@xmachines/play-tanstack-solid-router/interfaces/RouteMapOptions.md +4 -4
- 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/PlayRouterBridgeConstructor.md +17 -7
- package/api/@xmachines/play-tanstack-solid-router/type-aliases/PlayRouterProviderBaseProps.md +5 -5
- package/api/@xmachines/play-tanstack-solid-router/type-aliases/TanStackRouterInstance.md +1 -1
- package/api/@xmachines/play-tanstack-solid-router/type-aliases/TanStackRouterLike.md +5 -5
- package/api/@xmachines/play-tanstack-solid-router/variables/PlayRouterProvider.md +4 -4
- package/api/@xmachines/play-url/README.md +69 -0
- package/api/@xmachines/play-url/errors/README.md +17 -0
- package/api/@xmachines/play-url/errors/classes/InvalidBasePathError.md +200 -0
- package/api/@xmachines/play-url/errors/classes/InvalidRoutePatternError.md +203 -0
- package/api/@xmachines/play-url/errors/classes/MissingBasePathParamError.md +199 -0
- package/api/@xmachines/play-url/index/README.md +65 -0
- package/api/@xmachines/play-url/index/functions/cleanFrameworkParams.md +39 -0
- package/api/@xmachines/play-url/index/functions/getCandidates.md +29 -0
- package/api/@xmachines/play-url/index/functions/getCompiledPattern.md +31 -0
- package/api/@xmachines/play-url/index/functions/getIndexKey.md +30 -0
- package/api/@xmachines/play-url/index/functions/getNormalizedParamNameMap.md +32 -0
- package/api/@xmachines/play-url/index/functions/getPatternParamNames.md +29 -0
- package/api/@xmachines/play-url/index/functions/getRequiredPatternParamNames.md +39 -0
- package/api/@xmachines/play-url/index/functions/holdsUnsubstitutedParam.md +36 -0
- package/api/@xmachines/play-url/index/functions/isParameterizedPattern.md +36 -0
- package/api/@xmachines/{play-router → play-url/index}/functions/joinBasePath.md +2 -2
- package/api/@xmachines/{play-router → play-url/index}/functions/normalizeBasePath.md +2 -2
- package/api/@xmachines/play-url/index/functions/normalizeParamNames.md +36 -0
- package/api/@xmachines/play-url/index/functions/parsePattern.md +27 -0
- package/api/@xmachines/{play-router → play-url/index}/functions/pickOwnParams.md +4 -4
- package/api/@xmachines/{play-router → play-url/index}/functions/resolveBasePath.md +2 -2
- package/api/@xmachines/play-url/index/functions/resolveFrameworkParams.md +49 -0
- package/api/@xmachines/{play-router → play-url/index}/functions/stripBasePath.md +2 -2
- package/api/@xmachines/play-url/index/interfaces/BasePathOptions.md +28 -0
- package/api/@xmachines/{play-router → play-url/index}/interfaces/FrameworkParamsSource.md +9 -9
- package/api/@xmachines/play-url/index/interfaces/GroupPart.md +15 -0
- package/api/@xmachines/play-url/index/interfaces/LiteralPart.md +14 -0
- package/api/@xmachines/play-url/index/interfaces/ParamPart.md +21 -0
- package/api/@xmachines/play-url/index/interfaces/ParsedPattern.md +23 -0
- package/api/@xmachines/play-url/index/interfaces/PatternParam.md +15 -0
- package/api/@xmachines/{play-router → play-url/index}/interfaces/ResolvedBasePath.md +6 -6
- package/api/@xmachines/play-url/index/type-aliases/PatternModifier.md +11 -0
- package/api/@xmachines/play-url/index/type-aliases/PatternPart.md +9 -0
- package/api/@xmachines/play-url/index/type-aliases/URLPatternCtor.md +22 -0
- package/api/@xmachines/play-url/index/type-aliases/URLPatternLike.md +68 -0
- package/api/@xmachines/{play-router → play-url/index}/variables/NO_BASE_PATH.md +2 -2
- package/api/@xmachines/play-url/index/variables/URLPattern.md +21 -0
- package/api/@xmachines/play-view/README.md +165 -0
- package/api/@xmachines/play-view/errors/README.md +17 -0
- package/api/@xmachines/play-view/errors/classes/ReadOnlyContextError.md +192 -0
- package/api/@xmachines/play-view/index/README.md +55 -0
- package/api/@xmachines/{play-actor → play-view/index}/functions/attachRenderErrorHandler.md +6 -6
- package/api/@xmachines/{play-actor → play-view/index}/functions/composePlayState.md +2 -2
- package/api/@xmachines/{play-actor → play-view/index}/functions/createFailureLatch.md +2 -2
- package/api/@xmachines/{play-actor → play-view/index}/functions/createReportGuard.md +2 -2
- package/api/@xmachines/{play-actor → play-view/index}/functions/createViewStoreLifecycle.md +2 -2
- package/api/@xmachines/{play-actor → play-view/index}/functions/guardContextWrites.md +2 -2
- package/api/@xmachines/{play-actor → play-view/index}/functions/refreshContextSubtree.md +2 -2
- package/api/@xmachines/{play-actor → play-view/index}/functions/reuseComposedState.md +3 -3
- package/api/@xmachines/{play-actor → play-view/index}/functions/sameViewInputs.md +2 -2
- package/api/@xmachines/{play-actor → play-view/index}/functions/toAtomState.md +2 -2
- package/api/@xmachines/{play-actor → play-view/index}/functions/typedSpec.md +2 -2
- package/api/@xmachines/play-view/index/interfaces/BaseActorProviderProps.md +49 -0
- package/api/@xmachines/{play-actor → play-view/index}/interfaces/BaseViewContextValue.md +12 -12
- package/api/@xmachines/{play-actor → play-view/index}/interfaces/FailureLatch.md +6 -5
- package/api/@xmachines/{play-actor → play-view/index}/interfaces/PlaySpec.md +8 -8
- package/api/@xmachines/{play-actor → play-view/index}/interfaces/ReportGuard.md +6 -6
- package/api/@xmachines/{play-actor → play-view/index}/interfaces/ReportGuardMessages.md +6 -6
- package/api/@xmachines/{play-actor → play-view/index}/interfaces/ResolveViewStoreOptions.md +5 -5
- package/api/@xmachines/{play-actor → play-view/index}/interfaces/ViewInputs.md +7 -7
- package/api/@xmachines/{play-actor → play-view/index}/interfaces/ViewStoreLifecycle.md +6 -5
- package/api/@xmachines/{play-actor → play-view/index}/interfaces/ViewStoreResolution.md +7 -7
- package/api/@xmachines/{play-actor → play-view/index}/interfaces/Viewable.md +5 -5
- package/api/@xmachines/play-view/index/type-aliases/ViewActor.md +26 -0
- package/api/@xmachines/{play-actor → play-view/index}/variables/CONTEXT_STATE_KEY.md +2 -2
- package/api/@xmachines/play-vue/README.md +15 -33
- package/api/@xmachines/play-vue/functions/defineRegistry.md +1 -1
- package/api/@xmachines/play-vue/functions/useActor.md +1 -1
- package/api/@xmachines/play-vue/functions/usePlayView.md +1 -1
- package/api/@xmachines/play-vue/interfaces/ActorProviderProps.md +9 -9
- package/api/@xmachines/play-vue/interfaces/PlayUIProviderProps.md +11 -11
- package/api/@xmachines/play-vue/interfaces/ViewContextValue.md +8 -8
- package/api/@xmachines/play-vue/type-aliases/AnyPlayActor.md +11 -3
- 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/variables/schema.md +71 -0
- package/api/@xmachines/play-vue-router/README.md +34 -77
- package/api/@xmachines/play-vue-router/errors/README.md +8 -0
- package/api/@xmachines/play-vue-router/errors/classes/VueRouterNavigationError.md +193 -0
- package/api/@xmachines/play-vue-router/errors/classes/VueRouterSendError.md +177 -0
- package/api/@xmachines/play-vue-router/index/README.md +20 -0
- package/api/@xmachines/play-vue-router/index/classes/RouteMap.md +157 -0
- package/api/@xmachines/play-vue-router/{classes → index/classes}/VueRouterBridge.md +24 -43
- package/api/@xmachines/play-vue-router/index/interfaces/PlayRouteEvent.md +130 -0
- package/api/@xmachines/play-vue-router/index/interfaces/RoutableActor.md +72 -0
- package/api/@xmachines/play-vue-router/{interfaces → index/interfaces}/RouteMapOptions.md +5 -5
- package/api/@xmachines/play-vue-router/{interfaces → index/interfaces}/RouteMapping.md +6 -6
- package/api/@xmachines/play-vue-router/{interfaces → index/interfaces}/RouterBridge.md +5 -5
- package/api/@xmachines/play-vue-router/{variables → index/variables}/PlayRouterProvider.md +4 -4
- package/api/@xmachines/play-xstate/README.md +153 -105
- package/api/@xmachines/play-xstate/errors/README.md +13 -0
- package/api/@xmachines/play-xstate/errors/classes/ActorThrewNonErrorError.md +199 -0
- package/api/@xmachines/play-xstate/errors/classes/InvalidEventError.md +198 -0
- package/api/@xmachines/play-xstate/errors/classes/InvalidMachineError.md +169 -0
- package/api/@xmachines/play-xstate/errors/classes/InvalidRouteHandlerError.md +197 -0
- package/api/@xmachines/play-xstate/errors/classes/InvalidRouteMetadataError.md +176 -0
- package/api/@xmachines/play-xstate/errors/classes/MissingRouteParamError.md +199 -0
- package/api/@xmachines/play-xstate/errors/classes/MissingStateIdError.md +203 -0
- package/api/@xmachines/play-xstate/index/README.md +38 -0
- package/api/@xmachines/play-xstate/index/classes/PlayerActor.md +584 -0
- package/api/@xmachines/play-xstate/index/functions/compose.md +224 -0
- package/api/@xmachines/play-xstate/index/functions/definePlayer.md +158 -0
- package/api/@xmachines/play-xstate/index/interfaces/PlayerConfig.md +22 -0
- package/api/@xmachines/play-xstate/{interfaces → index/interfaces}/PlayerFactoryResumeOptions.md +3 -3
- package/api/@xmachines/play-xstate/{interfaces → index/interfaces}/PlayerOptions.md +8 -8
- package/api/@xmachines/play-xstate/index/type-aliases/Capability.md +33 -0
- package/api/@xmachines/play-xstate/index/type-aliases/PlayerConstructor.md +39 -0
- package/api/@xmachines/play-xstate/index/type-aliases/PlayerFactory.md +27 -0
- package/api/@xmachines/{play-router → play-xstate/index}/variables/DISPOSE.md +3 -3
- package/api/@xmachines/play-xstate/with-routing/README.md +46 -0
- package/api/@xmachines/play-xstate/{functions → with-routing/functions}/buildRouteUrl.md +2 -2
- package/api/@xmachines/play-xstate/{functions → with-routing/functions}/deriveRoute.md +4 -4
- package/api/@xmachines/play-xstate/{functions → with-routing/functions}/formatPlayRouteTransitions.md +2 -2
- package/api/@xmachines/play-xstate/{functions → with-routing/functions}/isAbsoluteRoute.md +3 -3
- package/api/@xmachines/play-xstate/with-routing/functions/withRouting.md +36 -0
- package/api/@xmachines/play-xstate/{interfaces → with-routing/interfaces}/RouteContext.md +6 -6
- package/api/@xmachines/play-xstate/with-routing/interfaces/RouteObject.md +34 -0
- package/api/@xmachines/play-xstate/with-routing/type-aliases/RouteData.md +12 -0
- package/api/@xmachines/play-xstate/with-routing/type-aliases/RouteDataResolver.md +31 -0
- package/api/@xmachines/play-xstate/{type-aliases → with-routing/type-aliases}/RouteMachineConfig.md +5 -5
- package/api/@xmachines/play-xstate/with-routing/type-aliases/RouteMetadata.md +11 -0
- package/api/@xmachines/play-xstate/{type-aliases → with-routing/type-aliases}/RouteStateNode.md +21 -7
- package/api/@xmachines/play-xstate/with-view/README.md +31 -0
- package/api/@xmachines/play-xstate/with-view/functions/withView.md +32 -0
- package/api/@xmachines/shared/README.md +10 -32
- 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/vite-aliases/functions/xmSvelteRunes.md +2 -2
- package/api/@xmachines/shared/vitest/functions/defineXmBrowserConfig.md +1 -1
- package/api/@xmachines/shared/vitest/functions/defineXmVitestConfig.md +2 -1
- package/api/@xmachines/shared/vitest/interfaces/XmBrowserConfigOptions.md +4 -4
- package/api/README.md +2 -0
- package/api/llms.txt +15 -10
- package/contributing/architecture.md +94 -66
- package/contributing/configuration.md +85 -26
- package/contributing/deployment.md +30 -28
- package/contributing/development.md +51 -10
- package/contributing/testing.md +87 -28
- package/examples/README.md +9 -7
- package/examples/form-validation.md +3 -2
- package/examples/multi-router-integration.md +61 -39
- package/examples/routing-patterns.md +15 -14
- package/examples/traffic-light.md +11 -5
- package/guides/README.md +1 -0
- package/guides/actor-model.md +35 -26
- package/guides/getting-started.md +49 -46
- package/guides/inspector.md +4 -4
- package/guides/routing.md +245 -0
- package/guides/state-machines.md +16 -17
- package/package.json +10 -9
- package/rfc/play.md +35 -22
- package/api/@xmachines/play-actor/classes/AbstractActor.md +0 -505
- package/api/@xmachines/play-actor/interfaces/BaseActorProviderProps.md +0 -48
- package/api/@xmachines/play-actor/interfaces/Routable.md +0 -14
- package/api/@xmachines/play-dom/type-aliases/DisposablePlayUI.md +0 -36
- package/api/@xmachines/play-dom-router/functions/createRouteMap.md +0 -40
- package/api/@xmachines/play-dom-router/interfaces/DisposableBrowserHistory.md +0 -262
- package/api/@xmachines/play-dom-router/interfaces/DisposableVanillaRouter.md +0 -80
- package/api/@xmachines/play-dom-router/interfaces/RouteMap.md +0 -122
- package/api/@xmachines/play-react/type-aliases/PlayRendererProps.md +0 -13
- package/api/@xmachines/play-react-router/functions/createRouteMap.md +0 -40
- package/api/@xmachines/play-react-router/interfaces/PlayActor.md +0 -70
- package/api/@xmachines/play-router/functions/getNavigableRoutes.md +0 -35
- package/api/@xmachines/play-router/functions/getPatternParamNames.md +0 -24
- package/api/@xmachines/play-router/functions/getRequiredPatternParamNames.md +0 -36
- package/api/@xmachines/play-router/functions/routeExists.md +0 -26
- package/api/@xmachines/play-router/interfaces/BuildPlayRouteEventOptions.md +0 -13
- package/api/@xmachines/play-router/interfaces/MachineEdgeData.md +0 -15
- package/api/@xmachines/play-router/interfaces/MachineNodeData.md +0 -17
- package/api/@xmachines/play-router/interfaces/PlayActor.md +0 -70
- package/api/@xmachines/play-router/interfaces/PlayRouteEvent.md +0 -135
- package/api/@xmachines/play-router/interfaces/RoutableActor.md +0 -65
- package/api/@xmachines/play-router/interfaces/RouteMatch.md +0 -12
- package/api/@xmachines/play-router/interfaces/RouteObject.md +0 -21
- package/api/@xmachines/play-router/interfaces/RouteTree.md +0 -21
- package/api/@xmachines/play-router/type-aliases/BaseRouteMapping.md +0 -13
- package/api/@xmachines/play-router/type-aliases/PlayRouterBridgeConstructor.md +0 -36
- package/api/@xmachines/play-router/type-aliases/RouteMetadata.md +0 -11
- package/api/@xmachines/play-solid-router/functions/createRouteMap.md +0 -40
- package/api/@xmachines/play-solid-router/interfaces/AbstractActor.md +0 -471
- package/api/@xmachines/play-solid-router/type-aliases/RoutableActor.md +0 -13
- package/api/@xmachines/play-svelte-spa-router/functions/createRouteMap.md +0 -40
- package/api/@xmachines/play-svelte-spa-router/type-aliases/RoutableActor.md +0 -9
- package/api/@xmachines/play-sveltekit-router/functions/createRouteMap.md +0 -40
- package/api/@xmachines/play-sveltekit-router/type-aliases/RoutableActor.md +0 -9
- package/api/@xmachines/play-tanstack-react-router/functions/createRouteMap.md +0 -40
- package/api/@xmachines/play-tanstack-react-router/functions/extractMachineRoutes.md +0 -29
- package/api/@xmachines/play-tanstack-react-router/interfaces/PlayActor.md +0 -70
- package/api/@xmachines/play-tanstack-react-router/interfaces/RouteNavigateEvent.md +0 -31
- package/api/@xmachines/play-tanstack-solid-router/functions/createRouteMap.md +0 -40
- package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayActor.md +0 -70
- package/api/@xmachines/play-tanstack-solid-router/type-aliases/RoutableActor.md +0 -13
- package/api/@xmachines/play-vue/interfaces/VisibilityProviderProps.md +0 -9
- package/api/@xmachines/play-vue/variables/getPlayViewContext.md +0 -39
- package/api/@xmachines/play-vue-router/functions/createRouteMap.md +0 -40
- package/api/@xmachines/play-vue-router/interfaces/PlayActor.md +0 -70
- package/api/@xmachines/play-vue-router/interfaces/PlayRouteEvent.md +0 -135
- package/api/@xmachines/play-vue-router/type-aliases/RoutableActor.md +0 -13
- package/api/@xmachines/play-vue-router/type-aliases/VueRouteMap.md +0 -13
- package/api/@xmachines/play-vue-router/variables/VueRouteMap.md +0 -13
- package/api/@xmachines/play-xstate/classes/PlayerActor.md +0 -568
- package/api/@xmachines/play-xstate/functions/composeGuards.md +0 -86
- package/api/@xmachines/play-xstate/functions/composeGuardsOr.md +0 -72
- package/api/@xmachines/play-xstate/functions/contextFieldMatches.md +0 -43
- package/api/@xmachines/play-xstate/functions/definePlayer.md +0 -78
- package/api/@xmachines/play-xstate/functions/eventMatches.md +0 -45
- package/api/@xmachines/play-xstate/functions/hasContext.md +0 -45
- package/api/@xmachines/play-xstate/functions/negateGuard.md +0 -67
- package/api/@xmachines/play-xstate/interfaces/PlayerConfig.md +0 -20
- package/api/@xmachines/play-xstate/interfaces/RouteObject.md +0 -17
- package/api/@xmachines/play-xstate/type-aliases/ComposedGuard.md +0 -19
- package/api/@xmachines/play-xstate/type-aliases/Guard.md +0 -36
- package/api/@xmachines/play-xstate/type-aliases/GuardArray.md +0 -23
- package/api/@xmachines/play-xstate/type-aliases/PlayerFactory.md +0 -26
- package/api/@xmachines/play-xstate/type-aliases/RouteMetadata.md +0 -9
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
# Interface: PlayErrorBoundaryProps
|
|
4
4
|
|
|
5
|
-
Defined in: [packages/play-react/src/PlayErrorBoundary.tsx:14](https://gitlab.com/xmachin-es/xmachines-js/-/blob/
|
|
5
|
+
Defined in: [packages/play-react/src/PlayErrorBoundary.tsx:14](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v4.0.0/packages/play-react/src/PlayErrorBoundary.tsx#L14)
|
|
6
6
|
|
|
7
7
|
The props of PlayErrorBoundary
|
|
8
8
|
|
|
@@ -10,8 +10,8 @@ The props of PlayErrorBoundary
|
|
|
10
10
|
|
|
11
11
|
| Property | Type | Description | Defined in |
|
|
12
12
|
| ------------------------------------------------------ | --------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
13
|
-
| <a id="property-children"></a> `children` | `ReactNode` | The child components to render | [packages/play-react/src/PlayErrorBoundary.tsx:18](https://gitlab.com/xmachin-es/xmachines-js/-/blob/
|
|
14
|
-
| <a id="property-fallback"></a> `fallback?` | `ReactNode` | The fallback UI to render when a child component throws. The default is null. | [packages/play-react/src/PlayErrorBoundary.tsx:16](https://gitlab.com/xmachin-es/xmachines-js/-/blob/
|
|
15
|
-
| <a id="property-onerror"></a> `onError?` | (`error`, `info`) => `void` | The optional error handler. It sends each error to an observability tool, such as Sentry | [packages/play-react/src/PlayErrorBoundary.tsx:20](https://gitlab.com/xmachin-es/xmachines-js/-/blob/
|
|
16
|
-
| <a id="property-resetkey"></a> `resetKey?` | `unknown` | The reset key. The boundary clears its error state when this value changes, and it renders the children again. ActorProvider gives it the current view. A view transition therefore retries the render. Without the key the boundary holds the fallback for the complete life of the provider: the user sends a recovery event, the actor moves to a healthy view, and the screen keeps the fallback. **The boundary compares the value by IDENTITY (`Object.is`) by default.** Give a stable reference. An inline object literal — `resetKey={{ view }}` — is a new value on every render, so the boundary clears its caught error before each one, renders the children that threw, catches again, and calls `onError` again. Hold the value where it survives a render, and build a new one only when an input moves. [PlayErrorBoundaryProps.resetKeyEquals](#property-resetkeyequals) takes the identity rule away, and a caller that gives one needs no stable reference at all. | [packages/play-react/src/PlayErrorBoundary.tsx:39](https://gitlab.com/xmachin-es/xmachines-js/-/blob/
|
|
17
|
-
| <a id="property-resetkeyequals"></a> `resetKeyEquals?` | (`previous`, `next`) => `boolean` | The comparison of two reset keys. The default is `Object.is`. The boundary clears its error where this function answers `false`. A caller that builds a key of several inputs therefore compares those INPUTS, and it owes the boundary no stable reference for the key that carries them. That is what `ActorProvider` gives. A key of the three view inputs and the retry nonce holds no identity of its own across renders — React makes no promise to keep a `useMemo`, and a ref that the render writes survives a render that React throws away, which the documentation of React forbids for that reason. With a comparison of the fields, a key that carries the same inputs is the same key, whichever render built it. The state of this class is the key of the last COMMIT: React commits the state of a class with the commit, so a render that React discards writes none. The comparison therefore reads the committed key on one side every time. | [packages/play-react/src/PlayErrorBoundary.tsx:63](https://gitlab.com/xmachin-es/xmachines-js/-/blob/
|
|
13
|
+
| <a id="property-children"></a> `children` | `ReactNode` | The child components to render | [packages/play-react/src/PlayErrorBoundary.tsx:18](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v4.0.0/packages/play-react/src/PlayErrorBoundary.tsx#L18) |
|
|
14
|
+
| <a id="property-fallback"></a> `fallback?` | `ReactNode` | The fallback UI to render when a child component throws. The default is null. | [packages/play-react/src/PlayErrorBoundary.tsx:16](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v4.0.0/packages/play-react/src/PlayErrorBoundary.tsx#L16) |
|
|
15
|
+
| <a id="property-onerror"></a> `onError?` | (`error`, `info`) => `void` | The optional error handler. It sends each error to an observability tool, such as Sentry | [packages/play-react/src/PlayErrorBoundary.tsx:20](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v4.0.0/packages/play-react/src/PlayErrorBoundary.tsx#L20) |
|
|
16
|
+
| <a id="property-resetkey"></a> `resetKey?` | `unknown` | The reset key. The boundary clears its error state when this value changes, and it renders the children again. ActorProvider gives it the current view. A view transition therefore retries the render. Without the key the boundary holds the fallback for the complete life of the provider: the user sends a recovery event, the actor moves to a healthy view, and the screen keeps the fallback. **The boundary compares the value by IDENTITY (`Object.is`) by default.** Give a stable reference. An inline object literal — `resetKey={{ view }}` — is a new value on every render, so the boundary clears its caught error before each one, renders the children that threw, catches again, and calls `onError` again. Hold the value where it survives a render, and build a new one only when an input moves. [PlayErrorBoundaryProps.resetKeyEquals](#property-resetkeyequals) takes the identity rule away, and a caller that gives one needs no stable reference at all. | [packages/play-react/src/PlayErrorBoundary.tsx:39](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v4.0.0/packages/play-react/src/PlayErrorBoundary.tsx#L39) |
|
|
17
|
+
| <a id="property-resetkeyequals"></a> `resetKeyEquals?` | (`previous`, `next`) => `boolean` | The comparison of two reset keys. The default is `Object.is`. The boundary clears its error where this function answers `false`. A caller that builds a key of several inputs therefore compares those INPUTS, and it owes the boundary no stable reference for the key that carries them. That is what `ActorProvider` gives. A key of the three view inputs and the retry nonce holds no identity of its own across renders — React makes no promise to keep a `useMemo`, and a ref that the render writes survives a render that React throws away, which the documentation of React forbids for that reason. With a comparison of the fields, a key that carries the same inputs is the same key, whichever render built it. The state of this class is the key of the last COMMIT: React commits the state of a class with the commit, so a render that React discards writes none. The comparison therefore reads the committed key on one side every time. | [packages/play-react/src/PlayErrorBoundary.tsx:63](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v4.0.0/packages/play-react/src/PlayErrorBoundary.tsx#L63) |
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
# Interface: PlayErrorBoundaryState
|
|
4
4
|
|
|
5
|
-
Defined in: [packages/play-react/src/PlayErrorBoundary.tsx:71](https://gitlab.com/xmachin-es/xmachines-js/-/blob/
|
|
5
|
+
Defined in: [packages/play-react/src/PlayErrorBoundary.tsx:71](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v4.0.0/packages/play-react/src/PlayErrorBoundary.tsx#L71)
|
|
6
6
|
|
|
7
7
|
The internal state shape of PlayErrorBoundary
|
|
8
8
|
|
|
@@ -10,6 +10,6 @@ The internal state shape of PlayErrorBoundary
|
|
|
10
10
|
|
|
11
11
|
| Property | Type | Description | Defined in |
|
|
12
12
|
| ----------------------------------------- | ----------------- | ------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
13
|
-
| <a id="property-error"></a> `error` | `Error` \| `null` | - | [packages/play-react/src/PlayErrorBoundary.tsx:73](https://gitlab.com/xmachin-es/xmachines-js/-/blob/
|
|
14
|
-
| <a id="property-haserror"></a> `hasError` | `boolean` | - | [packages/play-react/src/PlayErrorBoundary.tsx:72](https://gitlab.com/xmachin-es/xmachines-js/-/blob/
|
|
15
|
-
| <a id="property-resetkey"></a> `resetKey` | `unknown` | The resetKey of the last render. A different prop clears the error state. | [packages/play-react/src/PlayErrorBoundary.tsx:75](https://gitlab.com/xmachin-es/xmachines-js/-/blob/
|
|
13
|
+
| <a id="property-error"></a> `error` | `Error` \| `null` | - | [packages/play-react/src/PlayErrorBoundary.tsx:73](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v4.0.0/packages/play-react/src/PlayErrorBoundary.tsx#L73) |
|
|
14
|
+
| <a id="property-haserror"></a> `hasError` | `boolean` | - | [packages/play-react/src/PlayErrorBoundary.tsx:72](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v4.0.0/packages/play-react/src/PlayErrorBoundary.tsx#L72) |
|
|
15
|
+
| <a id="property-resetkey"></a> `resetKey` | `unknown` | The resetKey of the last render. A different prop clears the error state. | [packages/play-react/src/PlayErrorBoundary.tsx:75](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v4.0.0/packages/play-react/src/PlayErrorBoundary.tsx#L75) |
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
# Interface: PlayUIProviderProps
|
|
4
4
|
|
|
5
|
-
Defined in: [packages/play-react/src/PlayUIProvider.tsx:35](https://gitlab.com/xmachin-es/xmachines-js/-/blob/
|
|
5
|
+
Defined in: [packages/play-react/src/PlayUIProvider.tsx:35](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v4.0.0/packages/play-react/src/PlayUIProvider.tsx#L35)
|
|
6
6
|
|
|
7
7
|
The props of PlayUIProvider — every ActorProvider prop, and also the props of JSONUIProvider.
|
|
8
8
|
|
|
@@ -12,15 +12,15 @@ The props of PlayUIProvider — every ActorProvider prop, and also the props of
|
|
|
12
12
|
|
|
13
13
|
## Properties
|
|
14
14
|
|
|
15
|
-
| Property | Type
|
|
16
|
-
| ---------------------------------------------------------------- |
|
|
17
|
-
| <a id="property-actor"></a> `actor` | [`
|
|
18
|
-
| <a id="property-children"></a> `children` | `ReactNode`
|
|
19
|
-
| <a id="property-fallback"></a> `fallback?` | `ReactNode`
|
|
20
|
-
| <a id="property-functions"></a> `functions?` | `Record`\<`string`, `ComputedFunction`\>
|
|
21
|
-
| <a id="property-navigate"></a> `navigate?` | (`path`) => `void`
|
|
22
|
-
| <a id="property-onerror"></a> `onError?` | (`error`, `info`, `reset`) => `void`
|
|
23
|
-
| <a id="property-onrendererror"></a> `onRenderError?` | [`RenderErrorHandler`](../type-aliases/RenderErrorHandler.md)
|
|
24
|
-
| <a id="property-registryresult"></a> `registryResult` | `DefineRegistryResult`
|
|
25
|
-
| <a id="property-store"></a> `store?` | `StateStore`
|
|
26
|
-
| <a id="property-validationfunctions"></a> `validationFunctions?` | `Record`\<`string`, (`value`, `args?`) => `boolean`\>
|
|
15
|
+
| Property | Type | Description | Inherited from | Defined in |
|
|
16
|
+
| ---------------------------------------------------------------- | -------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
|
17
|
+
| <a id="property-actor"></a> `actor` | [`ViewActor`](../../play-view/index/type-aliases/ViewActor.md) | The actor instance with the currentView signal. It requires the Viewable capability. | [`ActorProviderProps`](ActorProviderProps.md).[`actor`](ActorProviderProps.md#property-actor) | [packages/play-view/src/view-types.ts:169](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v4.0.0/packages/play-view/src/view-types.ts#L169) |
|
|
18
|
+
| <a id="property-children"></a> `children` | `ReactNode` | The child components to render inside the provider tree | [`ActorProviderProps`](ActorProviderProps.md).[`children`](ActorProviderProps.md#property-children) | [packages/play-react/src/ActorProvider.tsx:98](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v4.0.0/packages/play-react/src/ActorProvider.tsx#L98) |
|
|
19
|
+
| <a id="property-fallback"></a> `fallback?` | `ReactNode` | The component to show when currentView is null, or when a catalog component throws. This prop is optional | [`ActorProviderProps`](ActorProviderProps.md).[`fallback`](ActorProviderProps.md#property-fallback) | [packages/play-react/src/ActorProvider.tsx:61](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v4.0.0/packages/play-react/src/ActorProvider.tsx#L61) |
|
|
20
|
+
| <a id="property-functions"></a> `functions?` | `Record`\<`string`, `ComputedFunction`\> | Named functions for `$computed` expressions in props | [`JSONUIProviderProps`](JSONUIProviderProps.md).[`functions`](JSONUIProviderProps.md#property-functions) | - |
|
|
21
|
+
| <a id="property-navigate"></a> `navigate?` | (`path`) => `void` | Navigation function | [`JSONUIProviderProps`](JSONUIProviderProps.md).[`navigate`](JSONUIProviderProps.md#property-navigate) | - |
|
|
22
|
+
| <a id="property-onerror"></a> `onError?` | (`error`, `info`, `reset`) => `void` | The optional error handler. The provider calls it when a descendant throws during a render. While the error is active, the provider renders the `fallback` instead of its children. The provider clears the error on the next view emission (when `currentView` changes), so a view transition retries the render. Element-level catalog component throws are caught upstream by the per-element boundary of @json-render, and reported through `onRenderError`. This boundary is the outer net for everything else. The THIRD parameter is the reset, for a retry that the host starts — a "Retry" button of its own. It sits after `info`, and not in the second place that the four other renderers use, because `React.ErrorInfo` holds that place already and a move would break every handler that reads `info.componentStack`. The reset clears the contained error and renders again. It renders the view that the actor holds at the MOMENT OF THE CALL, so a host that keeps the callback cannot rewind the screen to the view that failed. A reset that the host calls from inside this handler does nothing, because no input changed between the two attempts, and a reset after the provider is unmounted does nothing. The five renderers hold the same three rules. **A handler that THROWS reaches no caller.** The provider contains that throw, and it writes the throw to `console.error`. This handler runs inside `componentDidCatch`, so a throw that left it would reach the boundary ABOVE this provider, and React can then unmount the complete root — which is the failure that this boundary contained. Report a failure from this handler. To ESCALATE one, raise it from a task of your own — `queueMicrotask(() => { throw error; })` — which reaches the global handler of the page and leaves the containment whole. The five renderers hold this one rule. | [`ActorProviderProps`](ActorProviderProps.md).[`onError`](ActorProviderProps.md#property-onerror) | [packages/play-react/src/ActorProvider.tsx:96](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v4.0.0/packages/play-react/src/ActorProvider.tsx#L96) |
|
|
23
|
+
| <a id="property-onrendererror"></a> `onRenderError?` | [`RenderErrorHandler`](../type-aliases/RenderErrorHandler.md) | The provider calls it when one catalog component throws during a render. This handler replaces every onRenderError of defineRegistry. | [`ActorProviderProps`](ActorProviderProps.md).[`onRenderError`](ActorProviderProps.md#property-onrendererror) | [packages/play-view/src/view-types.ts:183](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v4.0.0/packages/play-view/src/view-types.ts#L183) |
|
|
24
|
+
| <a id="property-registryresult"></a> `registryResult` | `DefineRegistryResult` | The complete result of defineRegistry(). It holds the component registry and the factory of the action handlers. | [`ActorProviderProps`](ActorProviderProps.md).[`registryResult`](ActorProviderProps.md#property-registryresult) | [packages/play-view/src/view-types.ts:171](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v4.0.0/packages/play-view/src/view-types.ts#L171) |
|
|
25
|
+
| <a id="property-store"></a> `store?` | `StateStore` | The optional external StateStore, which is the controlled mode. With this option, the provider ignores spec.state, and this store is the single source of truth. Without it, the provider makes a new @xstate/store atom for each view transition, with the values of spec.state. | [`ActorProviderProps`](ActorProviderProps.md).[`store`](ActorProviderProps.md#property-store) | [packages/play-view/src/view-types.ts:178](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v4.0.0/packages/play-view/src/view-types.ts#L178) |
|
|
26
|
+
| <a id="property-validationfunctions"></a> `validationFunctions?` | `Record`\<`string`, (`value`, `args?`) => `boolean`\> | Custom validation functions | [`JSONUIProviderProps`](JSONUIProviderProps.md).[`validationFunctions`](JSONUIProviderProps.md#property-validationfunctions) | - |
|
|
@@ -2,19 +2,19 @@
|
|
|
2
2
|
|
|
3
3
|
# Interface: ViewContextValue
|
|
4
4
|
|
|
5
|
-
Defined in: [packages/play-react/src/ActorProvider.tsx:106](https://gitlab.com/xmachin-es/xmachines-js/-/blob/
|
|
5
|
+
Defined in: [packages/play-react/src/ActorProvider.tsx:106](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v4.0.0/packages/play-react/src/ActorProvider.tsx#L106)
|
|
6
6
|
|
|
7
7
|
The value that ViewContext provides. usePlayView() reads it.
|
|
8
8
|
|
|
9
9
|
## Extends
|
|
10
10
|
|
|
11
|
-
- [`BaseViewContextValue`](../../play-
|
|
11
|
+
- [`BaseViewContextValue`](../../play-view/index/interfaces/BaseViewContextValue.md)\<`ComponentRegistry`\>
|
|
12
12
|
|
|
13
13
|
## Properties
|
|
14
14
|
|
|
15
|
-
| Property | Type
|
|
16
|
-
| ----------------------------------------- |
|
|
17
|
-
| <a id="property-handlers"></a> `handlers` | `Record`\<`string`, `ActionHandler`\>
|
|
18
|
-
| <a id="property-registry"></a> `registry` | `TRegistry`
|
|
19
|
-
| <a id="property-spec"></a> `spec` | [`PlaySpec`](../../play-
|
|
20
|
-
| <a id="property-store"></a> `store` | `StateStore`
|
|
15
|
+
| Property | Type | Description | Inherited from | Defined in |
|
|
16
|
+
| ----------------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
17
|
+
| <a id="property-handlers"></a> `handlers` | `Record`\<`string`, `ActionHandler`\> | The action handlers, resolved against the live StateStore. | [`BaseViewContextValue`](../../play-view/index/interfaces/BaseViewContextValue.md).[`handlers`](../../play-view/index/interfaces/BaseViewContextValue.md#property-handlers) | [packages/play-view/src/view-types.ts:112](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v4.0.0/packages/play-view/src/view-types.ts#L112) |
|
|
18
|
+
| <a id="property-registry"></a> `registry` | `TRegistry` | The component registry, from registryResult.registry. | [`BaseViewContextValue`](../../play-view/index/interfaces/BaseViewContextValue.md).[`registry`](../../play-view/index/interfaces/BaseViewContextValue.md#property-registry) | [packages/play-view/src/view-types.ts:114](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v4.0.0/packages/play-view/src/view-types.ts#L114) |
|
|
19
|
+
| <a id="property-spec"></a> `spec` | [`PlaySpec`](../../play-view/index/interfaces/PlaySpec.md) | The current PlaySpec to render. | [`BaseViewContextValue`](../../play-view/index/interfaces/BaseViewContextValue.md).[`spec`](../../play-view/index/interfaces/BaseViewContextValue.md#property-spec) | [packages/play-view/src/view-types.ts:110](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v4.0.0/packages/play-view/src/view-types.ts#L110) |
|
|
20
|
+
| <a id="property-store"></a> `store` | `StateStore` | The active StateStore. Give it to JSONUIProvider or JsonUIProvider as `store`, and the providers then share the state. | [`BaseViewContextValue`](../../play-view/index/interfaces/BaseViewContextValue.md).[`store`](../../play-view/index/interfaces/BaseViewContextValue.md#property-store) | [packages/play-view/src/view-types.ts:118](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v4.0.0/packages/play-view/src/view-types.ts#L118) |
|
|
@@ -3,9 +3,17 @@
|
|
|
3
3
|
# Type Alias: AnyPlayActor
|
|
4
4
|
|
|
5
5
|
```ts
|
|
6
|
-
type AnyPlayActor =
|
|
6
|
+
type AnyPlayActor = PlayActor;
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
Defined in: [packages/play-react/src/useActor.ts:
|
|
9
|
+
Defined in: [packages/play-react/src/useActor.ts:37](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v4.0.0/packages/play-react/src/useActor.ts#L37)
|
|
10
10
|
|
|
11
|
-
The
|
|
11
|
+
The actor type of the context of this renderer.
|
|
12
|
+
|
|
13
|
+
It is the `PlayActor` contract, which is `state` and `send`, and it names no engine, no
|
|
14
|
+
routing and no view. A component inside the render tree reads the context to SEND an
|
|
15
|
+
event, for example a retry from a fallback, and nothing reads `currentView` through it:
|
|
16
|
+
a renderer receives the view from its provider, and not from this context.
|
|
17
|
+
|
|
18
|
+
It was `AbstractActor<AnyActorLogic>`, which demanded the whole `Actor` surface of
|
|
19
|
+
XState from a context that reads two members.
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
const ActorProvider: React.FC<ActorProviderProps>;
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
Defined in: [packages/play-react/src/ActorProvider.tsx:363](https://gitlab.com/xmachin-es/xmachines-js/-/blob/
|
|
9
|
+
Defined in: [packages/play-react/src/ActorProvider.tsx:363](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v4.0.0/packages/play-react/src/ActorProvider.tsx#L363)
|
|
10
10
|
|
|
11
11
|
ActorProvider — the low-level provider that composes the actor lifecycle with your own providers.
|
|
12
12
|
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
const PlayRenderer: React.FC<Record<string, never>>;
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
Defined in: [packages/play-react/src/PlayRenderer.tsx:40](https://gitlab.com/xmachin-es/xmachines-js/-/blob/
|
|
9
|
+
Defined in: [packages/play-react/src/PlayRenderer.tsx:40](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v4.0.0/packages/play-react/src/PlayRenderer.tsx#L40)
|
|
10
10
|
|
|
11
11
|
The leaf component without props that renders the current actor view.
|
|
12
12
|
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
const PlayUIProvider: React.FC<PlayUIProviderProps>;
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
Defined in: [packages/play-react/src/PlayUIProvider.tsx:106](https://gitlab.com/xmachin-es/xmachines-js/-/blob/
|
|
9
|
+
Defined in: [packages/play-react/src/PlayUIProvider.tsx:106](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v4.0.0/packages/play-react/src/PlayUIProvider.tsx#L106)
|
|
10
10
|
|
|
11
11
|
PlayUIProvider — the standard entry point for an actor-driven UI.
|
|
12
12
|
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
[API](../../../README.md) / [@xmachines/play-react](../README.md) / schema
|
|
2
|
+
|
|
3
|
+
# Variable: schema
|
|
4
|
+
|
|
5
|
+
```ts
|
|
6
|
+
const schema: _json_render_core.Schema<{
|
|
7
|
+
catalog: _json_render_core.SchemaType<"object", {
|
|
8
|
+
actions: _json_render_core.SchemaType<"map", {
|
|
9
|
+
description: _json_render_core.SchemaType<"string", unknown>;
|
|
10
|
+
params: _json_render_core.SchemaType<"zod", unknown>;
|
|
11
|
+
}>;
|
|
12
|
+
components: _json_render_core.SchemaType<"map", {
|
|
13
|
+
description: _json_render_core.SchemaType<"string", unknown>;
|
|
14
|
+
example: _json_render_core.SchemaType<"any", unknown>;
|
|
15
|
+
props: _json_render_core.SchemaType<"zod", unknown>;
|
|
16
|
+
slots: _json_render_core.SchemaType<"array", _json_render_core.SchemaType<"string", unknown>>;
|
|
17
|
+
}>;
|
|
18
|
+
}>;
|
|
19
|
+
spec: _json_render_core.SchemaType<"object", {
|
|
20
|
+
elements: _json_render_core.SchemaType<"record", _json_render_core.SchemaType<"object", {
|
|
21
|
+
children: _json_render_core.SchemaType<"array", _json_render_core.SchemaType<"string", unknown>>;
|
|
22
|
+
props: _json_render_core.SchemaType<"propsOf", string>;
|
|
23
|
+
repeat: {
|
|
24
|
+
inner?: unknown;
|
|
25
|
+
kind: "any";
|
|
26
|
+
optional: true;
|
|
27
|
+
};
|
|
28
|
+
slots: {
|
|
29
|
+
inner?: _json_render_core.SchemaType<"array", _json_render_core.SchemaType<..., ...>>;
|
|
30
|
+
kind: "record";
|
|
31
|
+
optional: true;
|
|
32
|
+
};
|
|
33
|
+
type: _json_render_core.SchemaType<"ref", string>;
|
|
34
|
+
visible: {
|
|
35
|
+
inner?: unknown;
|
|
36
|
+
kind: "any";
|
|
37
|
+
optional: true;
|
|
38
|
+
};
|
|
39
|
+
}>>;
|
|
40
|
+
root: _json_render_core.SchemaType<"string", unknown>;
|
|
41
|
+
}>;
|
|
42
|
+
}>;
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
Defined in: `@xmachines/json-render-react`
|
|
46
|
+
|
|
47
|
+
The schema for @xmachines/json-render-react
|
|
48
|
+
|
|
49
|
+
Defines:
|
|
50
|
+
|
|
51
|
+
- Spec: A flat tree of elements with keys, types, props, and children references
|
|
52
|
+
- Catalog: Components with props schemas, and optional actions
|
|
@@ -2,22 +2,22 @@
|
|
|
2
2
|
|
|
3
3
|
# `@xmachines/play-react-router`
|
|
4
4
|
|
|
5
|
-
> React Router
|
|
5
|
+
> React Router 7 and 8 adapter for the XMachines Play Universal Player Architecture. It keeps the actor state and the browser URL in step, in both directions, through the `createBrowserRouter` data API.
|
|
6
6
|
|
|
7
|
-
[](https://opensource.org/licenses/MIT) [](https://opensource.org/licenses/MIT) [](https://www.npmjs.com/package/@xmachines/play-react-router)
|
|
8
8
|
|
|
9
9
|
---
|
|
10
10
|
|
|
11
11
|
## Installation
|
|
12
12
|
|
|
13
13
|
```bash
|
|
14
|
-
pnpm add @xmachines/play-react-router
|
|
14
|
+
pnpm add @xmachines/play-react-router @xmachines/play-router
|
|
15
15
|
```
|
|
16
16
|
|
|
17
17
|
**Peer dependencies.** Install them if they are not present:
|
|
18
18
|
|
|
19
19
|
```bash
|
|
20
|
-
pnpm add react@"^18 || ^19" react-router@"^7
|
|
20
|
+
pnpm add react@"^18 || ^19" react-router@"^7 || ^8"
|
|
21
21
|
```
|
|
22
22
|
|
|
23
23
|
---
|
|
@@ -33,11 +33,13 @@ pnpm add react@"^18 || ^19" react-router@"^7.0.0" xstate@"^5.31.0"
|
|
|
33
33
|
```tsx
|
|
34
34
|
import { useMemo, useEffect } from "react";
|
|
35
35
|
import { createBrowserRouter, RouterProvider } from "react-router";
|
|
36
|
-
import { PlayRouterProvider
|
|
37
|
-
import {
|
|
36
|
+
import { PlayRouterProvider } from "@xmachines/play-react-router";
|
|
37
|
+
import { createRouteMap } from "@xmachines/play-router/xstate";
|
|
38
|
+
import { definePlayer, compose, PlayerActor } from "@xmachines/play-xstate";
|
|
39
|
+
import { withRouting } from "@xmachines/play-xstate/routing";
|
|
38
40
|
import { myMachine } from "./machine.js";
|
|
39
41
|
|
|
40
|
-
const createPlayer = definePlayer({ machine: myMachine });
|
|
42
|
+
const createPlayer = definePlayer({ machine: myMachine, actor: compose(PlayerActor, withRouting) });
|
|
41
43
|
const routeMap = createRouteMap(myMachine);
|
|
42
44
|
|
|
43
45
|
// Minimal app shell stub — a real app renders PlayUIProvider + PlayRenderer from
|
|
@@ -77,11 +79,14 @@ Use `ReactRouterBridge` directly when you need imperative lifecycle control outs
|
|
|
77
79
|
|
|
78
80
|
```typescript
|
|
79
81
|
import { createBrowserRouter } from "react-router";
|
|
80
|
-
import { ReactRouterBridge
|
|
81
|
-
import {
|
|
82
|
+
import { ReactRouterBridge } from "@xmachines/play-react-router";
|
|
83
|
+
import { createRouteMap } from "@xmachines/play-router/xstate";
|
|
84
|
+
import { definePlayer, compose, PlayerActor } from "@xmachines/play-xstate";
|
|
85
|
+
import { withRouting } from "@xmachines/play-xstate/routing";
|
|
82
86
|
import { myMachine } from "./machine.js";
|
|
83
87
|
|
|
84
|
-
|
|
88
|
+
// The bridge needs the routing capability
|
|
89
|
+
const actor = definePlayer({ machine: myMachine, actor: compose(PlayerActor, withRouting) })();
|
|
85
90
|
actor.start();
|
|
86
91
|
|
|
87
92
|
const router = createBrowserRouter([/* routes */]);
|
|
@@ -131,63 +136,31 @@ Extends `RouterBridgeBase` from `@xmachines/play-router`. Implements the `Router
|
|
|
131
136
|
| Export | Description |
|
|
132
137
|
| ------------------------- | -------------------------------------------------------------------------------- |
|
|
133
138
|
| `PlayRouterProviderProps` | Props interface for `PlayRouterProvider` |
|
|
134
|
-
| `
|
|
139
|
+
| `RoutableActor` | The constraint type for an actor that `PlayRouterProvider` and the bridge accept |
|
|
135
140
|
|
|
136
141
|
### Route map utilities (re-exported from `@xmachines/play-router`)
|
|
137
142
|
|
|
143
|
+
This barrel names no state machine. `createRouteMap` and `extractMachineRoutes` read one,
|
|
144
|
+
so import them from `@xmachines/play-router/xstate`.
|
|
145
|
+
|
|
138
146
|
| Export | Description |
|
|
139
147
|
| ------------------------------ | ------------------------------------------------------------------------- |
|
|
140
148
|
| `RouteMap` | Bidirectional state ID ↔ URL path map |
|
|
141
|
-
| `createRouteMap(machine)` | Build a `RouteMap` directly from an XState machine definition |
|
|
142
149
|
| `createRouteMapFromTree(tree)` | Build a `RouteMap` from a `RouteTree` object |
|
|
143
|
-
| `RouteMapOptions` | Options type for `
|
|
150
|
+
| `RouteMapOptions` | Options type for the `RouteMap` construction |
|
|
144
151
|
| `RouteMapping` | Type for a single `{ stateId, path }` entry |
|
|
145
152
|
| `RouterBridge` | Interface that `ReactRouterBridge` satisfies |
|
|
146
153
|
| `PlayRouteEvent` | The `play.route` event type that a router sends to an actor on navigation |
|
|
147
154
|
|
|
148
155
|
---
|
|
149
156
|
|
|
150
|
-
## Testing
|
|
151
|
-
|
|
152
|
-
Run tests for this package in isolation:
|
|
153
|
-
|
|
154
|
-
```bash
|
|
155
|
-
pnpm --filter @xmachines/play-react-router test
|
|
156
|
-
```
|
|
157
|
-
|
|
158
|
-
Or from inside the package directory:
|
|
159
|
-
|
|
160
|
-
```bash
|
|
161
|
-
pnpm test
|
|
162
|
-
```
|
|
163
|
-
|
|
164
|
-
Tests use [Vitest](https://vitest.dev/). Component tests (`*.test.tsx`) run in a `jsdom` environment via `@testing-library/react`. Unit tests (`*.test.ts`) run in Node.
|
|
165
|
-
|
|
166
|
-
**Browser tests** (`test/browser/**/*.browser.test.ts`) run in real Chromium through Playwright. They cover the asynchronous sequences that jsdom cannot reproduce: BACK and FORWARD navigation, the callback order of `router.subscribe`, echo suppression under real microtask timing, and subscriber teardown on `disconnect()`.
|
|
167
|
-
|
|
168
|
-
```bash
|
|
169
|
-
# Run browser tests only
|
|
170
|
-
pnpm exec vitest --config vitest.browser.config.ts --project play-react-router-browser
|
|
171
|
-
```
|
|
172
|
-
|
|
173
|
-
Coverage thresholds (v8 provider):
|
|
174
|
-
|
|
175
|
-
| Type | Threshold |
|
|
176
|
-
| ---------- | --------- |
|
|
177
|
-
| Lines | 80% |
|
|
178
|
-
| Functions | 80% |
|
|
179
|
-
| Branches | 80% |
|
|
180
|
-
| Statements | 80% |
|
|
181
|
-
|
|
182
|
-
---
|
|
183
|
-
|
|
184
157
|
## License
|
|
185
158
|
|
|
186
159
|
[MIT](./LICENSE)
|
|
187
160
|
|
|
188
161
|
@xmachines/play-react-router
|
|
189
162
|
|
|
190
|
-
React Router
|
|
163
|
+
React Router 7/8 adapter for the XMachines Play architecture.
|
|
191
164
|
It keeps the browser URL and the actor state in step through the
|
|
192
165
|
createBrowserRouter data API.
|
|
193
166
|
|
|
@@ -198,9 +171,9 @@ createBrowserRouter data API.
|
|
|
198
171
|
|
|
199
172
|
## Interfaces
|
|
200
173
|
|
|
201
|
-
- [PlayActor](interfaces/PlayActor.md)
|
|
202
174
|
- [PlayRouteEvent](interfaces/PlayRouteEvent.md)
|
|
203
175
|
- [PlayRouterProviderProps](interfaces/PlayRouterProviderProps.md)
|
|
176
|
+
- [RoutableActor](interfaces/RoutableActor.md)
|
|
204
177
|
- [RouteMapOptions](interfaces/RouteMapOptions.md)
|
|
205
178
|
- [RouteMapping](interfaces/RouteMapping.md)
|
|
206
179
|
- [RouterBridge](interfaces/RouterBridge.md)
|
|
@@ -217,5 +190,4 @@ createBrowserRouter data API.
|
|
|
217
190
|
## Functions
|
|
218
191
|
|
|
219
192
|
- [createPlayRouterProvider](functions/createPlayRouterProvider.md)
|
|
220
|
-
- [createRouteMap](functions/createRouteMap.md)
|
|
221
193
|
- [createRouteMapFromTree](functions/createRouteMapFromTree.md)
|