* Hide pinned messages header button when nothing is pinned
Signed-off-by: Robin Townsend <robin@robin.town>
* Add pinned messages option to room info panel
Signed-off-by: Robin Townsend <robin@robin.town>
* Add pinned messages option to room header menu
Signed-off-by: Robin Townsend <robin@robin.town>
* Make condition more concise
Signed-off-by: Robin Townsend <robin@robin.town>
* Fix missing padding on server picker
Signed-off-by: Robin Townsend <robin@robin.town>
* Use spacing variable
Signed-off-by: Robin Townsend <robin@robin.town>
* Render a CollapsibleButton's children (needed by UploadButton)
* Make UploadButton ready to live inside an overflow menu
* Always show overflow menu in composer: main buttons are emoji and attach
* Re-order composer buttons as per design
* Re-word composer button captions to be simple nouns
* Don't rotate More options button when clicked
* Move the composer menu and dialogs 16px in from right
* Reduce shadow on composer More menu
* From review: remove else clause
* From review: take input out of button
* Update test snapshots
* Update snapshots
Fix https://github.com/vector-im/element-web/issues/20801
Regressed in https://github.com/matrix-org/matrix-react-sdk/pull/7339
Relevant styles were first added in https://github.com/matrix-org/matrix-react-sdk/pull/4858
(context behind why the original styles were added)
---
## Cause
Battling CSS specificity between the default and compact styles, https://specificity.keegan.st/
Known good (On `app.element.io` (expected)):
```css
// 0 3 0
.mx_IconizedContextMenu .mx_IconizedContextMenu_optionList .mx_AccessibleButton {
padding-top: 12px;
padding-bottom: 12px;
}
// Compact styles override our default rules because they come
// after the other styles (source order) and have the same specificity
// 0 3 0
.mx_IconizedContextMenu.mx_IconizedContextMenu_compact .mx_IconizedContextMenu_optionList > * {
padding: 8px 16px 8px 11px;
}
```
Bad (On `develop` (broken)):
```css
// Default rules always override because they have higher specificity.
// The `:not()` selector doesn't add any extra specificity but the selectors inside the `:not(...)` do.
// 0 4 0
.mx_IconizedContextMenu .mx_IconizedContextMenu_optionList .mx_AccessibleButton:not(.mx_AccessibleButton_hasKind) {
padding-top: 12px;
padding-bottom: 12px;
}
// 0 3 0
.mx_IconizedContextMenu.mx_IconizedContextMenu_compact .mx_IconizedContextMenu_optionList > * {
padding: 8px 16px 8px 11px;
}
```