import { HTMLChakraProps, SlotRecipeProps } from '@chakra-ui/react/styled-system'; export type TableRecipeProps = SlotRecipeProps<"nimbusTable">; /** * Props for the Table.Root component * * The root table container that wraps all table parts. * * @description Use Table for **static, read-only data displays**. It renders * semantic HTML table markup without interactive features. Perfect for small * datasets (< 50 rows), product specifications, pricing tiers, or reference content. * * **When to use Table (simple):** * - Static content displays (specifications, comparisons, pricing) * - Small datasets (< 50 rows) without pagination needs * - Read-only data that users only need to view * - Simple layouts without sorting, filtering, or selection * * **When to upgrade to DataTable (complex):** * - Sorting columns in ascending/descending order * - Row selection for bulk actions * - Column management (show/hide, reorder, resize) * - Search and filtering across data * - Pagination for large datasets (> 50 rows) * - Server-side data operations * - Nested/hierarchical data with expansion * * @see {@link DataTable} for interactive tables with sorting, filtering, and selection */ export type TableRootProps = HTMLChakraProps<"table", TableRecipeProps> & { ref?: React.Ref; }; /** * Props for the Table.Caption component * * Optional caption/title for the table. */ export type TableCaptionProps = HTMLChakraProps<"caption">; /** * Props for the Table.Header component * * The table header section (thead element). */ export type TableHeaderProps = HTMLChakraProps<"thead">; /** * Props for the Table.Body component * * The table body section (tbody element). */ export type TableBodyProps = HTMLChakraProps<"tbody">; /** * Props for the Table.Footer component * * The table footer section (tfoot element). */ export type TableFooterProps = HTMLChakraProps<"tfoot">; /** * Props for the Table.Row component * * Individual table row (tr element). */ export type TableRowProps = HTMLChakraProps<"tr">; /** * Props for the Table.ColumnHeader component * * Header cell (th element) used in header rows. */ export type TableColumnHeaderProps = HTMLChakraProps<"th">; /** * Props for the Table.Cell component * * Data cell (td element) used in body and footer rows. */ export type TableCellProps = HTMLChakraProps<"td">; /** * Props for the Table.ScrollArea component * * Wrapper for tables with scrolling behavior. */ export type TableScrollAreaProps = HTMLChakraProps<"div"> & { ref?: React.Ref; }; /** * Props for the Table.ColumnGroup component * * Column group container (colgroup element) for defining column widths. */ export type TableColumnGroupProps = HTMLChakraProps<"colgroup"> & { ref?: React.Ref; }; /** * Props for the Table.Column component * * Column definition (col element) for setting individual column properties. * The primary prop for this component is `htmlWidth` which sets the width attribute. */ export type TableColumnProps = HTMLChakraProps<"col"> & { ref?: React.Ref; };