* Implement INR geopricing test
* Show again the INR banner after 30 days
* Update INRBanner to direct users to the plans page and add tracking
* Remove local testing hack in GeoIpLookup
* Update formatter for subscription dashboard
* Flip assignment to assign all users and add event segmentations
* Fix linting
* Review suggestions - factorised recommended currency helper function
GitOrigin-RevId: b1616520f8c7ead689a840720057297e67d3f574
* Implement history view paywall
* Add tests and some CSS fallbacks
* Make additional faded version above paywall non-clickable
* Change isFaded to faded for consistency
* Remove unused import
* Add missing attribute
* SHow all labels in free tier
* Address review comments
* Change Boolean conversion
Co-authored-by: ilkin-overleaf <100852799+ilkin-overleaf@users.noreply.github.com>
* Make adding or deleting a label show up in version list again
* Refactor to use visibleUpdateCount rather than maintaining two separate update arrays
* Removed unused import
* Use data-testid instead on class
* Round gradient values
* Correct test selector
---------
Co-authored-by: ilkin-overleaf <100852799+ilkin-overleaf@users.noreply.github.com>
GitOrigin-RevId: a2b021f3f4d3b9eb1358edb2ee4aa7db1bc7240e
* Use forked @codemirror/search
* Use getPanel to get the search panel
* Remove layer-based highlightSelectionMatches
* Add "within selection" option to the search form
* Add test for "replace all within selection"
* Fix tests
GitOrigin-RevId: 95ce76fd017f96278b04c16a1fd34f785f7504a3
* Add strikethrough to deleted file tree item in history file tree
* Add "restore file" button on toolbar if the selected file have a `removed` operation.
* Implement "restore file" functionality on removed file:
- Refactor the `Selection` object in history context value since we need the `deletedAtV` data which currently is not passed through the state.
- Refactor and clean up file tree type system to support passing through the whole `FileDiff` object for getting the `deletedAtV` data which only appear on `removed` operation
- Implement `postJSON` with file restoration API and pass it on restore file onClick handler at toolbar
* Implement loading behaviour while restoring file is inflight:
- Add `loadingRestoreFile` to `LoadingState`
- Change restore file button to `Restoring...` when in loading state.
* Refactor:
- Rename `DiffOperation` to `FileOperation`
- Extract `isFileRemoved` and `isFileRenamed` to its own file
- Extract `Toolbar` components into small files
GitOrigin-RevId: 2e32ebd2165f73fc6533ff282a9c084162efd682
There are two different UI in this PR: `comparing` and `viewing` mode.
- For `comparing`, the user would be shown two separate date. It uses the `UpdateRange` object and this PR adds a timestamp to both `fromV` and `toV` of the object type.
- For `viewing`, the user would only be shown one date since `viewing` mode means viewing a specific update version.
Some other notable changes:
- Move `diff` state to `diff-view.tsx`, which contains `main.tsx` (main editor history view) and `toolbar.tsx` as its children
- refactor `autoSelectFile` by passing `updateRange.toV` directly
- refactor `updateIsSelected` by passing an object that contains `fromV` and `toV` instead of passing `update
There's also a cypress test for both the `viewing` mode and `comparing` mode in this PR.
GitOrigin-RevId: ba54f073f3479c55a39eb6b2932ea7faff78dddc
* Change wording of tags header and hide uncategorized when tags list is empty
* Add a tooltip on the colour picker more button
* Fix linting
GitOrigin-RevId: 07e1c411c2c9f6f66e0a00c1610af662b829c4e4
* Base for color picker
* React color picker and updated modals
* Add tag color picker to mobile dashboard
* Update existing tests and fix disable save button condition
* CSS adaptations for desktop modal streched into mobile display
* Update TagsController tests
* Add aria-hidden label on color pickers
* Fix linting
* Fix project list test
* Select random color when creating tag
* Cleanup leftovers in project list context
* Test cleanup
* Pre-select custom color and store local color while picking
* Add type to preset colors
* Add css fix to override disabled button opacity
* Skip redundant check
* Fix linting
* Add back btn-secondary on manage tag modal after rebase
GitOrigin-RevId: a4cf24e85cc0ca01466f4bf9c77482be8360e68e
* Implement onboarding video tour split test:
- Add split test infrastructure
- Create new `OnboardingVideoTourModal` component
- Place the component inside the editor pug template with a split test
* add event segmentation for `onboarding-video-tour-close-button-click` event:
1. video: `first` | `second`
2. firstVideoWatchingTimeInSecond: total time watching first video
2. secondVideoWatchingTimeInSecond: total time watching second video (0 if skipped)
* add event segmentation for:
1. `onboarding-video-tour-dismiss-button-click`
2. `onboarding-video-tour-next-button-click`
3. `onboarding-video-tour-done-button-click`
with these key/value:
1. firstVideoWatchingTimeInSecond: total time watching first video
2. secondVideoWatchingTimeInSecond: total time watching second video (0 if skipped/not watched yet)
* Use contentful to host video assets
GitOrigin-RevId: 27a6f38d15d7a03b07455e216dda63d99983ca80
* Rename manage group entry point
* Migrate group management root page to React
* Add cypress tests for the group management react page
* Fix linting
* Add checkbox labels for screen-readers + remove unused classes
* Await on add/remove members calls
* Display the export CSV link for a full group
* Display error message when group is full
* Sort locales
* Handle the managers management page in React version
* Fix missing type in GroupMemberRow
* Split members and managers React pages
* Build API paths on frontend side + add cypress tests for each page
* Fix linting
* Update unit tests
* Review improvements
* Type API errors
GitOrigin-RevId: d124a9d24cbf33de8aacc5d69e9d46e7bcda93c5
* Redesign the styling of conflict state for file upload in the editor
* Change overwrite button style from primary (green) to danger (red)
* Change the idle state and dragging state styling to match the error state new design:
*remove the double border; only keep the dashed border
* on idle state, change border color
* Add hardcoded texts to translation file
* Add padding to prevent text is becoming too near to the border when multiple files appear in the conflict file list
* Apply custom file uploader style to smaller screen
GitOrigin-RevId: 266e60bb8575a02c02c1ed1d7fa04cdb101f3dd1
* Implement new users micro survey for project dashboard page on react and non-react version
* Add 'new-users-micro-survey-click' and 'new-users-micro-survey-prompt' new event for the analytics
GitOrigin-RevId: 9aabe931987638b38995d404aa90ac4d40b2f3b5
- Implement the banner on both react and non-react project dashboard
- Use split test with 4 different variants, `save`, `empower`, `did-you-know`, and `default`, each variant has a different copy, except the `default` which won't show the banner to users
GitOrigin-RevId: ee76769dfd38b8e52de8cc0f201c24e41905d016
* Update "go to line" hotkey for cm6 and add new info text in hotkeys modal
* Differentiate modal title between cm6 and ace hotkeys
* Update test to reflect change in hotkeys modal title
* Add test for hotkeys modal bottom text
* Update test on editor left menu hotkeys button to reflect change in hotkeys modal title
GitOrigin-RevId: 61bae16313ea7a37fa3b9441dbe5a93ab7823d01
* Migrate actions menu in editor left menu to react
* Move margin from inline style to css file
* remove focus selector to avoid "highlighting" the button after closing modal and regain focus
* Add disabled state on word count button when the compiling is loading or failed
* Use div instead of button for disabled word count button
* Add accessibility text props when LeftMenuButton is disabled
* Add actions menu test cases and storybook components
* use util assign function and wrap function prop in usecallback
GitOrigin-RevId: 81ab104be21fbcf5dfbc72c07d29eeb32976c61f
* Initialize left menu react migration and migration download menu UI to react
* Add test case to DownloadMenu react component
* Update test description and add an href check to one of the download link
* Extract storybook document mock to its own fixture file
* Add mockCompileOnLoad config on storybook editor scope
- if mockCompileOnLoad: true (default), then the default compile mock will be used
- If mockCompileOnLoad: false, then we have to provide a compile mock on the storybook component
* Create download menu storybook component
* Use a single "editor-left-menu" controller on the editor left menu migrations
* Remove the form import from the react version of the left menu
* Change inline style to utility class name
GitOrigin-RevId: 5357c7bfc78bf40f52b9b308df8f2b60d793fbf7