mirror of
https://github.com/standardnotes/app
synced 2026-09-17 21:45:55 -04:00
Compare commits
38
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d129d51bfe | ||
|
|
6e6402da81 | ||
|
|
0e938c5596 | ||
|
|
db997955af | ||
|
|
9cae641693 | ||
|
|
08c38fc7cf | ||
|
|
153ec272d2 | ||
|
|
7d691aa409 | ||
|
|
9141da0832 | ||
|
|
39414e6cab | ||
|
|
1738485777 | ||
|
|
0cb73b5d18 | ||
|
|
5d98c86592 | ||
|
|
ba828f31ad | ||
|
|
c29832ab77 | ||
|
|
6f10d88dee | ||
|
|
7b66ee1d40 | ||
|
|
6c785e8565 | ||
|
|
c21ed0a8b6 | ||
|
|
a89d182612 | ||
|
|
4403fc3515 | ||
|
|
47b0ff42a0 | ||
|
|
d9e0261c80 | ||
|
|
8c3868a9d4 | ||
|
|
77b60d920d | ||
|
|
22cedc1321 | ||
|
|
502289aa50 | ||
|
|
4ef8992d43 | ||
|
|
228889c75c | ||
|
|
210d747a05 | ||
|
|
0d5833af3c | ||
|
|
87410f7e34 | ||
|
|
aaa8016792 | ||
|
|
356a3751de | ||
|
|
1d7079e90c | ||
|
|
390ea45865 | ||
|
|
68214b14b6 | ||
|
|
22297ff514 |
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -3,6 +3,10 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
## [1.26.10](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2023-05-22)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/api
|
||||
|
||||
## [1.26.9](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2023-05-22)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/api
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@standardnotes/api",
|
||||
"version": "1.26.9",
|
||||
"version": "1.26.10",
|
||||
"engines": {
|
||||
"node": ">=16.0.0 <17.0.0"
|
||||
},
|
||||
|
||||
@@ -3,6 +3,62 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
## [1.1.45](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2023-06-06)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/clipper
|
||||
|
||||
## [1.1.44](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2023-06-02)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/clipper
|
||||
|
||||
## [1.1.43](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2023-05-31)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/clipper
|
||||
|
||||
## [1.1.42](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2023-05-30)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/clipper
|
||||
|
||||
## [1.1.41](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2023-05-29)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/clipper
|
||||
|
||||
## [1.1.40](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2023-05-26)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/clipper
|
||||
|
||||
## [1.1.39](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2023-05-25)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/clipper
|
||||
|
||||
## [1.1.38](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2023-05-25)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/clipper
|
||||
|
||||
## [1.1.37](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2023-05-24)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/clipper
|
||||
|
||||
## [1.1.36](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2023-05-24)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/clipper
|
||||
|
||||
## [1.1.35](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2023-05-24)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/clipper
|
||||
|
||||
## [1.1.34](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2023-05-23)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/clipper
|
||||
|
||||
## [1.1.33](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2023-05-23)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/clipper
|
||||
|
||||
## [1.1.32](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2023-05-22)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/clipper
|
||||
|
||||
## [1.1.31](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2023-05-22)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/clipper
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@standardnotes/clipper",
|
||||
"description": "Web clipper browser extension for Standard Notes",
|
||||
"version": "1.1.31",
|
||||
"version": "1.1.45",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"build-mv2": "yarn clean && webpack --config ./webpack.config.prod.js",
|
||||
|
||||
@@ -3,6 +3,62 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
## [3.106.54](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2023-06-06)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/desktop
|
||||
|
||||
## [3.106.53](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2023-06-02)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/desktop
|
||||
|
||||
## [3.106.52](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2023-05-31)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/desktop
|
||||
|
||||
## [3.106.51](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2023-05-30)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/desktop
|
||||
|
||||
## [3.106.50](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2023-05-29)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/desktop
|
||||
|
||||
## [3.106.49](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2023-05-26)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/desktop
|
||||
|
||||
## [3.106.48](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2023-05-25)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/desktop
|
||||
|
||||
## [3.106.47](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2023-05-25)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/desktop
|
||||
|
||||
## [3.106.46](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2023-05-24)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/desktop
|
||||
|
||||
## [3.106.45](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2023-05-24)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/desktop
|
||||
|
||||
## [3.106.44](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2023-05-24)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/desktop
|
||||
|
||||
## [3.106.43](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2023-05-23)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/desktop
|
||||
|
||||
## [3.106.42](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2023-05-23)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/desktop
|
||||
|
||||
## [3.106.41](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2023-05-22)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/desktop
|
||||
|
||||
## [3.106.40](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2023-05-22)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/desktop
|
||||
|
||||
@@ -8,7 +8,7 @@ import {
|
||||
DesktopWatchedDirectoriesChange,
|
||||
} from '@web/Application/Device/DesktopSnjsExports'
|
||||
import { AppState } from 'app/AppState'
|
||||
import { promises as fs } from 'fs'
|
||||
import { promises as fs, existsSync } from 'fs'
|
||||
import { WebContents, shell } from 'electron'
|
||||
import { StoreKeys } from '../Store/StoreKeys'
|
||||
import path from 'path'
|
||||
@@ -74,10 +74,12 @@ export class FilesBackupManager implements FileBackupsDevice {
|
||||
|
||||
await ensureDirectoryExists(newLocation)
|
||||
|
||||
const legacyMappingLocation = `${legacyLocation}/info.json`
|
||||
const legacyMappingLocation = path.join(legacyLocation, 'info.json')
|
||||
const newMappingLocation = this.getFileBackupsMappingFilePath(newLocation)
|
||||
await ensureDirectoryExists(path.dirname(newMappingLocation))
|
||||
await moveFile(legacyMappingLocation, newMappingLocation)
|
||||
if (existsSync(legacyMappingLocation)) {
|
||||
await moveFile(legacyMappingLocation, newMappingLocation)
|
||||
}
|
||||
|
||||
await moveDirContents(legacyLocation, newLocation)
|
||||
}
|
||||
@@ -106,7 +108,7 @@ export class FilesBackupManager implements FileBackupsDevice {
|
||||
}
|
||||
|
||||
const LegacyTextBackupsDirectory = 'Standard Notes Backups'
|
||||
return `${Paths.homeDir}/${LegacyTextBackupsDirectory}`
|
||||
return path.join(Paths.homeDir, LegacyTextBackupsDirectory)
|
||||
}
|
||||
|
||||
public async presentDirectoryPickerForLocationChangeAndTransferOld(
|
||||
@@ -131,7 +133,7 @@ export class FilesBackupManager implements FileBackupsDevice {
|
||||
}
|
||||
|
||||
private getFileBackupsMappingFilePath(backupsLocation: string): string {
|
||||
return `${backupsLocation}/.settings/info.json`
|
||||
return path.join(backupsLocation, '.settings', 'info.json')
|
||||
}
|
||||
|
||||
private async getFileBackupsMappingFileFromDisk(backupsLocation: string): Promise<FileBackupsMapping | undefined> {
|
||||
@@ -176,9 +178,9 @@ export class FilesBackupManager implements FileBackupsDevice {
|
||||
url: string
|
||||
},
|
||||
): Promise<'success' | 'failed'> {
|
||||
const fileDir = `${location}/${uuid}`
|
||||
const metaFilePath = `${fileDir}/${FileBackupsConstantsV1.MetadataFileName}`
|
||||
const binaryPath = `${fileDir}/${FileBackupsConstantsV1.BinaryFileName}`
|
||||
const fileDir = path.join(location, uuid)
|
||||
const metaFilePath = path.join(fileDir, FileBackupsConstantsV1.MetadataFileName)
|
||||
const binaryPath = path.join(fileDir, FileBackupsConstantsV1.BinaryFileName)
|
||||
|
||||
await ensureDirectoryExists(fileDir)
|
||||
|
||||
@@ -268,7 +270,7 @@ export class FilesBackupManager implements FileBackupsDevice {
|
||||
}
|
||||
|
||||
private getPlaintextMappingFilePath(location: string): string {
|
||||
return `${location}/.settings/info.json`
|
||||
return path.join(location, '.settings', 'info.json')
|
||||
}
|
||||
|
||||
private async getPlaintextMappingFileFromDisk(location: string): Promise<PlaintextBackupsMapping | undefined> {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@standardnotes/desktop",
|
||||
"main": "./app/dist/index.js",
|
||||
"version": "3.106.40",
|
||||
"version": "3.106.54",
|
||||
"license": "AGPL-3.0-or-later",
|
||||
"author": "Standard Notes.",
|
||||
"private": true,
|
||||
|
||||
@@ -3,6 +3,10 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
## [1.21.38](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2023-05-22)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/encryption
|
||||
|
||||
## [1.21.37](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2023-05-22)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/encryption
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@standardnotes/encryption",
|
||||
"version": "1.21.37",
|
||||
"version": "1.21.38",
|
||||
"engines": {
|
||||
"node": ">=16.0.0 <17.0.0"
|
||||
},
|
||||
|
||||
@@ -3,6 +3,10 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
## [1.59.5](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2023-05-22)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/features
|
||||
|
||||
## [1.59.4](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2023-05-22)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/features
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@standardnotes/features",
|
||||
"version": "1.59.4",
|
||||
"version": "1.59.5",
|
||||
"engines": {
|
||||
"node": ">=16.0.0 <17.0.0"
|
||||
},
|
||||
|
||||
@@ -3,6 +3,14 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
## [1.28.47](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2023-06-06)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/filepicker
|
||||
|
||||
## [1.28.46](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2023-05-22)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/filepicker
|
||||
|
||||
## [1.28.45](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2023-05-22)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/filepicker
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@standardnotes/filepicker",
|
||||
"version": "1.28.45",
|
||||
"version": "1.28.47",
|
||||
"engines": {
|
||||
"node": ">=16.0.0 <17.0.0"
|
||||
},
|
||||
|
||||
@@ -3,6 +3,14 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
## [1.15.9](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2023-06-06)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/files
|
||||
|
||||
## [1.15.8](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2023-05-22)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/files
|
||||
|
||||
## [1.15.7](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2023-05-22)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/files
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@standardnotes/files",
|
||||
"version": "1.15.7",
|
||||
"version": "1.15.9",
|
||||
"engines": {
|
||||
"node": ">=16.0.0 <17.0.0"
|
||||
},
|
||||
|
||||
@@ -18,7 +18,7 @@ export interface BackupServiceInterface {
|
||||
getFilesBackupsLocation(): string | undefined
|
||||
openFilesBackupsLocation(): Promise<void>
|
||||
openFileBackup(record: FileBackupRecord): Promise<void>
|
||||
getFileBackupAbsolutePath(record: FileBackupRecord): string
|
||||
getFileBackupAbsolutePath(record: FileBackupRecord): Promise<string>
|
||||
|
||||
isTextBackupsEnabled(): boolean
|
||||
enableTextBackups(): Promise<void>
|
||||
|
||||
@@ -3,6 +3,64 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
## [3.53.54](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2023-06-06)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/mobile
|
||||
|
||||
## [3.53.53](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2023-06-02)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/mobile
|
||||
|
||||
## [3.53.52](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2023-05-31)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/mobile
|
||||
|
||||
## [3.53.51](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2023-05-30)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/mobile
|
||||
|
||||
## [3.53.50](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2023-05-29)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* Fixed issue on Android where pressing backspace in Super notes would delete characters on both side of the cursor ([#2336](https://github.com/standardnotes/app/issues/2336)) ([0cb73b5](https://github.com/standardnotes/app/commit/0cb73b5d18ece035e2fce904c859d548b8657053))
|
||||
|
||||
## [3.53.49](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2023-05-26)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/mobile
|
||||
|
||||
## [3.53.48](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2023-05-25)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/mobile
|
||||
|
||||
## [3.53.47](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2023-05-25)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/mobile
|
||||
|
||||
## [3.53.46](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2023-05-24)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/mobile
|
||||
|
||||
## [3.53.45](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2023-05-24)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/mobile
|
||||
|
||||
## [3.53.44](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2023-05-24)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/mobile
|
||||
|
||||
## [3.53.43](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2023-05-23)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/mobile
|
||||
|
||||
## [3.53.42](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2023-05-23)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/mobile
|
||||
|
||||
## [3.53.41](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2023-05-22)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/mobile
|
||||
|
||||
## [3.53.40](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2023-05-22)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/mobile
|
||||
|
||||
@@ -0,0 +1,74 @@
|
||||
package com.standardnotes;
|
||||
|
||||
import com.reactnativecommunity.webview.RNCWebViewManager;
|
||||
import com.facebook.react.uimanager.ThemedReactContext;
|
||||
import android.view.inputmethod.InputConnectionWrapper;
|
||||
import com.facebook.react.module.annotations.ReactModule;
|
||||
import android.view.KeyEvent;
|
||||
import android.view.inputmethod.EditorInfo;
|
||||
import android.view.inputmethod.InputConnection;
|
||||
import android.webkit.WebView;
|
||||
|
||||
@ReactModule(name = CustomWebViewManager.REACT_CLASS)
|
||||
public class CustomWebViewManager extends RNCWebViewManager {
|
||||
/* This name must match what we’re referring to in JS */
|
||||
protected static final String REACT_CLASS = "CustomWebView";
|
||||
|
||||
protected static class CustomWebViewClient extends RNCWebViewClient {}
|
||||
|
||||
protected static class CustomWebView extends RNCWebView {
|
||||
public CustomWebView(ThemedReactContext reactContext) {
|
||||
super(reactContext);
|
||||
}
|
||||
|
||||
@Override
|
||||
public InputConnection onCreateInputConnection(EditorInfo outAttrs) {
|
||||
InputConnection con = super.onCreateInputConnection(outAttrs);
|
||||
if (con == null) {
|
||||
return null;
|
||||
}
|
||||
return new CustomInputConnection(con, true);
|
||||
}
|
||||
|
||||
private class CustomInputConnection extends InputConnectionWrapper {
|
||||
public CustomInputConnection(InputConnection target, boolean mutable) {
|
||||
super(target, mutable);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean sendKeyEvent(KeyEvent event) {
|
||||
if (event.getAction() == KeyEvent.ACTION_DOWN && event.getKeyCode() == KeyEvent.KEYCODE_DEL) {
|
||||
// Un-comment if you wish to cancel the backspace:
|
||||
// return false;
|
||||
}
|
||||
return super.sendKeyEvent(event);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean deleteSurroundingText(int beforeLength, int afterLength) {
|
||||
// magic: in latest Android, deleteSurroundingText(1, 0) will be called for backspace
|
||||
if (beforeLength == 1 && afterLength == 0) {
|
||||
// backspace
|
||||
return sendKeyEvent(new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_DEL))
|
||||
&& sendKeyEvent(new KeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_DEL));
|
||||
}
|
||||
return super.deleteSurroundingText(beforeLength, afterLength);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected RNCWebView createRNCWebViewInstance(ThemedReactContext reactContext) {
|
||||
return new CustomWebView(reactContext);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
return REACT_CLASS;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void addEventEmitters(ThemedReactContext reactContext, WebView view) {
|
||||
view.setWebViewClient(new CustomWebViewClient());
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
package com.standardnotes;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import com.facebook.react.ReactPackage;
|
||||
import com.facebook.react.bridge.NativeModule;
|
||||
import com.facebook.react.bridge.ReactApplicationContext;
|
||||
import com.facebook.react.uimanager.ViewManager;
|
||||
|
||||
public class CustomWebViewPackage implements ReactPackage {
|
||||
@Override
|
||||
public List<NativeModule> createNativeModules(ReactApplicationContext reactContext) {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<ViewManager> createViewManagers(ReactApplicationContext reactContext) {
|
||||
return Arrays.<ViewManager>asList(new CustomWebViewManager());
|
||||
}
|
||||
}
|
||||
@@ -38,6 +38,7 @@ public class MainApplication extends Application implements ReactApplication {
|
||||
List<ReactPackage> packages = new PackageList(this).getPackages();
|
||||
|
||||
packages.add(new Fido2ApiPackage());
|
||||
packages.add(new CustomWebViewPackage());
|
||||
|
||||
return packages;
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@standardnotes/mobile",
|
||||
"version": "3.53.40",
|
||||
"version": "3.53.54",
|
||||
"author": "Standard Notes.",
|
||||
"private": true,
|
||||
"license": "AGPL-3.0-or-later",
|
||||
|
||||
@@ -1,15 +1,17 @@
|
||||
import { ReactNativeToWebEvent } from '@standardnotes/snjs'
|
||||
import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react'
|
||||
import { Button, Keyboard, Platform, Text, View } from 'react-native'
|
||||
import { Button, Keyboard, Platform, requireNativeComponent, Text, View } from 'react-native'
|
||||
import VersionInfo from 'react-native-version-info'
|
||||
import { WebView, WebViewMessageEvent } from 'react-native-webview'
|
||||
import { OnShouldStartLoadWithRequest } from 'react-native-webview/lib/WebViewTypes'
|
||||
import { NativeWebViewAndroid, OnShouldStartLoadWithRequest } from 'react-native-webview/lib/WebViewTypes'
|
||||
import { AndroidBackHandlerService } from './AndroidBackHandlerService'
|
||||
import { AppStateObserverService } from './AppStateObserverService'
|
||||
import { ColorSchemeObserverService } from './ColorSchemeObserverService'
|
||||
import { MobileDevice, MobileDeviceEvent } from './Lib/MobileDevice'
|
||||
import { IsDev } from './Lib/Utils'
|
||||
|
||||
const CustomWebView: NativeWebViewAndroid = requireNativeComponent('CustomWebView')
|
||||
|
||||
const LoggingEnabled = IsDev
|
||||
|
||||
export const MobileWebAppContainer = () => {
|
||||
@@ -354,6 +356,12 @@ const MobileWebAppContents = ({ destroyAndReload }: { destroyAndReload: () => vo
|
||||
* This is needed to prevent the keyboard from pushing the webview up and down when it appears and disappears.
|
||||
*/
|
||||
scrollEnabled={false}
|
||||
overScrollMode="never"
|
||||
nativeConfig={Platform.select({
|
||||
android: {
|
||||
component: CustomWebView,
|
||||
},
|
||||
})}
|
||||
/>
|
||||
)
|
||||
}
|
||||
|
||||
@@ -3,6 +3,10 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
## [1.45.5](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2023-05-22)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/models
|
||||
|
||||
## [1.45.4](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2023-05-22)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/models
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@standardnotes/models",
|
||||
"version": "1.45.4",
|
||||
"version": "1.45.5",
|
||||
"engines": {
|
||||
"node": ">=16.0.0 <17.0.0"
|
||||
},
|
||||
|
||||
@@ -3,6 +3,62 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
## [1.4.322](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2023-06-06)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/releases
|
||||
|
||||
## [1.4.321](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2023-06-02)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/releases
|
||||
|
||||
## [1.4.320](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2023-05-31)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/releases
|
||||
|
||||
## [1.4.319](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2023-05-30)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/releases
|
||||
|
||||
## [1.4.318](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2023-05-29)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/releases
|
||||
|
||||
## [1.4.317](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2023-05-26)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/releases
|
||||
|
||||
## [1.4.316](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2023-05-25)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/releases
|
||||
|
||||
## [1.4.315](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2023-05-25)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/releases
|
||||
|
||||
## [1.4.314](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2023-05-24)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/releases
|
||||
|
||||
## [1.4.313](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2023-05-24)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/releases
|
||||
|
||||
## [1.4.312](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2023-05-24)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/releases
|
||||
|
||||
## [1.4.311](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2023-05-23)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/releases
|
||||
|
||||
## [1.4.310](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2023-05-23)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/releases
|
||||
|
||||
## [1.4.309](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2023-05-22)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/releases
|
||||
|
||||
## [1.4.308](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2023-05-22)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/releases
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@standardnotes/releases",
|
||||
"version": "1.4.308",
|
||||
"version": "1.4.322",
|
||||
"license": "AGPL-3.0-or-later",
|
||||
"main": "dist/releases.json",
|
||||
"types": "dist/index.d.ts",
|
||||
|
||||
@@ -3,6 +3,10 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
## [1.13.24](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2023-05-22)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/responses
|
||||
|
||||
## [1.13.23](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2023-05-22)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/responses
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@standardnotes/responses",
|
||||
"version": "1.13.23",
|
||||
"version": "1.13.24",
|
||||
"engines": {
|
||||
"node": ">=16.0.0 <17.0.0"
|
||||
},
|
||||
|
||||
@@ -3,6 +3,20 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
## [1.59.12](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2023-06-06)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/services
|
||||
|
||||
## [1.59.11](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2023-05-31)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **desktop:** Fixed issue where local backup location would default to "[object Promise]" ([7d691aa](https://github.com/standardnotes/app/commit/7d691aa409af3636ad795491b8b817d9eb7a980d))
|
||||
|
||||
## [1.59.10](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2023-05-22)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/services
|
||||
|
||||
## [1.59.9](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2023-05-22)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/services
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@standardnotes/services",
|
||||
"version": "1.59.9",
|
||||
"version": "1.59.12",
|
||||
"engines": {
|
||||
"node": ">=16.0.0 <17.0.0"
|
||||
},
|
||||
|
||||
@@ -48,6 +48,7 @@ describe('backup service', () => {
|
||||
device = {} as jest.Mocked<FileBackupsDevice>
|
||||
device.getFileBackupReadToken = jest.fn()
|
||||
device.readNextChunk = jest.fn()
|
||||
device.joinPaths = jest.fn()
|
||||
|
||||
session = {} as jest.Mocked<SessionsClientInterface>
|
||||
|
||||
@@ -84,6 +85,7 @@ describe('backup service', () => {
|
||||
history,
|
||||
internalEventBus,
|
||||
)
|
||||
backupService.getFilesBackupsLocation = jest.fn().mockReturnValue('/')
|
||||
|
||||
crypto.xchacha20StreamInitDecryptor = jest.fn().mockReturnValue({
|
||||
state: {},
|
||||
|
||||
@@ -147,9 +147,10 @@ export class FilesBackupService extends AbstractService implements BackupService
|
||||
private async automaticallyEnableTextBackupsIfPreferenceNotSet(): Promise<void> {
|
||||
if (this.storage.getValue(StorageKey.TextBackupsEnabled) == undefined) {
|
||||
this.storage.setValue(StorageKey.TextBackupsEnabled, true)
|
||||
const location = `${await this.device.getUserDocumentsDirectory()}/${this.prependWorkspacePathForPath(
|
||||
TextBackupsDirectoryName,
|
||||
)}`
|
||||
const location = await this.device.joinPaths(
|
||||
await this.device.getUserDocumentsDirectory(),
|
||||
await this.prependWorkspacePathForPath(TextBackupsDirectoryName),
|
||||
)
|
||||
this.storage.setValue(StorageKey.TextBackupsLocation, location)
|
||||
}
|
||||
}
|
||||
@@ -378,13 +379,16 @@ export class FilesBackupService extends AbstractService implements BackupService
|
||||
return record
|
||||
}
|
||||
|
||||
public getFileBackupAbsolutePath(record: FileBackupRecord): string {
|
||||
public getFileBackupAbsolutePath(record: FileBackupRecord): Promise<string> {
|
||||
const location = this.getFilesBackupsLocation()
|
||||
return `${location}/${record.relativePath}`
|
||||
if (!location) {
|
||||
throw new ClientDisplayableError('No files backups location set')
|
||||
}
|
||||
return this.device.joinPaths(location, record.relativePath)
|
||||
}
|
||||
|
||||
public async openFileBackup(record: FileBackupRecord): Promise<void> {
|
||||
const location = this.getFileBackupAbsolutePath(record)
|
||||
const location = await this.getFileBackupAbsolutePath(record)
|
||||
await this.device.openLocation(location)
|
||||
}
|
||||
|
||||
@@ -459,7 +463,13 @@ export class FilesBackupService extends AbstractService implements BackupService
|
||||
return 'failed'
|
||||
}
|
||||
|
||||
const path = `${this.getFilesBackupsLocation()}/${fileBackup.relativePath}/${fileBackup.binaryFileName}`
|
||||
const fileBackupsLocation = this.getFilesBackupsLocation()
|
||||
|
||||
if (!fileBackupsLocation) {
|
||||
return 'failed'
|
||||
}
|
||||
|
||||
const path = await this.device.joinPaths(fileBackupsLocation, fileBackup.relativePath, fileBackup.binaryFileName)
|
||||
const token = await this.device.getFileBackupReadToken(path)
|
||||
|
||||
let readMore = true
|
||||
|
||||
@@ -3,6 +3,26 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
## [2.168.20](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2023-06-06)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/snjs
|
||||
|
||||
## [2.168.19](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2023-05-31)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/snjs
|
||||
|
||||
## [2.168.18](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2023-05-26)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/snjs
|
||||
|
||||
## [2.168.17](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2023-05-25)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/snjs
|
||||
|
||||
## [2.168.16](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2023-05-22)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/snjs
|
||||
|
||||
## [2.168.15](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2023-05-22)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/snjs
|
||||
|
||||
@@ -5,7 +5,7 @@ import { createNoteParams } from './lib/Items.js'
|
||||
chai.use(chaiAsPromised)
|
||||
const expect = chai.expect
|
||||
|
||||
describe.skip('history manager', () => {
|
||||
describe('history manager', () => {
|
||||
const largeCharacterChange = 25
|
||||
|
||||
const syncOptions = {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@standardnotes/snjs",
|
||||
"version": "2.168.15",
|
||||
"version": "2.168.20",
|
||||
"engines": {
|
||||
"node": ">=16.0.0 <17.0.0"
|
||||
},
|
||||
|
||||
@@ -3,6 +3,18 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
## [1.26.14](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2023-06-06)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/ui-services
|
||||
|
||||
## [1.26.13](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2023-05-31)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/ui-services
|
||||
|
||||
## [1.26.12](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2023-05-22)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/ui-services
|
||||
|
||||
## [1.26.11](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2023-05-22)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/ui-services
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@standardnotes/ui-services",
|
||||
"version": "1.26.11",
|
||||
"version": "1.26.14",
|
||||
"engines": {
|
||||
"node": ">=16.0.0 <17.0.0"
|
||||
},
|
||||
|
||||
@@ -3,6 +3,72 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
## [3.161.1](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2023-06-06)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/web
|
||||
|
||||
# [3.161.0](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2023-06-02)
|
||||
|
||||
### Features
|
||||
|
||||
* You can now drag-n-drop notes onto tags to move them from one tag to another ([#2334](https://github.com/standardnotes/app/issues/2334)) ([08c38fc](https://github.com/standardnotes/app/commit/08c38fc7cfbce96c5de269073f5f0117000066a8))
|
||||
|
||||
## [3.160.19](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2023-05-31)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **desktop:** Fixed issue where local backup location would default to "[object Promise]" ([7d691aa](https://github.com/standardnotes/app/commit/7d691aa409af3636ad795491b8b817d9eb7a980d))
|
||||
|
||||
## [3.160.18](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2023-05-30)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* Fixed issue where pane gestures on Android would break scroll in a daily journal tag ([39414e6](https://github.com/standardnotes/app/commit/39414e6caba4830192a54ea9553bcda36959c9bf))
|
||||
|
||||
## [3.160.17](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2023-05-29)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* Fixed issue on Android where pressing backspace in Super notes would delete characters on both side of the cursor ([#2336](https://github.com/standardnotes/app/issues/2336)) ([0cb73b5](https://github.com/standardnotes/app/commit/0cb73b5d18ece035e2fce904c859d548b8657053))
|
||||
|
||||
## [3.160.16](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2023-05-26)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/web
|
||||
|
||||
## [3.160.15](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2023-05-25)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/web
|
||||
|
||||
## [3.160.14](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2023-05-25)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/web
|
||||
|
||||
## [3.160.13](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2023-05-24)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/web
|
||||
|
||||
## [3.160.12](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2023-05-24)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/web
|
||||
|
||||
## [3.160.11](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2023-05-24)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/web
|
||||
|
||||
## [3.160.10](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2023-05-23)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/web
|
||||
|
||||
## [3.160.9](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2023-05-23)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* Fixed issue where some dialogs would become unresponsive ([1d7079e](https://github.com/standardnotes/app/commit/1d7079e90cf5c4de57a77b408a7b2d399a4a6a38))
|
||||
|
||||
## [3.160.8](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2023-05-22)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/web
|
||||
|
||||
## [3.160.7](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2023-05-22)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/web
|
||||
|
||||
@@ -1,5 +1,174 @@
|
||||
{
|
||||
"versions": [
|
||||
{
|
||||
"version": "3.161.1",
|
||||
"title": "[3.161.1](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2023-06-06)",
|
||||
"date": null,
|
||||
"body": "**Note:** Version bump only for package @standardnotes/web",
|
||||
"parsed": {
|
||||
"_": [
|
||||
"Note: Version bump only for package @standardnotes/web"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"version": "3.161.0",
|
||||
"title": "[3.161.0](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2023-06-02)",
|
||||
"date": null,
|
||||
"body": "### Features\n\n* You can now drag-n-drop notes onto tags to move them from one tag to another ([#2334](https://github.com/standardnotes/app/issues/2334)) ([08c38fc](https://github.com/standardnotes/app/commit/08c38fc7cfbce96c5de269073f5f0117000066a8))",
|
||||
"parsed": {
|
||||
"_": [
|
||||
"You can now drag-n-drop notes onto tags to move them from one tag to another (#2334) (08c38fc)"
|
||||
],
|
||||
"Features": [
|
||||
"You can now drag-n-drop notes onto tags to move them from one tag to another (#2334) (08c38fc)"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"version": "3.160.19",
|
||||
"title": "[3.160.19](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2023-05-31)",
|
||||
"date": null,
|
||||
"body": "### Bug Fixes\n\n* **desktop:** Fixed issue where local backup location would default to \"[object Promise]\" ([7d691aa](https://github.com/standardnotes/app/commit/7d691aa409af3636ad795491b8b817d9eb7a980d))",
|
||||
"parsed": {
|
||||
"_": [
|
||||
"desktop: Fixed issue where local backup location would default to \"object Promise]\" ([7d691aa)"
|
||||
],
|
||||
"Bug Fixes": [
|
||||
"desktop: Fixed issue where local backup location would default to \"object Promise]\" ([7d691aa)"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"version": "3.160.18",
|
||||
"title": "[3.160.18](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2023-05-30)",
|
||||
"date": null,
|
||||
"body": "### Bug Fixes\n\n* Fixed issue where pane gestures on Android would break scroll in a daily journal tag ([39414e6](https://github.com/standardnotes/app/commit/39414e6caba4830192a54ea9553bcda36959c9bf))",
|
||||
"parsed": {
|
||||
"_": [
|
||||
"Fixed issue where pane gestures on Android would break scroll in a daily journal tag (39414e6)"
|
||||
],
|
||||
"Bug Fixes": [
|
||||
"Fixed issue where pane gestures on Android would break scroll in a daily journal tag (39414e6)"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"version": "3.160.17",
|
||||
"title": "[3.160.17](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2023-05-29)",
|
||||
"date": null,
|
||||
"body": "### Bug Fixes\n\n* Fixed issue on Android where pressing backspace in Super notes would delete characters on both side of the cursor ([#2336](https://github.com/standardnotes/app/issues/2336)) ([0cb73b5](https://github.com/standardnotes/app/commit/0cb73b5d18ece035e2fce904c859d548b8657053))",
|
||||
"parsed": {
|
||||
"_": [
|
||||
"Fixed issue on Android where pressing backspace in Super notes would delete characters on both side of the cursor (#2336) (0cb73b5)"
|
||||
],
|
||||
"Bug Fixes": [
|
||||
"Fixed issue on Android where pressing backspace in Super notes would delete characters on both side of the cursor (#2336) (0cb73b5)"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"version": "3.160.16",
|
||||
"title": "[3.160.16](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2023-05-26)",
|
||||
"date": null,
|
||||
"body": "**Note:** Version bump only for package @standardnotes/web",
|
||||
"parsed": {
|
||||
"_": [
|
||||
"Note: Version bump only for package @standardnotes/web"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"version": "3.160.15",
|
||||
"title": "[3.160.15](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2023-05-25)",
|
||||
"date": null,
|
||||
"body": "**Note:** Version bump only for package @standardnotes/web",
|
||||
"parsed": {
|
||||
"_": [
|
||||
"Note: Version bump only for package @standardnotes/web"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"version": "3.160.14",
|
||||
"title": "[3.160.14](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2023-05-25)",
|
||||
"date": null,
|
||||
"body": "**Note:** Version bump only for package @standardnotes/web",
|
||||
"parsed": {
|
||||
"_": [
|
||||
"Note: Version bump only for package @standardnotes/web"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"version": "3.160.13",
|
||||
"title": "[3.160.13](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2023-05-24)",
|
||||
"date": null,
|
||||
"body": "**Note:** Version bump only for package @standardnotes/web",
|
||||
"parsed": {
|
||||
"_": [
|
||||
"Note: Version bump only for package @standardnotes/web"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"version": "3.160.12",
|
||||
"title": "[3.160.12](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2023-05-24)",
|
||||
"date": null,
|
||||
"body": "**Note:** Version bump only for package @standardnotes/web",
|
||||
"parsed": {
|
||||
"_": [
|
||||
"Note: Version bump only for package @standardnotes/web"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"version": "3.160.11",
|
||||
"title": "[3.160.11](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2023-05-24)",
|
||||
"date": null,
|
||||
"body": "**Note:** Version bump only for package @standardnotes/web",
|
||||
"parsed": {
|
||||
"_": [
|
||||
"Note: Version bump only for package @standardnotes/web"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"version": "3.160.10",
|
||||
"title": "[3.160.10](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2023-05-23)",
|
||||
"date": null,
|
||||
"body": "**Note:** Version bump only for package @standardnotes/web",
|
||||
"parsed": {
|
||||
"_": [
|
||||
"Note: Version bump only for package @standardnotes/web"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"version": "3.160.9",
|
||||
"title": "[3.160.9](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2023-05-23)",
|
||||
"date": null,
|
||||
"body": "### Bug Fixes\n\n* Fixed issue where some dialogs would become unresponsive ([1d7079e](https://github.com/standardnotes/app/commit/1d7079e90cf5c4de57a77b408a7b2d399a4a6a38))",
|
||||
"parsed": {
|
||||
"_": [
|
||||
"Fixed issue where some dialogs would become unresponsive (1d7079e)"
|
||||
],
|
||||
"Bug Fixes": [
|
||||
"Fixed issue where some dialogs would become unresponsive (1d7079e)"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"version": "3.160.8",
|
||||
"title": "[3.160.8](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2023-05-22)",
|
||||
"date": null,
|
||||
"body": "**Note:** Version bump only for package @standardnotes/web",
|
||||
"parsed": {
|
||||
"_": [
|
||||
"Note: Version bump only for package @standardnotes/web"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"version": "3.160.7",
|
||||
"title": "[3.160.7](https://github.com/standardnotes/app/compare/@standardnotes/[email protected]...@standardnotes/[email protected]) (2023-05-22)",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@standardnotes/web",
|
||||
"version": "3.160.7",
|
||||
"version": "3.161.1",
|
||||
"license": "AGPL-3.0-or-later",
|
||||
"main": "dist/app.js",
|
||||
"author": "Standard Notes",
|
||||
@@ -28,7 +28,7 @@
|
||||
"@babel/plugin-transform-react-jsx": "^7.19.0",
|
||||
"@babel/preset-env": "*",
|
||||
"@babel/preset-typescript": "^7.21.5",
|
||||
"@lexical/react": "0.10.0",
|
||||
"@lexical/react": "0.11.0",
|
||||
"@pmmmwh/react-refresh-webpack-plugin": "^0.5.10",
|
||||
"@simplewebauthn/browser": "^7.1.0",
|
||||
"@standardnotes/authenticator": "^2.4.0",
|
||||
@@ -75,7 +75,7 @@
|
||||
"identity-obj-proxy": "^3.0.0",
|
||||
"jest": "^29.3.1",
|
||||
"jest-environment-jsdom": "^29.3.1",
|
||||
"lexical": "0.10.0",
|
||||
"lexical": "0.11.0",
|
||||
"lint-staged": ">=13",
|
||||
"mini-css-extract-plugin": "^2.7.2",
|
||||
"minimatch": "^5.1.1",
|
||||
@@ -108,7 +108,7 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@ariakit/react": "^0.2.1",
|
||||
"@lexical/headless": "0.10.0",
|
||||
"@lexical/headless": "0.11.0",
|
||||
"@radix-ui/react-slot": "^1.0.1"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -46,4 +46,5 @@
|
||||
--sn-stylekit-scrollbar-thumb-color: var(--sn-stylekit-info-color);
|
||||
--sn-stylekit-menu-border: 1px solid #424242;
|
||||
--navigation-item-selected-background-color: var(--background-color);
|
||||
--normal-button-background-color: var(--sn-stylekit-passive-color-5);
|
||||
}
|
||||
|
||||
@@ -42,4 +42,5 @@
|
||||
--sn-desktop-titlebar-ui-hover-color: var(--highlight-color);
|
||||
--sn-stylekit-menu-border: 1px solid #434b60;
|
||||
--navigation-item-selected-background-color: var(--sn-stylekit-background-color);
|
||||
--normal-button-background-color: var(--sn-stylekit-passive-color-5);
|
||||
}
|
||||
|
||||
@@ -43,4 +43,5 @@
|
||||
--sn-stylekit-scrollbar-thumb-color: var(--sn-stylekit-info-color);
|
||||
--sn-stylekit-menu-border: 1px solid #494965;
|
||||
--navigation-item-selected-background-color: var(--sn-stylekit-background-color);
|
||||
--normal-button-background-color: var(--sn-stylekit-passive-color-5);
|
||||
}
|
||||
|
||||
@@ -58,4 +58,5 @@
|
||||
--sn-desktop-titlebar-ui-hover-color: var(--highlight-color);
|
||||
--sn-stylekit-menu-border: 1px solid #1f5461;
|
||||
--navigation-item-selected-background-color: var(--sn-stylekit-background-color);
|
||||
--normal-button-background-color: var(--sn-stylekit-passive-color-5);
|
||||
}
|
||||
|
||||
@@ -14,7 +14,14 @@ const AlertDialog = ({
|
||||
})
|
||||
|
||||
return (
|
||||
<Dialog store={dialog} role="alertdialog" className="fixed top-0 left-0 z-modal h-full w-full">
|
||||
<Dialog
|
||||
store={dialog}
|
||||
role="alertdialog"
|
||||
className="fixed top-0 left-0 z-modal h-full w-full"
|
||||
modal={false}
|
||||
portal={true}
|
||||
preventBodyScroll={true}
|
||||
>
|
||||
<div
|
||||
className="absolute z-0 h-full w-full bg-passive-5 opacity-25 md:opacity-75"
|
||||
role="presentation"
|
||||
|
||||
@@ -5,19 +5,19 @@ export type ButtonStyle = 'default' | 'contrast' | 'neutral' | 'info' | 'warning
|
||||
const getColorsForNormalVariant = (style: ButtonStyle) => {
|
||||
switch (style) {
|
||||
case 'default':
|
||||
return 'bg-default text-text'
|
||||
return 'bg-normal-button text-text'
|
||||
case 'contrast':
|
||||
return 'bg-default text-contrast'
|
||||
return 'bg-normal-button text-contrast'
|
||||
case 'neutral':
|
||||
return 'bg-default text-neutral'
|
||||
return 'bg-normal-button text-neutral'
|
||||
case 'info':
|
||||
return 'bg-default text-info'
|
||||
return 'bg-normal-button text-info'
|
||||
case 'warning':
|
||||
return 'bg-default text-warning'
|
||||
return 'bg-normal-button text-warning'
|
||||
case 'danger':
|
||||
return 'bg-default text-danger'
|
||||
return 'bg-normal-button text-danger'
|
||||
case 'success':
|
||||
return 'bg-default text-success'
|
||||
return 'bg-normal-button text-success'
|
||||
}
|
||||
}
|
||||
|
||||
@@ -59,7 +59,7 @@ const getClassName = (
|
||||
|
||||
let focusHoverStates = primary
|
||||
? 'hover:brightness-125 focus:outline-none focus:brightness-125'
|
||||
: 'focus:bg-contrast focus:outline-none hover:bg-contrast'
|
||||
: 'focus:bg-contrast focus:outline-none hover:border-info hover:text-info hover:bg-contrast'
|
||||
|
||||
if (disabled) {
|
||||
colors = primary ? 'bg-passive-2 text-info-contrast' : 'bg-default text-passive-2'
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import { FunctionComponent } from 'react'
|
||||
import Icon from '@/Components/Icon/Icon'
|
||||
import { ListableContentItem } from './Types/ListableContentItem'
|
||||
import { classNames } from '@standardnotes/snjs'
|
||||
|
||||
type Props = {
|
||||
item: {
|
||||
@@ -10,7 +11,6 @@ type Props = {
|
||||
pinned: ListableContentItem['pinned']
|
||||
starred: ListableContentItem['starred']
|
||||
}
|
||||
hideIcon?: boolean
|
||||
hasFiles?: boolean
|
||||
hasBorder?: boolean
|
||||
isFileBackedUp?: boolean
|
||||
@@ -19,14 +19,13 @@ type Props = {
|
||||
|
||||
const ListItemFlagIcons: FunctionComponent<Props> = ({
|
||||
item,
|
||||
hideIcon = false,
|
||||
hasFiles = false,
|
||||
hasBorder = true,
|
||||
isFileBackedUp = false,
|
||||
className,
|
||||
}) => {
|
||||
return (
|
||||
<div className={`flex items-start ${hasBorder && 'border-b border-solid border-border'} ${className} pl-0`}>
|
||||
<div className={classNames('flex items-start pl-0', hasBorder && 'border-b border-solid border-border', className)}>
|
||||
{item.locked && (
|
||||
<span className="flex items-center" title="Editing Disabled">
|
||||
<Icon ariaLabel="Editing Disabled" type="pencil-off" className="text-info" size="medium" />
|
||||
@@ -42,11 +41,6 @@ const ListItemFlagIcons: FunctionComponent<Props> = ({
|
||||
<Icon ariaLabel="Archived" type="archive" className="text-accessory-tint-3" size="medium" />
|
||||
</span>
|
||||
)}
|
||||
{hideIcon && item.pinned && (
|
||||
<span className="ml-1.5 flex items-center" title="Pinned">
|
||||
<Icon ariaLabel="Pinned" type="pin-filled" className="text-info" size="medium" />
|
||||
</span>
|
||||
)}
|
||||
{hasFiles && (
|
||||
<span className="ml-1.5 flex items-center" title="Files">
|
||||
<Icon ariaLabel="Files" type="attachment-file" className="text-info" size="medium" />
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { sanitizeHtmlString, SNNote } from '@standardnotes/snjs'
|
||||
import { classNames, sanitizeHtmlString, SNNote } from '@standardnotes/snjs'
|
||||
import { FunctionComponent } from 'react'
|
||||
|
||||
type Props = {
|
||||
@@ -13,7 +13,12 @@ const ListItemNotePreviewText: FunctionComponent<Props> = ({ item, hidePreview,
|
||||
}
|
||||
|
||||
return (
|
||||
<div className={`overflow-hidden overflow-ellipsis text-base lg:text-sm ${item.archived ? 'opacity-60' : ''}`}>
|
||||
<div
|
||||
className={classNames(
|
||||
'overflow-hidden overflow-ellipsis text-base lg:text-sm',
|
||||
item.archived ? 'opacity-60' : '',
|
||||
)}
|
||||
>
|
||||
{item.preview_html && (
|
||||
<div
|
||||
className="my-1"
|
||||
|
||||
@@ -1,16 +1,22 @@
|
||||
import { FunctionComponent } from 'react'
|
||||
import { ListableContentItem } from './Types/ListableContentItem'
|
||||
import Icon from '../Icon/Icon'
|
||||
import { classNames } from '@standardnotes/snjs'
|
||||
|
||||
export const ListItemTitle: FunctionComponent<{ item: ListableContentItem }> = ({ item }) => {
|
||||
return (
|
||||
<>
|
||||
<div
|
||||
className={`break-word mr-2 flex items-start justify-between overflow-hidden text-lg font-semibold leading-[1.3] lg:text-base lg:leading-[1.3] ${
|
||||
item.archived ? 'opacity-60' : ''
|
||||
}`}
|
||||
>
|
||||
{item.title}
|
||||
</div>
|
||||
</>
|
||||
<div
|
||||
className={classNames(
|
||||
'break-word mr-2 overflow-hidden text-lg font-semibold leading-[1.3] lg:text-base lg:leading-[1.3]',
|
||||
item.archived ? 'opacity-60' : '',
|
||||
)}
|
||||
>
|
||||
{item.pinned && (
|
||||
<span className="mr-1.5 inline-flex rounded-full bg-info p-0.5 text-info-contrast">
|
||||
<Icon type="pin-filled" size="custom" className="h-3 w-3" />
|
||||
</span>
|
||||
)}
|
||||
{item.title}
|
||||
</div>
|
||||
)
|
||||
}
|
||||
|
||||
@@ -13,6 +13,8 @@ import { ListItemTitle } from './ListItemTitle'
|
||||
import { log, LoggingDomain } from '@/Logging'
|
||||
import { classNames } from '@standardnotes/utils'
|
||||
import { getIconAndTintForNoteType } from '@/Utils/Items/Icons/getIconAndTintForNoteType'
|
||||
import { NoteDragDataFormat } from '../Tags/DragNDrop'
|
||||
import { MutuallyExclusiveMediaQueryBreakpoints, useMediaQuery } from '@/Hooks/useMediaQuery'
|
||||
|
||||
const NoteListItem: FunctionComponent<DisplayableListItemProps<SNNote>> = ({
|
||||
application,
|
||||
@@ -70,6 +72,34 @@ const NoteListItem: FunctionComponent<DisplayableListItemProps<SNNote>> = ({
|
||||
|
||||
const hasOffsetBorder = !isNextItemTiled
|
||||
|
||||
const isMobileScreen = useMediaQuery(MutuallyExclusiveMediaQueryBreakpoints.sm)
|
||||
const dragPreview = useRef<HTMLDivElement>()
|
||||
|
||||
const createDragPreview = () => {
|
||||
if (!listItemRef.current) {
|
||||
throw new Error('List item ref is not set')
|
||||
}
|
||||
|
||||
const element = listItemRef.current.cloneNode(true)
|
||||
// Only keep icon & title in drag preview
|
||||
Array.from(element.childNodes[1].childNodes).forEach((node, key) => {
|
||||
if (key !== 0) {
|
||||
node.remove()
|
||||
}
|
||||
})
|
||||
element.childNodes[2].remove()
|
||||
if (element instanceof HTMLDivElement) {
|
||||
element.style.width = `${listItemRef.current.clientWidth}px`
|
||||
element.style.position = 'absolute'
|
||||
element.style.top = '0'
|
||||
element.style.left = '0'
|
||||
element.style.zIndex = '-100000'
|
||||
document.body.appendChild(element)
|
||||
dragPreview.current = element
|
||||
}
|
||||
return element as HTMLDivElement
|
||||
}
|
||||
|
||||
return (
|
||||
<div
|
||||
ref={listItemRef}
|
||||
@@ -81,15 +111,27 @@ const NoteListItem: FunctionComponent<DisplayableListItemProps<SNNote>> = ({
|
||||
)}
|
||||
id={item.uuid}
|
||||
onClick={onClick}
|
||||
draggable={!isMobileScreen}
|
||||
onDragStart={(event) => {
|
||||
if (!listItemRef.current) {
|
||||
return
|
||||
}
|
||||
|
||||
const { dataTransfer } = event
|
||||
|
||||
const element = createDragPreview()
|
||||
dataTransfer.setDragImage(element, 0, 0)
|
||||
dataTransfer.setData(NoteDragDataFormat, item.uuid)
|
||||
}}
|
||||
onDragLeave={() => {
|
||||
if (dragPreview.current) {
|
||||
dragPreview.current.remove()
|
||||
}
|
||||
}}
|
||||
>
|
||||
{!hideIcon ? (
|
||||
<div className="mr-0 flex flex-col items-center justify-between gap-2 p-4 pr-4">
|
||||
<Icon type={icon} className={`text-accessory-tint-${tint}`} />
|
||||
{item.pinned && (
|
||||
<div className="rounded-full bg-info p-1 text-info-contrast">
|
||||
<Icon type="pin-filled" size="custom" className="h-3 w-3" />
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
) : (
|
||||
<div className="pr-4" />
|
||||
@@ -101,13 +143,7 @@ const NoteListItem: FunctionComponent<DisplayableListItemProps<SNNote>> = ({
|
||||
<ListItemTags hideTags={hideTags} tags={tags} />
|
||||
<ListItemConflictIndicator item={item} />
|
||||
</div>
|
||||
<ListItemFlagIcons
|
||||
className="p-4"
|
||||
item={item}
|
||||
hideIcon={hideIcon}
|
||||
hasFiles={hasFiles}
|
||||
hasBorder={hasOffsetBorder}
|
||||
/>
|
||||
<ListItemFlagIcons className="p-4" item={item} hasFiles={hasFiles} hasBorder={hasOffsetBorder} />
|
||||
</div>
|
||||
)
|
||||
}
|
||||
|
||||
+10
-1
@@ -9,11 +9,20 @@ export const FileContextMenuBackupOption: FunctionComponent<{ file: FileItem }>
|
||||
const application = useApplication()
|
||||
|
||||
const [backupInfo, setBackupInfo] = useState<FileBackupRecord | undefined>(undefined)
|
||||
const [backupAbsolutePath, setBackupAbsolutePath] = useState<string | undefined>(undefined)
|
||||
|
||||
useEffect(() => {
|
||||
void application.fileBackups?.getFileBackupInfo(file).then(setBackupInfo)
|
||||
}, [application, file])
|
||||
|
||||
useEffect(() => {
|
||||
if (!backupInfo) {
|
||||
return
|
||||
}
|
||||
|
||||
void application.fileBackups?.getFileBackupAbsolutePath(backupInfo).then(setBackupAbsolutePath)
|
||||
}, [backupInfo, application])
|
||||
|
||||
const openFileBackup = useCallback(() => {
|
||||
if (backupInfo) {
|
||||
void application.fileBackups?.openFileBackup(backupInfo)
|
||||
@@ -35,7 +44,7 @@ export const FileContextMenuBackupOption: FunctionComponent<{ file: FileItem }>
|
||||
>
|
||||
<div className="ml-2">
|
||||
<div className="font-semibold text-success">Backed up on {dateToStringStyle1(backupInfo.backedUpOn)}</div>
|
||||
<div className="text-xs text-neutral">{application.fileBackups?.getFileBackupAbsolutePath(backupInfo)}</div>
|
||||
<div className="text-xs text-neutral">{backupAbsolutePath}</div>
|
||||
</div>
|
||||
</MenuItem>
|
||||
)}
|
||||
|
||||
@@ -32,11 +32,9 @@ const ModalOverlay = forwardRef(
|
||||
className="fixed top-0 left-0 z-modal h-full w-full"
|
||||
ref={mergeRefs([setElement, ref])}
|
||||
store={dialog}
|
||||
getPersistentElements={() =>
|
||||
Array.from(document.querySelectorAll('[role="dialog"], [role="alertdialog"]')).map((el) => {
|
||||
return el.parentElement ? el.parentElement : el
|
||||
})
|
||||
}
|
||||
modal={false}
|
||||
portal={true}
|
||||
preventBodyScroll={true}
|
||||
{...props}
|
||||
>
|
||||
{children}
|
||||
|
||||
@@ -78,12 +78,15 @@ export const usePaneSwipeGesture = (
|
||||
underlayElementRef.current = element.parentElement?.querySelector(`[data-pane-underlay="${element.id}"]`) || null
|
||||
|
||||
let startX = 0
|
||||
let startTimestamp = Date.now()
|
||||
let clientX = 0
|
||||
let moveTimestamp = startTimestamp
|
||||
let closestScrollContainer: HTMLElement | null
|
||||
let scrollContainerAxis: 'x' | 'y' | null = null
|
||||
let scrollContainerInitialOverflowY: string | null = null
|
||||
let canceled = false
|
||||
|
||||
const TouchMoveThreshold = 25
|
||||
const TouchMoveThreshold = requiresStartFromEdge ? 25 : 45
|
||||
const TouchStartThreshold = direction === 'right' ? 25 : window.innerWidth - 25
|
||||
const SwipeFinishThreshold = window.innerWidth / 2.5
|
||||
|
||||
@@ -98,7 +101,12 @@ export const usePaneSwipeGesture = (
|
||||
}
|
||||
|
||||
const touchStartListener = (event: TouchEvent) => {
|
||||
startX = 0
|
||||
clientX = 0
|
||||
startTimestamp = Date.now()
|
||||
moveTimestamp = startTimestamp
|
||||
scrollContainerAxis = null
|
||||
scrollContainerInitialOverflowY = null
|
||||
canceled = false
|
||||
|
||||
const touch = event.touches[0]
|
||||
@@ -115,6 +123,7 @@ export const usePaneSwipeGesture = (
|
||||
|
||||
closestScrollContainer = getScrollParent(event.target as HTMLElement)
|
||||
if (closestScrollContainer) {
|
||||
scrollContainerInitialOverflowY = closestScrollContainer.style.overflowY
|
||||
closestScrollContainer.addEventListener('scroll', scrollListener, supportsPassive ? { passive: true } : false)
|
||||
|
||||
if (closestScrollContainer.scrollWidth > closestScrollContainer.clientWidth) {
|
||||
@@ -191,14 +200,18 @@ export const usePaneSwipeGesture = (
|
||||
|
||||
const touch = event.touches[0]
|
||||
clientX = touch.clientX
|
||||
moveTimestamp = Date.now()
|
||||
|
||||
const deltaX = clientX - startX
|
||||
|
||||
if (Math.abs(deltaX) < TouchMoveThreshold) {
|
||||
if (deltaX < TouchMoveThreshold) {
|
||||
return
|
||||
}
|
||||
|
||||
if (closestScrollContainer && closestScrollContainer.style.overflowY !== 'hidden') {
|
||||
const timestampDelta = moveTimestamp - startTimestamp
|
||||
const canDisableScroll = requiresStartFromEdge || (timestampDelta > 150 && clientX > TouchStartThreshold)
|
||||
|
||||
if (closestScrollContainer && closestScrollContainer.style.overflowY !== 'hidden' && canDisableScroll) {
|
||||
closestScrollContainer.style.overflowY = 'hidden'
|
||||
}
|
||||
|
||||
@@ -239,7 +252,9 @@ export const usePaneSwipeGesture = (
|
||||
const touchEndListener = () => {
|
||||
if (closestScrollContainer) {
|
||||
closestScrollContainer.removeEventListener('scroll', scrollListener)
|
||||
closestScrollContainer.style.overflowY = ''
|
||||
if (closestScrollContainer.style.overflowY === 'hidden') {
|
||||
closestScrollContainer.style.overflowY = scrollContainerInitialOverflowY || ''
|
||||
}
|
||||
}
|
||||
|
||||
if (canceled) {
|
||||
|
||||
+1
-1
@@ -24,7 +24,7 @@ export const Text: FunctionComponent<Props> = ({ children, className }) => (
|
||||
)
|
||||
|
||||
const buttonClasses =
|
||||
'block bg-default text-text rounded border-solid \
|
||||
'block bg-passive-5 text-text rounded border-solid \
|
||||
border px-4 py-1.5 font-bold text-base lg:text-sm w-fit \
|
||||
focus:bg-contrast hover:bg-contrast border-border'
|
||||
|
||||
|
||||
+2
-2
@@ -1,8 +1,8 @@
|
||||
import { LexicalIconName } from '@/Components/Icon/LexicalIcons'
|
||||
import { TypeaheadOption } from '@lexical/react/LexicalTypeaheadMenuPlugin'
|
||||
import { MenuOption } from '@lexical/react/LexicalTypeaheadMenuPlugin'
|
||||
import { IconType } from '@standardnotes/snjs'
|
||||
|
||||
export class BlockPickerOption extends TypeaheadOption {
|
||||
export class BlockPickerOption extends MenuOption {
|
||||
title: string
|
||||
iconName: IconType | LexicalIconName
|
||||
keywords: Array<string>
|
||||
|
||||
+2
-2
@@ -1,7 +1,7 @@
|
||||
import { TypeaheadOption } from '@lexical/react/LexicalTypeaheadMenuPlugin'
|
||||
import { MenuOption } from '@lexical/react/LexicalTypeaheadMenuPlugin'
|
||||
import { LinkableItem } from '@/Utils/Items/Search/LinkableItem'
|
||||
|
||||
export class ItemOption extends TypeaheadOption {
|
||||
export class ItemOption extends MenuOption {
|
||||
constructor(
|
||||
public item: LinkableItem | undefined,
|
||||
public label: string,
|
||||
|
||||
+2
-52
@@ -4,7 +4,7 @@ import useModal from '../../Lexical/Hooks/useModal'
|
||||
import { InsertTableDialog } from '../../Plugins/TablePlugin'
|
||||
import { getSelectedNode } from '../../Lexical/Utils/getSelectedNode'
|
||||
import { sanitizeUrl } from '../../Lexical/Utils/sanitizeUrl'
|
||||
import { $getSelection, $isRangeSelection, DELETE_CHARACTER_COMMAND, FORMAT_TEXT_COMMAND } from 'lexical'
|
||||
import { $getSelection, $isRangeSelection, FORMAT_TEXT_COMMAND } from 'lexical'
|
||||
import { $isLinkNode, TOGGLE_LINK_COMMAND } from '@lexical/link'
|
||||
import { useCallback, useEffect, useMemo, useRef, useState } from 'react'
|
||||
import { GetAlignmentBlocks } from '../Blocks/Alignment'
|
||||
@@ -23,14 +23,11 @@ import { GetPasswordBlock } from '../Blocks/Password'
|
||||
import { GetQuoteBlock } from '../Blocks/Quote'
|
||||
import { GetTableBlock } from '../Blocks/Table'
|
||||
import { MutuallyExclusiveMediaQueryBreakpoints, useMediaQuery } from '@/Hooks/useMediaQuery'
|
||||
import { classNames, Platform } from '@standardnotes/snjs'
|
||||
import { classNames } from '@standardnotes/snjs'
|
||||
import { SUPER_TOGGLE_SEARCH } from '@standardnotes/ui-services'
|
||||
import { useApplication } from '@/Components/ApplicationProvider'
|
||||
import { GetRemoteImageBlock } from '../Blocks/RemoteImage'
|
||||
import { InsertRemoteImageDialog } from '../RemoteImagePlugin/RemoteImagePlugin'
|
||||
import { SKAlert } from '@standardnotes/styles'
|
||||
|
||||
const DontShowSuperAndroidBackspaceAlertKey = 'dontShowSuperAndroidBackspaceAlert'
|
||||
|
||||
const MobileToolbarPlugin = () => {
|
||||
const application = useApplication()
|
||||
@@ -40,7 +37,6 @@ const MobileToolbarPlugin = () => {
|
||||
const [isInEditor, setIsInEditor] = useState(false)
|
||||
const [isInToolbar, setIsInToolbar] = useState(false)
|
||||
const isMobile = useMediaQuery(MutuallyExclusiveMediaQueryBreakpoints.sm)
|
||||
const isAndroid = application.platform === Platform.Android
|
||||
|
||||
const toolbarRef = useRef<HTMLDivElement>(null)
|
||||
const backspaceButtonRef = useRef<HTMLButtonElement>(null)
|
||||
@@ -204,38 +200,6 @@ const MobileToolbarPlugin = () => {
|
||||
}
|
||||
}, [])
|
||||
|
||||
useEffect(() => {
|
||||
if (!isAndroid) {
|
||||
return
|
||||
}
|
||||
|
||||
const dontShowAgain = application.getValue(DontShowSuperAndroidBackspaceAlertKey)
|
||||
|
||||
if (dontShowAgain) {
|
||||
return
|
||||
}
|
||||
|
||||
const alert = new SKAlert({
|
||||
title: 'Android backspace issue',
|
||||
text: 'There is a known issue with Super on Android where pressing the backspace will also delete the character after the cursor. We are working on a fix for this. Please use the backspace button in the toolbar as a workaround.',
|
||||
buttons: [
|
||||
{
|
||||
text: 'OK',
|
||||
style: 'default',
|
||||
},
|
||||
{
|
||||
text: "Don't show again",
|
||||
style: 'default',
|
||||
action: () => {
|
||||
application.setValue(DontShowSuperAndroidBackspaceAlertKey, true)
|
||||
},
|
||||
},
|
||||
],
|
||||
})
|
||||
|
||||
alert.present()
|
||||
}, [application, isAndroid])
|
||||
|
||||
const isFocusInEditorOrToolbar = isInEditor || isInToolbar
|
||||
if (!isMobile || !isFocusInEditorOrToolbar) {
|
||||
return null
|
||||
@@ -269,20 +233,6 @@ const MobileToolbarPlugin = () => {
|
||||
>
|
||||
<Icon type="keyboard-close" size="medium" />
|
||||
</button>
|
||||
{isAndroid && (
|
||||
<button
|
||||
className="flex flex-shrink-0 items-center justify-center rounded border-l border-border py-3 px-3"
|
||||
aria-label="Backspace"
|
||||
ref={backspaceButtonRef}
|
||||
onClick={() => {
|
||||
editor.update(() => {
|
||||
editor.dispatchCommand(DELETE_CHARACTER_COMMAND, true)
|
||||
})
|
||||
}}
|
||||
>
|
||||
<Icon type="backspace" size="medium" />
|
||||
</button>
|
||||
)}
|
||||
</div>
|
||||
</>
|
||||
)
|
||||
|
||||
@@ -1 +1,2 @@
|
||||
export const TagDragDataFormat = 'application/x-sn-drag-tag'
|
||||
export const NoteDragDataFormat = 'application/x-sn-drag-note'
|
||||
|
||||
@@ -3,7 +3,7 @@ import { FOCUSABLE_BUT_NOT_TABBABLE, TAG_FOLDERS_FEATURE_NAME } from '@/Constant
|
||||
import { KeyboardKey } from '@standardnotes/ui-services'
|
||||
import { FeaturesController } from '@/Controllers/FeaturesController'
|
||||
import { NavigationController } from '@/Controllers/Navigation/NavigationController'
|
||||
import { IconType, SNTag } from '@standardnotes/snjs'
|
||||
import { IconType, SNNote, SNTag } from '@standardnotes/snjs'
|
||||
import { computed } from 'mobx'
|
||||
import { observer } from 'mobx-react-lite'
|
||||
import {
|
||||
@@ -23,8 +23,9 @@ import { useFileDragNDrop } from '../FileDragNDropProvider'
|
||||
import { LinkingController } from '@/Controllers/LinkingController'
|
||||
import { TagListSectionType } from './TagListSection'
|
||||
import { log, LoggingDomain } from '@/Logging'
|
||||
import { TagDragDataFormat } from './DragNDrop'
|
||||
import { NoteDragDataFormat, TagDragDataFormat } from './DragNDrop'
|
||||
import { usePremiumModal } from '@/Hooks/usePremiumModal'
|
||||
import { useApplication } from '../ApplicationProvider'
|
||||
|
||||
type Props = {
|
||||
tag: SNTag
|
||||
@@ -40,7 +41,9 @@ const PADDING_BASE_PX = 14
|
||||
const PADDING_PER_LEVEL_PX = 21
|
||||
|
||||
export const TagsListItem: FunctionComponent<Props> = observer(
|
||||
({ tag, type, features, navigationController: navigationController, level, onContextMenu, linkingController }) => {
|
||||
({ tag, type, features, navigationController, level, onContextMenu, linkingController }) => {
|
||||
const application = useApplication()
|
||||
|
||||
const [title, setTitle] = useState(tag.title || '')
|
||||
const [subtagTitle, setSubtagTitle] = useState('')
|
||||
const inputRef = useRef<HTMLInputElement>(null)
|
||||
@@ -200,7 +203,10 @@ export const TagsListItem: FunctionComponent<Props> = observer(
|
||||
)
|
||||
|
||||
const onDragEnter: DragEventHandler<HTMLDivElement> = useCallback((event): void => {
|
||||
if (event.dataTransfer.types.includes(TagDragDataFormat)) {
|
||||
if (
|
||||
event.dataTransfer.types.includes(TagDragDataFormat) ||
|
||||
event.dataTransfer.types.includes(NoteDragDataFormat)
|
||||
) {
|
||||
event.preventDefault()
|
||||
setIsBeingDraggedOver(true)
|
||||
}
|
||||
@@ -211,30 +217,42 @@ export const TagsListItem: FunctionComponent<Props> = observer(
|
||||
}, [])
|
||||
|
||||
const onDragOver: DragEventHandler<HTMLDivElement> = useCallback((event): void => {
|
||||
if (event.dataTransfer.types.includes(TagDragDataFormat)) {
|
||||
if (
|
||||
event.dataTransfer.types.includes(TagDragDataFormat) ||
|
||||
event.dataTransfer.types.includes(NoteDragDataFormat)
|
||||
) {
|
||||
event.preventDefault()
|
||||
}
|
||||
}, [])
|
||||
|
||||
const onDrop: DragEventHandler<HTMLDivElement> = useCallback(
|
||||
(event): void => {
|
||||
async (event) => {
|
||||
setIsBeingDraggedOver(false)
|
||||
const draggedTagUuid = event.dataTransfer.getData(TagDragDataFormat)
|
||||
if (!draggedTagUuid) {
|
||||
return
|
||||
}
|
||||
if (!navigationController.isValidTagParent(tag, { uuid: draggedTagUuid } as SNTag)) {
|
||||
return
|
||||
}
|
||||
if (!hasFolders) {
|
||||
premiumModal.activate(TAG_FOLDERS_FEATURE_NAME)
|
||||
return
|
||||
}
|
||||
const draggedNoteUuid = event.dataTransfer.getData(NoteDragDataFormat)
|
||||
if (draggedTagUuid) {
|
||||
if (!navigationController.isValidTagParent(tag, { uuid: draggedTagUuid } as SNTag)) {
|
||||
return
|
||||
}
|
||||
if (!hasFolders) {
|
||||
premiumModal.activate(TAG_FOLDERS_FEATURE_NAME)
|
||||
return
|
||||
}
|
||||
|
||||
void navigationController.assignParent(draggedTagUuid, tag.uuid)
|
||||
return
|
||||
} else if (draggedNoteUuid) {
|
||||
const currentTag = navigationController.selected
|
||||
const shouldSwapTags = currentTag instanceof SNTag && currentTag.uuid !== tag.uuid
|
||||
const note = application.items.findSureItem<SNNote>(draggedNoteUuid)
|
||||
await linkingController.linkItems(note, tag)
|
||||
if (shouldSwapTags) {
|
||||
await linkingController.unlinkItems(note, currentTag)
|
||||
}
|
||||
return
|
||||
}
|
||||
},
|
||||
[hasFolders, navigationController, premiumModal, tag],
|
||||
[application.items, hasFolders, linkingController, navigationController, premiumModal, tag],
|
||||
)
|
||||
|
||||
return (
|
||||
|
||||
@@ -41,4 +41,6 @@
|
||||
|
||||
--panel-resizer-background-color: var(--sn-stylekit-secondary-contrast-background-color);
|
||||
--link-element-color: var(--sn-stylekit-info-color);
|
||||
|
||||
--normal-button-background-color: var(--sn-stylekit-background-color);
|
||||
}
|
||||
|
||||
@@ -143,6 +143,7 @@ module.exports = {
|
||||
'accessory-tint-4': 'var(--sn-stylekit-accessory-tint-color-4)',
|
||||
'accessory-tint-5': 'var(--sn-stylekit-accessory-tint-color-5)',
|
||||
'accessory-tint-6': 'var(--sn-stylekit-accessory-tint-color-6)',
|
||||
'normal-button': 'var(--normal-button-background-color)',
|
||||
},
|
||||
},
|
||||
safelist: [
|
||||
|
||||
@@ -2654,255 +2654,255 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@lexical/clipboard@npm:0.10.0":
|
||||
version: 0.10.0
|
||||
resolution: "@lexical/clipboard@npm:0.10.0"
|
||||
"@lexical/clipboard@npm:0.11.0":
|
||||
version: 0.11.0
|
||||
resolution: "@lexical/clipboard@npm:0.11.0"
|
||||
dependencies:
|
||||
"@lexical/html": 0.10.0
|
||||
"@lexical/list": 0.10.0
|
||||
"@lexical/selection": 0.10.0
|
||||
"@lexical/utils": 0.10.0
|
||||
"@lexical/html": 0.11.0
|
||||
"@lexical/list": 0.11.0
|
||||
"@lexical/selection": 0.11.0
|
||||
"@lexical/utils": 0.11.0
|
||||
peerDependencies:
|
||||
lexical: 0.10.0
|
||||
checksum: a38d9731ca4e6ce34ad1834f8d52ff9af5e9dff9e3642d483a465de333d1752c65d51f7b74bc8ba7685184b9981fdf089627d9411694c2518f816e4e305b3255
|
||||
lexical: 0.11.0
|
||||
checksum: e1adb2c2d31f96d7fb58f09a10628db0322356f78a0eb041d8b22dbd2528ab918135c5a4dbbe0a078cac6f7b45027b8bc2e56c7d9321279a313165c3d1bf1b51
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@lexical/code@npm:0.10.0":
|
||||
version: 0.10.0
|
||||
resolution: "@lexical/code@npm:0.10.0"
|
||||
"@lexical/code@npm:0.11.0":
|
||||
version: 0.11.0
|
||||
resolution: "@lexical/code@npm:0.11.0"
|
||||
dependencies:
|
||||
"@lexical/utils": 0.10.0
|
||||
"@lexical/utils": 0.11.0
|
||||
prismjs: ^1.27.0
|
||||
peerDependencies:
|
||||
lexical: 0.10.0
|
||||
checksum: b677fabfe11d5c90207e073727f968d34040885c21a2b707f5632c8f1483ddd89873522fdc4bfe3913f09789107f460064ae00cf361fb198fc46ed17276400a3
|
||||
lexical: 0.11.0
|
||||
checksum: ddae03f4fb3f5e084cfdc6f9ea1ed70125add31e7d5fc70bb80a13b9abba81e1c79e0a1ceca729ec65b6af41e95e2d71a2371355eefbbede710dcb50fabb7ccd
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@lexical/dragon@npm:0.10.0":
|
||||
version: 0.10.0
|
||||
resolution: "@lexical/dragon@npm:0.10.0"
|
||||
"@lexical/dragon@npm:0.11.0":
|
||||
version: 0.11.0
|
||||
resolution: "@lexical/dragon@npm:0.11.0"
|
||||
peerDependencies:
|
||||
lexical: 0.10.0
|
||||
checksum: d66c660bcaca0a8806aa18acd4c42ecdbab9663949d2c9f084d4e928bc66152a4f11cb8ee025221f011a69bd6cfbca1aee3c9e76b1898e57540a26362f479158
|
||||
lexical: 0.11.0
|
||||
checksum: eb277542bd6987137e608fb39081b2f7a728da2addead1ddcaef062b50e4d010b9b77e6c8277f811969e5e05f102749e7716a7b2a1951d8ee43e3bf1c4c6ebec
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@lexical/hashtag@npm:0.10.0":
|
||||
version: 0.10.0
|
||||
resolution: "@lexical/hashtag@npm:0.10.0"
|
||||
"@lexical/hashtag@npm:0.11.0":
|
||||
version: 0.11.0
|
||||
resolution: "@lexical/hashtag@npm:0.11.0"
|
||||
dependencies:
|
||||
"@lexical/utils": 0.10.0
|
||||
"@lexical/utils": 0.11.0
|
||||
peerDependencies:
|
||||
lexical: 0.10.0
|
||||
checksum: aa25d64365e2b42dac462f9cee6e6db029c573dc3966175a6fb9da91a5308ce16ec3bc2bb9a8dd1e544dae63672280a065250eab881ff04ede9bc46f2724bb1e
|
||||
lexical: 0.11.0
|
||||
checksum: 1360173b7c5b112522cf859bb0de64e5aaf51a003503ad22fd04b123508e2f2b836adb21b5a39cefbdb3b3a60925f0c8becca1ca149aaa3cc22b4c75a488dfe5
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@lexical/headless@npm:0.10.0":
|
||||
version: 0.10.0
|
||||
resolution: "@lexical/headless@npm:0.10.0"
|
||||
"@lexical/headless@npm:0.11.0":
|
||||
version: 0.11.0
|
||||
resolution: "@lexical/headless@npm:0.11.0"
|
||||
peerDependencies:
|
||||
lexical: 0.10.0
|
||||
checksum: 108a0d4cb03e9cd6fa5e8e69e019a08e92010b06a39161ae21c0886abd4aeace14eafdb39f8f98749bbf09e4134df2d1824c05946b8f723b5ad1dd97a60bf693
|
||||
lexical: 0.11.0
|
||||
checksum: fec50161528daab0de14bc4f07927efc89b18ecb9e7829fef95aeacce4fa9c2fcbaa1afb01d08c5ab56aace63fe481b3915df8929ccf0273b5582f7a3ab5a7b3
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@lexical/history@npm:0.10.0":
|
||||
version: 0.10.0
|
||||
resolution: "@lexical/history@npm:0.10.0"
|
||||
"@lexical/history@npm:0.11.0":
|
||||
version: 0.11.0
|
||||
resolution: "@lexical/history@npm:0.11.0"
|
||||
dependencies:
|
||||
"@lexical/utils": 0.10.0
|
||||
"@lexical/utils": 0.11.0
|
||||
peerDependencies:
|
||||
lexical: 0.10.0
|
||||
checksum: 0c4c9b9f0258ef47c695e45513b649c0e73dce922e17d7dd3113caeadf74611a43ac1ca5cfe68294ca68ece5aee2f8bc49912b9066b2092887fe8adfd0b5ba08
|
||||
lexical: 0.11.0
|
||||
checksum: 1d736472293d2dbcc26bcd42d086c78494aebe89d68eee7076b4864514661f871c4bb3709dd10e6ce64cc7420e9450b6c79d9fab20c7f3e046f6a0cff6df2bbe
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@lexical/html@npm:0.10.0":
|
||||
version: 0.10.0
|
||||
resolution: "@lexical/html@npm:0.10.0"
|
||||
"@lexical/html@npm:0.11.0":
|
||||
version: 0.11.0
|
||||
resolution: "@lexical/html@npm:0.11.0"
|
||||
dependencies:
|
||||
"@lexical/selection": 0.10.0
|
||||
"@lexical/selection": 0.11.0
|
||||
peerDependencies:
|
||||
lexical: 0.10.0
|
||||
checksum: edc917aed0b2a0a82319ea077b4234708cf697be78e5e486b8eef693e4734aa93ab84c3aa5cc074c7cb90ecf576fa96173819ac6b4dfbe49921d0a8fbe32026b
|
||||
lexical: 0.11.0
|
||||
checksum: d2e4751ab1fa582184ced52bc9e683f394721fa8ec62f395bfec9225755fd63b6e5056a9ba17de7a9f34f79415ab24f0545e006dcfe8e6e2534bdf695db3ec1e
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@lexical/link@npm:0.10.0":
|
||||
version: 0.10.0
|
||||
resolution: "@lexical/link@npm:0.10.0"
|
||||
"@lexical/link@npm:0.11.0":
|
||||
version: 0.11.0
|
||||
resolution: "@lexical/link@npm:0.11.0"
|
||||
dependencies:
|
||||
"@lexical/utils": 0.10.0
|
||||
"@lexical/utils": 0.11.0
|
||||
peerDependencies:
|
||||
lexical: 0.10.0
|
||||
checksum: 95a80d115a53a2464d0903a1dbebdbbb47eb731851340be49cf48d95e857c07fe1e2133c948ead438d15cdaec0dc9c05fd5d9e66d4820b4b0fc8e82e87729c7a
|
||||
lexical: 0.11.0
|
||||
checksum: 13910211a6fd73be93b4d5b944708c3ee4debf8e887fd7f4dc54c27401af74ba0301b8d76c6e3a9f586ff3939d23fcda4978f738b2dc3ee569f564cb6021797c
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@lexical/list@npm:0.10.0":
|
||||
version: 0.10.0
|
||||
resolution: "@lexical/list@npm:0.10.0"
|
||||
"@lexical/list@npm:0.11.0":
|
||||
version: 0.11.0
|
||||
resolution: "@lexical/list@npm:0.11.0"
|
||||
dependencies:
|
||||
"@lexical/utils": 0.10.0
|
||||
"@lexical/utils": 0.11.0
|
||||
peerDependencies:
|
||||
lexical: 0.10.0
|
||||
checksum: 27bcd138eae4f17bb40c313989158c34e1ba789982c84639c5e3c2bdf7f532b1b18c35366af886a4bcccf21df1d86de457bb8111d59218a83850fa40ced6ae2f
|
||||
lexical: 0.11.0
|
||||
checksum: bdc5e9ad70feae427ed64147a280fb2e957d2af6527648b29914586246f445f251e50a13d9f3fdd92c6fcb375afce2e60d7bc98c97655a3afc201df2b59d5bcf
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@lexical/mark@npm:0.10.0":
|
||||
version: 0.10.0
|
||||
resolution: "@lexical/mark@npm:0.10.0"
|
||||
"@lexical/mark@npm:0.11.0":
|
||||
version: 0.11.0
|
||||
resolution: "@lexical/mark@npm:0.11.0"
|
||||
dependencies:
|
||||
"@lexical/utils": 0.10.0
|
||||
"@lexical/utils": 0.11.0
|
||||
peerDependencies:
|
||||
lexical: 0.10.0
|
||||
checksum: ad6bed6dbcd60afd8187d7f42febf010736ab9064e541d55e2a8ed3fde50c0b799305b7922160a7b6c1cb20b4566ffc5293153b5d815bd396e4140d89598c902
|
||||
lexical: 0.11.0
|
||||
checksum: f4064b2278b586af3e5a6a5c5b2a4b02b8b1bfb078ccb454d1edf18133458ad82ec70c5ebabd6ce5cba54c9b917c01b69ccc42891552d62bdd1e971a5c5a0f22
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@lexical/markdown@npm:0.10.0":
|
||||
version: 0.10.0
|
||||
resolution: "@lexical/markdown@npm:0.10.0"
|
||||
"@lexical/markdown@npm:0.11.0":
|
||||
version: 0.11.0
|
||||
resolution: "@lexical/markdown@npm:0.11.0"
|
||||
dependencies:
|
||||
"@lexical/code": 0.10.0
|
||||
"@lexical/link": 0.10.0
|
||||
"@lexical/list": 0.10.0
|
||||
"@lexical/rich-text": 0.10.0
|
||||
"@lexical/text": 0.10.0
|
||||
"@lexical/utils": 0.10.0
|
||||
"@lexical/code": 0.11.0
|
||||
"@lexical/link": 0.11.0
|
||||
"@lexical/list": 0.11.0
|
||||
"@lexical/rich-text": 0.11.0
|
||||
"@lexical/text": 0.11.0
|
||||
"@lexical/utils": 0.11.0
|
||||
peerDependencies:
|
||||
lexical: 0.10.0
|
||||
checksum: 37f89f42c17f0910a1f9b909d2d54bbca4ecf3748819c43c59820493911f253e0de8cc044e655060db4bbaf67d3e8e44bf21fcb233f70e1ec725699575c41857
|
||||
lexical: 0.11.0
|
||||
checksum: 65545aeeed1354804be14099250a9d9e46ba240df406d6742b5583fcb79d51235ea921bf20eb1e48490d3ba5ed7c866647e17d57b7fe8a7a1fd2366d9e5adddc
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@lexical/offset@npm:0.10.0":
|
||||
version: 0.10.0
|
||||
resolution: "@lexical/offset@npm:0.10.0"
|
||||
"@lexical/offset@npm:0.11.0":
|
||||
version: 0.11.0
|
||||
resolution: "@lexical/offset@npm:0.11.0"
|
||||
peerDependencies:
|
||||
lexical: 0.10.0
|
||||
checksum: b7a971144294ae7169eae37e8c458a931da79d92fd0f74d9971d96ab165c406e004d00854deb20d39959b67dfc24517e037324252ac2b17dd9470ee476ae1aa0
|
||||
lexical: 0.11.0
|
||||
checksum: e330d4a2b764fd5d5a0cace23b39178c0df16c83c2d3d788716ba8585f07b693543f1b9f9635d72980094ea7c59c0ea49edbf576f386144087dcbca2949d4484
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@lexical/overflow@npm:0.10.0":
|
||||
version: 0.10.0
|
||||
resolution: "@lexical/overflow@npm:0.10.0"
|
||||
"@lexical/overflow@npm:0.11.0":
|
||||
version: 0.11.0
|
||||
resolution: "@lexical/overflow@npm:0.11.0"
|
||||
peerDependencies:
|
||||
lexical: 0.10.0
|
||||
checksum: 1832501cfa25f4b5582f9c86e5eeabdf34e75299cdc8183658c05c221f4a2c77ddd639fe88a4b6b231e27983e55c232824245e98811fb74f4a221879eb470553
|
||||
lexical: 0.11.0
|
||||
checksum: 277f642c870b5d1df36fd7dd331da0067d7f933a79b7cd84bb31adc388be9b250f02302bf4969d900c31bd0ca508a56833ad6bda7b6b52835f0f0d5f2c7d8b6f
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@lexical/plain-text@npm:0.10.0":
|
||||
version: 0.10.0
|
||||
resolution: "@lexical/plain-text@npm:0.10.0"
|
||||
"@lexical/plain-text@npm:0.11.0":
|
||||
version: 0.11.0
|
||||
resolution: "@lexical/plain-text@npm:0.11.0"
|
||||
peerDependencies:
|
||||
"@lexical/clipboard": 0.10.0
|
||||
"@lexical/selection": 0.10.0
|
||||
"@lexical/utils": 0.10.0
|
||||
lexical: 0.10.0
|
||||
checksum: e4b2acd53eb03f90808ab5c5aa04a12c7e7754e331b6cff0b61de4751ed337f349fb6840761e63f81b55034a383d158a6d19ea646dfb6325fdeb8cd65f8d7f11
|
||||
"@lexical/clipboard": 0.11.0
|
||||
"@lexical/selection": 0.11.0
|
||||
"@lexical/utils": 0.11.0
|
||||
lexical: 0.11.0
|
||||
checksum: 0fe6bf7bcc4a64b96b8b65a7701ee72d048104e975ffed5856a849fcaae2b7aae450155bbb3452433824b9b545b4f7c40f5acd1727350a4e72e32a1d4cbd1ffb
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@lexical/react@npm:0.10.0":
|
||||
version: 0.10.0
|
||||
resolution: "@lexical/react@npm:0.10.0"
|
||||
"@lexical/react@npm:0.11.0":
|
||||
version: 0.11.0
|
||||
resolution: "@lexical/react@npm:0.11.0"
|
||||
dependencies:
|
||||
"@lexical/clipboard": 0.10.0
|
||||
"@lexical/code": 0.10.0
|
||||
"@lexical/dragon": 0.10.0
|
||||
"@lexical/hashtag": 0.10.0
|
||||
"@lexical/history": 0.10.0
|
||||
"@lexical/link": 0.10.0
|
||||
"@lexical/list": 0.10.0
|
||||
"@lexical/mark": 0.10.0
|
||||
"@lexical/markdown": 0.10.0
|
||||
"@lexical/overflow": 0.10.0
|
||||
"@lexical/plain-text": 0.10.0
|
||||
"@lexical/rich-text": 0.10.0
|
||||
"@lexical/selection": 0.10.0
|
||||
"@lexical/table": 0.10.0
|
||||
"@lexical/text": 0.10.0
|
||||
"@lexical/utils": 0.10.0
|
||||
"@lexical/yjs": 0.10.0
|
||||
"@lexical/clipboard": 0.11.0
|
||||
"@lexical/code": 0.11.0
|
||||
"@lexical/dragon": 0.11.0
|
||||
"@lexical/hashtag": 0.11.0
|
||||
"@lexical/history": 0.11.0
|
||||
"@lexical/link": 0.11.0
|
||||
"@lexical/list": 0.11.0
|
||||
"@lexical/mark": 0.11.0
|
||||
"@lexical/markdown": 0.11.0
|
||||
"@lexical/overflow": 0.11.0
|
||||
"@lexical/plain-text": 0.11.0
|
||||
"@lexical/rich-text": 0.11.0
|
||||
"@lexical/selection": 0.11.0
|
||||
"@lexical/table": 0.11.0
|
||||
"@lexical/text": 0.11.0
|
||||
"@lexical/utils": 0.11.0
|
||||
"@lexical/yjs": 0.11.0
|
||||
react-error-boundary: ^3.1.4
|
||||
peerDependencies:
|
||||
lexical: 0.10.0
|
||||
lexical: 0.11.0
|
||||
react: ">=17.x"
|
||||
react-dom: ">=17.x"
|
||||
checksum: 76c6004e32f23e1388814e667d4b0adfe1c9698bccbf5c6503c1d52c7a3bddff13263a7e67d6c7f6c6484579f16e9b2d996df4d371476189750b98675d9f6ce7
|
||||
checksum: 7aaca5c97d81f0aba2429bea0abb4fc0ad8c8579c348fdffb6d56d2aadfd0686648549e1beae4cbafd73ca28cb253c7d00adef46cb62d6f36cc1e2a98d1a469e
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@lexical/rich-text@npm:0.10.0":
|
||||
version: 0.10.0
|
||||
resolution: "@lexical/rich-text@npm:0.10.0"
|
||||
"@lexical/rich-text@npm:0.11.0":
|
||||
version: 0.11.0
|
||||
resolution: "@lexical/rich-text@npm:0.11.0"
|
||||
peerDependencies:
|
||||
"@lexical/clipboard": 0.10.0
|
||||
"@lexical/selection": 0.10.0
|
||||
"@lexical/utils": 0.10.0
|
||||
lexical: 0.10.0
|
||||
checksum: 8d3b35ab18c88298724e076f851530ae061ca3765494bb7a48a8efac2edcf7e114efecf806d9ba1795d8d649261ceb5da585cc7ec66597faef7c5700ba1faa4b
|
||||
"@lexical/clipboard": 0.11.0
|
||||
"@lexical/selection": 0.11.0
|
||||
"@lexical/utils": 0.11.0
|
||||
lexical: 0.11.0
|
||||
checksum: d8e315dfa3204a24b7d9931ece1dcbb75c95758557b535ae28901d7b57d768cbc401059edf9a5260e776d4f508c6ebf022f6265b5b00f521ecba6d9b6f2206e7
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@lexical/selection@npm:0.10.0":
|
||||
version: 0.10.0
|
||||
resolution: "@lexical/selection@npm:0.10.0"
|
||||
"@lexical/selection@npm:0.11.0":
|
||||
version: 0.11.0
|
||||
resolution: "@lexical/selection@npm:0.11.0"
|
||||
peerDependencies:
|
||||
lexical: 0.10.0
|
||||
checksum: 6a0d6af76c8572c148c7f5d5017ec044a1caf634afdacd5c9d651202ccc8fa7911dd15590f917f4573f503ddcf1ec2892acf8f3fc35fb3b207e75f39aca91f86
|
||||
lexical: 0.11.0
|
||||
checksum: 17d365bd03c104634edc666b683152a6ce3f709628eebf56d38cdf085a5b415526f8b309c47f7d69543931bf9a3d1c7454e13683942dea6fa56cc335071227c0
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@lexical/table@npm:0.10.0":
|
||||
version: 0.10.0
|
||||
resolution: "@lexical/table@npm:0.10.0"
|
||||
"@lexical/table@npm:0.11.0":
|
||||
version: 0.11.0
|
||||
resolution: "@lexical/table@npm:0.11.0"
|
||||
dependencies:
|
||||
"@lexical/utils": 0.10.0
|
||||
"@lexical/utils": 0.11.0
|
||||
peerDependencies:
|
||||
lexical: 0.10.0
|
||||
checksum: 9cd018ce3f67e524f6e02c7ccae70993d24742788fa02fac3ac5939b25e7918fe854b6dd820ff3b3a9ed315f099d94aed1060f7d634064c744c3da6fea54252d
|
||||
lexical: 0.11.0
|
||||
checksum: 0c38e1132778254acc7df46d50706ca0a3f45d2680d9759e5879b94cfcbb8a9c1ff1d95394b1db1cadb3d4c1a72c29753c20d90c173cffd4400a243385876eb2
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@lexical/text@npm:0.10.0":
|
||||
version: 0.10.0
|
||||
resolution: "@lexical/text@npm:0.10.0"
|
||||
"@lexical/text@npm:0.11.0":
|
||||
version: 0.11.0
|
||||
resolution: "@lexical/text@npm:0.11.0"
|
||||
peerDependencies:
|
||||
lexical: 0.10.0
|
||||
checksum: 42033da09baf938587a19bfc1f9f0c93b4983fd3a6e102110242e1403a0163b7f1ed8a2122608d2f8adc75c2b2d3e383cd0b6f282d34a8b8fe7e66fd785bf532
|
||||
lexical: 0.11.0
|
||||
checksum: aded74f85c01b81a52b523d90b8b39f084752d6b302648ea291adc0d7530654383a791fbacef78120886e09c7501918a7a3ebc65f04ee276f76d06b145734af8
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@lexical/utils@npm:0.10.0":
|
||||
version: 0.10.0
|
||||
resolution: "@lexical/utils@npm:0.10.0"
|
||||
"@lexical/utils@npm:0.11.0":
|
||||
version: 0.11.0
|
||||
resolution: "@lexical/utils@npm:0.11.0"
|
||||
dependencies:
|
||||
"@lexical/list": 0.10.0
|
||||
"@lexical/selection": 0.10.0
|
||||
"@lexical/table": 0.10.0
|
||||
"@lexical/list": 0.11.0
|
||||
"@lexical/selection": 0.11.0
|
||||
"@lexical/table": 0.11.0
|
||||
peerDependencies:
|
||||
lexical: 0.10.0
|
||||
checksum: 5a57f134e6be65ce1243dd096c40168a54126f2f55ac8d44d1c2ad59e86ea5a2672591c8f1dd906f296de14beb556986aab9bbc06f58e4cdb8e2bfc460a18d24
|
||||
lexical: 0.11.0
|
||||
checksum: 1a34b931a5fe0adcdbfb19ce14ca52c29fd7248df9149b8b6fb3ed0304751e335516db7211185ef322a76627298a852b99f09cdaca7bf0bb185da2349eb43e74
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@lexical/yjs@npm:0.10.0":
|
||||
version: 0.10.0
|
||||
resolution: "@lexical/yjs@npm:0.10.0"
|
||||
"@lexical/yjs@npm:0.11.0":
|
||||
version: 0.11.0
|
||||
resolution: "@lexical/yjs@npm:0.11.0"
|
||||
dependencies:
|
||||
"@lexical/offset": 0.10.0
|
||||
"@lexical/offset": 0.11.0
|
||||
peerDependencies:
|
||||
lexical: 0.10.0
|
||||
lexical: 0.11.0
|
||||
yjs: ">=13.5.22"
|
||||
checksum: 7164157eea40aa196c60044e454fec6e18b0d19f82ac4b4d56313b919eaddfee887db17fd4fbf5c03e51fa7979472b5011db0b5d68256be167466a90049b808a
|
||||
checksum: 9ca4f6e45c38ea49c37e671e5d8a0d9b21bb33ad468074efe91e5ee185c8c67bbc039400eae95958d55891d15b649283b08f5e30e39be16ddc5368e9af7f87f5
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -4766,8 +4766,8 @@ __metadata:
|
||||
"@babel/plugin-transform-react-jsx": ^7.19.0
|
||||
"@babel/preset-env": "*"
|
||||
"@babel/preset-typescript": ^7.21.5
|
||||
"@lexical/headless": 0.10.0
|
||||
"@lexical/react": 0.10.0
|
||||
"@lexical/headless": 0.11.0
|
||||
"@lexical/react": 0.11.0
|
||||
"@pmmmwh/react-refresh-webpack-plugin": ^0.5.10
|
||||
"@radix-ui/react-slot": ^1.0.1
|
||||
"@simplewebauthn/browser": ^7.1.0
|
||||
@@ -4815,7 +4815,7 @@ __metadata:
|
||||
identity-obj-proxy: ^3.0.0
|
||||
jest: ^29.3.1
|
||||
jest-environment-jsdom: ^29.3.1
|
||||
lexical: 0.10.0
|
||||
lexical: 0.11.0
|
||||
lint-staged: ">=13"
|
||||
mini-css-extract-plugin: ^2.7.2
|
||||
minimatch: ^5.1.1
|
||||
@@ -14777,10 +14777,10 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"lexical@npm:0.10.0":
|
||||
version: 0.10.0
|
||||
resolution: "lexical@npm:0.10.0"
|
||||
checksum: 181d09446fd53c348f4900776994a15910c8e70aa720d6630e825a270b96069c49389ff5d333ddfaebb94c9eecf58a08f6d4cfeada0f7be2f205ea5a21f903b0
|
||||
"lexical@npm:0.11.0":
|
||||
version: 0.11.0
|
||||
resolution: "lexical@npm:0.11.0"
|
||||
checksum: 4cbcde4409bab9aa9cf79a7a0a60a415031cf9b244d18f4fc891d07f41966401fe688cd691d19e6c9be4cfa92fb68718e67352b1fec9fb7fe215c51d4d99d6f7
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
|
||||
Reference in New Issue
Block a user