hintstring- The rest of the placeholder: "or drop a file to start from it."
labelstring- A quiet line over the words, e.g. "New chat".
modesMode[]- The modes to choose between.
- Default
DEFAULT_MODES initialModestring- The id of the mode it starts in.
initialFilesAttachment[]- Files already attached when it opens.
- Default
[] suggestionsstring[]- Prompts to offer; the focused, empty box shows the first, and Tab takes it.
widthnumber- The box's width. It grows in height only, as far as its own scroll.
- Default
420 busyboolean- Whether an answer is coming, when you track that yourself. Leave it out and the box follows the promise `onSend` returns.
statusstring- What it's doing while it answers: "Reading the board update". Only ever what you say.
- Default
'Thinking' modelstring- The model, named beside Send. With `models`, the one it starts on.
modelsModel[]- Models to choose between, each with your own icon. Without them `model` is plain text, with no chevron pretending to be a menu.
projectsstring[]- Projects to file this under. Given, a slim strip under the field offers them.
sendableboolean- Default
true compactboolean- Default
false onSend(message: Message) => Promise<unknown> | void- Return a promise to show the working state until it settles; if it rejects, the words come back to the box.
onStop() => void- Called when a person stops what's working.
onModel(name: string) => void- Called when a person picks a model.
onProject(name: string | null) => void- Called when a person picks a project, or null for none.
onVoice() => void- Shows a microphone key; called when it's pressed.
onGrow(by: number) => void- Called as the box grows above its resting height, with how far, so whatever sits above it can make room.
Through a ref: type(), attach(), mode(), send(), focus()