import { PopupArrowMode, PopupArrowPlacement } from '../../../shared/types/popup'; export type PopupPositionProp = 'top' | 'top-left' | 'top-right' | 'bottom' | 'bottom-center' | 'bottom-left' | 'bottom-right' | 'left' | 'right'; /** * Acota el puntero al rectángulo del trigger en coordenadas de viewport. * Devuelve la esquina superior izquierda de un ancla 1×1 lógica dentro del trigger * (recorrido píxel a píxel cuando el trigger tiene tamaño entero en CSS px). */ export declare function clampClientPointForPopupAnchor(triggerRect: DOMRectReadOnly, clientX: number, clientY: number): { x: number; y: number; }; /** Base del z-index del panel del popup en portal (`computePopupLayout`). */ export declare const POPUP_PANEL_Z_INDEX_BASE = 1000; /** * z-index recomendado para `Modal` u otros overlays que deben quedar por encima del panel de `Popup`. * El panel usa `POPUP_PANEL_Z_INDEX_BASE + (offset % 100)` (típicamente 1000–1099). */ export declare const Z_INDEX_MODAL_ABOVE_POPUP = 1200; /** * z-index del overlay de `Tooltip` / `InlineTooltip`: siempre por debajo del panel de `Popup` * (`POPUP_PANEL_Z_INDEX_BASE` + offset % 100, típicamente 1000–1099). */ export declare const Z_INDEX_TOOLTIP: number; /** * Con `popoverArrow` manual, `align` debe desplazar el panel respecto al trigger. */ export declare function applyManualPopoverEdgeAlign(popoverArrow: PopupArrowMode, position: PopupPositionProp, left: number, top: number, triggerLeft: number, triggerTop: number, triggerWidth: number, triggerHeight: number, panelWidth: number, panelHeight: number): { left: number; top: number; }; export type ComputePopupLayoutInput = { position: PopupPositionProp; offset: number; absolute: boolean; popoverArrow: PopupArrowMode; popupUniqueId: string; triggerRect: DOMRectReadOnly; popupRect: DOMRectReadOnly; /** Solo modo `absolute`: caja del trigger respecto al offset parent. */ triggerOffsetBox: { top: number; left: number; width: number; height: number; }; }; export type ComputePopupLayoutResult = { popupStyle: { position: 'fixed' | 'absolute'; top: string; left: string; zIndex: number; }; arrowPlacement: PopupArrowPlacement | null; }; /** * Calcula top/left del panel, z-index y colocación de flecha (misma semántica que el `usePopup` anterior). */ export declare function computePopupLayout(input: ComputePopupLayoutInput): ComputePopupLayoutResult; /** Ventana, visualViewport y ancestros con overflow desplazable (scroll no sube al window). */ export declare function collectScrollRepositionTargets(trigger: HTMLElement | null): EventTarget[]; //# sourceMappingURL=popupPosition.d.ts.map