| Prop | Type | Default | Description |
|---|---|---|---|
| question * | string | — | Question text shown above options. |
| options * | QuestionOption[] | — | Choices to render. Shape: { id: string; label: string; description?: string }. |
| selectedId | string | — | When set, the prompt hides after the user selects an option. |
| initialActiveIndex | number | 0 | Highlight this option on mount (0-based). |
| index | number | 1 | Current question index for multi-step flows (1-based). |
| total | number | 1 | Total questions in a multi-step flow. |
| customOptionLabel | string | "Something else…" | Label for the built-in custom answer row. |
| customOptionPlaceholder | string | "Type your answer" | Placeholder for the custom answer field. |
| onSelect | (id: string, customValue?: string) => void | — | Called when the user selects an option or submits a custom answer. |
| className | string | — | Additional CSS classes. |
npx shadcn@latest add "https://www.terminal-kit.com/r/question-prompt.json"