import React, { ReactNode, ElementType } from 'react'; import { Box, BoxProps } from './primitives/Box'; interface TableProps extends BoxProps<'table'> { children: ReactNode; } export function Table({ children, className = '', ...props }: TableProps) { const { border, translate, ...rest } = props; return ( {children}
); } interface TableHeaderProps extends BoxProps<'thead'> { children: ReactNode; } export function TableHeader({ children, className = '', ...props }: TableHeaderProps) { return ( {children} ); } export const TableHead = TableHeader; interface TableBodyProps extends BoxProps<'tbody'> { children: ReactNode; } export function TableBody({ children, className = '', ...props }: TableBodyProps) { return ( {children} ); } interface TableRowProps extends BoxProps<'tr'> { children: ReactNode; hoverBg?: string; clickable?: boolean; variant?: string; } export function TableRow({ children, className = '', hoverBg, clickable, variant, ...props }: TableRowProps) { const classes = [ 'transition-colors', clickable || props.onClick ? 'cursor-pointer' : '', hoverBg ? `hover:${hoverBg}` : (clickable || props.onClick ? 'hover:bg-white/5' : ''), className ].filter(Boolean).join(' '); return ( {children} ); } interface TableCellProps extends BoxProps<'td'> { children: ReactNode; } export function TableHeaderCell({ children, className = '', ...props }: TableCellProps) { const classes = [ 'px-4 py-3 text-xs font-bold text-gray-400 uppercase tracking-wider', className ].filter(Boolean).join(' '); return ( {children} ); } export function TableCell({ children, className = '', ...props }: TableCellProps) { const classes = [ 'px-4 py-4 text-sm text-gray-300', className ].filter(Boolean).join(' '); return ( {children} ); }