# Carousel Component API A rotating content display with navigation controls. --- ## Installation ```toml # Cargo.toml [dependencies] shadcn-ui-leptos-carousel = "0.7" ``` ```rust use shadcn_ui_leptos_carousel::Carousel; ``` --- ## Import ```rust use shadcn_ui_leptos_carousel::{ Carousel, CarouselContent, CarouselItem, CarouselPrevious, CarouselNext, CarouselDots }; ``` --- ## Component API ### Carousel Root container managing carousel state. | Prop | Type | Default | Description | |------|------|---------|-------------| | `current` | `Signal` | **Required** | Current slide index | | `on_change` | `Option>` | `None` | Change handler | | `auto_play` | `Signal` | `false` | Auto-rotate slides | | `interval` | `MaybeProp` | `5000` | Auto-play interval (ms) | --- ## Usage Examples ### Basic Carousel ```rust use leptos::prelude::*; use shadcn_ui_leptos_carousel::*; #[component] pub fn MyComponent() -> impl IntoView { let (current, set_current) = signal(0); view! {
"Slide 1"
"Slide 2"
"Slide 3"
} } ``` --- ## CSS Classes ```css .carousel { relative } .carousel-content { flex overflow-hidden } .carousel-item { min-w-0 shrink-0 grow-0 basis-full } .carousel-previous, .carousel-next { absolute h-8 w-8 rounded-full border bg-background top-1/2 -translate-y-1/2 } .carousel-previous { left-4 } .carousel-next { right-4 } ``` --- ## Accessibility ### Keyboard Navigation | Key | Action | |-----|--------| | **Arrow Left** | Previous slide | | **Arrow Right** | Next slide | --- ## TypeScript API ```typescript interface CarouselProps { current: number; onChange?: (index: number) => void; autoPlay?: boolean; interval?: number; } export const Carousel: React.FC; export const CarouselContent: React.FC; export const CarouselItem: React.FC; export const CarouselPrevious: React.FC; export const CarouselNext: React.FC; ``` --- *Source: [packages/leptos/carousel/src/default.rs](https://github.com/yourusername/leptos-shadcn-ui/blob/main/packages/leptos/carousel/src/default.rs)*