Remove jQuery usage from utility files
<!--IssueSummary start--> <details> <summary> Everyone can contribute. [Help move this issue forward](https://handbook.gitlab.com/handbook/marketing/developer-relations/contributor-success/community-contributors-workflows/#contributor-links) while earning points, leveling up and collecting rewards. </summary> - [Label this issue](https://contributors.gitlab.com/manage-issue?action=label&projectId=278964&issueIid=595395) </details> <!--IssueSummary end--> > [!important] > _This guidance was generated by GitLab Duo and may be inaccurate. Please verify before use._ ## Summary **Files:** - `app/assets/javascripts/lib/utils/common_utils.js` (~768 lines, Light -- only 2 functions use jQuery) - `app/assets/javascripts/lib/utils/scroll_utils.js` (~200 lines, Light -- single `instanceof $` check) - `app/assets/javascripts/lib/utils/text_markdown.js` (~1102 lines, Medium) Core utilities imported by hundreds of files. ## Implementation plan - `common_utils.js`: Replace jQuery in `disableButtonIfEmptyField()` and `addSelectOnFocusBehaviour()` -- selectors, events, `.disable()` / `.enable()` → native equivalents - `scroll_utils.js`: Remove `instanceof $` check once all callers pass DOM elements - `text_markdown.js`: Replace scoped selectors and `.on()` / `.off()` → native listeners. Note: `$(textArea).atwho?.('isSelecting')` check depends on at.js removal (https://gitlab.com/gitlab-org/gitlab/-/issues/595397) ## Test areas - `common_utils.js`: Form button disable-on-empty-field behavior across all forms - `scroll_utils.js`: Scroll-to-element behavior (awards, diff notes, etc.) - `text_markdown.js`: Markdown toolbar buttons, keyboard shortcuts for formatting, paste handling in markdown textareas
issue