import type React from 'react'; export interface PopoverRef extends HTMLElement { /** Opens the popover panel. */ open(): void; /** Closes the popover panel. */ close(): void; } /** * Popover content is the default `children` slot. The trigger is the `triggerLabel` prop (or set imperatively on the element). * Positioning uses `position: fixed` to escape scroll containers. * Open and close imperatively — see the framework access note below — or react to dismissal with `onClose`. * * In React, reach the imperative methods through a ref: * `const api = useRef(null)`, pass `ref={api}`, then `api.current?.open()`. * Available: open(), close(). * * @csspart panel, trigger */ export interface PopoverOwnProps { /** * Unique identifier for the element. * @example 'example-id' */ id?: string; /** * Accessible label for the trigger button. * @example 'example' */ triggerLabel?: string; /** * Title text. * @example 'Example title' */ title?: string; /** * Secondary descriptive text rendered inside Shadow DOM. Not the same as React children — use the `description` prop for helper text. * @example 'Additional context' */ description?: string; /** * Popover panel width preset. Allowed values: `sm`, `md`, `lg`, `xl`, `auto`. * @example 'sm' */ width?: 'sm' | 'md' | 'lg' | 'xl' | 'auto'; /** * Preferred placement relative to the trigger (top, bottom, left, right). Allowed values: `top`, `bottom`. * @example 'top' */ placement?: 'top' | 'bottom'; /** * Alignment along the placement axis (start, center, end). Allowed values: `start`, `center`, `end`. * @example 'start' */ align?: 'start' | 'center' | 'end'; /** * Whether to show an arrow pointing to the trigger. * @defaultValue false * @example true */ arrow?: boolean; /** * Whether to render a close button. * @defaultValue false * @example true */ closeButton?: boolean; /** * Visual style variant. Allowed values: `outline`, `filled`, `ghost`. * @example 'outline' */ variant?: 'outline' | 'filled' | 'ghost'; /** * Corner radius style. Allowed values: `sharp`, `rounded`, `pill`. * @example 'sharp' */ shape?: 'sharp' | 'rounded' | 'pill'; /** * Component size. Allowed values: `xs`, `sm`, `md`, `lg`, `xl`. * @example 'xs' */ size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl'; /** * Icon name to display. * @example 'example' */ icon?: string; /** * Disables the component, preventing interaction. * @defaultValue false * @example true */ disabled?: boolean; /** Default slot content. * @example Content */ children?: React.ReactNode; /** CSS class applied to the Custom Element host. * @example 'my-component' */ className?: string; /** Inline styles applied to the Custom Element host. * @example { marginTop: 8 } */ style?: React.CSSProperties; } /** * Props for ``: the component's own API plus every standard DOM * attribute and native React event handler, forwarded verbatim to the * `` host — `id`, `data-*`, `aria-*`, `title`, `tabIndex`, * `slot`, `onMouseEnter`, and the rest. Own props always win over a * same-named DOM attribute. */ export type PopoverProps = PopoverOwnProps & Omit, keyof PopoverOwnProps | 'children' | 'dangerouslySetInnerHTML'>; export declare const Popover: React.ForwardRefExoticComponent, "dangerouslySetInnerHTML" | keyof PopoverOwnProps> & React.RefAttributes>;