@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.
Files changed (197) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +15 -0
  3. package/api/@xmachines/play/README.md +130 -0
  4. package/api/@xmachines/play/type-aliases/PlayEvent.md +81 -0
  5. package/api/@xmachines/play-actor/README.md +247 -0
  6. package/api/@xmachines/play-actor/classes/AbstractActor.md +520 -0
  7. package/api/@xmachines/play-actor/interfaces/Routable.md +29 -0
  8. package/api/@xmachines/play-actor/interfaces/ViewMetadata.md +17 -0
  9. package/api/@xmachines/play-actor/interfaces/Viewable.md +12 -0
  10. package/api/@xmachines/play-catalog/README.md +331 -0
  11. package/api/@xmachines/play-catalog/functions/defineCatalog.md +98 -0
  12. package/api/@xmachines/play-catalog/functions/defineComponents.md +134 -0
  13. package/api/@xmachines/play-catalog/type-aliases/Catalog.md +48 -0
  14. package/api/@xmachines/play-catalog/type-aliases/ComponentsFor.md +20 -0
  15. package/api/@xmachines/play-catalog/type-aliases/InferComponentProps.md +65 -0
  16. package/api/@xmachines/play-catalog/type-aliases/NoExtraKeys.md +17 -0
  17. package/api/@xmachines/play-react/README.md +423 -0
  18. package/api/@xmachines/play-react/classes/PlayErrorBoundary.md +613 -0
  19. package/api/@xmachines/play-react/functions/useSignalEffect.md +68 -0
  20. package/api/@xmachines/play-react/interfaces/PlayErrorBoundaryProps.md +15 -0
  21. package/api/@xmachines/play-react/interfaces/PlayErrorBoundaryState.md +14 -0
  22. package/api/@xmachines/play-react/interfaces/PlayRendererProps.md +15 -0
  23. package/api/@xmachines/play-react/variables/PlayRenderer.md +64 -0
  24. package/api/@xmachines/play-react-router/README.md +198 -0
  25. package/api/@xmachines/play-react-router/classes/ReactRouterBridge.md +321 -0
  26. package/api/@xmachines/play-react-router/classes/RouteMap.md +137 -0
  27. package/api/@xmachines/play-react-router/functions/PlayRouterProvider.md +19 -0
  28. package/api/@xmachines/play-react-router/functions/createRouteMapFromTree.md +35 -0
  29. package/api/@xmachines/play-react-router/interfaces/PlayRouteEvent.md +119 -0
  30. package/api/@xmachines/play-react-router/interfaces/PlayRouterProviderProps.md +14 -0
  31. package/api/@xmachines/play-react-router/interfaces/RouteMapping.md +17 -0
  32. package/api/@xmachines/play-react-router/interfaces/RouterBridge.md +104 -0
  33. package/api/@xmachines/play-react-router-demo/README.md +137 -0
  34. package/api/@xmachines/play-router/README.md +502 -0
  35. package/api/@xmachines/play-router/classes/BaseRouteMap.md +142 -0
  36. package/api/@xmachines/play-router/classes/RouterBridgeBase.md +300 -0
  37. package/api/@xmachines/play-router/functions/buildRouteTree.md +27 -0
  38. package/api/@xmachines/play-router/functions/connectRouter.md +67 -0
  39. package/api/@xmachines/play-router/functions/crawlMachine.md +92 -0
  40. package/api/@xmachines/play-router/functions/createBrowserHistory.md +47 -0
  41. package/api/@xmachines/play-router/functions/createRouteMap.md +53 -0
  42. package/api/@xmachines/play-router/functions/createRouter.md +76 -0
  43. package/api/@xmachines/play-router/functions/detectDuplicateRoutes.md +32 -0
  44. package/api/@xmachines/play-router/functions/extractMachineRoutes.md +64 -0
  45. package/api/@xmachines/play-router/functions/extractRoute.md +45 -0
  46. package/api/@xmachines/play-router/functions/findRouteById.md +37 -0
  47. package/api/@xmachines/play-router/functions/findRouteByPath.md +39 -0
  48. package/api/@xmachines/play-router/functions/getNavigableRoutes.md +35 -0
  49. package/api/@xmachines/play-router/functions/getRoutableRoutes.md +39 -0
  50. package/api/@xmachines/play-router/functions/routeExists.md +26 -0
  51. package/api/@xmachines/play-router/functions/validateRouteFormat.md +29 -0
  52. package/api/@xmachines/play-router/functions/validateStateExists.md +29 -0
  53. package/api/@xmachines/play-router/interfaces/BaseRouteMapping.md +27 -0
  54. package/api/@xmachines/play-router/interfaces/BrowserHistory.md +172 -0
  55. package/api/@xmachines/play-router/interfaces/BrowserWindow.md +69 -0
  56. package/api/@xmachines/play-router/interfaces/ConnectRouterOptions.md +13 -0
  57. package/api/@xmachines/play-router/interfaces/PlayRouteEvent.md +119 -0
  58. package/api/@xmachines/play-router/interfaces/RouteInfo.md +19 -0
  59. package/api/@xmachines/play-router/interfaces/RouteMap.md +56 -0
  60. package/api/@xmachines/play-router/interfaces/RouteNode.md +21 -0
  61. package/api/@xmachines/play-router/interfaces/RouteObject.md +21 -0
  62. package/api/@xmachines/play-router/interfaces/RouteTree.md +20 -0
  63. package/api/@xmachines/play-router/interfaces/RouterBridge.md +104 -0
  64. package/api/@xmachines/play-router/interfaces/StateVisit.md +15 -0
  65. package/api/@xmachines/play-router/interfaces/VanillaRouter.md +28 -0
  66. package/api/@xmachines/play-router/type-aliases/RouteMetadata.md +11 -0
  67. package/api/@xmachines/play-router-demo/README.md +137 -0
  68. package/api/@xmachines/play-signals/README.md +176 -0
  69. package/api/@xmachines/play-signals/interfaces/ComputedOptions.md +34 -0
  70. package/api/@xmachines/play-signals/interfaces/SignalComputed.md +49 -0
  71. package/api/@xmachines/play-signals/interfaces/SignalOptions.md +35 -0
  72. package/api/@xmachines/play-signals/interfaces/SignalState.md +68 -0
  73. package/api/@xmachines/play-signals/interfaces/SignalWatcher.md +97 -0
  74. package/api/@xmachines/play-signals/namespaces/Signal/README.md +22 -0
  75. package/api/@xmachines/play-signals/namespaces/Signal/classes/Computed.md +52 -0
  76. package/api/@xmachines/play-signals/namespaces/Signal/classes/State.md +72 -0
  77. package/api/@xmachines/play-signals/namespaces/Signal/interfaces/Options.md +19 -0
  78. package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/README.md +21 -0
  79. package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/classes/Watcher.md +85 -0
  80. package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/currentComputed.md +13 -0
  81. package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/hasSinks.md +19 -0
  82. package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/hasSources.md +19 -0
  83. package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/introspectSinks.md +19 -0
  84. package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/introspectSources.md +19 -0
  85. package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/untrack.md +25 -0
  86. package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/variables/unwatched.md +9 -0
  87. package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/variables/watched.md +9 -0
  88. package/api/@xmachines/play-signals/namespaces/Signal/variables/isComputed.md +19 -0
  89. package/api/@xmachines/play-signals/namespaces/Signal/variables/isState.md +19 -0
  90. package/api/@xmachines/play-signals/namespaces/Signal/variables/isWatcher.md +19 -0
  91. package/api/@xmachines/play-signals/type-aliases/WatcherNotify.md +32 -0
  92. package/api/@xmachines/play-solid/README.md +311 -0
  93. package/api/@xmachines/play-solid/interfaces/PlayRendererProps.md +15 -0
  94. package/api/@xmachines/play-solid/variables/PlayRenderer.md +70 -0
  95. package/api/@xmachines/play-solid-router/README.md +666 -0
  96. package/api/@xmachines/play-solid-router/classes/RouteMap.md +150 -0
  97. package/api/@xmachines/play-solid-router/classes/SolidRouterBridge.md +347 -0
  98. package/api/@xmachines/play-solid-router/functions/PlayRouterProvider.md +19 -0
  99. package/api/@xmachines/play-solid-router/functions/createRouteMap.md +32 -0
  100. package/api/@xmachines/play-solid-router/interfaces/AbstractActor.md +486 -0
  101. package/api/@xmachines/play-solid-router/interfaces/PlayRouteEvent.md +119 -0
  102. package/api/@xmachines/play-solid-router/interfaces/PlayRouterProviderProps.md +14 -0
  103. package/api/@xmachines/play-solid-router/interfaces/RouteMapping.md +14 -0
  104. package/api/@xmachines/play-solid-router/interfaces/RouterBridge.md +104 -0
  105. package/api/@xmachines/play-solid-router/type-aliases/RoutableActor.md +9 -0
  106. package/api/@xmachines/play-solid-router/type-aliases/SolidRouterHooks.md +51 -0
  107. package/api/@xmachines/play-solid-router-demo/README.md +127 -0
  108. package/api/@xmachines/play-tanstack-react-router/README.md +226 -0
  109. package/api/@xmachines/play-tanstack-react-router/classes/RouteMap.md +137 -0
  110. package/api/@xmachines/play-tanstack-react-router/classes/TanStackReactRouterBridge.md +348 -0
  111. package/api/@xmachines/play-tanstack-react-router/functions/PlayRouterProvider.md +19 -0
  112. package/api/@xmachines/play-tanstack-react-router/functions/createRouteMap.md +53 -0
  113. package/api/@xmachines/play-tanstack-react-router/functions/createRouteMapFromTree.md +35 -0
  114. package/api/@xmachines/play-tanstack-react-router/functions/extractParams.md +38 -0
  115. package/api/@xmachines/play-tanstack-react-router/functions/extractQueryParams.md +33 -0
  116. package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouteEvent.md +119 -0
  117. package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouterProviderProps.md +14 -0
  118. package/api/@xmachines/play-tanstack-react-router/interfaces/RouteMapping.md +17 -0
  119. package/api/@xmachines/play-tanstack-react-router/interfaces/RouteNavigateEvent.md +26 -0
  120. package/api/@xmachines/play-tanstack-react-router/interfaces/RouterBridge.md +104 -0
  121. package/api/@xmachines/play-tanstack-react-router/type-aliases/TanStackRouterInstance.md +9 -0
  122. package/api/@xmachines/play-tanstack-react-router/type-aliases/TanStackRouterLike.md +78 -0
  123. package/api/@xmachines/play-tanstack-react-router/variables/extractMachineRoutes.md +64 -0
  124. package/api/@xmachines/play-tanstack-react-router-demo/README.md +126 -0
  125. package/api/@xmachines/play-tanstack-solid-router/README.md +285 -0
  126. package/api/@xmachines/play-tanstack-solid-router/classes/RouteMap.md +150 -0
  127. package/api/@xmachines/play-tanstack-solid-router/classes/SolidRouterBridge.md +343 -0
  128. package/api/@xmachines/play-tanstack-solid-router/functions/PlayRouterProvider.md +19 -0
  129. package/api/@xmachines/play-tanstack-solid-router/functions/createRouteMap.md +32 -0
  130. package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayRouteEvent.md +119 -0
  131. package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayRouterProviderProps.md +14 -0
  132. package/api/@xmachines/play-tanstack-solid-router/interfaces/RouteMapping.md +23 -0
  133. package/api/@xmachines/play-tanstack-solid-router/interfaces/RouterBridge.md +104 -0
  134. package/api/@xmachines/play-tanstack-solid-router/type-aliases/RoutableActor.md +9 -0
  135. package/api/@xmachines/play-tanstack-solid-router/type-aliases/TanStackRouterInstance.md +9 -0
  136. package/api/@xmachines/play-tanstack-solid-router/type-aliases/TanStackRouterLike.md +78 -0
  137. package/api/@xmachines/play-tanstack-solid-router-demo/README.md +126 -0
  138. package/api/@xmachines/play-vue/README.md +292 -0
  139. package/api/@xmachines/play-vue/interfaces/PlayRendererProps.md +14 -0
  140. package/api/@xmachines/play-vue/variables/PlayRenderer.md +9 -0
  141. package/api/@xmachines/play-vue-router/README.md +604 -0
  142. package/api/@xmachines/play-vue-router/classes/RouteMap.md +209 -0
  143. package/api/@xmachines/play-vue-router/classes/VueBaseRouteMap.md +201 -0
  144. package/api/@xmachines/play-vue-router/classes/VueRouterBridge.md +360 -0
  145. package/api/@xmachines/play-vue-router/functions/createRouteMap.md +19 -0
  146. package/api/@xmachines/play-vue-router/interfaces/PlayRouteEvent.md +119 -0
  147. package/api/@xmachines/play-vue-router/interfaces/RouteMapping.md +15 -0
  148. package/api/@xmachines/play-vue-router/interfaces/RouterBridge.md +104 -0
  149. package/api/@xmachines/play-vue-router/type-aliases/RoutableActor.md +9 -0
  150. package/api/@xmachines/play-vue-router/variables/PlayRouterProvider.md +67 -0
  151. package/api/@xmachines/play-vue-router-demo/README.md +133 -0
  152. package/api/@xmachines/play-xstate/README.md +512 -0
  153. package/api/@xmachines/play-xstate/classes/PlayerActor.md +527 -0
  154. package/api/@xmachines/play-xstate/functions/buildRouteUrl.md +43 -0
  155. package/api/@xmachines/play-xstate/functions/composeGuards.md +79 -0
  156. package/api/@xmachines/play-xstate/functions/composeGuardsOr.md +67 -0
  157. package/api/@xmachines/play-xstate/functions/definePlayer.md +127 -0
  158. package/api/@xmachines/play-xstate/functions/deriveRoute.md +109 -0
  159. package/api/@xmachines/play-xstate/functions/eventMatches.md +40 -0
  160. package/api/@xmachines/play-xstate/functions/formatPlayRouteTransitions.md +54 -0
  161. package/api/@xmachines/play-xstate/functions/hasContext.md +42 -0
  162. package/api/@xmachines/play-xstate/functions/isAbsoluteRoute.md +41 -0
  163. package/api/@xmachines/play-xstate/functions/mergeViewProps.md +26 -0
  164. package/api/@xmachines/play-xstate/functions/negateGuard.md +61 -0
  165. package/api/@xmachines/play-xstate/functions/stateMatches.md +25 -0
  166. package/api/@xmachines/play-xstate/functions/validateComponentBinding.md +39 -0
  167. package/api/@xmachines/play-xstate/functions/validateViewProps.md +80 -0
  168. package/api/@xmachines/play-xstate/interfaces/CatalogEntry.md +16 -0
  169. package/api/@xmachines/play-xstate/interfaces/PlayerConfig.md +24 -0
  170. package/api/@xmachines/play-xstate/interfaces/PlayerOptions.md +26 -0
  171. package/api/@xmachines/play-xstate/interfaces/RouteContext.md +22 -0
  172. package/api/@xmachines/play-xstate/type-aliases/Catalog.md +21 -0
  173. package/api/@xmachines/play-xstate/type-aliases/ComposedGuard.md +14 -0
  174. package/api/@xmachines/play-xstate/type-aliases/Guard.md +34 -0
  175. package/api/@xmachines/play-xstate/type-aliases/GuardArray.md +20 -0
  176. package/api/@xmachines/play-xstate/type-aliases/PlayerFactory.md +29 -0
  177. package/api/@xmachines/play-xstate/type-aliases/RouteMachineConfig.md +45 -0
  178. package/api/@xmachines/play-xstate/type-aliases/RouteStateNode.md +51 -0
  179. package/api/@xmachines/play-xstate/type-aliases/ValidationResult.md +17 -0
  180. package/api/@xmachines/play-xstate/type-aliases/ViewMergeContext.md +35 -0
  181. package/api/@xmachines/shared/README.md +379 -0
  182. package/api/@xmachines/shared/functions/defineXmVitestConfig.md +29 -0
  183. package/api/@xmachines/shared/functions/xmAliases.md +24 -0
  184. package/api/README.md +25 -0
  185. package/api/llms.txt +26 -0
  186. package/examples/README.md +63 -0
  187. package/examples/basic-state-machine.md +70 -0
  188. package/examples/form-validation.md +167 -0
  189. package/examples/multi-router-integration.md +277 -0
  190. package/examples/routing-patterns.md +260 -0
  191. package/examples/traffic-light.md +99 -0
  192. package/guides/README.md +29 -0
  193. package/guides/getting-started.md +223 -0
  194. package/guides/installation.md +323 -0
  195. package/index.d.ts +3 -0
  196. package/index.js +4 -0
  197. 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`
@@ -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`
@@ -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`
@@ -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`
@@ -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) |