diff --git a/apps/web/src/components/RightPanelTabs.tsx b/apps/web/src/components/RightPanelTabs.tsx index 596bdee96ad1f..ed50de61260c8 100644 --- a/apps/web/src/components/RightPanelTabs.tsx +++ b/apps/web/src/components/RightPanelTabs.tsx @@ -88,6 +88,7 @@ import { faviconUrlForOrigin } from "@t3tools/shared/favicon"; import { useTheme } from "~/hooks/useTheme"; import { useDeviceState } from "~/state/device"; import type { PreviewPanelInlineSize } from "~/hooks/usePreviewPanelInlineSize"; +import { RESIZABLE_WIDTH_PROPERTY } from "~/hooks/useResizableWidth"; import { newestPullRequestSummary, pullRequestEnvironment, @@ -1315,6 +1316,10 @@ export function RightPanelTabs(props: RightPanelTabsProps) { }; }; + // The panel's content slides with its closing edge. The tab bar stays against the + // window's edge instead, or it would slide under the title bar controls. + const tabBarPinned = props.mode === "inline" && props.open !== undefined && !props.maximized; + return ( ) : null} -
+
{props.activeSurfaceId === null ? ( {isInline && !maximized ? : null} - {/* Content stays pinned to the right edge, so closing uncovers the chat - instead of sliding the tab bar under the title bar controls. */} + {/* A row narrower than the panel's minimum clips the left edge, keeping its controls visible. */}