Popover

A floating content box that appears next to a trigger element, ideal for displaying settings, forms, or additional information on demand.

Preview

Usage

tsx
import {
  Popover,
  PopoverTrigger,
  PopoverContent,
} from "zostel-ui";

<Popover>
  <PopoverTrigger asChild>
    <Button>Preferences</Button>
  </PopoverTrigger>
  <PopoverContent className="w-72">
    <h4 className="text-sm font-semibold">Display Settings</h4>
    <div className="space-y-3 mt-3">
      <div className="flex items-center justify-between">
        <label>Currency</label>
        <Select defaultValue="INR" />
      </div>
      <div className="flex items-center justify-between">
        <label>Language</label>
        <Select defaultValue="English" />
      </div>
    </div>
  </PopoverContent>
</Popover>

Props

open
Type: boolean
Default:

Controlled open state of the popover

onOpenChange
Type: (open: boolean) => void
Default:

Callback when the open state changes

side
Type: "top" | "right" | "bottom" | "left"
Default: "bottom"

The preferred side of the trigger to render against

align
Type: "start" | "center" | "end"
Default: "center"

The preferred alignment against the trigger

sideOffset
Type: number
Default: 4

Distance in pixels from the trigger