fix(panel): task-detail tab state in URL, nav placement, kanban overflow, sidebar divider, tooltip sweep

- Task detail: active tab lives in ?tab= (survives reload, back/forward, and
  prev/next task jumps); prev/next arrows move into the header row next to
  Actions instead of their own row above the title
- Constraints section always starts collapsed (project boilerplate)
- Kanban: native overflow scroll replaces Radix ScrollArea (display:table
  viewport let cards grow past the column and clip); columns share width
  (flex-1, 18rem floor, 24rem cap); dark column colors normalized to /40 tints
- Sidebar footer: drop the Separator doubled with the wrapper's border-t
- Tooltips: self-providing Tooltip root (300ms) + hover hints across sidebar,
  header, task detail, kanban, and every icon-only button that had none
This commit is contained in:
Renn F
2026-07-11 10:59:26 +02:00
parent 5a0fce7da4
commit e211a3c15e
37 changed files with 891 additions and 484 deletions
@@ -4,6 +4,11 @@ import { formatDistanceToNow } from "date-fns";
import Link from "next/link";
import { Badge } from "@/components/ui/badge";
import { Button } from "@/components/ui/button";
import {
Tooltip,
TooltipContent,
TooltipTrigger,
} from "@/components/ui/tooltip";
import {
Table,
TableBody,
@@ -147,14 +152,19 @@ export function WorkSessionTable({
})}
</TableCell>
<TableCell>
<Link
href={`/work-sessions/${session.id}`}
prefetch={false}
>
<Button variant="ghost" size="icon">
<ExternalLink className="h-4 w-4" />
</Button>
</Link>
<Tooltip>
<TooltipTrigger asChild>
<Link
href={`/work-sessions/${session.id}`}
prefetch={false}
>
<Button variant="ghost" size="icon">
<ExternalLink className="h-4 w-4" />
</Button>
</Link>
</TooltipTrigger>
<TooltipContent>Open work session</TooltipContent>
</Tooltip>
</TableCell>
</TableRow>
))}
@@ -177,11 +187,19 @@ export function WorkSessionTable({
{session.branch_name}
</Link>
</div>
<Link href={`/work-sessions/${session.id}`} prefetch={false}>
<Button variant="ghost" size="icon" className="shrink-0">
<ExternalLink className="h-4 w-4" />
</Button>
</Link>
<Tooltip>
<TooltipTrigger asChild>
<Link
href={`/work-sessions/${session.id}`}
prefetch={false}
>
<Button variant="ghost" size="icon" className="shrink-0">
<ExternalLink className="h-4 w-4" />
</Button>
</Link>
</TooltipTrigger>
<TooltipContent>Open work session</TooltipContent>
</Tooltip>
</div>
<div className="mt-3 divide-y">
<ResponsiveTableCardRow label="Task">