UNPKG

@base-ui/react

Version:

Base UI is a library of headless ('unstyled') React components and low-level hooks. You gain complete control over your app's CSS and accessibility features.

51 lines 2.3 kB
import { ReactStore } from '@base-ui/utils/store'; import { ToastManagerAddOptions, ToastManagerPromiseOptions, ToastManagerUpdateOptions, ToastObject } from "./useToastManager.js"; type ToastInternalUpdateOptions<Data extends object> = Partial<Omit<ToastObject<Data>, 'id'>>; export type State = { toasts: ToastObject<any>[]; hovering: boolean; focused: boolean; timeout: number; limit: number; isWindowFocused: boolean; viewport: HTMLElement | null; prevFocusElement: HTMLElement | null; }; export declare const selectors: { toasts: (state: State) => ToastObject<any>[]; isEmpty: (state: State) => boolean; toast: (args_0: State, id: string) => ToastObject<any> | undefined; toastIndex: (args_0: State, id: string) => number; toastOffsetY: (args_0: State, id: string) => number; toastVisibleIndex: (args_0: State, id: string) => number; hovering: (state: State) => boolean; focused: (state: State) => boolean; expanded: (state: State) => boolean; expandedOrOutOfFocus: (state: State) => boolean; prevFocusElement: (state: State) => HTMLElement | null; }; export declare class ToastStore extends ReactStore<State, {}, typeof selectors> { private timers; private areTimersPaused; constructor(initialState: State); setFocused(focused: boolean): void; setHovering(hovering: boolean): void; setIsWindowFocused(isWindowFocused: boolean): void; setPrevFocusElement(prevFocusElement: HTMLElement | null): void; setViewport: (viewport: HTMLElement | null) => void; disposeEffect: () => () => void; removeToast(toastId: string): void; addToast: <Data extends object>(toast: ToastManagerAddOptions<Data>) => string; updateToast: <Data extends object>(id: string, updates: ToastManagerUpdateOptions<Data>) => void; updateToastInternal: <Data extends object>(id: string, updates: ToastInternalUpdateOptions<Data>) => void; closeToast: (toastId: string) => void; promiseToast: <Value, Data extends object>(promiseValue: Promise<Value>, options: ToastManagerPromiseOptions<Value, Data>) => Promise<Value>; pauseTimers(): void; resumeTimers(): void; restoreFocusToPrevElement(): void; handleDocumentPointerDown: (event: PointerEvent) => void; private scheduleTimer; private setToasts; private handleFocusManagement; } export {};