pagination
nrjdalal/paginationFreeComponent
acme publishes no description for this item.
Install it
npx shadcn@latest add https://nrjdalal.dev/r/pagination.jsonSource
1import { Button, buttonVariants } from "@/components/ui/button"2import { cn } from "@/lib/utils"3import {4 ChevronLeftIcon,5 ChevronRightIcon,6 MoreHorizontalIcon,7} from "lucide-react"8import * as React from "react"910function Pagination({ className, ...props }: React.ComponentProps<"nav">) {11 return (12 <nav13 role="navigation"14 aria-label="pagination"15 data-slot="pagination"16 className={cn("mx-auto flex w-full justify-center", className)}17 {...props}18 />19 )20}2122function PaginationContent({23 className,24 ...props25}: React.ComponentProps<"ul">) {26 return (27 <ul28 data-slot="pagination-content"29 className={cn("flex flex-row items-center gap-1", className)}30 {...props}31 />32 )33}3435function PaginationItem({ ...props }: React.ComponentProps<"li">) {36 return <li data-slot="pagination-item" {...props} />37}3839type PaginationLinkProps = {40 isActive?: boolean41} & Pick<React.ComponentProps<typeof Button>, "size"> &42 React.ComponentProps<"a">4344function PaginationLink({45 className,46 isActive,47 size = "icon",48 ...props49}: PaginationLinkProps) {50 return (51 <a52 aria-current={isActive ? "page" : undefined}53 data-slot="pagination-link"54 data-active={isActive}55 className={cn(56 buttonVariants({57 variant: isActive ? "outline" : "ghost",58 size,59 }),60 className,61 )}62 {...props}63 />64 )65}6667function PaginationPrevious({68 className,69 ...props70}: React.ComponentProps<typeof PaginationLink>) {71 return (72 <PaginationLink73 aria-label="Go to previous page"74 size="default"75 className={cn("gap-1 px-2.5 sm:pl-2.5", className)}76 {...props}77 >78 <ChevronLeftIcon />79 <span className="hidden sm:block">Previous</span>80 </PaginationLink>81 )82}8384function PaginationNext({85 className,86 ...props87}: React.ComponentProps<typeof PaginationLink>) {88 return (89 <PaginationLink90 aria-label="Go to next page"91 size="default"92 className={cn("gap-1 px-2.5 sm:pr-2.5", className)}93 {...props}94 >95 <span className="hidden sm:block">Next</span>96 <ChevronRightIcon />97 </PaginationLink>98 )99}100101function PaginationEllipsis({102 className,103 ...props104}: React.ComponentProps<"span">) {105 return (106 <span107 aria-hidden108 data-slot="pagination-ellipsis"109 className={cn("flex size-9 items-center justify-center", className)}110 {...props}111 >112 <MoreHorizontalIcon className="size-4" />113// … truncated
What it pulls in
npm packages
Files it writes
More from acme
All 49 items| Component | Registry | Kind | Access | Installs | Command |
|---|---|---|---|---|---|
| accordionaccordion | acme | Components | Free | 5 deps · 2 files | |
| alertalert | acme | Components | Free | 4 deps · 2 files | |
| alert-dialogalert-dialog | acme | Components | Free | 6 deps · 3 files | |
| aspect-ratioaspect-ratio | acme | Components | Free | 1 dep | |
| avataravatar | acme | Components | Free | 4 deps · 2 files | |
| badgebadge | acme | Components | Free | 5 deps · 2 files | |
| breadcrumbbreadcrumb | acme | Components | Free | 5 deps · 2 files | |
| buttonbutton | acme | Components | Free | 5 deps · 2 files |
