import * as react from 'react'; import { ReactNode, HTMLAttributes } from 'react'; import { P as Placement } from './types-8Sv0rCjw.cjs'; interface PopoverContextValue { open: boolean; setOpen: (open: boolean) => void; anchorRef: React.RefObject; floatingRef: React.RefObject; placement: Placement; offset: number; hover: boolean; onHoverEnter: () => void; onHoverLeave: () => void; } interface PopoverProps { children: ReactNode; /** Controlled open state */ open?: boolean; /** Default open state (uncontrolled) */ defaultOpen?: boolean; /** Callback when open state changes */ onOpenChange?: (open: boolean) => void; /** Placement of the popover relative to the trigger */ placement?: Placement; /** Pixel offset from the trigger */ offset?: number; /** Open on hover instead of click */ hover?: boolean; /** Delay in ms before opening on hover. Default: 200 */ hoverDelay?: number; /** Delay in ms before closing after hover leaves. Default: 300 */ hoverCloseDelay?: number; } /** * The trigger renders a `` — it extends its attributes so consumers can * forward `aria-*`, `data-*`, `id`, `title`, etc. onto the actual anchor node * (e.g. `aria-label` for an icon-only trigger). Popover-owned props (ref, * onClick, aria-expanded/haspopup) always win over forwarded ones. */ interface PopoverTriggerProps extends HTMLAttributes { children: ReactNode; } /** * The content renders a `
` — it extends its attributes so consumers can * forward `aria-*`/`data-*`/`role`/`id` onto the floating panel. Consumer * `style` is merged under the Popover's positioning (left/top always win). */ interface PopoverContentProps extends HTMLAttributes { children: ReactNode; } declare function PopoverTrigger({ children, className, ...rest }: PopoverTriggerProps): react.JSX.Element; declare namespace PopoverTrigger { var displayName: string; } declare function PopoverContent({ children, className, style, ...rest }: PopoverContentProps): react.JSX.Element | null; declare namespace PopoverContent { var displayName: string; } declare function PopoverRoot({ children, open: controlledOpen, defaultOpen, onOpenChange, placement, offset, hover, hoverDelay, hoverCloseDelay, }: PopoverProps): react.JSX.Element; declare const Popover: typeof PopoverRoot & { Trigger: typeof PopoverTrigger; Content: typeof PopoverContent; }; declare function usePopover(): PopoverContextValue; export { Popover, type PopoverContentProps, type PopoverContextValue, type PopoverProps, type PopoverTriggerProps, usePopover };