import * as React from 'react'; import { ChevronLeftIcon, ChevronRightIcon, MoreHorizontalIcon } from 'lucide-react'; import { cn } from '../../shared/utils'; import { Button, buttonVariants } from '../button'; /** * Page navigation controls for paginated data sets. * * @description * Composes horizontal pagination with numbered links, ellipses, and * Previous/Next controls. Follows ARIA navigation landmark patterns. * * @ai-rules * 1. Compose in order: `Pagination > PaginationContent > PaginationItem > (PaginationLink | PaginationNext | PaginationPrevious)`. * 2. In SPAs, set `href="#"` on `` and handle page change via `onClick` to prevent native page reloads. * 3. Mark the currently active page with `isActive={true}` on ``. */ interface PaginationProps extends React.ComponentProps<'nav'> { /** Aria-label for the navigation landmark. @default "pagination" */ navLabel?: string; } function Pagination({ className, navLabel = 'pagination', ...props }: PaginationProps) { return (