From d8f913e2dc7e5c4793caba9cbe2b5076c03d9a8e Mon Sep 17 00:00:00 2001 From: djgrant <1670902+djgrant@users.noreply.github.com> Date: Mon, 9 Feb 2026 17:01:49 +0000 Subject: [PATCH 1/3] add wraparound to autocomplete --- packages/core/src/prompts/autocomplete.ts | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/packages/core/src/prompts/autocomplete.ts b/packages/core/src/prompts/autocomplete.ts index f72d205c..c29014ca 100644 --- a/packages/core/src/prompts/autocomplete.ts +++ b/packages/core/src/prompts/autocomplete.ts @@ -1,6 +1,7 @@ import type { Key } from 'node:readline'; import color from 'picocolors'; import Prompt, { type PromptOptions } from './prompt.js'; +import { findCursor } from '../utils/cursor.js'; interface OptionLike { value: unknown; @@ -143,10 +144,7 @@ export default class AutocompletePrompt extends Prompt< // Start navigation mode with up/down arrows if (isUpKey || isDownKey) { - this.#cursor = Math.max( - 0, - Math.min(this.#cursor + (isUpKey ? -1 : 1), this.filteredOptions.length - 1) - ); + this.#cursor = findCursor(this.#cursor, isUpKey ? -1 : 1, this.filteredOptions); this.focusedValue = this.filteredOptions[this.#cursor]?.value; if (!this.multiple) { this.selectedValues = [this.focusedValue]; From 63105c865cffeb1de33eded46344d6c3383015de Mon Sep 17 00:00:00 2001 From: djgrant <1670902+djgrant@users.noreply.github.com> Date: Mon, 9 Feb 2026 17:11:12 +0000 Subject: [PATCH 2/3] add changeset --- .changeset/chilly-buses-sort.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/chilly-buses-sort.md diff --git a/.changeset/chilly-buses-sort.md b/.changeset/chilly-buses-sort.md new file mode 100644 index 00000000..5bb1ba87 --- /dev/null +++ b/.changeset/chilly-buses-sort.md @@ -0,0 +1,5 @@ +--- +"@clack/prompts": minor +--- + +add wraparound behaviour to autocomplete components From b3feb2677b260bcc3288be7bd6f9cecb825446bf Mon Sep 17 00:00:00 2001 From: djgrant <1670902+djgrant@users.noreply.github.com> Date: Mon, 9 Feb 2026 19:45:29 +0000 Subject: [PATCH 3/3] fix type error --- packages/core/src/prompts/autocomplete.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/core/src/prompts/autocomplete.ts b/packages/core/src/prompts/autocomplete.ts index c29014ca..43cd6227 100644 --- a/packages/core/src/prompts/autocomplete.ts +++ b/packages/core/src/prompts/autocomplete.ts @@ -6,6 +6,7 @@ import { findCursor } from '../utils/cursor.js'; interface OptionLike { value: unknown; label?: string; + disabled?: boolean; } type FilterFunction = (search: string, opt: T) => boolean;