import {cornerShapeStencil, createComponent} from '@workday/canvas-kit-react/common'; import {BoxProps, mergeStyles} from '@workday/canvas-kit-react/layout'; import {createStencil, px2rem} from '@workday/canvas-kit-styling'; import {system} from '@workday/canvas-tokens-web'; import {BaseTableBody} from './parts/BaseTableBody'; import {BaseTableCaption} from './parts/BaseTableCaption'; import {BaseTableCell} from './parts/BaseTableCell'; import {BaseTableFooter} from './parts/BaseTableFooter'; import {BaseTableHead} from './parts/BaseTableHead'; import {BaseTableHeader} from './parts/BaseTableHeader'; import {BaseTableRow} from './parts/BaseTableRow'; export interface BaseTableProps extends Omit {} export const baseTableStencil = createStencil({ extends: cornerShapeStencil, base: { ...system.legacy.type.subtext.lg, [cornerShapeStencil.vars.shape]: system.legacy.shape.lg, border: `${px2rem(1)} solid ${system.legacy.color.border.default}`, overflow: 'auto', color: system.color.fg.default, }, }); /** * `BaseTable` is a simple styled compound component that renders a [table](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/table) element. * It is used to present information in a two-dimensional table comprised of rows and columns of cells containing data. * * * ```tsx import {BaseTable} from '@workday/canvas-kit-react/table'; export default function App() { return ( Table Caption Table Header Table Header Table Header Table Header Table Header Table Data Cell Table Header Table Data Cell Table Header Table Data Cell ); } ``` */ export const BaseTable = createComponent('table')({ displayName: 'BaseTable', Component: ({children, ...elemProps}: BaseTableProps, ref, Element) => { return ( {children} ); }, subComponents: { /** * `BaseTable.Caption` renders a [caption](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/caption) element. * * * ```tsx import {BaseTable} from '@workday/canvas-kit-react/table'; export default function App() { return ( Table Caption Table Header Table Cell ); } ``` */ Caption: BaseTableCaption, /** * `BaseTable.Head` renders a [thead](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/thead) element. * * * ```tsx import {BaseTable} from '@workday/canvas-kit-react/table'; export default function App() { return ( Table Header Table Cell ); } ``` */ Head: BaseTableHead, /** * `BaseTable.Body` renders a [tbody](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/tbody) element. * * * ```tsx import {BaseTable} from '@workday/canvas-kit-react/table'; export default function App() { return ( Table Header Table Cell ); } ``` */ Body: BaseTableBody, /** * `BaseTable.Row` renders a [tr](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/tr) element. * * ```tsx import {BaseTable} from '@workday/canvas-kit-react/table'; export default function App() { return ( Table Header Table Cell ); } ``` */ Row: BaseTableRow, /** * `BaseTable.Header` renders a [th](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/th) element. * * * ```tsx import {BaseTable} from '@workday/canvas-kit-react/table'; export default function App() { return ( Table Header Table Cell ); } ``` */ Header: BaseTableHeader, /** * `BaseTable.Cell` renders a [td](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/td) element. * * * ```tsx import {BaseTable} from '@workday/canvas-kit-react/table'; export default function App() { return ( Table Header Table Cell ); } ``` */ Cell: BaseTableCell, /** * `BaseTable.Footer` renders a [tfoot](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/tfoot) element. * * * ```tsx import {BaseTable} from '@workday/canvas-kit-react/table'; export default function App() { return ( Table Header Table Cell ); } ``` */ Footer: BaseTableFooter, }, });