authorgravatar for bergholm@hey.comMarcus Grånäs <bergholm@hey.com> 2026-04-30 03:03:40+02:00
committergravatar for noreply@github.comGitHub <noreply@github.com> 2026-04-29 18:03:40-07:00
log9acf46a76d60e31098034267b36fd4f6e3a15ea6
tree630ee1030fe2ba1c6c4d9a6ca367b17716f4c7f5
parent44b39fe2ec47a58ae4efd97fabe99c24c376792d
signature Signed by PGP key B5690EEEBB952194

fix(web): prevent iOS Safari auto-zoom on input focus (#1652)

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> Co-authored-by: codex <codex@users.noreply.github.com> Co-authored-by: Julius Marminge <julius0216@outlook.com>

2 files changed, 5 insertions(+), 8 deletions(-)

apps/web/src/components/ComposerPromptEditor.tsx+4-7
...@@ -152,10 +152,7 @@ function ComposerMentionDecorator(props: { path: string }) {...@@ -152,10 +152,7 @@ function ComposerMentionDecorator(props: { path: string }) {
152 return (152 return (
153 <Tooltip>153 <Tooltip>
154 <TooltipTrigger render={chip} />154 <TooltipTrigger render={chip} />
155 <TooltipPopup155 <TooltipPopup side="top" className="max-w-120 whitespace-normal leading-tight wrap-anywhere">
156 side="top"
157 className="max-w-[30rem] whitespace-normal leading-tight wrap-anywhere"
158 >
159 {props.path}156 {props.path}
160 </TooltipPopup>157 </TooltipPopup>
161 </Tooltip>158 </Tooltip>
...@@ -275,7 +272,7 @@ function ComposerSkillDecorator(props: { skillLabel: string; skillDescription: s...@@ -275,7 +272,7 @@ function ComposerSkillDecorator(props: { skillLabel: string; skillDescription: s
275 return (272 return (
276 <Tooltip>273 <Tooltip>
277 <TooltipTrigger render={chip} />274 <TooltipTrigger render={chip} />
278 <TooltipPopup side="top" className="max-w-[30rem] whitespace-normal leading-tight">275 <TooltipPopup side="top" className="max-w-120 whitespace-normal leading-tight">
279 {props.skillDescription}276 {props.skillDescription}
280 </TooltipPopup>277 </TooltipPopup>
281 </Tooltip>278 </Tooltip>
...@@ -1624,7 +1621,7 @@ function ComposerPromptEditorInner({...@@ -1624,7 +1621,7 @@ function ComposerPromptEditorInner({
1624 contentEditable={1621 contentEditable={
1625 <ContentEditable1622 <ContentEditable
1626 className={cn(1623 className={cn(
1627 "block max-h-[200px] min-h-17.5 w-full overflow-y-auto whitespace-pre-wrap break-words bg-transparent text-[14px] leading-relaxed text-foreground focus:outline-none",1624 "block max-h-[200px] min-h-17.5 w-full overflow-y-auto whitespace-pre-wrap wrap-break-word bg-transparent text-base sm:text-[14px] leading-relaxed text-foreground focus:outline-none",
1628 className,1625 className,
1629 )}1626 )}
1630 data-testid="composer-editor"1627 data-testid="composer-editor"
...@@ -1635,7 +1632,7 @@ function ComposerPromptEditorInner({...@@ -1635,7 +1632,7 @@ function ComposerPromptEditorInner({
1635 }1632 }
1636 placeholder={1633 placeholder={
1637 terminalContexts.length > 0 ? null : (1634 terminalContexts.length > 0 ? null : (
1638 <div className="pointer-events-none absolute inset-0 text-[14px] leading-relaxed text-muted-foreground/35">1635 <div className="pointer-events-none absolute inset-0 text-base sm:text-[14px] leading-relaxed text-muted-foreground/35">
1639 {placeholder}1636 {placeholder}
1640 </div>1637 </div>
1641 )1638 )
apps/web/src/components/Sidebar.tsx+1-1
...@@ -568,7 +568,7 @@ const SidebarThreadRow = memo(function SidebarThreadRow(props: SidebarThreadRowP...@@ -568,7 +568,7 @@ const SidebarThreadRow = memo(function SidebarThreadRow(props: SidebarThreadRowP
568 {renamingThreadKey === threadKey ? (568 {renamingThreadKey === threadKey ? (
569 <input569 <input
570 ref={handleRenameInputRef}570 ref={handleRenameInputRef}
571 className="min-w-0 flex-1 truncate text-xs bg-transparent outline-none border border-ring rounded px-0.5"571 className="min-w-0 flex-1 truncate text-base sm:text-xs bg-transparent outline-none border border-ring rounded px-0.5"
572 value={renamingTitle}572 value={renamingTitle}
573 onChange={handleRenameInputChange}573 onChange={handleRenameInputChange}
574 onKeyDown={handleRenameInputKeyDown}574 onKeyDown={handleRenameInputKeyDown}