Fix handles
273
CHANGELOG.md
|
@ -1,3 +1,276 @@
|
|||
Changes in [2.10.1](https://github.com/matrix-org/matrix-react-sdk/releases/tag/v2.10.1) (2020-07-16)
|
||||
=====================================================================================================
|
||||
[Full Changelog](https://github.com/matrix-org/matrix-react-sdk/compare/v2.10.0...v2.10.1)
|
||||
|
||||
* Post-launch Element Web polish
|
||||
[\#5002](https://github.com/matrix-org/matrix-react-sdk/pull/5002)
|
||||
* Move e2e icon
|
||||
[\#4992](https://github.com/matrix-org/matrix-react-sdk/pull/4992)
|
||||
* Wire up new room list breadcrumbs as an ARIA Toolbar
|
||||
[\#4976](https://github.com/matrix-org/matrix-react-sdk/pull/4976)
|
||||
* Fix Room Tile Icon to not ignore DMs in other tags
|
||||
[\#4999](https://github.com/matrix-org/matrix-react-sdk/pull/4999)
|
||||
* Fix filtering by community not showing DM rooms with community members
|
||||
[\#4997](https://github.com/matrix-org/matrix-react-sdk/pull/4997)
|
||||
* Fix enter in new room list filter breaking things
|
||||
[\#4996](https://github.com/matrix-org/matrix-react-sdk/pull/4996)
|
||||
* Notify left panel of resizing when it is collapsed&expanded
|
||||
[\#4995](https://github.com/matrix-org/matrix-react-sdk/pull/4995)
|
||||
* When removing a filter condition, try recalculate in case it wasn't last
|
||||
[\#4994](https://github.com/matrix-org/matrix-react-sdk/pull/4994)
|
||||
* Create a generic ARIA toolbar component
|
||||
[\#4975](https://github.com/matrix-org/matrix-react-sdk/pull/4975)
|
||||
* Fix /op Slash Command
|
||||
[\#4604](https://github.com/matrix-org/matrix-react-sdk/pull/4604)
|
||||
* Fix copy button in share dialog
|
||||
[\#4998](https://github.com/matrix-org/matrix-react-sdk/pull/4998)
|
||||
* Add tooltip to Room Tile Icon
|
||||
[\#4987](https://github.com/matrix-org/matrix-react-sdk/pull/4987)
|
||||
* Fix names jumping on hover in irc layout
|
||||
[\#4991](https://github.com/matrix-org/matrix-react-sdk/pull/4991)
|
||||
* check that encryptionInfo.sender is set
|
||||
[\#4988](https://github.com/matrix-org/matrix-react-sdk/pull/4988)
|
||||
* Update help link
|
||||
[\#4986](https://github.com/matrix-org/matrix-react-sdk/pull/4986)
|
||||
* Update cover photo link
|
||||
[\#4985](https://github.com/matrix-org/matrix-react-sdk/pull/4985)
|
||||
|
||||
Changes in [2.10.0](https://github.com/matrix-org/matrix-react-sdk/releases/tag/v2.10.0) (2020-07-15)
|
||||
=====================================================================================================
|
||||
[Full Changelog](https://github.com/matrix-org/matrix-react-sdk/compare/v2.9.0...v2.10.0)
|
||||
|
||||
* Incorporate new toasts into end-to-end tests
|
||||
[\#4983](https://github.com/matrix-org/matrix-react-sdk/pull/4983)
|
||||
* Fix TS lint errors
|
||||
[\#4982](https://github.com/matrix-org/matrix-react-sdk/pull/4982)
|
||||
* Fix js lint errors after rebrand merge
|
||||
[\#4981](https://github.com/matrix-org/matrix-react-sdk/pull/4981)
|
||||
* Fix style lint
|
||||
[\#4980](https://github.com/matrix-org/matrix-react-sdk/pull/4980)
|
||||
* Fix alignment of login/syncing spinner
|
||||
[\#4979](https://github.com/matrix-org/matrix-react-sdk/pull/4979)
|
||||
* De labs font-scaling
|
||||
[\#4899](https://github.com/matrix-org/matrix-react-sdk/pull/4899)
|
||||
* Remove debug logging from new room list
|
||||
[\#4972](https://github.com/matrix-org/matrix-react-sdk/pull/4972)
|
||||
* Tweak sticky header hiding to avoid pop
|
||||
[\#4974](https://github.com/matrix-org/matrix-react-sdk/pull/4974)
|
||||
* Fix show-all keyboard focus regression
|
||||
[\#4973](https://github.com/matrix-org/matrix-react-sdk/pull/4973)
|
||||
* Clean up TODOs, comments, and imports in the new room list
|
||||
[\#4970](https://github.com/matrix-org/matrix-react-sdk/pull/4970)
|
||||
* Make EffectiveMembership utils generic
|
||||
[\#4971](https://github.com/matrix-org/matrix-react-sdk/pull/4971)
|
||||
* Update sticky headers when breadcrumbs pop in or out
|
||||
[\#4969](https://github.com/matrix-org/matrix-react-sdk/pull/4969)
|
||||
* Fix show less button occluding the last tile
|
||||
[\#4967](https://github.com/matrix-org/matrix-react-sdk/pull/4967)
|
||||
* Ensure breadcrumbs don't keep turning themselves back on
|
||||
[\#4968](https://github.com/matrix-org/matrix-react-sdk/pull/4968)
|
||||
* Update top vs. bottom sticky styles separately
|
||||
[\#4966](https://github.com/matrix-org/matrix-react-sdk/pull/4966)
|
||||
* Ensure RoomListStore2 gets reset when the client becomes invalidated
|
||||
[\#4965](https://github.com/matrix-org/matrix-react-sdk/pull/4965)
|
||||
* Add fade to show more button on room list
|
||||
[\#4963](https://github.com/matrix-org/matrix-react-sdk/pull/4963)
|
||||
* Fix extra room tiles being rendered on smaller sublists
|
||||
[\#4964](https://github.com/matrix-org/matrix-react-sdk/pull/4964)
|
||||
* Ensure tag changes (leaving rooms) causes rooms to move between lists
|
||||
[\#4962](https://github.com/matrix-org/matrix-react-sdk/pull/4962)
|
||||
* Fix badges for font size 20
|
||||
[\#4958](https://github.com/matrix-org/matrix-react-sdk/pull/4958)
|
||||
* Fix default sorting mechanics for new room list
|
||||
[\#4960](https://github.com/matrix-org/matrix-react-sdk/pull/4960)
|
||||
* Fix room sub list header collapse/jump interactions on bottom-most sublist
|
||||
[\#4961](https://github.com/matrix-org/matrix-react-sdk/pull/4961)
|
||||
* Fix room tile context menu for Historical rooms
|
||||
[\#4959](https://github.com/matrix-org/matrix-react-sdk/pull/4959)
|
||||
* "ignore"/"unignore" commands: validate user ID
|
||||
[\#4895](https://github.com/matrix-org/matrix-react-sdk/pull/4895)
|
||||
* Stop classname from overwritting baseavatar's
|
||||
[\#4957](https://github.com/matrix-org/matrix-react-sdk/pull/4957)
|
||||
* Remove redundant scroll-margins and fix RoomTile wrongly scrolling
|
||||
[\#4952](https://github.com/matrix-org/matrix-react-sdk/pull/4952)
|
||||
* Fix RoomAvatar viewAvatarOnClick to work on actual avatars instead of
|
||||
default ones
|
||||
[\#4953](https://github.com/matrix-org/matrix-react-sdk/pull/4953)
|
||||
* Be consistent with the at-room pill avatar configurability
|
||||
[\#4955](https://github.com/matrix-org/matrix-react-sdk/pull/4955)
|
||||
* Room List v2 Enter in the filter field should select the first result
|
||||
[\#4954](https://github.com/matrix-org/matrix-react-sdk/pull/4954)
|
||||
* Enable the new room list by default
|
||||
[\#4919](https://github.com/matrix-org/matrix-react-sdk/pull/4919)
|
||||
* Convert ImportanceAlgorithm over to using NotificationColor instead
|
||||
[\#4949](https://github.com/matrix-org/matrix-react-sdk/pull/4949)
|
||||
* Internalize algorithm updates in the new room list store
|
||||
[\#4951](https://github.com/matrix-org/matrix-react-sdk/pull/4951)
|
||||
* Remove now-dead code from sublist resizing
|
||||
[\#4950](https://github.com/matrix-org/matrix-react-sdk/pull/4950)
|
||||
* Ensure triggered updates get fired for filters in the new room list
|
||||
[\#4948](https://github.com/matrix-org/matrix-react-sdk/pull/4948)
|
||||
* Handle off-cycle filtering updates in the new room list
|
||||
[\#4947](https://github.com/matrix-org/matrix-react-sdk/pull/4947)
|
||||
* Make the show more button do a clean cut on the room list while transparent
|
||||
[\#4941](https://github.com/matrix-org/matrix-react-sdk/pull/4941)
|
||||
* Stop safari from aggressively shrinking flex items
|
||||
[\#4945](https://github.com/matrix-org/matrix-react-sdk/pull/4945)
|
||||
* Fix search padding
|
||||
[\#4946](https://github.com/matrix-org/matrix-react-sdk/pull/4946)
|
||||
* Reduce event loop load caused by duplicate calculations in the new room list
|
||||
[\#4943](https://github.com/matrix-org/matrix-react-sdk/pull/4943)
|
||||
* Add an option to disable room list logging, and improve logging
|
||||
[\#4944](https://github.com/matrix-org/matrix-react-sdk/pull/4944)
|
||||
* Scroll fade for breadcrumbs
|
||||
[\#4942](https://github.com/matrix-org/matrix-react-sdk/pull/4942)
|
||||
* Auto expand room list on search
|
||||
[\#4927](https://github.com/matrix-org/matrix-react-sdk/pull/4927)
|
||||
* Fix rough badge alignment for community invite tiles again
|
||||
[\#4939](https://github.com/matrix-org/matrix-react-sdk/pull/4939)
|
||||
* Improve safety of new rooms in the room list
|
||||
[\#4940](https://github.com/matrix-org/matrix-react-sdk/pull/4940)
|
||||
* Don't destroy room notification states when replacing them
|
||||
[\#4938](https://github.com/matrix-org/matrix-react-sdk/pull/4938)
|
||||
* Move irc layout option to advanced
|
||||
[\#4937](https://github.com/matrix-org/matrix-react-sdk/pull/4937)
|
||||
* Potential solution to supporting transparent 'show more' buttons
|
||||
[\#4932](https://github.com/matrix-org/matrix-react-sdk/pull/4932)
|
||||
* Improve performance and stability in sticky headers for new room list
|
||||
[\#4931](https://github.com/matrix-org/matrix-react-sdk/pull/4931)
|
||||
* Move and improve notification state handling
|
||||
[\#4935](https://github.com/matrix-org/matrix-react-sdk/pull/4935)
|
||||
* Move list layout management to its own store
|
||||
[\#4934](https://github.com/matrix-org/matrix-react-sdk/pull/4934)
|
||||
* Noop first breadcrumb
|
||||
[\#4933](https://github.com/matrix-org/matrix-react-sdk/pull/4933)
|
||||
* Highlight "Jump to Bottom" badge when appropriate
|
||||
[\#4892](https://github.com/matrix-org/matrix-react-sdk/pull/4892)
|
||||
* Don't render the context menu within its trigger otherwise unhandled clicks
|
||||
bubble
|
||||
[\#4930](https://github.com/matrix-org/matrix-react-sdk/pull/4930)
|
||||
* Protect rooms from getting lost due to complex transitions
|
||||
[\#4929](https://github.com/matrix-org/matrix-react-sdk/pull/4929)
|
||||
* Hide archive button
|
||||
[\#4928](https://github.com/matrix-org/matrix-react-sdk/pull/4928)
|
||||
* Enable options to favourite and low priority rooms
|
||||
[\#4920](https://github.com/matrix-org/matrix-react-sdk/pull/4920)
|
||||
* Move voip previews to bottom right corner
|
||||
[\#4904](https://github.com/matrix-org/matrix-react-sdk/pull/4904)
|
||||
* Focus room filter on openSearch
|
||||
[\#4923](https://github.com/matrix-org/matrix-react-sdk/pull/4923)
|
||||
* Swap out the resizer lib for something more stable in the new room list
|
||||
[\#4924](https://github.com/matrix-org/matrix-react-sdk/pull/4924)
|
||||
* Add wrapper to room list so sticky headers don't need a background
|
||||
[\#4912](https://github.com/matrix-org/matrix-react-sdk/pull/4912)
|
||||
* New room list view_room show_room_tile support
|
||||
[\#4908](https://github.com/matrix-org/matrix-react-sdk/pull/4908)
|
||||
* Convert Context Menu to TypeScript
|
||||
[\#4871](https://github.com/matrix-org/matrix-react-sdk/pull/4871)
|
||||
* Use html innerText for org.matrix.custom.html m.room.message room list
|
||||
previews
|
||||
[\#4925](https://github.com/matrix-org/matrix-react-sdk/pull/4925)
|
||||
* Fix MELS summary of 3pid invite revocations
|
||||
[\#4913](https://github.com/matrix-org/matrix-react-sdk/pull/4913)
|
||||
* Fix sticky headers being left on display:none if they change too quickly
|
||||
[\#4926](https://github.com/matrix-org/matrix-react-sdk/pull/4926)
|
||||
* Fix gaps under resize handle
|
||||
[\#4922](https://github.com/matrix-org/matrix-react-sdk/pull/4922)
|
||||
* Fix DM handling in new room list
|
||||
[\#4921](https://github.com/matrix-org/matrix-react-sdk/pull/4921)
|
||||
* Respect and fix understanding of legacy options in new room list
|
||||
[\#4918](https://github.com/matrix-org/matrix-react-sdk/pull/4918)
|
||||
* Ensure DMs are not lost in the new room list, and clean up tag logging
|
||||
[\#4916](https://github.com/matrix-org/matrix-react-sdk/pull/4916)
|
||||
* Mute "Unknown room caused setting update" spam
|
||||
[\#4915](https://github.com/matrix-org/matrix-react-sdk/pull/4915)
|
||||
* Remove comment claiming encrypted rooms are handled incorrectly in the new
|
||||
room list
|
||||
[\#4917](https://github.com/matrix-org/matrix-react-sdk/pull/4917)
|
||||
* Try using requestAnimationFrame if available for sticky headers
|
||||
[\#4914](https://github.com/matrix-org/matrix-react-sdk/pull/4914)
|
||||
* Show more/Show less keep focus in a relevant place
|
||||
[\#4911](https://github.com/matrix-org/matrix-react-sdk/pull/4911)
|
||||
* Change orange to our orange and do some lints
|
||||
[\#4910](https://github.com/matrix-org/matrix-react-sdk/pull/4910)
|
||||
* New Room List implement view_room_delta for keyboard shortcuts
|
||||
[\#4900](https://github.com/matrix-org/matrix-react-sdk/pull/4900)
|
||||
* New Room List accessibility
|
||||
[\#4896](https://github.com/matrix-org/matrix-react-sdk/pull/4896)
|
||||
* Improve room safety in the new room list
|
||||
[\#4905](https://github.com/matrix-org/matrix-react-sdk/pull/4905)
|
||||
* Fix a number of issues with the new room list's invites
|
||||
[\#4906](https://github.com/matrix-org/matrix-react-sdk/pull/4906)
|
||||
* Decrease default visible rooms down to 5
|
||||
[\#4907](https://github.com/matrix-org/matrix-react-sdk/pull/4907)
|
||||
* swap order of context menu buttons so it does not jump when muted
|
||||
[\#4909](https://github.com/matrix-org/matrix-react-sdk/pull/4909)
|
||||
* Fix some room list sticky header instabilities
|
||||
[\#4901](https://github.com/matrix-org/matrix-react-sdk/pull/4901)
|
||||
* null-guard against groups with a null name in new Room List
|
||||
[\#4903](https://github.com/matrix-org/matrix-react-sdk/pull/4903)
|
||||
* Allow vertical scrolling on the new room list breadcrumbs
|
||||
[\#4902](https://github.com/matrix-org/matrix-react-sdk/pull/4902)
|
||||
* Convert things to Typescript, including languageHandler
|
||||
[\#4883](https://github.com/matrix-org/matrix-react-sdk/pull/4883)
|
||||
* Fix minor issues with the badges in the new room list
|
||||
[\#4894](https://github.com/matrix-org/matrix-react-sdk/pull/4894)
|
||||
* Radio button outline fixes including for new room list context menu
|
||||
[\#4893](https://github.com/matrix-org/matrix-react-sdk/pull/4893)
|
||||
* First step towards a11y in the new room list
|
||||
[\#4882](https://github.com/matrix-org/matrix-react-sdk/pull/4882)
|
||||
* Fix theme selector clicks bubbling out and causing context menu to float
|
||||
away
|
||||
[\#4891](https://github.com/matrix-org/matrix-react-sdk/pull/4891)
|
||||
* Revert "Remove a bunch of noisy logging from the room list"
|
||||
[\#4890](https://github.com/matrix-org/matrix-react-sdk/pull/4890)
|
||||
* Remove duplicate compact settings, handle device level updates
|
||||
[\#4888](https://github.com/matrix-org/matrix-react-sdk/pull/4888)
|
||||
* fix notifications icons some more
|
||||
[\#4887](https://github.com/matrix-org/matrix-react-sdk/pull/4887)
|
||||
* Remove a bunch of noisy logging from the room list
|
||||
[\#4886](https://github.com/matrix-org/matrix-react-sdk/pull/4886)
|
||||
* Fix bell icon mismatch on room tile between hover and context menu
|
||||
[\#4884](https://github.com/matrix-org/matrix-react-sdk/pull/4884)
|
||||
* Add a null guard for message event previews
|
||||
[\#4885](https://github.com/matrix-org/matrix-react-sdk/pull/4885)
|
||||
* Enable the new room list by default and trigger an initial render
|
||||
[\#4881](https://github.com/matrix-org/matrix-react-sdk/pull/4881)
|
||||
* Fix selection states of room tiles in the new room list
|
||||
[\#4879](https://github.com/matrix-org/matrix-react-sdk/pull/4879)
|
||||
* Update mute icon behaviour for new room list designs
|
||||
[\#4876](https://github.com/matrix-org/matrix-react-sdk/pull/4876)
|
||||
* Fix alignment of avatars on community invites
|
||||
[\#4878](https://github.com/matrix-org/matrix-react-sdk/pull/4878)
|
||||
* Don't include empty badge container in minimized view
|
||||
[\#4880](https://github.com/matrix-org/matrix-react-sdk/pull/4880)
|
||||
* Fix alignment of dot badges in new room list
|
||||
[\#4877](https://github.com/matrix-org/matrix-react-sdk/pull/4877)
|
||||
* Reorganize and match new room list badges to old list behaviour
|
||||
[\#4861](https://github.com/matrix-org/matrix-react-sdk/pull/4861)
|
||||
* Implement breadcrumb notifications and scrolling
|
||||
[\#4862](https://github.com/matrix-org/matrix-react-sdk/pull/4862)
|
||||
* Add click-to-jump on badge in the room sublist header
|
||||
[\#4875](https://github.com/matrix-org/matrix-react-sdk/pull/4875)
|
||||
* Room List v2 context menu interactions
|
||||
[\#4870](https://github.com/matrix-org/matrix-react-sdk/pull/4870)
|
||||
* Wedge community invites into the new room list
|
||||
[\#4874](https://github.com/matrix-org/matrix-react-sdk/pull/4874)
|
||||
* Check whether crypto is enabled in room recovery reminder
|
||||
[\#4873](https://github.com/matrix-org/matrix-react-sdk/pull/4873)
|
||||
* Fix room list 2's room tile wrapping wrongly
|
||||
[\#4872](https://github.com/matrix-org/matrix-react-sdk/pull/4872)
|
||||
* Hide scrollbar without pixel jumping
|
||||
[\#4863](https://github.com/matrix-org/matrix-react-sdk/pull/4863)
|
||||
* Room Tile context menu, notifications, indicator and placement
|
||||
[\#4858](https://github.com/matrix-org/matrix-react-sdk/pull/4858)
|
||||
* Improve resizing interactions in the new room list
|
||||
[\#4865](https://github.com/matrix-org/matrix-react-sdk/pull/4865)
|
||||
* Disable use of account-level ordering options in new room list
|
||||
[\#4866](https://github.com/matrix-org/matrix-react-sdk/pull/4866)
|
||||
* Remove context menu on invites in new room list
|
||||
[\#4867](https://github.com/matrix-org/matrix-react-sdk/pull/4867)
|
||||
* Fix reaction event crashes in message previews
|
||||
[\#4868](https://github.com/matrix-org/matrix-react-sdk/pull/4868)
|
||||
|
||||
Changes in [2.9.0](https://github.com/matrix-org/matrix-react-sdk/releases/tag/v2.9.0) (2020-07-03)
|
||||
===================================================================================================
|
||||
[Full Changelog](https://github.com/matrix-org/matrix-react-sdk/compare/v2.9.0-rc.1...v2.9.0)
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "matrix-react-sdk",
|
||||
"version": "2.9.0",
|
||||
"version": "2.10.1",
|
||||
"description": "SDK for matrix.org using React",
|
||||
"author": "matrix.org",
|
||||
"repository": {
|
||||
|
|
|
@ -174,7 +174,7 @@ input[type=text]:focus, input[type=password]:focus, textarea:focus {
|
|||
:not(.mx_textinput):not(.mx_Field):not(.mx_no_textinput) > input[type=text]::placeholder,
|
||||
:not(.mx_textinput):not(.mx_Field):not(.mx_no_textinput) > input[type=search]::placeholder,
|
||||
.mx_textinput input::placeholder {
|
||||
color: $roomsublist-label-fg-color;
|
||||
color: rgba($input-darker-fg-color, .75);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -146,7 +146,6 @@
|
|||
@import "./views/messages/_MjolnirBody.scss";
|
||||
@import "./views/messages/_ReactionsRow.scss";
|
||||
@import "./views/messages/_ReactionsRowButton.scss";
|
||||
@import "./views/messages/_ReactionsRowButtonTooltip.scss";
|
||||
@import "./views/messages/_RedactedBody.scss";
|
||||
@import "./views/messages/_RoomAvatarEvent.scss";
|
||||
@import "./views/messages/_SenderProfile.scss";
|
||||
|
|
|
@ -68,5 +68,6 @@ $font-49px: 4.9rem;
|
|||
$font-50px: 5.0rem;
|
||||
$font-51px: 5.1rem;
|
||||
$font-52px: 5.2rem;
|
||||
$font-78px: 7.8rem;
|
||||
$font-88px: 8.8rem;
|
||||
$font-400px: 40rem;
|
||||
|
|
|
@ -22,7 +22,7 @@ limitations under the License.
|
|||
content: "";
|
||||
background-color: $header-divider-color;
|
||||
opacity: 0.5;
|
||||
margin: 0 15px;
|
||||
margin: 6px 8px;
|
||||
border-radius: 1px;
|
||||
width: 1px;
|
||||
}
|
||||
|
|
|
@ -60,10 +60,10 @@ limitations under the License.
|
|||
&::before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
top: 6px; // center with parent of 32px
|
||||
left: 6px; // center with parent of 32px
|
||||
height: 20px;
|
||||
width: 20px;
|
||||
top: 4px; // center with parent of 32px
|
||||
left: 4px; // center with parent of 32px
|
||||
height: 24px;
|
||||
width: 24px;
|
||||
background-color: $rightpanel-button-color;
|
||||
mask-repeat: no-repeat;
|
||||
mask-size: contain;
|
||||
|
|
|
@ -128,6 +128,11 @@ limitations under the License.
|
|||
margin-top: 16px;
|
||||
font-size: $font-15px;
|
||||
line-height: $font-24px;
|
||||
|
||||
.mx_InlineSpinner img {
|
||||
vertical-align: sub;
|
||||
margin-right: 5px;
|
||||
}
|
||||
}
|
||||
|
||||
.mx_AuthBody_paddedFooter_subtitle {
|
||||
|
|
|
@ -50,7 +50,7 @@ limitations under the License.
|
|||
height: 64px;
|
||||
}
|
||||
|
||||
.mx_RebrandDialog_chevron:after {
|
||||
.mx_RebrandDialog_chevron::after {
|
||||
content: '';
|
||||
display: inline-block;
|
||||
width: 24px;
|
||||
|
|
|
@ -55,7 +55,7 @@ limitations under the License.
|
|||
margin-left: 5px;
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
background-repeat: none;
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
|
||||
.mx_ShareDialog_split {
|
||||
|
|
|
@ -191,5 +191,5 @@ limitations under the License.
|
|||
}
|
||||
|
||||
.mx_Field .mx_CountryDropdown {
|
||||
width: 67px;
|
||||
width: $font-78px;
|
||||
}
|
||||
|
|
|
@ -52,7 +52,7 @@ limitations under the License.
|
|||
display: none;
|
||||
position: fixed;
|
||||
border: 1px solid $menu-border-color;
|
||||
border-radius: 4px;
|
||||
border-radius: 8px;
|
||||
box-shadow: 4px 4px 12px 0 $menu-box-shadow-color;
|
||||
background-color: $menu-bg-color;
|
||||
z-index: 6000; // Higher than context menu so tooltips can be used everywhere
|
||||
|
@ -60,7 +60,7 @@ limitations under the License.
|
|||
pointer-events: none;
|
||||
line-height: $font-14px;
|
||||
font-size: $font-12px;
|
||||
font-weight: 600;
|
||||
font-weight: 500;
|
||||
color: $primary-fg-color;
|
||||
max-width: 200px;
|
||||
word-break: break-word;
|
||||
|
@ -87,3 +87,12 @@ limitations under the License.
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
.mx_Tooltip_title {
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.mx_Tooltip_sub {
|
||||
opacity: 0.7;
|
||||
margin-top: 4px;
|
||||
}
|
||||
|
|
|
@ -6,9 +6,10 @@
|
|||
border: 1px solid $primary-hairline-color;
|
||||
background: $primary-bg-color;
|
||||
border-bottom: none;
|
||||
border-radius: 4px 4px 0 0;
|
||||
border-radius: 8px 8px 0 0;
|
||||
max-height: 50vh;
|
||||
overflow: auto;
|
||||
box-shadow: 0px -16px 32px $composer-shadow-color;
|
||||
}
|
||||
|
||||
.mx_Autocomplete_ProviderSection {
|
||||
|
|
|
@ -339,9 +339,7 @@ $left-gutter: 64px;
|
|||
opacity: 0.2;
|
||||
background-repeat: no-repeat;
|
||||
background-size: contain;
|
||||
}
|
||||
|
||||
.mx_EventTile_e2eIcon {
|
||||
&::before, &::after {
|
||||
content: "";
|
||||
display: block;
|
||||
|
|
|
@ -97,7 +97,7 @@ $irc-line-height: $font-18px;
|
|||
}
|
||||
|
||||
> .mx_EventTile_e2eIcon {
|
||||
position: relative;
|
||||
position: absolute;
|
||||
right: unset;
|
||||
left: unset;
|
||||
top: 0;
|
||||
|
@ -184,6 +184,7 @@ $irc-line-height: $font-18px;
|
|||
> .mx_SenderProfile_name {
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
min-width: var(--name-width);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -63,6 +63,11 @@ limitations under the License.
|
|||
.mx_GroupMemberList_query,
|
||||
.mx_GroupRoomList_query {
|
||||
flex: 1 1 0;
|
||||
|
||||
// stricter rule to override the one in _common.scss
|
||||
&[type="text"] {
|
||||
font-size: $font-12px;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -20,7 +20,7 @@ limitations under the License.
|
|||
margin: auto;
|
||||
border-top: 1px solid $primary-hairline-color;
|
||||
position: relative;
|
||||
padding-left: 83px;
|
||||
padding-left: 82px;
|
||||
}
|
||||
|
||||
.mx_MessageComposer_replaced_wrapper {
|
||||
|
|
|
@ -42,6 +42,8 @@ limitations under the License.
|
|||
// These are the 3 background types
|
||||
|
||||
&.mx_NotificationBadge_dot {
|
||||
background-color: $primary-fg-color; // increased visibility
|
||||
|
||||
width: 6px;
|
||||
height: 6px;
|
||||
border-radius: 6px;
|
||||
|
|
|
@ -22,9 +22,10 @@ limitations under the License.
|
|||
border: 1px solid $primary-hairline-color;
|
||||
background: $primary-bg-color;
|
||||
border-bottom: none;
|
||||
border-radius: 4px 4px 0 0;
|
||||
border-radius: 8px 8px 0 0;
|
||||
max-height: 50vh;
|
||||
overflow: auto;
|
||||
box-shadow: 0px -16px 32px $composer-shadow-color;
|
||||
}
|
||||
|
||||
.mx_ReplyPreview_section {
|
||||
|
|
|
@ -75,7 +75,6 @@ limitations under the License.
|
|||
.mx_RoomHeader_buttons {
|
||||
display: flex;
|
||||
background-color: $primary-bg-color;
|
||||
padding-right: 5px;
|
||||
}
|
||||
|
||||
.mx_RoomHeader_info {
|
||||
|
@ -209,20 +208,32 @@ limitations under the License.
|
|||
|
||||
.mx_RoomHeader_button {
|
||||
position: relative;
|
||||
margin-left: 10px;
|
||||
margin-left: 1px;
|
||||
margin-right: 1px;
|
||||
cursor: pointer;
|
||||
height: 20px;
|
||||
width: 20px;
|
||||
height: 32px;
|
||||
width: 32px;
|
||||
border-radius: 100%;
|
||||
|
||||
&::before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
height: 20px;
|
||||
width: 20px;
|
||||
top: 4px; // center with parent of 32px
|
||||
left: 4px; // center with parent of 32px
|
||||
height: 24px;
|
||||
width: 24px;
|
||||
background-color: $roomheader-button-color;
|
||||
mask-repeat: no-repeat;
|
||||
mask-size: contain;
|
||||
}
|
||||
|
||||
&:hover {
|
||||
background: rgba($accent-color, 0.1);
|
||||
|
||||
&::before {
|
||||
background-color: $accent-color;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.mx_RoomHeader_settingsButton::before {
|
||||
|
|
|
@ -203,7 +203,7 @@ limitations under the License.
|
|||
display: flex;
|
||||
flex-direction: column;
|
||||
|
||||
mask-image: linear-gradient(0deg, transparent, black 4px)
|
||||
mask-image: linear-gradient(0deg, transparent, black 4px);
|
||||
}
|
||||
|
||||
.mx_RoomSublist2_resizerHandles_showNButton {
|
||||
|
|
|
@ -59,7 +59,7 @@ limitations under the License.
|
|||
flex: 1;
|
||||
font-size: $font-14px;
|
||||
font-weight: 600;
|
||||
color: $composer-button-color;
|
||||
color: $roomtopic-color;
|
||||
}
|
||||
|
||||
.mx_WhoIsTypingTile_label > span {
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<mask id="path-1-inside-1" fill="white">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M20 10C20 15.5228 15.5228 20 10 20C4.47715 20 0 15.5228 0 10C0 4.47715 4.47715 0 10 0C15.5228 0 20 4.47715 20 10ZM14.3804 11.412C15.59 11.412 16.5705 10.3498 16.5705 9.03936C16.5705 7.72896 15.59 6.66667 14.3804 6.66667C13.1708 6.66667 12.1902 7.72896 12.1902 9.03936C12.1902 10.3498 13.1708 11.412 14.3804 11.412ZM10.8333 15.7461C10.8333 13.7941 9.46231 12.1623 7.63071 11.7611C7.31877 11.6991 6.99645 11.6667 6.66667 11.6667C4.66814 11.6667 2.94347 12.8594 2.14307 14.5833L5.83334 18.4483H10.8333L10.8333 15.7461ZM12.8333 18.4483H14.3804L18.0844 14.5833C17.3081 13.3356 15.9394 12.5071 14.3804 12.5071C13.5955 12.5071 12.8588 12.7171 12.2216 13.0849C12.6134 13.8884 12.8333 14.7913 12.8333 15.7461L12.8333 18.4483ZM9.16669 7.70833C9.16669 9.2041 8.0474 10.4167 6.66669 10.4167C5.28597 10.4167 4.16669 9.2041 4.16669 7.70833C4.16669 6.21256 5.28597 5 6.66669 5C8.0474 5 9.16669 6.21256 9.16669 7.70833Z"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M22 12C22 17.5228 17.5228 22 12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2C17.5228 2 22 6.47715 22 12ZM16.3804 13.412C17.59 13.412 18.5705 12.3498 18.5705 11.0394C18.5705 9.72896 17.59 8.66667 16.3804 8.66667C15.1708 8.66667 14.1902 9.72896 14.1902 11.0394C14.1902 12.3498 15.1708 13.412 16.3804 13.412ZM12.8333 17.7461C12.8333 15.7941 11.4623 14.1623 9.63071 13.7611C9.31877 13.6991 8.99645 13.6667 8.66667 13.6667C6.66814 13.6667 4.94347 14.8594 4.14307 16.5833L7.83334 20.4483H12.8333L12.8333 17.7461ZM14.8333 20.4483H16.3804L20.0844 16.5833C19.3081 15.3356 17.9394 14.5071 16.3804 14.5071C15.5955 14.5071 14.8588 14.7171 14.2216 15.0849C14.6134 15.8884 14.8333 16.7913 14.8333 17.7461L14.8333 20.4483ZM11.1667 9.70833C11.1667 11.2041 10.0474 12.4167 8.66669 12.4167C7.28597 12.4167 6.16669 11.2041 6.16669 9.70833C6.16669 8.21256 7.28597 7 8.66669 7C10.0474 7 11.1667 8.21256 11.1667 9.70833Z"/>
|
||||
</mask>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M20 10C20 15.5228 15.5228 20 10 20C4.47715 20 0 15.5228 0 10C0 4.47715 4.47715 0 10 0C15.5228 0 20 4.47715 20 10ZM14.3804 11.412C15.59 11.412 16.5705 10.3498 16.5705 9.03936C16.5705 7.72896 15.59 6.66667 14.3804 6.66667C13.1708 6.66667 12.1902 7.72896 12.1902 9.03936C12.1902 10.3498 13.1708 11.412 14.3804 11.412ZM10.8333 15.7461C10.8333 13.7941 9.46231 12.1623 7.63071 11.7611C7.31877 11.6991 6.99645 11.6667 6.66667 11.6667C4.66814 11.6667 2.94347 12.8594 2.14307 14.5833L5.83334 18.4483H10.8333L10.8333 15.7461ZM12.8333 18.4483H14.3804L18.0844 14.5833C17.3081 13.3356 15.9394 12.5071 14.3804 12.5071C13.5955 12.5071 12.8588 12.7171 12.2216 13.0849C12.6134 13.8884 12.8333 14.7913 12.8333 15.7461L12.8333 18.4483ZM9.16669 7.70833C9.16669 9.2041 8.0474 10.4167 6.66669 10.4167C5.28597 10.4167 4.16669 9.2041 4.16669 7.70833C4.16669 6.21256 5.28597 5 6.66669 5C8.0474 5 9.16669 6.21256 9.16669 7.70833Z" fill="black"/>
|
||||
<path d="M7.63071 11.7611L7.9873 10.1331L7.97144 10.1296L7.95552 10.1264L7.63071 11.7611ZM10.8333 15.7461H9.16665V15.7461L10.8333 15.7461ZM2.14307 14.5833L0.631393 13.8815L0.152784 14.9123L0.937622 15.7343L2.14307 14.5833ZM5.83334 18.4483L4.62789 19.5993L5.1203 20.115H5.83334V18.4483ZM10.8333 18.4483V20.115H12.5L12.5 18.4483L10.8333 18.4483ZM14.3804 18.4483V20.115H15.0916L15.5837 19.6015L14.3804 18.4483ZM12.8333 18.4483L11.1667 18.4483L11.1667 20.115H12.8333V18.4483ZM18.0844 14.5833L19.2877 15.7365L20.1834 14.802L19.4996 13.7029L18.0844 14.5833ZM12.2216 13.0849L11.3884 11.6415L10.0423 12.4185L10.7236 13.8155L12.2216 13.0849ZM12.8333 15.7461H11.1667V15.7461L12.8333 15.7461ZM10 21.6667C16.4433 21.6667 21.6667 16.4433 21.6667 10H18.3333C18.3333 14.6024 14.6024 18.3333 10 18.3333V21.6667ZM-1.66667 10C-1.66667 16.4433 3.55668 21.6667 10 21.6667V18.3333C5.39763 18.3333 1.66667 14.6024 1.66667 10H-1.66667ZM10 -1.66667C3.55668 -1.66667 -1.66667 3.55668 -1.66667 10H1.66667C1.66667 5.39763 5.39763 1.66667 10 1.66667V-1.66667ZM21.6667 10C21.6667 3.55668 16.4433 -1.66667 10 -1.66667V1.66667C14.6024 1.66667 18.3333 5.39763 18.3333 10H21.6667ZM14.9039 9.03936C14.9039 9.5574 14.5464 9.74538 14.3804 9.74538V13.0787C16.6335 13.0787 18.2372 11.1421 18.2372 9.03936H14.9039ZM14.3804 8.33334C14.5464 8.33334 14.9039 8.52132 14.9039 9.03936H18.2372C18.2372 6.9366 16.6335 5.00001 14.3804 5.00001V8.33334ZM13.8569 9.03936C13.8569 8.52132 14.2143 8.33334 14.3804 8.33334V5.00001C12.1272 5.00001 10.5235 6.9366 10.5235 9.03936H13.8569ZM14.3804 9.74538C14.2143 9.74538 13.8569 9.5574 13.8569 9.03936H10.5235C10.5235 11.1421 12.1272 13.0787 14.3804 13.0787V9.74538ZM7.27412 13.3892C8.35701 13.6264 9.16665 14.5936 9.16665 15.7461H12.5C12.5 12.9945 10.5676 10.6982 7.9873 10.1331L7.27412 13.3892ZM6.66667 13.3333C6.88675 13.3333 7.10029 13.355 7.3059 13.3958L7.95552 10.1264C7.53724 10.0433 7.10614 10 6.66667 10V13.3333ZM3.65474 15.2852C4.19734 14.1166 5.3526 13.3333 6.66667 13.3333V10C3.98369 10 1.68961 11.6023 0.631393 13.8815L3.65474 15.2852ZM7.03878 17.2974L3.34851 13.4324L0.937622 15.7343L4.62789 19.5993L7.03878 17.2974ZM10.8333 16.7817H5.83334V20.115H10.8333V16.7817ZM9.16665 15.7461L9.16666 18.4483L12.5 18.4483L12.5 15.7461L9.16665 15.7461ZM14.3804 16.7817H12.8333V20.115H14.3804V16.7817ZM16.8811 13.4301L13.1771 17.2951L15.5837 19.6015L19.2877 15.7365L16.8811 13.4301ZM14.3804 14.1738C15.3311 14.1738 16.1797 14.6768 16.6693 15.4638L19.4996 13.7029C18.4366 11.9944 16.5477 10.8405 14.3804 10.8405V14.1738ZM13.0549 14.5284C13.4465 14.3023 13.8969 14.1738 14.3804 14.1738V10.8405C13.2941 10.8405 12.2711 11.132 11.3884 11.6415L13.0549 14.5284ZM14.5 15.7461C14.5 14.5328 14.2201 13.3806 13.7196 12.3544L10.7236 13.8155C11.0068 14.3963 11.1667 15.0498 11.1667 15.7461H14.5ZM14.5 18.4483L14.5 15.7461L11.1667 15.7461L11.1667 18.4483L14.5 18.4483ZM6.66669 12.0833C9.09097 12.0833 10.8334 9.99646 10.8334 7.70833H7.50002C7.50002 8.41175 7.00383 8.75 6.66669 8.75V12.0833ZM2.50002 7.70833C2.50002 9.99646 4.2424 12.0833 6.66669 12.0833V8.75C6.32955 8.75 5.83335 8.41175 5.83335 7.70833H2.50002ZM6.66669 3.33333C4.2424 3.33333 2.50002 5.42021 2.50002 7.70833H5.83335C5.83335 7.00492 6.32955 6.66667 6.66669 6.66667V3.33333ZM10.8334 7.70833C10.8334 5.42021 9.09097 3.33333 6.66669 3.33333V6.66667C7.00383 6.66667 7.50002 7.00492 7.50002 7.70833H10.8334Z" fill="black" mask="url(#path-1-inside-1)"/>
|
||||
<path d="M19 10C19 14.9706 14.9706 19 10 19C5.02944 19 1 14.9706 1 10C1 5.02944 5.02944 1 10 1C14.9706 1 19 5.02944 19 10Z" stroke="black" stroke-width="2"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M22 12C22 17.5228 17.5228 22 12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2C17.5228 2 22 6.47715 22 12ZM16.3804 13.412C17.59 13.412 18.5705 12.3498 18.5705 11.0394C18.5705 9.72896 17.59 8.66667 16.3804 8.66667C15.1708 8.66667 14.1902 9.72896 14.1902 11.0394C14.1902 12.3498 15.1708 13.412 16.3804 13.412ZM12.8333 17.7461C12.8333 15.7941 11.4623 14.1623 9.63071 13.7611C9.31877 13.6991 8.99645 13.6667 8.66667 13.6667C6.66814 13.6667 4.94347 14.8594 4.14307 16.5833L7.83334 20.4483H12.8333L12.8333 17.7461ZM14.8333 20.4483H16.3804L20.0844 16.5833C19.3081 15.3356 17.9394 14.5071 16.3804 14.5071C15.5955 14.5071 14.8588 14.7171 14.2216 15.0849C14.6134 15.8884 14.8333 16.7913 14.8333 17.7461L14.8333 20.4483ZM11.1667 9.70833C11.1667 11.2041 10.0474 12.4167 8.66669 12.4167C7.28597 12.4167 6.16669 11.2041 6.16669 9.70833C6.16669 8.21256 7.28597 7 8.66669 7C10.0474 7 11.1667 8.21256 11.1667 9.70833Z" fill="black"/>
|
||||
<path d="M9.63071 13.7611L9.9873 12.1331L9.97144 12.1296L9.95552 12.1264L9.63071 13.7611ZM12.8333 17.7461H11.1667V17.7461L12.8333 17.7461ZM4.14307 16.5833L2.63139 15.8815L2.15278 16.9123L2.93762 17.7343L4.14307 16.5833ZM7.83334 20.4483L6.62789 21.5993L7.1203 22.115H7.83334V20.4483ZM12.8333 20.4483V22.115H14.5L14.5 20.4483L12.8333 20.4483ZM16.3804 20.4483V22.115H17.0916L17.5837 21.6015L16.3804 20.4483ZM14.8333 20.4483L13.1667 20.4483L13.1667 22.115H14.8333V20.4483ZM20.0844 16.5833L21.2877 17.7365L22.1834 16.802L21.4996 15.7029L20.0844 16.5833ZM14.2216 15.0849L13.3884 13.6415L12.0423 14.4185L12.7236 15.8155L14.2216 15.0849ZM14.8333 17.7461H13.1667V17.7461L14.8333 17.7461ZM12 23.6667C18.4433 23.6667 23.6667 18.4433 23.6667 12H20.3333C20.3333 16.6024 16.6024 20.3333 12 20.3333V23.6667ZM0.333333 12C0.333333 18.4433 5.55668 23.6667 12 23.6667V20.3333C7.39763 20.3333 3.66667 16.6024 3.66667 12H0.333333ZM12 0.333333C5.55668 0.333333 0.333333 5.55668 0.333333 12H3.66667C3.66667 7.39763 7.39763 3.66667 12 3.66667V0.333333ZM23.6667 12C23.6667 5.55668 18.4433 0.333333 12 0.333333V3.66667C16.6024 3.66667 20.3333 7.39763 20.3333 12H23.6667ZM16.9039 11.0394C16.9039 11.5574 16.5464 11.7454 16.3804 11.7454V15.0787C18.6335 15.0787 20.2372 13.1421 20.2372 11.0394H16.9039ZM16.3804 10.3333C16.5464 10.3333 16.9039 10.5213 16.9039 11.0394H20.2372C20.2372 8.9366 18.6335 7.00001 16.3804 7.00001V10.3333ZM15.8569 11.0394C15.8569 10.5213 16.2143 10.3333 16.3804 10.3333V7.00001C14.1272 7.00001 12.5235 8.9366 12.5235 11.0394H15.8569ZM16.3804 11.7454C16.2143 11.7454 15.8569 11.5574 15.8569 11.0394H12.5235C12.5235 13.1421 14.1272 15.0787 16.3804 15.0787V11.7454ZM9.27412 15.3892C10.357 15.6264 11.1667 16.5936 11.1667 17.7461H14.5C14.5 14.9945 12.5676 12.6982 9.9873 12.1331L9.27412 15.3892ZM8.66667 15.3333C8.88675 15.3333 9.10029 15.355 9.3059 15.3958L9.95552 12.1264C9.53724 12.0433 9.10614 12 8.66667 12V15.3333ZM5.65474 17.2852C6.19734 16.1166 7.3526 15.3333 8.66667 15.3333V12C5.98369 12 3.68961 13.6023 2.63139 15.8815L5.65474 17.2852ZM9.03878 19.2974L5.34851 15.4324L2.93762 17.7343L6.62789 21.5993L9.03878 19.2974ZM12.8333 18.7817H7.83334V22.115H12.8333V18.7817ZM11.1667 17.7461L11.1667 20.4483L14.5 20.4483L14.5 17.7461L11.1667 17.7461ZM16.3804 18.7817H14.8333V22.115H16.3804V18.7817ZM18.8811 15.4301L15.1771 19.2951L17.5837 21.6015L21.2877 17.7365L18.8811 15.4301ZM16.3804 16.1738C17.3311 16.1738 18.1797 16.6768 18.6693 17.4638L21.4996 15.7029C20.4366 13.9944 18.5477 12.8405 16.3804 12.8405V16.1738ZM15.0549 16.5284C15.4465 16.3023 15.8969 16.1738 16.3804 16.1738V12.8405C15.2941 12.8405 14.2711 13.132 13.3884 13.6415L15.0549 16.5284ZM16.5 17.7461C16.5 16.5328 16.2201 15.3806 15.7196 14.3544L12.7236 15.8155C13.0068 16.3963 13.1667 17.0498 13.1667 17.7461H16.5ZM16.5 20.4483L16.5 17.7461L13.1667 17.7461L13.1667 20.4483L16.5 20.4483ZM8.66669 14.0833C11.091 14.0833 12.8334 11.9965 12.8334 9.70833H9.50002C9.50002 10.4117 9.00383 10.75 8.66669 10.75V14.0833ZM4.50002 9.70833C4.50002 11.9965 6.2424 14.0833 8.66669 14.0833V10.75C8.32955 10.75 7.83335 10.4117 7.83335 9.70833H4.50002ZM8.66669 5.33333C6.2424 5.33333 4.50002 7.42021 4.50002 9.70833H7.83335C7.83335 9.00492 8.32955 8.66667 8.66669 8.66667V5.33333ZM12.8334 9.70833C12.8334 7.42021 11.091 5.33333 8.66669 5.33333V8.66667C9.00383 8.66667 9.50002 9.00492 9.50002 9.70833H12.8334Z" fill="black" mask="url(#path-1-inside-1)"/>
|
||||
<path d="M21 12C21 16.9706 16.9706 21 12 21C7.02944 21 3 16.9706 3 12C3 7.02944 7.02944 3 12 3C16.9706 3 21 7.02944 21 12Z" stroke="black" stroke-width="2"/>
|
||||
</svg>
|
||||
|
|
Before Width: | Height: | Size: 5.5 KiB After Width: | Height: | Size: 5.5 KiB |
|
@ -1,3 +1,3 @@
|
|||
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M20 10C20 15.5228 15.5228 20 10 20C4.47715 20 0 15.5228 0 10C0 4.47715 4.47715 0 10 0C15.5228 0 20 4.47715 20 10ZM8.52525 4.00581C9.07433 4.06524 9.47127 4.55853 9.41184 5.10761L9.22345 6.84821H11.3843L11.596 4.89239C11.6554 4.34332 12.1487 3.94638 12.6978 4.00581C13.2469 4.06524 13.6438 4.55853 13.5844 5.10761L13.396 6.84821H14.3C14.8523 6.84821 15.3 7.29592 15.3 7.84821C15.3 8.40049 14.8523 8.84821 14.3 8.84821H13.1795L12.9319 11.1362H14.3C14.8523 11.1362 15.3 11.5839 15.3 12.1362C15.3 12.6884 14.8523 13.1362 14.3 13.1362H12.7154L12.502 15.1076C12.4426 15.6567 11.9493 16.0536 11.4002 15.9942C10.8512 15.9348 10.4542 15.4415 10.5136 14.8924L10.7037 13.1362H8.54287L8.32949 15.1076C8.27006 15.6567 7.77677 16.0536 7.22769 15.9942C6.67861 15.9348 6.28167 15.4415 6.3411 14.8924L6.53119 13.1362H5.5C4.94772 13.1362 4.5 12.6884 4.5 12.1362C4.5 11.5839 4.94772 11.1362 5.5 11.1362H6.74766L6.9953 8.84821H5.93922C5.38693 8.84821 4.93922 8.40049 4.93922 7.84821C4.93922 7.29592 5.38693 6.84821 5.93922 6.84821H7.21177L7.42345 4.89239C7.48288 4.34332 7.97618 3.94638 8.52525 4.00581ZM8.75934 11.1362H10.9202L11.1678 8.84821H9.00698L8.75934 11.1362Z" fill="black"/>
|
||||
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M22 12C22 17.5228 17.5228 22 12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2C17.5228 2 22 6.47715 22 12ZM10.5253 6.00581C11.0743 6.06524 11.4713 6.55853 11.4118 7.10761L11.2234 8.84821H13.3843L13.596 6.89239C13.6554 6.34332 14.1487 5.94638 14.6978 6.00581C15.2469 6.06524 15.6438 6.55853 15.5844 7.10761L15.396 8.84821H16.3C16.8523 8.84821 17.3 9.29592 17.3 9.84821C17.3 10.4005 16.8523 10.8482 16.3 10.8482H15.1795L14.9319 13.1362H16.3C16.8523 13.1362 17.3 13.5839 17.3 14.1362C17.3 14.6884 16.8523 15.1362 16.3 15.1362H14.7154L14.502 17.1076C14.4426 17.6567 13.9493 18.0536 13.4002 17.9942C12.8512 17.9348 12.4542 17.4415 12.5136 16.8924L12.7037 15.1362H10.5429L10.3295 17.1076C10.2701 17.6567 9.77677 18.0536 9.22769 17.9942C8.67861 17.9348 8.28167 17.4415 8.3411 16.8924L8.53119 15.1362H7.5C6.94772 15.1362 6.5 14.6884 6.5 14.1362C6.5 13.5839 6.94772 13.1362 7.5 13.1362H8.74766L8.9953 10.8482H7.93922C7.38693 10.8482 6.93922 10.4005 6.93922 9.84821C6.93922 9.29592 7.38693 8.84821 7.93922 8.84821H9.21177L9.42345 6.89239C9.48288 6.34332 9.97618 5.94638 10.5253 6.00581ZM10.7593 13.1362H12.9202L13.1678 10.8482H11.007L10.7593 13.1362Z" fill="black"/>
|
||||
</svg>
|
||||
|
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
|
@ -1,7 +1,7 @@
|
|||
<svg width="16" height="20" viewBox="0 0 16 20" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M8 2L14.2139 0.446536C15.1211 0.219718 16 0.90592 16 1.84112V18.1589C16 19.0941 15.1211 19.7803 14.2139 19.5535L8 18V2Z" fill="black"/>
|
||||
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M12 4L18.2139 2.44654C19.1211 2.21972 20 2.90592 20 3.84112V20.1589C20 21.0941 19.1211 21.7803 18.2139 21.5535L12 20V4Z" fill="black"/>
|
||||
<mask id="path-2-inside-1" fill="white">
|
||||
<rect y="2" width="10" height="16" rx="1.4375"/>
|
||||
<rect x="4" y="4" width="10" height="16" rx="1.4375"/>
|
||||
</mask>
|
||||
<rect y="2" width="10" height="16" rx="1.4375" stroke="black" stroke-width="4" mask="url(#path-2-inside-1)"/>
|
||||
<rect x="4" y="4" width="10" height="16" rx="1.4375" stroke="black" stroke-width="4" mask="url(#path-2-inside-1)"/>
|
||||
</svg>
|
||||
|
|
Before Width: | Height: | Size: 456 B After Width: | Height: | Size: 468 B |
|
@ -1,5 +1,5 @@
|
|||
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M8.2375 17.5C8.1625 17.7 8.125 17.9 8.125 18.125C8.125 19.1625 8.9625 20 10 20C11.0375 20 11.875 19.1625 11.875 18.125C11.875 17.9 11.825 17.7 11.7625 17.5H8.2375Z" fill="black"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M17.6125 14.0625C16.8625 13.625 16.25 12.8875 16.25 11.75V7.5C16.25 4.05 13.3 1.25 10 1.25C6.7 1.25 3.75 4.05 3.75 7.5V11.75C3.75 12.875 3.125 13.625 2.3875 14.0625C1.8875 14.3625 1.25 14.775 1.25 15.275C1.25 15.85 1.6125 16.2375 2.3625 16.2375H10H17.6375C18.3875 16.2375 18.75 15.8375 18.75 15.275C18.75 14.775 18.125 14.3625 17.6125 14.0625Z" fill="black"/>
|
||||
<path d="M10 2.5C10.6904 2.5 11.25 1.94036 11.25 1.25C11.25 0.559644 10.6904 0 10 0C9.30964 0 8.75 0.559644 8.75 1.25C8.75 1.94036 9.30964 2.5 10 2.5Z" fill="black"/>
|
||||
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M10.2375 19.5C10.1625 19.7 10.125 19.9 10.125 20.125C10.125 21.1625 10.9625 22 12 22C13.0375 22 13.875 21.1625 13.875 20.125C13.875 19.9 13.825 19.7 13.7625 19.5H10.2375Z" fill="black"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M19.6125 16.0625C18.8625 15.625 18.25 14.8875 18.25 13.75V9.5C18.25 6.05 15.3 3.25 12 3.25C8.7 3.25 5.75 6.05 5.75 9.5V13.75C5.75 14.875 5.125 15.625 4.3875 16.0625C3.8875 16.3625 3.25 16.775 3.25 17.275C3.25 17.85 3.6125 18.2375 4.3625 18.2375H12H19.6375C20.3875 18.2375 20.75 17.8375 20.75 17.275C20.75 16.775 20.125 16.3625 19.6125 16.0625Z" fill="black"/>
|
||||
<path d="M12 4.5C12.6904 4.5 13.25 3.94036 13.25 3.25C13.25 2.55964 12.6904 2 12 2C11.3096 2 10.75 2.55964 10.75 3.25C10.75 3.94036 11.3096 4.5 12 4.5Z" fill="black"/>
|
||||
</svg>
|
||||
|
|
Before Width: | Height: | Size: 908 B After Width: | Height: | Size: 916 B |
|
@ -1,3 +1,3 @@
|
|||
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M2 3C2 1.34315 3.34315 0 5 0H15C16.6569 0 18 1.34315 18 3V17C18 18.6569 16.6569 20 15 20H5C3.34315 20 2 18.6569 2 17V3ZM5 12.25C5 11.8358 5.33579 11.5 5.75 11.5H14.25C14.6642 11.5 15 11.8358 15 12.25C15 12.6642 14.6642 13 14.25 13H5.75C5.33579 13 5 12.6642 5 12.25ZM5.75 15C5.33579 15 5 15.3358 5 15.75C5 16.1642 5.33579 16.5 5.75 16.5H10.25C10.6642 16.5 11 16.1642 11 15.75C11 15.3358 10.6642 15 10.25 15H5.75Z" fill="black"/>
|
||||
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M4 5C4 3.34315 5.34315 2 7 2H17C18.6569 2 20 3.34315 20 5V19C20 20.6569 18.6569 22 17 22H7C5.34315 22 4 20.6569 4 19V5ZM7 14.25C7 13.8358 7.33579 13.5 7.75 13.5H16.25C16.6642 13.5 17 13.8358 17 14.25C17 14.6642 16.6642 15 16.25 15H7.75C7.33579 15 7 14.6642 7 14.25ZM7.75 17C7.33579 17 7 17.3358 7 17.75C7 18.1642 7.33579 18.5 7.75 18.5H12.25C12.6642 18.5 13 18.1642 13 17.75C13 17.3358 12.6642 17 12.25 17H7.75Z" fill="black"/>
|
||||
</svg>
|
||||
|
|
Before Width: | Height: | Size: 580 B After Width: | Height: | Size: 580 B |
|
@ -1,3 +1,3 @@
|
|||
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M0 4C0 1.79086 1.79086 0 4 0H16C18.2091 0 20 1.79086 20 4V16C20 18.2091 18.2091 20 16 20H4C1.79086 20 0 18.2091 0 16V4ZM9 6C9 7.65685 7.65685 9 6 9C4.34315 9 3 7.65685 3 6C3 4.34315 4.34315 3 6 3C7.65685 3 9 4.34315 9 6ZM6 17C7.65685 17 9 15.6569 9 14C9 12.3431 7.65685 11 6 11C4.34315 11 3 12.3431 3 14C3 15.6569 4.34315 17 6 17ZM17 14C17 15.6569 15.6569 17 14 17C12.3431 17 11 15.6569 11 14C11 12.3431 12.3431 11 14 11C15.6569 11 17 12.3431 17 14ZM14 9C15.6569 9 17 7.65685 17 6C17 4.34315 15.6569 3 14 3C12.3431 3 11 4.34315 11 6C11 7.65685 12.3431 9 14 9Z" fill="black"/>
|
||||
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M2 6C2 3.79086 3.79086 2 6 2H18C20.2091 2 22 3.79086 22 6V18C22 20.2091 20.2091 22 18 22H6C3.79086 22 2 20.2091 2 18V6ZM11 8C11 9.65685 9.65685 11 8 11C6.34315 11 5 9.65685 5 8C5 6.34315 6.34315 5 8 5C9.65685 5 11 6.34315 11 8ZM8 19C9.65685 19 11 17.6569 11 16C11 14.3431 9.65685 13 8 13C6.34315 13 5 14.3431 5 16C5 17.6569 6.34315 19 8 19ZM19 16C19 17.6569 17.6569 19 16 19C14.3431 19 13 17.6569 13 16C13 14.3431 14.3431 13 16 13C17.6569 13 19 14.3431 19 16ZM16 11C17.6569 11 19 9.65685 19 8C19 6.34315 17.6569 5 16 5C14.3431 5 13 6.34315 13 8C13 9.65685 14.3431 11 16 11Z" fill="black"/>
|
||||
</svg>
|
||||
|
|
Before Width: | Height: | Size: 728 B After Width: | Height: | Size: 742 B |
|
@ -1,7 +1,7 @@
|
|||
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<mask id="path-1-inside-1" fill="white">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M15.5911 18.2922C13.9951 19.3704 12.0711 20 10 20C7.74879 20 5.67132 19.2561 4 18.0007C1.5711 16.1763 0 13.2716 0 10C0 4.47715 4.47715 0 10 0C15.5228 0 20 4.47715 20 10C20 13.4518 18.2511 16.4951 15.5911 18.2922ZM10 10.5C11.6569 10.5 13 9.04493 13 7.25C13 5.45507 11.6569 4 10 4C8.34315 4 7 5.45507 7 7.25C7 9.04493 8.34315 10.5 10 10.5ZM10 18C12.162 18 14.1236 17.1424 15.5634 15.7488C14.673 13.5506 12.5176 12 10 12C7.48242 12 5.32699 13.5506 4.43662 15.7488C5.87635 17.1424 7.83802 18 10 18Z"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M17.5911 20.2922C15.9951 21.3704 14.0711 22 12 22C9.74879 22 7.67132 21.2561 6 20.0007C3.5711 18.1763 2 15.2716 2 12C2 6.47715 6.47715 2 12 2C17.5228 2 22 6.47715 22 12C22 15.4518 20.2511 18.4951 17.5911 20.2922ZM12 12.5C13.6569 12.5 15 11.0449 15 9.25C15 7.45507 13.6569 6 12 6C10.3431 6 9 7.45507 9 9.25C9 11.0449 10.3431 12.5 12 12.5ZM12 20C14.162 20 16.1236 19.1424 17.5634 17.7488C16.673 15.5506 14.5176 14 12 14C9.48242 14 7.32699 15.5506 6.43662 17.7488C7.87635 19.1424 9.83802 20 12 20Z"/>
|
||||
</mask>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M15.5911 18.2922C13.9951 19.3704 12.0711 20 10 20C7.74879 20 5.67132 19.2561 4 18.0007C1.5711 16.1763 0 13.2716 0 10C0 4.47715 4.47715 0 10 0C15.5228 0 20 4.47715 20 10C20 13.4518 18.2511 16.4951 15.5911 18.2922ZM10 10.5C11.6569 10.5 13 9.04493 13 7.25C13 5.45507 11.6569 4 10 4C8.34315 4 7 5.45507 7 7.25C7 9.04493 8.34315 10.5 10 10.5ZM10 18C12.162 18 14.1236 17.1424 15.5634 15.7488C14.673 13.5506 12.5176 12 10 12C7.48242 12 5.32699 13.5506 4.43662 15.7488C5.87635 17.1424 7.83802 18 10 18Z" fill="black"/>
|
||||
<path d="M15.5911 18.2922L14.4715 16.6349L15.5911 18.2922ZM4 18.0007L2.79885 19.5999L2.79885 19.5999L4 18.0007ZM15.5634 15.7488L16.9544 17.1859L17.9234 16.2479L17.4171 14.998L15.5634 15.7488ZM4.43662 15.7488L2.5829 14.998L2.07662 16.2479L3.04563 17.1859L4.43662 15.7488ZM10 22C12.4825 22 14.7945 21.244 16.7107 19.9494L14.4715 16.6349C13.1957 17.4968 11.6596 18 10 18V22ZM2.79885 19.5999C4.80462 21.1065 7.30085 22 10 22V18C8.19673 18 6.53802 17.4058 5.20115 16.4016L2.79885 19.5999ZM-2 10C-2 13.9273 -0.111319 17.414 2.79885 19.5999L5.20115 16.4016C3.25353 14.9387 2 12.616 2 10H-2ZM10 -2C3.37258 -2 -2 3.37258 -2 10H2C2 5.58172 5.58172 2 10 2V-2ZM22 10C22 3.37258 16.6274 -2 10 -2V2C14.4183 2 18 5.58172 18 10H22ZM16.7107 19.9494C19.8977 17.7963 22 14.144 22 10H18C18 12.7596 16.6045 15.1939 14.4715 16.6349L16.7107 19.9494ZM11 7.25C11 8.0941 10.4046 8.5 10 8.5V12.5C12.9091 12.5 15 9.99575 15 7.25H11ZM10 6C10.4046 6 11 6.4059 11 7.25H15C15 4.50425 12.9091 2 10 2V6ZM9 7.25C9 6.4059 9.59543 6 10 6V2C7.09086 2 5 4.50425 5 7.25H9ZM10 8.5C9.59543 8.5 9 8.0941 9 7.25H5C5 9.99575 7.09086 12.5 10 12.5V8.5ZM14.1724 14.3118C13.0906 15.3588 11.6223 16 10 16V20C12.7017 20 15.1567 18.926 16.9544 17.1859L14.1724 14.3118ZM10 14C11.6752 14 13.1146 15.0305 13.7097 16.4996L17.4171 14.998C16.2314 12.0707 13.3599 10 10 10V14ZM6.29033 16.4996C6.88541 15.0305 8.32476 14 10 14V10C6.64008 10 3.76858 12.0707 2.5829 14.998L6.29033 16.4996ZM10 16C8.37775 16 6.90936 15.3588 5.82761 14.3118L3.04563 17.1859C4.84334 18.926 7.2983 20 10 20V16Z" fill="black" mask="url(#path-1-inside-1)"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M17.5911 20.2922C15.9951 21.3704 14.0711 22 12 22C9.74879 22 7.67132 21.2561 6 20.0007C3.5711 18.1763 2 15.2716 2 12C2 6.47715 6.47715 2 12 2C17.5228 2 22 6.47715 22 12C22 15.4518 20.2511 18.4951 17.5911 20.2922ZM12 12.5C13.6569 12.5 15 11.0449 15 9.25C15 7.45507 13.6569 6 12 6C10.3431 6 9 7.45507 9 9.25C9 11.0449 10.3431 12.5 12 12.5ZM12 20C14.162 20 16.1236 19.1424 17.5634 17.7488C16.673 15.5506 14.5176 14 12 14C9.48242 14 7.32699 15.5506 6.43662 17.7488C7.87635 19.1424 9.83802 20 12 20Z" fill="black"/>
|
||||
<path d="M17.5911 20.2922L16.4715 18.6349L17.5911 20.2922ZM6 20.0007L4.79885 21.5999L4.79885 21.5999L6 20.0007ZM17.5634 17.7488L18.9544 19.1859L19.9234 18.2479L19.4171 16.998L17.5634 17.7488ZM6.43662 17.7488L4.5829 16.998L4.07662 18.2479L5.04563 19.1859L6.43662 17.7488ZM12 24C14.4825 24 16.7945 23.244 18.7107 21.9494L16.4715 18.6349C15.1957 19.4968 13.6596 20 12 20V24ZM4.79885 21.5999C6.80462 23.1065 9.30085 24 12 24V20C10.1967 20 8.53802 19.4058 7.20115 18.4016L4.79885 21.5999ZM0 12C0 15.9273 1.88868 19.414 4.79885 21.5999L7.20115 18.4016C5.25353 16.9387 4 14.616 4 12H0ZM12 0C5.37258 0 0 5.37258 0 12H4C4 7.58172 7.58172 4 12 4V0ZM24 12C24 5.37258 18.6274 0 12 0V4C16.4183 4 20 7.58172 20 12H24ZM18.7107 21.9494C21.8977 19.7963 24 16.144 24 12H20C20 14.7596 18.6045 17.1939 16.4715 18.6349L18.7107 21.9494ZM13 9.25C13 10.0941 12.4046 10.5 12 10.5V14.5C14.9091 14.5 17 11.9958 17 9.25H13ZM12 8C12.4046 8 13 8.4059 13 9.25H17C17 6.50425 14.9091 4 12 4V8ZM11 9.25C11 8.4059 11.5954 8 12 8V4C9.09086 4 7 6.50425 7 9.25H11ZM12 10.5C11.5954 10.5 11 10.0941 11 9.25H7C7 11.9958 9.09086 14.5 12 14.5V10.5ZM16.1724 16.3118C15.0906 17.3588 13.6223 18 12 18V22C14.7017 22 17.1567 20.926 18.9544 19.1859L16.1724 16.3118ZM12 16C13.6752 16 15.1146 17.0305 15.7097 18.4996L19.4171 16.998C18.2314 14.0707 15.3599 12 12 12V16ZM8.29033 18.4996C8.88541 17.0305 10.3248 16 12 16V12C8.64008 12 5.76858 14.0707 4.5829 16.998L8.29033 18.4996ZM12 18C10.3777 18 8.90936 17.3588 7.82761 16.3118L5.04563 19.1859C6.84334 20.926 9.2983 22 12 22V18Z" fill="black" mask="url(#path-1-inside-1)"/>
|
||||
</svg>
|
||||
|
|
Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 2.8 KiB |
|
@ -1,7 +1,7 @@
|
|||
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M16.5151 18.0831L13.6941 15.2621L15.2621 13.6941L18.0831 16.5151C19.5741 18.0061 20.1529 19.7793 19.9661 19.9661C19.7793 20.1529 18.0061 19.5741 16.5151 18.0831Z" fill="black"/>
|
||||
<path d="M5.46196 9.38205C5.07677 9.50592 3.49073 10.0989 1.63366 10.0744C-0.223419 10.0499 -0.322049 8.89409 0.468114 8.10392L4.28598 4.28602L7.42196 7.42203L5.46196 9.38205Z" fill="black"/>
|
||||
<path d="M9.38206 5.46202C9.50592 5.07682 10.0989 3.49077 10.0744 1.63368C10.0499 -0.223421 8.89411 -0.322052 8.10394 0.468119L4.28598 4.28602L7.42196 7.42203L9.38206 5.46202Z" fill="black"/>
|
||||
<path d="M5.40596 9.43804L9.43793 5.40602L12.9099 8.20604L8.20594 12.9101L5.40596 9.43804Z" fill="black"/>
|
||||
<path d="M9.774 9.77404C7.31114 12.2369 6.61779 15.7115 7.83827 18.3213C8.31038 19.3308 9.62883 19.3273 10.4169 18.5392L18.5391 10.4169C19.3271 9.62887 19.3307 8.3104 18.3212 7.83829C15.7114 6.61779 12.2369 7.31115 9.774 9.77404Z" fill="black"/>
|
||||
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M18.5151 20.0831L15.6941 17.2621L17.2621 15.6941L20.0831 18.5151C21.5741 20.0061 22.1529 21.7793 21.9661 21.9661C21.7793 22.1529 20.0061 21.5741 18.5151 20.0831Z" fill="black"/>
|
||||
<path d="M7.46196 11.3821C7.07677 11.5059 5.49073 12.0989 3.63366 12.0744C1.77658 12.0499 1.67795 10.8941 2.46811 10.1039L6.28598 6.28602L9.42196 9.42203L7.46196 11.3821Z" fill="black"/>
|
||||
<path d="M11.3821 7.46202C11.5059 7.07682 12.0989 5.49077 12.0744 3.63368C12.0499 1.77658 10.8941 1.67795 10.1039 2.46812L6.28598 6.28602L9.42196 9.42203L11.3821 7.46202Z" fill="black"/>
|
||||
<path d="M7.40596 11.438L11.4379 7.40602L14.9099 10.206L10.2059 14.9101L7.40596 11.438Z" fill="black"/>
|
||||
<path d="M11.774 11.774C9.31114 14.2369 8.61779 17.7115 9.83827 20.3213C10.3104 21.3308 11.6288 21.3273 12.4169 20.5392L20.5391 12.4169C21.3271 11.6289 21.3307 10.3104 20.3212 9.83829C17.7114 8.61779 14.2369 9.31115 11.774 11.774Z" fill="black"/>
|
||||
</svg>
|
||||
|
|
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 1015 B |
|
@ -1,3 +1,3 @@
|
|||
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M10 20C15.5228 20 20 15.5228 20 10C20 4.47715 15.5228 0 10 0C4.47715 0 0 4.47715 0 10C0 15.5228 4.47715 20 10 20ZM9 12C10.6569 12 12 10.6569 12 9C12 7.34315 10.6569 6 9 6C7.34315 6 6 7.34315 6 9C6 10.6569 7.34315 12 9 12ZM14 9C14 10.0191 13.6951 10.967 13.1716 11.7574L15.2071 13.7929C15.5976 14.1834 15.5976 14.8166 15.2071 15.2071C14.8166 15.5976 14.1834 15.5976 13.7929 15.2071L11.7574 13.1716C10.967 13.6951 10.0191 14 9 14C6.23858 14 4 11.7614 4 9C4 6.23858 6.23858 4 9 4C11.7614 4 14 6.23858 14 9Z" fill="black"/>
|
||||
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M12 22C17.5228 22 22 17.5228 22 12C22 6.47715 17.5228 2 12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22ZM11 14C12.6569 14 14 12.6569 14 11C14 9.34315 12.6569 8 11 8C9.34315 8 8 9.34315 8 11C8 12.6569 9.34315 14 11 14ZM16 11C16 12.0191 15.6951 12.967 15.1716 13.7574L17.2071 15.7929C17.5976 16.1834 17.5976 16.8166 17.2071 17.2071C16.8166 17.5976 16.1834 17.5976 15.7929 17.2071L13.7574 15.1716C12.967 15.6951 12.0191 16 11 16C8.23858 16 6 13.7614 6 11C6 8.23858 8.23858 6 11 6C13.7614 6 16 8.23858 16 11Z" fill="black"/>
|
||||
</svg>
|
||||
|
|
Before Width: | Height: | Size: 672 B After Width: | Height: | Size: 682 B |
|
@ -1,3 +1,3 @@
|
|||
<svg width="16" height="20" viewBox="0 0 16 20" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M8.76875 0.292893C8.37823 -0.0976311 7.74506 -0.0976311 7.35454 0.292893L2.82365 4.82378C2.43313 5.2143 2.43313 5.84747 2.82365 6.23799C3.21418 6.62851 3.84734 6.62851 4.23787 6.23799L7.06165 3.41421V8H2C0.895431 8 0 8.89543 0 10V18C0 19.1046 0.895431 20 2 20H14C15.1046 20 16 19.1046 16 18V10C16 8.89543 15.1046 8 14 8H9.06177V13C9.06177 13.5523 8.61405 14 8.06177 14C7.50948 14 7.06177 13.5523 7.06177 13V8H9.06165V3.41421L11.8854 6.23799C12.2759 6.62851 12.9091 6.62851 13.2996 6.23799C13.6902 5.84747 13.6902 5.2143 13.2996 4.82378L8.76875 0.292893Z" fill="black"/>
|
||||
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M12.7688 2.29289C12.3782 1.90237 11.7451 1.90237 11.3545 2.29289L6.82365 6.82378C6.43313 7.2143 6.43313 7.84747 6.82365 8.23799C7.21418 8.62851 7.84734 8.62851 8.23787 8.23799L11.0616 5.41421V10H6C4.89543 10 4 10.8954 4 12V20C4 21.1046 4.89543 22 6 22H18C19.1046 22 20 21.1046 20 20V12C20 10.8954 19.1046 10 18 10H13.0618V15C13.0618 15.5523 12.6141 16 12.0618 16C11.5095 16 11.0618 15.5523 11.0618 15V10H13.0616V5.41421L15.8854 8.23799C16.2759 8.62851 16.9091 8.62851 17.2996 8.23799C17.6902 7.84747 17.6902 7.2143 17.2996 6.82378L12.7688 2.29289Z" fill="black"/>
|
||||
</svg>
|
||||
|
|
Before Width: | Height: | Size: 722 B After Width: | Height: | Size: 716 B |
|
@ -1,3 +1,3 @@
|
|||
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M17.3625 7.2875C17.5625 7.8125 18.075 8.1625 18.6375 8.1625C19.3875 8.1625 20 8.775 20 9.525V10.475C20 11.225 19.3875 11.8375 18.6375 11.8375C18.075 11.8375 17.5625 12.1875 17.3625 12.7125C17.346 12.7538 17.3294 12.7958 17.3128 12.838C17.2538 12.9876 17.1932 13.1413 17.125 13.2875C16.8875 13.8 17 14.4 17.4 14.8C17.9375 15.325 17.9375 16.1875 17.4 16.725L16.725 17.4C16.2 17.9375 15.3375 17.9375 14.8 17.4C14.4125 17 13.8 16.8875 13.2875 17.125C13.1 17.2125 12.9125 17.2875 12.7125 17.3625C12.1875 17.5625 11.8375 18.075 11.8375 18.6375C11.8375 19.3875 11.225 20 10.475 20H9.525C8.775 20 8.1625 19.3875 8.1625 18.6375C8.1625 18.075 7.8125 17.5625 7.2875 17.3625C7.24617 17.346 7.20423 17.3294 7.16195 17.3128C7.01243 17.2538 6.85867 17.1932 6.7125 17.125C6.2 16.8875 5.6 17 5.2 17.4C4.675 17.9375 3.8125 17.9375 3.275 17.4L2.6 16.725C2.0625 16.2 2.0625 15.3375 2.6 14.8C3 14.4125 3.1125 13.8 2.875 13.2875C2.7875 13.1 2.7125 12.9125 2.6375 12.7125C2.4375 12.1875 1.925 11.8375 1.3625 11.8375C0.6125 11.8375 0 11.225 0 10.475V9.525C0 8.775 0.6125 8.1625 1.3625 8.1625C1.925 8.1625 2.4375 7.8125 2.6375 7.2875C2.67694 7.16129 2.72634 7.04005 2.77627 6.91751C2.80546 6.84587 2.83483 6.77379 2.8625 6.7C3.1 6.1875 2.9875 5.5875 2.5875 5.1875C2.05 4.6625 2.05 3.8 2.5875 3.2625L3.275 2.6C3.8 2.0625 4.6625 2.0625 5.2 2.6C5.5875 3 6.2 3.1125 6.7125 2.875C6.9 2.7875 7.0875 2.7 7.2875 2.6375C7.8125 2.4375 8.1625 1.925 8.1625 1.3625C8.1625 0.6125 8.775 0 9.525 0H10.475C11.225 0 11.8375 0.6125 11.8375 1.3625C11.8375 1.9375 12.1875 2.4375 12.7125 2.6375C12.7538 2.65403 12.7958 2.67056 12.838 2.68723C12.9876 2.74617 13.1413 2.80679 13.2875 2.875C13.8 3.1125 14.4 3 14.8 2.6C15.325 2.0625 16.1875 2.0625 16.725 2.6L17.4 3.275C17.9375 3.8 17.9375 4.6625 17.4 5.2C17 5.5875 16.8875 6.2 17.125 6.7125C17.2125 6.9 17.2875 7.0875 17.3625 7.2875ZM10 15C7.2375 15 5 12.7625 5 10C5 7.2375 7.2375 5 10 5C12.7625 5 15 7.2375 15 10C15 12.7625 12.7625 15 10 15Z" fill="black"/>
|
||||
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M19.3625 9.2875C19.5625 9.8125 20.075 10.1625 20.6375 10.1625C21.3875 10.1625 22 10.775 22 11.525V12.475C22 13.225 21.3875 13.8375 20.6375 13.8375C20.075 13.8375 19.5625 14.1875 19.3625 14.7125C19.346 14.7538 19.3294 14.7958 19.3128 14.838C19.2538 14.9876 19.1932 15.1413 19.125 15.2875C18.8875 15.8 19 16.4 19.4 16.8C19.9375 17.325 19.9375 18.1875 19.4 18.725L18.725 19.4C18.2 19.9375 17.3375 19.9375 16.8 19.4C16.4125 19 15.8 18.8875 15.2875 19.125C15.1 19.2125 14.9125 19.2875 14.7125 19.3625C14.1875 19.5625 13.8375 20.075 13.8375 20.6375C13.8375 21.3875 13.225 22 12.475 22H11.525C10.775 22 10.1625 21.3875 10.1625 20.6375C10.1625 20.075 9.8125 19.5625 9.2875 19.3625C9.24617 19.346 9.20423 19.3294 9.16195 19.3128C9.01243 19.2538 8.85867 19.1932 8.7125 19.125C8.2 18.8875 7.6 19 7.2 19.4C6.675 19.9375 5.8125 19.9375 5.275 19.4L4.6 18.725C4.0625 18.2 4.0625 17.3375 4.6 16.8C5 16.4125 5.1125 15.8 4.875 15.2875C4.7875 15.1 4.7125 14.9125 4.6375 14.7125C4.4375 14.1875 3.925 13.8375 3.3625 13.8375C2.6125 13.8375 2 13.225 2 12.475V11.525C2 10.775 2.6125 10.1625 3.3625 10.1625C3.925 10.1625 4.4375 9.8125 4.6375 9.2875C4.67694 9.16129 4.72634 9.04005 4.77627 8.91751C4.80546 8.84587 4.83483 8.77379 4.8625 8.7C5.1 8.1875 4.9875 7.5875 4.5875 7.1875C4.05 6.6625 4.05 5.8 4.5875 5.2625L5.275 4.6C5.8 4.0625 6.6625 4.0625 7.2 4.6C7.5875 5 8.2 5.1125 8.7125 4.875C8.9 4.7875 9.0875 4.7 9.2875 4.6375C9.8125 4.4375 10.1625 3.925 10.1625 3.3625C10.1625 2.6125 10.775 2 11.525 2H12.475C13.225 2 13.8375 2.6125 13.8375 3.3625C13.8375 3.9375 14.1875 4.4375 14.7125 4.6375C14.7538 4.65403 14.7958 4.67056 14.838 4.68723C14.9876 4.74617 15.1413 4.80679 15.2875 4.875C15.8 5.1125 16.4 5 16.8 4.6C17.325 4.0625 18.1875 4.0625 18.725 4.6L19.4 5.275C19.9375 5.8 19.9375 6.6625 19.4 7.2C19 7.5875 18.8875 8.2 19.125 8.7125C19.2125 8.9 19.2875 9.0875 19.3625 9.2875ZM12 17C9.2375 17 7 14.7625 7 12C7 9.2375 9.2375 7 12 7C14.7625 7 17 9.2375 17 12C17 14.7625 14.7625 17 12 17Z" fill="black"/>
|
||||
</svg>
|
||||
|
|
Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 2.1 KiB |
|
@ -211,6 +211,8 @@ $appearance-tab-border-color: $room-highlight-color;
|
|||
$roomlist-background-blur-amount: 60px;
|
||||
$tagpanel-background-blur-amount: 30px;
|
||||
|
||||
$composer-shadow-color: rgba(0, 0, 0, 0.28);
|
||||
|
||||
// ***** Mixins! *****
|
||||
|
||||
@define-mixin mx_DialogButton {
|
||||
|
|
|
@ -203,6 +203,8 @@ $user-tile-hover-bg-color: $header-panel-bg-color;
|
|||
// Appearance tab colors
|
||||
$appearance-tab-border-color: $room-highlight-color;
|
||||
|
||||
$composer-shadow-color: tranparent;
|
||||
|
||||
// ***** Mixins! *****
|
||||
|
||||
@define-mixin mx_DialogButton {
|
||||
|
|
|
@ -331,6 +331,8 @@ $user-tile-hover-bg-color: $header-panel-bg-color;
|
|||
// FontSlider colors
|
||||
$appearance-tab-border-color: $input-darker-bg-color;
|
||||
|
||||
$composer-shadow-color: tranparent;
|
||||
|
||||
// ***** Mixins! *****
|
||||
|
||||
@define-mixin mx_DialogButton {
|
||||
|
|
|
@ -44,15 +44,18 @@ $roomtile-focused-bg-color: var(--timeline-background-color);
|
|||
$togglesw-ball-color: var(--timeline-background-color);
|
||||
$droptarget-bg-color: var(--timeline-background-color-50pct); //still needs alpha at .5
|
||||
$authpage-modal-bg-color: var(--timeline-background-color-50pct); //still needs alpha at .59
|
||||
$roomheader-bg-color: var(--timeline-background-color);
|
||||
//
|
||||
// --roomlist-highlights-color
|
||||
$roomtile-selected-bg-color: var(--roomlist-highlights-color);
|
||||
$roomtile2-selected-bg-color: var(--roomlist-highlights-color);
|
||||
//
|
||||
// --sidebar-color
|
||||
$interactive-tooltip-bg-color: var(--sidebar-color);
|
||||
$tagpanel-bg-color: var(--sidebar-color);
|
||||
$tooltip-timeline-bg-color: var(--sidebar-color);
|
||||
$dialog-backdrop-color: var(--sidebar-color-50pct);
|
||||
$roomlist2-button-bg-color: var(--sidebar-color-15pct);
|
||||
//
|
||||
// --roomlist-background-color
|
||||
$header-panel-bg-color: var(--roomlist-background-color);
|
||||
|
@ -67,6 +70,7 @@ $secondary-accent-color: var(--roomlist-background-color);
|
|||
$selected-color: var(--roomlist-background-color);
|
||||
$widget-menu-bar-bg-color: var(--roomlist-background-color);
|
||||
$roomtile-badge-fg-color: var(--roomlist-background-color);
|
||||
$roomlist2-bg-color: var(--roomlist-background-color);
|
||||
//
|
||||
// --timeline-text-color
|
||||
$message-action-bar-fg-color: var(--timeline-text-color);
|
||||
|
@ -87,15 +91,19 @@ $roomheader-color: var(--timeline-text-color);
|
|||
// --roomlist-text-color
|
||||
$roomtile-notified-color: var(--roomlist-text-color);
|
||||
$roomtile-selected-color: var(--roomlist-text-color);
|
||||
//
|
||||
// --roomlist-text-secondary-color
|
||||
$roomsublist-label-fg-color: var(--roomlist-text-secondary-color);
|
||||
$roomtile-name-color: var(--roomlist-text-secondary-color);
|
||||
$roomtile2-preview-color: var(--roomlist-text-secondary-color);
|
||||
$roomlist2-header-color: var(--roomlist-text-secondary-color);
|
||||
$roomtile2-default-badge-bg-color: var(--roomlist-text-secondary-color);
|
||||
|
||||
//
|
||||
// --roomlist-separator-color
|
||||
$input-darker-bg-color: var(--roomlist-separator-color);
|
||||
$panel-divider-color: var(--roomlist-separator-color);// originally #dee1f3, but close enough
|
||||
$primary-hairline-color: var(--roomlist-separator-color);// originally #e5e5e5, but close enough
|
||||
$roomsublist2-divider-color: var(--roomlist-separator-color);
|
||||
//
|
||||
// --timeline-text-secondary-color
|
||||
$authpage-secondary-color: var(--timeline-text-secondary-color);
|
||||
|
@ -126,7 +134,8 @@ $notice-primary-color: var(--warning-color);
|
|||
$pinned-unread-color: var(--warning-color);
|
||||
$warning-color: var(--warning-color);
|
||||
$button-danger-disabled-bg-color: var(--warning-color-50pct); // still needs alpha at 0.5
|
||||
|
||||
//
|
||||
// --username colors
|
||||
$username-variant1-color: var(--username-colors_1, $username-variant1-color);
|
||||
$username-variant2-color: var(--username-colors_2, $username-variant2-color);
|
||||
$username-variant3-color: var(--username-colors_3, $username-variant3-color);
|
||||
|
@ -135,6 +144,10 @@ $username-variant5-color: var(--username-colors_5, $username-variant5-color);
|
|||
$username-variant6-color: var(--username-colors_6, $username-variant6-color);
|
||||
$username-variant7-color: var(--username-colors_7, $username-variant7-color);
|
||||
$username-variant8-color: var(--username-colors_8, $username-variant8-color);
|
||||
|
||||
//
|
||||
// --timeline-highlights-color
|
||||
$event-selected-color: var(--timeline-highlights-color);
|
||||
$event-highlight-bg-color: var(--timeline-highlights-color);
|
||||
//
|
||||
// redirect some variables away from their hardcoded values in the light theme
|
||||
$settings-grey-fg-color: $primary-fg-color;
|
||||
|
|
|
@ -335,6 +335,7 @@ $appearance-tab-border-color: $input-darker-bg-color;
|
|||
$roomlist-background-blur-amount: 40px;
|
||||
$tagpanel-background-blur-amount: 20px;
|
||||
|
||||
$composer-shadow-color: rgba(0, 0, 0, 0.04);
|
||||
|
||||
// ***** Mixins! *****
|
||||
|
||||
|
|
|
@ -40,10 +40,13 @@ function getRedirectUrl(url): string {
|
|||
} else if (url.hostname === 'riot.im') {
|
||||
if (url.pathname.startsWith('/app')) {
|
||||
redirectUrl.hostname = 'app.element.io';
|
||||
redirectUrl.pathname = '/';
|
||||
} else if (url.pathname.startsWith('/staging')) {
|
||||
redirectUrl.hostname = 'staging.element.io';
|
||||
redirectUrl.pathname = '/';
|
||||
} else if (url.pathname.startsWith('/develop')) {
|
||||
redirectUrl.hostname = 'develop.element.io';
|
||||
redirectUrl.pathname = '/';
|
||||
}
|
||||
|
||||
return redirectUrl.href;
|
||||
|
@ -99,7 +102,7 @@ export default class RebrandListener {
|
|||
// to, well, remind them later.
|
||||
this.nagAgainAt = Date.now() + NAG_INTERVAL;
|
||||
this.recheck();
|
||||
}
|
||||
};
|
||||
|
||||
onOneTimeToastLearnMore = async () => {
|
||||
const [doneClicked] = await Modal.createDialog(RebrandDialog, {
|
||||
|
@ -109,13 +112,13 @@ export default class RebrandListener {
|
|||
localStorage.setItem('mx_rename_dialog_dismissed', 'true');
|
||||
this.recheck();
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
onNagTimerFired = () => {
|
||||
this._reshowTimer = null;
|
||||
this.nagAgainAt = null;
|
||||
this.recheck();
|
||||
}
|
||||
};
|
||||
|
||||
private async recheck() {
|
||||
// There are two types of toast/dialog we show: a 'one time' informing the user that
|
||||
|
|
|
@ -43,6 +43,7 @@ import SdkConfig from "./SdkConfig";
|
|||
import { ensureDMExists } from "./createRoom";
|
||||
import { ViewUserPayload } from "./dispatcher/payloads/ViewUserPayload";
|
||||
import { Action } from "./dispatcher/actions";
|
||||
import { EffectiveMembership, getEffectiveMembership } from "./utils/membership";
|
||||
|
||||
// XXX: workaround for https://github.com/microsoft/TypeScript/issues/31816
|
||||
interface HTMLInputEvent extends Event {
|
||||
|
@ -730,9 +731,11 @@ export const Commands = [
|
|||
const cli = MatrixClientPeg.get();
|
||||
const room = cli.getRoom(roomId);
|
||||
if (!room) return reject(_t("Command failed"));
|
||||
|
||||
const member = room.getMember(args);
|
||||
if (!member || getEffectiveMembership(member.membership) === EffectiveMembership.Leave) {
|
||||
return reject(_t("Could not find user in room"));
|
||||
}
|
||||
const powerLevelEvent = room.currentState.getStateEvents('m.room.power_levels', '');
|
||||
if (!powerLevelEvent.getContent().users[args]) return reject(_t("Could not find user in room"));
|
||||
return success(cli.setPowerLevel(roomId, userId, powerLevel, powerLevelEvent));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -23,12 +23,11 @@ import React, {
|
|||
useRef,
|
||||
useReducer,
|
||||
Reducer,
|
||||
RefObject,
|
||||
Dispatch,
|
||||
} from "react";
|
||||
|
||||
import {Key} from "../Keyboard";
|
||||
import AccessibleButton from "../components/views/elements/AccessibleButton";
|
||||
import {FocusHandler, Ref} from "./roving/types";
|
||||
|
||||
/**
|
||||
* Module to simplify implementing the Roving TabIndex accessibility technique
|
||||
|
@ -45,9 +44,7 @@ import AccessibleButton from "../components/views/elements/AccessibleButton";
|
|||
|
||||
const DOCUMENT_POSITION_PRECEDING = 2;
|
||||
|
||||
type Ref = RefObject<HTMLElement>;
|
||||
|
||||
interface IState {
|
||||
export interface IState {
|
||||
activeRef: Ref;
|
||||
refs: Ref[];
|
||||
}
|
||||
|
@ -156,7 +153,7 @@ interface IProps {
|
|||
children(renderProps: {
|
||||
onKeyDownHandler(ev: React.KeyboardEvent);
|
||||
});
|
||||
onKeyDown?(ev: React.KeyboardEvent);
|
||||
onKeyDown?(ev: React.KeyboardEvent, state: IState);
|
||||
}
|
||||
|
||||
export const RovingTabIndexProvider: React.FC<IProps> = ({children, handleHomeEnd, onKeyDown}) => {
|
||||
|
@ -193,7 +190,7 @@ export const RovingTabIndexProvider: React.FC<IProps> = ({children, handleHomeEn
|
|||
ev.preventDefault();
|
||||
ev.stopPropagation();
|
||||
} else if (onKeyDown) {
|
||||
return onKeyDown(ev);
|
||||
return onKeyDown(ev, state);
|
||||
}
|
||||
}, [context.state, onKeyDown, handleHomeEnd]);
|
||||
|
||||
|
@ -202,8 +199,6 @@ export const RovingTabIndexProvider: React.FC<IProps> = ({children, handleHomeEn
|
|||
</RovingTabIndexContext.Provider>;
|
||||
};
|
||||
|
||||
type FocusHandler = () => void;
|
||||
|
||||
// Hook to register a roving tab index
|
||||
// inputRef parameter specifies the ref to use
|
||||
// onFocus should be called when the index gained focus in any manner
|
||||
|
@ -244,28 +239,7 @@ export const useRovingTabIndex = (inputRef: Ref): [FocusHandler, boolean, Ref] =
|
|||
return [onFocus, isActive, ref];
|
||||
};
|
||||
|
||||
interface IRovingTabIndexWrapperProps {
|
||||
inputRef?: Ref;
|
||||
children(renderProps: {
|
||||
onFocus: FocusHandler;
|
||||
isActive: boolean;
|
||||
ref: Ref;
|
||||
});
|
||||
}
|
||||
|
||||
// Wrapper to allow use of useRovingTabIndex outside of React Functional Components.
|
||||
export const RovingTabIndexWrapper: React.FC<IRovingTabIndexWrapperProps> = ({children, inputRef}) => {
|
||||
const [onFocus, isActive, ref] = useRovingTabIndex(inputRef);
|
||||
return children({onFocus, isActive, ref});
|
||||
};
|
||||
|
||||
interface IRovingAccessibleButtonProps extends React.ComponentProps<typeof AccessibleButton> {
|
||||
inputRef?: Ref;
|
||||
}
|
||||
|
||||
// Wrapper to allow use of useRovingTabIndex for simple AccessibleButtons outside of React Functional Components.
|
||||
export const RovingAccessibleButton: React.FC<IRovingAccessibleButtonProps> = ({inputRef, ...props}) => {
|
||||
const [onFocus, isActive, ref] = useRovingTabIndex(inputRef);
|
||||
return <AccessibleButton {...props} onFocus={onFocus} inputRef={ref} tabIndex={isActive ? 0 : -1} />;
|
||||
};
|
||||
|
||||
// re-export the semantic helper components for simplicity
|
||||
export {RovingTabIndexWrapper} from "./roving/RovingTabIndexWrapper";
|
||||
export {RovingAccessibleButton} from "./roving/RovingAccessibleButton";
|
||||
export {RovingAccessibleTooltipButton} from "./roving/RovingAccessibleTooltipButton";
|
||||
|
|
|
@ -0,0 +1,69 @@
|
|||
/*
|
||||
Copyright 2020 The Matrix.org Foundation C.I.C.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
import React from "react";
|
||||
|
||||
import {IState, RovingTabIndexProvider} from "./RovingTabIndex";
|
||||
import {Key} from "../Keyboard";
|
||||
|
||||
interface IProps extends Omit<React.HTMLProps<HTMLDivElement>, "onKeyDown"> {
|
||||
}
|
||||
|
||||
// This component implements the Toolbar design pattern from the WAI-ARIA Authoring Practices guidelines.
|
||||
// https://www.w3.org/TR/wai-aria-practices-1.1/#toolbar
|
||||
// All buttons passed in children must use RovingTabIndex to set `onFocus`, `isActive`, `ref`
|
||||
const Toolbar: React.FC<IProps> = ({children, ...props}) => {
|
||||
const onKeyDown = (ev: React.KeyboardEvent, state: IState) => {
|
||||
const target = ev.target as HTMLElement;
|
||||
let handled = true;
|
||||
|
||||
switch (ev.key) {
|
||||
case Key.ARROW_UP:
|
||||
case Key.ARROW_DOWN:
|
||||
if (target.hasAttribute('aria-haspopup')) {
|
||||
target.click();
|
||||
}
|
||||
break;
|
||||
|
||||
case Key.ARROW_LEFT:
|
||||
case Key.ARROW_RIGHT:
|
||||
if (state.refs.length > 0) {
|
||||
const i = state.refs.findIndex(r => r === state.activeRef);
|
||||
const delta = ev.key === Key.ARROW_RIGHT ? 1 : -1;
|
||||
state.refs.slice((i + delta) % state.refs.length)[0].current.focus();
|
||||
}
|
||||
break;
|
||||
|
||||
// HOME and END are handled by RovingTabIndexProvider
|
||||
|
||||
default:
|
||||
handled = false;
|
||||
}
|
||||
|
||||
if (handled) {
|
||||
ev.preventDefault();
|
||||
ev.stopPropagation();
|
||||
}
|
||||
};
|
||||
|
||||
return <RovingTabIndexProvider handleHomeEnd={true} onKeyDown={onKeyDown}>
|
||||
{({onKeyDownHandler}) => <div {...props} onKeyDown={onKeyDownHandler} role="toolbar">
|
||||
{ children }
|
||||
</div>}
|
||||
</RovingTabIndexProvider>;
|
||||
};
|
||||
|
||||
export default Toolbar;
|
|
@ -0,0 +1,32 @@
|
|||
/*
|
||||
Copyright 2020 The Matrix.org Foundation C.I.C.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
import React from "react";
|
||||
|
||||
import AccessibleButton from "../../components/views/elements/AccessibleButton";
|
||||
import {useRovingTabIndex} from "../RovingTabIndex";
|
||||
import {Ref} from "./types";
|
||||
|
||||
interface IProps extends Omit<React.ComponentProps<typeof AccessibleButton>, "onFocus" | "inputRef" | "tabIndex"> {
|
||||
inputRef?: Ref;
|
||||
}
|
||||
|
||||
// Wrapper to allow use of useRovingTabIndex for simple AccessibleButtons outside of React Functional Components.
|
||||
export const RovingAccessibleButton: React.FC<IProps> = ({inputRef, ...props}) => {
|
||||
const [onFocus, isActive, ref] = useRovingTabIndex(inputRef);
|
||||
return <AccessibleButton {...props} onFocus={onFocus} inputRef={ref} tabIndex={isActive ? 0 : -1} />;
|
||||
};
|
||||
|
|
@ -0,0 +1,32 @@
|
|||
/*
|
||||
Copyright 2020 The Matrix.org Foundation C.I.C.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
import React from "react";
|
||||
|
||||
import AccessibleTooltipButton from "../../components/views/elements/AccessibleTooltipButton";
|
||||
import {useRovingTabIndex} from "../RovingTabIndex";
|
||||
import {Ref} from "./types";
|
||||
|
||||
interface IProps extends Omit<React.ComponentProps<typeof AccessibleTooltipButton>, "onFocus" | "inputRef" | "tabIndex"> {
|
||||
inputRef?: Ref;
|
||||
}
|
||||
|
||||
// Wrapper to allow use of useRovingTabIndex for simple AccessibleTooltipButtons outside of React Functional Components.
|
||||
export const RovingAccessibleTooltipButton: React.FC<IProps> = ({inputRef, ...props}) => {
|
||||
const [onFocus, isActive, ref] = useRovingTabIndex(inputRef);
|
||||
return <AccessibleTooltipButton {...props} onFocus={onFocus} inputRef={ref} tabIndex={isActive ? 0 : -1} />;
|
||||
};
|
||||
|
|
@ -0,0 +1,36 @@
|
|||
/*
|
||||
Copyright 2020 The Matrix.org Foundation C.I.C.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
import React from "react";
|
||||
|
||||
import AccessibleButton from "../../components/views/elements/AccessibleButton";
|
||||
import {useRovingTabIndex} from "../RovingTabIndex";
|
||||
import {FocusHandler, Ref} from "./types";
|
||||
|
||||
interface IProps {
|
||||
inputRef?: Ref;
|
||||
children(renderProps: {
|
||||
onFocus: FocusHandler;
|
||||
isActive: boolean;
|
||||
ref: Ref;
|
||||
});
|
||||
}
|
||||
|
||||
// Wrapper to allow use of useRovingTabIndex outside of React Functional Components.
|
||||
export const RovingTabIndexWrapper: React.FC<IProps> = ({children, inputRef}) => {
|
||||
const [onFocus, isActive, ref] = useRovingTabIndex(inputRef);
|
||||
return children({onFocus, isActive, ref});
|
||||
};
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
Copyright 2019 The Matrix.org Foundation C.I.C.
|
||||
Copyright 2020 The Matrix.org Foundation C.I.C.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
|
@ -14,6 +14,8 @@ See the License for the specific language governing permissions and
|
|||
limitations under the License.
|
||||
*/
|
||||
|
||||
.mx_ReactionsRowButtonTooltip_reactedWith {
|
||||
opacity: 0.7;
|
||||
}
|
||||
import {RefObject} from "react";
|
||||
|
||||
export type Ref = RefObject<HTMLElement>;
|
||||
|
||||
export type FocusHandler = () => void;
|
|
@ -233,6 +233,9 @@ export class ContextMenu extends React.PureComponent<IProps, IState> {
|
|||
switch (ev.key) {
|
||||
case Key.TAB:
|
||||
case Key.ESCAPE:
|
||||
// close on left and right arrows too for when it is a context menu on a <Toolbar />
|
||||
case Key.ARROW_LEFT:
|
||||
case Key.ARROW_RIGHT:
|
||||
this.props.onFinished();
|
||||
break;
|
||||
case Key.ARROW_UP:
|
||||
|
|
|
@ -38,7 +38,7 @@ const HomePage = () => {
|
|||
}
|
||||
|
||||
const brandingConfig = config.branding;
|
||||
let logoUrl = "themes/riot/img/logos/riot-logo.svg";
|
||||
let logoUrl = "themes/element/img/logos/element-logo.svg";
|
||||
if (brandingConfig && brandingConfig.authHeaderLogoUrl) {
|
||||
logoUrl = brandingConfig.authHeaderLogoUrl;
|
||||
}
|
||||
|
@ -46,7 +46,7 @@ const HomePage = () => {
|
|||
const AccessibleButton = sdk.getComponent("elements.AccessibleButton");
|
||||
return <AutoHideScrollbar className="mx_HomePage mx_HomePage_default">
|
||||
<div className="mx_HomePage_default_wrapper">
|
||||
<img src={logoUrl} alt="Riot" />
|
||||
<img src={logoUrl} alt={config.brand || "Riot"} />
|
||||
<h1>{ _t("Welcome to %(appName)s", { appName: config.brand || "Riot" }) }</h1>
|
||||
<h4>{ _t("Liberate your communication") }</h4>
|
||||
<div className="mx_HomePage_default_buttons">
|
||||
|
|
|
@ -269,7 +269,7 @@ export default class LeftPanel2 extends React.Component<IProps, IState> {
|
|||
const firstRoom = this.listContainerRef.current.querySelector<HTMLDivElement>(".mx_RoomTile2");
|
||||
if (firstRoom) {
|
||||
firstRoom.click();
|
||||
this.onSearch(""); // clear the search field
|
||||
return true; // to get the field to clear
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
@ -675,12 +675,16 @@ export default class MatrixChat extends React.PureComponent<IProps, IState> {
|
|||
case 'hide_left_panel':
|
||||
this.setState({
|
||||
collapseLhs: true,
|
||||
}, () => {
|
||||
this.state.resizeNotifier.notifyLeftHandleResized();
|
||||
});
|
||||
break;
|
||||
case 'focus_room_filter': // for CtrlOrCmd+K to work by expanding the left panel first
|
||||
case 'show_left_panel':
|
||||
this.setState({
|
||||
collapseLhs: false,
|
||||
}, () => {
|
||||
this.state.resizeNotifier.notifyLeftHandleResized();
|
||||
});
|
||||
break;
|
||||
case 'panel_disable': {
|
||||
|
|
|
@ -28,8 +28,8 @@ import { Action } from "../../dispatcher/actions";
|
|||
interface IProps {
|
||||
onQueryUpdate: (newQuery: string) => void;
|
||||
isMinimized: boolean;
|
||||
onVerticalArrow(ev: React.KeyboardEvent);
|
||||
onEnter(ev: React.KeyboardEvent);
|
||||
onVerticalArrow(ev: React.KeyboardEvent): void;
|
||||
onEnter(ev: React.KeyboardEvent): boolean;
|
||||
}
|
||||
|
||||
interface IState {
|
||||
|
@ -107,7 +107,13 @@ export default class RoomSearch extends React.PureComponent<IProps, IState> {
|
|||
} else if (ev.key === Key.ARROW_UP || ev.key === Key.ARROW_DOWN) {
|
||||
this.props.onVerticalArrow(ev);
|
||||
} else if (ev.key === Key.ENTER) {
|
||||
this.props.onEnter(ev);
|
||||
const shouldClear = this.props.onEnter(ev);
|
||||
if (shouldClear) {
|
||||
// wrap in set immediate to delay it so that we don't clear the filter & then change room
|
||||
setImmediate(() => {
|
||||
this.clearInput();
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
@ -66,7 +66,7 @@ export default class DecoratedRoomAvatar extends React.PureComponent<IProps, ISt
|
|||
oobData={this.props.oobData}
|
||||
viewAvatarOnClick={this.props.viewAvatarOnClick}
|
||||
/>
|
||||
<RoomTileIcon room={this.props.room} tag={this.props.tag} />
|
||||
<RoomTileIcon room={this.props.room} />
|
||||
{badge}
|
||||
</div>;
|
||||
}
|
||||
|
|
|
@ -20,7 +20,6 @@ import PropTypes from 'prop-types';
|
|||
import { _t } from '../../../languageHandler';
|
||||
import dis from '../../../dispatcher/dispatcher';
|
||||
import TagOrderActions from '../../../actions/TagOrderActions';
|
||||
import * as sdk from '../../../index';
|
||||
import {MenuItem} from "../../structures/ContextMenu";
|
||||
import MatrixClientContext from "../../../contexts/MatrixClientContext";
|
||||
|
||||
|
|
|
@ -23,26 +23,26 @@ import DialogButtons from '../elements/DialogButtons';
|
|||
export enum RebrandDialogKind {
|
||||
NAG,
|
||||
ONE_TIME,
|
||||
};
|
||||
}
|
||||
|
||||
interface IProps {
|
||||
onFinished: (bool) => void;
|
||||
kind: RebrandDialogKind,
|
||||
targetUrl?: string,
|
||||
kind: RebrandDialogKind;
|
||||
targetUrl?: string;
|
||||
}
|
||||
|
||||
export default class RebrandDialog extends React.PureComponent<IProps> {
|
||||
private onDoneClick = () => {
|
||||
this.props.onFinished(true);
|
||||
}
|
||||
};
|
||||
|
||||
private onGoToElementClick = () => {
|
||||
this.props.onFinished(true);
|
||||
}
|
||||
};
|
||||
|
||||
private onRemindMeLaterClick = () => {
|
||||
this.props.onFinished(false);
|
||||
}
|
||||
};
|
||||
|
||||
private getPrettyTargetUrl() {
|
||||
const u = new URL(this.props.targetUrl);
|
||||
|
@ -79,14 +79,14 @@ export default class RebrandDialog extends React.PureComponent<IProps> {
|
|||
cancelButton={"Remind me later"}
|
||||
onCancel={this.onRemindMeLaterClick}
|
||||
focus={true}
|
||||
/>
|
||||
/>;
|
||||
} else {
|
||||
return <DialogButtons primaryButton={_t("Done")}
|
||||
primaryButtonClass='primary'
|
||||
hasCancel={false}
|
||||
onPrimaryButtonClick={this.onDoneClick}
|
||||
focus={true}
|
||||
/>
|
||||
/>;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -16,7 +16,7 @@ limitations under the License.
|
|||
*/
|
||||
|
||||
import React from 'react';
|
||||
import classnames from 'classnames';
|
||||
import classNames from 'classnames';
|
||||
|
||||
import AccessibleButton from "./AccessibleButton";
|
||||
import {IProps} from "./AccessibleButton";
|
||||
|
@ -24,6 +24,7 @@ import Tooltip from './Tooltip';
|
|||
|
||||
interface ITooltipProps extends IProps {
|
||||
title: string;
|
||||
tooltip?: React.ReactNode;
|
||||
tooltipClassName?: string;
|
||||
}
|
||||
|
||||
|
@ -52,16 +53,12 @@ export default class AccessibleTooltipButton extends React.PureComponent<IToolti
|
|||
};
|
||||
|
||||
render() {
|
||||
const {title, children, ...props} = this.props;
|
||||
const tooltipClassName = classnames(
|
||||
"mx_AccessibleTooltipButton_tooltip",
|
||||
this.props.tooltipClassName,
|
||||
);
|
||||
const {title, tooltip, children, tooltipClassName, ...props} = this.props;
|
||||
|
||||
const tip = this.state.hover ? <Tooltip
|
||||
className="mx_AccessibleTooltipButton_container"
|
||||
tooltipClassName={tooltipClassName}
|
||||
label={title}
|
||||
tooltipClassName={classNames("mx_AccessibleTooltipButton_tooltip", tooltipClassName)}
|
||||
label={tooltip || title}
|
||||
/> : <div />;
|
||||
return (
|
||||
<AccessibleButton {...props} onMouseOver={this.onMouseOver} onMouseOut={this.onMouseOut} aria-label={title}>
|
||||
|
|
|
@ -25,9 +25,12 @@ import dis from '../../../dispatcher/dispatcher';
|
|||
import {aboveLeftOf, ContextMenu, ContextMenuButton, useContextMenu} from '../../structures/ContextMenu';
|
||||
import { isContentActionable, canEditContent } from '../../../utils/EventUtils';
|
||||
import RoomContext from "../../../contexts/RoomContext";
|
||||
import Toolbar from "../../../accessibility/Toolbar";
|
||||
import {RovingAccessibleButton, useRovingTabIndex} from "../../../accessibility/RovingTabIndex";
|
||||
|
||||
const OptionsButton = ({mxEvent, getTile, getReplyThread, permalinkCreator, onFocusChange}) => {
|
||||
const [menuDisplayed, button, openMenu, closeMenu] = useContextMenu();
|
||||
const [onFocus, isActive, ref] = useRovingTabIndex(button);
|
||||
useEffect(() => {
|
||||
onFocusChange(menuDisplayed);
|
||||
}, [onFocusChange, menuDisplayed]);
|
||||
|
@ -57,7 +60,9 @@ const OptionsButton = ({mxEvent, getTile, getReplyThread, permalinkCreator, onFo
|
|||
label={_t("Options")}
|
||||
onClick={openMenu}
|
||||
isExpanded={menuDisplayed}
|
||||
inputRef={button}
|
||||
inputRef={ref}
|
||||
onFocus={onFocus}
|
||||
tabIndex={isActive ? 0 : -1}
|
||||
/>
|
||||
|
||||
{ contextMenu }
|
||||
|
@ -66,6 +71,7 @@ const OptionsButton = ({mxEvent, getTile, getReplyThread, permalinkCreator, onFo
|
|||
|
||||
const ReactButton = ({mxEvent, reactions, onFocusChange}) => {
|
||||
const [menuDisplayed, button, openMenu, closeMenu] = useContextMenu();
|
||||
const [onFocus, isActive, ref] = useRovingTabIndex(button);
|
||||
useEffect(() => {
|
||||
onFocusChange(menuDisplayed);
|
||||
}, [onFocusChange, menuDisplayed]);
|
||||
|
@ -85,7 +91,9 @@ const ReactButton = ({mxEvent, reactions, onFocusChange}) => {
|
|||
label={_t("React")}
|
||||
onClick={openMenu}
|
||||
isExpanded={menuDisplayed}
|
||||
inputRef={button}
|
||||
inputRef={ref}
|
||||
onFocus={onFocus}
|
||||
tabIndex={isActive ? 0 : -1}
|
||||
/>
|
||||
|
||||
{ contextMenu }
|
||||
|
@ -148,8 +156,6 @@ export default class MessageActionBar extends React.PureComponent {
|
|||
};
|
||||
|
||||
render() {
|
||||
const AccessibleButton = sdk.getComponent('elements.AccessibleButton');
|
||||
|
||||
let reactButton;
|
||||
let replyButton;
|
||||
let editButton;
|
||||
|
@ -161,7 +167,7 @@ export default class MessageActionBar extends React.PureComponent {
|
|||
);
|
||||
}
|
||||
if (this.context.canReply) {
|
||||
replyButton = <AccessibleButton
|
||||
replyButton = <RovingAccessibleButton
|
||||
className="mx_MessageActionBar_maskButton mx_MessageActionBar_replyButton"
|
||||
title={_t("Reply")}
|
||||
onClick={this.onReplyClick}
|
||||
|
@ -169,7 +175,7 @@ export default class MessageActionBar extends React.PureComponent {
|
|||
}
|
||||
}
|
||||
if (canEditContent(this.props.mxEvent)) {
|
||||
editButton = <AccessibleButton
|
||||
editButton = <RovingAccessibleButton
|
||||
className="mx_MessageActionBar_maskButton mx_MessageActionBar_editButton"
|
||||
title={_t("Edit")}
|
||||
onClick={this.onEditClick}
|
||||
|
@ -177,7 +183,7 @@ export default class MessageActionBar extends React.PureComponent {
|
|||
}
|
||||
|
||||
// aria-live=off to not have this read out automatically as navigating around timeline, gets repetitive.
|
||||
return <div className="mx_MessageActionBar" role="toolbar" aria-label={_t("Message Actions")} aria-live="off">
|
||||
return <Toolbar className="mx_MessageActionBar" aria-label={_t("Message Actions")} aria-live="off">
|
||||
{reactButton}
|
||||
{replyButton}
|
||||
{editButton}
|
||||
|
@ -188,6 +194,6 @@ export default class MessageActionBar extends React.PureComponent {
|
|||
permalinkCreator={this.props.permalinkCreator}
|
||||
onFocusChange={this.onFocusChange}
|
||||
/>
|
||||
</div>;
|
||||
</Toolbar>;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -55,7 +55,7 @@ export default class ReactionsRowButtonTooltip extends React.PureComponent {
|
|||
},
|
||||
{
|
||||
reactors: () => {
|
||||
return <div className="mx_ReactionsRowButtonTooltip_senders">
|
||||
return <div className="mx_Tooltip_title">
|
||||
{formatCommaSeparatedList(senders, 6)}
|
||||
</div>;
|
||||
},
|
||||
|
@ -63,7 +63,7 @@ export default class ReactionsRowButtonTooltip extends React.PureComponent {
|
|||
if (!shortName) {
|
||||
return null;
|
||||
}
|
||||
return <div className="mx_ReactionsRowButtonTooltip_reactedWith">
|
||||
return <div className="mx_Tooltip_sub">
|
||||
{sub}
|
||||
</div>;
|
||||
},
|
||||
|
|
|
@ -376,11 +376,21 @@ export default createReactClass({
|
|||
const date = this.props.mxEvent.replacingEventDate();
|
||||
const dateString = date && formatDate(date);
|
||||
|
||||
const tooltip = <div>
|
||||
<div className="mx_Tooltip_title">
|
||||
{_t("Edited at %(date)s", {date: dateString})}
|
||||
</div>
|
||||
<div className="mx_Tooltip_sub">
|
||||
{_t("Click to view edits")}
|
||||
</div>
|
||||
</div>;
|
||||
|
||||
return (
|
||||
<AccessibleTooltipButton
|
||||
className="mx_EventTile_edited"
|
||||
onClick={this._openHistoryDialog}
|
||||
title={_t("Edited at %(date)s. Click to view edits.", {date: dateString})}
|
||||
tooltip={tooltip}
|
||||
tooltipClassName="mx_Tooltip_timeline"
|
||||
>
|
||||
<span>{`(${_t("edited")})`}</span>
|
||||
|
|
|
@ -333,7 +333,7 @@ export default createReactClass({
|
|||
return;
|
||||
}
|
||||
|
||||
const eventSenderTrust = this.context.checkDeviceTrust(
|
||||
const eventSenderTrust = encryptionInfo.sender && this.context.checkDeviceTrust(
|
||||
senderId, encryptionInfo.sender.deviceId,
|
||||
);
|
||||
if (!eventSenderTrust) {
|
||||
|
|
|
@ -25,7 +25,8 @@ import { UPDATE_EVENT } from "../../../stores/AsyncStore";
|
|||
import { CSSTransition } from "react-transition-group";
|
||||
import RoomListStore from "../../../stores/room-list/RoomListStore2";
|
||||
import { DefaultTagID } from "../../../stores/room-list/models";
|
||||
import AccessibleTooltipButton from "../elements/AccessibleTooltipButton";
|
||||
import { RovingAccessibleTooltipButton } from "../../../accessibility/RovingTabIndex";
|
||||
import Toolbar from "../../../accessibility/Toolbar";
|
||||
|
||||
// TODO: Rename on launch: https://github.com/vector-im/riot-web/issues/14367
|
||||
|
||||
|
@ -86,7 +87,7 @@ export default class RoomBreadcrumbs2 extends React.PureComponent<IProps, IState
|
|||
const roomTags = RoomListStore.instance.getTagsForRoom(r);
|
||||
const roomTag = roomTags.includes(DefaultTagID.DM) ? DefaultTagID.DM : roomTags[0];
|
||||
return (
|
||||
<AccessibleTooltipButton
|
||||
<RovingAccessibleTooltipButton
|
||||
className="mx_RoomBreadcrumbs2_crumb"
|
||||
key={r.roomId}
|
||||
onClick={() => this.viewRoom(r, i)}
|
||||
|
@ -101,7 +102,7 @@ export default class RoomBreadcrumbs2 extends React.PureComponent<IProps, IState
|
|||
displayBadge={true}
|
||||
forceCount={true}
|
||||
/>
|
||||
</AccessibleTooltipButton>
|
||||
</RovingAccessibleTooltipButton>
|
||||
);
|
||||
});
|
||||
|
||||
|
@ -112,9 +113,9 @@ export default class RoomBreadcrumbs2 extends React.PureComponent<IProps, IState
|
|||
appear={true} in={this.state.doAnimation} timeout={640}
|
||||
classNames='mx_RoomBreadcrumbs2'
|
||||
>
|
||||
<div className='mx_RoomBreadcrumbs2'>
|
||||
<Toolbar className='mx_RoomBreadcrumbs2'>
|
||||
{tiles.slice(this.state.skipFirst ? 1 : 0)}
|
||||
</div>
|
||||
</Toolbar>
|
||||
</CSSTransition>
|
||||
);
|
||||
} else {
|
||||
|
|
|
@ -31,7 +31,6 @@ import ManageIntegsButton from '../elements/ManageIntegsButton';
|
|||
import {CancelButton} from './SimpleRoomHeader';
|
||||
import SettingsStore from "../../../settings/SettingsStore";
|
||||
import RoomHeaderButtons from '../right_panel/RoomHeaderButtons';
|
||||
import DMRoomMap from '../../../utils/DMRoomMap';
|
||||
import E2EIcon from './E2EIcon';
|
||||
import DecoratedRoomAvatar from "../avatars/DecoratedRoomAvatar";
|
||||
import {DefaultTagID} from "../../../stores/room-list/models";
|
||||
|
@ -158,10 +157,6 @@ export default createReactClass({
|
|||
let settingsButton = null;
|
||||
let pinnedEventsButton = null;
|
||||
|
||||
const dmUserId = DMRoomMap.shared().getUserIdForRoomId(this.props.room.roomId);
|
||||
const joinRules = this.props.room && this.props.room.currentState.getStateEvents("m.room.join_rules", "");
|
||||
const joinRule = joinRules && joinRules.getContent().join_rule;
|
||||
|
||||
if (this.props.onCancelClick) {
|
||||
cancelButton = <CancelButton onClick={this.props.onCancelClick} />;
|
||||
}
|
||||
|
|
|
@ -444,24 +444,20 @@ export default class RoomSublist2 extends React.Component<IProps, IState> {
|
|||
<React.Fragment>
|
||||
<hr />
|
||||
<div>
|
||||
<div className='mx_RoomSublist2_contextMenu_title'>{_t("Unread rooms")}</div>
|
||||
<div className='mx_RoomSublist2_contextMenu_title'>{_t("Appearance")}</div>
|
||||
<StyledMenuItemCheckbox
|
||||
onClose={this.onCloseMenu}
|
||||
onChange={this.onUnreadFirstChanged}
|
||||
checked={isUnreadFirst}
|
||||
>
|
||||
{_t("Always show first")}
|
||||
{_t("Show rooms with unread messages first")}
|
||||
</StyledMenuItemCheckbox>
|
||||
</div>
|
||||
<hr />
|
||||
<div>
|
||||
<div className='mx_RoomSublist2_contextMenu_title'>{_t("Show")}</div>
|
||||
<StyledMenuItemCheckbox
|
||||
onClose={this.onCloseMenu}
|
||||
onChange={this.onMessagePreviewChanged}
|
||||
checked={this.layout.showPreviews}
|
||||
>
|
||||
{_t("Message preview")}
|
||||
{_t("Show previews of messages")}
|
||||
</StyledMenuItemCheckbox>
|
||||
</div>
|
||||
</React.Fragment>
|
||||
|
|
|
@ -22,6 +22,8 @@ import { MatrixEvent } from "matrix-js-sdk/src/models/event";
|
|||
import DMRoomMap from "../../../utils/DMRoomMap";
|
||||
import { MatrixClientPeg } from "../../../MatrixClientPeg";
|
||||
import { isPresenceEnabled } from "../../../utils/presence";
|
||||
import { _t } from "../../../languageHandler";
|
||||
import TextWithTooltip from "../elements/TextWithTooltip";
|
||||
|
||||
enum Icon {
|
||||
// Note: the names here are used in CSS class names
|
||||
|
@ -32,9 +34,21 @@ enum Icon {
|
|||
PresenceOffline = "OFFLINE",
|
||||
}
|
||||
|
||||
function tooltipText(variant: Icon) {
|
||||
switch (variant) {
|
||||
case Icon.Globe:
|
||||
return _t("This room is public");
|
||||
case Icon.PresenceOnline:
|
||||
return _t("Online");
|
||||
case Icon.PresenceAway:
|
||||
return _t("Away");
|
||||
case Icon.PresenceOffline:
|
||||
return _t("Offline");
|
||||
}
|
||||
}
|
||||
|
||||
interface IProps {
|
||||
room: Room;
|
||||
tag: TagID;
|
||||
}
|
||||
|
||||
interface IState {
|
||||
|
@ -122,10 +136,11 @@ export default class RoomTileIcon extends React.Component<IProps, IState> {
|
|||
private calculateIcon(): Icon {
|
||||
let icon = Icon.None;
|
||||
|
||||
if (this.props.tag === DefaultTagID.DM && this.props.room.getJoinedMemberCount() === 2) {
|
||||
// We look at the DMRoomMap and not the tag here so that we don't exclude DMs in Favourites
|
||||
const otherUserId = DMRoomMap.shared().getUserIdForRoomId(this.props.room.roomId);
|
||||
if (otherUserId && this.props.room.getJoinedMemberCount() === 2) {
|
||||
// Track presence, if available
|
||||
if (isPresenceEnabled()) {
|
||||
const otherUserId = DMRoomMap.shared().getUserIdForRoomId(this.props.room.roomId);
|
||||
if (otherUserId) {
|
||||
this.dmUser = MatrixClientPeg.get().getUser(otherUserId);
|
||||
icon = this.getPresenceIcon();
|
||||
|
@ -145,6 +160,10 @@ export default class RoomTileIcon extends React.Component<IProps, IState> {
|
|||
public render(): React.ReactElement {
|
||||
if (this.state.icon === Icon.None) return null;
|
||||
|
||||
return <span className={`mx_RoomTileIcon mx_RoomTileIcon_${this.state.icon.toLowerCase()}`} />;
|
||||
return <TextWithTooltip
|
||||
tooltip={tooltipText(this.state.icon)}
|
||||
tooltipClass="mx_Tooltip_timeline"
|
||||
class={`mx_RoomTileIcon mx_RoomTileIcon_${this.state.icon.toLowerCase()}`}
|
||||
/>;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -120,7 +120,7 @@ export default class HelpUserSettingsTab extends React.Component {
|
|||
<span className='mx_SettingsTab_subheading'>{_t("Credits")}</span>
|
||||
<ul>
|
||||
<li>
|
||||
The <a href="themes/riot/img/backgrounds/lake.jpg" rel="noreferrer noopener" target="_blank">
|
||||
The <a href="themes/element/img/backgrounds/lake.jpg" rel="noreferrer noopener" target="_blank">
|
||||
default cover photo</a> is ©
|
||||
<a href="https://www.flickr.com/golan" rel="noreferrer noopener" target="_blank">Jesús Roncero</a>{' '}
|
||||
used under the terms of
|
||||
|
@ -158,7 +158,7 @@ export default class HelpUserSettingsTab extends React.Component {
|
|||
},
|
||||
{
|
||||
'a': (sub) => <a
|
||||
href="https://about.riot.im/need-help/"
|
||||
href="https://element.io/help"
|
||||
rel="noreferrer noopener"
|
||||
target="_blank"
|
||||
>
|
||||
|
@ -177,7 +177,7 @@ export default class HelpUserSettingsTab extends React.Component {
|
|||
},
|
||||
{
|
||||
'a': (sub) => <a
|
||||
href="https://about.riot.im/need-help/"
|
||||
href="https://element.io/help"
|
||||
rel='noreferrer noopener'
|
||||
target='_blank'
|
||||
>
|
||||
|
|
|
@ -1210,10 +1210,9 @@
|
|||
"Securely back up your keys to avoid losing them. <a>Learn more.</a>": "Securely back up your keys to avoid losing them. <a>Learn more.</a>",
|
||||
"Not now": "Not now",
|
||||
"Don't ask me again": "Don't ask me again",
|
||||
"Unread rooms": "Unread rooms",
|
||||
"Always show first": "Always show first",
|
||||
"Show": "Show",
|
||||
"Message preview": "Message preview",
|
||||
"Appearance": "Appearance",
|
||||
"Show rooms with unread messages first": "Show rooms with unread messages first",
|
||||
"Show previews of messages": "Show previews of messages",
|
||||
"Sort by": "Sort by",
|
||||
"Activity": "Activity",
|
||||
"A-Z": "A-Z",
|
||||
|
@ -1239,6 +1238,8 @@
|
|||
"Leave Room": "Leave Room",
|
||||
"Forget Room": "Forget Room",
|
||||
"Room options": "Room options",
|
||||
"This room is public": "This room is public",
|
||||
"Away": "Away",
|
||||
"Add a topic": "Add a topic",
|
||||
"Upgrading this room will shut down the current instance of the room and create an upgraded room with the same name.": "Upgrading this room will shut down the current instance of the room and create an upgraded room with the same name.",
|
||||
"This room has already been upgraded.": "This room has already been upgraded.",
|
||||
|
@ -1454,6 +1455,8 @@
|
|||
"Failed to copy": "Failed to copy",
|
||||
"Add an Integration": "Add an Integration",
|
||||
"You are about to be taken to a third-party site so you can authenticate your account for use with %(integrationsUrl)s. Do you wish to continue?": "You are about to be taken to a third-party site so you can authenticate your account for use with %(integrationsUrl)s. Do you wish to continue?",
|
||||
"Edited at %(date)s": "Edited at %(date)s",
|
||||
"Click to view edits": "Click to view edits",
|
||||
"Edited at %(date)s. Click to view edits.": "Edited at %(date)s. Click to view edits.",
|
||||
"edited": "edited",
|
||||
"Can't load this message": "Can't load this message",
|
||||
|
@ -1853,7 +1856,6 @@
|
|||
"Upload %(count)s other files|one": "Upload %(count)s other file",
|
||||
"Cancel All": "Cancel All",
|
||||
"Upload Error": "Upload Error",
|
||||
"Appearance": "Appearance",
|
||||
"Verify other session": "Verify other session",
|
||||
"Verification Request": "Verification Request",
|
||||
"A widget would like to verify your identity": "A widget would like to verify your identity",
|
||||
|
|
|
@ -33,7 +33,6 @@ import { isNullOrUndefined } from "matrix-js-sdk/src/utils";
|
|||
import RoomListLayoutStore from "./RoomListLayoutStore";
|
||||
import { MarkedExecution } from "../../utils/MarkedExecution";
|
||||
import { AsyncStoreWithClient } from "../AsyncStoreWithClient";
|
||||
import { MatrixClientPeg } from "../../MatrixClientPeg";
|
||||
|
||||
interface IState {
|
||||
tagsEnabled?: boolean;
|
||||
|
|
|
@ -158,6 +158,7 @@ export class Algorithm extends EventEmitter {
|
|||
filterCondition.off(FILTER_CHANGED, this.handleFilterChange.bind(this));
|
||||
if (this.allowedByFilter.has(filterCondition)) {
|
||||
this.allowedByFilter.delete(filterCondition);
|
||||
this.recalculateFilteredRooms();
|
||||
|
||||
// If we removed the last filter, tell consumers that we've "updated" our filtered
|
||||
// view. This will trick them into getting the complete room list.
|
||||
|
|
|
@ -21,6 +21,7 @@ import { EventEmitter } from "events";
|
|||
import GroupStore from "../../GroupStore";
|
||||
import { arrayHasDiff } from "../../../utils/arrays";
|
||||
import { IDestroyable } from "../../../utils/IDestroyable";
|
||||
import DMRoomMap from "../../../utils/DMRoomMap";
|
||||
|
||||
/**
|
||||
* A filter condition for the room list which reveals rooms which
|
||||
|
@ -28,6 +29,7 @@ import { IDestroyable } from "../../../utils/IDestroyable";
|
|||
*/
|
||||
export class CommunityFilterCondition extends EventEmitter implements IFilterCondition, IDestroyable {
|
||||
private roomIds: string[] = [];
|
||||
private userIds: string[] = [];
|
||||
|
||||
constructor(private community: Group) {
|
||||
super();
|
||||
|
@ -43,15 +45,19 @@ export class CommunityFilterCondition extends EventEmitter implements IFilterCon
|
|||
}
|
||||
|
||||
public isVisible(room: Room): boolean {
|
||||
return this.roomIds.includes(room.roomId);
|
||||
return this.roomIds.includes(room.roomId) ||
|
||||
this.userIds.includes(DMRoomMap.shared().getUserIdForRoomId(room.roomId));
|
||||
}
|
||||
|
||||
private onStoreUpdate = async (): Promise<any> => {
|
||||
// We don't actually know if the room list changed for the community, so just
|
||||
// check it again.
|
||||
// We don't actually know if the room list changed for the community, so just check it again.
|
||||
const beforeRoomIds = this.roomIds;
|
||||
this.roomIds = (await GroupStore.getGroupRooms(this.community.groupId)).map(r => r.roomId);
|
||||
if (arrayHasDiff(beforeRoomIds, this.roomIds)) {
|
||||
|
||||
const beforeUserIds = this.userIds;
|
||||
this.userIds = (await GroupStore.getGroupMembers(this.community.groupId)).map(u => u.userId);
|
||||
|
||||
if (arrayHasDiff(beforeRoomIds, this.roomIds) || arrayHasDiff(beforeUserIds, this.userIds)) {
|
||||
this.emit(FILTER_CHANGED);
|
||||
}
|
||||
};
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
"disable_guests": false,
|
||||
"disable_login_language_selector": false,
|
||||
"disable_3pid_login": false,
|
||||
"brand": "Riot",
|
||||
"brand": "Element",
|
||||
"integrations_ui_url": "https://scalar.vector.im/",
|
||||
"integrations_rest_url": "https://scalar.vector.im/api",
|
||||
"bug_report_endpoint_url": "https://riot.im/bugreports/submit",
|
||||
|
|
|
@ -24,8 +24,14 @@ module.exports = async function toastScenarios(alice, bob) {
|
|||
await rejectToast(alice, "Notifications");
|
||||
alice.log.done();
|
||||
|
||||
alice.log.step(`accepts rebrand toast`);
|
||||
await acceptToast(alice, "Riot is now Element!");
|
||||
let doneButton = await alice.query('.mx_Dialog_primary');
|
||||
await doneButton.click(); // also accept the resulting dialog
|
||||
alice.log.done();
|
||||
|
||||
alice.log.step(`accepts analytics toast`);
|
||||
await acceptToast(alice, "Help us improve Riot");
|
||||
await acceptToast(alice, "Help us improve Element");
|
||||
alice.log.done();
|
||||
|
||||
alice.log.step(`checks no remaining toasts`);
|
||||
|
@ -38,8 +44,14 @@ module.exports = async function toastScenarios(alice, bob) {
|
|||
await rejectToast(bob, "Notifications");
|
||||
bob.log.done();
|
||||
|
||||
bob.log.step(`accepts rebrand toast`);
|
||||
await acceptToast(bob, "Riot is now Element!");
|
||||
doneButton = await bob.query('.mx_Dialog_primary');
|
||||
await doneButton.click(); // also accept the resulting dialog
|
||||
bob.log.done();
|
||||
|
||||
bob.log.step(`reject analytics toast`);
|
||||
await rejectToast(bob, "Help us improve Riot");
|
||||
await rejectToast(bob, "Help us improve Element");
|
||||
bob.log.done();
|
||||
|
||||
bob.log.step(`checks no remaining toasts`);
|
||||
|
|