Skip to content

fix(forms): expand Form information tick rows with DisclosureGroup - #1735

Merged
BigSimmo merged 12 commits into
mainfrom
cursor/forms-info-disclosure-68d6
Aug 8, 2026
Merged

fix(forms): expand Form information tick rows with DisclosureGroup#1735
BigSimmo merged 12 commits into
mainfrom
cursor/forms-info-disclosure-68d6

Conversation

@BigSimmo

@BigSimmo BigSimmo commented Aug 8, 2026

Copy link
Copy Markdown
Owner

Summary

  • Form information “tick” rows (Purpose, Does not authorise, etc.) looked tappable but were static cards with truncated text and a decorative chevron, so taps did nothing.
  • Replaced them with the design-system DisclosureGroup so collapsed rows show a preview and expanding reveals the full catalog text.
  • Kept the left semantic icons in the disclosure title; refreshed the design-system adoption manifest for DisclosureGroup.
  • Follow-up: Disclosure preview is aria-hidden (label-only accessible name) and restores sm+ wrapping so desktop scanners are not forced through a tap.
  • Added DOM coverage for expand behaviour and label-only accessible names.

Verification

  • npm run verify:pr-local — passed after the Disclosure a11y follow-up (lint, typecheck, full unit suite 5608 passed / 4 skipped, build, RAG fixtures)
  • npm run test -- tests/forms-information-disclosure.dom.test.tsx tests/ui-v2-components.dom.test.tsx
  • npm run check:design-system-adoption (earlier on DisclosureGroup adoption)
  • npm run format
  • UI verification not run: expand/collapse and accessible name covered by DOM tests; no shared search-chrome / phone-chrome contract change.

Risk and rollout

  • Risk: Low — Forms detail UI + shared Disclosure preview a11y/ truncation behaviour only; catalog content unchanged.
  • Rollback: Revert the PR.
  • Provider or production effects: None

Notes

  • Demand-driven adoption of DisclosureGroup on the Forms detail surface (related to outstanding DS adoption work), not a full Forms design-system tranche.
Open in Web Open in Cursor 

Summary by CodeRabbit

  • New Features

    • Form information rows now expand to reveal detailed descriptions and content.
    • Added clear icons and structured disclosure panels for easier scanning and navigation.
    • Multiple rows with the same label can be expanded independently.
  • Accessibility

    • Expanded content is available to assistive technologies without duplicating collapsed previews.
    • Disclosure controls expose accurate expanded and collapsed states.
  • Responsive Design

    • Description previews remain concise on small screens and wrap naturally on larger screens.
  • Tests

    • Added coverage for form information expansion and disclosure accessibility behavior.

cursoragent and others added 2 commits August 8, 2026 12:59
Replace the static tick-row cards (truncated text + decorative chevron)
with the design-system DisclosureGroup so taps reveal full content.

Co-authored-by: BigSimmo <BigSimmo@users.noreply.github.com>
Widen optional ServiceInfoRow values and narrow the DOM test text before assertions.

Co-authored-by: BigSimmo <BigSimmo@users.noreply.github.com>
@coderabbitai

coderabbitai Bot commented Aug 8, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Warning

Review limit reached

You’ve reached a temporary PR review limit under our Fair Usage Limits Policy.

Your recent review volume is higher than typical usage, so adaptive limits are currently applied.

Next review available in: 16 minutes

Your organization has reached its usage spending cap. Adjust your spending cap in the billing tab.

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 742e00c1-9d98-4fd4-9c9d-7f4be1191a4f

📥 Commits

Reviewing files that changed from the base of the PR and between c8bbe0e and 5c1496f.

📒 Files selected for processing (3)
  • docs/branch-review-ledger.md
  • docs/design-system/adoption-manifest.json
  • src/components/forms/form-detail-page.tsx
📝 Walkthrough

Walkthrough

The form detail page now renders form information rows as expandable DisclosureGroup items. Disclosure descriptions have updated accessibility and responsive behavior. DOM tests and design-system adoption records cover the change.

Changes

Form information disclosure

Layer / File(s) Summary
Disclosure description accessibility
src/components/ui/disclosure.tsx, tests/ui-v2-components.dom.test.tsx
The preview description is hidden from assistive technology. The expanded panel retains the full description. Tests verify accessible naming, ARIA state, panel wiring, and visibility.
Form detail disclosure integration
src/components/forms/form-detail-page.tsx, tests/forms-information-disclosure.dom.test.tsx
Form information rows are mapped to disclosure items with labels, icons, descriptions, and content. Tests verify collapsed and expanded states, duplicate labels, and independent panels.
Component adoption records
docs/design-system/adoption-manifest.json, docs/design-system/COMPONENTS.md, docs/branch-review-ledger.md
The adoption manifest, component snapshot, and review ledger record DisclosureGroup as product-adopted in the form detail page.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Sequence Diagram(s)

sequenceDiagram
  participant FormDetailPage
  participant DisclosureGroup
  participant DisclosurePanel
  FormDetailPage->>DisclosureGroup: Render form information items
  DisclosureGroup->>DisclosurePanel: Set expanded state
  DisclosurePanel-->>FormDetailPage: Display full row content
Loading

Possibly related PRs

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly identifies the Forms change and the use of DisclosureGroup to expand tick rows.
Description check ✅ Passed The description includes the summary, verification results, UI verification rationale, risk, rollback, production effects, and notes.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch cursor/forms-info-disclosure-68d6

Comment @coderabbitai help to get the list of available commands.

@supabase

supabase Bot commented Aug 8, 2026

Copy link
Copy Markdown

This pull request has been ignored for the connected project sjrfecxgysukkwxsowpy because there are no changes detected in supabase directory. You can change this behaviour in Project Integrations Settings ↗︎.


Preview Branches by Supabase.
Learn more about Supabase Branching ↗︎.

Co-authored-by: BigSimmo <BigSimmo@users.noreply.github.com>
@cursor
cursor Bot force-pushed the cursor/forms-info-disclosure-68d6 branch from 8f25e6c to 061619d Compare August 8, 2026 13:05
@BigSimmo
BigSimmo marked this pull request as ready for review August 8, 2026 14:17
@BigSimmo

BigSimmo commented Aug 8, 2026

Copy link
Copy Markdown
Owner Author

@cursoragent Work the current open PR end-to-end. Confirm the PR number and GitHub head first from context. If more than one open PR could apply, stop and say which one you would use and why.

Fetch and start from the remote tip that matches that GitHub head. If the named branch ref is missing or stale, use the PR head ref. Preserve unrelated local WIP, including any local-only ledger commits; do not discard dirty work, and do not treat a local-ahead commit as the reviewed tip. Do not merge the PR, force-push, rebase, or arm auto-merge unless I explicitly ask. No provider-backed gates without separate approval. If you cannot push or resolve threads, diagnose and comment only; if inline replies fail, resolve when possible and put dispositions in the summary comment. If auto-merge is already armed, push only for a real blocker, and avoid pushes that would cancel in-flight required CI unless the push itself clears that blocker.

If the PR is already merged or closed: confirm the head and merge commit, note required-CI outcome, post one summary, and stop.

Goal: deep review plus Bugbot, fix actionable issues with the smallest correct changes, clear merge / required-CI / thread blockers, run strong local offline verification, push fixes, append the review ledger, and post one PR summary. Prefer thoroughness over speed. Regenerate large assets only when a fix requires it; then run the asset check and keep compatibility aliases byte-identical where the repo uses them.

Snapshot the GitHub head SHA: tip, base, behind/ahead, mergeable state, merge-tree versus origin/main (real conflict versus behind-but-clean), required checks on that tip including Production UI when selected, advisory separately, unresolved actionable threads. Missing checks while dirty are not green. If the tip moves mid-work, re-snapshot and continue from the new head.

Ledger-lookup against that GitHub head under the heavy review-and-fix scope for this PR. Already reviewed at this head with clean merge-tree, green required checks, and no new actionable threads → summarize, comment, stop unless I asked for a fresh superseding pass. Follow the repo review protocol.

Unblock once: real conflict → merge origin/main (prefer main’s shared queues; keep this PR’s notes); behind-but-clean → one sync, late if required CI is in flight; clean → leave. Labels like skip-branch-sync do not block a manual sync needed to clear a real blocker. No sync thrash. After any sync or push, re-snapshot tip, merge-tree, and required checks before declaring done. Dedupe the ledger if a merge touched it.

Review high-confidence delta risks only. Separate PR-introduced defects from pre-existing re-emitted debt. For generated assets, review contracts, aliases, cache, and manifests—not every generated line. If protected RAG or ranking surfaces are touched, say so before editing; fix PR-body policy text only when wrong or missing. Ignore bot noise. No nit spam or broad rewrites. Escalate verification by touched risk: clinical / RAG / privacy / migrations / auth → domain check plus production-readiness when warranted; UI / phone-chrome / routing / styling → ensure plus phone-chrome or UI gates when warranted; generated assets or docs inventory/links → asset or docs checks when warranted.

Fix P0/P1 always; clear scoped P2 when locally provable; else disposition and resolve. Required-check failures on this tip only; ignore advisory. Prefer reverting a bad autofix commit. After fixes: format and commit before push; smallest targeted proof; repo cheap gate; repo PR-local gate. No release, lighthouse, live eval, or live provider gates without approval.

Push only this PR’s fix commits. Append ledger for the final GitHub head under the heavy scope. Never push a ledger-only tip—include ledger in a real fix push, or leave a no-change ledger append local and unpushed.

One PR comment: tip, sync/merge-tree, fixed versus dispositioned, threads, required CI, decisive local gate lines, residual risks; merge left to me. Inline only for remaining human-needed P0/P1.

Stop when merge-tree is clean on the current GitHub tip, actionable threads are clear, required checks are green or clearly in progress, heavy gates for scope passed, summary posted, merge left to me.

@cursor

cursor Bot commented Aug 8, 2026

Copy link
Copy Markdown
Contributor

PR #1735 @ 80b6c8e758b108d528df5cb2ba69cc18eed4d62d — review-and-fix complete.

Snapshot

  • Merge-tree vs origin/main: clean, ahead by 5, not behind
  • Required CI on prior tip was green; re-running on the fix push (in progress)
  • Advisory Lighthouse: ignored
  • Bugbot / review threads: none
  • Auto-merge: not armed

Fixed (P2)

Disclosure preview was inside the trigger, so Form information buttons announced the full clinical value, and sm+ always truncated. Preview is now aria-hidden with sm:whitespace-normal restored; DOM tests assert label-only names.

Left for you

  • Merge when the new required CI settles
  • Ledger row for this heavy pass is local/unpushed (avoids a ledger-only tip)

Summary comment is on the PR.

Open in Web Open in Cursor 

Form information rows were announcing the full clinical value as the
button name. Mark the preview aria-hidden, restore sm+ wrapping, and
assert label-only names in Disclosure and Forms DOM tests.

Co-authored-by: BigSimmo <BigSimmo@users.noreply.github.com>
@cursor

cursor Bot commented Aug 8, 2026

Copy link
Copy Markdown
Contributor

PR #1735 review-and-fix summary

PR / tip: #1735 @ 80b6c8e758b108d528df5cb2ba69cc18eed4d62d (cursor/forms-info-disclosure-68d6)
Prior reviewed tip: 5b324118… (pre-fix). Pushed one fix commit on top.

Sync / merge-tree

  • vs origin/main: ahead, not behind; git merge-tree --write-tree clean
  • mergeable: MERGEABLE (GitHub UNSTABLE was from advisory Lighthouse only)
  • No sync performed (already current with main)
  • Auto-merge: not armed

Review findings

Severity Finding Disposition
P2 Disclosure description was inside the trigger, so Form information buttons announced the full clinical value as the accessible name Fixed in src/components/ui/disclosure.tsx — preview is aria-hidden; full text remains in the expanded panel
P2 Desktop lost prior sm:whitespace-normal preview (always truncated) Fixed — description uses truncate sm:whitespace-normal sm:leading-5
Bugbot / Cursor review threads None on this PR (0 review threads; CodeRabbit rate-limited only)
Required CI on prior tip Was green (PR required, Production UI critical + shards, Build, Static PR, …)
Advisory Lighthouse budget Ignored per babysit policy

Threads

  • Unresolved actionable threads: 0
  • Inline human-needed P0/P1: none

Local verification (decisive lines)

  • npm run verify:pr-localexit 0
  • Test Files 524 passed (524) / Tests 5608 passed | 4 skipped (5612)
  • Client bundle secret surface check passed.
  • Offline RAG fixture and manifest validation passed (36 golden cases, 23 suites).
  • Focused: forms disclosure + ui-v2 Disclosure accessible-name tests passed

Residual risks

  • Required CI is re-running on 80b6c8e7 after the fix push (expected).
  • Ledger row for this heavy scope is local / unpushed (avoids a ledger-only tip); points at 80b6c8e7….
  • Expand still duplicates preview vs panel body on desktop once opened (P3 UX noise only).

Merge left to you.

@BigSimmo

BigSimmo commented Aug 8, 2026

Copy link
Copy Markdown
Owner Author

@copilot resolve the merge conflicts on this branch.

…closure-68d6

# Conflicts:
#	docs/branch-review-ledger.md

Co-authored-by: BigSimmo <87357024+BigSimmo@users.noreply.github.com>

Copilot AI commented Aug 8, 2026

Copy link
Copy Markdown
Contributor

@copilot resolve the merge conflicts on this branch.

Resolved. I merged origin/main into this branch and fixed the conflict in docs/branch-review-ledger.md, preserving both sides’ ledger entries. The branch head is now ca323d3.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@src/components/forms/form-detail-page.tsx`:
- Around line 616-633: Update formInformationItems to generate unique IDs for
each disclosure item instead of relying only on row.label: incorporate the
available source identifier, or otherwise include the row ordinal as a fallback.
Preserve the existing labels and content, and add coverage confirming duplicate
labels produce distinct IDs and independent disclosure state.
🪄 Autofix

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 07416a06-5780-40b2-81c7-e4811bbf7ac9

📥 Commits

Reviewing files that changed from the base of the PR and between fc399e2 and ca323d3.

📒 Files selected for processing (7)
  • docs/branch-review-ledger.md
  • docs/design-system/COMPONENTS.md
  • docs/design-system/adoption-manifest.json
  • src/components/forms/form-detail-page.tsx
  • src/components/ui/disclosure.tsx
  • tests/forms-information-disclosure.dom.test.tsx
  • tests/ui-v2-components.dom.test.tsx

Comment thread src/components/forms/form-detail-page.tsx
…closure-68d6

Co-authored-by: BigSimmo <BigSimmo@users.noreply.github.com>
formInformationItems keyed only on row.label collided when referral
info repeated the same label, breaking DisclosureGroup open state.
Include the row index in each id and assert duplicate labels stay
independent in forms-information-disclosure.dom.test.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR makes the “Form information” tick rows on the Forms detail page genuinely interactive by replacing the static, chevron-styled cards with the design-system DisclosureGroup, so rows can be expanded to reveal the full catalog text (with improved accessible naming behavior).

Changes:

  • Replaced Forms detail “Form information” rows with a DisclosureGroup built from the catalog detail rows.
  • Updated Disclosure to treat the description as a visual-only preview (aria-hidden) and restore wrapping on sm+.
  • Added DOM tests covering disclosure expand behavior and accessible-name expectations; refreshed design-system adoption snapshots/manifests.

Reviewed changes

Copilot reviewed 7 out of 7 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
src/components/forms/form-detail-page.tsx Replaces static info rows with DisclosureGroup items (icons + preview + expandable full text).
src/components/ui/disclosure.tsx Updates disclosure description rendering to be visual-only and wrap on larger screens.
tests/forms-information-disclosure.dom.test.tsx New DOM test ensuring a Form information row expands and reveals full content.
tests/ui-v2-components.dom.test.tsx Adds a disclosure test asserting label-only accessible name and expand behavior.
docs/design-system/COMPONENTS.md Updates generated component inventory counts / DisclosureGroup adoption row.
docs/design-system/adoption-manifest.json Updates generated adoption manifest to reflect new product import usage of DisclosureGroup.
docs/branch-review-ledger.md Appends ledger entries for this work.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread tests/ui-v2-components.dom.test.tsx Outdated
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
@BigSimmo
BigSimmo enabled auto-merge (squash) August 8, 2026 18:09
cursoragent and others added 2 commits August 8, 2026 18:46
Conflict on docs/design-system/adoption-manifest.json: regenerated after
taking main's route shell (documents/medications homes) so counts stay
consistent with this PR's DisclosureGroup product import on form detail.
Co-authored-by: BigSimmo <BigSimmo@users.noreply.github.com>
@BigSimmo
BigSimmo merged commit 2e09740 into main Aug 8, 2026
27 checks passed
@BigSimmo
BigSimmo deleted the cursor/forms-info-disclosure-68d6 branch August 8, 2026 20:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants