A component to display rich content within a portal.
import { Popover, PopoverContent, PopoverTrigger } from "#/ui/components/Popover"
<Popover>
<PopoverTrigger>Trigger</PopoverTrigger>
<PopoverContent>Content</PopoverContent>
</Popover>
<Popover>
<PopoverTrigger>Trigger</PopoverTrigger>
<PopoverContent>Content</PopoverContent>
</Popover>
The popover requires PopoverTrigger
, triggering the popover to display, and PopoverContent
, what gets displayed.
<Popover>
<PopoverTrigger>Show Popover</PopoverTrigger>
<PopoverContent>Lorem ipsum dolor sit amet</PopoverContent>
</Popover>
You’re not limited to text content, you can pass in any valid JSX to either your Trigger or your Content.
<PopoverExample trigger="settings" client:load>
<div slot="content" className="grid grid-cols-2 items-center gap-2 text-sm">
<span>Name: </span>
<Input />
<span>Email Address: </span>
<Input />
<span>Company Name: </span>
<Input />
<span>Get email updates: </span>
<Switch client:load />
</div>
</PopoverExample>
If you want to add an arrow to the popover, you can pass in showArrow
to the PopoverContent
component.
<Popover>
<PopoverTrigger>Trigger</PopoverTrigger>
<PopoverContent showArrow>Content</PopoverContent>
</Popover>
If you want to add a close button to the popover, you can pass in showClose
to the PopoverContent
component. You can always close the popover by clicking away, but this makes the close action more explicit.
<Popover>
<PopoverTrigger>Trigger</PopoverTrigger>
<PopoverContent showClose>Content</PopoverContent>
</Popover>