@xmachines/docs 6.1.0 → 7.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -4
- package/api/@xmachines/core/README.md +7 -2
- package/api/@xmachines/core/cache/functions/createLruCache.md +1 -1
- package/api/@xmachines/core/cache/interfaces/KeyValueCache.md +3 -3
- package/api/@xmachines/core/errors/classes/BaseError.md +4 -4
- package/api/@xmachines/core/errors/classes/DisposeConflictError.md +4 -4
- package/api/@xmachines/core/utils/functions/asDisposable.md +2 -2
- package/api/@xmachines/core/utils/functions/createNullRecord.md +1 -1
- package/api/@xmachines/core/utils/functions/createWarnOnce.md +1 -1
- package/api/@xmachines/core/utils/functions/describeValue.md +1 -1
- package/api/@xmachines/core/utils/functions/isError.md +1 -1
- package/api/@xmachines/core/utils/functions/isThenable.md +1 -1
- package/api/@xmachines/core/utils/functions/releaseQuietly.md +1 -1
- package/api/@xmachines/core/utils/functions/rethrowLater.md +1 -1
- package/api/@xmachines/core/utils/functions/safeString.md +1 -1
- package/api/@xmachines/core/utils/functions/shallowEqualExcept.md +1 -1
- package/api/@xmachines/core/utils/type-aliases/DisposeKey.md +1 -1
- package/api/@xmachines/core/utils/type-aliases/DisposeMember.md +1 -1
- package/api/@xmachines/core/utils/variables/DISPOSE.md +1 -1
- package/api/@xmachines/play/README.md +10 -5
- package/api/@xmachines/play/errors/classes/NonNullableError.md +4 -4
- package/api/@xmachines/play/errors/classes/PlayError.md +5 -4
- package/api/@xmachines/play/index/functions/assertNonNullable.md +1 -1
- package/api/@xmachines/play/index/type-aliases/PlayEvent.md +2 -2
- package/api/@xmachines/play-actor/README.md +9 -1
- package/api/@xmachines/play-actor/interfaces/ActorEvent.md +2 -2
- package/api/@xmachines/play-actor/interfaces/PlayActor.md +3 -3
- package/api/@xmachines/play-atom/README.md +16 -4
- package/api/@xmachines/play-atom/functions/watchAtom.md +1 -1
- package/api/@xmachines/play-atom/interfaces/AsyncAtomOptions.md +2 -2
- package/api/@xmachines/play-atom/interfaces/Atom.md +6 -6
- package/api/@xmachines/play-atom/interfaces/AtomObserver.md +4 -4
- package/api/@xmachines/play-atom/interfaces/AtomOptions.md +2 -2
- package/api/@xmachines/play-atom/interfaces/AtomSubscription.md +2 -2
- package/api/@xmachines/play-atom/interfaces/BaseAtom.md +4 -4
- package/api/@xmachines/play-atom/interfaces/CreateAtom.md +3 -3
- package/api/@xmachines/play-atom/interfaces/Readable.md +4 -4
- package/api/@xmachines/play-atom/interfaces/ReadonlyAtom.md +4 -4
- package/api/@xmachines/play-atom/type-aliases/AnyAtom.md +1 -1
- package/api/@xmachines/play-atom/type-aliases/AsyncAtomState.md +1 -1
- package/api/@xmachines/play-atom/variables/createAsyncAtom.md +1 -1
- package/api/@xmachines/play-atom/variables/createAtom.md +1 -1
- package/api/@xmachines/play-atom/variables/createWritableAtom.md +1 -1
- package/api/@xmachines/play-dom/README.md +131 -48
- package/api/@xmachines/play-dom/classes/PlayRenderer.md +12 -12
- package/api/@xmachines/play-dom/functions/createPlayUI.md +5 -5
- package/api/@xmachines/play-dom/functions/createRenderer.md +1 -1
- package/api/@xmachines/play-dom/functions/renderSpec.md +3 -2
- package/api/@xmachines/play-dom/interfaces/ComponentContext.md +9 -9
- package/api/@xmachines/play-dom/interfaces/CreatePlayUIOptions.md +15 -14
- package/api/@xmachines/play-dom/interfaces/DomRenderContext.md +26 -20
- package/api/@xmachines/play-dom/interfaces/MountOptions.md +3 -3
- package/api/@xmachines/play-dom/interfaces/PassOptions.md +14 -0
- package/api/@xmachines/play-dom/interfaces/PlayDomOptions.md +18 -17
- package/api/@xmachines/play-dom/interfaces/RenderErrorInfo.md +16 -0
- package/api/@xmachines/play-dom/interfaces/RenderSpecOptions.md +17 -15
- package/api/@xmachines/play-dom/interfaces/UIProviderOptions.md +9 -8
- package/api/@xmachines/play-dom/interfaces/ValidationRegistry.md +14 -11
- package/api/@xmachines/play-dom/type-aliases/ConfirmHandler.md +9 -10
- package/api/@xmachines/play-dom/type-aliases/DefineRegistryOptions.md +4 -3
- package/api/@xmachines/play-dom/type-aliases/MountFn.md +1 -1
- package/api/@xmachines/play-dom/type-aliases/OnRenderError.md +27 -0
- package/api/@xmachines/play-dom/type-aliases/RenderErrorKind.md +21 -0
- package/api/@xmachines/play-dom-router/README.md +41 -5
- package/api/@xmachines/play-dom-router/classes/DomRouterBridge.md +7 -7
- package/api/@xmachines/play-dom-router/classes/RouteMap.md +4 -4
- package/api/@xmachines/play-dom-router/functions/connectRouter.md +1 -1
- package/api/@xmachines/play-dom-router/functions/createBrowserHistory.md +1 -1
- package/api/@xmachines/play-dom-router/functions/createRouter.md +1 -1
- package/api/@xmachines/play-dom-router/interfaces/BasePathOptions.md +3 -3
- package/api/@xmachines/play-dom-router/interfaces/BrowserHistory.md +14 -14
- package/api/@xmachines/play-dom-router/interfaces/BrowserWindow.md +14 -14
- package/api/@xmachines/play-dom-router/interfaces/ConnectRouterOptions.md +8 -8
- package/api/@xmachines/play-dom-router/interfaces/PlayRouteEvent.md +7 -7
- package/api/@xmachines/play-dom-router/interfaces/RoutableActor.md +4 -4
- package/api/@xmachines/play-dom-router/interfaces/RouteLookupContract.md +3 -3
- package/api/@xmachines/play-dom-router/interfaces/RouteMapOptions.md +4 -4
- package/api/@xmachines/play-dom-router/interfaces/RouteMapping.md +3 -3
- package/api/@xmachines/play-dom-router/interfaces/RouterBridge.md +3 -3
- package/api/@xmachines/play-dom-router/interfaces/RouterConnection.md +6 -6
- package/api/@xmachines/play-dom-router/interfaces/VanillaRouter.md +4 -4
- package/api/@xmachines/play-pattern/README.md +1 -1
- package/api/@xmachines/play-pattern/functions/buildPath.md +1 -1
- package/api/@xmachines/play-pattern/functions/createLruCache.md +1 -1
- package/api/@xmachines/play-pattern/functions/getIndexKey.md +1 -1
- package/api/@xmachines/play-pattern/functions/isDotSegment.md +1 -1
- package/api/@xmachines/play-pattern/functions/parsePattern.md +1 -1
- package/api/@xmachines/play-pattern/interfaces/GroupPart.md +4 -4
- package/api/@xmachines/play-pattern/interfaces/KeyValueCache.md +3 -3
- package/api/@xmachines/play-pattern/interfaces/LiteralPart.md +3 -3
- package/api/@xmachines/play-pattern/interfaces/ParamPart.md +7 -7
- package/api/@xmachines/play-pattern/interfaces/ParseOptions.md +2 -2
- package/api/@xmachines/play-pattern/interfaces/ParsedPattern.md +12 -12
- package/api/@xmachines/play-pattern/interfaces/PatternParam.md +4 -4
- package/api/@xmachines/play-pattern/type-aliases/PathBuildResult.md +1 -1
- package/api/@xmachines/play-pattern/type-aliases/PathParams.md +1 -1
- package/api/@xmachines/play-pattern/type-aliases/PatternModifier.md +1 -1
- package/api/@xmachines/play-pattern/type-aliases/PatternPart.md +1 -1
- package/api/@xmachines/play-react/README.md +57 -18
- package/api/@xmachines/play-react/classes/PlayErrorBoundary.md +6 -6
- package/api/@xmachines/play-react/functions/defineRegistry.md +1 -1
- package/api/@xmachines/play-react/functions/useActor.md +1 -1
- package/api/@xmachines/play-react/functions/useAtomEffect.md +1 -1
- package/api/@xmachines/play-react/functions/usePlayView.md +1 -1
- package/api/@xmachines/play-react/interfaces/ActionProviderProps.md +5 -5
- package/api/@xmachines/play-react/interfaces/ActorProviderProps.md +11 -11
- package/api/@xmachines/play-react/interfaces/DefineRegistryResult.md +15 -0
- package/api/@xmachines/play-react/interfaces/PlayErrorBoundaryProps.md +6 -6
- package/api/@xmachines/play-react/interfaces/PlayErrorBoundaryState.md +4 -4
- package/api/@xmachines/play-react/interfaces/PlayUIProviderProps.md +13 -13
- package/api/@xmachines/play-react/interfaces/RenderErrorInfo.md +16 -0
- package/api/@xmachines/play-react/interfaces/RendererProps.md +7 -7
- package/api/@xmachines/play-react/interfaces/ViewContextValue.md +5 -5
- package/api/@xmachines/play-react/type-aliases/AnyPlayActor.md +1 -1
- package/api/@xmachines/play-react/type-aliases/OnRenderError.md +27 -0
- package/api/@xmachines/play-react/type-aliases/RenderErrorKind.md +21 -0
- package/api/@xmachines/play-react/variables/ActorProvider.md +14 -4
- package/api/@xmachines/play-react/variables/PlayRenderer.md +1 -1
- package/api/@xmachines/play-react/variables/PlayUIProvider.md +1 -1
- package/api/@xmachines/play-react-router/README.md +26 -5
- package/api/@xmachines/play-react-router/classes/ReactRouterBridge.md +7 -7
- package/api/@xmachines/play-react-router/classes/RouteMap.md +4 -4
- package/api/@xmachines/play-react-router/functions/createPlayRouterProvider.md +1 -1
- package/api/@xmachines/play-react-router/functions/createRouteMapFromTree.md +1 -1
- package/api/@xmachines/play-react-router/interfaces/PlayRouteEvent.md +7 -7
- package/api/@xmachines/play-react-router/interfaces/PlayRouterProviderProps.md +9 -9
- package/api/@xmachines/play-react-router/interfaces/RoutableActor.md +4 -4
- package/api/@xmachines/play-react-router/interfaces/RouteMapOptions.md +4 -4
- package/api/@xmachines/play-react-router/interfaces/RouteMapping.md +3 -3
- package/api/@xmachines/play-react-router/interfaces/RouterBridge.md +3 -3
- package/api/@xmachines/play-react-router/type-aliases/PlayRouterBridgeConstructor.md +1 -1
- package/api/@xmachines/play-react-router/type-aliases/PlayRouterProviderBaseProps.md +1 -1
- package/api/@xmachines/play-react-router/variables/PlayRouterProvider.md +1 -1
- package/api/@xmachines/play-router/README.md +73 -16
- package/api/@xmachines/play-router/errors/classes/DuplicateBridgeError.md +4 -4
- package/api/@xmachines/play-router/errors/classes/DuplicateRoutePathError.md +5 -5
- package/api/@xmachines/play-router/errors/classes/EmptyRoutePathError.md +5 -5
- package/api/@xmachines/play-router/errors/classes/InvalidBasePathError.md +5 -5
- package/api/@xmachines/play-router/errors/classes/InvalidRoutePatternError.md +5 -5
- package/api/@xmachines/play-router/errors/classes/InvalidStateIdError.md +5 -5
- package/api/@xmachines/play-router/errors/classes/MissingBasePathParamError.md +6 -6
- package/api/@xmachines/play-router/errors/classes/RouterSyncError.md +4 -4
- package/api/@xmachines/play-router/errors/classes/UnknownStateTypeError.md +6 -6
- package/api/@xmachines/play-router/index/classes/RouteMap.md +4 -4
- package/api/@xmachines/play-router/index/classes/RouterBridgeBase.md +7 -7
- package/api/@xmachines/play-router/index/functions/buildPlayRouteEvent.md +1 -1
- package/api/@xmachines/play-router/index/functions/buildRouteTree.md +1 -1
- package/api/@xmachines/play-router/index/functions/cleanFrameworkParams.md +1 -1
- package/api/@xmachines/play-router/index/functions/createLruCache.md +1 -1
- package/api/@xmachines/play-router/index/functions/createRouteMapFromTree.md +1 -1
- package/api/@xmachines/play-router/index/functions/createRouterConnection.md +1 -1
- package/api/@xmachines/play-router/index/functions/detectDuplicateRoutes.md +1 -1
- package/api/@xmachines/play-router/index/functions/extractQuery.md +1 -1
- package/api/@xmachines/play-router/index/functions/extractRouteParams.md +1 -1
- package/api/@xmachines/play-router/index/functions/findRouteById.md +1 -1
- package/api/@xmachines/play-router/index/functions/findRouteByPath.md +1 -1
- package/api/@xmachines/play-router/index/functions/isMountableBridge.md +1 -1
- package/api/@xmachines/play-router/index/functions/joinBasePath.md +1 -1
- package/api/@xmachines/play-router/index/functions/mountKey.md +1 -1
- package/api/@xmachines/play-router/index/functions/normalizeBasePath.md +1 -1
- package/api/@xmachines/play-router/index/functions/openProviderBridge.md +3 -3
- package/api/@xmachines/play-router/index/functions/parsePattern.md +1 -1
- package/api/@xmachines/play-router/index/functions/pickOwnParams.md +1 -1
- package/api/@xmachines/play-router/index/functions/repointProviderBridge.md +1 -1
- package/api/@xmachines/play-router/index/functions/resolveBasePath.md +1 -1
- package/api/@xmachines/play-router/index/functions/resolveFrameworkParams.md +1 -1
- package/api/@xmachines/play-router/index/functions/sanitizePathname.md +1 -1
- package/api/@xmachines/play-router/index/functions/splitLocation.md +1 -1
- package/api/@xmachines/play-router/index/functions/stripBasePath.md +1 -1
- package/api/@xmachines/play-router/index/functions/validateRouteFormat.md +1 -1
- package/api/@xmachines/play-router/index/functions/validateStateExists.md +1 -1
- package/api/@xmachines/play-router/index/interfaces/BasePathOptions.md +3 -3
- package/api/@xmachines/play-router/index/interfaces/BuildPlayRouteEventOptions.md +4 -4
- package/api/@xmachines/play-router/index/interfaces/CompileOptions.md +3 -3
- package/api/@xmachines/play-router/index/interfaces/FrameworkParamsSource.md +7 -7
- package/api/@xmachines/play-router/index/interfaces/KeyValueCache.md +3 -3
- package/api/@xmachines/play-router/index/interfaces/LocationLike.md +3 -3
- package/api/@xmachines/play-router/index/interfaces/MountableRouterBridge.md +6 -6
- package/api/@xmachines/play-router/index/interfaces/OpenProviderBridgeArgs.md +8 -8
- package/api/@xmachines/play-router/index/interfaces/ParseOptions.md +2 -2
- package/api/@xmachines/play-router/index/interfaces/ParsedPattern.md +12 -12
- package/api/@xmachines/play-router/index/interfaces/PlayRouteEvent.md +7 -7
- package/api/@xmachines/play-router/index/interfaces/PlayRouterProviderBaseProps.md +9 -9
- package/api/@xmachines/play-router/index/interfaces/ResolvedBasePath.md +3 -3
- package/api/@xmachines/play-router/index/interfaces/ResolvedRoutePath.md +3 -3
- package/api/@xmachines/play-router/index/interfaces/Routable.md +3 -3
- package/api/@xmachines/play-router/index/interfaces/RoutableActor.md +4 -4
- package/api/@xmachines/play-router/index/interfaces/RouteInfo.md +8 -8
- package/api/@xmachines/play-router/index/interfaces/RouteMapOptions.md +4 -4
- package/api/@xmachines/play-router/index/interfaces/RouteMapping.md +3 -3
- package/api/@xmachines/play-router/index/interfaces/RouteMatch.md +3 -3
- package/api/@xmachines/play-router/index/interfaces/RouteNode.md +10 -10
- package/api/@xmachines/play-router/index/interfaces/RouteObject.md +5 -5
- package/api/@xmachines/play-router/index/interfaces/RouteTree.md +5 -5
- package/api/@xmachines/play-router/index/interfaces/RouteWatcherHandle.md +3 -3
- package/api/@xmachines/play-router/index/interfaces/RouterBridge.md +3 -3
- package/api/@xmachines/play-router/index/interfaces/RouterBridgeOptions.md +6 -6
- package/api/@xmachines/play-router/index/interfaces/RouterConnection.md +6 -6
- package/api/@xmachines/play-router/index/interfaces/SplitLocation.md +5 -5
- package/api/@xmachines/play-router/index/interfaces/WindowLike.md +3 -3
- package/api/@xmachines/play-router/index/type-aliases/PlayRouterBridgeConstructor.md +1 -1
- package/api/@xmachines/play-router/index/type-aliases/RouteData.md +1 -1
- package/api/@xmachines/play-router/index/type-aliases/RouteDataResolver.md +1 -1
- package/api/@xmachines/play-router/index/type-aliases/RouteMetadata.md +1 -1
- package/api/@xmachines/play-router/index/type-aliases/URLPatternLike.md +3 -3
- package/api/@xmachines/play-router/index/variables/NO_BASE_PATH.md +1 -1
- package/api/@xmachines/play-router/index/variables/ROOT_NODE_ID.md +1 -1
- package/api/@xmachines/play-router/xstate/functions/createRouteMap.md +1 -1
- package/api/@xmachines/play-router/xstate/functions/extractMachineRoutes.md +1 -1
- package/api/@xmachines/play-router/xstate/functions/getNavigableRoutes.md +1 -1
- package/api/@xmachines/play-router/xstate/functions/getRoutableRoutes.md +1 -1
- package/api/@xmachines/play-router/xstate/functions/getRouteMappings.md +1 -1
- package/api/@xmachines/play-router/xstate/functions/getTransitionReachableRoutes.md +1 -1
- package/api/@xmachines/play-router/xstate/functions/isRouteReachable.md +1 -1
- package/api/@xmachines/play-router/xstate/functions/machineToGraph.md +1 -1
- package/api/@xmachines/play-router/xstate/functions/routeExists.md +1 -1
- package/api/@xmachines/play-router/xstate/interfaces/MachineEdgeData.md +3 -3
- package/api/@xmachines/play-router/xstate/interfaces/MachineNodeData.md +5 -5
- package/api/@xmachines/play-router/xstate/type-aliases/MachineGraph.md +1 -1
- package/api/@xmachines/play-solid/README.md +35 -11
- package/api/@xmachines/play-solid/functions/useActor.md +1 -1
- package/api/@xmachines/play-solid/functions/useBoundProp.md +8 -5
- package/api/@xmachines/play-solid/functions/useFieldValidation.md +6 -4
- package/api/@xmachines/play-solid/functions/usePlayView.md +1 -1
- package/api/@xmachines/play-solid/functions/useStateBinding.md +5 -3
- package/api/@xmachines/play-solid/functions/useStateValue.md +5 -3
- package/api/@xmachines/play-solid/interfaces/ActorProviderProps.md +10 -10
- package/api/@xmachines/play-solid/interfaces/PlayUIProviderProps.md +13 -13
- package/api/@xmachines/play-solid/interfaces/RenderErrorInfo.md +16 -0
- package/api/@xmachines/play-solid/interfaces/RendererProps.md +7 -7
- package/api/@xmachines/play-solid/interfaces/ViewContextValue.md +5 -5
- package/api/@xmachines/play-solid/type-aliases/AnyPlayActor.md +1 -1
- package/api/@xmachines/play-solid/type-aliases/OnRenderError.md +27 -0
- package/api/@xmachines/play-solid/type-aliases/RenderErrorKind.md +21 -0
- package/api/@xmachines/play-solid/variables/ActorContext.md +1 -1
- package/api/@xmachines/play-solid/variables/ActorProvider.md +17 -3
- package/api/@xmachines/play-solid/variables/PlayRenderer.md +1 -1
- package/api/@xmachines/play-solid/variables/PlayUIProvider.md +1 -1
- package/api/@xmachines/play-solid-router/README.md +21 -5
- package/api/@xmachines/play-solid-router/classes/RouteMap.md +4 -4
- package/api/@xmachines/play-solid-router/classes/SolidRouterBridge.md +7 -7
- package/api/@xmachines/play-solid-router/functions/createPlayRouterProvider.md +1 -1
- package/api/@xmachines/play-solid-router/interfaces/PlayActor.md +3 -3
- package/api/@xmachines/play-solid-router/interfaces/PlayRouteEvent.md +7 -7
- package/api/@xmachines/play-solid-router/interfaces/PlayRouterProviderProps.md +9 -9
- package/api/@xmachines/play-solid-router/interfaces/RoutableActor.md +4 -4
- package/api/@xmachines/play-solid-router/interfaces/RouteMapOptions.md +4 -4
- package/api/@xmachines/play-solid-router/interfaces/RouteMapping.md +3 -3
- package/api/@xmachines/play-solid-router/interfaces/RouterBridge.md +3 -3
- package/api/@xmachines/play-solid-router/type-aliases/PlayRouterBridgeConstructor.md +1 -1
- package/api/@xmachines/play-solid-router/type-aliases/PlayRouterProviderBaseProps.md +1 -1
- package/api/@xmachines/play-solid-router/type-aliases/SolidRouterHooks.md +4 -4
- package/api/@xmachines/play-solid-router/variables/PlayRouterProvider.md +1 -1
- package/api/@xmachines/play-svelte/README.md +18 -10
- package/api/@xmachines/play-svelte/functions/defineRegistry.md +3 -4
- package/api/@xmachines/play-svelte/functions/getActorContext.md +1 -1
- package/api/@xmachines/play-svelte/functions/getPlayViewContext.md +1 -1
- package/api/@xmachines/play-svelte/functions/setActorContext.md +1 -1
- package/api/@xmachines/play-svelte/interfaces/ActorProviderProps.md +12 -12
- package/api/@xmachines/play-svelte/interfaces/DefineRegistryOptions.md +8 -8
- package/api/@xmachines/play-svelte/interfaces/DefineRegistryResult.md +15 -0
- package/api/@xmachines/play-svelte/interfaces/PlayUIProviderProps.md +14 -14
- package/api/@xmachines/play-svelte/interfaces/RenderErrorInfo.md +16 -0
- package/api/@xmachines/play-svelte/interfaces/ViewContextValue.md +5 -5
- package/api/@xmachines/play-svelte/type-aliases/AnyPlayActor.md +1 -1
- package/api/@xmachines/play-svelte/type-aliases/OnRenderError.md +27 -0
- package/api/@xmachines/play-svelte/type-aliases/RenderErrorKind.md +21 -0
- package/api/@xmachines/play-svelte-spa-router/README.md +9 -5
- package/api/@xmachines/play-svelte-spa-router/classes/RouteMap.md +4 -4
- package/api/@xmachines/play-svelte-spa-router/classes/SvelteSpaRouterBridge.md +7 -7
- package/api/@xmachines/play-svelte-spa-router/functions/connectRouter.md +1 -1
- package/api/@xmachines/play-svelte-spa-router/interfaces/BasePathOptions.md +3 -3
- package/api/@xmachines/play-svelte-spa-router/interfaces/ConnectRouterOptions.md +8 -8
- package/api/@xmachines/play-svelte-spa-router/interfaces/PlayRouteEvent.md +7 -7
- package/api/@xmachines/play-svelte-spa-router/interfaces/RoutableActor.md +4 -4
- package/api/@xmachines/play-svelte-spa-router/interfaces/RouteMapOptions.md +4 -4
- package/api/@xmachines/play-svelte-spa-router/interfaces/RouteMapping.md +3 -3
- package/api/@xmachines/play-svelte-spa-router/interfaces/RouterBridge.md +3 -3
- package/api/@xmachines/play-svelte-spa-router/interfaces/RouterConnection.md +6 -6
- package/api/@xmachines/play-svelte-spa-router/interfaces/WindowLike.md +3 -3
- package/api/@xmachines/play-sveltekit-router/README.md +65 -13
- package/api/@xmachines/play-sveltekit-router/classes/RouteMap.md +4 -4
- package/api/@xmachines/play-sveltekit-router/classes/SvelteKitRouterBridge.md +29 -19
- package/api/@xmachines/play-sveltekit-router/functions/connectRouter.md +1 -1
- package/api/@xmachines/play-sveltekit-router/interfaces/BasePathOptions.md +3 -3
- package/api/@xmachines/play-sveltekit-router/interfaces/ConnectRouterOptions.md +13 -16
- package/api/@xmachines/play-sveltekit-router/interfaces/LocationLike.md +3 -3
- package/api/@xmachines/play-sveltekit-router/interfaces/PlayRouteEvent.md +7 -7
- package/api/@xmachines/play-sveltekit-router/interfaces/RoutableActor.md +4 -4
- package/api/@xmachines/play-sveltekit-router/interfaces/RouteMapOptions.md +4 -4
- package/api/@xmachines/play-sveltekit-router/interfaces/RouteMapping.md +3 -3
- package/api/@xmachines/play-sveltekit-router/interfaces/RouterBridge.md +3 -3
- package/api/@xmachines/play-sveltekit-router/interfaces/RouterConnection.md +6 -6
- package/api/@xmachines/play-sveltekit-router/interfaces/SvelteKitRouterBridgeOptions.md +25 -0
- package/api/@xmachines/play-sveltekit-router/type-aliases/ShallowNavigation.md +21 -0
- package/api/@xmachines/play-tanstack-react-router/README.md +34 -16
- package/api/@xmachines/play-tanstack-react-router/classes/RouteMap.md +4 -4
- package/api/@xmachines/play-tanstack-react-router/classes/TanStackReactRouterBridge.md +7 -7
- package/api/@xmachines/play-tanstack-react-router/functions/createPlayRouterProvider.md +1 -1
- package/api/@xmachines/play-tanstack-react-router/functions/createRouteMapFromTree.md +1 -1
- package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouteEvent.md +7 -7
- package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouterProviderProps.md +9 -9
- package/api/@xmachines/play-tanstack-react-router/interfaces/RoutableActor.md +4 -4
- package/api/@xmachines/play-tanstack-react-router/interfaces/RouteMapOptions.md +4 -4
- package/api/@xmachines/play-tanstack-react-router/interfaces/RouteMapping.md +3 -3
- package/api/@xmachines/play-tanstack-react-router/interfaces/RouterBridge.md +3 -3
- package/api/@xmachines/play-tanstack-react-router/type-aliases/PlayRouterBridgeConstructor.md +1 -1
- package/api/@xmachines/play-tanstack-react-router/type-aliases/PlayRouterProviderBaseProps.md +1 -1
- package/api/@xmachines/play-tanstack-react-router/type-aliases/TanStackRouterInstance.md +1 -1
- package/api/@xmachines/play-tanstack-react-router/type-aliases/TanStackRouterLike.md +5 -5
- package/api/@xmachines/play-tanstack-react-router/variables/PlayRouterProvider.md +1 -1
- package/api/@xmachines/play-tanstack-router/README.md +5 -3
- package/api/@xmachines/play-tanstack-router/classes/TanStackRouterBridgeBase.md +7 -7
- package/api/@xmachines/play-tanstack-router/type-aliases/TanStackRouteMapLike.md +3 -3
- package/api/@xmachines/play-tanstack-router/type-aliases/TanStackRouterLike.md +5 -5
- package/api/@xmachines/play-tanstack-solid-router/README.md +45 -11
- package/api/@xmachines/play-tanstack-solid-router/classes/RouteMap.md +4 -4
- package/api/@xmachines/play-tanstack-solid-router/classes/TanStackSolidRouterBridge.md +7 -7
- package/api/@xmachines/play-tanstack-solid-router/functions/createPlayRouterProvider.md +1 -1
- package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayRouteEvent.md +7 -7
- package/api/@xmachines/play-tanstack-solid-router/interfaces/PlayRouterProviderProps.md +9 -9
- package/api/@xmachines/play-tanstack-solid-router/interfaces/RoutableActor.md +4 -4
- package/api/@xmachines/play-tanstack-solid-router/interfaces/RouteMapOptions.md +4 -4
- package/api/@xmachines/play-tanstack-solid-router/interfaces/RouteMapping.md +3 -3
- package/api/@xmachines/play-tanstack-solid-router/interfaces/RouterBridge.md +3 -3
- package/api/@xmachines/play-tanstack-solid-router/type-aliases/PlayRouterBridgeConstructor.md +1 -1
- package/api/@xmachines/play-tanstack-solid-router/type-aliases/PlayRouterProviderBaseProps.md +1 -1
- package/api/@xmachines/play-tanstack-solid-router/type-aliases/TanStackRouterInstance.md +1 -1
- package/api/@xmachines/play-tanstack-solid-router/type-aliases/TanStackRouterLike.md +5 -5
- package/api/@xmachines/play-tanstack-solid-router/variables/PlayRouterProvider.md +1 -1
- package/api/@xmachines/play-url/README.md +1 -1
- package/api/@xmachines/play-url/errors/classes/InvalidBasePathError.md +5 -5
- package/api/@xmachines/play-url/errors/classes/InvalidRoutePatternError.md +5 -5
- package/api/@xmachines/play-url/errors/classes/MissingBasePathParamError.md +6 -6
- package/api/@xmachines/play-url/index/functions/buildPath.md +1 -1
- package/api/@xmachines/play-url/index/functions/cleanFrameworkParams.md +1 -1
- package/api/@xmachines/play-url/index/functions/createLruCache.md +1 -1
- package/api/@xmachines/play-url/index/functions/getCandidates.md +1 -1
- package/api/@xmachines/play-url/index/functions/getCompiledPattern.md +1 -1
- package/api/@xmachines/play-url/index/functions/getIndexKey.md +1 -1
- package/api/@xmachines/play-url/index/functions/holdsUnsubstitutedParam.md +1 -1
- package/api/@xmachines/play-url/index/functions/isDotSegment.md +1 -1
- package/api/@xmachines/play-url/index/functions/joinBasePath.md +1 -1
- package/api/@xmachines/play-url/index/functions/normalizeBasePath.md +1 -1
- package/api/@xmachines/play-url/index/functions/parsePattern.md +1 -1
- package/api/@xmachines/play-url/index/functions/pickOwnParams.md +1 -1
- package/api/@xmachines/play-url/index/functions/resolveBasePath.md +1 -1
- package/api/@xmachines/play-url/index/functions/resolveFrameworkParams.md +1 -1
- package/api/@xmachines/play-url/index/functions/sanitizePathname.md +1 -1
- package/api/@xmachines/play-url/index/functions/splitLocation.md +1 -1
- package/api/@xmachines/play-url/index/functions/stripBasePath.md +1 -1
- package/api/@xmachines/play-url/index/interfaces/BasePathOptions.md +3 -3
- package/api/@xmachines/play-url/index/interfaces/CompileOptions.md +3 -3
- package/api/@xmachines/play-url/index/interfaces/FrameworkParamsSource.md +7 -7
- package/api/@xmachines/play-url/index/interfaces/GroupPart.md +4 -4
- package/api/@xmachines/play-url/index/interfaces/KeyValueCache.md +3 -3
- package/api/@xmachines/play-url/index/interfaces/LiteralPart.md +3 -3
- package/api/@xmachines/play-url/index/interfaces/ParamPart.md +7 -7
- package/api/@xmachines/play-url/index/interfaces/ParseOptions.md +2 -2
- package/api/@xmachines/play-url/index/interfaces/ParsedPattern.md +12 -12
- package/api/@xmachines/play-url/index/interfaces/PatternParam.md +4 -4
- package/api/@xmachines/play-url/index/interfaces/ResolvedBasePath.md +3 -3
- package/api/@xmachines/play-url/index/interfaces/SplitLocation.md +5 -5
- package/api/@xmachines/play-url/index/type-aliases/PathBuildResult.md +1 -1
- package/api/@xmachines/play-url/index/type-aliases/PathParams.md +1 -1
- package/api/@xmachines/play-url/index/type-aliases/PatternModifier.md +1 -1
- package/api/@xmachines/play-url/index/type-aliases/PatternPart.md +1 -1
- package/api/@xmachines/play-url/index/type-aliases/URLPatternCtor.md +1 -1
- package/api/@xmachines/play-url/index/type-aliases/URLPatternLike.md +3 -3
- package/api/@xmachines/play-url/index/variables/NO_BASE_PATH.md +1 -1
- package/api/@xmachines/play-url/index/variables/URLPattern.md +1 -1
- package/api/@xmachines/play-view/README.md +45 -19
- package/api/@xmachines/play-view/errors/README.md +1 -0
- package/api/@xmachines/play-view/errors/classes/InvalidViewOutletError.md +6 -6
- package/api/@xmachines/play-view/errors/classes/ReadOnlyContextError.md +5 -5
- package/api/@xmachines/play-view/errors/classes/ViewElementKeyCollisionError.md +181 -0
- package/api/@xmachines/play-view/index/README.md +10 -4
- package/api/@xmachines/play-view/index/functions/attachRenderErrorHandler.md +10 -9
- package/api/@xmachines/play-view/index/functions/bindStoreHandlers.md +34 -0
- package/api/@xmachines/play-view/index/functions/composePlayState.md +1 -1
- package/api/@xmachines/play-view/index/functions/composeViews.md +8 -2
- package/api/@xmachines/play-view/index/functions/createActorProxy.md +39 -0
- package/api/@xmachines/play-view/index/functions/createRenderErrorBinding.md +35 -0
- package/api/@xmachines/play-view/index/functions/createReportGuard.md +1 -1
- package/api/@xmachines/play-view/index/functions/createViewSession.md +29 -0
- package/api/@xmachines/play-view/index/functions/createViewStoreLifecycle.md +1 -1
- package/api/@xmachines/play-view/index/functions/forwardRenderError.md +45 -0
- package/api/@xmachines/play-view/index/functions/guardContextWrites.md +1 -1
- package/api/@xmachines/play-view/index/functions/refreshContextSubtree.md +1 -1
- package/api/@xmachines/play-view/index/functions/reuseComposedState.md +1 -1
- package/api/@xmachines/play-view/index/functions/toAtomState.md +1 -1
- package/api/@xmachines/play-view/index/functions/typedSpec.md +1 -1
- package/api/@xmachines/play-view/index/interfaces/BaseActorProviderProps.md +8 -8
- package/api/@xmachines/play-view/index/interfaces/BaseViewContextValue.md +5 -5
- package/api/@xmachines/play-view/index/interfaces/ComposedView.md +5 -5
- package/api/@xmachines/play-view/index/interfaces/HandlerFactory.md +19 -0
- package/api/@xmachines/play-view/index/interfaces/PlaySpec.md +3 -3
- package/api/@xmachines/play-view/index/interfaces/ReportGuard.md +5 -5
- package/api/@xmachines/play-view/index/interfaces/ReportGuardMessages.md +5 -5
- package/api/@xmachines/play-view/index/interfaces/ResolveViewStoreOptions.md +2 -2
- package/api/@xmachines/play-view/index/interfaces/ViewMeta.md +2 -2
- package/api/@xmachines/play-view/index/interfaces/ViewOutlet.md +3 -3
- package/api/@xmachines/play-view/index/interfaces/ViewSession.md +155 -0
- package/api/@xmachines/play-view/index/interfaces/ViewSessionOptions.md +12 -0
- package/api/@xmachines/play-view/index/interfaces/ViewSessionSnapshot.md +23 -0
- package/api/@xmachines/play-view/index/interfaces/ViewStoreLifecycle.md +22 -3
- package/api/@xmachines/play-view/index/interfaces/ViewStoreResolution.md +7 -6
- package/api/@xmachines/play-view/index/interfaces/ViewTree.md +4 -4
- package/api/@xmachines/play-view/index/interfaces/ViewTreeChild.md +3 -3
- package/api/@xmachines/play-view/index/interfaces/Viewable.md +2 -2
- package/api/@xmachines/play-view/index/type-aliases/StateUpdater.md +21 -0
- package/api/@xmachines/play-view/index/type-aliases/ViewActor.md +1 -1
- package/api/@xmachines/play-view/index/variables/CONTEXT_STATE_KEY.md +1 -1
- package/api/@xmachines/play-vue/README.md +20 -15
- package/api/@xmachines/play-vue/functions/defineRegistry.md +1 -1
- package/api/@xmachines/play-vue/functions/useActor.md +1 -1
- package/api/@xmachines/play-vue/functions/useBoundProp.md +10 -4
- package/api/@xmachines/play-vue/functions/useFieldValidation.md +12 -5
- package/api/@xmachines/play-vue/functions/usePlayView.md +1 -1
- package/api/@xmachines/play-vue/interfaces/ActorProviderProps.md +8 -8
- package/api/@xmachines/play-vue/interfaces/PlayUIProviderProps.md +11 -11
- package/api/@xmachines/play-vue/interfaces/RenderErrorInfo.md +16 -0
- package/api/@xmachines/play-vue/interfaces/RendererProps.md +7 -7
- package/api/@xmachines/play-vue/interfaces/ViewContextValue.md +5 -5
- package/api/@xmachines/play-vue/type-aliases/AnyPlayActor.md +1 -1
- package/api/@xmachines/play-vue/type-aliases/ComponentEntry.md +1 -1
- package/api/@xmachines/play-vue/type-aliases/ComponentsMap.md +1 -1
- package/api/@xmachines/play-vue/type-aliases/DefineRegistryOptions.md +2 -2
- package/api/@xmachines/play-vue/type-aliases/OnRenderError.md +27 -0
- package/api/@xmachines/play-vue/type-aliases/RenderErrorKind.md +21 -0
- package/api/@xmachines/play-vue/variables/PlayRenderer.md +1 -1
- package/api/@xmachines/play-vue/variables/Renderer.md +3 -3
- package/api/@xmachines/play-vue-router/README.md +18 -11
- package/api/@xmachines/play-vue-router/errors/classes/VueRouterNavigationError.md +4 -4
- package/api/@xmachines/play-vue-router/errors/classes/VueRouterSendError.md +4 -4
- package/api/@xmachines/play-vue-router/index/classes/RouteMap.md +4 -4
- package/api/@xmachines/play-vue-router/index/classes/VueRouterBridge.md +7 -7
- package/api/@xmachines/play-vue-router/index/interfaces/PlayRouteEvent.md +7 -7
- package/api/@xmachines/play-vue-router/index/interfaces/RoutableActor.md +4 -4
- package/api/@xmachines/play-vue-router/index/interfaces/RouteMapOptions.md +4 -4
- package/api/@xmachines/play-vue-router/index/interfaces/RouteMapping.md +3 -3
- package/api/@xmachines/play-vue-router/index/interfaces/RouterBridge.md +3 -3
- package/api/@xmachines/play-vue-router/index/variables/PlayRouterProvider.md +1 -1
- package/api/@xmachines/play-xstate/README.md +64 -12
- package/api/@xmachines/play-xstate/errors/classes/ActorThrewNonErrorError.md +4 -4
- package/api/@xmachines/play-xstate/errors/classes/InvalidEventError.md +5 -5
- package/api/@xmachines/play-xstate/errors/classes/InvalidMachineError.md +4 -4
- package/api/@xmachines/play-xstate/errors/classes/InvalidRouteHandlerError.md +5 -5
- package/api/@xmachines/play-xstate/errors/classes/InvalidRouteMetadataError.md +5 -5
- package/api/@xmachines/play-xstate/errors/classes/InvalidRouteParamError.md +7 -7
- package/api/@xmachines/play-xstate/errors/classes/MissingRouteParamError.md +6 -6
- package/api/@xmachines/play-xstate/errors/classes/MissingStateIdError.md +6 -6
- package/api/@xmachines/play-xstate/index/classes/PlayerActor.md +10 -10
- package/api/@xmachines/play-xstate/index/functions/compose.md +4 -4
- package/api/@xmachines/play-xstate/index/functions/definePlayer.md +2 -2
- package/api/@xmachines/play-xstate/index/interfaces/PlayerConfig.md +4 -4
- package/api/@xmachines/play-xstate/index/interfaces/PlayerFactoryResumeOptions.md +2 -2
- package/api/@xmachines/play-xstate/index/interfaces/PlayerOptions.md +7 -7
- package/api/@xmachines/play-xstate/index/type-aliases/Capability.md +1 -1
- package/api/@xmachines/play-xstate/index/type-aliases/PlayerConstructor.md +1 -1
- package/api/@xmachines/play-xstate/index/type-aliases/PlayerFactory.md +1 -1
- package/api/@xmachines/play-xstate/with-routing/functions/buildRouteUrl.md +1 -1
- package/api/@xmachines/play-xstate/with-routing/functions/deriveRoute.md +1 -1
- package/api/@xmachines/play-xstate/with-routing/functions/formatPlayRouteTransitions.md +1 -1
- package/api/@xmachines/play-xstate/with-routing/functions/isAbsoluteRoute.md +1 -1
- package/api/@xmachines/play-xstate/with-routing/functions/withRouting.md +1 -1
- package/api/@xmachines/play-xstate/with-routing/interfaces/RouteContext.md +5 -5
- package/api/@xmachines/play-xstate/with-routing/interfaces/RouteObject.md +5 -5
- package/api/@xmachines/play-xstate/with-routing/type-aliases/RouteData.md +1 -1
- package/api/@xmachines/play-xstate/with-routing/type-aliases/RouteDataResolver.md +1 -1
- package/api/@xmachines/play-xstate/with-routing/type-aliases/RouteMachineConfig.md +4 -4
- package/api/@xmachines/play-xstate/with-routing/type-aliases/RouteMetadata.md +1 -1
- package/api/@xmachines/play-xstate/with-routing/type-aliases/RouteStateNode.md +5 -5
- package/api/@xmachines/play-xstate/with-view/functions/withView.md +1 -1
- package/api/@xmachines/shared/README.md +1 -0
- package/api/@xmachines/shared/vite-aliases/functions/xmAliases.md +1 -1
- package/api/@xmachines/shared/vite-aliases/functions/xmBuildOutput.md +1 -1
- package/api/@xmachines/shared/vite-aliases/functions/xmBuildOutputFile.md +1 -1
- package/api/@xmachines/shared/vite-aliases/functions/xmCacheDir.md +1 -1
- package/api/@xmachines/shared/vite-aliases/functions/xmOptimizeDeps.md +1 -1
- package/api/@xmachines/shared/vite-aliases/functions/xmResolve.md +1 -1
- package/api/@xmachines/shared/vite-aliases/functions/xmSvelteRunes.md +2 -2
- package/api/@xmachines/shared/vite-aliases/functions/xmTestTarget.md +1 -1
- package/api/@xmachines/shared/vite-aliases/type-aliases/XmTestTarget.md +1 -1
- package/api/@xmachines/shared/vitest/functions/defineXmBrowserConfig.md +1 -1
- package/api/@xmachines/shared/vitest/functions/defineXmVitestConfig.md +1 -1
- package/api/@xmachines/shared/vitest/interfaces/XmBrowserConfigOptions.md +4 -4
- package/contributing/architecture.md +88 -53
- package/contributing/configuration.md +20 -12
- package/contributing/deployment.md +3 -3
- package/contributing/development.md +28 -3
- package/contributing/migrating-to-play-atom.md +10 -4
- package/contributing/testing.md +64 -33
- package/examples/@xmachines/play-dom-demo/README.md +2 -2
- package/examples/@xmachines/play-dom-demo/functions/createAuthActionHandlers.md +9 -9
- package/examples/@xmachines/play-dom-demo/functions/createConfirmDialog.md +1 -1
- package/examples/@xmachines/play-dom-demo/functions/createNavBar.md +1 -1
- package/examples/@xmachines/play-dom-demo/functions/initShell.md +1 -1
- package/examples/@xmachines/play-dom-demo/type-aliases/AuthCatalog.md +1 -1
- package/examples/@xmachines/play-dom-demo/variables/About.md +1 -1
- package/examples/@xmachines/play-dom-demo/variables/Button.md +1 -1
- package/examples/@xmachines/play-dom-demo/variables/Contact.md +1 -1
- package/examples/@xmachines/play-dom-demo/variables/Dashboard.md +1 -1
- package/examples/@xmachines/play-dom-demo/variables/Field.md +1 -1
- package/examples/@xmachines/play-dom-demo/variables/Home.md +1 -1
- package/examples/@xmachines/play-dom-demo/variables/Login.md +1 -1
- package/examples/@xmachines/play-dom-demo/variables/NavBarView.md +1 -1
- package/examples/@xmachines/play-dom-demo/variables/Navigation.md +1 -1
- package/examples/@xmachines/play-dom-demo/variables/Overview.md +1 -1
- package/examples/@xmachines/play-dom-demo/variables/Panel.md +1 -1
- package/examples/@xmachines/play-dom-demo/variables/Profile.md +1 -1
- package/examples/@xmachines/play-dom-demo/variables/Settings.md +1 -1
- package/examples/@xmachines/play-dom-demo/variables/Stats.md +1 -1
- package/examples/@xmachines/play-dom-demo/variables/authCatalog.md +1 -1
- package/examples/@xmachines/play-dom-demo/variables/demoComponents.md +15 -15
- package/examples/@xmachines/play-dom-router-demo/README.md +4 -3
- package/examples/@xmachines/play-react-demo/README.md +2 -2
- package/examples/@xmachines/play-react-demo/functions/createAuthActionHandlers.md +9 -9
- package/examples/@xmachines/play-react-demo/type-aliases/AuthCatalog.md +1 -1
- package/examples/@xmachines/play-react-demo/variables/About.md +1 -1
- package/examples/@xmachines/play-react-demo/variables/Button.md +1 -1
- package/examples/@xmachines/play-react-demo/variables/Contact.md +1 -1
- package/examples/@xmachines/play-react-demo/variables/Dashboard.md +1 -1
- package/examples/@xmachines/play-react-demo/variables/DebugPanel.md +1 -1
- package/examples/@xmachines/play-react-demo/variables/Field.md +1 -1
- package/examples/@xmachines/play-react-demo/variables/Home.md +1 -1
- package/examples/@xmachines/play-react-demo/variables/Login.md +1 -1
- package/examples/@xmachines/play-react-demo/variables/NavBar.md +1 -1
- package/examples/@xmachines/play-react-demo/variables/NavBarView.md +1 -1
- package/examples/@xmachines/play-react-demo/variables/Navigation.md +1 -1
- package/examples/@xmachines/play-react-demo/variables/Overview.md +1 -1
- package/examples/@xmachines/play-react-demo/variables/Panel.md +1 -1
- package/examples/@xmachines/play-react-demo/variables/Profile.md +1 -1
- package/examples/@xmachines/play-react-demo/variables/Settings.md +1 -1
- package/examples/@xmachines/play-react-demo/variables/Shell.md +1 -1
- package/examples/@xmachines/play-react-demo/variables/Stats.md +1 -1
- package/examples/@xmachines/play-react-demo/variables/authCatalog.md +1 -1
- package/examples/@xmachines/play-react-demo/variables/demoComponents.md +15 -15
- package/examples/@xmachines/play-react-router-demo/README.md +4 -3
- package/examples/@xmachines/play-solid-demo/README.md +3 -3
- package/examples/@xmachines/play-solid-demo/functions/createAuthActionHandlers.md +9 -9
- package/examples/@xmachines/play-solid-demo/type-aliases/AuthCatalog.md +1 -1
- package/examples/@xmachines/play-solid-demo/variables/About.md +1 -1
- package/examples/@xmachines/play-solid-demo/variables/Button.md +1 -1
- package/examples/@xmachines/play-solid-demo/variables/Contact.md +1 -1
- package/examples/@xmachines/play-solid-demo/variables/Dashboard.md +1 -1
- package/examples/@xmachines/play-solid-demo/variables/DebugPanel.md +1 -1
- package/examples/@xmachines/play-solid-demo/variables/Field.md +1 -1
- package/examples/@xmachines/play-solid-demo/variables/Home.md +1 -1
- package/examples/@xmachines/play-solid-demo/variables/Login.md +1 -1
- package/examples/@xmachines/play-solid-demo/variables/NavBar.md +1 -1
- package/examples/@xmachines/play-solid-demo/variables/NavBarView.md +1 -1
- package/examples/@xmachines/play-solid-demo/variables/Navigation.md +1 -1
- package/examples/@xmachines/play-solid-demo/variables/Overview.md +1 -1
- package/examples/@xmachines/play-solid-demo/variables/Panel.md +1 -1
- package/examples/@xmachines/play-solid-demo/variables/Profile.md +1 -1
- package/examples/@xmachines/play-solid-demo/variables/Settings.md +1 -1
- package/examples/@xmachines/play-solid-demo/variables/Shell.md +1 -1
- package/examples/@xmachines/play-solid-demo/variables/Stats.md +1 -1
- package/examples/@xmachines/play-solid-demo/variables/authCatalog.md +1 -1
- package/examples/@xmachines/play-solid-demo/variables/demoComponents.md +15 -15
- package/examples/@xmachines/play-solid-router-demo/README.md +9 -3
- package/examples/@xmachines/play-svelte-demo/README.md +1 -1
- package/examples/@xmachines/play-svelte-demo/functions/createAuthActionHandlers.md +9 -9
- package/examples/@xmachines/play-svelte-demo/type-aliases/AuthCatalog.md +1 -1
- package/examples/@xmachines/play-svelte-demo/variables/authCatalog.md +1 -1
- package/examples/@xmachines/play-svelte-demo/variables/demoComponents.md +15 -15
- package/examples/@xmachines/play-svelte-spa-router-demo/README.md +1 -1
- package/examples/@xmachines/play-sveltekit-router-demo/README.md +1 -1
- package/examples/@xmachines/play-tanstack-react-router-demo/README.md +3 -2
- package/examples/@xmachines/play-tanstack-solid-router-demo/README.md +9 -8
- package/examples/@xmachines/play-vue-demo/README.md +2 -2
- package/examples/@xmachines/play-vue-demo/functions/createAuthActionHandlers.md +9 -9
- package/examples/@xmachines/play-vue-demo/type-aliases/AuthCatalog.md +1 -1
- package/examples/@xmachines/play-vue-demo/variables/App.md +1 -1
- package/examples/@xmachines/play-vue-demo/variables/authCatalog.md +1 -1
- package/examples/@xmachines/play-vue-demo/variables/demoComponents.md +1 -1
- package/examples/@xmachines/play-vue-router-demo/README.md +3 -3
- package/examples/form-validation.md +17 -13
- package/examples/multi-router-integration.md +268 -147
- package/examples/routing-patterns.md +43 -8
- package/examples/traffic-light.md +6 -2
- package/guides/actor-model.md +37 -19
- package/guides/atoms.md +48 -8
- package/guides/getting-started.md +63 -13
- package/guides/inspector.md +71 -11
- package/guides/routing.md +4 -1
- package/guides/state-machines.md +35 -13
- package/guides/views.md +34 -14
- package/package.json +6 -6
- package/rfc/play.md +31 -13
- package/api/@xmachines/play-view/index/functions/createFailureLatch.md +0 -20
- package/api/@xmachines/play-view/index/functions/sameViewInputs.md +0 -25
- package/api/@xmachines/play-view/index/interfaces/FailureLatch.md +0 -60
- package/api/@xmachines/play-view/index/interfaces/ViewInputs.md +0 -19
|
@@ -12,6 +12,7 @@ This guide covers everything you need to set up a local development environment,
|
|
|
12
12
|
- [Code Style](#code-style)
|
|
13
13
|
- [Writing Style](#writing-style-asd-ste100)
|
|
14
14
|
- [Link a Package That You Name](#link-a-package-that-you-name)
|
|
15
|
+
- [Code Examples in Documents](#code-examples-in-documents)
|
|
15
16
|
- [Branch Conventions](#branch-conventions)
|
|
16
17
|
- [PR Process](#pr-process)
|
|
17
18
|
|
|
@@ -88,7 +89,7 @@ packages/
|
|
|
88
89
|
├── play-pattern/ # The route pattern language: one parse, and the path it builds back
|
|
89
90
|
├── play-url/ # The URL layer: the URLPattern API, a base path, framework params
|
|
90
91
|
├── play-actor/ # The actor contract (PlayActor). It names no engine
|
|
91
|
-
├── play-view/ # The shared view half (Viewable, PlaySpec, the view
|
|
92
|
+
├── play-view/ # The shared view half (Viewable, PlaySpec, the view session)
|
|
92
93
|
├── play-xstate/ # XState v5 adapter (definePlayer, PlayerActor)
|
|
93
94
|
├── play-router/ # Route extraction and RouterBridgeBase
|
|
94
95
|
├── play-dom/ # Vanilla DOM renderer
|
|
@@ -142,6 +143,7 @@ All commands are run from the **repository root** unless otherwise noted.
|
|
|
142
143
|
| `pnpm run test:browser:dist` | Run Playwright browser tests on the build output |
|
|
143
144
|
| `pnpm run test:coverage` | Run tests with V8 coverage reporting |
|
|
144
145
|
| `pnpm run test:browser:coverage` | Run browser tests with coverage reporting |
|
|
146
|
+
| `pnpm run test:docs:examples` | Compile and run the code examples of the documentation |
|
|
145
147
|
| `pnpm run test:build` | Complete type-check of every package and its tests (`tsconfig.test.json`) |
|
|
146
148
|
| `pnpm run lint` | Lint all packages with oxlint |
|
|
147
149
|
| `pnpm run lint:fix` | Auto-fix lint issues |
|
|
@@ -429,7 +431,7 @@ Use `unknown` with type guards instead of `any`. Prefix unused locals/parameters
|
|
|
429
431
|
|
|
430
432
|
1. Always use `.js` extensions in imports, even for TypeScript source files:
|
|
431
433
|
|
|
432
|
-
```typescript
|
|
434
|
+
```typescript fragment
|
|
433
435
|
// ✅ Correct
|
|
434
436
|
import { PlayError } from "./errors.js";
|
|
435
437
|
|
|
@@ -439,7 +441,7 @@ Use `unknown` with type guards instead of `any`. Prefix unused locals/parameters
|
|
|
439
441
|
|
|
440
442
|
2. Use `import type` for type-only imports (required by `verbatimModuleSyntax`):
|
|
441
443
|
|
|
442
|
-
```typescript
|
|
444
|
+
```typescript fragment
|
|
443
445
|
import type { RouteNode, RouteTree } from "../src/types.js";
|
|
444
446
|
```
|
|
445
447
|
|
|
@@ -495,6 +497,29 @@ Three places keep a plain code span:
|
|
|
495
497
|
|
|
496
498
|
---
|
|
497
499
|
|
|
500
|
+
## Code Examples in Documents
|
|
501
|
+
|
|
502
|
+
A reader copies a code example and expects it to work. Two tests therefore read every `ts`, `typescript` and `tsx` block of the hand-written markdown:
|
|
503
|
+
|
|
504
|
+
- `tests/doc-examples/compile.test.ts` compiles each block against the source of the workspace. It writes the block into the package that can resolve its imports, and it uses the `tsconfig.json` of that package.
|
|
505
|
+
- `tests/doc-examples/run.test.ts` runs each complete block in jsdom. A block is complete when it declares no value that the reader supplies, holds no JSX, and loads no package that needs a compiler of Solid, Vue or Svelte, the runtime of SvelteKit, or a test runner such as `vitest`. A type import loads nothing, so it does not count. A run fails on each `console.error` and `console.warn`, unless the block logs on purpose. The page holds the elements `#app`, `#root`, `#loading` and `#crashed`.
|
|
506
|
+
|
|
507
|
+
Give an example of a call its imports, so that it compiles. Use `declare const` only for a value that the reader supplies, such as their machine or a DOM element. Two words after the language change what the tests do:
|
|
508
|
+
|
|
509
|
+
| Fence | Use it for | Compiled | Run |
|
|
510
|
+
| ------------------ | ------------------------------------------------------------------------------ | -------- | --- |
|
|
511
|
+
| ` ```ts ` | An example that a reader can copy | yes | yes |
|
|
512
|
+
| ` ```ts norun ` | An example that compiles, but runs only in a test or in a component | yes | no |
|
|
513
|
+
| ` ```ts fragment ` | A part of a larger file, such as one state of a machine, or a ✅/❌ comparison | no | no |
|
|
514
|
+
|
|
515
|
+
GitHub, GitLab and TypeDoc read the first word of a fence alone, so the second word changes nothing on a rendered page.
|
|
516
|
+
|
|
517
|
+
An example for a reader imports published packages alone. A private workspace package, such as a demo or [`@xmachines/shared`](../api/@xmachines/shared/README.md), fails the check, because a reader cannot install it. The contributor guides and the README of a private package can import one.
|
|
518
|
+
|
|
519
|
+
Check one document with `DOC_EXAMPLES=<part of its path> pnpm vitest run tests/doc-examples/compile.test.ts`, and run its examples with `DOC_EXAMPLES=<part of its path> pnpm vitest run tests/doc-examples/run.test.ts`. `pnpm run test:docs:examples` runs both, for every document. The dist run leaves them out, and CI runs them in the `test:docs:examples` job.
|
|
520
|
+
|
|
521
|
+
---
|
|
522
|
+
|
|
498
523
|
## Branch Conventions
|
|
499
524
|
|
|
500
525
|
Use a `<type>/` prefix that matches the conventional commit type for the work being done:
|
|
@@ -95,8 +95,14 @@ If you call `subscribe` directly, wrap the body.
|
|
|
95
95
|
**A DERIVATION must contain its own failures.** A subscriber makes a computed atom eager, so the derivation itself runs inside the `set`, before any observer. No subscriber can wrap that, so the rule belongs to the derivation: report through your error channel, and return the previous value. `currentRoute` and `currentView` of the actor both do this, and a release before this one let `currentRoute` throw — which was safe only while the TC39 watcher read it from a microtask.
|
|
96
96
|
|
|
97
97
|
```typescript
|
|
98
|
+
import { createAtom, type ReadonlyAtom } from "@xmachines/play-atom";
|
|
99
|
+
|
|
100
|
+
declare const source: ReadonlyAtom<string>;
|
|
101
|
+
declare function expensiveDerivation(input: string): number;
|
|
102
|
+
declare function report(error: unknown): void;
|
|
103
|
+
|
|
98
104
|
// A derivation that a subscriber may watch.
|
|
99
|
-
const derived = createAtom((previous) => {
|
|
105
|
+
const derived = createAtom<number | null>((previous) => {
|
|
100
106
|
try {
|
|
101
107
|
return expensiveDerivation(source.get());
|
|
102
108
|
} catch (error) {
|
|
@@ -112,7 +118,7 @@ const derived = createAtom((previous) => {
|
|
|
112
118
|
|
|
113
119
|
**Derive the value, and read `previous`.** Almost every `untrack` guarded the same shape: a gate that compares the new value with the last one it emitted. A computed atom is handed that last value, so the gate needs no read and therefore tracks nothing. `withView` of [`@xmachines/play-xstate`](../api/@xmachines/play-xstate/README.md) is the worked example:
|
|
114
120
|
|
|
115
|
-
```typescript
|
|
121
|
+
```typescript fragment
|
|
116
122
|
// Before: a written atom, plus untrack to read what it held.
|
|
117
123
|
this.currentView = new Signal.State<View | null>(null);
|
|
118
124
|
const last = Signal.subtle.untrack(() => this.currentView.get());
|
|
@@ -136,7 +142,7 @@ A read that already stands outside every computed atom and every effect tracks n
|
|
|
136
142
|
|
|
137
143
|
The codemod renames the call, and it cannot write the source list. Add that array yourself, and move the callback one place to the right:
|
|
138
144
|
|
|
139
|
-
```tsx
|
|
145
|
+
```tsx fragment
|
|
140
146
|
// Before
|
|
141
147
|
useSignalEffect(() => {
|
|
142
148
|
setView(actor.currentView.get());
|
|
@@ -195,7 +201,7 @@ Property 'set' is missing in type 'ReadonlyAtom<T>' but required in type 'Atom<T
|
|
|
195
201
|
|
|
196
202
|
Use `createWritableAtom`, which states the one signature:
|
|
197
203
|
|
|
198
|
-
```typescript
|
|
204
|
+
```typescript fragment
|
|
199
205
|
import { createWritableAtom } from "@xmachines/play-atom";
|
|
200
206
|
|
|
201
207
|
this.state = createWritableAtom(this.getSnapshot());
|
package/contributing/testing.md
CHANGED
|
@@ -4,7 +4,7 @@ This document describes the test framework, conventions, and CI integration for
|
|
|
4
4
|
|
|
5
5
|
## Test Framework and Setup
|
|
6
6
|
|
|
7
|
-
The monorepo uses **[Vitest](https://vitest.dev/) `^5.0.
|
|
7
|
+
The monorepo uses **[Vitest](https://vitest.dev/) `^5.0.3`** as its test framework, with **@vitest/coverage-v8** for coverage reporting and **@vitest/browser-playwright** (Playwright/Chromium) for browser-mode tests.
|
|
8
8
|
|
|
9
9
|
All packages extend the shared Vitest configuration helper `defineXmVitestConfig` (from [`@xmachines/shared/vitest`](../api/@xmachines/shared/README.md)) which automatically applies:
|
|
10
10
|
|
|
@@ -25,7 +25,7 @@ All packages extend the shared Vitest configuration helper `defineXmVitestConfig
|
|
|
25
25
|
|
|
26
26
|
`patches/@testing-library__jest-dom@7.0.1.patch` moves the matcher declaration of the library from `Assertion` to `Matchers`. The library declares this:
|
|
27
27
|
|
|
28
|
-
```ts
|
|
28
|
+
```ts fragment
|
|
29
29
|
declare module "vitest" {
|
|
30
30
|
interface Assertion<T = any> extends TestingLibraryMatchers<any, T> {}
|
|
31
31
|
}
|
|
@@ -35,14 +35,6 @@ Vitest 5 declares `interface Assertion<R extends void | Promise<void> = void, T
|
|
|
35
35
|
|
|
36
36
|
Delete the patch, its `patchedDependencies` entry in `pnpm-workspace.yaml`, and `tests/jest-dom-augmentation.test.ts` on the day the library ships a declaration that vitest 5 accepts. See [testing-library/jest-dom#738](https://github.com/testing-library/jest-dom/issues/738).
|
|
37
37
|
|
|
38
|
-
### The vitest mocker patch
|
|
39
|
-
|
|
40
|
-
`patches/@vitest__mocker@5.0.1.patch` takes the `configureServer` hook off `vitest:mocks:interceptor` when the caller passes `registerWebSocketEvents: false`, which is how `@vitest/browser` calls it.
|
|
41
|
-
|
|
42
|
-
Vitest returns that plugin from the `applyToEnvironment` of another plugin, and Vite 8 ignores a `configureServer` that it finds there. Vite reports the fact one time for each environment, so a run of 29 projects wrote 29 lines, in the `test` job and in the `test:browser` job both. The hook returns at once for `registerWebSocketEvents: false`, so the omission changes no behaviour.
|
|
43
|
-
|
|
44
|
-
Delete the patch and its `patchedDependencies` entry when vitest ships the fix. See [vitest-dev/vitest#11276](https://github.com/vitest-dev/vitest/issues/11276).
|
|
45
|
-
|
|
46
38
|
Before running any tests, ensure all dependencies are installed:
|
|
47
39
|
|
|
48
40
|
```bash
|
|
@@ -85,7 +77,7 @@ pnpm run test:dist # the node suites
|
|
|
85
77
|
pnpm run test:browser:dist # the browser suites
|
|
86
78
|
```
|
|
87
79
|
|
|
88
|
-
`pnpm test` runs every suite on the SOURCE of each package. It needs no build, and it cannot see a defect of the build. `pnpm run test:dist` runs the same test files on the BUILD OUTPUT, as a consumer installs it. The 6.0.0 release shows why both runs are necessary. [`@xmachines/play-vue`](../api/@xmachines/play-vue/README.md) and [`@xmachines/play-svelte`](../api/@xmachines/play-svelte/README.md) shipped compiled for server-side rendering, and neither rendered in a browser. Every source suite was green. The node dist run fails 14 test files on that output, and the browser dist run fails the Vue suites.
|
|
80
|
+
`pnpm test` runs every suite on the SOURCE of each package. It needs no build, and it cannot see a defect of the build. `pnpm run test:dist` runs the same test files on the BUILD OUTPUT, as a consumer installs it. The 6.0.0 release shows why both runs are necessary. [`@xmachines/play-vue`](../api/@xmachines/play-vue/README.md) and [`@xmachines/play-svelte`](../api/@xmachines/play-svelte/README.md) shipped compiled for server-side rendering, and neither rendered in a browser. Every source suite was green. The node dist run fails 14 test files on that output, and the browser dist run fails the Vue suites. Run the source suites while you work. CI runs the dist suites alone, so each test counts one time in the merge request.
|
|
89
81
|
|
|
90
82
|
The two scripts set `XM_TEST_TARGET=dist`, and the config helpers of [`@xmachines/shared/vite-aliases`](../api/@xmachines/shared/README.md) read it. No package config holds a copy of the dist setup. The variable changes two things:
|
|
91
83
|
|
|
@@ -96,13 +88,13 @@ The private packages — the demos and the `examples/shared` fixtures — reach
|
|
|
96
88
|
|
|
97
89
|
The plugin fails an import when the build output holds no counterpart. The import then names both files. A fallback to the source would hide the defect that the dist run exists to find. The plugin also fails the run when anything loads a `src/` file of a published package by another route.
|
|
98
90
|
|
|
99
|
-
**Keep one file set.** Both runs collect the same files. A test that cannot run on the build output imports an internal module that the package does not ship. Import that module through the public entry of the package. If that is not possible, exclude the test from the dist run in its project config, and write the reason beside the exclusion. No test is excluded today.
|
|
91
|
+
**Keep one file set.** Both runs collect the same files, except the code examples of the documentation. The examples document the API, so the dist run leaves out the `doc-examples` project, and CI runs it in the `test:docs:examples` job. A test that cannot run on the build output imports an internal module that the package does not ship. Import that module through the public entry of the package. If that is not possible, exclude the test from the dist run in its project config, and write the reason beside the exclusion. No other test is excluded today.
|
|
100
92
|
|
|
101
93
|
**The proof.** `packages/play-xstate/test/test-target.test.ts` (node) and `packages/play-dom/test/browser/test-target.browser.test.ts` (browser) run in both runs. Each reads the target with `inject("xmTestTarget")`, and it asserts which file each kind of import loads. `import.meta.resolve` cannot answer that question, because it asks the resolver of Node. A stack trace cannot answer it either, because Vite applies the source maps of `dist/` and names `src/` in both runs.
|
|
102
94
|
|
|
103
95
|
Run `pnpm run build` first. The dist run reads whatever `dist/` holds, and it does not build. A change to `src/` reaches the dist run only through a new build.
|
|
104
96
|
|
|
105
|
-
|
|
97
|
+
CI measures the coverage on the dist run. The source maps of `dist/` carry the source, so the report names the files of `src/`. v8 matches `coverage.include` against the file that ran, before it reads the source map. The root config therefore adds `packages/*/dist/**/*.js` to `include` in the dist run, and `excludeAfterRemap` applies the filter again to the files of `src/`. The browser config sets no `include`, so it needs neither setting. A file can show a few statements more or less than in a source run, because the build and the dev transform of Vite emit different code. `pnpm run test:coverage` measures the source, locally.
|
|
106
98
|
|
|
107
99
|
### With coverage
|
|
108
100
|
|
|
@@ -269,6 +261,10 @@ The root `vitest.config.ts` needs no edit: it collects `packages/*/vitest.config
|
|
|
269
261
|
|
|
270
262
|
```typescript
|
|
271
263
|
import { describe, it, test, expect, vi, beforeEach, afterEach } from "vitest";
|
|
264
|
+
import type { PlayActor } from "@xmachines/play-actor";
|
|
265
|
+
import type { PlayRouteEvent, Routable } from "@xmachines/play-router";
|
|
266
|
+
|
|
267
|
+
declare function createMockActor(startRoute: string): PlayActor<unknown, PlayRouteEvent> & Routable;
|
|
272
268
|
|
|
273
269
|
describe("ClassName or functionName()", () => {
|
|
274
270
|
describe("feature group or scenario", () => {
|
|
@@ -288,13 +284,16 @@ describe("ClassName or functionName()", () => {
|
|
|
288
284
|
|
|
289
285
|
**Import style:** Always use `.js` extensions in imports (ESM requirement):
|
|
290
286
|
|
|
291
|
-
```typescript
|
|
292
|
-
import { PlayActor } from "../src/
|
|
287
|
+
```typescript fragment
|
|
288
|
+
import type { PlayActor } from "../src/play-actor.js";
|
|
293
289
|
```
|
|
294
290
|
|
|
295
291
|
### Lifecycle hooks
|
|
296
292
|
|
|
297
293
|
```typescript
|
|
294
|
+
import { cleanup } from "@testing-library/react";
|
|
295
|
+
import { afterEach, beforeEach, vi } from "vitest";
|
|
296
|
+
|
|
298
297
|
beforeEach(() => {
|
|
299
298
|
vi.spyOn(console, "error").mockImplementation(() => {});
|
|
300
299
|
});
|
|
@@ -312,6 +311,8 @@ afterEach(() => {
|
|
|
312
311
|
- **Framework router objects** (TanStack Router, Vue Router, React Router, SolidJS Router) — mock with typed `vi.fn()` interfaces because they are external framework dependencies and carry significant setup complexity:
|
|
313
312
|
|
|
314
313
|
```typescript
|
|
314
|
+
import { vi } from "vitest";
|
|
315
|
+
|
|
315
316
|
const mocks = vi.hoisted(() => ({ goto: vi.fn() }));
|
|
316
317
|
|
|
317
318
|
vi.mock("$app/navigation", () => ({ goto: mocks.goto }));
|
|
@@ -321,7 +322,9 @@ afterEach(() => {
|
|
|
321
322
|
|
|
322
323
|
- **`console.warn` / `console.error`** when testing code that legitimately emits warnings — mock to suppress noise and assert call counts:
|
|
323
324
|
|
|
324
|
-
```typescript
|
|
325
|
+
```typescript norun
|
|
326
|
+
import { expect, vi } from "vitest";
|
|
327
|
+
|
|
325
328
|
const warnSpy = vi.spyOn(console, "warn").mockImplementation(() => {});
|
|
326
329
|
// ... test ...
|
|
327
330
|
expect(warnSpy).toHaveBeenCalled();
|
|
@@ -338,10 +341,11 @@ afterEach(() => {
|
|
|
338
341
|
|
|
339
342
|
### Test actor patterns
|
|
340
343
|
|
|
341
|
-
**Preferred:
|
|
344
|
+
**Preferred: implement `PlayActor` for full type safety:**
|
|
342
345
|
|
|
343
346
|
```typescript
|
|
344
|
-
import {
|
|
347
|
+
import { createAtom, type Atom, type ReadonlyAtom } from "@xmachines/play-atom";
|
|
348
|
+
import type { PlayActor } from "@xmachines/play-actor";
|
|
345
349
|
import type { Routable } from "@xmachines/play-router";
|
|
346
350
|
|
|
347
351
|
class MockActor implements PlayActor, Routable {
|
|
@@ -356,7 +360,7 @@ class MockActor implements PlayActor, Routable {
|
|
|
356
360
|
this.initialRoute = startRoute;
|
|
357
361
|
}
|
|
358
362
|
|
|
359
|
-
|
|
363
|
+
send(_event: { readonly type: string } & Record<string, unknown>): void {
|
|
360
364
|
// no-op or capture events for assertion
|
|
361
365
|
}
|
|
362
366
|
}
|
|
@@ -365,18 +369,16 @@ class MockActor implements PlayActor, Routable {
|
|
|
365
369
|
**Factory functions for lightweight inline mocks — use `stubOf`, never a double-cast:**
|
|
366
370
|
|
|
367
371
|
```typescript
|
|
372
|
+
import { vi } from "vitest";
|
|
373
|
+
import { createAtom } from "@xmachines/play-atom";
|
|
374
|
+
import type { PlaySpec, ViewActor } from "@xmachines/play-view";
|
|
368
375
|
import { stubOf } from "@xmachines/shared/test-support";
|
|
369
376
|
|
|
370
377
|
function createMockActor(initialView: PlaySpec | null = null) {
|
|
371
378
|
return stubOf<ViewActor>({
|
|
372
379
|
currentView: createAtom<PlaySpec | null>(initialView),
|
|
373
380
|
send: vi.fn(),
|
|
374
|
-
start: vi.fn(),
|
|
375
|
-
stop: vi.fn(),
|
|
376
|
-
getSnapshot: vi.fn(),
|
|
377
|
-
subscribe: vi.fn(),
|
|
378
381
|
state: createAtom<unknown>({}),
|
|
379
|
-
currentRoute: createAtom(() => null),
|
|
380
382
|
});
|
|
381
383
|
}
|
|
382
384
|
```
|
|
@@ -393,6 +395,11 @@ greppable escape hatch.
|
|
|
393
395
|
**Flushing the microtask queue (required for `watchAtom` delivery):**
|
|
394
396
|
|
|
395
397
|
```typescript
|
|
398
|
+
import { expect, vi } from "vitest";
|
|
399
|
+
|
|
400
|
+
declare const result: string;
|
|
401
|
+
declare const expected: string;
|
|
402
|
+
|
|
396
403
|
function waitForMicrotask(): Promise<void> {
|
|
397
404
|
return new Promise<void>((resolve) => queueMicrotask(resolve));
|
|
398
405
|
}
|
|
@@ -405,8 +412,12 @@ await vi.waitFor(() => expect(result).toBe(expected), { timeout: 100 });
|
|
|
405
412
|
**Atom watch pattern:**
|
|
406
413
|
|
|
407
414
|
```typescript
|
|
415
|
+
import { expect } from "vitest";
|
|
408
416
|
import { createAtom, watchAtom } from "@xmachines/play-atom";
|
|
409
417
|
|
|
418
|
+
const state = createAtom({ path: "/" });
|
|
419
|
+
const actor = { state, currentRoute: createAtom(() => state.get().path) };
|
|
420
|
+
|
|
410
421
|
let notified: string | null = null;
|
|
411
422
|
const stop = watchAtom(actor.currentRoute, (route) => {
|
|
412
423
|
notified = route;
|
|
@@ -427,6 +438,9 @@ stop(); // Always clean up
|
|
|
427
438
|
For type-only assertions, use `@ts-expect-error` in `.spec.ts` files:
|
|
428
439
|
|
|
429
440
|
```typescript
|
|
441
|
+
import { expect } from "vitest";
|
|
442
|
+
import { typedSpec, type ViewMeta } from "@xmachines/play-view";
|
|
443
|
+
|
|
430
444
|
const bad: ViewMeta = typedSpec({
|
|
431
445
|
root: "root",
|
|
432
446
|
elements: {},
|
|
@@ -443,6 +457,11 @@ For purely structural type assertions with no runtime test needed, use `.typeche
|
|
|
443
457
|
|
|
444
458
|
```typescript
|
|
445
459
|
// packages/play-xstate/test/define-player.typecheck.ts
|
|
460
|
+
import { createMachine } from "xstate";
|
|
461
|
+
import { definePlayer } from "@xmachines/play-xstate";
|
|
462
|
+
|
|
463
|
+
const actor = definePlayer({ machine: createMachine({}) })();
|
|
464
|
+
|
|
446
465
|
type IsAny<T> = 0 extends 1 & T ? true : false;
|
|
447
466
|
type AssertFalse<T extends false> = T;
|
|
448
467
|
|
|
@@ -455,8 +474,17 @@ These files are validated by `pnpm run test:build` (`tsc --build tsconfig.test.j
|
|
|
455
474
|
### Error testing
|
|
456
475
|
|
|
457
476
|
```typescript
|
|
477
|
+
import { expect } from "vitest";
|
|
478
|
+
import type { AnyStateMachine } from "xstate";
|
|
479
|
+
import type { PlayEvent } from "@xmachines/play";
|
|
480
|
+
import type { PlayActor } from "@xmachines/play-actor";
|
|
481
|
+
import { extractMachineRoutes } from "@xmachines/play-router/xstate";
|
|
482
|
+
import { InvalidEventError } from "@xmachines/play-xstate/errors";
|
|
458
483
|
import { unsafeCast } from "@xmachines/shared/test-support";
|
|
459
484
|
|
|
485
|
+
declare const actor: PlayActor;
|
|
486
|
+
declare const dupMachine: AnyStateMachine;
|
|
487
|
+
|
|
460
488
|
// Synchronous throws — feed a runtime guard an invalid value through
|
|
461
489
|
// unsafeCast, the named escape hatch (never `null as unknown as PlayEvent`).
|
|
462
490
|
expect(() => actor.send(unsafeCast<PlayEvent>(null))).toThrow(InvalidEventError);
|
|
@@ -489,7 +517,7 @@ A report that a spy swallows and no assertion reads is worse than the noise, bec
|
|
|
489
517
|
|
|
490
518
|
The `@xmachines/play-router-shared` package exports a shared behavioral contract suite that all router bridge adapters must satisfy. It lives here (rather than in [`@xmachines/play-router`](../api/@xmachines/play-router/README.md)) because the suite drives a real actor via [`@xmachines/play-xstate`](../api/@xmachines/play-xstate/README.md) and uses the shared `authMachine` fixture from `@xmachines/play-actor-shared`, so it sits one layer above the router package and keeps [`@xmachines/play-router`](../api/@xmachines/play-router/README.md) free of any dependency on the actor runtime:
|
|
491
519
|
|
|
492
|
-
```typescript
|
|
520
|
+
```typescript fragment
|
|
493
521
|
// packages/play-router/examples/shared/test/router-bridge-contract.ts
|
|
494
522
|
export function runBridgeContractTests(opts: ContractSuiteOptions): void;
|
|
495
523
|
|
|
@@ -513,7 +541,7 @@ The contract covers: deep-link sync on connect, router→actor navigation sync,
|
|
|
513
541
|
|
|
514
542
|
**Compile-time bridge contract verification:**
|
|
515
543
|
|
|
516
|
-
```typescript
|
|
544
|
+
```typescript fragment
|
|
517
545
|
import { assertImplementsRouterBridge } from "@xmachines/play-router-shared/test/router-bridge-contract.js";
|
|
518
546
|
import { MyRouterBridge } from "../src/my-router-bridge.js";
|
|
519
547
|
|
|
@@ -555,20 +583,23 @@ Tests run in GitLab CI using the `to-be-continuous/node` pipeline component (ver
|
|
|
555
583
|
- Pushes to the default branch (`$CI_DEFAULT_BRANCH`)
|
|
556
584
|
- Merge requests (`$CI_MERGE_REQUEST_IID`)
|
|
557
585
|
|
|
558
|
-
**CI test
|
|
586
|
+
**CI test jobs** (from `.gitlab-ci.yml`):
|
|
559
587
|
|
|
560
588
|
```bash
|
|
561
|
-
pnpm run test:coverage
|
|
589
|
+
pnpm run test:dist --coverage # test:dist
|
|
590
|
+
pnpm run test:browser:dist --coverage # test:browser:dist, on the Playwright image
|
|
591
|
+
pnpm run test:docs:examples # test:docs:examples
|
|
562
592
|
```
|
|
563
593
|
|
|
564
|
-
|
|
594
|
+
CI runs the suites on the build output alone. `test:dist` and `test:browser:dist` take `dist/` from `node-build` through `needs:`, so they test the build that the pipeline produced. They block: a failure is a defect of the tarball that a consumer installs, and it holds the release, because `semantic-release` runs in a later stage. `test:docs:examples` reads the source, so it waits for no build.
|
|
565
595
|
|
|
566
|
-
|
|
596
|
+
The jobs pass no reporter flag. `vitest.config.ts` and `vitest.browser.config.ts` own the reporters, the JUnit file and the coverage directory, and they read `COVERAGE_REPORTS_DIR` — which the dist jobs set to `reports/`. A new package therefore needs no CI change. `test:docs:examples` shares the root config with `test:dist`, so it names its own JUnit file on the command line.
|
|
567
597
|
|
|
568
|
-
**Artifacts:**
|
|
598
|
+
**Artifacts:**
|
|
569
599
|
|
|
570
|
-
- JUnit
|
|
571
|
-
-
|
|
600
|
+
- `test:dist`: JUnit at `reports/test-results.xml`, and Cobertura at `reports/cobertura-coverage.xml`. GitLab reads the coverage percentage from the `All files` line.
|
|
601
|
+
- `test:browser:dist`: JUnit at `reports/browser-results.xml`, and its own Cobertura report. GitLab merges the two Cobertura reports.
|
|
602
|
+
- `test:docs:examples`: JUnit at `reports/docs-examples.xml`.
|
|
572
603
|
|
|
573
604
|
Coverage and test results are always uploaded (`when: always`) so failures are visible even when the job itself fails.
|
|
574
605
|
|
|
@@ -43,7 +43,7 @@ Use this order to understand the implementation:
|
|
|
43
43
|
6. `createDebugPanel(actor, shell, inspector)` in `src/components/DebugPanel.ts` uses `watchAtom(actor.state, ...)` and `watchAtom(actor.currentRoute, ...)` to drive live debug panel updates, and renders the **Show Inspector** button that calls `inspector.show()`.
|
|
44
44
|
7. Browser tests in `test/browser/` validate startup rendering and auth interactions.
|
|
45
45
|
|
|
46
|
-
```ts
|
|
46
|
+
```ts fragment
|
|
47
47
|
// src/main.ts (shape)
|
|
48
48
|
const inspector = createDemoInspector();
|
|
49
49
|
const createPlayer = definePlayer({
|
|
@@ -63,7 +63,7 @@ if (!app) throw new Error("Root element not found");
|
|
|
63
63
|
initShell(actor, app, inspector);
|
|
64
64
|
```
|
|
65
65
|
|
|
66
|
-
```ts
|
|
66
|
+
```ts fragment
|
|
67
67
|
// src/components/Shell.ts (shape)
|
|
68
68
|
const registryResult = defineRegistry(authCatalog, {
|
|
69
69
|
components: demoComponents, // one shared map — Home…NavBar plus the 0.20 Panel/Field/Button leaves
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
function createAuthActionHandlers(actor): object;
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
Defined in: [packages/play-actor/examples/shared/src/actions.ts:48](https://gitlab.com/xmachin-es/xmachines-js/-/blob/
|
|
9
|
+
Defined in: [packages/play-actor/examples/shared/src/actions.ts:48](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v7.0.0/packages/play-actor/examples/shared/src/actions.ts#L48)
|
|
10
10
|
|
|
11
11
|
Build the demo action handler map for one actor.
|
|
12
12
|
|
|
@@ -25,11 +25,11 @@ framework's `defineRegistry` accepts; spread the result into its `actions`.
|
|
|
25
25
|
|
|
26
26
|
| Name | Type | Defined in |
|
|
27
27
|
| ---------------- | ------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
|
28
|
-
| `addTask()` | (`params?`) => `Promise`\<`void`\> | [packages/play-actor/examples/shared/src/actions.ts:65](https://gitlab.com/xmachin-es/xmachines-js/-/blob/
|
|
29
|
-
| `completeTask()` | (`params`, `_setState`, `state`) => `Promise`\<`void`\> | [packages/play-actor/examples/shared/src/actions.ts:72](https://gitlab.com/xmachin-es/xmachines-js/-/blob/
|
|
30
|
-
| `login()` | (`params?`) => `Promise`\<`void`\> | [packages/play-actor/examples/shared/src/actions.ts:50](https://gitlab.com/xmachin-es/xmachines-js/-/blob/
|
|
31
|
-
| `logout()` | () => `Promise`\<`void`\> | [packages/play-actor/examples/shared/src/actions.ts:54](https://gitlab.com/xmachin-es/xmachines-js/-/blob/
|
|
32
|
-
| `removeTask()` | (`params`, `_setState`, `state`) => `Promise`\<`void`\> | [packages/play-actor/examples/shared/src/actions.ts:81](https://gitlab.com/xmachin-es/xmachines-js/-/blob/
|
|
33
|
-
| `resetForm()` | (`params`, `setState`) => `Promise`\<`void`\> | [packages/play-actor/examples/shared/src/actions.ts:99](https://gitlab.com/xmachin-es/xmachines-js/-/blob/
|
|
34
|
-
| `route()` | (`params?`) => `Promise`\<`void`\> | [packages/play-actor/examples/shared/src/actions.ts:55](https://gitlab.com/xmachin-es/xmachines-js/-/blob/
|
|
35
|
-
| `submitForm()` | (`params?`) => `Promise`\<`void`\> | [packages/play-actor/examples/shared/src/actions.ts:92](https://gitlab.com/xmachin-es/xmachines-js/-/blob/
|
|
28
|
+
| `addTask()` | (`params?`) => `Promise`\<`void`\> | [packages/play-actor/examples/shared/src/actions.ts:65](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v7.0.0/packages/play-actor/examples/shared/src/actions.ts#L65) |
|
|
29
|
+
| `completeTask()` | (`params`, `_setState`, `state`) => `Promise`\<`void`\> | [packages/play-actor/examples/shared/src/actions.ts:72](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v7.0.0/packages/play-actor/examples/shared/src/actions.ts#L72) |
|
|
30
|
+
| `login()` | (`params?`) => `Promise`\<`void`\> | [packages/play-actor/examples/shared/src/actions.ts:50](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v7.0.0/packages/play-actor/examples/shared/src/actions.ts#L50) |
|
|
31
|
+
| `logout()` | () => `Promise`\<`void`\> | [packages/play-actor/examples/shared/src/actions.ts:54](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v7.0.0/packages/play-actor/examples/shared/src/actions.ts#L54) |
|
|
32
|
+
| `removeTask()` | (`params`, `_setState`, `state`) => `Promise`\<`void`\> | [packages/play-actor/examples/shared/src/actions.ts:81](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v7.0.0/packages/play-actor/examples/shared/src/actions.ts#L81) |
|
|
33
|
+
| `resetForm()` | (`params`, `setState`) => `Promise`\<`void`\> | [packages/play-actor/examples/shared/src/actions.ts:99](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v7.0.0/packages/play-actor/examples/shared/src/actions.ts#L99) |
|
|
34
|
+
| `route()` | (`params?`) => `Promise`\<`void`\> | [packages/play-actor/examples/shared/src/actions.ts:55](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v7.0.0/packages/play-actor/examples/shared/src/actions.ts#L55) |
|
|
35
|
+
| `submitForm()` | (`params?`) => `Promise`\<`void`\> | [packages/play-actor/examples/shared/src/actions.ts:92](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v7.0.0/packages/play-actor/examples/shared/src/actions.ts#L92) |
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
function createConfirmDialog(confirm): Promise<boolean>;
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
Defined in: [packages/play-dom/examples/demo/src/components/ConfirmDialog.ts:12](https://gitlab.com/xmachin-es/xmachines-js/-/blob/
|
|
9
|
+
Defined in: [packages/play-dom/examples/demo/src/components/ConfirmDialog.ts:12](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v7.0.0/packages/play-dom/examples/demo/src/components/ConfirmDialog.ts#L12)
|
|
10
10
|
|
|
11
11
|
ConfirmDialog — the DOM demo's onConfirm implementation.
|
|
12
12
|
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
function createNavBar(actor, container): () => void;
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
Defined in: [packages/play-dom/examples/demo/src/components/NavBar.ts:9](https://gitlab.com/xmachin-es/xmachines-js/-/blob/
|
|
9
|
+
Defined in: [packages/play-dom/examples/demo/src/components/NavBar.ts:9](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v7.0.0/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 watchAtom, and updates button
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
function initShell(actor, appElement, inspector): () => void;
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
Defined in: [packages/play-dom/examples/demo/src/components/Shell.ts:18](https://gitlab.com/xmachin-es/xmachines-js/-/blob/
|
|
9
|
+
Defined in: [packages/play-dom/examples/demo/src/components/Shell.ts:18](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v7.0.0/packages/play-dom/examples/demo/src/components/Shell.ts#L18)
|
|
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: [packages/play-dom/examples/demo/src/catalog.ts:6](https://gitlab.com/xmachin-es/xmachines-js/-/blob/
|
|
9
|
+
Defined in: [packages/play-dom/examples/demo/src/catalog.ts:6](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v7.0.0/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: [packages/play-dom/examples/demo/src/components/About.ts:8](https://gitlab.com/xmachin-es/xmachines-js/-/blob/
|
|
9
|
+
Defined in: [packages/play-dom/examples/demo/src/components/About.ts:8](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v7.0.0/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 Button: ComponentFn<AuthCatalog, "Button">;
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
Defined in: [packages/play-dom/examples/demo/src/components/Button.ts:8](https://gitlab.com/xmachin-es/xmachines-js/-/blob/
|
|
9
|
+
Defined in: [packages/play-dom/examples/demo/src/components/Button.ts:8](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v7.0.0/packages/play-dom/examples/demo/src/components/Button.ts#L8)
|
|
10
10
|
|
|
11
11
|
Button — emits `press`; the spec's `on.press` binding decides what happens
|
|
12
12
|
(a host action sending a machine event, or a built-in like setState).
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
const Contact: ComponentFn<AuthCatalog, "Contact">;
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
Defined in: [packages/play-dom/examples/demo/src/components/Contact.ts:8](https://gitlab.com/xmachin-es/xmachines-js/-/blob/
|
|
9
|
+
Defined in: [packages/play-dom/examples/demo/src/components/Contact.ts:8](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v7.0.0/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: [packages/play-dom/examples/demo/src/components/Dashboard.ts:9](https://gitlab.com/xmachin-es/xmachines-js/-/blob/
|
|
9
|
+
Defined in: [packages/play-dom/examples/demo/src/components/Dashboard.ts:9](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v7.0.0/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 Field: ComponentFn<AuthCatalog, "Field">;
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
Defined in: [packages/play-dom/examples/demo/src/components/Field.ts:15](https://gitlab.com/xmachin-es/xmachines-js/-/blob/
|
|
9
|
+
Defined in: [packages/play-dom/examples/demo/src/components/Field.ts:15](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v7.0.0/packages/play-dom/examples/demo/src/components/Field.ts#L15)
|
|
10
10
|
|
|
11
11
|
Field — labelled input with two-way $bindState binding and declarative
|
|
12
12
|
validation checks.
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
const Home: ComponentFn<AuthCatalog, "Home">;
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
Defined in: [packages/play-dom/examples/demo/src/components/Home.ts:9](https://gitlab.com/xmachin-es/xmachines-js/-/blob/
|
|
9
|
+
Defined in: [packages/play-dom/examples/demo/src/components/Home.ts:9](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v7.0.0/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: [packages/play-dom/examples/demo/src/components/Login.ts:9](https://gitlab.com/xmachin-es/xmachines-js/-/blob/
|
|
9
|
+
Defined in: [packages/play-dom/examples/demo/src/components/Login.ts:9](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v7.0.0/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: [packages/play-dom/examples/demo/src/components/NavBarView.ts:12](https://gitlab.com/xmachin-es/xmachines-js/-/blob/
|
|
9
|
+
Defined in: [packages/play-dom/examples/demo/src/components/NavBarView.ts:12](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v7.0.0/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: [packages/play-dom/examples/demo/src/components/Navigation.ts:9](https://gitlab.com/xmachin-es/xmachines-js/-/blob/
|
|
9
|
+
Defined in: [packages/play-dom/examples/demo/src/components/Navigation.ts:9](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v7.0.0/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: [packages/play-dom/examples/demo/src/components/Overview.ts:9](https://gitlab.com/xmachin-es/xmachines-js/-/blob/
|
|
9
|
+
Defined in: [packages/play-dom/examples/demo/src/components/Overview.ts:9](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v7.0.0/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
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
const Panel: ComponentFn<AuthCatalog, "Panel">;
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
Defined in: [packages/play-dom/examples/demo/src/components/Panel.ts:10](https://gitlab.com/xmachin-es/xmachines-js/-/blob/
|
|
9
|
+
Defined in: [packages/play-dom/examples/demo/src/components/Panel.ts:10](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v7.0.0/packages/play-dom/examples/demo/src/components/Panel.ts#L10)
|
|
10
10
|
|
|
11
11
|
Panel — generic container leaf for the 0.20 showcase.
|
|
12
12
|
Renders an optional title and note, then appends its rendered spec
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
const Profile: ComponentFn<AuthCatalog, "Profile">;
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
Defined in: [packages/play-dom/examples/demo/src/components/Profile.ts:9](https://gitlab.com/xmachin-es/xmachines-js/-/blob/
|
|
9
|
+
Defined in: [packages/play-dom/examples/demo/src/components/Profile.ts:9](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v7.0.0/packages/play-dom/examples/demo/src/components/Profile.ts#L9)
|
|
10
10
|
|
|
11
11
|
Profile — Protected user profile page. Catalog-typed DOM component
|
|
12
12
|
(ComponentFn<AuthCatalog, 'Profile'>). Renders username from route params
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
const Settings: ComponentFn<AuthCatalog, "Settings">;
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
Defined in: [packages/play-dom/examples/demo/src/components/Settings.ts:9](https://gitlab.com/xmachin-es/xmachines-js/-/blob/
|
|
9
|
+
Defined in: [packages/play-dom/examples/demo/src/components/Settings.ts:9](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v7.0.0/packages/play-dom/examples/demo/src/components/Settings.ts#L9)
|
|
10
10
|
|
|
11
11
|
Settings — Protected settings page. Catalog-typed DOM component
|
|
12
12
|
(ComponentFn<AuthCatalog, 'Settings'>). Renders active section and username
|