Skip to content
GetUrUI

Team invites

3 variantsNewPro
.md

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.tsx

Typed 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
PropTypeDefaultDescription
teamstring—Workspace name in the title.
defaultEmailsstring[]—Prefilled chips.
defaultRole"admin" | "member" | "viewer""member"Initial role.
seatsUsed / seatsTotalnumber6 / 10Seat bar and limit.
onInvite(emails, role) => void—Valid addresses only.

Share dialog

share-dialog.tsx

Share panel with an invite field, per-person access, general link access with an explainer that crossfades and a copy-link confirmation.

$npx shadcn@latest add @geturui-pro/team-invites-share-dialog
PropTypeDefaultDescription
item / org / linkstring—What is shared, the organisation and the URL copied.
people{ id; name; email; access }[]—"owner" | "edit" | "comment" | "view".
defaultGeneral"restricted" | "org" | "link""org"General access.
onChange({ people, general }) => void—Fires on every access change.
onClose() => void—Close and Done handler.

Pending invites

pending-invites.tsx

Pending 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
PropTypeDefaultDescription
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.

Related