Commit Graph
5114 Commits
Author SHA1 Message Date
Linus Rath efdec45f52 fix: let the calendar buttons in settings wrap instead of running past the edge 2026-11-04 12:04:33 +01:00
Linus Rath 4333cc4080 fix: find time zones by abbreviation and list the exact offset first 2026-11-04 12:04:32 +01:00
Linus Rath 17350c45ca fix: give the out-of-office reply a short toolbar and date fields that say what empty means 2026-11-04 12:04:06 +01:00
Linus Rath 760a400074 feat: turn out of office off from the banner in the mail sidebar 2026-11-04 12:04:03 +01:00
Linus Rath 39e43de51e fix: offer to apply a filter rule to the Inbox from its dialog, not a passing toast 2026-11-04 12:04:01 +01:00
Linus Rath fadef1aee6 Merge branch 'feat/do-ux-compose-fixes' into feat/desktop-offline 2026-11-04 10:04:56 +01:00
Linus Rath a1673dd77a Merge branch 'feat/desktop-offline' into feat/do-ux-compose-fixes 2026-11-04 09:59:11 +01:00
Linus Rath a2559713e9 test: compare the plugin kit's text area with the signature editor it now copies 2026-11-04 09:55:40 +01:00
Linus Rath 989385f4f6 Merge branch 'feat/desktop-offline' into feat/do-ux-compose-fixes
# Conflicts:
#	components/email/email-viewer.tsx
#	components/settings/accessibility-settings.tsx
#	lib/__tests__/settings-search.test.ts
#	lib/settings-search.ts
2026-11-04 09:54:25 +01:00
Linus Rath aa62855759 Merge branch 'feat/do-ux-settings-fixes' into feat/desktop-offline
# Conflicts:
#	components/layout/__tests__/account-switcher-mountain-view.test.tsx
#	components/layout/account-switcher.tsx
#	components/settings/accessibility-settings.tsx
#	components/settings/reading-settings.tsx
2026-11-04 09:44:51 +01:00
Linus Rath d91b8a879c fix: say Draft saved on Ctrl+S also when autosave already had everything
The shortcut help test now counts two Ctrl + K entries (command palette and Insert link), and the Cc/Bcc key test waits for the To field's opening focus first.
2026-11-04 09:42:40 +01:00
Linus Rath 81d017b2df Merge branch 'feat/do-ux-mail-fixes' into feat/desktop-offline 2026-11-04 09:24:33 +01:00
Linus Rath c2d7addbd7 fix: point the Alt menu bar's submenu arrows the right way in right-to-left languages 2026-11-04 09:24:29 +01:00
Linus Rath 4a764150b2 Merge branch 'feat/desktop-offline' into feat/do-ux-settings-fixes 2026-11-04 09:22:44 +01:00
Linus Rath b97eba59c1 test: give the next-intl mock the locale the Move list now reads 2026-11-04 09:21:35 +01:00
Linus Rath ceaceb7f2a Merge branch 'feat/desktop-offline' into feat/do-ux-compose-fixes
# Conflicts:
#	components/email/email-composer.tsx
#	components/email/email-viewer.tsx
#	locales/ar/common.json
#	locales/ca/common.json
#	locales/cs/common.json
#	locales/da/common.json
#	locales/de/common.json
#	locales/en/common.json
#	locales/es/common.json
#	locales/et/common.json
#	locales/fa/common.json
#	locales/fr/common.json
#	locales/he/common.json
#	locales/hu/common.json
#	locales/it/common.json
#	locales/ja/common.json
#	locales/ko/common.json
#	locales/lv/common.json
#	locales/mn/common.json
#	locales/nb/common.json
#	locales/nl/common.json
#	locales/pl/common.json
#	locales/pt/common.json
#	locales/ro/common.json
#	locales/ru/common.json
#	locales/sk/common.json
#	locales/th/common.json
#	locales/tr/common.json
#	locales/uk/common.json
#	locales/vi/common.json
#	locales/zh-TW/common.json
#	locales/zh/common.json
2026-11-04 09:20:50 +01:00
Linus Rath adbbfe8149 test: give the welcome banner mock the due hook the notice bar now reads 2026-11-04 09:18:32 +01:00
Linus Rath 56e833fe6a fix: use the filterable Move list on the selection bar 2026-11-04 09:18:32 +01:00
Linus Rath f1266889ed fix: list To and Cc in the header of a message forwarded from the reader 2026-11-04 09:15:42 +01:00
Linus Rath a0dca05585 test: keep single letters out of the composer's shortcut list 2026-11-04 09:13:46 +01:00
Linus Rath 2ca4946c6e feat: add Ctrl+K for a link, Ctrl+S to save the draft and Ctrl+Shift+C or B for Cc and Bcc in the composer 2026-11-04 09:13:05 +01:00
Linus Rath fcc9fc0cc0 Merge branch 'feat/desktop-offline' into feat/do-ux-mail-fixes
# Conflicts:
#	components/email/email-viewer.tsx
#	components/mail/mail-app.tsx
#	components/offline/offline-host.tsx
#	components/ui/welcome-banner.tsx
#	locales/ar/common.json
#	locales/ca/common.json
#	locales/cs/common.json
#	locales/da/common.json
#	locales/de/common.json
#	locales/en/common.json
#	locales/es/common.json
#	locales/et/common.json
#	locales/fa/common.json
#	locales/fr/common.json
#	locales/he/common.json
#	locales/hu/common.json
#	locales/it/common.json
#	locales/ja/common.json
#	locales/ko/common.json
#	locales/lv/common.json
#	locales/mn/common.json
#	locales/nb/common.json
#	locales/nl/common.json
#	locales/pl/common.json
#	locales/pt/common.json
#	locales/ro/common.json
#	locales/ru/common.json
#	locales/sk/common.json
#	locales/th/common.json
#	locales/tr/common.json
#	locales/uk/common.json
#	locales/vi/common.json
#	locales/zh-TW/common.json
#	locales/zh/common.json
2026-11-04 09:11:09 +01:00
Linus Rath 9df9505da0 test: look for the archive toast by its new wording in the undo reopen test 2026-11-04 09:09:18 +01:00
Linus Rath 2094cca388 fix: leave an emptied out-of-office message box empty instead of showing sample text 2026-11-04 09:08:30 +01:00
Linus Rath a53e7fab3a Merge branch 'feat/do-ux-mail-layout' into feat/do-ux-mail-fixes 2026-11-04 09:08:21 +01:00
Linus Rath b509ce067f fix: move Use a sub-address and Edit sender into the From list instead of buttons on every message
The custom From gate tests now look for the Edit sender entry in the From list instead of the Override button.
2026-11-04 09:08:17 +01:00
Linus Rath 76c0bd1d41 test: save a subject-less draft by closing, as closing now saves without asking 2026-11-04 09:08:09 +01:00
Linus Rath 044647ff34 fix: keep the desktop layout in a half-screen window and at 150 % zoom
A window snapped to half the screen (640-800 px) or a 1366x768 laptop
at 150 % (911 px) got the phone and tablet layout: bottom tab bar,
folders in a drawer, Settings as a phone list with a Back arrow. The
layout switched at the 64rem (1024 px) breakpoint.

Now the phone layout starts below 600 px. From 600 to 1024 px the app
is a compact desktop: app rail at the side, folder sidebar folded to
its icons (the existing collapsed state, opened per session with its
toggle), Settings with its two panes and a narrower page list. Below
840 px the split layout opens a message in the list's place, as the
focused layout does. This holds in the browser and the desktop app,
in the Pro shell (which now runs from 600 px) and under Mountain View.

- `hooks/use-media-query.ts`: classifyWidth, PHONE_BELOW 600,
  FULL_DESKTOP 1024; the tablet class (`isTablet`) is gone, the store
  has `isCompact` instead. Plugins still see "tablet" for it.
- `app/globals.css`: a `desk:` breakpoint at 37.5rem for the layout
  classes, and a `tap:` variant for 44px rows on phones and touch
  screens below 1024 px (was every window below 1024 px).
- Touch screens below 1024 px keep swiping list rows (was phones only).
- The boot skeletons, boot script, mail app, sidebar, reader, admin
  shell and calendar, contacts and files follow the new widths.

Tests changed with the behaviour: the tablet cases in pro-gate,
mail-app-mv-composer-move, mail-app-compose-handoff,
mail-app-thread-expand-mark-read, mobile-tour-end and
thread-list-item-columns now run on a phone or a compact desktop, as
those widths no longer exist as a tablet. mail-app-short-window-tab-bar
is replaced by mail-app-compact-layout: a phone on its side is a
compact desktop with the rail at the side, so the short-window tab bar
rule is gone. Class and media-query assertions follow desk:/tap: and
37.5rem; the 32px-text test uses 1100 px, since 1440 px at 32px is now
a compact desktop.
2026-11-04 09:07:06 +01:00
Linus Rath dfed23e382 fix: keep developer tools off when the forced policy value can't be read 2026-11-04 09:06:38 +01:00
Linus Rath 2b2b7b8298 fix: show every attachment in the composer, with type icons and a total, failed and uploading files first
The attachment list test now expects every chip and a bounded, scrolling row instead of three chips and a +N counter.
2026-11-04 09:01:04 +01:00
Linus Rath dcb505aac1 fix: find calendar subscriptions and mail app server settings in settings search 2026-11-04 08:46:34 +01:00
Linus Rath 0ba96ae79f refactor: name the plugin turn-on callback so the native dialog guard passes 2026-11-04 08:45:25 +01:00
Linus Rath d70c7201fa fix: find the contact list section in settings search
The 2fa and two-factor search tests now expect the row's new name, Two-step sign-in, since the security row was renamed.
2026-11-04 08:45:24 +01:00
Linus Rath b732acbcdb fix: give every settings row its own name 2026-11-04 08:45:23 +01:00
Linus Rath 69ec26fe33 fix: remove a recipient whole on the second Backspace instead of turning it into text
The mention test's Backspace check now expects the chip to be selected, not put back into the field as text.
2026-11-04 08:43:29 +01:00
Linus Rath 1fdfffad45 fix: read the send hook count safely in the composer's Options menu 2026-11-04 08:42:39 +01:00
Linus Rath 3841bdd630 Merge branch 'feat/do-drop-overlay' into feat/desktop-offline
# Conflicts:
#	desktop-policies/de-DE/Bulwark.adml
#	desktop-policies/en-US/Bulwark.adml
2026-11-04 08:37:26 +01:00
Linus Rath 59aea3babe Merge branch 'feat/do-menu-fixes' into feat/desktop-offline 2026-11-04 08:36:35 +01:00
Linus Rath 472ee53d88 fix: insert pasted and dropped images without a dialog, with an optional Add description chip
The image description tests now open the dialog from the chip on the image, since a drop no longer opens it by itself.
2026-11-04 08:36:25 +01:00
Linus Rath 91b237330e Merge branch 'feat/desktop-offline' into feat/do-ux-settings-fixes
# Conflicts:
#	components/settings/desktop-os-settings.tsx
#	components/settings/notification-settings.tsx
#	components/settings/protocol-handler-settings.tsx
2026-11-04 08:35:53 +01:00
Linus Rath 217e04bb31 Merge branch 'feat/do-uxs-wording' into feat/do-ux-settings-fixes 2026-11-04 08:35:00 +01:00
Linus Rath d0c86a4fce Merge branch 'feat/do-uxs-folders' into feat/do-ux-settings-fixes 2026-11-04 08:34:58 +01:00
Linus Rath ceaa81cd9e Merge branch 'feat/do-uxs-plugins' into feat/do-ux-settings-fixes 2026-11-04 08:34:57 +01:00
Linus Rath e2236ea476 Merge branch 'feat/do-uxs-general' into feat/do-ux-settings-fixes
# Conflicts:
#	components/settings/__tests__/settings-search-anchors.test.tsx
#	components/settings/accessibility-settings.tsx
#	lib/settings-search.ts
2026-11-04 08:34:25 +01:00
Linus Rath adbab2e4aa Merge branch 'feat/do-uxs-structure' into feat/do-ux-settings-fixes
# Conflicts:
#	lib/settings-search.ts
2026-11-04 08:33:26 +01:00
Linus Rath e45c66c755 Merge branch 'feat/do-uxs-vacation' into feat/do-ux-settings-fixes 2026-11-04 08:33:14 +01:00
Linus Rath ad0b238e3d feat: open a reply under the message it answers, which stays readable above it 2026-11-04 08:32:05 +01:00
Linus Rath e8f17e2e3a fix: say no sidebar apps were added yet instead of repeating the section text 2026-11-04 08:24:36 +01:00
Linus Rath dc16e2c2da fix: correct admin wording about Stalwart setup, templates, cookie SameSite and when users get a change 2026-11-04 08:23:30 +01:00
Linus Rath 7517b024ec fix: make Discard on the Continue draft bar delete the draft, with Undo, and reach it by keyboard 2026-11-04 08:23:01 +01:00