56 Commits

Author SHA1 Message Date
claude 2d44c920fd fix(mobile): scale up editor UI chrome fonts and toolbar on mobile
Build and Deploy Verso / deploy (push) Successful in 12m33s
Adds a @media (max-width: 767px) block scoped to .ide-redesign-main
that bumps the CSS font-size tokens one step each and increases the
toolbar height, making buttons, labels, and panel headers readable
on a phone without touching the CodeMirror editor font size (which
is controlled by user settings independently).

Also reverts the unintended rail auto-collapse from the previous
commit — collapsing the sidebar was not the requested change.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-18 22:23:23 +00:00
claude 7bc60a4e10 feat(mobile): collapse rail by default; tighten project page header layout
Build and Deploy Verso / deploy (push) Has been cancelled
Editor:
- Auto-collapse the file-tree rail on mobile so the editor+PDF panels
  occupy the full screen width instead of sharing it with a 15% sidebar.
  The user can still open the rail from the toolbar; the collapse only
  fires on first load or when switching to a mobile viewport.

Project page (Lumiere):
- Move the XS/M/L zoom buttons from the mobile filter-pill toolbar into
  a row with the New Project button, so neither is stranded alone.
- The search bar gets its own full-width row above the actions row.
- Desktop layout is unchanged (search + new-project stay side-by-side;
  zoom stays in the title row). `display:contents` makes the wrapper
  div transparent to the desktop flex container.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-18 22:18:28 +00:00
claude 51d0314c1c fix(mobile): detect touch devices with spoofed viewport width
Build and Deploy Verso / deploy (push) Successful in 10m17s
Tor Browser and Firefox with privacy.resistFingerprinting report a
desktop-sized viewport (~980px) even on a real Android phone. This made
window.matchMedia('(max-width: 767px)') return false, so isMobile was
always false on Tor, leaving the editor in side-by-side (horizontal)
layout instead of the expected vertical stack.

Fix: add a secondary check using `(pointer: coarse) and (max-width:
1024px)`. Touch hardware is not spoofed by fingerprinting resistance,
so this reliably catches phones and tablets regardless of the reported
viewport width. Applied to both getInitialLayout() and the live
isMobile state in main-layout.tsx.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-18 14:31:56 +00:00
claude f629f6a50c Mobile polish: max thumbnail quality, tab-bar filter chips, fix vertical split default
Build and Deploy Verso / deploy (push) Successful in 10m12s
- CLSI thumbnails: bump to 794px/q90 (matches preview quality) for
  crisp display on 2x/3x phone screens
- Lumière filter chips → underline tab bar: single scrollable row with
  teal active indicator, no more wrapping alignment issues; zoom buttons
  separated by a vertical divider on the right
- Fix editor vertical split default on mobile: disable react-resizable-panels
  autoSaveId on mobile to prevent a stale collapsed PDF pane from firing
  onCollapse → changeLayout('flat') and overriding the verticalSplit
  default set by getInitialLayout()

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-18 12:19:10 +00:00
claude 0a5bd4e47d Fix mobile layout key, language picker close handler, and presentation download
Build and Deploy Verso / deploy (push) Has been cancelled
- Mobile vertical layout: add key= based on direction so react-resizable-panels
  remounts cleanly when switching between horizontal and vertical; also use
  isVertical (not just pdfLayout) for the autoSaveId to avoid restoring a
  mismatched layout from localStorage
- Language picker: replace stopPropagation pattern with a containment check on
  the document click handler — more robust on React pages where Bootstrap JS or
  React's event delegation can interfere with stopPropagation
- Presentation download dropdown: use popperConfig strategy:'fixed' so the menu
  escapes overflow:hidden table cells; remove forced drop='up' and let Popper
  choose; defer URL.revokeObjectURL by 10 s to give the browser time to start
  the download before the blob URL is released

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-16 11:01:15 +00:00
claude 11227d59e3 Editor mobile ergonomics: vertical split layout on phones and as desktop option
Build and Deploy Verso / deploy (push) Successful in 14m3s
On mobile (< 768 px) the existing side-by-side layout automatically switches
to a vertical stack (editor on top, PDF/presentation on bottom) without
changing the stored layout preference.

A new "Top / bottom split" option is added to the layout menu so desktop
users can choose the same vertical split explicitly.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-16 09:25:15 +00:00
Mathias Jakobsen eddec90cb1 Merge pull request #33649 from overleaf/mj-command-palette
[web] Add command palette

GitOrigin-RevId: 5bf1903836810ca5f0e2bc7f6c00a4b1da797ea2
2026-05-21 08:07:04 +00:00
Domagoj Kriskovic 415db24ba4 [web] Add PythonExecutionContext with per-file output buffers (#32737)
* [web] extract PythonExecutionContext and PythonRunner to manage pyodide execution per file

* [web] define worker URL in python execution context in order to avoid breaking cjs-based tests

* [web] use null check for doc contents to allow running empty python files

* [web] flush buffered editor ops before refreshing snapshot for python execution

* [web] catch getExecutionContext errors in python runner to prevent unhandled rejections

* [web] add PythonRunner unit tests and extract shared WorkerMock

* refactor: rename snapshot to state in PythonRunner

* fix: remove unnecessary path normalization in PythonExecutionProvider

* fix cypress tests

GitOrigin-RevId: 9c55586d982fe8df5b90374227005c6b83e94d1f
2026-04-21 08:05:50 +00:00
Alexandre Bourdin 671df33da3 Merge pull request #32244 from overleaf/ab-labs-in-feature-flags
[web] Merge Labs programme into the Feature flags system

GitOrigin-RevId: db75e07bf3272becc11ef1eeda3850098b3daa9d
2026-03-26 09:06:51 +00:00
Domagoj Kriskovic 3b17b0a46a feat: implement Overleaf Code experiment with Python execution support
GitOrigin-RevId: 54ca98525b2ae056fb34b3713320e868b8c19613
2026-03-09 09:05:39 +00:00
Domagoj Kriskovic 138f7f8023 feat: add Python support with Pyodide integration
GitOrigin-RevId: 382ce102c43050aace691dd89d825a94abf347a8
2026-03-09 09:05:34 +00:00
Mathias Jakobsen a6ba9c1016 Merge pull request #31881 from overleaf/mj-ux-lite-editor-march-26
[web] Prepare re-run of UX lite survey

GitOrigin-RevId: e73249bd43dccfc6a40ee01d58bf01f6c6cf7f79
2026-03-06 09:10:51 +00:00
Davinder Singh b7f5344859 Tearing down of old Editor (Integrations panel) and other files (#31701)
* moving files from ide-redesign/components/editor-tour to features/editor-tour

moving files from ide-redesign/components/integrations-panel to features/integrations-panel

fixing imports

Revert "moving files from ide-redesign/components/editor-tour to features/editor-tour"

This reverts commit 9e4dcd4e001ffa4bfdb1053fb8824c1e8521ab10.

* moving files from ide-redesign/components/help -> ide-react/components/rail

* ide-redesign/components/breadcrumbs → features/source-editor/extensions

* ide-redesign/components/editor.tsx → ide-react/components/layout

* ide-redesign/components/full-project-search-panel.tsx → ide-react/components/rail/full-project-search-panel.tsx

* removing old-editor-warning-tooltip

* ide-redesign/components/tooltip-promo.tsx → shared/components/tooltip-promo.tsx

make cleanup_unused_locales

* extract-translations

GitOrigin-RevId: b9f44c4820bb4e0a7eef4f6f9a58ff96fd007bf9
2026-03-06 09:06:48 +00:00
Davinder Singh d03ae68294 Merge pull request #31606 from overleaf/ds-editor-settings-tear-down
Tearing down of old Editor (Settings)

GitOrigin-RevId: d9e23e61a8e34eb22e9c9e3453a157fb275f68f0
2026-03-06 09:06:43 +00:00
Jimmy Domagala-Tang fc8d564320 Editor Redesign Cleanup: main layout, toolbar, and rail (#31031)
* feat: integrate  main layout, toolbar, and rail from redesign into main ide-react folder

* feat: remove additional files no longer used after ide redesign

GitOrigin-RevId: 8fd77f63cb9c67be91995a9dde13b0fe2376d80f
2026-02-03 09:06:37 +00:00
David 129ea72d36 Merge pull request #29152 from overleaf/dp-dashboard-dark-mode
Add data-theme attribute to project list page

GitOrigin-RevId: 3a623e3258d55e01f0911bcc45b78bcdba21745b
2025-10-22 08:05:34 +00:00
David 86655a708a Merge pull request #27684 from overleaf/dp-teardown-labs
Cleanup editor-redesign labs experiment

GitOrigin-RevId: 7697736f3bada8d205bab98c03ba96a99734311a
2025-08-19 08:04:42 +00:00
Mathias Jakobsen 8f2001e477 Merge pull request #27329 from overleaf/dp-editor-redesign-beta
Prepare editor redesign for beta release

GitOrigin-RevId: 584c0303f652640669234bd227780ed4f20b76c0
2025-08-01 08:05:42 +00:00
Antoine Clausse 2d5a3efc12 [web] Add compilation indicator favicon (#25990)
* Import changes from Hackathon

https://github.com/overleaf/internal/pull/24501

* Update compile status: allow errors

* Update favicons. Use the ones from Figma

* Optimize and reuse path from favicon.svg

* Clear status favicon after 5s on active tab

* Rename hook from useCompileNotification to useStatusFavicon

* Add tests

* Revert changes to favicon.svg

* Query favicon on document.head

GitOrigin-RevId: 3972b1981abaf6c80273e0ed5b1bc05eb51bd689
2025-06-24 08:05:15 +00:00
Miguel Serrano 04fa5366ce Merge pull request #26070 from overleaf/msm-disable-dropbox
[web] Disable Dropbox Capability

GitOrigin-RevId: 5f91d2918bf3b88e52f4d27c828a4715f9b88629
2025-06-20 08:05:20 +00:00
David 79f9957b68 Merge pull request #25164 from overleaf/dp-editor-survey
Create Editor Survey

GitOrigin-RevId: dc11ef16c0a00aa846ac7a664dd88e9531e832f2
2025-05-02 08:05:47 +00:00
David dcabf55882 Merge pull request #24137 from overleaf/mj-ide-permissions-utils
[web] Add switcher for editor redesign

GitOrigin-RevId: 806a1f567027df53f879b564a50aaae9166c8480
2025-03-18 09:05:40 +00:00
Domagoj Kriskovic 408f6dfee3 Open overleaf assist paywall via event listener (#23958)
* Add overleaf assist paywall modal component in storybook

* update img alt

* remove data-action

* rename assistant -> assist

* use css var for blue color

* Open Overleaf assist paywall if in "overleaf-assist-bundle" split-test

* dont use optional planCode

* Open overleaf assist paywal via event listener

* rename to mainEditorLayoutModals

* call setAssistantUpgraded when modal is shown

* fix merge mistake

* fix lint error

* fix merge differences

GitOrigin-RevId: 0b3162a5c241d4dbe2773ae773c3e35f02c5c492
2025-03-04 09:04:37 +00:00
Alf Eaton 6688b81ece Ensure that the Chat pane is disabled for read-only link collaborators (#23785)
GitOrigin-RevId: 56e1b1d6b08ec7537386cab0b251e325d681e117
2025-02-24 09:04:58 +00:00
Alf Eaton 9854d37916 Minimise use of ide context provider (#23308)
GitOrigin-RevId: 468b8d4b33925bdb97bd46d2c4e7acb969f3d82b
2025-02-07 09:05:05 +00:00
Mathias Jakobsen d34d15242e Merge pull request #22855 from overleaf/mj-ide-settings
[web] Add settings modal skeleton to editor redesign

GitOrigin-RevId: bc2e7f07f7ab737a67965fa615a04c8ee88b1271
2025-01-21 09:05:23 +00:00
David e9e59bbcc9 Merge pull request #22720 from overleaf/dp-editor-redesign
Editor redesign skeleton page

GitOrigin-RevId: 966c88ac3714e4cc7de3e21951e4e1641bfd6852
2025-01-09 09:05:43 +00:00
Mathias Jakobsen cb72799fff [web] Add toast notifications to editor (#21567)
GitOrigin-RevId: 7f7ab83d4615f564c0e79bc2a05ca6cb9e5239fd
2024-11-11 09:05:12 +00:00
Brian Gough 4a32f49b3d add an option to remove chat from server pro (#20445)
* add option to remove chat from backend

* make chat default to enabled

* Check chat is enabled in chat context

---------

Co-authored-by: mserranom <mserranom@gmail.com>
GitOrigin-RevId: 7dda09df4bb74007eb4b1272d4918155b5cddaf6
2024-10-14 11:07:02 +00:00
Mathias Jakobsen 663e2304f6 Merge pull request #20272 from overleaf/revert-20268-revert-19885-mj-resizeable-panels
[web] Upgrade react-resizable-panels (2nd attempt)

GitOrigin-RevId: 643a90044dac0daf39245fa29267b16550fd6e69
2024-09-06 08:05:28 +00:00
Alf Eaton 0dfb4d8de6 Lazy-load the React History view (#17290)
GitOrigin-RevId: 6d6ee5e993658e0895d9c2bcd4c2f60bba86c04e
2024-02-27 17:02:01 +00:00
Alf Eaton 3e11ee6e5a Ensure that the editor state is preserved when switching views (#17238)
GitOrigin-RevId: 946b82cb633afbea13a72e30a9ce432aa1a8196d
2024-02-23 09:03:06 +00:00
Alf Eaton 6b3a953c8d Extend the size limits of some panels (#16543)
GitOrigin-RevId: 4c25e93effc08c6bf62cdca7e95b31ca36ac154f
2024-01-19 09:04:56 +00:00
Alf Eaton 4fb2cbdf15 Increase default sidebar size (#16375)
GitOrigin-RevId: 0df345a468f68d2205bf919efa8d93be40d7a048
2024-01-04 09:03:11 +00:00
Alf Eaton eb3e5037f8 Merge pull request #16335 from overleaf/ae-real-time-down
[ide-react] Improve handling of lost connection

GitOrigin-RevId: 89b641b2beca4f9de65551e6873b3c8c11bb1695
2024-01-04 09:03:05 +00:00
Alf Eaton e7dfd14986 Upgrade react-resizable-panels (#16321)
GitOrigin-RevId: 524257c441fc98ffc0e3da6f1e703ebdfbfbffb7
2023-12-21 09:03:02 +00:00
Alf Eaton 6c73a1d38a [ide-react] Remove useFixedSizeColumn (#16299)
GitOrigin-RevId: 7cee1e153d5ae3d15250097dc87f430f4e799957
2023-12-21 09:02:59 +00:00
Alf Eaton 5c6b8ec015 Use the expanded size from localStorage when available (#16298)
GitOrigin-RevId: 7747881b99d23ebb0ee38d044c671bffb7504302
2023-12-21 09:02:56 +00:00
Alf Eaton c2b553e915 [ide-react] Improve file tree and outline components in the editor sidebar (#16225)
* Upgrade react-resizable-panels
* Add FileTreeOpenProvider
* Add OutlineProvider and OutlineContainer
* Convert Outline tests to Cypress

GitOrigin-RevId: afd9ae8190edf37642e36a4ffb331f1182c8982d
2023-12-18 09:03:53 +00:00
Alf Eaton 8dbf2b64f8 [ide-react] Notify about unsaved changes (#16163)
* Notify about unsaved changes
* Move system message components and types to shared folder
* Add system messages component

GitOrigin-RevId: ab81a24888847bd9a8a390fd1af6b58f471f7a4b
2023-12-15 09:03:27 +00:00
Alf Eaton 8c91a2e4cf Improve chat pane handling (#16123)
GitOrigin-RevId: b4185a192b393e339aee8bc27e615d61d66a8b34
2023-12-11 09:03:09 +00:00
Alf Eaton d5b3c10cb5 Upgrade react-resizable-panels (#15998)
GitOrigin-RevId: af799f1a5b4945ad2acbb460806d559fae7416b9
2023-12-06 09:04:40 +00:00
Alf Eaton 23593f8650 [ide-react] Tidy IDE page layout components (#15953)
* Defer script loading
* Refactor loading
* Wait for project:joined
* Only mount IdePage once everything has connected
* Add useConnectionState hook and comments
* Remove placeholder components
* Move props into EditorAndSidebar
* Move props into MainLayout
* Tidy editor and sidebar components
* Lazy-load the symbol palette pane and separate the loading pane

GitOrigin-RevId: 4b721a06d6aba0ae0ec91768e6a6e29cf15e2083
2023-12-06 09:03:49 +00:00
Tim Down 9d8b21edc0 Merge pull request #15766 from overleaf/td-ide-page-hide-content-during-resize
React IDE page: hide editor and PDF during resize

GitOrigin-RevId: bad1a7601d1706e684c91c88c3239a6618479681
2023-11-16 09:03:11 +00:00
Tim Down 1c820de200 Merge pull request #15610 from overleaf/td-ide-page-editor-events
React IDE page: hook up events

GitOrigin-RevId: 1121a30755fc600023f06925ca3eafa7a8e1ee14
2023-11-14 09:04:36 +00:00
Tim Down 80ef96846a Merge pull request #15742 from overleaf/td-ide-page-double-click-divider
React IDE page: make column dividers double clickable

GitOrigin-RevId: 005b03ec5837293a2182d2d30d0955abaadc8e0c
2023-11-14 09:04:18 +00:00
Tim Down c3afce73c1 Merge pull request #15592 from overleaf/td-ide-page-more-modals
React IDE page: add out-of-sync modal and project deleted modal

GitOrigin-RevId: 6081a40c3009e8ebc5b3f9752c4059af3d52966d
2023-11-07 09:04:44 +00:00
Tim Down a4b9947fe4 Merge pull request #15581 from overleaf/td-ide-page-restore-file
React IDE page: implement file restore and simplify some state

GitOrigin-RevId: ff63eb4f649156b58d9f8c4573cb6bd5b516a299
2023-11-06 09:04:11 +00:00
ilkin-overleaf 2bbead57ec Merge pull request #15474 from overleaf/td-ide-page-file-and-multiple-view
React IDE page: implement file views and file delete handling

GitOrigin-RevId: 491cad7b147e55bc4a250da387916c7e2dff14ae
2023-11-03 09:00:08 +00:00
ilkin-overleaf c39a566fe3 Merge pull request #15221 from overleaf/ii-ide-page-prototype-file-tree-history
FileTree for history React IDE page

GitOrigin-RevId: 56fadced9f507297ba16dc54715811f36dcfd5b5
2023-10-30 09:04:33 +00:00