@xmachines/docs 4.0.0 → 5.0.1
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 +8 -6
- package/api/@xmachines/play/README.md +21 -21
- 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/README.md +2 -2
- package/api/@xmachines/play/index/functions/asCleanup.md +4 -5
- package/api/@xmachines/play/index/functions/assertNonNullable.md +1 -1
- package/api/@xmachines/play/index/functions/shallowEqualExcept.md +1 -1
- package/api/@xmachines/play/index/type-aliases/Cleanup.md +3 -3
- package/api/@xmachines/play/index/type-aliases/DisposeKey.md +1 -1
- package/api/@xmachines/play/index/type-aliases/PlayEvent.md +2 -2
- package/api/@xmachines/play/index/variables/DISPOSE.md +1 -1
- package/api/@xmachines/play-actor/README.md +9 -9
- package/api/@xmachines/play-actor/interfaces/ActorEvent.md +2 -2
- package/api/@xmachines/play-actor/interfaces/PlayActor.md +6 -6
- package/api/@xmachines/play-atom/README.md +281 -0
- package/api/@xmachines/play-atom/functions/watchAtom.md +79 -0
- package/api/@xmachines/play-atom/interfaces/AsyncAtomOptions.md +16 -0
- package/api/@xmachines/play-atom/interfaces/Atom.md +149 -0
- package/api/@xmachines/play-atom/interfaces/AtomObserver.md +25 -0
- package/api/@xmachines/play-atom/interfaces/AtomOptions.md +33 -0
- package/api/@xmachines/play-atom/interfaces/AtomSubscription.md +23 -0
- package/api/@xmachines/play-atom/interfaces/BaseAtom.md +97 -0
- package/api/@xmachines/play-atom/interfaces/CreateAtom.md +91 -0
- package/api/@xmachines/play-atom/interfaces/Readable.md +93 -0
- package/api/@xmachines/play-atom/interfaces/ReadonlyAtom.md +108 -0
- package/api/@xmachines/play-atom/type-aliases/AnyAtom.md +13 -0
- package/api/@xmachines/play-atom/type-aliases/AsyncAtomState.md +32 -0
- package/api/@xmachines/{play-signals → play-atom}/type-aliases/Cleanup.md +4 -4
- package/api/@xmachines/play-atom/variables/createAsyncAtom.md +42 -0
- package/api/@xmachines/play-atom/variables/createAtom.md +18 -0
- package/api/@xmachines/play-atom/variables/createWritableAtom.md +70 -0
- package/api/@xmachines/play-dom/README.md +21 -17
- package/api/@xmachines/play-dom/classes/PlayRenderer.md +10 -10
- package/api/@xmachines/play-dom/functions/asCleanup.md +4 -5
- package/api/@xmachines/play-dom/functions/createPlayUI.md +1 -1
- package/api/@xmachines/play-dom/functions/createRenderer.md +1 -1
- package/api/@xmachines/play-dom/interfaces/CreatePlayUIOptions.md +3 -3
- package/api/@xmachines/play-dom/interfaces/MountOptions.md +3 -3
- package/api/@xmachines/play-dom/interfaces/PlayDomOptions.md +6 -6
- package/api/@xmachines/play-dom/type-aliases/Cleanup.md +3 -3
- package/api/@xmachines/play-dom/type-aliases/MountFn.md +1 -1
- package/api/@xmachines/play-dom-router/README.md +24 -24
- package/api/@xmachines/play-dom-router/classes/DomRouterBridge.md +15 -15
- package/api/@xmachines/play-dom-router/classes/RouteMap.md +11 -11
- package/api/@xmachines/play-dom-router/functions/asCleanup.md +4 -5
- 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 -7
- package/api/@xmachines/play-dom-router/interfaces/BrowserHistory.md +15 -15
- package/api/@xmachines/play-dom-router/interfaces/BrowserWindow.md +14 -14
- package/api/@xmachines/play-dom-router/interfaces/ConnectRouterOptions.md +11 -9
- package/api/@xmachines/play-dom-router/interfaces/PlayRouteEvent.md +7 -7
- package/api/@xmachines/play-dom-router/interfaces/RoutableActor.md +6 -6
- package/api/@xmachines/play-dom-router/interfaces/RouteLookupContract.md +3 -3
- package/api/@xmachines/play-dom-router/interfaces/RouteMapOptions.md +10 -4
- package/api/@xmachines/play-dom-router/interfaces/RouteMapping.md +3 -3
- package/api/@xmachines/play-dom-router/interfaces/RouterBridge.md +15 -17
- package/api/@xmachines/play-dom-router/interfaces/RouterConnection.md +7 -7
- package/api/@xmachines/play-dom-router/interfaces/VanillaRouter.md +5 -5
- package/api/@xmachines/play-dom-router/type-aliases/Cleanup.md +3 -3
- package/api/@xmachines/play-dom-router/variables/DISPOSE.md +1 -1
- package/api/@xmachines/play-pattern/README.md +115 -0
- package/api/@xmachines/play-pattern/functions/buildPath.md +46 -0
- package/api/@xmachines/play-pattern/functions/createPatternCache.md +47 -0
- package/api/@xmachines/play-pattern/functions/getIndexKey.md +30 -0
- package/api/@xmachines/play-pattern/functions/isDotSegment.md +40 -0
- package/api/@xmachines/play-pattern/functions/parsePattern.md +28 -0
- package/api/@xmachines/play-pattern/interfaces/GroupPart.md +15 -0
- package/api/@xmachines/play-pattern/interfaces/LiteralPart.md +14 -0
- package/api/@xmachines/play-pattern/interfaces/ParamPart.md +21 -0
- package/api/@xmachines/play-pattern/interfaces/ParseOptions.md +19 -0
- package/api/@xmachines/play-pattern/interfaces/ParsedPattern.md +23 -0
- package/api/@xmachines/play-pattern/interfaces/PatternCache.md +65 -0
- package/api/@xmachines/play-pattern/interfaces/PatternParam.md +15 -0
- package/api/@xmachines/play-pattern/type-aliases/PathBuildResult.md +74 -0
- package/api/@xmachines/play-pattern/type-aliases/PathParams.md +15 -0
- package/api/@xmachines/play-pattern/type-aliases/PatternModifier.md +11 -0
- package/api/@xmachines/play-pattern/type-aliases/PatternPart.md +9 -0
- package/api/@xmachines/play-react/README.md +31 -21
- package/api/@xmachines/play-react/classes/PlayErrorBoundary.md +6 -6
- package/api/@xmachines/play-react/functions/useActor.md +1 -1
- package/api/@xmachines/play-react/functions/useAtomEffect.md +103 -0
- package/api/@xmachines/play-react/functions/usePlayView.md +1 -1
- package/api/@xmachines/play-react/interfaces/ActorProviderProps.md +8 -8
- 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 +8 -8
- 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/variables/ActorProvider.md +2 -2
- 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 +3 -3
- package/api/@xmachines/play-react-router/classes/ReactRouterBridge.md +15 -15
- package/api/@xmachines/play-react-router/classes/RouteMap.md +11 -11
- package/api/@xmachines/play-react-router/functions/createPlayRouterProvider.md +1 -1
- package/api/@xmachines/play-react-router/functions/createRouteMapFromTree.md +5 -5
- package/api/@xmachines/play-react-router/interfaces/PlayRouteEvent.md +7 -7
- package/api/@xmachines/play-react-router/interfaces/PlayRouterProviderProps.md +11 -9
- package/api/@xmachines/play-react-router/interfaces/RoutableActor.md +6 -6
- package/api/@xmachines/play-react-router/interfaces/RouteMapOptions.md +10 -4
- package/api/@xmachines/play-react-router/interfaces/RouteMapping.md +3 -3
- package/api/@xmachines/play-react-router/interfaces/RouterBridge.md +15 -17
- package/api/@xmachines/play-react-router/type-aliases/PlayRouterBridgeConstructor.md +14 -7
- 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 +25 -14
- 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/README.md +10 -2
- package/api/@xmachines/play-router/index/classes/RouteMap.md +11 -11
- package/api/@xmachines/play-router/index/classes/RouterBridgeBase.md +10 -10
- 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/createPatternCache.md +47 -0
- package/api/@xmachines/play-router/index/functions/createRouteMapFromTree.md +5 -5
- 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 +7 -6
- package/api/@xmachines/play-router/index/functions/findRouteById.md +1 -1
- package/api/@xmachines/play-router/index/functions/findRouteByPath.md +13 -6
- package/api/@xmachines/play-router/index/functions/isMountableBridge.md +1 -1
- package/api/@xmachines/play-router/index/functions/joinBasePath.md +2 -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 +28 -0
- 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 +5 -5
- package/api/@xmachines/play-router/index/functions/sanitizePathname.md +9 -24
- package/api/@xmachines/play-router/index/functions/splitLocation.md +37 -0
- 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 +4 -4
- package/api/@xmachines/play-router/index/interfaces/BuildPlayRouteEventOptions.md +4 -4
- package/api/@xmachines/play-router/index/interfaces/CompileOptions.md +35 -0
- package/api/@xmachines/play-router/index/interfaces/FrameworkParamsSource.md +13 -8
- package/api/@xmachines/play-router/index/interfaces/LocationLike.md +3 -3
- package/api/@xmachines/play-router/index/interfaces/MountableRouterBridge.md +9 -9
- package/api/@xmachines/play-router/index/interfaces/OpenProviderBridgeArgs.md +11 -9
- package/api/@xmachines/play-router/index/interfaces/ParseOptions.md +24 -0
- package/api/@xmachines/play-router/index/interfaces/ParsedPattern.md +23 -0
- package/api/@xmachines/play-router/index/interfaces/PatternCache.md +65 -0
- package/api/@xmachines/play-router/index/interfaces/PlayRouteEvent.md +7 -7
- package/api/@xmachines/play-router/index/interfaces/PlayRouterProviderBaseProps.md +15 -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 +5 -5
- package/api/@xmachines/play-router/index/interfaces/RoutableActor.md +6 -6
- package/api/@xmachines/play-router/index/interfaces/RouteInfo.md +8 -8
- package/api/@xmachines/play-router/index/interfaces/RouteMapOptions.md +10 -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 +11 -11
- package/api/@xmachines/play-router/index/interfaces/RouterBridge.md +15 -17
- package/api/@xmachines/play-router/index/interfaces/RouterBridgeOptions.md +31 -0
- package/api/@xmachines/play-router/index/interfaces/RouterConnection.md +7 -7
- package/api/@xmachines/play-router/index/interfaces/SplitLocation.md +16 -0
- package/api/@xmachines/play-router/index/interfaces/WindowLike.md +3 -3
- package/api/@xmachines/play-router/index/type-aliases/PlayRouterBridgeConstructor.md +14 -7
- 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 +68 -0
- package/api/@xmachines/play-router/index/variables/DISPOSE.md +1 -1
- 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 +5 -5
- package/api/@xmachines/play-router/xstate/functions/extractMachineRoutes.md +6 -5
- 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 +9 -5
- package/api/@xmachines/play-solid/functions/useActor.md +1 -1
- package/api/@xmachines/play-solid/functions/usePlayView.md +1 -1
- package/api/@xmachines/play-solid/interfaces/ActorProviderProps.md +8 -8
- package/api/@xmachines/play-solid/interfaces/PlayUIProviderProps.md +8 -8
- 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/variables/ActorContext.md +1 -1
- package/api/@xmachines/play-solid/variables/ActorProvider.md +2 -2
- 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 +14 -14
- package/api/@xmachines/play-solid-router/classes/RouteMap.md +11 -11
- package/api/@xmachines/play-solid-router/classes/SolidRouterBridge.md +18 -18
- package/api/@xmachines/play-solid-router/functions/createPlayRouterProvider.md +1 -1
- package/api/@xmachines/play-solid-router/interfaces/PlayActor.md +6 -6
- package/api/@xmachines/play-solid-router/interfaces/PlayRouteEvent.md +7 -7
- package/api/@xmachines/play-solid-router/interfaces/PlayRouterProviderProps.md +11 -9
- package/api/@xmachines/play-solid-router/interfaces/RoutableActor.md +6 -6
- package/api/@xmachines/play-solid-router/interfaces/RouteMapOptions.md +10 -4
- package/api/@xmachines/play-solid-router/interfaces/RouteMapping.md +3 -3
- package/api/@xmachines/play-solid-router/interfaces/RouterBridge.md +15 -17
- package/api/@xmachines/play-solid-router/type-aliases/PlayRouterBridgeConstructor.md +14 -7
- 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 +11 -7
- package/api/@xmachines/play-svelte/functions/defineRegistry.md +1 -1
- 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 +8 -8
- package/api/@xmachines/play-svelte/interfaces/DefineRegistryOptions.md +4 -4
- package/api/@xmachines/play-svelte/interfaces/PlayUIProviderProps.md +11 -11
- 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-spa-router/README.md +14 -14
- package/api/@xmachines/play-svelte-spa-router/classes/RouteMap.md +11 -11
- package/api/@xmachines/play-svelte-spa-router/classes/SvelteSpaRouterBridge.md +15 -15
- package/api/@xmachines/play-svelte-spa-router/functions/connectRouter.md +1 -1
- package/api/@xmachines/play-svelte-spa-router/interfaces/BasePathOptions.md +3 -7
- package/api/@xmachines/play-svelte-spa-router/interfaces/ConnectRouterOptions.md +11 -9
- package/api/@xmachines/play-svelte-spa-router/interfaces/PlayRouteEvent.md +7 -7
- package/api/@xmachines/play-svelte-spa-router/interfaces/RoutableActor.md +6 -6
- package/api/@xmachines/play-svelte-spa-router/interfaces/RouteMapOptions.md +10 -4
- package/api/@xmachines/play-svelte-spa-router/interfaces/RouteMapping.md +3 -3
- package/api/@xmachines/play-svelte-spa-router/interfaces/RouterBridge.md +15 -17
- package/api/@xmachines/play-svelte-spa-router/interfaces/RouterConnection.md +7 -7
- package/api/@xmachines/play-svelte-spa-router/interfaces/WindowLike.md +3 -3
- package/api/@xmachines/play-sveltekit-router/README.md +17 -17
- package/api/@xmachines/play-sveltekit-router/classes/RouteMap.md +11 -11
- package/api/@xmachines/play-sveltekit-router/classes/SvelteKitRouterBridge.md +15 -15
- package/api/@xmachines/play-sveltekit-router/functions/connectRouter.md +1 -1
- package/api/@xmachines/play-sveltekit-router/interfaces/BasePathOptions.md +3 -7
- package/api/@xmachines/play-sveltekit-router/interfaces/ConnectRouterOptions.md +15 -23
- 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 +6 -6
- package/api/@xmachines/play-sveltekit-router/interfaces/RouteMapOptions.md +10 -4
- package/api/@xmachines/play-sveltekit-router/interfaces/RouteMapping.md +3 -3
- package/api/@xmachines/play-sveltekit-router/interfaces/RouterBridge.md +15 -17
- package/api/@xmachines/play-sveltekit-router/interfaces/RouterConnection.md +7 -7
- package/api/@xmachines/play-tanstack-react-router/README.md +7 -7
- package/api/@xmachines/play-tanstack-react-router/classes/RouteMap.md +11 -11
- package/api/@xmachines/play-tanstack-react-router/classes/TanStackReactRouterBridge.md +11 -11
- package/api/@xmachines/play-tanstack-react-router/functions/createPlayRouterProvider.md +1 -1
- package/api/@xmachines/play-tanstack-react-router/functions/createRouteMapFromTree.md +5 -5
- package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouteEvent.md +7 -7
- package/api/@xmachines/play-tanstack-react-router/interfaces/PlayRouterProviderProps.md +11 -9
- package/api/@xmachines/play-tanstack-react-router/interfaces/RoutableActor.md +6 -6
- package/api/@xmachines/play-tanstack-react-router/interfaces/RouteMapOptions.md +10 -4
- package/api/@xmachines/play-tanstack-react-router/interfaces/RouteMapping.md +3 -3
- package/api/@xmachines/play-tanstack-react-router/interfaces/RouterBridge.md +15 -17
- package/api/@xmachines/play-tanstack-react-router/type-aliases/PlayRouterBridgeConstructor.md +14 -7
- 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 +1 -1
- package/api/@xmachines/play-tanstack-router/classes/TanStackRouterBridgeBase.md +16 -16
- 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 +7 -7
- package/api/@xmachines/play-tanstack-solid-router/classes/RouteMap.md +11 -11
- package/api/@xmachines/play-tanstack-solid-router/classes/TanStackSolidRouterBridge.md +11 -11
- 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 +11 -9
- package/api/@xmachines/play-tanstack-solid-router/interfaces/RoutableActor.md +6 -6
- package/api/@xmachines/play-tanstack-solid-router/interfaces/RouteMapOptions.md +10 -4
- package/api/@xmachines/play-tanstack-solid-router/interfaces/RouteMapping.md +3 -3
- package/api/@xmachines/play-tanstack-solid-router/interfaces/RouterBridge.md +15 -17
- package/api/@xmachines/play-tanstack-solid-router/type-aliases/PlayRouterBridgeConstructor.md +14 -7
- 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 +21 -15
- 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/README.md +15 -8
- package/api/@xmachines/play-url/index/functions/buildPath.md +46 -0
- package/api/@xmachines/play-url/index/functions/cleanFrameworkParams.md +1 -1
- package/api/@xmachines/play-url/index/functions/createPatternCache.md +47 -0
- package/api/@xmachines/play-url/index/functions/getCandidates.md +1 -1
- package/api/@xmachines/play-url/index/functions/getCompiledPattern.md +8 -7
- package/api/@xmachines/play-url/index/functions/getIndexKey.md +1 -1
- package/api/@xmachines/play-url/index/functions/holdsUnsubstitutedParam.md +2 -2
- package/api/@xmachines/play-url/index/functions/isDotSegment.md +40 -0
- package/api/@xmachines/play-url/index/functions/joinBasePath.md +2 -1
- package/api/@xmachines/play-url/index/functions/normalizeBasePath.md +1 -1
- package/api/@xmachines/play-url/index/functions/parsePattern.md +6 -5
- 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 +5 -5
- package/api/@xmachines/play-url/index/functions/sanitizePathname.md +27 -0
- package/api/@xmachines/play-url/index/functions/splitLocation.md +37 -0
- 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 +21 -0
- package/api/@xmachines/play-url/index/interfaces/FrameworkParamsSource.md +13 -8
- package/api/@xmachines/play-url/index/interfaces/GroupPart.md +6 -6
- package/api/@xmachines/play-url/index/interfaces/LiteralPart.md +5 -5
- package/api/@xmachines/play-url/index/interfaces/ParamPart.md +9 -9
- package/api/@xmachines/play-url/index/interfaces/ParseOptions.md +24 -0
- package/api/@xmachines/play-url/index/interfaces/ParsedPattern.md +14 -14
- package/api/@xmachines/play-url/index/interfaces/PatternCache.md +65 -0
- package/api/@xmachines/play-url/index/interfaces/PatternParam.md +6 -6
- package/api/@xmachines/play-url/index/interfaces/ResolvedBasePath.md +3 -3
- package/api/@xmachines/play-url/index/interfaces/SplitLocation.md +16 -0
- package/api/@xmachines/play-url/index/type-aliases/PathBuildResult.md +74 -0
- package/api/@xmachines/play-url/index/type-aliases/PathParams.md +15 -0
- 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 +19 -8
- package/api/@xmachines/play-view/errors/classes/ReadOnlyContextError.md +5 -5
- package/api/@xmachines/play-view/index/functions/attachRenderErrorHandler.md +1 -1
- package/api/@xmachines/play-view/index/functions/composePlayState.md +1 -1
- package/api/@xmachines/play-view/index/functions/createFailureLatch.md +1 -1
- package/api/@xmachines/play-view/index/functions/createReportGuard.md +1 -1
- package/api/@xmachines/play-view/index/functions/createViewStoreLifecycle.md +1 -1
- package/api/@xmachines/play-view/index/functions/guardContextWrites.md +4 -28
- 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/sameViewInputs.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 +5 -5
- package/api/@xmachines/play-view/index/interfaces/BaseViewContextValue.md +5 -5
- package/api/@xmachines/play-view/index/interfaces/FailureLatch.md +3 -3
- package/api/@xmachines/play-view/index/interfaces/PlaySpec.md +2 -2
- package/api/@xmachines/play-view/index/interfaces/ReportGuard.md +5 -5
- package/api/@xmachines/play-view/index/interfaces/ReportGuardMessages.md +3 -3
- package/api/@xmachines/play-view/index/interfaces/ResolveViewStoreOptions.md +2 -2
- package/api/@xmachines/play-view/index/interfaces/ViewInputs.md +4 -4
- package/api/@xmachines/play-view/index/interfaces/ViewStoreLifecycle.md +3 -3
- package/api/@xmachines/play-view/index/interfaces/ViewStoreResolution.md +4 -4
- package/api/@xmachines/play-view/index/interfaces/Viewable.md +5 -5
- 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 +13 -9
- 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/usePlayView.md +1 -1
- package/api/@xmachines/play-vue/interfaces/ActorProviderProps.md +6 -6
- package/api/@xmachines/play-vue/interfaces/PlayUIProviderProps.md +9 -9
- 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/variables/PlayRenderer.md +1 -1
- package/api/@xmachines/play-vue-router/README.md +12 -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 +11 -11
- package/api/@xmachines/play-vue-router/index/classes/VueRouterBridge.md +15 -15
- package/api/@xmachines/play-vue-router/index/interfaces/PlayRouteEvent.md +7 -7
- package/api/@xmachines/play-vue-router/index/interfaces/RoutableActor.md +6 -6
- package/api/@xmachines/play-vue-router/index/interfaces/RouteMapOptions.md +10 -4
- package/api/@xmachines/play-vue-router/index/interfaces/RouteMapping.md +3 -3
- package/api/@xmachines/play-vue-router/index/interfaces/RouterBridge.md +15 -17
- package/api/@xmachines/play-vue-router/index/variables/PlayRouterProvider.md +23 -1
- package/api/@xmachines/play-xstate/README.md +61 -30
- package/api/@xmachines/play-xstate/errors/README.md +1 -0
- 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 +207 -0
- 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/README.md +2 -2
- package/api/@xmachines/play-xstate/index/classes/PlayerActor.md +41 -42
- 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 +9 -9
- 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/index/variables/DISPOSE.md +1 -1
- package/api/@xmachines/play-xstate/with-routing/functions/buildRouteUrl.md +13 -6
- 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 +6 -5
- package/api/@xmachines/shared/vite-aliases/functions/xmAliases.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/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/api/README.md +2 -1
- package/api/llms.txt +4 -3
- package/contributing/architecture.md +105 -124
- package/contributing/configuration.md +15 -15
- package/contributing/deployment.md +82 -6
- package/contributing/development.md +58 -30
- package/contributing/migrating-to-play-atom.md +209 -0
- package/contributing/testing.md +61 -64
- package/examples/@xmachines/play-dom-demo/README.md +40 -63
- package/examples/@xmachines/play-dom-demo/functions/createAuthActionHandlers.md +35 -0
- package/examples/@xmachines/play-dom-demo/functions/createConfirmDialog.md +27 -0
- package/examples/@xmachines/play-dom-demo/functions/createNavBar.md +2 -2
- package/examples/@xmachines/play-dom-demo/functions/initShell.md +7 -6
- 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 +12 -0
- 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 +19 -0
- 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 +14 -0
- 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 +190 -165
- package/examples/@xmachines/play-dom-demo/variables/demoComponents.md +30 -0
- package/examples/@xmachines/play-dom-router-demo/README.md +20 -27
- package/examples/@xmachines/play-react-demo/README.md +33 -57
- package/examples/@xmachines/play-react-demo/functions/createAuthActionHandlers.md +35 -0
- 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 +12 -0
- 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 +4 -3
- package/examples/@xmachines/play-react-demo/variables/Field.md +18 -0
- 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 +15 -0
- 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 +2 -1
- package/examples/@xmachines/play-react-demo/variables/Stats.md +1 -1
- package/examples/@xmachines/play-react-demo/variables/authCatalog.md +190 -165
- package/examples/@xmachines/play-react-demo/variables/demoComponents.md +30 -0
- package/examples/@xmachines/play-react-router-demo/README.md +32 -32
- package/examples/@xmachines/play-solid-demo/README.md +33 -57
- package/examples/@xmachines/play-solid-demo/functions/createAuthActionHandlers.md +35 -0
- 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 +11 -0
- 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 +5 -3
- package/examples/@xmachines/play-solid-demo/variables/Field.md +11 -0
- 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 +11 -0
- 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 +2 -1
- package/examples/@xmachines/play-solid-demo/variables/Stats.md +1 -1
- package/examples/@xmachines/play-solid-demo/variables/authCatalog.md +114 -2
- package/examples/@xmachines/play-solid-demo/variables/demoComponents.md +30 -0
- package/examples/@xmachines/play-solid-router-demo/README.md +20 -23
- package/examples/@xmachines/play-svelte-demo/README.md +38 -44
- package/examples/@xmachines/play-svelte-demo/functions/createAuthActionHandlers.md +35 -0
- package/examples/@xmachines/play-svelte-demo/type-aliases/AuthCatalog.md +1 -1
- package/examples/@xmachines/play-svelte-demo/variables/authCatalog.md +114 -2
- package/examples/@xmachines/play-svelte-demo/variables/demoComponents.md +30 -0
- package/examples/@xmachines/play-svelte-spa-router-demo/README.md +20 -26
- package/examples/@xmachines/play-sveltekit-router-demo/README.md +20 -26
- package/examples/@xmachines/play-tanstack-react-router-demo/README.md +29 -31
- package/examples/@xmachines/play-tanstack-solid-router-demo/README.md +25 -27
- package/examples/@xmachines/play-vue-demo/README.md +36 -60
- package/examples/@xmachines/play-vue-demo/functions/createAuthActionHandlers.md +35 -0
- 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 +114 -2
- package/examples/@xmachines/play-vue-demo/variables/demoComponents.md +11 -0
- package/examples/@xmachines/play-vue-router-demo/README.md +12 -23
- package/examples/README.md +3 -3
- package/examples/basic-state-machine.md +4 -4
- package/examples/form-validation.md +1 -1
- package/examples/multi-router-integration.md +23 -23
- package/examples/routing-patterns.md +5 -5
- package/examples/traffic-light.md +6 -6
- package/guides/README.md +1 -1
- package/guides/actor-model.md +26 -17
- package/guides/atoms.md +264 -0
- package/guides/getting-started.md +52 -17
- package/guides/inspector.md +3 -3
- package/guides/routing.md +67 -47
- package/guides/state-machines.md +4 -4
- package/package.json +3 -3
- package/rfc/play.md +83 -52
- package/api/@xmachines/play-react/functions/useSignalEffect.md +0 -77
- package/api/@xmachines/play-router/index/functions/getPatternParamNames.md +0 -29
- package/api/@xmachines/play-router/index/functions/getRequiredPatternParamNames.md +0 -39
- package/api/@xmachines/play-signals/README.md +0 -209
- package/api/@xmachines/play-signals/functions/watchSignal.md +0 -65
- package/api/@xmachines/play-signals/interfaces/ComputedOptions.md +0 -36
- package/api/@xmachines/play-signals/interfaces/SignalComputed.md +0 -49
- package/api/@xmachines/play-signals/interfaces/SignalOptions.md +0 -37
- package/api/@xmachines/play-signals/interfaces/SignalState.md +0 -68
- package/api/@xmachines/play-signals/interfaces/SignalWatcher.md +0 -97
- package/api/@xmachines/play-signals/namespaces/Signal/README.md +0 -22
- package/api/@xmachines/play-signals/namespaces/Signal/classes/Computed.md +0 -52
- package/api/@xmachines/play-signals/namespaces/Signal/classes/State.md +0 -72
- package/api/@xmachines/play-signals/namespaces/Signal/interfaces/Options.md +0 -19
- package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/README.md +0 -21
- package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/classes/Watcher.md +0 -85
- package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/currentComputed.md +0 -13
- package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/hasSinks.md +0 -19
- package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/hasSources.md +0 -19
- package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/introspectSinks.md +0 -19
- package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/introspectSources.md +0 -19
- package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/functions/untrack.md +0 -25
- package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/variables/unwatched.md +0 -9
- package/api/@xmachines/play-signals/namespaces/Signal/namespaces/subtle/variables/watched.md +0 -9
- package/api/@xmachines/play-signals/namespaces/Signal/variables/isComputed.md +0 -19
- package/api/@xmachines/play-signals/namespaces/Signal/variables/isState.md +0 -19
- package/api/@xmachines/play-signals/namespaces/Signal/variables/isWatcher.md +0 -19
- package/api/@xmachines/play-signals/type-aliases/WatcherNotify.md +0 -33
- package/api/@xmachines/play-url/index/functions/getNormalizedParamNameMap.md +0 -32
- package/api/@xmachines/play-url/index/functions/getPatternParamNames.md +0 -29
- package/api/@xmachines/play-url/index/functions/getRequiredPatternParamNames.md +0 -39
- package/api/@xmachines/play-url/index/functions/isParameterizedPattern.md +0 -36
- package/api/@xmachines/play-url/index/functions/normalizeParamNames.md +0 -36
- package/guides/signals.md +0 -209
|
@@ -1,209 +0,0 @@
|
|
|
1
|
-
[API](../../README.md) / @xmachines/play-signals
|
|
2
|
-
|
|
3
|
-
# @xmachines/play-signals
|
|
4
|
-
|
|
5
|
-
TC39 Signals polyfill for XMachines. It gives the Play Architecture fine-grained reactive state primitives. The primitives propagate state without a glitch and without a subscription.
|
|
6
|
-
|
|
7
|
-
[](https://opensource.org/licenses/MIT) [](https://www.npmjs.com/package/@xmachines/play-signals)
|
|
8
|
-
|
|
9
|
-
## Installation
|
|
10
|
-
|
|
11
|
-
```bash
|
|
12
|
-
pnpm add @xmachines/play-signals
|
|
13
|
-
```
|
|
14
|
-
|
|
15
|
-
## Overview
|
|
16
|
-
|
|
17
|
-
This package wraps the [`signal-polyfill`](https://github.com/nicolo-ribaudo/tc39-proposal-signals-polyfill) reference implementation of the [TC39 Signals proposal](https://github.com/tc39/proposal-signals) (Stage 1). It re-exports the complete `Signal` namespace, and it adds the memory-safe `watchSignal` utility. The wrapper keeps the rest of the code away from a Stage 1 API that can still change.
|
|
18
|
-
|
|
19
|
-
**Import every signal in the XMachines ecosystem from this package**, not from `signal-polyfill`. One import point keeps each polyfill update and each API change in one place.
|
|
20
|
-
|
|
21
|
-
## Usage
|
|
22
|
-
|
|
23
|
-
### `Signal.State` — writable reactive state
|
|
24
|
-
|
|
25
|
-
```typescript
|
|
26
|
-
import { Signal } from "@xmachines/play-signals";
|
|
27
|
-
|
|
28
|
-
const count = new Signal.State(0);
|
|
29
|
-
|
|
30
|
-
console.log(count.get()); // 0
|
|
31
|
-
count.set(5);
|
|
32
|
-
console.log(count.get()); // 5
|
|
33
|
-
```
|
|
34
|
-
|
|
35
|
-
### `Signal.Computed` — lazy memoized derived values
|
|
36
|
-
|
|
37
|
-
```typescript
|
|
38
|
-
import { Signal } from "@xmachines/play-signals";
|
|
39
|
-
|
|
40
|
-
const count = new Signal.State(0);
|
|
41
|
-
const doubled = new Signal.Computed(() => count.get() * 2);
|
|
42
|
-
|
|
43
|
-
console.log(doubled.get()); // 0 (computed on first access)
|
|
44
|
-
count.set(5);
|
|
45
|
-
console.log(doubled.get()); // 10 (recomputed because dependency changed)
|
|
46
|
-
console.log(doubled.get()); // 10 (memoized — no recomputation)
|
|
47
|
-
```
|
|
48
|
-
|
|
49
|
-
A computation tracks each signal that it reads. A dynamic branch is safe: the computation keeps only the signals of the _current_ execution path as its dependencies.
|
|
50
|
-
|
|
51
|
-
### `watchSignal` — memory-safe one-shot effect
|
|
52
|
-
|
|
53
|
-
Use `watchSignal` to subscribe to a `Signal.State` or to a `Signal.Computed`. The callback receives the value after each change. `watchSignal` groups the updates of one synchronous batch into a single microtask.
|
|
54
|
-
|
|
55
|
-
```typescript
|
|
56
|
-
import { Signal, watchSignal } from "@xmachines/play-signals";
|
|
57
|
-
|
|
58
|
-
const count = new Signal.State(0);
|
|
59
|
-
|
|
60
|
-
const cleanup = watchSignal(count, (value) => {
|
|
61
|
-
console.log("count changed:", value);
|
|
62
|
-
});
|
|
63
|
-
|
|
64
|
-
count.set(1); // → logs "count changed: 1" (via microtask)
|
|
65
|
-
count.set(2); // coalesced with any rapid synchronous changes
|
|
66
|
-
count.set(3); // → logs "count changed: 3" once
|
|
67
|
-
|
|
68
|
-
// Stop watching
|
|
69
|
-
cleanup();
|
|
70
|
-
```
|
|
71
|
-
|
|
72
|
-
The cleanup function is idempotent. A second call is safe, and it does not throw.
|
|
73
|
-
|
|
74
|
-
### `Signal.subtle.Watcher` — low-level multi-signal observation
|
|
75
|
-
|
|
76
|
-
Advanced code, such as a framework integration, can use the complete `Signal.subtle.Watcher` API:
|
|
77
|
-
|
|
78
|
-
```typescript
|
|
79
|
-
import { Signal } from "@xmachines/play-signals";
|
|
80
|
-
|
|
81
|
-
const count = new Signal.State(0);
|
|
82
|
-
const doubled = new Signal.Computed(() => count.get() * 2);
|
|
83
|
-
|
|
84
|
-
const watcher = new Signal.subtle.Watcher(() => {
|
|
85
|
-
queueMicrotask(() => {
|
|
86
|
-
const pending = watcher.getPending();
|
|
87
|
-
console.log("signals changed:", pending.length);
|
|
88
|
-
watcher.watch(...pending); // re-arm for future changes
|
|
89
|
-
});
|
|
90
|
-
});
|
|
91
|
-
|
|
92
|
-
watcher.watch(count);
|
|
93
|
-
watcher.watch(doubled);
|
|
94
|
-
|
|
95
|
-
count.set(5); // schedules microtask notification
|
|
96
|
-
```
|
|
97
|
-
|
|
98
|
-
### Custom equality
|
|
99
|
-
|
|
100
|
-
Both `Signal.State` and `Signal.Computed` accept an `equals` option. The option controls when a signal notifies its dependents:
|
|
101
|
-
|
|
102
|
-
```typescript
|
|
103
|
-
import { Signal } from "@xmachines/play-signals";
|
|
104
|
-
import type { SignalOptions } from "@xmachines/play-signals";
|
|
105
|
-
|
|
106
|
-
const options: SignalOptions<{ name: string; age: number }> = {
|
|
107
|
-
equals: (a, b) => a.name === b.name && a.age === b.age,
|
|
108
|
-
};
|
|
109
|
-
|
|
110
|
-
const person = new Signal.State({ name: "Alice", age: 30 }, options);
|
|
111
|
-
// A structurally identical value does not notify the dependents
|
|
112
|
-
person.set({ name: "Alice", age: 30 });
|
|
113
|
-
```
|
|
114
|
-
|
|
115
|
-
## API Summary
|
|
116
|
-
|
|
117
|
-
| Export | Kind | Description |
|
|
118
|
-
| ------------------------------ | --------- | ------------------------------------------------------------------------------------------------------ |
|
|
119
|
-
| `Signal` | namespace | Full TC39 Signals namespace (`State`, `Computed`, `subtle.Watcher`) re-exported from `signal-polyfill` |
|
|
120
|
-
| `watchSignal(signal, onValue)` | function | The memory-safe subscription helper. It returns a `Cleanup` |
|
|
121
|
-
| `SignalState<T>` | interface | Shape of `Signal.State<T>` (`.get()`, `.set()`) |
|
|
122
|
-
| `SignalComputed<T>` | interface | Shape of `Signal.Computed<T>` (`.get()`) |
|
|
123
|
-
| `SignalWatcher` | interface | Shape of `Signal.subtle.Watcher` (`.watch()`, `.unwatch()`, `.getPending()`) |
|
|
124
|
-
| `SignalOptions<T>` | interface | The options object for the `Signal.State` constructor (`equals?`) |
|
|
125
|
-
| `ComputedOptions<T>` | interface | The options object for the `Signal.Computed` constructor (`equals?`) |
|
|
126
|
-
| `WatcherNotify` | type | The callback signature of the `Signal.subtle.Watcher` notify function |
|
|
127
|
-
| `Cleanup` | type | The release that `watchSignal` returns, re-exported from `@xmachines/play` |
|
|
128
|
-
|
|
129
|
-
## Requirements
|
|
130
|
-
|
|
131
|
-
- **Node.js** `>= 24.0.0`
|
|
132
|
-
- **TypeScript** `5.7+` (for a consumer that uses TypeScript)
|
|
133
|
-
|
|
134
|
-
## License
|
|
135
|
-
|
|
136
|
-
MIT — see [LICENSE](LICENSE).
|
|
137
|
-
|
|
138
|
-
The TC39 Signals polyfill of the XMachines Play Architecture
|
|
139
|
-
|
|
140
|
-
This package gives you the fine-grained reactive state primitives of the TC39
|
|
141
|
-
Signals proposal (Stage 1). It keeps the TC39 polyfill in one place, and it
|
|
142
|
-
therefore protects the code from a change of the Stage 1 API.
|
|
143
|
-
|
|
144
|
-
**Architectural context:** the package implements **Signal-Only Reactivity
|
|
145
|
-
(INV-05)**. It gives the reactive primitives that carry the communication from
|
|
146
|
-
the Actor to the infrastructure, without a subscription and without an event
|
|
147
|
-
emitter. Every propagation of state in the Play Architecture uses a TC39 Signal,
|
|
148
|
-
which tracks each dependency and updates without a glitch.
|
|
149
|
-
|
|
150
|
-
## Example
|
|
151
|
-
|
|
152
|
-
The basic use of a signal
|
|
153
|
-
|
|
154
|
-
```typescript
|
|
155
|
-
import { Signal } from "@xmachines/play-signals";
|
|
156
|
-
|
|
157
|
-
// Create a state signal
|
|
158
|
-
const count = new Signal.State(0);
|
|
159
|
-
|
|
160
|
-
// Create a computed signal
|
|
161
|
-
const doubled = new Signal.Computed(() => count.get() * 2);
|
|
162
|
-
|
|
163
|
-
// Observe the changes
|
|
164
|
-
const watcher = new Signal.subtle.Watcher(() => {
|
|
165
|
-
console.log("Count:", count.get(), "Doubled:", doubled.get());
|
|
166
|
-
});
|
|
167
|
-
watcher.watch(count);
|
|
168
|
-
|
|
169
|
-
count.set(5); // Logs: Count: 5 Doubled: 10
|
|
170
|
-
```
|
|
171
|
-
|
|
172
|
-
## See
|
|
173
|
-
|
|
174
|
-
- [Play RFC](../../../rfc/play.md) - invariant INV-05
|
|
175
|
-
- [TC39 Signals Proposal](https://github.com/tc39/proposal-signals)
|
|
176
|
-
|
|
177
|
-
## Remarks
|
|
178
|
-
|
|
179
|
-
**Stage 1 status:** TC39 Signals is at Stage 1 in the TC39 process now. This
|
|
180
|
-
package uses the official `signal-polyfill` reference implementation. The code
|
|
181
|
-
therefore stays separate from an API that can change while the proposal
|
|
182
|
-
develops. Import every signal through this package, and the separation stays
|
|
183
|
-
complete.
|
|
184
|
-
|
|
185
|
-
**The reason for the separation:** this dedicated package re-exports the
|
|
186
|
-
polyfill. Therefore one place holds each new polyfill version and each change of
|
|
187
|
-
the API, and no consuming package changes. This architectural decision protects
|
|
188
|
-
the code from a change of the Stage 1 API.
|
|
189
|
-
|
|
190
|
-
## Namespaces
|
|
191
|
-
|
|
192
|
-
- [Signal](namespaces/Signal/README.md)
|
|
193
|
-
|
|
194
|
-
## Interfaces
|
|
195
|
-
|
|
196
|
-
- [ComputedOptions](interfaces/ComputedOptions.md)
|
|
197
|
-
- [SignalComputed](interfaces/SignalComputed.md)
|
|
198
|
-
- [SignalOptions](interfaces/SignalOptions.md)
|
|
199
|
-
- [SignalState](interfaces/SignalState.md)
|
|
200
|
-
- [SignalWatcher](interfaces/SignalWatcher.md)
|
|
201
|
-
|
|
202
|
-
## Type Aliases
|
|
203
|
-
|
|
204
|
-
- [Cleanup](type-aliases/Cleanup.md)
|
|
205
|
-
- [WatcherNotify](type-aliases/WatcherNotify.md)
|
|
206
|
-
|
|
207
|
-
## Functions
|
|
208
|
-
|
|
209
|
-
- [watchSignal](functions/watchSignal.md)
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
[API](../../../README.md) / [@xmachines/play-signals](../README.md) / watchSignal
|
|
2
|
-
|
|
3
|
-
# Function: watchSignal()
|
|
4
|
-
|
|
5
|
-
```ts
|
|
6
|
-
function watchSignal<T>(signal, onValue): Cleanup;
|
|
7
|
-
```
|
|
8
|
-
|
|
9
|
-
Defined in: [packages/play-signals/src/watch-signal.ts:45](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v4.0.0/packages/play-signals/src/watch-signal.ts#L45)
|
|
10
|
-
|
|
11
|
-
Subscribes to one signal, with the canonical one-shot watcher lifecycle.
|
|
12
|
-
|
|
13
|
-
The callback runs from a microtask in the queue, after the watcher drains the
|
|
14
|
-
notifications that wait. The watcher then arms itself again, so that it misses no
|
|
15
|
-
later update. The cleanup function is idempotent, because it accepts a watcher
|
|
16
|
-
that is detached already.
|
|
17
|
-
|
|
18
|
-
**Memory safety (Phase 29):**
|
|
19
|
-
|
|
20
|
-
- The `disposed` flag stops a callback after the cleanup: the microtask returns at
|
|
21
|
-
once when the cleanup runs before the microtask fires.
|
|
22
|
-
- The `needsEnqueue` guard removes the duplicates of rapid synchronous signal
|
|
23
|
-
changes: one batch of synchronous changes queues one microtask only.
|
|
24
|
-
- The watcher arms again BEFORE the callback: a callback that THROWS keeps the watch, a
|
|
25
|
-
callback that RELEASES the watch leaves no watcher attached to the signal, and a
|
|
26
|
-
callback that WRITES the signal reaches the caller with the value that it wrote.
|
|
27
|
-
- The watcher arms with NO argument: `watch(signal)` records the edge a second time on
|
|
28
|
-
every emission, so the edge list of the watcher and the consumer list of the signal
|
|
29
|
-
grow by one for each change, for the life of the watch.
|
|
30
|
-
|
|
31
|
-
A CAUTION for a callback that writes the signal that it watches: the write reaches the
|
|
32
|
-
callback, so a callback that writes a NEW value on every call runs again for ever, and
|
|
33
|
-
the microtask queue drains never. That is the loop of the caller, and this function
|
|
34
|
-
bounds it not — a bound here would drop the write of a caller that repairs its state
|
|
35
|
-
one time, which is the case that the order above exists to serve. A caller that repairs
|
|
36
|
-
from a failure must repair to a state that succeeds, or it must stop after one attempt.
|
|
37
|
-
A write of the SAME value ends the sequence by itself, because a signal notifies for a
|
|
38
|
-
value that it holds already never.
|
|
39
|
-
|
|
40
|
-
The return is a [Cleanup](../type-aliases/Cleanup.md): a function, and a `Disposable`. A caller that keeps
|
|
41
|
-
the release in a field and runs it from a teardown keeps that code. A caller inside one
|
|
42
|
-
scope writes `using` and writes no teardown:
|
|
43
|
-
|
|
44
|
-
```ts
|
|
45
|
-
using stop = watchSignal(count, render);
|
|
46
|
-
```
|
|
47
|
-
|
|
48
|
-
## Type Parameters
|
|
49
|
-
|
|
50
|
-
| Type Parameter |
|
|
51
|
-
| -------------- |
|
|
52
|
-
| `T` |
|
|
53
|
-
|
|
54
|
-
## Parameters
|
|
55
|
-
|
|
56
|
-
| Parameter | Type | Description |
|
|
57
|
-
| --------- | --------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------- |
|
|
58
|
-
| `signal` | \| [`State`](../namespaces/Signal/classes/State.md)\<`T`\> \| [`Computed`](../namespaces/Signal/classes/Computed.md)\<`T`\> | The `Signal.State` or `Signal.Computed` to subscribe to. |
|
|
59
|
-
| `onValue` | (`value`) => `void` | The watcher calls it with the current signal value after each change. |
|
|
60
|
-
|
|
61
|
-
## Returns
|
|
62
|
-
|
|
63
|
-
[`Cleanup`](../type-aliases/Cleanup.md)
|
|
64
|
-
|
|
65
|
-
The release. It removes the watcher.
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
[API](../../../README.md) / [@xmachines/play-signals](../README.md) / ComputedOptions
|
|
2
|
-
|
|
3
|
-
# Interface: ComputedOptions\<T\>
|
|
4
|
-
|
|
5
|
-
Defined in: [packages/play-signals/src/types.ts:85](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v4.0.0/packages/play-signals/src/types.ts#L85)
|
|
6
|
-
|
|
7
|
-
The options of a Signal.Computed
|
|
8
|
-
|
|
9
|
-
## Param
|
|
10
|
-
|
|
11
|
-
**equals**
|
|
12
|
-
|
|
13
|
-
The optional equality function of your own, for the memoization
|
|
14
|
-
|
|
15
|
-
## Example
|
|
16
|
-
|
|
17
|
-
```typescript
|
|
18
|
-
import { Signal } from "@xmachines/play-signals";
|
|
19
|
-
import type { ComputedOptions } from "@xmachines/play-signals";
|
|
20
|
-
|
|
21
|
-
const options: ComputedOptions<string> = {
|
|
22
|
-
equals: (a, b) => a.toLowerCase() === b.toLowerCase(),
|
|
23
|
-
};
|
|
24
|
-
```
|
|
25
|
-
|
|
26
|
-
## Type Parameters
|
|
27
|
-
|
|
28
|
-
| Type Parameter |
|
|
29
|
-
| -------------- |
|
|
30
|
-
| `T` |
|
|
31
|
-
|
|
32
|
-
## Properties
|
|
33
|
-
|
|
34
|
-
| Property | Type | Description | Defined in |
|
|
35
|
-
| -------------------------------------- | ----------------------- | ------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------- |
|
|
36
|
-
| <a id="property-equals"></a> `equals?` | (`a`, `b`) => `boolean` | The equality function of your own, for the memoization | [packages/play-signals/src/types.ts:89](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v4.0.0/packages/play-signals/src/types.ts#L89) |
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
[API](../../../README.md) / [@xmachines/play-signals](../README.md) / SignalComputed
|
|
2
|
-
|
|
3
|
-
# Interface: SignalComputed\<T\>
|
|
4
|
-
|
|
5
|
-
Defined in: [packages/play-signals/src/types.ts:112](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v4.0.0/packages/play-signals/src/types.ts#L112)
|
|
6
|
-
|
|
7
|
-
The computed signal. It evaluates late, and it memoizes the result
|
|
8
|
-
|
|
9
|
-
Signal.Computed tracks each dependency when it runs its callback. It memoizes the
|
|
10
|
-
result, and it runs the callback again only after a dependency changes. It
|
|
11
|
-
therefore tracks each dependency for you, and you manage no subscription.
|
|
12
|
-
|
|
13
|
-
## Example
|
|
14
|
-
|
|
15
|
-
```typescript
|
|
16
|
-
import { Signal } from "@xmachines/play-signals";
|
|
17
|
-
|
|
18
|
-
const count = new Signal.State(0);
|
|
19
|
-
const doubled = new Signal.Computed(() => count.get() * 2);
|
|
20
|
-
|
|
21
|
-
console.log(doubled.get()); // 0
|
|
22
|
-
count.set(5);
|
|
23
|
-
console.log(doubled.get()); // 10 (the signal computed it again)
|
|
24
|
-
console.log(doubled.get()); // 10 (from the memory, with no new computation)
|
|
25
|
-
```
|
|
26
|
-
|
|
27
|
-
## Type Parameters
|
|
28
|
-
|
|
29
|
-
| Type Parameter |
|
|
30
|
-
| -------------- |
|
|
31
|
-
| `T` |
|
|
32
|
-
|
|
33
|
-
## Methods
|
|
34
|
-
|
|
35
|
-
### get()
|
|
36
|
-
|
|
37
|
-
```ts
|
|
38
|
-
get(): T;
|
|
39
|
-
```
|
|
40
|
-
|
|
41
|
-
Defined in: [packages/play-signals/src/types.ts:118](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v4.0.0/packages/play-signals/src/types.ts#L118)
|
|
42
|
-
|
|
43
|
-
Reads the computed value. It computes the value again only after a dependency changed
|
|
44
|
-
|
|
45
|
-
#### Returns
|
|
46
|
-
|
|
47
|
-
`T`
|
|
48
|
-
|
|
49
|
-
The value from the current dependencies
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
[API](../../../README.md) / [@xmachines/play-signals](../README.md) / SignalOptions
|
|
2
|
-
|
|
3
|
-
# Interface: SignalOptions\<T\>
|
|
4
|
-
|
|
5
|
-
Defined in: [packages/play-signals/src/types.ts:27](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v4.0.0/packages/play-signals/src/types.ts#L27)
|
|
6
|
-
|
|
7
|
-
The options of a Signal.State
|
|
8
|
-
|
|
9
|
-
## Param
|
|
10
|
-
|
|
11
|
-
**equals**
|
|
12
|
-
|
|
13
|
-
The optional equality function of your own. It decides if the value changed
|
|
14
|
-
|
|
15
|
-
## Example
|
|
16
|
-
|
|
17
|
-
```typescript
|
|
18
|
-
import { Signal } from "@xmachines/play-signals";
|
|
19
|
-
import type { SignalOptions } from "@xmachines/play-signals";
|
|
20
|
-
|
|
21
|
-
const options: SignalOptions<number> = {
|
|
22
|
-
equals: (a, b) => a === b,
|
|
23
|
-
};
|
|
24
|
-
const count = new Signal.State(0, options);
|
|
25
|
-
```
|
|
26
|
-
|
|
27
|
-
## Type Parameters
|
|
28
|
-
|
|
29
|
-
| Type Parameter |
|
|
30
|
-
| -------------- |
|
|
31
|
-
| `T` |
|
|
32
|
-
|
|
33
|
-
## Properties
|
|
34
|
-
|
|
35
|
-
| Property | Type | Description | Defined in |
|
|
36
|
-
| -------------------------------------- | ----------------------- | ------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------- |
|
|
37
|
-
| <a id="property-equals"></a> `equals?` | (`a`, `b`) => `boolean` | The equality function of your own. It decides if the value changed | [packages/play-signals/src/types.ts:34](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v4.0.0/packages/play-signals/src/types.ts#L34) |
|
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
[API](../../../README.md) / [@xmachines/play-signals](../README.md) / SignalState
|
|
2
|
-
|
|
3
|
-
# Interface: SignalState\<T\>
|
|
4
|
-
|
|
5
|
-
Defined in: [packages/play-signals/src/types.ts:54](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v4.0.0/packages/play-signals/src/types.ts#L54)
|
|
6
|
-
|
|
7
|
-
The writable state signal. It holds one reactive value
|
|
8
|
-
|
|
9
|
-
Signal.State is the base primitive of a reactive state. A `get()` call inside a
|
|
10
|
-
computed signal or inside a watcher tracks the state as a dependency. A `set()`
|
|
11
|
-
call notifies every computation and every watcher that depends on the state.
|
|
12
|
-
|
|
13
|
-
## Example
|
|
14
|
-
|
|
15
|
-
```typescript
|
|
16
|
-
import { Signal } from "@xmachines/play-signals";
|
|
17
|
-
|
|
18
|
-
const name = new Signal.State("Alice");
|
|
19
|
-
console.log(name.get()); // 'Alice'
|
|
20
|
-
name.set("Bob");
|
|
21
|
-
console.log(name.get()); // 'Bob'
|
|
22
|
-
```
|
|
23
|
-
|
|
24
|
-
## Type Parameters
|
|
25
|
-
|
|
26
|
-
| Type Parameter |
|
|
27
|
-
| -------------- |
|
|
28
|
-
| `T` |
|
|
29
|
-
|
|
30
|
-
## Methods
|
|
31
|
-
|
|
32
|
-
### get()
|
|
33
|
-
|
|
34
|
-
```ts
|
|
35
|
-
get(): T;
|
|
36
|
-
```
|
|
37
|
-
|
|
38
|
-
Defined in: [packages/play-signals/src/types.ts:60](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v4.0.0/packages/play-signals/src/types.ts#L60)
|
|
39
|
-
|
|
40
|
-
Reads the current value, and tracks the signal as a dependency
|
|
41
|
-
|
|
42
|
-
#### Returns
|
|
43
|
-
|
|
44
|
-
`T`
|
|
45
|
-
|
|
46
|
-
The current value of the signal
|
|
47
|
-
|
|
48
|
-
---
|
|
49
|
-
|
|
50
|
-
### set()
|
|
51
|
-
|
|
52
|
-
```ts
|
|
53
|
-
set(value): void;
|
|
54
|
-
```
|
|
55
|
-
|
|
56
|
-
Defined in: [packages/play-signals/src/types.ts:67](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v4.0.0/packages/play-signals/src/types.ts#L67)
|
|
57
|
-
|
|
58
|
-
Writes a new value, and notifies the watchers when the value changed
|
|
59
|
-
|
|
60
|
-
#### Parameters
|
|
61
|
-
|
|
62
|
-
| Parameter | Type | Description |
|
|
63
|
-
| --------- | ---- | ------------- |
|
|
64
|
-
| `value` | `T` | The new value |
|
|
65
|
-
|
|
66
|
-
#### Returns
|
|
67
|
-
|
|
68
|
-
`void`
|
|
@@ -1,97 +0,0 @@
|
|
|
1
|
-
[API](../../../README.md) / [@xmachines/play-signals](../README.md) / SignalWatcher
|
|
2
|
-
|
|
3
|
-
# Interface: SignalWatcher
|
|
4
|
-
|
|
5
|
-
Defined in: [packages/play-signals/src/types.ts:169](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v4.0.0/packages/play-signals/src/types.ts#L169)
|
|
6
|
-
|
|
7
|
-
The watcher. It observes each signal change and schedules an effect
|
|
8
|
-
|
|
9
|
-
Signal.subtle.Watcher observes more than one signal, and it groups the updates.
|
|
10
|
-
It is the low-level primitive, and a framework uses it to make a reactive effect.
|
|
11
|
-
|
|
12
|
-
## Example
|
|
13
|
-
|
|
14
|
-
```typescript
|
|
15
|
-
import { Signal } from "@xmachines/play-signals";
|
|
16
|
-
|
|
17
|
-
const count = new Signal.State(0);
|
|
18
|
-
const doubled = new Signal.Computed(() => count.get() * 2);
|
|
19
|
-
|
|
20
|
-
const watcher = new Signal.subtle.Watcher(() => {
|
|
21
|
-
queueMicrotask(() => {
|
|
22
|
-
const pending = watcher.getPending();
|
|
23
|
-
console.log("Signals changed:", pending.length);
|
|
24
|
-
});
|
|
25
|
-
});
|
|
26
|
-
|
|
27
|
-
watcher.watch(count);
|
|
28
|
-
watcher.watch(doubled);
|
|
29
|
-
|
|
30
|
-
count.set(5); // The watcher schedules the notification in a microtask
|
|
31
|
-
```
|
|
32
|
-
|
|
33
|
-
## Methods
|
|
34
|
-
|
|
35
|
-
### getPending()
|
|
36
|
-
|
|
37
|
-
```ts
|
|
38
|
-
getPending(): (
|
|
39
|
-
| SignalState<unknown>
|
|
40
|
-
| SignalComputed<unknown>)[];
|
|
41
|
-
```
|
|
42
|
-
|
|
43
|
-
Defined in: [packages/play-signals/src/types.ts:189](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v4.0.0/packages/play-signals/src/types.ts#L189)
|
|
44
|
-
|
|
45
|
-
Returns the signals that changed after the last check
|
|
46
|
-
|
|
47
|
-
#### Returns
|
|
48
|
-
|
|
49
|
-
(
|
|
50
|
-
\| [`SignalState`](SignalState.md)\<`unknown`\>
|
|
51
|
-
\| [`SignalComputed`](SignalComputed.md)\<`unknown`\>)[]
|
|
52
|
-
|
|
53
|
-
The array of the signals with an update that waits
|
|
54
|
-
|
|
55
|
-
---
|
|
56
|
-
|
|
57
|
-
### unwatch()
|
|
58
|
-
|
|
59
|
-
```ts
|
|
60
|
-
unwatch(signal): void;
|
|
61
|
-
```
|
|
62
|
-
|
|
63
|
-
Defined in: [packages/play-signals/src/types.ts:182](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v4.0.0/packages/play-signals/src/types.ts#L182)
|
|
64
|
-
|
|
65
|
-
Stops the watch of one signal
|
|
66
|
-
|
|
67
|
-
#### Parameters
|
|
68
|
-
|
|
69
|
-
| Parameter | Type | Description |
|
|
70
|
-
| --------- | ----------------------------------------------------------------------------------------------------- | ------------------- |
|
|
71
|
-
| `signal` | \| [`SignalState`](SignalState.md)\<`unknown`\> \| [`SignalComputed`](SignalComputed.md)\<`unknown`\> | The signal to leave |
|
|
72
|
-
|
|
73
|
-
#### Returns
|
|
74
|
-
|
|
75
|
-
`void`
|
|
76
|
-
|
|
77
|
-
---
|
|
78
|
-
|
|
79
|
-
### watch()
|
|
80
|
-
|
|
81
|
-
```ts
|
|
82
|
-
watch(signal): void;
|
|
83
|
-
```
|
|
84
|
-
|
|
85
|
-
Defined in: [packages/play-signals/src/types.ts:175](https://gitlab.com/xmachin-es/xmachines-js/-/blob/v4.0.0/packages/play-signals/src/types.ts#L175)
|
|
86
|
-
|
|
87
|
-
Starts the watch of one signal
|
|
88
|
-
|
|
89
|
-
#### Parameters
|
|
90
|
-
|
|
91
|
-
| Parameter | Type | Description |
|
|
92
|
-
| --------- | ----------------------------------------------------------------------------------------------------- | -------------------------------------------- |
|
|
93
|
-
| `signal` | \| [`SignalState`](SignalState.md)\<`unknown`\> \| [`SignalComputed`](SignalComputed.md)\<`unknown`\> | The signal to observe: a State or a Computed |
|
|
94
|
-
|
|
95
|
-
#### Returns
|
|
96
|
-
|
|
97
|
-
`void`
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
[API](../../../../README.md) / [@xmachines/play-signals](../../README.md) / Signal
|
|
2
|
-
|
|
3
|
-
# Signal
|
|
4
|
-
|
|
5
|
-
## Namespaces
|
|
6
|
-
|
|
7
|
-
- [subtle](namespaces/subtle/README.md)
|
|
8
|
-
|
|
9
|
-
## Classes
|
|
10
|
-
|
|
11
|
-
- [Computed](classes/Computed.md)
|
|
12
|
-
- [State](classes/State.md)
|
|
13
|
-
|
|
14
|
-
## Interfaces
|
|
15
|
-
|
|
16
|
-
- [Options](interfaces/Options.md)
|
|
17
|
-
|
|
18
|
-
## Variables
|
|
19
|
-
|
|
20
|
-
- [isComputed](variables/isComputed.md)
|
|
21
|
-
- [isState](variables/isState.md)
|
|
22
|
-
- [isWatcher](variables/isWatcher.md)
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
[API](../../../../../README.md) / [@xmachines/play-signals](../../../README.md) / [Signal](../README.md) / Computed
|
|
2
|
-
|
|
3
|
-
# Class: Computed\<T\>
|
|
4
|
-
|
|
5
|
-
Defined in: `signal-polyfill`
|
|
6
|
-
|
|
7
|
-
## Type Parameters
|
|
8
|
-
|
|
9
|
-
| Type Parameter |
|
|
10
|
-
| -------------- |
|
|
11
|
-
| `T` |
|
|
12
|
-
|
|
13
|
-
## Constructors
|
|
14
|
-
|
|
15
|
-
### Constructor
|
|
16
|
-
|
|
17
|
-
```ts
|
|
18
|
-
new Computed<T>(computation, options?): Computed<T>;
|
|
19
|
-
```
|
|
20
|
-
|
|
21
|
-
Defined in: `signal-polyfill`
|
|
22
|
-
|
|
23
|
-
#### Parameters
|
|
24
|
-
|
|
25
|
-
| Parameter | Type |
|
|
26
|
-
| ------------- | -------------------------------------------- |
|
|
27
|
-
| `computation` | () => `T` |
|
|
28
|
-
| `options?` | [`Options`](../interfaces/Options.md)\<`T`\> |
|
|
29
|
-
|
|
30
|
-
#### Returns
|
|
31
|
-
|
|
32
|
-
`Computed`\<`T`\>
|
|
33
|
-
|
|
34
|
-
## Properties
|
|
35
|
-
|
|
36
|
-
| Property | Modifier | Type | Defined in |
|
|
37
|
-
| ----------------------------------- | ---------- | --------------------- | ---------- |
|
|
38
|
-
| <a id="property-node"></a> `[NODE]` | `readonly` | `ComputedNode`\<`T`\> | - |
|
|
39
|
-
|
|
40
|
-
## Methods
|
|
41
|
-
|
|
42
|
-
### get()
|
|
43
|
-
|
|
44
|
-
```ts
|
|
45
|
-
get(): T;
|
|
46
|
-
```
|
|
47
|
-
|
|
48
|
-
Defined in: `signal-polyfill`
|
|
49
|
-
|
|
50
|
-
#### Returns
|
|
51
|
-
|
|
52
|
-
`T`
|