A button with a main action and an attached menu of related actions.
onOpenChangekeepMountedclose: Closes the popover imperatively when called.defaultOpen | boolean | false | Whether the popover is initially open. To render a controlled popover, use the |
defaultTriggerId | string|null | – | ID of the trigger that the popover is associated with. This is useful in conjunction with the |
handle | PopoverHandle<unknown> | – | A handle to associate the popover with a trigger. If specified, allows external triggers to control the popover's open state. |
modal | boolean|"trap-focus" | false | Determines if the popover enters a modal state when open.
On touch devices, a When When |
onOpenChange | ((open: boolean, eventDetails: PopoverRootChangeEventDetails) => void) | – | Event handler called when the popover is opened or closed. |
onOpenChangeComplete | ((open: boolean) => void) | – | Event handler called after any animations complete when the popover is opened or closed. |
open | boolean | – | Whether the popover is currently open. |
size | "lg"|"sm"|"default"|"xl"|"xs"|"icon"|"icon-lg"|"icon-sm"|"icon-xl"|"icon-xs" | default | The size of the component. |
triggerId | string|null | – | ID of the trigger that the popover is associated with. This is useful in conjunction with the |
variant | "link"|"default"|"destructive"|"outline"|"secondary"|"destructive-outline"|"ghost" | default | The visual style of the component. |
"icon-xl""icon-xs"| – |
The size of the component. |
variant | "link"|"default"|"destructive"|"outline"|"secondary"|"destructive-outline"|"ghost" | – | The visual style of the component. |
number|OffsetFunction |
| – |
Additional offset along the alignment axis, in pixels. |
anchor | Popover$1.Positioner.Props["anchor"] | – | An element to position the popup against. Defaults to the trigger. |
collisionAvoidance | CollisionAvoidance | – | How the popup avoids collisions with the edges of the viewport. |
finalFocus | boolean | RefObject<HTMLElement | null> | ((closeType: InteractionType) => boolean | void | HTMLElement | null) | – | Determines the element to focus when the popover is closed.
|
hideArrow | boolean | false | Whether to hide the arrow that points at the trigger. |
initialFocus | boolean | RefObject<HTMLElement | null> | ((openType: InteractionType) => boolean | void | HTMLElement | null) | – | Determines the element to focus when the popover is opened. By default, focus moves to the first tabbable element inside the popup, except when the popover is opened by touch — then the popup itself is focused to avoid opening the virtual keyboard.
|
side | "top"|"bottom"|"left"|"right"|"inline-end"|"inline-start" | – | Which side of the copy button the tooltip and toast open on. |
sideOffset | number|OffsetFunction | 8 | The gap between the trigger and the calendar, in pixels. |
tooltipStyle | boolean | – | Whether the popup uses the compact look of a tooltip: smaller text, tighter padding and a width that fits the content. |
number300 |
How long to wait before the popover may be opened on hover. Specified in milliseconds. Requires the |
handle | PopoverHandle<unknown> | – | A handle to associate the trigger with a popover. |
icon | ReactNode | – | Replaces this icon. Accepts any node; |
id | string | – | ID of the trigger. In addition to being forwarded to the rendered element, it is also used to specify the active trigger for the popover in controlled mode (with the PopoverRoot |
nativeButton | boolean | true | Whether the component renders a native |
openOnHover | boolean | false | Whether the popover should also open when the trigger is hovered. |
payload | unknown | – | A payload to pass to the popover when it is opened. |