Invite-by-email, share dialog and pending invites — address chips with validation and seat projection, link access that explains itself and revoke with a timed undo.
inviteteammemberssharepermissionsemailchipsundo
Invite by email
email-invite.tsxTyped or pasted addresses become chips, invalid ones are flagged, a seat bar projects usage and sending clears the chips with a stagger.
$npx shadcn@latest add @geturui-pro/team-invites-email-invite
| Prop | Type | Default | Description |
|---|---|---|---|
team | string | — | Workspace name in the title. |
defaultEmails | string[] | — | Prefilled chips. |
defaultRole | "admin" | "member" | "viewer" | "member" | Initial role. |
seatsUsed / seatsTotal | number | 6 / 10 | Seat bar and limit. |
onInvite | (emails, role) => void | — | Valid addresses only. |
Pending invites
pending-invites.tsxPending list with expired flags, resend that spins then confirms, and revoke that collapses the row and offers a timed undo.
$npx shadcn@latest add @geturui-pro/team-invites-pending-invites
| Prop | Type | Default | Description |
|---|---|---|---|
invites | { id; email; role; sent; expired? }[] | — | Pending invites. |
onResend | (id) => Promise<void> | void | — | Awaited; defaults to a short delay. |
onRevoke / onUndo | (id) => void | — | Revoke and restore handlers. |
Install the whole set
Installs every team invites variant at once. Each section above has its own command for a single variant.
Pro installs use your private registry token. Add the @geturui-pro registry once — setup guide. The command works after you get Pro.
$npx shadcn@latest add @geturui-pro/team-invites
Accessibility
- Invalid addresses are marked with an icon and aria-label, and the hint below the field is announced politely.
- Access pickers are native selects with labels, so they work with every keyboard and screen reader.
- Revoked rows announce an undo bar via role=status; it stays for five seconds.