stable text input flow