import { ArrowDownIcon, ArrowUpIcon, CheckIcon, ChevronLeftIcon, ChevronRightIcon, CopyIcon, PencilIcon, RefreshCwIcon, Square, } from "lucide-react"; import { ActionBarPrimitive, BranchPickerPrimitive, ComposerPrimitive, ErrorPrimitive, MessagePrimitive, ThreadPrimitive, } from "@assistant-ui/react"; import type { FC } from "react"; import { LazyMotion, MotionConfig, domAnimation } from "motion/react"; import * as m from "motion/react-m"; import { Button } from "@/components/ui/button"; import { MarkdownText } from "@/components/assistant-ui/markdown-text"; import { Reasoning, ReasoningGroup } from "@/components/assistant-ui/reasoning"; 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"; import { cn } from "@/lib/utils"; 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 AssistantMessage: FC = () => { return (
); }; const AssistantActionBar: FC = () => { return ( ); }; const UserMessage: FC = () => { return (
); }; const UserActionBar: FC = () => { return ( ); }; const EditComposer: FC = () => { return (
); }; const BranchPicker: FC = ({ className, ...rest }) => { return ( / ); };