# Popover Component API A floating content container positioned relative to a trigger element. --- ## Installation ```toml # Cargo.toml [dependencies] shadcn-ui-leptos-popover = "0.7" ``` ```rust use shadcn_ui_leptos_popover::Popover; ``` --- ## Import ```rust use shadcn_ui_leptos_popover::{ Popover, PopoverTrigger, PopoverContent }; ``` --- ## Component API ### Popover Root component managing popover state. | Prop | Type | Default | Description | |------|------|---------|-------------| | `open` | `Signal` | **Required** | Open state | | `on_open_change` | `Option>` | `None` | Change handler | ### PopoverTrigger Element that triggers the popover. | Prop | Type | Default | Description | |------|------|---------|-------------| | `as_child` | `Option>` | `None` | Render as custom element | ### PopoverContent The floating popover container. | Prop | Type | Default | Description | |------|------|---------|-------------| | `align` | `MaybeProp` | `Center` | Horizontal alignment | | `side` | `MaybeProp` | `Bottom` | Placement side | | `class` | `MaybeProp` | `None` | Additional CSS classes | --- ## Usage Examples ### Basic Popover ```rust use leptos::prelude::*; use shadcn_ui_leptos_popover::*; #[component] pub fn MyComponent() -> impl IntoView { let (open, set_open) = signal(false); view! {

"Popover content"

} } ``` --- ## CSS Classes ```css .popover-content { z-50 w-72 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out } ``` --- ## Accessibility ### Keyboard Navigation | Key | Action | |-----|--------| | **Escape** | Close popover | | **Tab** | Focus within popover | --- ## TypeScript API ```typescript interface PopoverProps { open: boolean; onOpenChange?: (open: boolean) => void; children?: React.ReactNode; } export const Popover: React.FC; export const PopoverTrigger: React.FC; export const PopoverContent: React.FC; ``` --- *Source: [packages/leptos/popover/src/default.rs](https://github.com/yourusername/leptos-shadcn-ui/blob/main/packages/leptos/popover/src/default.rs)*