import React, { forwardRef, type ReactNode } from 'react'; import { tv } from 'tailwind-variants'; import { type ElementProps } from '../../types'; import { cn } from '../../utils/cn'; import { TableProvider, type TableContext } from './table-context'; const tableVariants = tv({ base: 'w-full caption-bottom text-sm', variants: { variant: { default: '', striped: '', }, layout: { auto: 'table-auto', fixed: 'table-fixed', }, size: { sm: '', md: '', lg: '', }, }, }); export interface TableProps extends ElementProps<'table'>, TableContext { tableClassName?: string; wrapperClassName?: string; footerClassName?: string; headerClassName?: string; layout?: 'auto' | 'fixed'; header?: ReactNode; footer?: ReactNode; } const Table = forwardRef( ( { variant = 'default', header, footer, layout = 'auto', size = 'md', className, headerClassName, wrapperClassName, tableClassName, footerClassName, ...props }, ref ) => (
{header ? (
{header}
) : null}
{footer ? (
{footer}
) : null} ) ); Table.displayName = 'Table'; export { Table };