From 2df3c6fad2a390737eab47680c96df7777393d8e Mon Sep 17 00:00:00 2001 From: shekohex Date: Sat, 7 Mar 2026 09:59:00 +0200 Subject: [PATCH] fix: chat composer queue button and focus mode sizing (#616) --- packages/ui/src/components/chat/ChatInput.tsx | 5 +++-- packages/ui/src/components/ui/textarea.tsx | 8 +++++--- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/packages/ui/src/components/chat/ChatInput.tsx b/packages/ui/src/components/chat/ChatInput.tsx index fd0033b6..0260c474 100644 --- a/packages/ui/src/components/chat/ChatInput.tsx +++ b/packages/ui/src/components/chat/ChatInput.tsx @@ -2195,7 +2195,7 @@ export const ChatInput: React.FC = ({ onOpenSettings, scrollToBo }} className={cn( footerIconButtonClass, - 'absolute bottom-full left-1/2 -translate-x-1/2 mb-1', + 'absolute z-20 bottom-full left-1/2 -translate-x-1/2 mb-1', hasContent && currentSessionId ? 'text-primary hover:text-primary' : 'opacity-30' @@ -2625,7 +2625,7 @@ export const ChatInput: React.FC = ({ onOpenSettings, scrollToBo : undefined} /> )} -
+
{highlightedComposerContent && (
= ({ onOpenSettings, scrollToBo autoCorrect={isMobile ? "on" : "off"} autoCapitalize={isMobile ? "sentences" : "off"} spellCheck={isMobile} + fillContainer={isDesktopExpanded} outerClassName={cn('focus-within:ring-0', isDesktopExpanded && 'flex-1 min-h-0')} className={cn( 'min-h-[52px] resize-none border-0 px-3 rounded-b-none appearance-none hover:border-transparent bg-transparent relative z-10', diff --git a/packages/ui/src/components/ui/textarea.tsx b/packages/ui/src/components/ui/textarea.tsx index 07843ed9..b48d55db 100644 --- a/packages/ui/src/components/ui/textarea.tsx +++ b/packages/ui/src/components/ui/textarea.tsx @@ -6,20 +6,22 @@ import { ScrollableOverlay } from "./ScrollableOverlay" type TextareaProps = React.ComponentProps<"textarea"> & { outerClassName?: string; scrollbarClassName?: string; + fillContainer?: boolean; }; const Textarea = React.forwardRef( - ({ className, outerClassName, scrollbarClassName, ...props }, ref) => { + ({ className, outerClassName, scrollbarClassName, fillContainer = false, ...props }, ref) => { return ( } disableHorizontal - fillContainer={false} + fillContainer={fillContainer} outerClassName={cn("w-full rounded-lg focus-within:ring-1 focus-within:ring-primary/50", outerClassName)} scrollbarClassName={scrollbarClassName} className={cn( - "text-foreground border border-border/80 placeholder:text-muted-foreground appearance-none dark:bg-input/30 flex field-sizing-content min-h-16 w-full rounded-lg bg-transparent px-3 py-2 typography-markdown outline-none focus-visible:outline-none disabled:cursor-not-allowed disabled:opacity-50 md:typography-ui-label", + "text-foreground border border-border/80 placeholder:text-muted-foreground appearance-none dark:bg-input/30 flex min-h-16 w-full rounded-lg bg-transparent px-3 py-2 typography-markdown outline-none focus-visible:outline-none disabled:cursor-not-allowed disabled:opacity-50 md:typography-ui-label", + fillContainer ? "[field-sizing:fixed]" : "field-sizing-content", "hover:border-input aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive", "focus:border-primary/70", className