@xmachines/docs 1.0.0-beta.17 → 1.0.0-beta.19

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 (184) hide show
  1. package/api/@xmachines/play/README.md +1 -1
  2. package/api/@xmachines/play/classes/PlayError.md +4 -4
  3. package/api/@xmachines/play/type-aliases/PlayEvent.md +3 -3
  4. package/api/@xmachines/play-actor/README.md +2 -2
  5. package/api/@xmachines/play-actor/classes/AbstractActor.md +4 -4
  6. package/api/@xmachines/play-actor/interfaces/PlaySpec.md +2 -2
  7. package/api/@xmachines/play-actor/interfaces/Routable.md +3 -3
  8. package/api/@xmachines/play-actor/interfaces/ViewMetadata.md +3 -3
  9. package/api/@xmachines/play-actor/interfaces/Viewable.md +2 -2
  10. package/api/@xmachines/play-dom/classes/PlayRenderer.md +4 -4
  11. package/api/@xmachines/play-dom/functions/connectRenderer.md +1 -1
  12. package/api/@xmachines/play-dom/functions/renderSpec.md +1 -1
  13. package/api/@xmachines/play-dom/interfaces/ConnectRendererOptions.md +7 -7
  14. package/api/@xmachines/play-dom/interfaces/DomRenderContext.md +7 -7
  15. package/api/@xmachines/play-dom/interfaces/PlayDomOptions.md +3 -3
  16. package/api/@xmachines/play-dom/type-aliases/DomComponentRenderer.md +1 -1
  17. package/api/@xmachines/play-dom/type-aliases/DomRegistry.md +1 -1
  18. package/api/@xmachines/play-react/README.md +8 -2
  19. package/api/@xmachines/play-react/classes/PlayErrorBoundary.md +9 -5
  20. package/api/@xmachines/play-react/functions/useActor.md +1 -1
  21. package/api/@xmachines/play-react/functions/useBoundProp.md +43 -0
  22. package/api/@xmachines/play-react/functions/useSignalEffect.md +1 -1
  23. package/api/@xmachines/play-react/functions/useStateBinding.md +1 -1
  24. package/api/@xmachines/play-react/interfaces/PlayErrorBoundaryProps.md +4 -4
  25. package/api/@xmachines/play-react/interfaces/PlayErrorBoundaryState.md +3 -3
  26. package/api/@xmachines/play-react/interfaces/PlayRendererProps.md +6 -6
  27. package/api/@xmachines/play-react/type-aliases/PlayActor.md +1 -1
  28. package/api/@xmachines/play-react/variables/PlayRenderer.md +1 -1
  29. package/api/@xmachines/play-react-router/classes/ReactRouterBridge.md +23 -23
  30. package/api/@xmachines/play-react-router/classes/RouteMap.md +4 -4
  31. package/api/@xmachines/play-react-router/functions/PlayRouterProvider.md +1 -1
  32. package/api/@xmachines/play-react-router/functions/createRouteMapFromTree.md +1 -1
  33. package/api/@xmachines/play-react-router/interfaces/PlayRouteEvent.md +9 -9
  34. package/api/@xmachines/play-react-router/interfaces/PlayRouterProviderProps.md +5 -5
  35. package/api/@xmachines/play-react-router/interfaces/RouteMapping.md +3 -3
  36. package/api/@xmachines/play-react-router/interfaces/RouterBridge.md +4 -4
  37. package/api/@xmachines/play-router/README.md +103 -47
  38. package/api/@xmachines/play-router/classes/BaseRouteMap.md +4 -4
  39. package/api/@xmachines/play-router/classes/RouterBridgeBase.md +21 -21
  40. package/api/@xmachines/play-router/functions/buildRouteTree.md +1 -1
  41. package/api/@xmachines/play-router/functions/connectRouter.md +1 -1
  42. package/api/@xmachines/play-router/functions/createBrowserHistory.md +1 -1
  43. package/api/@xmachines/play-router/functions/createRouteMap.md +1 -1
  44. package/api/@xmachines/play-router/functions/createRouter.md +1 -1
  45. package/api/@xmachines/play-router/functions/detectDuplicateRoutes.md +1 -1
  46. package/api/@xmachines/play-router/functions/extractMachineRoutes.md +6 -42
  47. package/api/@xmachines/play-router/functions/findRouteById.md +1 -1
  48. package/api/@xmachines/play-router/functions/findRouteByPath.md +1 -1
  49. package/api/@xmachines/play-router/functions/getNavigableRoutes.md +1 -1
  50. package/api/@xmachines/play-router/functions/getRoutableRoutes.md +1 -1
  51. package/api/@xmachines/play-router/functions/getTransitionReachableRoutes.md +38 -0
  52. package/api/@xmachines/play-router/functions/isRouteReachable.md +38 -0
  53. package/api/@xmachines/play-router/functions/machineToGraph.md +19 -0
  54. package/api/@xmachines/play-router/functions/routeExists.md +1 -1
  55. package/api/@xmachines/play-router/functions/sanitizePathname.md +40 -0
  56. package/api/@xmachines/play-router/functions/validateRouteFormat.md +9 -8
  57. package/api/@xmachines/play-router/functions/validateStateExists.md +8 -8
  58. package/api/@xmachines/play-router/interfaces/BaseRouteMapping.md +3 -3
  59. package/api/@xmachines/play-router/interfaces/BrowserHistory.md +14 -14
  60. package/api/@xmachines/play-router/interfaces/BrowserWindow.md +14 -14
  61. package/api/@xmachines/play-router/interfaces/ConnectRouterOptions.md +4 -4
  62. package/api/@xmachines/play-router/interfaces/MachineEdgeData.md +15 -0
  63. package/api/@xmachines/play-router/interfaces/MachineNodeData.md +17 -0
  64. package/api/@xmachines/play-router/interfaces/PlayRouteEvent.md +7 -7
  65. package/api/@xmachines/play-router/interfaces/RouteInfo.md +8 -8
  66. package/api/@xmachines/play-router/interfaces/RouteMap.md +4 -4
  67. package/api/@xmachines/play-router/interfaces/RouteNode.md +12 -12
  68. package/api/@xmachines/play-router/interfaces/RouteObject.md +2 -2
  69. package/api/@xmachines/play-router/interfaces/RouteTree.md +7 -6
  70. package/api/@xmachines/play-router/interfaces/RouteWatcherHandle.md +3 -3
  71. package/api/@xmachines/play-router/interfaces/RouterBridge.md +4 -4
  72. package/api/@xmachines/play-router/interfaces/VanillaRouter.md +4 -4
  73. package/api/@xmachines/play-router/type-aliases/MachineGraph.md +20 -0
  74. package/api/@xmachines/play-router/type-aliases/RouteMetadata.md +1 -1
  75. package/api/@xmachines/play-signals/README.md +8 -2
  76. package/api/@xmachines/play-signals/functions/watchSignal.md +8 -1
  77. package/api/@xmachines/play-signals/interfaces/ComputedOptions.md +2 -2
  78. package/api/@xmachines/play-signals/interfaces/SignalComputed.md +2 -2
  79. package/api/@xmachines/play-signals/interfaces/SignalOptions.md +2 -2
  80. package/api/@xmachines/play-signals/interfaces/SignalState.md +3 -3
  81. package/api/@xmachines/play-signals/interfaces/SignalWatcher.md +4 -4
  82. package/api/@xmachines/play-signals/type-aliases/WatcherNotify.md +1 -1
  83. package/api/@xmachines/play-solid/README.md +1 -1
  84. package/api/@xmachines/play-solid/functions/useActor.md +1 -1
  85. package/api/@xmachines/play-solid/interfaces/PlayRendererProps.md +6 -6
  86. package/api/@xmachines/play-solid/type-aliases/PlayActor.md +1 -1
  87. package/api/@xmachines/play-solid/variables/PlayRenderer.md +1 -1
  88. package/api/@xmachines/play-solid-router/README.md +55 -31
  89. package/api/@xmachines/play-solid-router/classes/RouteMap.md +4 -4
  90. package/api/@xmachines/play-solid-router/classes/SolidRouterBridge.md +24 -24
  91. package/api/@xmachines/play-solid-router/functions/PlayRouterProvider.md +1 -1
  92. package/api/@xmachines/play-solid-router/functions/createRouteMap.md +1 -1
  93. package/api/@xmachines/play-solid-router/interfaces/AbstractActor.md +16 -16
  94. package/api/@xmachines/play-solid-router/interfaces/PlayRouteEvent.md +9 -9
  95. package/api/@xmachines/play-solid-router/interfaces/PlayRouterProviderProps.md +5 -5
  96. package/api/@xmachines/play-solid-router/interfaces/RouteMapping.md +3 -3
  97. package/api/@xmachines/play-solid-router/interfaces/RouterBridge.md +4 -4
  98. package/api/@xmachines/play-solid-router/type-aliases/RoutableActor.md +1 -1
  99. package/api/@xmachines/play-solid-router/type-aliases/SolidRouterHooks.md +4 -4
  100. package/api/@xmachines/play-tanstack-react-router/README.md +1 -4
  101. package/api/@xmachines/play-tanstack-react-router/classes/RouteMap.md +4 -4
  102. package/api/@xmachines/play-tanstack-react-router/classes/TanStackReactRouterBridge.md +23 -23
  103. package/api/@xmachines/play-tanstack-react-router/functions/PlayRouterProvider.md +1 -1
  104. package/api/@xmachines/play-tanstack-react-router/functions/createRouteMap.md +1 -1
  105. package/api/@xmachines/play-tanstack-react-router/functions/createRouteMapFromTree.md +1 -1
  106. package/api/@xmachines/play-tanstack-react-router/functions/extractMachineRoutes.md +28 -0
  107. package/api/@xmachines/play-tanstack-react-router/functions/extractParams.md +1 -1
  108. package/api/@xmachines/play-tanstack-react-router/functions/extractQueryParams.md +1 -1
  109. package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouteEvent.md +9 -9
  110. package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouterProviderProps.md +5 -5
  111. package/api/@xmachines/play-tanstack-react-router/interfaces/RouteMapping.md +3 -3
  112. package/api/@xmachines/play-tanstack-react-router/interfaces/RouteNavigateEvent.md +3 -3
  113. package/api/@xmachines/play-tanstack-react-router/interfaces/RouterBridge.md +4 -4
  114. package/api/@xmachines/play-tanstack-react-router/type-aliases/TanStackRouterInstance.md +1 -1
  115. package/api/@xmachines/play-tanstack-react-router/type-aliases/TanStackRouterLike.md +4 -4
  116. package/api/@xmachines/play-tanstack-solid-router/README.md +1 -1
  117. package/api/@xmachines/play-tanstack-solid-router/classes/RouteMap.md +4 -4
  118. package/api/@xmachines/play-tanstack-solid-router/classes/SolidRouterBridge.md +26 -25
  119. package/api/@xmachines/play-tanstack-solid-router/functions/PlayRouterProvider.md +1 -1
  120. package/api/@xmachines/play-tanstack-solid-router/functions/createRouteMap.md +1 -1
  121. package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayRouteEvent.md +9 -9
  122. package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayRouterProviderProps.md +5 -5
  123. package/api/@xmachines/play-tanstack-solid-router/interfaces/RouteMapping.md +3 -3
  124. package/api/@xmachines/play-tanstack-solid-router/interfaces/RouterBridge.md +4 -4
  125. package/api/@xmachines/play-tanstack-solid-router/type-aliases/RoutableActor.md +1 -1
  126. package/api/@xmachines/play-tanstack-solid-router/type-aliases/TanStackRouterInstance.md +1 -1
  127. package/api/@xmachines/play-tanstack-solid-router/type-aliases/TanStackRouterLike.md +4 -4
  128. package/api/@xmachines/play-vue/README.md +4 -1
  129. package/api/@xmachines/play-vue/functions/defineRegistry.md +5 -5
  130. package/api/@xmachines/play-vue/functions/useActor.md +1 -1
  131. package/api/@xmachines/play-vue/interfaces/PlayRendererProps.md +5 -5
  132. package/api/@xmachines/play-vue/type-aliases/ComponentEntry.md +16 -0
  133. package/api/@xmachines/play-vue/type-aliases/ComponentsMap.md +15 -0
  134. package/api/@xmachines/play-vue/type-aliases/DefineRegistryOptions.md +21 -0
  135. package/api/@xmachines/play-vue/type-aliases/PlayActor.md +1 -1
  136. package/api/@xmachines/play-vue/variables/PlayRenderer.md +1 -1
  137. package/api/@xmachines/play-vue-router/README.md +55 -30
  138. package/api/@xmachines/play-vue-router/classes/RouteMap.md +7 -7
  139. package/api/@xmachines/play-vue-router/classes/VueBaseRouteMap.md +7 -7
  140. package/api/@xmachines/play-vue-router/classes/VueRouterBridge.md +27 -32
  141. package/api/@xmachines/play-vue-router/functions/createRouteMap.md +1 -1
  142. package/api/@xmachines/play-vue-router/interfaces/PlayRouteEvent.md +9 -9
  143. package/api/@xmachines/play-vue-router/interfaces/RouteMapping.md +4 -4
  144. package/api/@xmachines/play-vue-router/interfaces/RouterBridge.md +4 -4
  145. package/api/@xmachines/play-vue-router/type-aliases/RoutableActor.md +1 -1
  146. package/api/@xmachines/play-vue-router/variables/PlayRouterProvider.md +1 -1
  147. package/api/@xmachines/play-xstate/README.md +6 -6
  148. package/api/@xmachines/play-xstate/classes/PlayerActor.md +12 -12
  149. package/api/@xmachines/play-xstate/functions/buildRouteUrl.md +1 -1
  150. package/api/@xmachines/play-xstate/functions/composeGuards.md +1 -1
  151. package/api/@xmachines/play-xstate/functions/composeGuardsOr.md +1 -1
  152. package/api/@xmachines/play-xstate/functions/contextFieldMatches.md +36 -0
  153. package/api/@xmachines/play-xstate/functions/definePlayer.md +2 -2
  154. package/api/@xmachines/play-xstate/functions/deriveRoute.md +2 -2
  155. package/api/@xmachines/play-xstate/functions/eventMatches.md +1 -1
  156. package/api/@xmachines/play-xstate/functions/formatPlayRouteTransitions.md +1 -1
  157. package/api/@xmachines/play-xstate/functions/hasContext.md +1 -1
  158. package/api/@xmachines/play-xstate/functions/isAbsoluteRoute.md +1 -1
  159. package/api/@xmachines/play-xstate/functions/negateGuard.md +1 -1
  160. package/api/@xmachines/play-xstate/interfaces/PlayerConfig.md +3 -3
  161. package/api/@xmachines/play-xstate/interfaces/PlayerFactoryResumeOptions.md +2 -2
  162. package/api/@xmachines/play-xstate/interfaces/PlayerOptions.md +6 -6
  163. package/api/@xmachines/play-xstate/interfaces/RouteContext.md +5 -5
  164. package/api/@xmachines/play-xstate/type-aliases/ComposedGuard.md +1 -1
  165. package/api/@xmachines/play-xstate/type-aliases/Guard.md +1 -1
  166. package/api/@xmachines/play-xstate/type-aliases/GuardArray.md +1 -1
  167. package/api/@xmachines/play-xstate/type-aliases/PlayerFactory.md +1 -1
  168. package/api/@xmachines/play-xstate/type-aliases/RouteMachineConfig.md +4 -4
  169. package/api/@xmachines/play-xstate/type-aliases/RouteStateNode.md +4 -4
  170. package/api/@xmachines/shared/functions/defineXmVitestConfig.md +2 -2
  171. package/api/@xmachines/shared/functions/xmAliases.md +1 -1
  172. package/api/README.md +1 -1
  173. package/api/_media/play.md +447 -0
  174. package/api/llms.txt +1 -1
  175. package/examples/multi-router-integration.md +1 -1
  176. package/examples/routing-patterns.md +1 -1
  177. package/guides/README.md +2 -1
  178. package/guides/installation.md +30 -35
  179. package/package.json +2 -2
  180. package/api/@xmachines/play-router/functions/crawlMachine.md +0 -92
  181. package/api/@xmachines/play-router/functions/extractRoute.md +0 -45
  182. package/api/@xmachines/play-router/interfaces/StateVisit.md +0 -15
  183. package/api/@xmachines/play-tanstack-react-router/variables/extractMachineRoutes.md +0 -64
  184. package/api/@xmachines/play-xstate/functions/stateMatches.md +0 -25
@@ -15,7 +15,7 @@ This package exports the shared Play protocol surface. It exists to preserve str
15
15
  - **Actors** (business authority)
16
16
  - **Infrastructure adapters** (routers/renderers that observe and forward)
17
17
 
18
- Per [RFC Play v1](https://gitlab.com/xmachin-es/rfc/-/blob/main/src/play-v1.md), this package supports:
18
+ Per [Play RFC](../../_media/play.md), this package supports:
19
19
 
20
20
  - **Actor Authority (INV-01):** infrastructure proposes intents, actor decides validity
21
21
  - **Strict Separation (INV-02):** protocol types are framework-agnostic
@@ -2,7 +2,7 @@
2
2
 
3
3
  # Class: PlayError
4
4
 
5
- Defined in: [packages/play/src/errors.ts:63](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.17/packages/play/src/errors.ts#L63)
5
+ Defined in: [packages/play/src/errors.ts:63](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.19/packages/play/src/errors.ts#L63)
6
6
 
7
7
  Base class for all typed runtime errors thrown by `@xmachines/*` packages.
8
8
 
@@ -82,7 +82,7 @@ new PlayError(
82
82
  options?): PlayError;
83
83
  ```
84
84
 
85
- Defined in: [packages/play/src/errors.ts:82](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.17/packages/play/src/errors.ts#L82)
85
+ Defined in: [packages/play/src/errors.ts:82](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.19/packages/play/src/errors.ts#L82)
86
86
 
87
87
  #### Parameters
88
88
 
@@ -108,10 +108,10 @@ Error.constructor;
108
108
  | Property | Modifier | Type | Description | Inherited from | Defined in |
109
109
  | ------------------------------------------------------- | ---------- | --------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------- | ---------------------------------------------------------------------------------------------------------------------------------- |
110
110
  | <a id="property-cause"></a> `cause?` | `public` | `unknown` | - | `Error.cause` | - |
111
- | <a id="property-code"></a> `code` | `readonly` | `string` | A stable, machine-readable error identifier. Error codes follow the `PLAY_<PACKAGE>_<DESCRIPTION>` naming convention and are guaranteed stable across patch and minor releases within a major version. Never match on `.message` — always match on `.code` or the subclass. | - | [packages/play/src/errors.ts:74](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.17/packages/play/src/errors.ts#L74) |
111
+ | <a id="property-code"></a> `code` | `readonly` | `string` | A stable, machine-readable error identifier. Error codes follow the `PLAY_<PACKAGE>_<DESCRIPTION>` naming convention and are guaranteed stable across patch and minor releases within a major version. Never match on `.message` — always match on `.code` or the subclass. | - | [packages/play/src/errors.ts:74](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.19/packages/play/src/errors.ts#L74) |
112
112
  | <a id="property-message"></a> `message` | `public` | `string` | - | `Error.message` | - |
113
113
  | <a id="property-name"></a> `name` | `public` | `string` | - | `Error.name` | - |
114
- | <a id="property-scope"></a> `scope` | `readonly` | `string` | The class or module that threw this error (e.g. `"RouterBridgeBase"`). | - | [packages/play/src/errors.ts:65](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.17/packages/play/src/errors.ts#L65) |
114
+ | <a id="property-scope"></a> `scope` | `readonly` | `string` | The class or module that threw this error (e.g. `"RouterBridgeBase"`). | - | [packages/play/src/errors.ts:65](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.19/packages/play/src/errors.ts#L65) |
115
115
  | <a id="property-stack"></a> `stack?` | `public` | `string` | - | `Error.stack` | - |
116
116
  | <a id="property-stacktracelimit"></a> `stackTraceLimit` | `static` | `number` | The `Error.stackTraceLimit` property specifies the number of stack frames collected by a stack trace (whether generated by `new Error().stack` or `Error.captureStackTrace(obj)`). The default value is `10` but may be set to any valid JavaScript number. Changes will affect any stack trace captured _after_ the value has been changed. If set to a non-number value, or set to a negative number, stack traces will not capture any frames. | `Error.stackTraceLimit` | - |
117
117
 
@@ -6,7 +6,7 @@
6
6
  type PlayEvent<TPayload> = object & TPayload;
7
7
  ```
8
8
 
9
- Defined in: [packages/play/src/types.ts:69](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.17/packages/play/src/types.ts#L69)
9
+ Defined in: [packages/play/src/types.ts:69](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.19/packages/play/src/types.ts#L69)
10
10
 
11
11
  Generic event type for Play Architecture
12
12
 
@@ -34,7 +34,7 @@ Robot, and other state machine libraries.
34
34
 
35
35
  | Name | Type | Defined in |
36
36
  | ------ | -------- | -------------------------------------------------------------------------------------------------------------------------------- |
37
- | `type` | `string` | [packages/play/src/types.ts:70](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.17/packages/play/src/types.ts#L70) |
37
+ | `type` | `string` | [packages/play/src/types.ts:70](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.19/packages/play/src/types.ts#L70) |
38
38
 
39
39
  ## Type Parameters
40
40
 
@@ -78,4 +78,4 @@ const invalid: LoginEvent = { type: "auth.login" }; // Error!
78
78
 
79
79
  ## See
80
80
 
81
- [RFC Play v1](https://gitlab.com/xmachin-es/rfc/-/blob/main/src/play-v1.md)
81
+ [Play RFC](../../../_media/play.md)
@@ -10,7 +10,7 @@ Foundation for all actor implementations, enforcing XState compatibility and rea
10
10
 
11
11
  `@xmachines/play-actor` provides `AbstractActor`, a base class that extends XState's `Actor` while enforcing the Play Architecture's signal protocol. It maintains XState ecosystem compatibility (inspection tools, devtools) while exposing reactive signals for infrastructure layer communication.
12
12
 
13
- Per [RFC Play v1](https://gitlab.com/xmachin-es/rfc/-/blob/main/src/play-v1.md), this package implements:
13
+ Per [Play RFC](../../_media/play.md), this package implements:
14
14
 
15
15
  - **Actor Authority (INV-01):** Actor is sole source of truth for state transitions
16
16
  - **Signal-Only Reactivity (INV-05):** Infrastructure observes via TC39 Signals, never directly queries
@@ -234,7 +234,7 @@ reactive signals for Infrastructure layer communication.
234
234
 
235
235
  ## See
236
236
 
237
- [RFC Play v1 Section 5.3](https://gitlab.com/xmachin-es/rfc/-/blob/main/src/play-v1.md#53-actor-protocol)
237
+ [Play RFC](../../_media/play.md)
238
238
 
239
239
  ## Classes
240
240
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  # Abstract Class: AbstractActor\<TLogic, TEvent\>
4
4
 
5
- Defined in: [packages/play-actor/src/abstract-actor.ts:231](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.17/packages/play-actor/src/abstract-actor.ts#L231)
5
+ Defined in: [packages/play-actor/src/abstract-actor.ts:231](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.19/packages/play-actor/src/abstract-actor.ts#L231)
6
6
 
7
7
  Abstract base class for Play Architecture actors.
8
8
 
@@ -56,7 +56,7 @@ class PlayerActor extends AbstractActor<AnyActorLogic, EventFromLogic<TMachine>>
56
56
 
57
57
  ## See
58
58
 
59
- - [RFC Play v1 Section 5.3](https://gitlab.com/xmachin-es/rfc/-/blob/main/src/play-v1.md#53-actor-protocol)
59
+ - [Play RFC](../../../_media/play.md)
60
60
  - [Routable](../interfaces/Routable.md) for routing capability
61
61
  - [Viewable](../interfaces/Viewable.md) for view rendering capability
62
62
 
@@ -115,7 +115,7 @@ Actor<TLogic>.constructor
115
115
  | <a id="property-ref"></a> `ref` | `public` | [`ActorRef`](https://www.jsdocs.io/package/xstate#ActorRef)\<[`SnapshotFrom`](https://www.jsdocs.io/package/xstate#SnapshotFrom)\<`TLogic`\>, [`EventFromLogic`](https://www.jsdocs.io/package/xstate#EventFromLogic)\<`TLogic`\>, [`EmittedFrom`](https://www.jsdocs.io/package/xstate#EmittedFrom)\<`TLogic`\>\> | - | `Actor.ref` | - |
116
116
  | <a id="property-sessionid"></a> `sessionId` | `public` | `string` | The globally unique process ID for this invocation. | `Actor.sessionId` | - |
117
117
  | <a id="property-src"></a> `src` | `public` | \| `string` \| [`AnyActorLogic`](https://www.jsdocs.io/package/xstate#AnyActorLogic) | - | `Actor.src` | - |
118
- | <a id="property-state"></a> `state` | `abstract` | [`State`](../../play-signals/namespaces/Signal/classes/State.md)\<`unknown`\> | Reactive snapshot of current actor state. Typed as `Signal.State<unknown>` at the abstract level; concrete implementations narrow this to the actual snapshot type (e.g., `Signal.State<AnyMachineSnapshot>` in `@xmachines/play-xstate`'s `PlayerActor`). Infrastructure observes this signal to react to state changes without directly coupling to the Actor's internal state machine implementation. **Example** `// Infrastructure observes state signal const watcher = new Signal.subtle.Watcher(() => { console.log('Actor state changed:', actor.state.get()); }); watcher.watch(actor.state);` | - | [packages/play-actor/src/abstract-actor.ts:254](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.17/packages/play-actor/src/abstract-actor.ts#L254) |
118
+ | <a id="property-state"></a> `state` | `abstract` | [`State`](../../play-signals/namespaces/Signal/classes/State.md)\<`unknown`\> | Reactive snapshot of current actor state. Typed as `Signal.State<unknown>` at the abstract level; concrete implementations narrow this to the actual snapshot type (e.g., `Signal.State<AnyMachineSnapshot>` in `@xmachines/play-xstate`'s `PlayerActor`). Infrastructure observes this signal to react to state changes without directly coupling to the Actor's internal state machine implementation. **Example** `// Infrastructure observes state signal const watcher = new Signal.subtle.Watcher(() => { console.log('Actor state changed:', actor.state.get()); }); watcher.watch(actor.state);` | - | [packages/play-actor/src/abstract-actor.ts:254](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.19/packages/play-actor/src/abstract-actor.ts#L254) |
119
119
  | <a id="property-system"></a> `system` | `public` | [`AnyActorSystem`](https://www.jsdocs.io/package/xstate#AnyActorSystem) | The system to which this actor belongs. | `Actor.system` | - |
120
120
  | <a id="property-systemid"></a> `systemId` | `public` | `string` \| `undefined` | - | `Actor.systemId` | - |
121
121
 
@@ -276,7 +276,7 @@ Actor.select;
276
276
  abstract send(event): void;
277
277
  ```
278
278
 
279
- Defined in: [packages/play-actor/src/abstract-actor.ts:278](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.17/packages/play-actor/src/abstract-actor.ts#L278)
279
+ Defined in: [packages/play-actor/src/abstract-actor.ts:278](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.19/packages/play-actor/src/abstract-actor.ts#L278)
280
280
 
281
281
  Send event to Actor
282
282
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  # Interface: PlaySpec
4
4
 
5
- Defined in: [packages/play-actor/src/abstract-actor.ts:112](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.17/packages/play-actor/src/abstract-actor.ts#L112)
5
+ Defined in: [packages/play-actor/src/abstract-actor.ts:112](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.19/packages/play-actor/src/abstract-actor.ts#L112)
6
6
 
7
7
  XMachines extension of `@json-render/core` `Spec`.
8
8
 
@@ -31,7 +31,7 @@ spec: {
31
31
 
32
32
  | Property | Type | Description | Inherited from | Defined in |
33
33
  | -------------------------------------------------- | --------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | --------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
34
- | <a id="property-contextprops"></a> `contextProps?` | `string`[] | Explicit allowlist of machine context field names to expose as prop slots. Each named field is merged into every spec element's `props` at view derivation time, filling any slot whose current value is `undefined`. `null` and `undefined` context values are skipped. URL route params (from `context.routeParams`) take priority over `contextProps` values; explicit non-`undefined` spec props always take priority over both. | - | [packages/play-actor/src/abstract-actor.ts:122](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.17/packages/play-actor/src/abstract-actor.ts#L122) |
34
+ | <a id="property-contextprops"></a> `contextProps?` | `string`[] | Explicit allowlist of machine context field names to expose as prop slots. Each named field is merged into every spec element's `props` at view derivation time, filling any slot whose current value is `undefined`. `null` and `undefined` context values are skipped. URL route params (from `context.routeParams`) take priority over `contextProps` values; explicit non-`undefined` spec props always take priority over both. | - | [packages/play-actor/src/abstract-actor.ts:122](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.19/packages/play-actor/src/abstract-actor.ts#L122) |
35
35
  | <a id="property-elements"></a> `elements` | `Record`\<`string`, `UIElement`\> | Flat map of elements by key | `Spec.elements` | - |
36
36
  | <a id="property-root"></a> `root` | `string` | Root element key | `Spec.root` | - |
37
37
  | <a id="property-state"></a> `state?` | `Record`\<`string`, `unknown`\> | Optional initial state to seed the state model. Components using statePath will read from / write to this state. | `Spec.state` | - |
@@ -2,7 +2,7 @@
2
2
 
3
3
  # Interface: Routable
4
4
 
5
- Defined in: [packages/play-actor/src/abstract-actor.ts:42](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.17/packages/play-actor/src/abstract-actor.ts#L42)
5
+ Defined in: [packages/play-actor/src/abstract-actor.ts:42](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.19/packages/play-actor/src/abstract-actor.ts#L42)
6
6
 
7
7
  Optional capability: Routing support
8
8
 
@@ -26,5 +26,5 @@ function connectRouter<T extends AbstractActor & Routable>(actor: T) {
26
26
 
27
27
  | Property | Modifier | Type | Description | Defined in |
28
28
  | ------------------------------------------------- | ---------- | -------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- |
29
- | <a id="property-currentroute"></a> `currentRoute` | `readonly` | [`Computed`](../../play-signals/namespaces/Signal/classes/Computed.md)\<`string` \| `null`\> | Current route signal Computed signal derived from state machine. Infrastructure observes to sync browser URL. Invariant: Passive Infrastructure - Infrastructure reflects route, never decides. **Example** `const watcher = new Signal.subtle.Watcher(() => { const route = actor.currentRoute.get(); console.log('Route changed:', route); }); watcher.watch(actor.currentRoute);` | [packages/play-actor/src/abstract-actor.ts:59](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.17/packages/play-actor/src/abstract-actor.ts#L59) |
30
- | <a id="property-initialroute"></a> `initialRoute` | `readonly` | `string` \| `null` | The route derived from the machine's **initial** state — fixed at construction and never changes, even after `start()` with a restored snapshot. Router bridges use this to distinguish a deep-link (browser URL differs from the initial route because the user navigated there) from a restore (browser is at the machine's default starting URL while the actor was restored to a different route from a snapshot). `null` when the machine's initial state has no `meta.route`. | [packages/play-actor/src/abstract-actor.ts:71](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.17/packages/play-actor/src/abstract-actor.ts#L71) |
29
+ | <a id="property-currentroute"></a> `currentRoute` | `readonly` | [`Computed`](../../play-signals/namespaces/Signal/classes/Computed.md)\<`string` \| `null`\> | Current route signal Computed signal derived from state machine. Infrastructure observes to sync browser URL. Invariant: Passive Infrastructure - Infrastructure reflects route, never decides. **Example** `const watcher = new Signal.subtle.Watcher(() => { const route = actor.currentRoute.get(); console.log('Route changed:', route); }); watcher.watch(actor.currentRoute);` | [packages/play-actor/src/abstract-actor.ts:59](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.19/packages/play-actor/src/abstract-actor.ts#L59) |
30
+ | <a id="property-initialroute"></a> `initialRoute` | `readonly` | `string` \| `null` | The route derived from the machine's **initial** state — fixed at construction and never changes, even after `start()` with a restored snapshot. Router bridges use this to distinguish a deep-link (browser URL differs from the initial route because the user navigated there) from a restore (browser is at the machine's default starting URL while the actor was restored to a different route from a snapshot). `null` when the machine's initial state has no `meta.route`. | [packages/play-actor/src/abstract-actor.ts:71](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.19/packages/play-actor/src/abstract-actor.ts#L71) |
@@ -2,7 +2,7 @@
2
2
 
3
3
  # Interface: ViewMetadata
4
4
 
5
- Defined in: [packages/play-actor/src/abstract-actor.ts:131](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.17/packages/play-actor/src/abstract-actor.ts#L131)
5
+ Defined in: [packages/play-actor/src/abstract-actor.ts:131](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.19/packages/play-actor/src/abstract-actor.ts#L131)
6
6
 
7
7
  View metadata for rendering
8
8
 
@@ -13,5 +13,5 @@ Used by PlayRenderer to dynamically render UI based on actor state.
13
13
 
14
14
  | Property | Type | Description | Defined in |
15
15
  | ------------------------------------------- | ------------------------- | --------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
16
- | <a id="property-component"></a> `component` | `string` | Root element type name (for diagnostics and component resolution) | [packages/play-actor/src/abstract-actor.ts:133](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.17/packages/play-actor/src/abstract-actor.ts#L133) |
17
- | <a id="property-spec"></a> `spec` | [`PlaySpec`](PlaySpec.md) | XMachines view spec — extends `@json-render/core` Spec with `contextProps` for explicit context field exposure. | [packages/play-actor/src/abstract-actor.ts:138](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.17/packages/play-actor/src/abstract-actor.ts#L138) |
16
+ | <a id="property-component"></a> `component` | `string` | Root element type name (for diagnostics and component resolution) | [packages/play-actor/src/abstract-actor.ts:133](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.19/packages/play-actor/src/abstract-actor.ts#L133) |
17
+ | <a id="property-spec"></a> `spec` | [`PlaySpec`](PlaySpec.md) | XMachines view spec — extends `@json-render/core` Spec with `contextProps` for explicit context field exposure. | [packages/play-actor/src/abstract-actor.ts:138](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.19/packages/play-actor/src/abstract-actor.ts#L138) |
@@ -2,7 +2,7 @@
2
2
 
3
3
  # Interface: Viewable
4
4
 
5
- Defined in: [packages/play-actor/src/abstract-actor.ts:150](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.17/packages/play-actor/src/abstract-actor.ts#L150)
5
+ Defined in: [packages/play-actor/src/abstract-actor.ts:150](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.19/packages/play-actor/src/abstract-actor.ts#L150)
6
6
 
7
7
  Actor capability for exposing renderable view state.
8
8
 
@@ -16,4 +16,4 @@ passed to PlayRenderer, not stored on the actor.
16
16
 
17
17
  | Property | Modifier | Type | Description | Defined in |
18
18
  | ----------------------------------------------- | ---------- | --------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
19
- | <a id="property-currentview"></a> `currentView` | `readonly` | [`State`](../../play-signals/namespaces/Signal/classes/State.md)\<[`ViewMetadata`](ViewMetadata.md) \| `null`\> | Current view signal State signal containing view.component and view.spec from meta.view. Infrastructure renders view. Invariant: Logic-Driven UI - View structure is defined by business logic, not JSX. **Example** `const watcher = new Signal.subtle.Watcher(() => { const view = actor.currentView.get(); console.log('View changed:', view.component, view.spec); }); watcher.watch(actor.currentView);` | [packages/play-actor/src/abstract-actor.ts:167](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.17/packages/play-actor/src/abstract-actor.ts#L167) |
19
+ | <a id="property-currentview"></a> `currentView` | `readonly` | [`State`](../../play-signals/namespaces/Signal/classes/State.md)\<[`ViewMetadata`](ViewMetadata.md) \| `null`\> | Current view signal State signal containing view.component and view.spec from meta.view. Infrastructure renders view. Invariant: Logic-Driven UI - View structure is defined by business logic, not JSX. **Example** `const watcher = new Signal.subtle.Watcher(() => { const view = actor.currentView.get(); console.log('View changed:', view.component, view.spec); }); watcher.watch(actor.currentView);` | [packages/play-actor/src/abstract-actor.ts:167](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.19/packages/play-actor/src/abstract-actor.ts#L167) |
@@ -2,7 +2,7 @@
2
2
 
3
3
  # Class: PlayRenderer
4
4
 
5
- Defined in: [PlayRenderer.ts:39](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.17/packages/play-dom/src/PlayRenderer.ts#L39)
5
+ Defined in: [PlayRenderer.ts:39](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.19/packages/play-dom/src/PlayRenderer.ts#L39)
6
6
 
7
7
  PlayRenderer connects an actor's currentView signal to the DOM renderer.
8
8
 
@@ -34,7 +34,7 @@ new PlayRenderer(
34
34
  options?): PlayRenderer;
35
35
  ```
36
36
 
37
- Defined in: [PlayRenderer.ts:50](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.17/packages/play-dom/src/PlayRenderer.ts#L50)
37
+ Defined in: [PlayRenderer.ts:51](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.19/packages/play-dom/src/PlayRenderer.ts#L51)
38
38
 
39
39
  #### Parameters
40
40
 
@@ -57,7 +57,7 @@ Defined in: [PlayRenderer.ts:50](https://gitlab.com/xmachin-es/xmachines-js/-/bl
57
57
  connect(): void;
58
58
  ```
59
59
 
60
- Defined in: [PlayRenderer.ts:61](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.17/packages/play-dom/src/PlayRenderer.ts#L61)
60
+ Defined in: [PlayRenderer.ts:62](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.19/packages/play-dom/src/PlayRenderer.ts#L62)
61
61
 
62
62
  Start watching actor.currentView and render to container.
63
63
  Renders the initial view synchronously, then subscribes to signal changes.
@@ -74,7 +74,7 @@ Renders the initial view synchronously, then subscribes to signal changes.
74
74
  disconnect(): void;
75
75
  ```
76
76
 
77
- Defined in: [PlayRenderer.ts:69](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.17/packages/play-dom/src/PlayRenderer.ts#L69)
77
+ Defined in: [PlayRenderer.ts:70](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.19/packages/play-dom/src/PlayRenderer.ts#L70)
78
78
 
79
79
  Stop watching and clear the container.
80
80
 
@@ -6,7 +6,7 @@
6
6
  function connectRenderer(options): () => void;
7
7
  ```
8
8
 
9
- Defined in: [connect-renderer.ts:46](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.17/packages/play-dom/src/connect-renderer.ts#L46)
9
+ Defined in: [connect-renderer.ts:46](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.19/packages/play-dom/src/connect-renderer.ts#L46)
10
10
 
11
11
  Connect a signal-driven DOM renderer to an actor's currentView signal.
12
12
 
@@ -6,7 +6,7 @@
6
6
  function renderSpec(spec, store, registry, send, actor, actorActions): Node | null;
7
7
  ```
8
8
 
9
- Defined in: [dom-renderer.ts:26](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.17/packages/play-dom/src/dom-renderer.ts#L26)
9
+ Defined in: [dom-renderer.ts:26](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.19/packages/play-dom/src/dom-renderer.ts#L26)
10
10
 
11
11
  Render a Spec tree into DOM nodes using the provided DomRegistry.
12
12
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  # Interface: ConnectRendererOptions
4
4
 
5
- Defined in: [types.ts:63](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.17/packages/play-dom/src/types.ts#L63)
5
+ Defined in: [types.ts:63](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.19/packages/play-dom/src/types.ts#L63)
6
6
 
7
7
  Options for connectRenderer() — backward compat API.
8
8
 
@@ -10,9 +10,9 @@ Options for connectRenderer() — backward compat API.
10
10
 
11
11
  | Property | Type | Description | Defined in |
12
12
  | ------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------ |
13
- | <a id="property-actions"></a> `actions?` | `Record`\<`string`, `string`\> | Map of json-render actionName → XState event type | [types.ts:77](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.17/packages/play-dom/src/types.ts#L77) |
14
- | <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)\> & [`Viewable`](../../play-actor/interfaces/Viewable.md) | Actor instance with currentView signal (requires Viewable capability) | [types.ts:65](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.17/packages/play-dom/src/types.ts#L65) |
15
- | <a id="property-container"></a> `container` | `HTMLElement` | Container element to render into | [types.ts:71](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.17/packages/play-dom/src/types.ts#L71) |
16
- | <a id="property-fallback"></a> `fallback?` | `HTMLElement` \| `null` | Optional element shown when currentView is null (defaults to nothing — clears container) | [types.ts:74](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.17/packages/play-dom/src/types.ts#L74) |
17
- | <a id="property-registry"></a> `registry` | [`DomRegistry`](../type-aliases/DomRegistry.md) | Registry of component renderers — replaces old `components` map | [types.ts:68](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.17/packages/play-dom/src/types.ts#L68) |
18
- | <a id="property-store"></a> `store?` | `StateStore` | Optional external StateStore (e.g. from `xstateStoreStateStore` in @json-render/xstate). When provided, PlayRenderer operates in controlled mode — spec.state is ignored. When omitted, a fresh @xstate/store atom is created internally per view transition. | [types.ts:84](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.17/packages/play-dom/src/types.ts#L84) |
13
+ | <a id="property-actions"></a> `actions?` | `Record`\<`string`, `string`\> | Map of json-render actionName → XState event type | [types.ts:77](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.19/packages/play-dom/src/types.ts#L77) |
14
+ | <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)\> & [`Viewable`](../../play-actor/interfaces/Viewable.md) | Actor instance with currentView signal (requires Viewable capability) | [types.ts:65](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.19/packages/play-dom/src/types.ts#L65) |
15
+ | <a id="property-container"></a> `container` | `HTMLElement` | Container element to render into | [types.ts:71](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.19/packages/play-dom/src/types.ts#L71) |
16
+ | <a id="property-fallback"></a> `fallback?` | `HTMLElement` \| `null` | Optional element shown when currentView is null (defaults to nothing — clears container) | [types.ts:74](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.19/packages/play-dom/src/types.ts#L74) |
17
+ | <a id="property-registry"></a> `registry` | [`DomRegistry`](../type-aliases/DomRegistry.md) | Registry of component renderers — replaces old `components` map | [types.ts:68](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.19/packages/play-dom/src/types.ts#L68) |
18
+ | <a id="property-store"></a> `store?` | `StateStore` | Optional external StateStore (e.g. from `xstateStoreStateStore` in @json-render/xstate). When provided, PlayRenderer operates in controlled mode — spec.state is ignored. When omitted, a fresh @xstate/store atom is created internally per view transition. | [types.ts:84](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.19/packages/play-dom/src/types.ts#L84) |
@@ -2,7 +2,7 @@
2
2
 
3
3
  # Interface: DomRenderContext
4
4
 
5
- Defined in: [types.ts:14](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.17/packages/play-dom/src/types.ts#L14)
5
+ Defined in: [types.ts:14](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.19/packages/play-dom/src/types.ts#L14)
6
6
 
7
7
  Context passed to each DomComponentRenderer when rendering an element.
8
8
 
@@ -10,9 +10,9 @@ Context passed to each DomComponentRenderer when rendering an element.
10
10
 
11
11
  | Property | Type | Description | Defined in |
12
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)\> & [`Viewable`](../../play-actor/interfaces/Viewable.md) | Raw actor — access from any DOM component for state reading, complex events, lifecycle | [types.ts:22](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.17/packages/play-dom/src/types.ts#L22) |
14
- | <a id="property-actoractions"></a> `actorActions` | `Record`\<`string`, `string`\> | Map of json-render action names → XState event types | [types.ts:24](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.17/packages/play-dom/src/types.ts#L24) |
15
- | <a id="property-renderchildren"></a> `renderChildren` | (`keys`) => `Node`[] | Recursively render child elements by key | [types.ts:26](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.17/packages/play-dom/src/types.ts#L26) |
16
- | <a id="property-send"></a> `send` | (`event`) => `void` | Send an event to the actor | [types.ts:20](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.17/packages/play-dom/src/types.ts#L20) |
17
- | <a id="property-spec"></a> `spec` | `Spec` | Full spec tree | [types.ts:16](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.17/packages/play-dom/src/types.ts#L16) |
18
- | <a id="property-store"></a> `store` | `StateStore` | State store bound to spec.state | [types.ts:18](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.17/packages/play-dom/src/types.ts#L18) |
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)\> & [`Viewable`](../../play-actor/interfaces/Viewable.md) | Raw actor — access from any DOM component for state reading, complex events, lifecycle | [types.ts:22](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.19/packages/play-dom/src/types.ts#L22) |
14
+ | <a id="property-actoractions"></a> `actorActions` | `Record`\<`string`, `string`\> | Map of json-render action names → XState event types | [types.ts:24](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.19/packages/play-dom/src/types.ts#L24) |
15
+ | <a id="property-renderchildren"></a> `renderChildren` | (`keys`) => `Node`[] | Recursively render child elements by key | [types.ts:26](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.19/packages/play-dom/src/types.ts#L26) |
16
+ | <a id="property-send"></a> `send` | (`event`) => `void` | Send an event to the actor | [types.ts:20](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.19/packages/play-dom/src/types.ts#L20) |
17
+ | <a id="property-spec"></a> `spec` | `Spec` | Full spec tree | [types.ts:16](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.19/packages/play-dom/src/types.ts#L16) |
18
+ | <a id="property-store"></a> `store` | `StateStore` | State store bound to spec.state | [types.ts:18](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.19/packages/play-dom/src/types.ts#L18) |
@@ -2,7 +2,7 @@
2
2
 
3
3
  # Interface: PlayDomOptions
4
4
 
5
- Defined in: [types.ts:46](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.17/packages/play-dom/src/types.ts#L46)
5
+ Defined in: [types.ts:46](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.19/packages/play-dom/src/types.ts#L46)
6
6
 
7
7
  Options for PlayRenderer.
8
8
 
@@ -10,5 +10,5 @@ Options for PlayRenderer.
10
10
 
11
11
  | Property | Type | Description | Defined in |
12
12
  | ---------------------------------------- | ------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------ |
13
- | <a id="property-actions"></a> `actions?` | `Record`\<`string`, `string`\> | Map of json-render actionName → XState event type | [types.ts:48](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.17/packages/play-dom/src/types.ts#L48) |
14
- | <a id="property-store"></a> `store?` | `StateStore` | Optional external StateStore (e.g. from `xstateStoreStateStore` in @json-render/xstate). When provided, PlayRenderer operates in controlled mode — spec.state is ignored and this store is the single source of truth for UI state (form values, etc.). When omitted, a fresh @xstate/store atom is created internally per view transition, seeded from spec.state. | [types.ts:57](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.17/packages/play-dom/src/types.ts#L57) |
13
+ | <a id="property-actions"></a> `actions?` | `Record`\<`string`, `string`\> | Map of json-render actionName → XState event type | [types.ts:48](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.19/packages/play-dom/src/types.ts#L48) |
14
+ | <a id="property-store"></a> `store?` | `StateStore` | Optional external StateStore (e.g. from `xstateStoreStateStore` in @json-render/xstate). When provided, PlayRenderer operates in controlled mode — spec.state is ignored and this store is the single source of truth for UI state (form values, etc.). When omitted, a fresh @xstate/store atom is created internally per view transition, seeded from spec.state. | [types.ts:57](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.19/packages/play-dom/src/types.ts#L57) |
@@ -6,7 +6,7 @@
6
6
  type DomComponentRenderer = (element, ctx) => HTMLElement | Text | null;
7
7
  ```
8
8
 
9
- Defined in: [types.ts:33](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.17/packages/play-dom/src/types.ts#L33)
9
+ Defined in: [types.ts:33](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.19/packages/play-dom/src/types.ts#L33)
10
10
 
11
11
  Pure DOM component renderer — receives a UIElement + context and returns a DOM node.
12
12
  No framework required. Return null for unknown/unsupported elements.
@@ -6,6 +6,6 @@
6
6
  type DomRegistry = Record<string, DomComponentRenderer>;
7
7
  ```
8
8
 
9
- Defined in: [types.ts:41](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.17/packages/play-dom/src/types.ts#L41)
9
+ Defined in: [types.ts:41](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.19/packages/play-dom/src/types.ts#L41)
10
10
 
11
11
  Registry of component renderers keyed by element type.
@@ -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 [RFC Play v1](https://gitlab.com/xmachin-es/rfc/-/blob/main/src/play-v1.md):
18
+ Per [Play RFC](../../_media/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
@@ -262,10 +262,15 @@ function NavBar({ actor }: { actor: ReturnType<typeof createPlayer> }) {
262
262
 
263
263
  Class error boundary that wraps the rendered output. Catches errors thrown during component render and logs them without crashing the full page. `PlayRenderer` wraps its own output in this boundary automatically.
264
264
 
265
+ `componentDidCatch` invokes the `onError` prop (for observability tools) but does **not** re-throw — re-throwing from `componentDidCatch` can unmount the entire React 19 root. `getDerivedStateFromError` handles fallback state transition instead.
266
+
265
267
  ```tsx
266
268
  import { PlayErrorBoundary } from "@xmachines/play-react";
267
269
 
268
- <PlayErrorBoundary fallback={<p>Something went wrong.</p>}>
270
+ <PlayErrorBoundary
271
+ fallback={<p>Something went wrong.</p>}
272
+ onError={(err, info) => Sentry.captureException(err, { extra: info })}
273
+ >
269
274
  <PlayRenderer actor={actor} registry={registry} />
270
275
  </PlayErrorBoundary>;
271
276
  ```
@@ -340,5 +345,6 @@ from `@xmachines/play-react` rather than `@json-render/react` directly.
340
345
 
341
346
  - [defineRegistry](functions/defineRegistry.md)
342
347
  - [useActor](functions/useActor.md)
348
+ - [useBoundProp](functions/useBoundProp.md)
343
349
  - [useSignalEffect](functions/useSignalEffect.md)
344
350
  - [~~useStateBinding~~](functions/useStateBinding.md)
@@ -2,7 +2,7 @@
2
2
 
3
3
  # Class: PlayErrorBoundary
4
4
 
5
- Defined in: [packages/play-react/src/PlayErrorBoundary.tsx:50](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.17/packages/play-react/src/PlayErrorBoundary.tsx#L50)
5
+ Defined in: [packages/play-react/src/PlayErrorBoundary.tsx:53](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.19/packages/play-react/src/PlayErrorBoundary.tsx#L53)
6
6
 
7
7
  React class component error boundary for catching catalog component render errors.
8
8
 
@@ -10,6 +10,10 @@ Wraps catalog component renders so failures are caught and forwarded to standard
10
10
  React error boundary protocol. Consumers can attach the `onError` prop to forward
11
11
  errors to production observability tools (Sentry, Datadog, etc.).
12
12
 
13
+ **React 19 safety (Phase 29):** `componentDidCatch` calls `onError` for observability
14
+ but does NOT re-throw. `getDerivedStateFromError` already sets the fallback state —
15
+ re-throwing from `componentDidCatch` can unmount the entire React 19 root.
16
+
13
17
  Per CONS-14: Class component pattern works with all React versions (18 and 19).
14
18
 
15
19
  ## Example
@@ -32,7 +36,7 @@ Per CONS-14: Class component pattern works with all React versions (18 and 19).
32
36
  new PlayErrorBoundary(props): PlayErrorBoundary;
33
37
  ```
34
38
 
35
- Defined in: [packages/play-react/src/PlayErrorBoundary.tsx:54](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.17/packages/play-react/src/PlayErrorBoundary.tsx#L54)
39
+ Defined in: [packages/play-react/src/PlayErrorBoundary.tsx:57](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.19/packages/play-react/src/PlayErrorBoundary.tsx#L57)
36
40
 
37
41
  #### Parameters
38
42
 
@@ -71,7 +75,7 @@ React.Component<
71
75
  componentDidCatch(error, info): void;
72
76
  ```
73
77
 
74
- Defined in: [packages/play-react/src/PlayErrorBoundary.tsx:63](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.17/packages/play-react/src/PlayErrorBoundary.tsx#L63)
78
+ Defined in: [packages/play-react/src/PlayErrorBoundary.tsx:66](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.19/packages/play-react/src/PlayErrorBoundary.tsx#L66)
75
79
 
76
80
  Catches exceptions generated in descendant components. Unhandled exceptions will cause
77
81
  the entire component tree to unmount.
@@ -355,7 +359,7 @@ React.Component.getSnapshotBeforeUpdate;
355
359
  render(): ReactNode;
356
360
  ```
357
361
 
358
- Defined in: [packages/play-react/src/PlayErrorBoundary.tsx:70](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.17/packages/play-react/src/PlayErrorBoundary.tsx#L70)
362
+ Defined in: [packages/play-react/src/PlayErrorBoundary.tsx:70](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.19/packages/play-react/src/PlayErrorBoundary.tsx#L70)
359
363
 
360
364
  #### Returns
361
365
 
@@ -574,7 +578,7 @@ React.Component.UNSAFE_componentWillUpdate;
574
578
  static getDerivedStateFromError(error): PlayErrorBoundaryState;
575
579
  ```
576
580
 
577
- Defined in: [packages/play-react/src/PlayErrorBoundary.tsx:59](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.17/packages/play-react/src/PlayErrorBoundary.tsx#L59)
581
+ Defined in: [packages/play-react/src/PlayErrorBoundary.tsx:62](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.19/packages/play-react/src/PlayErrorBoundary.tsx#L62)
578
582
 
579
583
  #### Parameters
580
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.17/packages/play-react/src/useActor.ts#L30)
9
+ Defined in: [packages/play-react/src/useActor.ts:30](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.19/packages/play-react/src/useActor.ts#L30)
10
10
 
11
11
  ## Returns
12
12
 
@@ -0,0 +1,43 @@
1
+ [Documentation](../../../README.md) / [@xmachines/play-react](../README.md) / useBoundProp
2
+
3
+ # Function: useBoundProp()
4
+
5
+ ```ts
6
+ function useBoundProp<T>(propValue, bindingPath): [T | undefined, (value) => void];
7
+ ```
8
+
9
+ Hook for two-way bound props. Returns `[value, setValue]` where:
10
+
11
+ - `value` is the already-resolved prop value (passed through from render props)
12
+ - `setValue` writes back to the bound state path (no-op if not bound)
13
+
14
+ Designed to work with the `bindings` map that the renderer provides when
15
+ a prop uses `{ $bindState: "/path" }` or `{ $bindItem: "field" }`.
16
+
17
+ ## Type Parameters
18
+
19
+ | Type Parameter |
20
+ | -------------- |
21
+ | `T` |
22
+
23
+ ## Parameters
24
+
25
+ | Parameter | Type |
26
+ | ------------- | ----------------------- |
27
+ | `propValue` | `T` \| `undefined` |
28
+ | `bindingPath` | `string` \| `undefined` |
29
+
30
+ ## Returns
31
+
32
+ \[`T` \| `undefined`, (`value`) => `void`\]
33
+
34
+ ## Example
35
+
36
+ ```tsx
37
+ import { useBoundProp } from "@json-render/react";
38
+
39
+ const Input: ComponentRenderer = ({ props, bindings }) => {
40
+ const [value, setValue] = useBoundProp<string>(props.value, bindings?.value);
41
+ return <input value={value ?? ""} onChange={(e) => setValue(e.target.value)} />;
42
+ };
43
+ ```
@@ -6,7 +6,7 @@
6
6
  function useSignalEffect(callback): void;
7
7
  ```
8
8
 
9
- Defined in: [packages/play-react/src/useSignalEffect.ts:65](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.17/packages/play-react/src/useSignalEffect.ts#L65)
9
+ Defined in: [packages/play-react/src/useSignalEffect.ts:65](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.19/packages/play-react/src/useSignalEffect.ts#L65)
10
10
 
11
11
  React hook that subscribes to signal changes and runs effect callback
12
12
 
@@ -26,7 +26,7 @@ Hook to get and set a value from the state model (like useState).
26
26
 
27
27
  ## Deprecated
28
28
 
29
- Use useBoundProp with `$bindState` expressions instead.
29
+ Use [useBoundProp](useBoundProp.md) with `$bindState` expressions instead.
30
30
  `useStateBinding` takes a raw state path string, while `useBoundProp` works
31
31
  with the renderer's `bindings` map and supports both `$bindState` and
32
32
  `$bindItem` expressions.