I wasn’t really satisfied with existing widgets for a chat/console input so I created my own.
This component allows to edit text/code in a convenient auto-resizable text area. Intended both for code and natural language input (no syntax highlighting implemented). No text wrap and horizontal scrolling makes code editing easier. Enter and Tab keys behave as expected in a text editor. It’s state resets to empty automatically after submitting. Manages its own history of inputs that can be navigated using Ctrl+up / Ctrl+down. Colors adapt dynamically to the app’s theme.
More info in the repo.