@dxos/react-ui-editor 0.3.9-main.4e30508 → 0.3.9-main.501fe30

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 (73) hide show
  1. package/dist/lib/browser/index.mjs +412 -56
  2. package/dist/lib/browser/index.mjs.map +4 -4
  3. package/dist/lib/browser/meta.json +1 -1
  4. package/dist/types/src/automerge/automerge-plugin/PatchSemaphore.d.ts +2 -2
  5. package/dist/types/src/automerge/automerge-plugin/PatchSemaphore.d.ts.map +1 -1
  6. package/dist/types/src/automerge/automerge-plugin/codeMirrorToAm.d.ts +2 -2
  7. package/dist/types/src/automerge/automerge-plugin/codeMirrorToAm.d.ts.map +1 -1
  8. package/dist/types/src/automerge/automerge-plugin/handle.d.ts +9 -0
  9. package/dist/types/src/automerge/automerge-plugin/handle.d.ts.map +1 -0
  10. package/dist/types/src/automerge/automerge-plugin/index.d.ts +2 -2
  11. package/dist/types/src/automerge/automerge-plugin/index.d.ts.map +1 -1
  12. package/dist/types/src/automerge/automerge-plugin/plugin.d.ts +6 -5
  13. package/dist/types/src/automerge/automerge-plugin/plugin.d.ts.map +1 -1
  14. package/dist/types/src/automerge/automerge.stories.d.ts +1 -0
  15. package/dist/types/src/automerge/automerge.stories.d.ts.map +1 -1
  16. package/dist/types/src/components/Editor/Editor.d.ts +0 -1
  17. package/dist/types/src/components/Editor/Editor.d.ts.map +1 -1
  18. package/dist/types/src/components/Editor/Editor.stories.d.ts +3 -8
  19. package/dist/types/src/components/Editor/Editor.stories.d.ts.map +1 -1
  20. package/dist/types/src/components/Markdown/Markdown.d.ts +4 -2
  21. package/dist/types/src/components/Markdown/Markdown.d.ts.map +1 -1
  22. package/dist/types/src/components/Markdown/Markdown.stories.d.ts +1 -1
  23. package/dist/types/src/components/Markdown/Markdown.stories.d.ts.map +1 -1
  24. package/dist/types/src/components/Markdown/markdownTheme.d.ts +10 -17
  25. package/dist/types/src/components/Markdown/markdownTheme.d.ts.map +1 -1
  26. package/dist/types/src/components/RichText/RichText.stories.d.ts +2 -3
  27. package/dist/types/src/components/RichText/RichText.stories.d.ts.map +1 -1
  28. package/dist/types/src/components/TextEditor/TextEditor.d.ts +39 -0
  29. package/dist/types/src/components/TextEditor/TextEditor.d.ts.map +1 -0
  30. package/dist/types/src/components/TextEditor/TextEditor.stories.d.ts +18 -0
  31. package/dist/types/src/components/TextEditor/TextEditor.stories.d.ts.map +1 -0
  32. package/dist/types/src/components/TextEditor/extensions/hyperlinkDecoration.d.ts +11 -0
  33. package/dist/types/src/components/TextEditor/extensions/hyperlinkDecoration.d.ts.map +1 -0
  34. package/dist/types/src/components/TextEditor/extensions/hyperlinkTooltip.d.ts +8 -0
  35. package/dist/types/src/components/TextEditor/extensions/hyperlinkTooltip.d.ts.map +1 -0
  36. package/dist/types/src/components/TextEditor/extensions/hyperlinkWidget.d.ts +10 -0
  37. package/dist/types/src/components/TextEditor/extensions/hyperlinkWidget.d.ts.map +1 -0
  38. package/dist/types/src/components/TextEditor/extensions/index.d.ts +4 -0
  39. package/dist/types/src/components/TextEditor/extensions/index.d.ts.map +1 -0
  40. package/dist/types/src/components/TextEditor/index.d.ts +6 -0
  41. package/dist/types/src/components/TextEditor/index.d.ts.map +1 -0
  42. package/dist/types/src/components/TextEditor/theme.d.ts +9 -0
  43. package/dist/types/src/components/TextEditor/theme.d.ts.map +1 -0
  44. package/dist/types/src/components/index.d.ts +1 -0
  45. package/dist/types/src/components/index.d.ts.map +1 -1
  46. package/dist/types/src/testing/replicator.d.ts.map +1 -1
  47. package/dist/types/stories/html/code-mirror.stories.d.ts.map +1 -1
  48. package/package.json +30 -27
  49. package/src/automerge/automerge-plugin/PatchSemaphore.ts +5 -5
  50. package/src/automerge/automerge-plugin/codeMirrorToAm.ts +10 -7
  51. package/src/automerge/automerge-plugin/handle.ts +14 -0
  52. package/src/automerge/automerge-plugin/index.ts +2 -2
  53. package/src/automerge/automerge-plugin/plugin.ts +39 -10
  54. package/src/automerge/automerge.stories.tsx +31 -47
  55. package/src/components/Editor/Editor.stories.tsx +7 -7
  56. package/src/components/Editor/Editor.tsx +6 -3
  57. package/src/components/Markdown/Markdown.stories.tsx +39 -25
  58. package/src/components/Markdown/Markdown.tsx +63 -30
  59. package/src/components/Markdown/markdownTheme.ts +32 -17
  60. package/src/components/RichText/RichText.stories.tsx +37 -33
  61. package/src/components/TextEditor/TextEditor.stories.tsx +72 -0
  62. package/src/components/TextEditor/TextEditor.tsx +131 -0
  63. package/src/components/TextEditor/extensions/hyperlinkDecoration.ts +99 -0
  64. package/src/components/TextEditor/extensions/hyperlinkTooltip.tsx +61 -0
  65. package/src/components/TextEditor/extensions/hyperlinkWidget.tsx +119 -0
  66. package/src/components/TextEditor/extensions/index.ts +7 -0
  67. package/src/components/TextEditor/index.ts +11 -0
  68. package/src/components/TextEditor/theme.ts +35 -0
  69. package/src/components/index.ts +1 -0
  70. package/src/testing/replicator.ts +0 -1
  71. package/dist/types/src/automerge/demo.d.ts +0 -25
  72. package/dist/types/src/automerge/demo.d.ts.map +0 -1
  73. package/src/automerge/demo.ts +0 -106
@@ -1,106 +0,0 @@
1
- //
2
- // Copyright 2023 DXOS.org
3
- //
4
-
5
- import { Event } from '@dxos/async';
6
- import {
7
- type Doc,
8
- next as automerge,
9
- type ChangeOptions,
10
- type ChangeFn,
11
- type Heads,
12
- type SyncState,
13
- } from '@dxos/automerge/automerge';
14
-
15
- export class Peer {
16
- changeEvent = new Event();
17
-
18
- storage = new Map<string, Uint8Array>();
19
- stats = {
20
- messagesSent: 0,
21
- messagesReceived: 0,
22
- bytesSent: 0,
23
- bytesReceived: 0,
24
- snapshotBytes: 0,
25
- incrementalBytes: 0,
26
- };
27
-
28
- doc!: Doc<{ text: string }>;
29
-
30
- change(options: string | ChangeOptions<any> | ChangeFn<any>, callback?: ChangeFn<any>) {
31
- this.doc = automerge.change(this.doc, options, callback);
32
- this._handleChange();
33
- }
34
-
35
- changeAt(scope: Heads, options: string | ChangeOptions<any> | ChangeFn<any>, callback?: ChangeFn<any>) {
36
- const { newDoc, newHeads } = automerge.changeAt(this.doc, scope, options, callback);
37
- this.doc = newDoc;
38
- this._handleChange();
39
- return newHeads;
40
- }
41
-
42
- replicate(): { readable: ReadableStream<Uint8Array>; writable: WritableStream<Uint8Array> } {
43
- let syncState: SyncState = automerge.initSyncState();
44
-
45
- let unsub: (() => void) | undefined;
46
- const readable = new ReadableStream({
47
- start: (controller) => {
48
- unsub = this.changeEvent.on(() => {
49
- const [newState, msg] = automerge.generateSyncMessage(this.doc, syncState);
50
- syncState = newState;
51
-
52
- if (msg) {
53
- this.stats.messagesSent++;
54
- this.stats.bytesSent += msg.byteLength;
55
- controller.enqueue(msg);
56
- }
57
- });
58
- },
59
- pull: (controller) => {
60
- const [newState, msg] = automerge.generateSyncMessage(this.doc, syncState);
61
- syncState = newState;
62
-
63
- if (msg) {
64
- this.stats.messagesSent++;
65
- this.stats.bytesSent += msg.byteLength;
66
- controller.enqueue(msg);
67
- }
68
- },
69
- cancel: () => {
70
- unsub?.();
71
- },
72
- });
73
-
74
- const writable = new WritableStream({
75
- write: (chunk) => {
76
- this.stats.messagesReceived++;
77
- this.stats.bytesReceived += chunk.byteLength;
78
-
79
- const [newDoc, newState] = automerge.receiveSyncMessage(this.doc, syncState, chunk);
80
- this.doc = newDoc;
81
- syncState = newState;
82
-
83
- this._handleChange();
84
- },
85
- });
86
-
87
- return { readable, writable };
88
- }
89
-
90
- private _handleChange() {
91
- // TODO(dmaretskyi): Save since + debounce.
92
-
93
- if (this.stats.incrementalBytes > 1024 && this.stats.incrementalBytes > this.stats.snapshotBytes) {
94
- const snapshot = automerge.save(this.doc);
95
- this.stats.snapshotBytes = snapshot.byteLength;
96
- this.stats.incrementalBytes = 0;
97
- console.log('snapshot save', snapshot.byteLength);
98
- } else {
99
- const chunk = automerge.saveIncremental(this.doc);
100
- this.stats.incrementalBytes += chunk.length;
101
- console.log('incremental save', chunk.length);
102
- }
103
-
104
- this.changeEvent.emit();
105
- }
106
- }