"use client"; import { ActionBarPrimitive, BranchPickerPrimitive, ComposerPrimitive, MessagePrimitive, ThreadPrimitive, } from "@assistant-ui/react"; import { ArrowUpIcon, CheckIcon, ChevronLeftIcon, ChevronRightIcon, CopyIcon, RefreshCwIcon, SquareIcon, } from "lucide-react"; import type { FC } from "react"; import { MarkdownText } from "./markdown-text"; // --------------------------------------------------------------------------- // Thread root — Grok-style layout // When empty: logo + composer centered. When not empty: viewport + composer bottom. // --------------------------------------------------------------------------- export const Thread: FC = () => ( {/* Empty state: centered welcome + composer */}
A

Atlas

Your product strategist. Let's define what you're building.

{/* Messages viewport */}
); // --------------------------------------------------------------------------- // Composer — Grok pill style with inverted send button // --------------------------------------------------------------------------- const Composer: FC = () => (
); // --------------------------------------------------------------------------- // Followup suggestions // --------------------------------------------------------------------------- const FollowupSuggestion: FC<{ suggestion: { prompt: string } }> = ({ suggestion }) => ( ); // --------------------------------------------------------------------------- // User message — subtle right-aligned bubble // --------------------------------------------------------------------------- const UserMessage: FC = () => (
); const UserText: FC<{ text: string }> = ({ text }) => (
{text}
); const UserActionBar: FC = () => ( ); // --------------------------------------------------------------------------- // Assistant message — plain text, no bubble, small avatar // --------------------------------------------------------------------------- const AssistantMessage: FC = () => (
A
); const AssistantText: FC = () => ( ); const AssistantActionBar: FC = () => ( ); // --------------------------------------------------------------------------- // Branch picker // --------------------------------------------------------------------------- const BranchPicker: FC = () => ( / );