import { ArrowDownIcon, ArrowUpIcon, CheckIcon, CopyIcon, RefreshCwIcon, Square } from 'lucide-react'; import { ActionBarPrimitive, ComposerPrimitive, ErrorPrimitive, MessagePrimitive, ThreadPrimitive } from '@assistant-ui/react'; import type { FC } from 'react'; import { Button } from '@/components/ui/button'; import { MarkdownText } from '@/components/assistant-ui/markdown-text'; import { ToolFallback } from '@/components/assistant-ui/tool-fallback'; import { TooltipIconButton } from '@/components/assistant-ui/tooltip-icon-button'; import { ComposerAddAttachment, ComposerAttachments, UserMessageAttachments } from '@/components/assistant-ui/attachment'; export const Thread: FC = () => { return ( ); }; const ThreadScrollToBottom: FC = () => { return ( ); }; const ThreadWelcome: FC = () => { return (
Hello there!
How can I help you today?
); }; const ThreadSuggestions: FC = () => { return (
{[ { title: "What's the weather", label: 'in San Francisco?', action: "What's the weather in San Francisco?", }, { title: 'Explain React hooks', label: 'like useState and useEffect', action: 'Explain React hooks like useState and useEffect', }, { title: 'Write a SQL query', label: 'to find top customers', action: 'Write a SQL query to find top customers', }, { title: 'Create a meal plan', label: 'for healthy weight loss', action: 'Create a meal plan for healthy weight loss', }, ].map((suggestedAction, index) => (
))}
); }; const Composer: FC = () => { return ( ); }; const ComposerAction: FC = () => { return (
); }; const MessageError: FC = () => { return ( ); }; const ReasoningContent: FC<{ text: string }> = ({ text }) => { return (
Thinking...
{text}
); }; const AssistantMessage: FC = () => { return (
); }; const AssistantActionBar: FC = () => { return ( ); }; const UserMessage: FC = () => { return (
); }; const UserActionBar: FC = () => { return ( {/* Edit button disabled */} ); }; const EditComposer: FC = () => { return (
); };