UNPKG

@arolariu/components

Version:

A collection of reusable components for React applications, built as ESM & CJS modules with tree shake, minify and bundler optimizations enabled, for the lowest bundle size (import cost)!

1 lines 5.05 kB
{"version":3,"file":"components\\ui\\pagination.cjs","sources":["webpack://@arolariu/components/./src/components/ui/pagination.tsx"],"sourcesContent":["\r\n\r\nimport * as React from \"react\";\r\nimport {\r\n ChevronLeftIcon,\r\n ChevronRightIcon,\r\n MoreHorizontalIcon,\r\n} from \"lucide-react\";\r\nimport { cn } from \"./../../lib/utils\";\r\nimport { Button, buttonVariants } from \"./button\";\r\n\r\nfunction Pagination({ className, ...props }: React.ComponentProps<\"nav\">) {\r\n return (\r\n <nav\r\n role=\"navigation\"\r\n aria-label=\"pagination\"\r\n data-slot=\"pagination\"\r\n className={cn(\"mx-auto flex w-full justify-center\", className)}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nfunction PaginationContent({\r\n className,\r\n ...props\r\n}: React.ComponentProps<\"ul\">) {\r\n return (\r\n <ul\r\n data-slot=\"pagination-content\"\r\n className={cn(\"flex flex-row items-center gap-1\", className)}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nfunction PaginationItem({ ...props }: React.ComponentProps<\"li\">) {\r\n return <li data-slot=\"pagination-item\" {...props} />;\r\n}\r\n\r\ntype PaginationLinkProps = {\r\n isActive?: boolean;\r\n} & Pick<React.ComponentProps<typeof Button>, \"size\"> &\r\n React.ComponentProps<\"a\">;\r\n\r\nfunction PaginationLink({\r\n className,\r\n isActive,\r\n size = \"icon\",\r\n ...props\r\n}: PaginationLinkProps) {\r\n return (\r\n <a\r\n aria-current={isActive ? \"page\" : undefined}\r\n data-slot=\"pagination-link\"\r\n data-active={isActive}\r\n className={cn(\r\n buttonVariants({\r\n variant: isActive ? \"outline\" : \"ghost\",\r\n size,\r\n }),\r\n className\r\n )}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nfunction PaginationPrevious({\r\n className,\r\n ...props\r\n}: React.ComponentProps<typeof PaginationLink>) {\r\n return (\r\n <PaginationLink\r\n aria-label=\"Go to previous page\"\r\n size=\"default\"\r\n className={cn(\"gap-1 px-2.5 sm:pl-2.5\", className)}\r\n {...props}\r\n >\r\n <ChevronLeftIcon />\r\n <span className=\"hidden sm:block\">Previous</span>\r\n </PaginationLink>\r\n );\r\n}\r\n\r\nfunction PaginationNext({\r\n className,\r\n ...props\r\n}: React.ComponentProps<typeof PaginationLink>) {\r\n return (\r\n <PaginationLink\r\n aria-label=\"Go to next page\"\r\n size=\"default\"\r\n className={cn(\"gap-1 px-2.5 sm:pr-2.5\", className)}\r\n {...props}\r\n >\r\n <span className=\"hidden sm:block\">Next</span>\r\n <ChevronRightIcon />\r\n </PaginationLink>\r\n );\r\n}\r\n\r\nfunction PaginationEllipsis({\r\n className,\r\n ...props\r\n}: React.ComponentProps<\"span\">) {\r\n return (\r\n <span\r\n aria-hidden\r\n data-slot=\"pagination-ellipsis\"\r\n className={cn(\"flex size-9 items-center justify-center\", className)}\r\n {...props}\r\n >\r\n <MoreHorizontalIcon className=\"size-4\" />\r\n <span className=\"sr-only\">More pages</span>\r\n </span>\r\n );\r\n}\r\n\r\nexport {\r\n Pagination,\r\n PaginationContent,\r\n PaginationLink,\r\n PaginationItem,\r\n PaginationPrevious,\r\n PaginationNext,\r\n PaginationEllipsis,\r\n};\r\n"],"names":["Pagination","className","props","cn","PaginationContent","PaginationItem","PaginationLink","isActive","size","undefined","buttonVariants","PaginationPrevious","ChevronLeftIcon","PaginationNext","ChevronRightIcon","PaginationEllipsis","MoreHorizontalIcon"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAWA,SAASA,WAAW,EAAEC,SAAS,EAAE,GAAGC,OAAoC;IACtE,OACE,WADF,GACE,qCAAC;QACC,MAAK;QACL,cAAW;QACX,aAAU;QACV,WAAWC,IAAAA,0BAAAA,EAAAA,EAAG,sCAAsCF;QACnD,GAAGC,KAAK;;AAGf;AAEA,SAASE,kBAAkB,EACzBH,SAAS,EACT,GAAGC,OACwB;IAC3B,OACE,WADF,GACE,qCAAC;QACC,aAAU;QACV,WAAWC,IAAAA,0BAAAA,EAAAA,EAAG,oCAAoCF;QACjD,GAAGC,KAAK;;AAGf;AAEA,SAASG,eAAe,EAAE,GAAGH,OAAmC;IAC9D,OAAO,WAAP,GAAO,qCAAC;QAAG,aAAU;QAAmB,GAAGA,KAAK;;AAClD;AAOA,SAASI,eAAe,EACtBL,SAAS,EACTM,QAAQ,EACRC,OAAO,MAAM,EACb,GAAGN,OACiB;IACpB,OACE,WADF,GACE,qCAAC;QACC,gBAAcK,WAAW,SAASE,KAAAA;QAClC,aAAU;QACV,eAAaF;QACb,WAAWJ,IAAAA,0BAAAA,EAAAA,EACTO,IAAAA,oCAAAA,cAAAA,EAAe;YACb,SAASH,WAAW,YAAY;YAChCC;QACF,IACAP;QAED,GAAGC,KAAK;;AAGf;AAEA,SAASS,mBAAmB,EAC1BV,SAAS,EACT,GAAGC,OACyC;IAC5C,OACE,WADF,GACE,sCAACI,gBAAAA;QACC,cAAW;QACX,MAAK;QACL,WAAWH,IAAAA,0BAAAA,EAAAA,EAAG,0BAA0BF;QACvC,GAAGC,KAAK;;0BAET,qCAACU,sCAAAA,eAAeA,EAAAA,CAAAA;0BAChB,qCAAC;gBAAK,WAAU;0BAAkB;;;;AAGxC;AAEA,SAASC,eAAe,EACtBZ,SAAS,EACT,GAAGC,OACyC;IAC5C,OACE,WADF,GACE,sCAACI,gBAAAA;QACC,cAAW;QACX,MAAK;QACL,WAAWH,IAAAA,0BAAAA,EAAAA,EAAG,0BAA0BF;QACvC,GAAGC,KAAK;;0BAET,qCAAC;gBAAK,WAAU;0BAAkB;;0BAClC,qCAACY,sCAAAA,gBAAgBA,EAAAA,CAAAA;;;AAGvB;AAEA,SAASC,mBAAmB,EAC1Bd,SAAS,EACT,GAAGC,OAC0B;IAC7B,OACE,WADF,GACE,sCAAC;QACC,eAAW;QACX,aAAU;QACV,WAAWC,IAAAA,0BAAAA,EAAAA,EAAG,2CAA2CF;QACxD,GAAGC,KAAK;;0BAET,qCAACc,sCAAAA,kBAAkBA,EAAAA;gBAAC,WAAU;;0BAC9B,qCAAC;gBAAK,WAAU;0BAAU;;;;AAGhC"}