API reference / Common / Engine types / TextParagraphProperty
Type Alias: TextParagraphProperty
ts
type TextParagraphProperty =
| {
styleRef: TextParagraphStyleId;
}
| {
level: number;
}
| {
outlineLevel: number;
}
| {
align: TextParagraphAlign;
}
| {
rtl: boolean;
}
| {
direction: TextDirection;
}
| {
fontAlign: TextFontAlign;
}
| {
indentLeft: number;
}
| {
indentRight: number;
}
| {
indentFirstLine: number;
}
| {
mirrorIndents: boolean;
}
| {
lineSpacing: TextLineSpacing;
}
| {
spacingBefore: TextParagraphSpacing;
}
| {
spacingAfter: TextParagraphSpacing;
}
| {
contextualSpacing: boolean;
}
| {
tabStops: TextTabStop[];
}
| {
defaultTabSize: number;
}
| {
numbering: TextNumbering;
}
| {
keepWithNext: boolean;
}
| {
keepLinesTogether: boolean;
}
| {
pageBreakBefore: boolean;
}
| {
widowOrphanControl: boolean;
}
| {
suppressLineNumbers: boolean;
}
| {
suppressAutoHyphens: boolean;
}
| {
borders: TextParagraphBorders;
}
| {
shading: PaintFill;
}
| {
lineBreakEastAsian: boolean;
}
| {
lineBreakLatin: boolean;
}
| {
hangingPunctuation: boolean;
}
| {
topLinePunctuation: boolean;
}
| {
autoSpaceLatin: boolean;
}
| {
autoSpaceNumeric: boolean;
}
| {
snapToGrid: boolean;
}
| {
defaultCharacterProperties: TextCharacterProperties;
};One specified paragraph property — a [TextParagraphPropertyKey] carrying its value. The value-bearing twin of the key: set takes one, iter yields them, and the Loro mark builder maps each to a (key, value).
The wide payloads — the bullet, the six border edges, the shading fill — are boxed so the enum (and every enum that carries it) stays small; the tab list and the nested character properties are already Vec-backed, so boxing them would only add a hop.