feat(ai): welcome cards + suggestions above composer#4549
Conversation
Bake the welcome-cards capability into F0AiChat as a data-driven `welcomeScreenCards` prop (symmetric with `welcomeScreenSuggestions`), rendered by an internal WelcomeScreenCardsRow — replacing the standalone F0AiChatWelcomeCards component, which the consumer had to hand-wire through the `footer` slot. Also always render the welcome suggestions row above the composer so its popover opens upward instead of covering the input. Combines and supersedes #4534 and #4537. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
✅ No New Circular DependenciesNo new circular dependencies detected. Current count: 0 |
📦 Alpha Package Version PublishedUse Use |
🔍 Visual review for your branch is published 🔍Here are the links to: |
|
Mark F0AiChatWelcomeCard / WelcomeScreenSuggestion (and the internal-types import) as type-only so they're consistent with their sibling type imports. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Description
Combines #4534 and #4537 into a single change and drops the standalone
F0AiChatWelcomeCardscomponent. Welcome cards are now a first-class, data-driven feature of the chat: callers pass awelcomeScreenCardsarray (symmetric withwelcomeScreenSuggestions) and the chat owns the layout and — for prompt cards — the send, instead of hand-wiring a component through the genericfooterslot. The welcome suggestions row now also always renders above the composer, so its popover opens upward into empty space rather than covering the input. Supersedes #4534 and #4537.Screenshots (if applicable)
Welcome cards below the composer (fullscreen welcome screen):
Suggestions row above the composer:
Implementation details
welcomeScreenCardsto the F0AiChat provider + theF0AiChatWelcomeCardtype, threaded through toF0AiChatTextArea(mirrors the existingwelcomeScreenSuggestionspattern)WelcomeScreenCardsRow, shown below the composer on the fullscreen welcome screen — prompt cards send theirmessage, action cards run their ownonClick(which takes precedence)F0AiChatWelcomeCardscomponent; cards are no longer hand-wired through the genericfooterslot (which stays available for legal / powered-by content)WelcomeScreenCardsRow(prompt-card select, action-card precedence, rendering) and welcome-layout placement (cards below in fullscreen, absent in sidepanel)WithWelcomeCardsstory toF0AiChatTextArea🤖 Generated with Claude Code