mirror of
https://github.com/hanzoai/shadcn.git
synced 2026-11-03 03:18:52 +00:00
Upstream sync from shadcn-ui/ui (1686 commits since last merge base). Key changes: - packages/shadcn upgraded to 4.1.0 (CLI font transformers, scaffold from github, chart colors) - apps/v4 replaces apps/www as the primary docs/registry app - Font system: 25+ heading font registries, font markers utility, @supports override - Chart improvements: recharts v3 compat, radial chart fixes - templates/ updated with monorepo variants (astro, vite, react-router, start) - skills/shadcn AI skill definitions added - deprecated/ removed (auth, auth-firebase, cli, www) Preserved Hanzo-only paths: app/, pkg/, demo/, docs/, template/next/
101 lines
3.1 KiB
TypeScript
101 lines
3.1 KiB
TypeScript
"use client"
|
|
|
|
import { Button } from "@/registry/bases/radix/ui/button"
|
|
import {
|
|
Card,
|
|
CardContent,
|
|
CardDescription,
|
|
CardFooter,
|
|
CardHeader,
|
|
CardTitle,
|
|
} from "@/registry/bases/radix/ui/card"
|
|
import { Field, FieldLabel } from "@/registry/bases/radix/ui/field"
|
|
import { Input } from "@/registry/bases/radix/ui/input"
|
|
import {
|
|
InputGroup,
|
|
InputGroupAddon,
|
|
InputGroupButton,
|
|
InputGroupInput,
|
|
} from "@/registry/bases/radix/ui/input-group"
|
|
import {
|
|
Select,
|
|
SelectContent,
|
|
SelectGroup,
|
|
SelectItem,
|
|
SelectTrigger,
|
|
SelectValue,
|
|
} from "@/registry/bases/radix/ui/select"
|
|
import { Separator } from "@/registry/bases/radix/ui/separator"
|
|
import { IconPlaceholder } from "@/app/(create)/components/icon-placeholder"
|
|
|
|
export function InviteTeam() {
|
|
return (
|
|
<Card>
|
|
<CardHeader>
|
|
<CardTitle>Invite Team</CardTitle>
|
|
<CardDescription>Add members to your workspace</CardDescription>
|
|
</CardHeader>
|
|
<CardContent className="flex flex-col gap-4">
|
|
<div className="flex flex-col gap-3">
|
|
{[
|
|
{ email: "[email protected]", role: "Editor" },
|
|
{ email: "[email protected]", role: "Viewer" },
|
|
].map((invite) => (
|
|
<div key={invite.email} className="flex items-center gap-2">
|
|
<Input defaultValue={invite.email} className="flex-1" />
|
|
<Select defaultValue={invite.role.toLowerCase()}>
|
|
<SelectTrigger className="w-24">
|
|
<SelectValue />
|
|
</SelectTrigger>
|
|
<SelectContent position="popper" align="end">
|
|
<SelectGroup>
|
|
<SelectItem value="admin">Admin</SelectItem>
|
|
<SelectItem value="editor">Editor</SelectItem>
|
|
<SelectItem value="viewer">Viewer</SelectItem>
|
|
</SelectGroup>
|
|
</SelectContent>
|
|
</Select>
|
|
</div>
|
|
))}
|
|
</div>
|
|
<Button variant="outline">
|
|
<IconPlaceholder
|
|
lucide="PlusIcon"
|
|
tabler="IconPlus"
|
|
hugeicons="PlusSignIcon"
|
|
phosphor="PlusIcon"
|
|
remixicon="RiAddLine"
|
|
data-icon="inline-start"
|
|
/>
|
|
Add another
|
|
</Button>
|
|
<Separator />
|
|
<Field>
|
|
<FieldLabel htmlFor="invite-link">Or share invite link</FieldLabel>
|
|
<InputGroup>
|
|
<InputGroupInput
|
|
id="invite-link"
|
|
defaultValue="https://app.co/invite/x8f2k"
|
|
readOnly
|
|
/>
|
|
<InputGroupAddon align="inline-end">
|
|
<InputGroupButton size="icon-xs" aria-label="Copy link">
|
|
<IconPlaceholder
|
|
lucide="CopyIcon"
|
|
tabler="IconCopy"
|
|
hugeicons="Copy01Icon"
|
|
phosphor="CopyIcon"
|
|
remixicon="RiFileCopyLine"
|
|
/>
|
|
</InputGroupButton>
|
|
</InputGroupAddon>
|
|
</InputGroup>
|
|
</Field>
|
|
</CardContent>
|
|
<CardFooter>
|
|
<Button className="w-full">Send Invites</Button>
|
|
</CardFooter>
|
|
</Card>
|
|
)
|
|
}
|