@xmachines/docs 1.0.0-beta.10
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/LICENSE +21 -0
- package/README.md +15 -0
- package/api/@xmachines/play/README.md +130 -0
- package/api/@xmachines/play/type-aliases/PlayEvent.md +81 -0
- package/api/@xmachines/play-actor/README.md +247 -0
- package/api/@xmachines/play-actor/classes/AbstractActor.md +520 -0
- package/api/@xmachines/play-actor/interfaces/Routable.md +29 -0
- package/api/@xmachines/play-actor/interfaces/ViewMetadata.md +17 -0
- package/api/@xmachines/play-actor/interfaces/Viewable.md +12 -0
- package/api/@xmachines/play-catalog/README.md +331 -0
- package/api/@xmachines/play-catalog/functions/defineCatalog.md +98 -0
- package/api/@xmachines/play-catalog/functions/defineComponents.md +134 -0
- package/api/@xmachines/play-catalog/type-aliases/Catalog.md +48 -0
- package/api/@xmachines/play-catalog/type-aliases/ComponentsFor.md +20 -0
- package/api/@xmachines/play-catalog/type-aliases/InferComponentProps.md +65 -0
- package/api/@xmachines/play-catalog/type-aliases/NoExtraKeys.md +17 -0
- package/api/@xmachines/play-react/README.md +423 -0
- package/api/@xmachines/play-react/classes/PlayErrorBoundary.md +613 -0
- package/api/@xmachines/play-react/functions/useSignalEffect.md +68 -0
- package/api/@xmachines/play-react/interfaces/PlayErrorBoundaryProps.md +15 -0
- package/api/@xmachines/play-react/interfaces/PlayErrorBoundaryState.md +14 -0
- package/api/@xmachines/play-react/interfaces/PlayRendererProps.md +15 -0
- package/api/@xmachines/play-react/variables/PlayRenderer.md +64 -0
- package/api/@xmachines/play-react-router/README.md +198 -0
- package/api/@xmachines/play-react-router/classes/ReactRouterBridge.md +321 -0
- package/api/@xmachines/play-react-router/classes/RouteMap.md +137 -0
- package/api/@xmachines/play-react-router/functions/PlayRouterProvider.md +19 -0
- package/api/@xmachines/play-react-router/functions/createRouteMapFromTree.md +35 -0
- package/api/@xmachines/play-react-router/interfaces/PlayRouteEvent.md +119 -0
- package/api/@xmachines/play-react-router/interfaces/PlayRouterProviderProps.md +14 -0
- package/api/@xmachines/play-react-router/interfaces/RouteMapping.md +17 -0
- package/api/@xmachines/play-react-router/interfaces/RouterBridge.md +104 -0
- package/api/@xmachines/play-react-router-demo/README.md +137 -0
- package/api/@xmachines/play-router/README.md +502 -0
- package/api/@xmachines/play-router/classes/BaseRouteMap.md +142 -0
- package/api/@xmachines/play-router/classes/RouterBridgeBase.md +300 -0
- package/api/@xmachines/play-router/functions/buildRouteTree.md +27 -0
- package/api/@xmachines/play-router/functions/connectRouter.md +67 -0
- package/api/@xmachines/play-router/functions/crawlMachine.md +92 -0
- package/api/@xmachines/play-router/functions/createBrowserHistory.md +47 -0
- package/api/@xmachines/play-router/functions/createRouteMap.md +53 -0
- package/api/@xmachines/play-router/functions/createRouter.md +76 -0
- package/api/@xmachines/play-router/functions/detectDuplicateRoutes.md +32 -0
- package/api/@xmachines/play-router/functions/extractMachineRoutes.md +64 -0
- package/api/@xmachines/play-router/functions/extractRoute.md +45 -0
- package/api/@xmachines/play-router/functions/findRouteById.md +37 -0
- package/api/@xmachines/play-router/functions/findRouteByPath.md +39 -0
- package/api/@xmachines/play-router/functions/getNavigableRoutes.md +35 -0
- package/api/@xmachines/play-router/functions/getRoutableRoutes.md +39 -0
- package/api/@xmachines/play-router/functions/routeExists.md +26 -0
- package/api/@xmachines/play-router/functions/validateRouteFormat.md +29 -0
- package/api/@xmachines/play-router/functions/validateStateExists.md +29 -0
- package/api/@xmachines/play-router/interfaces/BaseRouteMapping.md +27 -0
- package/api/@xmachines/play-router/interfaces/BrowserHistory.md +172 -0
- package/api/@xmachines/play-router/interfaces/BrowserWindow.md +69 -0
- package/api/@xmachines/play-router/interfaces/ConnectRouterOptions.md +13 -0
- package/api/@xmachines/play-router/interfaces/PlayRouteEvent.md +119 -0
- package/api/@xmachines/play-router/interfaces/RouteInfo.md +19 -0
- package/api/@xmachines/play-router/interfaces/RouteMap.md +56 -0
- package/api/@xmachines/play-router/interfaces/RouteNode.md +21 -0
- package/api/@xmachines/play-router/interfaces/RouteObject.md +21 -0
- package/api/@xmachines/play-router/interfaces/RouteTree.md +20 -0
- package/api/@xmachines/play-router/interfaces/RouterBridge.md +104 -0
- package/api/@xmachines/play-router/interfaces/StateVisit.md +15 -0
- package/api/@xmachines/play-router/interfaces/VanillaRouter.md +28 -0
- package/api/@xmachines/play-router/type-aliases/RouteMetadata.md +11 -0
- package/api/@xmachines/play-router-demo/README.md +137 -0
- package/api/@xmachines/play-signals/README.md +176 -0
- package/api/@xmachines/play-signals/interfaces/ComputedOptions.md +34 -0
- package/api/@xmachines/play-signals/interfaces/SignalComputed.md +49 -0
- package/api/@xmachines/play-signals/interfaces/SignalOptions.md +35 -0
- package/api/@xmachines/play-signals/interfaces/SignalState.md +68 -0
- package/api/@xmachines/play-signals/interfaces/SignalWatcher.md +97 -0
- package/api/@xmachines/play-signals/namespaces/Signal/README.md +22 -0
- package/api/@xmachines/play-signals/namespaces/Signal/classes/Computed.md +52 -0
- package/api/@xmachines/play-signals/namespaces/Signal/classes/State.md +72 -0
- package/api/@xmachines/play-signals/namespaces/Signal/interfaces/Options.md +19 -0
- package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/README.md +21 -0
- package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/classes/Watcher.md +85 -0
- package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/currentComputed.md +13 -0
- package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/hasSinks.md +19 -0
- package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/hasSources.md +19 -0
- package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/introspectSinks.md +19 -0
- package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/introspectSources.md +19 -0
- package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/untrack.md +25 -0
- package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/variables/unwatched.md +9 -0
- package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/variables/watched.md +9 -0
- package/api/@xmachines/play-signals/namespaces/Signal/variables/isComputed.md +19 -0
- package/api/@xmachines/play-signals/namespaces/Signal/variables/isState.md +19 -0
- package/api/@xmachines/play-signals/namespaces/Signal/variables/isWatcher.md +19 -0
- package/api/@xmachines/play-signals/type-aliases/WatcherNotify.md +32 -0
- package/api/@xmachines/play-solid/README.md +311 -0
- package/api/@xmachines/play-solid/interfaces/PlayRendererProps.md +15 -0
- package/api/@xmachines/play-solid/variables/PlayRenderer.md +70 -0
- package/api/@xmachines/play-solid-router/README.md +666 -0
- package/api/@xmachines/play-solid-router/classes/RouteMap.md +150 -0
- package/api/@xmachines/play-solid-router/classes/SolidRouterBridge.md +347 -0
- package/api/@xmachines/play-solid-router/functions/PlayRouterProvider.md +19 -0
- package/api/@xmachines/play-solid-router/functions/createRouteMap.md +32 -0
- package/api/@xmachines/play-solid-router/interfaces/AbstractActor.md +486 -0
- package/api/@xmachines/play-solid-router/interfaces/PlayRouteEvent.md +119 -0
- package/api/@xmachines/play-solid-router/interfaces/PlayRouterProviderProps.md +14 -0
- package/api/@xmachines/play-solid-router/interfaces/RouteMapping.md +14 -0
- package/api/@xmachines/play-solid-router/interfaces/RouterBridge.md +104 -0
- package/api/@xmachines/play-solid-router/type-aliases/RoutableActor.md +9 -0
- package/api/@xmachines/play-solid-router/type-aliases/SolidRouterHooks.md +51 -0
- package/api/@xmachines/play-solid-router-demo/README.md +127 -0
- package/api/@xmachines/play-tanstack-react-router/README.md +226 -0
- package/api/@xmachines/play-tanstack-react-router/classes/RouteMap.md +137 -0
- package/api/@xmachines/play-tanstack-react-router/classes/TanStackReactRouterBridge.md +348 -0
- package/api/@xmachines/play-tanstack-react-router/functions/PlayRouterProvider.md +19 -0
- package/api/@xmachines/play-tanstack-react-router/functions/createRouteMap.md +53 -0
- package/api/@xmachines/play-tanstack-react-router/functions/createRouteMapFromTree.md +35 -0
- package/api/@xmachines/play-tanstack-react-router/functions/extractParams.md +38 -0
- package/api/@xmachines/play-tanstack-react-router/functions/extractQueryParams.md +33 -0
- package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouteEvent.md +119 -0
- package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouterProviderProps.md +14 -0
- package/api/@xmachines/play-tanstack-react-router/interfaces/RouteMapping.md +17 -0
- package/api/@xmachines/play-tanstack-react-router/interfaces/RouteNavigateEvent.md +26 -0
- package/api/@xmachines/play-tanstack-react-router/interfaces/RouterBridge.md +104 -0
- package/api/@xmachines/play-tanstack-react-router/type-aliases/TanStackRouterInstance.md +9 -0
- package/api/@xmachines/play-tanstack-react-router/type-aliases/TanStackRouterLike.md +78 -0
- package/api/@xmachines/play-tanstack-react-router/variables/extractMachineRoutes.md +64 -0
- package/api/@xmachines/play-tanstack-react-router-demo/README.md +126 -0
- package/api/@xmachines/play-tanstack-solid-router/README.md +285 -0
- package/api/@xmachines/play-tanstack-solid-router/classes/RouteMap.md +150 -0
- package/api/@xmachines/play-tanstack-solid-router/classes/SolidRouterBridge.md +343 -0
- package/api/@xmachines/play-tanstack-solid-router/functions/PlayRouterProvider.md +19 -0
- package/api/@xmachines/play-tanstack-solid-router/functions/createRouteMap.md +32 -0
- package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayRouteEvent.md +119 -0
- package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayRouterProviderProps.md +14 -0
- package/api/@xmachines/play-tanstack-solid-router/interfaces/RouteMapping.md +23 -0
- package/api/@xmachines/play-tanstack-solid-router/interfaces/RouterBridge.md +104 -0
- package/api/@xmachines/play-tanstack-solid-router/type-aliases/RoutableActor.md +9 -0
- package/api/@xmachines/play-tanstack-solid-router/type-aliases/TanStackRouterInstance.md +9 -0
- package/api/@xmachines/play-tanstack-solid-router/type-aliases/TanStackRouterLike.md +78 -0
- package/api/@xmachines/play-tanstack-solid-router-demo/README.md +126 -0
- package/api/@xmachines/play-vue/README.md +292 -0
- package/api/@xmachines/play-vue/interfaces/PlayRendererProps.md +14 -0
- package/api/@xmachines/play-vue/variables/PlayRenderer.md +9 -0
- package/api/@xmachines/play-vue-router/README.md +604 -0
- package/api/@xmachines/play-vue-router/classes/RouteMap.md +209 -0
- package/api/@xmachines/play-vue-router/classes/VueBaseRouteMap.md +201 -0
- package/api/@xmachines/play-vue-router/classes/VueRouterBridge.md +360 -0
- package/api/@xmachines/play-vue-router/functions/createRouteMap.md +19 -0
- package/api/@xmachines/play-vue-router/interfaces/PlayRouteEvent.md +119 -0
- package/api/@xmachines/play-vue-router/interfaces/RouteMapping.md +15 -0
- package/api/@xmachines/play-vue-router/interfaces/RouterBridge.md +104 -0
- package/api/@xmachines/play-vue-router/type-aliases/RoutableActor.md +9 -0
- package/api/@xmachines/play-vue-router/variables/PlayRouterProvider.md +67 -0
- package/api/@xmachines/play-vue-router-demo/README.md +133 -0
- package/api/@xmachines/play-xstate/README.md +512 -0
- package/api/@xmachines/play-xstate/classes/PlayerActor.md +527 -0
- package/api/@xmachines/play-xstate/functions/buildRouteUrl.md +43 -0
- package/api/@xmachines/play-xstate/functions/composeGuards.md +79 -0
- package/api/@xmachines/play-xstate/functions/composeGuardsOr.md +67 -0
- package/api/@xmachines/play-xstate/functions/definePlayer.md +127 -0
- package/api/@xmachines/play-xstate/functions/deriveRoute.md +109 -0
- package/api/@xmachines/play-xstate/functions/eventMatches.md +40 -0
- package/api/@xmachines/play-xstate/functions/formatPlayRouteTransitions.md +54 -0
- package/api/@xmachines/play-xstate/functions/hasContext.md +42 -0
- package/api/@xmachines/play-xstate/functions/isAbsoluteRoute.md +41 -0
- package/api/@xmachines/play-xstate/functions/mergeViewProps.md +26 -0
- package/api/@xmachines/play-xstate/functions/negateGuard.md +61 -0
- package/api/@xmachines/play-xstate/functions/stateMatches.md +25 -0
- package/api/@xmachines/play-xstate/functions/validateComponentBinding.md +39 -0
- package/api/@xmachines/play-xstate/functions/validateViewProps.md +80 -0
- package/api/@xmachines/play-xstate/interfaces/CatalogEntry.md +16 -0
- package/api/@xmachines/play-xstate/interfaces/PlayerConfig.md +24 -0
- package/api/@xmachines/play-xstate/interfaces/PlayerOptions.md +26 -0
- package/api/@xmachines/play-xstate/interfaces/RouteContext.md +22 -0
- package/api/@xmachines/play-xstate/type-aliases/Catalog.md +21 -0
- package/api/@xmachines/play-xstate/type-aliases/ComposedGuard.md +14 -0
- package/api/@xmachines/play-xstate/type-aliases/Guard.md +34 -0
- package/api/@xmachines/play-xstate/type-aliases/GuardArray.md +20 -0
- package/api/@xmachines/play-xstate/type-aliases/PlayerFactory.md +29 -0
- package/api/@xmachines/play-xstate/type-aliases/RouteMachineConfig.md +45 -0
- package/api/@xmachines/play-xstate/type-aliases/RouteStateNode.md +51 -0
- package/api/@xmachines/play-xstate/type-aliases/ValidationResult.md +17 -0
- package/api/@xmachines/play-xstate/type-aliases/ViewMergeContext.md +35 -0
- package/api/@xmachines/shared/README.md +379 -0
- package/api/@xmachines/shared/functions/defineXmVitestConfig.md +29 -0
- package/api/@xmachines/shared/functions/xmAliases.md +24 -0
- package/api/README.md +25 -0
- package/api/llms.txt +26 -0
- package/examples/README.md +63 -0
- package/examples/basic-state-machine.md +70 -0
- package/examples/form-validation.md +167 -0
- package/examples/multi-router-integration.md +277 -0
- package/examples/routing-patterns.md +260 -0
- package/examples/traffic-light.md +99 -0
- package/guides/README.md +29 -0
- package/guides/getting-started.md +223 -0
- package/guides/installation.md +323 -0
- package/index.d.ts +3 -0
- package/index.js +4 -0
- package/package.json +54 -0
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
[Documentation](../../../../../../../README.md) / [@xmachines/play-signals](../../../../../README.md) / [Signal](../../../README.md) / [subtle](../README.md) / Watcher
|
|
2
|
+
|
|
3
|
+
# Class: Watcher
|
|
4
|
+
|
|
5
|
+
Defined in: node_modules/signal-polyfill/dist/wrapper.d.ts:29
|
|
6
|
+
|
|
7
|
+
## Constructors
|
|
8
|
+
|
|
9
|
+
### Constructor
|
|
10
|
+
|
|
11
|
+
```ts
|
|
12
|
+
new Watcher(notify): Watcher;
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
Defined in: node_modules/signal-polyfill/dist/wrapper.d.ts:32
|
|
16
|
+
|
|
17
|
+
#### Parameters
|
|
18
|
+
|
|
19
|
+
| Parameter | Type |
|
|
20
|
+
| --------- | ------------------ |
|
|
21
|
+
| `notify` | (`this`) => `void` |
|
|
22
|
+
|
|
23
|
+
#### Returns
|
|
24
|
+
|
|
25
|
+
`Watcher`
|
|
26
|
+
|
|
27
|
+
## Properties
|
|
28
|
+
|
|
29
|
+
| Property | Modifier | Type | Defined in |
|
|
30
|
+
| ----------------------------------- | ---------- | -------------- | ------------------------------------------------- |
|
|
31
|
+
| <a id="property-node"></a> `[NODE]` | `readonly` | `ReactiveNode` | node_modules/signal-polyfill/dist/wrapper.d.ts:31 |
|
|
32
|
+
|
|
33
|
+
## Methods
|
|
34
|
+
|
|
35
|
+
### getPending()
|
|
36
|
+
|
|
37
|
+
```ts
|
|
38
|
+
getPending(): Computed<any>[];
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
Defined in: node_modules/signal-polyfill/dist/wrapper.d.ts:35
|
|
42
|
+
|
|
43
|
+
#### Returns
|
|
44
|
+
|
|
45
|
+
[`Computed`](../../../classes/Computed.md)\<`any`\>[]
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
### unwatch()
|
|
50
|
+
|
|
51
|
+
```ts
|
|
52
|
+
unwatch(...signals): void;
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
Defined in: node_modules/signal-polyfill/dist/wrapper.d.ts:34
|
|
56
|
+
|
|
57
|
+
#### Parameters
|
|
58
|
+
|
|
59
|
+
| Parameter | Type |
|
|
60
|
+
| ------------ | ---------------------- |
|
|
61
|
+
| ...`signals` | `AnySignal`\<`any`\>[] |
|
|
62
|
+
|
|
63
|
+
#### Returns
|
|
64
|
+
|
|
65
|
+
`void`
|
|
66
|
+
|
|
67
|
+
---
|
|
68
|
+
|
|
69
|
+
### watch()
|
|
70
|
+
|
|
71
|
+
```ts
|
|
72
|
+
watch(...signals): void;
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
Defined in: node_modules/signal-polyfill/dist/wrapper.d.ts:33
|
|
76
|
+
|
|
77
|
+
#### Parameters
|
|
78
|
+
|
|
79
|
+
| Parameter | Type |
|
|
80
|
+
| ------------ | ---------------------- |
|
|
81
|
+
| ...`signals` | `AnySignal`\<`any`\>[] |
|
|
82
|
+
|
|
83
|
+
#### Returns
|
|
84
|
+
|
|
85
|
+
`void`
|
package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/currentComputed.md
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
[Documentation](../../../../../../../README.md) / [@xmachines/play-signals](../../../../../README.md) / [Signal](../../../README.md) / [subtle](../README.md) / currentComputed
|
|
2
|
+
|
|
3
|
+
# Function: currentComputed()
|
|
4
|
+
|
|
5
|
+
```ts
|
|
6
|
+
function currentComputed(): Computed<any> | undefined;
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
Defined in: node_modules/signal-polyfill/dist/wrapper.d.ts:37
|
|
10
|
+
|
|
11
|
+
## Returns
|
|
12
|
+
|
|
13
|
+
[`Computed`](../../../classes/Computed.md)\<`any`\> \| `undefined`
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
[Documentation](../../../../../../../README.md) / [@xmachines/play-signals](../../../../../README.md) / [Signal](../../../README.md) / [subtle](../README.md) / hasSinks
|
|
2
|
+
|
|
3
|
+
# Function: hasSinks()
|
|
4
|
+
|
|
5
|
+
```ts
|
|
6
|
+
function hasSinks(signal): boolean;
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
Defined in: node_modules/signal-polyfill/dist/wrapper.d.ts:27
|
|
10
|
+
|
|
11
|
+
## Parameters
|
|
12
|
+
|
|
13
|
+
| Parameter | Type |
|
|
14
|
+
| --------- | ----------- |
|
|
15
|
+
| `signal` | `AnySignal` |
|
|
16
|
+
|
|
17
|
+
## Returns
|
|
18
|
+
|
|
19
|
+
`boolean`
|
package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/hasSources.md
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
[Documentation](../../../../../../../README.md) / [@xmachines/play-signals](../../../../../README.md) / [Signal](../../../README.md) / [subtle](../README.md) / hasSources
|
|
2
|
+
|
|
3
|
+
# Function: hasSources()
|
|
4
|
+
|
|
5
|
+
```ts
|
|
6
|
+
function hasSources(signal): boolean;
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
Defined in: node_modules/signal-polyfill/dist/wrapper.d.ts:28
|
|
10
|
+
|
|
11
|
+
## Parameters
|
|
12
|
+
|
|
13
|
+
| Parameter | Type |
|
|
14
|
+
| --------- | --------- |
|
|
15
|
+
| `signal` | `AnySink` |
|
|
16
|
+
|
|
17
|
+
## Returns
|
|
18
|
+
|
|
19
|
+
`boolean`
|
package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/introspectSinks.md
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
[Documentation](../../../../../../../README.md) / [@xmachines/play-signals](../../../../../README.md) / [Signal](../../../README.md) / [subtle](../README.md) / introspectSinks
|
|
2
|
+
|
|
3
|
+
# Function: introspectSinks()
|
|
4
|
+
|
|
5
|
+
```ts
|
|
6
|
+
function introspectSinks(signal): AnySink[];
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
Defined in: node_modules/signal-polyfill/dist/wrapper.d.ts:26
|
|
10
|
+
|
|
11
|
+
## Parameters
|
|
12
|
+
|
|
13
|
+
| Parameter | Type |
|
|
14
|
+
| --------- | ----------- |
|
|
15
|
+
| `signal` | `AnySignal` |
|
|
16
|
+
|
|
17
|
+
## Returns
|
|
18
|
+
|
|
19
|
+
`AnySink`[]
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
[Documentation](../../../../../../../README.md) / [@xmachines/play-signals](../../../../../README.md) / [Signal](../../../README.md) / [subtle](../README.md) / introspectSources
|
|
2
|
+
|
|
3
|
+
# Function: introspectSources()
|
|
4
|
+
|
|
5
|
+
```ts
|
|
6
|
+
function introspectSources(sink): AnySignal<any>[];
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
Defined in: node_modules/signal-polyfill/dist/wrapper.d.ts:25
|
|
10
|
+
|
|
11
|
+
## Parameters
|
|
12
|
+
|
|
13
|
+
| Parameter | Type |
|
|
14
|
+
| --------- | --------- |
|
|
15
|
+
| `sink` | `AnySink` |
|
|
16
|
+
|
|
17
|
+
## Returns
|
|
18
|
+
|
|
19
|
+
`AnySignal`\<`any`\>[]
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
[Documentation](../../../../../../../README.md) / [@xmachines/play-signals](../../../../../README.md) / [Signal](../../../README.md) / [subtle](../README.md) / untrack
|
|
2
|
+
|
|
3
|
+
# Function: untrack()
|
|
4
|
+
|
|
5
|
+
```ts
|
|
6
|
+
function untrack<T>(cb): T;
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
Defined in: node_modules/signal-polyfill/dist/wrapper.d.ts:24
|
|
10
|
+
|
|
11
|
+
## Type Parameters
|
|
12
|
+
|
|
13
|
+
| Type Parameter |
|
|
14
|
+
| -------------- |
|
|
15
|
+
| `T` |
|
|
16
|
+
|
|
17
|
+
## Parameters
|
|
18
|
+
|
|
19
|
+
| Parameter | Type |
|
|
20
|
+
| --------- | --------- |
|
|
21
|
+
| `cb` | () => `T` |
|
|
22
|
+
|
|
23
|
+
## Returns
|
|
24
|
+
|
|
25
|
+
`T`
|
package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/variables/unwatched.md
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
[Documentation](../../../../../../../README.md) / [@xmachines/play-signals](../../../../../README.md) / [Signal](../../../README.md) / [subtle](../README.md) / unwatched
|
|
2
|
+
|
|
3
|
+
# Variable: unwatched
|
|
4
|
+
|
|
5
|
+
```ts
|
|
6
|
+
const unwatched: unique symbol;
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
Defined in: node_modules/signal-polyfill/dist/wrapper.d.ts:39
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
[Documentation](../../../../../../../README.md) / [@xmachines/play-signals](../../../../../README.md) / [Signal](../../../README.md) / [subtle](../README.md) / watched
|
|
2
|
+
|
|
3
|
+
# Variable: watched
|
|
4
|
+
|
|
5
|
+
```ts
|
|
6
|
+
const watched: unique symbol;
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
Defined in: node_modules/signal-polyfill/dist/wrapper.d.ts:38
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
[Documentation](../../../../../README.md) / [@xmachines/play-signals](../../../README.md) / [Signal](../README.md) / isComputed
|
|
2
|
+
|
|
3
|
+
# Variable: isComputed
|
|
4
|
+
|
|
5
|
+
```ts
|
|
6
|
+
isComputed: (s) => boolean;
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
Defined in: node_modules/signal-polyfill/dist/wrapper.d.ts:7
|
|
10
|
+
|
|
11
|
+
## Parameters
|
|
12
|
+
|
|
13
|
+
| Parameter | Type |
|
|
14
|
+
| --------- | ----- |
|
|
15
|
+
| `s` | `any` |
|
|
16
|
+
|
|
17
|
+
## Returns
|
|
18
|
+
|
|
19
|
+
`boolean`
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
[Documentation](../../../../../README.md) / [@xmachines/play-signals](../../../README.md) / [Signal](../README.md) / isState
|
|
2
|
+
|
|
3
|
+
# Variable: isState
|
|
4
|
+
|
|
5
|
+
```ts
|
|
6
|
+
isState: (s) => boolean;
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
Defined in: node_modules/signal-polyfill/dist/wrapper.d.ts:7
|
|
10
|
+
|
|
11
|
+
## Parameters
|
|
12
|
+
|
|
13
|
+
| Parameter | Type |
|
|
14
|
+
| --------- | ----- |
|
|
15
|
+
| `s` | `any` |
|
|
16
|
+
|
|
17
|
+
## Returns
|
|
18
|
+
|
|
19
|
+
`boolean`
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
[Documentation](../../../../../README.md) / [@xmachines/play-signals](../../../README.md) / [Signal](../README.md) / isWatcher
|
|
2
|
+
|
|
3
|
+
# Variable: isWatcher
|
|
4
|
+
|
|
5
|
+
```ts
|
|
6
|
+
isWatcher: (s) => boolean;
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
Defined in: node_modules/signal-polyfill/dist/wrapper.d.ts:7
|
|
10
|
+
|
|
11
|
+
## Parameters
|
|
12
|
+
|
|
13
|
+
| Parameter | Type |
|
|
14
|
+
| --------- | ----- |
|
|
15
|
+
| `s` | `any` |
|
|
16
|
+
|
|
17
|
+
## Returns
|
|
18
|
+
|
|
19
|
+
`boolean`
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
[Documentation](../../../README.md) / [@xmachines/play-signals](../README.md) / WatcherNotify
|
|
2
|
+
|
|
3
|
+
# Type Alias: WatcherNotify
|
|
4
|
+
|
|
5
|
+
```ts
|
|
6
|
+
type WatcherNotify = () => void;
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
Defined in: [packages/play-signals/src/types.ts:139](https://gitlab.com/xmachin-es/xmachines-js/-/blob/00a28432ed57807112288436d1ae4387d9f06919/packages/play-signals/src/types.ts#L139)
|
|
10
|
+
|
|
11
|
+
Notification callback for Signal.subtle.Watcher
|
|
12
|
+
|
|
13
|
+
Invoked when watched signals change. Use microtask batching pattern to coalesce
|
|
14
|
+
rapid updates (see signal-polyfill README for best practices).
|
|
15
|
+
|
|
16
|
+
## Returns
|
|
17
|
+
|
|
18
|
+
`void`
|
|
19
|
+
|
|
20
|
+
## Example
|
|
21
|
+
|
|
22
|
+
```typescript
|
|
23
|
+
import { Signal } from "@xmachines/play-signals";
|
|
24
|
+
|
|
25
|
+
const notify: WatcherNotify = () => {
|
|
26
|
+
queueMicrotask(() => {
|
|
27
|
+
const pending = watcher.getPending();
|
|
28
|
+
// Process pending signal changes
|
|
29
|
+
});
|
|
30
|
+
};
|
|
31
|
+
const watcher = new Signal.subtle.Watcher(notify);
|
|
32
|
+
```
|
|
@@ -0,0 +1,311 @@
|
|
|
1
|
+
[Documentation](../../README.md) / @xmachines/play-solid
|
|
2
|
+
|
|
3
|
+
# @xmachines/play-solid
|
|
4
|
+
|
|
5
|
+
**SolidJS renderer consuming signals and UI schema with provider pattern**
|
|
6
|
+
|
|
7
|
+
Signal-driven SolidJS rendering layer observing actor state with zero SolidJS state for business logic.
|
|
8
|
+
|
|
9
|
+
## Overview
|
|
10
|
+
|
|
11
|
+
`@xmachines/play-solid` provides `PlayRenderer` for building SolidJS UIs that passively observe actor signals. This package enables framework-swappable architecture where SolidJS is just a rendering target subscribing to signal changes — business logic lives entirely in the actor.
|
|
12
|
+
|
|
13
|
+
Per [RFC Play v1](https://gitlab.com/xmachin-es/rfc/-/blob/main/src/play-v1.md), this package implements:
|
|
14
|
+
|
|
15
|
+
- **Signal-Only Reactivity (INV-05):** No createSignal/createStore for business logic, TC39 signals only
|
|
16
|
+
- **Passive Infrastructure (INV-04):** Components observe signals, send events to actor
|
|
17
|
+
|
|
18
|
+
**Key Principle:** SolidJS state is never used for business logic. Signals are the source of truth.
|
|
19
|
+
|
|
20
|
+
Renderer receives actor via props (provider pattern), not children.
|
|
21
|
+
|
|
22
|
+
## Installation
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
npm install solid-js@^1.8.0
|
|
26
|
+
npm install @xmachines/play-solid
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
## Current Exports
|
|
30
|
+
|
|
31
|
+
- `PlayRenderer`
|
|
32
|
+
- `PlayRendererProps` (type)
|
|
33
|
+
|
|
34
|
+
**Peer dependencies:**
|
|
35
|
+
|
|
36
|
+
- `solid-js` ^1.8.0 - SolidJS runtime
|
|
37
|
+
|
|
38
|
+
## Quick Start
|
|
39
|
+
|
|
40
|
+
```tsx
|
|
41
|
+
import { render } from "solid-js/web";
|
|
42
|
+
import { definePlayer } from "@xmachines/play-xstate";
|
|
43
|
+
import { defineCatalog } from "@xmachines/play-catalog";
|
|
44
|
+
import { PlayRenderer } from "@xmachines/play-solid";
|
|
45
|
+
import { z } from "zod";
|
|
46
|
+
|
|
47
|
+
// 1. Define catalog (business logic layer)
|
|
48
|
+
const catalog = defineCatalog({
|
|
49
|
+
LoginForm: z.object({ error: z.string().optional() }),
|
|
50
|
+
Dashboard: z.object({
|
|
51
|
+
userId: z.string(),
|
|
52
|
+
username: z.string(),
|
|
53
|
+
}),
|
|
54
|
+
});
|
|
55
|
+
|
|
56
|
+
// 2. Create SolidJS components (view layer)
|
|
57
|
+
const components = {
|
|
58
|
+
LoginForm: (props) => (
|
|
59
|
+
<form
|
|
60
|
+
onSubmit={(e) => {
|
|
61
|
+
e.preventDefault();
|
|
62
|
+
const data = new FormData(e.currentTarget);
|
|
63
|
+
props.send({
|
|
64
|
+
type: "auth.login",
|
|
65
|
+
username: data.get("username"),
|
|
66
|
+
});
|
|
67
|
+
}}
|
|
68
|
+
>
|
|
69
|
+
{props.error && <p style={{ color: "red" }}>{props.error}</p>}
|
|
70
|
+
<input name="username" required placeholder="Username" />
|
|
71
|
+
<button type="submit">Log In</button>
|
|
72
|
+
</form>
|
|
73
|
+
),
|
|
74
|
+
Dashboard: (props) => (
|
|
75
|
+
<div>
|
|
76
|
+
<h1>Welcome, {props.username}!</h1>
|
|
77
|
+
<p>User ID: {props.userId}</p>
|
|
78
|
+
<button onClick={() => props.send({ type: "auth.logout" })}>Log Out</button>
|
|
79
|
+
</div>
|
|
80
|
+
),
|
|
81
|
+
};
|
|
82
|
+
|
|
83
|
+
// 3. Create player actor (business logic runtime)
|
|
84
|
+
const createPlayer = definePlayer({ machine: authMachine, catalog });
|
|
85
|
+
const actor = createPlayer();
|
|
86
|
+
actor.start();
|
|
87
|
+
|
|
88
|
+
// 4. Render UI (actor via props)
|
|
89
|
+
render(
|
|
90
|
+
() => <PlayRenderer actor={actor} components={components} />,
|
|
91
|
+
document.getElementById("app")!,
|
|
92
|
+
);
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
## API Reference
|
|
96
|
+
|
|
97
|
+
### PlayRenderer
|
|
98
|
+
|
|
99
|
+
Main renderer component subscribing to actor signals and dynamically rendering catalog components:
|
|
100
|
+
|
|
101
|
+
```typescript
|
|
102
|
+
interface PlayRendererProps {
|
|
103
|
+
actor: AbstractActor<any>;
|
|
104
|
+
components: Record<string, Component<any>>;
|
|
105
|
+
fallback?: JSX.Element;
|
|
106
|
+
}
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
**Props:**
|
|
110
|
+
|
|
111
|
+
- `actor` - Actor instance with `currentView` signal
|
|
112
|
+
- `components` - Map of component names to SolidJS components
|
|
113
|
+
- `fallback` - Component shown when `currentView` is null
|
|
114
|
+
|
|
115
|
+
**Behavior:**
|
|
116
|
+
|
|
117
|
+
1. Subscribes to `actor.currentView` signal using a `Signal.subtle.Watcher` inside the component
|
|
118
|
+
2. Looks up component from `components` map using `view.component` string
|
|
119
|
+
3. Renders component with props from `view.props` + `send` function using Solid's `<Dynamic />`
|
|
120
|
+
|
|
121
|
+
**Example:**
|
|
122
|
+
|
|
123
|
+
```tsx
|
|
124
|
+
<PlayRenderer
|
|
125
|
+
actor={actor}
|
|
126
|
+
components={{
|
|
127
|
+
HomePage: (props) => <div>Home</div>,
|
|
128
|
+
AboutPage: (props) => <div>About</div>,
|
|
129
|
+
}}
|
|
130
|
+
fallback={<div>Loading...</div>}
|
|
131
|
+
/>
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
## Examples
|
|
135
|
+
|
|
136
|
+
### Component Receiving Props from Catalog
|
|
137
|
+
|
|
138
|
+
```tsx
|
|
139
|
+
import { PlayRenderer } from "@xmachines/play-solid";
|
|
140
|
+
import { defineCatalog } from "@xmachines/play-catalog";
|
|
141
|
+
import { z } from "zod";
|
|
142
|
+
|
|
143
|
+
// Define schema in catalog
|
|
144
|
+
const catalog = defineCatalog({
|
|
145
|
+
UserProfile: z.object({
|
|
146
|
+
userId: z.string(),
|
|
147
|
+
name: z.string(),
|
|
148
|
+
avatar: z.string().url().optional(),
|
|
149
|
+
stats: z.object({
|
|
150
|
+
posts: z.number(),
|
|
151
|
+
followers: z.number(),
|
|
152
|
+
}),
|
|
153
|
+
}),
|
|
154
|
+
});
|
|
155
|
+
|
|
156
|
+
// Component receives type-safe props + send
|
|
157
|
+
const components = {
|
|
158
|
+
UserProfile: (props) => (
|
|
159
|
+
<div>
|
|
160
|
+
{props.avatar && <img src={props.avatar} alt={props.name} />}
|
|
161
|
+
<h1>{props.name}</h1>
|
|
162
|
+
<p>ID: {props.userId}</p>
|
|
163
|
+
<div>
|
|
164
|
+
<span>{props.stats.posts} posts</span>
|
|
165
|
+
<span>{props.stats.followers} followers</span>
|
|
166
|
+
</div>
|
|
167
|
+
<button
|
|
168
|
+
onClick={() =>
|
|
169
|
+
props.send({
|
|
170
|
+
type: "profile.edit",
|
|
171
|
+
userId: props.userId,
|
|
172
|
+
})
|
|
173
|
+
}
|
|
174
|
+
>
|
|
175
|
+
Edit Profile
|
|
176
|
+
</button>
|
|
177
|
+
</div>
|
|
178
|
+
),
|
|
179
|
+
};
|
|
180
|
+
|
|
181
|
+
<PlayRenderer actor={actor} components={components} />;
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
### Provider Pattern
|
|
185
|
+
|
|
186
|
+
```tsx
|
|
187
|
+
import { PlayTanStackRouterProvider } from "@xmachines/play-tanstack-solid-router";
|
|
188
|
+
import { PlayRenderer } from "@xmachines/play-solid";
|
|
189
|
+
import { createSignal, onCleanup } from "solid-js";
|
|
190
|
+
|
|
191
|
+
// Renderer receives actor via props (not children)
|
|
192
|
+
function App() {
|
|
193
|
+
return (
|
|
194
|
+
<PlayTanStackRouterProvider
|
|
195
|
+
actor={actor}
|
|
196
|
+
router={router}
|
|
197
|
+
routeMap={routeMap}
|
|
198
|
+
renderer={(currentActor, currentRouter) => {
|
|
199
|
+
return (
|
|
200
|
+
<div>
|
|
201
|
+
<Header actor={currentActor} />
|
|
202
|
+
<PlayRenderer actor={currentActor} components={components} />
|
|
203
|
+
<Footer />
|
|
204
|
+
</div>
|
|
205
|
+
);
|
|
206
|
+
}}
|
|
207
|
+
/>
|
|
208
|
+
);
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
// Header component also receives actor
|
|
212
|
+
function Header(props) {
|
|
213
|
+
const [route, setRoute] = createSignal<string | null>(null);
|
|
214
|
+
|
|
215
|
+
// Manual watcher setup for custom component reading signals
|
|
216
|
+
let watcher: Signal.subtle.Watcher;
|
|
217
|
+
|
|
218
|
+
// ... setup watcher to update route signal ...
|
|
219
|
+
|
|
220
|
+
return (
|
|
221
|
+
<header>
|
|
222
|
+
<nav>Current: {route()}</nav>
|
|
223
|
+
</header>
|
|
224
|
+
);
|
|
225
|
+
}
|
|
226
|
+
```
|
|
227
|
+
|
|
228
|
+
## Architecture
|
|
229
|
+
|
|
230
|
+
This package implements **Signal-Only Reactivity (INV-05)** and **Passive Infrastructure (INV-04)**:
|
|
231
|
+
|
|
232
|
+
1. **No Business Logic in SolidJS:**
|
|
233
|
+
- No createSignal/createStore for business state
|
|
234
|
+
- No createEffect for business side effects
|
|
235
|
+
- SolidJS only triggers renders, doesn't control state
|
|
236
|
+
|
|
237
|
+
2. **Signals as Source of Truth:**
|
|
238
|
+
- `actor.currentView.get()` provides UI structure
|
|
239
|
+
- `actor.currentRoute.get()` provides navigation state
|
|
240
|
+
- Components observe signals via explicit watcher patterns
|
|
241
|
+
|
|
242
|
+
3. **Event Forwarding:**
|
|
243
|
+
- Components receive `send` function via props
|
|
244
|
+
- User actions send events to actor (e.g., `{ type: "auth.login" }`)
|
|
245
|
+
- Actor guards validate and process events
|
|
246
|
+
|
|
247
|
+
4. **Microtask Batching:**
|
|
248
|
+
- `Signal.subtle.Watcher` coalesces rapid signal changes
|
|
249
|
+
- Prevents SolidJS thrashing from multiple signal updates
|
|
250
|
+
- Single SolidJS render per microtask batch
|
|
251
|
+
|
|
252
|
+
5. **Explicit Disposal Contract:**
|
|
253
|
+
- Component teardown calls watcher `unwatch` in `onCleanup`
|
|
254
|
+
- Do not rely on GC-only cleanup
|
|
255
|
+
|
|
256
|
+
**Pattern:**
|
|
257
|
+
|
|
258
|
+
- Renderer receives actor via props (provider pattern)
|
|
259
|
+
- Enables composition with navigation, headers, footers
|
|
260
|
+
- Supports multiple renderers in same app
|
|
261
|
+
|
|
262
|
+
**Architectural Invariants:**
|
|
263
|
+
|
|
264
|
+
- **Signal-Only Reactivity (INV-05):** No SolidJS state for business logic
|
|
265
|
+
- **Passive Infrastructure (INV-04):** Components reflect, never decide
|
|
266
|
+
|
|
267
|
+
## Canonical Watcher Lifecycle
|
|
268
|
+
|
|
269
|
+
If you write your own custom integration, use the same watcher flow as `PlayRenderer`:
|
|
270
|
+
|
|
271
|
+
1. `notify` callback runs
|
|
272
|
+
2. Schedule work with `queueMicrotask`
|
|
273
|
+
3. Drain `watcher.getPending()`
|
|
274
|
+
4. Read actor signals and update SolidJS-local signal state (`setSignal()`)
|
|
275
|
+
5. Re-arm with `watch(...)` or `watch()`
|
|
276
|
+
|
|
277
|
+
Watcher notify is one-shot. Re-arm is required for continuous observation.
|
|
278
|
+
|
|
279
|
+
## Benefits
|
|
280
|
+
|
|
281
|
+
- **Framework Swappable:** Business logic has zero SolidJS imports
|
|
282
|
+
- **Type Safety:** Props validated against catalog schemas
|
|
283
|
+
- **Simple Testing:** Test actors without SolidJS renderer
|
|
284
|
+
- **Performance:** Microtask batching reduces unnecessary renders
|
|
285
|
+
- **Composability:** Renderer prop enables complex layouts
|
|
286
|
+
|
|
287
|
+
## Related Packages
|
|
288
|
+
|
|
289
|
+
- **[@xmachines/play-xstate](../play-xstate/README.md)** - XState adapter providing actors
|
|
290
|
+
- **[@xmachines/play-catalog](../play-catalog/README.md)** - UI schema validation
|
|
291
|
+
- **[@xmachines/play-solid-router](../play-solid-router/README.md)** - Solid Router integration
|
|
292
|
+
- **[@xmachines/play-tanstack-solid-router](../play-tanstack-solid-router/README.md)** - TanStack Solid Router integration
|
|
293
|
+
- **[@xmachines/play-actor](../play-actor/README.md)** - Actor base
|
|
294
|
+
- **[@xmachines/play-signals](../play-signals/README.md)** - TC39 Signals primitives
|
|
295
|
+
|
|
296
|
+
## License
|
|
297
|
+
|
|
298
|
+
Copyright (c) 2016 [Mikael Karon](mailto:mikael@karon.se). All rights reserved.
|
|
299
|
+
|
|
300
|
+
This work is licensed under the terms of the MIT license.
|
|
301
|
+
For a copy, see <https://opensource.org/licenses/MIT>.
|
|
302
|
+
|
|
303
|
+
SolidJS renderer for XMachines Play architecture
|
|
304
|
+
|
|
305
|
+
## Interfaces
|
|
306
|
+
|
|
307
|
+
- [PlayRendererProps](interfaces/PlayRendererProps.md)
|
|
308
|
+
|
|
309
|
+
## Variables
|
|
310
|
+
|
|
311
|
+
- [PlayRenderer](variables/PlayRenderer.md)
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
[Documentation](../../../README.md) / [@xmachines/play-solid](../README.md) / PlayRendererProps
|
|
2
|
+
|
|
3
|
+
# Interface: PlayRendererProps
|
|
4
|
+
|
|
5
|
+
Defined in: [types.ts:20](https://gitlab.com/xmachin-es/xmachines-js/-/blob/00a28432ed57807112288436d1ae4387d9f06919/packages/play-solid/src/types.ts#L20)
|
|
6
|
+
|
|
7
|
+
Props for PlayRenderer component
|
|
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`\> & [`Viewable`](../../play-actor/interfaces/Viewable.md) | Actor instance with currentView signal (requires Viewable capability) | [types.ts:22](https://gitlab.com/xmachin-es/xmachines-js/-/blob/00a28432ed57807112288436d1ae4387d9f06919/packages/play-solid/src/types.ts#L22) |
|
|
14
|
+
| <a id="property-components"></a> `components` | `Record`\<`string`, `ValidComponent`\> | Map of component names to SolidJS components | [types.ts:25](https://gitlab.com/xmachin-es/xmachines-js/-/blob/00a28432ed57807112288436d1ae4387d9f06919/packages/play-solid/src/types.ts#L25) |
|
|
15
|
+
| <a id="property-fallback"></a> `fallback?` | `any` | Optional element shown when currentView is null | [types.ts:28](https://gitlab.com/xmachin-es/xmachines-js/-/blob/00a28432ed57807112288436d1ae4387d9f06919/packages/play-solid/src/types.ts#L28) |
|