@editora/track-changes
v1.0.1
Published
Track changes plugin for Editora rich text editor with accept/reject workflows
Maintainers
Readme
@editora/track-changes
[!IMPORTANT] Live Website: https://editora-ecosystem.netlify.app/
Storybook: https://editora-ecosystem-storybook.netlify.app/
Track changes plugin for Editora rich text editor.
Installation
npm install @editora/track-changes @editora/coreUsage
import { EditoraEditor } from '@editora/react';
import { TrackChangesPlugin, BoldPlugin, HistoryPlugin } from '@editora/plugins';
const plugins = [
BoldPlugin(),
HistoryPlugin(),
TrackChangesPlugin({
author: 'reviewer',
enabledByDefault: false,
includeTimestamp: true,
}),
];Web Component Configuration
Use the same options through pluginConfig:
<editora-editor id="wc-editor"></editora-editor>
<script>
const el = document.getElementById('wc-editor');
el.setConfig({
plugins: 'bold history trackChanges',
toolbar: { items: 'bold | trackChanges | undo redo' },
pluginConfig: {
trackChanges: {
author: 'reviewer',
enabledByDefault: false,
includeTimestamp: true,
},
},
});
</script>Notes:
- Use plugin name
trackChanges(aliasestrack-changes/trackchangesare accepted for config lookup). - Toolbar group command is
trackChanges(group) ortoggleTrackChanges(single button command).
Toolbar Behavior
The plugin exposes one grouped toolbar control named Track Changes containing:
Track Changes(toggle ON/OFF)Accept All ChangesReject All Changes
If you use a custom toolbar string, include trackChanges (or toggleTrackChanges) to render this group.
How Users See ON/OFF
When Track Changes is ON:
- The toggle button gets active state (
.active,data-active="true",aria-pressed="true"). - Button title changes to
Track Changes (On). - Editor content gets
data-track-changes="true".
When OFF:
- Active state is removed (
data-active="false",aria-pressed="false"). - Button title becomes
Track Changes (Off). data-track-changesis removed from content root.
The plugin also emits:
editora:track-changes-togglewith detail{ enabled, author }
Commands
toggleTrackChangesacceptAllTrackChangesrejectAllTrackChangesacceptSelectedTrackChangesrejectSelectedTrackChanges
Notes
- Delete operations are preserved as tracked deletions.
- Typing and paste operations are preserved as tracked insertions.
- Accept/reject integrates with
recordDomTransactionwhen history plugin is available.
Verification Steps (Recommended)
- Enable the toggle.
- Type text: inserted text should be marked as tracked insertion.
- Delete selected text: removed content should appear as tracked deletion marker.
- Click
Accept All Changes: insertions become normal text and deletions are removed. - Add new tracked changes again.
- Click
Reject All Changes: insertions are removed and deletions are restored. - Toggle OFF.
- Type and delete again: changes should apply directly with no new track markers.
- Toggle ON again and confirm tracking resumes.
