@xmachines/docs 1.0.0-beta.25 → 1.0.0-beta.27
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/api/@xmachines/play/classes/PlayError.md +10 -4
- package/api/@xmachines/play/type-aliases/PlayEvent.md +2 -2
- package/api/@xmachines/play-actor/README.md +4 -0
- package/api/@xmachines/play-actor/classes/AbstractActor.md +49 -92
- package/api/@xmachines/play-actor/functions/typedSpec.md +57 -0
- package/api/@xmachines/play-actor/interfaces/PlaySpec.md +9 -18
- package/api/@xmachines/play-actor/interfaces/Routable.md +5 -21
- package/api/@xmachines/play-actor/interfaces/ViewMetadata.md +6 -6
- package/api/@xmachines/play-actor/interfaces/Viewable.md +5 -6
- package/api/@xmachines/play-dom/README.md +24 -8
- package/api/@xmachines/play-dom/classes/PlayRenderer.md +4 -4
- package/api/@xmachines/play-dom/functions/connectRenderer.md +1 -1
- package/api/@xmachines/play-dom/functions/defineRegistry.md +61 -0
- package/api/@xmachines/play-dom/functions/renderSpec.md +29 -12
- package/api/@xmachines/play-dom/interfaces/ComponentContext.md +62 -0
- package/api/@xmachines/play-dom/interfaces/ConnectRendererOptions.md +9 -9
- package/api/@xmachines/play-dom/interfaces/DefineRegistryOptions.md +25 -0
- package/api/@xmachines/play-dom/interfaces/DefineRegistryResult.md +18 -0
- package/api/@xmachines/play-dom/interfaces/DomRenderContext.md +13 -10
- package/api/@xmachines/play-dom/interfaces/EventHandle.md +29 -0
- package/api/@xmachines/play-dom/interfaces/PlayDomOptions.md +5 -5
- package/api/@xmachines/play-dom/type-aliases/ComponentFn.md +53 -0
- package/api/@xmachines/play-dom/type-aliases/ComponentRegistry.md +21 -0
- package/api/@xmachines/play-dom/type-aliases/DomComponentRenderer.md +16 -3
- package/api/@xmachines/play-dom/type-aliases/DomRegistry.md +5 -2
- package/api/@xmachines/play-dom-router/README.md +10 -0
- package/api/@xmachines/play-dom-router/functions/connectRouter.md +18 -46
- package/api/@xmachines/play-dom-router/functions/createBrowserHistory.md +1 -1
- package/api/@xmachines/play-dom-router/functions/createRouteMap.md +38 -0
- package/api/@xmachines/play-dom-router/functions/createRouter.md +1 -1
- package/api/@xmachines/play-dom-router/interfaces/BrowserHistory.md +16 -16
- package/api/@xmachines/play-dom-router/interfaces/BrowserWindow.md +16 -16
- package/api/@xmachines/play-dom-router/interfaces/ConnectRouterOptions.md +6 -6
- package/api/@xmachines/play-dom-router/interfaces/PlayRouteEvent.md +119 -0
- package/api/@xmachines/play-dom-router/interfaces/RouteMap.md +114 -0
- package/api/@xmachines/play-dom-router/interfaces/RouteMapLike.md +50 -0
- package/api/@xmachines/play-dom-router/interfaces/RouteMapping.md +27 -0
- package/api/@xmachines/play-dom-router/interfaces/RouterBridge.md +104 -0
- package/api/@xmachines/play-dom-router/interfaces/VanillaRouter.md +6 -6
- package/api/@xmachines/play-dom-router/type-aliases/RoutableActor.md +9 -0
- package/api/@xmachines/play-dom-router-demo/README.md +46 -51
- package/api/@xmachines/play-react/README.md +4 -4
- package/api/@xmachines/play-react/classes/PlayErrorBoundary.md +31 -5
- package/api/@xmachines/play-react/functions/defineRegistry.md +2 -0
- package/api/@xmachines/play-react/functions/useActor.md +1 -1
- package/api/@xmachines/play-react/functions/useBoundProp.md +2 -0
- package/api/@xmachines/play-react/functions/useSignalEffect.md +1 -1
- package/api/@xmachines/play-react/functions/useStateBinding.md +2 -0
- package/api/@xmachines/play-react/interfaces/ComponentContext.md +2 -0
- 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/PlayRendererProps.md +7 -7
- package/api/@xmachines/play-react/type-aliases/ComponentFn.md +2 -0
- package/api/@xmachines/play-react/type-aliases/PlayActor.md +1 -1
- package/api/@xmachines/play-react/variables/PlayRenderer.md +1 -1
- package/api/@xmachines/play-react-router/README.md +5 -1
- package/api/@xmachines/play-react-router/classes/ReactRouterBridge.md +102 -25
- package/api/@xmachines/play-react-router/classes/RouteMap.md +17 -33
- package/api/@xmachines/play-react-router/functions/PlayRouterProvider.md +8 -1
- package/api/@xmachines/play-react-router/functions/createRouteMapFromTree.md +21 -11
- package/api/@xmachines/play-react-router/interfaces/PlayRouteEvent.md +8 -8
- package/api/@xmachines/play-react-router/interfaces/PlayRouterProviderProps.md +7 -7
- package/api/@xmachines/play-react-router/interfaces/RouteMapping.md +18 -8
- package/api/@xmachines/play-react-router/interfaces/RouterBridge.md +3 -3
- package/api/@xmachines/play-router/README.md +42 -5
- package/api/@xmachines/play-router/classes/BaseRouteMap.md +12 -19
- package/api/@xmachines/play-router/classes/RouterBridgeBase.md +100 -25
- 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/createRouteMapFromMachine.md +38 -0
- package/api/@xmachines/play-router/functions/createRouteMapFromTree.md +45 -0
- 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 +46 -0
- 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 +27 -0
- package/api/@xmachines/play-router/interfaces/MachineEdgeData.md +3 -3
- package/api/@xmachines/play-router/interfaces/MachineNodeData.md +5 -5
- package/api/@xmachines/play-router/interfaces/PlayRouteEvent.md +8 -8
- package/api/@xmachines/play-router/interfaces/RouteInfo.md +8 -8
- package/api/@xmachines/play-router/interfaces/RouteMap.md +4 -4
- package/api/@xmachines/play-router/interfaces/{BaseRouteMapping.md → RouteMapping.md} +5 -5
- package/api/@xmachines/play-router/interfaces/RouteMatch.md +5 -5
- package/api/@xmachines/play-router/interfaces/RouteNode.md +12 -12
- 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 +65 -0
- package/api/@xmachines/play-router/type-aliases/MachineGraph.md +1 -1
- package/api/@xmachines/play-router/type-aliases/RouteMetadata.md +1 -1
- package/api/@xmachines/play-signals/functions/watchSignal.md +1 -1
- package/api/@xmachines/play-signals/interfaces/ComputedOptions.md +2 -2
- package/api/@xmachines/play-signals/interfaces/SignalComputed.md +2 -2
- package/api/@xmachines/play-signals/interfaces/SignalOptions.md +2 -2
- package/api/@xmachines/play-signals/interfaces/SignalState.md +3 -3
- package/api/@xmachines/play-signals/interfaces/SignalWatcher.md +4 -4
- package/api/@xmachines/play-signals/namespaces/Signal/classes/Computed.md +6 -0
- package/api/@xmachines/play-signals/namespaces/Signal/classes/State.md +8 -0
- package/api/@xmachines/play-signals/namespaces/Signal/interfaces/Options.md +2 -0
- package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/classes/Watcher.md +10 -0
- package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/currentComputed.md +2 -0
- package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/hasSinks.md +2 -0
- package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/hasSources.md +2 -0
- package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/introspectSinks.md +2 -0
- package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/introspectSources.md +2 -0
- package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/untrack.md +2 -0
- package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/variables/unwatched.md +2 -0
- package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/variables/watched.md +2 -0
- package/api/@xmachines/play-signals/namespaces/Signal/variables/isComputed.md +2 -0
- package/api/@xmachines/play-signals/namespaces/Signal/variables/isState.md +2 -0
- package/api/@xmachines/play-signals/namespaces/Signal/variables/isWatcher.md +2 -0
- package/api/@xmachines/play-signals/type-aliases/WatcherNotify.md +1 -1
- package/api/@xmachines/play-solid/README.md +4 -4
- package/api/@xmachines/play-solid/functions/defineRegistry.md +2 -0
- package/api/@xmachines/play-solid/functions/useActor.md +1 -1
- package/api/@xmachines/play-solid/functions/useStateBinding.md +2 -0
- package/api/@xmachines/play-solid/interfaces/ComponentContext.md +2 -0
- package/api/@xmachines/play-solid/interfaces/PlayRendererProps.md +7 -7
- package/api/@xmachines/play-solid/type-aliases/ComponentFn.md +2 -0
- package/api/@xmachines/play-solid/type-aliases/PlayActor.md +1 -1
- package/api/@xmachines/play-solid/variables/PlayRenderer.md +1 -1
- package/api/@xmachines/play-solid-router/README.md +2 -2
- package/api/@xmachines/play-solid-router/classes/RouteMap.md +13 -26
- package/api/@xmachines/play-solid-router/classes/SolidRouterBridge.md +121 -46
- package/api/@xmachines/play-solid-router/functions/PlayRouterProvider.md +1 -1
- package/api/@xmachines/play-solid-router/functions/createRouteMap.md +15 -9
- package/api/@xmachines/play-solid-router/interfaces/AbstractActor.md +47 -92
- package/api/@xmachines/play-solid-router/interfaces/PlayRouteEvent.md +8 -8
- package/api/@xmachines/play-solid-router/interfaces/PlayRouterProviderProps.md +5 -5
- package/api/@xmachines/play-solid-router/interfaces/RouteMapping.md +19 -6
- package/api/@xmachines/play-solid-router/interfaces/RouterBridge.md +3 -3
- package/api/@xmachines/play-solid-router/type-aliases/RoutableActor.md +1 -1
- package/api/@xmachines/play-solid-router/type-aliases/SolidRouterHooks.md +21 -18
- package/api/@xmachines/play-solid-router-demo/README.md +25 -28
- package/api/@xmachines/play-svelte/README.md +28 -0
- package/api/@xmachines/play-svelte/functions/defineRegistry.md +2 -0
- package/api/@xmachines/play-svelte/interfaces/BaseComponentProps.md +2 -0
- package/api/@xmachines/play-svelte/interfaces/ComponentContext.md +2 -0
- package/api/@xmachines/play-svelte/interfaces/PlayRendererProps.md +9 -9
- package/api/@xmachines/play-svelte/type-aliases/ComponentFn.md +2 -0
- package/api/@xmachines/play-svelte/type-aliases/PlayRenderer.md +2 -0
- package/api/@xmachines/play-svelte/variables/PlayRenderer.md +2 -0
- package/api/@xmachines/play-svelte-spa-router/README.md +1 -0
- package/api/@xmachines/play-svelte-spa-router/classes/RouteMap.md +13 -26
- package/api/@xmachines/play-svelte-spa-router/functions/connectRouter.md +14 -1
- package/api/@xmachines/play-svelte-spa-router/functions/createRouteMap.md +23 -4
- package/api/@xmachines/play-svelte-spa-router/interfaces/ConnectRouterOptions.md +6 -5
- package/api/@xmachines/play-svelte-spa-router/interfaces/PlayRouteEvent.md +10 -10
- package/api/@xmachines/play-svelte-spa-router/interfaces/RouteMapping.md +20 -5
- package/api/@xmachines/play-svelte-spa-router/interfaces/RouterBridge.md +3 -3
- package/api/@xmachines/play-svelte-spa-router/interfaces/WindowLike.md +65 -0
- package/api/@xmachines/play-svelte-spa-router/type-aliases/RoutableActor.md +1 -1
- package/api/@xmachines/play-svelte-spa-router-demo/README.md +119 -12
- package/api/@xmachines/play-sveltekit-router/README.md +2 -1
- package/api/@xmachines/play-sveltekit-router/classes/RouteMap.md +46 -24
- package/api/@xmachines/play-sveltekit-router/functions/connectRouter.md +14 -1
- package/api/@xmachines/play-sveltekit-router/functions/createRouteMap.md +23 -4
- package/api/@xmachines/play-sveltekit-router/interfaces/ConnectRouterOptions.md +6 -5
- package/api/@xmachines/play-sveltekit-router/interfaces/LocationLike.md +27 -0
- package/api/@xmachines/play-sveltekit-router/interfaces/PlayRouteEvent.md +10 -10
- package/api/@xmachines/play-sveltekit-router/interfaces/RouteMapping.md +20 -5
- 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-sveltekit-router-demo/README.md +120 -12
- package/api/@xmachines/play-tanstack-react-router/README.md +5 -3
- package/api/@xmachines/play-tanstack-react-router/classes/RouteMap.md +17 -33
- package/api/@xmachines/play-tanstack-react-router/classes/TanStackReactRouterBridge.md +93 -25
- package/api/@xmachines/play-tanstack-react-router/functions/PlayRouterProvider.md +1 -1
- package/api/@xmachines/play-tanstack-react-router/functions/createRouteMap.md +1 -1
- package/api/@xmachines/play-tanstack-react-router/functions/createRouteMapFromTree.md +21 -11
- package/api/@xmachines/play-tanstack-react-router/functions/extractMachineRoutes.md +1 -1
- package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouteEvent.md +8 -8
- package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouterProviderProps.md +5 -5
- package/api/@xmachines/play-tanstack-react-router/interfaces/RouteMapping.md +18 -8
- package/api/@xmachines/play-tanstack-react-router/interfaces/RouteNavigateEvent.md +3 -3
- package/api/@xmachines/play-tanstack-react-router/interfaces/RouterBridge.md +3 -3
- package/api/@xmachines/play-tanstack-react-router/type-aliases/TanStackRouterInstance.md +1 -1
- package/api/@xmachines/play-tanstack-react-router/type-aliases/TanStackRouterLike.md +13 -19
- package/api/@xmachines/play-tanstack-react-router-demo/README.md +23 -29
- package/api/@xmachines/play-tanstack-solid-router/README.md +8 -8
- package/api/@xmachines/play-tanstack-solid-router/classes/RouteMap.md +13 -26
- package/api/@xmachines/play-tanstack-solid-router/classes/SolidRouterBridge.md +101 -36
- package/api/@xmachines/play-tanstack-solid-router/functions/PlayRouterProvider.md +1 -1
- package/api/@xmachines/play-tanstack-solid-router/functions/createRouteMap.md +15 -9
- package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayRouteEvent.md +8 -8
- package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayRouterProviderProps.md +5 -5
- package/api/@xmachines/play-tanstack-solid-router/interfaces/RouteMapping.md +13 -9
- package/api/@xmachines/play-tanstack-solid-router/interfaces/RouterBridge.md +3 -3
- package/api/@xmachines/play-tanstack-solid-router/type-aliases/RoutableActor.md +1 -1
- package/api/@xmachines/play-tanstack-solid-router/type-aliases/TanStackRouterInstance.md +1 -1
- package/api/@xmachines/play-tanstack-solid-router/type-aliases/TanStackRouterLike.md +23 -24
- package/api/@xmachines/play-tanstack-solid-router-demo/README.md +25 -26
- package/api/@xmachines/play-vue/README.md +4 -4
- 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/useStateBinding.md +2 -0
- package/api/@xmachines/play-vue/interfaces/ComponentContext.md +2 -0
- package/api/@xmachines/play-vue/interfaces/PlayRendererProps.md +5 -5
- package/api/@xmachines/play-vue/type-aliases/ComponentEntry.md +1 -1
- package/api/@xmachines/play-vue/type-aliases/ComponentFn.md +2 -0
- package/api/@xmachines/play-vue/type-aliases/ComponentsMap.md +1 -1
- package/api/@xmachines/play-vue/type-aliases/DefineRegistryOptions.md +4 -3
- package/api/@xmachines/play-vue/type-aliases/PlayActor.md +1 -1
- package/api/@xmachines/play-vue/variables/PlayRenderer.md +1 -1
- package/api/@xmachines/play-vue-router/README.md +2 -2
- package/api/@xmachines/play-vue-router/classes/RouteMap.md +18 -108
- package/api/@xmachines/play-vue-router/classes/VueBaseRouteMap.md +44 -104
- package/api/@xmachines/play-vue-router/classes/VueRouterBridge.md +127 -62
- package/api/@xmachines/play-vue-router/functions/createRouteMap.md +1 -1
- package/api/@xmachines/play-vue-router/interfaces/PlayRouteEvent.md +8 -8
- package/api/@xmachines/play-vue-router/interfaces/RouteMapping.md +19 -7
- package/api/@xmachines/play-vue-router/interfaces/RouterBridge.md +3 -3
- package/api/@xmachines/play-vue-router/type-aliases/RoutableActor.md +1 -1
- package/api/@xmachines/play-vue-router/variables/PlayRouterProvider.md +1 -1
- package/api/@xmachines/play-vue-router-demo/README.md +47 -40
- package/api/@xmachines/play-xstate/README.md +15 -15
- package/api/@xmachines/play-xstate/classes/PlayerActor.md +46 -30
- package/api/@xmachines/play-xstate/functions/buildRouteUrl.md +20 -15
- 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 +2 -2
- 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 +14 -12
- package/api/@xmachines/play-xstate/type-aliases/ComposedGuard.md +1 -1
- package/api/@xmachines/play-xstate/type-aliases/Guard.md +1 -1
- package/api/@xmachines/play-xstate/type-aliases/GuardArray.md +1 -1
- package/api/@xmachines/play-xstate/type-aliases/PlayerFactory.md +1 -1
- package/api/@xmachines/play-xstate/type-aliases/RouteMachineConfig.md +4 -4
- package/api/@xmachines/play-xstate/type-aliases/RouteStateNode.md +4 -4
- package/api/@xmachines/shared/functions/defineXmVitestConfig.md +3 -7
- package/api/@xmachines/shared/functions/xmAliases.md +1 -1
- package/api/README.md +4 -4
- package/api/llms.txt +3 -3
- package/examples/README.md +50 -32
- package/examples/basic-state-machine.md +75 -31
- package/examples/form-validation.md +199 -127
- package/examples/multi-router-integration.md +312 -230
- package/examples/routing-patterns.md +243 -187
- package/examples/traffic-light.md +114 -65
- package/guides/README.md +29 -15
- package/guides/getting-started.md +224 -144
- package/guides/installation.md +153 -213
- package/package.json +2 -2
- package/api/@xmachines/play-tanstack-react-router/functions/extractParams.md +0 -38
- package/api/@xmachines/play-tanstack-react-router/functions/extractQueryParams.md +0 -33
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
[Documentation](../../../README.md) / [@xmachines/play-dom-router](../README.md) / RouteMapLike
|
|
2
|
+
|
|
3
|
+
# Interface: RouteMapLike
|
|
4
|
+
|
|
5
|
+
Defined in: [play-dom-router/src/connect-router.ts:12](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.27/packages/play-dom-router/src/connect-router.ts#L12)
|
|
6
|
+
|
|
7
|
+
Structural route-map interface accepted by [connectRouter](../functions/connectRouter.md).
|
|
8
|
+
|
|
9
|
+
Any object with these two methods satisfies the constraint — including
|
|
10
|
+
`BaseRouteMap` instances, subclasses, and plain test objects.
|
|
11
|
+
|
|
12
|
+
## Methods
|
|
13
|
+
|
|
14
|
+
### getPathByStateId()
|
|
15
|
+
|
|
16
|
+
```ts
|
|
17
|
+
getPathByStateId(id): string | null | undefined;
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
Defined in: [play-dom-router/src/connect-router.ts:14](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.27/packages/play-dom-router/src/connect-router.ts#L14)
|
|
21
|
+
|
|
22
|
+
#### Parameters
|
|
23
|
+
|
|
24
|
+
| Parameter | Type |
|
|
25
|
+
| --------- | -------- |
|
|
26
|
+
| `id` | `string` |
|
|
27
|
+
|
|
28
|
+
#### Returns
|
|
29
|
+
|
|
30
|
+
`string` \| `null` \| `undefined`
|
|
31
|
+
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
### getStateIdByPath()
|
|
35
|
+
|
|
36
|
+
```ts
|
|
37
|
+
getStateIdByPath(path): string | null | undefined;
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
Defined in: [play-dom-router/src/connect-router.ts:13](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.27/packages/play-dom-router/src/connect-router.ts#L13)
|
|
41
|
+
|
|
42
|
+
#### Parameters
|
|
43
|
+
|
|
44
|
+
| Parameter | Type |
|
|
45
|
+
| --------- | -------- |
|
|
46
|
+
| `path` | `string` |
|
|
47
|
+
|
|
48
|
+
#### Returns
|
|
49
|
+
|
|
50
|
+
`string` \| `null` \| `undefined`
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
[Documentation](../../../README.md) / [@xmachines/play-dom-router](../README.md) / RouteMapping
|
|
2
|
+
|
|
3
|
+
# Interface: RouteMapping
|
|
4
|
+
|
|
5
|
+
Defined in: [play-router/src/base-route-map.ts:57](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.27/packages/play-router/src/base-route-map.ts#L57)
|
|
6
|
+
|
|
7
|
+
A single state ID ↔ path mapping entry.
|
|
8
|
+
|
|
9
|
+
Both fields are `readonly` — mappings are immutable once passed to `BaseRouteMap`.
|
|
10
|
+
Adapter packages re-export a structurally compatible `RouteMapping` type under
|
|
11
|
+
their own name. This type is published from `@xmachines/play-router` as
|
|
12
|
+
`BaseRouteMapping` to avoid name collisions with those adapter-local types.
|
|
13
|
+
|
|
14
|
+
## Example
|
|
15
|
+
|
|
16
|
+
```typescript
|
|
17
|
+
const mapping: BaseRouteMapping = { stateId: "home", path: "/" };
|
|
18
|
+
const paramMapping: BaseRouteMapping = { stateId: "profile", path: "/profile/:userId" };
|
|
19
|
+
const optionalMapping: BaseRouteMapping = { stateId: "settings", path: "/settings/:section?" };
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## Properties
|
|
23
|
+
|
|
24
|
+
| Property | Modifier | Type | Description | Defined in |
|
|
25
|
+
| --------------------------------------- | ---------- | -------- | ----------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
26
|
+
| <a id="property-path"></a> `path` | `readonly` | `string` | URL path pattern (e.g., `"/"`, `"/profile/:userId"`, `"/settings/:section?"`) | [play-router/src/base-route-map.ts:61](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.27/packages/play-router/src/base-route-map.ts#L61) |
|
|
27
|
+
| <a id="property-stateid"></a> `stateId` | `readonly` | `string` | State machine state ID (e.g., `"home"`, `"#profile"`) | [play-router/src/base-route-map.ts:59](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.27/packages/play-router/src/base-route-map.ts#L59) |
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
[Documentation](../../../README.md) / [@xmachines/play-dom-router](../README.md) / RouterBridge
|
|
2
|
+
|
|
3
|
+
# Interface: RouterBridge
|
|
4
|
+
|
|
5
|
+
Defined in: [play-router/src/types.ts:271](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.27/packages/play-router/src/types.ts#L271)
|
|
6
|
+
|
|
7
|
+
RouterBridge interface for runtime infrastructure adapters
|
|
8
|
+
|
|
9
|
+
Defines the lifecycle connection between Infrastructure (e.g., TanStack Router) and
|
|
10
|
+
the Actor. Infrastructure "bridges" to the Actor by observing its signals and
|
|
11
|
+
managing its own lifecycle accordingly.
|
|
12
|
+
|
|
13
|
+
**Architectural Context:** Implements **Passive Infrastructure (INV-04)** by establishing
|
|
14
|
+
a unidirectional observation pattern. Infrastructure connects to observe Actor signals
|
|
15
|
+
(currentRoute, currentView, state) and reflects changes without making state decisions.
|
|
16
|
+
|
|
17
|
+
## Example
|
|
18
|
+
|
|
19
|
+
TanStack Router bridge implementation
|
|
20
|
+
|
|
21
|
+
```typescript
|
|
22
|
+
import type { RouterBridge } from "@xmachines/play-router";
|
|
23
|
+
import { Signal } from "@xmachines/play-signals";
|
|
24
|
+
|
|
25
|
+
class TanStackRouterBridge implements RouterBridge {
|
|
26
|
+
private watcher: Signal.Watcher | null = null;
|
|
27
|
+
|
|
28
|
+
async connect(): Promise<void> {
|
|
29
|
+
// Start observing actor.currentRoute signal
|
|
30
|
+
this.watcher = new Signal.subtle.Watcher(() => {
|
|
31
|
+
const route = actor.currentRoute.get();
|
|
32
|
+
if (route) router.navigate(route);
|
|
33
|
+
});
|
|
34
|
+
this.watcher.watch(actor.currentRoute);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
async disconnect(): Promise<void> {
|
|
38
|
+
// Stop observing, cleanup watchers
|
|
39
|
+
this.watcher?.unwatch(actor.currentRoute);
|
|
40
|
+
this.watcher = null;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
## See
|
|
46
|
+
|
|
47
|
+
[Play RFC](../../../../rfc/play.md) - Invariant INV-04
|
|
48
|
+
|
|
49
|
+
## Methods
|
|
50
|
+
|
|
51
|
+
### connect()
|
|
52
|
+
|
|
53
|
+
```ts
|
|
54
|
+
connect(): void | Promise<void>;
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
Defined in: [play-router/src/types.ts:287](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.27/packages/play-router/src/types.ts#L287)
|
|
58
|
+
|
|
59
|
+
Connect the router bridge to the Actor
|
|
60
|
+
|
|
61
|
+
Called when Infrastructure should begin observing Actor signals and
|
|
62
|
+
synchronizing its state (e.g., browser URL) with Actor state.
|
|
63
|
+
|
|
64
|
+
#### Returns
|
|
65
|
+
|
|
66
|
+
`void` \| `Promise`\<`void`\>
|
|
67
|
+
|
|
68
|
+
Promise that resolves when connection is established, or void for synchronous connection
|
|
69
|
+
|
|
70
|
+
#### Example
|
|
71
|
+
|
|
72
|
+
```typescript
|
|
73
|
+
const bridge: RouterBridge = createBridge(actor, router);
|
|
74
|
+
await bridge.connect();
|
|
75
|
+
// Bridge now observing actor.currentRoute signal
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
---
|
|
79
|
+
|
|
80
|
+
### disconnect()
|
|
81
|
+
|
|
82
|
+
```ts
|
|
83
|
+
disconnect(): void | Promise<void>;
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
Defined in: [play-router/src/types.ts:303](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.27/packages/play-router/src/types.ts#L303)
|
|
87
|
+
|
|
88
|
+
Disconnect the router bridge from the Actor
|
|
89
|
+
|
|
90
|
+
Called when Infrastructure should stop observing and clean up resources
|
|
91
|
+
(e.g., signal watchers, event listeners).
|
|
92
|
+
|
|
93
|
+
#### Returns
|
|
94
|
+
|
|
95
|
+
`void` \| `Promise`\<`void`\>
|
|
96
|
+
|
|
97
|
+
Promise that resolves when disconnection is complete, or void for synchronous disconnection
|
|
98
|
+
|
|
99
|
+
#### Example
|
|
100
|
+
|
|
101
|
+
```typescript
|
|
102
|
+
await bridge.disconnect();
|
|
103
|
+
// Bridge stopped observing, resources cleaned up
|
|
104
|
+
```
|
|
@@ -2,14 +2,14 @@
|
|
|
2
2
|
|
|
3
3
|
# Interface: VanillaRouter
|
|
4
4
|
|
|
5
|
-
Defined in: [create-router.ts:4](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
5
|
+
Defined in: [play-dom-router/src/create-router.ts:4](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.27/packages/play-dom-router/src/create-router.ts#L4)
|
|
6
6
|
|
|
7
7
|
## Properties
|
|
8
8
|
|
|
9
|
-
| Property | Modifier | Type | Description | Defined in
|
|
10
|
-
| ------------------------------------------- | ---------- | -------------------------------------------------------- | ------------------------------------ |
|
|
11
|
-
| <a id="property-history"></a> `history` | `readonly` | [`BrowserHistory`](BrowserHistory.md) | History instance | [create-router.ts:8](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
12
|
-
| <a id="property-routetree"></a> `routeTree` | `readonly` | [`RouteTree`](../../play-router/interfaces/RouteTree.md) | Route tree (for structure reference) | [create-router.ts:13](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
9
|
+
| Property | Modifier | Type | Description | Defined in |
|
|
10
|
+
| ------------------------------------------- | ---------- | -------------------------------------------------------- | ------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
11
|
+
| <a id="property-history"></a> `history` | `readonly` | [`BrowserHistory`](BrowserHistory.md) | History instance | [play-dom-router/src/create-router.ts:8](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.27/packages/play-dom-router/src/create-router.ts#L8) |
|
|
12
|
+
| <a id="property-routetree"></a> `routeTree` | `readonly` | [`RouteTree`](../../play-router/interfaces/RouteTree.md) | Route tree (for structure reference) | [play-dom-router/src/create-router.ts:13](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.27/packages/play-dom-router/src/create-router.ts#L13) |
|
|
13
13
|
|
|
14
14
|
## Methods
|
|
15
15
|
|
|
@@ -19,7 +19,7 @@ Defined in: [create-router.ts:4](https://gitlab.com/xmachin-es/xmachines-js/-/bl
|
|
|
19
19
|
destroy(): void;
|
|
20
20
|
```
|
|
21
21
|
|
|
22
|
-
Defined in: [create-router.ts:18](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
22
|
+
Defined in: [play-dom-router/src/create-router.ts:18](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.27/packages/play-dom-router/src/create-router.ts#L18)
|
|
23
23
|
|
|
24
24
|
Cleanup
|
|
25
25
|
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
[Documentation](../../../README.md) / [@xmachines/play-dom-router](../README.md) / RoutableActor
|
|
2
|
+
|
|
3
|
+
# Type Alias: RoutableActor
|
|
4
|
+
|
|
5
|
+
```ts
|
|
6
|
+
type RoutableActor = AbstractActor<AnyActorLogic> & Routable & Viewable;
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
Defined in: [play-dom-router/src/types.ts:9](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.27/packages/play-dom-router/src/types.ts#L9)
|
|
@@ -1,19 +1,16 @@
|
|
|
1
1
|
[Documentation](../../README.md) / @xmachines/play-dom-router-demo
|
|
2
2
|
|
|
3
|
-
# Vanilla
|
|
3
|
+
# Vanilla DOM Router Demo
|
|
4
4
|
|
|
5
|
-
Pure
|
|
5
|
+
Pure TypeScript integration demo for `@xmachines/play-dom-router` — actor-authoritative routing with the Browser History API and no framework.
|
|
6
6
|
|
|
7
7
|
## What This Demonstrates
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
-
|
|
14
|
-
- **Browser History API**: Direct integration with `window.history`
|
|
15
|
-
- **Same Auth Machine**: Identical authentication logic as React/Vue/SolidJS demos
|
|
16
|
-
- **Reference Implementation**: This demo serves as the visual reference for all framework demos
|
|
9
|
+
- Shared auth machine reused without framework-specific business logic
|
|
10
|
+
- `connectRouter` + `createBrowserHistory` wiring actor ↔ browser History API
|
|
11
|
+
- Shell-driven DOM rendering via `connectRenderer` with actor-authoritative navigation
|
|
12
|
+
- Manual TC39 Signal watcher lifecycle — the mechanism that framework adapters abstract
|
|
13
|
+
- Non-browser invariant tests plus browser E2E coverage
|
|
17
14
|
|
|
18
15
|
## Running the Demo
|
|
19
16
|
|
|
@@ -24,21 +21,21 @@ npm install
|
|
|
24
21
|
npm run dev -w packages/play-dom-router/examples/demo
|
|
25
22
|
```
|
|
26
23
|
|
|
27
|
-
|
|
24
|
+
Then open `http://localhost:5174`.
|
|
28
25
|
|
|
29
26
|
## Step-by-Step Code Flow
|
|
30
27
|
|
|
31
|
-
Use this order to understand the
|
|
28
|
+
Use this order to understand the implementation:
|
|
32
29
|
|
|
33
|
-
1. `src/main.ts` creates the actor from the shared machine
|
|
34
|
-
2. `src/router.ts` extracts
|
|
35
|
-
3. `src/shell.ts`
|
|
36
|
-
4. Navigation and
|
|
37
|
-
5. Browser tests in `test/browser/` validate startup rendering and the auth route flow
|
|
30
|
+
1. `src/main.ts` creates the actor from the shared machine and starts it.
|
|
31
|
+
2. `initRouter(actor)` from `src/router.ts` extracts route metadata, creates a browser history wrapper, instantiates a router, and calls `connectRouter` to wire bidirectional actor ↔ URL sync.
|
|
32
|
+
3. `initShell(actor, app)` from `src/shell.ts` builds the DOM scaffold and sets up the `connectRenderer` loop for view switching.
|
|
33
|
+
4. Navigation buttons and links dispatch `play.route`, `auth.login`, and `auth.logout` events directly to the actor — no URL mutations from the shell.
|
|
34
|
+
5. Browser tests in `test/browser/` validate startup rendering and the full auth route flow.
|
|
38
35
|
|
|
39
36
|
```ts
|
|
40
37
|
// src/main.ts (shape)
|
|
41
|
-
const actor =
|
|
38
|
+
const actor = createPlayer();
|
|
42
39
|
actor.start();
|
|
43
40
|
|
|
44
41
|
const cleanupRouter = initRouter(actor);
|
|
@@ -50,45 +47,52 @@ if (app) {
|
|
|
50
47
|
|
|
51
48
|
```ts
|
|
52
49
|
// src/router.ts (shape)
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
const
|
|
57
|
-
const
|
|
58
|
-
const
|
|
59
|
-
|
|
60
|
-
|
|
50
|
+
export function initRouter(actor) {
|
|
51
|
+
const routeTree = extractMachineRoutes(authMachine);
|
|
52
|
+
const routeMap = createRouteMap(authMachine);
|
|
53
|
+
const history = createBrowserHistory({ window });
|
|
54
|
+
const router = createRouter({ routeTree, history });
|
|
55
|
+
const disconnect = connectRouter({ actor, router, routeMap });
|
|
56
|
+
|
|
57
|
+
return () => {
|
|
58
|
+
disconnect();
|
|
59
|
+
router.destroy();
|
|
60
|
+
};
|
|
61
|
+
}
|
|
61
62
|
```
|
|
62
63
|
|
|
63
64
|
```ts
|
|
64
65
|
// src/shell.ts (shape)
|
|
65
|
-
|
|
66
|
-
|
|
66
|
+
const disconnectRenderer = connectRenderer({ actor, registry, container: viewContent });
|
|
67
|
+
|
|
68
|
+
const unwatchState = watchSignal(actor.state, () => {
|
|
69
|
+
navLogin.hidden = snapshot.context.isAuthenticated;
|
|
70
|
+
navLogout.hidden = !snapshot.context.isAuthenticated;
|
|
67
71
|
});
|
|
68
72
|
|
|
69
|
-
|
|
70
|
-
logoutButton.onclick = () => actor.send({ type: "auth.logout" });
|
|
73
|
+
navLogin.addEventListener("click", () => actor.send({ type: "play.route", to: "#login" }));
|
|
71
74
|
```
|
|
72
75
|
|
|
73
76
|
## Key Files
|
|
74
77
|
|
|
75
78
|
- `src/main.ts` - actor startup, router initialization, and shell bootstrap
|
|
76
79
|
- `src/router.ts` - `createBrowserHistory`, `createRouter`, and `connectRouter` wiring
|
|
77
|
-
- `src/shell.ts` - DOM
|
|
80
|
+
- `src/shell.ts` - DOM scaffold, `DomRegistry` construction, `connectRenderer`, and reactive watcher loop
|
|
81
|
+
- `test/library-pattern.test.ts` - architecture boundary and invariant assertions
|
|
78
82
|
- `test/browser/startup.browser.test.ts` - startup rendering assertion for public home + login action
|
|
79
|
-
- `test/browser/auth-flow.browser.test.ts` - login
|
|
83
|
+
- `test/browser/auth-flow.browser.test.ts` - login → dashboard → profile → logout browser flow
|
|
80
84
|
|
|
81
85
|
## State Machine & Architecture Details
|
|
82
86
|
|
|
83
87
|
The demo utilizes XMachines architectural invariants at the lowest level:
|
|
84
88
|
|
|
85
|
-
1. **Actor Authority:** Intercepting browser `popstate` events or
|
|
86
|
-
2. **Passive Infrastructure:** The router simply updates `window.history` and the DOM solely renders HTML
|
|
87
|
-
3. **Signal-Only Reactivity:** The integration registers
|
|
89
|
+
1. **Actor Authority:** Intercepting browser `popstate` events or navigation button clicks dispatches a `play.route` event to the actor. The actor processes the request against the current state, ensuring any auth logic is correctly applied.
|
|
90
|
+
2. **Passive Infrastructure:** The router simply updates `window.history` and the DOM solely renders HTML based on what `actor.currentView` yields. Neither holds business state.
|
|
91
|
+
3. **Signal-Only Reactivity:** The integration registers `watchSignal` observers that trigger DOM reconciliation, illustrating the underlying mechanism that framework adapters abstract.
|
|
88
92
|
|
|
89
93
|
## Watcher Lifecycle and Cleanup Contract
|
|
90
94
|
|
|
91
|
-
Even in the vanilla demo, watcher handling follows the
|
|
95
|
+
Even in the vanilla demo, watcher handling follows the canonical lifecycle:
|
|
92
96
|
|
|
93
97
|
1. `notify`
|
|
94
98
|
2. `queueMicrotask`
|
|
@@ -96,21 +100,11 @@ Even in the vanilla demo, watcher handling follows the same canonical lifecycle:
|
|
|
96
100
|
4. Read actor signals and project DOM state
|
|
97
101
|
5. Re-arm with `watch()`/`watch(...signals)`
|
|
98
102
|
|
|
99
|
-
Watcher notifications are one-shot, so re-arm is mandatory. Router/shell teardown must explicitly call cleanup (`disconnect`/`unwatch`) and not rely on GC-only behavior. In vanilla
|
|
103
|
+
Watcher notifications are one-shot, so re-arm is mandatory. Router/shell teardown must explicitly call cleanup (`disconnect`/`unwatch`) and not rely on GC-only behavior. In vanilla TypeScript, this means retaining cleanup functions and calling them on `beforeunload` or during hot-module replacement.
|
|
100
104
|
|
|
101
105
|
## Adapter Boundaries
|
|
102
106
|
|
|
103
|
-
`connectRouter` and browser-history wiring (from `@xmachines/play-dom-router`) are passive infrastructure. Actor logic remains authoritative for route validity, and shared synchronization policy stays in `RouterBridgeBase` for framework bridges.
|
|
104
|
-
|
|
105
|
-
## Why Vanilla?
|
|
106
|
-
|
|
107
|
-
Vanilla JavaScript is the foundation:
|
|
108
|
-
|
|
109
|
-
- **Universal Patterns**: If it works in vanilla, frameworks are just convenience layers
|
|
110
|
-
- **No Magic**: Every interaction is explicit - great for learning
|
|
111
|
-
- **Performance Baseline**: Shows the minimal overhead of Play Architecture
|
|
112
|
-
|
|
113
|
-
This demo proves frameworks aren't required for Play Architecture to work.
|
|
107
|
+
`connectRouter` and browser-history wiring (from `@xmachines/play-dom-router`) are passive infrastructure. Actor logic remains authoritative for route validity, and shared synchronization policy stays in `RouterBridgeBase` for framework bridges. This demo proves frameworks are not required for Play Architecture to work.
|
|
114
108
|
|
|
115
109
|
## Available Scripts
|
|
116
110
|
|
|
@@ -126,7 +120,7 @@ These commands are defined in `package.json`:
|
|
|
126
120
|
|
|
127
121
|
## Verification
|
|
128
122
|
|
|
129
|
-
|
|
123
|
+
Use these checks to validate README claims against the current demo implementation:
|
|
130
124
|
|
|
131
125
|
```bash
|
|
132
126
|
npm run test -w packages/play-dom-router/examples/demo
|
|
@@ -137,5 +131,6 @@ Expected result: tests pass, including startup rendering and the full browser au
|
|
|
137
131
|
|
|
138
132
|
## Learn More
|
|
139
133
|
|
|
140
|
-
-
|
|
141
|
-
-
|
|
134
|
+
- [Play DOM Router package README](../play-dom-router/README.md)
|
|
135
|
+
- [Play DOM demo README](../../../examples/README.md)
|
|
136
|
+
- [Play Router package README](../play-router/README.md)
|
|
@@ -94,8 +94,8 @@ const machine = setup({
|
|
|
94
94
|
context: {} as {
|
|
95
95
|
isAuthenticated: boolean;
|
|
96
96
|
username: string | null;
|
|
97
|
-
|
|
98
|
-
|
|
97
|
+
params: Record<string, string>;
|
|
98
|
+
query: Record<string, string>;
|
|
99
99
|
},
|
|
100
100
|
events: {} as
|
|
101
101
|
| { type: "auth.login"; username: string }
|
|
@@ -106,7 +106,7 @@ const machine = setup({
|
|
|
106
106
|
formatPlayRouteTransitions({
|
|
107
107
|
id: "app",
|
|
108
108
|
initial: "login",
|
|
109
|
-
context: { isAuthenticated: false, username: null,
|
|
109
|
+
context: { isAuthenticated: false, username: null, params: {}, query: {} },
|
|
110
110
|
states: {
|
|
111
111
|
login: {
|
|
112
112
|
id: "login",
|
|
@@ -303,7 +303,7 @@ When using `formatPlayRouteTransitions`, URL path parameters flow automatically
|
|
|
303
303
|
|
|
304
304
|
```ts
|
|
305
305
|
// spec: { section: undefined, user: "alice" }
|
|
306
|
-
// After play.route to /settings/profile → context.
|
|
306
|
+
// After play.route to /settings/profile → context.params = { section: "profile" }
|
|
307
307
|
// Component receives: { section: "profile", user: "alice" }
|
|
308
308
|
```
|
|
309
309
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
# Class: PlayErrorBoundary
|
|
4
4
|
|
|
5
|
-
Defined in: [packages/play-react/src/PlayErrorBoundary.tsx:53](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
5
|
+
Defined in: [packages/play-react/src/PlayErrorBoundary.tsx:53](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.27/packages/play-react/src/PlayErrorBoundary.tsx#L53)
|
|
6
6
|
|
|
7
7
|
React class component error boundary for catching catalog component render errors.
|
|
8
8
|
|
|
@@ -36,7 +36,7 @@ Per CONS-14: Class component pattern works with all React versions (18 and 19).
|
|
|
36
36
|
new PlayErrorBoundary(props): PlayErrorBoundary;
|
|
37
37
|
```
|
|
38
38
|
|
|
39
|
-
Defined in: [packages/play-react/src/PlayErrorBoundary.tsx:57](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
39
|
+
Defined in: [packages/play-react/src/PlayErrorBoundary.tsx:57](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.27/packages/play-react/src/PlayErrorBoundary.tsx#L57)
|
|
40
40
|
|
|
41
41
|
#### Parameters
|
|
42
42
|
|
|
@@ -75,7 +75,7 @@ React.Component<
|
|
|
75
75
|
componentDidCatch(error, info): void;
|
|
76
76
|
```
|
|
77
77
|
|
|
78
|
-
Defined in: [packages/play-react/src/PlayErrorBoundary.tsx:66](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
78
|
+
Defined in: [packages/play-react/src/PlayErrorBoundary.tsx:66](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.27/packages/play-react/src/PlayErrorBoundary.tsx#L66)
|
|
79
79
|
|
|
80
80
|
Catches exceptions generated in descendant components. Unhandled exceptions will cause
|
|
81
81
|
the entire component tree to unmount.
|
|
@@ -105,6 +105,8 @@ React.Component.componentDidCatch;
|
|
|
105
105
|
optional componentDidMount(): void;
|
|
106
106
|
```
|
|
107
107
|
|
|
108
|
+
Defined in: `@types/react`
|
|
109
|
+
|
|
108
110
|
Called immediately after a component is mounted. Setting state here will trigger re-rendering.
|
|
109
111
|
|
|
110
112
|
#### Returns
|
|
@@ -128,6 +130,8 @@ optional componentDidUpdate(
|
|
|
128
130
|
snapshot?): void;
|
|
129
131
|
```
|
|
130
132
|
|
|
133
|
+
Defined in: `@types/react`
|
|
134
|
+
|
|
131
135
|
Called immediately after updating occurs. Not called for the initial render.
|
|
132
136
|
|
|
133
137
|
The snapshot is only present if [getSnapshotBeforeUpdate](#getsnapshotbeforeupdate) is present and returns non-null.
|
|
@@ -158,6 +162,8 @@ React.Component.componentDidUpdate;
|
|
|
158
162
|
optional componentWillMount(): void;
|
|
159
163
|
```
|
|
160
164
|
|
|
165
|
+
Defined in: `@types/react`
|
|
166
|
+
|
|
161
167
|
Called immediately before mounting occurs, and before [Component.render](https://www.jsdocs.io/package/@types/react#Component.render).
|
|
162
168
|
Avoid introducing any side-effects or subscriptions in this method.
|
|
163
169
|
|
|
@@ -192,6 +198,8 @@ React.Component.componentWillMount;
|
|
|
192
198
|
optional componentWillReceiveProps(nextProps, nextContext): void;
|
|
193
199
|
```
|
|
194
200
|
|
|
201
|
+
Defined in: `@types/react`
|
|
202
|
+
|
|
195
203
|
Called when the component may be receiving new props.
|
|
196
204
|
React may call this even if props have not changed, so be sure to compare new and existing
|
|
197
205
|
props if you only want to handle changes.
|
|
@@ -236,6 +244,8 @@ React.Component.componentWillReceiveProps;
|
|
|
236
244
|
optional componentWillUnmount(): void;
|
|
237
245
|
```
|
|
238
246
|
|
|
247
|
+
Defined in: `@types/react`
|
|
248
|
+
|
|
239
249
|
Called immediately before a component is destroyed. Perform any necessary cleanup in this method, such as
|
|
240
250
|
cancelled network requests, or cleaning up any DOM elements created in `componentDidMount`.
|
|
241
251
|
|
|
@@ -260,6 +270,8 @@ optional componentWillUpdate(
|
|
|
260
270
|
nextContext): void;
|
|
261
271
|
```
|
|
262
272
|
|
|
273
|
+
Defined in: `@types/react`
|
|
274
|
+
|
|
263
275
|
Called immediately before rendering when new props or state is received. Not called for the initial render.
|
|
264
276
|
|
|
265
277
|
Note: You cannot call [Component.setState](#setstate) here.
|
|
@@ -303,6 +315,8 @@ React.Component.componentWillUpdate;
|
|
|
303
315
|
forceUpdate(callback?): void;
|
|
304
316
|
```
|
|
305
317
|
|
|
318
|
+
Defined in: `@types/react`
|
|
319
|
+
|
|
306
320
|
#### Parameters
|
|
307
321
|
|
|
308
322
|
| Parameter | Type |
|
|
@@ -327,6 +341,8 @@ React.Component.forceUpdate;
|
|
|
327
341
|
optional getSnapshotBeforeUpdate(prevProps, prevState): any;
|
|
328
342
|
```
|
|
329
343
|
|
|
344
|
+
Defined in: `@types/react`
|
|
345
|
+
|
|
330
346
|
Runs before React applies the result of [render](https://www.jsdocs.io/package/@types/react#Component.render) to the document, and
|
|
331
347
|
returns an object to be given to [componentDidUpdate](#componentdidupdate). Useful for saving
|
|
332
348
|
things such as scroll position before [render](https://www.jsdocs.io/package/@types/react#Component.render) causes changes to it.
|
|
@@ -359,7 +375,7 @@ React.Component.getSnapshotBeforeUpdate;
|
|
|
359
375
|
render(): ReactNode;
|
|
360
376
|
```
|
|
361
377
|
|
|
362
|
-
Defined in: [packages/play-react/src/PlayErrorBoundary.tsx:70](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
378
|
+
Defined in: [packages/play-react/src/PlayErrorBoundary.tsx:70](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.27/packages/play-react/src/PlayErrorBoundary.tsx#L70)
|
|
363
379
|
|
|
364
380
|
#### Returns
|
|
365
381
|
|
|
@@ -379,6 +395,8 @@ React.Component.render;
|
|
|
379
395
|
setState<K>(state, callback?): void;
|
|
380
396
|
```
|
|
381
397
|
|
|
398
|
+
Defined in: `@types/react`
|
|
399
|
+
|
|
382
400
|
#### Type Parameters
|
|
383
401
|
|
|
384
402
|
| Type Parameter |
|
|
@@ -413,6 +431,8 @@ optional shouldComponentUpdate(
|
|
|
413
431
|
nextContext): boolean;
|
|
414
432
|
```
|
|
415
433
|
|
|
434
|
+
Defined in: `@types/react`
|
|
435
|
+
|
|
416
436
|
Called to determine whether the change in props and state should trigger a re-render.
|
|
417
437
|
|
|
418
438
|
`Component` always returns true.
|
|
@@ -448,6 +468,8 @@ React.Component.shouldComponentUpdate;
|
|
|
448
468
|
optional UNSAFE_componentWillMount(): void;
|
|
449
469
|
```
|
|
450
470
|
|
|
471
|
+
Defined in: `@types/react`
|
|
472
|
+
|
|
451
473
|
Called immediately before mounting occurs, and before [Component.render](https://www.jsdocs.io/package/@types/react#Component.render).
|
|
452
474
|
Avoid introducing any side-effects or subscriptions in this method.
|
|
453
475
|
|
|
@@ -484,6 +506,8 @@ React.Component.UNSAFE_componentWillMount;
|
|
|
484
506
|
optional UNSAFE_componentWillReceiveProps(nextProps, nextContext): void;
|
|
485
507
|
```
|
|
486
508
|
|
|
509
|
+
Defined in: `@types/react`
|
|
510
|
+
|
|
487
511
|
Called when the component may be receiving new props.
|
|
488
512
|
React may call this even if props have not changed, so be sure to compare new and existing
|
|
489
513
|
props if you only want to handle changes.
|
|
@@ -533,6 +557,8 @@ optional UNSAFE_componentWillUpdate(
|
|
|
533
557
|
nextContext): void;
|
|
534
558
|
```
|
|
535
559
|
|
|
560
|
+
Defined in: `@types/react`
|
|
561
|
+
|
|
536
562
|
Called immediately before rendering when new props or state is received. Not called for the initial render.
|
|
537
563
|
|
|
538
564
|
Note: You cannot call [Component.setState](#setstate) here.
|
|
@@ -578,7 +604,7 @@ React.Component.UNSAFE_componentWillUpdate;
|
|
|
578
604
|
static getDerivedStateFromError(error): PlayErrorBoundaryState;
|
|
579
605
|
```
|
|
580
606
|
|
|
581
|
-
Defined in: [packages/play-react/src/PlayErrorBoundary.tsx:62](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
607
|
+
Defined in: [packages/play-react/src/PlayErrorBoundary.tsx:62](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.27/packages/play-react/src/PlayErrorBoundary.tsx#L62)
|
|
582
608
|
|
|
583
609
|
#### Parameters
|
|
584
610
|
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
function useActor(): PlayActor;
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
Defined in: [packages/play-react/src/useActor.ts:30](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
9
|
+
Defined in: [packages/play-react/src/useActor.ts:30](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.27/packages/play-react/src/useActor.ts#L30)
|
|
10
10
|
|
|
11
11
|
## Returns
|
|
12
12
|
|
|
@@ -6,6 +6,8 @@
|
|
|
6
6
|
function useBoundProp<T>(propValue, bindingPath): [T | undefined, (value) => void];
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
+
Defined in: `@json-render/react`
|
|
10
|
+
|
|
9
11
|
Hook for two-way bound props. Returns `[value, setValue]` where:
|
|
10
12
|
|
|
11
13
|
- `value` is the already-resolved prop value (passed through from render props)
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
function useSignalEffect(callback): void;
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
Defined in: [packages/play-react/src/useSignalEffect.ts:71](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
9
|
+
Defined in: [packages/play-react/src/useSignalEffect.ts:71](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.27/packages/play-react/src/useSignalEffect.ts#L71)
|
|
10
10
|
|
|
11
11
|
React hook that subscribes to signal changes and runs effect callback
|
|
12
12
|
|