/** * panel-resize - the drag math behind a dropdown panel's bottom resize grip * (the "ยทยทยทยท" handle). Rune-free and DOM-only so every popover select can reuse * it: on the grip's `pointerdown` it tracks the pointer and reports a clamped * height as it moves, releasing its listeners on `pointerup`. * * The grip is only meaningful when the panel opens DOWNWARD (it grows toward the * bottom of the screen); components hide it on an upward flip, where there is no * room below to grow into. */ export type PanelResizeOptions = { /** Panel height (px) at the moment the drag starts. */ startHeight: number; /** Smallest height the panel may shrink to. Default 80. */ min?: number; /** Largest height the panel may grow to - the live viewport ceiling. */ max: () => number; /** Called with the new clamped height on each pointer move. */ onHeight: (height: number) => void; }; /** * Begin a vertical resize from a grip `pointerdown`. Returns nothing; the drag * ends itself on `pointerup`. Safe to call from an `onpointerdown` handler. */ export declare function startPanelResize(event: PointerEvent, opts: PanelResizeOptions): void;