fix(ui): case header — keep metadata parallel to title, clamp parties to 2 lines
All checks were successful
G12 Leak-Guard / leak-guard (pull_request) Successful in 4s
Lint — undefined names / undefined-names (pull_request) Successful in 11s

The hearing-date/updated/sync metadata dl dropped below the title (taking rows and
pushing the band down) when the appellants/respondents line was long, because the
outer row used flex-wrap. Fix:

- Drop flex-wrap on the title↔metadata row (and flex-1 on the title block) so the
  metadata dl stays parallel to the H1; the title block shrinks instead.
- Clamp the parties line (and the subject fallback) to 2 lines with line-clamp-2 +
  title tooltip, so a long party list no longer grows the band.

Chair-directed layout fix; existing components, no new design.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-06-20 18:11:32 +00:00
parent 33c10e4147
commit 80809ca406

View File

@@ -63,8 +63,10 @@ export function CaseHeader({
<span className="text-navy tabular-nums">{data?.case_number ?? "…"}</span> <span className="text-navy tabular-nums">{data?.case_number ?? "…"}</span>
</nav> </nav>
<div className="flex items-start justify-between gap-6 flex-wrap"> {/* title block + metadata on one row — no wrap, so the metadata dl stays
<div className="min-w-0"> parallel to the H1 and a long parties line can't push it below. */}
<div className="flex items-start justify-between gap-6">
<div className="min-w-0 flex-1">
{/* title row — H1 + status/type/blam chips inline (mockup .band h1) */} {/* title row — H1 + status/type/blam chips inline (mockup .band h1) */}
<h1 className="text-navy text-[1.7rem] font-bold leading-tight flex items-center gap-3 flex-wrap mb-0"> <h1 className="text-navy text-[1.7rem] font-bold leading-tight flex items-center gap-3 flex-wrap mb-0">
<span className="tabular-nums"> <span className="tabular-nums">
@@ -107,11 +109,15 @@ export function CaseHeader({
{data.title} {data.title}
</p> </p>
)} )}
{/* parties line (mockup .parties) */} {/* parties line (mockup .parties) — clamped to 2 lines so a long list
of appellants/respondents doesn't grow the band; full text on hover. */}
{parties ? ( {parties ? (
<p className="text-ink-soft text-sm mt-1.5">{parties}</p> <p className="text-ink-soft text-sm mt-1.5 max-w-3xl line-clamp-2" title={parties}>
{parties}
</p>
) : data?.subject ? ( ) : data?.subject ? (
<p className="text-ink-soft text-sm mt-1.5 max-w-3xl leading-relaxed"> <p className="text-ink-soft text-sm mt-1.5 max-w-3xl leading-relaxed line-clamp-2"
title={data.subject}>
{data.subject} {data.subject}
</p> </p>
) : null} ) : null}