Skip to Content
API Referencecorecore/helpers

@stesura/core/helpers

Helpers that read or derive editor state (document, selection, marks, styles, numbering, sections, tables) and convert attrs to CSS. None of them dispatch except clearContent, startImageUpload and unWrap.

Core ProseMirror utilities

applyTrForEachNodeType

Parameters:
NameTypeDefault
nodeTypesstring[]
callback(type: string) => boolean
Returns:
boolean

attrAwareTokenEncoder

Parameters:
NameTypeDefault
attrNamesreadonly string[]
Returns:
TokenEncoder<string | number>

blockHasNoText

Parameters:
NameTypeDefault
nodeNode
Returns:
boolean

canWrapInInlineNode

Parameters:
NameTypeDefault
selectionSelection
stateEditorState
Returns:
boolean

clearContent

Parameters:
NameTypeDefault
viewEditorView
schemaSchema<any, any>
Returns:
void

combineTransactionSteps

Parameters:
NameTypeDefault
oldDocNode
transactionsTransaction[]
Returns:
Transform

convertContentToSchema

Parameters:
NameTypeDefault
contentNode | Fragment | Node[]
schemaSchema<any, any>
contentIfEmptyFragment

Returned (instead of Fragment.empty) when content is absent, an empty fragment, or converts to nothing.

optionsCreateNodeFromContentOptions

Forwarded to createNodeFromContent.

Returns:
Node | Fragment

createNodeFromContent

Parameters:
NameTypeDefault
contentstring | JSONContent | JSONContent[] | Node | Fragment
schemaSchema<any, any>
optionsCreateNodeFromContentOptions
Returns:
Node | Fragment

defaultBlockAt

Parameters:
NameTypeDefault
matchContentMatch
Returns:
NodeType | null

docChanged

Parameters:
NameTypeDefault
__0AppendTransactionProps
Returns:
boolean

docIsEmpty

Parameters:
NameTypeDefault
stateEditorState
Returns:
boolean

docNodeIsEmpty

Parameters:
NameTypeDefault
docNode
Returns:
boolean

elementFromString

Parameters:
NameTypeDefault
valuestring
Returns:
HTMLElement

emitProfile

Parameters:
NameTypeDefault
eventProfilerEvent
Returns:
void

filterFragment

Parameters:
NameTypeDefault
fragmentFragment
shouldRemove(node: Node, pos: number) => boolean
transform(node: Node, pos: number) => Node
Returns:
Fragment

findChildrenInRange

Parameters:
NameTypeDefault
nodeNode
rangeRange
predicateFindPredicate
expandSliceboolean
Returns:
NodeWithPos[]

findNode

Parameters:
NameTypeDefault
nodeNode
predicate(node: Node) => boolean
Returns:
NodeWithPos | undefined

findNodes

Parameters:
NameTypeDefault
nodeNode
predicate(node: Node) => boolean
Returns:
NodeWithPos[]

findWordBoundary

Parameters:
NameTypeDefault
docNode
posnumber
direction1 | -1
Returns:
number

forEachNode

Parameters:
NameTypeDefault
rangeNodeRange
callback(node: Node, pos: number) => void
Returns:
void

getAddedAndRemovedNodes

Parameters:
NameTypeDefault
__0AddedAndRemovedNodeProps

Also report ancestors spanning a change. Default: only nodes starting inside it.

Returns:
{ removed: { node: Node; pos: number; }[] | undefined; added: { node: Node; pos: number; }[] | undefined; changes?: never; } | { removed: { node: Node; pos: number; }[] | undefined; added: { ...; }[] | undefined; changes: readonly Change<...>[]; }

removed (positions in oldState), added (positions in newState) and the ChangeSet changes, which are absent on the early exits.

getAttributes

Parameters:
NameTypeDefault
stateEditorState
typeOrNamestring | NodeType | MarkType
Returns:
Attrs

getChangeDeletions

Parameters:
NameTypeDefault
changesChange<any>[] | readonly Change<any>[]
Returns:
Change<any>[]

getChangedRanges

Parameters:
NameTypeDefault
transformTransform
Returns:
ChangedRange[]

getChangeInsertions

Parameters:
NameTypeDefault
changesChange<any>[] | readonly Change<any>[]
Returns:
Change<any>[]

getDomRangeFromSelection

Parameters:
NameTypeDefault
viewEditorView
selectionSelection
Returns:
Range

getEditorId

Parameters:
NameTypeDefault
stateEditorState
Returns:
string | undefined

getMarkAttributes

Parameters:
NameTypeDefault
stateEditorState
typeOrNamestring | MarkType
Returns:
Attrs

getMarkRange

Parameters:
NameTypeDefault
$posResolvedPos
typeMarkType
attributesAttrs
Returns:
void | Range

getMarksBetween

Parameters:
NameTypeDefault
fromnumber
tonumber
docNode
Returns:
MarkRange[]

getMarkType

Parameters:
NameTypeDefault
nameOrTypestring | MarkType
schemaSchema<any, any>
Returns:
MarkType | undefined

getNodeAttributes

Parameters:
NameTypeDefault
stateEditorState
typeOrNamestring | NodeType
Returns:
Attrs

getNodeSpecAttrs

Parameters:
NameTypeDefault
nodeNode
childIndexnumber

Read the nested spec at this index instead (e.g. 2 is the first child of [tag, attrs, child]).

Returns:
Record<string, string>

getNodeSpecDataAttrs

Parameters:
NameTypeDefault
nodeNode
childIndexnumber
Returns:
Record<string, string>

getNodeSpecReactProps

Parameters:
NameTypeDefault
nodeNode
childIndexnumber
Returns:
NodeSpecReactProps

getNodeType

Parameters:
NameTypeDefault
nameOrTypestring | NodeType
schemaSchema<any, any>
Returns:
NodeType

getParagraphOrHeading

Parameters:
NameTypeDefault
stateEditorState
Returns:
FindResult

getParentEditorId

Parameters:
NameTypeDefault
stateEditorState
Returns:
string | undefined

getProfilerHook

Parameters:
This function does not accept any parameters.
Returns:
StesuraProfilerHook | undefined

getRectFromCoords

Parameters:
NameTypeDefault
coords{ top: number; left: number; right: number; bottom: number; }
Returns:
{ x: number; y: number; width: number; height: number; top: number; right: number; bottom: number; left: number; }

getSchemaTypeByName

Parameters:
NameTypeDefault
namestring
schemaSchema<any, any>
Returns:
NodeType | MarkType | null

getSchemaTypeNameByName

Parameters:
NameTypeDefault
namestring
schemaSchema<any, any>
Returns:
"node" | "mark" | null

isAddMarkStep

Parameters:
NameTypeDefault
stepStep
Returns:
boolean

isAddNodeMarkStep

Parameters:
NameTypeDefault
stepStep
Returns:
boolean

isAttrStep

Parameters:
NameTypeDefault
stepStep
Returns:
boolean

isCollabOrHistoryTransaction

Parameters:
NameTypeDefault
trTransaction
Returns:
any

isCollabTransaction

Parameters:
NameTypeDefault
trTransaction
Returns:
any

isDocAttrStep

Parameters:
NameTypeDefault
stepStep
Returns:
boolean

isHistoryTransaction

Parameters:
NameTypeDefault
trTransaction
Returns:
any

isMarkActive

Parameters:
NameTypeDefault
markMarkType
stateEditorState
Returns:
boolean

isNodeActive

Parameters:
NameTypeDefault
stateEditorState
typeOrNamestring | NodeType
attributesAttrs
Returns:
boolean

isRemoteCollabTransaction

Parameters:
NameTypeDefault
trTransaction
Returns:
boolean

isRemoveMarkStep

Parameters:
NameTypeDefault
stepStep
Returns:
boolean

isRemoveNodeMarkStep

Parameters:
NameTypeDefault
stepStep
Returns:
boolean

isReplaceAroundStep

Parameters:
NameTypeDefault
stepStep
Returns:
boolean

isReplaceStep

Parameters:
NameTypeDefault
stepStep
Returns:
boolean

isSimpleTextTransaction

Parameters:
NameTypeDefault
trTransaction
Returns:
boolean

isTextSelection

Parameters:
NameTypeDefault
valueunknown
Returns:
boolean

nodeHasContent

Parameters:
NameTypeDefault
nodeNode
Returns:
boolean

nodeIsInOrAroundSelection

Parameters:
NameTypeDefault
stateEditorState
callback(node: Node) => boolean
Returns:
boolean

pmBench

Parameters:
NameTypeDefault
labelstring
fn() => T
Returns:
T

pmBenchEnd

Parameters:
NameTypeDefault
labelstring
startnumber
infoRecord<string, unknown>
Returns:
void

pmBenchStart

Parameters:
This function does not accept any parameters.
Returns:
number

posToDOMRect

Parameters:
NameTypeDefault
viewEditorView
fromnumber
tonumber
Returns:
DOMRect

profilerActive

Parameters:
This function does not accept any parameters.
Returns:
boolean

ProfilerDispatchEvent

NameTypeDefault
type"dispatch"
editorIdstring
modifierMsnumber

Time spent in the transactionModifier (e.g. track changes), 0 if none.

applyMsnumber

Time spent in EditorState.apply (plugin state fields + appendTransaction rounds).

totalMsnumber

Wall-clock duration of the whole dispatch call, which includes the react-prosemirror render/commit and layout effects (flushSync). So totalMs − modifierMs − applyMs − react commit bounds the view update plus synchronous subscribers, which nothing else instruments.

stepsnumber
docChangedboolean
metaKeysstring[]

Keys of the transaction’s meta map — identifies the dispatch source.

atnumber

ProfilerEvent

NameTypeDefault
type"pluginHook" | "dispatch" | "reactCommit" | "paginationSession" | "paginationSkip" | "diagnostic" | "paginationLayoutCheck"
editorIdstring
atnumber

performance.now() at the start of the hook.

ProfilerLayoutBlockDrift

NameTypeDefault
nodeIdstring
typestring
pagenumber
expectednumber
actualnumber
driftnumber
stepnumber

ProfilerLayoutPageDrift

NameTypeDefault
pagenumber
nodeIdstring
driftnumber
stepnumber

ProfilerPaginationLayoutCheckEvent

NameTypeDefault
type"paginationLayoutCheck"
editorIdstring
sectionIdstring
status"ok" | "detected" | "recovered" | "unrecovered" | "gaveUp"

Verify outcome; gaveUp = still failing after the one automatic recovery.

pageCountnumber
expectedHeightnumber
actualHeightnumber
overflownumber
checkednumber

Blocks compared / blocks the engine placed but the DOM lookup missed.

missingnumber
pagesProfilerLayoutPageDrift[]
divergencesProfilerLayoutBlockDrift[]

The first blocks (document order) whose |step| exceeds 1px — capped.

recheck() => void

Re-run the DOM reconciliation and emit a fresh event (no recompute).

recompute() => void

Wipe the section’s measurement cache and force a clean full rebuild, then re-verify.

reportstring

Markdown report for pasting into an AI session (failure mode, first divergent block and its predecessor, surrounding pages, drift series). Built at emit time: a failed check wipes the measurement cache right after.

atnumber

ProfilerReactCommitEvent

NameTypeDefault
type"reactCommit"
editorIdstring
phase"mount" | "update" | "nested-update"
msnumber

React’s actualDuration: time spent rendering the committed update.

atnumber

returnDocChanges

Parameters:
NameTypeDefault
__0AppendTransactionProps
Returns:
ChangedRange[]

selectionSpansEntireNode

Parameters:
NameTypeDefault
selectionSelection | SelectionRange
Returns:
boolean

selectionToInsertionEnd

Parameters:
NameTypeDefault
trTransaction
startLennumber
biasnumber
Returns:
void

unWrap

Parameters:
NameTypeDefault
stateEditorState
dispatch(tr: Transaction) => void
getPos() => number
Returns:
void

Accessibility

checkAccessibility

Parameters:
NameTypeDefault
docNode
Returns:
AccessibilityFinding[]

Borders

borderStyleToCSS

NameTypeDefault
singlestring
dashedstring
dottedstring
doublestring
groovestring
ridgestring
insetstring
outsetstring
nonestring

createDefaultBorderOptions

Parameters:
This function does not accept any parameters.
Returns:
Mutable<Omit<IBorderOptions, "style"> & { style: BorderStyle; }>

createDefaultBorders

Parameters:
This function does not accept any parameters.
Returns:
Borders

deriveBorderOptions

Parameters:
NameTypeDefault
bordersBorders
Returns:
Mutable<Omit<IBorderOptions, "style"> & { style: BorderStyle; }>

generateTableBorderStyles

Parameters:
NameTypeDefault
bordersTableBorders
showOutlineboolean
Returns:
CSSProperties

getBordersAndNodeType

Parameters:
NameTypeDefault
stateEditorState
Returns:
{ nodeType: string | undefined; borders: Borders | undefined; }

getEffectiveCellBorders

Parameters:
NameTypeDefault
tableNode
tableMapTableMap
cellPosnumber
Returns:
Borders

parseBorderStyles

Parameters:
NameTypeDefault
borderCSSValuestring
Returns:
Borders

returnAllBorderStyles

Parameters:
NameTypeDefault
bordersBorders
Returns:
string[]

returnAllBorderStylesObject

Parameters:
NameTypeDefault
bordersBorders
showOutlineboolean
Returns:
CSSProperties

returnBorderClasses

Parameters:
NameTypeDefault
borderkeyof SelectedBorders | "none" | "horizontalRule"
currentBordersBorders
Returns:
string

returnBorderCSSValue

Parameters:
NameTypeDefault
optionsMutable<Omit<IBorderOptions, "style"> & { style: BorderStyle; }>
showOutlineboolean
Returns:
string | null

returnBorderStyles

Parameters:
NameTypeDefault
positionBorderPosition
optionsMutable<Omit<IBorderOptions, "style"> & { style: BorderStyle; }>
showOutlineboolean

Render a none/transparent border as the dashed guide instead of omitting it.

Returns:
string

returnCellBorderStyles

Parameters:
NameTypeDefault
bordersCellBorders
Returns:
string[]

Canvas Gradient

CanvasGradient

NameTypeDefault
fromstring

Any CSS color; resolved to rgb() by the browser before it reaches here.

tostring
directionCanvasGradientDirection

canvasGradientCss

Parameters:
NameTypeDefault
__0CanvasGradient
Returns:
string

CanvasVars

NameTypeDefault
solidstring | null
fromstring | null
tostring | null
directionstring

colorAtFraction

Parameters:
NameTypeDefault
fromRgb
toRgb
fractionnumber
Returns:
string

gapGradientCss

Parameters:
NameTypeDefault
gradientCanvasGradient
rect{ x: number; y: number; width: number; height: number; }
boxWidthnumber
boxHeightnumber
Returns:
string | null

gradientAngleDeg

Parameters:
NameTypeDefault
directionCanvasGradientDirection
boxWidthnumber
boxHeightnumber
Returns:
number

gradientFractionAt

Parameters:
NameTypeDefault
directionCanvasGradientDirection
xnumber
ynumber
widthnumber
heightnumber
Returns:
number

isCanvasGradientDirection

Parameters:
NameTypeDefault
valuestring
Returns:
boolean

isDarkScheme

Parameters:
NameTypeDefault
elElement
Returns:
boolean

parseColor

Parameters:
NameTypeDefault
valuestring
Returns:
Rgb | null

resolveCanvas

Parameters:
NameTypeDefault
__0CanvasVars
Returns:
ResolvedCanvas

ResolvedCanvas

NameTypeDefault
gradientCanvasGradient | null

Set when both stops parsed and the direction is a valid keyword.

surfacestring | null

The canvas’s flat color: the solid color, or the gradient’s from stop. Null leaves the stylesheet default. Backs the gap underlay and sub-editor surfaces.

Rgb

NameTypeDefault
rnumber
gnumber
bnumber
anumber

Code Block

isCodeBlockNode

Parameters:
NameTypeDefault
stateEditorState
Returns:
boolean

isInCodeBlock

Parameters:
NameTypeDefault
stateEditorState
Returns:
boolean

toLanguage

Parameters:
NameTypeDefault
languagestring
Returns:
string

toTheme

Parameters:
NameTypeDefault
themestring
Returns:
"dark" | "light"

Comments

getNodeCommentEntries

Parameters:
NameTypeDefault
nodeNode
Returns:
NodeCommentEntry[]

nodeTypeSupportsNodeComments

Parameters:
NameTypeDefault
typeNodeType
Returns:
boolean

Config Plugin

getAllowedFileHosts

Parameters:
NameTypeDefault
stateEditorState
Returns:
string[] | undefined

getToaster

Parameters:
NameTypeDefault
stateEditorState
Returns:
(message: ToastMessage) => void

isPrintMount

Parameters:
NameTypeDefault
stateEditorState
Returns:
boolean

Cross-References

toCrossRefType

Parameters:
NameTypeDefault
typestring
Returns:
CrossRefType

Document initialisation

compactDocJson

On a style-heavy DOCX import the compacted JSON is typically 2–3× smaller.

import { compactDocJson } from "@stesura/core/helpers"; const contentJson = JSON.stringify(compactDocJson(doc.toJSON(), schema));

See DOCX Import & Export → Persisting the imported document for the full pipeline.

Parameters:
NameTypeDefault
jsonJSONContent
schemaSchema<any, any>
Returns:
JSONContent

createDocContent

Parameters:
NameTypeDefault
schemaSchema<any, any>
blocksDocContentBlock[]
Returns:
Node

createInitialDoc

Parameters:
NameTypeDefault
schemaSchema<any, any>
initialContentstring | JSONContent | JSONContent[] | Node | Fragment
Returns:
Node

DocContentBlock

NameTypeDefault
type"heading" | "paragraph"
textstring

normalizeDocJsonIds

Parameters:
NameTypeDefault
jsonJSONContent
schemaSchema<any, any>
Returns:
JSONContent

Formatting

formattingAttrsToCss

Parameters:
NameTypeDefault
formattingIndentAttrs
Returns:
string[]

getDocumentDirection

Parameters:
NameTypeDefault
docNode
Returns:
TextDirection

getInheritedDirection

Parameters:
NameTypeDefault
$posResolvedPos
Returns:
TextDirection

getNodeAndStyleSheet

Parameters:
NameTypeDefault
stateEditorState
Returns:
{ node?: never; style?: never; } | { node: Node | undefined; style: StyleDefinition | undefined; }

getNodeFormattingFromNode

Parameters:
NameTypeDefault
nodeNode
stateEditorState
Returns:
NodeFormatting

getNodeFormattingFromSelection

Parameters:
NameTypeDefault
stateEditorState
Returns:
NodeFormatting

getResolvedDirection

Parameters:
NameTypeDefault
nodeNode
stateEditorState
Returns:
TextDirection

getSectionDirection

Parameters:
NameTypeDefault
sectionAttrsAttrs
docNode
Returns:
TextDirection

isTextDirection

Parameters:
NameTypeDefault
valueunknown
Returns:
boolean

parseLineHeight

Parameters:
NameTypeDefault
lineHeightstring | number
Returns:
string | number | null

parseSpecial

Parameters:
NameTypeDefault
specialstring
Returns:
IndentationSpecials

returnFormattingStyles

Parameters:
NameTypeDefault
optionsIndentAttrs
isNumberedboolean
followBy"tab" | "space" | "nothing"
tabStopnumber
Returns:
string

spacingAttrsToCss

Parameters:
NameTypeDefault
spacingSpacingAttrs
Returns:
string[]

spacingAttrsToReactStyle

Parameters:
NameTypeDefault
spacingSpacingAttrs
Returns:
CSSProperties

spacingToDom

Parameters:
NameTypeDefault
nodeNode
Returns:
{ style: string; "data-spacing-before": number | null; "data-spacing-after": number | null; "data-spacing-contextual": string | null; "data-margin-top": number | null; "data-padding-top": number | null; "data-padding-bottom": number | null; }

detectExistingVariants

Parameters:
NameTypeDefault
stateEditorState
sectionIdstring
Returns:
VariantPresence

findHeaderFooterContentInFragment

Parameters:
NameTypeDefault
fragmentFragment
sectionIdstring
target"header" | "footer"
variantstring
Returns:
Node | null

findHeaderFooterContentPos

Parameters:
NameTypeDefault
stateEditorState
sectionIdstring
target"header" | "footer"
variantHeaderFooterVariant
Returns:
{ node: Node; pos: number; } | undefined

getHeaderFooterContent

Parameters:
NameTypeDefault
stateEditorState
sectionIdstring
target"header" | "footer"
variantHeaderFooterVariant
Returns:
Fragment | undefined

Highlight

getHighlightPluginState

Parameters:
NameTypeDefault
stateEditorState
Returns:
HighlightPluginState | undefined

isHighlightColor

Parameters:
NameTypeDefault
valuestring
Returns:
boolean

Math

isMathNodeType

Parameters:
NameTypeDefault
typeNodeType
Returns:
boolean

marksToMathMarks

Parameters:
NameTypeDefault
marksreadonly Mark[]
Returns:
MathMarkJSON[]

mathNodeMarks

Parameters:
NameTypeDefault
nodeNode
Returns:
Mark[]

mathNodeStyle

Parameters:
NameTypeDefault
nodeNode
Returns:
MathStyle

MathStyle

NameTypeDefault
colorstring
fontSizenumber

Points, matching the textStyle attr.

bgColorstring

selectedMathNode

Parameters:
NameTypeDefault
stateEditorState
Returns:
Node | null

Files

effectiveRotation

Parameters:
NameTypeDefault
nativeDegreesnumber
attrFileRotation
Returns:
FileRotation

fileDisplayName

Parameters:
NameTypeDefault
attrsPick<FileAttrs, "name" | "src">
Returns:
string | null

fileKind

Parameters:
NameTypeDefault
attrsPick<FileAttrs, "mimeType">
Returns:
FileKind

isPdfFileNode

Parameters:
NameTypeDefault
nodeNode
Returns:
boolean

isPdfPreview

Parameters:
NameTypeDefault
nodeNode
configPdfPreviewConfig
Returns:
boolean

toFileRotation

Parameters:
NameTypeDefault
valueunknown
Returns:
FileRotation

Images

dataURIToFile

Parameters:
NameTypeDefault
dataURIstring
namestring
Returns:
File | null

getImageWrap

Parameters:
NameTypeDefault
wrapstring
Returns:
ImageWrap

imageAltFromDom

Parameters:
NameTypeDefault
imgElement
Returns:
ImageAltState

imageAltToDom

Parameters:
NameTypeDefault
stateImageAltState
Returns:
string | null

imageCropLayout

Parameters:
NameTypeDefault
widthnumber
heightnumber
cropImageCrop
Returns:
{ imgWidth: number; imgHeight: number; offsetLeft: number; offsetTop: number; } | null

imageTransformCss

Parameters:
NameTypeDefault
transformImageTransform
Returns:
string | undefined

ImageUploadReturn

NameTypeDefault
urlstring
altstring

sanitizeImageSrc

Parameters:
NameTypeDefault
srcstring
Returns:
string | null

setImageUploadStrategy

Parameters:
NameTypeDefault
strategy(file: File) => Promise<string>
Returns:
void

startImageUpload

Parameters:
NameTypeDefault
viewEditorView
fileOrUrlstring | File
altstring
schemaSchema<any, any>
posnumber
Returns:
void

toImageAlign

Parameters:
NameTypeDefault
alignstring
Returns:
ImageAlign

toImageAnchoredSide

Parameters:
NameTypeDefault
sidestring
Returns:
ImageAnchoredSide

toImageAnchoredWrap

Parameters:
NameTypeDefault
wrapstring
Returns:
ImageAnchoredWrap

toImageCrop

Parameters:
NameTypeDefault
rawunknown
Returns:
ImageCrop | null

toImageTransform

Parameters:
NameTypeDefault
rawunknown
Returns:
ImageTransform | null

Tab Stops

computeTabWidths

Parameters:
NameTypeDefault
__0{ start: number; tabs: MeasuredTab[]; stops: TabStop[] | null; defaultInterval?: number; hangingStop?: number | null; }
Returns:
TabLayout[]

hangingTabStop

Parameters:
NameTypeDefault
indentIndentAttrs
Returns:
number | null

MeasuredTab

NameTypeDefault
followingnumber

Width of the text after this tab, up to the next tab or the line’s end.

beforeDecimalnumber

Width of that text up to its first ”.”, for a decimal stop.

parseTabStops

Parameters:
NameTypeDefault
valueunknown
Returns:
TabStop[] | null

resolveTabStops

Parameters:
NameTypeDefault
nodeNode
styleSheetStyleSheet
Returns:
TabStop[] | null

TabLayout

NameTypeDefault
widthnumber
leaderTabStopLeader

Invisible Characters

isShowingInvisibleCharacters

Parameters:
NameTypeDefault
stateEditorState
Returns:
boolean

Language

getDocumentLanguage

Parameters:
NameTypeDefault
docNode
Returns:
string

getLanguageFromSelection

Parameters:
NameTypeDefault
stateEditorState
Returns:
string | undefined

getSelectionLanguage

Parameters:
NameTypeDefault
stateEditorState
Returns:
SelectionLanguage

getStyleLanguage

Parameters:
NameTypeDefault
styleSheetStyleSheet
styleSheetIdstring
Returns:
string | null

resolveBlockLanguage

Parameters:
NameTypeDefault
nodeNode
styleSheetStyleSheet
documentLanguagestring
Returns:
string

resolveLanguageAtPos

Parameters:
NameTypeDefault
stateEditorState
posnumber
Returns:
string

SelectionLanguage

NameTypeDefault
languagestring | undefined

The effective language, or undefined when the selection mixes several.

isExplicitboolean

true only when every block in the selection carries an explicit proofingLanguage. Inherited selections show the resolved language but let the UI mark it as following the style/document.

toLangTag

Parameters:
NameTypeDefault
valuestring
Returns:
string | null

Numbering

buildTabStopCss

Parameters:
NameTypeDefault
listConfigsRecord<string, ILevelsOptions[]>
Returns:
string

createListFormatOptions

Parameters:
NameTypeDefault
langstring
genderNumberGender
Returns:
readonly ListFormatOption[]

createPickableListFormatOptions

Parameters:
NameTypeDefault
langstring
genderNumberGender
Returns:
readonly ListFormatOption[]

findNextNumberedNode

Parameters:
NameTypeDefault
docNode
currentPosnumber
Returns:
NumberingAttrs | undefined

findPreviousNumberedNode

Parameters:
NameTypeDefault
docNode
currentPosnumber
Returns:
NumberingAttrs | undefined

getDocListConfigs

Parameters:
NameTypeDefault
stateEditorState
Returns:
Record<string, ILevelsOptions[]>

getEffectiveNumbering

Parameters:
NameTypeDefault
stateEditorState
nodeNode
Returns:
EffectiveNumbering | null

getEffectiveNumberingAtSelection

Parameters:
NameTypeDefault
stateEditorState
Returns:
EffectiveNumbering | null

getEffectiveNumberingAtSelectionAnchor

Parameters:
NameTypeDefault
stateEditorState
Returns:
EffectiveNumbering | null

getFormatOptionLabel

Parameters:
NameTypeDefault
optionListFormatOption
Returns:
string

getFormatPreviewLabel

Parameters:
NameTypeDefault
__0{ format: LevelFormat; number: number; lang?: string; }
Returns:
string

getLevelPreviewLabel

Parameters:
NameTypeDefault
__0{ text?: string; levels: ILevelsOptions[]; lang?: string; count?: { level: number; number: number; }; }
Returns:
string

getListConfig

Parameters:
NameTypeDefault
stateEditorState
listRefstring
Returns:
ILevelsOptions[] | undefined

getListConfigCustom

Parameters:
NameTypeDefault
stateEditorState
Returns:
Record<string, ILevelsOptions[]>

getListConfigs

Parameters:
NameTypeDefault
stateEditorState
Returns:
Record<string, ILevelsOptions[]>

getNumberingAttrsAtSelectionAnchor

Parameters:
NameTypeDefault
stateEditorState
Returns:
NumberingAttrs | undefined

getStyleForListLevel

Parameters:
NameTypeDefault
resolvedSheetStyleSheet
listRefstring
levelnumber
Returns:
string | undefined

getStyleNumbering

Parameters:
NameTypeDefault
resolvedSheetStyleSheet
styleIdstring
Returns:
StyleNumbering | null

getStyleNumberingBinding

Parameters:
NameTypeDefault
resolvedSheetStyleSheet
Returns:
StyleNumberingBinding

indentsAreEqual

Parameters:
NameTypeDefault
aIndentAttrs
bIndentAttrs
Returns:
boolean

isInheritedListRef

Parameters:
NameTypeDefault
listRefunknown
Returns:
boolean

listLevelsAreEqual

Parameters:
NameTypeDefault
levelsILevelsOptions[]
otherLevelsILevelsOptions[]
Returns:
boolean

localeHasNumberGenderVariants

Parameters:
NameTypeDefault
langstring
Returns:
boolean

nodeIsInInstance

Parameters:
NameTypeDefault
nodeNode
listRefstring
instanceIdstring
Returns:
boolean

nodeIsNumbered

Parameters:
NameTypeDefault
attrsAttrs
Returns:
boolean

numberingListRef

Parameters:
NameTypeDefault
numberingNumberingAttrs
Returns:
string | null | undefined

renderLevelNumber

Parameters:
NameTypeDefault
levelConfigPick<ILevelsOptions, "format" | "gender" | "casing">
valuenumber
langstring
Returns:
string

resolveEffectiveNumbering

Parameters:
NameTypeDefault
resolvedSheetStyleSheet
nodeNode
Returns:
EffectiveNumbering | null

resolveTabStopAtSelection

Parameters:
NameTypeDefault
stateEditorState
Returns:
number | undefined

returnComputedListRef

Parameters:
NameTypeDefault
__0{ state: EditorState; levels: ILevelsOptions[]; prevListRef: string | undefined; }
Returns:
string

StyleNumberingBinding

NameTypeDefault
clear() => void
delete(key: string) => boolean
forEach(callbackfn: (value: Map<number, string>, key: string, map: Map<string, Map<number, string>>) => void, thisArg?: any) => void
get(key: string) => Map<number, string> | undefined
has(key: string) => boolean
set(key: string, value: Map<number, string>) => StyleNumberingBinding
sizenumber
entries() => MapIterator<[string, Map<number, string>]>
keys() => MapIterator<string>
values() => MapIterator<Map<number, string>>
__@iterator@36() => MapIterator<[string, Map<number, string>]>
__@toStringTag@4720string

styleNumbersNode

Parameters:
NameTypeDefault
resolvedSheetStyleSheet
nodeNode
Returns:
boolean

Page Number

collectPageNumbering

Parameters:
NameTypeDefault
docNode
Returns:
Map<string, PageNumberingAttrs>

formatPageNumber

Parameters:
NameTypeDefault
nnumber
formatPageNumberFormat
Returns:
string

sectionFirstPageNumbers

Parameters:
NameTypeDefault
pageCountsMap<string, number>
pageNumberingMap<string, PageNumberingAttrs>
Returns:
Map<string, { first: number; format: PageNumberFormat; }>

toPageType

Parameters:
NameTypeDefault
pageTypestring
Returns:
PageNumberType

Recreate Transform

recreateTransform

Parameters:
NameTypeDefault
fromDocNode
toDocNode
optionsOptions

complexSteps (default true) emits markup and mark steps instead of plain replacements; wordDiffs (default false) diffs text by word rather than by character; simplifyDiff (default true) merges adjacent steps afterwards.

Returns:
Transform

RecreateTransformOptions

NameTypeDefault
complexStepsboolean
wordDiffsboolean
simplifyDiffboolean

classifySearchMatch

Parameters:
NameTypeDefault
stateEditorState
posnumber
Returns:
SearchMatchRegion

CommentSearchMatch

NameTypeDefault
threadIdstring
commentIdstring
startnumber

First occurrence range in the comment’s flattened text.

endnumber

CommentSearchQueryConfig

NameTypeDefault
caseSensitiveboolean
wholeWordboolean
literalboolean

When true, don’t unquote \n/\r/\t in the search string.

findCommentMatches

Parameters:
NameTypeDefault
threadsreadonly Thread[]
configCommentSearchQueryConfig
Returns:
CommentSearchMatch[]

flattenCommentBody

Parameters:
NameTypeDefault
bodyJSONContent
Returns:
string

getMatchHighlights

Parameters:
NameTypeDefault
stateEditorState
Returns:
DecorationSet

getSearchState

Parameters:
NameTypeDefault
stateEditorState
Returns:
SearchState | undefined

SearchMatchRegion

NameTypeDefault
kind"body" | "footnote" | "endnote" | "headerFooter" | "comment"

setSearchState

Parameters:
NameTypeDefault
trTransaction
querySearchQuery
range{ from: number; to: number; }
Returns:
Transaction

Plugins

filterPlugins

Parameters:
NameTypeDefault
pluginsPlugin<any>[]
excludePluginsstring[]
Returns:
Plugin<any>[]

getPluginKeyLabel

Parameters:
NameTypeDefault
pPlugin<any>
Returns:
string | undefined

Section

createHeaderFooterContent

Parameters:
NameTypeDefault
schemaSchema<any, any>
variantHeaderFooterVariant
Returns:
Node | undefined

createSection

Parameters:
NameTypeDefault
schemaSchema<any, any>
contentToInsertSlice
currentSectionNode
Returns:
false | Node

findParentSection

Parameters:
NameTypeDefault
stateEditorState
Returns:
FindResult

findParentSectionAtPos

Parameters:
NameTypeDefault
stateEditorState
posnumber
Returns:
FindResult

findSectionById

Parameters:
NameTypeDefault
stateEditorState
sectionIdstring
Returns:
{ node: Node; pos: number; } | undefined

getDefaultSectionContentWidth

Parameters:
This function does not accept any parameters.
Returns:
number

getSectionAttrsById

Parameters:
NameTypeDefault
stateEditorState
sectionIdstring
Returns:
(SectionAttrs & { id: string; }) | undefined

getSectionContentWidth

Parameters:
NameTypeDefault
sectionAttrsSectionAttrs
Returns:
number | undefined

getSectionContentWidthAtPos

Parameters:
NameTypeDefault
stateEditorState
posnumber
Returns:
number | undefined

getSectionRangesAndWidth

Parameters:
NameTypeDefault
stateEditorState
Returns:
SectionRange[]

getWidthOfSectionAtPos

Parameters:
NameTypeDefault
sectionRangesSectionRange[]
posnumber
Returns:
number

GalleryStyle

NameTypeDefault
idstring
styleStyleDefinition

getGalleryStyles

Parameters:
NameTypeDefault
styleSheetStyleSheet
Returns:
GalleryStyle[]

getQuickStyles

Parameters:
NameTypeDefault
styleSheetStyleSheet
usedStyleIdsSet<string>
activeStyleIdstring
Returns:
GalleryStyle[]

getUsedStyleIds

Parameters:
NameTypeDefault
stateOrDocEditorState | Node
Returns:
Set<string>

Style Sheet

generateStyleSheetCSS

Parameters:
NameTypeDefault
styleSheetStyleSheet
editorIdstring
Returns:
string

getResolvedStyleDefinition

Parameters:
NameTypeDefault
stateEditorState
styleDefinitionIdstring
Returns:
StyleDefinition | undefined

getResolvedStyleSheet

Parameters:
NameTypeDefault
stateEditorState
Returns:
StyleSheet | undefined

getResolvedStyleSheetFromDoc

Parameters:
NameTypeDefault
docNode
Returns:
StyleSheet

getSelectionCharacterStyleId

Parameters:
NameTypeDefault
stateEditorState
Returns:
string | undefined

getStyleOutlineLevel

Parameters:
NameTypeDefault
styleSheetStyleSheet
styleSheetIdstring
Returns:
number | null

getStylePaginationProps

Parameters:
NameTypeDefault
resolvedStyleStyleDefinition
Returns:
StylePaginationProps

getStyleSheet

Parameters:
NameTypeDefault
stateOrDocEditorState | Node
Returns:
StyleSheet

getStyleSheetOverrides

Parameters:
NameTypeDefault
stateOrDocEditorState | Node
Returns:
StyleSheet

isChangingHeadingLevel

Parameters:
NameTypeDefault
nodeNode
newLevelnumber
Returns:
boolean

isCharacterStyle

Parameters:
NameTypeDefault
styleStyleDefinition
Returns:
boolean

mergeStyleDefinition

Parameters:
NameTypeDefault
baseStyleDefinition
overlayPartial<StyleDefinition>
Returns:
StyleDefinition

mergeStyleSheets

Parameters:
NameTypeDefault
baseStyleSheet
overlayStyleSheet
Returns:
StyleSheet

normalizeStyleDefinition

Parameters:
NameTypeDefault
styleIdstring
styleDefPartial<StyleDefinition>
Returns:
Partial<StyleDefinition>

paragraphStyleIds

Parameters:
NameTypeDefault
styleSheetStyleSheet
Returns:
string[]

paragraphStylesToCss

Parameters:
NameTypeDefault
paragraphStyleParagraphStyle
Returns:
string[]

pruneStyleAgainstBase

Parameters:
NameTypeDefault
overridePartial<StyleDefinition>
basePartial<StyleDefinition> | undefined
Returns:
Partial<StyleDefinition> | undefined

pruneStyleAgainstDefault

Parameters:
NameTypeDefault
styleIdstring
overridePartial<StyleDefinition>
Returns:
Partial<StyleDefinition> | undefined

resolveStyleDefinition

Parameters:
NameTypeDefault
styleSheetStyleSheet
styleNamestring
prevBasedOnstring[]
Returns:
StyleDefinition

resolveStyleSheet

Parameters:
NameTypeDefault
styleSheetStyleSheet
Returns:
StyleSheet

shouldReplaceEntireNode

Parameters:
NameTypeDefault
nodeNode
newElementTypestring
newLevelnumber
Returns:
boolean

styleIsHeading

Parameters:
NameTypeDefault
styleSheetStyleSheet
styleSheetIdstring
Returns:
boolean

textStyleToCss

Parameters:
NameTypeDefault
textStyleTextStyle
Returns:
string[]

Tables

findTable

Parameters:
NameTypeDefault
$posResolvedPos
Returns:
FindNodeResult | null

fitTableColumns

Parameters:
NameTypeDefault
tableNode
availableWidthnumber

content width of the destination (page width − margins).

minWidthnumber

floor for every column, px.

Returns:
number[]

one px width per grid column (length = TableMap.width).

getColumnsWidths

Parameters:
NameTypeDefault
tableMapTableMap
tableNode
Returns:
(number | null)[]

getColumnsWidthsFromSelection

Parameters:
NameTypeDefault
stateEditorState
Returns:
number[] | undefined

getRowHeightFromSelection

Parameters:
NameTypeDefault
stateEditorState
Returns:
number | undefined

getSelectedColumIndexes

Parameters:
NameTypeDefault
stateEditorState
Returns:
number[]

getTableWidth

Parameters:
NameTypeDefault
columnWidths(number | null)[]
Returns:
number | null

isInTable

Parameters:
NameTypeDefault
stateEditorState
Returns:
boolean

isWholeTableSelected

Parameters:
NameTypeDefault
stateEditorState
testOnlyboolean

Short-circuits to “the selection is a CellSelection inside a table”, skipping the coverage check. For callers that only need to know a table is involved.

Returns:
boolean

loopThroughCells

Parameters:
NameTypeDefault
tableFindNodeResult
tableMapTableMap
callBack({ node, pos, colIndex, rowIndex, }: { node: Node; pos: number; colIndex: number; rowIndex: number; }) => boolean | void
Returns:
void

rowHasMergedCellsVertically

Parameters:
NameTypeDefault
tableMapTableMap
rowIndexnumber
Returns:
boolean

selectionCell

Parameters:
NameTypeDefault
stateEditorState
Returns:
ResolvedPos

setTableColumnWidths

Parameters:
NameTypeDefault
tableNode
columnsnumber[]
Returns:
Node

Text Style

capsFromCss

Parameters:
NameTypeDefault
textTransformstring
fontVariantstring
Returns:
Caps | null

capsToCss

Parameters:
NameTypeDefault
capsCaps
Returns:
string[]

EffectiveFontFamily

NameTypeDefault
valuestring | null

The font family the selection effectively renders with; null only while mixed.

mixedboolean

True when a ranged selection spans runs with different effective fonts.

source"mark" | "style" | "partial"

Where the value comes from: “mark” = an explicit textStyle mark on every run (pinned — survives stylesheet edits), “style” = the paragraph style / default on every run (follows stylesheet edits), “partial” = a ranged selection mixing both sources (even when they resolve to the same font).

getEffectiveFontFamily

Parameters:
NameTypeDefault
stateEditorState
Returns:
EffectiveFontFamily

getEffectiveFontSize

Parameters:
NameTypeDefault
stateEditorState
Returns:
{ value: number | null; mixed: boolean; }

getNodeBackgroundColor

Parameters:
NameTypeDefault
stateEditorState
Returns:
string | null

getStyleSheetBackgroundColor

Parameters:
NameTypeDefault
stateEditorState
Returns:
string | null

getTextStyles

Parameters:
NameTypeDefault
stateEditorState
Returns:
GetTextStylesResult

isInheritedOrDefault

Parameters:
NameTypeDefault
valuestring
Returns:
boolean

isOff

Parameters:
NameTypeDefault
attrs{ off?: readonly TextStyleOff[] | null; }
namestring
Returns:
boolean

resolveFontFamily

Parameters:
NameTypeDefault
rawstring
Returns:
string | null

withOff

Parameters:
NameTypeDefault
attrsT
nameTextStyleOff
onboolean
Returns:
T & { off: TextStyleOff[] | null; }

Other exports

ExportTypeDescription
CanvasGradientDirection"to bottom" | "to top" | "to right" | "to left" | "to bottom right" | "to bottom left" | "to top right" | "to top left"Directions a theme may declare. Mirrors the CSS to … keywords.
CASED_LIST_FORMATSreadonly LevelFormatValue[]The spelled-out formats whose output depends on casing.
CellSelectionclassRe-exported from prosemirror-tables.
cssStyleToBorderRecord<string, BorderStyle>Inverse of borderStyleToCSS, for parsing pasted CSS.
DEFAULT_FILE_HEIGHT600Preview height (px) of an unpaginated file node whose height is unset or zero.
FILE_ROTATIONSreadonly FileRotation[][0, 90, 180, 270], in the order the chrome steps through them.
GENDERED_LIST_FORMATSreadonly LevelFormatValue[]The formats whose output depends on gender.
ProfilerPluginHookKind"stateApply" | "appendTr" | "filterTr"Which plugin hook a pluginHook timing was measured on.
RecreateTransformclass (type-only export)Implementation behind recreateTransform.
TableMapclassRe-exported from prosemirror-tables.
TEXT_STYLE_OFFreadonly TextStyleOff[]Canonical order of textStyle.off; write it through withOff.
Last updated on