import React from 'react'; export type PopoverPlacement = 'top' | 'bottom' | 'left' | 'right'; export type PopoverSize = 'sm' | 'md' | 'lg'; export interface PopoverProps { /** The element that opens it. Must accept a ref and DOM props. */ children: React.ReactElement; /** Panel contents. */ content?: React.ReactNode; /** Heading. Also gives the dialog its accessible name. */ title?: React.ReactNode; /** Action row, right-aligned. */ footer?: React.ReactNode; /** * Matches the Figma `Placement` variant, and names where the POPOVER sits — * not where the arrow points. A preference, not a guarantee: it flips when * there is no room, and the arrow follows. */ placement?: PopoverPlacement; /** Matches the Figma `Size` variant. Widths only; height always hugs. */ size?: PopoverSize; /** Show the close button. Defaults to `true`. */ showClose?: boolean; /** Hide the caret. */ hideArrow?: boolean; closeLabel?: string; isOpen?: boolean; onOpenChange?: (isOpen: boolean) => void; className?: string; } /** * Popover — Figma `Popover` (825:1853). * * SITS BETWEEN TOOLTIP AND MODAL. A tooltip is a hint that cannot hold * focusable content; a modal is a task that takes over the page. A popover * holds interactive content but stays attached to the control that opened it. * * `usePopover` contains focus, closes on Escape or an outside click, and hides * the rest of the page from assistive tech while open — the same guarantees * Modal gives. What differs is the framing, and it is deliberate: no visible * scrim, anchored to its trigger, and `surface/raised` rather than Modal's * `surface/overlay`. It reads as attached to the page rather than replacing it. */ export declare function Popover({ children, ...props }: PopoverProps): React.JSX.Element; export declare namespace Popover { var displayName: string; } //# sourceMappingURL=Popover.d.ts.map