Merge branch 'develop' of github.com:vector-im/element-web into langleyd/shared-components-date-seperator

This commit is contained in:
David Langley 2025-11-04 17:45:02 +00:00
commit a69cb283bf
12 changed files with 845 additions and 80 deletions

View File

@ -26,6 +26,10 @@ jobs:
- name: Update npm
run: npm install -g npm@latest
# Need to setup element web too as it needs the translations
- name: 🛠️ Setup EW
run: yarn install --pure-lockfile
- name: 🛠️ Setup
# When running `install` it also calls the `prepare` step which generates
# a build
@ -33,4 +37,4 @@ jobs:
- name: 🚀 Publish to npm
working-directory: packages/shared-components
run: npm publish --access public --provenance
run: npm publish --access public --tag test --provenance

View File

@ -1,3 +1,27 @@
Changes in [1.12.3](https://github.com/element-hq/element-web/releases/tag/v1.12.3) (2025-11-04)
================================================================================================
## 🦖 Deprecations
* Remove allowVoipWithNoMedia feature flag ([#31087](https://github.com/element-hq/element-web/pull/31087)). Contributed by @Half-Shot.
## ✨ Features
* Change module API to be an instance getter ([#31025](https://github.com/element-hq/element-web/pull/31025)). Contributed by @dbkr.
## 🐛 Bug Fixes
* Show hover elements when keyboard focus is within an event tile ([#31078](https://github.com/element-hq/element-web/pull/31078)). Contributed by @t3chguy.
* Ensure toolbar navigation pattern works in MessageActionBar ([#31080](https://github.com/element-hq/element-web/pull/31080)). Contributed by @t3chguy.
* Ensure sent markers are hidden when showing thread summary. ([#31076](https://github.com/element-hq/element-web/pull/31076)). Contributed by @Half-Shot.
* Fix translation in dev mode ([#31045](https://github.com/element-hq/element-web/pull/31045)). Contributed by @florianduros.
* Fix sort order in space hierarchy ([#30975](https://github.com/element-hq/element-web/pull/30975)). Contributed by @t3chguy.
* New Room list: don't display message preview of thread ([#31043](https://github.com/element-hq/element-web/pull/31043)). Contributed by @florianduros.
* Revert "A11y: move focus to right panel when opened" ([#30999](https://github.com/element-hq/element-web/pull/30999)). Contributed by @florianduros.
* Fix highlights in messages (or search results) breaking links ([#30264](https://github.com/element-hq/element-web/pull/30264)). Contributed by @bojidar-bg.
* Add prepare script ([#31030](https://github.com/element-hq/element-web/pull/31030)). Contributed by @dbkr.
* Fix html exports by adding SDKContext ([#30987](https://github.com/element-hq/element-web/pull/30987)). Contributed by @t3chguy.
Changes in [1.12.2](https://github.com/element-hq/element-web/releases/tag/v1.12.2) (2025-10-21)
================================================================================================
## ✨ Features

View File

@ -1,6 +1,6 @@
{
"name": "element-web",
"version": "1.12.2",
"version": "1.12.3",
"description": "Element: the future of secure communication",
"author": "New Vector Ltd.",
"repository": {

View File

@ -43,7 +43,7 @@
"lint:types": "tsc --noEmit --jsx react",
"test:storybook": "test-storybook --url http://localhost:6007/",
"test:storybook:ci": "concurrently -k -s first -n \"SB,TEST\" \"yarn storybook --no-open\" \"wait-on tcp:6007 && yarn test-storybook --url http://localhost:6007/ --ci --maxWorkers=2\"",
"test:storybook:update": "playwright-screenshots --entrypoint yarn --with-node-modules && playwright-screenshots --entrypoint /work/node_modules/.bin/test-storybook --with-node-modules --url http://host.docker.internal:6007/ --updateSnapshot"
"test:storybook:update": "playwright-screenshots --entrypoint /work/node_modules/.bin/test-storybook --with-node-modules --url http://host.docker.internal:6007/ --updateSnapshot"
},
"dependencies": {
"classnames": "^2.5.1",
@ -55,6 +55,8 @@
"temporal-polyfill": "^0.3.0"
},
"devDependencies": {
"@element-hq/element-web-playwright-common": "^2.0.0",
"@playwright/test": "^1.50.1",
"@storybook/addon-a11y": "^9.1.10",
"@storybook/addon-designs": "^10.0.2",
"@storybook/addon-docs": "^9.1.10",

File diff suppressed because it is too large Load Diff

View File

@ -7,7 +7,7 @@ Please see LICENSE files in the repository root for full details.
import { SynapseContainer as BaseSynapseContainer } from "@element-hq/element-web-playwright-common/lib/testcontainers";
const TAG = "develop@sha256:4c89333b1d25401ea72e4042f4f651a34e455370541284ff3e417f84e926edd9";
const TAG = "develop@sha256:450b176d61e75b73d1acbbfab1de5ec3ebe08ba0f08ec00da872f7b5aaa23e54";
/**
* SynapseContainer which freezes the docker digest to stabilise tests,

View File

@ -8,13 +8,18 @@ Please see LICENSE files in the repository root for full details.
.mx_MPollBody {
margin-top: 8px;
min-width: 0; /* Override fieldset default min-width: min-content */
width: 100%; /* Ensure fieldset takes full available width */
border: none; /* Remove default fieldset border */
padding: 0; /* Remove default fieldset padding */
h2 {
legend {
font-weight: var(--cpd-font-weight-semibold);
font-size: $font-15px;
line-height: $font-24px;
margin-top: 0;
margin-bottom: 8px;
letter-spacing: var(--cpd-font-letter-spacing-heading-lg);
.mx_MPollBody_edited {
color: $roomtopic-color;
@ -23,7 +28,7 @@ Please see LICENSE files in the repository root for full details.
}
}
h2::before {
legend::before {
content: "";
position: relative;
display: inline-block;

View File

@ -325,11 +325,11 @@ export default class MPollBody extends React.Component<IBodyProps, IState> {
) : null;
return (
<div className="mx_MPollBody">
<h2 data-testid="pollQuestion">
<fieldset className="mx_MPollBody">
<legend data-testid="pollQuestion">
{pollEvent.question.text}
{editedSpan}
</h2>
</legend>
<div className="mx_MPollBody_allOptions">
{pollEvent.answers.map((answer: PollAnswerSubevent) => {
let answerVotes = 0;
@ -360,7 +360,7 @@ export default class MPollBody extends React.Component<IBodyProps, IState> {
{totalText}
{isFetchingResponses && <Spinner w={16} h={16} />}
</div>
</div>
</fieldset>
);
}
}

View File

@ -1,15 +1,15 @@
// Jest Snapshot v1, https://jestjs.io/docs/snapshot-testing
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`MPollBody renders a finished poll 1`] = `
<div>
<div
<fieldset
class="mx_MPollBody"
>
<h2
<legend
data-testid="pollQuestion"
>
What should we order for the party?
</h2>
</legend>
<div
class="mx_MPollBody_allOptions"
>
@ -151,20 +151,20 @@ exports[`MPollBody renders a finished poll 1`] = `
>
Final result based on 3 votes
</div>
</div>
</fieldset>
</div>
`;
exports[`MPollBody renders a finished poll with multiple winners 1`] = `
<div>
<div
<fieldset
class="mx_MPollBody"
>
<h2
<legend
data-testid="pollQuestion"
>
What should we order for the party?
</h2>
</legend>
<div
class="mx_MPollBody_allOptions"
>
@ -309,20 +309,20 @@ exports[`MPollBody renders a finished poll with multiple winners 1`] = `
>
Final result based on 4 votes
</div>
</div>
</fieldset>
</div>
`;
exports[`MPollBody renders a finished poll with no votes 1`] = `
<div>
<div
<fieldset
class="mx_MPollBody"
>
<h2
<legend
data-testid="pollQuestion"
>
What should we order for the party?
</h2>
</legend>
<div
class="mx_MPollBody_allOptions"
>
@ -461,20 +461,20 @@ exports[`MPollBody renders a finished poll with no votes 1`] = `
>
Final result based on 0 votes
</div>
</div>
</fieldset>
</div>
`;
exports[`MPollBody renders a poll that I have not voted in 1`] = `
<div>
<div
<fieldset
class="mx_MPollBody"
>
<h2
<legend
data-testid="pollQuestion"
>
What should we order for the party?
</h2>
</legend>
<div
class="mx_MPollBody_allOptions"
>
@ -661,20 +661,20 @@ exports[`MPollBody renders a poll that I have not voted in 1`] = `
>
3 votes cast. Vote to see the results
</div>
</div>
</fieldset>
</div>
`;
exports[`MPollBody renders a poll with local, non-local and invalid votes 1`] = `
<div>
<div
<fieldset
class="mx_MPollBody"
>
<h2
<legend
data-testid="pollQuestion"
>
What should we order for the party?
</h2>
</legend>
<div
class="mx_MPollBody_allOptions"
>
@ -869,20 +869,20 @@ exports[`MPollBody renders a poll with local, non-local and invalid votes 1`] =
>
Based on 5 votes
</div>
</div>
</fieldset>
</div>
`;
exports[`MPollBody renders a poll with no votes 1`] = `
<div>
<div
<fieldset
class="mx_MPollBody"
>
<h2
<legend
data-testid="pollQuestion"
>
What should we order for the party?
</h2>
</legend>
<div
class="mx_MPollBody_allOptions"
>
@ -1069,20 +1069,20 @@ exports[`MPollBody renders a poll with no votes 1`] = `
>
No votes cast
</div>
</div>
</fieldset>
</div>
`;
exports[`MPollBody renders a poll with only non-local votes 1`] = `
<div>
<div
<fieldset
class="mx_MPollBody"
>
<h2
<legend
data-testid="pollQuestion"
>
What should we order for the party?
</h2>
</legend>
<div
class="mx_MPollBody_allOptions"
>
@ -1277,20 +1277,20 @@ exports[`MPollBody renders a poll with only non-local votes 1`] = `
>
Based on 3 votes
</div>
</div>
</fieldset>
</div>
`;
exports[`MPollBody renders an undisclosed, finished poll 1`] = `
<div>
<div
<fieldset
class="mx_MPollBody"
>
<h2
<legend
data-testid="pollQuestion"
>
What should we order for the party?
</h2>
</legend>
<div
class="mx_MPollBody_allOptions"
>
@ -1435,20 +1435,20 @@ exports[`MPollBody renders an undisclosed, finished poll 1`] = `
>
Final result based on 4 votes
</div>
</div>
</fieldset>
</div>
`;
exports[`MPollBody renders an undisclosed, unfinished poll 1`] = `
<div>
<div
<fieldset
class="mx_MPollBody"
>
<h2
<legend
data-testid="pollQuestion"
>
What should we order for the party?
</h2>
</legend>
<div
class="mx_MPollBody_allOptions"
>
@ -1635,6 +1635,6 @@ exports[`MPollBody renders an undisclosed, unfinished poll 1`] = `
>
Results will be visible when the poll is ended
</div>
</div>
</fieldset>
</div>
`;

View File

@ -18,14 +18,14 @@ exports[`<MPollEndBody /> when poll start event exists in current timeline rende
>
Ended a poll
</span>
<div
<fieldset
class="mx_MPollBody"
>
<h2
<legend
data-testid="pollQuestion"
>
Question?
</h2>
</legend>
<div
class="mx_MPollBody_allOptions"
>
@ -111,7 +111,7 @@ exports[`<MPollEndBody /> when poll start event exists in current timeline rende
/>
</div>
</div>
</div>
</fieldset>
</div>
</div>
`;

View File

@ -1,19 +1,19 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`<PollHistory /> Poll detail displays poll detail on active poll list item click 1`] = `
<h2
<legend
data-testid="pollQuestion"
>
Question?
</h2>
</legend>
`;
exports[`<PollHistory /> Poll detail displays poll detail on past poll list item click 1`] = `
<h2
<legend
data-testid="pollQuestion"
>
What?
</h2>
</legend>
`;
exports[`<PollHistory /> Poll detail navigates back to poll list from detail view on header click 1`] = `

View File

@ -1599,7 +1599,7 @@
yaml "^2.7.0"
"@element-hq/web-shared-components@file:packages/shared-components":
version "0.0.0-test.6"
version "0.0.0-test.7"
dependencies:
classnames "^2.5.1"
counterpart "^0.18.6"
@ -4098,7 +4098,7 @@
resolved "https://registry.yarnpkg.com/@vector-im/matrix-wysiwyg/-/matrix-wysiwyg-2.40.0.tgz#53c9ca5ea907d91e4515da64f20a82e5586b882c"
integrity sha512-8LRFLs5PEKYs4lOL7aJ4lL/hGCrvEvOYkCR3JggXYXDVMtX4LmfdlKYucSAe98pCmqAAbLRvlRcR1bTOYvM8ug==
dependencies:
"@vector-im/matrix-wysiwyg-wasm" "link:../../Library/Caches/Yarn/v6/npm-@vector-im-matrix-wysiwyg-2.40.0-53c9ca5ea907d91e4515da64f20a82e5586b882c-integrity/node_modules/bindings/wysiwyg-wasm"
"@vector-im/matrix-wysiwyg-wasm" "link:../../../.cache/yarn/v6/npm-@vector-im-matrix-wysiwyg-2.40.0-53c9ca5ea907d91e4515da64f20a82e5586b882c-integrity/node_modules/bindings/wysiwyg-wasm"
"@vitest/expect@3.2.4":
version "3.2.4"
@ -9679,8 +9679,8 @@ matrix-events-sdk@0.0.1:
integrity sha512-1QEOsXO+bhyCroIe2/A5OwaxHvBm7EsSQ46DEDn8RBIfQwN5HWBpFvyWWR4QY0KHPPnnJdI99wgRiAl7Ad5qaA==
"matrix-js-sdk@github:matrix-org/matrix-js-sdk#develop":
version "39.0.0"
resolved "https://codeload.github.com/matrix-org/matrix-js-sdk/tar.gz/dd7394c14c687d91aff1b589f905aeee673b855a"
version "39.1.2"
resolved "https://codeload.github.com/matrix-org/matrix-js-sdk/tar.gz/b489bb15cf3f5de8024a3e31ccb36cf294f82887"
dependencies:
"@babel/runtime" "^7.12.5"
"@matrix-org/matrix-sdk-crypto-wasm" "^15.3.0"
@ -9693,7 +9693,7 @@ matrix-events-sdk@0.0.1:
matrix-widget-api "^1.10.0"
oidc-client-ts "^3.0.1"
p-retry "7"
sdp-transform "^2.14.1"
sdp-transform "^3.0.0"
unhomoglyph "^1.0.6"
uuid "13"
@ -12149,10 +12149,10 @@ schema-utils@^4.3.0, schema-utils@^4.3.3:
ajv-formats "^2.1.1"
ajv-keywords "^5.1.0"
sdp-transform@^2.14.1:
version "2.14.2"
resolved "https://registry.yarnpkg.com/sdp-transform/-/sdp-transform-2.14.2.tgz#d2cee6a1f7abe44e6332ac6cbb94e8600f32d813"
integrity sha512-icY6jVao7MfKCieyo1AyxFYm1baiM+fA00qW/KrNNVlkxHAd34riEKuEkUe4bBb3gJwLJZM+xT60Yj1QL8rHiA==
sdp-transform@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/sdp-transform/-/sdp-transform-3.0.0.tgz#863dd2d781c468d7d6a2f9c70fedcf0538f3e76c"
integrity sha512-gfYVRGxjHkGF2NPeUWHw5u6T/KGFtS5/drPms73gaSuMaVHKCY3lpLnGDfswVQO0kddeePoti09AwhYP4zA8dQ==
seedrandom@^3.0.5:
version "3.0.5"