Reorganize Questionnaire as master/detail with grouped section rail #54

Merged
parkerhdavis merged 1 commit from questionnaire-master-detail into main 2026-04-28 12:01:02 -06:00
parkerhdavis commented 2026-04-28 12:00:57 -06:00 (Migrated from github.com)

Summary

  • Replaces the per-tab accordion of collapsible cards with a master/detail layout: a left rail lists every section (grouped under its tab label) and a right pane shows the active section fully expanded — no more toggle-to-read/toggle-to-edit, no more long scroll of expanded cards.
  • Tabs are gone from the top bar. Their labels now appear as group headers in the rail, and every section is visible in one scrollable list.
  • Standardized section status indicators across all section kinds. Stats now count text, conditional, and contact-role questions (previously only text), so sections like the POAs, Personal Representatives, Guardians, and Beneficiaries — which were showing no indicator — now show real filled/total counts. A unified chip with three states (empty / partial / complete) replaces the mix of 5/8 and 3 contacts styles.
  • Search now spans all tabs and auto-jumps to the first match when it filters out the current section. Prev/Next walks the full ordered list, crossing tab boundaries.
  • Rail widened from w-64 → w-72 to give the new chips a bit more breathing room.

Test plan

  • make typecheck, make lint, make test — green locally
  • make dev-frontend: open a client, scroll the rail through Client Info / Contacts / Assignments groups, confirm the active-section highlight follows clicks
  • Type a query into the rail search; rail filters to matching sections, active section auto-switches to first match if the prior one is filtered out
  • Prev/Next at the bottom of the section pane crosses tab boundaries cleanly
  • Status chips: green (complete), warning (partial), muted (empty) render correctly in light and dark themes
  • Contacts section still shows its count (e.g. 3) and the inline contact list works
## Summary - Replaces the per-tab accordion of collapsible cards with a master/detail layout: a left rail lists every section (grouped under its tab label) and a right pane shows the active section fully expanded — no more toggle-to-read/toggle-to-edit, no more long scroll of expanded cards. - Tabs are gone from the top bar. Their labels now appear as group headers in the rail, and every section is visible in one scrollable list. - Standardized section status indicators across all section kinds. Stats now count `text`, `conditional`, and `contact-role` questions (previously only `text`), so sections like the POAs, Personal Representatives, Guardians, and Beneficiaries — which were showing no indicator — now show real `filled/total` counts. A unified chip with three states (empty / partial / complete) replaces the mix of `5/8` and `3 contacts` styles. - Search now spans all tabs and auto-jumps to the first match when it filters out the current section. Prev/Next walks the full ordered list, crossing tab boundaries. - Rail widened from `w-64` → `w-72` to give the new chips a bit more breathing room. ## Test plan - [ ] `make typecheck`, `make lint`, `make test` — green locally - [ ] `make dev-frontend`: open a client, scroll the rail through Client Info / Contacts / Assignments groups, confirm the active-section highlight follows clicks - [ ] Type a query into the rail search; rail filters to matching sections, active section auto-switches to first match if the prior one is filtered out - [ ] Prev/Next at the bottom of the section pane crosses tab boundaries cleanly - [ ] Status chips: green (complete), warning (partial), muted (empty) render correctly in light and dark themes - [ ] Contacts section still shows its count (e.g. `3`) and the inline contact list works
Sign in to join this conversation.
No reviewers
No labels
No milestone
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
parker/lily!54
No description provided.