* Fix tests choosing the wrong room by matching on exact room name in viewRoomByName
* Allow either of the two different URLs for thumbnails in sticker test
* Find room by looking inside Rooms for something with the right text
* Check for the download URL of a thumbnail only, which will appear after the thumbnail 404s
* Click the title div instead of the contained span, to avoid clicking something potentially off-screen
* Find by label text because that works when room list is folded
* Find room by title because label text is different
* Attempt to allow opening room by name in all needed cases
* Use consistent colouring of username with avatar
* Upgrade Compound to fix Firefox issue
* Use the approapriate color shade for usernames
* Use the approapriate color shade for usernames
* Upgrade Compound
* Fix tests
* Fix incompatibility of Soft Logout with Element-R
This `countSessionsNeedingBackup` isn't available in Element-R, and I don't
really understand the logic behind changing the message when we have sessions
that are awaiting backup. Let's just rip it out.
* i18n
* update snapshot
* Migrate labs displayName translations to IDs
```
./node_modules/matrix-web-i18n/scripts/rekey.js "Video rooms" "labs|video_rooms"
./node_modules/matrix-web-i18n/scripts/rekey.js "New Notification Settings" "labs|notification_settings"
./node_modules/matrix-web-i18n/scripts/rekey.js "Let moderators hide messages pending moderation." "labs|msc3531_hide_messages_pending_moderation"
./node_modules/matrix-web-i18n/scripts/rekey.js "Report to moderators" "labs|report_to_moderators"
./node_modules/matrix-web-i18n/scripts/rekey.js "Render LaTeX maths in messages" "labs|latex_maths"
./node_modules/matrix-web-i18n/scripts/rekey.js "Message Pinning" "labs|pinning"
./node_modules/matrix-web-i18n/scripts/rekey.js "Rich text editor" "labs|wysiwyg_composer"
./node_modules/matrix-web-i18n/scripts/rekey.js "Render simple counters in room header" "labs|state_counters"
./node_modules/matrix-web-i18n/scripts/rekey.js "New ways to ignore people" "labs|mjolnir"
./node_modules/matrix-web-i18n/scripts/rekey.js "Support adding custom themes" "labs|custom_themes"
./node_modules/matrix-web-i18n/scripts/rekey.js "Offline encrypted messaging using dehydrated devices" "labs|dehydration"
./node_modules/matrix-web-i18n/scripts/rekey.js "Show HTML representation of room topics" "labs|html_topic"
./node_modules/matrix-web-i18n/scripts/rekey.js "Show info about bridges in room settings" "labs|bridge_state"
./node_modules/matrix-web-i18n/scripts/rekey.js "Jump to date (adds /jumptodate and jump to date headers)" "labs|jump_to_date"
./node_modules/matrix-web-i18n/scripts/rekey.js "Sliding Sync mode" "labs|sliding_sync"
./node_modules/matrix-web-i18n/scripts/rekey.js "Element Call video rooms" "labs|element_call_video_rooms"
./node_modules/matrix-web-i18n/scripts/rekey.js "New group call experience" "labs|group_calls"
./node_modules/matrix-web-i18n/scripts/rekey.js "Allow screen share only mode" "labs|allow_screen_share_only_mode"
./node_modules/matrix-web-i18n/scripts/rekey.js "Live Location Sharing" "labs|location_share_live"
./node_modules/matrix-web-i18n/scripts/rekey.js "Dynamic room predecessors" "labs|dynamic_room_predecessors"
./node_modules/matrix-web-i18n/scripts/rekey.js "Voice broadcast" "labs|voice_broadcast"
./node_modules/matrix-web-i18n/scripts/rekey.js "Rust cryptography implementation" "labs|rust_crypto"
./node_modules/matrix-web-i18n/scripts/rekey.js "Hide notification dot (only display counters badges)" "labs|hidebold"
./node_modules/matrix-web-i18n/scripts/rekey.js "Enable intentional mentions" "labs|intentional_mentions"
./node_modules/matrix-web-i18n/scripts/rekey.js "Enable ask to join" "labs|ask_to_join"
./node_modules/matrix-web-i18n/scripts/rekey.js "Under active development, new room header & details interface" "labs|new_room_decoration_ui"
```
* Migrate video rooms beta translations to IDs
```
./node_modules/matrix-web-i18n/scripts/rekey.js "A new way to chat over voice and video in %(brand)s." "labs|video_rooms_a_new_way_to_chat"
./node_modules/matrix-web-i18n/scripts/rekey.js "Video rooms are always-on VoIP channels embedded within a room in %(brand)s." "labs|video_rooms_always_on_voip_channels"
./node_modules/matrix-web-i18n/scripts/rekey.js "How can I create a video room?" "labs|video_rooms_faq1_question"
./node_modules/matrix-web-i18n/scripts/rekey.js "Use the “+” button in the room section of the left panel." "labs|video_rooms_faq1_answer"
./node_modules/matrix-web-i18n/scripts/rekey.js "Can I use text chat alongside the video call?" "labs|video_rooms_faq2_question"
./node_modules/matrix-web-i18n/scripts/rekey.js "Yes, the chat timeline is displayed alongside the video." "labs|video_rooms_faq2_answer"
```
* i18n & `./node_modules/matrix-web-i18n/scripts/rekey.js --copy "labs|voice_broadcast" "Voice broadcast"`
* Port more labs strings to translation keys
* Move avatar to new compound implementation
* Make space avatars square
* Remove reference to the avatar initial CSS class
* remove references to mx_BaseAvatar_image
* Fixe test suites
* Fix accessbility violations
* Add ConfirmUserActionDialog test
* Fix tests
* Add FacePile test
* Fix items clipping in members list
* Fix user info avatar sizing
* Fix tests
* Add Voice and Video call in room header
* Add thread icon in room header
* Add room notification icon to room header
* Fix linting
* Add tests for buttons in room header
* Add JSDoc
* micro optimisations
* Fix call disabled when hanging up
* Fix disabled state change on members count update
* Exclude functional members from members count optionally
* i18n
* Add mechanism to check only one instance of the app is running
This isn't used yet, but will form part of the solution to
https://github.com/vector-im/element-web/issues/25157.
* disable instrumentation for SessionLock
* disable coverage reporting
* exclude SessionLock in sonar.properties
* Revert "disable coverage reporting"
This reverts commit 80c4336f76ec8e47e376b6744ef612a73299d14f.
* only disable session storage
* use pagehide instead of visibilitychange
* Add `checkSessionLockFree`
* Give up waiting for a lock immediately when someone else claims
* Update src/utils/SessionLock.ts