orgnote-api 0.20.2 → 0.40.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (283) hide show
  1. package/api.d.ts +93 -98
  2. package/constants/{command-groups.contant.d.ts → command-groups.d.ts} +2 -1
  3. package/constants/{command-groups.contant.js → command-groups.js} +2 -0
  4. package/constants/extension-errors.d.ts +9 -0
  5. package/constants/extension-errors.js +18 -0
  6. package/constants/file-guard-errors.d.ts +8 -0
  7. package/constants/file-guard-errors.js +18 -0
  8. package/constants/git-errors.d.ts +9 -0
  9. package/constants/git-errors.js +18 -0
  10. package/constants/i18n-keys.d.ts +371 -0
  11. package/constants/i18n-keys.js +158 -0
  12. package/constants/index.d.ts +9 -1
  13. package/constants/index.js +9 -1
  14. package/constants/oauth-providers.d.ts +1 -0
  15. package/constants/oauth-providers.js +1 -0
  16. package/constants/route-names.d.ts +36 -0
  17. package/constants/route-names.js +37 -0
  18. package/constants/route-paths.d.ts +5 -0
  19. package/constants/route-paths.js +4 -0
  20. package/constants/style-sizes.d.ts +1 -0
  21. package/constants/style-sizes.js +1 -0
  22. package/encryption/__tests__/encryption.spec.js +4 -5
  23. package/encryption/__tests__/note-encryption.spec.js +46 -348
  24. package/encryption/encryption.d.ts +9 -4
  25. package/encryption/encryption.js +25 -5
  26. package/encryption/note-encryption.d.ts +1 -1
  27. package/encryption/note-encryption.js +6 -6
  28. package/files-api.d.ts +0 -1
  29. package/index.d.ts +4 -1
  30. package/index.js +4 -1
  31. package/mappers/orgnode-to-note.d.ts +2 -2
  32. package/mappers/orgnode-to-note.js +3 -2
  33. package/models/auth-store.d.ts +3 -3
  34. package/models/buffer-store.d.ts +14 -0
  35. package/models/buffer.d.ts +24 -0
  36. package/models/colors.d.ts +1 -0
  37. package/models/command.d.ts +13 -8
  38. package/models/commands-group-store.d.ts +11 -0
  39. package/models/commands-store.d.ts +13 -0
  40. package/models/completion-store.d.ts +14 -0
  41. package/models/completion.d.ts +16 -7
  42. package/models/config-store.d.ts +9 -0
  43. package/models/confirmation-modal.d.ts +11 -0
  44. package/models/context-menu-store.d.ts +10 -0
  45. package/models/cron-store.d.ts +21 -0
  46. package/models/cron-task.d.ts +30 -0
  47. package/models/css-utils.d.ts +17 -0
  48. package/models/default-commands.d.ts +52 -3
  49. package/models/default-commands.js +59 -2
  50. package/models/encryption-store.d.ts +10 -0
  51. package/models/encryption-store.js +1 -0
  52. package/models/encryption.d.ts +54 -11
  53. package/models/encryption.js +28 -1
  54. package/models/extension-registry-store.d.ts +9 -0
  55. package/models/extension-registry-store.js +1 -0
  56. package/models/extension-store.d.ts +18 -0
  57. package/models/extension-store.js +1 -0
  58. package/models/extension.d.ts +96 -24
  59. package/models/extension.js +88 -1
  60. package/models/file-guard-store.d.ts +14 -0
  61. package/models/file-guard-store.js +1 -0
  62. package/models/file-guard.d.ts +27 -0
  63. package/models/file-guard.js +1 -0
  64. package/models/{file-cache.d.ts → file-info.d.ts} +1 -1
  65. package/models/file-info.js +1 -0
  66. package/models/file-manager-store.d.ts +10 -12
  67. package/models/file-opener-store.d.ts +6 -4
  68. package/models/file-system-manager-store.d.ts +13 -0
  69. package/models/file-system-manager-store.js +1 -0
  70. package/models/file-system-store.d.ts +19 -0
  71. package/models/file-system-store.js +1 -0
  72. package/models/file-system.d.ts +32 -5
  73. package/models/file-system.js +2 -0
  74. package/models/file-upload.d.ts +6 -0
  75. package/models/file-upload.js +1 -0
  76. package/models/file-watcher-store.d.ts +18 -0
  77. package/models/file-watcher-store.js +1 -0
  78. package/models/files-store.d.ts +2 -2
  79. package/models/git-store.d.ts +12 -0
  80. package/models/git-store.js +1 -0
  81. package/models/git.d.ts +47 -0
  82. package/models/git.js +1 -0
  83. package/models/i18n-keys.d.ts +2 -0
  84. package/models/i18n-keys.js +1 -0
  85. package/models/index.d.ts +56 -2
  86. package/models/index.js +59 -2
  87. package/models/layout-snapshot-repository.d.ts +14 -0
  88. package/models/layout-snapshot-repository.js +1 -0
  89. package/models/layout-store.d.ts +17 -0
  90. package/models/layout-store.js +1 -0
  91. package/models/layout.d.ts +16 -0
  92. package/models/layout.js +1 -0
  93. package/models/log-repository.d.ts +17 -0
  94. package/models/log-repository.js +1 -0
  95. package/models/log-store.d.ts +15 -0
  96. package/models/log-store.js +1 -0
  97. package/models/log.d.ts +12 -0
  98. package/models/log.js +1 -0
  99. package/models/logger.d.ts +8 -0
  100. package/models/logger.js +1 -0
  101. package/models/menu-action.d.ts +18 -0
  102. package/models/menu-action.js +1 -0
  103. package/models/modal-store.d.ts +16 -0
  104. package/models/modal-store.js +1 -0
  105. package/models/modal.d.ts +10 -2
  106. package/models/note.d.ts +30 -13
  107. package/models/notification-config.d.ts +14 -0
  108. package/models/notification-config.js +1 -0
  109. package/models/notifications-store.d.ts +20 -0
  110. package/models/notifications-store.js +1 -0
  111. package/models/oauth-provider.d.ts +2 -1
  112. package/models/orgnote-config.d.ts +80 -0
  113. package/models/orgnote-config.js +42 -0
  114. package/models/orgnote-url.d.ts +6 -0
  115. package/models/orgnote-url.js +1 -0
  116. package/models/pane-snapshot-repository.d.ts +0 -0
  117. package/models/pane-snapshot-repository.js +0 -0
  118. package/models/pane.d.ts +38 -0
  119. package/models/pane.js +1 -0
  120. package/models/panes-store.d.ts +30 -0
  121. package/models/panes-store.js +1 -0
  122. package/models/platform-detection.d.ts +11 -0
  123. package/models/platform-detection.js +1 -0
  124. package/models/platform-specific.d.ts +1 -0
  125. package/models/platform-specific.js +1 -0
  126. package/models/platform.d.ts +2 -0
  127. package/models/platform.js +1 -0
  128. package/models/queue-store.d.ts +49 -0
  129. package/models/queue-store.js +1 -0
  130. package/models/queue-task.d.ts +15 -0
  131. package/models/queue-task.js +1 -0
  132. package/models/repositories.d.ts +58 -38
  133. package/models/screen-detection.d.ts +10 -0
  134. package/models/screen-detection.js +1 -0
  135. package/models/settings-store.d.ts +12 -0
  136. package/models/settings-store.js +1 -0
  137. package/models/settings-ui-store.d.ts +7 -0
  138. package/models/settings-ui-store.js +1 -0
  139. package/models/sidebar-store.d.ts +22 -0
  140. package/models/sidebar-store.js +1 -0
  141. package/models/splash-screen.d.ts +13 -0
  142. package/models/splash-screen.js +1 -0
  143. package/models/store.d.ts +1 -1
  144. package/models/style-size.d.ts +2 -0
  145. package/models/style-size.js +1 -0
  146. package/models/style-variant.d.ts +1 -0
  147. package/models/style-variant.js +1 -0
  148. package/models/sync-store.d.ts +8 -6
  149. package/models/sync.d.ts +0 -5
  150. package/models/system-info.d.ts +47 -0
  151. package/models/system-info.js +1 -0
  152. package/models/theme-store.d.ts +16 -0
  153. package/models/theme-store.js +1 -0
  154. package/models/theme-variables.d.ts +4 -189
  155. package/models/theme-variables.js +2 -191
  156. package/models/toolbar-store.d.ts +9 -0
  157. package/models/toolbar-store.js +1 -0
  158. package/models/ui-store.d.ts +6 -0
  159. package/models/ui-store.js +1 -0
  160. package/models/user.d.ts +3 -4
  161. package/models/vue-component.d.ts +4 -2
  162. package/package-lock.json +5553 -0
  163. package/package.json +37 -26
  164. package/remote-api/api.d.ts +288 -669
  165. package/remote-api/api.js +199 -485
  166. package/remote-api/base.js +1 -1
  167. package/remote-api/common.d.ts +1 -1
  168. package/sync/__tests__/memory-state.spec.d.ts +1 -0
  169. package/sync/__tests__/memory-state.spec.js +49 -0
  170. package/sync/__tests__/plan.spec.d.ts +1 -0
  171. package/sync/__tests__/plan.spec.js +116 -0
  172. package/sync/create-sync-plan.d.ts +2 -0
  173. package/sync/create-sync-plan.js +13 -0
  174. package/sync/fetch.d.ts +8 -0
  175. package/sync/fetch.js +32 -0
  176. package/sync/index.d.ts +10 -0
  177. package/sync/index.js +9 -0
  178. package/sync/memory-state.d.ts +2 -0
  179. package/sync/memory-state.js +22 -0
  180. package/sync/operations/conflict.d.ts +10 -0
  181. package/sync/operations/conflict.js +56 -0
  182. package/sync/operations/delete-local.d.ts +2 -0
  183. package/sync/operations/delete-local.js +17 -0
  184. package/sync/operations/delete-remote.d.ts +2 -0
  185. package/sync/operations/delete-remote.js +26 -0
  186. package/sync/operations/download.d.ts +2 -0
  187. package/sync/operations/download.js +20 -0
  188. package/sync/operations/index.d.ts +5 -0
  189. package/sync/operations/index.js +5 -0
  190. package/sync/operations/synced-file.d.ts +14 -0
  191. package/sync/operations/synced-file.js +5 -0
  192. package/sync/operations/upload.d.ts +2 -0
  193. package/sync/operations/upload.js +30 -0
  194. package/sync/plan.d.ts +9 -0
  195. package/sync/plan.js +57 -0
  196. package/sync/recovery.d.ts +2 -0
  197. package/sync/recovery.js +6 -0
  198. package/sync/scan.d.ts +4 -0
  199. package/sync/scan.js +40 -0
  200. package/sync/types.d.ts +74 -0
  201. package/sync/types.js +7 -0
  202. package/sync/utils/__tests__/oldest-synced-at.spec.d.ts +1 -0
  203. package/sync/utils/__tests__/oldest-synced-at.spec.js +38 -0
  204. package/sync/utils/oldest-synced-at.d.ts +2 -0
  205. package/sync/utils/oldest-synced-at.js +9 -0
  206. package/types/index.d.ts +0 -0
  207. package/types/index.js +0 -0
  208. package/utils/__tests__/find-files-diff.spec.d.ts +1 -0
  209. package/{tools → utils}/__tests__/find-files-diff.spec.js +3 -3
  210. package/utils/__tests__/find-note-files-diff.spec.d.ts +1 -0
  211. package/{tools → utils}/__tests__/find-note-files-diff.spec.js +5 -5
  212. package/utils/__tests__/get-file-name.spec.d.ts +1 -0
  213. package/utils/__tests__/get-string-path.spec.d.ts +1 -0
  214. package/utils/__tests__/is-gpg-encrypted.spec.d.ts +1 -0
  215. package/utils/__tests__/is-org-file.spec.d.ts +1 -0
  216. package/utils/__tests__/join.spec.d.ts +1 -0
  217. package/utils/__tests__/join.spec.js +32 -0
  218. package/utils/__tests__/nullable-guards.spec.d.ts +1 -0
  219. package/utils/__tests__/nullable-guards.spec.js +44 -0
  220. package/utils/__tests__/parent-folder.spec.d.ts +1 -0
  221. package/utils/__tests__/read-org-files-recursively.spec.d.ts +1 -0
  222. package/utils/__tests__/split-path.spec.d.ts +1 -0
  223. package/utils/__tests__/to-absolute-path.spec.d.ts +1 -0
  224. package/utils/__tests__/to-absolute-path.spec.js +26 -0
  225. package/utils/__tests__/to-error.spec.d.ts +1 -0
  226. package/utils/__tests__/to-error.spec.js +112 -0
  227. package/utils/__tests__/with-root.spec.d.ts +1 -0
  228. package/utils/__tests__/with-root.spec.js +20 -0
  229. package/{tools → utils}/find-notes-files-diff.js +6 -3
  230. package/{tools → utils}/index.d.ts +4 -1
  231. package/{tools → utils}/index.js +4 -1
  232. package/utils/join-path.d.ts +1 -0
  233. package/utils/join-path.js +13 -0
  234. package/utils/nullable-guards.d.ts +2 -0
  235. package/utils/nullable-guards.js +6 -0
  236. package/utils/to-absolute-path.d.ts +2 -0
  237. package/utils/to-absolute-path.js +2 -0
  238. package/utils/to-error.d.ts +6 -0
  239. package/utils/to-error.js +33 -0
  240. package/utils/toml.d.ts +3 -0
  241. package/utils/toml.js +31 -0
  242. package/utils/with-root.d.ts +1 -0
  243. package/utils/with-root.js +6 -0
  244. package/websocket/client.d.ts +24 -0
  245. package/websocket/client.js +83 -0
  246. package/models/file-tree.d.ts +0 -12
  247. package/tools/__tests__/join.spec.js +0 -24
  248. package/tools/join-path.d.ts +0 -1
  249. package/tools/join-path.js +0 -7
  250. package/tools/mock-server.d.ts +0 -1
  251. package/tools/mock-server.js +0 -12
  252. /package/models/{file-cache.js → buffer-store.js} +0 -0
  253. /package/models/{file-tree.js → buffer.js} +0 -0
  254. /package/{tools/__tests__/find-files-diff.spec.d.ts → models/colors.js} +0 -0
  255. /package/{tools/__tests__/find-note-files-diff.spec.d.ts → models/commands-group-store.js} +0 -0
  256. /package/{tools/__tests__/get-file-name.spec.d.ts → models/commands-store.js} +0 -0
  257. /package/{tools/__tests__/get-string-path.spec.d.ts → models/completion-store.js} +0 -0
  258. /package/{tools/__tests__/is-gpg-encrypted.spec.d.ts → models/config-store.js} +0 -0
  259. /package/{tools/__tests__/is-org-file.spec.d.ts → models/confirmation-modal.js} +0 -0
  260. /package/{tools/__tests__/join.spec.d.ts → models/context-menu-store.js} +0 -0
  261. /package/{tools/__tests__/parent-folder.spec.d.ts → models/cron-store.js} +0 -0
  262. /package/{tools/__tests__/read-org-files-recursively.spec.d.ts → models/cron-task.js} +0 -0
  263. /package/{tools/__tests__/split-path.spec.d.ts → models/css-utils.js} +0 -0
  264. /package/{tools → utils}/__tests__/get-file-name.spec.js +0 -0
  265. /package/{tools → utils}/__tests__/get-string-path.spec.js +0 -0
  266. /package/{tools → utils}/__tests__/is-gpg-encrypted.spec.js +0 -0
  267. /package/{tools → utils}/__tests__/is-org-file.spec.js +0 -0
  268. /package/{tools → utils}/__tests__/parent-folder.spec.js +0 -0
  269. /package/{tools → utils}/__tests__/read-org-files-recursively.spec.js +0 -0
  270. /package/{tools → utils}/__tests__/split-path.spec.js +0 -0
  271. /package/{tools → utils}/find-notes-files-diff.d.ts +0 -0
  272. /package/{tools → utils}/get-file-name.d.ts +0 -0
  273. /package/{tools → utils}/get-file-name.js +0 -0
  274. /package/{tools → utils}/get-parent-dir.d.ts +0 -0
  275. /package/{tools → utils}/get-parent-dir.js +0 -0
  276. /package/{tools → utils}/get-string-path.d.ts +0 -0
  277. /package/{tools → utils}/get-string-path.js +0 -0
  278. /package/{tools → utils}/is-gpg-encrypted.d.ts +0 -0
  279. /package/{tools → utils}/is-gpg-encrypted.js +0 -0
  280. /package/{tools → utils}/is-org-file.d.ts +0 -0
  281. /package/{tools → utils}/is-org-file.js +0 -0
  282. /package/{tools → utils}/split-path.d.ts +0 -0
  283. /package/{tools → utils}/split-path.js +0 -0
@@ -0,0 +1,49 @@
1
+ import { Ref } from 'vue';
2
+ import { QueueTask } from './queue-task.js';
3
+ import { StoreDefinition } from './store.js';
4
+ export type ProcessCallback = (err?: unknown, result?: unknown) => void;
5
+ export type ProcessFn = (task: unknown, cb: ProcessCallback) => void;
6
+ export interface QueueCreationOptions {
7
+ concurrent?: number;
8
+ maxRetries?: number;
9
+ retryDelay?: number;
10
+ maxTimeout?: number;
11
+ batchSize?: number;
12
+ batchDelay?: number;
13
+ afterProcessDelay?: number;
14
+ filo?: boolean;
15
+ id?: string | ((task: unknown, cb: (err: unknown, id: string) => void) => void);
16
+ cancelIfRunning?: boolean;
17
+ autoResume?: boolean;
18
+ failTaskOnProcessException?: boolean;
19
+ process?: ProcessFn;
20
+ }
21
+ export interface QueueTaskOptions {
22
+ priority?: number;
23
+ delay?: number;
24
+ timeout?: number;
25
+ [key: string]: unknown;
26
+ }
27
+ export interface QueueStats {
28
+ total: number;
29
+ average: number;
30
+ successRate: number;
31
+ peak: number;
32
+ }
33
+ export interface QueueStore {
34
+ queueIds: Ref<string[]>;
35
+ register(queueId: string, options?: QueueCreationOptions): unknown;
36
+ unregister(queueId?: string): void;
37
+ getQueue(queueId?: string): unknown | undefined;
38
+ destroy(queueId?: string): void;
39
+ add(payload: unknown, options?: QueueTaskOptions, queueId?: string): Promise<string>;
40
+ getAll(queueId?: string): Promise<QueueTask[]>;
41
+ get(taskId: string, queueId?: string): Promise<QueueTask | undefined>;
42
+ remove(taskId: string, queueId?: string): Promise<void>;
43
+ pause(queueId?: string): void;
44
+ resume(queueId?: string): void;
45
+ getStats(queueId?: string): Promise<QueueStats>;
46
+ clear(queueId?: string): Promise<void>;
47
+ executeBatchTasks<T = unknown[], R = unknown[]>(options: QueueCreationOptions, data: T[]): Promise<R>;
48
+ }
49
+ export type QueueStoreDefinition = StoreDefinition<QueueStore>;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,15 @@
1
+ export type QueueStatus = 'completed' | 'failed' | 'pending' | 'processing' | 'canceled';
2
+ export interface QueueTask<T = unknown> {
3
+ id: string;
4
+ payload: T;
5
+ queueId: string;
6
+ added: number;
7
+ priority?: number;
8
+ started?: number;
9
+ retries?: number;
10
+ failed?: number;
11
+ lockId?: string;
12
+ status?: QueueStatus;
13
+ deletedAt?: number;
14
+ [key: string]: unknown;
15
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -1,52 +1,52 @@
1
- import { ExtensionMeta, StoredExtension } from './extension.js';
2
- import { FileCache } from './file-cache.js';
1
+ import { ExtensionSource } from './extension.js';
2
+ import { FileInfo } from './file-info.js';
3
3
  import { FilePathInfo } from './file-path.js';
4
- import { Note, NotePreview } from './note.js';
5
- export interface ExtensionRepository {
6
- getMeta(): Promise<ExtensionMeta[]>;
7
- getActiveExtensions(): Promise<StoredExtension[]>;
8
- setActiveStatus(extensionName: string, active: boolean): Promise<void>;
9
- activateExtension(extensionName: string): Promise<void>;
10
- deactivateExtension(extensionName: string): Promise<void>;
11
- upsertExtensions(extensions: StoredExtension[]): Promise<void>;
12
- getExtension(extensionName: string): Promise<StoredExtension>;
13
- getExtensionBySource(source: string): Promise<StoredExtension>;
14
- deleteBySource(source: string): Promise<void>;
4
+ import { LayoutSnapshotRepository } from './layout-snapshot-repository.js';
5
+ import { LoggerRepository } from './log-repository.js';
6
+ import { NoteInfo } from './note.js';
7
+ import { QueueTask } from './queue-task.js';
8
+ export interface ExtensionSourceRepository {
9
+ get(extensionName: string): Promise<ExtensionSource | undefined>;
10
+ getBySource(source: string): Promise<ExtensionSource | undefined>;
11
+ getAll(): Promise<ExtensionSource[]>;
12
+ upsert(extension: ExtensionSource): Promise<void>;
13
+ upsertMany(extensions: ExtensionSource[]): Promise<void>;
15
14
  delete(extensionName: string): Promise<void>;
15
+ deleteBySource(source: string): Promise<void>;
16
+ clear(): Promise<void>;
16
17
  }
17
- export interface FileRepository {
18
- upsert(file: FileCache): Promise<void>;
19
- bulkUpsert(file: FileCache[]): Promise<void>;
20
- update(filePath: string, file: Partial<FileCache>): Promise<void>;
18
+ export interface FileInfoRepository {
19
+ upsert(file: FileInfo): Promise<void>;
20
+ bulkUpsert(file: FileInfo[]): Promise<void>;
21
+ update(filePath: string, file: Partial<FileInfo>): Promise<void>;
21
22
  delete(filePath: string): Promise<void>;
22
23
  markAsDelete(filePath: string, deletedAt?: Date): Promise<void>;
23
24
  clear(): Promise<void>;
24
- getFirstUnuploaded(): Promise<FileCache>;
25
- search(text: string): Promise<FileCache[]>;
26
- getByPath(path: string): Promise<FileCache>;
27
- getAll(): Promise<FileCache[]>;
28
- getFilesAfterUpdateTime(updatedTime?: Date): Promise<FileCache[]>;
25
+ search(text: string): Promise<FileInfo[]>;
26
+ getByPath(path: string): Promise<FileInfo | undefined>;
27
+ getAll(): Promise<FileInfo[]>;
28
+ getFilesAfterUpdateTime(updatedTime?: Date): Promise<FileInfo[]>;
29
29
  count(updatedTime?: Date): Promise<number>;
30
30
  }
31
- export interface NoteRepository {
32
- getNotesAfterUpdateTime(updatedTime?: string): Promise<Note[]>;
33
- getDeletedNotes(): Promise<Note[]>;
34
- saveNotes(notes: Note[]): Promise<void>;
35
- putNote(note: Note): Promise<void>;
36
- getById(id: string): Promise<Note>;
37
- getByPath(path: string[]): Promise<Note>;
38
- getNotePreviews(options?: {
31
+ export interface NoteInfoRepository {
32
+ getNotesAfterUpdateTime(updatedTime?: string): Promise<NoteInfo[]>;
33
+ getDeletedNotes(): Promise<NoteInfo[]>;
34
+ saveNotes(notes: NoteInfo[]): Promise<void>;
35
+ putNote(note: NoteInfo): Promise<void>;
36
+ getById(id: string): Promise<NoteInfo | undefined>;
37
+ getByPath(path: string[]): Promise<NoteInfo | undefined>;
38
+ getNotesInfo(options?: {
39
39
  limit?: number;
40
40
  offset?: number;
41
41
  searchText?: string;
42
42
  tags?: string[];
43
43
  bookmarked?: boolean;
44
- }): Promise<NotePreview[]>;
44
+ }): Promise<NoteInfo[]>;
45
45
  deleteNotes(noteIds: string[]): Promise<void>;
46
46
  markAsDeleted(noteIds: string[]): Promise<void>;
47
47
  bulkPartialUpdate(updates: {
48
48
  id: string;
49
- changes: Partial<Note>;
49
+ changes: Partial<NoteInfo>;
50
50
  }[]): Promise<void>;
51
51
  count(searchText?: string, tags?: string[]): Promise<number>;
52
52
  getFilePaths(): Promise<FilePathInfo[]>;
@@ -57,14 +57,34 @@ export interface NoteRepository {
57
57
  }[]>;
58
58
  addBookmark(noteId: string): Promise<void>;
59
59
  deleteBookmark(noteId: string): Promise<void>;
60
- modify(modifyCallback: (note: Note, ref: {
61
- value: Note;
60
+ modify(modifyCallback: (note: NoteInfo, ref: {
61
+ value: NoteInfo;
62
62
  }) => void): Promise<void>;
63
- getIds(filterCb?: (n: Note) => boolean): Promise<string[]>;
63
+ getIds(filterCb?: (n: NoteInfo) => boolean): Promise<string[]>;
64
64
  clear(): Promise<void>;
65
65
  }
66
+ export interface QueueRepository {
67
+ add(task: QueueTask): Promise<void>;
68
+ get(id: string): Promise<QueueTask | undefined>;
69
+ getAll(queueId?: string): Promise<QueueTask[]>;
70
+ delete(id: string, force?: boolean): Promise<void>;
71
+ lock(id: string): Promise<void>;
72
+ release(id: string): Promise<void>;
73
+ takeFirstN(n: number, queueId: string): Promise<string>;
74
+ getLock(lockId: string): Promise<{
75
+ [id: string]: QueueTask;
76
+ } | undefined>;
77
+ getRunningTasks(queueId: string): Promise<{
78
+ [id: string]: QueueTask;
79
+ }>;
80
+ clear(queueId: string): Promise<void>;
81
+ setStatus: (id: string, status: string) => Promise<void>;
82
+ }
66
83
  export interface Repositories {
67
- notes: NoteRepository;
68
- files: FileRepository;
69
- extensions: ExtensionRepository;
84
+ logRepository: LoggerRepository;
85
+ fileInfoRepository: FileInfoRepository;
86
+ noteInfoRepository: NoteInfoRepository;
87
+ layoutSnapshotRepository: LayoutSnapshotRepository;
88
+ queueRepository: QueueRepository;
89
+ extensionSourceRepository: ExtensionSourceRepository;
70
90
  }
@@ -0,0 +1,10 @@
1
+ import type { ComputedRef, Ref } from 'vue';
2
+ export interface ScreenDetection {
3
+ screenWidth: Ref<number>;
4
+ desktopAbove: ComputedRef<boolean>;
5
+ desktopBelow: ComputedRef<boolean>;
6
+ tabletBelow: ComputedRef<boolean>;
7
+ tabletAbove: ComputedRef<boolean>;
8
+ mobile: ComputedRef<boolean>;
9
+ }
10
+ export type UseScreenDetection = () => ScreenDetection;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,12 @@
1
+ import type { Ref } from 'vue';
2
+ import { OrgNoteSettings } from './orgnote-config.js';
3
+ import { StoreDefinition } from './store.js';
4
+ import { ModelsAPIToken } from "../remote-api/index.js";
5
+ export interface SettingsStore {
6
+ settings: OrgNoteSettings;
7
+ tokens: Ref<ModelsAPIToken[]>;
8
+ loadApiTokens: () => Promise<void>;
9
+ createApiToken: () => Promise<void>;
10
+ removeApiToken: (token: ModelsAPIToken) => Promise<void>;
11
+ }
12
+ export type SettingsStoreDefinition = StoreDefinition<SettingsStore>;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,7 @@
1
+ import type { Ref } from 'vue';
2
+ import { StoreDefinition } from './store.js';
3
+ import { CommandName } from './command.js';
4
+ export interface SettingsUiStore {
5
+ settingsMenu: Ref<Record<string, CommandName[]>>;
6
+ }
7
+ export type SettingsUiStoreDefinition = StoreDefinition<SettingsUiStore>;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,22 @@
1
+ import type { ExtractPropTypes, Ref } from 'vue';
2
+ import { StoreDefinition } from './store.js';
3
+ import type { ShallowRef } from 'vue';
4
+ import type { VueComponent } from './vue-component.js';
5
+ import { CommandName } from './command.js';
6
+ export type ComponentConfig<T extends VueComponent> = {
7
+ componentProps?: ExtractPropTypes<T>;
8
+ };
9
+ export interface SidebarStore {
10
+ opened: Ref<boolean>;
11
+ component: ShallowRef<VueComponent | undefined>;
12
+ componentConfig: ShallowRef<ComponentConfig<VueComponent> | undefined>;
13
+ close: () => void;
14
+ open: () => void;
15
+ openComponent: <T extends VueComponent>(cmp: T, config?: ComponentConfig<T>) => void;
16
+ toggle: (cmp?: VueComponent) => void;
17
+ commands: Ref<CommandName[]>;
18
+ footerCommands: Ref<CommandName[]>;
19
+ addCommand: (command: CommandName) => void;
20
+ removeCommand: (command: CommandName) => void;
21
+ }
22
+ export type SidebarStoreDefinition = StoreDefinition<SidebarStore>;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,13 @@
1
+ export interface SplashScreenGroupConfig {
2
+ group?: string;
3
+ }
4
+ export interface SplashScreenConfig extends SplashScreenGroupConfig {
5
+ randomPreparationText?: boolean;
6
+ preparationText?: string;
7
+ randomPreparationTexts?: boolean;
8
+ }
9
+ export interface SplashScreen {
10
+ show(config?: SplashScreenConfig): void;
11
+ hide(config?: SplashScreenGroupConfig): void;
12
+ }
13
+ export type UseSplashScreen = () => SplashScreen;
@@ -0,0 +1 @@
1
+ export {};
package/models/store.d.ts CHANGED
@@ -1,2 +1,2 @@
1
1
  import type { defineStore } from 'pinia';
2
- export type Store<T> = ReturnType<typeof defineStore<string, T>>;
2
+ export type StoreDefinition<T> = ReturnType<typeof defineStore<string, T>>;
@@ -0,0 +1,2 @@
1
+ import { STYLE_SIZES } from "../constants/style-sizes.js";
2
+ export type StyleSize = (typeof STYLE_SIZES)[number];
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export type StyleVariant = 'clear' | 'plain' | 'info' | 'warning' | 'danger' | 'active';
@@ -0,0 +1 @@
1
+ export {};
@@ -1,10 +1,12 @@
1
1
  import type { Ref } from 'vue';
2
- import { Store } from './store.js';
2
+ import type { StoreDefinition } from './store.js';
3
+ import type { SyncPlan, SyncStateData } from '../sync/types.js';
3
4
  export interface SyncStore {
4
- markToSync: () => Promise<void>;
5
+ currentPlan: Ref<SyncPlan | null>;
6
+ stateData: Ref<SyncStateData | null>;
7
+ createPlan: () => Promise<SyncPlan | null>;
8
+ executePlan: (plan: SyncPlan) => Promise<void>;
5
9
  sync: () => Promise<void>;
6
- forceResync: () => Promise<void>;
7
- lastSyncTime: Ref<string>;
8
- reset: () => void;
10
+ reset: () => Promise<void>;
9
11
  }
10
- export type SyncStoreDefinition = Store<SyncStore>;
12
+ export type SyncStoreDefinition = StoreDefinition<SyncStore>;
package/models/sync.d.ts CHANGED
@@ -1,4 +1,3 @@
1
- import { HandlersCreatingNote } from "../remote-api/index.js";
2
1
  import { FileSystem } from './file-system.js';
3
2
  export interface Changes {
4
3
  deleted: string[];
@@ -14,10 +13,6 @@ export interface NoteChanges {
14
13
  created: NoteChange[];
15
14
  updated: NoteChange[];
16
15
  }
17
- export interface FullContextNoteChanges extends Omit<NoteChanges, 'created' | 'updated'> {
18
- created: HandlersCreatingNote[];
19
- updated: HandlersCreatingNote[];
20
- }
21
16
  export interface StoredNoteInfo {
22
17
  filePath: string[];
23
18
  id: string;
@@ -0,0 +1,47 @@
1
+ export interface ScreenInfo {
2
+ width: number;
3
+ height: number;
4
+ colorDepth: number;
5
+ pixelRatio: number;
6
+ }
7
+ export interface DeviceInfo {
8
+ model: string;
9
+ manufacturer: string;
10
+ osVersion: string;
11
+ androidSDKVersion?: number;
12
+ }
13
+ export interface EncryptionInfo {
14
+ type: string;
15
+ passwordProvided?: boolean;
16
+ publicKeyProvided?: boolean;
17
+ privateKeyProvided?: boolean;
18
+ passphraseProvided?: boolean;
19
+ }
20
+ export interface EnvironmentInfo {
21
+ apiUrl: string;
22
+ authUrl: string;
23
+ mode: string;
24
+ }
25
+ export interface PlatformInfo {
26
+ isNativeMobile: boolean;
27
+ isAndroid: boolean;
28
+ isIOS: boolean;
29
+ isDesktop: boolean;
30
+ isElectron: boolean;
31
+ isStandalone: boolean;
32
+ [key: string]: boolean;
33
+ }
34
+ export interface SystemInfo {
35
+ version: string;
36
+ language: string;
37
+ screen: ScreenInfo;
38
+ encryption: EncryptionInfo;
39
+ environment: EnvironmentInfo;
40
+ platform: PlatformInfo;
41
+ device?: DeviceInfo;
42
+ }
43
+ export interface SystemInfoDefinition {
44
+ getSystemInfo(): Promise<SystemInfo>;
45
+ getTextSystemInfo(): Promise<string>;
46
+ }
47
+ export type UseSystemInfo = () => SystemInfoDefinition;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,16 @@
1
+ import type { Ref } from 'vue';
2
+ import type { StoreDefinition } from './store.js';
3
+ export type ThemeMode = 'light' | 'dark' | 'auto';
4
+ export interface ThemeStore {
5
+ isDark: Ref<boolean>;
6
+ isDynamicMode: Ref<boolean>;
7
+ effectiveMode: Ref<'light' | 'dark'>;
8
+ activeThemeName: Ref<string | null>;
9
+ sync: () => Promise<void>;
10
+ setMode: (mode: ThemeMode) => Promise<void>;
11
+ toggleMode: () => Promise<void>;
12
+ toggleDynamicMode: () => Promise<void>;
13
+ setTheme: (themeName: string | null) => Promise<void>;
14
+ resetTheme: () => Promise<void>;
15
+ }
16
+ export type ThemeStoreDefinition = StoreDefinition<ThemeStore>;
@@ -0,0 +1 @@
1
+ export {};
@@ -1,192 +1,7 @@
1
1
  /**
2
- * This file is generated by the script `collect-css-variables.js`.
2
+ * This file is generated by the script `collect-css-variables.cjs`.
3
3
  * Do not edit it manually.
4
4
  **/
5
- export declare enum ThemeVariable {
6
- red = "red",
7
- orange = "orange",
8
- green = "green",
9
- teal = "teal",
10
- yellow = "yellow",
11
- blue = "blue",
12
- darkBlue = "darkBlue",
13
- magenta = "magenta",
14
- violet = "violet",
15
- cyan = "cyan",
16
- darkCyan = "darkCyan",
17
- white = "white",
18
- bg = "bg",
19
- bgAlt = "bgAlt",
20
- bgAlt2 = "bgAlt2",
21
- fg = "fg",
22
- fgAlt = "fgAlt",
23
- base0 = "base0",
24
- base1 = "base1",
25
- base2 = "base2",
26
- base3 = "base3",
27
- base4 = "base4",
28
- base5 = "base5",
29
- base6 = "base6",
30
- base7 = "base7",
31
- base8 = "base8"
32
- }
33
- export declare enum CSSVariable {
34
- bg = "bg",
35
- fg = "fg",
36
- dur = "dur",
37
- easyTableHeaderBackgroundColor = "easyTableHeaderBackgroundColor",
38
- easyTableHeaderFontColor = "easyTableHeaderFontColor",
39
- easyTableBodyRowBackgroundColor = "easyTableBodyRowBackgroundColor",
40
- easyTableBodyRowFontColor = "easyTableBodyRowFontColor",
41
- easyTableBodyRowHoverBackgroundColor = "easyTableBodyRowHoverBackgroundColor",
42
- easyTableFooterBackgroundColor = "easyTableFooterBackgroundColor",
43
- easyTableFooterFontColor = "easyTableFooterFontColor",
44
- easyTableBodyRowHoverFontColor = "easyTableBodyRowHoverFontColor",
45
- easyTableRowBorder = "easyTableRowBorder",
46
- easyTableBorder = "easyTableBorder",
47
- easyTableMessageFontColor = "easyTableMessageFontColor",
48
- btnFlatSize = "btnFlatSize",
49
- btnFlatBorder = "btnFlatBorder",
50
- btnFlatBorderRadius = "btnFlatBorderRadius",
51
- btnFlatBoxShadow = "btnFlatBoxShadow",
52
- btnMainColor = "btnMainColor",
53
- btnSocialSize = "btnSocialSize",
54
- btnSocialBackground = "btnSocialBackground",
55
- checkboxColor = "checkboxColor",
56
- editorFontFamily = "editorFontFamily",
57
- flexGapMd = "flexGapMd",
58
- flexGapSm = "flexGapSm",
59
- inlineCodeBackground = "inlineCodeBackground",
60
- inlineCodeFontColor = "inlineCodeFontColor",
61
- scrollBarWidth = "scrollBarWidth",
62
- scrollBarColor = "scrollBarColor",
63
- fontSizeSm = "fontSizeSm",
64
- fontSizeMd = "fontSizeMd",
65
- fontSizeLg = "fontSizeLg",
66
- headlineMargin = "headlineMargin",
67
- paragraphFontSize = "paragraphFontSize",
68
- mainFontFamily = "mainFontFamily",
69
- editorFontFamilyMain = "editorFontFamilyMain",
70
- paragraphFontFamily = "paragraphFontFamily",
71
- headlineFontFamily = "headlineFontFamily",
72
- codeFontFamily = "codeFontFamily",
73
- descriptionFontFamily = "descriptionFontFamily",
74
- descriptionFontSize = "descriptionFontSize",
75
- descriptionFontStyle = "descriptionFontStyle",
76
- descriptionFontColor = "descriptionFontColor",
77
- descriptionPadding = "descriptionPadding",
78
- codeFontSize = "codeFontSize",
79
- headlineFontWeight = "headlineFontWeight",
80
- fontColorAction = "fontColorAction",
81
- fontSm = "fontSm",
82
- fontMd = "fontMd",
83
- fontLg = "fontLg",
84
- ulFontSize = "ulFontSize",
85
- ulLineHeight = "ulLineHeight",
86
- ulFontFamily = "ulFontFamily",
87
- topBarHeight = "topBarHeight",
88
- contentMaxWidth = "contentMaxWidth",
89
- modelineHeight = "modelineHeight",
90
- modelinePadding = "modelinePadding",
91
- modelineBackground = "modelineBackground",
92
- cardBackgroundColor = "cardBackgroundColor",
93
- shadowMain = "shadowMain",
94
- sidebarWidth = "sidebarWidth",
95
- actionPaneOpenedWidth = "actionPaneOpenedWidth",
96
- footerHeight = "footerHeight",
97
- publicPreviewImageWidth = "publicPreviewImageWidth",
98
- publicPreviewImageHeight = "publicPreviewImageHeight",
99
- publicPreviewMaxHeight = "publicPreviewMaxHeight",
100
- completionItemMinHeight = "completionItemMinHeight",
101
- completionItemPadding = "completionItemPadding",
102
- completionItemMargin = "completionItemMargin",
103
- completionItemHoverBackground = "completionItemHoverBackground",
104
- completionItemHoverColor = "completionItemHoverColor",
105
- completionFloatTop = "completionFloatTop",
106
- completionBorderRadius = "completionBorderRadius",
107
- completionWidth = "completionWidth",
108
- completionMaxWidth = "completionMaxWidth",
109
- completionBorder = "completionBorder",
110
- completionBoxShadow = "completionBoxShadow",
111
- completionInputHeight = "completionInputHeight",
112
- completionContainerMargin = "completionContainerMargin",
113
- menuPadding = "menuPadding",
114
- fileUploaderBorderWidth = "fileUploaderBorderWidth",
115
- fileUploaderBorderStyle = "fileUploaderBorderStyle",
116
- fileUploaderBorderColor = "fileUploaderBorderColor",
117
- fileUploaderBg = "fileUploaderBg",
118
- fileUploaderOpacity = "fileUploaderOpacity",
119
- notePreviewLinkMaxWidth = "notePreviewLinkMaxWidth",
120
- notePreviewLinkHeight = "notePreviewLinkHeight",
121
- btnActionShadow = "btnActionShadow",
122
- btnActionBorder = "btnActionBorder",
123
- btnActionBorderColor = "btnActionBorderColor",
124
- btnActionPadding = "btnActionPadding",
125
- btnActionRadius = "btnActionRadius",
126
- btnActionFireColor = "btnActionFireColor",
127
- btnActionFireBorderColor = "btnActionFireBorderColor",
128
- btnActionMd = "btnActionMd",
129
- btnActionSm = "btnActionSm",
130
- btnActionLg = "btnActionLg",
131
- btnActionColor = "btnActionColor",
132
- btnActionBg = "btnActionBg",
133
- miniBufferBackground = "miniBufferBackground",
134
- miniBufferFontColor = "miniBufferFontColor",
135
- miniBufferBorderTop = "miniBufferBorderTop",
136
- miniBufferMaxHeight = "miniBufferMaxHeight",
137
- tagHoverBackground = "tagHoverBackground",
138
- tagHoverColor = "tagHoverColor",
139
- toolbarBorderTop = "toolbarBorderTop",
140
- toolbarHoverColor = "toolbarHoverColor",
141
- headerbarHeight = "headerbarHeight",
142
- headerbarBorderRadius = "headerbarBorderRadius",
143
- headerbarBackgroundColor = "headerbarBackgroundColor",
144
- headerbarColor = "headerbarColor",
145
- headerbarBorder = "headerbarBorder",
146
- fileItemBgHover = "fileItemBgHover",
147
- fileItemColorHover = "fileItemColorHover",
148
- fileItemHeight = "fileItemHeight",
149
- iconBtnColor = "iconBtnColor",
150
- iconBtnHoverColor = "iconBtnHoverColor",
151
- modalMaxHeight = "modalMaxHeight",
152
- modalMaxWidth = "modalMaxWidth",
153
- modalPadding = "modalPadding",
154
- blockPaddingSm = "blockPaddingSm",
155
- blockPaddingMd = "blockPaddingMd",
156
- blockPaddingLg = "blockPaddingLg",
157
- blockMarginMd = "blockMarginMd",
158
- blockMarginSm = "blockMarginSm",
159
- blockBorderRadiusMd = "blockBorderRadiusMd",
160
- blockBorderRadiusSm = "blockBorderRadiusSm",
161
- itemDefaultRadius = "itemDefaultRadius",
162
- searchIcnSize = "searchIcnSize",
163
- gapMd = "gapMd",
164
- gapSm = "gapSm",
165
- gapXs = "gapXs",
166
- srcBlockHeaderPaddingY = "srcBlockHeaderPaddingY",
167
- srcBlockFooterPaddingY = "srcBlockFooterPaddingY",
168
- srcBlockPaddingX = "srcBlockPaddingX",
169
- srcBlockPaddingY = "srcBlockPaddingY",
170
- srcBlockMarginY = "srcBlockMarginY",
171
- pagePadding = "pagePadding",
172
- editorLineHeight = "editorLineHeight",
173
- editorHeadlineLineHeight = "editorHeadlineLineHeight",
174
- editorDefaultLineHeight = "editorDefaultLineHeight",
175
- editorPaddingBottom = "editorPaddingBottom",
176
- editorCursorColor = "editorCursorColor",
177
- editorSelectionBgColor = "editorSelectionBgColor",
178
- editorSelectionColor = "editorSelectionColor",
179
- editorGutterColor = "editorGutterColor",
180
- editorGutterHoverColor = "editorGutterHoverColor",
181
- editorFoldPlaceholderColor = "editorFoldPlaceholderColor",
182
- editorActiveLineBgColor = "editorActiveLineBgColor",
183
- editorCaretColor = "editorCaretColor",
184
- orgListItemBulletMarginLeft = "orgListItemBulletMarginLeft",
185
- devicePaddingBottom = "devicePaddingBottom",
186
- graphNodeColor = "graphNodeColor",
187
- graphEdgeColor = "graphEdgeColor",
188
- graphActiveColor = "graphActiveColor",
189
- inputHeight = "inputHeight",
190
- inputLgHeight = "inputLgHeight",
191
- borderMain = "borderMain"
192
- }
5
+ export declare const THEME_VARIABLES: readonly ["red", "orange", "green", "teal", "yellow", "blue", "dark-blue", "magenta", "violet", "cyan", "dark-cyan", "white", "bg", "bg-secondary", "bg-elevated", "bg-hover", "fg", "fg-muted", "accent"];
6
+ export type ThemeVariable = (typeof THEME_VARIABLES)[number];
7
+ export type CSSVariable = 'btn-action-hover-color,' | 'vs-border-width' | 'vs-dropdown-bg' | 'vs-search-input-bg' | 'vs-search-input-color' | 'vs-dropdown-option-padding' | 'vs-dropdown-box-shadow' | 'vs-actions-padding' | 'vs-dropdown-option--active-bg' | 'variant-color' | 'variant-color-muted' | 'fg' | 'tab-preview-overlay-bg' | 'tab-preview-text-shadow' | 'scroll-bar-width' | 'scroll-bar-color' | 'font-size-sm' | 'font-size-md' | 'font-size-lg' | 'main-font-family' | 'editor-font-family-main' | 'paragraph-font-family' | 'headline-font-family' | 'code-font-family' | 'description-font-family' | 'description-font-size' | 'description-font-style' | 'description-font-color' | 'description-padding' | 'padding-xs' | 'padding-sm' | 'padding-md' | 'padding-lg' | 'padding-xl' | 'margin-sm' | 'margin-md' | 'margin-lg' | 'font-size-xs' | 'font-size-xl' | 'font-weight-regular' | 'font-weight-bold' | 'font-weight-extra-bold' | 'line-height-sm' | 'line-height-md' | 'line-height-lg' | 'border-radius-xs' | 'border-radius-sm' | 'border-radius-md' | 'border-radius-lg' | 'border-default' | 'border-accent' | 'shadow-sm' | 'shadow-md' | 'shadow-lg' | 'gap-xs' | 'gap-sm' | 'gap-md' | 'gap-lg' | 'gap-xl' | 'footer-height' | 'footer-border-top' | 'footer-padding' | 'footer-background' | 'sidebar-width' | 'sidebar-mini-width' | 'sidebar-background' | 'sidebar-border-right' | 'sidebar-padding' | 'btn-action-padding' | 'btn-action-radius' | 'btn-action-color' | 'btn-action-bg' | 'btn-action-hover-bg' | 'btn-action-hover-brightness' | 'btn-action-xs-size' | 'btn-action-sm-size' | 'btn-action-md-size' | 'btn-action-lg-size' | 'btn-action-border' | 'btn-action-active-color' | 'btn-action-text-width' | 'button-border-raidius' | 'button-padding' | 'button-min-width' | 'device-padding-bottom' | 'backdrop-bg' | 'modal-backdrop-bg' | 'modal-border' | 'modal-border-radius' | 'modal-padding' | 'modal-max-width' | 'modal-max-height' | 'modal-safe-margin' | 'card-padding' | 'card-border' | 'card-border-radius' | 'menu-item-padding' | 'menu-item-height' | 'menu-item-max-height' | 'menu-item-hover-bg' | 'menu-item-border-radius' | 'menu-item-height-sm' | 'menu-item-height-md' | 'menu-item-height-lg' | 'menu-item-active-color' | 'menu-item-active-bg' | 'file-item-active-bg' | 'file-item-active-color' | 'icon-rounded-border-radius' | 'icon-border' | 'icon-border-padding' | 'icon-border-radius' | 'tablet' | 'desktop' | 'toggle-button-scale' | 'completion-width' | 'completion-max-width' | 'completion-max-height' | 'completion-padding' | 'completion-footer-height' | 'completion-item-hover-bg' | 'completion-item-border-radius' | 'completion-item-padding' | 'placeholder-color' | 'page-padding' | 'page-max-width' | 'splitter-size' | 'splitter-background' | 'tab-padding' | 'tab-height' | 'tab-background' | 'tab-border' | 'tab-border-radius' | 'tab-color' | 'tab-width' | 'tab-active-border' | 'tab-active-hover-background' | 'tab-active-color' | 'tab-active-background' | 'tab-preview-active-border' | 'tab-preview-border' | 'tab-preview-overlay-padding' | 'tab-preview-header-height' | 'tab-overview-container-padding' | 'tab-overview-grid-gap' | 'tab-overview-grid-columns' | 'context-menu-item-padding' | 'context-menu-item-hover-bg' | 'drop-zone-border' | 'drop-zone-background' | 'drop-zone-opacity' | 'spoiler-max-height' | 'layout-gap' | 'modal-mini-padding-bottom';