feat: replace input panel with ink-text-input component#592
Merged
Conversation
- Replace Blink component with ink-text-input wrapper in inputPanel.js - Update App component to use new InputPanel API (value, onChange, onSubmit, onFocus, onBlur) - Remove cursorChar and cursorColor props (handled by ink-text-input) - Update tests to test InputPanel instead of Blink - Add ink-text-input dependency to package.json
Owner
Author
Audit Results: Issue #591 → PR #592Goal Fulfillment
Spec Compliance
Task CompletionAll 14 tasks in tasks.md completed:
Quality Check
Deviations from Plan
|
- Archive OpenSpec change to openspec/changes/archive/2026-07-21-replace-input-panel-ink-text-input/ - Update input-cursor spec with MODIFIED requirements - Update tui-interface spec with MODIFIED requirements
- docs/TUI_FLOWS.md: Update Input Panel flow diagram to show ink-text-input - docs/OVERVIEW.md: Change inputPanel.js description to reference ink-text-input - src/tui/components.js: Remove Blink export (component no longer exists)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Replace the current custom
InputPanelcomponent withink-text-inputto gain built-in keyboard handling, cursor navigation, focus management, and multi-line support without manual implementation.Changes
Blinkcomponent withink-text-inputwrapper. New API:value,onChange,onSubmit,onFocus,onBlur,focuspropsonChangecallbackink-text-input@^6.0.0dependencyWhy
The current
InputPanelis purely presentational — all input handling lives in App's singleuseInputhook (~75 lines). This approach works but requires manual implementation of every keyboard feature.Three specific gaps:
ink-text-inputhandles this nativelyOpenSpec
Change:
replace-input-panel-ink-text-inputopenspec/changes/replace-input-panel-ink-text-input/proposal.mdopenspec/changes/replace-input-panel-ink-text-input/design.mdopenspec/changes/replace-input-panel-ink-text-input/tasks.mdspecs/input-cursor/spec.md,specs/tui-interface/spec.mdTesting
Fixes #591