PR: #494: feat(team): invite members by team role [Story-1962] by @ayush-pramaan
View PR →
Story 1962

Invite by team role, not raw capability

The invite flow now captures the firm-authored team role designation from the same catalog used by the Team roles page. The app still gives Clerk the derived capability as the organization role, but the Clerk invitation also carries publicMetadata.teamRoleId, which pramaan-functions Story 1961 consumes on acceptance.

Invite sheet

Clerk contract

Vocabulary cleanup

Tests and Storybook

Acceptance criteria

Verification

Files changed

17 file(s), +449 / -59 lines

Path Role + -
messages/en.jsonConfig+10-3
messages/hi.jsonConfig+10-3
src/components/settings/team/capability-select.stories.tsxComponent+2-2
src/components/settings/team/capability-select.tsxComponent+9-9
src/components/settings/team/invite-member-fields.stories.tsxComponent+11-2
src/components/settings/team/invite-member-fields.tsxComponent+16-4
src/components/settings/team/invite-member-sheet.stories.tsxComponent+2-0
src/components/settings/team/invite-member-sheet.tsxComponent+9-2
src/components/settings/team/presentation.tsComponent+5-5
src/components/settings/team/team-list-page.test.tsxComponent+83-0
src/components/settings/team/team-list-page.tsxComponent+1-0
src/components/settings/team/team-role-select.stories.tsxComponent+50-0
src/components/settings/team/team-role-select.tsxComponent+103-0
src/components/settings/team/use-team-list-actions.tsComponent+4-0
src/lib/team-invitations/schema.tsLibrary+8-6
src/lib/team-invitations/server.test.tsLibrary+95-11
src/lib/team-invitations/server.tsLibrary+31-12