91 Commits
Author SHA1 Message Date
David BakerandGitHub 5349566611 Fix layout of user status dropdown (#34668)
* Bump to compound 10.0.1

For fix to the dropdown menu layout

* Snapshot
2026-08-12 10:20:52 +00:00
David LangleyandGitHub badb35bd1f Timeline MVVM 1 - Shared TimelineView and Overlay Buttons (#34464)
* Add shared timeline overlay buttons and view contract

The TimelineOverlayButtons presentational component (unread bar, jump-to-bottom)
plus the shared TimelineView VM contract (types) and its i18n strings. Consumed
by the TimelineView virtualizer in a follow-up commit.

* Add shared TimelineView component (TanStack Virtual)

Headless TanStack-Virtual timeline driven from RoomTimelineViewModel: anchorTo:"end"
viewport stability across prepends/trims, cold-load cover, jump-to via scrollToOffset,
and visible-state reporting via the virtualizer's onChange. Adds the @tanstack/react-virtual
dependency and the virtual-core isValidAnchorItem patch (runtime + types).

* Use Compound spacing tokens in timeline overlay and clarify comments

- Use Compound spacing tokens for overlay margins/insets instead of raw px
- Drop the stale Virtuoso reference from the overlay CSS comment
- Note the real-world duration of COLD_CAP_FRAMES
- Describe each load phase in plain English

* Remove jargon and explain/expand things in simple terms.

* Use time rather than a frame count and improve description.
2026-08-12 08:40:26 +00:00
3a196c7722 Fix spacing in user status dropdown (#34589)
* Exploration of a virtuoso-powered emoji picker

moved to shared components

Fable generated

* fix pnpm lock

* format & fix some lint issues

* wrong import

* fix lint warning

* Fix off-by-one

and remove manual overflow adjustment: let's leave the default unless
it turns out to be necessary. Emoji should not take that long to load.

* Convert to functional component

* WIP: change to one big virtuoso scroller

* Change to use virtuoso's own onRangeChanged

and santitise category data and how it's passed around

* Convert Tabs to functional component

and put the focusing behaviour back with it just keeping track of
refs by itself.

* Absorb two line config file into main component

* Actually add the config to the main file

* Convert emoji to functional

Also make selected always defined and use useCallback.

* QuickReactions to functional component

* Non-default exports & doc

* Search to functional component

* Well it seems to work just fine now

* Use ref prop

* fix lockfile AGAIN

* lint

* Remove default export

* Remove some mx_ classnames and fix the inputRef

to make the arrow keys in the search box work (well, work as much as
they ever did).

* Remove last of the mx_ id / classnames

(except the one in the test)

* Use useMemo to memoize

* No need to export props interface (I think?)

and fix comment now we don't do the mutation stuff anymore

* Fix test

* Fix axe violations & add screenshots

* Avoid comparing dom snapshots in test

* Allow more before or after, just compare order of the ones present in both.

* Switch existing usages to new emoji picker

and kill the old one with fire

* Unused stuff

* Remove i18n strings

* Fix some tests

* Update screenshots

* Fix test

by removing the last of the weird memoized-but-mutated data structure

* Experimental custom status

* Screenshot

* snapshots

* Update button label and fix test

* Move the string somewhere more sensible than 'a11y'

* i18n lint

* Give the emojis IDs so aria-activedescendant works

* Fix more tests

* Add a small wrapper emoji picker component

This lets us easily memoize the recent emojis when the emoji picker is opened.
Also it saves a bit of boilerplate.

* Remove old emojipicker css

* Typos

Co-authored-by: David Langley <davidl@element.io>

* Use compound constants

* Rethemendex

* Test for custom status

* Use catalog version for emojibase

* Add comments

* More comments

* Fix comment

* More comments

* more comments (and make them uniform)

* More comments

* Fix pnpm lock again

* Another comment

* Add option to hide quick reactions (and preview) bar

* Fix test

to use emoji not in the quick reactions bar

* Apply button types to new version

* Add comment

* Disable screenshot

as per comment

* Fix hover / background / border styles

* Screenshot

* Don't use the reactions row because it's gone now

* Fix spacing in user status dropdown

Updates to renderItem based Dropdown, allowing the item in the dropdown
to be customised.

Requires https://github.com/element-hq/compound-web/pull/538 (and
will be required to update to the version of compound it gets
released in).

* Update to new compound

* snapshots

* Fix tests

---------

Co-authored-by: Will Hunt <2072976+Half-Shot@users.noreply.github.com>
Co-authored-by: David Langley <davidl@element.io>
2026-08-10 15:20:29 +00:00
613ee3c324 feat(widget): Rtc transports discovery for widgets (#34393)
* feat(widget): Rtc transports discovery for widgets

* fix linter

* update matrix-widget-api and js-sdk

* fix eslint-plugin-element-call path

* update widget-api: Parent-id delegation is deprectated

---------

Co-authored-by: Robin <robin@robin.town>
2026-08-10 13:45:13 +00:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
7a908483c0 Update dependency vite to v8.2.0 (#34536)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-08-05 17:02:34 +00:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
4c36eb408d Update react (#34533)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-08-05 15:40:36 +00:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
27f0347668 Update dependency nx to v23.1.1 (#34530)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-08-05 15:34:04 +00:00
a4f63cdd22 Emoji picker to shared components (#34337)
* Exploration of a virtuoso-powered emoji picker

moved to shared components

Fable generated

* fix pnpm lock

* format & fix some lint issues

* wrong import

* fix lint warning

* Fix off-by-one

and remove manual overflow adjustment: let's leave the default unless
it turns out to be necessary. Emoji should not take that long to load.

* Convert to functional component

* WIP: change to one big virtuoso scroller

* Change to use virtuoso's own onRangeChanged

and santitise category data and how it's passed around

* Convert Tabs to functional component

and put the focusing behaviour back with it just keeping track of
refs by itself.

* Absorb two line config file into main component

* Actually add the config to the main file

* Convert emoji to functional

Also make selected always defined and use useCallback.

* QuickReactions to functional component

* Non-default exports & doc

* Search to functional component

* Well it seems to work just fine now

* Use ref prop

* fix lockfile AGAIN

* lint

* Remove default export

* Remove some mx_ classnames and fix the inputRef

to make the arrow keys in the search box work (well, work as much as
they ever did).

* Remove last of the mx_ id / classnames

(except the one in the test)

* Use useMemo to memoize

* No need to export props interface (I think?)

and fix comment now we don't do the mutation stuff anymore

* Fix test

* Fix axe violations & add screenshots

* Avoid comparing dom snapshots in test

* Allow more before or after, just compare order of the ones present in both.

* Switch existing usages to new emoji picker

and kill the old one with fire

* Unused stuff

* Remove i18n strings

* Fix some tests

* Update screenshots

* Fix test

by removing the last of the weird memoized-but-mutated data structure

* Move the string somewhere more sensible than 'a11y'

* i18n lint

* Give the emojis IDs so aria-activedescendant works

* Fix more tests

* Add a small wrapper emoji picker component

This lets us easily memoize the recent emojis when the emoji picker is opened.
Also it saves a bit of boilerplate.

* Remove old emojipicker css

* Typos

Co-authored-by: David Langley <davidl@element.io>

* Use compound constants

* Rethemendex

* Use catalog version for emojibase

* Add comments

* More comments

* Fix comment

* More comments

* more comments (and make them uniform)

* More comments

* Fix pnpm lock again

* Another comment

* Apply button types to new version

* Add comment

* Disable screenshot

as per comment

---------

Co-authored-by: Will Hunt <2072976+Half-Shot@users.noreply.github.com>
Co-authored-by: David Langley <davidl@element.io>
2026-08-05 13:44:35 +00:00
Michael TelatynskiandGitHub 06bedd0e5a Satisfy pnpm audit (#34568) 2026-08-05 09:59:15 +00:00
c091ebec6e Update dependency pnpm to v11.20.0 [SECURITY] (#34250)
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2026-08-04 13:42:24 +01:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>Michael Telatynski
3621caaa1d Update dependency stylelint to v17.14.1 (#34417)
* Update dependency stylelint to v17.14.1

* Iterate

* Fix lockfile

* Iterate

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2026-07-29 15:18:29 +00:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
1683525c5b Update react (#34447)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-29 13:55:35 +00:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
f2cc9353ac Update browserslist (#34443)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-28 16:07:21 +00:00
David BakerandGitHub f3033e91db Bump compound-web to 9.9.0 (#34398)
* Bump compound-web to 9.9.0

For max menu width

* fix pnpm again

* snapshot

* Snapshots
2026-07-23 13:09:55 +00:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>Michael Telatynski
5603ae02d9 Update npm non-major dependencies (#34377)
* Update npm non-major dependencies

* Iterate

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2026-07-22 12:00:53 +00:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
5ab293aa98 Update dependency vite to v8.1.5 (#34366)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-22 09:20:09 +00:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>Michael Telatynski
155992300a Update browserslist (#34265)
* Update browserslist

* Update test

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2026-07-17 10:55:07 +00:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
7bc822fae1 Update react (#34282)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-15 12:59:57 +00:00
Michael TelatynskiandGitHub b6859885a3 Upgrade to TypeScript 7 (#34208)
* Upgrade to TypeScript 7

for massive tsc speed gains

Those on WebStorm will want to upgrade to EAP to reap the benefits of the new TSGo compiler

Some things (module-api & shared-components) which utilise unplugin-dts (and api-extractor) need to hold a copy of ts6 for its conventional lib format and API. TS7 ships with no API until TS7.1.

Other things which use eslint also need ts6 for typescript-eslint.

Some type changes were necessary as TS7 caught some issues.

* Add knip exception

* Fix bad merge
2026-07-14 08:09:03 +00:00
David BakerandGitHub 157c6008d4 Bump compound-web to 9.8.0 (#34236)
* Bump compound-web to 9.8.0

* Manually unmangle pnom-lock

* Tedious class name updates

* More tedious class name updates

* This is my life now
2026-07-13 16:26:26 +00:00
Michael TelatynskiandGitHub f433b5b9eb Satisfy pnpm audit (#34209)
* Update pnpm

* Update js-sdk lock

* Switch from corepack to a manual pnpm install in docker otherwise it gets upset when js-sdk has a different pnpm version

* Fix pnpm install

* Fix pnpm install

* Install yarn separately now that we no longer corepack

* Iterate

* Satisfy pnpm audit

* Fix bad merge conflict
2026-07-13 14:40:31 +00:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2eb957fe96 Update vite (#34221)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-13 07:40:23 +00:00
Michael TelatynskiandGitHub 15c85ec50f Switch from eslint to oxlint (#34166)
* Fix type imports

* Fix jsdoc

* Fixup types

* Fix stray awaits on non-thenables

* Fixup imports

* Fix splats

* Fix this-context on callbacks

* Memoise react contexts

* Prefer find/flatMap

* Make oxlint happier about our React keys

* Avoid unsafe default function params

* Fixup jsdoc

* Fixup contexts

* Switch from eslint to oxlint

* Some oxlint-related tweaks

* Iterate

* Partial revert to defer some changes and shrink diff

* Iterate

* Add eslint-plugin-element-call and enable the copyright rule

* Set strictStorePkgContentCheck

* Iterate

* Make sonar happy

* Fix new lints
2026-07-10 09:47:41 +00:00
Michael TelatynskiGitHubCopilot Autofix powered by AI <223894421+github-code-quality[bot]@users.noreply.github.com>
2bc9656957 Adapt OAuth2 implementation to Matrix Spec v1.18 (#34026)
* Adapt OAuth2 implementation to Matrix Spec v1.18

* Handle more cases of oidc->oauth

* Fix test

* Fix read back of oauth2 context

* Iterate

* Fix tests

* Discard changes to apps/web/playwright/e2e/settings/account-user-settings-tab.spec.ts

* Fix test

* Fix test

* Fix test

* Potential fix for pull request finding 'Unused variable, import, function or class'

Co-authored-by: Copilot Autofix powered by AI <223894421+github-code-quality[bot]@users.noreply.github.com>

* Iterate

* Iterate

* Fix test

---------

Co-authored-by: Copilot Autofix powered by AI <223894421+github-code-quality[bot]@users.noreply.github.com>
2026-07-08 08:02:25 +00:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
47da609f53 Update electron (#34155)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-06 15:08:59 +00:00
Michael TelatynskiandGitHub d4f72dfa69 Start consolidating shared types in the monorepo (#34062)
* Start consolidating shared types in the monorepo

* Iterate

* Simplify api-extractor

* Iterate

* Fix lockfile
2026-07-06 13:49:32 +00:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
a3adfaa3df Update vite (#34074)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-06 10:06:03 +00:00
Michael TelatynskiandGitHub 82e3423be2 Update Compound to fix tooltips (#34083)
* Update Compound to fix tooltips

and add regression test

* Update snapshot
2026-07-02 07:51:56 +00:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>Michael Telatynski
d88c1a1de8 Update playwright (#34036)
* Update playwright

* Make axe happier with TabbedView accessibility

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2026-06-30 13:12:56 +00:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>Michael Telatynski
4462d6914c Update playwright to v1.61.0 (#33928)
* Update playwright to v1.61.0

* Update snapshots

* Update screenshots

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2026-06-29 10:34:44 +00:00
David LangleyandGitHub c4b12cbb4c Update to compound-web 9.7.0 (#33967)
* Update to compound-web 9.7.0

* Update snapshots for compound-web 9.7.0 toast markup

The 9.7.0 Toast moves typography classes from .toast-container to .content
and rebuilds CSS-module hashes, so the RoomListToast unit snapshots, the
storybook visual baselines, and the room-list e2e screenshots needed
regenerating.

* Update blurhash screenshot

* Revert "Update blurhash screenshot"

This reverts commit 6eacecc1ed7459f6d34ac59313f85b467ab3e52c.
2026-06-26 11:00:33 +00:00
David BakerandGitHub 4e3f47b948 Update to compound-web 9.6.0 (#33959)
* Update to compound-web 9.6.0

* Update snapshots

for aria-disabled change

* and this one
2026-06-25 16:05:58 +00:00
Michael TelatynskiandGitHub 45234b9c94 Migrate more jest tests to vitest (#33898)
* Migrate more jest tests to vitest

* Fix jest config

* Fix jest config

* Make remaining jest tests type-happy
2026-06-19 15:34:18 +00:00
Michael TelatynskiandGitHub 5002f2929f Fix CI/CD pnpm error around minimumReleaseAge (#33908)
* Update pnpm

* Fix @types/node dep reference

* disable allowBuilds for js-sdk

* disable allowBuilds for js-sdk for git too

* Iterate

* Iterate
2026-06-19 11:12:59 +00:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>Michael Telatynski
d3085e06e9 Update dnd-kit to ^0.5.0 (#33885)
* Update dnd-kit to ^0.5.0

* Remove patch

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2026-06-17 09:07:21 +00:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
6099f570db Update browserslist to v1.0.30001799 (#33862)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-16 22:20:28 +00:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
ae2d4cd0ce Update vite to v4.1.9 (#33873)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-16 16:10:55 +00:00
Michael TelatynskiandGitHub 2f4e6a4ec4 Use vitest for some EW unit tests (#33816)
* Use vitest for some EW unit tests

* Ensure library builds are done before unit tests

* Stabilise jest tests

* Move more tests over

* Make sonar happier

* Update types/node for happy-dom compat again

* Decrease max-workers to stabilise jest tests

* Split jest over 3 runners to alleviate memory woes

* Switch jest to runInBand

* Attempt to deflake jest tests

* tweak coverage

* tweak coverage
2026-06-15 13:24:33 +00:00
Michael Telatynski 18a4fcae49 Prettier 2026-06-09 12:42:52 +01:00
Michael Telatynski eaccc01687 Merge branch 'develop' of ssh://github.com/element-hq/element-web into t3chguy/merge-modules
# Conflicts:
#	pnpm-lock.yaml
#	pnpm-workspace.yaml
2026-06-09 12:39:57 +01:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>Michael Telatynski
fa0b88ca9f Update vite (#33757)
* Update vite

* Update vite

* Bump @vitest/browser-playwright to match rest of vitest deps

* Regenerate pnpm-lock.yaml

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2026-06-09 11:11:01 +00:00
Michael Telatynski cf9ee41d06 DRY 2026-06-08 11:19:13 +01:00
Michael Telatynski 799d33278f Absorb remainder of element-modules into monorepo 2026-06-08 10:32:12 +01:00
Michael TelatynskiandGitHub 84b820f72a Update pnpm dependencies based on output of pnpm audit (#33730)
* Remove stub @types/content-type package

* Update axios
2026-06-05 08:35:14 +00:00
Michael TelatynskiandGitHub 7ad8f58a08 pnpm tidy up (#33744)
* Fix tsconfig paths

* Tidy pnpm patches

* Fix pnpm-link.ts for devEngines specification
2026-06-05 07:42:26 +00:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
1b65fe8ab3 Update vite to v8.0.15 (#33740)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-04 08:17:57 +00:00
Florian DurosandGitHub 47f76c7d7a Update compound web and design tokens (#33698)
* chore: update comppound web and design tokens

* test: update snapshots

* test: update screenshots
2026-06-03 11:51:58 +00:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>Michael Telatynski
ce69e07620 Update nodenv non-major dependencies to v24.16.0 (#33711)
* Update nodenv non-major dependencies to v24.16.0

* Workaround for https://github.com/electron/electron/issues/51619

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2026-06-03 10:24:14 +00:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
efb89ec5f0 Update vite to v8.0.14 (#33705)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-02 16:14:30 +00:00
Michael Telatynski 178e909dea Add pnpm allowBuilds in order to make wrangler-action happy 2026-06-01 15:29:18 +01:00