← All blocks

Team members with invites

team-members · invite-list · team-members-table

npx shadcn@latest add @plus-ui/team-members-table

Default 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
      }
    ]
  }
}