///
import { MQ } from '../utils';
import { LogicalProps } from '../utils/logical-properties';
import { EventData } from '../instrumentation';
import { ComponentOverrides, Override } from '../utils/overrides';
import { NewsKitIconProps } from '../icons';
import { ButtonOrButtonLinkProps, ButtonProps } from '../button';
import { IconButtonProps } from '../icon-button/types';
import { PaginationFirstItemProps } from './components/first-item';
import { PaginationLastItemProps } from './components/last-item';
import { PaginationNextItemProps } from './components/next-item';
import { PaginationPrevItemProps } from './components/prev-item';
import { TextBlockProps } from '../text-block';
export type PaginationSize = 'small' | 'medium' | 'large';
export type PaginationItemType = 'paginationItem' | 'paginationItemTruncation' | 'paginationItemFirst' | 'paginationItemPrev' | 'paginationItemNext' | 'paginationItemLast';
export type PaginationLayoutItem = number | '-';
export interface PaginationItemsLayoutInput {
page: number;
lastPage: number;
truncation: boolean;
siblings: number;
boundaries: number;
}
export interface PaginationItemAriaInput {
itemType?: PaginationItemType;
pageNumber?: number;
selected?: boolean;
disabled?: boolean;
}
export interface PaginationProps extends React.AriaAttributes {
children: Exclude;
size?: PaginationSize;
pageSize: number;
page?: number;
defaultPage?: number;
totalItems: number;
buildHref?: (pageNumber: number) => string;
onPageChange?: (pageNumber: number) => void;
overrides?: {
stylePreset?: MQ;
typographyPreset?: MQ;
gap?: MQ;
} & LogicalProps;
}
export interface PaginationItemDescriptionProps extends ComponentOverrides {
selected?: boolean;
pageNumber?: number;
lastPage?: number;
}
export interface PaginationItemsProps extends ButtonProps, EventData {
children?: React.ReactNode;
truncation?: boolean;
siblings?: number;
boundaries?: number;
overrides?: ButtonProps['overrides'] & {
icon?: Override;
itemButton?: Override;
itemDescription?: Override;
};
}
export interface PaginationItemProps extends EventData {
children?: React.ReactNode;
ref?: React.RefObject | React.ForwardedRef;
itemType?: PaginationItemType;
pageNumber?: number;
pageSize?: number;
totalItems?: number;
href?: string;
selected?: boolean;
lastPage?: number;
changePage?: (pageNumber: number) => void;
overrides?: ButtonProps['overrides'] & {
icon?: Override;
itemButton?: Override;
itemDescription?: Override;
};
}
export interface PaginationProviderContext {
size: PaginationSize;
pageSize: number;
totalItems: number;
buildHref?: (pageNumber: number) => string;
changePage: (pageNumber: number) => void;
page: number;
lastPage: number;
getFirstItemProps: (props: PaginationFirstItemProps) => IconButtonProps;
getPrevItemProps: (props: PaginationPrevItemProps) => IconButtonProps;
getNextItemProps: (props: PaginationNextItemProps) => IconButtonProps;
getLastItemProps: (props: PaginationLastItemProps) => IconButtonProps;
}
//# sourceMappingURL=types.d.ts.map