@@ -518,7 +518,13 @@ export function ChatWidget({
518518 onClick = { ( ) => setIsOpen ( false ) }
519519 />
520520
521- < div className = { cn ( "fixed bottom-4 right-4 sm:bottom-6 sm:right-6 z-50 flex flex-col items-end gap-3 sm:gap-4" , className ) } >
521+ < div
522+ className = { cn ( "fixed bottom-4 right-4 sm:bottom-6 sm:right-6 z-50 flex flex-col items-end gap-3 sm:gap-4" , className ) }
523+ style = { {
524+ // Ensure widget doesn't get affected by viewport zoom
525+ touchAction : 'manipulation' ,
526+ } }
527+ >
522528 { /* Chat Panel */ }
523529 < div
524530 className = { cn (
@@ -529,8 +535,11 @@ export function ChatWidget({
529535 style = { {
530536 backgroundColor : resolvedColors . chatBackground ,
531537 border : `1px solid ${ resolvedColors . border } ` ,
532- height : isOpen ? 'min(560px, calc(100vh - 6rem))' : '0' ,
538+ // Use dvh (dynamic viewport height) for mobile keyboard support, with vh fallback
539+ height : isOpen ? 'min(560px, calc(100dvh - 6rem))' : '0' ,
533540 fontSize : resolvedFontSize ,
541+ // Prevent touch-based zooming/panning on the widget itself
542+ touchAction : 'manipulation' ,
534543 } }
535544 >
536545 { /* Header */ }
@@ -825,6 +834,7 @@ export function ChatWidget({
825834 className = "flex-1 bg-transparent focus:outline-none py-2 disabled:opacity-50"
826835 style = { {
827836 color : resolvedColors . foreground ,
837+ fontSize : '16px' , // Prevents iOS auto-zoom on focus
828838 } }
829839 />
830840 < button
0 commit comments