UNPKG

koval-ui

Version:

React components collection with minimalistic design. Supports theming, layout, and input validation.

1 lines 2.92 kB
{"version":3,"file":"TableCell.cjs","sources":["../../../../src/lib/DataTable/TableCell.tsx"],"sourcesContent":["import type {ReactNode} from 'react';\nimport {useMemo, forwardRef} from 'react';\nimport type {ColumnPinningPosition} from '@tanstack/react-table';\nimport {useLocalTheme} from 'css-vars-hook';\nimport classNames from 'classnames';\n\nimport {useLinkRefs} from '@/internal/hooks/useLinkRefs.ts';\n\nimport classes from './DataTable.module.css';\n\nexport type Props = {\n children?: ReactNode;\n leftMargin?: number;\n rightMargin?: number;\n isHighlighted?: boolean;\n isPinned?: ColumnPinningPosition;\n classname?: string;\n as: 'td' | 'th';\n};\n\nexport const TableCell = forwardRef<HTMLTableCellElement, Props>(\n (\n {children, isPinned, leftMargin, rightMargin, classname, as = 'th', isHighlighted = false},\n ref\n ) => {\n const {LocalRoot, ref: localRef} = useLocalTheme<HTMLTableCellElement>();\n useLinkRefs(ref, localRef);\n const theme = useMemo(\n () => ({\n ...(leftMargin && {'left-margin': leftMargin}),\n ...(rightMargin && {'right-margin': rightMargin}),\n }),\n [leftMargin, rightMargin]\n );\n\n return (\n <LocalRoot\n theme={theme}\n as={as}\n className={classNames(\n classes.tableCell,\n {\n [classes.highlighted]: isHighlighted,\n [classes.pinned]: Boolean(isPinned),\n [classes.pinnedHeader]: Boolean(isPinned) && as === 'th',\n [classes.left]: isPinned === 'left',\n [classes.right]: isPinned === 'right',\n },\n classname\n )}>\n {children}\n </LocalRoot>\n );\n }\n);\n\nTableCell.displayName = 'TableCell';\n"],"names":["TableCell","forwardRef","children","isPinned","leftMargin","rightMargin","classname","as","isHighlighted","ref","LocalRoot","localRef","useLocalTheme","useLinkRefs","theme","useMemo","jsx","classNames","classes"],"mappings":"kSAoBaA,EAAYC,EAAA,WACrB,CACI,CAAC,SAAAC,EAAU,SAAAC,EAAU,WAAAC,EAAY,YAAAC,EAAa,UAAAC,EAAW,GAAAC,EAAK,KAAM,cAAAC,EAAgB,EAAK,EACzFC,IACC,CACD,KAAM,CAAC,UAAAC,EAAW,IAAKC,CAAA,EAAYC,EAAAA,cAAoC,EACvEC,EAAA,YAAYJ,EAAKE,CAAQ,EACzB,MAAMG,EAAQC,EAAA,QACV,KAAO,CACH,GAAIX,GAAc,CAAC,cAAeA,CAAU,EAC5C,GAAIC,GAAe,CAAC,eAAgBA,CAAW,CAAA,GAEnD,CAACD,EAAYC,CAAW,CAC5B,EAGI,OAAAW,EAAA,IAACN,EAAA,CACG,MAAAI,EACA,GAAAP,EACA,UAAWU,EACPC,EAAAA,QAAQ,UACR,CACI,CAACA,EAAAA,QAAQ,WAAW,EAAGV,EACvB,CAACU,UAAQ,MAAM,EAAG,EAAQf,EAC1B,CAACe,EAAAA,QAAQ,YAAY,EAAG,EAAQf,GAAaI,IAAO,KACpD,CAACW,EAAA,QAAQ,IAAI,EAAGf,IAAa,OAC7B,CAACe,EAAA,QAAQ,KAAK,EAAGf,IAAa,OAClC,EACAG,CACJ,EACC,SAAAJ,CAAA,CACL,CAAA,CAGZ,EAEAF,EAAU,YAAc"}