'use client' import * as React from 'react' import { mergeProps } from '@base-ui/react/merge-props' import { useRender } from '@base-ui/react/use-render' import { cn, focusableProps } from '../../internal/utils' import { buttonVariants } from '../button/button-variants' type PaginationVariant = 'outline' | 'soft' type PaginationSize = 'sm' | 'md' | 'lg' interface PaginationContextValue { variant: PaginationVariant size: PaginationSize } const PaginationContext = React.createContext(null) function usePaginationContext() { const ctx = React.useContext(PaginationContext) if (!ctx) { throw new Error('Pagination sub-components must be rendered inside ') } return ctx } interface PaginationProps extends React.ComponentPropsWithoutRef<'nav'> { /** * Link style, shared with every link via context. * @default 'outline' */ variant?: PaginationVariant /** * Link sizing, shared via context. * @default 'md' */ size?: PaginationSize } function Pagination({ className, variant = 'outline', size = 'md', ...props }: PaginationProps) { const ctx = React.useMemo(() => ({ variant, size }), [variant, size]) return (