Refuses the browser's text DRAG-AND-DROP, so a press on the field always means "select".
Once a field holds a selection, pressing ON that selection starts a drag of the text instead of a new one — which in app chrome has nowhere to land, so it reads as the no-drop cursor and eats the gesture. It costs most where a click selects the whole value (the font size and name boxes): the next drag, the one meant to pick out part of it, is the one that can't happen.
Call from the field's pointerdown — non-primary buttons are ignored.
useTextSelectionDrag's handle — spread onto the field, or wire each handler by name.