import {createComponent} from '@workday/canvas-kit-react/common'; import {FlexProps, mergeStyles} from '@workday/canvas-kit-react/layout'; import {createStencil} from '@workday/canvas-kit-styling'; import {AdditionalDetails} from './AdditionalDetails'; import { JumpToFirstButton, JumpToLastButton, PaginationControls, StepToNextButton, StepToPreviousButton, } from './Controls'; import {GoToForm} from './GoTo/Form'; import {GoToLabel} from './GoTo/Label'; import {GoToTextInput} from './GoTo/TextInput'; import {PageButton} from './PageButton'; import {PageList, PageListItem} from './PageList'; import {PaginationModel} from './types'; import { PaginationContext, UsePaginationModelConfig, usePaginationModel, } from './usePaginationModel'; export {PaginationContext}; export type PaginationProps = PaginationNavProps & { lastPage?: number; firstPage?: number; initialCurrentPage?: number; rangeSize?: number; model?: PaginationModel; onPageChange?: (pageNumber: number) => void; }; function useDefaultModel(model: T | undefined, config: C, fn: (config: C) => T) { return model || fn(config); } export interface PaginationNavProps extends FlexProps { 'aria-label': string; } export const paginationStencil = createStencil({ base: { display: 'inline-flex', flexDirection: 'column', alignItems: 'center', }, }); /** * `Pagination` is a container component rendered as a `