Skip to content
This repository was archived by the owner on Feb 11, 2026. It is now read-only.

Commit b3a70e6

Browse files
authored
Merge pull request #53 from elecordapp/element-v1.11.100
Element v1.11.100
2 parents 5cab248 + 0df3841 commit b3a70e6

586 files changed

Lines changed: 14855 additions & 10869 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.eslintignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,3 +8,6 @@ src/component-index.js
88
# Auto-generated file
99
src/modules.ts
1010
src/modules.js
11+
# Test result files
12+
/playwright/test-results/
13+
/playwright/html-report/

.eslintrc.js

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,10 @@ module.exports = {
3030
["window.innerHeight", "window.innerWidth", "window.visualViewport"],
3131
"Use UIStore to access window dimensions instead.",
3232
),
33+
...buildRestrictedPropertiesOptions(
34+
["React.forwardRef", "*.forwardRef", "forwardRef"],
35+
"Use ref props instead.",
36+
),
3337
...buildRestrictedPropertiesOptions(
3438
["*.mxcUrlToHttp", "*.getHttpUriForMxc"],
3539
"Use Media helper instead to centralise access for customisation.",
@@ -55,6 +59,11 @@ module.exports = {
5559
"error",
5660
{
5761
paths: [
62+
{
63+
name: "react",
64+
importNames: ["forwardRef"],
65+
message: "Use ref props instead.",
66+
},
5867
{
5968
name: "@testing-library/react",
6069
message: "Please use jest-matrix-react instead",

contribute.json

Lines changed: 0 additions & 13 deletions
This file was deleted.

package.json

Lines changed: 41 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,7 @@
2222
"LICENSE",
2323
"README.md",
2424
"AUTHORS.rst",
25-
"package.json",
26-
"contribute.json"
25+
"package.json"
2726
],
2827
"style": "bundle.css",
2928
"matrix_i18n_extra_translation_funcs": [
@@ -62,19 +61,21 @@
6261
"test": "jest",
6362
"test:playwright": "playwright test",
6463
"test:playwright:open": "yarn test:playwright --ui",
65-
"test:playwright:screenshots": "yarn test:playwright:screenshots:build && yarn test:playwright:screenshots:run",
66-
"test:playwright:screenshots:build": "docker build playwright -t element-web-playwright",
67-
"test:playwright:screenshots:run": "docker run --rm --network host -e BASE_URL -e CI -v $(pwd):/work/ -v $(node -e 'console.log(require(`path`).dirname(require.resolve(`matrix-js-sdk/package.json`)))'):/work/node_modules/matrix-js-sdk -v /var/run/docker.sock:/var/run/docker.sock -v /tmp/:/tmp/ -it element-web-playwright --grep @screenshot --project=Chrome",
64+
"test:playwright:screenshots": "playwright-screenshots --project=Chrome",
6865
"coverage": "yarn test --coverage",
6966
"analyse:webpack-bundles": "webpack-bundle-analyzer webpack-stats.json webapp",
70-
"update:jitsi": "curl -s https://meet.element.io/libs/external_api.min.js > ./res/jitsi_external_api.min.js"
67+
"update:jitsi": "curl -s https://meet.element.io/libs/external_api.min.js > ./res/jitsi_external_api.min.js",
68+
"postinstall": "patch-package"
7169
},
7270
"resolutions": {
73-
"@types/react": "18.3.18",
74-
"@types/react-dom": "18.3.5",
75-
"oidc-client-ts": "3.1.0",
71+
"**/pretty-format/react-is": "19.1.0",
72+
"@playwright/test": "1.51.1",
73+
"@types/react": "19.1.1",
74+
"@types/react-dom": "19.1.2",
75+
"oidc-client-ts": "3.2.0",
7676
"jwt-decode": "4.0.0",
77-
"caniuse-lite": "1.0.30001699",
77+
"caniuse-lite": "1.0.30001714",
78+
"testcontainers": "10.24.2",
7879
"wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0",
7980
"wrap-ansi": "npm:wrap-ansi@^7.0.0"
8081
},
@@ -84,16 +85,16 @@
8485
"@fontsource/inconsolata": "^5",
8586
"@fontsource/inter": "^5",
8687
"@formatjs/intl-segmenter": "^11.5.7",
87-
"@matrix-org/analytics-events": "^0.29.0",
88+
"@matrix-org/analytics-events": "^0.29.2",
8889
"@matrix-org/emojibase-bindings": "^1.3.4",
8990
"@matrix-org/react-sdk-module-api": "^2.4.0",
9091
"@matrix-org/spec": "^1.7.0",
9192
"@sentry/browser": "^9.0.0",
9293
"@types/png-chunks-extract": "^1.0.2",
9394
"@types/react-virtualized": "^9.21.30",
9495
"@vector-im/compound-design-tokens": "^4.0.0",
95-
"@vector-im/compound-web": "^7.6.4",
96-
"@vector-im/matrix-wysiwyg": "2.38.0",
96+
"@vector-im/compound-web": "^7.10.2",
97+
"@vector-im/matrix-wysiwyg": "2.38.3",
9798
"@zxcvbn-ts/core": "^3.0.4",
9899
"@zxcvbn-ts/language-common": "^3.0.4",
99100
"@zxcvbn-ts/language-en": "^3.0.2",
@@ -108,6 +109,7 @@
108109
"diff-dom": "^5.0.0",
109110
"diff-match-patch": "^1.0.5",
110111
"dompurify": "^3.2.4",
112+
"domutils": "^3.2.2",
111113
"emojibase-regex": "15.3.2",
112114
"escape-html": "^1.0.3",
113115
"file-saver": "^2.0.5",
@@ -116,50 +118,50 @@
116118
"glob-to-regexp": "^0.4.1",
117119
"highlight.js": "^11.3.1",
118120
"html-entities": "^2.0.0",
121+
"html-react-parser": "^5.2.2",
119122
"is-ip": "^3.1.0",
120123
"js-xxhash": "^4.0.0",
121124
"jsrsasign": "^11.0.0",
122125
"jszip": "^3.7.0",
123126
"katex": "^0.16.0",
124-
"linkify-element": "4.2.0",
125127
"linkify-react": "4.2.0",
126128
"linkify-string": "4.2.0",
127129
"linkifyjs": "4.2.0",
128130
"lodash": "^4.17.21",
129131
"maplibre-gl": "^5.0.0",
130132
"matrix-encrypt-attachment": "^1.0.3",
131133
"matrix-events-sdk": "0.0.1",
132-
"matrix-js-sdk": "37.1.0",
134+
"matrix-js-sdk": "37.5.0",
133135
"matrix-widget-api": "^1.10.0",
134136
"memoize-one": "^6.0.0",
135137
"mime": "^4.0.4",
136138
"oidc-client-ts": "^3.0.1",
137139
"opus-recorder": "^8.0.3",
138140
"pako": "^2.0.3",
139141
"png-chunks-extract": "^1.0.0",
140-
"posthog-js": "1.157.2",
142+
"posthog-js": "1.236.1",
141143
"qrcode": "1.5.4",
142-
"re-resizable": "6.10.3",
143-
"react": "^18.3.1",
144+
"re-resizable": "6.11.2",
145+
"react": "^19.0.0",
144146
"react-beautiful-dnd": "^13.1.0",
145147
"react-blurhash": "^0.3.0",
146-
"react-dom": "^18.3.1",
148+
"react-dom": "^19.0.0",
147149
"react-focus-lock": "^2.5.1",
150+
"react-string-replace": "^1.1.1",
148151
"react-transition-group": "^4.4.1",
149152
"react-virtualized": "^9.22.5",
150153
"rfc4648": "^1.4.0",
151154
"sanitize-filename": "^1.6.3",
152-
"sanitize-html": "2.14.0",
155+
"sanitize-html": "2.15.0",
153156
"tar-js": "^0.3.0",
154-
"temporal-polyfill": "^0.2.5",
157+
"temporal-polyfill": "^0.3.0",
155158
"ua-parser-js": "^1.0.2",
156159
"uuid": "^11.0.0",
157160
"what-input": "^5.2.10"
158161
},
159162
"devDependencies": {
160163
"@action-validator/cli": "^0.6.0",
161164
"@action-validator/core": "^0.6.0",
162-
"@axe-core/playwright": "^4.8.1",
163165
"@babel/core": "^7.12.10",
164166
"@babel/eslint-parser": "^7.12.10",
165167
"@babel/eslint-plugin": "^7.12.10",
@@ -179,13 +181,15 @@
179181
"@babel/preset-typescript": "^7.12.7",
180182
"@babel/runtime": "^7.12.5",
181183
"@casualbot/jest-sonar-reporter": "2.2.7",
184+
"@element-hq/element-call-embedded": "0.9.0",
185+
"@element-hq/element-web-playwright-common": "^1.1.5",
182186
"@peculiar/webcrypto": "^1.4.3",
183-
"@playwright/test": "^1.40.1",
187+
"@playwright/test": "^1.50.1",
184188
"@principalstudio/html-webpack-inject-preload": "^1.2.7",
189+
"@rrweb/types": "^2.0.0-alpha.18",
185190
"@sentry/webpack-plugin": "^3.0.0",
186-
"@stylistic/eslint-plugin": "^3.0.0",
191+
"@stylistic/eslint-plugin": "^4.0.0",
187192
"@svgr/webpack": "^8.0.0",
188-
"@testcontainers/postgresql": "^10.16.0",
189193
"@testing-library/dom": "^10.4.0",
190194
"@testing-library/jest-dom": "^6.4.8",
191195
"@testing-library/react": "^16.0.0",
@@ -209,24 +213,24 @@
209213
"@types/node-fetch": "^2.6.2",
210214
"@types/pako": "^2.0.0",
211215
"@types/qrcode": "^1.3.5",
212-
"@types/react": "18.3.18",
216+
"@types/react": "19.1.1",
213217
"@types/react-beautiful-dnd": "^13.0.0",
214-
"@types/react-dom": "18.3.5",
218+
"@types/react-dom": "19.1.2",
215219
"@types/react-transition-group": "^4.4.0",
216-
"@types/sanitize-html": "2.13.0",
220+
"@types/sanitize-html": "2.15.0",
217221
"@types/semver": "^7.5.8",
218222
"@types/tar-js": "^0.3.5",
219223
"@types/ua-parser-js": "^0.7.36",
220224
"@types/uuid": "^10.0.0",
221225
"@typescript-eslint/eslint-plugin": "^8.19.0",
222226
"@typescript-eslint/parser": "^8.19.0",
223227
"babel-jest": "^29.0.0",
224-
"babel-loader": "^9.0.0",
228+
"babel-loader": "^10.0.0",
225229
"babel-plugin-jsx-remove-data-test-id": "^3.0.0",
226230
"blob-polyfill": "^9.0.0",
227231
"chokidar": "^4.0.0",
228232
"concurrently": "^9.0.0",
229-
"copy-webpack-plugin": "^12.0.0",
233+
"copy-webpack-plugin": "^13.0.0",
230234
"core-js": "^3.38.1",
231235
"cronstrue": "^2.41.0",
232236
"css-loader": "^7.0.0",
@@ -244,7 +248,7 @@
244248
"eslint-plugin-react-compiler": "^19.0.0-beta-df7b47d-20241124",
245249
"eslint-plugin-react-hooks": "^5.0.0",
246250
"eslint-plugin-unicorn": "^56.0.0",
247-
"express": "^4.18.2",
251+
"express": "^5.0.0",
248252
"fake-indexeddb": "^6.0.0",
249253
"fetch-mock": "9.11.0",
250254
"fetch-mock-jest": "^1.5.1",
@@ -260,13 +264,13 @@
260264
"jsqr": "^1.4.0",
261265
"knip": "^5.36.2",
262266
"lint-staged": "^15.0.2",
263-
"mailpit-api": "^1.0.5",
264267
"matrix-web-i18n": "^3.2.1",
265268
"mini-css-extract-plugin": "2.9.2",
266269
"minimist": "^1.2.6",
267270
"modernizr": "^3.12.0",
268271
"node-fetch": "^2.6.7",
269-
"playwright-core": "^1.45.1",
272+
"patch-package": "^8.0.0",
273+
"playwright-core": "^1.51.0",
270274
"postcss": "8.4.46",
271275
"postcss-easings": "^4.0.0",
272276
"postcss-hexrgba": "2.1.0",
@@ -277,21 +281,20 @@
277281
"postcss-preset-env": "^10.0.0",
278282
"postcss-scss": "^4.0.4",
279283
"postcss-simple-vars": "^7.0.1",
280-
"prettier": "3.5.1",
284+
"prettier": "3.5.3",
281285
"process": "^0.11.10",
282286
"raw-loader": "^4.0.2",
283287
"rimraf": "^6.0.0",
284288
"semver": "^7.5.2",
285289
"source-map-loader": "^5.0.0",
286-
"strip-ansi": "^7.1.0",
287290
"stylelint": "^16.13.0",
288-
"stylelint-config-standard": "^37.0.0",
291+
"stylelint-config-standard": "^38.0.0",
289292
"stylelint-scss": "^6.0.0",
290293
"stylelint-value-no-unknown-custom-properties": "^6.0.1",
291294
"terser-webpack-plugin": "^5.3.9",
292-
"testcontainers": "^10.16.0",
295+
"testcontainers": "^10.20.0",
293296
"ts-node": "^10.9.1",
294-
"typescript": "5.7.3",
297+
"typescript": "5.8.3",
295298
"util": "^0.12.5",
296299
"web-streams-polyfill": "^4.0.0",
297300
"webpack": "^5.89.0",
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
diff --git a/node_modules/@matrix-org/react-sdk-module-api/lib/ModuleApi.d.ts b/node_modules/@matrix-org/react-sdk-module-api/lib/ModuleApi.d.ts
2+
index 917a7fc..a2710c6 100644
3+
--- a/node_modules/@matrix-org/react-sdk-module-api/lib/ModuleApi.d.ts
4+
+++ b/node_modules/@matrix-org/react-sdk-module-api/lib/ModuleApi.d.ts
5+
@@ -37,7 +37,7 @@ export interface ModuleApi {
6+
* @returns Whether the user submitted the dialog or closed it, and the model returned by the
7+
* dialog component if submitted.
8+
*/
9+
- openDialog<M extends object, P extends DialogProps = DialogProps, C extends DialogContent<P> = DialogContent<P>>(initialTitleOrOptions: string | ModuleUiDialogOptions, body: (props: P, ref: React.RefObject<C>) => React.ReactNode, props?: Omit<P, keyof DialogProps>): Promise<{
10+
+ openDialog<M extends object, P extends DialogProps = DialogProps, C extends DialogContent<P> = DialogContent<P>>(initialTitleOrOptions: string | ModuleUiDialogOptions, body: (props: P, ref: React.RefObject<C | null>) => React.ReactNode, props?: Omit<P, keyof DialogProps>): Promise<{
11+
didOkOrSubmit: boolean;
12+
model: M;
13+
}>;

patches/@types+react+19.0.10.patch

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
diff --git a/node_modules/@types/react/index.d.ts b/node_modules/@types/react/index.d.ts
2+
index 2272032..18bd20a 100644
3+
--- a/node_modules/@types/react/index.d.ts
4+
+++ b/node_modules/@types/react/index.d.ts
5+
@@ -134,7 +134,7 @@ declare namespace React {
6+
props: P,
7+
) => ReactNode | Promise<ReactNode>)
8+
// constructor signature must match React.Component
9+
- | (new(props: P) => Component<any, any>);
10+
+ | (new(props: P, context?: any) => Component<any, any>);
11+
12+
/**
13+
* Created by {@link createRef}, or {@link useRef} when passed `null`.
14+
@@ -941,7 +941,7 @@ declare namespace React {
15+
context: unknown;
16+
17+
// Keep in sync with constructor signature of JSXElementConstructor and ComponentClass.
18+
- constructor(props: P);
19+
+ constructor(props: P, context?: unknown);
20+
21+
// We MUST keep setState() as a unified signature because it allows proper checking of the method return type.
22+
// See: https://github.com/DefinitelyTyped/DefinitelyTyped/issues/18365#issuecomment-351013257
23+
@@ -1113,7 +1113,7 @@ declare namespace React {
24+
*/
25+
interface ComponentClass<P = {}, S = ComponentState> extends StaticLifecycle<P, S> {
26+
// constructor signature must match React.Component
27+
- new(props: P): Component<P, S>;
28+
+ new(props: P, context?: any): Component<P, S>;
29+
/**
30+
* Ignored by React.
31+
* @deprecated Only kept in types for backwards compatibility. Will be removed in a future major release.

patches/react-blurhash+0.3.0.patch

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
diff --git a/node_modules/react-blurhash/dist/index.d.ts b/node_modules/react-blurhash/dist/index.d.ts
2+
index 3adbd0a..32e8c13 100644
3+
--- a/node_modules/react-blurhash/dist/index.d.ts
4+
+++ b/node_modules/react-blurhash/dist/index.d.ts
5+
@@ -19,7 +19,7 @@ declare class Blurhash extends React.PureComponent<Props$1> {
6+
resolutionY: number;
7+
};
8+
componentDidUpdate(): void;
9+
- render(): JSX.Element;
10+
+ render(): React.JSX.Element;
11+
}
12+
13+
declare type Props = React.CanvasHTMLAttributes<HTMLCanvasElement> & {
14+
@@ -37,7 +37,7 @@ declare class BlurhashCanvas extends React.PureComponent<Props> {
15+
componentDidUpdate(): void;
16+
handleRef: (canvas: HTMLCanvasElement) => void;
17+
draw: () => void;
18+
- render(): JSX.Element;
19+
+ render(): React.JSX.Element;
20+
}
21+
22+
export { Blurhash, BlurhashCanvas };

0 commit comments

Comments
 (0)