# Suggestion A suggestion component that displays a horizontal row of clickable suggestions for user interaction. The `Suggestion` component displays a horizontal row of clickable suggestions for user interaction. See `scripts/suggestion.tsx` for this example. ## Installation ```bash npx ai-elements@latest add suggestion ``` ## Usage with AI SDK Build a simple input with suggestions users can click to send a message to the LLM. Add the following component to your frontend: ```tsx title="app/page.tsx" "use client"; import { PromptInput, type PromptInputMessage, PromptInputTextarea, PromptInputSubmit, } from "@/components/ai-elements/prompt-input"; import { Suggestion, Suggestions } from "@/components/ai-elements/suggestion"; import { useState } from "react"; import { useChat } from "@ai-sdk/react"; const suggestions = [ "Can you explain how to play tennis?", "What is the weather in Tokyo?", "How do I make a really good fish taco?", ]; const SuggestionDemo = () => { const [input, setInput] = useState(""); const { sendMessage, status } = useChat(); const handleSubmit = (message: PromptInputMessage) => { if (message.text.trim()) { sendMessage({ text: message.text }); setInput(""); } }; const handleSuggestionClick = (suggestion: string) => { sendMessage({ text: suggestion }); }; return (
{suggestions.map((suggestion) => ( ))} setInput(e.currentTarget.value)} className="pr-12" />
); }; export default SuggestionDemo; ``` ## Features - Horizontal row of clickable suggestion buttons - Customizable styling with variant and size options - Flexible layout that wraps suggestions on smaller screens - onClick callback that emits the selected suggestion string - Support for both individual suggestions and suggestion lists - Clean, modern styling with hover effects - Responsive design with mobile-friendly touch targets - TypeScript support with proper type definitions ## Examples ### Usage with AI Input See `scripts/suggestion-input.tsx` for this example. ## Props ### `` | Prop | Type | Default | Description | |------|------|---------|-------------| | `...props` | `React.ComponentProps` | - | Any other props are spread to the underlying ScrollArea component. | ### `` | Prop | Type | Default | Description | |------|------|---------|-------------| | `suggestion` | `string` | Required | The suggestion string to display and emit on click. | | `onClick` | `(suggestion: string) => void` | - | Callback fired when the suggestion is clicked. | | `...props` | `Omit, ` | - | Any other props are spread to the underlying shadcn/ui Button component. |