Name | Email | Role | |
---|---|---|---|
John Walton | Engineering | ||
Sarah Chandler | Design | ||
Susan Best | Product |
"use client";
import React from "react";
import { Badge } from "@/ui/components/Badge";
import { DropdownMenu } from "@/ui/components/DropdownMenu";
import { IconButton } from "@/ui/components/IconButton";
import { Table } from "@/ui/components/Table";
import { FeatherEdit2 } from "@subframe/core";
import { FeatherMoreHorizontal } from "@subframe/core";
import { FeatherPlus } from "@subframe/core";
import { FeatherStar } from "@subframe/core";
import { FeatherTrash } from "@subframe/core";
import * as SubframeCore from "@subframe/core";
function TableExample() {
return (
<Table
header={
<Table.HeaderRow>
<Table.HeaderCell>Name</Table.HeaderCell>
<Table.HeaderCell>Email</Table.HeaderCell>
<Table.HeaderCell>Role</Table.HeaderCell>
</Table.HeaderRow>
}
>
<Table.Row>
<Table.Cell>
<span className="whitespace-nowrap text-body-bold font-body-bold text-neutral-700">
John Walton
</span>
</Table.Cell>
<Table.Cell>
<span className="whitespace-nowrap text-body font-body text-neutral-500">
[email protected]
</span>
</Table.Cell>
<Table.Cell>
<Badge>Engineering</Badge>
</Table.Cell>
<Table.Cell>
<div className="flex grow shrink-0 basis-0 items-center justify-end">
<SubframeCore.DropdownMenu.Root>
<SubframeCore.DropdownMenu.Trigger asChild={true}>
<IconButton
size="medium"
icon={<FeatherMoreHorizontal />}
onClick={(event: React.MouseEvent<HTMLButtonElement>) => {}}
/>
</SubframeCore.DropdownMenu.Trigger>
<SubframeCore.DropdownMenu.Portal>
<SubframeCore.DropdownMenu.Content
side="bottom"
align="end"
sideOffset={8}
asChild={true}
>
<DropdownMenu>
<DropdownMenu.DropdownItem icon={<FeatherStar />}>
Favorite
</DropdownMenu.DropdownItem>
<DropdownMenu.DropdownItem icon={<FeatherPlus />}>
Add
</DropdownMenu.DropdownItem>
<DropdownMenu.DropdownItem icon={<FeatherEdit2 />}>
Edit
</DropdownMenu.DropdownItem>
<DropdownMenu.DropdownItem icon={<FeatherTrash />}>
Delete
</DropdownMenu.DropdownItem>
</DropdownMenu>
</SubframeCore.DropdownMenu.Content>
</SubframeCore.DropdownMenu.Portal>
</SubframeCore.DropdownMenu.Root>
</div>
</Table.Cell>
</Table.Row>
<Table.Row>
<Table.Cell>
<span className="whitespace-nowrap text-body-bold font-body-bold text-neutral-700">
Sarah Chandler
</span>
</Table.Cell>
<Table.Cell>
<span className="whitespace-nowrap text-body font-body text-neutral-500">
[email protected]
</span>
</Table.Cell>
<Table.Cell>
<Badge variant="warning">Design</Badge>
</Table.Cell>
<Table.Cell>
<div className="flex grow shrink-0 basis-0 items-center justify-end">
<SubframeCore.DropdownMenu.Root>
<SubframeCore.DropdownMenu.Trigger asChild={true}>
<IconButton
size="medium"
icon={<FeatherMoreHorizontal />}
onClick={(event: React.MouseEvent<HTMLButtonElement>) => {}}
/>
</SubframeCore.DropdownMenu.Trigger>
<SubframeCore.DropdownMenu.Portal>
<SubframeCore.DropdownMenu.Content
side="bottom"
align="end"
sideOffset={8}
asChild={true}
>
<DropdownMenu>
<DropdownMenu.DropdownItem icon={<FeatherStar />}>
Favorite
</DropdownMenu.DropdownItem>
<DropdownMenu.DropdownItem icon={<FeatherPlus />}>
Add
</DropdownMenu.DropdownItem>
<DropdownMenu.DropdownItem icon={<FeatherEdit2 />}>
Edit
</DropdownMenu.DropdownItem>
<DropdownMenu.DropdownItem icon={<FeatherTrash />}>
Delete
</DropdownMenu.DropdownItem>
</DropdownMenu>
</SubframeCore.DropdownMenu.Content>
</SubframeCore.DropdownMenu.Portal>
</SubframeCore.DropdownMenu.Root>
</div>
</Table.Cell>
</Table.Row>
<Table.Row>
<Table.Cell>
<span className="whitespace-nowrap text-body-bold font-body-bold text-neutral-700">
Susan Best
</span>
</Table.Cell>
<Table.Cell>
<span className="whitespace-nowrap text-body font-body text-neutral-500">
[email protected]
</span>
</Table.Cell>
<Table.Cell>
<Badge variant="success">Product</Badge>
</Table.Cell>
<Table.Cell>
<div className="flex grow shrink-0 basis-0 items-center justify-end">
<SubframeCore.DropdownMenu.Root>
<SubframeCore.DropdownMenu.Trigger asChild={true}>
<IconButton
size="medium"
icon={<FeatherMoreHorizontal />}
onClick={(event: React.MouseEvent<HTMLButtonElement>) => {}}
/>
</SubframeCore.DropdownMenu.Trigger>
<SubframeCore.DropdownMenu.Portal>
<SubframeCore.DropdownMenu.Content
side="bottom"
align="end"
sideOffset={8}
asChild={true}
>
<DropdownMenu>
<DropdownMenu.DropdownItem icon={<FeatherStar />}>
Favorite
</DropdownMenu.DropdownItem>
<DropdownMenu.DropdownItem icon={<FeatherPlus />}>
Add
</DropdownMenu.DropdownItem>
<DropdownMenu.DropdownItem icon={<FeatherEdit2 />}>
Edit
</DropdownMenu.DropdownItem>
<DropdownMenu.DropdownItem icon={<FeatherTrash />}>
Delete
</DropdownMenu.DropdownItem>
</DropdownMenu>
</SubframeCore.DropdownMenu.Content>
</SubframeCore.DropdownMenu.Portal>
</SubframeCore.DropdownMenu.Root>
</div>
</Table.Cell>
</Table.Row>
</Table>
);
}
export default TableExample;
header
React.ReactNode
children
React.ReactNode
<table>
component. It accepts onClick
and className
props.