@zag-js/focus-trap
Version:
Focus trap utility
43 lines (40 loc) • 1.42 kB
text/typescript
import { FocusTrapOptions, ActivateOptions, DeactivateOptions, PauseOptions, UnpauseOptions } from './types.mjs';
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 };