A stable virtual element ({ getBoundingClientRect }) that re-measures on every read — pass it
straight to a float anchor so the popup tracks the position as it moves. index may be a fixed
number, a live getter (e.g. a token-start offset, so the popup anchors to the token rather than the
caret), or omitted (follows selectionStart). padding (fixed or live) pulls the anchor left so a
popup with its own left inset lines up flush under the offset.
Optionalindex: number | (() => number)Optionalpadding: number | (() => number)Measure the caret rect now, at index (default: live selectionStart); padding pulls it left.
Optionalindex: numberOptionalpadding: number
What useTextareaCaretRect returns.