Skip to main content

Documentation Index

Fetch the complete documentation index at: https://superdoc-nick-sd-2070-add-content-controls-namespace-to-doc.mintlify.app/llms.txt

Use this file to discover all available pages before exploring further.

Track Changes records all edits with author attribution and timestamps, matching Microsoft Word’s revision tracking.

Usage

Enable through document mode:
superdoc.setDocumentMode('suggesting'); // Enable tracking
superdoc.setDocumentMode('editing');    // Disable tracking
Or toggle programmatically:
editor.commands.enableTrackChanges()
editor.commands.disableTrackChanges()
editor.commands.toggleTrackChanges()

Commands

Accept changes

// Accept at current selection
editor.commands.acceptTrackedChangeBySelection()

// Accept a specific change by ID
editor.commands.acceptTrackedChangeById('change-123')

// Accept a change object (with start/end positions)
editor.commands.acceptTrackedChange({ trackedChange: { start: 10, end: 50 } })

// Accept changes in a range
editor.commands.acceptTrackedChangesBetween(10, 50)

// Accept all changes in the document
editor.commands.acceptAllTrackedChanges()

// Toolbar-aware accept (uses active thread or selection)
editor.commands.acceptTrackedChangeFromToolbar()

Reject changes

// Reject at current selection
editor.commands.rejectTrackedChangeOnSelection()

// Reject a specific change by ID
editor.commands.rejectTrackedChangeById('change-123')

// Reject a change object
editor.commands.rejectTrackedChange({ trackedChange: { start: 10, end: 50 } })

// Reject changes in a range
editor.commands.rejectTrackedChangesBetween(10, 50)

// Reject all changes in the document
editor.commands.rejectAllTrackedChanges()

// Toolbar-aware reject
editor.commands.rejectTrackedChangeFromToolbar()

Insert tracked change programmatically

Use insertTrackedChange to add tracked edits from external sources (e.g., AI suggestions):
editor.commands.insertTrackedChange({
  from: 10,
  to: 25,
  text: 'replacement text',
  comment: 'AI suggestion: improved wording'
})
Parameters:
options
Object
Object with from, to, text, user, comment, addToHistory, emitCommentEvent

View modes

// Show document as it was before changes
editor.commands.toggleTrackChangesShowOriginal()
editor.commands.enableTrackChangesShowOriginal()
editor.commands.disableTrackChangesShowOriginal()

// Show document as if all changes were accepted
editor.commands.toggleTrackChangesShowFinal()
editor.commands.enableTrackChangesShowFinal()

Helpers

import { trackChangesHelpers } from 'superdoc';

// Get all tracked changes in the document
const changes = trackChangesHelpers.getTrackChanges(editor.state);
// Returns: [{ mark, from, to }, ...]

// Get a specific change by ID
const change = trackChangesHelpers.getTrackChanges(editor.state, 'change-123');

Change types

TypeMarkVisual
InsertiontrackInsertGreen underline
DeletiontrackDeleteRed strikethrough
Format changetrackFormatRecords before/after formatting
Each change includes author name, email, timestamp, and a unique ID.

Export behavior

Changes export to DOCX as Word revisions:
// Export with changes preserved
await superdoc.export();

// Accept all first, then export clean
editor.commands.acceptAllTrackedChanges();
await superdoc.export();

Full example

Track Changes Example

Runnable example with mode switching, accept/reject, and comments sidebar

Source code