import { type Accessor, type JSX, type Setter, createContext, useContext, } from "solid-js"; export interface PaginationContextValue { count: Accessor; siblingCount: Accessor; showFirst: Accessor; showLast: Accessor; fixedItems: Accessor; isDisabled: Accessor; renderItem: (page: number) => JSX.Element; renderEllipsis: () => JSX.Element; page: Accessor; setPage: Setter; } export const PaginationContext = createContext(); export function usePaginationContext() { const context = useContext(PaginationContext); if (context === undefined) { throw new Error( "[kobalte]: `usePaginationContext` must be used within a `Pagination` component", ); } return context; }