@xmachines/docs 1.0.0-beta.22 → 1.0.0-beta.24
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/README.md +1 -1
- package/api/@xmachines/play/classes/PlayError.md +4 -4
- package/api/@xmachines/play/type-aliases/PlayEvent.md +3 -3
- package/api/@xmachines/play-actor/README.md +2 -2
- package/api/@xmachines/play-actor/classes/AbstractActor.md +4 -4
- package/api/@xmachines/play-actor/interfaces/PlaySpec.md +2 -2
- package/api/@xmachines/play-actor/interfaces/Routable.md +3 -3
- package/api/@xmachines/play-actor/interfaces/ViewMetadata.md +3 -3
- package/api/@xmachines/play-actor/interfaces/Viewable.md +2 -2
- 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/renderSpec.md +1 -1
- package/api/@xmachines/play-dom/interfaces/ConnectRendererOptions.md +7 -7
- package/api/@xmachines/play-dom/interfaces/DomRenderContext.md +7 -7
- package/api/@xmachines/play-dom/interfaces/PlayDomOptions.md +3 -3
- package/api/@xmachines/play-dom/type-aliases/DomComponentRenderer.md +1 -1
- package/api/@xmachines/play-dom/type-aliases/DomRegistry.md +1 -1
- package/api/@xmachines/play-dom-router/README.md +152 -0
- package/api/@xmachines/{play-router → play-dom-router}/functions/connectRouter.md +8 -4
- package/api/@xmachines/{play-router → play-dom-router}/functions/createBrowserHistory.md +2 -2
- package/api/@xmachines/{play-router → play-dom-router}/functions/createRouter.md +12 -34
- package/api/@xmachines/{play-router → play-dom-router}/interfaces/BrowserHistory.md +17 -17
- package/api/@xmachines/{play-router → play-dom-router}/interfaces/BrowserWindow.md +17 -17
- package/api/@xmachines/play-dom-router/interfaces/ConnectRouterOptions.md +15 -0
- package/api/@xmachines/play-dom-router/interfaces/VanillaRouter.md +28 -0
- package/api/@xmachines/{play-router-demo → play-dom-router-demo}/README.md +20 -16
- package/api/@xmachines/play-react/README.md +1 -1
- package/api/@xmachines/play-react/classes/PlayErrorBoundary.md +5 -5
- package/api/@xmachines/play-react/functions/useActor.md +1 -1
- package/api/@xmachines/play-react/functions/useSignalEffect.md +1 -1
- 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/PlayActor.md +1 -1
- package/api/@xmachines/play-react/variables/PlayRenderer.md +1 -1
- package/api/@xmachines/play-react-router/classes/ReactRouterBridge.md +21 -21
- package/api/@xmachines/play-react-router/classes/RouteMap.md +4 -4
- package/api/@xmachines/play-react-router/functions/PlayRouterProvider.md +1 -1
- package/api/@xmachines/play-react-router/functions/createRouteMapFromTree.md +1 -1
- package/api/@xmachines/play-react-router/interfaces/PlayRouteEvent.md +7 -7
- package/api/@xmachines/play-react-router/interfaces/PlayRouterProviderProps.md +5 -5
- package/api/@xmachines/play-react-router/interfaces/RouteMapping.md +3 -3
- package/api/@xmachines/play-react-router/interfaces/RouterBridge.md +4 -4
- package/api/@xmachines/play-router/README.md +8 -13
- package/api/@xmachines/play-router/classes/BaseRouteMap.md +4 -4
- package/api/@xmachines/play-router/classes/RouterBridgeBase.md +21 -21
- package/api/@xmachines/play-router/functions/buildPlayRouteEvent.md +32 -0
- 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/detectDuplicateRoutes.md +1 -1
- package/api/@xmachines/play-router/functions/extractMachineRoutes.md +1 -1
- package/api/@xmachines/play-router/functions/extractQuery.md +22 -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/BaseRouteMapping.md +3 -3
- package/api/@xmachines/play-router/interfaces/BuildPlayRouteEventOptions.md +13 -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 +7 -7
- 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/RouteMatch.md +12 -0
- package/api/@xmachines/play-router/interfaces/RouteNode.md +10 -10
- package/api/@xmachines/play-router/interfaces/RouteObject.md +2 -2
- package/api/@xmachines/play-router/interfaces/RouteTree.md +5 -5
- package/api/@xmachines/play-router/interfaces/RouteWatcherHandle.md +3 -3
- package/api/@xmachines/play-router/interfaces/RouterBridge.md +4 -4
- package/api/@xmachines/play-router/type-aliases/MachineGraph.md +1 -1
- package/api/@xmachines/play-router/type-aliases/RouteMetadata.md +1 -1
- package/api/@xmachines/play-signals/README.md +2 -2
- package/api/@xmachines/play-signals/functions/watchSignal.md +1 -1
- package/api/@xmachines/play-signals/interfaces/ComputedOptions.md +2 -2
- package/api/@xmachines/play-signals/interfaces/SignalComputed.md +2 -2
- package/api/@xmachines/play-signals/interfaces/SignalOptions.md +2 -2
- package/api/@xmachines/play-signals/interfaces/SignalState.md +3 -3
- package/api/@xmachines/play-signals/interfaces/SignalWatcher.md +4 -4
- package/api/@xmachines/play-signals/type-aliases/WatcherNotify.md +1 -1
- package/api/@xmachines/play-solid/README.md +1 -1
- package/api/@xmachines/play-solid/functions/useActor.md +1 -1
- package/api/@xmachines/play-solid/interfaces/PlayRendererProps.md +7 -7
- 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 +1 -1
- package/api/@xmachines/play-solid-router/classes/RouteMap.md +4 -4
- package/api/@xmachines/play-solid-router/classes/SolidRouterBridge.md +22 -22
- package/api/@xmachines/play-solid-router/functions/PlayRouterProvider.md +1 -1
- package/api/@xmachines/play-solid-router/functions/createRouteMap.md +1 -1
- package/api/@xmachines/play-solid-router/interfaces/AbstractActor.md +4 -4
- package/api/@xmachines/play-solid-router/interfaces/PlayRouteEvent.md +7 -7
- package/api/@xmachines/play-solid-router/interfaces/PlayRouterProviderProps.md +5 -5
- package/api/@xmachines/play-solid-router/interfaces/RouteMapping.md +3 -3
- package/api/@xmachines/play-solid-router/interfaces/RouterBridge.md +4 -4
- package/api/@xmachines/play-solid-router/type-aliases/RoutableActor.md +1 -1
- package/api/@xmachines/play-solid-router/type-aliases/SolidRouterHooks.md +4 -4
- package/api/@xmachines/play-tanstack-react-router/classes/RouteMap.md +4 -4
- package/api/@xmachines/play-tanstack-react-router/classes/TanStackReactRouterBridge.md +21 -21
- 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 +1 -1
- package/api/@xmachines/play-tanstack-react-router/functions/extractMachineRoutes.md +1 -1
- package/api/@xmachines/play-tanstack-react-router/functions/extractParams.md +1 -1
- package/api/@xmachines/play-tanstack-react-router/functions/extractQueryParams.md +1 -1
- package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouteEvent.md +7 -7
- package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouterProviderProps.md +5 -5
- package/api/@xmachines/play-tanstack-react-router/interfaces/RouteMapping.md +3 -3
- package/api/@xmachines/play-tanstack-react-router/interfaces/RouteNavigateEvent.md +3 -3
- package/api/@xmachines/play-tanstack-react-router/interfaces/RouterBridge.md +4 -4
- package/api/@xmachines/play-tanstack-react-router/type-aliases/TanStackRouterInstance.md +1 -1
- package/api/@xmachines/play-tanstack-react-router/type-aliases/TanStackRouterLike.md +4 -4
- package/api/@xmachines/play-tanstack-solid-router/README.md +1 -1
- package/api/@xmachines/play-tanstack-solid-router/classes/RouteMap.md +4 -4
- package/api/@xmachines/play-tanstack-solid-router/classes/SolidRouterBridge.md +22 -22
- package/api/@xmachines/play-tanstack-solid-router/functions/PlayRouterProvider.md +1 -1
- package/api/@xmachines/play-tanstack-solid-router/functions/createRouteMap.md +1 -1
- package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayRouteEvent.md +7 -7
- package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayRouterProviderProps.md +5 -5
- package/api/@xmachines/play-tanstack-solid-router/interfaces/RouteMapping.md +3 -3
- package/api/@xmachines/play-tanstack-solid-router/interfaces/RouterBridge.md +4 -4
- 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 +4 -4
- package/api/@xmachines/play-vue/README.md +1 -1
- 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/interfaces/PlayRendererProps.md +5 -5
- package/api/@xmachines/play-vue/type-aliases/ComponentEntry.md +1 -1
- package/api/@xmachines/play-vue/type-aliases/ComponentsMap.md +1 -1
- package/api/@xmachines/play-vue/type-aliases/DefineRegistryOptions.md +2 -2
- package/api/@xmachines/play-vue/type-aliases/PlayActor.md +1 -1
- package/api/@xmachines/play-vue/variables/PlayRenderer.md +1 -1
- package/api/@xmachines/play-vue-router/README.md +1 -1
- package/api/@xmachines/play-vue-router/classes/RouteMap.md +7 -7
- package/api/@xmachines/play-vue-router/classes/VueBaseRouteMap.md +7 -7
- package/api/@xmachines/play-vue-router/classes/VueRouterBridge.md +22 -22
- package/api/@xmachines/play-vue-router/functions/createRouteMap.md +1 -1
- package/api/@xmachines/play-vue-router/interfaces/PlayRouteEvent.md +7 -7
- package/api/@xmachines/play-vue-router/interfaces/RouteMapping.md +4 -4
- package/api/@xmachines/play-vue-router/interfaces/RouterBridge.md +4 -4
- package/api/@xmachines/play-vue-router/type-aliases/RoutableActor.md +1 -1
- package/api/@xmachines/play-vue-router/variables/PlayRouterProvider.md +1 -1
- package/api/@xmachines/play-xstate/README.md +1 -1
- package/api/@xmachines/play-xstate/classes/PlayerActor.md +12 -12
- package/api/@xmachines/play-xstate/functions/buildRouteUrl.md +1 -1
- package/api/@xmachines/play-xstate/functions/composeGuards.md +1 -1
- package/api/@xmachines/play-xstate/functions/composeGuardsOr.md +1 -1
- package/api/@xmachines/play-xstate/functions/contextFieldMatches.md +1 -1
- package/api/@xmachines/play-xstate/functions/definePlayer.md +2 -2
- package/api/@xmachines/play-xstate/functions/deriveRoute.md +2 -2
- package/api/@xmachines/play-xstate/functions/eventMatches.md +1 -1
- package/api/@xmachines/play-xstate/functions/formatPlayRouteTransitions.md +1 -1
- package/api/@xmachines/play-xstate/functions/hasContext.md +1 -1
- package/api/@xmachines/play-xstate/functions/isAbsoluteRoute.md +1 -1
- package/api/@xmachines/play-xstate/functions/negateGuard.md +1 -1
- package/api/@xmachines/play-xstate/interfaces/PlayerConfig.md +3 -3
- package/api/@xmachines/play-xstate/interfaces/PlayerFactoryResumeOptions.md +2 -2
- package/api/@xmachines/play-xstate/interfaces/PlayerOptions.md +6 -6
- package/api/@xmachines/play-xstate/interfaces/RouteContext.md +5 -5
- package/api/@xmachines/play-xstate/type-aliases/ComposedGuard.md +1 -1
- package/api/@xmachines/play-xstate/type-aliases/Guard.md +1 -1
- package/api/@xmachines/play-xstate/type-aliases/GuardArray.md +1 -1
- package/api/@xmachines/play-xstate/type-aliases/PlayerFactory.md +1 -1
- package/api/@xmachines/play-xstate/type-aliases/RouteMachineConfig.md +4 -4
- package/api/@xmachines/play-xstate/type-aliases/RouteStateNode.md +4 -4
- package/api/@xmachines/shared/functions/defineXmVitestConfig.md +2 -2
- package/api/@xmachines/shared/functions/xmAliases.md +1 -1
- package/api/README.md +2 -1
- package/api/llms.txt +1 -0
- package/examples/README.md +1 -1
- package/examples/multi-router-integration.md +36 -26
- package/package.json +4 -2
- package/api/@xmachines/play-router/interfaces/ConnectRouterOptions.md +0 -13
- package/api/@xmachines/play-router/interfaces/VanillaRouter.md +0 -28
- package/api/rfc/play.md +0 -447
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
[Documentation](../../../README.md) / [@xmachines/play-router](../README.md) / connectRouter
|
|
1
|
+
[Documentation](../../../README.md) / [@xmachines/play-dom-router](../README.md) / connectRouter
|
|
2
2
|
|
|
3
3
|
# Function: connectRouter()
|
|
4
4
|
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
function connectRouter(options): () => void;
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
Defined in: [connect-router.ts:
|
|
9
|
+
Defined in: [connect-router.ts:69](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.24/packages/play-dom-router/src/connect-router.ts#L69)
|
|
10
10
|
|
|
11
11
|
Connect vanilla router to actor (pure browser integration).
|
|
12
12
|
|
|
@@ -22,7 +22,8 @@ Use this when:
|
|
|
22
22
|
For JSX frameworks, use framework adapters instead:
|
|
23
23
|
|
|
24
24
|
- @xmachines/play-react (React components)
|
|
25
|
-
-
|
|
25
|
+
- @xmachines/play-vue (Vue components)
|
|
26
|
+
- @xmachines/play-solid (Solid components)
|
|
26
27
|
|
|
27
28
|
Architecture:
|
|
28
29
|
|
|
@@ -34,8 +35,11 @@ Architecture:
|
|
|
34
35
|
Usage:
|
|
35
36
|
|
|
36
37
|
```typescript
|
|
37
|
-
import { createBrowserHistory, createRouter, connectRouter } from "@xmachines/play-router";
|
|
38
|
+
import { createBrowserHistory, createRouter, connectRouter } from "@xmachines/play-dom-router";
|
|
39
|
+
import { extractMachineRoutes, createRouteMap } from "@xmachines/play-router";
|
|
38
40
|
|
|
41
|
+
const routeTree = extractMachineRoutes(machine);
|
|
42
|
+
const routeMap = createRouteMap(routeTree);
|
|
39
43
|
const history = createBrowserHistory({ window });
|
|
40
44
|
const router = createRouter({ routeTree, history });
|
|
41
45
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
[Documentation](../../../README.md) / [@xmachines/play-router](../README.md) / createBrowserHistory
|
|
1
|
+
[Documentation](../../../README.md) / [@xmachines/play-dom-router](../README.md) / createBrowserHistory
|
|
2
2
|
|
|
3
3
|
# Function: createBrowserHistory()
|
|
4
4
|
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
function createBrowserHistory(options): BrowserHistory;
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
Defined in: [create-browser-history.ts:120](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
9
|
+
Defined in: [create-browser-history.ts:120](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.24/packages/play-dom-router/src/create-browser-history.ts#L120)
|
|
10
10
|
|
|
11
11
|
Create browser history that wraps window.history
|
|
12
12
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
[Documentation](../../../README.md) / [@xmachines/play-router](../README.md) / createRouter
|
|
1
|
+
[Documentation](../../../README.md) / [@xmachines/play-dom-router](../README.md) / createRouter
|
|
2
2
|
|
|
3
3
|
# Function: createRouter()
|
|
4
4
|
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
function createRouter(options): VanillaRouter;
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
Defined in: [create-router.ts:
|
|
9
|
+
Defined in: [create-router.ts:52](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.24/packages/play-dom-router/src/create-router.ts#L52)
|
|
10
10
|
|
|
11
11
|
Create vanilla router for framework-agnostic routing.
|
|
12
12
|
|
|
@@ -33,43 +33,21 @@ const history = createBrowserHistory({ window });
|
|
|
33
33
|
// Vanilla router
|
|
34
34
|
const router = createRouter({ routeTree, history });
|
|
35
35
|
|
|
36
|
-
//
|
|
37
|
-
|
|
38
|
-
actor={actor}
|
|
39
|
-
router={router}
|
|
40
|
-
routeMap={routeMap} // ← Must pass separately
|
|
41
|
-
renderer={(currentActor, currentRouter) => {
|
|
42
|
-
void currentRouter;
|
|
43
|
-
return <Renderer actor={currentActor} components={components} />;
|
|
44
|
-
}}
|
|
45
|
-
/>
|
|
46
|
-
```
|
|
47
|
-
|
|
48
|
-
Compare to TanStack mode:
|
|
36
|
+
// Connect router to actor (handles all bidirectional sync)
|
|
37
|
+
const disconnect = connectRouter({ actor, router, routeMap });
|
|
49
38
|
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
// Provider needs routeMap as prop (same as vanilla!)
|
|
55
|
-
<PlayRouterProvider
|
|
56
|
-
actor={actor}
|
|
57
|
-
router={router}
|
|
58
|
-
routeMap={routeMap} // ← Must pass separately
|
|
59
|
-
renderer={(currentActor, currentRouter) => {
|
|
60
|
-
void currentRouter;
|
|
61
|
-
return <Renderer actor={currentActor} components={components} />;
|
|
62
|
-
}}
|
|
63
|
-
/>
|
|
39
|
+
// Later: cleanup
|
|
40
|
+
disconnect();
|
|
41
|
+
router.destroy();
|
|
64
42
|
```
|
|
65
43
|
|
|
66
44
|
## Parameters
|
|
67
45
|
|
|
68
|
-
| Parameter | Type
|
|
69
|
-
| ------------------- |
|
|
70
|
-
| `options` | \{ `history`: [`BrowserHistory`](../interfaces/BrowserHistory.md); `routeTree`: [`RouteTree`](
|
|
71
|
-
| `options.history` | [`BrowserHistory`](../interfaces/BrowserHistory.md)
|
|
72
|
-
| `options.routeTree` | [`RouteTree`](
|
|
46
|
+
| Parameter | Type |
|
|
47
|
+
| ------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
48
|
+
| `options` | \{ `history`: [`BrowserHistory`](../interfaces/BrowserHistory.md); `routeTree`: [`RouteTree`](../../play-router/interfaces/RouteTree.md); \} |
|
|
49
|
+
| `options.history` | [`BrowserHistory`](../interfaces/BrowserHistory.md) |
|
|
50
|
+
| `options.routeTree` | [`RouteTree`](../../play-router/interfaces/RouteTree.md) |
|
|
73
51
|
|
|
74
52
|
## Returns
|
|
75
53
|
|
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
[Documentation](../../../README.md) / [@xmachines/play-router](../README.md) / BrowserHistory
|
|
1
|
+
[Documentation](../../../README.md) / [@xmachines/play-dom-router](../README.md) / BrowserHistory
|
|
2
2
|
|
|
3
3
|
# Interface: BrowserHistory
|
|
4
4
|
|
|
5
|
-
Defined in: [create-browser-history.ts:1](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
5
|
+
Defined in: [create-browser-history.ts:1](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.24/packages/play-dom-router/src/create-browser-history.ts#L1)
|
|
6
6
|
|
|
7
7
|
## Properties
|
|
8
8
|
|
|
9
|
-
| Property | Modifier | Type | Description | Defined in
|
|
10
|
-
| ----------------------------------------- | ---------- | --------- | -------------------------- |
|
|
11
|
-
| <a id="property-location"></a> `location` | `readonly` | `object` | Get current location state | [create-browser-history.ts:5](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
12
|
-
| `location.hash` | `public` | `string` | - | [create-browser-history.ts:8](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
13
|
-
| `location.pathname` | `public` | `string` | - | [create-browser-history.ts:6](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
14
|
-
| `location.search` | `public` | `string` | - | [create-browser-history.ts:7](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
15
|
-
| `location.state` | `public` | `unknown` | - | [create-browser-history.ts:9](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
9
|
+
| Property | Modifier | Type | Description | Defined in |
|
|
10
|
+
| ----------------------------------------- | ---------- | --------- | -------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
11
|
+
| <a id="property-location"></a> `location` | `readonly` | `object` | Get current location state | [create-browser-history.ts:5](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.24/packages/play-dom-router/src/create-browser-history.ts#L5) |
|
|
12
|
+
| `location.hash` | `public` | `string` | - | [create-browser-history.ts:8](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.24/packages/play-dom-router/src/create-browser-history.ts#L8) |
|
|
13
|
+
| `location.pathname` | `public` | `string` | - | [create-browser-history.ts:6](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.24/packages/play-dom-router/src/create-browser-history.ts#L6) |
|
|
14
|
+
| `location.search` | `public` | `string` | - | [create-browser-history.ts:7](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.24/packages/play-dom-router/src/create-browser-history.ts#L7) |
|
|
15
|
+
| `location.state` | `public` | `unknown` | - | [create-browser-history.ts:9](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.24/packages/play-dom-router/src/create-browser-history.ts#L9) |
|
|
16
16
|
|
|
17
17
|
## Methods
|
|
18
18
|
|
|
@@ -22,7 +22,7 @@ Defined in: [create-browser-history.ts:1](https://gitlab.com/xmachin-es/xmachine
|
|
|
22
22
|
back(): void;
|
|
23
23
|
```
|
|
24
24
|
|
|
25
|
-
Defined in: [create-browser-history.ts:26](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
25
|
+
Defined in: [create-browser-history.ts:26](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.24/packages/play-dom-router/src/create-browser-history.ts#L26)
|
|
26
26
|
|
|
27
27
|
#### Returns
|
|
28
28
|
|
|
@@ -36,7 +36,7 @@ Defined in: [create-browser-history.ts:26](https://gitlab.com/xmachin-es/xmachin
|
|
|
36
36
|
createHref(path): string;
|
|
37
37
|
```
|
|
38
38
|
|
|
39
|
-
Defined in: [create-browser-history.ts:38](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
39
|
+
Defined in: [create-browser-history.ts:38](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.24/packages/play-dom-router/src/create-browser-history.ts#L38)
|
|
40
40
|
|
|
41
41
|
Create href from path
|
|
42
42
|
|
|
@@ -58,7 +58,7 @@ Create href from path
|
|
|
58
58
|
destroy(): void;
|
|
59
59
|
```
|
|
60
60
|
|
|
61
|
-
Defined in: [create-browser-history.ts:47](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
61
|
+
Defined in: [create-browser-history.ts:47](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.24/packages/play-dom-router/src/create-browser-history.ts#L47)
|
|
62
62
|
|
|
63
63
|
Cleanup.
|
|
64
64
|
|
|
@@ -78,7 +78,7 @@ wrapper is destroyed.
|
|
|
78
78
|
forward(): void;
|
|
79
79
|
```
|
|
80
80
|
|
|
81
|
-
Defined in: [create-browser-history.ts:27](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
81
|
+
Defined in: [create-browser-history.ts:27](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.24/packages/play-dom-router/src/create-browser-history.ts#L27)
|
|
82
82
|
|
|
83
83
|
#### Returns
|
|
84
84
|
|
|
@@ -92,7 +92,7 @@ Defined in: [create-browser-history.ts:27](https://gitlab.com/xmachin-es/xmachin
|
|
|
92
92
|
go(delta): void;
|
|
93
93
|
```
|
|
94
94
|
|
|
95
|
-
Defined in: [create-browser-history.ts:25](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
95
|
+
Defined in: [create-browser-history.ts:25](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.24/packages/play-dom-router/src/create-browser-history.ts#L25)
|
|
96
96
|
|
|
97
97
|
Go back/forward
|
|
98
98
|
|
|
@@ -114,7 +114,7 @@ Go back/forward
|
|
|
114
114
|
push(path, state?): void;
|
|
115
115
|
```
|
|
116
116
|
|
|
117
|
-
Defined in: [create-browser-history.ts:15](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
117
|
+
Defined in: [create-browser-history.ts:15](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.24/packages/play-dom-router/src/create-browser-history.ts#L15)
|
|
118
118
|
|
|
119
119
|
Push new URL to history
|
|
120
120
|
|
|
@@ -137,7 +137,7 @@ Push new URL to history
|
|
|
137
137
|
replace(path, state?): void;
|
|
138
138
|
```
|
|
139
139
|
|
|
140
|
-
Defined in: [create-browser-history.ts:20](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
140
|
+
Defined in: [create-browser-history.ts:20](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.24/packages/play-dom-router/src/create-browser-history.ts#L20)
|
|
141
141
|
|
|
142
142
|
Replace current URL in history
|
|
143
143
|
|
|
@@ -160,7 +160,7 @@ Replace current URL in history
|
|
|
160
160
|
subscribe(listener): () => void;
|
|
161
161
|
```
|
|
162
162
|
|
|
163
|
-
Defined in: [create-browser-history.ts:33](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
163
|
+
Defined in: [create-browser-history.ts:33](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.24/packages/play-dom-router/src/create-browser-history.ts#L33)
|
|
164
164
|
|
|
165
165
|
Subscribe to history changes
|
|
166
166
|
Returns unsubscribe function
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
[Documentation](../../../README.md) / [@xmachines/play-router](../README.md) / BrowserWindow
|
|
1
|
+
[Documentation](../../../README.md) / [@xmachines/play-dom-router](../README.md) / BrowserWindow
|
|
2
2
|
|
|
3
3
|
# Interface: BrowserWindow
|
|
4
4
|
|
|
5
|
-
Defined in: [create-browser-history.ts:59](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
5
|
+
Defined in: [create-browser-history.ts:59](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.24/packages/play-dom-router/src/create-browser-history.ts#L59)
|
|
6
6
|
|
|
7
7
|
Minimal window interface for createBrowserHistory
|
|
8
8
|
|
|
@@ -12,19 +12,19 @@ Avoids coupling to `Window & typeof globalThis` which varies across environments
|
|
|
12
12
|
|
|
13
13
|
## Properties
|
|
14
14
|
|
|
15
|
-
| Property | Modifier | Type | Defined in
|
|
16
|
-
| ----------------------------------------- | ---------- | --------- |
|
|
17
|
-
| <a id="property-history"></a> `history` | `public` | `object` | [create-browser-history.ts:60](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
18
|
-
| `history.state` | `readonly` | `unknown` | [create-browser-history.ts:61](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
19
|
-
| `history.back` | `public` | `void` | [create-browser-history.ts:65](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
20
|
-
| `history.forward` | `public` | `void` | [create-browser-history.ts:66](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
21
|
-
| `history.go` | `public` | `void` | [create-browser-history.ts:64](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
22
|
-
| `history.pushState` | `public` | `void` | [create-browser-history.ts:62](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
23
|
-
| `history.replaceState` | `public` | `void` | [create-browser-history.ts:63](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
24
|
-
| <a id="property-location"></a> `location` | `public` | `object` | [create-browser-history.ts:68](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
25
|
-
| `location.hash` | `readonly` | `string` | [create-browser-history.ts:71](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
26
|
-
| `location.pathname` | `readonly` | `string` | [create-browser-history.ts:69](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
27
|
-
| `location.search` | `readonly` | `string` | [create-browser-history.ts:70](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
15
|
+
| Property | Modifier | Type | Defined in |
|
|
16
|
+
| ----------------------------------------- | ---------- | --------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
17
|
+
| <a id="property-history"></a> `history` | `public` | `object` | [create-browser-history.ts:60](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.24/packages/play-dom-router/src/create-browser-history.ts#L60) |
|
|
18
|
+
| `history.state` | `readonly` | `unknown` | [create-browser-history.ts:61](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.24/packages/play-dom-router/src/create-browser-history.ts#L61) |
|
|
19
|
+
| `history.back` | `public` | `void` | [create-browser-history.ts:65](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.24/packages/play-dom-router/src/create-browser-history.ts#L65) |
|
|
20
|
+
| `history.forward` | `public` | `void` | [create-browser-history.ts:66](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.24/packages/play-dom-router/src/create-browser-history.ts#L66) |
|
|
21
|
+
| `history.go` | `public` | `void` | [create-browser-history.ts:64](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.24/packages/play-dom-router/src/create-browser-history.ts#L64) |
|
|
22
|
+
| `history.pushState` | `public` | `void` | [create-browser-history.ts:62](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.24/packages/play-dom-router/src/create-browser-history.ts#L62) |
|
|
23
|
+
| `history.replaceState` | `public` | `void` | [create-browser-history.ts:63](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.24/packages/play-dom-router/src/create-browser-history.ts#L63) |
|
|
24
|
+
| <a id="property-location"></a> `location` | `public` | `object` | [create-browser-history.ts:68](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.24/packages/play-dom-router/src/create-browser-history.ts#L68) |
|
|
25
|
+
| `location.hash` | `readonly` | `string` | [create-browser-history.ts:71](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.24/packages/play-dom-router/src/create-browser-history.ts#L71) |
|
|
26
|
+
| `location.pathname` | `readonly` | `string` | [create-browser-history.ts:69](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.24/packages/play-dom-router/src/create-browser-history.ts#L69) |
|
|
27
|
+
| `location.search` | `readonly` | `string` | [create-browser-history.ts:70](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.24/packages/play-dom-router/src/create-browser-history.ts#L70) |
|
|
28
28
|
|
|
29
29
|
## Methods
|
|
30
30
|
|
|
@@ -34,7 +34,7 @@ Avoids coupling to `Window & typeof globalThis` which varies across environments
|
|
|
34
34
|
addEventListener(type, listener): void;
|
|
35
35
|
```
|
|
36
36
|
|
|
37
|
-
Defined in: [create-browser-history.ts:73](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
37
|
+
Defined in: [create-browser-history.ts:73](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.24/packages/play-dom-router/src/create-browser-history.ts#L73)
|
|
38
38
|
|
|
39
39
|
#### Parameters
|
|
40
40
|
|
|
@@ -55,7 +55,7 @@ Defined in: [create-browser-history.ts:73](https://gitlab.com/xmachin-es/xmachin
|
|
|
55
55
|
removeEventListener(type, listener): void;
|
|
56
56
|
```
|
|
57
57
|
|
|
58
|
-
Defined in: [create-browser-history.ts:74](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
58
|
+
Defined in: [create-browser-history.ts:74](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.24/packages/play-dom-router/src/create-browser-history.ts#L74)
|
|
59
59
|
|
|
60
60
|
#### Parameters
|
|
61
61
|
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
[Documentation](../../../README.md) / [@xmachines/play-dom-router](../README.md) / ConnectRouterOptions
|
|
2
|
+
|
|
3
|
+
# Interface: ConnectRouterOptions
|
|
4
|
+
|
|
5
|
+
Defined in: [connect-router.ts:11](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.24/packages/play-dom-router/src/connect-router.ts#L11)
|
|
6
|
+
|
|
7
|
+
Options for [connectRouter](../functions/connectRouter.md).
|
|
8
|
+
|
|
9
|
+
## Properties
|
|
10
|
+
|
|
11
|
+
| Property | Type | Description | Defined in |
|
|
12
|
+
| ----------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
13
|
+
| <a id="property-actor"></a> `actor` | [`AbstractActor`](../../play-actor/classes/AbstractActor.md)\<[`AnyActorLogic`](https://www.jsdocs.io/package/xstate#AnyActorLogic), [`EventObject`](https://www.jsdocs.io/package/xstate#EventObject)\> & [`Routable`](../../play-actor/interfaces/Routable.md) | The actor to synchronize with the browser URL. Must implement `Routable`. | [connect-router.ts:13](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.24/packages/play-dom-router/src/connect-router.ts#L13) |
|
|
14
|
+
| <a id="property-routemap"></a> `routeMap` | [`RouteMap`](../../play-router/interfaces/RouteMap.md) | Route map used to resolve URL pathnames to machine state IDs. | [connect-router.ts:17](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.24/packages/play-dom-router/src/connect-router.ts#L17) |
|
|
15
|
+
| <a id="property-router"></a> `router` | [`VanillaRouter`](VanillaRouter.md) | The vanilla router created by [createRouter](../functions/createRouter.md). | [connect-router.ts:15](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.24/packages/play-dom-router/src/connect-router.ts#L15) |
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
[Documentation](../../../README.md) / [@xmachines/play-dom-router](../README.md) / VanillaRouter
|
|
2
|
+
|
|
3
|
+
# Interface: VanillaRouter
|
|
4
|
+
|
|
5
|
+
Defined in: [create-router.ts:4](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.24/packages/play-dom-router/src/create-router.ts#L4)
|
|
6
|
+
|
|
7
|
+
## Properties
|
|
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.24/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) | [create-router.ts:13](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.24/packages/play-dom-router/src/create-router.ts#L13) |
|
|
13
|
+
|
|
14
|
+
## Methods
|
|
15
|
+
|
|
16
|
+
### destroy()
|
|
17
|
+
|
|
18
|
+
```ts
|
|
19
|
+
destroy(): void;
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
Defined in: [create-router.ts:18](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.24/packages/play-dom-router/src/create-router.ts#L18)
|
|
23
|
+
|
|
24
|
+
Cleanup
|
|
25
|
+
|
|
26
|
+
#### Returns
|
|
27
|
+
|
|
28
|
+
`void`
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
[Documentation](../../README.md) / @xmachines/play-router-demo
|
|
1
|
+
[Documentation](../../README.md) / @xmachines/play-dom-router-demo
|
|
2
2
|
|
|
3
3
|
# Vanilla JavaScript Router Demo
|
|
4
4
|
|
|
@@ -21,7 +21,7 @@ From the repository root:
|
|
|
21
21
|
|
|
22
22
|
```bash
|
|
23
23
|
npm install
|
|
24
|
-
npm run dev -w packages/play-router/examples/demo
|
|
24
|
+
npm run dev -w packages/play-dom-router/examples/demo
|
|
25
25
|
```
|
|
26
26
|
|
|
27
27
|
Visit `http://localhost:5174`.
|
|
@@ -50,11 +50,14 @@ if (app) {
|
|
|
50
50
|
|
|
51
51
|
```ts
|
|
52
52
|
// src/router.ts (shape)
|
|
53
|
+
import { createBrowserHistory, createRouter, connectRouter } from "@xmachines/play-dom-router";
|
|
54
|
+
import { extractMachineRoutes, createRouteMap } from "@xmachines/play-router";
|
|
55
|
+
|
|
53
56
|
const routeTree = extractMachineRoutes(machine);
|
|
54
57
|
const routeMap = createRouteMap(routeTree);
|
|
55
|
-
const history = createBrowserHistory();
|
|
56
|
-
const router = createRouter({
|
|
57
|
-
connectRouter({ actor, router, routeMap });
|
|
58
|
+
const history = createBrowserHistory({ window });
|
|
59
|
+
const router = createRouter({ routeTree, history });
|
|
60
|
+
const disconnect = connectRouter({ actor, router, routeMap });
|
|
58
61
|
```
|
|
59
62
|
|
|
60
63
|
```ts
|
|
@@ -97,7 +100,7 @@ Watcher notifications are one-shot, so re-arm is mandatory. Router/shell teardow
|
|
|
97
100
|
|
|
98
101
|
## Adapter Boundaries
|
|
99
102
|
|
|
100
|
-
`connectRouter` and browser-history wiring are passive infrastructure. Actor logic remains authoritative for route validity, and shared synchronization policy stays in `RouterBridgeBase` for framework bridges.
|
|
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.
|
|
101
104
|
|
|
102
105
|
## Why Vanilla?
|
|
103
106
|
|
|
@@ -113,25 +116,26 @@ This demo proves frameworks aren't required for Play Architecture to work.
|
|
|
113
116
|
|
|
114
117
|
These commands are defined in `package.json`:
|
|
115
118
|
|
|
116
|
-
| Command
|
|
117
|
-
|
|
|
118
|
-
| `npm run dev -w packages/play-router/examples/demo` | Start Vite dev server |
|
|
119
|
-
| `npm run build -w packages/play-router/examples/demo` | Build production bundle |
|
|
120
|
-
| `npm run preview -w packages/play-router/examples/demo` | Preview built bundle |
|
|
121
|
-
| `npm run test -w packages/play-router/examples/demo` | Run Vitest test suite |
|
|
122
|
-
| `npm run test:browser -w packages/play-router/examples/demo` | Run browser-focused Vitest suite |
|
|
119
|
+
| Command | Description |
|
|
120
|
+
| ---------------------------------------------------------------- | -------------------------------- |
|
|
121
|
+
| `npm run dev -w packages/play-dom-router/examples/demo` | Start Vite dev server |
|
|
122
|
+
| `npm run build -w packages/play-dom-router/examples/demo` | Build production bundle |
|
|
123
|
+
| `npm run preview -w packages/play-dom-router/examples/demo` | Preview built bundle |
|
|
124
|
+
| `npm run test -w packages/play-dom-router/examples/demo` | Run Vitest test suite |
|
|
125
|
+
| `npm run test:browser -w packages/play-dom-router/examples/demo` | Run browser-focused Vitest suite |
|
|
123
126
|
|
|
124
127
|
## Verification
|
|
125
128
|
|
|
126
129
|
Validate the operational behavior with package-local tests:
|
|
127
130
|
|
|
128
131
|
```bash
|
|
129
|
-
npm run test -w packages/play-router/examples/demo
|
|
130
|
-
npm run test:browser -w packages/play-router/examples/demo
|
|
132
|
+
npm run test -w packages/play-dom-router/examples/demo
|
|
133
|
+
npm run test:browser -w packages/play-dom-router/examples/demo
|
|
131
134
|
```
|
|
132
135
|
|
|
133
136
|
Expected result: tests pass, including startup rendering and the full browser auth flow in `test/browser/`.
|
|
134
137
|
|
|
135
138
|
## Learn More
|
|
136
139
|
|
|
137
|
-
- **[Play Router
|
|
140
|
+
- **[Play DOM Router package README](../play-dom-router/README.md)** - `createBrowserHistory`, `createRouter`, `connectRouter` APIs
|
|
141
|
+
- **[Play Router package README](../play-router/README.md)** - Route extraction and abstract routing infrastructure
|
|
@@ -15,7 +15,7 @@ Bridges TC39 Signal-driven actors to React's render cycle. Business logic stays
|
|
|
15
15
|
- Routes action names from spec elements to `actor.send()` via the `actions` prop
|
|
16
16
|
- Manages per-view UI state in an `@xstate/store` atom (automatic or caller-supplied)
|
|
17
17
|
|
|
18
|
-
Per [Play RFC](
|
|
18
|
+
Per [Play RFC](../../../rfc/play.md):
|
|
19
19
|
|
|
20
20
|
- **Actor Authority (INV-01):** Guards in the machine decide all state transitions
|
|
21
21
|
- **Passive Infrastructure (INV-04):** React observes signals and dispatches events — never decides
|
|
@@ -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.24/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.24/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.24/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.
|
|
@@ -359,7 +359,7 @@ React.Component.getSnapshotBeforeUpdate;
|
|
|
359
359
|
render(): ReactNode;
|
|
360
360
|
```
|
|
361
361
|
|
|
362
|
-
Defined in: [packages/play-react/src/PlayErrorBoundary.tsx:70](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
362
|
+
Defined in: [packages/play-react/src/PlayErrorBoundary.tsx:70](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.24/packages/play-react/src/PlayErrorBoundary.tsx#L70)
|
|
363
363
|
|
|
364
364
|
#### Returns
|
|
365
365
|
|
|
@@ -578,7 +578,7 @@ React.Component.UNSAFE_componentWillUpdate;
|
|
|
578
578
|
static getDerivedStateFromError(error): PlayErrorBoundaryState;
|
|
579
579
|
```
|
|
580
580
|
|
|
581
|
-
Defined in: [packages/play-react/src/PlayErrorBoundary.tsx:62](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
581
|
+
Defined in: [packages/play-react/src/PlayErrorBoundary.tsx:62](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.24/packages/play-react/src/PlayErrorBoundary.tsx#L62)
|
|
582
582
|
|
|
583
583
|
#### Parameters
|
|
584
584
|
|
|
@@ -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.24/packages/play-react/src/useActor.ts#L30)
|
|
10
10
|
|
|
11
11
|
## Returns
|
|
12
12
|
|
|
@@ -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.24/packages/play-react/src/useSignalEffect.ts#L71)
|
|
10
10
|
|
|
11
11
|
React hook that subscribes to signal changes and runs effect callback
|
|
12
12
|
|
|
@@ -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/v1.0.0-beta.
|
|
5
|
+
Defined in: [packages/play-react/src/PlayErrorBoundary.tsx:14](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.24/packages/play-react/src/PlayErrorBoundary.tsx#L14)
|
|
6
6
|
|
|
7
7
|
Props for PlayErrorBoundary
|
|
8
8
|
|
|
@@ -10,6 +10,6 @@ Props for PlayErrorBoundary
|
|
|
10
10
|
|
|
11
11
|
| Property | Type | Description | Defined in |
|
|
12
12
|
| ------------------------------------------ | --------------------------- | --------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
13
|
-
| <a id="property-children"></a> `children` | `ReactNode` | Child components to render | [packages/play-react/src/PlayErrorBoundary.tsx:18](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
14
|
-
| <a id="property-fallback"></a> `fallback?` | `ReactNode` | Fallback UI to render when a child component throws. Defaults to null. | [packages/play-react/src/PlayErrorBoundary.tsx:16](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
15
|
-
| <a id="property-onerror"></a> `onError?` | (`error`, `info`) => `void` | Optional error handler callback — forwards errors to observability tools (Sentry, etc.) | [packages/play-react/src/PlayErrorBoundary.tsx:20](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
13
|
+
| <a id="property-children"></a> `children` | `ReactNode` | Child components to render | [packages/play-react/src/PlayErrorBoundary.tsx:18](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.24/packages/play-react/src/PlayErrorBoundary.tsx#L18) |
|
|
14
|
+
| <a id="property-fallback"></a> `fallback?` | `ReactNode` | Fallback UI to render when a child component throws. Defaults to null. | [packages/play-react/src/PlayErrorBoundary.tsx:16](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.24/packages/play-react/src/PlayErrorBoundary.tsx#L16) |
|
|
15
|
+
| <a id="property-onerror"></a> `onError?` | (`error`, `info`) => `void` | Optional error handler callback — forwards errors to observability tools (Sentry, etc.) | [packages/play-react/src/PlayErrorBoundary.tsx:20](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.24/packages/play-react/src/PlayErrorBoundary.tsx#L20) |
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
# Interface: PlayErrorBoundaryState
|
|
4
4
|
|
|
5
|
-
Defined in: [packages/play-react/src/PlayErrorBoundary.tsx:28](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
5
|
+
Defined in: [packages/play-react/src/PlayErrorBoundary.tsx:28](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.24/packages/play-react/src/PlayErrorBoundary.tsx#L28)
|
|
6
6
|
|
|
7
7
|
Internal state shape for PlayErrorBoundary
|
|
8
8
|
|
|
@@ -10,5 +10,5 @@ Internal state shape for PlayErrorBoundary
|
|
|
10
10
|
|
|
11
11
|
| Property | Type | Defined in |
|
|
12
12
|
| ----------------------------------------- | ----------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
13
|
-
| <a id="property-error"></a> `error` | `Error` \| `null` | [packages/play-react/src/PlayErrorBoundary.tsx:30](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
14
|
-
| <a id="property-haserror"></a> `hasError` | `boolean` | [packages/play-react/src/PlayErrorBoundary.tsx:29](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
13
|
+
| <a id="property-error"></a> `error` | `Error` \| `null` | [packages/play-react/src/PlayErrorBoundary.tsx:30](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.24/packages/play-react/src/PlayErrorBoundary.tsx#L30) |
|
|
14
|
+
| <a id="property-haserror"></a> `hasError` | `boolean` | [packages/play-react/src/PlayErrorBoundary.tsx:29](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.24/packages/play-react/src/PlayErrorBoundary.tsx#L29) |
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
# Interface: PlayRendererProps\<TLogic\>
|
|
4
4
|
|
|
5
|
-
Defined in: [packages/play-react/src/types.ts:33](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
5
|
+
Defined in: [packages/play-react/src/types.ts:33](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.24/packages/play-react/src/types.ts#L33)
|
|
6
6
|
|
|
7
7
|
Props for PlayRenderer component
|
|
8
8
|
|
|
@@ -16,9 +16,9 @@ Props for PlayRenderer component
|
|
|
16
16
|
|
|
17
17
|
| Property | Type | Description | Defined in |
|
|
18
18
|
| ------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
19
|
-
| <a id="property-actions"></a> `actions?` | `object` | Maps json-render action names to XState event type strings. Values are constrained to `EventFromLogic<TLogic>["type"]` — passing a non-existent event type string is a compile error when TLogic is specified. | [packages/play-react/src/types.ts:70](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
20
|
-
| <a id="property-actor"></a> `actor` | [`AbstractActor`](../../play-actor/classes/AbstractActor.md)\<`TLogic`, [`EventObject`](https://www.jsdocs.io/package/xstate#EventObject)\> & [`Viewable`](../../play-actor/interfaces/Viewable.md) | Actor instance with currentView signal (requires Viewable capability) | [packages/play-react/src/types.ts:35](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
21
|
-
| <a id="property-fallback"></a> `fallback?` | `ReactNode` | Optional component shown when currentView is null | [packages/play-react/src/types.ts:51](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
22
|
-
| <a id="property-onerror"></a> `onError?` | (`error`, `info`) => `void` | Optional callback invoked when a catalog component throws during render. Receives the error and React ErrorInfo — use to forward to Sentry, Datadog, etc. | [packages/play-react/src/types.ts:63](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
23
|
-
| <a id="property-registry"></a> `registry` | `ComponentRegistry` | ComponentRegistry from defineRegistry() in @json-render/react | [packages/play-react/src/types.ts:38](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
24
|
-
| <a id="property-store"></a> `store?` | `StateStore` | Optional external StateStore (e.g. from @json-render/xstate). When provided, PlayRenderer operates in controlled mode — spec.state is ignored and the store is the single source of truth for UI state. When omitted, a fresh @xstate/store atom is created internally per view transition, seeded from spec.state. | [packages/play-react/src/types.ts:48](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
19
|
+
| <a id="property-actions"></a> `actions?` | `object` | Maps json-render action names to XState event type strings. Values are constrained to `EventFromLogic<TLogic>["type"]` — passing a non-existent event type string is a compile error when TLogic is specified. | [packages/play-react/src/types.ts:70](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.24/packages/play-react/src/types.ts#L70) |
|
|
20
|
+
| <a id="property-actor"></a> `actor` | [`AbstractActor`](../../play-actor/classes/AbstractActor.md)\<`TLogic`, [`EventObject`](https://www.jsdocs.io/package/xstate#EventObject)\> & [`Viewable`](../../play-actor/interfaces/Viewable.md) | Actor instance with currentView signal (requires Viewable capability) | [packages/play-react/src/types.ts:35](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.24/packages/play-react/src/types.ts#L35) |
|
|
21
|
+
| <a id="property-fallback"></a> `fallback?` | `ReactNode` | Optional component shown when currentView is null | [packages/play-react/src/types.ts:51](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.24/packages/play-react/src/types.ts#L51) |
|
|
22
|
+
| <a id="property-onerror"></a> `onError?` | (`error`, `info`) => `void` | Optional callback invoked when a catalog component throws during render. Receives the error and React ErrorInfo — use to forward to Sentry, Datadog, etc. | [packages/play-react/src/types.ts:63](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.24/packages/play-react/src/types.ts#L63) |
|
|
23
|
+
| <a id="property-registry"></a> `registry` | `ComponentRegistry` | ComponentRegistry from defineRegistry() in @json-render/react | [packages/play-react/src/types.ts:38](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.24/packages/play-react/src/types.ts#L38) |
|
|
24
|
+
| <a id="property-store"></a> `store?` | `StateStore` | Optional external StateStore (e.g. from @json-render/xstate). When provided, PlayRenderer operates in controlled mode — spec.state is ignored and the store is the single source of truth for UI state. When omitted, a fresh @xstate/store atom is created internally per view transition, seeded from spec.state. | [packages/play-react/src/types.ts:48](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.24/packages/play-react/src/types.ts#L48) |
|
|
@@ -6,4 +6,4 @@
|
|
|
6
6
|
type PlayActor = AbstractActor<AnyActorLogic>;
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
Defined in: [packages/play-react/src/useActor.ts:26](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
9
|
+
Defined in: [packages/play-react/src/useActor.ts:26](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.24/packages/play-react/src/useActor.ts#L26)
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
const PlayRenderer: React.FC<PlayRendererProps>;
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
Defined in: [packages/play-react/src/PlayRenderer.tsx:65](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.
|
|
9
|
+
Defined in: [packages/play-react/src/PlayRenderer.tsx:65](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.24/packages/play-react/src/PlayRenderer.tsx#L65)
|
|
10
10
|
|
|
11
11
|
Main renderer component that subscribes to actor signals and renders UI
|
|
12
12
|
via @json-render/react Renderer.
|