@@ -178,61 +178,31 @@ export function MultimodalInput({
178
178
< div className = "relative w-full flex flex-col gap-4" >
179
179
{ /* Show greeting and suggested actions only for new chat */ }
180
180
{ messages . length === 0 && (
181
- < >
182
- < div
183
- className = "w-full flex justify-center items-center my-2"
181
+ < div
182
+ className = "w-full flex justify-center items-center my-2"
183
+ style = { {
184
+ minHeight : "2.5rem" ,
185
+ height : "2.5rem" ,
186
+ perspective : "800px"
187
+ } }
188
+ >
189
+ < motion . div
190
+ key = { greetingIndex }
191
+ initial = { { rotateX : - 90 , opacity : 0 } }
192
+ animate = { { rotateX : 0 , opacity : 1 } }
193
+ exit = { { rotateX : 90 , opacity : 0 } }
194
+ transition = { { duration : 0.5 } }
195
+ className = "text-2xl font-semibold"
184
196
style = { {
185
- minHeight : "2.5rem" ,
186
- height : "2.5rem" ,
187
- perspective : "800px"
197
+ textAlign : "center" ,
198
+ display : "inline-block" ,
199
+ width : "100%" ,
200
+ backfaceVisibility : "hidden"
188
201
} }
189
202
>
190
- < motion . div
191
- key = { greetingIndex }
192
- initial = { { rotateX : - 90 , opacity : 0 } }
193
- animate = { { rotateX : 0 , opacity : 1 } }
194
- exit = { { rotateX : 90 , opacity : 0 } }
195
- transition = { { duration : 0.5 } }
196
- className = "text-2xl font-semibold"
197
- style = { {
198
- textAlign : "center" ,
199
- display : "inline-block" ,
200
- width : "100%" ,
201
- backfaceVisibility : "hidden"
202
- } }
203
- >
204
- { greetings [ greetingIndex ] }
205
- </ motion . div >
206
- </ div >
207
- { /* Suggested actions below input, always visible for new chat */ }
208
- < div className = "grid sm:grid-cols-2 gap-4 w-full md:px-0 mx-auto md:max-w-[500px] mt-4" >
209
- { suggestedActions . map ( ( suggestedAction , index ) => (
210
- < motion . div
211
- initial = { { opacity : 0 , y : 20 } }
212
- animate = { { opacity : 1 , y : 0 } }
213
- exit = { { opacity : 0 , y : 20 } }
214
- transition = { { delay : 0.05 * index } }
215
- key = { index }
216
- className = { index > 1 ? "hidden sm:block" : "block" }
217
- >
218
- < button
219
- onClick = { async ( ) => {
220
- append ( {
221
- role : "user" ,
222
- content : suggestedAction . action ,
223
- } ) ;
224
- } }
225
- className = "border-none bg-muted/50 w-full text-left border border-zinc-200 dark:border-zinc-800 text-zinc-800 dark:text-zinc-300 rounded-lg p-3 text-sm hover:bg-zinc-100 dark:hover:bg-zinc-800 transition-colors flex flex-col"
226
- >
227
- < span className = "font-medium" > { suggestedAction . title } </ span >
228
- < span className = "text-zinc-500 dark:text-zinc-400" >
229
- { suggestedAction . label }
230
- </ span >
231
- </ button >
232
- </ motion . div >
233
- ) ) }
234
- </ div >
235
- </ >
203
+ { greetings [ greetingIndex ] }
204
+ </ motion . div >
205
+ </ div >
236
206
) }
237
207
238
208
< input
@@ -324,6 +294,37 @@ export function MultimodalInput({
324
294
</ div >
325
295
</ div >
326
296
297
+ { /* Suggested actions below input, always visible for new chat */ }
298
+ { messages . length === 0 && (
299
+ < div className = "grid sm:grid-cols-2 gap-4 w-full md:px-0 mx-auto md:max-w-[500px] mt-4" >
300
+ { suggestedActions . map ( ( suggestedAction , index ) => (
301
+ < motion . div
302
+ initial = { { opacity : 0 , y : 20 } }
303
+ animate = { { opacity : 1 , y : 0 } }
304
+ exit = { { opacity : 0 , y : 20 } }
305
+ transition = { { delay : 0.05 * index } }
306
+ key = { index }
307
+ className = { index > 1 ? "hidden sm:block" : "block" }
308
+ >
309
+ < button
310
+ onClick = { async ( ) => {
311
+ append ( {
312
+ role : "user" ,
313
+ content : suggestedAction . action ,
314
+ } ) ;
315
+ } }
316
+ className = "border-none bg-muted/50 w-full text-left border border-zinc-200 dark:border-zinc-800 text-zinc-800 dark:text-zinc-300 rounded-lg p-3 text-sm hover:bg-zinc-100 dark:hover:bg-zinc-800 transition-colors flex flex-col"
317
+ >
318
+ < span className = "font-medium" > { suggestedAction . title } </ span >
319
+ < span className = "text-zinc-500 dark:text-zinc-400" >
320
+ { suggestedAction . label }
321
+ </ span >
322
+ </ button >
323
+ </ motion . div >
324
+ ) ) }
325
+ </ div >
326
+ ) }
327
+
327
328
</ div >
328
329
) ;
329
330
}
0 commit comments