From 37fa7ae5ed46d5eb5a75851462d26408acce1da8 Mon Sep 17 00:00:00 2001 From: Matei-Paul Trandafir Date: Wed, 15 Apr 2026 22:42:21 +0300 Subject: [PATCH 1/3] Show multichoice hint for keys --- packages/prompts/src/multi-select.ts | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/packages/prompts/src/multi-select.ts b/packages/prompts/src/multi-select.ts index 9c016f0a50..0473e2e432 100644 --- a/packages/prompts/src/multi-select.ts +++ b/packages/prompts/src/multi-select.ts @@ -120,6 +120,13 @@ export const multiselect = (opts: MultiSelectOptions) => { ); }; const required = opts.required ?? true; + const hint = ' ' + color.reset( + color.dim( + `Press ${color.gray(color.bgWhite(color.inverse(' space ')))} to select, ${color.gray( + color.bgWhite(color.inverse(' enter ')), + )} to submit`, + ), + ) return new MultiSelectPrompt({ options: opts.options, @@ -131,13 +138,7 @@ export const multiselect = (opts: MultiSelectOptions) => { cursorAt: opts.cursorAt, validate(selected: Value[] | undefined) { if (required && (selected === undefined || selected.length === 0)) { - return `Please select at least one option.\n${color.reset( - color.dim( - `Press ${color.gray(color.bgWhite(color.inverse(' space ')))} to select, ${color.gray( - color.bgWhite(color.inverse(' enter ')), - )} to submit`, - ), - )}`; + return `Please select at least one option.\n${hint}`; } return undefined; }, @@ -221,7 +222,7 @@ export const multiselect = (opts: MultiSelectOptions) => { columnPadding: prefix.length, rowPadding: titleLineCount + footerLineCount, style: styleOption, - }).join(`\n${prefix}`)}\n${footer}\n`; + }).join(`\n${prefix}`)}\n${hint}\n${footer}\n`; } default: { const prefix = hasGuide ? `${color.blue(S_BAR)} ` : nestedPrefix; @@ -236,7 +237,7 @@ export const multiselect = (opts: MultiSelectOptions) => { columnPadding: prefix.length, rowPadding: titleLineCount + footerLineCount, style: styleOption, - }).join(`\n${prefix}`)}\n${hasGuide ? color.blue(S_BAR_END) : ''}\n`; + }).join(`\n${prefix}`)}\n${hint}\n${hasGuide ? color.blue(S_BAR_END) : ''}\n`; } } }, From 2e539099f4dc927ee67268f481ffd092352928bc Mon Sep 17 00:00:00 2001 From: Matei-Paul Trandafir Date: Wed, 15 Apr 2026 22:51:02 +0300 Subject: [PATCH 2/3] Format --- packages/prompts/src/multi-select.ts | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/packages/prompts/src/multi-select.ts b/packages/prompts/src/multi-select.ts index 0473e2e432..cc8128e8c0 100644 --- a/packages/prompts/src/multi-select.ts +++ b/packages/prompts/src/multi-select.ts @@ -120,13 +120,15 @@ export const multiselect = (opts: MultiSelectOptions) => { ); }; const required = opts.required ?? true; - const hint = ' ' + color.reset( + const hint = + ' ' + + color.reset( color.dim( - `Press ${color.gray(color.bgWhite(color.inverse(' space ')))} to select, ${color.gray( - color.bgWhite(color.inverse(' enter ')), - )} to submit`, + `Press ${color.gray(color.bgWhite(color.inverse(' space ')))} to select, ${color.gray( + color.bgWhite(color.inverse(' enter ')), + )} to submit`, ), - ) + ); return new MultiSelectPrompt({ options: opts.options, From 5365e20a0790659b3b7f3f2d43dee2f62e397fc0 Mon Sep 17 00:00:00 2001 From: Matei-Paul Trandafir Date: Thu, 16 Apr 2026 00:24:26 +0300 Subject: [PATCH 3/3] Update test snapshot --- packages/prompts/src/__tests__/__snapshots__/render.spec.ts.snap | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/prompts/src/__tests__/__snapshots__/render.spec.ts.snap b/packages/prompts/src/__tests__/__snapshots__/render.spec.ts.snap index 05af0a6b43..91ace046ec 100644 --- a/packages/prompts/src/__tests__/__snapshots__/render.spec.ts.snap +++ b/packages/prompts/src/__tests__/__snapshots__/render.spec.ts.snap @@ -52,6 +52,7 @@ exports[`prompt renderers > renders multiselect with cursor marker plus checkbox Second line › ◼ Beta ◻ Gamma + Press space to select, enter to submit " `;