"use client" import * as React from "react" import { cn } from "@/lib/utils" // Table == lux.cloud's `.vtable`. Two decisions carry the look: // // 1. Column heads are 12px uppercase with 0.04em tracking in muted ink — a // label, not a row of data. They own no rule of their own. // 2. Separation is a border on the TOP of every row, so the header is divided // from the body by the first row's own line and the table ends flush with // no trailing rule. (The stock shadcn table draws border-b on each row and // then has to special-case the last one away.) const Table = React.forwardRef>( ({ className, ...props }, ref) => (
) ) Table.displayName = "Table" const TableHeader = React.forwardRef>( ({ className, ...props }, ref) => ) TableHeader.displayName = "TableHeader" const TableBody = React.forwardRef>( ({ className, ...props }, ref) => ) TableBody.displayName = "TableBody" const TableFooter = React.forwardRef>( ({ className, ...props }, ref) => ( ) ) TableFooter.displayName = "TableFooter" const TableRow = React.forwardRef>( ({ className, ...props }, ref) => ( ) ) TableRow.displayName = "TableRow" const TableHead = React.forwardRef>( ({ className, ...props }, ref) => (
[role=checkbox]]:translate-y-[2px]", className )} {...props} /> ) ) TableHead.displayName = "TableHead" const TableCell = React.forwardRef>( ({ className, ...props }, ref) => ( [role=checkbox]]:translate-y-[2px]", className )} {...props} /> ) ) TableCell.displayName = "TableCell" const TableCaption = React.forwardRef>( ({ className, ...props }, ref) => (
) ) TableCaption.displayName = "TableCaption" export { Table, TableHeader, TableBody, TableFooter, TableHead, TableRow, TableCell, TableCaption }