feat(app): polish workspace tabs and changes

Size tabs from rendered labels and switch to horizontal overflow once minimum click targets are reached, keeping the add-tab action adjacent until it must remain fixed.

Make Changes an always-expanded document with an optional desktop navigation tree, keep Git actions in their platform-owned headers, remove pinned and inline split shortcuts, and place review tabs beside Changes.
This commit is contained in:
Mohamed Boudra
2026-08-17 21:14:37 +02:00
parent 6d7606160e
commit 75adf53893
41 changed files with 929 additions and 1901 deletions
@@ -12,7 +12,7 @@ import {
DropdownMenuSeparator,
DropdownMenuTrigger,
} from "@/components/ui/dropdown-menu";
import { ProfileIcon } from "@/workspace-pins/launch";
import { TerminalProfileIcon } from "@/components/terminal-profile-icon";
import { Tooltip, TooltipContent, TooltipTrigger } from "@/components/ui/tooltip";
import { ICON_SIZE } from "@/styles/theme";
import {
@@ -54,7 +54,7 @@ function LaunchProfileMenuItem({
}): ReactElement {
const handleSelect = useCallback(() => onSelect(profile.id), [onSelect, profile.id]);
const leading = useMemo(
() => <ProfileIcon iconKey={getTerminalProfileIcon(profile)} />,
() => <TerminalProfileIcon iconKey={getTerminalProfileIcon(profile)} />,
[profile],
);
// What the profile runs before any prompt is typed, so the row says what it
@@ -102,7 +102,7 @@ function TriggerIcon({
return <ThemedMessageCircle size={ICON_SIZE.sm} uniProps={mutedColorMapping} />;
}
if (profile) {
return <ProfileIcon iconKey={getTerminalProfileIcon(profile)} />;
return <TerminalProfileIcon iconKey={getTerminalProfileIcon(profile)} />;
}
return <ThemedSquareTerminal size={ICON_SIZE.sm} uniProps={mutedColorMapping} />;
}