Pagination
Preview

A component for splitting and navigating through content across multiple pages.

Example

Rows per page

Page 1 of 100

Anatomy

<Pagination.Root>
  <Pagination.PageSizeSelect />
  <Pagination.FirstPageButton />
  <Pagination.PreviousPageButton />
  <Pagination.PageWindow />
  <Pagination.PageButton />
  <Pagination.NextPageButton />
  <Pagination.LastPageButton />
</Pagination.Root>

Usage

import { Pagination } from '@ivaldi/ui'
<Pagination.Composed
  onPageIndexChange={setPageIndex}
  onPageSizeChange={setPageSize}
  pageCount={Math.ceil(data.length / pageSize)}
  pageSize={pageSize}
  pageIndex={pageIndex}
  padding={2}
  itemsLabel="Rows"
/>
<Pagination.Root
  onPageIndexChange={setPageIndex}
  onPageSizeChange={setPageSize}
  pageCount={Math.ceil(data.length / pageSize)}
  pageSize={pageSize}
  pageIndex={pageIndex}
>
  <div className="flex items-center justify-between gap-6">
    <div className="flex items-center gap-2">
      <Text size="xs">Rows per page</Text>
      <Pagination.PageSizeSelect />
    </div>
    <Text size="xs" contrast="low">
      Page {pageIndex + 1} of {pageCount}
    </Text>
    <nav className="flex items-center gap-1 justify-end">
      <Pagination.FirstPageButton />
      <Pagination.PreviousPageButton />
      <Pagination.PageWindow padding={2} />
      <Pagination.NextPageButton />
      <Pagination.LastPageButton />
    </nav>
  </div>
</Pagination.Root>

Pagination.Composed Props

PropTypeDefault
pageIndex*number
onPageIndexChange*function
pageSizenumber
onPageSizeChangefunction
pageCount*number
childrenReactNode
classNamestring
paddingnumber
itemsLabelstring"Items"
hidePageCountboolean
hideFirstLastboolean
hidePrevNextboolean

Pagination.Root Props

PropTypeDefault
pageIndex*number
onPageIndexChange*function
pageSizenumber
onPageSizeChangefunction
pageCount*number
childrenReactNode

Pagination.FirstPageButton Props

PropTypeDefault

Pagination.LastPageButton Props

PropTypeDefault

Pagination.NextPageButton Props

PropTypeDefault

Pagination.PageButton Props

PropTypeDefault

Pagination.PageSizeSelect Props

PropTypeDefault
optionsnumber[]"[5, 10, 20, 30, 40, 50]"

Pagination.PageWindow Props

PropTypeDefault
padding*number

Pagination.PreviousPageButton Props

PropTypeDefault