Split TextDataEditor and TextNodeEditor into their own modules