@stll/folio-core 0.11.0 → 0.13.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 (263) hide show
  1. package/dist/ai-edits/apply.d.ts +2 -1
  2. package/dist/ai-edits/apply.js +693 -63
  3. package/dist/ai-edits/block-identity.d.ts +4 -0
  4. package/dist/ai-edits/block-identity.js +9 -0
  5. package/dist/ai-edits/blockRange.d.ts +28 -1
  6. package/dist/ai-edits/blockRange.js +68 -2
  7. package/dist/ai-edits/clean-text.js +2 -1
  8. package/dist/ai-edits/headless.d.ts +4 -4
  9. package/dist/ai-edits/headless.js +9 -9
  10. package/dist/ai-edits/index.d.ts +2 -2
  11. package/dist/ai-edits/index.js +2 -2
  12. package/dist/ai-edits/read.d.ts +7 -7
  13. package/dist/ai-edits/read.js +110 -3
  14. package/dist/ai-edits/snapshot.js +21 -3
  15. package/dist/ai-edits/table-cell-mutations.d.ts +48 -0
  16. package/dist/ai-edits/table-cell-mutations.js +238 -0
  17. package/dist/ai-edits/table-mutation-plan.d.ts +38 -0
  18. package/dist/ai-edits/table-mutation-plan.js +90 -0
  19. package/dist/ai-edits/table-row-column-mutations.d.ts +108 -0
  20. package/dist/ai-edits/table-row-column-mutations.js +300 -0
  21. package/dist/ai-edits/table-targets.d.ts +32 -0
  22. package/dist/ai-edits/table-targets.js +70 -0
  23. package/dist/ai-edits/types.d.ts +62 -1
  24. package/dist/ai-edits/word-diff.js +21 -0
  25. package/dist/compat/eigenpal.d.ts +3 -3
  26. package/dist/compat/eigenpal.js +3 -3
  27. package/dist/content-controls/mutateContentControls.js +1 -1
  28. package/dist/controller/activeEditorStory.d.ts +36 -0
  29. package/dist/controller/activeEditorStory.js +30 -0
  30. package/dist/controller/contentControlWidgetController.d.ts +55 -0
  31. package/dist/controller/contentControlWidgetController.js +141 -0
  32. package/dist/controller/fontReadiness.js +2 -0
  33. package/dist/controller/headerFooterEditorManager.js +2 -2
  34. package/dist/controller/hiddenEditorApi.js +2 -2
  35. package/dist/controller/hiddenEditorManager.d.ts +12 -1
  36. package/dist/controller/hiddenEditorManager.js +44 -12
  37. package/dist/controller/layoutPipeline.d.ts +2 -0
  38. package/dist/controller/layoutPipeline.js +17 -2
  39. package/dist/controller/noteEditorManager.d.ts +36 -0
  40. package/dist/controller/noteEditorManager.js +210 -0
  41. package/dist/document-operations.d.ts +43 -11
  42. package/dist/document-operations.js +186 -18
  43. package/dist/docx/blockContentParser.js +21 -7
  44. package/dist/docx/commentParser.js +6 -1
  45. package/dist/docx/commentRangeIntegrity.d.ts +6 -0
  46. package/dist/docx/commentRangeIntegrity.js +186 -0
  47. package/dist/docx/conformance.js +62 -1
  48. package/dist/docx/documentGrid.d.ts +8 -0
  49. package/dist/docx/documentGrid.js +8 -0
  50. package/dist/docx/drawingUtils.js +1 -1
  51. package/dist/docx/encryption/agileDecryption.js +12 -2
  52. package/dist/docx/encryption/compoundFile.js +6 -1
  53. package/dist/docx/encryption/encryptionInfo.d.ts +9 -1
  54. package/dist/docx/encryption/encryptionInfo.js +18 -2
  55. package/dist/docx/encryption/openEncryptedDocx.js +1 -1
  56. package/dist/docx/ensureParaIds.js +8 -7
  57. package/dist/docx/fieldParser.js +1 -1
  58. package/dist/docx/groupDrawingParser.js +10 -5
  59. package/dist/docx/hyperlinkParser.js +1 -1
  60. package/dist/docx/imageParser.js +10 -6
  61. package/dist/docx/metadataPrivacy.js +17 -3
  62. package/dist/docx/notePropertiesParser.js +1 -1
  63. package/dist/docx/numberingParser.js +1 -1
  64. package/dist/docx/paragraphParser.js +70 -61
  65. package/dist/docx/paragraphTextBoxEnrichment.d.ts +2 -1
  66. package/dist/docx/paragraphTextBoxEnrichment.js +67 -13
  67. package/dist/docx/paragraphTraversal.js +1 -1
  68. package/dist/docx/parser.js +3 -3
  69. package/dist/docx/rezip.js +20 -9
  70. package/dist/docx/runParser.js +17 -6
  71. package/dist/docx/sdtProperties.js +1 -1
  72. package/dist/docx/sectionParser.js +18 -5
  73. package/dist/docx/selectiveSave.js +5 -1
  74. package/dist/docx/selectiveXmlPatch.d.ts +22 -1
  75. package/dist/docx/selectiveXmlPatch.js +61 -1
  76. package/dist/docx/serializer/blockSdtSerializer.js +3 -2
  77. package/dist/docx/serializer/commentSerializer.js +5 -6
  78. package/dist/docx/serializer/documentSerializer.js +2 -2
  79. package/dist/docx/serializer/headerFooterSerializer.js +2 -2
  80. package/dist/docx/serializer/noteSerializer.js +2 -2
  81. package/dist/docx/serializer/paragraphSerializer.js +23 -15
  82. package/dist/docx/serializer/runSerializer.js +25 -21
  83. package/dist/docx/serializer/sectionPropertiesSerializer.js +2 -1
  84. package/dist/docx/serializer/stylesSerializer.js +1 -1
  85. package/dist/docx/serializer/tableSerializer.d.ts +5 -4
  86. package/dist/docx/serializer/tableSerializer.js +26 -20
  87. package/dist/docx/serializer/xmlUtils.d.ts +13 -1
  88. package/dist/docx/serializer/xmlUtils.js +27 -1
  89. package/dist/docx/server/applyDocxXmlPatchProposal.d.ts +87 -0
  90. package/dist/docx/server/applyDocxXmlPatchProposal.js +204 -0
  91. package/dist/docx/server/boundedArchive.d.ts +14 -3
  92. package/dist/docx/server/boundedArchive.js +56 -11
  93. package/dist/docx/server/evaluateDocxXmlPatchProposal.d.ts +85 -0
  94. package/dist/docx/server/evaluateDocxXmlPatchProposal.js +361 -0
  95. package/dist/docx/server/extractDocxText.js +55 -8
  96. package/dist/docx/server/inspectDocxPackage.d.ts +70 -0
  97. package/dist/docx/server/inspectDocxPackage.js +217 -0
  98. package/dist/docx/server/validateDocxConformance.d.ts +41 -0
  99. package/dist/docx/server/validateDocxConformance.js +336 -0
  100. package/dist/docx/settingsParser.js +26 -3
  101. package/dist/docx/shapeParser.js +1 -1
  102. package/dist/docx/styleParser.js +4 -2
  103. package/dist/docx/tableParser.d.ts +8 -1
  104. package/dist/docx/tableParser.js +31 -10
  105. package/dist/docx/textBoxParser.d.ts +3 -3
  106. package/dist/docx/textBoxParser.js +16 -12
  107. package/dist/docx/unzip.js +1 -0
  108. package/dist/docx/vmlImageParser.js +11 -3
  109. package/dist/docx/xmlParser.js +11 -1
  110. package/dist/docx/xmlSafety.d.ts +5 -0
  111. package/dist/docx/xmlSafety.js +9 -0
  112. package/dist/fields/resolveFieldValues.js +1 -3
  113. package/dist/fonts/embeddedFonts.d.ts +33 -5
  114. package/dist/fonts/embeddedFonts.js +37 -8
  115. package/dist/i18n/messages/catalogs.gen.d.ts +17 -0
  116. package/dist/i18n/messages/catalogs.gen.js +17 -0
  117. package/dist/i18n/messages/messages.gen.d.ts +1 -0
  118. package/dist/index.d.ts +3 -3
  119. package/dist/index.js +3 -3
  120. package/dist/layout-bridge/convert/footnoteLayout.d.ts +1 -0
  121. package/dist/layout-bridge/convert/footnoteLayout.js +47 -40
  122. package/dist/layout-bridge/convert/headerFooterLayout.d.ts +1 -0
  123. package/dist/layout-bridge/convert/headerFooterLayout.js +3 -0
  124. package/dist/layout-bridge/convert/templatePreviewFlow.js +3 -3
  125. package/dist/layout-bridge/convert/toFlowBlocks.d.ts +4 -2
  126. package/dist/layout-bridge/convert/toFlowBlocks.js +151 -20
  127. package/dist/layout-bridge/dom/noteStoryDom.d.ts +6 -0
  128. package/dist/layout-bridge/dom/noteStoryDom.js +17 -0
  129. package/dist/layout-bridge/engine/clickToPosition.js +2 -2
  130. package/dist/layout-engine/index.d.ts +2 -2
  131. package/dist/layout-engine/index.js +58 -30
  132. package/dist/layout-engine/justificationCompatibility.d.ts +6 -0
  133. package/dist/layout-engine/justificationCompatibility.js +8 -0
  134. package/dist/layout-engine/keep-together.js +11 -1
  135. package/dist/layout-engine/measure/cache.js +23 -5
  136. package/dist/layout-engine/measure/effectiveLineBreakPolicy.js +8 -2
  137. package/dist/layout-engine/measure/lineBreakProvider.d.ts +2 -2
  138. package/dist/layout-engine/measure/lineBreakProvider.js +56 -37
  139. package/dist/layout-engine/measure/measureBlocks.js +15 -4
  140. package/dist/layout-engine/measure/measureContainer.js +1 -1
  141. package/dist/layout-engine/measure/measureHelpers.d.ts +11 -2
  142. package/dist/layout-engine/measure/measureHelpers.js +15 -4
  143. package/dist/layout-engine/measure/measureParagraph.js +85 -25
  144. package/dist/layout-engine/measure/measureProvider.js +4 -3
  145. package/dist/layout-engine/measure/tableCellFlow.js +5 -2
  146. package/dist/layout-engine/measure/textBoxParagraphLayout.d.ts +9 -7
  147. package/dist/layout-engine/measure/textBoxParagraphLayout.js +22 -6
  148. package/dist/layout-engine/measure/textMeasurementPolicy.d.ts +3 -1
  149. package/dist/layout-engine/measure/textMeasurementPolicy.js +7 -1
  150. package/dist/layout-engine/paginator.js +5 -1
  151. package/dist/layout-engine/paragraphSpacing.d.ts +28 -4
  152. package/dist/layout-engine/paragraphSpacing.js +107 -13
  153. package/dist/layout-engine/renderedBreakReconciliation.js +1 -1
  154. package/dist/layout-engine/types.d.ts +48 -15
  155. package/dist/layout-painter/registry/modules/textBox.js +5 -1
  156. package/dist/layout-painter/renderImage.d.ts +12 -1
  157. package/dist/layout-painter/renderImage.js +21 -4
  158. package/dist/layout-painter/renderPage.d.ts +5 -2
  159. package/dist/layout-painter/renderPage.js +59 -14
  160. package/dist/layout-painter/renderParagraph.js +55 -15
  161. package/dist/layout-painter/renderTable.d.ts +5 -1
  162. package/dist/layout-painter/renderTable.js +7 -3
  163. package/dist/layout-painter/renderTextBox.d.ts +2 -1
  164. package/dist/layout-painter/renderTextBox.js +25 -14
  165. package/dist/layout-painter/renderWatermark.d.ts +1 -1
  166. package/dist/layout-painter/renderWatermark.js +2 -1
  167. package/dist/managers/DocumentLoaderManager.js +1 -1
  168. package/dist/markdown/fromMarkdown.js +1 -1
  169. package/dist/model.js +1 -1
  170. package/dist/prosemirror/attrs/index.d.ts +4 -2
  171. package/dist/prosemirror/attrs/index.js +175 -18
  172. package/dist/prosemirror/commands/comments.d.ts +79 -4
  173. package/dist/prosemirror/commands/comments.js +622 -13
  174. package/dist/prosemirror/commands/contentControls.js +1 -1
  175. package/dist/prosemirror/commands/hyperlink.js +15 -1
  176. package/dist/prosemirror/commands/image.js +7 -1
  177. package/dist/prosemirror/commands/index.d.ts +2 -2
  178. package/dist/prosemirror/commands/index.js +2 -2
  179. package/dist/prosemirror/commands/pageBreak.js +1 -1
  180. package/dist/prosemirror/commands/propertyChangeScope.d.ts +2 -2
  181. package/dist/prosemirror/commands/propertyChangeScope.js +3 -2
  182. package/dist/prosemirror/commands/tableCellMergeResolution.d.ts +9 -0
  183. package/dist/prosemirror/commands/tableCellMergeResolution.js +181 -0
  184. package/dist/prosemirror/commentIdAllocator.js +13 -3
  185. package/dist/prosemirror/conversion/fromProseDoc.d.ts +2 -1
  186. package/dist/prosemirror/conversion/fromProseDoc.js +404 -62
  187. package/dist/prosemirror/conversion/index.js +1 -1
  188. package/dist/prosemirror/conversion/sdtAttrs.d.ts +9 -0
  189. package/dist/prosemirror/conversion/sdtAttrs.js +49 -0
  190. package/dist/prosemirror/conversion/toProseDoc.d.ts +2 -1
  191. package/dist/prosemirror/conversion/toProseDoc.js +364 -103
  192. package/dist/prosemirror/extensions/ExtensionManager.js +1 -1
  193. package/dist/prosemirror/extensions/StarterKit.js +6 -1
  194. package/dist/prosemirror/extensions/core/ParagraphExtension.js +6 -2
  195. package/dist/prosemirror/extensions/features/BaseKeymapExtension.js +1 -0
  196. package/dist/prosemirror/extensions/features/ImagePasteExtension.js +10 -2
  197. package/dist/prosemirror/extensions/features/ListExtension.js +1 -1
  198. package/dist/prosemirror/extensions/features/ParaIdAllocatorExtension.d.ts +10 -1
  199. package/dist/prosemirror/extensions/features/ParaIdAllocatorExtension.js +93 -2
  200. package/dist/prosemirror/extensions/features/ParagraphChangeTrackerExtension.d.ts +2 -1
  201. package/dist/prosemirror/extensions/features/ParagraphChangeTrackerExtension.js +6 -2
  202. package/dist/prosemirror/extensions/features/pasteCleanup.js +15 -2
  203. package/dist/prosemirror/extensions/marks/CharacterSpacingExtension.js +1 -1
  204. package/dist/prosemirror/extensions/marks/HyperlinkExtension.js +30 -4
  205. package/dist/prosemirror/extensions/marks/TrackedChangeExtensions.d.ts +9 -1
  206. package/dist/prosemirror/extensions/marks/TrackedChangeExtensions.js +70 -11
  207. package/dist/prosemirror/extensions/nodes/FieldExtension.js +1 -1
  208. package/dist/prosemirror/extensions/nodes/RenderedPageBreakExtension.d.ts +7 -0
  209. package/dist/prosemirror/extensions/nodes/RenderedPageBreakExtension.js +22 -0
  210. package/dist/prosemirror/extensions/nodes/TableExtension.d.ts +1 -1
  211. package/dist/prosemirror/extensions/nodes/TableExtension.js +14 -6
  212. package/dist/prosemirror/extensions/nodes/TextBoxAnchorExtension.d.ts +13 -0
  213. package/dist/prosemirror/extensions/nodes/TextBoxAnchorExtension.js +41 -0
  214. package/dist/prosemirror/extensions/nodes/TextBoxExtension.d.ts +5 -2
  215. package/dist/prosemirror/extensions/nodes/TextBoxExtension.js +4 -1
  216. package/dist/prosemirror/index.d.ts +1 -1
  217. package/dist/prosemirror/index.js +1 -1
  218. package/dist/prosemirror/plugins/contentControlWidgets.d.ts +36 -10
  219. package/dist/prosemirror/plugins/contentControlWidgets.js +128 -94
  220. package/dist/prosemirror/plugins/revisionIds.d.ts +23 -0
  221. package/dist/prosemirror/plugins/revisionIds.js +57 -0
  222. package/dist/prosemirror/plugins/selectionTracker.js +1 -0
  223. package/dist/prosemirror/plugins/suggestionMode.js +5 -4
  224. package/dist/prosemirror/runFormattingMarkNames.d.ts +14 -0
  225. package/dist/prosemirror/runFormattingMarkNames.js +40 -0
  226. package/dist/prosemirror/schema/index.d.ts +2 -2
  227. package/dist/prosemirror/schema/marks.d.ts +30 -3
  228. package/dist/prosemirror/schema/marks.js +15 -0
  229. package/dist/prosemirror/schema/nodes.d.ts +111 -6
  230. package/dist/prosemirror/selectionState.js +1 -0
  231. package/dist/prosemirror/styles/resolvedStyleAttrs.js +1 -0
  232. package/dist/prosemirror/tableCellMergeRevision.d.ts +9 -0
  233. package/dist/prosemirror/tableCellMergeRevision.js +22 -0
  234. package/dist/prosemirror/textBoxAnchorAttrs.d.ts +9 -0
  235. package/dist/prosemirror/textBoxAnchorAttrs.js +33 -0
  236. package/dist/prosemirror/utils/extractTrackedChanges.d.ts +1 -1
  237. package/dist/prosemirror/utils/extractTrackedChanges.js +62 -14
  238. package/dist/prosemirror/validation.js +9 -1
  239. package/dist/render-dom/RemoteSelectionOverlay.js +2 -2
  240. package/dist/server.d.ts +7 -3
  241. package/dist/server.js +7 -3
  242. package/dist/utils/clipboard.d.ts +10 -1
  243. package/dist/utils/clipboard.js +33 -6
  244. package/dist/utils/colorResolver.d.ts +8 -1
  245. package/dist/utils/colorResolver.js +35 -5
  246. package/dist/utils/fontFamilyMerge.js +9 -11
  247. package/dist/utils/fontLoader.js +3 -2
  248. package/dist/utils/fontResolver.d.ts +2 -1
  249. package/dist/utils/fontResolver.js +31 -7
  250. package/dist/utils/fontWeights.d.ts +1 -1
  251. package/dist/utils/fontWeights.js +1 -1
  252. package/dist/utils/hexId.d.ts +11 -1
  253. package/dist/utils/hexId.js +11 -1
  254. package/dist/utils/paragraphFormattingMerge.js +1 -0
  255. package/dist/utils/sanitizeImageSrc.d.ts +21 -0
  256. package/dist/utils/sanitizeImageSrc.js +30 -0
  257. package/dist/utils/stripXmlDeclarations.d.ts +11 -0
  258. package/dist/utils/stripXmlDeclarations.js +35 -0
  259. package/dist/version-comparison.d.ts +22 -2
  260. package/dist/version-comparison.js +41 -12
  261. package/dist/watermark/index.d.ts +11 -1
  262. package/dist/watermark/index.js +22 -1
  263. package/package.json +3 -2
@@ -492,6 +492,7 @@ const CATALOGS = {
492
492
  "rowDeleted": "Row deleted",
493
493
  "rowInserted": "Row inserted",
494
494
  "rowPropertiesChanged": "Row formatting changed",
495
+ "runPropertiesChanged": "Text formatting changed",
495
496
  "tableDeleted": "Table deleted",
496
497
  "tableInserted": "Table inserted",
497
498
  "tablePropertiesChanged": "Table formatting changed"
@@ -1132,6 +1133,7 @@ const CATALOGS = {
1132
1133
  "rowDeleted": "Zeile gelöscht",
1133
1134
  "rowInserted": "Zeile eingefügt",
1134
1135
  "rowPropertiesChanged": "Zeilenformatierung geändert",
1136
+ "runPropertiesChanged": "Textformatierung geändert",
1135
1137
  "tableDeleted": "Tabelle gelöscht",
1136
1138
  "tableInserted": "Tabelle eingefügt",
1137
1139
  "tablePropertiesChanged": "Tabellenformatierung geändert"
@@ -1772,6 +1774,7 @@ const CATALOGS = {
1772
1774
  "rowDeleted": "Ligne supprimée",
1773
1775
  "rowInserted": "Ligne insérée",
1774
1776
  "rowPropertiesChanged": "Mise en forme de ligne modifiée",
1777
+ "runPropertiesChanged": "Mise en forme du texte modifiée",
1775
1778
  "tableDeleted": "Tableau supprimé",
1776
1779
  "tableInserted": "Tableau inséré",
1777
1780
  "tablePropertiesChanged": "Mise en forme de tableau modifiée"
@@ -2412,6 +2415,7 @@ const CATALOGS = {
2412
2415
  "rowDeleted": "Fila eliminada",
2413
2416
  "rowInserted": "Fila insertada",
2414
2417
  "rowPropertiesChanged": "Formato de fila cambiado",
2418
+ "runPropertiesChanged": "Formato de texto cambiado",
2415
2419
  "tableDeleted": "Tabla eliminada",
2416
2420
  "tableInserted": "Tabla insertada",
2417
2421
  "tablePropertiesChanged": "Formato de tabla cambiado"
@@ -3052,6 +3056,7 @@ const CATALOGS = {
3052
3056
  "rowDeleted": "Řádek odstraněn",
3053
3057
  "rowInserted": "Řádek vložen",
3054
3058
  "rowPropertiesChanged": "Formátování řádku změněno",
3059
+ "runPropertiesChanged": "Formátování textu změněno",
3055
3060
  "tableDeleted": "Tabulka odstraněna",
3056
3061
  "tableInserted": "Tabulka vložena",
3057
3062
  "tablePropertiesChanged": "Formátování tabulky změněno"
@@ -3692,6 +3697,7 @@ const CATALOGS = {
3692
3697
  "rowDeleted": "تم حذف الصف",
3693
3698
  "rowInserted": "تم إدراج الصف",
3694
3699
  "rowPropertiesChanged": "تم تغيير تنسيق الصف",
3700
+ "runPropertiesChanged": "تم تغيير تنسيق النص",
3695
3701
  "tableDeleted": "تم حذف الجدول",
3696
3702
  "tableInserted": "تم إدراج الجدول",
3697
3703
  "tablePropertiesChanged": "تم تغيير تنسيق الجدول"
@@ -4332,6 +4338,7 @@ const CATALOGS = {
4332
4338
  "rowDeleted": "Rida kustutatud",
4333
4339
  "rowInserted": "Rida lisatud",
4334
4340
  "rowPropertiesChanged": "Rea vormingut muudeti",
4341
+ "runPropertiesChanged": "Teksti vormingut muudeti",
4335
4342
  "tableDeleted": "Tabel kustutatud",
4336
4343
  "tableInserted": "Tabel lisatud",
4337
4344
  "tablePropertiesChanged": "Tabeli vormingut muudeti"
@@ -4972,6 +4979,7 @@ const CATALOGS = {
4972
4979
  "rowDeleted": "השורה נמחקה",
4973
4980
  "rowInserted": "השורה נוספה",
4974
4981
  "rowPropertiesChanged": "עיצוב השורה השתנה",
4982
+ "runPropertiesChanged": "עיצוב הטקסט השתנה",
4975
4983
  "tableDeleted": "הטבלה נמחקה",
4976
4984
  "tableInserted": "הטבלה נוספה",
4977
4985
  "tablePropertiesChanged": "עיצוב הטבלה השתנה"
@@ -5612,6 +5620,7 @@ const CATALOGS = {
5612
5620
  "rowDeleted": "पंक्ति हटाई गई",
5613
5621
  "rowInserted": "पंक्ति सम्मिलित की गई",
5614
5622
  "rowPropertiesChanged": "पंक्ति प्रारूपण बदला गया",
5623
+ "runPropertiesChanged": "पाठ स्वरूपण बदला गया",
5615
5624
  "tableDeleted": "तालिका हटाई गई",
5616
5625
  "tableInserted": "तालिका सम्मिलित की गई",
5617
5626
  "tablePropertiesChanged": "तालिका प्रारूपण बदला गया"
@@ -6252,6 +6261,7 @@ const CATALOGS = {
6252
6261
  "rowDeleted": "Sor törölve",
6253
6262
  "rowInserted": "Sor beszúrva",
6254
6263
  "rowPropertiesChanged": "Sorformázás megváltozott",
6264
+ "runPropertiesChanged": "Szövegformázás megváltozott",
6255
6265
  "tableDeleted": "Táblázat törölve",
6256
6266
  "tableInserted": "Táblázat beszúrva",
6257
6267
  "tablePropertiesChanged": "Táblázatformázás megváltozott"
@@ -6892,6 +6902,7 @@ const CATALOGS = {
6892
6902
  "rowDeleted": "Eilutė panaikinta",
6893
6903
  "rowInserted": "Eilutė įterpta",
6894
6904
  "rowPropertiesChanged": "Eilutės formatavimas pakeistas",
6905
+ "runPropertiesChanged": "Teksto formatavimas pakeistas",
6895
6906
  "tableDeleted": "Lentelė panaikinta",
6896
6907
  "tableInserted": "Lentelė įterpta",
6897
6908
  "tablePropertiesChanged": "Lentelės formatavimas pakeistas"
@@ -7532,6 +7543,7 @@ const CATALOGS = {
7532
7543
  "rowDeleted": "Rinda izdzēsta",
7533
7544
  "rowInserted": "Rinda ievietota",
7534
7545
  "rowPropertiesChanged": "Rindas formatējums mainīts",
7546
+ "runPropertiesChanged": "Teksta formatējums mainīts",
7535
7547
  "tableDeleted": "Tabula izdzēsta",
7536
7548
  "tableInserted": "Tabula ievietota",
7537
7549
  "tablePropertiesChanged": "Tabulas formatējums mainīts"
@@ -8172,6 +8184,7 @@ const CATALOGS = {
8172
8184
  "rowDeleted": "Usunięto wiersz",
8173
8185
  "rowInserted": "Wstawiono wiersz",
8174
8186
  "rowPropertiesChanged": "Zmieniono formatowanie wiersza",
8187
+ "runPropertiesChanged": "Zmieniono formatowanie tekstu",
8175
8188
  "tableDeleted": "Usunięto tabelę",
8176
8189
  "tableInserted": "Wstawiono tabelę",
8177
8190
  "tablePropertiesChanged": "Zmieniono formatowanie tabeli"
@@ -8812,6 +8825,7 @@ const CATALOGS = {
8812
8825
  "rowDeleted": "Linha excluída",
8813
8826
  "rowInserted": "Linha inserida",
8814
8827
  "rowPropertiesChanged": "Formatação da linha alterada",
8828
+ "runPropertiesChanged": "Formatação do texto alterada",
8815
8829
  "tableDeleted": "Tabela excluída",
8816
8830
  "tableInserted": "Tabela inserida",
8817
8831
  "tablePropertiesChanged": "Formatação da tabela alterada"
@@ -9452,6 +9466,7 @@ const CATALOGS = {
9452
9466
  "rowDeleted": "Riadok odstránený",
9453
9467
  "rowInserted": "Riadok vložený",
9454
9468
  "rowPropertiesChanged": "Formátovanie riadka zmenené",
9469
+ "runPropertiesChanged": "Formátovanie textu zmenené",
9455
9470
  "tableDeleted": "Tabuľka odstránená",
9456
9471
  "tableInserted": "Tabuľka vložená",
9457
9472
  "tablePropertiesChanged": "Formátovanie tabuľky zmenené"
@@ -10092,6 +10107,7 @@ const CATALOGS = {
10092
10107
  "rowDeleted": "Satır silindi",
10093
10108
  "rowInserted": "Satır eklendi",
10094
10109
  "rowPropertiesChanged": "Satır biçimlendirmesi değiştirildi",
10110
+ "runPropertiesChanged": "Metin biçimlendirmesi değiştirildi",
10095
10111
  "tableDeleted": "Tablo silindi",
10096
10112
  "tableInserted": "Tablo eklendi",
10097
10113
  "tablePropertiesChanged": "Tablo biçimlendirmesi değiştirildi"
@@ -10732,6 +10748,7 @@ const CATALOGS = {
10732
10748
  "rowDeleted": "已删除行",
10733
10749
  "rowInserted": "已插入行",
10734
10750
  "rowPropertiesChanged": "行格式已更改",
10751
+ "runPropertiesChanged": "文本格式已更改",
10735
10752
  "tableDeleted": "已删除表格",
10736
10753
  "tableInserted": "已插入表格",
10737
10754
  "tablePropertiesChanged": "表格格式已更改"
@@ -492,6 +492,7 @@ type Messages = {
492
492
  "rowDeleted": "Row deleted";
493
493
  "rowInserted": "Row inserted";
494
494
  "rowPropertiesChanged": "Row formatting changed";
495
+ "runPropertiesChanged": "Text formatting changed";
495
496
  "tableDeleted": "Table deleted";
496
497
  "tableInserted": "Table inserted";
497
498
  "tablePropertiesChanged": "Table formatting changed";
package/dist/index.d.ts CHANGED
@@ -27,9 +27,9 @@ import { AcceptAutocompleteResult, AutocompleteSuggestionPluginOptions, Autocomp
27
27
  import { ImageMeta, ImageRef, MarkdownOptions, MarkdownResult } from "./markdown/types.js";
28
28
  import { fromMarkdown } from "./markdown/fromMarkdown.js";
29
29
  import { toMarkdown, toMarkdownResult } from "./markdown/index.js";
30
- import { EmbeddedFont, EmbeddedFontParts, extractEmbeddedFonts, getEmbeddedFontFaces } from "./fonts/embeddedFonts.js";
31
- import { getGoogleFontsEnabled, setGoogleFontsEnabled } from "./utils/fontResolver.js";
30
+ import { EmbeddedFont, EmbeddedFontParts, buildEmbeddedFontFamilyMap, extractEmbeddedFonts, getEmbeddedFontFaces, scopeEmbeddedFontFamily } from "./fonts/embeddedFonts.js";
31
+ import { getGoogleFontsEnabled, setEmbeddedFontFamilyMap, setGoogleFontsEnabled } from "./utils/fontResolver.js";
32
32
  import { DOCX_CONFORMANCE_CLASSES } from "@stll/docx-core/model";
33
33
  type Document = document_d_exports.Document;
34
34
  type DocxConformanceClass = document_d_exports.DocxConformanceClass;
35
- export { type AIBarStatus, type AIChatMode, type AICitation, type AICitationRange, type AICitationSource, type AIGenerateInput, type AISuggestion, type AISuggestionApplyMode, type AISuggestionPreset, type AISuggestionSeverity, type AISuggestionStatus, type AcceptAutocompleteResult, type AnonymizationMatch, type AnonymizationTerm, type ApplyFolioDocumentOperationsOptions, type ApplyResult, type AutocompleteSuggestionPluginOptions, type AutocompleteSuggestionState, type AutocompleteSuggestionStatus, type AutocompleteTriggerCheck, type AutocompleteTriggerOptions, type AutocompleteTriggerSkipReason, type CreateEmptyDocumentOptions, DEFAULT_AI_SUGGESTION_PRESETS, DEFAULT_AUTOCOMPLETE_DEAD_ZONE_NODES, DOCUMENT_PRESET_VERSION, DOCUMENT_STYLE_SET_VERSION, DOCX_CONFORMANCE_CLASSES, type DeriveBlockIdInput, type DirectiveKind, type DirectiveRange, type Document, type DocumentPreset, type DocumentStyleCatalog, type DocumentStyleCatalogEntry, type DocumentStyleSet, type DocxCompatibility, type DocxCompatibilityContext, type DocxCompatibilityIssue, type DocxCompatibilityLocation, type DocxCompatibilityPart, type DocxConformanceClass, type EmbeddedFont, type EmbeddedFontParts, type ExtractDocumentStyleSetOptions, FOLIO_DOCUMENT_OPERATION_BATCH_MODES, FOLIO_DOCUMENT_OPERATION_CONTRACT_VERSION, FOLIO_DOCUMENT_OPERATION_MODES, FOLIO_DOCUMENT_OPERATION_MODES_BY_TYPE, FOLIO_DOCUMENT_OPERATION_PRECONDITIONS, FOLIO_DOCUMENT_OPERATION_STORIES, FOLIO_DOCUMENT_OPERATION_TYPES, type FolioAIBlock, type FolioAIBlockAnchor, type FolioAIBlockKind, type FolioAIBlockPreviewRun, type FolioAIComment, type FolioAIEditAppliedOperation, type FolioAIEditApplyMode, type FolioAIEditApplyResult, type FolioAIEditOperation, type FolioAIEditPrecondition, type FolioAIEditReviewMeta, type FolioAIEditSeverity, type FolioAIEditSkipReason, type FolioAIEditSkippedOperation, type FolioAIEditSnapshot, type FolioAISignatureParty, type FolioBlockId, type FolioDocumentOperation, type FolioDocumentOperationAffectedTarget, type FolioDocumentOperationBatch, type FolioDocumentOperationCapabilities, type FolioDocumentOperationIssue, type FolioDocumentOperationMode, type FolioDocumentOperationPrecondition, type FolioDocumentOperationReceipt, type FolioDocumentOperationRecovery, type FolioDocumentOperationResult, type FolioDocumentOperationStatus, type FolioDocumentOperationStory, type FolioDocumentOperationType, type FolioDocumentOperationUndoFailureReason, type FolioDocumentOperationUndoHandle, type FolioDocumentOperationUndoResult, type FolioDocxCompatibilityHost, type FolioDocxCompatibilityProfile, type ImageMeta, type ImageRef, type InspectDocxCompatibilityOptions, InvalidFolioDocumentOperationBatchError, type MarkdownOptions, type MarkdownResult, type PositionalText, type ResolvedAnchor, STELLA_STYLE_SET_NAME, type TemplatePreviewSpan, type TemplatePreviewValue, type TemplatePreviewValues, type TemplateSlashMenuKeyAction, type TemplateSlashMenuState, UnsupportedFolioDocumentOperationVersionError, type WordDiffSegment, acceptAutocompleteSuggestion, acceptAutocompleteWord, anonymizationDecorationsKey, appendAutocompleteToken, applyFolioAIEditOperations, applyFolioDocumentOperations, applySuggestions, assertSupportedFolioDocumentOperationVersion, autocompleteSuggestionKey, autocompleteSuggestionPlugin, buildPositionalText, clearAutocompleteSuggestion, clearTemplateSlashMenu, consumeTemplateSlashQuery, createAICitationDecorationsPlugin, createDocx, createEmptyDocument, createFolioAIEditSnapshot, createStellaStyleDocumentPreset, createStellaStyleSet, deriveBlockId, diffWordSegments, extractDocumentStyleSet, extractDocumentStyleSetFromDocx, extractEmbeddedFonts, finishAutocompleteSuggestion, fromMarkdown, getAnonymizationMatches, getAutocompleteSuggestion, getEmbeddedFontFaces, getFolioCaretViewportRect, getFolioDocumentOperationCapabilities, getFolioDocumentOperationIssues, getFolioDocumentOperationReceipts, getFolioParaIdFromBlockId, getFolioSelectionViewportRect, getGoogleFontsEnabled, getTemplateDirectives, getTemplateSlashMenu, hashFolioAIBlockText, inspectDocumentStyles, inspectDocumentStylesFromDocx, inspectDocxCompatibility, isFolioBlockId, isFolioDocumentOperationModeSupported, isSequentialFolioBlockId, isSuggestionStale, isSupportedFolioDocumentOperationVersion, normalizeFolioAIBlockText, parseFolioDocumentOperationBatch, resetTemplateSlashQuery, resolveSuggestionAnchor, scanDirectives, scrollFolioPositionIntoView, setAICitationsMeta, setAISuggestionsMeta, setActiveCitationMeta, setAnonymizationTermsMeta, setFocusedSuggestionMeta, setGoogleFontsEnabled, setTemplatePreviewValues, shouldTriggerAutocomplete, startAutocompleteSuggestion, templateSlashMenuKey, toMarkdown, toMarkdownResult };
35
+ export { type AIBarStatus, type AIChatMode, type AICitation, type AICitationRange, type AICitationSource, type AIGenerateInput, type AISuggestion, type AISuggestionApplyMode, type AISuggestionPreset, type AISuggestionSeverity, type AISuggestionStatus, type AcceptAutocompleteResult, type AnonymizationMatch, type AnonymizationTerm, type ApplyFolioDocumentOperationsOptions, type ApplyResult, type AutocompleteSuggestionPluginOptions, type AutocompleteSuggestionState, type AutocompleteSuggestionStatus, type AutocompleteTriggerCheck, type AutocompleteTriggerOptions, type AutocompleteTriggerSkipReason, type CreateEmptyDocumentOptions, DEFAULT_AI_SUGGESTION_PRESETS, DEFAULT_AUTOCOMPLETE_DEAD_ZONE_NODES, DOCUMENT_PRESET_VERSION, DOCUMENT_STYLE_SET_VERSION, DOCX_CONFORMANCE_CLASSES, type DeriveBlockIdInput, type DirectiveKind, type DirectiveRange, type Document, type DocumentPreset, type DocumentStyleCatalog, type DocumentStyleCatalogEntry, type DocumentStyleSet, type DocxCompatibility, type DocxCompatibilityContext, type DocxCompatibilityIssue, type DocxCompatibilityLocation, type DocxCompatibilityPart, type DocxConformanceClass, type EmbeddedFont, type EmbeddedFontParts, type ExtractDocumentStyleSetOptions, FOLIO_DOCUMENT_OPERATION_BATCH_MODES, FOLIO_DOCUMENT_OPERATION_CONTRACT_VERSION, FOLIO_DOCUMENT_OPERATION_MODES, FOLIO_DOCUMENT_OPERATION_MODES_BY_TYPE, FOLIO_DOCUMENT_OPERATION_PRECONDITIONS, FOLIO_DOCUMENT_OPERATION_STORIES, FOLIO_DOCUMENT_OPERATION_TYPES, type FolioAIBlock, type FolioAIBlockAnchor, type FolioAIBlockKind, type FolioAIBlockPreviewRun, type FolioAIComment, type FolioAIEditAppliedOperation, type FolioAIEditApplyMode, type FolioAIEditApplyResult, type FolioAIEditOperation, type FolioAIEditPrecondition, type FolioAIEditReviewMeta, type FolioAIEditSeverity, type FolioAIEditSkipReason, type FolioAIEditSkippedOperation, type FolioAIEditSnapshot, type FolioAISignatureParty, type FolioBlockId, type FolioDocumentOperation, type FolioDocumentOperationAffectedTarget, type FolioDocumentOperationBatch, type FolioDocumentOperationCapabilities, type FolioDocumentOperationIssue, type FolioDocumentOperationMode, type FolioDocumentOperationPrecondition, type FolioDocumentOperationReceipt, type FolioDocumentOperationRecovery, type FolioDocumentOperationResult, type FolioDocumentOperationStatus, type FolioDocumentOperationStory, type FolioDocumentOperationType, type FolioDocumentOperationUndoFailureReason, type FolioDocumentOperationUndoHandle, type FolioDocumentOperationUndoResult, type FolioDocxCompatibilityHost, type FolioDocxCompatibilityProfile, type ImageMeta, type ImageRef, type InspectDocxCompatibilityOptions, InvalidFolioDocumentOperationBatchError, type MarkdownOptions, type MarkdownResult, type PositionalText, type ResolvedAnchor, STELLA_STYLE_SET_NAME, type TemplatePreviewSpan, type TemplatePreviewValue, type TemplatePreviewValues, type TemplateSlashMenuKeyAction, type TemplateSlashMenuState, UnsupportedFolioDocumentOperationVersionError, type WordDiffSegment, acceptAutocompleteSuggestion, acceptAutocompleteWord, anonymizationDecorationsKey, appendAutocompleteToken, applyFolioAIEditOperations, applyFolioDocumentOperations, applySuggestions, assertSupportedFolioDocumentOperationVersion, autocompleteSuggestionKey, autocompleteSuggestionPlugin, buildEmbeddedFontFamilyMap, buildPositionalText, clearAutocompleteSuggestion, clearTemplateSlashMenu, consumeTemplateSlashQuery, createAICitationDecorationsPlugin, createDocx, createEmptyDocument, createFolioAIEditSnapshot, createStellaStyleDocumentPreset, createStellaStyleSet, deriveBlockId, diffWordSegments, extractDocumentStyleSet, extractDocumentStyleSetFromDocx, extractEmbeddedFonts, finishAutocompleteSuggestion, fromMarkdown, getAnonymizationMatches, getAutocompleteSuggestion, getEmbeddedFontFaces, getFolioCaretViewportRect, getFolioDocumentOperationCapabilities, getFolioDocumentOperationIssues, getFolioDocumentOperationReceipts, getFolioParaIdFromBlockId, getFolioSelectionViewportRect, getGoogleFontsEnabled, getTemplateDirectives, getTemplateSlashMenu, hashFolioAIBlockText, inspectDocumentStyles, inspectDocumentStylesFromDocx, inspectDocxCompatibility, isFolioBlockId, isFolioDocumentOperationModeSupported, isSequentialFolioBlockId, isSuggestionStale, isSupportedFolioDocumentOperationVersion, normalizeFolioAIBlockText, parseFolioDocumentOperationBatch, resetTemplateSlashQuery, resolveSuggestionAnchor, scanDirectives, scopeEmbeddedFontFamily, scrollFolioPositionIntoView, setAICitationsMeta, setAISuggestionsMeta, setActiveCitationMeta, setAnonymizationTermsMeta, setEmbeddedFontFamilyMap, setFocusedSuggestionMeta, setGoogleFontsEnabled, setTemplatePreviewValues, shouldTriggerAutocomplete, startAutocompleteSuggestion, templateSlashMenuKey, toMarkdown, toMarkdownResult };
package/dist/index.js CHANGED
@@ -1,3 +1,4 @@
1
+ import { getGoogleFontsEnabled, setEmbeddedFontFamilyMap, setGoogleFontsEnabled } from "./utils/fontResolver.js";
1
2
  import { deriveBlockId, getFolioParaIdFromBlockId, isFolioBlockId, isSequentialFolioBlockId } from "./types/block-id.js";
2
3
  import { createFolioAIEditSnapshot, hashFolioAIBlockText, normalizeFolioAIBlockText } from "./ai-edits/snapshot.js";
3
4
  import { diffWordSegments } from "./ai-edits/word-diff.js";
@@ -13,7 +14,6 @@ import { DEFAULT_AI_SUGGESTION_PRESETS } from "./ai-suggestions/types.js";
13
14
  import { buildPositionalText } from "./ai-suggestions/text-positions.js";
14
15
  import { isSuggestionStale, resolveSuggestionAnchor } from "./ai-suggestions/conflict.js";
15
16
  import { applySuggestions } from "./ai-suggestions/apply.js";
16
- import { getGoogleFontsEnabled, setGoogleFontsEnabled } from "./utils/fontResolver.js";
17
17
  import { setAISuggestionsMeta, setFocusedSuggestionMeta } from "./prosemirror/plugins/aiSuggestionDecorations.js";
18
18
  import { scrollFolioPositionIntoView } from "./paged-layout/scrollToPmPosition.js";
19
19
  import { getFolioCaretViewportRect, getFolioSelectionViewportRect } from "./paged-layout/selectionViewportRect.js";
@@ -25,6 +25,6 @@ import { clearTemplateSlashMenu, consumeTemplateSlashQuery, getTemplateSlashMenu
25
25
  import { DEFAULT_AUTOCOMPLETE_DEAD_ZONE_NODES, acceptAutocompleteSuggestion, acceptAutocompleteWord, appendAutocompleteToken, autocompleteSuggestionKey, autocompleteSuggestionPlugin, clearAutocompleteSuggestion, finishAutocompleteSuggestion, getAutocompleteSuggestion, shouldTriggerAutocomplete, startAutocompleteSuggestion } from "./prosemirror/plugins/autocompleteSuggestion.js";
26
26
  import { fromMarkdown } from "./markdown/fromMarkdown.js";
27
27
  import { toMarkdown, toMarkdownResult } from "./markdown/index.js";
28
- import { extractEmbeddedFonts, getEmbeddedFontFaces } from "./fonts/embeddedFonts.js";
28
+ import { buildEmbeddedFontFamilyMap, extractEmbeddedFonts, getEmbeddedFontFaces, scopeEmbeddedFontFamily } from "./fonts/embeddedFonts.js";
29
29
  import { DOCX_CONFORMANCE_CLASSES } from "@stll/docx-core/model";
30
- export { DEFAULT_AI_SUGGESTION_PRESETS, DEFAULT_AUTOCOMPLETE_DEAD_ZONE_NODES, DOCUMENT_PRESET_VERSION, DOCUMENT_STYLE_SET_VERSION, DOCX_CONFORMANCE_CLASSES, FOLIO_DOCUMENT_OPERATION_BATCH_MODES, FOLIO_DOCUMENT_OPERATION_CONTRACT_VERSION, FOLIO_DOCUMENT_OPERATION_MODES, FOLIO_DOCUMENT_OPERATION_MODES_BY_TYPE, FOLIO_DOCUMENT_OPERATION_PRECONDITIONS, FOLIO_DOCUMENT_OPERATION_STORIES, FOLIO_DOCUMENT_OPERATION_TYPES, InvalidFolioDocumentOperationBatchError, STELLA_STYLE_SET_NAME, UnsupportedFolioDocumentOperationVersionError, acceptAutocompleteSuggestion, acceptAutocompleteWord, anonymizationDecorationsKey, appendAutocompleteToken, applyFolioAIEditOperations, applyFolioDocumentOperations, applySuggestions, assertSupportedFolioDocumentOperationVersion, autocompleteSuggestionKey, autocompleteSuggestionPlugin, buildPositionalText, clearAutocompleteSuggestion, clearTemplateSlashMenu, consumeTemplateSlashQuery, createAICitationDecorationsPlugin, createDocx, createEmptyDocument, createFolioAIEditSnapshot, createStellaStyleDocumentPreset, createStellaStyleSet, deriveBlockId, diffWordSegments, extractDocumentStyleSet, extractDocumentStyleSetFromDocx, extractEmbeddedFonts, finishAutocompleteSuggestion, fromMarkdown, getAnonymizationMatches, getAutocompleteSuggestion, getEmbeddedFontFaces, getFolioCaretViewportRect, getFolioDocumentOperationCapabilities, getFolioDocumentOperationIssues, getFolioDocumentOperationReceipts, getFolioParaIdFromBlockId, getFolioSelectionViewportRect, getGoogleFontsEnabled, getTemplateDirectives, getTemplateSlashMenu, hashFolioAIBlockText, inspectDocumentStyles, inspectDocumentStylesFromDocx, inspectDocxCompatibility, isFolioBlockId, isFolioDocumentOperationModeSupported, isSequentialFolioBlockId, isSuggestionStale, isSupportedFolioDocumentOperationVersion, normalizeFolioAIBlockText, parseFolioDocumentOperationBatch, resetTemplateSlashQuery, resolveSuggestionAnchor, scanDirectives, scrollFolioPositionIntoView, setAICitationsMeta, setAISuggestionsMeta, setActiveCitationMeta, setAnonymizationTermsMeta, setFocusedSuggestionMeta, setGoogleFontsEnabled, setTemplatePreviewValues, shouldTriggerAutocomplete, startAutocompleteSuggestion, templateSlashMenuKey, toMarkdown, toMarkdownResult };
30
+ export { DEFAULT_AI_SUGGESTION_PRESETS, DEFAULT_AUTOCOMPLETE_DEAD_ZONE_NODES, DOCUMENT_PRESET_VERSION, DOCUMENT_STYLE_SET_VERSION, DOCX_CONFORMANCE_CLASSES, FOLIO_DOCUMENT_OPERATION_BATCH_MODES, FOLIO_DOCUMENT_OPERATION_CONTRACT_VERSION, FOLIO_DOCUMENT_OPERATION_MODES, FOLIO_DOCUMENT_OPERATION_MODES_BY_TYPE, FOLIO_DOCUMENT_OPERATION_PRECONDITIONS, FOLIO_DOCUMENT_OPERATION_STORIES, FOLIO_DOCUMENT_OPERATION_TYPES, InvalidFolioDocumentOperationBatchError, STELLA_STYLE_SET_NAME, UnsupportedFolioDocumentOperationVersionError, acceptAutocompleteSuggestion, acceptAutocompleteWord, anonymizationDecorationsKey, appendAutocompleteToken, applyFolioAIEditOperations, applyFolioDocumentOperations, applySuggestions, assertSupportedFolioDocumentOperationVersion, autocompleteSuggestionKey, autocompleteSuggestionPlugin, buildEmbeddedFontFamilyMap, buildPositionalText, clearAutocompleteSuggestion, clearTemplateSlashMenu, consumeTemplateSlashQuery, createAICitationDecorationsPlugin, createDocx, createEmptyDocument, createFolioAIEditSnapshot, createStellaStyleDocumentPreset, createStellaStyleSet, deriveBlockId, diffWordSegments, extractDocumentStyleSet, extractDocumentStyleSetFromDocx, extractEmbeddedFonts, finishAutocompleteSuggestion, fromMarkdown, getAnonymizationMatches, getAutocompleteSuggestion, getEmbeddedFontFaces, getFolioCaretViewportRect, getFolioDocumentOperationCapabilities, getFolioDocumentOperationIssues, getFolioDocumentOperationReceipts, getFolioParaIdFromBlockId, getFolioSelectionViewportRect, getGoogleFontsEnabled, getTemplateDirectives, getTemplateSlashMenu, hashFolioAIBlockText, inspectDocumentStyles, inspectDocumentStylesFromDocx, inspectDocxCompatibility, isFolioBlockId, isFolioDocumentOperationModeSupported, isSequentialFolioBlockId, isSuggestionStale, isSupportedFolioDocumentOperationVersion, normalizeFolioAIBlockText, parseFolioDocumentOperationBatch, resetTemplateSlashQuery, resolveSuggestionAnchor, scanDirectives, scopeEmbeddedFontFamily, scrollFolioPositionIntoView, setAICitationsMeta, setAISuggestionsMeta, setActiveCitationMeta, setAnonymizationTermsMeta, setEmbeddedFontFamilyMap, setFocusedSuggestionMeta, setGoogleFontsEnabled, setTemplatePreviewValues, shouldTriggerAutocomplete, startAutocompleteSuggestion, templateSlashMenuKey, toMarkdown, toMarkdownResult };
@@ -10,6 +10,7 @@ type ConvertFootnoteOptions = {
10
10
  measureBlocks?: MeasureBlocksFn; /** Document-wide `w:defaultTabStop` in twips — forwarded to toFlowBlocks. */
11
11
  defaultTabStopTwips?: number;
12
12
  lineBreakRules?: ToFlowBlocksOptions["lineBreakRules"];
13
+ justificationCompatibility?: ToFlowBlocksOptions["justificationCompatibility"];
13
14
  automaticHyphenation?: ToFlowBlocksOptions["automaticHyphenation"];
14
15
  };
15
16
  /**
@@ -1,6 +1,7 @@
1
1
  import { footnoteToProseDoc } from "../../prosemirror/conversion/toProseDoc.js";
2
2
  import { DEFAULT_TEXTBOX_MARGINS, FOOTNOTE_ENTRY_MARGIN_BOTTOM, FOOTNOTE_FALLBACK_LINE_HEIGHT, FOOTNOTE_SEPARATOR_HEIGHT } from "../../layout-engine/types.js";
3
3
  import { measureParagraph } from "../../layout-engine/measure/measureParagraph.js";
4
+ import { layoutTextBoxContent } from "../../layout-engine/measure/textBoxParagraphLayout.js";
4
5
  import { toFlowBlocks } from "./toFlowBlocks.js";
5
6
  //#region src/layout-bridge/convert/footnoteLayout.ts
6
7
  /** Default footnote font size in points */
@@ -90,39 +91,12 @@ function remapNoteMarkerText(blocks, maps) {
90
91
  }
91
92
  function remapNoteMarkerBlock(block, maps) {
92
93
  if (block.kind === "paragraph") return remapNoteMarkerParagraph(block, maps);
93
- if (block.kind === "table") {
94
- let tableChanged = false;
95
- const rows = block.rows.map((row) => {
96
- let rowChanged = false;
97
- const cells = row.cells.map((cell) => {
98
- let cellChanged = false;
99
- const cellBlocks = cell.blocks.map((cellBlock) => {
100
- const remapped = remapNoteMarkerBlock(cellBlock, maps);
101
- cellChanged ||= remapped !== cellBlock;
102
- return remapped;
103
- });
104
- return cellChanged ? {
105
- ...cell,
106
- blocks: cellBlocks
107
- } : cell;
108
- });
109
- rowChanged = cells.some((cell, index) => cell !== row.cells[index]);
110
- tableChanged ||= rowChanged;
111
- return rowChanged ? {
112
- ...row,
113
- cells
114
- } : row;
115
- });
116
- return tableChanged ? {
117
- ...block,
118
- rows
119
- } : block;
120
- }
94
+ if (block.kind === "table") return remapNoteMarkerTable(block, maps);
121
95
  if (block.kind === "textBox") {
122
96
  let boxChanged = false;
123
- const content = block.content.map((paragraph) => {
124
- const remapped = remapNoteMarkerParagraph(paragraph, maps);
125
- boxChanged ||= remapped !== paragraph;
97
+ const content = block.content.map((contentBlock) => {
98
+ const remapped = contentBlock.kind === "table" ? remapNoteMarkerTable(contentBlock, maps) : remapNoteMarkerParagraph(contentBlock, maps);
99
+ boxChanged ||= remapped !== contentBlock;
126
100
  return remapped;
127
101
  });
128
102
  return boxChanged ? {
@@ -132,6 +106,33 @@ function remapNoteMarkerBlock(block, maps) {
132
106
  }
133
107
  return block;
134
108
  }
109
+ function remapNoteMarkerTable(block, maps) {
110
+ let tableChanged = false;
111
+ const rows = block.rows.map((row) => {
112
+ const cells = row.cells.map((cell) => {
113
+ let cellChanged = false;
114
+ const cellBlocks = cell.blocks.map((cellBlock) => {
115
+ const remapped = remapNoteMarkerBlock(cellBlock, maps);
116
+ cellChanged ||= remapped !== cellBlock;
117
+ return remapped;
118
+ });
119
+ return cellChanged ? {
120
+ ...cell,
121
+ blocks: cellBlocks
122
+ } : cell;
123
+ });
124
+ const rowChanged = cells.some((cell, index) => cell !== row.cells[index]);
125
+ tableChanged ||= rowChanged;
126
+ return rowChanged ? {
127
+ ...row,
128
+ cells
129
+ } : row;
130
+ });
131
+ return tableChanged ? {
132
+ ...block,
133
+ rows
134
+ } : block;
135
+ }
135
136
  function remapNoteMarkerParagraph(block, maps) {
136
137
  let changed = false;
137
138
  const runs = block.runs.map((run) => {
@@ -197,6 +198,7 @@ function convertFootnoteToContent(footnote, displayNumber, contentWidth, options
197
198
  if (options.theme !== void 0) flowOptions.theme = options.theme;
198
199
  if (options.defaultTabStopTwips !== void 0) flowOptions.defaultTabStopTwips = options.defaultTabStopTwips;
199
200
  if (options.lineBreakRules) flowOptions.lineBreakRules = options.lineBreakRules;
201
+ if (options.justificationCompatibility) flowOptions.justificationCompatibility = options.justificationCompatibility;
200
202
  if (options.automaticHyphenation) flowOptions.automaticHyphenation = options.automaticHyphenation;
201
203
  const blocks = applyFootnotePresentation(toFlowBlocks(pmDoc, flowOptions), displayNumber);
202
204
  const measures = options.measureBlocks ? options.measureBlocks(blocks, contentWidth) : measureFootnoteBlocks(blocks, contentWidth);
@@ -228,9 +230,11 @@ function measureFootnoteBlock(block, contentWidth) {
228
230
  const margins = block.margins ?? DEFAULT_TEXTBOX_MARGINS;
229
231
  const width = block.width;
230
232
  const innerWidth = Math.max(1, width - margins.left - margins.right);
231
- const innerMeasures = block.content.map((paragraph) => measureParagraph(paragraph, innerWidth));
232
- let contentHeight = 0;
233
- for (const measure of innerMeasures) contentHeight += measure.totalHeight;
233
+ const innerMeasures = block.content.map((contentBlock) => {
234
+ if (contentBlock.kind === "table") return measureFootnoteTable(contentBlock, innerWidth);
235
+ return measureParagraph(contentBlock, innerWidth);
236
+ });
237
+ const contentHeight = layoutTextBoxContent(block.content, innerMeasures).totalHeight;
234
238
  return {
235
239
  kind: "textBox",
236
240
  width,
@@ -373,7 +377,15 @@ function createFootnoteNumberRun(displayNumber, paragraph) {
373
377
  }
374
378
  function applyFootnoteBlockPresentation(block) {
375
379
  if (block.kind === "paragraph") return applyFootnoteParagraphPresentation(block);
376
- if (block.kind === "table") return {
380
+ if (block.kind === "table") return applyFootnoteTablePresentation(block);
381
+ if (block.kind === "textBox") return {
382
+ ...block,
383
+ content: block.content.map((contentBlock) => contentBlock.kind === "table" ? applyFootnoteTablePresentation(contentBlock) : applyFootnoteParagraphPresentation(contentBlock))
384
+ };
385
+ return block;
386
+ }
387
+ function applyFootnoteTablePresentation(block) {
388
+ return {
377
389
  ...block,
378
390
  rows: block.rows.map((row) => ({
379
391
  ...row,
@@ -383,11 +395,6 @@ function applyFootnoteBlockPresentation(block) {
383
395
  }))
384
396
  }))
385
397
  };
386
- if (block.kind === "textBox") return {
387
- ...block,
388
- content: block.content.map(applyFootnoteParagraphPresentation)
389
- };
390
- return block;
391
398
  }
392
399
  function applyFootnoteParagraphPresentation(block) {
393
400
  return {
@@ -37,6 +37,7 @@ type ConvertHeaderFooterOptions = {
37
37
  measureBlocks: MeasureBlocksFn; /** Document-wide `w:defaultTabStop` in twips — forwarded to toFlowBlocks. */
38
38
  defaultTabStopTwips?: number;
39
39
  lineBreakRules?: ToFlowBlocksOptions["lineBreakRules"];
40
+ justificationCompatibility?: ToFlowBlocksOptions["justificationCompatibility"];
40
41
  automaticHyphenation?: ToFlowBlocksOptions["automaticHyphenation"];
41
42
  /**
42
43
  * Relationship id of the source HF part. Stamped onto the returned
@@ -312,6 +312,7 @@ function convertHeaderFooterToContent(headerFooter, contentWidth, metrics, optio
312
312
  if (options.theme !== void 0) flowOptions.theme = options.theme;
313
313
  if (options.defaultTabStopTwips !== void 0) flowOptions.defaultTabStopTwips = options.defaultTabStopTwips;
314
314
  if (options.lineBreakRules) flowOptions.lineBreakRules = options.lineBreakRules;
315
+ if (options.justificationCompatibility) flowOptions.justificationCompatibility = options.justificationCompatibility;
315
316
  if (options.automaticHyphenation) flowOptions.automaticHyphenation = options.automaticHyphenation;
316
317
  return finalizeHeaderFooterContent(toFlowBlocks(pmDoc, flowOptions), contentWidth, metrics, options);
317
318
  }
@@ -332,6 +333,7 @@ function convertHeaderFooterPmDocToContent(pmDoc, contentWidth, metrics, options
332
333
  if (options.theme !== void 0) flowOptions.theme = options.theme;
333
334
  if (options.defaultTabStopTwips !== void 0) flowOptions.defaultTabStopTwips = options.defaultTabStopTwips;
334
335
  if (options.lineBreakRules) flowOptions.lineBreakRules = options.lineBreakRules;
336
+ if (options.justificationCompatibility) flowOptions.justificationCompatibility = options.justificationCompatibility;
335
337
  if (options.automaticHyphenation) flowOptions.automaticHyphenation = options.automaticHyphenation;
336
338
  return finalizeHeaderFooterContent(toFlowBlocks(pmDoc, flowOptions), contentWidth, metrics, options);
337
339
  }
@@ -403,6 +405,7 @@ function blockSig(b) {
403
405
  for (const r of b.runs) if (r.kind === "text") text += `T:${r.text}|${serializeRunFmt(r)};`;
404
406
  else if (r.kind === "tab") text += `\\t|${serializeRunFmt(r)};`;
405
407
  else if (r.kind === "lineBreak") text += "\\n;";
408
+ else if (r.kind === "renderedPageBreak") text += "R;";
406
409
  else if (r.kind === "image") text += `[i${r.width}x${r.height}|${r.src}|${r.transform ?? ""}|${r.wrapType ?? ""}];`;
407
410
  else if (r.kind === "math") text += `M:${r.display}|${r.ommlXml};`;
408
411
  else text += `F:${r.fieldType}|${serializeRunFmt(r)};`;
@@ -57,9 +57,9 @@ function transformTable(block, entries, mode) {
57
57
  function transformTextBox(block, entries, mode) {
58
58
  let changed = false;
59
59
  const content = [];
60
- for (const paragraph of block.content) {
61
- const transformed = transformParagraph(paragraph, entries, mode);
62
- changed ||= transformed !== paragraph;
60
+ for (const contentBlock of block.content) {
61
+ const transformed = contentBlock.kind === "table" ? transformTable(contentBlock, entries, mode) : transformParagraph(contentBlock, entries, mode);
62
+ changed ||= transformed !== contentBlock;
63
63
  content.push(transformed);
64
64
  }
65
65
  return changed ? {
@@ -42,8 +42,10 @@ type ToFlowBlocksOptions = {
42
42
  characters: string;
43
43
  };
44
44
  useLegacyEthiopicAmharicRules?: boolean;
45
- }; /** Document-wide automatic hyphenation policy. */
46
- automaticHyphenation?: NonNullable<ParagraphAttrs["automaticHyphenation"]>;
45
+ }; /** Document-generation policy for justified line fitting. */
46
+ justificationCompatibility?: NonNullable<ParagraphAttrs["justificationCompatibility"]>; /** Document-wide automatic hyphenation policy. */
47
+ automaticHyphenation?: NonNullable<ParagraphAttrs["automaticHyphenation"]>; /** Line pitch for the final body section, whose properties live outside the PM body. */
48
+ finalSectionDocumentGridLinePitchTwips?: number;
47
49
  };
48
50
  declare function formatCounter(value: number, format: document_d_exports.NumberFormat | undefined): string;
49
51
  declare function resolveListTemplate(template: string, counters: number[], levelFormats: document_d_exports.NumberFormat[] | undefined, forceDecimal?: boolean): string;