* feat: add Labs pane to preferences
* feat: use lab_features value for account switcher
* feat: labs pane with experimental features
* fix: use toggleExperimentalFeature from features service
* fix: show premium modal if not entitled for experimental feature
* fix: add isExperimental && isExperimentalEnabled to EditorMenuItem type
* fix: hide experimental editor if not enabled
* chore(deps): update features and snjs
* fix: remove comment
* fix: remove filtering from reloadExperimentalFeatures
* fix: revert Footer.tsx
* chore(deps): bump @standardnotes packages
* fix: change experimental features layout
Co-authored-by: Johnny Almonte <johnny243@users.noreply.github.com>
Co-authored-by: Mo <mo@standardnotes.com>
* fix: allow users to disable any active cloud integration even if they are not entitled to cloud backups
* chore: better variable naming
* refactor: move css constant away from the global constants file
* refactor: avoid importing a constant css class from non-shared file
* chore: install stylekit with its new name
* feat: import svg files from stylekit
* feat: import the remaining svgs from stylekit
* fix: import 'warning' icon from stylekit
* chore: import warning icon from stylekit
* chore: bump stylekit version
* chore: update sn dependencies
* feat: add migration pane
* style: clean imports
* removeme: beta version
* fix: do no show dropzone when tag has no parent
* fix: hide the Folders toggle
* fix: hide migrations option when user has no folders
* fix: add delimiter on Folders mark
* removeme: bump beta
* fix: remove component viewer for tag folders
* removeme: bump beta
* chore(deps): snjs
* feat: per-note spellcheck control
* fix: remove fill from svg
* feat: move spellcheck pref into defaults preferences section
* fix: use faded css class instead of opacity
* feat: plus editor 1.6.0
* feat: add "Email Backups" to "Backups" section
* chore: remove comment
* chore: better wording
* chore: put working snjs version
* chore: better wording
* style: reuse existing css classes and add the missing one
* feat: add "No email backup" option
* refactor: move the function outside of the useEffect, remove unused utility function
* feat (WIP): move CloudLink to backups section
* chore: versions bump, type fixes
* fix: handle the case when the setting update fails
* style: remove dashed border from the confirmation code, UI improvements
* feat: implement removing integration, improve interaction on different events
* feat: implement non-interactive textarea for showing and copying the code
* fix: fix TS errors
* feat: implement "Perform backup" logic
- remove the code for copying the confirmation code for backup integration
- also remove unnecessary parameters passed to Provider
* feat: don't show "CloudLink" in preferences pane
* chore: show error in console on exception
* refactor: better naming, add `coverage` folder to gitignore
* fix: return correct setting name
* refactor: use async/await for the sake of consistency
* chore: remove duplicate line
* feat: get urls for cloud backup from snjs
* chore: update dependencies
* refactor: set both `token` and `frequency` settings when enabling cloud integration; get only `frequency` when checking the integration status
* refactor: once the setting is successfully saved, don't get its value from backend; instead, use its value that's still in frontend
* feat: move "Receive a notification email if a cloud backup fails." into cloud backups section
* fix: text correction
* fix: get correct cloud integration url from snjs based on prod/dev environment
* feat: hide note contents if the protection expires when the protected note is open and wasn't edited for a while
* feat: handle session expiration for opened protected note for both plain advanced editors
* fix: if after canceling session expiry modal only one unprotected note stays selected, show its contents in the editor
* refactor: handle session expiration for opened protected note (move the logic to web client)
* feat: handle the case of selecting "Don't remember" option in session expiry dialog
* test (WIP): add unit tests for protecting opened note after the session has expired
* test: add remaining unit tests
* refactor: move the opened note protection logic to "editor_view"
* refactor: reviewer comments
- don't rely on user signed-in/out status to require authentication for protected note
- remove unnecessary async/awaits
- better wording on ui
* refactor: reviewer's comments:
- use snjs method to check if "Don't remember" option is selected in authentication modal
- move the constant to snjs
- fix eslint error
* refactor: avoid `any` type for `appEvent` payload
* test: add unit tests
* chore: update function name
* refactor: use simpler protection session event types
* refactor: protected access terminology
* refactor: start counting idle timer after every edit (instead of counting by interval in spite of edits)
* test: unit tests
* style: don't give extra brightness to the "View Note"/"Authenticate" button on hover/focus
* chore: bump snjs version
* chore: put snjs "beta" version
* fix: run protection timeout when the note is marked as protected
* chore: snjs version bump
* refactor: immediately lock the note if it's marked as "Protected"
* refactor: rename component, directive and some props
* refactor: remove extra check
* refactor: rename the method
* chore: update snjs version
Co-authored-by: Mo Bitar <me@bitar.io>
* feat: hide note contents if the protection expires when the protected note is open and wasn't edited for a while
* feat: handle session expiration for opened protected note for both plain advanced editors
* fix: if after canceling session expiry modal only one unprotected note stays selected, show its contents in the editor
* refactor: handle session expiration for opened protected note (move the logic to web client)
* feat: handle the case of selecting "Don't remember" option in session expiry dialog
* test (WIP): add unit tests for protecting opened note after the session has expired
* test: add remaining unit tests
* refactor: move the opened note protection logic to "editor_view"
* refactor: reviewer comments
- don't rely on user signed-in/out status to require authentication for protected note
- remove unnecessary async/awaits
- better wording on ui
* refactor: reviewer's comments:
- use snjs method to check if "Don't remember" option is selected in authentication modal
- move the constant to snjs
- fix eslint error
* refactor: avoid `any` type for `appEvent` payload
* test: add unit tests
* chore: update function name
* refactor: use simpler protection session event types
* refactor: protected access terminology
* refactor: start counting idle timer after every edit (instead of counting by interval in spite of edits)
* test: unit tests
* style: don't give extra brightness to the "View Note"/"Authenticate" button on hover/focus
* chore: bump snjs version
Co-authored-by: Mo Bitar <me@bitar.io>