This is a hacky way to fix fix#404 and #410. By introducing a delay to
the function to dismiss the suggestions, users on Safari should be able
to click the link properly.
For REST API, search results will now indicate if they are from redirects.
The current implementation is that it will always show up, the logic to
trim redundant info will come later
Related: T303013
Mostly based on Vector 2022. Now we target checkbox hacks by the HTML classes
.mw-checkbox-hack-TYPE instead of defining each individually, which would
make it more scalable.
* feat: rewrite search module (WIP)
There are some caveats because it is a WIP
- Messages are not i18n yet
- Missing placeholder suggestion thumbnail
- Only REST mode works
- Missing greeting message when there is no search query
- Code might look like a mess (I learned JS not long ago)
* refactor: remove old search module
* feat: clean up search suggestion styles
* feat: hide overflow for suggestion text
* feat: add action API and various cleanup
* feat: re-add abort controller
* feat: add message support and tweaks
* feat: use virtual config instead of ResourceLoader hook
* fix: missing comma in const definition
* feat: add ARIA attributes