feat: a reviewing pane, and a colour per reviewer

Every recorded change in document order beside the comments pane: author,
date, the text, accept or reject in place. A change split by a paragraph
boundary is one row, so acceptRevision/rejectRevision take an id. The
author colour is a decoration, since a mark cannot know the document's
other authors; it nests inside the mark's span and carries the under/
strikethrough with it. shortcutHint no longer throws on an id nothing
binds, which heading 7-10 had just made reachable.
This commit is contained in:
Steffen Becker committed 2026-08-15 09:40:26 +02:00
1 parent 147034730f
commit 1c4dec49f3
13 files changed
+326 -13

No files matched your search

+20 -7
View File
@@ -999,15 +999,28 @@
border-radius: 2px;
}
.tiptap .pm-insertion {
color: #b5179e;
text-decoration: underline;
/* A recorded revision. The mark only tints, so a DOM built without the decoration plugin
still shows one; the line comes from the decoration span ProseMirror nests INSIDE the
mark's, or an ancestor would draw it in the fallback colour instead of the author's. */
.tiptap .pm-insertion,
.tiptap .pm-deletion {
color: #c69200;
}
.tiptap .pm-deletion {
color: #b5179e;
text-decoration: line-through;
}
.tiptap .pm-rev-ins { text-decoration: underline; }
.tiptap .pm-rev-del { text-decoration: line-through; }
/* LibreOffice's author palette, handed out in order of first appearance (trackChanges.ts),
so several reviewers stay apart the way both word processors draw them. */
.tiptap .pm-rev-a0 { color: #c69200; }
.tiptap .pm-rev-a1 { color: #0646a2; }
.tiptap .pm-rev-a2 { color: #579d1c; }
.tiptap .pm-rev-a3 { color: #692b9d; }
.tiptap .pm-rev-a4 { color: #c5000b; }
.tiptap .pm-rev-a5 { color: #008080; }
.tiptap .pm-rev-a6 { color: #8c8400; }
.tiptap .pm-rev-a7 { color: #35556b; }
.tiptap .pm-rev-a8 { color: #d17600; }
/* Print styles: proper A4 pagination */
@media print {