AdversarialThere is a single opposing side.
AdvisoryNo single opponent.
Lock · Permanent orientation
Counsel first records whether the matter is adversarial. Only then, when needed, counsel chooses the represented party label supplied by the selected matter type.
Lock · Permanent orientation
| Choice | UI behavior | Create payload |
|---|---|---|
| Unanswered | Q2 is absent; Create explains that Q1 is required. | No request is sent. |
| Adversarial |
Q2 reveals labels from
GET /app/matter-types/{id}/participant-labels.
|
representingSide: adversarial plus the selected
label id and name on the us party.
|
| Advisory | Q2 stays absent. |
representingSide: advisory; participant-label
fields are omitted.
|
| Labels unavailable | Q2 shows an honest loading, empty, no-type, or retryable error state instead of an empty radio group. | Create remains blocked until a configured label can be selected. |
AddMatter/RepresentingSideField / UnansweredAddMatter/RepresentingSideField / AdversarialAddMatter/RepresentingSideField / AdvisoryAddMatter/RepresentingSideField / LoadingAddMatter/RepresentingSideField / EmptyAddMatter/RepresentingSideField / Participant Label
Required
AddMatter/RepresentingSideField / InteractiveStory-2795 owns the richer matter-type-change refetch experience. This story includes explicit loading, empty, error, and no-type states at the participant-label boundary.
54 file(s), +1723 / -622 lines
| Path | Role | + | - |
|---|---|---|---|
| messages/en.json | Config | +12 | -13 |
| messages/hi.json | Config | +12 | -13 |
| openapi/app-api.json | Config | +160 | -0 |
| openapi/permission-map.json | Config | +9 | -0 |
| src/app/[locale]/(workspace)/clients/client-related-matters-presentation.test.ts | App route | +0 | -2 |
| src/app/api/internal/matter-types/[matterTypeId]/participant-labels/route.ts | App route | +20 | -0 |
| src/components/add-matter/AGENTS.md | Component | +8 | -4 |
| src/components/add-matter/add-matter-drawer-types.ts | Component | +20 | -20 |
| src/components/add-matter/add-matter-drawer.stories.tsx | Component | +6 | -53 |
| src/components/add-matter/add-matter-drawer.tsx | Component | +7 | -10 |
| src/components/add-matter/representing-side-field.stories.tsx | Component | +62 | -73 |
| src/components/add-matter/representing-side-field.tsx | Component | +249 | -295 |
| src/components/add-matter/use-add-matter-drawer-form.ts | Component | +24 | -5 |
| src/components/agents/agent-chat-panel.render.test.tsx | Component | +0 | -2 |
| src/components/agents/agent-dock-mount.render.test.tsx | Component | +0 | -2 |
| src/components/agents/render-catalog/render-catalog.fixtures.ts | Component | +0 | -2 |
| src/components/clients/client-related-matters-fixtures.ts | Component | +0 | -2 |
| src/components/matter-detail/brief/matter-brief-page.stories.tsx | Component | +0 | -2 |
| src/components/matters/add-matter-launcher.tsx | Component | +56 | -24 |
| src/components/matters/live-matters-wizard-payload.ts | Component | +28 | -14 |
| src/components/matters/matters-live-register-row.stories.tsx | Component | +0 | -2 |
| src/components/route-loading.stories.tsx | Component | +29 | -0 |
| src/components/route-loading.tsx | Component | +15 | -3 |
| src/gen/client/appListMatterTypeParticipantLabels.ts | Generated contract | +65 | -0 |
| src/gen/client/index.ts | Generated contract | +1 | -0 |
| src/gen/hooks/index.ts | Generated contract | +8 | -0 |
| src/gen/hooks/useAppListMatterTypeParticipantLabels.ts | Generated contract | +141 | -0 |
| src/gen/hooks/useAppListMatterTypeParticipantLabelsSuspense.ts | Generated contract | +141 | -0 |
| src/gen/index.ts | Generated contract | +36 | -0 |
| src/gen/schemas/matterTypeParticipantLabelListItem.json | Generated contract | +43 | -0 |
| src/gen/schemas/matterTypeParticipantLabelListResponse.json | Generated contract | +56 | -0 |
| src/gen/types/AppListMatterTypeParticipantLabels.ts | Generated contract | +71 | -0 |
| src/gen/types/MatterTypeParticipantLabelListItem.ts | Generated contract | +39 | -0 |
| src/gen/types/MatterTypeParticipantLabelListResponse.ts | Generated contract | +18 | -0 |
| src/gen/types/index.ts | Generated contract | +14 | -0 |
| src/gen/zod/appListMatterTypeParticipantLabelsSchema.ts | Generated contract | +86 | -0 |
| src/gen/zod/index.ts | Generated contract | +13 | -0 |
| src/gen/zod/matterTypeParticipantLabelListItemSchema.ts | Generated contract | +29 | -0 |
| src/gen/zod/matterTypeParticipantLabelListResponseSchema.ts | Generated contract | +17 | -0 |
| src/lib/agents/__tests__/atlas-rail-store.test.ts | Library | +0 | -2 |
| src/lib/agents/atlas-rail.test.ts | Library | +0 | -2 |
| src/lib/agents/dock-render-bridge.test.ts | Library | +0 | -2 |
| src/lib/matter-types/gateway.ts | Library | +29 | -0 |
| src/lib/matter-types/types.ts | Library | +1 | -0 |
| src/lib/matters/format.test.ts | Library | +0 | -27 |
| src/lib/matters/format.ts | Library | +0 | -31 |
| src/lib/matters/optimistic.test.ts | Library | +0 | -2 |
| tests/unit/live-matters-wizard-payload.test.ts | Test | +19 | -5 |
| tests/unit/matter-shell-chrome.test.tsx | Test | +0 | -2 |
| tests/unit/matter-type-participant-label-contract.test.ts | Test | +23 | -0 |
| tests/unit/matters-contract.test.ts | Test | +0 | -2 |
| tests/unit/record-bootstrap-contract.test.ts | Test | +0 | -2 |
| tests/unit/representing-side-field.test.tsx | Test | +95 | -0 |
| tests/unit/use-add-matter-drawer-form.test.tsx | Test | +61 | -4 |