Linus Rath
c60cc702f7
fix: open Save to Files with My files selected so Save here works right away
2026-10-28 10:45:12 +01:00
Linus Rath
4b2aba430c
fix: let Back close overlays the same way in calendar, contacts and files
2026-10-28 07:32:05 +01:00
Linus Rath
7f9a8bc5e7
fix: show images and other files in one preview frame, with ←/→ to the next file of the folder
2026-10-28 05:39:10 +01:00
Linus Rath
f5f536f7c9
fix: one kind of button in the Files selection bar, a closable details panel on tablets, and a share dialog that takes the focus
2026-10-28 05:29:23 +01:00
Linus Rath
15446aa0b6
fix: say when duplicating a contact fails, and why a folder rename failed
2026-10-28 05:22:46 +01:00
Linus Rath
b540b68706
fix: tell an empty address book from an empty account, offer Import there, and use one empty state in Contacts and Files
2026-10-28 05:09:04 +01:00
Linus Rath
083bb1f6bc
fix: put New group, Import and Refresh in the phone header menu of Contacts and Files
2026-10-28 05:04:13 +01:00
Linus Rath
4b243dbdbe
Merge branch 'main' into ux/contacts-files
...
# Conflicts:
# components/contacts/contact-list.tsx
2026-10-28 05:01:48 +01:00
Linus Rath
26aef32786
fix: show the same actions in the same order in every menu of a contact, group or folder
2026-10-28 04:57:25 +01:00
Linus Rath
c04f850b16
fix: use theme colours for folder icons, stars and contact form errors instead of fixed blue, amber and pink
2026-10-28 04:45:59 +01:00
Linus Rath
d24b917c22
fix: use the app's selection colour in Files and the vertical More icon in Contacts and Files
2026-10-28 04:43:56 +01:00
Linus Rath
cdd7c0f0b5
fix: give the Contacts and Files buttons and rows a 44px touch target on phones
2026-10-28 04:42:21 +01:00
Linus Rath
1748b5329b
fix: name every icon button in Contacts and the file preview for screen readers
2026-10-28 04:34:08 +01:00
Linus Rath
46eb9cf42d
fix: mirror the Contacts drawer, search fields and Files chevrons correctly in right-to-left languages
2026-10-28 04:21:47 +01:00
Linus Rath
e53578454a
feat: list the Contacts and Files keys under ? and add their commands to the command palette
2026-10-28 04:20:48 +01:00
Linus Rath
c87baa8408
feat: sync the Files settings with the other settings, with export, reset and a one-time move from this device
2026-10-28 03:51:27 +01:00
Linus Rath
e12aa1f5b9
feat: download a folder as a zip built in the browser, with progress and cancel
2026-10-28 03:44:34 +01:00
Linus Rath
408a2c90dc
feat: move files and folders with Move to… and a folder picker instead of only dragging
2026-10-28 03:40:10 +01:00
Linus Rath
3d72d426d4
feat: keep deleted files in a Files trash with Restore, Delete permanently and Empty trash
2026-10-28 03:35:46 +01:00
Linus Rath
91f9213110
fix: make Backspace delete the selection in Files, as in Mail, and keep Alt+Up for going up
2026-10-28 03:22:37 +01:00
Linus Rath
02ce389140
fix: make rename, new folder, address book and import dialogs close on Escape, keep focus and select the name
2026-10-28 03:20:09 +01:00
Linus Rath
ae412e0cda
feat: show notifications, the command palette and the account avatar in every app's phone header
2026-10-28 03:05:41 +01:00
Linus Rath
14aacd95b8
fix: let Back close an image preview or the document editor instead of leaving Files
2026-10-28 02:48:48 +01:00
Linus Rath
fdc3535c7b
fix: close the Contacts and Files drawer when you pick something in it
2026-10-28 02:43:58 +01:00
Linus Rath
893696791d
fix: keep the hidden Contacts and Files sidebar from covering the nav rail on tablets
2026-10-28 02:40:48 +01:00
Linus Rath
6014142358
fix: show conversation and attached-message attachment names without directional override characters
2026-10-26 11:22:10 +01:00
Linus Rath
cf2c27157d
Merge branch 'main' into feat/stalwart-1.0
...
# Conflicts:
# components/contacts/contacts-app.tsx
# components/email/__tests__/composer-discard.test.tsx
# components/email/calendar-invitation-banner.tsx
# components/email/email-composer.tsx
# components/mail/mail-app.tsx
# components/pro/pro-compose-tab-body.tsx
# components/pro/pro-email-tab-body.tsx
# components/ui/__tests__/avatar.test.tsx
# components/ui/avatar.tsx
# hooks/use-mailbox-drop.ts
# lib/__tests__/calendar-alerts.test.ts
# lib/__tests__/jmap-calendar-tasks.test.ts
# lib/__tests__/jmap-send-threading.test.ts
# lib/demo/demo-client.ts
# lib/demo/fixtures/calendars.ts
# lib/jmap/client-interface.ts
# lib/jmap/client.ts
# lib/web-push.ts
# stores/__tests__/contact-store.test.ts
# stores/__tests__/email-store-thread-key.test.ts
# stores/calendar-store.ts
# stores/contact-store.ts
# stores/email-store.ts
2026-10-26 10:14:12 +01:00
Linus Rath
07627b3a60
fix: give every app's sidebar header and toolbar the same height as mail
2026-10-25 12:30:23 +01:00
Linus Rath
fdf448d0b7
fix: give the calendar, contacts, files and settings sidebar headers the mail header's height
2026-10-19 20:59:44 +02:00
VasilisNtovolos
7fefc128a1
fix: keep file previews open during Strict Mode replay
2026-10-19 16:08:56 +03:00
Linus Rath
c02aadd6a9
fix: preview HTML attachments as sanitised text in a locked frame instead of a same-origin blob document
2026-10-19 00:58:31 +02:00
Linus Rath
b646ff0dc1
fix: preview attachments in the installed app instead of opening a blank window #865
2026-10-17 19:17:55 +02:00
Linus Rath
41a0716c50
Merge branch 'main' into feat/stalwart-1.0
2026-10-16 01:41:48 +02:00
Linus Rath
d16edfe402
fix: put plugin file actions behind a more button in the phone selection toolbar
2026-10-14 09:48:50 +02:00
Linus Rath
eb34caa381
feat: let plugins add entries to file menus and the selection toolbar, and a section to file previews
2026-10-14 04:58:21 +02:00
Linus Rath
96f0681ab5
feat: tell plugins when files are uploaded, downloaded, deleted, renamed, moved or copied, and let them stop it
2026-10-14 03:36:13 +02:00
Linus Rath
c633185cda
Merge branch 'main' into feat/stalwart-1.0
...
# Conflicts:
# CONTRIBUTING.md
# LICENSE
# README.md
# app/api/calendar-agenda/route.ts
# app/api/wopi/files/[fileId]/contents/route.ts
# app/api/wopi/launch/route.ts
# components/calendar/calendar-app.tsx
# components/calendar/calendar-day-view.tsx
# components/calendar/calendar-month-view.tsx
# components/calendar/calendar-week-view.tsx
# components/calendar/event-modal.tsx
# components/contacts/contact-detail.tsx
# components/email/email-composer.tsx
# components/email/email-list.tsx
# components/files/file-browser.tsx
# components/files/files-app.tsx
# components/files/folder-tree-sidebar.tsx
# components/filters/filter-rule-modal.tsx
# components/mail/mail-app.tsx
# hooks/use-mailbox-drop.ts
# integration/run-tests.sh
# lib/__tests__/calendar-agenda-route.test.ts
# lib/__tests__/jmap-draft-lifecycle.test.ts
# lib/__tests__/web-push.test.ts
# lib/account-state-manager.ts
# lib/jmap/client-interface.ts
# lib/jmap/client.ts
# lib/jmap/types.ts
# lib/message-list-order.ts
# lib/sieve/generator.ts
# lib/sieve/parser.ts
# lib/telemetry/payload.ts
# lib/thread-utils.ts
# lib/unified-mailbox.ts
# lib/web-push.ts
# lib/wopi/token.ts
# 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/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/tr/common.json
# locales/uk/common.json
# locales/zh-TW/common.json
# locales/zh/common.json
# scripts/lite/lib.mjs
# stores/__tests__/calendar-store-synthetic-ids.test.ts
# stores/__tests__/email-store-shared-folder-keywords.test.ts
# stores/__tests__/email-store-unified-actions.test.ts
# stores/__tests__/file-store.test.ts
# stores/email-store.ts
# stores/file-store.ts
# stores/message-list-tabs-store.ts
2026-10-12 08:35:08 +02:00
Linus Rath
ae151cec25
feat: set Mountain View's content on a rounded card over a tinted canvas
2026-10-12 00:37:59 +02:00
Linus Rath
d98f0684d9
test: click the My files breadcrumb in the file picker test
2026-10-11 18:12:14 +02:00
Linus Rath
44bfb7ebfd
fix: translate the new Files app strings and label the picker root My files
2026-10-11 17:29:30 +02:00
Linus Rath
bf00ea27cf
fix(files): show the loading skeleton instead of "No files yet" before the first listing
2026-10-11 17:00:56 +02:00
Linus Rath
a4909ae106
fix(files): drop the cursor outline from a file once it is deselected
2026-10-11 16:57:00 +02:00
Linus Rath
958aa500b8
feat(files): add right-click menus to My files, folders, starred and recent in the sidebar
2026-10-11 16:50:08 +02:00
Linus Rath
8f146509ca
fix(files): give the image zoom bar the same card and buttons as the rest of the app
2026-10-11 16:44:37 +02:00
Linus Rath
dfa68a1d2f
fix(files): keep the items a drag selection covers after letting go
2026-10-11 16:42:43 +02:00
Linus Rath
e60840c0e6
fix(files): say the upload was canceled instead of counting it as done
...
Cancelling an upload ended the loop like a normal finish, and the Files
app then reported every picked file as uploaded. Uploads now return how
many files went up and whether they were cancelled, so a cancel shows
"Upload canceled" (with the count of files that made it, if any).
Folder uploads also passed no cancel signal or progress callback to the
blob upload, so Cancel did not stop the file in flight and the progress
line stood still; they now behave like file uploads.
2026-10-11 16:40:32 +02:00
Linus Rath
cd5fe770e4
feat: show file uploads as a toast like every other notice
...
Uploads in Files had their own card with a thick progress bar, larger
corners and a heavier shadow, so they looked unlike the toasts around
them.
Toasts can now show work in progress: the thin line at the bottom fills
with progress instead of counting down, and the toast stays until it is
updated or removed. Uploads use it, with the file and percentage below
the title and Cancel as the toast action.
2026-10-11 16:38:05 +02:00
Linus Rath
87915f8bf1
feat(files): zoom and pan images in the preview, close by clicking beside them
...
The image viewer only zoomed with its buttons, scaled the image inside
a fixed box so a zoomed image could not be moved, and the area around
the image swallowed clicks, so clicking beside it did nothing.
Both the Files image viewer and the attachment preview now use one
viewer that:
- zooms with the wheel, trackpad or two-finger pinch, centred on the
pointer, and with a zoom bar at the bottom (-, percentage, +, fit,
rotate)
- toggles between fit and full size on double-click or double-tap
- pans by dragging, or with the arrow keys, while zoomed
- closes on a click or tap beside the image, but not after a drag
- keeps + / - / 0 / r as shortcuts and Escape to close
2026-10-11 16:32:51 +02:00
Linus Rath
d07939fc04
feat(files): drop the large file upload warning
2026-10-11 16:25:11 +02:00
Linus Rath
4ba39cef0e
feat(files): rework the Files app layout and interactions
...
The Files app had two layouts (folders inline or in a tree), a back bar
and a permanent warning above the list, a toolbar of ten unlabelled
icons, and a Recent list whose entries did nothing. In the tree layout
folders could not be renamed or deleted at all, and the default view,
default sort and hidden-files settings were ignored.
It now follows the contacts and calendar layout:
- a full-height sidebar with a "+" New menu, My files with the folder
tree, Starred, Recent and Shared with me; folders accept dropped items
- a header with collapsing breadcrumbs (also drop targets), search, sort,
list/grid switch and a details toggle; selecting items swaps it for an
action bar
- list rows open from the name and select from the row, with hover
actions; the grid shows folders as chips and files as cards with
lazy, cached thumbnails
- a details panel for the selection or the current folder, empty-folder
and no-results states, a floating upload card, a dismissible
stability warning, and keyboard navigation with the arrow keys
- touch: tap opens, long-press selects, a "+" button in narrow panes
The tree is built from the listing the store already fetches instead of
one full fetch per folder, so it is current after every change. Recent
files open in their folder, and the settings for view, sort, hidden
files and icons now apply. The inline/sidebar setting is gone.
2026-10-11 16:23:19 +02:00