* Update react-overlays to latest version
* Fix breaking changes in dropdown menus
* Use react-overlays built-in arrow positioning feature
* Re-implemented `.dropdown-menu__arrow` to have a defined width and height to improve positioning
* Moved wrapping div (`.dropdown-menu` from `DropdownMenu` to `Dropdown`)
* Wrap button in a span to solve issue with ref
* Temporarily remove animations
* Fix breaking changes in emoji picker
* Wrap EmojiPickerMenu in a div where react-overlays’ ref is added
* Fix breaking changes in language dropdown
* Fix breaking changes in privacy dropdown
* Fix breaking changes in search form
* Add animations back using `@keyframes`
* Fix arrow color in light theme
* Fix linting issue
* Remove unused `mounted` state
* Remove `placement` state from components and redux
And remove the placement state from props of the menu components.
* Remove abolution position to fix flip issue
* Remove z-index to fix modals and overlay positions
* Fix lint issues
* Set placement in privacy and language components
Copy the placement state into the `PrivacyDropdown` and `LanguageDropdown` components, to apply correct styling to the buttons depending on which placement the Overlay has.
* Move `placement` state to correct component
* Fix footer link circle dividers' screen reader accessibility by adding aria-hidden
* Remove a circle erroneously added in prev commit, and make code more DRY
When opening a page such as /web/timelines/home in a desktop browser, the
cursor was automatically placed in the textarea of the compose form.
When using the keyboard for navigation (using a browser plugin like vimium or
vim vixen, or just to hit 'space' to scroll down a page), you have remember to
leave the field before using that.
Since you only visit the page to write a new post some of the time, this PR
attempts to have nothing focused initially (and require the user to click or
e.g. use 'tab' to focus the textarea).
Tested:
* /web/timeslines/home no longer autofocuses the compose box
* pressing the 'n' hotkey still focuses the compose box
* clicking 'reply' for a post still focuses the compose box
* replying to a CW'ed post still focuses the compose box
* introducing the CW field still focuses the CW field
* introducing the CW field for a reply still focuses the CW field
* removing the CW field still focuses the compose box
* /web/statuses/new still autofocuses the compose box
fixes#15862
This commit removes aria-pressed attribute from all elements which
contents or other descriptive attributes change in active state,
effectively replacing the meaning of the button, in which case
aria-pressed, an attribute specified whether the button is currently
pressed, would create a confusion. (Spoiler: it's everywhere).
See https://github.com/mastodon/mastodon/issues/13545#issuecomment-1304886969