Factor out all text layout from TextField into TextFieldContent