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
| Prop | Type | Default | Description |
|---|---|---|---|
open | boolean | — | Controlled open state of the popover |
onOpenChange | (open: boolean) => void | — | Callback when the open state changes |
side | "top" | "right" | "bottom" | "left" | "bottom" | The preferred side of the trigger to render against |
align | "start" | "center" | "end" | "center" | The preferred alignment against the trigger |
sideOffset | number | 4 | Distance in pixels from the trigger |
openType:
booleanDefault: —
Controlled open state of the popover
onOpenChangeType:
(open: boolean) => voidDefault: —
Callback when the open state changes
sideType:
"top" | "right" | "bottom" | "left"Default: "bottom"
The preferred side of the trigger to render against
alignType:
"start" | "center" | "end"Default: "center"
The preferred alignment against the trigger
sideOffsetType:
numberDefault: 4
Distance in pixels from the trigger