Adds the first-run and suggestion primitives the Wind chat renderer
needs, matched against ApChat's first-run experience and suggestions:
- PromptSuggestions: a role="group" of chips named by strings.label.
Items are { label, prompt?, id?, icon? }, so AutopilotChatSuggestion
passes straight in; onSelect returns the item and the caller decides
between sending and prefilling. Vertical by default like ApChat, with
a horizontal orientation that scrolls under scroll-fade-x. The default
chip keeps the Wind raised look (surface-raised, subtle border, hover
fill); density maps ApChat's compact padding and font. showLabel renders the visible
"Suggestions" title ApChat shows after a reply; animated slides the
group in like ApChat's popUpFromBottom, through a new
animate-slide-in-from-bottom utility that only fades under reduced
motion. Chips carry data-index for test hooks.
- ChatHero: compound layout with ChatHeroHeader, ChatHeroLogo,
ChatHeroTitle (h2, asChild) and ChatHeroDescription. layout="docked"
bottom-anchors start-aligned copy above a footer composer, as ApChat's
Embedded first-run does; layout="centered" is the centered home with
the composer inside an 800px column. Empty title or description copy
renders nothing (also through asChild) and an empty header hides, since
CAS passes "" when an agent has no welcome copy.
Removes the custom/chat-first-experience and custom/chat-prompt-suggestions
mocks. The Delegate Home story rebuilds the mock on ChatHero with a few class
overrides (computed styles match the old mock); the getting-started
table and apollo-ai-context list the new components. Chat/Patterns gains
Embedded and Fullscreen empty-state stories, and all four panel stories
now sit on bg-background.
Refs: MST-16381
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Summary
Adds the first-run and suggestion primitives for the Wind chat renderer (MST-16381, W-7) and removes the last two static chat mocks. Both components are matched against ApChat's Material first-run experience (
chat-fre.tsx) and suggestions (chat-suggestions.tsx), so R-6 can map the service onto them without behaviour gaps.PromptSuggestions: arole="group"of chips named bystrings.label. Items are{ label, prompt?, id?, icon? }, soAutopilotChatSuggestionpasses straight in, andonSelect(item)leaves sending vs prefilling to the caller (ApChat'ssendOnClick). Vertical by default like ApChat;orientation="horizontal"keeps one row that scrolls underscroll-fade-x.densitymaps ApChat's compact padding and font,showLabelrenders the "Suggestions" title ApChat shows after a reply,animatedslides the group in like ApChat'spopUpFromBottom,disabled, and chips carrydata-indexfor test hooks.ChatHero: compoundChatHero/ChatHeroHeader/ChatHeroLogo/ChatHeroTitle(h2,asChild) /ChatHeroDescriptionwithlayoutanddensity.layout="docked": bottom-anchored, start-aligned copy above a footer composer, which is how ApChat's Embedded first-run looks today.layout="centered": the centered home (CAS ask) with the composer inside an 800px column, as in the Delegate template.""when an agent has no welcome copy.animate-slide-in-from-bottomutility next to the existing slide-ins intailwind.utilities.css(apollo-wind ships no tw-animate plugin); only fades under reduced motion.components/custom/chat-first-experience*andcomponents/custom/chat-prompt-suggestions*. The Delegate Home story is rebuilt onChatHero+PromptSuggestionswith a few class overrides; the getting-started table andapollo-ai-context.mdlist the new components.bg-background.Parity with ApChat
docked(Embedded);centeredadds the home layout for FullScreenforeground-de-emptext-xl/text-sm,text-xscompact); semibold title likeEmptyState{ label, prompt }keyed by labelidandiconsendOnClicksends, else sets the prompt; both focus the inputonSelect(item); the caller does either (see the Send Or Prefill story)horizontalis opt-inshowLabel,animatedrole="group"with an accessible name, native button keyboard handlingDecisions worth a look
DemoComposer, the panel's compact one) and docked can omit it.surface-raised, subtle border,rounded-xl,rounded-lgcompact) rather than ApChat's transparent chip.DOCS.mdsays dynamic suggestions clear once a request is sent, butChatService.setSuggestionsandchat-message.tsxnever clear them, so R-6 should pick which behaviour Wind follows.ChatComposer, until W-8's provider.Test plan
strings, visible label wiring, empty list, disabled, orientation and density attributes, icons, hero submit through the composer, suggestion pass-through, empty copy (also throughasChild), axe for both components in both layouts; full apollo-wind suite (2823 tests)organizeImportson main too)Part of epic MST-16172 (Apollo Chat revamp). Plan: https://uipath.atlassian.net/wiki/spaces/CLD/pages/91226013878
🤖 Generated with Claude Code