mt-flowbite-react
Version:
Official React components built for Flowbite and Tailwind CSS
47 lines (46 loc) • 2.84 kB
JavaScript
import { jsx as _jsx } from "react/jsx-runtime";
import * as React from "react";
import { cn } from "@/lib/utils";
const Table = React.forwardRef(({ className, ...props }, ref) => (_jsx("div", { className: "w-full overflow-auto", children: _jsx("table", { ref: ref, className: cn("w-full caption-bottom text-sm", className), ...props }) })));
Table.displayName = "Table";
const TableHeader = React.forwardRef(({ className, ...props }, ref) => (_jsx("thead", { ref: ref, className: cn("[&_tr]:border-b", className), ...props })));
TableHeader.displayName = "TableHeader";
const TableBody = React.forwardRef(({ className, ...props }, ref) => (_jsx("tbody", { ref: ref, className: cn("[&_tr:last-child]:border-0", className), ...props })));
TableBody.displayName = "TableBody";
const TableFooter = React.forwardRef(({ className, ...props }, ref) => (_jsx("tfoot", { ref: ref, className: cn("bg-primary font-medium text-primary-foreground", className), ...props })));
TableFooter.displayName = "TableFooter";
const TableRow = React.forwardRef(({ className, ...props }, ref) => (_jsx("tr", { ref: ref, className: cn("border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted", className), ...props })));
TableRow.displayName = "TableRow";
//添加一个可拖放行:
// const DraggableRow2 = React.forwardRef<
// HTMLTableRowElement,
// React.HTMLAttributes<HTMLTableRowElement>
// >(({ className, ...props }, ref) => {
// const [, dropRef] = useDrop({
// accept: 'row',
// drop: (draggedRow: Row<T>) => reorderRow(draggedRow.index, row.index),
// })
// const [{ isDragging }, dragRef, previewRef] = useDrag({
// collect: monitor => ({
// isDragging: monitor.isDragging(),
// }),
// item: () => row,
// type: 'row',
// })
// return <tr
// ref={ref}
// className={cn(
// "border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted",
// className
// )}
// {...props}
// />
// })
// TableRow.displayName = "DraggableRow2"
const TableHead = React.forwardRef(({ className, ...props }, ref) => (_jsx("th", { ref: ref, className: cn("h-8 px-2 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0", className), ...props })));
TableHead.displayName = "TableHead";
const TableCell = React.forwardRef(({ className, ...props }, ref) => (_jsx("td", { ref: ref, className: cn("p-0 align-middle [&:has([role=checkbox])]:pr-0", className), ...props })));
TableCell.displayName = "TableCell";
const TableCaption = React.forwardRef(({ className, ...props }, ref) => (_jsx("caption", { ref: ref, className: cn("mt-2 text-sm text-muted-foreground", className), ...props })));
TableCaption.displayName = "TableCaption";
export { Table, TableHeader, TableBody, TableFooter, TableHead, TableRow, TableCell, TableCaption, };