Table
adn-ui/tableFreeComponent
A responsive table component.
Live preview
live · rendered by the registry
Rendered by adn-ui on their own page — this is the component running, not a screenshot of it.Install it
npx shadcn@latest add https://ui.awaiden.com/r/table.jsonSource
1"use client";23import "./table.css";4import type React from "react";5import { cn } from "tailwind-variants";67import { TableContext, useTableContext } from "./table.context";8import { tableVariants, type TableVariants } from "./table.variants";910export type TableProps = TableVariants & React.HTMLAttributes<HTMLTableElement>;1112export const TableRoot = ({ children, className, ...props }: TableProps) => {13 const slots = tableVariants();1415 return (16 <TableContext.Provider value={{ slots }}>17 <div className={slots.root()}>18 <table className={cn(slots.table(), className)} {...props}>19 {children}20 </table>21 </div>22 </TableContext.Provider>23 );24};2526export type TableHeaderProps = React.HTMLAttributes<HTMLTableSectionElement>;2728export const TableHeader = ({ className, ...props }: TableHeaderProps) => {29 const { slots } = useTableContext();30 return <thead className={cn(slots.header(), className)} {...props} />;31};3233export type TableBodyProps = React.HTMLAttributes<HTMLTableSectionElement>;3435export const TableBody = ({ className, ...props }: TableBodyProps) => {36 const { slots } = useTableContext();37 return <tbody className={cn(slots.body(), className)} {...props} />;38};3940export type TableFooterProps = React.HTMLAttributes<HTMLTableSectionElement>;4142export const TableFooter = ({ className, ...props }: TableFooterProps) => {43 const { slots } = useTableContext();44 return <tfoot className={cn(slots.footer(), className)} {...props} />;45};4647export type TableRowProps = React.HTMLAttributes<HTMLTableRowElement>;4849export const TableRow = ({ className, ...props }: TableRowProps) => {50 const { slots } = useTableContext();51 return <tr className={cn(slots.row(), className)} {...props} />;52};5354export type TableHeadProps = React.ThHTMLAttributes<HTMLTableCellElement>;5556export const TableHead = ({ className, ...props }: TableHeadProps) => {57 const { slots } = useTableContext();58 return <th className={cn(slots.head(), className)} {...props} />;59};6061export type TableCellProps = React.TdHTMLAttributes<HTMLTableCellElement>;6263export const TableCell = ({ className, ...props }: TableCellProps) => {64 const { slots } = useTableContext();65 return <td className={cn(slots.cell(), className)} {...props} />;66};6768export type TableCaptionProps = React.HTMLAttributes<HTMLTableCaptionElement>;6970export const TableCaption = ({ className, ...props }: TableCaptionProps) => {71 const { slots } = useTableContext();72// … truncated
What it pulls in
npm packages
Files it writes
More from adn-ui
All 46 items| Component | Registry | Kind | Access | Installs | Command |
|---|---|---|---|---|---|
| Accordionaccordion | adn-ui | Components | Free | 2 deps · 5 files | |
| Alert Dialogalert-dialog | adn-ui | Components | Free | 2 deps · 5 files | |
| Aspect Ratioaspect-ratio | adn-ui | Components | Free | 1 dep · 5 files | |
| Autocompleteautocomplete | adn-ui | Components | Free | 2 deps · 5 files | |
| Avataravatar | adn-ui | Components | Free | 2 deps · 5 files | |
| Badgebadge | adn-ui | Components | Free | 1 dep · 5 files | |
| Breadcrumbbreadcrumb | adn-ui | Components | Free | 1 dep · 5 files | |
| Buttonbutton | adn-ui | Components | Free | 1 dep · 4 files |
