* Improve announced button and link labels for screen reader users
* Improve labels for integration widgets and update test
* Make integration widget IDs to be required
GitOrigin-RevId: 1e0124ef63a91fb63dffd79881c60794bccb9d27
* Remove redundant class conflicting with focus styling
* Make the toolbar in the popover focusable via keyboard
* Focus to the first context menu item via keyboard only
GitOrigin-RevId: 7d3e2af4ba96654b5b2312b3999483c2a439b406
* [web] provide an actual rootFolder from EditorProviders in tests
- Fixup SocketIOMock and ShareJS mocks to provide the complete interface
- Extend SocketIOMock interface to count event listeners
- Fixup test that did not expect to find a working rootDoc
* [web] expose imageName from ProjectContext
* [clsi-cache] check compiler settings before using compile from cache
* [web] avoid fetching initial compile from clsi-cache in PDF detach tab
GitOrigin-RevId: e3c754a7ceca55f03a317e1bc8ae45ed12cc2f02
* Update share modal copy for reviewer role
* fix ShareProjectModal test
* use "limited_to_n_collaborators_per_project"
GitOrigin-RevId: f5afcb18a3921a6b1132a4c323af9d8395a7d07b
* [clsi-lb] forward ?clsiserverid=cache requests to clsi-cache
* [web] use clsi-cache in frontend
* [web] upgrade compile from cache to full compile when triggered inflight
* [web] fix pdf-js-viewer.spec.tsx tests -- add ?clsiserverid=foo to url
* [web] fix renamed reference after merge
* [web] fix download of other output files and use specific build
* [web] consolidate validation of filename into ClsiCacheHandler
* [web] remove unused projectName from getLatestBuildFromCache
* [web] avoid hitting the same clsi-cache instance first all the time
* [web] update documentation
GitOrigin-RevId: d48265a7ba89d6731092640e1492bc9f103f5c33
* Update collaborator select dropdown with a description for reviewers in free project
* Update share-project-modal test
* Fix saas-e2e tests
* fix server pro tests
* fix cypress multiple inputs selection
* fix testid case
GitOrigin-RevId: 5369828334596d80988aba168385f0a51eea998f
* Remove the Bootstrap 5 version utilities
* Remove Account settings LESS stylesheet and unused styles
* Prefer using the OLFormText wrapper component instead of FormText
* Remove the Bootstrap 3 version stories
* Replace Font Awesome icons to Material icons
* Fix the heading hierarchy
* Cleanup unused translation
* Restore ellipsis to the text of two loading spinners
* Add loading button tests back and add some button loading labels
---------
Co-authored-by: Tim Down <158919+timdown@users.noreply.github.com>
GitOrigin-RevId: 283a9167c8c78bf0fe5062840ded6917dcd6263b
* Rename `checkSecondaryEmailConfirmationCode` to `checkAddSecondaryEmailConfirmationCode`
* Create function `sendCodeAndStoreInSession`
* Create function `sendExistingSecondaryEmailConfirmationCode`
* Create function `_checkConfirmationCode`
* Create function `checkExistingEmailConfirmationCode`
* Rename `resendSecondaryEmailConfirmationCode` to `resendAddSecondaryEmailConfirmationCode`
* Create function `_resendConfirmationCode`
* Create function `resendExistingSecondaryEmailConfirmationCode`
* Add `ResendConfirmationCodeModal`
* Remove `ResendConfirmationEmailButton`
* `bin/run web npm run extract-translations`
* Update frontend test
* Fix: don't throw on render when send-confirmation-code fails!
* Update phrasing in the UI
Per https://docs.google.com/document/d/1PE1vlZWQN--PjmXpyHR9rV2YPd7OIPIsUbnZaHj0cDI/edit?usp=sharing
* Add unit test
* Don't share the "send-confirmation" and "resend-confirmation" rate-limits
* Update frontend test after copy change
* Rename `checkAddSecondaryEmailConfirmationCode` to `checkNewSecondaryEmailConfirmationCode` and `resendAddSecondaryEmailConfirmationCode` to `resendNewSecondaryEmailConfirmationCode`
* Rename `cb` to `beforeConfirmEmail`
Co-authored-by: Jakob Ackermann <jakob.ackermann@overleaf.com>
* Return `422` on missing session data
Co-authored-by: Jakob Ackermann <jakob.ackermann@overleaf.com>
* Add `userId` to log
* Replace `isSecondary` param by `welcomeUser`
Co-authored-by: Jakob Ackermann <jakob.ackermann@overleaf.com>
* Rename `resend-confirm-email-code`'s `existingEmail` to `email`
* Remove "secondary" from rate-limiters
Co-authored-by: Jakob Ackermann <jakob.ackermann@overleaf.com>
* Remove unnecessary `userId` check behind `AuthenticationController.requireLogin()`
* Only open the modal if the code was sent successfully
---------
Co-authored-by: Jakob Ackermann <jakob.ackermann@overleaf.com>
GitOrigin-RevId: df892064641d9f722785699777383b2d863124e1
* Show an aggressive dashboard notification for unconfirmed emails
Show a persistent dashboard notification for untrusted secondary emails
* For emails before the cutoffDate, start displaying the notification on the deletionDate and show the notification for 90 days
* Update the email deletion logic for displaying the email notification and update test
* Update test
GitOrigin-RevId: 1b0e44f79592292d428c634dc1ec4df9e6ceaeb4