{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "pagination",
  "type": "registry:ui",
  "title": "Pagination",
  "description": "A pagination nav with Prev and Next buttons that disable at the edges and numbered page buttons that mark the current page with aria-current. Built in React.",
  "dependencies": [],
  "registryDependencies": [
    "https://ui.minidev.pro/r/button.json",
    "utils"
  ],
  "files": [
    {
      "path": "registry/ui/pagination.tsx",
      "type": "registry:ui",
      "target": "components/ui/pagination.tsx",
      "content": "\"use client\"\nimport * as React from \"react\"\nimport { cn } from \"@/lib/utils\"\nimport { Button } from \"@/components/ui/button\"\n\nfunction Pagination({\n  page,\n  pageCount,\n  onPageChange,\n  className,\n}: {\n  page: number\n  pageCount: number\n  onPageChange: (p: number) => void\n  className?: string\n}) {\n  const pages = Array.from({ length: Math.min(pageCount, 5) }, (_, i) => i + 1)\n  return (\n    <nav data-slot=\"pagination\" aria-label=\"Pagination\" className={cn(\"flex items-center gap-1\", className)}>\n      <Button size=\"sm\" variant=\"outline\" disabled={page <= 1} onClick={() => onPageChange(page - 1)}>\n        Prev\n      </Button>\n      {pages.map((p) => (\n        <Button\n          key={p}\n          size=\"sm\"\n          variant={p === page ? \"default\" : \"outline\"}\n          aria-current={p === page ? \"page\" : undefined}\n          onClick={() => onPageChange(p)}\n        >\n          {p}\n        </Button>\n      ))}\n      <Button size=\"sm\" variant=\"outline\" disabled={page >= pageCount} onClick={() => onPageChange(page + 1)}>\n        Next\n      </Button>\n    </nav>\n  )\n}\nexport { Pagination }\n"
    }
  ]
}
