MDK Logo

Popover

Popover Root - Container for a single popover

Popover Root - Container for a single popover

import { Popover } from "@tetherto/mdk-react-devkit";

Popover exposes no documented props.

Usage

Floating panel anchored to a trigger element. Built on Radix UI; use the composable parts for full control, or SimplePopover for the common case.

Composition

<Popover>
  <PopoverTrigger asChild><Button>Open</Button></PopoverTrigger>
  <PopoverContent side="bottom" align="start" showArrow showClose>
    <p>Hello!</p>
  </PopoverContent>
</Popover>

Popover (root) props

PropTypeRequiredDefaultDescription
openbooleannoControlled open state.
defaultOpenbooleannofalseUncontrolled initial state.
onOpenChange(open: boolean) => voidnoOpen-state change handler.
modalbooleannofalseTrap focus inside the panel.

PopoverContent props

PropTypeRequiredDefaultDescription
side"top" | "right" | "bottom" | "left"no"bottom"Side relative to the trigger.
align"start" | "center" | "end"no"center"Alignment along the side.
sideOffsetnumberno8Distance from the trigger (px).
showArrowbooleannofalseRender a directional arrow.
showClosebooleannofalseRender a close (×) button.
classNamestringnoContent class names.

Notes

  • PopoverContent automatically portals to document.body.
  • For tooltips that appear on hover, use <Tooltip> instead.

Example

/** * Runnable example for Popover. */import { Button, Popover, PopoverContent, PopoverTrigger } from '@tetherto/mdk-react-devkit'export const PopoverExample = () => {  return (    <Popover>      <PopoverTrigger asChild>        <Button>Filters</Button>      </PopoverTrigger>      <PopoverContent side="bottom" align="start" showArrow showClose>        <div style={{ display: 'flex', flexDirection: 'column', gap: 8, minWidth: 220 }}>          <strong>Filter by</strong>          <p style={{ margin: 0 }}>Place your filter form here.</p>        </div>      </PopoverContent>    </Popover>  )}