'use client'; import type { ChatStatus } from 'ai'; import { RiAddLine } from '@remixicon/react'; import { ChatModelSelector } from './ChatModelSelector'; import type { OpenRouterModelId } from '@/lib/openrouter'; import { PromptInput, PromptInputActionAddAttachments, PromptInputActionMenu, PromptInputActionMenuContent, PromptInputActionMenuTrigger, PromptInputAttachment, PromptInputAttachments, PromptInputBody, PromptInputFooter, PromptInputHeader, type PromptInputMessage, PromptInputSubmit, PromptInputTextarea, PromptInputTools, } from '@/components/ai-elements/prompt-input'; interface ChatInputProps { value: string; onChange: (value: string) => void; onSubmit: (message: PromptInputMessage) => void; modelId: OpenRouterModelId; onModelChange: (modelId: OpenRouterModelId) => void; onStop?: () => void; status?: ChatStatus; placeholder?: string; } export function ChatInput({ value, onChange, onSubmit, modelId, onModelChange, onStop, status = 'ready', placeholder, }: ChatInputProps) { const isGenerating = status === 'submitted' || status === 'streaming'; return ( {(attachment) => } onChange(event.target.value)} placeholder={placeholder} value={value} /> ); } export type { PromptInputMessage };