import type { HTMLAttributes, ReactNode, TdHTMLAttributes } from 'react'; /** * Root props. */ export interface TableProps { /** Table layout mode ("auto" or "fixed"). Default = "auto" */ layout?: 'fixed' | 'auto'; /** Additional classes applied to the table wrapper */ wrapperClass?: string; /** Additional classes applied to the
element */ className?: string; /** Table content (Head + Body + Foot) */ children: ReactNode; /** Accessible caption rendered as a */ className?: string; /** Header cells (TableHeaderCell components) */ children: ReactNode; } /** * — table body section */ export interface TableBodyProps { /** Additional classes applied to */ className?: string; /** Show loading shimmer (overrides children) */ loading?: boolean; /** Number of columns — needed for shimmer loader layout. Defaults to 1 when not provided. */ colSize?: number; /** Number of shimmer rows to show when loading */ rowSize?: number; /** Actual table rows */ children?: ReactNode; } /** * — table footer */ export interface TableFootProps { children: ReactNode; } /** * — rendered when no data is available */ export interface EmptyTableRowProps { /** Column span for empty row */ colSpan?: number; /** Content shown in empty state */ children: ReactNode; /** Optional custom styling */ contentClass?: string; } /** * — regular table cell */ export interface TableCellProps extends TdHTMLAttributes { /** Horizontal alignment */ align?: 'left' | 'center' | 'right'; /** Cell content */ children: ReactNode; /** Additional classes */ className?: string; } /** * — regular row */ export interface TableRowProps extends HTMLAttributes { /** Whether the row highlights on hover */ hoverable?: boolean; } /** * — header cell */ export interface TableHeaderCellProps extends HTMLAttributes { /** Horizontal alignment */ align?: 'left' | 'center' | 'right'; /** Additional classes */ className?: string; /** Label */ children: ReactNode; } /** * shimmer-loader row */ export interface TableRowLoaderProps { colSize: number; rowSize: number; }
element above the header */ caption?: ReactNode; } /** * — table header section */ export interface TableHeadProps { /** Additional classes applied to