What is the problem this feature would solve?
SelectOptions.message is required and the select renderer prints the ? message › header unconditionally. A CLI that has already asked the question elsewhere (banner, surrounding prose) cannot render just the choice list — the only options are repeating the question or rebuilding the entire select on Prompt.custom.
What is the feature you are proposing to solve the problem?
Make message optional in SelectOptions (and ideally the other prompt option types), skipping the header line entirely when it is absent — the prompt renders only the choice list, while submission, clearing, and quit behaviour stay unchanged.
Alternatively (or additionally): export the choice-list rendering used by renderSelectChoices, so custom prompts built on Prompt.custom can reuse it instead of duplicating it.
What alternatives have you considered?
- Repeating the question in the select's
message — duplicates a line the user has already read.
- Passing an empty
message — still renders the ? › header with stray symbols.
- Rebuilding the select on
Prompt.custom with Data.taggedEnum<Prompt.ActionDefinition>() — works (this is the workaround we use), but duplicates the built-in's cursor movement, wrap-around, and frame-clearing mechanics, which then drift as the built-in evolves.
What is the problem this feature would solve?
SelectOptions.messageis required and the select renderer prints the? message ›header unconditionally. A CLI that has already asked the question elsewhere (banner, surrounding prose) cannot render just the choice list — the only options are repeating the question or rebuilding the entire select onPrompt.custom.What is the feature you are proposing to solve the problem?
Make
messageoptional inSelectOptions(and ideally the other prompt option types), skipping the header line entirely when it is absent — the prompt renders only the choice list, while submission, clearing, and quit behaviour stay unchanged.Alternatively (or additionally): export the choice-list rendering used by
renderSelectChoices, so custom prompts built onPrompt.customcan reuse it instead of duplicating it.What alternatives have you considered?
message— duplicates a line the user has already read.message— still renders the? ›header with stray symbols.Prompt.customwithData.taggedEnum<Prompt.ActionDefinition>()— works (this is the workaround we use), but duplicates the built-in's cursor movement, wrap-around, and frame-clearing mechanics, which then drift as the built-in evolves.