@dxos/react-ui-editor 0.3.11-main.bd26370 → 0.3.11-main.c244d7e

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 (222) hide show
  1. package/dist/lib/browser/index.mjs +2065 -1565
  2. package/dist/lib/browser/index.mjs.map +4 -4
  3. package/dist/lib/browser/meta.json +1 -1
  4. package/dist/types/src/components/TextEditor/MarkdownEditor.stories.d.ts +17 -14
  5. package/dist/types/src/components/TextEditor/MarkdownEditor.stories.d.ts.map +1 -1
  6. package/dist/types/src/components/TextEditor/TextEditor.d.ts +19 -17
  7. package/dist/types/src/components/TextEditor/TextEditor.d.ts.map +1 -1
  8. package/dist/types/src/components/TextEditor/TextEditor.stories.d.ts +6 -3
  9. package/dist/types/src/components/TextEditor/TextEditor.stories.d.ts.map +1 -1
  10. package/dist/types/src/{hooks/automerge → components/TextEditor}/automerge.stories.d.ts +6 -1
  11. package/dist/types/src/components/TextEditor/automerge.stories.d.ts.map +1 -0
  12. package/dist/types/src/components/TextEditor/codemirror.stories.d.ts.map +1 -1
  13. package/dist/types/src/components/TextEditor/comments.stories.d.ts +26 -0
  14. package/dist/types/src/components/TextEditor/comments.stories.d.ts.map +1 -0
  15. package/dist/types/src/components/TextEditor/index.d.ts +0 -2
  16. package/dist/types/src/components/TextEditor/index.d.ts.map +1 -1
  17. package/dist/types/src/{hooks/yjs → components/TextEditor}/yjs.stories.d.ts +1 -1
  18. package/dist/types/src/components/TextEditor/yjs.stories.d.ts.map +1 -0
  19. package/dist/types/src/extensions/autocomplete.d.ts.map +1 -0
  20. package/dist/types/src/extensions/automerge/automerge.d.ts +9 -0
  21. package/dist/types/src/extensions/automerge/automerge.d.ts.map +1 -0
  22. package/dist/types/src/extensions/automerge/cursor.d.ts +5 -0
  23. package/dist/types/src/extensions/automerge/cursor.d.ts.map +1 -0
  24. package/dist/types/src/extensions/automerge/defs.d.ts +24 -0
  25. package/dist/types/src/extensions/automerge/defs.d.ts.map +1 -0
  26. package/dist/types/src/extensions/automerge/index.d.ts +3 -0
  27. package/dist/types/src/extensions/automerge/index.d.ts.map +1 -0
  28. package/dist/types/src/extensions/automerge/semaphore.d.ts +14 -0
  29. package/dist/types/src/extensions/automerge/semaphore.d.ts.map +1 -0
  30. package/dist/types/src/extensions/automerge/update-automerge.d.ts +5 -0
  31. package/dist/types/src/extensions/automerge/update-automerge.d.ts.map +1 -0
  32. package/dist/types/src/extensions/automerge/update-codemirror.d.ts.map +1 -0
  33. package/dist/types/src/extensions/awareness.d.ts +48 -0
  34. package/dist/types/src/extensions/awareness.d.ts.map +1 -0
  35. package/dist/types/src/extensions/basic.d.ts +8 -0
  36. package/dist/types/src/extensions/basic.d.ts.map +1 -0
  37. package/dist/types/src/extensions/blast.d.ts.map +1 -0
  38. package/dist/types/src/extensions/code.d.ts.map +1 -0
  39. package/dist/types/src/{components/TextEditor/extensions → extensions}/comments.d.ts +32 -17
  40. package/dist/types/src/extensions/comments.d.ts.map +1 -0
  41. package/dist/types/src/extensions/cursor.d.ts +25 -0
  42. package/dist/types/src/extensions/cursor.d.ts.map +1 -0
  43. package/dist/types/src/extensions/hr.d.ts.map +1 -0
  44. package/dist/types/src/extensions/image.d.ts.map +1 -0
  45. package/dist/types/src/{components/TextEditor/extensions → extensions}/index.d.ts +5 -2
  46. package/dist/types/src/extensions/index.d.ts.map +1 -0
  47. package/dist/types/src/{components/TextEditor/extensions → extensions}/link.d.ts +1 -0
  48. package/dist/types/src/extensions/link.d.ts.map +1 -0
  49. package/dist/types/src/extensions/listener.d.ts +10 -0
  50. package/dist/types/src/extensions/listener.d.ts.map +1 -0
  51. package/dist/types/src/{components/TextEditor/extensions → extensions}/markdown/bundle.d.ts +2 -5
  52. package/dist/types/src/extensions/markdown/bundle.d.ts.map +1 -0
  53. package/dist/types/src/extensions/markdown/highlight.d.ts.map +1 -0
  54. package/dist/types/src/extensions/markdown/index.d.ts.map +1 -0
  55. package/dist/types/src/extensions/mention.d.ts.map +1 -0
  56. package/dist/types/src/extensions/outliner.d.ts +4 -0
  57. package/dist/types/src/extensions/outliner.d.ts.map +1 -0
  58. package/dist/types/src/extensions/table.d.ts.map +1 -0
  59. package/dist/types/src/extensions/tasklist.d.ts.map +1 -0
  60. package/dist/types/src/extensions/typewriter.d.ts.map +1 -0
  61. package/dist/types/src/extensions/yjs/cursor.d.ts +4 -0
  62. package/dist/types/src/extensions/yjs/cursor.d.ts.map +1 -0
  63. package/dist/types/src/extensions/yjs/index.d.ts +2 -0
  64. package/dist/types/src/extensions/yjs/index.d.ts.map +1 -0
  65. package/dist/types/src/extensions/yjs/yjs.d.ts +4 -0
  66. package/dist/types/src/extensions/yjs/yjs.d.ts.map +1 -0
  67. package/dist/types/src/extensions/yjs/yjs.test.d.ts.map +1 -0
  68. package/dist/types/src/hooks/automerge.d.ts +4 -0
  69. package/dist/types/src/hooks/automerge.d.ts.map +1 -0
  70. package/dist/types/src/hooks/awareness-provider.d.ts +28 -0
  71. package/dist/types/src/hooks/awareness-provider.d.ts.map +1 -0
  72. package/dist/types/src/hooks/defs.d.ts +28 -0
  73. package/dist/types/src/hooks/defs.d.ts.map +1 -0
  74. package/dist/types/src/hooks/index.d.ts +4 -1
  75. package/dist/types/src/hooks/index.d.ts.map +1 -1
  76. package/dist/types/src/hooks/useTextModel.d.ts +2 -31
  77. package/dist/types/src/hooks/useTextModel.d.ts.map +1 -1
  78. package/dist/types/src/hooks/{yjs/space-provider.d.ts → yjs.d.ts} +9 -8
  79. package/dist/types/src/hooks/yjs.d.ts.map +1 -0
  80. package/dist/types/src/index.d.ts +5 -0
  81. package/dist/types/src/index.d.ts.map +1 -1
  82. package/dist/types/src/styles/cursors.d.ts.map +1 -0
  83. package/dist/types/src/styles/index.d.ts +1 -0
  84. package/dist/types/src/styles/index.d.ts.map +1 -1
  85. package/dist/types/src/styles/markdown.d.ts.map +1 -1
  86. package/dist/types/src/styles/tokens.d.ts +1 -0
  87. package/dist/types/src/styles/tokens.d.ts.map +1 -1
  88. package/dist/types/src/testing/replicator.d.ts +2 -2
  89. package/dist/types/src/testing/replicator.d.ts.map +1 -1
  90. package/dist/types/src/{components/TextEditor/themes → themes}/default.d.ts +1 -1
  91. package/dist/types/src/themes/default.d.ts.map +1 -0
  92. package/dist/types/src/themes/index.d.ts.map +1 -0
  93. package/dist/types/src/util.d.ts +7 -0
  94. package/dist/types/src/util.d.ts.map +1 -0
  95. package/package.json +25 -23
  96. package/src/components/TextEditor/MarkdownEditor.stories.tsx +77 -81
  97. package/src/components/TextEditor/TextEditor.stories.tsx +13 -34
  98. package/src/components/TextEditor/TextEditor.tsx +115 -94
  99. package/src/{hooks/automerge → components/TextEditor}/automerge.stories.tsx +66 -6
  100. package/src/components/TextEditor/codemirror.stories.ts +3 -2
  101. package/src/components/TextEditor/comments.stories.tsx +357 -0
  102. package/src/components/TextEditor/index.ts +0 -3
  103. package/src/{hooks/yjs → components/TextEditor}/yjs.stories.tsx +1 -1
  104. package/src/{components/TextEditor/extensions → extensions}/autocomplete.ts +23 -19
  105. package/src/extensions/automerge/automerge.ts +70 -0
  106. package/src/extensions/automerge/cursor.ts +52 -0
  107. package/src/extensions/automerge/defs.ts +41 -0
  108. package/src/extensions/automerge/index.ts +6 -0
  109. package/src/{hooks → extensions}/automerge/semaphore.ts +37 -28
  110. package/src/{hooks → extensions}/automerge/update-automerge.ts +5 -6
  111. package/src/{hooks → extensions}/automerge/update-codemirror.ts +13 -5
  112. package/src/extensions/awareness.ts +327 -0
  113. package/src/extensions/basic.ts +37 -0
  114. package/src/{components/TextEditor/extensions → extensions}/code.ts +28 -23
  115. package/src/extensions/comments.ts +428 -0
  116. package/src/extensions/cursor.ts +50 -0
  117. package/src/extensions/hr.ts +72 -0
  118. package/src/extensions/image.ts +87 -0
  119. package/src/{components/TextEditor/extensions → extensions}/index.ts +5 -2
  120. package/src/{components/TextEditor/extensions → extensions}/link.ts +116 -62
  121. package/src/extensions/listener.ts +35 -0
  122. package/src/{components/TextEditor/extensions → extensions}/markdown/bundle.ts +18 -24
  123. package/src/{components/TextEditor/extensions → extensions}/markdown/highlight.ts +4 -13
  124. package/src/{components/TextEditor/extensions → extensions}/mention.ts +6 -1
  125. package/src/extensions/outliner.ts +12 -0
  126. package/src/{components/TextEditor/extensions → extensions}/table.ts +10 -4
  127. package/src/extensions/tasklist.ts +111 -0
  128. package/src/{components/TextEditor/extensions → extensions}/typewriter.ts +1 -1
  129. package/src/extensions/yjs/cursor.ts +22 -0
  130. package/src/extensions/yjs/index.ts +5 -0
  131. package/src/{hooks → extensions}/yjs/yjs.test.ts +2 -26
  132. package/src/extensions/yjs/yjs.ts +16 -0
  133. package/src/hooks/automerge.ts +53 -0
  134. package/src/hooks/awareness-provider.ts +120 -0
  135. package/src/hooks/defs.ts +47 -0
  136. package/src/hooks/index.ts +5 -1
  137. package/src/hooks/useTextModel.ts +9 -128
  138. package/src/hooks/{yjs/space-provider.ts → yjs.ts} +50 -19
  139. package/src/index.ts +5 -0
  140. package/src/styles/index.ts +1 -0
  141. package/src/styles/markdown.ts +0 -2
  142. package/src/styles/tokens.ts +3 -0
  143. package/src/testing/replicator.ts +10 -15
  144. package/src/{components/TextEditor/themes → themes}/default.ts +52 -79
  145. package/src/util.ts +41 -0
  146. package/dist/types/src/components/TextEditor/extensions/autocomplete.d.ts.map +0 -1
  147. package/dist/types/src/components/TextEditor/extensions/basic.d.ts +0 -9
  148. package/dist/types/src/components/TextEditor/extensions/basic.d.ts.map +0 -1
  149. package/dist/types/src/components/TextEditor/extensions/blast.d.ts.map +0 -1
  150. package/dist/types/src/components/TextEditor/extensions/code.d.ts.map +0 -1
  151. package/dist/types/src/components/TextEditor/extensions/comments.d.ts.map +0 -1
  152. package/dist/types/src/components/TextEditor/extensions/hr.d.ts.map +0 -1
  153. package/dist/types/src/components/TextEditor/extensions/image.d.ts.map +0 -1
  154. package/dist/types/src/components/TextEditor/extensions/index.d.ts.map +0 -1
  155. package/dist/types/src/components/TextEditor/extensions/link.d.ts.map +0 -1
  156. package/dist/types/src/components/TextEditor/extensions/listener.d.ts +0 -9
  157. package/dist/types/src/components/TextEditor/extensions/listener.d.ts.map +0 -1
  158. package/dist/types/src/components/TextEditor/extensions/markdown/bundle.d.ts.map +0 -1
  159. package/dist/types/src/components/TextEditor/extensions/markdown/highlight.d.ts.map +0 -1
  160. package/dist/types/src/components/TextEditor/extensions/markdown/index.d.ts.map +0 -1
  161. package/dist/types/src/components/TextEditor/extensions/mention.d.ts.map +0 -1
  162. package/dist/types/src/components/TextEditor/extensions/mermaid.d.ts +0 -3
  163. package/dist/types/src/components/TextEditor/extensions/mermaid.d.ts.map +0 -1
  164. package/dist/types/src/components/TextEditor/extensions/table.d.ts.map +0 -1
  165. package/dist/types/src/components/TextEditor/extensions/tasklist.d.ts.map +0 -1
  166. package/dist/types/src/components/TextEditor/extensions/tooltip.d.ts +0 -12
  167. package/dist/types/src/components/TextEditor/extensions/tooltip.d.ts.map +0 -1
  168. package/dist/types/src/components/TextEditor/extensions/typewriter.d.ts.map +0 -1
  169. package/dist/types/src/components/TextEditor/extensions/util.d.ts +0 -5
  170. package/dist/types/src/components/TextEditor/extensions/util.d.ts.map +0 -1
  171. package/dist/types/src/components/TextEditor/themes/default.d.ts.map +0 -1
  172. package/dist/types/src/components/TextEditor/themes/index.d.ts.map +0 -1
  173. package/dist/types/src/hooks/automerge/automerge.stories.d.ts.map +0 -1
  174. package/dist/types/src/hooks/automerge/handle.d.ts +0 -9
  175. package/dist/types/src/hooks/automerge/handle.d.ts.map +0 -1
  176. package/dist/types/src/hooks/automerge/index.d.ts +0 -3
  177. package/dist/types/src/hooks/automerge/index.d.ts.map +0 -1
  178. package/dist/types/src/hooks/automerge/plugin.d.ts +0 -26
  179. package/dist/types/src/hooks/automerge/plugin.d.ts.map +0 -1
  180. package/dist/types/src/hooks/automerge/semaphore.d.ts +0 -19
  181. package/dist/types/src/hooks/automerge/semaphore.d.ts.map +0 -1
  182. package/dist/types/src/hooks/automerge/update-automerge.d.ts +0 -6
  183. package/dist/types/src/hooks/automerge/update-automerge.d.ts.map +0 -1
  184. package/dist/types/src/hooks/automerge/update-codemirror.d.ts.map +0 -1
  185. package/dist/types/src/hooks/yjs/cursors.d.ts.map +0 -1
  186. package/dist/types/src/hooks/yjs/index.d.ts +0 -3
  187. package/dist/types/src/hooks/yjs/index.d.ts.map +0 -1
  188. package/dist/types/src/hooks/yjs/space-provider.d.ts.map +0 -1
  189. package/dist/types/src/hooks/yjs/yjs.stories.d.ts.map +0 -1
  190. package/dist/types/src/hooks/yjs/yjs.test.d.ts.map +0 -1
  191. package/src/components/TextEditor/extensions/basic.ts +0 -32
  192. package/src/components/TextEditor/extensions/comments.ts +0 -388
  193. package/src/components/TextEditor/extensions/hr.ts +0 -74
  194. package/src/components/TextEditor/extensions/image.ts +0 -69
  195. package/src/components/TextEditor/extensions/listener.ts +0 -23
  196. package/src/components/TextEditor/extensions/mermaid.ts +0 -11
  197. package/src/components/TextEditor/extensions/tasklist.ts +0 -121
  198. package/src/components/TextEditor/extensions/tooltip.ts +0 -61
  199. package/src/components/TextEditor/extensions/util.ts +0 -18
  200. package/src/hooks/automerge/handle.ts +0 -14
  201. package/src/hooks/automerge/index.ts +0 -6
  202. package/src/hooks/automerge/plugin.ts +0 -134
  203. package/src/hooks/yjs/index.ts +0 -6
  204. /package/dist/types/src/{components/TextEditor/extensions → extensions}/autocomplete.d.ts +0 -0
  205. /package/dist/types/src/{hooks → extensions}/automerge/update-codemirror.d.ts +0 -0
  206. /package/dist/types/src/{components/TextEditor/extensions → extensions}/blast.d.ts +0 -0
  207. /package/dist/types/src/{components/TextEditor/extensions → extensions}/code.d.ts +0 -0
  208. /package/dist/types/src/{components/TextEditor/extensions → extensions}/hr.d.ts +0 -0
  209. /package/dist/types/src/{components/TextEditor/extensions → extensions}/image.d.ts +0 -0
  210. /package/dist/types/src/{components/TextEditor/extensions → extensions}/markdown/highlight.d.ts +0 -0
  211. /package/dist/types/src/{components/TextEditor/extensions → extensions}/markdown/index.d.ts +0 -0
  212. /package/dist/types/src/{components/TextEditor/extensions → extensions}/mention.d.ts +0 -0
  213. /package/dist/types/src/{components/TextEditor/extensions → extensions}/table.d.ts +0 -0
  214. /package/dist/types/src/{components/TextEditor/extensions → extensions}/tasklist.d.ts +0 -0
  215. /package/dist/types/src/{components/TextEditor/extensions → extensions}/typewriter.d.ts +0 -0
  216. /package/dist/types/src/{hooks → extensions}/yjs/yjs.test.d.ts +0 -0
  217. /package/dist/types/src/{hooks/yjs → styles}/cursors.d.ts +0 -0
  218. /package/dist/types/src/{components/TextEditor/themes → themes}/index.d.ts +0 -0
  219. /package/src/{components/TextEditor/extensions → extensions}/blast.ts +0 -0
  220. /package/src/{components/TextEditor/extensions → extensions}/markdown/index.ts +0 -0
  221. /package/src/{hooks/yjs → styles}/cursors.ts +0 -0
  222. /package/src/{components/TextEditor/themes → themes}/index.ts +0 -0
@@ -1,61 +0,0 @@
1
- //
2
- // Copyright 2023 DXOS.org
3
- //
4
-
5
- import { type Extension } from '@codemirror/state';
6
- import { hoverTooltip } from '@codemirror/view';
7
-
8
- import { tooltipContent } from '@dxos/react-ui-theme';
9
-
10
- const markdownLinkRegexp = /\[([^\]]+)]\(([^)]+)\)/;
11
-
12
- export type TooltipOptions = {
13
- onHover: (el: Element, url: string) => void;
14
- regexp?: RegExp;
15
- };
16
-
17
- /**
18
- * https://codemirror.net/examples/tooltip
19
- * https://codemirror.net/docs/ref/#view.hoverTooltip
20
- * https://github.com/codemirror/view/blob/main/src/tooltip.ts
21
- */
22
- export const tooltip = ({ onHover, regexp = markdownLinkRegexp }: TooltipOptions): Extension =>
23
- hoverTooltip((view, pos) => {
24
- const { from, text } = view.state.doc.lineAt(pos);
25
- const p = pos - from;
26
-
27
- let idx = 0;
28
- let match;
29
- do {
30
- match = text.substring(idx).match(regexp);
31
- if (!match) {
32
- match = undefined;
33
- break;
34
- }
35
-
36
- idx = text.indexOf(match[0]);
37
- if (p >= idx && p < idx + match[0].length) {
38
- break;
39
- }
40
-
41
- idx += match[0].length;
42
- } while (true);
43
-
44
- if (!match) {
45
- return null;
46
- }
47
-
48
- const [, , url] = match ?? [];
49
-
50
- return {
51
- pos: idx + from,
52
- end: idx + from + match[0].length,
53
- above: true,
54
- create: () => {
55
- const el = document.createElement('div');
56
- el.className = tooltipContent({}, 'pli-2 plb-1');
57
- onHover(el, url);
58
- return { dom: el, offset: { x: 0, y: 4 } };
59
- },
60
- };
61
- });
@@ -1,18 +0,0 @@
1
- //
2
- // Copyright 2024 DXOS.org
3
- //
4
-
5
- import { log } from '@dxos/log';
6
-
7
- /**
8
- * CodeMirror callbacks swallow errors so wrap handlers.
9
- */
10
- // TODO(burdon): Figure out how to systematize this.
11
- export const callbackWrapper = <T extends Function>(fn: T): T =>
12
- ((...args: any[]) => {
13
- try {
14
- return fn(...args);
15
- } catch (error) {
16
- log.catch(error);
17
- }
18
- }) as unknown as T;
@@ -1,14 +0,0 @@
1
- //
2
- // Copyright 2023 DXOS.org
3
- //
4
-
5
- import type * as A from '@dxos/automerge/automerge';
6
-
7
- export type IDocHandle<T = any> = {
8
- docSync(): A.Doc<T> | undefined;
9
- change(callback: A.ChangeFn<T>, options?: A.ChangeOptions<T>): void;
10
- changeAt(heads: A.Heads, callback: A.ChangeFn<T>, options?: A.ChangeOptions<T>): string[] | undefined;
11
-
12
- addListener(event: 'change', listener: () => void): void;
13
- removeListener(event: 'change', listener: () => void): void;
14
- };
@@ -1,6 +0,0 @@
1
- //
2
- // Copyright 2023 DXOS.org
3
- //
4
-
5
- export { type IDocHandle } from './handle';
6
- export { automergePlugin, type AutomergePlugin } from './plugin';
@@ -1,134 +0,0 @@
1
- //
2
- // Copyright 2023 DXOS.org
3
- //
4
-
5
- import {
6
- Annotation,
7
- type EditorState,
8
- type Extension,
9
- Facet,
10
- StateEffect,
11
- StateField,
12
- type Transaction,
13
- type TransactionSpec,
14
- } from '@codemirror/state';
15
- import { ViewPlugin, type EditorView, type PluginValue, type ViewUpdate } from '@codemirror/view';
16
-
17
- import * as automerge from '@dxos/automerge/automerge';
18
- import { type Heads, type Prop } from '@dxos/automerge/automerge';
19
-
20
- import { type IDocHandle } from './handle';
21
- import { PatchSemaphore } from './semaphore';
22
-
23
- export type Value = {
24
- lastHeads: Heads;
25
- path: Prop[];
26
- unreconciledTransactions: Transaction[];
27
- };
28
-
29
- type UpdateHeads = {
30
- newHeads: Heads;
31
- };
32
-
33
- export const effectType = StateEffect.define<UpdateHeads>({});
34
-
35
- export const updateHeads = (newHeads: Heads): StateEffect<UpdateHeads> => effectType.of({ newHeads });
36
-
37
- export const getLastHeads = (state: EditorState, field: Field): Heads => state.field(field).lastHeads;
38
-
39
- export const getPath = (state: EditorState, field: Field): Prop[] => state.field(field).path;
40
-
41
- export type Field = StateField<Value>;
42
-
43
- const semaphoreFacet = Facet.define<PatchSemaphore, PatchSemaphore>({
44
- combine: (values) => values.at(-1)!, // Take last.
45
- });
46
-
47
- export type AutomergePlugin = {
48
- extension: Extension;
49
- };
50
-
51
- export const automergePlugin = (handle: IDocHandle, path: Prop[]): AutomergePlugin => {
52
- const stateField: StateField<Value> = StateField.define({
53
- create: () => ({
54
- lastHeads: automerge.getHeads(handle.docSync()!),
55
- unreconciledTransactions: [],
56
- path: path.slice(),
57
- }),
58
- update: (value: Value, tr: Transaction) => {
59
- const result: Value = {
60
- lastHeads: value.lastHeads,
61
- unreconciledTransactions: value.unreconciledTransactions.slice(),
62
- path: path.slice(),
63
- };
64
- let clearUnreconciled = false;
65
- for (const effect of tr.effects) {
66
- if (effect.is(effectType)) {
67
- result.lastHeads = effect.value.newHeads;
68
- clearUnreconciled = true;
69
- }
70
- }
71
- if (clearUnreconciled) {
72
- result.unreconciledTransactions = [];
73
- } else {
74
- if (!isReconcileTx(tr)) {
75
- result.unreconciledTransactions.push(tr);
76
- }
77
- }
78
- return result;
79
- },
80
- });
81
-
82
- const semaphore = new PatchSemaphore(stateField);
83
-
84
- const viewPlugin = ViewPlugin.fromClass(
85
- class AutomergeCodemirrorViewPlugin implements PluginValue {
86
- private _view: EditorView;
87
-
88
- constructor(view: EditorView) {
89
- this._view = view;
90
- handle.addListener('change', this._handleChange);
91
- }
92
-
93
- update(update: ViewUpdate) {
94
- if (update.transactions.length > 0 && update.transactions.some((t) => !isReconcileTx(t))) {
95
- queueMicrotask(() => {
96
- this._view.state.facet(semaphoreFacet).reconcile(handle, this._view);
97
- });
98
- }
99
- }
100
-
101
- destroy() {
102
- handle.addListener('change', this._handleChange);
103
- }
104
-
105
- private _handleChange = () => {
106
- this._view.state.facet(semaphoreFacet).reconcile(handle, this._view);
107
- };
108
- },
109
- );
110
-
111
- return {
112
- extension: [stateField, semaphoreFacet.of(semaphore), viewPlugin],
113
- };
114
- };
115
-
116
- export const reconcileAnnotationType = Annotation.define<unknown>();
117
-
118
- export const isReconcileTx = (tr: Transaction): boolean => !!tr.annotation(reconcileAnnotationType);
119
-
120
- export const makeReconcile = (tr: TransactionSpec) => {
121
- if (tr.annotations != null) {
122
- if (tr.annotations instanceof Array) {
123
- tr.annotations = [...tr.annotations, reconcileAnnotationType.of({})];
124
- } else {
125
- tr.annotations = [tr.annotations, reconcileAnnotationType.of({})];
126
- }
127
- } else {
128
- tr.annotations = [reconcileAnnotationType.of({})];
129
- }
130
- // return {
131
- // ...tr,
132
- // annotations: reconcileAnnotationType.of({})
133
- // }
134
- };
@@ -1,6 +0,0 @@
1
- //
2
- // Copyright 2023 DXOS.org
3
- //
4
-
5
- export * from './cursors';
6
- export * from './space-provider';
File without changes