← All blocks
Team members with invites
team-members · invite-list · team-members-table
npx shadcn@latest add @plus-ui/team-members-tableDefault content
{
"eyebrow": "pellora",
"title": "Members",
"description": "Who can deploy, promote and read logs in Pellora. Production access requires two-factor.",
"seats": {
"label": "Seats",
"used": 11,
"total": 12,
"summary": "{used} of {total}",
"note": "Invites hold a seat until revoked",
"action": {
"label": "Add seats",
"href": "#billing"
}
},
"roles": [
{
"value": "owner",
"label": "Owner",
"description": "Billing, SSO and every project. One per workspace."
},
{
"value": "admin",
"label": "Admin",
"description": "Manage members, domains and environment variables."
},
{
"value": "developer",
"label": "Developer",
"description": "Deploy to preview and staging. Promote with approval."
},
{
"value": "viewer",
"label": "Viewer",
"description": "Read deploys, logs and previews. Cannot ship."
}
],
"invite": {
"title": "Invite to Pellora",
"description": "Invites expire after 7 days. New members join every project with the role you pick.",
"emailLabel": "Email address",
"emailPlaceholder": "[email protected]",
"roleLabel": "Role",
"defaultRole": "developer",
"submit": "Send invite"
},
"members": {
"title": "Members",
"count": "{count} members",
"columns": {
"member": "Member",
"role": "Role",
"lastActive": "Last active",
"twoFactor": "2FA"
},
"youLabel": "You",
"twoFactorOn": "Enabled",
"twoFactorOff": "Off",
"actionsLabel": "Member actions",
"actions": [
"View deploys",
"Reset 2FA",
"Transfer ownership",
"Remove from workspace"
],
"items": [
{
"name": "Ines Varga",
"email": "[email protected]",
"avatar": {
"src": "https://images.unsplash.com/photo-1494790108377-be9c29b29330?auto=format&fit=crop&crop=faces&w=96&h=96&q=80",
"alt": "Ines Varga"
},
"role": "admin",
"lastActive": "Active now",
"twoFactor": true,
"you": true,
"locked": false
},
{
"name": "Mira Castell",
"email": "[email protected]",
"avatar": {
"src": "https://images.unsplash.com/photo-1580489944761-15a19d654956?auto=format&fit=crop&crop=faces&w=96&h=96&q=80",
"alt": "Mira Castell"
},
"role": "owner",
"lastActive": "1 h ago",
"twoFactor": true,
"you": false,
"locked": true
},
{
"name": "Tomás Rieder",
"email": "[email protected]",
"avatar": {
"src": "https://images.unsplash.com/photo-1472099645785-5658abf4ff4e?auto=format&fit=crop&crop=faces&w=96&h=96&q=80",
"alt": "Tomás Rieder"
},
"role": "admin",
"lastActive": "6 min ago",
"twoFactor": true,
"you": false,
"locked": false
},
{
"name": "Aiko Brandt",
"email": "[email protected]",
"avatar": {
"src": "https://images.unsplash.com/photo-1534528741775-53994a69daeb?auto=format&fit=crop&crop=faces&w=96&h=96&q=80",
"alt": "Aiko Brandt"
},
"role": "developer",
"lastActive": "21 min ago",
"twoFactor": true,
"you": false,
"locked": false
},
{
"name": "Kwame Asante",
"email": "[email protected]",
"avatar": {
"src": "https://images.unsplash.com/photo-1560250097-0b93528c311a?auto=format&fit=crop&crop=faces&w=96&h=96&q=80",
"alt": "Kwame Asante"
},
"role": "developer",
"lastActive": "38 min ago",
"twoFactor": false,
"you": false,
"locked": false
},
{
"name": "Leon Hartmann",
"email": "[email protected]",
"avatar": {
"src": "https://images.unsplash.com/photo-1506794778202-cad84cf45f1d?auto=format&fit=crop&crop=faces&w=96&h=96&q=80",
"alt": "Leon Hartmann"
},
"role": "developer",
"lastActive": "Yesterday",
"twoFactor": true,
"you": false,
"locked": false
},
{
"name": "Priya Raman",
"email": "[email protected]",
"avatar": {
"src": "https://images.unsplash.com/photo-1544005313-94ddf0286df2?auto=format&fit=crop&crop=faces&w=96&h=96&q=80",
"alt": "Priya Raman"
},
"role": "viewer",
"lastActive": "3 days ago",
"twoFactor": false,
"you": false,
"locked": false
},
{
"name": "Joaquín Ferreyra",
"email": "[email protected]",
"avatar": {
"src": "https://images.unsplash.com/photo-1500648767791-00dcc994a43e?auto=format&fit=crop&crop=faces&w=96&h=96&q=80",
"alt": "Joaquín Ferreyra"
},
"role": "viewer",
"lastActive": "12 days ago",
"twoFactor": true,
"you": false,
"locked": false
}
]
},
"pending": {
"title": "Pending invites",
"description": "Sent but not accepted. Revoking frees the seat immediately.",
"resend": "Resend",
"revoke": "Revoke",
"expiredLabel": "Expired",
"items": [
{
"email": "[email protected]",
"role": "developer",
"detail": "Invited by Ines Varga · 2 days ago",
"expired": false
},
{
"email": "[email protected]",
"role": "developer",
"detail": "Invited by Tomás Rieder · 5 days ago",
"expired": false
},
{
"email": "[email protected]",
"role": "viewer",
"detail": "Invited by Mira Castell · 9 days ago",
"expired": true
}
]
}
}