* Rename elementRect to sourceRect
* Add getRects function to TextSourceElement and TextSourceRange
* Add jsdocs
* Remove unnecessary valid parameter
* Remove default parameter
* Make optionsContext optional
* Remove unnecessary checks
* Update sourceRect to use left/right rather than x/y
* Update the return type of Popup*.getFrameRect
* Rename some unrelated rect vars for disambiguation
* Disambiguate between Popup.Rect and Popup.ValidRect
* Move sourceRect destructuring
* Pass multiple source rects
* Simplify
* Change Rect to use right/bottom rather than width/height
* Update how popup offset is applied
* Simplify frame offset
* Remove _applyFrameOffset
* Use right/bottom rather than width/height
* Simplify some positioning settings
* Update parameter names for clarity
* Fix typos
* Refactor data type for _getPosition* functions
* Support using multiple source rects
* Combine _getPosition functions
* Refactor
* Expose after dataset value
* Consistently use this's property
* Add jsdoc