@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.
- package/dist/lib/browser/index.mjs +412 -56
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/meta.json +1 -1
- package/dist/types/src/automerge/automerge-plugin/PatchSemaphore.d.ts +2 -2
- package/dist/types/src/automerge/automerge-plugin/PatchSemaphore.d.ts.map +1 -1
- package/dist/types/src/automerge/automerge-plugin/codeMirrorToAm.d.ts +2 -2
- package/dist/types/src/automerge/automerge-plugin/codeMirrorToAm.d.ts.map +1 -1
- package/dist/types/src/automerge/automerge-plugin/handle.d.ts +9 -0
- package/dist/types/src/automerge/automerge-plugin/handle.d.ts.map +1 -0
- package/dist/types/src/automerge/automerge-plugin/index.d.ts +2 -2
- package/dist/types/src/automerge/automerge-plugin/index.d.ts.map +1 -1
- package/dist/types/src/automerge/automerge-plugin/plugin.d.ts +6 -5
- package/dist/types/src/automerge/automerge-plugin/plugin.d.ts.map +1 -1
- package/dist/types/src/automerge/automerge.stories.d.ts +1 -0
- package/dist/types/src/automerge/automerge.stories.d.ts.map +1 -1
- package/dist/types/src/components/Editor/Editor.d.ts +0 -1
- package/dist/types/src/components/Editor/Editor.d.ts.map +1 -1
- package/dist/types/src/components/Editor/Editor.stories.d.ts +3 -8
- package/dist/types/src/components/Editor/Editor.stories.d.ts.map +1 -1
- package/dist/types/src/components/Markdown/Markdown.d.ts +4 -2
- package/dist/types/src/components/Markdown/Markdown.d.ts.map +1 -1
- package/dist/types/src/components/Markdown/Markdown.stories.d.ts +1 -1
- package/dist/types/src/components/Markdown/Markdown.stories.d.ts.map +1 -1
- package/dist/types/src/components/Markdown/markdownTheme.d.ts +10 -17
- package/dist/types/src/components/Markdown/markdownTheme.d.ts.map +1 -1
- package/dist/types/src/components/RichText/RichText.stories.d.ts +2 -3
- package/dist/types/src/components/RichText/RichText.stories.d.ts.map +1 -1
- package/dist/types/src/components/TextEditor/TextEditor.d.ts +39 -0
- package/dist/types/src/components/TextEditor/TextEditor.d.ts.map +1 -0
- package/dist/types/src/components/TextEditor/TextEditor.stories.d.ts +18 -0
- package/dist/types/src/components/TextEditor/TextEditor.stories.d.ts.map +1 -0
- package/dist/types/src/components/TextEditor/extensions/hyperlinkDecoration.d.ts +11 -0
- package/dist/types/src/components/TextEditor/extensions/hyperlinkDecoration.d.ts.map +1 -0
- package/dist/types/src/components/TextEditor/extensions/hyperlinkTooltip.d.ts +8 -0
- package/dist/types/src/components/TextEditor/extensions/hyperlinkTooltip.d.ts.map +1 -0
- package/dist/types/src/components/TextEditor/extensions/hyperlinkWidget.d.ts +10 -0
- package/dist/types/src/components/TextEditor/extensions/hyperlinkWidget.d.ts.map +1 -0
- package/dist/types/src/components/TextEditor/extensions/index.d.ts +4 -0
- package/dist/types/src/components/TextEditor/extensions/index.d.ts.map +1 -0
- package/dist/types/src/components/TextEditor/index.d.ts +6 -0
- package/dist/types/src/components/TextEditor/index.d.ts.map +1 -0
- package/dist/types/src/components/TextEditor/theme.d.ts +9 -0
- package/dist/types/src/components/TextEditor/theme.d.ts.map +1 -0
- package/dist/types/src/components/index.d.ts +1 -0
- package/dist/types/src/components/index.d.ts.map +1 -1
- package/dist/types/src/testing/replicator.d.ts.map +1 -1
- package/dist/types/stories/html/code-mirror.stories.d.ts.map +1 -1
- package/package.json +30 -27
- package/src/automerge/automerge-plugin/PatchSemaphore.ts +5 -5
- package/src/automerge/automerge-plugin/codeMirrorToAm.ts +10 -7
- package/src/automerge/automerge-plugin/handle.ts +14 -0
- package/src/automerge/automerge-plugin/index.ts +2 -2
- package/src/automerge/automerge-plugin/plugin.ts +39 -10
- package/src/automerge/automerge.stories.tsx +31 -47
- package/src/components/Editor/Editor.stories.tsx +7 -7
- package/src/components/Editor/Editor.tsx +6 -3
- package/src/components/Markdown/Markdown.stories.tsx +39 -25
- package/src/components/Markdown/Markdown.tsx +63 -30
- package/src/components/Markdown/markdownTheme.ts +32 -17
- package/src/components/RichText/RichText.stories.tsx +37 -33
- package/src/components/TextEditor/TextEditor.stories.tsx +72 -0
- package/src/components/TextEditor/TextEditor.tsx +131 -0
- package/src/components/TextEditor/extensions/hyperlinkDecoration.ts +99 -0
- package/src/components/TextEditor/extensions/hyperlinkTooltip.tsx +61 -0
- package/src/components/TextEditor/extensions/hyperlinkWidget.tsx +119 -0
- package/src/components/TextEditor/extensions/index.ts +7 -0
- package/src/components/TextEditor/index.ts +11 -0
- package/src/components/TextEditor/theme.ts +35 -0
- package/src/components/index.ts +1 -0
- package/src/testing/replicator.ts +0 -1
- package/dist/types/src/automerge/demo.d.ts +0 -25
- package/dist/types/src/automerge/demo.d.ts.map +0 -1
- package/src/automerge/demo.ts +0 -106
package/src/automerge/demo.ts
DELETED
|
@@ -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
|
-
}
|