{
	"$schema": "https://ui.shadcn.com/schema/registry-item.json",
	"name": "pagination",
	"dependencies": [],
	"registryDependencies": [],
	"files": [
		{
			"path": "ui/pagination.tsx",
			"content": "import * as React from \"react\"\nimport { mergeProps } from \"@base-ui/react\"\nimport { useRender } from \"@base-ui/react/use-render\"\nimport {\n\tChevronLeftIcon,\n\tChevronRightIcon,\n\tMoreHorizontalIcon,\n} from \"lucide-react\"\n\nimport { Button, buttonVariants } from \"@/components/ui/button\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction Pagination({ className, ...props }: React.ComponentProps<\"nav\">) {\n\treturn (\n\t\t<nav\n\t\t\trole=\"navigation\"\n\t\t\taria-label=\"pagination\"\n\t\t\tdata-slot=\"pagination\"\n\t\t\tclassName={cn(\"mx-auto flex w-full justify-center\", className)}\n\t\t\t{...props}\n\t\t/>\n\t)\n}\n\nfunction PaginationContent({\n\tclassName,\n\t...props\n}: React.ComponentProps<\"ul\">) {\n\treturn (\n\t\t<ul\n\t\t\tdata-slot=\"pagination-content\"\n\t\t\tclassName={cn(\"flex flex-row items-center gap-1\", className)}\n\t\t\t{...props}\n\t\t/>\n\t)\n}\n\nfunction PaginationItem({ ...props }: React.ComponentProps<\"li\">) {\n\treturn <li data-slot=\"pagination-item\" {...props} />\n}\n\ntype PaginationLinkProps = {\n\tisActive?: boolean\n} & Pick<React.ComponentProps<typeof Button>, \"size\"> &\n\tuseRender.ComponentProps<\"a\">\n\nfunction PaginationLink({\n\tclassName,\n\tisActive,\n\tsize = \"icon\",\n\trender = <a />,\n\t...props\n}: PaginationLinkProps) {\n\tconst defaultProps = {\n\t\t\"aria-current\": isActive ? \"page\" : undefined,\n\t\t\"data-slot\": \"pagination-link\",\n\t\t\"data-active\": isActive,\n\t\tclassName: cn(\n\t\t\tbuttonVariants({\n\t\t\t\tvariant: isActive ? \"outline\" : \"ghost\",\n\t\t\t\tsize,\n\t\t\t}),\n\t\t\tclassName\n\t\t),\n\t} as const\n\n\tconst element = useRender({\n\t\trender,\n\t\tprops: mergeProps<\"a\">(defaultProps, props),\n\t})\n\n\treturn element\n}\n\nfunction PaginationPrevious({\n\tclassName,\n\t...props\n}: React.ComponentProps<typeof PaginationLink>) {\n\treturn (\n\t\t<PaginationLink\n\t\t\taria-label=\"Go to previous page\"\n\t\t\tsize=\"default\"\n\t\t\tclassName={cn(\"gap-1 px-2.5 sm:pl-2.5\", className)}\n\t\t\t{...props}\n\t\t>\n\t\t\t<ChevronLeftIcon />\n\t\t\t<span className=\"hidden sm:block\">Previous</span>\n\t\t</PaginationLink>\n\t)\n}\n\nfunction PaginationNext({\n\tclassName,\n\t...props\n}: React.ComponentProps<typeof PaginationLink>) {\n\treturn (\n\t\t<PaginationLink\n\t\t\taria-label=\"Go to next page\"\n\t\t\tsize=\"default\"\n\t\t\tclassName={cn(\"gap-1 px-2.5 sm:pr-2.5\", className)}\n\t\t\t{...props}\n\t\t>\n\t\t\t<span className=\"hidden sm:block\">Next</span>\n\t\t\t<ChevronRightIcon />\n\t\t</PaginationLink>\n\t)\n}\n\nfunction PaginationEllipsis({\n\tclassName,\n\t...props\n}: React.ComponentProps<\"span\">) {\n\treturn (\n\t\t<span\n\t\t\taria-hidden\n\t\t\tdata-slot=\"pagination-ellipsis\"\n\t\t\tclassName={cn(\"flex size-9 items-center justify-center\", className)}\n\t\t\t{...props}\n\t\t>\n\t\t\t<MoreHorizontalIcon className=\"size-4\" />\n\t\t\t<span className=\"sr-only\">More pages</span>\n\t\t</span>\n\t)\n}\n\nexport {\n\tPagination,\n\tPaginationContent,\n\tPaginationLink,\n\tPaginationItem,\n\tPaginationPrevious,\n\tPaginationNext,\n\tPaginationEllipsis,\n}\n",
			"type": "registry:ui",
			"target": ""
		}
	],
	"type": "registry:ui"
}
