ChatInput
Auto-growing chat textarea with Enter-to-send, Shift-Enter for newlines, busy/stop states, and optional character limit.
Source
src/components/ai/chat-input.tsxDefault
Enter to send, Shift+Enter for a newline. Grows from one to six rows as you type.
Busy with Stop
While streaming, the submit button becomes a Stop button that calls onStop.
With character limit
Counter fades in at 90% of maxLength and turns red when exceeded.
Disabled
Fully inert state — use while waiting for authentication or quota restoration.