Capítulo 76 de 108
Composable pagination UI (page links, prev/next, ellipsis) built from plain anchor-based components — no built-in page-state logic, you wire href/isActive/handlers yourself.
<nav> wrapper.<ul> list wrapper for items.<li> wrapper.<a> by default; accepts isActive to mark current page.text prop overrides label, added for RTL/i18n support).... for truncated page ranges.<Pagination>
<PaginationContent>
<PaginationItem><PaginationPrevious href="#" /></PaginationItem>
<PaginationItem><PaginationLink href="#">1</PaginationLink></PaginationItem>
<PaginationItem><PaginationLink href="#" isActive>2</PaginationLink></PaginationItem>
<PaginationItem><PaginationLink href="#">3</PaginationLink></PaginationItem>
<PaginationItem><PaginationEllipsis /></PaginationItem>
<PaginationItem><PaginationNext href="#" /></PaginationItem>
</PaginationContent>
</Pagination>
<Pagination className="mx-0 w-auto">
<PaginationContent>
<PaginationItem><PaginationPrevious href="#" /></PaginationItem>
<PaginationItem><PaginationNext href="#" /></PaginationItem>
</PaginationContent>
</Pagination>
Pagination
└── PaginationContent
├── PaginationItem → PaginationPrevious
├── PaginationItem → PaginationLink
├── PaginationItem → PaginationEllipsis
└── PaginationItem → PaginationNext
<a href="#"> em app Next.js sem trocar por Link: substitua o tipo de PaginationLinkProps para React.ComponentProps<typeof Link> e troque <a> por <Link> dentro de pagination.tsx manualmente (o CLI ainda não faz isso automaticamente).isActive em cada PaginationLink.components/ui/pagination.tsx trocando <a> por next/link's <Link>.text prop em PaginationPrevious/PaginationNext (mudança de changelog) permite localizar o rótulo "Previous"/"Next" para RTL/i18n.Select de rows-per-page em tabelas.dir prop no Pagination e text customizado nos botões prev/next.