Commit Graph

5333 Commits

Author SHA1 Message Date
Copilot
2fc8ca6e3d Fix "Suggest fix" not expanding collapsed log entries (#32015)
GitOrigin-RevId: 9668526a5e388fa7723fab6d394b71b509101360
2026-03-09 09:05:53 +00:00
Domagoj Kriskovic
684bbe9186 loadPyodide per run, use package types
GitOrigin-RevId: 0c2384ce676fde09459fbd8244c9ed675b30c954
2026-03-09 09:05:43 +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
Jimmy Domagala-Tang
bb5d90a332 Add usage quota to Workbench (#31782)
* feat: adding usage rate limiting to workbench and aligning editor context values for suggestionsLeft

* feat: prepend word token to headers of token rate limiter to prevent confusion with usage rate limiter

* Shared AI paywalls (#31948)

* feat: renaming hasPremiumSuggestion and adding token limits to editor context and project load

* feat: adding new ai features paywall component

* feat: rename getRemainingFeatureUses to token based naming for token based limiter, removed checking for feature usage on anonymous users, and removed guard on null userId since we shouldnt be calling getRemainingFeatureUses on a nonexistent user

* feat: using token rate limit headers to set token rate values in editor context

* feat: update workbench to be available without refreshing if rate limit reset occurs within session

* fix: move paywall out of inert section

* Hide new paywalls behind FF and open plans page on upgrade attempt (#32023)

* feat: hide new paywalls behind FF

* feat: update ai paywall buttons to navigate to plans page post quota plans change release

* feat: showing a fair limit notificaiton pre-quota change, and updating paywall to not fire if user has premium already (#32056)

GitOrigin-RevId: 565fb128d55543fea34c383bc4abeaa3dd148d09
2026-03-06 09:17:52 +00:00
Jessica Lawshe
c1a7a898e3 Merge pull request #31942 from overleaf/jel-get-domainVerifications
[web] Start rendering domains for group with domain capture

GitOrigin-RevId: b7b007350c5757a78923d9efb259389de23b93c9
2026-03-06 09:17:47 +00:00
Jessica Lawshe
1234682ba4 Merge pull request #31785 from overleaf/jel-feature-flag-domain-verification-ui
[web] Add feature flag domain verification UI and start modal to add domain

GitOrigin-RevId: e7bb0a3318d1ad9ffb386679fa4b087e1cd0d429
2026-03-06 09:17:38 +00:00
Davinder Singh
7daaba5af7 Merge pull request #31957 from overleaf/ds-removing-useIsNewEditorEnabled-5
[Part 5] Removing the usage of `useIsNewEditorEnabled` for editor tear down

GitOrigin-RevId: 086183b196a44b393dc0c0f60f7bfbc5738901fc
2026-03-06 09:17:25 +00:00
ilkin-overleaf
6539e26107 Merge pull request #31742 from overleaf/ii-project-sharing-join-project
[web] Join project page redesign

GitOrigin-RevId: d182ec4fb744f384f824c9e63b534da02a9f8e99
2026-03-06 09:17:16 +00:00
Antoine Clausse
d5a65e906f [web] Paywall and other AI text edits (#31993)
* Update Compile timeout copy

* Update Collaborator limit copy

* Update Track changes copy

* Update History copy and "Start free trial" button

* Remove unnecessary children passed to StartFreeTrialButton

* Update Dropbox copy

* Update Github copy

* Update Git copy

* Update Reference managers copy

* Update Symbol palette copy

* Update Onboarding prompt copy

* Update Subscriptions page (on free account) copy

* `bin/run web npm run extract-translations`

* Add split-test assignment in subscription page

* Fix tests

* Update services/web/modules/symbol-palette/frontend/js/components/symbol-palette-overlay.tsx

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update services/web/modules/onboarding/app/views/onboarding/try_premium.pug

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update services/web/modules/onboarding/app/views/onboarding/try_premium.pug

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Replace `Github` to `GitHub` in translations

* Update "non Overleaf" to "non-Overleaf"

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
GitOrigin-RevId: 56ee2735899de18f820b229bc226249322ac0c87
2026-03-06 09:17:11 +00:00
Antoine Clausse
e87488899a [web] Add AI to plan features list (#31968)
* Add tooltip next to "Overleaf AI" row

* Add AI to features list

* Fix tests

* Revert changes which will be overwritten by https://github.com/overleaf/internal/pull/31993

* Add missing import (conflict with main)

GitOrigin-RevId: ce236670bd63701a3976a3eb84dc695ee0e928b1
2026-03-06 09:17:02 +00:00
Alf Eaton
b5606cdecb Fix Vim command panel text contrast (#31985)
Apply themed foreground color to .cm-vim-panel so the Vim command input inherits a readable color in mixed overall/editor theme combinations.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
GitOrigin-RevId: d31b09e64fc49fce551eee7ecead0d215aa206bc
2026-03-06 09:16:34 +00:00
l-obrien-overleaf
1be454b95c Initial working version of auto complete button component (#31823)
* Initial working version of auto complete button component

* generalising button auto complete for use in bibtex entry form

* Adding optional fuzzy searching

* Restoring delete optional field

* Removing dropdown specific styling

* Updating item/group interface for autocomplete

* Auto complete allowing full keyboard nav functionality

* Custom class for dropdown-upward

* Adding error validation for duplicate name with standard field

* fixing type errors

* Replacing Fuse with MiniSearch

* Adding clear button and frontend tests for ol-autocomplete

* Adding fuzzysearch option to autocomplete story

* removing unused vars and noddy comment

* Fixing lint failure

* Updating fuzzy search threshold

* Using downshift natural highlight

* Required label for aria compliancy

* changing how create item is handled

* addressing review comments

* Using AutoExpandingTextArea for optional fields and hooking in validation

* Formatting

* Requiring items prop for ol-autocomplete

* Fixing type failure in test

GitOrigin-RevId: 9b8f719fbb2bdd75fc1d5a9076908559040a8a78
2026-03-06 09:16:25 +00:00
Malik Glossop
9d58797a04 Merge pull request #31981 from overleaf/mg-context-mobile
[web] Add stricter mobile detection for context menu

GitOrigin-RevId: 9c9e75a14c1f9841b5125cb4fb4ef8c2f3b8a33f
2026-03-06 09:16:21 +00:00
Malik Glossop
87c7b23107 Merge pull request #32007 from overleaf/mg-context-ctrl-click
[web] Only allow ctrl+click context menu trigger for macos

GitOrigin-RevId: ca0476bd94e25e92e6fa86f5bcaf8a209212c1b9
2026-03-06 09:16:08 +00:00
Mathias Jakobsen
ada0922988 Merge pull request #31950 from overleaf/mj-themed-project-load
[web] Add themed project loading screen

GitOrigin-RevId: b73d8c825b5ab04ede1c9dde10a6891be63758a4
2026-03-06 09:15:55 +00:00
Davinder Singh
d023f721b7 Merge pull request #31924 from overleaf/ds-removing-useIsNewEditorEnabled-4
[Part 4] Removing the usage of `useIsNewEditorEnabled` for editor tear down

GitOrigin-RevId: 4c1194bb011630f83ecf7334f9ad0deb6ab52580
2026-03-06 09:15:39 +00:00
Davinder Singh
05acd6b769 Merge pull request #31919 from overleaf/ds-removing-useIsNewEditorEnabled-3
[Part 3] Removing the usage of `useIsNewEditorEnabled` for editor tear down

GitOrigin-RevId: 3aa756bbfd47cdc9823d35edd0d4d2219001afc9
2026-03-06 09:15:34 +00:00
Davinder Singh
d6e745c156 Merge pull request #31909 from overleaf/ds-removing-useIsNewEditorEnabled-2
[Part 2] Removing the usage of `useIsNewEditorEnabled` for editor tear down

GitOrigin-RevId: 864652da0edcedab4f3b1ba47d8d42fb65260118
2026-03-06 09:15:30 +00:00
Rebeka Dekany
5dae580a42 Add keyboard navigation for the group member picker dropdown on the Plans page (#31611)
* fix: Add keyboard navigation for group member picker combobox

* Add role="presentation" to footer list item since not a selectable option

* Dispatch change event when selecting option via keyboard

* Sync aria-selected state with checked radio on selection

GitOrigin-RevId: c20c11a9ca063ca3121fda28944ad7f91eeac9e9
2026-03-06 09:15:21 +00:00
Davinder Singh
281dc16a6d removing the usage of useIsNewEditorEnabled from first set of files (#31800)
GitOrigin-RevId: 821885295f4dab046d9abf552d7fbd7a21d86fb5
2026-03-06 09:14:55 +00:00
Malik Glossop
a293474c0c Merge pull request #31035 from overleaf/mg-context-menu-analytics
Add analytics event for context menu, comment, track changes, and jump to location

GitOrigin-RevId: 8412cc3c8039cd1582ccee20b162b4bef4467dea
2026-03-06 09:14:26 +00:00
Malik Glossop
ab5be2261b Merge pull request #31952 from overleaf/mg-context-menu-autocomplete
Do not open autocomplete menu after right-click in empty curly braces

GitOrigin-RevId: c5f6cce9a093ce0f3aad08f5968e743ce373efc9
2026-03-06 09:14:21 +00:00
Davinder Singh
f27c99ea4b Tearing down of old Editor (File tree) (#31784)
* merging ide-redesign/components/file-tree into features/file-tree

* moving ide-redesign/contexts/settings-modal-context   to features/settings/contexts

* use-collapsible-file-tree.tsx → features/file-tree/hooks

* use-focus-on-setting.tsx → features/settings/hooks

* use-project-notification-preferences.ts → features/settings/hooks

* use-rail-overflow.tsx→ features/ide-react/hooks

* deleting use-switch-enable-new-editor-state.ts

* use-toolbar-menu-editor-commands.tsx → features/source-editor/hooks

* npm run extract-translations

* modifying the test to target correct buttons and removing a test for old component

* adding a test back and modifying it

* changing the test

GitOrigin-RevId: baa1e9a992c88b84313eea82161354d4958cf1ef
2026-03-06 09:14:01 +00:00
Jimmy Domagala-Tang
501e11a42a Move feature rate limiters to shared web folder (#31855)
* feat: remove old assist split test

* feat: moving featue rate limiters to main shared directory for use in multiple modules

* feat: base workbench rate limiter on a token specific base class

* feat: rename aiErrorAssistRateLimiter to AiFeatureUsageRateLimiter to better reflect its for our shared ai usage quota

GitOrigin-RevId: 89464d115b5904f6274756a7169e2b35945e2fc9
2026-03-06 09:13:40 +00:00
Jimmy Domagala-Tang
f1137cbabb feat: remove old assist split test (#31787)
GitOrigin-RevId: bd05b5b13c603aea648cd522372bdf3242091ae8
2026-03-06 09:13:35 +00:00
jmescuderowritefull
84152a76d1 Streamline how we call the various elements of citation reviewer (#31801)
GitOrigin-RevId: ea6b8c39c35546905617e8845917c8a104e6d5d2
2026-03-06 09:12:43 +00:00
Mathias Jakobsen
7a59db5f9e Merge pull request #31938 from overleaf/mj-loading-pane-light-in-system
[web] Fix bright loading pane in system theme

GitOrigin-RevId: 280044f7accc453187d1edd55f9baff1d9aa4280
2026-03-06 09:12:38 +00:00
Mathias Jakobsen
8c7fe88c8c Merge pull request #31937 from overleaf/mj-cache-equation-height
[web] Cache equation height in visual editor

GitOrigin-RevId: d10c65a904d6d803f1cf006c18ee69b88ec66210
2026-03-06 09:12:33 +00:00
Jakob Ackermann
81b7121408 [clsi] initial implementation of compile from history (#31883)
* [clsi] initial implementation of compile from history

* [clsi] copy changes

* [saas-e2e] extend test case with nested folder

* [saas-e2e] add test case for tracked changes

* [web] fix accumulating changes from multiple chunks

* [web] optimize size check for compile request payload

* [clsi] deduplicate globalBlobs

* [clsi] add validation for request body details

* [clsi] add metrics for compile from history

* [clsi] download binary files concurrently

* [clsi] skip download of empty file blob

* [clsi] break down e2e compile time metric by compileFromHistory

GitOrigin-RevId: 0dadef93e89d8a172c35cb130a1042d9d1bec42a
2026-03-06 09:12:07 +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
Mathias Jakobsen
3407f59b23 Merge pull request #31885 from overleaf/mj-avoid-browser-default-input-bgs
[web] Specify background colors of input fields

GitOrigin-RevId: 8fbdddfe73840b75503ea8ab32ca6887cf43146f
2026-03-06 09:10:47 +00:00
Mathias Jakobsen
8ec9942114 Merge pull request #31873 from overleaf/mj-editor-dark-input
[web] Convert input fields to dark mode in editor

GitOrigin-RevId: 420e280d5e92f70f2d44798983cdb636f3efc659
2026-03-06 09:10:42 +00:00
Mathias Jakobsen
51afc7d85e Merge pull request #31862 from overleaf/mj-system-theme-split-test-dates
[web] Update dates for system theme split test

GitOrigin-RevId: 735b99e234d7613e057947d70ca8e2d8364e30aa
2026-03-06 09:10:07 +00:00
Alex Vizcaino
eed92fc845 New plans Writefull paywalls (#31835)
GitOrigin-RevId: b713f949c7b5141fc145d206270f9a6f035ed598
2026-03-06 09:10:02 +00:00
Antoine Clausse
b6c38ef5d0 [web] Show student discount pre checkout (#31820)
* Compute student discount from prices

* Add presentational discount in the checkout page

* Put student discount row behind feature flag

* Update code and tests to clarify that `currency` is always defined

* Introduce `usePlanPriceItems` to normalize the list

* Simplify `usePlanPriceItems`

Co-authored-by: Olzhas Askar <olzhas.askar@overleaf.com>

* Remove student discount percent

* Update Standard Monthly/Annual names in the checkout page

* Simplify `getRecommendedCurrency` mock

* Fix testid: price-summary-plan

* Add test on stripe-price-summary

* Add `Math.abs` on accessibility discounted info (!)

---------

Co-authored-by: Olzhas Askar <olzhas.askar@overleaf.com>
GitOrigin-RevId: f297eab4b6abd6a84842054667a3734cb33866fe
2026-03-06 09:09:41 +00:00
Jessica Lawshe
65180f3fa0 Merge pull request #30988 from overleaf/jel-check-domain-matches-matcher-web
[web] Check if email domain from SAML callback matches domain matcher

GitOrigin-RevId: e29a7dc6a1b5f6db46ab4146626c9f1d6659b7ea
2026-03-06 09:09:29 +00:00
MoxAmber
b131020c43 Merge pull request #30950 from overleaf/as-user-management-actions
[web] User management actions

GitOrigin-RevId: c7683c596673bc252649cdeb975edd779a6154b0
2026-03-06 09:08:25 +00:00
MoxAmber
ebdb0b12cf Merge pull request #30007 from overleaf/as-user-management-ro
[web] Initial read-only user management page

GitOrigin-RevId: f50d2377b855e6541b30f8f946aecb59bf08e3bc
2026-03-06 09:08:20 +00:00
Antoine Clausse
0f0f97a8f6 [web] Add student checkbox on Standard plan (#31773)
* Remove plans-new.pug

* Add ol-localIndividualPlans and its types

* Add `getIndividualPlansInCurrency` util

* Add `ol-localIndividualPlans` to the pages

* Read prices from `localIndividualPlans`

* Add student checkbox

* Add `setupIndividualEduDiscount`

* Add data tags

* Update how original price is shown

* Show original price for monthly collaborator

* Make struck price conditionally invisible

* Unnest `.plans-new-edu-discount` so it applies to collaborator student checkbox

* Remove student column

* Update prices in groups to remove _plans_localized_price.pug

* Remove unused variables

* Reduce spacing above the student checkbox

* Fix tests

* Move show/hide struck price for Collaborator Monthly out of loop

* Fixup: Read prices from `localIndividualPlans`

* Fix checkbox vertical alignment

* Update services/web/frontend/stylesheets/pages/plans.scss

Co-authored-by: roo hutton <roo.hutton@overleaf.com>

* Adjust margin-top for student checkbox to -12px

* Disable autocomplete for education discount checkboxes

See https://github.com/overleaf/internal/issues/31798

---------

Co-authored-by: roo hutton <roo.hutton@overleaf.com>
GitOrigin-RevId: f329321fc860f30f4e8921e2e1b18bc55cfdeb7b
2026-03-06 09:07:54 +00:00
ilkin-overleaf
20898db17f Merge pull request #31560 from overleaf/ii-domain-capture-multiple-groups
[web] Multiple captured domains

GitOrigin-RevId: c097688efed82a8de11233078134923ed23bf500
2026-03-06 09:07:30 +00:00
Jimmy Domagala-Tang
f96d37b7e3 Revert "Revert "[Web] Enable Quota System for AI Features"" (#31771)
* Revert "Revert "[Web] Enable Quota System for AI Features (#31544)" (#31767)"

This reverts commit f6589bdbf0ac7e71313739e3e3f4fb5bedd48c22.

* Update writefull entitlement syncing for commons (#31774)

* feat: update wf entitlement syncing logic

* feat: remove unused env variable, and parse quota tier as string for analytics

GitOrigin-RevId: 37ae7522a249501719a64327e2b6aaff01a3cc0b
2026-03-06 09:07:15 +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
892047fcf6 Revert "[Web] Enable Quota System for AI Features (#31544)" (#31767)
This reverts commit 17763447965aae5777053b783d2601517bfe6b12.

GitOrigin-RevId: f6589bdbf0ac7e71313739e3e3f4fb5bedd48c22
2026-02-24 09:07:06 +00:00
Jimmy Domagala-Tang
92463fb3e2 [Web] Enable Quota System for AI Features (#31544)
* feat: migrate from aiErrorAssist naming for disabling AI features to aiFeatures.enabled to avoid confusion

feat: keep aiErrorAssistant as setting on user object until migration is run

* feat: migrate writefull.enabled unset to instead use promotionSet false

* feat: updating to use quota based system for AI usage

* feat: hide relevant sections of quota system behind split test

* feat: ship onAiFreeTrial instead of free quota amount to project meta

* fix: renaming splitTestEnabledForUser to featureFlagEnabledForUser

* fix: v1_personal should have free trial amount of ai quota

* fix: onAiFreeTrial in projectController should account for anonymous users with no features

* feat: fixing marketing exports for ai quotas

* feat: update features epoch

* feat: move to quota tiers, and map tier to numeric allowance within rateLimiters

GitOrigin-RevId: 17763447965aae5777053b783d2601517bfe6b12
2026-02-24 09:06:31 +00:00
Mathias Jakobsen
45fb992c9f Merge pull request #31735 from overleaf/mj-cm6-input-border-radius
[web] Reduce border radius of search and go-to-line forms

GitOrigin-RevId: 041d8587e0e1d10fcc2e8daf943e6bc0383662c2
2026-02-24 09:05:46 +00:00
Mathias Jakobsen
328546b07d Merge pull request #31732 from overleaf/mj-go-to-line-theme
[web] Follow overall theme in go-to-line dialog

GitOrigin-RevId: f4f91133d786612bdb55fe775305185fab64afec
2026-02-24 09:05:41 +00:00
Eric Mc Sween
c3b43d92b0 Merge pull request #31618 from overleaf/em-bibtex-editor-design-review
Apply current BibTeX editor designs

GitOrigin-RevId: 3c51a2dd084fe45ba598091f7447d215e5a0739d
2026-02-23 09:05:25 +00:00
Mathias Jakobsen
dd1652bcf6 Merge pull request #31693 from overleaf/mj-light-mode-notifications-buttons
[web] Fix buttons in light mode notifications

GitOrigin-RevId: 7934414356b5185999cf7685f8e4c61441279b04
2026-02-23 09:04:59 +00:00