From b281396b18e0d2ffa6545c0da34e53fe55f9af81 Mon Sep 17 00:00:00 2001 From: Charles Packer Date: Mon, 26 Jan 2026 15:33:10 -0800 Subject: [PATCH] fix: make cursor visible on newline characters in multi-line input (#689) Co-authored-by: Letta --- vendor/ink-text-input/build/index.js | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/vendor/ink-text-input/build/index.js b/vendor/ink-text-input/build/index.js index fe0d379..edc1116 100644 --- a/vendor/ink-text-input/build/index.js +++ b/vendor/ink-text-input/build/index.js @@ -74,7 +74,13 @@ function TextInput({ value: originalValue, placeholder = '', focus = true, mask, renderedValue = value.length > 0 ? '' : chalk.inverse(' '); let i = 0; for (const char of value) { - renderedValue += i >= cursorOffset - cursorActualWidth && i <= cursorOffset ? chalk.inverse(char) : char; + const isCursorPosition = i >= cursorOffset - cursorActualWidth && i <= cursorOffset; + if (isCursorPosition && char === '\n') { + // Newline at cursor: show inverted space (visible cursor) then the newline + renderedValue += chalk.inverse(' ') + char; + } else { + renderedValue += isCursorPosition ? chalk.inverse(char) : char; + } i++; } if (value.length > 0 && cursorOffset === value.length) {