Commit Graph

24651 Commits

Author SHA1 Message Date
Eric Mc Sween
a52c47ebee Merge pull request #33090 from overleaf/em-fix-library-entry-list
Show library entry list on /library page

GitOrigin-RevId: 4336ec6803cca656092c190c3bce9f92d6923a47
2026-04-27 08:06:17 +00:00
Antoine Clausse
e8ea298ee4 [web] Update paywall copy for plans-2026 AI tiers (#33070)
* [web] Update paywall copy for plans-2026 AI tiers

Replace AI-related strings in upgrade/paywall UI when the
plans-2026-phase-1 flag is enabled:

- Add `higher_ai_allowance` ("Higher AI allowance") for paywall bullet
  lists and body text; keep `higher_ai_limits` ("Higher AI limits") for
  the subscriptions dashboard, which uses different wording per spec
- Update three locale strings to use "allowance" instead of "limits":
  `access_all_premium_features_ai`, `plus_additional_collaborators_and_more`,
  `upgrade_to_add_more_collaborators_and_more`
- Fix casing: `upgrade_to_review` "Upgrade to Review" → "Upgrade to review"
- Switch upgrade-benefits and onboarding prompt from `higher_ai_limits`
  to `higher_ai_allowance`
- Fix subscriptions free-plan to show `higher_ai_limits` instead of
  `get_unlimited_ai` under the plans2026 flag
- Fix compile-timeout button to show "Start free trial" under plans2026
  instead of "Start a free trial"
- Update two Cypress assertions for the new track-changes modal title

* Update extracted translations for higher AI allowance

* Remove "start a free trial" with exclamation

* Remove "get unlimited ai" translation entries

GitOrigin-RevId: 12300d94dc81c5407a21d4682d5714d7284c31b0
2026-04-27 08:06:13 +00:00
Antoine Clausse
8fcf007a73 [web] plans-2026: responsive card layout (mobile 1-col, md 2-col, lg 4-col) (#32905)
* plans-2026: wrap cards to 2-col at md, 4-col at lg

Replaces horizontal scroll at md/lg with a wrapping CSS grid so cards
stack in rows instead of requiring horizontal scrolling. The 4-column
layout now kicks in at lg (~992px) rather than xl (~1200px).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* plans-2026: replace mobile horizontal scroll with 1-col stack

Removes the overflow-x scroll behaviour at xs/sm (and the
scrollbar-overlap margin/padding hack that came with it). Cards now
stack in a single column on small screens, consistent with the
2-col/4-col grid above.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* Fix lint

* plans-2026: fix student mode 2-col at lg, remove mobile min-width

Student-mode 2-col override was only kicking in at xl; move it to lg so
the two visible cards (free + student) fill the row correctly. Also drop
the 280px min-width on .plans-card-col — now that mobile uses a 1-col
grid instead of horizontal scroll, it causes unnecessary overflow on
narrow viewports.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* Update breakpoint for plans cards layout to lg for improved responsiveness

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
GitOrigin-RevId: 5ef923dd3795353bd946c1857e78f4b5f7063ab0
2026-04-27 08:06:09 +00:00
Tim Down
fb6e2f17cb Initial version of 2026 interstitial plans page with upgrade mode (#33036)
GitOrigin-RevId: e9da7c1464c6e05e9c70a11d9ad7a3632f189de2
2026-04-27 08:05:55 +00:00
Tim Down
901ec15bc1 Merge pull request #32916 from overleaf/td-pricing-features-follow-up
2026 pricing page feature comparison table polish

GitOrigin-RevId: 5ebad4f1bd7c296dff2277a7f2ddd6324597b244
2026-04-27 08:05:46 +00:00
Mathias Jakobsen
c46fba951e [web] Re-introduce orphan detection in detached PDF (#32994)
GitOrigin-RevId: 07a58d6f7e3c6db8465c62b390e34270c2b4fd67
2026-04-27 08:05:42 +00:00
Mathias Jakobsen
5e675664c6 [web] Cleanup PDFjs instances in visual editor (#33022)
GitOrigin-RevId: 2aa9ab01f88196fb56dc41749977ca33295c964f
2026-04-27 08:05:38 +00:00
jmescuderowritefull
5c7db11d9b fix: fixes for new plans (#33051)
GitOrigin-RevId: 07ff096da2bc72483eab9a5c57417ced950f56c4
2026-04-27 08:05:34 +00:00
Eric Mc Sween
60cc551c4d Merge pull request #33085 from overleaf/revert-32956-em-library-entry-list
Revert "Show library entry list on /library page"

GitOrigin-RevId: c2bb4d240f5e07c5a3ddfca62fc5749a3e5c56ab
2026-04-24 08:07:13 +00:00
Eric Mc Sween
2fdecb5d19 Merge pull request #32956 from overleaf/em-library-entry-list
Show library entry list on /library page

GitOrigin-RevId: 6c1c4e3ef66ea002525e5d5adb7943123f5d2587
2026-04-24 08:07:08 +00:00
Andrew Rumble
54d953cfff Merge pull request #32743 from overleaf/ar-new-v1-api
[web] new v1 api client

GitOrigin-RevId: 7ba0deef0d10526198a2a6ba997c2dcff7b7e5a5
2026-04-24 08:07:03 +00:00
Olzhas Askar
d3b60bcb46 Merge pull request #31750 from overleaf/oa-update-student-features
[web] Update student collaborators

GitOrigin-RevId: fa4631c4d6e95eaa4823d1d5db125231c6cd0c00
2026-04-24 08:06:58 +00:00
Maria Florencia Besteiro Gonzalez
879c082587 Merge pull request #32923 from overleaf/mfb-replace-placeholders-with-helper-text-bibtex-form
[web] Replace placeholders with helper text in BibTeX entry form

GitOrigin-RevId: b7d4fef0414bc79abda6fba2c4c9594edd9f05fc
2026-04-24 08:06:53 +00:00
Jessica Lawshe
7ff114bbef Merge pull request #32396 from overleaf/jel-unlink-sso
[web] Add button so user can unlink Commons SSO

GitOrigin-RevId: 46e0607549341a98beca3873ea63bf091a883e85
2026-04-24 08:06:48 +00:00
Miguel Serrano
08701ca5aa [web] Add update_group_policy script (#31715)
* [web]  Add `update_group_policy` script

The script allows to update a policy for a subscription, or update
multiple policies via a file containing a list of subscription ids

GitOrigin-RevId: f3b3a6666eb62bb93d13c4c75d60b99f21f23db4
2026-04-24 08:06:35 +00:00
Davinder Singh
be5a7b56c8 [WEB + CLSI] Download as docx file feature (#32851)
* using CLSI logic for fetching the project contents and skip the .zip export

* Use unique conversion directory for project-to-docx export to avoid corrupting the shared compile
  directory when a compile runs concurrently

* Remove X-Accel-Buffering header — not needed as CLSI does not run behind nginx

* moving log before sending the data

* Return CLSI stream directly instead of buffering to disk on web

  Previously convertProjectToDocx wrote the CLSI response to a temp file
  on disk, then the controller read it back to stream to the client.
  Now the stream is returned directly and piped to the response,
  avoiding unnecessary disk I/O on the web server.

* Use href redirect for docx export instead of fetching blob into memory

* making functions and files more generic so they can be used in future for other documents exports as well

* adding export-docx split test

* adding unit tests

* adding cypress E2E test

* format:fix

* renaming the route to download from convert

* adding new icon for export docx button

* format:fix

* remove unused showExportDocumentErrorToast export and adding guard against invalid Content-Length header from CLSI

* format:fix

* refactor(clsi): move promisify(parse) into RequestParser

* refactor: generic conversion endpoint with type as route
  param

* refactor: use type→extension map for validated conversion types

* refactor(clsi): remove --standalone flag and fix rejection test

* fixing the href in cypress test

* renaming function

* adding type to Metrics.inc

* fix: rename exportProjectDocument, add WithLock wrapper and metrics type label

* format:fix

* fix: hide docx export from anonymous users and add WithLock wrapper

* format fix

* remove redundant Content-Length validation from DocumentConversionManager

* format:fix

* removing trailing icon

GitOrigin-RevId: e9764fefac2c4b625d23be9e942ea4a8b283c70d
2026-04-24 08:06:10 +00:00
Kristina
b6ec7945f4 [web] update copy in email notifications (#32912)
* add footerMessage to base email template
* add customized subject line and CTA
* add _getBundledActivityList

GitOrigin-RevId: e70c0955485b0892f31e20daa0430faef80b0d64
2026-04-23 08:07:01 +00:00
Kristina
a64d1bbb6a [web] display global off treatment in settings modal (#32942)
* display global disabled state
* show loading indicator while project notification preferences load

GitOrigin-RevId: d7e905aaa3fc7b15b54bf99caeabf60c1e5d8050
2026-04-23 08:06:56 +00:00
Kristina
9a129e7cab Merge pull request #32939 from overleaf/kh-update-settings-modal-language
[web] update copy & layout for notifications settings

GitOrigin-RevId: 13b6b78b0b2bddd9d0137362a14bfdbdba9d7d20
2026-04-23 08:06:47 +00:00
Eric Mc Sween
6ad758830a Merge pull request #32555 from overleaf/em-bibtex-warnings
Fix duplicate errors in BibTeX entry list tooltip

GitOrigin-RevId: de7214a7f5d403552505f960f140768bb4f2c1ca
2026-04-23 08:06:31 +00:00
roo hutton
dece22ba92 Merge pull request #32871 from overleaf/rh-cio-comms-attributes
Expose remaining marketing properties to customer.io

GitOrigin-RevId: 6956e1faf90ecc650108404fe13b2f6de2eb4d0c
2026-04-23 08:06:04 +00:00
Mathias Jakobsen
2e5d7675ba Merge pull request #32983 from overleaf/mj-change-layout-button-tests
[web] Add tests for ChangeLayoutButton

GitOrigin-RevId: 30299625fc7f3977eedcb86a99937e3a9321bd2c
2026-04-22 08:06:54 +00:00
Mathias Jakobsen
1d37483e73 Merge pull request #32984 from overleaf/mj-test-runner-cypress-env
[skills] Describe cypress environment variables for running specific cypress tests

GitOrigin-RevId: db64ed3f0a4d9ecbe6b7d63c9275314da0df7421
2026-04-22 08:06:49 +00:00
Anna Claire Fields
36a8447bb3 update handlebars: package json and package lock (#32963)
GitOrigin-RevId: b39d2189f08b76ed61b14e77f2af20f36c9a2968
2026-04-22 08:06:44 +00:00
Alf Eaton
fdadfaab45 Remove non-LaTeX file extensions (#32339)
GitOrigin-RevId: 370a27838ddc017b5b0926e47d550729d54d73aa
2026-04-22 08:06:35 +00:00
Alf Eaton
ce4ca192ee Upgrade Storybook to v10 (#30442)
GitOrigin-RevId: 9f51624bc2b34b6746d1854969173b44c9c9cf9a
2026-04-22 08:06:26 +00:00
Alf Eaton
f45eec25f4 Upgrade Cypress (#28858)
GitOrigin-RevId: a5bb02d4f13e5d1aa4426debd4861205d51597f3
2026-04-22 08:06:21 +00:00
Brian Gough
f07aaf1979 Merge pull request #32954 from overleaf/fix/security-oauth2-server-web
[web] upgrade @node-oauth/oauth2-server to 5.3.0

GitOrigin-RevId: e6b25a6fb3dfaef1e8690fc1dd434daab35b798d
2026-04-22 08:06:12 +00:00
Jakob Ackermann
926d6bccd7 [clsi] reduce write traffic to clsi-cache from free users (#32958)
GitOrigin-RevId: c01cc21c3c82f361c7d82843e65bb087b21434ed
2026-04-22 08:05:59 +00:00
jmescuderowritefull
21cb9ae9f6 fix: feedback on new plan's UI (#32933)
GitOrigin-RevId: 13241af3fc39c67b7a815ac89f2489f778a7a6f1
2026-04-21 08:06:38 +00:00
Mathias Jakobsen
32255a4e6f Merge pull request #32936 from overleaf/mj-ce-themes
[web] Enable changing overall themes in SP/CE

GitOrigin-RevId: a6aa35e40826faec1001b658603b9f1cc8b0a50d
2026-04-21 08:06:31 +00:00
Eric Mc Sween
628e05a278 Merge pull request #32884 from overleaf/em-editor-switch-by-filetype
[web] Split editor mode preference by file type

GitOrigin-RevId: 2574623c9c1c88cc66de72c19cffb4428a632e96
2026-04-21 08:06:23 +00:00
Malik Glossop
99f1551e4b Merge pull request #32754 from overleaf/mg-native-context-shortcut
Allow Shift+right-click to use native browser context menu

GitOrigin-RevId: 0455283e47511e6e770d389c5cc6994018766f74
2026-04-21 08:06:19 +00:00
Mathias Jakobsen
1110172597 Merge pull request #32927 from overleaf/mj-themed-project-page-teardown
[web] Tear down new-user-system-overall-theme split test and themed-project-dashboard feature flag

GitOrigin-RevId: fe947a603266166332b73a5707bb6cbc9e3d03b9
2026-04-21 08:06:08 +00:00
Domagoj Kriskovic
4567ffea41 [web] error handling for BibTeX entry addition using \cite
GitOrigin-RevId: efdf39a959fda7d2f970860051e1fabd72474ab1
2026-04-21 08:05:54 +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
Mathias Jakobsen
e30a2a5beb Merge pull request #32925 from overleaf/mj-editor-redesign-new-users
[web] Remove unused split test from web

GitOrigin-RevId: 329c98a1072a3a64923371641069c45552da5eaa
2026-04-21 08:05:39 +00:00
Mathias Jakobsen
1ac1410b3b Merge pull request #32901 from overleaf/mj-tabs-context-menu
[web] Add custom context menu for tabs

GitOrigin-RevId: 5ca997bde0c881ad3ba80092915d341f03c609a8
2026-04-21 08:05:35 +00:00
Maria Florencia Besteiro Gonzalez
df3f50d10b Merge pull request #32825 from overleaf/mfb-autocomplete-component-design-review
[web] Autocomplete component design review fixes

GitOrigin-RevId: f598f46a770c94512de5beddb8ff1997df354fae
2026-04-21 08:05:30 +00:00
Olzhas Askar
050f00a4b5 Merge pull request #32553 from overleaf/oa-verify-prices
[web] Verify upcoming price changes

GitOrigin-RevId: c57af634be7360cf108d987c88307e187a7c3e50
2026-04-21 08:05:26 +00:00
Mathias Jakobsen
4173c98c48 Merge pull request #32892 from overleaf/mj-history-file-metadata
[history-v1] Add missing properties to zod schemas

GitOrigin-RevId: e16faf56a9b294516152383585493b38685b8d15
2026-04-21 08:05:22 +00:00
Jakob Ackermann
4ce5620b1d [web] add metrics for mongo access in split test system (#32920)
GitOrigin-RevId: cd93401bace60c003a63914e2898cf1f0defdabc
2026-04-21 08:05:14 +00:00
Jakob Ackermann
ad79c85cea [web] collect mongo stats on native client (#32909)
* [metrics] mongo: fail when command monitoring is not available

* [metrics] mongo: add optional client label to pool metrics

* [web] collect mongo stats on native client

* [metrics] mongo: record namespace of find commands

* [metrics] mongo: add counter for all the commands with collection label

* [web] add missing mock

GitOrigin-RevId: 9f378d8aa8d7167f56cf512681d63ef115c6dd98
2026-04-20 08:05:44 +00:00
Eric Mc Sween
26820bc327 Merge pull request #32817 from overleaf/em-account-level-library
[web] Add library page with navbar and sidebar layout

GitOrigin-RevId: b27f8e5dca13bae0cab83a919097c927a025e028
2026-04-20 08:05:40 +00:00
Jessica Lawshe
2da03f115f Merge pull request #32704 from overleaf/jel-domain-verify-copy-token
[web] Add component to render and copy domain verification token

GitOrigin-RevId: 36fcc8ef63208b6eb83a2e0f4360eb74a3a0af56
2026-04-20 08:05:26 +00:00
Tim Down
8a4b1186fc Add feature comparison table to 2026 pricing page (#32876)
* Add feature table translation strings

* Add feature comparison table config, types, and unit tests

Adds plans-features-table.mjs (8 sections, 25 rows, 5 plan columns) with
PlanTypesFeatureTable type, FeatureTableColumnHeader types, and 18 unit tests.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* Add feature comparison table template and styles

* Add logos row to 2026 pricing page

* Accessibility improvements to 2026 pricing page suggested by Claude

* Stylelint appeasement

* Fixes from Copilot review

* Remove duplicate translation string

* Appease Prettier

* Non-ideal solution for pricing features table on mobile

* Make features table same width as cards container on new pricing page

* Increase spacing between cards and features table in new pricing page

* Remove help cursor from integration icons

* Add trademark symbol to FedRAMP

Co-authored-by: Antoine Clausse <antoine.clausse@overleaf.com>

* Hide features table header cell overflow

Co-authored-by: Antoine Clausse <antoine.clausse@overleaf.com>

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: Antoine Clausse <antoine.clausse@overleaf.com>
GitOrigin-RevId: 6d6c661c9d682b86bd33886a518da25f9ab6e372
2026-04-20 08:05:10 +00:00
Malik Glossop
99c8bd2e1c Merge pull request #32877 from overleaf/mg-fix-bom-applyerror
Preserve UTF-8 BOM when fetching blobs in ProjectSnapshot

GitOrigin-RevId: 758156f8c9ac1d02b5ea06447f759012118e1905
2026-04-20 08:05:06 +00:00
Domagoj Kriskovic
ecda482213 add JSDoc comments for FileWriter methods and promises
GitOrigin-RevId: a7b2229b12973a8ebf4a1d6b94159efbd63df02a
2026-04-20 08:04:58 +00:00
Jakob Ackermann
78adc2ae18 [monorepo] Try to get make install working in copilot (#32800)
* [monorepo] move building of nginx proxy into Makefile

* [v1] add fake-secrets.env

* [github] add copilot-setup-steps.yml workflow

* [make] debug permissions

* [monorepo] use the host uid/gid for monorepo service

* [web] populate DOCKER_USER for test_frontend_ct

* [github] run npm install outside docker in Copilot sandbox

* [monorepo] add comment for building nginx-proxy image locally

* [monorepo] change uid/gid of node user in cypress image

* [monorepo] low-level rewrite of passwd and groups to match host user

GitOrigin-RevId: d74a5801f0318bab7e7f460374255426706002a3
2026-04-20 08:04:35 +00:00
Antoine Clausse
e301030c09 [web] 2026 pricing page: FAQ and quotes (#32759)
* Rename _faq_new.pug to _faq.pug

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* Add 2026 plans page FAQ templates

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* Wire up quotes and FAQ section in plans_2026.pug

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* Update styles, quote component, and translations for 2026 plans page

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* Fix missing accordion icon wrapper in last FAQ item

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* Fixup: rename `.card-pattern-sides` back to `.card-pattern`

* Create SASS placeholder and mixin

Suggested by Tim

* Fixup quote style

* Update spacings to match Figma

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
GitOrigin-RevId: 2f4e284038d79157d2b029a967918077bb206032
2026-04-20 08:04:30 +00:00