@@ -2,7 +2,7 @@ import { TimeAgo } from "@/components/TimeAgo";
22import { Button } from "@/components/ui/button" ;
33import { TabsContent } from "@/components/ui/tabs" ;
44import { Textarea } from "@/components/ui/textarea" ;
5- import { ArrowLeft , ArrowUp } from "lucide-react" ;
5+ import { Activity , ArrowLeft , ArrowUp , User } from "lucide-react" ;
66import { useEffect , useRef } from "react" ;
77import ReactMarkdown from "react-markdown" ;
88import remarkBreaks from "remark-breaks" ;
@@ -363,23 +363,28 @@ function AiMessage({ message }: { message: AiBuilderMessage }) {
363363 const isRunningToolMessage = isToolMessage && message . toolStatus === "running" ;
364364
365365 let messageClassName = "" ;
366+ let wrapperClassName = "w-full" ;
366367
367368 if ( message . role === "user" ) {
368369 messageClassName =
369- "flex w-full items-start gap-2 rounded-md border border-slate-200/90 bg-slate-100 px-2 py-1.5 text-sm text-slate-800" ;
370+ "flex w-full items-start gap-2 rounded-md border border-slate-200/90 bg-slate-100 px-3 py-2.5 text-sm text-slate-800" ;
371+ wrapperClassName = "w-full py-1" ;
370372 } else if ( isToolMessage ) {
371- messageClassName = `px-2 text-xs leading-relaxed text-gray-500 ${ isRunningToolMessage ? "sp-ai-thinking" : "" } ` ;
373+ messageClassName = `flex items-start gap-2 px-2 text-xs leading-relaxed text-gray-500 ${ isRunningToolMessage ? "sp-ai-thinking" : "" } ` ;
372374 } else {
373375 messageClassName = "px-2 text-sm text-gray-800" ;
374376 }
375377
376378 return (
377- < div key = { message . id } className = "w-full" >
379+ < div key = { message . id } className = { wrapperClassName } >
378380 { message . role === "user" ? (
379381 < div className = { messageClassName } >
380- < span className = "shrink-0 select-none font-mono text-slate-500" aria-hidden = "true" >
381- >
382- </ span >
382+ < User className = "mt-0.5 h-3.5 w-3.5 shrink-0 text-slate-500" aria-hidden = "true" />
383+ < span className = "min-w-0 whitespace-pre-wrap break-words" > { message . content } </ span >
384+ </ div >
385+ ) : isToolMessage ? (
386+ < div className = { messageClassName } >
387+ < Activity className = "mt-0.5 h-3.5 w-3.5 shrink-0 text-gray-400" aria-hidden = "true" />
383388 < span className = "min-w-0 whitespace-pre-wrap break-words" > { message . content } </ span >
384389 </ div >
385390 ) : (
@@ -393,7 +398,7 @@ function AiMessage({ message }: { message: AiBuilderMessage }) {
393398
394399function AiMessageMarkdown ( { content } : { content : string } ) {
395400 return (
396- < div className = "max-w-none [&_p]:mb-2 [&_p:last-child]:mb-0 [&_ol]:mb-2 [&_ol]:ml-5 [&_ol]:list-decimal [&_ul]:mb-2 [&_ul]:ml-5 [&_ul]:list-disc [&_li]:mb-1 [&_code]:rounded [&_code]:bg-slate-100 [&_code]:px-1 [&_code]:py-0.5 [&_code]:text-xs [&_pre]:my-2 [&_pre]:overflow-auto [&_pre]:rounded [&_pre]:bg-slate-100 [&_pre]:p-2 [&_pre_code]:bg-transparent [&_pre_code]:p-0 [&_strong]:font-semibold" >
401+ < div className = "max-w-none text-slate-800 [&_h1]:mb-1.5 [&_h1]:mt-1 [&_h1]:text-lg [&_h1]:font-semibold [&_h1]:leading-tight [&_h1:first-child]:mt-0 [&_h2]:mb-1 [&_h2]:mt-1 [&_h2]:text-base [&_h2]:font-semibold [&_h2]:leading-tight [&_h2:first-child]:mt-0 [&_h3]:mb-1.5 [&_h3]:mt-2 [&_h3]:text-sm [&_h3]:font-semibold [&_h3]:leading-tight [&_h3:first-child]:mt-0 [&_h4]:mb-0.5 [&_h4]:mt-1 [&_h4]:text-sm [&_h4]:font-medium [&_h4]:leading-tight [&_h4:first-child]:mt-0 [&_p]:mb-2 [&_p]:leading-relaxed [&_p:last-child]:mb-0 [&_ol]:mb-2 [&_ol]:ml-5 [&_ol]:list-decimal [&_ul]:mb-2 [&_ul]:ml-5 [&_ul]:list-disc [&_li]:mb-1 [&_blockquote]:my-2 [&_blockquote]:border-l-2 [&_blockquote]:border-slate-300 [&_blockquote]:pl-3 [&_hr]:my-6 [&_hr]:border-slate-300 [&_code]:rounded [&_code]:bg-slate-100 [&_code]:px-1 [&_code]:py-0.5 [&_code]:text-xs [&_pre]:my-2 [&_pre]:overflow-auto [&_pre]:rounded [&_pre]:bg-slate-100 [&_pre]:p-2 [&_pre_code]:bg-transparent [&_pre_code]:p-0 [&_a]:underline [&_a]:underline-offset-2 [&_a]:decoration-current" >
397402 < ReactMarkdown
398403 remarkPlugins = { [ remarkGfm , remarkBreaks ] }
399404 components = { {
0 commit comments