@xmachines/docs 1.0.0-beta.46 → 1.0.0-beta.48

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 (346) hide show
  1. package/README.md +135 -7
  2. package/api/@xmachines/play/README.md +134 -57
  3. package/api/@xmachines/play/classes/NonNullableError.md +4 -4
  4. package/api/@xmachines/play/classes/PlayError.md +4 -4
  5. package/api/@xmachines/play/functions/assertNonNullable.md +1 -1
  6. package/api/@xmachines/play/type-aliases/PlayEvent.md +2 -2
  7. package/api/@xmachines/play-actor/README.md +130 -155
  8. package/api/@xmachines/play-actor/classes/AbstractActor.md +3 -3
  9. package/api/@xmachines/play-actor/functions/typedSpec.md +1 -1
  10. package/api/@xmachines/play-actor/interfaces/BaseActorProviderProps.md +5 -5
  11. package/api/@xmachines/play-actor/interfaces/BaseViewContextValue.md +5 -5
  12. package/api/@xmachines/play-actor/interfaces/PlaySpec.md +2 -2
  13. package/api/@xmachines/play-actor/interfaces/Routable.md +3 -3
  14. package/api/@xmachines/play-actor/interfaces/Viewable.md +2 -2
  15. package/api/@xmachines/play-dom/README.md +140 -232
  16. package/api/@xmachines/play-dom/classes/PlayRenderer.md +4 -4
  17. package/api/@xmachines/play-dom/functions/connectRenderer.md +1 -1
  18. package/api/@xmachines/play-dom/functions/createPlayUI.md +1 -1
  19. package/api/@xmachines/play-dom/functions/createRenderer.md +1 -1
  20. package/api/@xmachines/play-dom/functions/defineRegistry.md +1 -1
  21. package/api/@xmachines/play-dom/functions/renderSpec.md +1 -1
  22. package/api/@xmachines/play-dom/interfaces/ComponentContext.md +7 -7
  23. package/api/@xmachines/play-dom/interfaces/ConnectRendererOptions.md +13 -13
  24. package/api/@xmachines/play-dom/interfaces/CreatePlayUIOptions.md +6 -6
  25. package/api/@xmachines/play-dom/interfaces/DefineRegistryResult.md +4 -4
  26. package/api/@xmachines/play-dom/interfaces/DomRenderContext.md +12 -12
  27. package/api/@xmachines/play-dom/interfaces/EventHandle.md +4 -4
  28. package/api/@xmachines/play-dom/interfaces/MountOptions.md +3 -3
  29. package/api/@xmachines/play-dom/interfaces/PlayDomOptions.md +5 -5
  30. package/api/@xmachines/play-dom/interfaces/UIProviderOptions.md +5 -5
  31. package/api/@xmachines/play-dom/type-aliases/ActionFn.md +1 -1
  32. package/api/@xmachines/play-dom/type-aliases/Actions.md +1 -1
  33. package/api/@xmachines/play-dom/type-aliases/BaseComponentProps.md +7 -7
  34. package/api/@xmachines/play-dom/type-aliases/CatalogHasActions.md +1 -1
  35. package/api/@xmachines/play-dom/type-aliases/ComponentFn.md +1 -1
  36. package/api/@xmachines/play-dom/type-aliases/ComponentRegistry.md +1 -1
  37. package/api/@xmachines/play-dom/type-aliases/DefineRegistryOptions.md +2 -2
  38. package/api/@xmachines/play-dom/type-aliases/DomComponentRenderer.md +1 -1
  39. package/api/@xmachines/play-dom/type-aliases/DomRegistry.md +1 -1
  40. package/api/@xmachines/play-dom/type-aliases/DomSchema.md +1 -1
  41. package/api/@xmachines/play-dom/type-aliases/MountFn.md +1 -1
  42. package/api/@xmachines/play-dom/type-aliases/SetState.md +1 -1
  43. package/api/@xmachines/play-dom/variables/schema.md +1 -1
  44. package/api/@xmachines/play-dom-router/README.md +160 -158
  45. package/api/@xmachines/play-dom-router/functions/connectRouter.md +1 -1
  46. package/api/@xmachines/play-dom-router/functions/createBrowserHistory.md +1 -1
  47. package/api/@xmachines/play-dom-router/functions/createRouteMap.md +1 -1
  48. package/api/@xmachines/play-dom-router/functions/createRouter.md +1 -1
  49. package/api/@xmachines/play-dom-router/interfaces/BrowserHistory.md +14 -14
  50. package/api/@xmachines/play-dom-router/interfaces/BrowserWindow.md +14 -14
  51. package/api/@xmachines/play-dom-router/interfaces/ConnectRouterOptions.md +4 -4
  52. package/api/@xmachines/play-dom-router/interfaces/PlayRouteEvent.md +6 -6
  53. package/api/@xmachines/play-dom-router/interfaces/RouteLookupContract.md +3 -3
  54. package/api/@xmachines/play-dom-router/interfaces/RouteMap.md +3 -3
  55. package/api/@xmachines/play-dom-router/interfaces/RouteMapOptions.md +2 -2
  56. package/api/@xmachines/play-dom-router/interfaces/RouteMapping.md +3 -3
  57. package/api/@xmachines/play-dom-router/interfaces/RouterBridge.md +3 -3
  58. package/api/@xmachines/play-dom-router/interfaces/VanillaRouter.md +4 -4
  59. package/api/@xmachines/play-dom-router/type-aliases/RoutableActor.md +1 -1
  60. package/api/@xmachines/play-react/README.md +109 -320
  61. package/api/@xmachines/play-react/classes/PlayErrorBoundary.md +5 -5
  62. package/api/@xmachines/play-react/functions/useActor.md +1 -1
  63. package/api/@xmachines/play-react/functions/usePlayView.md +1 -1
  64. package/api/@xmachines/play-react/functions/useSignalEffect.md +1 -1
  65. package/api/@xmachines/play-react/interfaces/ActorProviderProps.md +8 -8
  66. package/api/@xmachines/play-react/interfaces/PlayErrorBoundaryProps.md +4 -4
  67. package/api/@xmachines/play-react/interfaces/PlayErrorBoundaryState.md +3 -3
  68. package/api/@xmachines/play-react/interfaces/PlayUIProviderProps.md +8 -8
  69. package/api/@xmachines/play-react/interfaces/ViewContextValue.md +5 -5
  70. package/api/@xmachines/play-react/type-aliases/PlayActor.md +1 -1
  71. package/api/@xmachines/play-react/variables/ActorProvider.md +1 -1
  72. package/api/@xmachines/play-react/variables/PlayRenderer.md +1 -1
  73. package/api/@xmachines/play-react/variables/PlayUIProvider.md +1 -1
  74. package/api/@xmachines/play-react-router/README.md +107 -124
  75. package/api/@xmachines/play-react-router/classes/ReactRouterBridge.md +23 -23
  76. package/api/@xmachines/play-react-router/classes/RouteMap.md +4 -4
  77. package/api/@xmachines/play-react-router/functions/PlayRouterProvider.md +1 -1
  78. package/api/@xmachines/play-react-router/functions/createRouteMap.md +1 -1
  79. package/api/@xmachines/play-react-router/functions/createRouteMapFromTree.md +1 -1
  80. package/api/@xmachines/play-react-router/interfaces/PlayRouteEvent.md +6 -6
  81. package/api/@xmachines/play-react-router/interfaces/PlayRouterProviderProps.md +5 -5
  82. package/api/@xmachines/play-react-router/interfaces/RouteMapOptions.md +2 -2
  83. package/api/@xmachines/play-react-router/interfaces/RouteMapping.md +3 -3
  84. package/api/@xmachines/play-react-router/interfaces/RouterBridge.md +3 -3
  85. package/api/@xmachines/play-router/README.md +235 -475
  86. package/api/@xmachines/play-router/classes/RouteMap.md +4 -4
  87. package/api/@xmachines/play-router/classes/RouterBridgeBase.md +23 -23
  88. package/api/@xmachines/play-router/functions/buildPlayRouteEvent.md +1 -1
  89. package/api/@xmachines/play-router/functions/buildRouteTree.md +1 -1
  90. package/api/@xmachines/play-router/functions/createRouteMap.md +1 -1
  91. package/api/@xmachines/play-router/functions/createRouteMapFromTree.md +1 -1
  92. package/api/@xmachines/play-router/functions/createRouteMatcher.md +1 -1
  93. package/api/@xmachines/play-router/functions/detectDuplicateRoutes.md +1 -1
  94. package/api/@xmachines/play-router/functions/extractMachineRoutes.md +1 -1
  95. package/api/@xmachines/play-router/functions/extractQuery.md +1 -1
  96. package/api/@xmachines/play-router/functions/extractRouteParams.md +1 -1
  97. package/api/@xmachines/play-router/functions/findRouteById.md +1 -1
  98. package/api/@xmachines/play-router/functions/findRouteByPath.md +1 -1
  99. package/api/@xmachines/play-router/functions/getNavigableRoutes.md +1 -1
  100. package/api/@xmachines/play-router/functions/getRoutableRoutes.md +1 -1
  101. package/api/@xmachines/play-router/functions/getTransitionReachableRoutes.md +1 -1
  102. package/api/@xmachines/play-router/functions/isRouteReachable.md +1 -1
  103. package/api/@xmachines/play-router/functions/machineToGraph.md +1 -1
  104. package/api/@xmachines/play-router/functions/routeExists.md +1 -1
  105. package/api/@xmachines/play-router/functions/sanitizePathname.md +1 -1
  106. package/api/@xmachines/play-router/functions/validateRouteFormat.md +1 -1
  107. package/api/@xmachines/play-router/functions/validateStateExists.md +1 -1
  108. package/api/@xmachines/play-router/interfaces/BuildPlayRouteEventOptions.md +4 -4
  109. package/api/@xmachines/play-router/interfaces/LocationLike.md +3 -3
  110. package/api/@xmachines/play-router/interfaces/MachineEdgeData.md +3 -3
  111. package/api/@xmachines/play-router/interfaces/MachineNodeData.md +5 -5
  112. package/api/@xmachines/play-router/interfaces/PlayRouteEvent.md +6 -6
  113. package/api/@xmachines/play-router/interfaces/RouteInfo.md +8 -8
  114. package/api/@xmachines/play-router/interfaces/RouteMapOptions.md +2 -2
  115. package/api/@xmachines/play-router/interfaces/RouteMapping.md +3 -3
  116. package/api/@xmachines/play-router/interfaces/RouteMatch.md +3 -3
  117. package/api/@xmachines/play-router/interfaces/RouteMatcher.md +4 -4
  118. package/api/@xmachines/play-router/interfaces/RouteNode.md +10 -10
  119. package/api/@xmachines/play-router/interfaces/RouteObject.md +2 -2
  120. package/api/@xmachines/play-router/interfaces/RouteTree.md +5 -5
  121. package/api/@xmachines/play-router/interfaces/RouteWatcherHandle.md +3 -3
  122. package/api/@xmachines/play-router/interfaces/RouterBridge.md +3 -3
  123. package/api/@xmachines/play-router/interfaces/WindowLike.md +3 -3
  124. package/api/@xmachines/play-router/type-aliases/MachineGraph.md +1 -1
  125. package/api/@xmachines/play-router/type-aliases/RouteMetadata.md +1 -1
  126. package/api/@xmachines/play-signals/README.md +105 -73
  127. package/api/@xmachines/play-signals/functions/watchSignal.md +1 -1
  128. package/api/@xmachines/play-signals/interfaces/ComputedOptions.md +2 -2
  129. package/api/@xmachines/play-signals/interfaces/SignalComputed.md +2 -2
  130. package/api/@xmachines/play-signals/interfaces/SignalOptions.md +2 -2
  131. package/api/@xmachines/play-signals/interfaces/SignalState.md +3 -3
  132. package/api/@xmachines/play-signals/interfaces/SignalWatcher.md +4 -4
  133. package/api/@xmachines/play-signals/type-aliases/WatcherNotify.md +1 -1
  134. package/api/@xmachines/play-solid/README.md +117 -263
  135. package/api/@xmachines/play-solid/functions/useActor.md +1 -1
  136. package/api/@xmachines/play-solid/functions/usePlayView.md +1 -1
  137. package/api/@xmachines/play-solid/interfaces/ActorProviderProps.md +8 -8
  138. package/api/@xmachines/play-solid/interfaces/PlayUIProviderProps.md +8 -8
  139. package/api/@xmachines/play-solid/interfaces/ViewContextValue.md +5 -5
  140. package/api/@xmachines/play-solid/type-aliases/PlayActor.md +1 -1
  141. package/api/@xmachines/play-solid/variables/ActorContext.md +1 -1
  142. package/api/@xmachines/play-solid/variables/ActorProvider.md +1 -1
  143. package/api/@xmachines/play-solid/variables/PlayRenderer.md +1 -1
  144. package/api/@xmachines/play-solid/variables/PlayUIProvider.md +1 -1
  145. package/api/@xmachines/play-solid-router/README.md +93 -606
  146. package/api/@xmachines/play-solid-router/classes/RouteMap.md +4 -4
  147. package/api/@xmachines/play-solid-router/classes/SolidRouterBridge.md +24 -24
  148. package/api/@xmachines/play-solid-router/functions/PlayRouterProvider.md +1 -1
  149. package/api/@xmachines/play-solid-router/functions/createRouteMap.md +1 -1
  150. package/api/@xmachines/play-solid-router/interfaces/AbstractActor.md +3 -3
  151. package/api/@xmachines/play-solid-router/interfaces/PlayRouteEvent.md +6 -6
  152. package/api/@xmachines/play-solid-router/interfaces/PlayRouterProviderProps.md +5 -5
  153. package/api/@xmachines/play-solid-router/interfaces/RouteMapOptions.md +2 -2
  154. package/api/@xmachines/play-solid-router/interfaces/RouteMapping.md +3 -3
  155. package/api/@xmachines/play-solid-router/interfaces/RouterBridge.md +3 -3
  156. package/api/@xmachines/play-solid-router/type-aliases/RoutableActor.md +1 -1
  157. package/api/@xmachines/play-solid-router/type-aliases/SolidRouterHooks.md +4 -4
  158. package/api/@xmachines/play-svelte/README.md +111 -103
  159. package/api/@xmachines/play-svelte/functions/defineRegistry.md +1 -1
  160. package/api/@xmachines/play-svelte/functions/getActorContext.md +1 -1
  161. package/api/@xmachines/play-svelte/functions/getPlayViewContext.md +1 -1
  162. package/api/@xmachines/play-svelte/functions/setActorContext.md +1 -1
  163. package/api/@xmachines/play-svelte/interfaces/ActorProviderProps.md +8 -8
  164. package/api/@xmachines/play-svelte/interfaces/DefineRegistryOptions.md +4 -4
  165. package/api/@xmachines/play-svelte/interfaces/PlayUIProviderProps.md +11 -11
  166. package/api/@xmachines/play-svelte/interfaces/ViewContextValue.md +5 -5
  167. package/api/@xmachines/play-svelte/type-aliases/PlayActor.md +1 -1
  168. package/api/@xmachines/play-svelte-spa-router/README.md +156 -17
  169. package/api/@xmachines/play-svelte-spa-router/classes/RouteMap.md +4 -4
  170. package/api/@xmachines/play-svelte-spa-router/functions/connectRouter.md +1 -1
  171. package/api/@xmachines/play-svelte-spa-router/functions/createRouteMap.md +1 -1
  172. package/api/@xmachines/play-svelte-spa-router/interfaces/ConnectRouterOptions.md +4 -4
  173. package/api/@xmachines/play-svelte-spa-router/interfaces/PlayRouteEvent.md +6 -6
  174. package/api/@xmachines/play-svelte-spa-router/interfaces/RouteMapOptions.md +2 -2
  175. package/api/@xmachines/play-svelte-spa-router/interfaces/RouteMapping.md +3 -3
  176. package/api/@xmachines/play-svelte-spa-router/interfaces/RouterBridge.md +3 -3
  177. package/api/@xmachines/play-svelte-spa-router/interfaces/WindowLike.md +3 -3
  178. package/api/@xmachines/play-svelte-spa-router/type-aliases/RoutableActor.md +1 -1
  179. package/api/@xmachines/play-sveltekit-router/README.md +168 -17
  180. package/api/@xmachines/play-sveltekit-router/classes/RouteMap.md +4 -4
  181. package/api/@xmachines/play-sveltekit-router/functions/connectRouter.md +1 -1
  182. package/api/@xmachines/play-sveltekit-router/functions/createRouteMap.md +1 -1
  183. package/api/@xmachines/play-sveltekit-router/interfaces/ConnectRouterOptions.md +4 -4
  184. package/api/@xmachines/play-sveltekit-router/interfaces/LocationLike.md +3 -3
  185. package/api/@xmachines/play-sveltekit-router/interfaces/PlayRouteEvent.md +6 -6
  186. package/api/@xmachines/play-sveltekit-router/interfaces/RouteMapOptions.md +2 -2
  187. package/api/@xmachines/play-sveltekit-router/interfaces/RouteMapping.md +3 -3
  188. package/api/@xmachines/play-sveltekit-router/interfaces/RouterBridge.md +3 -3
  189. package/api/@xmachines/play-sveltekit-router/type-aliases/RoutableActor.md +1 -1
  190. package/api/@xmachines/play-tanstack-react-router/README.md +147 -122
  191. package/api/@xmachines/play-tanstack-react-router/classes/RouteMap.md +4 -4
  192. package/api/@xmachines/play-tanstack-react-router/classes/TanStackReactRouterBridge.md +23 -23
  193. package/api/@xmachines/play-tanstack-react-router/functions/PlayRouterProvider.md +1 -1
  194. package/api/@xmachines/play-tanstack-react-router/functions/createRouteMap.md +1 -1
  195. package/api/@xmachines/play-tanstack-react-router/functions/createRouteMapFromTree.md +1 -1
  196. package/api/@xmachines/play-tanstack-react-router/functions/extractMachineRoutes.md +1 -1
  197. package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouteEvent.md +6 -6
  198. package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouterProviderProps.md +5 -5
  199. package/api/@xmachines/play-tanstack-react-router/interfaces/RouteMapOptions.md +2 -2
  200. package/api/@xmachines/play-tanstack-react-router/interfaces/RouteMapping.md +3 -3
  201. package/api/@xmachines/play-tanstack-react-router/interfaces/RouteNavigateEvent.md +3 -3
  202. package/api/@xmachines/play-tanstack-react-router/interfaces/RouterBridge.md +3 -3
  203. package/api/@xmachines/play-tanstack-react-router/type-aliases/TanStackRouterInstance.md +1 -1
  204. package/api/@xmachines/play-tanstack-react-router/type-aliases/TanStackRouterLike.md +4 -4
  205. package/api/@xmachines/play-tanstack-solid-router/README.md +195 -173
  206. package/api/@xmachines/play-tanstack-solid-router/classes/RouteMap.md +4 -4
  207. package/api/@xmachines/play-tanstack-solid-router/classes/SolidRouterBridge.md +24 -24
  208. package/api/@xmachines/play-tanstack-solid-router/functions/PlayRouterProvider.md +1 -1
  209. package/api/@xmachines/play-tanstack-solid-router/functions/createRouteMap.md +1 -1
  210. package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayRouteEvent.md +6 -6
  211. package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayRouterProviderProps.md +5 -5
  212. package/api/@xmachines/play-tanstack-solid-router/interfaces/RouteMapOptions.md +2 -2
  213. package/api/@xmachines/play-tanstack-solid-router/interfaces/RouteMapping.md +3 -3
  214. package/api/@xmachines/play-tanstack-solid-router/interfaces/RouterBridge.md +3 -3
  215. package/api/@xmachines/play-tanstack-solid-router/type-aliases/RoutableActor.md +1 -1
  216. package/api/@xmachines/play-tanstack-solid-router/type-aliases/TanStackRouterInstance.md +1 -1
  217. package/api/@xmachines/play-tanstack-solid-router/type-aliases/TanStackRouterLike.md +3 -3
  218. package/api/@xmachines/play-vue/README.md +126 -271
  219. package/api/@xmachines/play-vue/functions/defineRegistry.md +1 -1
  220. package/api/@xmachines/play-vue/functions/getPlayViewContext.md +1 -1
  221. package/api/@xmachines/play-vue/functions/useActor.md +1 -1
  222. package/api/@xmachines/play-vue/interfaces/ActorProviderProps.md +5 -5
  223. package/api/@xmachines/play-vue/interfaces/PlayUIProviderProps.md +8 -8
  224. package/api/@xmachines/play-vue/interfaces/ViewContextValue.md +5 -5
  225. package/api/@xmachines/play-vue/interfaces/VisibilityProviderProps.md +1 -1
  226. package/api/@xmachines/play-vue/type-aliases/ComponentEntry.md +1 -1
  227. package/api/@xmachines/play-vue/type-aliases/ComponentsMap.md +1 -1
  228. package/api/@xmachines/play-vue/type-aliases/DefineRegistryOptions.md +2 -2
  229. package/api/@xmachines/play-vue/type-aliases/PlayActor.md +1 -1
  230. package/api/@xmachines/play-vue/variables/PlayRenderer.md +1 -1
  231. package/api/@xmachines/play-vue-router/README.md +148 -528
  232. package/api/@xmachines/play-vue-router/classes/RouteMap.md +4 -4
  233. package/api/@xmachines/play-vue-router/classes/VueRouterBridge.md +24 -24
  234. package/api/@xmachines/play-vue-router/functions/createRouteMap.md +1 -1
  235. package/api/@xmachines/play-vue-router/interfaces/PlayRouteEvent.md +6 -6
  236. package/api/@xmachines/play-vue-router/interfaces/RouteMapOptions.md +2 -2
  237. package/api/@xmachines/play-vue-router/interfaces/RouteMapping.md +3 -3
  238. package/api/@xmachines/play-vue-router/interfaces/RouterBridge.md +3 -3
  239. package/api/@xmachines/play-vue-router/type-aliases/RoutableActor.md +1 -1
  240. package/api/@xmachines/play-vue-router/variables/PlayRouterProvider.md +1 -1
  241. package/api/@xmachines/play-xstate/README.md +167 -496
  242. package/api/@xmachines/play-xstate/classes/PlayerActor.md +12 -12
  243. package/api/@xmachines/play-xstate/functions/buildRouteUrl.md +1 -1
  244. package/api/@xmachines/play-xstate/functions/composeGuards.md +1 -1
  245. package/api/@xmachines/play-xstate/functions/composeGuardsOr.md +1 -1
  246. package/api/@xmachines/play-xstate/functions/contextFieldMatches.md +1 -1
  247. package/api/@xmachines/play-xstate/functions/definePlayer.md +1 -1
  248. package/api/@xmachines/play-xstate/functions/deriveRoute.md +1 -1
  249. package/api/@xmachines/play-xstate/functions/eventMatches.md +1 -1
  250. package/api/@xmachines/play-xstate/functions/formatPlayRouteTransitions.md +1 -1
  251. package/api/@xmachines/play-xstate/functions/hasContext.md +1 -1
  252. package/api/@xmachines/play-xstate/functions/isAbsoluteRoute.md +1 -1
  253. package/api/@xmachines/play-xstate/functions/negateGuard.md +1 -1
  254. package/api/@xmachines/play-xstate/interfaces/PlayerConfig.md +3 -3
  255. package/api/@xmachines/play-xstate/interfaces/PlayerFactoryResumeOptions.md +2 -2
  256. package/api/@xmachines/play-xstate/interfaces/PlayerOptions.md +6 -6
  257. package/api/@xmachines/play-xstate/interfaces/RouteContext.md +5 -5
  258. package/api/@xmachines/play-xstate/type-aliases/ComposedGuard.md +1 -1
  259. package/api/@xmachines/play-xstate/type-aliases/Guard.md +1 -1
  260. package/api/@xmachines/play-xstate/type-aliases/GuardArray.md +1 -1
  261. package/api/@xmachines/play-xstate/type-aliases/PlayerFactory.md +1 -1
  262. package/api/@xmachines/play-xstate/type-aliases/RouteMachineConfig.md +4 -4
  263. package/api/@xmachines/play-xstate/type-aliases/RouteStateNode.md +4 -4
  264. package/api/@xmachines/shared/README.md +81 -294
  265. package/api/@xmachines/shared/vite-aliases/functions/xmAliases.md +1 -1
  266. package/api/@xmachines/shared/vite-aliases/functions/xmCacheDir.md +1 -1
  267. package/api/@xmachines/shared/vite-aliases/functions/xmOptimizeDeps.md +1 -1
  268. package/api/@xmachines/shared/vite-aliases/functions/xmResolve.md +1 -1
  269. package/api/@xmachines/shared/vitest/functions/defineXmVitestConfig.md +1 -1
  270. package/examples/@xmachines/play-dom-demo/README.md +3 -3
  271. package/examples/@xmachines/play-dom-demo/functions/createNavBar.md +1 -1
  272. package/examples/@xmachines/play-dom-demo/functions/initShell.md +1 -1
  273. package/examples/@xmachines/play-dom-demo/type-aliases/AuthCatalog.md +1 -1
  274. package/examples/@xmachines/play-dom-demo/variables/About.md +1 -1
  275. package/examples/@xmachines/play-dom-demo/variables/Contact.md +1 -1
  276. package/examples/@xmachines/play-dom-demo/variables/Dashboard.md +1 -1
  277. package/examples/@xmachines/play-dom-demo/variables/Home.md +1 -1
  278. package/examples/@xmachines/play-dom-demo/variables/Login.md +1 -1
  279. package/examples/@xmachines/play-dom-demo/variables/NavBarView.md +1 -1
  280. package/examples/@xmachines/play-dom-demo/variables/Navigation.md +1 -1
  281. package/examples/@xmachines/play-dom-demo/variables/Overview.md +1 -1
  282. package/examples/@xmachines/play-dom-demo/variables/Profile.md +1 -1
  283. package/examples/@xmachines/play-dom-demo/variables/Settings.md +1 -1
  284. package/examples/@xmachines/play-dom-demo/variables/Stats.md +1 -1
  285. package/examples/@xmachines/play-dom-demo/variables/authCatalog.md +1 -1
  286. package/examples/@xmachines/play-dom-router-demo/README.md +2 -2
  287. package/examples/@xmachines/play-react-demo/README.md +1 -1
  288. package/examples/@xmachines/play-react-demo/functions/App.md +1 -1
  289. package/examples/@xmachines/play-react-demo/type-aliases/AuthCatalog.md +1 -1
  290. package/examples/@xmachines/play-react-demo/variables/About.md +1 -1
  291. package/examples/@xmachines/play-react-demo/variables/Contact.md +1 -1
  292. package/examples/@xmachines/play-react-demo/variables/Dashboard.md +1 -1
  293. package/examples/@xmachines/play-react-demo/variables/DebugPanel.md +1 -1
  294. package/examples/@xmachines/play-react-demo/variables/Home.md +1 -1
  295. package/examples/@xmachines/play-react-demo/variables/Login.md +1 -1
  296. package/examples/@xmachines/play-react-demo/variables/NavBar.md +1 -1
  297. package/examples/@xmachines/play-react-demo/variables/NavBarView.md +1 -1
  298. package/examples/@xmachines/play-react-demo/variables/Navigation.md +1 -1
  299. package/examples/@xmachines/play-react-demo/variables/Overview.md +1 -1
  300. package/examples/@xmachines/play-react-demo/variables/Profile.md +1 -1
  301. package/examples/@xmachines/play-react-demo/variables/Settings.md +1 -1
  302. package/examples/@xmachines/play-react-demo/variables/Shell.md +1 -1
  303. package/examples/@xmachines/play-react-demo/variables/Stats.md +1 -1
  304. package/examples/@xmachines/play-react-demo/variables/authCatalog.md +1 -1
  305. package/examples/@xmachines/play-react-router-demo/README.md +1 -1
  306. package/examples/@xmachines/play-solid-demo/README.md +1 -1
  307. package/examples/@xmachines/play-solid-demo/functions/App.md +1 -1
  308. package/examples/@xmachines/play-solid-demo/type-aliases/AuthCatalog.md +1 -1
  309. package/examples/@xmachines/play-solid-demo/variables/About.md +1 -1
  310. package/examples/@xmachines/play-solid-demo/variables/Contact.md +1 -1
  311. package/examples/@xmachines/play-solid-demo/variables/Dashboard.md +1 -1
  312. package/examples/@xmachines/play-solid-demo/variables/DebugPanel.md +1 -1
  313. package/examples/@xmachines/play-solid-demo/variables/Home.md +1 -1
  314. package/examples/@xmachines/play-solid-demo/variables/Login.md +1 -1
  315. package/examples/@xmachines/play-solid-demo/variables/NavBar.md +1 -1
  316. package/examples/@xmachines/play-solid-demo/variables/NavBarView.md +1 -1
  317. package/examples/@xmachines/play-solid-demo/variables/Navigation.md +1 -1
  318. package/examples/@xmachines/play-solid-demo/variables/Overview.md +1 -1
  319. package/examples/@xmachines/play-solid-demo/variables/Profile.md +1 -1
  320. package/examples/@xmachines/play-solid-demo/variables/Settings.md +1 -1
  321. package/examples/@xmachines/play-solid-demo/variables/Shell.md +1 -1
  322. package/examples/@xmachines/play-solid-demo/variables/Stats.md +1 -1
  323. package/examples/@xmachines/play-solid-demo/variables/authCatalog.md +1 -1
  324. package/examples/@xmachines/play-svelte-demo/README.md +1 -1
  325. package/examples/@xmachines/play-svelte-demo/type-aliases/AuthCatalog.md +1 -1
  326. package/examples/@xmachines/play-svelte-demo/variables/authCatalog.md +1 -1
  327. package/examples/@xmachines/play-svelte-spa-router-demo/README.md +2 -2
  328. package/examples/@xmachines/play-sveltekit-router-demo/README.md +2 -2
  329. package/examples/@xmachines/play-vue-demo/README.md +1 -1
  330. package/examples/@xmachines/play-vue-demo/type-aliases/AuthCatalog.md +1 -1
  331. package/examples/@xmachines/play-vue-demo/variables/App.md +1 -1
  332. package/examples/@xmachines/play-vue-demo/variables/authCatalog.md +1 -1
  333. package/examples/README.md +24 -25
  334. package/examples/form-validation.md +2 -2
  335. package/guides/README.md +7 -7
  336. package/guides/actor-model.md +18 -18
  337. package/guides/architecture.md +500 -0
  338. package/guides/configuration.md +556 -0
  339. package/guides/deployment.md +336 -0
  340. package/guides/development.md +617 -0
  341. package/guides/getting-started.md +351 -142
  342. package/guides/signals.md +19 -19
  343. package/guides/state-machines.md +16 -16
  344. package/guides/testing.md +460 -0
  345. package/package.json +5 -5
  346. package/guides/installation.md +0 -257
@@ -1,38 +1,46 @@
1
1
  [API](../../README.md) / @xmachines/shared
2
2
 
3
- # @xmachines/shared
3
+ <!-- generated-by: gsd-doc-writer -->
4
4
 
5
- **Shared TypeScript, linting, and formatting configurations for XMachines monorepo**
5
+ # `@xmachines/shared`
6
6
 
7
- Centralized config enabling composite build system with project references.
7
+ Shared configurations for XMachines packages TypeScript, linting, formatting, and Vitest setup used across the monorepo.
8
8
 
9
- ## Overview
10
-
11
- `@xmachines/shared` provides shared configuration files for all XMachines packages, establishing consistent TypeScript compilation, linting rules, formatting, and Vitest setup across the monorepo.
12
-
13
- **Enhancement:** Added TypeScript composite build system with project references enabling correct build order, incremental compilation, and IDE source navigation via declaration maps.
9
+ Part of the [xmachines-js monorepo](../../README.md).
14
10
 
15
11
  ## Installation
16
12
 
17
- This package is automatically available to all workspace packages via npm workspaces.
13
+ This package is an internal monorepo dependency. It is **not intended for installation by external consumers**.
18
14
 
19
- ## Contents
15
+ Within the monorepo it is referenced by package name:
20
16
 
21
- Configuration files in `config/` directory:
17
+ ```json
18
+ {
19
+ "dependencies": {
20
+ "@xmachines/shared": "*"
21
+ }
22
+ }
23
+ ```
22
24
 
23
- - **`config/tsconfig.json`** - TypeScript compiler settings with composite project support
24
- - **`config/oxlint.json`** - Linting rules and plugins
25
- - **`config/oxfmt.json`** - Code formatting preferences
26
- - **`config/vitest.ts`** - Shared Vitest config helper (`defineXmVitestConfig`)
27
- - **`config/vitest.setup.ts`** - Shared cross-runtime Vitest setup (polyfills, jest-dom matchers)
28
- - **`config/vitest.node.setup.ts`** - Node-only Vitest setup (Node runtime/version preflight)
29
- - **`config/vite-aliases.ts`** - Workspace alias mapping for `@xmachines/*`
25
+ ## Exports
26
+
27
+ | Export | File | Description |
28
+ | ------------------------------------------- | ----------------------------------- | ----------------------------------------------------------------------- |
29
+ | `@xmachines/shared/tsconfig` | `config/tsconfig.json` | Base TypeScript configuration for all packages |
30
+ | `@xmachines/shared/tsconfig-test` | `config/tsconfig.test.json` | TypeScript configuration for test files |
31
+ | `@xmachines/shared/oxlint` | `config/oxlint.config.ts` | Shared oxlint configuration |
32
+ | `@xmachines/shared/oxfmt` | `config/oxfmt.config.ts` | Shared oxfmt formatter configuration |
33
+ | `@xmachines/shared/vite-aliases` | `config/vite-aliases.ts` | Vite resolve aliases for all `@xmachines/*` workspace packages |
34
+ | `@xmachines/shared/vitest` | `config/vitest.ts` | `defineXmVitestConfig` helper for per-package Vitest configs |
35
+ | `@xmachines/shared/vitest-setup` | `config/vitest.setup.ts` | Shared Vitest setup — extends matchers with `@testing-library/jest-dom` |
36
+ | `@xmachines/shared/vitest-node-setup` | `config/vitest.node.setup.ts` | Node.js runtime guard — asserts `Node.js >= 22` |
37
+ | `@xmachines/shared/vitest-urlpattern-setup` | `config/vitest.urlpattern.setup.ts` | Optional URLPattern polyfill setup for route-matching tests |
30
38
 
31
39
  ## Usage
32
40
 
33
41
  ### TypeScript Configuration
34
42
 
35
- **Recommended (short alias):**
43
+ Extend the base TypeScript config in any package:
36
44
 
37
45
  ```json
38
46
  {
@@ -45,333 +53,112 @@ Configuration files in `config/` directory:
45
53
  }
46
54
  ```
47
55
 
48
- **Alternative (full path):**
56
+ For test-specific TypeScript settings (no emit, Vitest globals), extend:
49
57
 
50
58
  ```json
51
59
  {
52
- "extends": "@xmachines/shared/config/tsconfig.json",
53
- "compilerOptions": {
54
- "composite": true,
55
- "rootDir": "./src",
56
- "outDir": "./dist"
57
- }
60
+ "extends": "@xmachines/shared/tsconfig-test",
61
+ "include": ["src/**/*", "test/**/*"]
58
62
  }
59
63
  ```
60
64
 
61
- > **Note:** Both import styles work. The short alias is recommended for cleaner config files.
65
+ ### Linting (`oxlint`)
62
66
 
63
- ### Oxlint Configuration
67
+ Reference the shared oxlint config from a package's `oxlint.config.ts`:
64
68
 
65
- **Recommended:**
66
-
67
- ```json
68
- {
69
- "extends": ["@xmachines/shared/oxlint"]
70
- }
69
+ ```typescript
70
+ import sharedConfig from "@xmachines/shared/oxlint";
71
+ export default sharedConfig;
71
72
  ```
72
73
 
73
- ### Oxfmt Configuration
74
-
75
- **Recommended:**
74
+ The shared config enables the `typescript`, `unicorn`, and `import` plugins with:
76
75
 
77
- ```json
78
- {
79
- "extends": ["@xmachines/shared/oxfmt"]
80
- }
81
- ```
82
-
83
- ### Vite Alias Configuration
76
+ - `correctness` rules as errors
77
+ - `suspicious` and `perf` rules as warnings
78
+ - `import/no-cycle` and `typescript/no-explicit-any` as errors
84
79
 
85
- Use the shared alias helper in Vite and Vitest configs so workspace packages resolve to source files without requiring `dist/` builds:
80
+ ### Formatting (`oxfmt`)
86
81
 
87
- ```ts
88
- import { defineConfig } from "vite";
89
- import { xmAliases } from "@xmachines/shared/vite-aliases";
82
+ Reference the shared oxfmt config from a package's `oxfmt.config.ts`:
90
83
 
91
- export default defineConfig({
92
- resolve: {
93
- alias: xmAliases(import.meta.url),
94
- },
95
- });
84
+ ```typescript
85
+ import sharedConfig from "@xmachines/shared/oxfmt";
86
+ export default sharedConfig;
96
87
  ```
97
88
 
98
- This is especially important after `npm run clean`, where package `exports` targeting `dist/` are temporarily unavailable until rebuild.
89
+ Key formatting rules: 4-space tab width using actual tabs, 100-character print width, double quotes, trailing commas, final newline. JSON/YAML files use 2-space indentation.
99
90
 
100
91
  ### Vitest Configuration
101
92
 
102
- Use the shared helper so package configs inherit common aliasing and runtime setup:
93
+ Use `defineXmVitestConfig` for per-package Vitest configs. It automatically injects shared setup files and wires `@xmachines/*` source aliases:
103
94
 
104
- ```ts
95
+ ```typescript
96
+ // vitest.config.ts
105
97
  import { defineXmVitestConfig } from "@xmachines/shared/vitest";
106
98
 
107
99
  export default defineXmVitestConfig(import.meta.url, {
108
100
  test: {
109
- environment: "node",
110
- include: ["test/**/*.test.ts"],
111
- exclude: ["node_modules/**"],
101
+ globals: true,
112
102
  },
113
103
  });
114
104
  ```
115
105
 
116
- **Browser project example:**
106
+ **What `defineXmVitestConfig` applies automatically:**
117
107
 
118
- ```ts
119
- import { defineXmVitestConfig } from "@xmachines/shared/vitest";
120
- import { playwright } from "@vitest/browser-playwright";
108
+ - `resolve.alias` from `xmAliases(import.meta.url)` — resolves `@xmachines/*` to TypeScript source
109
+ - `config/vitest.node.setup.ts` Node.js runtime guard (skipped in browser mode)
110
+ - `config/vitest.setup.ts` `@testing-library/jest-dom` matcher extensions
111
+
112
+ For packages that test URL routing, add the URLPattern polyfill setup:
121
113
 
114
+ ```typescript
122
115
  export default defineXmVitestConfig(import.meta.url, {
123
116
  test: {
124
- name: "my-demo-browser",
125
- browser: {
126
- enabled: true,
127
- provider: playwright(),
128
- headless: true,
129
- instances: [{ browser: "chromium" }],
130
- },
131
- include: ["test/browser/**/*.browser.test.ts"],
132
- exclude: ["node_modules/**"],
117
+ globals: true,
118
+ setupFiles: ["@xmachines/shared/vitest-urlpattern-setup"],
133
119
  },
134
120
  });
135
121
  ```
136
122
 
137
- What the shared Vitest layer provides automatically:
138
-
139
- - `resolve.alias` for all `@xmachines/*` packages via `xmAliases(...)`
140
- - Shared setup injection (`config/vitest.setup.ts`) unless already present
141
- - Node setup injection (`config/vitest.node.setup.ts`) for non-browser projects
142
- - Runtime preflight:
143
- - Node.js runtime/version check (`>=22`) in node setup
144
- - DOM matcher extension via `@testing-library/jest-dom/vitest`
145
-
146
- ### Vitest Setup Injection Rules
147
-
148
- `defineXmVitestConfig(...)` applies setup files predictably:
149
-
150
- 1. It normalizes `test.setupFiles` into an array.
151
- 2. It injects `config/vitest.setup.ts` if missing.
152
- 3. It injects `config/vitest.node.setup.ts` only when `test.browser.enabled !== true`.
153
- 4. It avoids duplicates by checking filenames (suffix match).
154
- 5. Injected setup files run before user-provided setup files.
155
-
156
- This gives a safe default for Node package tests while keeping browser projects compatible.
123
+ ### Vite Aliases
157
124
 
158
- ### Vitest Exports
159
-
160
- `@xmachines/shared` exports these Vitest entry points:
161
-
162
- - `@xmachines/shared/vitest` → `config/vitest.ts`
163
- - `@xmachines/shared/vitest-setup` → `config/vitest.setup.ts`
164
- - `@xmachines/shared/vitest-node-setup` → `config/vitest.node.setup.ts`
165
- - `@xmachines/shared/vitest-urlpattern-setup` → `config/vitest.urlpattern.setup.ts`
166
-
167
- Use `@xmachines/shared/vitest` for package config files; direct setup exports are for advanced customization only.
168
-
169
- `vitest-urlpattern-setup` must be added explicitly to `setupFiles` in packages that exercise URLPattern-based route matching (e.g. `play-router` and its adapter packages). It mirrors what consumers must do in production on Node < 24 or older browsers.
170
-
171
- ## Configuration Details
172
-
173
- ### TypeScript (`config/tsconfig.json`)
174
-
175
- - **Target:** ESNext (Node.js 22+)
176
- - **Module:** NodeNext (ESM with `.js` extensions required)
177
- - **Strict:** Full strict mode enabled
178
- - **Output:** Colocated `.d.ts` files with source maps
179
- - **Composite:** Enabled for project references ()
180
-
181
- **Important:** You must use `.js` extensions in imports:
125
+ For Vite-based demo or app packages, resolve all `@xmachines/*` packages to TypeScript source (no prior build required):
182
126
 
183
127
  ```typescript
184
- import { foo } from "./bar.js"; // ✅ Correct
185
- import { foo } from "./bar"; // ❌ Wrong
186
- ```
187
-
188
- ### Oxlint (`config/oxlint.json`)
189
-
190
- - **Plugins:** TypeScript, Unicorn, Import
191
- - **Categories:** Correctness (error), Suspicious (warn), Performance (warn)
192
- - **Key Rules:**
193
- - Circular dependency detection (`import/no-cycle`)
194
- - Unused variables (allow `_` prefix)
195
- - TypeScript-specific checks
196
-
197
- ### Oxfmt (`config/oxfmt.json`)
198
-
199
- - **Line Width:** 100 characters
200
- - **Indentation:** Tabs (4 spaces)
201
- - **Style:** Double quotes, semicolons, trailing commas
202
- - **Final Newline:** Always insert
203
-
204
- ### Vitest (`config/vitest.ts`, `config/vitest.setup.ts`, `config/vitest.node.setup.ts`, `config/vitest.urlpattern.setup.ts`)
205
-
206
- - **Helper API:** `defineXmVitestConfig(importMetaUrl, overrides)` merges shared defaults with package-specific Vitest config
207
- - **Auto-aliasing:** `resolve.alias` is wired to `xmAliases(importMetaUrl)` so workspace packages resolve to source
208
- - **Cross-runtime setup (`config/vitest.setup.ts`):**
209
- - extends `expect` with `@testing-library/jest-dom/vitest`
210
- - **URLPattern setup (`config/vitest.urlpattern.setup.ts`):**
211
- - loads `urlpattern-polyfill` — opt-in per package via `setupFiles: ["@xmachines/shared/vitest-urlpattern-setup"]`
212
- - required for packages exercising URLPattern-based route matching (play-router and adapters)
213
- - mirrors what consumers must do in production on Node < 24 or older browsers
214
- - **Node-only setup (`config/vitest.node.setup.ts`):**
215
- - asserts Node runtime (`process.release.name === "node"`)
216
- - enforces Node version `>=22`
217
- - **Browser behavior:** Browser projects do not receive node-only setup injection
218
- - **Override model:** Package-level config still controls test environment, includes/excludes, plugins, coverage, and browser provider
219
-
220
- ### Vite Aliases (`config/vite-aliases.ts`)
221
-
222
- - **Helper API:** `xmAliases(importMetaUrl)` returns a complete `resolve.alias` map for all `@xmachines/*` workspace packages
223
- - **Root discovery:** Walks upward from `import.meta.url` until it finds the workspace root (`package.json` with `workspaces`)
224
- - **Source-first resolution:** Maps package imports to `packages/*/src/index.ts` for fast local dev without prebuild
225
- - **Extra aliases:** Includes `@xmachines/play-router-shared` and `@xmachines/play-router-shared/index.css` for demo shared assets
226
- - **Primary use cases:** `vite.config.ts`, `vitest` browser configs, and any local tooling relying on Vite resolver semantics
227
-
228
- ### Vite Alias Troubleshooting
229
-
230
- - **`[xmAliases] Could not find workspace root`**
231
- - Ensure `xmAliases` receives `import.meta.url` from the calling config file.
232
- - Ensure the config file lives somewhere under the monorepo root.
233
- - **Workspace package import resolves to missing `dist/` files**
234
- - Ensure config includes `resolve.alias: xmAliases(import.meta.url)`.
235
- - Re-run after cleaning caches when lockfile/deps changed.
236
-
237
- ### Vitest Troubleshooting
238
-
239
- - **`URLPattern is unavailable after setup`**
240
- - Ensure `test.setupFiles` is not replacing shared setup unexpectedly.
241
- - Ensure config is created via `defineXmVitestConfig(...)`.
242
- - **`Node runtime is required for this Vitest configuration`**
243
- - This indicates node-only setup loaded in a browser project.
244
- - Set `test.browser.enabled: true` in that project config.
245
- - **Workspace import resolution failures (e.g. `@xmachines/play-signals`)**
246
- - Confirm config uses `defineXmVitestConfig(import.meta.url, ...)` so aliases are injected.
247
-
248
- ## TypeScript Composite Build System
249
-
250
- This package introduced TypeScript project references for proper build-order management in the monorepo.
251
-
252
- ### What This Means
253
-
254
- - **Root `tsconfig.json`** coordinates all packages via `references` array
255
- - **Each package** has `composite: true` enabling incremental builds
256
- - **Packages with dependencies** declare `references` to their deps
257
- - **TypeScript builds in correct order automatically** (no manual sequencing needed)
258
-
259
- ### Building
128
+ // vite.config.ts
129
+ import { defineConfig } from "vite";
130
+ import { xmResolve } from "@xmachines/shared/vite-aliases";
260
131
 
261
- ```bash
262
- npm run build # Root-level tsc --build handles everything
263
- npm run build -w <pkg> # Automatically builds dependencies first
132
+ export default defineConfig({
133
+ resolve: xmResolve(import.meta.url),
134
+ });
264
135
  ```
265
136
 
266
- The root build command uses `tsc --build` which:
267
-
268
- - Understands the dependency graph
269
- - Builds packages in correct order
270
- - Only rebuilds changed packages (incremental)
271
- - Produces `.d.ts.map` files for IDE navigation
137
+ Use `xmAliases` for alias-only setup, or `xmResolve` for the full resolve config including `conditions: ["source"]` and `preserveSymlinks: true`.
272
138
 
273
- ### Declaration Maps
139
+ ## Key TypeScript Settings
274
140
 
275
- The base config enables **declaration maps** (`declarationMap: true`) for better IDE experience in composite projects.
141
+ The base `config/tsconfig.json` configures:
276
142
 
277
- When TypeScript compiles with `declarationMap: true`, it produces `.d.ts.map` files that map type definitions back to source. This enables:
143
+ - **Target:** `ESNext`, **Module:** `NodeNext` with `moduleResolution: NodeNext`
144
+ - **Strict mode:** full strict, `noUnusedLocals`, `noUnusedParameters`, `exactOptionalPropertyTypes`, `noImplicitReturns`, `noImplicitOverride`
145
+ - **Emit:** `declaration`, `declarationMap`, `sourceMap` enabled
146
+ - **Interop:** `verbatimModuleSyntax`, `isolatedModules`
147
+ - **Custom condition:** `"source"` — used by `xmAliases` to resolve packages to TypeScript source in dev/test
278
148
 
279
- - **Go to Definition** jumps to `.ts` source files (not compiled `.d.ts`)
280
- - **Rename refactoring** works across package boundaries
281
- - **Error messages** reference source locations
149
+ ## Testing
282
150
 
283
- **Cost:** Slightly larger `dist/` output (~10% more)
284
- **Benefit:** Dramatically better IDE experience
285
-
286
- ### Project References
287
-
288
- Packages with internal dependencies should declare `references` in their `tsconfig.json`:
151
+ ```bash
152
+ # Run tests for this package
153
+ npm test -w packages/shared
289
154
 
290
- ```json
291
- {
292
- "extends": "@xmachines/shared/tsconfig",
293
- "compilerOptions": {
294
- "composite": true,
295
- "rootDir": "./src",
296
- "outDir": "./dist"
297
- },
298
- "references": [{ "path": "../dependency-package" }]
299
- }
155
+ # Or from the package directory
156
+ npm test
300
157
  ```
301
158
 
302
- The root `tsconfig.json` maintains the full package reference graph, enabling TypeScript to:
303
-
304
- - Build packages in correct dependency order
305
- - Support incremental builds (only rebuild what changed)
306
- - Enable cross-package type checking and navigation
307
-
308
- ### Adding New Packages
309
-
310
- When creating a new package:
311
-
312
- 1. **Add to root tsconfig.json references:**
313
-
314
- ```json
315
- {
316
- "references": [{ "path": "./packages/your-new-package" }]
317
- }
318
- ```
319
-
320
- 2. **Enable composite in package tsconfig.json:**
321
-
322
- ```json
323
- {
324
- "extends": "@xmachines/shared/tsconfig",
325
- "compilerOptions": {
326
- "composite": true,
327
- "rootDir": "./src",
328
- "outDir": "./dist"
329
- }
330
- }
331
- ```
332
-
333
- 3. **Declare dependencies (if any):**
334
- ```json
335
- {
336
- "references": [{ "path": "../dependency-package" }]
337
- }
338
- ```
339
-
340
- ### IDE Benefits
341
-
342
- With `declarationMap: true` in the base config:
343
-
344
- - **Go to Definition** jumps to source files (not compiled `.d.ts`)
345
- - **Real-time errors** across package boundaries
346
- - **Refactoring works** across the entire monorepo
347
-
348
- No build required for IDE features - TypeScript understands the source graph directly.
349
-
350
- See `AGENTS.md` (section: TypeScript Composite Build System) for complete composite build documentation.
351
-
352
- ## Adding New Configurations
353
-
354
- To add a new shared configuration (e.g., for Jest, Vitest, etc.):
355
-
356
- 1. Create `config/<tool>.json` (or `.js`, `.ts` as appropriate)
357
- 2. Add exports to `package.json` exports field:
358
- ```json
359
- {
360
- "exports": {
361
- "./<tool>": "./config/<tool>.json",
362
- "./config/<tool>.json": "./config/<tool>.json"
363
- }
364
- }
365
- ```
366
- 3. Document in this README with usage examples
367
- 4. Note whether the tool supports package exports or requires relative paths
368
-
369
159
  ## License
370
160
 
371
- Copyright (c) 2016 [Mikael Karon](mailto:mikael@karon.se). All rights reserved.
372
-
373
- This work is licensed under the terms of the MIT license.
374
- For a copy, see <https://opensource.org/licenses/MIT>.
161
+ MIT see [LICENSE](LICENSE).
375
162
 
376
163
  ## Modules
377
164
 
@@ -6,7 +6,7 @@
6
6
  function xmAliases(importMetaUrl): Record<string, string>;
7
7
  ```
8
8
 
9
- Defined in: [vite-aliases.ts:24](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.46/packages/shared/config/vite-aliases.ts#L24)
9
+ Defined in: [vite-aliases.ts:24](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.48/packages/shared/config/vite-aliases.ts#L24)
10
10
 
11
11
  Vite resolve.alias entries for all @xmachines/\* workspace packages.
12
12
 
@@ -6,7 +6,7 @@
6
6
  function xmCacheDir(importMetaUrl, name): string;
7
7
  ```
8
8
 
9
- Defined in: [vite-aliases.ts:196](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.46/packages/shared/config/vite-aliases.ts#L196)
9
+ Defined in: [vite-aliases.ts:196](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.48/packages/shared/config/vite-aliases.ts#L196)
10
10
 
11
11
  Returns the shared Vite `cacheDir` for this workspace package.
12
12
 
@@ -6,7 +6,7 @@
6
6
  function xmOptimizeDeps(extra?): DepOptimizationOptions;
7
7
  ```
8
8
 
9
- Defined in: [vite-aliases.ts:179](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.46/packages/shared/config/vite-aliases.ts#L179)
9
+ Defined in: [vite-aliases.ts:179](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.48/packages/shared/config/vite-aliases.ts#L179)
10
10
 
11
11
  Returns the standard Vite `optimizeDeps` config for browser test projects.
12
12
 
@@ -6,7 +6,7 @@
6
6
  function xmResolve(importMetaUrl, extra?): ResolveOptions & object;
7
7
  ```
8
8
 
9
- Defined in: [vite-aliases.ts:151](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.46/packages/shared/config/vite-aliases.ts#L151)
9
+ Defined in: [vite-aliases.ts:151](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.48/packages/shared/config/vite-aliases.ts#L151)
10
10
 
11
11
  Full Vite `resolve` config for @xmachines/\* workspace packages.
12
12
 
@@ -6,7 +6,7 @@
6
6
  function defineXmVitestConfig(importMetaUrl, overrides): UserConfig;
7
7
  ```
8
8
 
9
- Defined in: [vitest.ts:55](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.46/packages/shared/config/vitest.ts#L55)
9
+ Defined in: [vitest.ts:55](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.48/packages/shared/config/vitest.ts#L55)
10
10
 
11
11
  Create a Vitest config with XMachines workspace defaults.
12
12
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  # @xmachines/play-dom-demo
4
4
 
5
- Vanilla DOM renderer demo for `@xmachines/play-dom` — actor + `connectRenderer` without a router.
5
+ Vanilla DOM renderer demo for [`@xmachines/play-dom`](../../../api/@xmachines/play-dom/README.md) — actor + `connectRenderer` without a router.
6
6
 
7
7
  ## What This Demonstrates
8
8
 
@@ -101,7 +101,7 @@ The demo utilizes XMachines architectural invariants:
101
101
 
102
102
  1. **Actor Authority:** Navigation buttons dispatch `play.route` events to the actor. The actor evaluates guards and transitions to the correct state — the DOM never decides which view to show.
103
103
  2. **Passive Infrastructure:** `connectRenderer` and `watchSignal` only react to actor signals. They do not hold business state or make routing decisions.
104
- 3. **Signal-Only Reactivity:** `watchSignal` (from `@xmachines/play-signals`) wraps the canonical TC39 Signals watcher lifecycle, keeping all reactivity in the actor signal layer rather than in ad-hoc DOM event listeners.
104
+ 3. **Signal-Only Reactivity:** `watchSignal` (from [`@xmachines/play-signals`](../../../api/@xmachines/play-signals/README.md)) wraps the canonical TC39 Signals watcher lifecycle, keeping all reactivity in the actor signal layer rather than in ad-hoc DOM event listeners.
105
105
 
106
106
  ## Watcher Lifecycle and Cleanup Contract
107
107
 
@@ -117,7 +117,7 @@ Watcher notifications are one-shot. Cleanup is explicit: both `disconnectRendere
117
117
 
118
118
  ## Adapter Boundaries
119
119
 
120
- `connectRenderer` (from `@xmachines/play-dom`) is passive infrastructure. It translates actor view signals into DOM mutations but holds no business logic. The `DomRegistry` maps catalog component keys to factory functions — the actor owns which key is active.
120
+ `connectRenderer` (from [`@xmachines/play-dom`](../../../api/@xmachines/play-dom/README.md)) is passive infrastructure. It translates actor view signals into DOM mutations but holds no business logic. The `DomRegistry` maps catalog component keys to factory functions — the actor owns which key is active.
121
121
 
122
122
  ## Available Scripts
123
123
 
@@ -6,7 +6,7 @@
6
6
  function createNavBar(actor, container): () => void;
7
7
  ```
8
8
 
9
- Defined in: [play-dom/examples/demo/src/components/NavBar.ts:9](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.46/packages/play-dom/examples/demo/src/components/NavBar.ts#L9)
9
+ Defined in: [play-dom/examples/demo/src/components/NavBar.ts:9](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.48/packages/play-dom/examples/demo/src/components/NavBar.ts#L9)
10
10
 
11
11
  NavBar — App-shell navigation factory. Mounts a reactive nav into
12
12
  `container`, observes actor.state via watchSignal, and updates button
@@ -6,7 +6,7 @@
6
6
  function initShell(actor, appElement): () => void;
7
7
  ```
8
8
 
9
- Defined in: [play-dom/examples/demo/src/components/Shell.ts:24](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.46/packages/play-dom/examples/demo/src/components/Shell.ts#L24)
9
+ Defined in: [play-dom/examples/demo/src/components/Shell.ts:24](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.48/packages/play-dom/examples/demo/src/components/Shell.ts#L24)
10
10
 
11
11
  Shell — DOM shell layout factory. Renders demo chrome (header + main +
12
12
  debug panel), mounts NavBar, connects DOM renderer, and wires DebugPanel.
@@ -6,4 +6,4 @@
6
6
  type AuthCatalog = typeof authCatalog;
7
7
  ```
8
8
 
9
- Defined in: [play-dom/examples/demo/src/catalog.ts:6](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.46/packages/play-dom/examples/demo/src/catalog.ts#L6)
9
+ Defined in: [play-dom/examples/demo/src/catalog.ts:6](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.48/packages/play-dom/examples/demo/src/catalog.ts#L6)
@@ -6,7 +6,7 @@
6
6
  const About: ComponentFn<AuthCatalog, "About">;
7
7
  ```
8
8
 
9
- Defined in: [play-dom/examples/demo/src/components/About.ts:8](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.46/packages/play-dom/examples/demo/src/components/About.ts#L8)
9
+ Defined in: [play-dom/examples/demo/src/components/About.ts:8](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.48/packages/play-dom/examples/demo/src/components/About.ts#L8)
10
10
 
11
11
  About — Public information page. Catalog-typed DOM component
12
12
  (ComponentFn<AuthCatalog, 'About'>). Renders static content from props.
@@ -6,7 +6,7 @@
6
6
  const Contact: ComponentFn<AuthCatalog, "Contact">;
7
7
  ```
8
8
 
9
- Defined in: [play-dom/examples/demo/src/components/Contact.ts:8](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.46/packages/play-dom/examples/demo/src/components/Contact.ts#L8)
9
+ Defined in: [play-dom/examples/demo/src/components/Contact.ts:8](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.48/packages/play-dom/examples/demo/src/components/Contact.ts#L8)
10
10
 
11
11
  Contact — Public contact page. Catalog-typed DOM component
12
12
  (ComponentFn<AuthCatalog, 'Contact'>). Renders static content from props.
@@ -6,7 +6,7 @@
6
6
  const Dashboard: ComponentFn<AuthCatalog, "Dashboard">;
7
7
  ```
8
8
 
9
- Defined in: [play-dom/examples/demo/src/components/Dashboard.ts:9](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.46/packages/play-dom/examples/demo/src/components/Dashboard.ts#L9)
9
+ Defined in: [play-dom/examples/demo/src/components/Dashboard.ts:9](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.48/packages/play-dom/examples/demo/src/components/Dashboard.ts#L9)
10
10
 
11
11
  Dashboard — Protected authenticated home. Catalog-typed DOM component
12
12
  (ComponentFn<AuthCatalog, 'Dashboard'>). Renders welcome message; logout
@@ -6,7 +6,7 @@
6
6
  const Home: ComponentFn<AuthCatalog, "Home">;
7
7
  ```
8
8
 
9
- Defined in: [play-dom/examples/demo/src/components/Home.ts:9](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.46/packages/play-dom/examples/demo/src/components/Home.ts#L9)
9
+ Defined in: [play-dom/examples/demo/src/components/Home.ts:9](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.48/packages/play-dom/examples/demo/src/components/Home.ts#L9)
10
10
 
11
11
  Home — Public landing page. Catalog-typed DOM component
12
12
  (ComponentFn<AuthCatalog, 'Home'>). Renders static welcome content from
@@ -6,7 +6,7 @@
6
6
  const Login: ComponentFn<AuthCatalog, "Login">;
7
7
  ```
8
8
 
9
- Defined in: [play-dom/examples/demo/src/components/Login.ts:9](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.46/packages/play-dom/examples/demo/src/components/Login.ts#L9)
9
+ Defined in: [play-dom/examples/demo/src/components/Login.ts:9](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.48/packages/play-dom/examples/demo/src/components/Login.ts#L9)
10
10
 
11
11
  Login — Authentication form. Catalog-typed DOM component
12
12
  (ComponentFn<AuthCatalog, 'Login'>). Binds username input to ctx.store via
@@ -6,7 +6,7 @@
6
6
  const NavBarView: ComponentFn<AuthCatalog, "NavBar">;
7
7
  ```
8
8
 
9
- Defined in: [play-dom/examples/demo/src/components/NavBarView.ts:12](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.46/packages/play-dom/examples/demo/src/components/NavBarView.ts#L12)
9
+ Defined in: [play-dom/examples/demo/src/components/NavBarView.ts:12](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.48/packages/play-dom/examples/demo/src/components/NavBarView.ts#L12)
10
10
 
11
11
  NavBarView — Catalog-typed NavBar component for DOM renderer.
12
12
 
@@ -6,7 +6,7 @@
6
6
  const Navigation: ComponentFn<AuthCatalog, "Navigation">;
7
7
  ```
8
8
 
9
- Defined in: [play-dom/examples/demo/src/components/Navigation.ts:9](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.46/packages/play-dom/examples/demo/src/components/Navigation.ts#L9)
9
+ Defined in: [play-dom/examples/demo/src/components/Navigation.ts:9](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.48/packages/play-dom/examples/demo/src/components/Navigation.ts#L9)
10
10
 
11
11
  Navigation — Navigation status display. Catalog-typed DOM component
12
12
  (ComponentFn<AuthCatalog, 'Navigation'>). Renders current path and auth
@@ -6,7 +6,7 @@
6
6
  const Overview: ComponentFn<AuthCatalog, "Overview">;
7
7
  ```
8
8
 
9
- Defined in: [play-dom/examples/demo/src/components/Overview.ts:9](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.46/packages/play-dom/examples/demo/src/components/Overview.ts#L9)
9
+ Defined in: [play-dom/examples/demo/src/components/Overview.ts:9](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v1.0.0-beta.48/packages/play-dom/examples/demo/src/components/Overview.ts#L9)
10
10
 
11
11
  Overview — Dashboard overview child route. Catalog-typed DOM component
12
12
  (ComponentFn<AuthCatalog, 'Overview'>). Relative route resolves to