import Link from 'next/link'; import { cn } from '@/lib/cn'; import { fmtInt } from '@/lib/format'; /** URL-driven pagination (server component). `makeHref(page)` builds the link preserving current filters. */ export function Pagination({ total, page, pages, perPage, makeHref, className }: { total: number; page: number; pages: number; perPage: number; makeHref: (page: number) => string; className?: string }) { if (pages <= 1) return
{fmtInt(total)} results
; const from = (page - 1) * perPage + 1; const to = Math.min(total, page * perPage); const btn = 'inline-flex h-10 min-w-10 items-center justify-center border border-rule px-3 text-sm text-ink-2 hover:bg-surface-2 hover:text-ink'; return ( ); } /** Build a query-string href preserving existing params (page reset unless patched). */ export function withParams(base: string, current: Record