@a3s-lab/office 0.28.0 → 0.29.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/README.md +27 -1
  2. package/dist/0~1403.js +1 -1
  3. package/dist/0~4980.js +1 -1
  4. package/dist/0~5093.js +64 -5
  5. package/dist/0~7043.js +241 -241
  6. package/dist/0~7048.js +1 -1
  7. package/dist/0~7614.js +1 -1
  8. package/dist/0~document-editor.js +433 -10
  9. package/dist/0~presentation-editor.js +1 -1
  10. package/dist/0~spreadsheet-editor.js +1 -2
  11. package/dist/0~work-docx-export.js +141 -3
  12. package/dist/0~work-docx-import.js +5 -3
  13. package/dist/0~work-office-diagnostics.js +46 -3
  14. package/dist/0~work-pptx-export.js +1 -1
  15. package/dist/0~work-pptx-import.js +1 -1
  16. package/dist/0~work-presentation-charts.js +1 -1
  17. package/dist/1544.js +1 -1
  18. package/dist/4104.js +2 -2
  19. package/dist/4121.js +1510 -0
  20. package/dist/6282.js +59 -684
  21. package/dist/8715.js +1 -1
  22. package/dist/core.js +1 -1
  23. package/dist/index.js +1 -1
  24. package/dist/internal/features/work/editors/document-command-catalog.d.ts +9 -0
  25. package/dist/internal/features/work/editors/document-font-dialog-model.d.ts +5 -2
  26. package/dist/internal/features/work/editors/document-font-dialog-run-border-model.d.ts +24 -0
  27. package/dist/internal/features/work/editors/document-font-dialog-run-border-section.d.ts +10 -0
  28. package/dist/internal/features/work/work-document-character-formatting.d.ts +4 -0
  29. package/dist/internal/features/work/work-document-format-changes.d.ts +1 -0
  30. package/dist/internal/features/work/work-document-run-border.d.ts +11 -0
  31. package/dist/internal/features/work/work-document-word-line-metrics.d.ts +1 -0
  32. package/dist/internal/features/work/work-docx-run-border-diagnostics.d.ts +3 -0
  33. package/dist/internal/features/work/work-docx-run-border-export.d.ts +17 -0
  34. package/dist/internal/features/work/work-docx-run-border.d.ts +20 -0
  35. package/dist/internal/features/work/work-docx-run-formatting-import.d.ts +2 -0
  36. package/dist/office-kernel.wasm +0 -0
  37. package/dist/styles.css +31 -0
  38. package/docs/latest/en/browser-editor-architecture.md +22 -0
  39. package/package.json +4 -1
  40. package/dist/5184.js +0 -662
  41. package/dist/9424.js +0 -16
package/README.md CHANGED
@@ -110,7 +110,7 @@ baseline rather than one specific release.
110
110
 
111
111
  | Capability | A3S Office today | Traditional Office baseline |
112
112
  | --- | --- | --- |
113
- | Text, paragraphs, lists, and styles | **Supported** — structured editing, independent native ASCII, high ANSI, East Asian, and complex-script font slots with direct/theme identity, native all-caps and small-caps effects, exact DOCX character scale plus signed spacing, half-point kerning thresholds, all five native East Asian emphasis marks, native hidden text with explicit visible resets, four independent native outline/shadow/emboss/imprint effects with conflict-safe authoring, and baseline position in one advanced font dialog, all 18 native DOCX underline values with direct or theme color identity, independent native single/double strikethrough with explicit resets, formatting revisions, clipboard, format painter, and undo/redo | Mature authoring with a broader long-tail style and typography catalog |
113
+ | Text, paragraphs, lists, and styles | **Supported** — structured editing, independent native ASCII, high ANSI, East Asian, and complex-script font slots with direct/theme identity, native all-caps and small-caps effects, exact DOCX character scale plus signed spacing, half-point kerning thresholds, all five native East Asian emphasis marks, native hidden text with explicit visible resets, native character borders with 25 visible line styles plus `nil` and `none`, direct or theme color, width, spacing, shadow, and frame semantics, four independent native outline/shadow/emboss/imprint effects with conflict-safe authoring, and baseline position in one advanced font dialog, all 18 native DOCX underline values with direct or theme color identity, independent native single/double strikethrough with explicit resets, formatting revisions, clipboard, format painter, and undo/redo | Mature authoring with a broader long-tail style and typography catalog |
114
114
  | Page layout and rendering | **Partial** — sections, margins, page size, columns, headers/footers, fields, and live pagination | Desktop-grade pagination, print layout, and vector output |
115
115
  | Tables, pictures, and equations | **Partial** — rich table geometry, floating pictures, crop/wrap, and structured OMML | Broader drawings, text boxes, charts, WordArt, and SmartArt |
116
116
  | Comments, revisions, and collaboration | **Partial** — comments, suggestions, text/format revisions, decisions, Yjs presence, and host relay contracts | Full revision families plus integrated sharing and review services |
@@ -732,6 +732,31 @@ model. CSS provides bounded browser and PDF paint projections while eligible
732
732
  paragraphs remain on the Worker/WASM layout path. The Playground's **文字效果**
733
733
  template demonstrates all four effects and the conflict-safe transition.
734
734
 
735
+ Native Writer character borders retain all 25 visible WordprocessingML
736
+ `w:bdr` line styles plus explicit `nil` and `none` resets. The typed model keeps
737
+ direct or theme colors with tint and shade, widths from 2 through 96
738
+ eighth-points, text spacing from 0 through 31 points, and explicit shadow and
739
+ frame flags. The Home Font group exposes a direct Character Border toggle, and
740
+ the shared `Cmd/Ctrl+D` Advanced Font Settings dialog distinguishes mixed,
741
+ Follow style, explicit no-border, and editable border states. Line style,
742
+ color, width, spacing, shadow, and frame changes apply through one transaction
743
+ and one Undo record; Format Painter uses the same mark. Traditional Office
744
+ defines no dedicated shortcut for this command, so A3S Office does not invent
745
+ one.
746
+
747
+ Document defaults, paragraph and character styles, body text, headers,
748
+ footers, footnotes, endnotes, formatting revisions, strict or transitional
749
+ DOCX import, exact export, and reopen share the model. Malformed, duplicated,
750
+ misplaced, namespace-spoofed, child- or text-bearing, extra-attribute,
751
+ art-style, out-of-range, and unresolved-theme input fails closed. The DOM uses
752
+ `data-office-run-border`; CSS renders every edge with bounded line-style,
753
+ padding, shadow, and cloned-fragment projections. Visible character borders use
754
+ browser-authoritative line measurement because border and padding alter inline
755
+ geometry, while explicit `nil` and `none` remain eligible for Worker/WASM
756
+ layout. Browser and PDF paint are bounded visual approximations; the OOXML
757
+ semantics remain exact. The Playground's **字符边框** template exercises the
758
+ complete authoring and one-step Undo path.
759
+
735
760
  Supported native OMML equations now survive as bounded structured objects in
736
761
  the document body, headers, footers, footnotes, and endnotes. Inline and display
737
762
  math, Unicode runs with literal/normal-text semantics, math script/style,
@@ -1432,6 +1457,7 @@ without hard-coded return URLs.
1432
1457
 
1433
1458
  - [Live Playground](https://a3s-lab.github.io/Office/)
1434
1459
  - [Documentation center](https://a3s-lab.github.io/Office/docs/)
1460
+ - [A3S Office 0.29.0 documentation](https://a3s-lab.github.io/Office/docs/0.29.0/)
1435
1461
  - [A3S Office 0.28.0 documentation](https://a3s-lab.github.io/Office/docs/0.28.0/)
1436
1462
  - [A3S Office 0.27.0 documentation](https://a3s-lab.github.io/Office/docs/0.27.0/)
1437
1463
  - [A3S Office 0.26.0 documentation](https://a3s-lab.github.io/Office/docs/0.26.0/)
package/dist/0~1403.js CHANGED
@@ -1,4 +1,4 @@
1
- import { createOfficeId as createWorkId } from "./5184.js";
1
+ import { createOfficeId as createWorkId } from "./4121.js";
2
2
  function expandPresentationGroupSelection(elements, selectedIds) {
3
3
  const byId = new Map();
4
4
  const membersByGroupId = new Map();
package/dist/0~4980.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import jszip from "jszip";
2
2
  import { documentNoteKey } from "./6282.js";
3
- import { directChild, xmlNamespacePrefix, attribute, parseXml } from "./5184.js";
3
+ import { directChild, xmlNamespacePrefix, attribute, parseXml } from "./4121.js";
4
4
  import { DEFAULT_DOCUMENT_PAGE_COLOR, normalizeDocumentPageColor } from "./0~work-document-page-color.js";
5
5
  const MAX_NATIVE_ID = 2147483647;
6
6
  const MIN_NATIVE_COMMENT_ID = -2147483648;
package/dist/0~5093.js CHANGED
@@ -1,6 +1,6 @@
1
- import { descendants, directChildren as work_ooxml_package_directChildren, xmlNamespacePrefix, directChild, attribute as work_ooxml_package_attribute, childPath } from "./5184.js";
1
+ import { DOCUMENT_PARAGRAPH_BORDER_STYLES, normalizeDocumentParagraphBorders as work_document_paragraph_borders_normalizeDocumentParagraphBorders, DOCUMENT_PARAGRAPH_BORDER_EDGES, documentRunBorderDomAttributes, normalizeDocumentParagraphBorder, normalizeDocumentRunBorder, serializeDocumentRunBorder, descendants, attribute as work_ooxml_package_attribute, serializeDocxThemeReference, directChildren as work_ooxml_package_directChildren, xmlNamespacePrefix, documentParagraphBordersDomAttributes, directChild, childPath } from "./4121.js";
2
2
  import { docxThemeFont, XML_NAMESPACE as work_docx_settings_xml_XML_NAMESPACE, XMLNS_NAMESPACE as work_docx_settings_xml_XMLNS_NAMESPACE, STRICT_WORDPROCESSING_NAMESPACE, docxCharacterSpacingTwipsFromProperties, parseBoundedDocxInteger, xmlAttributeLocalName, docxCharacterScalePercentFromProperties, resolveDocxEmphasisMark, docxCharacterPositionHalfPointsFromProperties, docxThemeColor, parseDocxParagraphDefaultCollapsed, resolveDocxKerningThresholdHalfPoints, resolveDocxThemeResolver as work_docx_theme_resolveDocxThemeResolver, DOCX_WORDPROCESSING_NAMESPACES, xmlAttributeNamespace, parseDocxTwipsMeasure } from "./0~7043.js";
3
- import { normalizeDocumentEmphasisMark, documentWordLineHeightFactor, normalizeDocumentPageBorders, normalizeDocumentParagraphBorder, documentCharacterPositionDomAttributes, DOCUMENT_PAGE_BORDER_EDGES, normalizeDocumentTabStops, documentTextCaseFromWordFlags, DOCUMENT_PARAGRAPH_SHADING_PATTERNS, documentStrikeDomAttributes, documentAutoLineHeight, documentScriptFontFallbackSlots, normalizeDocumentUnderlineColor, documentScriptFontsDomAttributes, documentKerningDomAttributes, documentCharacterScaleDomAttributes, documentParagraphShadingDomAttributes, serializeDocxThemeReference, documentParagraphBordersDomAttributes, normalizeDocumentScriptFontHint, serializeDocumentParagraphFormatting, normalizeDocumentPaperSource, documentEquationText, normalizeDocumentScriptFonts, documentLegacyTextEffectsDomAttributes, documentLegacyTextEffectsConflict, DOCUMENT_PARAGRAPH_BORDER_STYLES, normalizeDocumentParagraphBorders as work_document_paragraph_borders_normalizeDocumentParagraphBorders, DOCUMENT_PARAGRAPH_BORDER_EDGES, normalizeDocumentParagraphIndent, documentScriptFontFamily, normalizeDocumentEquation, normalizeDocumentThemeFont, documentCharacterSpacingDomAttributes, renderDocumentAutoLineHeight, documentUnderlineDomAttributes, normalizeDocumentUnderlineStyle, normalizeDocumentFontName, applyDocumentTextCaseStyle, documentHiddenTextDomAttributes, importedDocumentCharacterFormatting, DOCUMENT_LEGACY_TEXT_EFFECT_NAMES, createDocumentEquationElement, normalizeDocumentPageGeometry, serializeDocumentTabStops, documentEmphasisMarkDomAttributes, normalizeDocumentPageMargins, documentScriptFontSegments } from "./6282.js";
3
+ import { normalizeDocumentEmphasisMark, documentWordLineHeightFactor, normalizeDocumentPageBorders, documentCharacterPositionDomAttributes, DOCUMENT_PAGE_BORDER_EDGES, normalizeDocumentTabStops, documentTextCaseFromWordFlags, DOCUMENT_PARAGRAPH_SHADING_PATTERNS, documentStrikeDomAttributes, documentAutoLineHeight, documentScriptFontFallbackSlots, normalizeDocumentUnderlineColor, documentScriptFontsDomAttributes, documentKerningDomAttributes, documentCharacterScaleDomAttributes, documentParagraphShadingDomAttributes, normalizeDocumentScriptFontHint, serializeDocumentParagraphFormatting, normalizeDocumentPaperSource, documentEquationText, normalizeDocumentScriptFonts, documentLegacyTextEffectsDomAttributes, documentLegacyTextEffectsConflict, documentCharacterSpacingDomAttributes, normalizeDocumentParagraphIndent, documentScriptFontFamily, normalizeDocumentThemeFont, normalizeDocumentEquation, renderDocumentAutoLineHeight, documentUnderlineDomAttributes, normalizeDocumentUnderlineStyle, normalizeDocumentFontName, applyDocumentTextCaseStyle, documentHiddenTextDomAttributes, importedDocumentCharacterFormatting, DOCUMENT_LEGACY_TEXT_EFFECT_NAMES, createDocumentEquationElement, normalizeDocumentPageGeometry, serializeDocumentTabStops, documentEmphasisMarkDomAttributes, normalizeDocumentPageMargins, documentScriptFontSegments } from "./6282.js";
4
4
  function docxCaptionSequenceKind(instruction) {
5
5
  const identifier = /^\s*SEQ\s+([^\s\\]+)/i.exec(instruction)?.[1]?.toLowerCase();
6
6
  if (!identifier) return null;
@@ -4907,6 +4907,57 @@ function textNodes(root) {
4907
4907
  while(walker.nextNode())nodes.push(walker.currentNode);
4908
4908
  return nodes;
4909
4909
  }
4910
+ function inspectDocxRunBorder(properties, themeSource) {
4911
+ return inspectDocxRunBorderWithTheme(properties, work_docx_theme_resolveDocxThemeResolver(themeSource));
4912
+ }
4913
+ function resolveDocxRunBorder(propertySources, themeSource) {
4914
+ const theme = work_docx_theme_resolveDocxThemeResolver(themeSource);
4915
+ let border;
4916
+ let invalidCount = 0;
4917
+ let spoofedCount = 0;
4918
+ for (const properties of propertySources){
4919
+ const inspection = inspectDocxRunBorderWithTheme(properties, theme);
4920
+ spoofedCount += inspection.spoofedCount;
4921
+ if ('valid' === inspection.status) border = inspection.value;
4922
+ else if ('invalid' === inspection.status) {
4923
+ invalidCount += 1;
4924
+ border = {
4925
+ style: 'nil'
4926
+ };
4927
+ }
4928
+ }
4929
+ return {
4930
+ border,
4931
+ invalidCount,
4932
+ spoofedCount
4933
+ };
4934
+ }
4935
+ function inspectDocxRunBorderWithTheme(properties, theme) {
4936
+ if (!properties) return {
4937
+ status: 'absent',
4938
+ spoofedCount: 0
4939
+ };
4940
+ const matches = work_ooxml_package_directChildren(properties, 'bdr');
4941
+ if (!matches.length) return {
4942
+ status: 'absent',
4943
+ spoofedCount: 0
4944
+ };
4945
+ const native = matches.filter((element)=>element.namespaceURI === properties.namespaceURI);
4946
+ const spoofedCount = matches.length - native.length;
4947
+ if (1 !== matches.length || 1 !== native.length) return {
4948
+ status: 'invalid',
4949
+ spoofedCount
4950
+ };
4951
+ const parsed = normalizeDocumentRunBorder(parseDocxBorderElement(native[0], theme));
4952
+ return parsed ? {
4953
+ status: 'valid',
4954
+ value: parsed,
4955
+ spoofedCount
4956
+ } : {
4957
+ status: 'invalid',
4958
+ spoofedCount
4959
+ };
4960
+ }
4910
4961
  const work_docx_paragraph_shading_import_WORD_NAMESPACE = 'http://schemas.openxmlformats.org/wordprocessingml/2006/main';
4911
4962
  const work_docx_paragraph_shading_import_XML_NAMESPACE = 'http://www.w3.org/XML/1998/namespace';
4912
4963
  const work_docx_paragraph_shading_import_XMLNS_NAMESPACE = 'http://www.w3.org/2000/xmlns/';
@@ -6892,7 +6943,8 @@ const SUPPORTED_RUN_PROPERTY_CHANGE_CHILDREN = new Set([
6892
6943
  'cs',
6893
6944
  'rtl',
6894
6945
  'em',
6895
- 'vertAlign'
6946
+ 'vertAlign',
6947
+ 'bdr'
6896
6948
  ]);
6897
6949
  function createImportedDocxRunFormattingMarkerState(documents) {
6898
6950
  return {
@@ -6997,6 +7049,7 @@ function resolvedRunFormatting(propertySources, theme, runText, requestedFontSlo
6997
7049
  const emphasisMark = resolveDocxEmphasisMark(propertySources);
6998
7050
  const hiddenText = resolveDocxHiddenText(propertySources);
6999
7051
  const legacyTextEffects = resolveDocxLegacyTextEffects(propertySources);
7052
+ const runBorder = resolveDocxRunBorder(propertySources, theme).border;
7000
7053
  for (const properties of propertySources){
7001
7054
  bold = overriddenBoolean(bold, onOffProperty(properties, 'b'));
7002
7055
  complexBold = overriddenBoolean(complexBold, onOffProperty(properties, 'bCs'));
@@ -7154,6 +7207,9 @@ function resolvedRunFormatting(propertySources, theme, runText, requestedFontSlo
7154
7207
  } : {},
7155
7208
  ...textCase ? {
7156
7209
  textCase
7210
+ } : {},
7211
+ ...runBorder ? {
7212
+ runBorder
7157
7213
  } : {}
7158
7214
  };
7159
7215
  }
@@ -7190,6 +7246,8 @@ function formattingMarkup(document, formatting) {
7190
7246
  if (void 0 !== formatting.emphasisMark) for (const [name, value] of Object.entries(documentEmphasisMarkDomAttributes(formatting.emphasisMark)))if ('style' === name) span.style.cssText += `; ${value}`;
7191
7247
  else span.setAttribute(name, value);
7192
7248
  if (void 0 !== formatting.hiddenText) for (const [name, value] of Object.entries(documentHiddenTextDomAttributes(formatting.hiddenText)))span.setAttribute(name, value);
7249
+ if (formatting.runBorder) for (const [name, value] of Object.entries(documentRunBorderDomAttributes(formatting.runBorder)))if ('style' === name) span.style.cssText += `; ${value}`;
7250
+ else span.setAttribute(name, value);
7193
7251
  const legacyTextEffects = {
7194
7252
  ...void 0 !== formatting.legacyTextOutline ? {
7195
7253
  outline: formatting.legacyTextOutline
@@ -7295,7 +7353,8 @@ function importedRunFormattingChange(runProperties, paragraphProperties, styles,
7295
7353
  legacyTextOutline: beforeFormatting.legacyTextOutline,
7296
7354
  legacyTextShadow: beforeFormatting.legacyTextShadow,
7297
7355
  legacyTextEmboss: beforeFormatting.legacyTextEmboss,
7298
- legacyTextImprint: beforeFormatting.legacyTextImprint
7356
+ legacyTextImprint: beforeFormatting.legacyTextImprint,
7357
+ runBorder: serializeDocumentRunBorder(beforeFormatting.runBorder)
7299
7358
  })
7300
7359
  };
7301
7360
  }
@@ -7458,4 +7517,4 @@ function work_docx_run_formatting_import_formatNumber(value) {
7458
7517
  function formatLineHeightFactor(value) {
7459
7518
  return Number(value.toFixed(4)).toString();
7460
7519
  }
7461
- export { applyImportedDocxEquationMarkers, applyImportedDocxParagraphAlignmentMarkers, applyImportedDocxParagraphBorderMarkers, applyImportedDocxParagraphDirectionMarkers, applyImportedDocxParagraphFormattingChangeMarkers, applyImportedDocxParagraphIndentMarkers, applyImportedDocxParagraphPaginationMarkers, applyImportedDocxParagraphShadingMarkers, applyImportedDocxParagraphSpacingMarkers, applyImportedDocxParagraphTabStopMarkers, applyImportedDocxRunFormattingMarkers, createDocxParagraphStyleResolver, createDocxTableStyleResolver, createImportedDocxRunFormattingMarkerState, docxCaptionBookmark, docxCaptionReferenceTarget, docxCaptionSequenceKind, docxEquationHtml, docxFieldInstructions, docxFieldOccurrenceIsInlineEditable, docxFieldOccurrences, docxFieldResultText, docxRunPropertySources, docxTableCellStyleLayers, docxTablePropertySources, docxTableRunPropertySources, hasImportedDocxParagraphAlignmentMarkers, hasImportedDocxParagraphBorderMarkers, hasImportedDocxParagraphDirectionMarkers, hasImportedDocxParagraphFormattingChangeMarkers, hasImportedDocxParagraphIndentMarkers, hasImportedDocxParagraphPaginationMarkers, hasImportedDocxParagraphShadingMarkers, hasImportedDocxParagraphSpacingMarkers, hasImportedDocxParagraphTabStopMarkers, hasImportedDocxRunFormattingMarkers, hasInvalidDocxFieldStructure, importedDocxStrike, importedDocxUnderline, inspectDocxEquation, inspectDocxHiddenText, inspectDocxLegacyTextEffects, inspectDocxPageBorders, inspectDocxPageMarginSettings, inspectDocxPageMargins, inspectDocxPageSize, inspectDocxPaperSource, inspectDocxRunFonts, isDocxEquationLikeRoot, isSupportedDocxEquationPlacement, isSupportedDocxParagraphFormattingChange, isSupportedDocxRunFormattingChange, markDocxPackageEquations, markDocxParagraphAlignments, markDocxParagraphBorders, markDocxParagraphDirections, markDocxParagraphFormattingChanges, markDocxParagraphIndents, markDocxParagraphPagination, markDocxParagraphShading, markDocxParagraphSpacing, markDocxParagraphTabStops, markDocxRunFormattingIntoState, parseDirectDocxParagraphShading, parseDocxPageBorders, parseDocxPageGeometry, parseDocxPageMargins, parseDocxPaperSource, resolveDocxHiddenText, resolveDocxLegacyTextEffects, resolveDocxParagraphBordersForParagraph, resolveDocxTableStyleResolver };
7520
+ export { applyImportedDocxEquationMarkers, applyImportedDocxParagraphAlignmentMarkers, applyImportedDocxParagraphBorderMarkers, applyImportedDocxParagraphDirectionMarkers, applyImportedDocxParagraphFormattingChangeMarkers, applyImportedDocxParagraphIndentMarkers, applyImportedDocxParagraphPaginationMarkers, applyImportedDocxParagraphShadingMarkers, applyImportedDocxParagraphSpacingMarkers, applyImportedDocxParagraphTabStopMarkers, applyImportedDocxRunFormattingMarkers, createDocxParagraphStyleResolver, createDocxTableStyleResolver, createImportedDocxRunFormattingMarkerState, docxCaptionBookmark, docxCaptionReferenceTarget, docxCaptionSequenceKind, docxEquationHtml, docxFieldInstructions, docxFieldOccurrenceIsInlineEditable, docxFieldOccurrences, docxFieldResultText, docxRunPropertySources, docxTableCellStyleLayers, docxTablePropertySources, docxTableRunPropertySources, hasImportedDocxParagraphAlignmentMarkers, hasImportedDocxParagraphBorderMarkers, hasImportedDocxParagraphDirectionMarkers, hasImportedDocxParagraphFormattingChangeMarkers, hasImportedDocxParagraphIndentMarkers, hasImportedDocxParagraphPaginationMarkers, hasImportedDocxParagraphShadingMarkers, hasImportedDocxParagraphSpacingMarkers, hasImportedDocxParagraphTabStopMarkers, hasImportedDocxRunFormattingMarkers, hasInvalidDocxFieldStructure, importedDocxStrike, importedDocxUnderline, inspectDocxEquation, inspectDocxHiddenText, inspectDocxLegacyTextEffects, inspectDocxPageBorders, inspectDocxPageMarginSettings, inspectDocxPageMargins, inspectDocxPageSize, inspectDocxPaperSource, inspectDocxRunBorder, inspectDocxRunFonts, isDocxEquationLikeRoot, isSupportedDocxEquationPlacement, isSupportedDocxParagraphFormattingChange, isSupportedDocxRunFormattingChange, markDocxPackageEquations, markDocxParagraphAlignments, markDocxParagraphBorders, markDocxParagraphDirections, markDocxParagraphFormattingChanges, markDocxParagraphIndents, markDocxParagraphPagination, markDocxParagraphShading, markDocxParagraphSpacing, markDocxParagraphTabStops, markDocxRunFormattingIntoState, parseDirectDocxParagraphShading, parseDocxPageBorders, parseDocxPageGeometry, parseDocxPageMargins, parseDocxPaperSource, resolveDocxHiddenText, resolveDocxLegacyTextEffects, resolveDocxParagraphBordersForParagraph, resolveDocxRunBorder, resolveDocxTableStyleResolver };