From 2ca3280b391c4dd55c3e9363fabc0f8b57cad8d0 Mon Sep 17 00:00:00 2001 From: Bohdan Triapitsyn Date: Sun, 23 Aug 2026 17:24:59 +0300 Subject: [PATCH] fix(ui): keep draft dropdowns below header --- packages/ui/src/components/chat/ModelControls.tsx | 7 ++++--- packages/ui/src/components/ui/dropdown-menu.tsx | 1 + packages/ui/src/components/ui/select.tsx | 4 ++-- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/packages/ui/src/components/chat/ModelControls.tsx b/packages/ui/src/components/chat/ModelControls.tsx index f7f9e1f2..80d547b2 100644 --- a/packages/ui/src/components/chat/ModelControls.tsx +++ b/packages/ui/src/components/chat/ModelControls.tsx @@ -2342,7 +2342,7 @@ export const ModelControls: React.FC = ({ = ({ ); }} + maxHeightClassName="max-h-[min(400px,calc(100dvh-var(--oc-header-height,56px)-4rem))] flex-1" tooltipsEnabled={agentMenuOpen} onEscape={() => setAgentMenuOpen(false)} /> @@ -2734,7 +2735,7 @@ export const ModelControls: React.FC = ({ - +
@@ -2750,7 +2751,7 @@ export const ModelControls: React.FC = ({ />
- +
{!agentSearchQuery.trim() && defaultAgentName && ( <> diff --git a/packages/ui/src/components/ui/dropdown-menu.tsx b/packages/ui/src/components/ui/dropdown-menu.tsx index fa70b1a7..495ff6bc 100644 --- a/packages/ui/src/components/ui/dropdown-menu.tsx +++ b/packages/ui/src/components/ui/dropdown-menu.tsx @@ -128,6 +128,7 @@ function DropdownMenuContent({ }} className={cn( dropdownMenuPopupClass, + "max-h-[calc(100dvh-var(--oc-header-height,56px)-0.5rem)] overflow-y-auto", className )} {...props} diff --git a/packages/ui/src/components/ui/select.tsx b/packages/ui/src/components/ui/select.tsx index cee5c00f..99673fda 100644 --- a/packages/ui/src/components/ui/select.tsx +++ b/packages/ui/src/components/ui/select.tsx @@ -198,7 +198,7 @@ function SelectContent({ color: 'var(--surface-elevated-foreground)', }} className={cn( - "oc-glass-popover oc-glass-floating pointer-events-auto transition-all duration-150 ease-out data-[starting-style]:opacity-0 data-[starting-style]:scale-95 data-[ending-style]:opacity-0 data-[ending-style]:scale-95 relative z-[120] max-h-[var(--available-height)] min-w-[8rem] origin-[var(--transform-origin)] overflow-x-hidden rounded-xl", + "oc-glass-popover oc-glass-floating pointer-events-auto transition-all duration-150 ease-out data-[starting-style]:opacity-0 data-[starting-style]:scale-95 data-[ending-style]:opacity-0 data-[ending-style]:scale-95 relative z-[120] max-h-[min(var(--available-height),calc(100dvh-var(--oc-header-height,56px)-0.5rem))] min-w-[8rem] origin-[var(--transform-origin)] overflow-x-hidden rounded-xl", !alignItemWithTrigger && "data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1", fitContent && "w-max min-w-0", @@ -208,7 +208,7 @@ function SelectContent({ >