{ "$schema": "https://ui.shadcn.com/schema/registry-item.json", "name": "carousel-api", "type": "registry:example", "author": "shadcn (https://ui.shadcn.com)", "registryDependencies": [ "carousel" ], "files": [ { "path": "examples/carousel-api.tsx", "content": "import * as React from \"react\"\n\nimport { Card, CardContent } from \"@/registry/default/ui/card\"\nimport {\n Carousel,\n CarouselContent,\n CarouselItem,\n CarouselNext,\n CarouselPrevious,\n type CarouselApi,\n} from \"@/registry/default/ui/carousel\"\n\nexport default function CarouselDApiDemo() {\n const [api, setApi] = React.useState()\n const [current, setCurrent] = React.useState(0)\n const [count, setCount] = React.useState(0)\n\n React.useEffect(() => {\n if (!api) {\n return\n }\n\n setCount(api.scrollSnapList().length)\n setCurrent(api.selectedScrollSnap() + 1)\n\n api.on(\"select\", () => {\n setCurrent(api.selectedScrollSnap() + 1)\n })\n }, [api])\n\n return (\n
\n \n \n {Array.from({ length: 5 }).map((_, index) => (\n \n \n \n {index + 1}\n \n \n \n ))}\n \n \n \n \n
\n Slide {current} of {count}\n
\n
\n )\n}\n", "type": "registry:example", "target": "" } ] }