UNPKG

@zag-js/focus-trap

Version:

Focus trap utility

43 lines (40 loc) 1.42 kB
import { FocusTrapOptions, ActivateOptions, DeactivateOptions, PauseOptions, UnpauseOptions } from './types.js'; declare class FocusTrap { private trapStack; private config; private doc; private state; private portalContainers; private addPortalContainer; private observePortalContainer; private updatePortalContainers; get active(): boolean; get paused(): boolean; constructor(elements: HTMLElement | HTMLElement[], options: FocusTrapOptions); private findContainerIndex; private isControlledElement; private updateTabbableNodes; private listenerCleanups; private addListeners; private removeListeners; private handleFocus; private handlePointerDown; private handleClick; private handleTabKey; private handleEscapeKey; private _mutationObserver?; private setupMutationObserver; private updateObservedNodes; private getInitialFocusNode; private tryFocus; activate(activateOptions?: ActivateOptions): this; deactivate: (deactivateOptions?: DeactivateOptions) => this; pause: (pauseOptions?: PauseOptions) => this; unpause: (unpauseOptions?: UnpauseOptions) => this; updateContainerElements: (containerElements: HTMLElement | HTMLElement[]) => this; private getReturnFocusNode; private getOption; private getNodeForOption; private findNextNavNode; } export { FocusTrap };