"use client"; import { ActionBarPrimitive, BranchPickerPrimitive, ComposerPrimitive, MessagePrimitive, ThreadPrimitive, } from "@assistant-ui/react"; import { CheckIcon, ChevronLeftIcon, ChevronRightIcon, CopyIcon, RefreshCwIcon, SquareIcon, } from "lucide-react"; import type { FC } from "react"; import { MarkdownText } from "./markdown-text"; // --------------------------------------------------------------------------- // Thread root — Stackless style: flat on beige, no card // --------------------------------------------------------------------------- export const Thread: FC<{ userInitial?: string }> = ({ userInitial = "Y" }) => ( {/* Empty state */} A Atlas Your product strategist. Let's define what you're building. {/* Messages */} , AssistantMessage, }} /> {/* Input bar */} ); // --------------------------------------------------------------------------- // Composer — Stackless white pill input bar // --------------------------------------------------------------------------- const Composer: FC<{ userInitial?: string }> = () => ( (e.currentTarget.style.opacity = "0.8")} onMouseLeave={(e) => (e.currentTarget.style.opacity = "1")} > Send Stop ); // --------------------------------------------------------------------------- // Assistant message — black avatar, "Atlas" label, plain text // --------------------------------------------------------------------------- const AssistantMessage: FC = () => ( {/* Avatar */} A {/* Sender label */} Atlas {/* Message content */} ); const AssistantText: FC = () => ; const AssistantActionBar: FC = () => ( Copied Copy Retry ); // --------------------------------------------------------------------------- // User message — warm avatar, "You" label, same layout as Atlas // --------------------------------------------------------------------------- const UserMessage: FC<{ userInitial?: string }> = ({ userInitial = "Y" }) => ( {/* Avatar */} {userInitial} {/* Sender label */} You {/* Message content */} ); const UserText: FC<{ text: string }> = ({ text }) => {text}; const UserActionBar: FC = () => ( Edit ); // --------------------------------------------------------------------------- // Branch picker // --------------------------------------------------------------------------- const BranchPicker: FC = () => ( / );
Atlas
Your product strategist. Let's define what you're building.