@eightyfourthousand/lib-editing 2026.6.0 → 2026.6.2
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/lib/components/editor/EditorProvider.js +1 -1
- package/lib/components/editor/EditorProvider.js.map +1 -1
- package/lib/components/editor/TranslationEditor.js +2 -1
- package/lib/components/editor/TranslationEditor.js.map +1 -1
- package/lib/components/editor/extensions/EndNoteLink/EndNoteLinkMark.js +2 -1
- package/lib/components/editor/extensions/EndNoteLink/EndNoteLinkMark.js.map +1 -1
- package/lib/components/editor/extensions/GlossaryInstance/GlossaryInstanceNode.js +4 -1
- package/lib/components/editor/extensions/GlossaryInstance/GlossaryInstanceNode.js.map +1 -1
- package/lib/components/editor/extensions/GlossaryInstance/GlossaryInstanceNode.ssr.js +3 -1
- package/lib/components/editor/extensions/GlossaryInstance/GlossaryInstanceNode.ssr.js.map +1 -1
- package/lib/components/editor/extensions/InternalLink/InternalLink.js +4 -1
- package/lib/components/editor/extensions/InternalLink/InternalLink.js.map +1 -1
- package/lib/components/editor/extensions/InternalLink/InternalLink.ssr.js +3 -1
- package/lib/components/editor/extensions/InternalLink/InternalLink.ssr.js.map +1 -1
- package/lib/components/editor/extensions/Mention/Mention.d.ts +0 -10
- package/lib/components/editor/extensions/Mention/Mention.js +3 -0
- package/lib/components/editor/extensions/Mention/Mention.js.map +1 -1
- package/lib/components/editor/extensions/Mention/Mention.ssr.d.ts +11 -0
- package/lib/components/editor/extensions/Mention/Mention.ssr.js +18 -4
- package/lib/components/editor/extensions/Mention/Mention.ssr.js.map +1 -1
- package/lib/components/editor/extensions/Passage/EditLabel.d.ts +5 -2
- package/lib/components/editor/extensions/Passage/EditLabel.js +5 -5
- package/lib/components/editor/extensions/Passage/EditLabel.js.map +1 -1
- package/lib/components/editor/extensions/Passage/EditorOptions.d.ts +2 -2
- package/lib/components/editor/extensions/Passage/EditorOptions.js +4 -6
- package/lib/components/editor/extensions/Passage/EditorOptions.js.map +1 -1
- package/lib/components/editor/extensions/Passage/PassageMenuOverlay.d.ts +13 -0
- package/lib/components/editor/extensions/Passage/PassageMenuOverlay.js +150 -0
- package/lib/components/editor/extensions/Passage/PassageMenuOverlay.js.map +1 -0
- package/lib/components/editor/extensions/Passage/PassageNode.d.ts +33 -2
- package/lib/components/editor/extensions/Passage/PassageNode.js +294 -107
- package/lib/components/editor/extensions/Passage/PassageNode.js.map +1 -1
- package/lib/components/editor/extensions/Passage/PassageNode.ssr.js +70 -8
- package/lib/components/editor/extensions/Passage/PassageNode.ssr.js.map +1 -1
- package/lib/components/editor/extensions/Passage/ReaderOptions.d.ts +2 -2
- package/lib/components/editor/extensions/Passage/ReaderOptions.js +4 -7
- package/lib/components/editor/extensions/Passage/ReaderOptions.js.map +1 -1
- package/lib/components/editor/extensions/Passage/ShowAnnotations.d.ts +7 -2
- package/lib/components/editor/extensions/Passage/ShowAnnotations.js +10 -7
- package/lib/components/editor/extensions/Passage/ShowAnnotations.js.map +1 -1
- package/lib/components/editor/extensions/WordBreak.d.ts +41 -0
- package/lib/components/editor/extensions/WordBreak.js +59 -0
- package/lib/components/editor/extensions/WordBreak.js.map +1 -0
- package/lib/components/editor/extensions/translationSSRExtensions.js +4 -0
- package/lib/components/editor/extensions/translationSSRExtensions.js.map +1 -1
- package/lib/components/editor/hooks/useDefaultExtensions.d.ts +1 -1
- package/lib/components/editor/hooks/useDefaultExtensions.js +2 -0
- package/lib/components/editor/hooks/useDefaultExtensions.js.map +1 -1
- package/lib/components/editor/hooks/useTranslationExtensions.d.ts +1 -1
- package/lib/components/editor/hooks/useTranslationExtensions.js +2 -0
- package/lib/components/editor/hooks/useTranslationExtensions.js.map +1 -1
- package/lib/components/editor/menus/MainBubbleMenu.js +17 -4
- package/lib/components/editor/menus/MainBubbleMenu.js.map +1 -1
- package/lib/components/editor/menus/TranslationBubbleMenu.js +3 -2
- package/lib/components/editor/menus/TranslationBubbleMenu.js.map +1 -1
- package/lib/components/editor/menus/selectors/TextAlignSelector.d.ts +1 -1
- package/lib/components/editor/menus/selectors/TextAlignSelector.js +33 -24
- package/lib/components/editor/menus/selectors/TextAlignSelector.js.map +1 -1
- package/lib/components/editor/menus/selectors/TranslationNodeSelector.js +1 -1
- package/lib/components/editor/menus/selectors/TranslationNodeSelector.js.map +1 -1
- package/lib/components/editor/menus/selectors/WordBreakSelector.d.ts +4 -0
- package/lib/components/editor/menus/selectors/WordBreakSelector.js +38 -0
- package/lib/components/editor/menus/selectors/WordBreakSelector.js.map +1 -0
- package/lib/components/editor/menus/selectors/index.d.ts +1 -0
- package/lib/components/editor/menus/selectors/index.js +1 -0
- package/lib/components/editor/menus/selectors/index.js.map +1 -1
- package/lib/components/reader/TranslationSSRContent.js +3 -1
- package/lib/components/reader/TranslationSSRContent.js.map +1 -1
- package/lib/components/shared/LeftPanel.js +1 -1
- package/lib/components/shared/LeftPanel.js.map +1 -1
- package/lib/components/shared/SourceReader.js +1 -1
- package/lib/components/shared/SourceReader.js.map +1 -1
- package/lib/components/shared/hooks/useTohToggle.d.ts +2 -3
- package/lib/components/shared/hooks/useTohToggle.js +31 -30
- package/lib/components/shared/hooks/useTohToggle.js.map +1 -1
- package/lib/exporters/heading.js +3 -0
- package/lib/exporters/heading.js.map +1 -1
- package/lib/exporters/paragraph.js +5 -0
- package/lib/exporters/paragraph.js.map +1 -1
- package/lib/transformers/heading.js +2 -0
- package/lib/transformers/heading.js.map +1 -1
- package/lib/transformers/mention.js +2 -1
- package/lib/transformers/mention.js.map +1 -1
- package/lib/transformers/paragraph.js +3 -1
- package/lib/transformers/paragraph.js.map +1 -1
- package/package.json +7 -7
- package/lib/components/editor/extensions/Passage/Passage.d.ts +0 -3
- package/lib/components/editor/extensions/Passage/Passage.js +0 -86
- package/lib/components/editor/extensions/Passage/Passage.js.map +0 -1
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { Node } from '@tiptap/core';
|
|
2
|
-
import { ReactNodeViewRenderer, mergeAttributes } from '@tiptap/react';
|
|
3
|
-
import { Passage } from './Passage';
|
|
4
1
|
import { Plugin, PluginKey, Selection, TextSelection } from '@tiptap/pm/state';
|
|
5
2
|
import { Fragment } from '@tiptap/pm/model';
|
|
6
3
|
import { incrementLabel } from './label';
|
|
4
|
+
import { PassageNodeSSR } from './PassageNode.ssr';
|
|
5
|
+
import { PASSAGE_CONTENT_CLASS, PASSAGE_INNER_CLASS, PASSAGE_LABEL_CLASS, PASSAGE_REFERENCES_CLASS, PASSAGE_WRAPPER_CLASS, } from './classes';
|
|
6
|
+
const BOOKMARK_SVG = '<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="currentColor" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="text-accent size-3"><path d="M19 21l-7-5-7 5V5a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2z"></path></svg>';
|
|
7
7
|
const currentPassageDepth = ($from) => {
|
|
8
8
|
let passageDepth = null;
|
|
9
9
|
for (let i = $from.depth; i >= 0; i--) {
|
|
@@ -29,97 +29,206 @@ const selectionInCompareSource = () => {
|
|
|
29
29
|
// calling preventDefault), so the browser's native clipboard behavior runs and
|
|
30
30
|
// copies the selected Tibetan text.
|
|
31
31
|
const handleCompareSourceClipboard = () => selectionInCompareSource();
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
return
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
32
|
+
const compareLeadingSpaceClass = (node) => {
|
|
33
|
+
const firstChild = node.content.firstChild;
|
|
34
|
+
if (firstChild?.attrs.hasLeadingSpace)
|
|
35
|
+
return 'md:mt-5';
|
|
36
|
+
if (['lineGroup', 'list'].includes(firstChild?.type.name || '')) {
|
|
37
|
+
return 'md:mt-2';
|
|
38
|
+
}
|
|
39
|
+
return 'md:mt-1';
|
|
40
|
+
};
|
|
41
|
+
// Imperatively populates the per-passage chrome (compare-mode Tibetan source and
|
|
42
|
+
// the reader bookmark icon) that lives outside ProseMirror's editable content.
|
|
43
|
+
// Driven by editor.storage.passage.chrome, refreshed on transactions and on
|
|
44
|
+
// explicit navigation changes (via refreshChrome).
|
|
45
|
+
const syncPassageChrome = (view, editor, force = false) => {
|
|
46
|
+
const chrome = editor.storage.passage?.chrome;
|
|
47
|
+
const toh = chrome?.toh;
|
|
48
|
+
const isCompare = !!chrome?.isCompare;
|
|
49
|
+
const bookmarked = chrome?.bookmarkedUuids ?? new Set();
|
|
50
|
+
const editable = editor.isEditable;
|
|
51
|
+
const needsWork = isCompare || (!editable && bookmarked.size > 0);
|
|
52
|
+
if (!needsWork && !force)
|
|
53
|
+
return;
|
|
54
|
+
view.state.doc.descendants((node, pos) => {
|
|
55
|
+
if (node.type.name !== 'passage')
|
|
56
|
+
return true;
|
|
57
|
+
const dom = view.nodeDOM(pos);
|
|
58
|
+
if (!dom || dom.nodeType !== 1)
|
|
59
|
+
return false;
|
|
60
|
+
const el = dom;
|
|
61
|
+
// Writes here mutate the node's DOM, which ProseMirror's mutation observer
|
|
62
|
+
// watches — so only touch the DOM when the desired state actually differs,
|
|
63
|
+
// otherwise redundant writes trigger an update→mutate→update feedback loop.
|
|
64
|
+
const csDiv = el.querySelector(':scope > .passage-compare-source');
|
|
65
|
+
const csText = csDiv?.querySelector('.passage-compare-text');
|
|
66
|
+
if (csDiv && csText) {
|
|
67
|
+
const alignment = node.attrs.alignments?.[toh ?? ''];
|
|
68
|
+
const tibetan = isCompare && toh ? (alignment?.tibetan ?? '').trim() : '';
|
|
69
|
+
if (csText.textContent !== tibetan)
|
|
70
|
+
csText.textContent = tibetan;
|
|
71
|
+
const shouldHide = !tibetan;
|
|
72
|
+
if (csDiv.classList.contains('hidden') !== shouldHide) {
|
|
73
|
+
csDiv.classList.toggle('hidden', shouldHide);
|
|
74
|
+
}
|
|
75
|
+
const leading = tibetan ? compareLeadingSpaceClass(node) : 'md:mt-1';
|
|
76
|
+
for (const cls of ['md:mt-1', 'md:mt-2', 'md:mt-5']) {
|
|
77
|
+
const want = cls === leading;
|
|
78
|
+
if (csDiv.classList.contains(cls) !== want) {
|
|
79
|
+
csDiv.classList.toggle(cls, want);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
const bm = el.querySelector(':scope .passage-bookmark');
|
|
84
|
+
if (bm) {
|
|
85
|
+
const uuid = node.attrs.uuid;
|
|
86
|
+
const show = !editable && !!uuid && bookmarked.has(uuid);
|
|
87
|
+
if (bm.classList.contains('hidden') === show) {
|
|
88
|
+
bm.classList.toggle('hidden', !show);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
return false;
|
|
92
|
+
});
|
|
93
|
+
};
|
|
94
|
+
export const PassageNode = PassageNodeSSR.extend({
|
|
95
|
+
addStorage() {
|
|
44
96
|
return {
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
return mergeAttributes(attributes, {
|
|
50
|
-
label: attributes.label,
|
|
51
|
-
});
|
|
52
|
-
},
|
|
53
|
-
},
|
|
54
|
-
sort: {
|
|
55
|
-
default: 0,
|
|
56
|
-
parseHTML: (element) => element.getAttribute('sort'),
|
|
57
|
-
renderHTML: (attributes) => {
|
|
58
|
-
return mergeAttributes(attributes, {
|
|
59
|
-
sort: attributes.sort,
|
|
60
|
-
});
|
|
61
|
-
},
|
|
62
|
-
},
|
|
63
|
-
alignments: {
|
|
64
|
-
default: {},
|
|
65
|
-
},
|
|
66
|
-
references: {
|
|
67
|
-
default: [],
|
|
68
|
-
},
|
|
97
|
+
openMenu: undefined,
|
|
98
|
+
navigateRef: undefined,
|
|
99
|
+
chrome: undefined,
|
|
100
|
+
refreshChrome: undefined,
|
|
69
101
|
};
|
|
70
102
|
},
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
103
|
+
// A plain DOM node view (no React) — so interacting with a passage never
|
|
104
|
+
// remounts a React tree the way the old ReactNodeViewRenderer did. The
|
|
105
|
+
// interactive menu/dialogs live in the stable PassageMenuOverlay; the
|
|
106
|
+
// compare-source / bookmark chrome is built here and populated by the view
|
|
107
|
+
// plugin in addProseMirrorPlugins. ignoreMutation shields that chrome from
|
|
108
|
+
// ProseMirror's mutation observer so syncing it never triggers a reparse loop.
|
|
74
109
|
addNodeView() {
|
|
75
|
-
return
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
110
|
+
return ({ node }) => {
|
|
111
|
+
let current = node;
|
|
112
|
+
const wrapper = document.createElement('div');
|
|
113
|
+
wrapper.className = PASSAGE_WRAPPER_CLASS;
|
|
114
|
+
const applyWrapperAttrs = (n) => {
|
|
115
|
+
if (n.attrs.uuid)
|
|
116
|
+
wrapper.id = n.attrs.uuid;
|
|
117
|
+
if (n.attrs.toh)
|
|
118
|
+
wrapper.setAttribute('data-toh', n.attrs.toh);
|
|
119
|
+
else
|
|
120
|
+
wrapper.removeAttribute('data-toh');
|
|
121
|
+
if (n.attrs.type)
|
|
122
|
+
wrapper.setAttribute('data-passage-type', n.attrs.type);
|
|
123
|
+
else
|
|
124
|
+
wrapper.removeAttribute('data-passage-type');
|
|
125
|
+
if (n.attrs.invalid)
|
|
126
|
+
wrapper.setAttribute('data-invalid', 'true');
|
|
127
|
+
else
|
|
128
|
+
wrapper.removeAttribute('data-invalid');
|
|
129
|
+
};
|
|
130
|
+
applyWrapperAttrs(node);
|
|
131
|
+
const column = document.createElement('div');
|
|
132
|
+
column.className = 'w-full';
|
|
133
|
+
const inner = document.createElement('div');
|
|
134
|
+
inner.className = PASSAGE_INNER_CLASS;
|
|
135
|
+
// Label doubles as the dropdown trigger (handled by the click plugin).
|
|
136
|
+
const label = document.createElement('div');
|
|
137
|
+
label.className = PASSAGE_LABEL_CLASS;
|
|
138
|
+
label.setAttribute('contenteditable', 'false');
|
|
139
|
+
label.setAttribute('data-passage-label', '');
|
|
140
|
+
if (node.attrs.uuid)
|
|
141
|
+
label.setAttribute('data-uuid', node.attrs.uuid);
|
|
142
|
+
label.textContent = node.attrs.label || '';
|
|
143
|
+
const bookmark = document.createElement('div');
|
|
144
|
+
bookmark.className =
|
|
145
|
+
'passage-bookmark hidden absolute -left-15.75 top-6 w-16 flex justify-end';
|
|
146
|
+
bookmark.setAttribute('contenteditable', 'false');
|
|
147
|
+
bookmark.innerHTML = BOOKMARK_SVG;
|
|
148
|
+
const content = document.createElement('div');
|
|
149
|
+
content.className = PASSAGE_CONTENT_CLASS;
|
|
150
|
+
inner.append(label, bookmark, content);
|
|
151
|
+
const buildReferences = (n) => {
|
|
152
|
+
const references = (n.attrs.references ?? []);
|
|
153
|
+
if (!references.length)
|
|
154
|
+
return null;
|
|
155
|
+
const div = document.createElement('div');
|
|
156
|
+
div.className = PASSAGE_REFERENCES_CLASS;
|
|
157
|
+
div.setAttribute('contenteditable', 'false');
|
|
158
|
+
references.forEach((ref, index) => {
|
|
159
|
+
if (index > 0)
|
|
160
|
+
div.append(document.createTextNode(', '));
|
|
161
|
+
const a = document.createElement('a');
|
|
162
|
+
a.href = `#${ref.uuid}`;
|
|
163
|
+
a.setAttribute('data-passage-reference', '');
|
|
164
|
+
a.setAttribute('data-ref-uuid', ref.uuid);
|
|
165
|
+
a.setAttribute('data-ref-type', ref.type);
|
|
166
|
+
a.textContent = ref.label || ref.uuid.slice(0, 6);
|
|
167
|
+
div.append(a);
|
|
168
|
+
});
|
|
169
|
+
return div;
|
|
170
|
+
};
|
|
171
|
+
let referencesEl = buildReferences(node);
|
|
172
|
+
if (referencesEl)
|
|
173
|
+
inner.append(referencesEl);
|
|
174
|
+
column.append(inner);
|
|
175
|
+
// Second flex column: compare-mode Tibetan source (hidden until synced).
|
|
176
|
+
const compare = document.createElement('div');
|
|
177
|
+
compare.className = 'passage-compare-source w-full hidden md:mt-1';
|
|
178
|
+
compare.setAttribute('contenteditable', 'false');
|
|
179
|
+
compare.setAttribute('data-compare-source', '');
|
|
180
|
+
const compareInner = document.createElement('div');
|
|
181
|
+
compareInner.className = 'passage pl-6 @c/sidebar:pl-4';
|
|
182
|
+
const compareText = document.createElement('div');
|
|
183
|
+
compareText.className =
|
|
184
|
+
'passage-compare-text leading-7 font-tibetan text-lg whitespace-normal mt-1.5 pb-4 md:pb-2';
|
|
185
|
+
compareInner.append(compareText);
|
|
186
|
+
compare.append(compareInner);
|
|
187
|
+
wrapper.append(column, compare);
|
|
188
|
+
return {
|
|
189
|
+
dom: wrapper,
|
|
190
|
+
contentDOM: content,
|
|
191
|
+
update: (updated) => {
|
|
192
|
+
if (updated.type.name !== 'passage')
|
|
193
|
+
return false;
|
|
194
|
+
applyWrapperAttrs(updated);
|
|
195
|
+
const nextLabel = updated.attrs.label || '';
|
|
196
|
+
if (label.textContent !== nextLabel)
|
|
197
|
+
label.textContent = nextLabel;
|
|
198
|
+
const nextUuid = updated.attrs.uuid || '';
|
|
199
|
+
if (label.getAttribute('data-uuid') !== nextUuid) {
|
|
200
|
+
label.setAttribute('data-uuid', nextUuid);
|
|
201
|
+
}
|
|
202
|
+
const prevRefs = JSON.stringify(current.attrs.references ?? []);
|
|
203
|
+
const nextRefs = JSON.stringify(updated.attrs.references ?? []);
|
|
204
|
+
if (prevRefs !== nextRefs) {
|
|
205
|
+
referencesEl?.remove();
|
|
206
|
+
referencesEl = buildReferences(updated);
|
|
207
|
+
if (referencesEl)
|
|
208
|
+
inner.append(referencesEl);
|
|
209
|
+
}
|
|
210
|
+
current = updated;
|
|
89
211
|
return true;
|
|
90
|
-
}
|
|
91
|
-
// Defer to ProseMirror for everything inside the editable content.
|
|
92
|
-
return false;
|
|
93
|
-
},
|
|
94
|
-
});
|
|
95
|
-
},
|
|
96
|
-
addProseMirrorPlugins() {
|
|
97
|
-
return [
|
|
98
|
-
new Plugin({
|
|
99
|
-
key: new PluginKey('passageCompareSourceClipboard'),
|
|
100
|
-
props: {
|
|
101
|
-
handleDOMEvents: {
|
|
102
|
-
// The Tibetan source in compare mode lives outside the document
|
|
103
|
-
// (it is not part of ProseMirror's content). ProseMirror's built-in
|
|
104
|
-
// copy/cut handler would otherwise overwrite the clipboard with the
|
|
105
|
-
// serialized document selection. When the native selection sits
|
|
106
|
-
// inside the compare source, return true so ProseMirror skips its
|
|
107
|
-
// handler without preventing default — letting the browser perform
|
|
108
|
-
// its native copy of the selected Tibetan text.
|
|
109
|
-
copy: handleCompareSourceClipboard,
|
|
110
|
-
cut: handleCompareSourceClipboard,
|
|
111
|
-
},
|
|
112
212
|
},
|
|
113
|
-
|
|
114
|
-
|
|
213
|
+
// Ignore everything in the non-editable chrome (label/bookmark/compare
|
|
214
|
+
// source) and defer to ProseMirror only for the editable content hole.
|
|
215
|
+
// This must include selection-type records: ignoring them leaves the
|
|
216
|
+
// browser's native selection in place so the Tibetan compare source can
|
|
217
|
+
// be selected/copied, instead of ProseMirror pulling the selection back
|
|
218
|
+
// into the editable content. It also keeps the view plugin's chrome
|
|
219
|
+
// writes from triggering a mutation→reparse loop.
|
|
220
|
+
ignoreMutation: (mutation) => {
|
|
221
|
+
const target = mutation.target;
|
|
222
|
+
return !target || !content.contains(target);
|
|
223
|
+
},
|
|
224
|
+
};
|
|
225
|
+
};
|
|
115
226
|
},
|
|
116
227
|
addCommands() {
|
|
117
228
|
return {
|
|
118
229
|
normalizeLabelsAfter: () => ({ dispatch, tr }) => {
|
|
119
230
|
if (!dispatch)
|
|
120
231
|
return true;
|
|
121
|
-
// Use tr.selection so this works correctly when chained after commands
|
|
122
|
-
// like joinBackward that have already modified the document.
|
|
123
232
|
const { $from } = tr.selection;
|
|
124
233
|
const passageDepth = currentPassageDepth($from);
|
|
125
234
|
if (passageDepth === null)
|
|
@@ -153,16 +262,15 @@ export const PassageNode = Node.create({
|
|
|
153
262
|
}
|
|
154
263
|
const targetParts = targetLabel.split('.');
|
|
155
264
|
if (targetParts.length < numParts)
|
|
156
|
-
break;
|
|
265
|
+
break;
|
|
157
266
|
if (targetParts.length > numParts) {
|
|
158
|
-
// deeper → skip sub-passage
|
|
159
267
|
pos += child.nodeSize;
|
|
160
268
|
continue;
|
|
161
269
|
}
|
|
162
270
|
if (!targetLabel.startsWith(currentPrefixWithDot))
|
|
163
|
-
break;
|
|
271
|
+
break;
|
|
164
272
|
if (targetLabel === expectedNext)
|
|
165
|
-
break;
|
|
273
|
+
break;
|
|
166
274
|
tr.setNodeMarkup(pos, null, {
|
|
167
275
|
...child.attrs,
|
|
168
276
|
label: expectedNext,
|
|
@@ -178,26 +286,21 @@ export const PassageNode = Node.create({
|
|
|
178
286
|
splitPassage: () => ({ state, dispatch }) => {
|
|
179
287
|
const { selection } = state;
|
|
180
288
|
const { $from } = selection;
|
|
181
|
-
// Find the passage node that contains the current selection
|
|
182
289
|
const passageDepth = currentPassageDepth($from);
|
|
183
290
|
if (passageDepth === null) {
|
|
184
291
|
return false;
|
|
185
292
|
}
|
|
186
293
|
const passageNode = $from.node(passageDepth);
|
|
187
|
-
const passageStart = $from.start(passageDepth) - 1;
|
|
188
|
-
const passageEnd = $from.end(passageDepth) + 1;
|
|
189
|
-
// Get the position within the passage content
|
|
294
|
+
const passageStart = $from.start(passageDepth) - 1;
|
|
295
|
+
const passageEnd = $from.end(passageDepth) + 1;
|
|
190
296
|
const posInPassage = $from.pos - $from.start(passageDepth);
|
|
191
|
-
// Split the passage content
|
|
192
297
|
const beforeContent = passageNode.content.cut(0, posInPassage);
|
|
193
298
|
const afterContent = passageNode.content.cut(posInPassage);
|
|
194
299
|
if (!dispatch)
|
|
195
300
|
return true;
|
|
196
301
|
const tr = state.tr;
|
|
197
|
-
// Replace current passage with first part
|
|
198
302
|
tr.replaceWith(passageStart, passageEnd, state.schema.nodes.passage.create(passageNode.attrs, beforeContent));
|
|
199
|
-
|
|
200
|
-
const newPassagePos = passageStart + beforeContent.size + 2; // +2 for passage wrapper
|
|
303
|
+
const newPassagePos = passageStart + beforeContent.size + 2;
|
|
201
304
|
const oldAttrs = passageNode.attrs;
|
|
202
305
|
const attrs = {
|
|
203
306
|
...oldAttrs,
|
|
@@ -205,9 +308,7 @@ export const PassageNode = Node.create({
|
|
|
205
308
|
sort: oldAttrs.sort + 1,
|
|
206
309
|
label: incrementLabel(oldAttrs.label),
|
|
207
310
|
};
|
|
208
|
-
// Insert new passage with remaining content
|
|
209
311
|
tr.insert(newPassagePos, state.schema.nodes.passage.create(attrs, afterContent));
|
|
210
|
-
// move the cursor to the new paragraph
|
|
211
312
|
const $pos = tr.doc.resolve(newPassagePos + 1);
|
|
212
313
|
const newSelection = TextSelection.findFrom($pos, 1, true) || Selection.near($pos, 1);
|
|
213
314
|
if (newSelection) {
|
|
@@ -216,14 +317,109 @@ export const PassageNode = Node.create({
|
|
|
216
317
|
dispatch(tr);
|
|
217
318
|
return true;
|
|
218
319
|
},
|
|
320
|
+
setPassageLabel: (uuid, label) => ({ tr, state, dispatch }) => {
|
|
321
|
+
let target;
|
|
322
|
+
state.doc.descendants((node, pos) => {
|
|
323
|
+
if (target)
|
|
324
|
+
return false;
|
|
325
|
+
if (node.type.name === 'passage' && node.attrs.uuid === uuid) {
|
|
326
|
+
target = { pos, node };
|
|
327
|
+
return false;
|
|
328
|
+
}
|
|
329
|
+
return true;
|
|
330
|
+
});
|
|
331
|
+
if (!target)
|
|
332
|
+
return false;
|
|
333
|
+
if (!dispatch)
|
|
334
|
+
return true;
|
|
335
|
+
tr.setNodeMarkup(target.pos, undefined, {
|
|
336
|
+
...target.node.attrs,
|
|
337
|
+
label,
|
|
338
|
+
});
|
|
339
|
+
dispatch(tr);
|
|
340
|
+
return true;
|
|
341
|
+
},
|
|
219
342
|
};
|
|
220
343
|
},
|
|
344
|
+
addProseMirrorPlugins() {
|
|
345
|
+
const editor = this.editor;
|
|
346
|
+
return [
|
|
347
|
+
new Plugin({
|
|
348
|
+
key: new PluginKey('passageCompareSourceClipboard'),
|
|
349
|
+
props: {
|
|
350
|
+
handleDOMEvents: {
|
|
351
|
+
copy: handleCompareSourceClipboard,
|
|
352
|
+
cut: handleCompareSourceClipboard,
|
|
353
|
+
},
|
|
354
|
+
},
|
|
355
|
+
}),
|
|
356
|
+
// Opens the stable menu overlay when a passage label is pressed, and
|
|
357
|
+
// routes reference-link clicks to navigation — without letting
|
|
358
|
+
// ProseMirror move the selection (which previously remounted the view).
|
|
359
|
+
new Plugin({
|
|
360
|
+
key: new PluginKey('passageMenuClick'),
|
|
361
|
+
props: {
|
|
362
|
+
handleDOMEvents: {
|
|
363
|
+
mousedown: (_view, event) => {
|
|
364
|
+
const target = event.target;
|
|
365
|
+
if (!target)
|
|
366
|
+
return false;
|
|
367
|
+
const refEl = target.closest('[data-passage-reference]');
|
|
368
|
+
if (refEl) {
|
|
369
|
+
event.preventDefault();
|
|
370
|
+
editor.storage.passage?.navigateRef?.({
|
|
371
|
+
uuid: refEl.getAttribute('data-ref-uuid') || '',
|
|
372
|
+
type: refEl.getAttribute('data-ref-type') || '',
|
|
373
|
+
});
|
|
374
|
+
return true;
|
|
375
|
+
}
|
|
376
|
+
const labelEl = target.closest('[data-passage-label]');
|
|
377
|
+
if (labelEl) {
|
|
378
|
+
event.preventDefault();
|
|
379
|
+
const rect = labelEl.getBoundingClientRect();
|
|
380
|
+
editor.storage.passage?.openMenu?.({
|
|
381
|
+
uuid: labelEl.getAttribute('data-uuid') || '',
|
|
382
|
+
rect: {
|
|
383
|
+
top: rect.top,
|
|
384
|
+
left: rect.left,
|
|
385
|
+
bottom: rect.bottom,
|
|
386
|
+
right: rect.right,
|
|
387
|
+
width: rect.width,
|
|
388
|
+
height: rect.height,
|
|
389
|
+
},
|
|
390
|
+
});
|
|
391
|
+
return true;
|
|
392
|
+
}
|
|
393
|
+
return false;
|
|
394
|
+
},
|
|
395
|
+
},
|
|
396
|
+
},
|
|
397
|
+
}),
|
|
398
|
+
// Syncs the compare-source text and bookmark icon (chrome that lives
|
|
399
|
+
// outside the editable content) from navigation state.
|
|
400
|
+
new Plugin({
|
|
401
|
+
key: new PluginKey('passageChrome'),
|
|
402
|
+
view: (editorView) => {
|
|
403
|
+
const run = (force) => syncPassageChrome(editorView, editor, force);
|
|
404
|
+
run(true);
|
|
405
|
+
editor.storage.passage.refreshChrome = () => run(true);
|
|
406
|
+
return {
|
|
407
|
+
update: () => run(false),
|
|
408
|
+
destroy: () => {
|
|
409
|
+
if (editor.storage.passage) {
|
|
410
|
+
editor.storage.passage.refreshChrome = undefined;
|
|
411
|
+
}
|
|
412
|
+
},
|
|
413
|
+
};
|
|
414
|
+
},
|
|
415
|
+
}),
|
|
416
|
+
];
|
|
417
|
+
},
|
|
221
418
|
addKeyboardShortcuts() {
|
|
222
419
|
return {
|
|
223
420
|
Backspace: () => this.editor.commands.first(({ commands }) => [
|
|
224
421
|
() => commands.undoInputRule(),
|
|
225
422
|
() => {
|
|
226
|
-
// Only intercept at the very start of a passage's content
|
|
227
423
|
const { $from } = this.editor.state.selection;
|
|
228
424
|
const passageDepth = currentPassageDepth($from);
|
|
229
425
|
if (passageDepth === null)
|
|
@@ -237,10 +433,6 @@ export const PassageNode = Node.create({
|
|
|
237
433
|
return joined;
|
|
238
434
|
},
|
|
239
435
|
]),
|
|
240
|
-
// Enter in an empty textblock that is a direct child of a passage
|
|
241
|
-
// splits the passage at that block's boundary, dropping the empty
|
|
242
|
-
// block, so pressing Enter twice at the end of a passage creates a
|
|
243
|
-
// new one without leaving an empty paragraph behind.
|
|
244
436
|
Enter: () => {
|
|
245
437
|
const { state, view } = this.editor;
|
|
246
438
|
const { selection, schema } = state;
|
|
@@ -250,15 +442,11 @@ export const PassageNode = Node.create({
|
|
|
250
442
|
const passageDepth = currentPassageDepth($from);
|
|
251
443
|
if (passageDepth === null)
|
|
252
444
|
return false;
|
|
253
|
-
// Only trigger when the cursor's parent textblock is a direct child
|
|
254
|
-
// of the passage — not nested inside a list, line group, table, etc.
|
|
255
445
|
if ($from.depth !== passageDepth + 1)
|
|
256
446
|
return false;
|
|
257
447
|
if ($from.parent.content.size !== 0)
|
|
258
448
|
return false;
|
|
259
449
|
const passageNode = $from.node(passageDepth);
|
|
260
|
-
// If the empty block is the only child, splitting would just produce
|
|
261
|
-
// two empty passages — defer to default behavior.
|
|
262
450
|
if (passageNode.childCount <= 1)
|
|
263
451
|
return false;
|
|
264
452
|
const passageStart = $from.start(passageDepth) - 1;
|
|
@@ -280,8 +468,6 @@ export const PassageNode = Node.create({
|
|
|
280
468
|
sort: oldAttrs.sort + 1,
|
|
281
469
|
label: incrementLabel(oldAttrs.label),
|
|
282
470
|
};
|
|
283
|
-
// createAndFill auto-fills missing required content (e.g. an empty
|
|
284
|
-
// afterContent gets a default paragraph) so the new passage is valid.
|
|
285
471
|
const firstPassage = passageType.createAndFill(oldAttrs, Fragment.fromArray(beforeChildren));
|
|
286
472
|
const secondPassage = passageType.createAndFill(newAttrs, Fragment.fromArray(afterChildren));
|
|
287
473
|
if (!firstPassage || !secondPassage)
|
|
@@ -302,4 +488,5 @@ export const PassageNode = Node.create({
|
|
|
302
488
|
};
|
|
303
489
|
},
|
|
304
490
|
});
|
|
491
|
+
export default PassageNode;
|
|
305
492
|
//# sourceMappingURL=PassageNode.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PassageNode.js","sourceRoot":"","sources":["../../../../../../../../libs/lib-editing/src/lib/components/editor/extensions/Passage/PassageNode.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"PassageNode.js","sourceRoot":"","sources":["../../../../../../../../libs/lib-editing/src/lib/components/editor/extensions/Passage/PassageNode.ts"],"names":[],"mappings":"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"}
|