595 Commits

Author SHA1 Message Date
Zack
c62acc6634
Refactor MKeyVerificationRequest to shared view MVVM (#33461)
* Refactor key verification request to shared view

* Fix prettier

* add tests to pass coverage
2026-05-11 11:36:07 +00:00
rbondesson
eb08257b77
Make shared-components tiles render identically outside Element Web - # 1 (#33418)
* Apply event presentation attributes to timeline previews and errors

* Make TextualEventView render the same in web and storybook

* Make TileErrorView render the same in app/web and storybook

* Updated snapshots

* Make it possible to view shared components with default app/web base styling.

* Adjust styling and add underline to pass tests

* Fix Sonar issue

* Rename base css to root css

* Handle font styling correctly
2026-05-11 11:06:11 +00:00
Michael Telatynski
82fef06895
Improve desktop coverage (#33462)
* Improve desktop coverage

* Silence vitest warning

* Improve coverage

* Whoops
2026-05-11 10:42:33 +00:00
Florian Duros
b1fbb38dab
refactor(sc): rename room list accessibility wrapper to room list wrapper (#33458) 2026-05-11 10:09:05 +00:00
ElementRobot
703941d71e
[create-pull-request] automated change (#33455)
Co-authored-by: t3chguy <2403652+t3chguy@users.noreply.github.com>
2026-05-11 08:06:49 +00:00
David Baker
7f0dccf855
Fix user menu overlap with macos window controls (#33425)
* Fix user menu overlap with macos window controls

Fixes https://github.com/element-hq/element-web/issues/33424

* Snapshot

* snapshot
2026-05-08 11:52:51 +00:00
Robin
1b9c9cb92f
Visually indicate on hover that user menu can be clicked (#33408)
* Visually indicate on hover that user menu can be clicked

Seems the cursor: pointer style was lost in d4f419d1b5ced50e475db640329e078f4032fe64.

* Update test snapshots
2026-05-08 08:49:01 +00:00
ElementRobot
8cdc6f8632
[create-pull-request] automated change (#33427)
Co-authored-by: t3chguy <2403652+t3chguy@users.noreply.github.com>
2026-05-08 07:09:33 +00:00
Zack
cf9cdbbc86
Refactor Mjolnir body to shared view (#33407)
* Refactor Mjolnir body to shared view

* Update compund css + add snapshot

* Remove from app, and add in shared components

* update css to fix axe fail issue
2026-05-07 13:45:43 +00:00
renovate[bot]
4979beb5ca
Update npm non-major dependencies (#33379)
* Update npm non-major dependencies

* Ditch unplugin-dts.patch

* Make knip happy

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2026-05-07 12:02:08 +00:00
Zack
fa5caa76d9
Refactor hidden body into shared MVVM (#33403)
* Refactor hidden body into shared MVVM

* Snapshots

* Update packages/shared-components/src/room/timeline/event-tile/body/HiddenBodyView/HiddenBodyView.stories.tsx

Co-authored-by: Florian Duros <florian.duros@ormaz.fr>

* Update apps/web/src/viewmodels/room/timeline/event-tile/body/HiddenBodyViewModel.ts

Co-authored-by: Florian Duros <florian.duros@ormaz.fr>

* Use compound Text in HiddenBodyView

* Update snapshots

---------

Co-authored-by: Florian Duros <florian.duros@ormaz.fr>
2026-05-07 10:11:35 +00:00
Zack
dfc554aa91
Move unknown body to shared components (#33406)
* Move unknown body to shared components

* added story snapshots
2026-05-06 14:36:34 +00:00
Zack
b5711264dd
Move hidden media placeholder to shared components (#33404)
* Move hidden media placeholder to shared components

* Add Snapshots

* Remove legacy hidden media mx class
2026-05-06 11:23:14 +00:00
Will Hunt
d4f419d1b5
Refactor and redesign user menu (#32812)
* Initial quick settings menu

* Total refactor

* Quick design fixes.

* Refactor to use a view model.

* Remove unused strings

* Apply label

* Refactor naming

* Fixup most tests

* Remove specific theming for old user menu

* prettier

* Lots of cleanup

* Allow overriding the menu classes

* update snap

* Oops translations

* tidy

* Cleanup guest flows.

* Copyrights

* Remove unused classname

* Match guest view to designs

* Add guest screenshots

* Update guests

* snapshot

* Cleanup

* fix import

* Update tests

* More sceenshot fixes

* update collapsed

* move statements to prevent flake

* update snap

* Kick it along

* Click the room list

* Fiddle with the room video list.

* More screenshot adjustments

* fix imports

* fix another import

* Update snaps

* update snaps

* Fix snap flakes

* Refactor to move actions to view component, and callbacks to Actions

* Cleanup

* Cleanup

* Cleanup

* invert auth

* More bits

* fix

* Change md buttons to sm

* Try to assemble the snapshot component of the house of cards

* Consistent newlines between tests

* Update snapshot

Not sure why this was like this, this seems consistet for a logged in user

* Update snapshot

again these seem sensible for a guest

* Remove test

I don't really understand why the thing it asserts matters, so I'm removing
it for now.

* Update snapshot

* screenshot

* Don't show profile picture for guests

I'm not really sure what it meant for this interface to have a
property with a default value, so I've removed it and added the
property to the view model.

* Show avatar in story

* update snapshots for showAvatar

* Update screenshots

& hopefully make hover consistent in one

* Use outline home icon

---------

Co-authored-by: David Baker <dbkr@users.noreply.github.com>
2026-05-06 08:34:36 +00:00
ElementRobot
bbd2d81a08
[create-pull-request] automated change (#33402)
Co-authored-by: t3chguy <2403652+t3chguy@users.noreply.github.com>
2026-05-06 07:29:24 +00:00
rbondesson
1f71a3a3fe
Make shared components aware of layout and density settings (#33368)
* Add shared event presentation context

* Add app-web event presentation mapper

* Wire event presentation provider into app timelines

* Add Storybook controls for event layout and density

* Wire compact density through app/web event presentation provider

* Use event presentation density for URL previews

* Move TileErrorView layout to event presentation context

* Minor fix and updated snapshot

* Updated snapshots for url preview group

* Prettier fix

* Restore removed story to fix missing playwright test

* Updates after review comments

* Fix prettier issue
2026-05-06 05:30:46 +00:00
renovate[bot]
a251c5f3e3
Update ghcr.io/element-hq/element-web:latest Docker digest to f4a81a2 (#33395)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-05 17:27:44 +00:00
renovate[bot]
06da429c7e
Update pnpm to v10.33.3 (#33383)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-05 14:00:58 +00:00
David Baker
990efa20db
Include tsx test files in common vite config (#33342)
* Include tsx test files in common vite config

Otherwise we miss a bunch of the shared component tests

* Add storybook/preview-api to optimizeDeps

which is what vitest is telling me to do, which will hopefully stop
it flaking out.
2026-05-01 09:58:11 +00:00
David Baker
5e935207c5
Make DateUtils test non-timezone dependent (#33343)
This was failing locally because my dev box is set to local time rather
than UTC and so the Date class's special date parsing was interpreting
some of the dates as a different day.

Use Date's methods to build the actual date we want so we're not reliant on
the date objet's parsing - that's not what we're trying to test.
2026-05-01 09:15:40 +00:00
ElementRobot
a6bf56fcbd
[create-pull-request] automated change (#33347)
Co-authored-by: t3chguy <2403652+t3chguy@users.noreply.github.com>
2026-05-01 07:23:43 +00:00
Florian Duros
c2e5aa7adc
Room list: add collapse/expand all sections (#33318)
* chore: update compound design tokens

* feat(sc): add collapse/expand button to room list header

* feat: add new events to broadcast section state

* feat(vm): add expand/collpase event to room list events

* test: add e2e tests

* chore: fix company name in copyright

* chore: use two differant actions for collapse/expand

* Update apps/web/src/viewmodels/room-list/RoomListHeaderViewModel.ts

Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>

* test: fix existing tests

---------

Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2026-04-30 14:32:43 +00:00
rbondesson
b0ee6f5323
Add CSS cascade layers for Compound, shared components, and app/web styles (#33302)
* Layer Compound and shared component CSS

* Layer app theme CSS

* Remove !important flags from ActionBarView

* Remove unnecessary !important statements from shared components

* Avoid dead code errors for *.pcss just because layer is specified after @import url

* Remove unnecessary !important styling

* Override Banner defaults in RoomStatusBarView

* Updated snaps

* Updated snaps

* Fix styling of media body in app/web

* Fix styling for Compound anchors

* Fix styling issues in app/web

* More styling fixes

* Fix a problem extracting css for HTMLExport

* Revert changes

* Fix for theme styling

* Add test to improve coverage

* Prettier

* Fix styling issues

* Add data-kind attribute to avoid global styling override

* Update screenshot that now is correct

* Revert data-kind attribute

* Handle LinkPreview styling in .pcss

* Fix flaky test: Avoid racing the lazy-loaded ManageEventIndexDialog

* Take care of review comments

* Updated snaps

* Updated snaps again after merge

* Remove !important from RoomStatusBar
2026-04-30 11:54:49 +00:00
Michael Telatynski
30484ef126
DRY vite configs using a shared config (#33334)
* Fix OIDC login callback handling on Element Desktop

* Add unit tests

* Iterate

* Fix lcov reporter

* DRY vite configs using a shared config

* Iterate

* Revert change to electron-builder.ts

* Iterate
2026-04-30 07:44:29 +00:00
Will Hunt
4bee845010
Show user status in timeline (#32991)
* Use other branch

* All the changes that got lost

* Fix merge

* Ensure emoji can only be one character long

* Fixup labs feature

* Remove redundant check

* Update snapshot

* update snapshot

* add snapshot

* unpin

* fix pnpm lock

* undo pn[m lockfile changes altogether

as we shouldn't actually need any afaik

* update snpahot for changed IDs

* Snapshot update

* Snapshot update

* There is now another section

* more snapshots

* more snapshot

* More snapshots

* oh come on snapshots

* actual snapshot update

* Fix sonar issues

* just update the thing manually

* [screams internally]

* Update snapshot

* test for useUserStatus

* Make useUserStatus actually truncate

* Split out slash command to its own file

& add test

* Remove irrelevant comment

* doc

* Comment on non-obvious error message

---------

Co-authored-by: David Baker <dbkr@users.noreply.github.com>
2026-04-29 08:14:22 +00:00
ElementRobot
4c3cb0754b
[create-pull-request] automated change (#33325)
Co-authored-by: t3chguy <2403652+t3chguy@users.noreply.github.com>
2026-04-29 07:22:26 +00:00
renovate[bot]
e9ce54928f
Update pnpm to v10.33.2 (#33314)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-28 13:14:23 +00:00
renovate[bot]
9a5f940787
Update dependency mailpit-api to v2 (#33317)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-28 13:14:05 +00:00
Florian Duros
c363d2eb82
Room list: edit or remove custom sections (#33283)
* feat(sc): add section menu to section header

* feat(rls): add edit and remove sections

* feat(dialog): add editing mode to CreateSectionDialog

* feat(dialog): add remove section dialog

* feat(vm): wire up vm and stores

* test: update existing snapshots

* test(e2e): add playwright tests to edit and remove a section

* chore: fix remove section i18n key

* fix: able to send empty sections

* chore: update create section editing docs

* chore: remove useless fallback

* chore: add logs when section is unknown

* feat: use different wording when removing an empty section

* fix: only animate the chevron icon in the section header

* fix: change dialog subtitle weight to medium
2026-04-28 10:16:34 +00:00
Zack
1dd5748d6f
Update shared-components story titles to match component paths (#33157)
* Align shared-components Storybook titles with their current paths.

* Rechange the structure for better navigation on storybook

* Update Placement of RoomlistToast to correct catagory

* Update for easier reading

* Adding space for better reading.

* Add spacing for Timeline Event

* add spacing to timeline meta for better reading

* add spacing for better reading for timeline reaction

* Fix wrong placement of Imagebody

* Final Update of structure of shared components

* Update storybook for urlpreviewgroupview
2026-04-28 09:55:48 +00:00
Zack
4e9655dc6b
Phase 2 : Refactor TextualBody to MVVM and remove legacy component (#33165)
* Refactor TextualBody to MVVM and remove legacy component

* Update snapshot + fix eslint warning

* update css to fix playwright tests failure

* return i18n into the MVVM

* Update snapshots

* Update tests to reflect the css changes

* Update snapshot

* Update css to correct letter-spacing

* Update css to fix playwright issues.

* Preserve inline emote sender rendering in TextualBodyView

* Update snapshot to reflect html change

* Update back to span instead of button, the default button css fails tests

* Extract TextualBodyFactory from MBodyFactory

* Update snapshot

* Update HTML snapshot to pass tests

* Update Snapshots

* Added several tests for coverage

* Remove double checks, merge function already checks.

* Remove unessecery comment

* revert to button

* Update snapshots because of the revert

* added Math.min() to simplify ternary expressions.

* Update playwright screenshots for accessibility

* Update playwright screenshots

* Update css to fix playwright fail

* Update screenshot + snapshots

* Add comments to props
2026-04-28 07:07:19 +00:00
Michael Telatynski
7766ae92d7
Fix i18n types (#33305)
Without the fix the return type would be `string` in cases where it should be `ReactNode`
2026-04-27 15:09:55 +00:00
Robin
03b730db58
Update toast styles, improve incoming call notifications (#33043)
* Update design of incoming call notifications

* Make toast show avatars of group call participants

* Further expand test coverage for call notifications

* Update screenshots

* Update screenshots

* Delete unused variables

* Upgrade Element Call to v0.19.2

For the new group call intents.

* Consolidate some branches

* Apply Compound spacing variables a little more

* Fix lints

* Exclude Element Call assets from being re-minified to fix build
2026-04-27 14:37:42 +00:00
Will Hunt
2ea0c4106b
Add Module Composer API (#33284)
* Spec composer API

* Add composer api implementation

* Tests

* Copyright

* update sigs

* cleanup

* a snap

* cleanup

* linting

* Tidy up

* Adjust
2026-04-27 10:33:20 +00:00
ElementRobot
4682f62e52
[create-pull-request] automated change (#33301)
Co-authored-by: t3chguy <2403652+t3chguy@users.noreply.github.com>
2026-04-27 07:27:43 +00:00
Will Hunt
4a14e203a5
Slight adjustments to URL Preview text sizing (#33282)
* Remove CSS specification of fonts

* Reduce font size

* Remove margin

* Update snaps
2026-04-24 14:23:35 +00:00
Will Hunt
6c7c90c15d
Stabilize MImage/MVideoBodyView snapshots (#33289)
* Stabilize MImage/MVideoBodyView snapshots

* add to global

* Use vite/client for imports

* fixup
2026-04-24 09:34:15 +00:00
ElementRobot
0201a7eb1a
[create-pull-request] automated change (#33287)
Co-authored-by: t3chguy <2403652+t3chguy@users.noreply.github.com>
2026-04-24 07:12:08 +00:00
renovate[bot]
c02b970d35
Update dependency @vector-im/compound-web to v9.2.1 (#33270)
* Update dependency @vector-im/compound-web to v9.2.1

* Update button sizes

* More button size updates

* Another button size

* Button size

* Snapshot updates

* Snapshots

* More sm/md

* More button size updates

* snapshot

* and one more from merging develop

* More snapshots

* Phantom typing

* yep, more snapshots

* More snapshots

* More snapshots

* Last ones?

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: David Baker <dbkr@users.noreply.github.com>
2026-04-23 12:18:56 +00:00
rbondesson
bb4a7e9613
Move RovingTabIndex to shared component and use it in ActionBarView (#33263)
* Create a new shared component and a wrapper in app/web

* Move unit tests and add new for better coverage

* Refactor ActionBarView to use the RovingTabIndexProvider

* Clean up the interface and adjust callers

* Added documentation and renamed type for better readabililty

* Reverting the clean up of IContext

* Fix Sonar issues

* More Sonar issus fixed
2026-04-23 09:33:32 +00:00
Michael Telatynski
1a6b0e22a1
Add CI to detect stale vis screenshots (#33274)
* Add CI to detect stale vis screenshots

* Remove already installed `tree` command

* Remove workaround for vis silently adding missing screenshots in CI

* Fix stale screenshot detection

* Test that CI doesn't silently create new screenshots

* Discard changes to packages/shared-components/src/room/composer/Banner/Banner.stories.tsx

* Delete stale snapshots
2026-04-23 09:24:31 +00:00
Michael Telatynski
8f9953f419
Fix flaky test src/room/composer/Banner/Banner.stories.tsx > With Avatar Image (#33275)
* Fix flaky test `src/room/composer/Banner/Banner.stories.tsx > With Avatar Image`

it was previously loading an external (slow) image which was random (!) by design

Fixes https://github.com/element-hq/element-web/issues/33273

* Fix styling

* Iterate

* Update snapshot
2026-04-23 08:26:48 +00:00
Michael Telatynski
12df09bd4b
Move playwright-common wait-on from devDependencies to dependencies (#33272)
as it is needed by the `playwright-screenshots.sh` script which is exposed to dependants
2026-04-23 07:51:39 +00:00
Florian Duros
f4c62abbcd
Room list: assign room to custom section (#33238)
* feat(sc): add new toast type for room list

* feat(sc): add section entries in room list item menu

* feat(rls): expose util functions

* feat: allows to tag room with custom sections

* feat(vm): add new Chat moved toast to room list vm

* feat(vm): add section selection to room list item vm

* feat(e2e): add tests for adding room in a custom section

* test(e2e): update existing screenshots

* chore: fix lint after merge

* chore: remove outline in test
2026-04-22 19:50:54 +00:00
Will Hunt
9df7182c0c
Redesign link previews (#33061)
* Commit design update

* Add figma links

* Check in other changes

* revert accidental change

* Iterative update

* linting n test fiddles

* linting

* Cleanup

* update snaps

* Move URL previews to new home

* Fix paths

* compress img

* Add back all the stories

* Improved rendering

* Fixup

* Update previews again

* lint

* update stories

* Update snaps again

* More screenshots

* Also these

* Update snaps

* include site name

* Update snaps again

* Use a scale so the images don't go blur

* update snaps again

* Update snaps

* remove mistaken playwright cfg

* update pw snaps

* update snap

* update previews

* Update with new designs

* Update screenshots
2026-04-22 13:23:24 +00:00
renovate[bot]
2d16498fe6
Update dependency typescript to v6 (#32927)
* Update dependency typescript to v6

* Switch to unplugin-vts

Workaround for https://github.com/qmhc/unplugin-dts/issues/467

And tweak tsconfigs

* tweak tsconfig

* Make tsc happy

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2026-04-22 12:28:54 +00:00
Florian Duros
9df9fb9428
Room list: scroll to newly creation section (#33210)
* feat(rls): emit tag when section is created

* feat(vm): scroll to newly section tag

* feat(view): scroll to new section
2026-04-22 12:21:41 +00:00
renovate[bot]
a08c34142f
Update dependency vite to v8 (#33252)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-22 08:48:19 +00:00
renovate[bot]
44a2c9936d
Update react (#33247)
* Update react

* Pin back react-resizeable-panels as it overwrites onFocus/onBlur

* Roll back react-resizable panels fully

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2026-04-22 08:44:21 +00:00
renovate[bot]
4437dadef6
Update dependency storybook-addon-vis to v4 (#33251)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-22 08:30:27 +00:00