| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 |
- 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(
- 'border-t bg-muted/50 font-medium [&>tr]:last:border-b-0',
- className
- )}
- {...props}
- />
- )
- }
- function TableRow({ className, ...props }: React.ComponentProps<'tr'>) {
- return (
- <tr
- data-slot='table-row'
- className={cn(
- 'border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted',
- className
- )}
- {...props}
- />
- )
- }
- function TableHead({ className, ...props }: React.ComponentProps<'th'>) {
- return (
- <th
- data-slot='table-head'
- className={cn(
- 'h-10 px-2 text-start align-middle font-medium whitespace-nowrap text-foreground *:[[role=checkbox]]:translate-y-0.5',
- className
- )}
- {...props}
- />
- )
- }
- function TableCell({ className, ...props }: React.ComponentProps<'td'>) {
- return (
- <td
- data-slot='table-cell'
- className={cn(
- 'p-2 align-middle whitespace-nowrap *:[[role=checkbox]]:translate-y-0.5',
- className
- )}
- {...props}
- />
- )
- }
- function TableCaption({
- className,
- ...props
- }: React.ComponentProps<'caption'>) {
- return (
- <caption
- data-slot='table-caption'
- className={cn('mt-4 text-sm text-muted-foreground', className)}
- {...props}
- />
- )
- }
- export {
- Table,
- TableHeader,
- TableBody,
- TableFooter,
- TableHead,
- TableRow,
- TableCell,
- TableCaption,
- }
|