| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116 |
- "use client"
- import * as React from "react"
- import { cn } from "@/lib/utils"
- function Table({ className, ...props }: React.ComponentProps<"table">) {
- return (
- <div
- data-slot="table-container"
- className="relative w-full overflow-x-auto"
- >
- <table
- data-slot="table"
- className={cn("w-full caption-bottom text-sm", className)}
- {...props}
- />
- </div>
- )
- }
- function TableHeader({ className, ...props }: React.ComponentProps<"thead">) {
- return (
- <thead
- data-slot="table-header"
- className={cn("[&_tr]:border-b", className)}
- {...props}
- />
- )
- }
- function TableBody({ className, ...props }: React.ComponentProps<"tbody">) {
- return (
- <tbody
- data-slot="table-body"
- className={cn("[&_tr:last-child]:border-0", className)}
- {...props}
- />
- )
- }
- function TableFooter({ className, ...props }: React.ComponentProps<"tfoot">) {
- return (
- <tfoot
- data-slot="table-footer"
- className={cn(
- "bg-muted/50 border-t font-medium [&>tr]:last:border-b-0",
- className
- )}
- {...props}
- />
- )
- }
- function TableRow({ className, ...props }: React.ComponentProps<"tr">) {
- return (
- <tr
- data-slot="table-row"
- className={cn(
- "hover:bg-muted/50 data-[state=selected]:bg-muted border-b transition-colors",
- className
- )}
- {...props}
- />
- )
- }
- function TableHead({ className, ...props }: React.ComponentProps<"th">) {
- return (
- <th
- data-slot="table-head"
- className={cn(
- "text-foreground h-10 px-2 text-left align-middle font-medium whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",
- className
- )}
- {...props}
- />
- )
- }
- function TableCell({ className, ...props }: React.ComponentProps<"td">) {
- return (
- <td
- data-slot="table-cell"
- className={cn(
- "p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",
- className
- )}
- {...props}
- />
- )
- }
- function TableCaption({
- className,
- ...props
- }: React.ComponentProps<"caption">) {
- return (
- <caption
- data-slot="table-caption"
- className={cn("text-muted-foreground mt-4 text-sm", className)}
- {...props}
- />
- )
- }
- export {
- Table,
- TableHeader,
- TableBody,
- TableFooter,
- TableHead,
- TableRow,
- TableCell,
- TableCaption,
- }
|