@@ -63,23 +63,31 @@ export function AgentControlBar({
6363 return (
6464 < div
6565 aria-label = "Voice assistant controls"
66- className = { cn ( 'bg-background flex flex-col rounded-md border p-3 shadow-md' , className ) }
66+ className = { cn (
67+ 'bg-background flex flex-col rounded-md border p-3 drop-shadow-xl/3' ,
68+ className
69+ ) }
6770 { ...props }
6871 >
69- { chatOpen && (
70- < >
71- < div className = { `flex w-full overflow-hidden` } >
72- < ChatInput onSend = { handleSendMessage } disabled = { isSendingMessage } className = "w-full" />
73- </ div >
74- < hr className = "my-3" />
75- </ >
76- ) }
72+ < div
73+ inert = { ! chatOpen }
74+ className = { cn (
75+ 'overflow-hidden transition-[height] duration-300 ease-out' ,
76+ chatOpen ? 'h-[57px]' : 'h-0'
77+ ) }
78+ >
79+ < div className = "flex h-8 w-full" >
80+ < ChatInput onSend = { handleSendMessage } disabled = { isSendingMessage } className = "w-full" />
81+ </ div >
82+ < hr className = "my-3" />
83+ </ div >
84+
7785 < div className = "flex flex-row justify-between gap-1" >
7886 < div className = "flex w-full gap-1" >
7987 { visibleControls . microphone && (
8088 < div className = "flex items-center gap-0" >
8189 < TrackToggle
82- className = "peer relative w-auto rounded-r-none border-r-0"
90+ className = "peer relative w-auto md: rounded-r-none md: border-r-0"
8391 source = { Track . Source . Microphone }
8492 >
8593 < BarVisualizer
@@ -92,7 +100,7 @@ export function AgentControlBar({
92100 </ BarVisualizer >
93101 </ TrackToggle >
94102 < DeviceSelect
95- className = "peer-data-[state=on]:border-button-foreground rounded-l-none border-l-0"
103+ className = "peer-data-[state=on]:border-button-foreground hidden rounded-l-none border-l-0 md:block "
96104 size = "sm"
97105 kind = "audioinput"
98106 onActiveDeviceChange = { handleDeviceChange }
@@ -104,11 +112,11 @@ export function AgentControlBar({
104112 { visibleControls . camera && (
105113 < div className = "flex items-center gap-0" >
106114 < TrackToggle
107- className = "peer relative w-auto rounded-r-none border-r-0"
115+ className = "peer relative w-auto md: rounded-r-none md: border-r-0"
108116 source = { Track . Source . Camera }
109117 />
110118 < DeviceSelect
111- className = "peer-data-[state=on]:border-button-foreground rounded-l-none border-l-0"
119+ className = "peer-data-[state=on]:border-button-foreground hidden rounded-l-none border-l-0 md:block "
112120 size = "sm"
113121 kind = "videoinput"
114122 onActiveDeviceChange = { handleDeviceChange }
@@ -138,7 +146,8 @@ export function AgentControlBar({
138146 { visibleControls . leave && (
139147 < Button variant = "destructive" onClick = { handleDisconnect } className = "font-mono" >
140148 < PhoneDisconnectIcon weight = "bold" />
141- END CALL
149+ < span className = "hidden md:inline" > END CALL</ span >
150+ < span className = "inline md:hidden" > END</ span >
142151 </ Button >
143152 ) }
144153 </ div >
0 commit comments