The caret and the box border used by TextInputLogicComponent should be drawn directly using the DrawRectWireframe method. The width of the input box should not change when the user is modifying the content, but instead stay a fixed width and, if needed, scroll left/right accordingly.