UNPKG

@dnb/eufemia

Version:

DNB Eufemia Design System UI Library

54 lines (53 loc) 1.75 kB
"use client"; import { useContext } from 'react'; import { clsx } from 'clsx'; import TableSortButton from "./TableSortButton.js"; import TableHelpButton from "./TableHelpButton.js"; import { TableTrContext } from "./TableTrContext.js"; import { TableThContext } from "./TableThContext.js"; import { jsx as _jsx } from "react/jsx-runtime"; export default function Th(componentProps) { const { className, children, sortable, active, reversed, noWrap, highlight: highlightProp, variant, sortedBefore, ...props } = componentProps; const trContext = useContext(TableTrContext); const highlight = highlightProp || trContext?.highlight; const role = props.scope === 'row' || props.scope === 'rowgroup' ? 'rowheader' : 'columnheader'; const scope = props.scope === 'row' ? 'row' : props.scope || 'col'; const ariaSort = sortable ? reversed ? 'descending' : 'ascending' : undefined; return _jsx("th", { role: role, scope: scope, "aria-sort": ariaSort, className: clsx('dnb-table__th', sortable && 'dnb-table--sortable', active && 'dnb-table--active', reversed && 'dnb-table--reversed', sortedBefore && !active && 'dnb-table--sort-off', noWrap && 'dnb-table--no-wrap', highlight && 'dnb-table__th--highlight', variant && `dnb-table__th--${variant}`, className), ...props, children: _jsx(TableThContext, { value: { reversed }, children: children }) }); } function Horizontal({ className = null, ...rest }) { return _jsx("div", { ...rest, className: clsx('dnb-table__th__horizontal', className) }); } Th.SortButton = TableSortButton; Th.HelpButton = TableHelpButton; Th.Horizontal = Horizontal; //# sourceMappingURL=TableTh.js.map