QuestionPrompt
The form for one question the agent asks the user. kind is single (lettered options, one choice), multi (several choices, bounded by minSelections and maxSelections) or text (a free-text area). allowCustom adds a typed answer as the last option and allowNotes adds an optional notes field. An option can carry a preview (Markdown or code): from 640px of prompt width it is shown beside the options, below that under the chosen or hovered option. The primary button reads Next while more questions follow and Send on the last one; it stays disabled until the answer is valid. Skip calls onSkip, or onSubmit({ kind: "skip" }) when onSkip is not set. initialAnswer is read only on mount, so remount with key when the question changes. QuestionTool and InputBar questionBar use this component and handle multi-step navigation for you; render it directly only for a custom flow. Related helpers: getInitialQuestionDraft, canSubmitQuestion, buildQuestionAnswer, formatQuestionAnswer.
$pnpm add @sinups/ai-kit @mantine/core @mantine/hooks @tabler/icons-react