import * as React from 'react'; import {createComponent} from '@workday/canvas-kit-react/common'; import {FlexProps, mergeStyles} from '@workday/canvas-kit-react/layout'; import {CSProps, createStencil, handleCsProp} from '@workday/canvas-kit-styling'; import {system} from '@workday/canvas-tokens-web'; import {ListItem, ListItemProps} from './common/List'; import {PaginationModel} from './types'; import {PaginationContext} from './usePaginationModel'; export interface PageListProps extends Omit { model?: PaginationModel; children?: (model: PaginationModel) => React.ReactNode[] | React.ReactNode; } export const paginationPageListStencil = createStencil({ base: { display: 'flex', margin: 0, paddingInline: 0, gap: system.legacy.gap.xs, }, }); export const PageList = createComponent('ol')({ displayName: 'Pagination.PageList', Component({children, ...elemProps}: PageListProps, ref, Element) { const model = React.useContext(PaginationContext); return ( {typeof children === 'function' ? children(model) : children} ); }, }); export interface PageListItemProps extends ListItemProps, CSProps {} export const PageListItem = createComponent('li')({ displayName: 'Pagination.PageListItem', Component({children, ...elemProps}: PageListItemProps, ref, Element) { return ( {children} ); }, });