Team management
Component-composed team context, current memberships, pending invitations, server-enforced ownership, access changes, and pressure states.
Team members and invitations
Inventory, search, invitation, access changes, removal, recovery, density, and mobile pressure.
Members
Current memberships and pending invitations use separately labelled data tables.
Workspace members
2 current memberships with roles, join dates, and account actions.
| Member | Role | Status | Joined | Actions |
|---|---|---|---|---|
| Ada Lovelace[email protected] | Owner | Active | 2024-02-12 | |
| Grace Hopper[email protected] | Admin | Active | 2024-09-03 |
Pending invitations
Invitations remain separate from memberships until the intended recipient accepts.
| Role | Invited by | Sent | Expires | Actions | |
|---|---|---|---|---|---|
| [email protected] | Member | Ada Lovelace | 12 Jul 16:18 | July 26, 2026 | |
| [email protected] | Administrator | Grace Hopper | 13 Jul 09:04 | July 27, 2026 |
Viewport
Ruby
test/dummy/app/components/gallery/compositions/team_management_page.rbdiv(
data: {
gallery: "composition-surface",
gallery_composition: "team-management",
gallery_composition_state: state,
gallery_mobile: state == "mobile" ? "true" : nil
}.compact
) do
render NitroKit::Container.new(size: :xl, id: "gallery-team-container") do
render NitroKit::Flex.new(dir: :col, gap: 6, align: :stretch, id: "gallery-team-stack") do
turbo_frame_tag("gallery-team-management-frame") { render_screen }
end
end
end