/** * focusTrap.ts — PAT-061 compliant focus-trap helpers. * * Plain functions, NOT React hooks. No useXxx exports. * Single source of truth for focus-trap logic across all overlay organisms. * * Consumers: Sheet.tsx, Dialog.tsx, FilterPanel.tsx (incoming Wave 4). * * Rationale (D-172): The byte-identical 30-LOC block that previously lived * in both Sheet.tsx and Dialog.tsx is extracted here to eliminate duplication * and guarantee a single fix/update point for ARIA focus-trap behaviour. */ export declare const FOCUSABLE_SELECTOR = "button:not([disabled]), [href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex=\"-1\"])"; /** * Returns all focusable, visible, non-aria-hidden elements within `container`. */ export declare function getFocusables(container: HTMLElement | null): HTMLElement[]; /** * Traps keyboard Tab / Shift+Tab focus cycling within `container`. * Must be attached to a `keydown` event listener on `document`. * No-ops on non-Tab keys so callers can pass all keydown events safely. */ export declare function trapFocus(e: KeyboardEvent, container: HTMLElement | null): void; //# sourceMappingURL=focusTrap.d.ts.map