registry/patterns/dropdown/dropdown-11.tsx
import { Button } from '@/components/ui/button'
import {
DropdownMenu,
DropdownMenuContent,
DropdownMenuGroup,
DropdownMenuItem,
DropdownMenuLabel,
DropdownMenuSeparator,
DropdownMenuTrigger,
} from '@/components/ui/dropdown-menu'
import {
Table,
TableBody,
TableCell,
TableHead,
TableHeader,
TableRow,
} from '@/components/ui/table'
import {
CopyIcon,
MoreHorizontalIcon,
PencilIcon,
TrashIcon,
} from 'lucide-react'
const members = [
{ name: 'Ava Carter', email: 'ava@acme.com', role: 'Owner' },
{ name: 'Ben Lopez', email: 'ben@acme.com', role: 'Member' },
{ name: 'Cara Diaz', email: 'cara@acme.com', role: 'Member' },
]
export function Dropdown11() {
return (
<div className="w-full max-w-xl overflow-hidden rounded-lg border">
<Table>
<TableHeader>
<TableRow>
<TableHead>Name</TableHead>
<TableHead>Role</TableHead>
<TableHead className="w-12" />
</TableRow>
</TableHeader>
<TableBody>
{members.map((member) => (
<TableRow key={member.email}>
<TableCell>
<div className="flex flex-col">
<span className="font-medium">{member.name}</span>
<span className="text-muted-foreground">{member.email}</span>
</div>
</TableCell>
<TableCell>{member.role}</TableCell>
<TableCell>
<DropdownMenu>
<DropdownMenuTrigger
render={
<Button
variant="ghost"
size="icon-sm"
aria-label={`Actions for ${member.name}`}
>
<MoreHorizontalIcon />
</Button>
}
/>
<DropdownMenuContent align="end" className="w-40">
<DropdownMenuGroup>
<DropdownMenuLabel>Actions</DropdownMenuLabel>
</DropdownMenuGroup>
<DropdownMenuSeparator />
<DropdownMenuItem>
<PencilIcon />
Edit
</DropdownMenuItem>
<DropdownMenuItem>
<CopyIcon />
Copy email
</DropdownMenuItem>
<DropdownMenuSeparator />
<DropdownMenuItem variant="destructive">
<TrashIcon />
Remove
</DropdownMenuItem>
</DropdownMenuContent>
</DropdownMenu>
</TableCell>
</TableRow>
))}
</TableBody>
</Table>
</div>
)
}






























