Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
93 changes: 54 additions & 39 deletions packages/demo/src/components/demo/table.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -27,20 +27,22 @@ interface TableDemoProps {
elevation?: Elevation;
}

const defaultCols = "1fr 1fr auto auto auto";

export const TableDemo = ({
variant = "default",
elevation,
}: TableDemoProps) => {
if (variant === "column-sizing") {
return (
<TableContainer tableLayout="fixed" elevation={elevation}>
<TableContainer elevation={elevation} columns="3fr 3fr 100px 100px 60px">
<TableHeader>
<TableRow>
<TableHead className="w-[30%]">Name</TableHead>
<TableHead className="w-[30%]">Email</TableHead>
<TableHead className="w-[100px]">Role</TableHead>
<TableHead className="w-[100px]">Status</TableHead>
<TableHead className="w-[60px]" />
<TableHead>Name</TableHead>
<TableHead>Email</TableHead>
<TableHead>Role</TableHead>
<TableHead>Status</TableHead>
<TableHead />
</TableRow>
</TableHeader>
<TableBody>
Expand Down Expand Up @@ -84,22 +86,23 @@ export const TableDemo = ({

if (variant === "truncation") {
return (
<TableContainer tableLayout="fixed" elevation={elevation}>
<TableContainer
elevation={elevation}
columns="minmax(0,5fr) minmax(0,8fr) 100px 100px 60px"
>
<TableHeader>
<TableRow>
<TableHead className="w-[25%]">Name</TableHead>
<TableHead className="w-[40%]" truncate>
Email
</TableHead>
<TableHead className="w-[100px]">Role</TableHead>
<TableHead className="w-[100px]">Status</TableHead>
<TableHead className="w-[60px]" />
<TableHead>Name</TableHead>
<TableHead className="min-w-0 truncate">Email</TableHead>
<TableHead>Role</TableHead>
<TableHead>Status</TableHead>
<TableHead />
</TableRow>
</TableHeader>
<TableBody>
<TableRow>
<TableCell>Alice Cooper</TableCell>
<TableCell truncate>
<TableCell className="min-w-0 truncate">
alice.cooper.very.long.email.address@example.com
</TableCell>
<TableCell>Admin</TableCell>
Expand All @@ -112,7 +115,7 @@ export const TableDemo = ({
</TableRow>
<TableRow>
<TableCell>Bob Smith</TableCell>
<TableCell truncate>bob@example.com</TableCell>
<TableCell className="min-w-0 truncate">bob@example.com</TableCell>
<TableCell>User</TableCell>
<TableCell>
<Badge variant="success">Active</Badge>
Expand All @@ -123,7 +126,7 @@ export const TableDemo = ({
</TableRow>
<TableRow>
<TableCell>Charlie Brown</TableCell>
<TableCell truncate>
<TableCell className="min-w-0 truncate">
charlie.brown.another.really.long.address@longdomain.example.com
</TableCell>
<TableCell>Viewer</TableCell>
Expand All @@ -142,23 +145,26 @@ export const TableDemo = ({
if (variant === "responsive") {
return (
<div className="@container">
<TableContainer elevation={elevation}>
<TableContainer
elevation={elevation}
className="[--table-columns:1fr_auto_auto] @md:[--table-columns:1fr_1fr_auto_auto] @lg:[--table-columns:1fr_1fr_auto_auto_auto]"
>
<TableHeader>
<TableRow>
<TableHead>Name</TableHead>
<TableHead className="hidden @md:table-cell">Email</TableHead>
<TableHead className="hidden @lg:table-cell">Role</TableHead>
<TableHead className="hidden @md:block">Email</TableHead>
<TableHead className="hidden @lg:block">Role</TableHead>
<TableHead>Status</TableHead>
<TableHead className="w-[1%]" />
<TableHead />
</TableRow>
</TableHeader>
<TableBody>
<TableRow>
<TableCell>Alice Cooper</TableCell>
<TableCell className="hidden @md:table-cell">
<TableCell className="hidden @md:block">
alice@example.com
</TableCell>
<TableCell className="hidden @lg:table-cell">Admin</TableCell>
<TableCell className="hidden @lg:block">Admin</TableCell>
<TableCell>
<Badge variant="success">Active</Badge>
</TableCell>
Expand All @@ -168,10 +174,10 @@ export const TableDemo = ({
</TableRow>
<TableRow>
<TableCell>Bob Smith</TableCell>
<TableCell className="hidden @md:table-cell">
<TableCell className="hidden @md:block">
bob@example.com
</TableCell>
<TableCell className="hidden @lg:table-cell">User</TableCell>
<TableCell className="hidden @lg:block">User</TableCell>
<TableCell>
<Badge variant="success">Active</Badge>
</TableCell>
Expand All @@ -181,10 +187,10 @@ export const TableDemo = ({
</TableRow>
<TableRow>
<TableCell>Charlie Brown</TableCell>
<TableCell className="hidden @md:table-cell">
<TableCell className="hidden @md:block">
charlie@example.com
</TableCell>
<TableCell className="hidden @lg:table-cell">Viewer</TableCell>
<TableCell className="hidden @lg:block">Viewer</TableCell>
<TableCell>
<Badge variant="neutral">Inactive</Badge>
</TableCell>
Expand All @@ -200,14 +206,19 @@ export const TableDemo = ({

if (variant === "sticky-header") {
return (
<TableContainer elevation={elevation} className="max-h-[240px]" border>
<TableContainer
elevation={elevation}
className="max-h-[240px]"
columns={defaultCols}
border
>
<TableHeader sticky>
<TableRow>
<TableHead>Name</TableHead>
<TableHead>Email</TableHead>
<TableHead>Role</TableHead>
<TableHead>Status</TableHead>
<TableHead className="w-[1%]" />
<TableHead />
</TableRow>
</TableHeader>
<TableBody>
Expand Down Expand Up @@ -282,7 +293,7 @@ export const TableDemo = ({

if (variant === "with-sorter") {
return (
<TableContainer elevation={elevation}>
<TableContainer elevation={elevation} columns={defaultCols}>
<TableHeader>
<TableRow>
<TableHead>
Expand Down Expand Up @@ -325,7 +336,7 @@ export const TableDemo = ({
Status
</SortButton>
</TableHead>
<TableHead className="w-[1%]" />
<TableHead />
</TableRow>
</TableHeader>
<TableBody>
Expand Down Expand Up @@ -369,20 +380,20 @@ export const TableDemo = ({

if (variant === "empty-state") {
return (
<TableContainer elevation={elevation} border>
<TableContainer elevation={elevation} columns={defaultCols} border>
<TableHeader>
<TableRow>
<TableHead>Name</TableHead>
<TableHead>Email</TableHead>
<TableHead>Role</TableHead>
<TableHead>Status</TableHead>
<TableHead className="w-[1%]" />
<TableHead />
</TableRow>
</TableHeader>
<TableBody>
<TableRow>
<TableCell
colSpan={5}
style={{ gridColumn: "1 / -1" }}
className="text-text-secondary py-8 text-center"
>
No data available
Expand All @@ -395,19 +406,19 @@ export const TableDemo = ({

if (variant === "empty-state-custom") {
return (
<TableContainer elevation={elevation} border>
<TableContainer elevation={elevation} columns={defaultCols} border>
<TableHeader>
<TableRow>
<TableHead>Name</TableHead>
<TableHead>Email</TableHead>
<TableHead>Role</TableHead>
<TableHead>Status</TableHead>
<TableHead className="w-[1%]" />
<TableHead />
</TableRow>
</TableHeader>
<TableBody>
<TableRow>
<TableCell colSpan={5}>
<TableCell style={{ gridColumn: "1 / -1" }}>
<EmptyTableState
icon="SearchX"
title="No Members Found"
Expand All @@ -423,14 +434,18 @@ export const TableDemo = ({
}

return (
<TableContainer elevation={elevation} border={variant === "with-border"}>
<TableContainer
elevation={elevation}
columns={defaultCols}
border={variant === "with-border"}
>
<TableHeader>
<TableRow>
<TableHead>Name</TableHead>
<TableHead>Email</TableHead>
<TableHead>Role</TableHead>
<TableHead>Status</TableHead>
<TableHead className="w-[1%]" />
<TableHead />
</TableRow>
</TableHeader>
<TableBody>
Expand Down
Loading
Loading