diff --git a/src/app/coach/page.tsx b/src/app/coach/page.tsx index 77e3efe36..23363d12e 100644 --- a/src/app/coach/page.tsx +++ b/src/app/coach/page.tsx @@ -61,7 +61,14 @@ export default function CoachPage() { return (
", () => { // Fixed bottom-right, above the mobile bottom-nav band. The plain // desktop offset kicks in at `md:` — the same breakpoint where the // bottom-nav hides (`md:hidden`) — so the FAB never floats mid-air - // in the 768-1023px band. The right inset mirrors the desktop - // bottom inset so the corner gap is even. + // in the 768-1023px band. v1.18.1 (C5) — the corner inset is + // symmetric: right equals bottom at each breakpoint (`right-6` + // mobile-band / `md:right-8` desktop mirrors `md:bottom-8`). expect(html).toContain("fixed right-6"); + expect(html).toContain("md:right-8"); expect(html).toContain( "bottom-[calc(env(safe-area-inset-bottom,0px)+5rem)]", ); - expect(html).toContain("md:bottom-6"); + expect(html).toContain("md:bottom-8"); + expect(html).not.toContain("md:bottom-6"); expect(html).not.toContain("lg:bottom-6"); }); diff --git a/src/components/insights/coach-panel/coach-conversation.tsx b/src/components/insights/coach-panel/coach-conversation.tsx index 81869d47f..abbeb801f 100644 --- a/src/components/insights/coach-panel/coach-conversation.tsx +++ b/src/components/insights/coach-panel/coach-conversation.tsx @@ -291,12 +291,23 @@ export function CoachConversation({ >
- {leadingHeaderActions} + {leadingHeaderActions ? ( +
+ {leadingHeaderActions} +
+ ) : null} diff --git a/src/components/insights/coach-panel/coach-drawer-body.tsx b/src/components/insights/coach-panel/coach-drawer-body.tsx index f8ba32ce7..a4fc9a33a 100644 --- a/src/components/insights/coach-panel/coach-drawer-body.tsx +++ b/src/components/insights/coach-panel/coach-drawer-body.tsx @@ -53,9 +53,13 @@ export function CoachDrawerBody({ return (
@@ -65,7 +69,13 @@ export function CoachDrawerBody({ data-slot="coach-drawer-history" className="border-border/70 hidden h-full min-h-0 border-r lg:flex lg:flex-col" > -

+ {/* v1.18.1 (W-COACH-UI C4) — the rail heading and the centre + column's rail-tray strip share one fixed `h-14` header band + with identical `border-b`, so the two dividers land on the + same horizontal line across the columns (the asymmetry the + maintainer flagged: a `p-3` text heading vs a `py-2` button + strip put the lines at different heights). */} +

{t("insights.coach.historyTitle")}

{historyRail}
@@ -80,10 +90,14 @@ export function CoachDrawerBody({ {/* v1.4.27 R3d MB2 — rail-tray triggers lifted out of the absolute overlay into a sub-header strip so the buttons sit at a 44 px tap target and never overlay the first - message bubble. */} + message bubble. + v1.18.1 (W-COACH-UI C4) — fixed `h-14` so the strip's + bottom border aligns with the history rail heading divider + in the adjacent column (one continuous line, no restless + two-height split). */}
{t("common.loading")}

) : filtered.length === 0 ? (

{t("insights.coach.historyEmpty")}

@@ -128,8 +130,8 @@ export function HistoryRail({ data-slot="coach-history-item" data-active={isActive ? "true" : undefined} className={cn( - "group flex items-center gap-1.5 rounded-md px-2 py-1.5", - "text-xs transition-colors", + "group flex items-center gap-1.5 rounded-lg px-2.5 py-2", + "text-sm transition-colors", isActive ? "bg-dracula-purple/15 text-foreground" : "text-muted-foreground hover:bg-muted/40 hover:text-foreground", @@ -142,7 +144,7 @@ export function HistoryRail({ data-slot="coach-history-select" > {c.title} - + {formatRelativeTime(c.updatedAt, t)} diff --git a/src/components/insights/coach-panel/sources-rail.tsx b/src/components/insights/coach-panel/sources-rail.tsx index a7280373c..2720f07eb 100644 --- a/src/components/insights/coach-panel/sources-rail.tsx +++ b/src/components/insights/coach-panel/sources-rail.tsx @@ -105,7 +105,7 @@ export function SourcesRail({ className }: SourcesRailProps) { // column width: the switch rows used to push past the 280/320 px // container and paint a horizontal scrollbar under the rail. className={cn( - "flex h-full min-h-0 min-w-0 flex-col gap-3 overflow-x-hidden p-3", + "flex h-full min-h-0 min-w-0 flex-col gap-3 overflow-x-hidden p-3.5", className, )} > @@ -113,8 +113,10 @@ export function SourcesRail({ className }: SourcesRailProps) { data-slot="coach-sources-rail-heading" // No horizontal inset — the heading sits flush with the row // boxes below it (headings and their content share one left - // edge across the Coach surfaces). - className="text-muted-foreground flex items-center gap-1.5 text-[11px] font-medium tracking-wide uppercase" + // edge across the Coach surfaces). v1.18.1 (W-COACH-UI C1/C4) — + // typography matched to the history-rail heading so the two rails + // read as one family. + className="text-muted-foreground flex items-center gap-1.5 text-xs font-medium tracking-wide uppercase" >