ivt
Version:
Ivt Components Library
1 lines • 5.5 kB
Source Map (JSON)
{"version":3,"file":"pagination-BaIJ0fC9.mjs","sources":["../../src/components/ui/pagination/pagination.tsx"],"sourcesContent":["import { ChevronLeftIcon, ChevronRightIcon, MoreHorizontalIcon } from \"lucide-react\";\nimport React from \"react\";\nimport { type Button, buttonVariants } from \"@/components/ui/button\";\nimport { cn } from \"@/lib/utils\";\n\nfunction Pagination({ className, ...props }: React.ComponentProps<\"nav\">) {\n\treturn (\n\t\t<nav\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({ className, ...props }: 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\tReact.ComponentProps<\"a\">;\n\nfunction PaginationLink({ className, isActive, size = \"icon\", ...props }: PaginationLinkProps) {\n\treturn (\n\t\t<a\n\t\t\taria-current={isActive ? \"page\" : undefined}\n\t\t\tdata-slot=\"pagination-link\"\n\t\t\tdata-active={isActive}\n\t\t\tclassName={cn(\n\t\t\t\tbuttonVariants({\n\t\t\t\t\tvariant: isActive ? \"outline\" : \"ghost\",\n\t\t\t\t\tsize,\n\t\t\t\t}),\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction PaginationPrevious({ className, ...props }: 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({ className, ...props }: 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({ className, ...props }: 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"],"names":["Pagination","className","props","React","nav","aria-label","data-slot","cn","PaginationContent","ul","PaginationItem","li","PaginationLink","isActive","size","a","aria-current","undefined","data-active","buttonVariants","variant","PaginationPrevious","ChevronLeftIcon","span","PaginationNext","ChevronRightIcon","PaginationEllipsis","aria-hidden","MoreHorizontalIcon"],"mappings":"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"}