@stll/folio-core 0.45.0 → 0.47.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 (451) hide show
  1. package/dist/ai-edits/apply.js +85 -43
  2. package/dist/ai-edits/headless.js +2 -2
  3. package/dist/ai-edits/read.d.ts +1 -0
  4. package/dist/ai-edits/read.js +1 -0
  5. package/dist/ai-edits/snapshot.js +32 -27
  6. package/dist/ai-edits/table-cell-mutations.js +15 -7
  7. package/dist/ai-edits/table-geometry.js +21 -18
  8. package/dist/ai-edits/table-template.js +2 -2
  9. package/dist/compare/compare.js +2 -5
  10. package/dist/compare/content-alignment.js +108 -12
  11. package/dist/compare/content-types.d.ts +8 -2
  12. package/dist/compare/content.js +2 -11
  13. package/dist/compare/plan.js +7 -4
  14. package/dist/compare/scenario.js +2 -5
  15. package/dist/compare/section-boundary-properties.js +1 -2
  16. package/dist/compare/types.d.ts +9 -1
  17. package/dist/compare/types.js +12 -1
  18. package/dist/compat/eigenpal.d.ts +2 -1
  19. package/dist/compat/eigenpal.js +2 -1
  20. package/dist/content-controls/checkboxDisplay.d.ts +17 -0
  21. package/dist/content-controls/checkboxDisplay.js +46 -0
  22. package/dist/content-controls/findContentControls.js +3 -1
  23. package/dist/content-controls/mutateContentControls.js +57 -43
  24. package/dist/controller/contentControlWidgetController.d.ts +1 -0
  25. package/dist/controller/contentControlWidgetController.js +3 -0
  26. package/dist/controller/hiddenEditorApi.js +3 -1
  27. package/dist/controller/hiddenEditorManager.d.ts +1 -1
  28. package/dist/controller/hiddenEditorManager.js +6 -3
  29. package/dist/controller/layoutPipeline.js +8 -3
  30. package/dist/display-list/build/buildDisplayList.js +20 -1
  31. package/dist/display-list/build/imagePrimitives.d.ts +4 -4
  32. package/dist/display-list/build/imagePrimitives.js +38 -18
  33. package/dist/display-list/build/pageBorderPrimitives.js +2 -1
  34. package/dist/display-list/build/paragraphPrimitives.js +113 -14
  35. package/dist/display-list/build/previewPrimitives.d.ts +10 -0
  36. package/dist/display-list/build/previewPrimitives.js +89 -0
  37. package/dist/display-list/build/strokes.d.ts +177 -8
  38. package/dist/display-list/build/strokes.js +167 -47
  39. package/dist/display-list/build/tablePrimitives.js +4 -2
  40. package/dist/display-list/build/textBoxPrimitives.js +6 -4
  41. package/dist/display-list/build/textDecorations.d.ts +15 -1
  42. package/dist/display-list/build/textDecorations.js +15 -1
  43. package/dist/display-list/dom/renderDisplayListToDom.js +11 -21
  44. package/dist/display-list/primitives.d.ts +13 -2
  45. package/dist/display-list/primitives.js +36 -1
  46. package/dist/display-list/types.d.ts +17 -0
  47. package/dist/document-operations.js +2 -1
  48. package/dist/docx/attributeRemainder.d.ts +76 -0
  49. package/dist/docx/attributeRemainder.js +111 -0
  50. package/dist/docx/blockContentParser.d.ts +3 -1
  51. package/dist/docx/blockContentParser.js +102 -106
  52. package/dist/docx/blockPlainText.d.ts +3 -4
  53. package/dist/docx/blockPlainText.js +3 -0
  54. package/dist/docx/borderParser.js +26 -11
  55. package/dist/docx/builtInStyles.d.ts +8 -16
  56. package/dist/docx/builtInStyles.js +54 -17
  57. package/dist/docx/commentAnchorIndex.d.ts +30 -0
  58. package/dist/docx/commentAnchorIndex.js +50 -0
  59. package/dist/docx/commentParser.d.ts +1 -1
  60. package/dist/docx/commentParser.js +56 -39
  61. package/dist/docx/commentRangeIntegrity.d.ts +16 -1
  62. package/dist/docx/commentRangeIntegrity.js +42 -1
  63. package/dist/docx/commentRangeJoin.d.ts +9 -0
  64. package/dist/docx/commentRangeJoin.js +33 -0
  65. package/dist/docx/commentReferenceCompletion.d.ts +9 -0
  66. package/dist/docx/commentReferenceCompletion.js +47 -0
  67. package/dist/docx/commentReferenceNormalization.js +3 -1
  68. package/dist/docx/commentReplyMarkers.js +11 -19
  69. package/dist/docx/compatibility.js +56 -41
  70. package/dist/docx/containerChildren.d.ts +208 -0
  71. package/dist/docx/containerChildren.gen.d.ts +43 -0
  72. package/dist/docx/containerChildren.gen.js +263 -0
  73. package/dist/docx/containerChildren.js +153 -0
  74. package/dist/docx/diagramPreview.d.ts +14 -2
  75. package/dist/docx/diagramPreview.js +81 -169
  76. package/dist/docx/documentParser.d.ts +1 -1
  77. package/dist/docx/documentParser.js +7 -4
  78. package/dist/docx/drawingAnchor.d.ts +87 -0
  79. package/dist/docx/drawingAnchor.js +201 -0
  80. package/dist/docx/drawingUtils.d.ts +43 -38
  81. package/dist/docx/drawingUtils.js +205 -118
  82. package/dist/docx/ensureParaIds.js +17 -7
  83. package/dist/docx/fieldParser.d.ts +1 -1
  84. package/dist/docx/fieldParser.js +4 -4
  85. package/dist/docx/fieldState.d.ts +26 -0
  86. package/dist/docx/fieldState.js +53 -0
  87. package/dist/docx/fontTableParser.js +102 -41
  88. package/dist/docx/footnoteParser.d.ts +1 -1
  89. package/dist/docx/footnoteParser.js +10 -6
  90. package/dist/docx/graphicFrameLocks.d.ts +16 -4
  91. package/dist/docx/graphicFrameLocks.js +19 -6
  92. package/dist/docx/groupDrawingParser.js +4 -3
  93. package/dist/docx/headerFooterParser.js +1 -1
  94. package/dist/docx/headerFooterReferenceNormalization.js +1 -0
  95. package/dist/docx/hyperlinkParser.d.ts +66 -9
  96. package/dist/docx/hyperlinkParser.js +153 -26
  97. package/dist/docx/imageParser.js +160 -115
  98. package/dist/docx/index.d.ts +2 -1
  99. package/dist/docx/index.js +2 -1
  100. package/dist/docx/inlineContentRemovals.d.ts +28 -0
  101. package/dist/docx/inlineContentRemovals.js +46 -0
  102. package/dist/docx/inlineWrapperContent.d.ts +166 -0
  103. package/dist/docx/inlineWrapperContent.js +165 -0
  104. package/dist/docx/inlineWrapperParser.d.ts +11 -0
  105. package/dist/docx/inlineWrapperParser.js +60 -0
  106. package/dist/docx/nonVisualDrawingProps.d.ts +5 -13
  107. package/dist/docx/normalizeBaseDirection.js +12 -1
  108. package/dist/docx/numberingParser.d.ts +25 -2
  109. package/dist/docx/numberingParser.js +264 -361
  110. package/dist/docx/numberingReference.d.ts +9 -16
  111. package/dist/docx/numberingReference.js +17 -16
  112. package/dist/docx/numberingReferenceNormalization.js +7 -7
  113. package/dist/docx/ooxmlCounterFormatter.d.ts +1 -1
  114. package/dist/docx/ooxmlCounterFormatter.js +4 -1
  115. package/dist/docx/paraIdAttribute.d.ts +111 -0
  116. package/dist/docx/paraIdAttribute.js +142 -0
  117. package/dist/docx/paragraphParser.d.ts +10 -25
  118. package/dist/docx/paragraphParser.js +421 -496
  119. package/dist/docx/paragraphProperties.d.ts +23 -0
  120. package/dist/docx/paragraphProperties.js +279 -0
  121. package/dist/docx/paragraphPropertySource.js +7 -1
  122. package/dist/docx/paragraphTextBoxEnrichment.d.ts +3 -2
  123. package/dist/docx/paragraphTextBoxEnrichment.js +20 -59
  124. package/dist/docx/paragraphTraversal.d.ts +14 -10
  125. package/dist/docx/paragraphTraversal.js +53 -52
  126. package/dist/docx/parseWarningMessage.js +5 -1
  127. package/dist/docx/parserEnums.d.ts +6 -8
  128. package/dist/docx/parserEnums.js +4 -6
  129. package/dist/docx/preservedRunContent.d.ts +32 -0
  130. package/dist/docx/preservedRunContent.js +96 -0
  131. package/dist/docx/previewBudget.d.ts +44 -23
  132. package/dist/docx/previewBudget.js +61 -30
  133. package/dist/docx/propertyElementAttributes.d.ts +178 -0
  134. package/dist/docx/propertyElementAttributes.js +114 -0
  135. package/dist/docx/renderedPageBreakNormalization.js +4 -6
  136. package/dist/docx/rezip.d.ts +28 -2
  137. package/dist/docx/rezip.js +152 -27
  138. package/dist/docx/runConsolidator.d.ts +42 -2
  139. package/dist/docx/runConsolidator.js +60 -6
  140. package/dist/docx/runParser.d.ts +55 -19
  141. package/dist/docx/runParser.js +394 -306
  142. package/dist/docx/runPayload.d.ts +5 -0
  143. package/dist/docx/runPayload.js +4 -0
  144. package/dist/docx/sdtProperties.d.ts +39 -5
  145. package/dist/docx/sdtProperties.js +205 -84
  146. package/dist/docx/sdtPropertiesPatch.d.ts +5 -9
  147. package/dist/docx/sdtPropertiesPatch.js +68 -112
  148. package/dist/docx/sectionParser.d.ts +1 -2
  149. package/dist/docx/sectionParser.js +241 -238
  150. package/dist/docx/selectiveSave.js +3 -2
  151. package/dist/docx/selectiveXmlPatch.d.ts +66 -3
  152. package/dist/docx/selectiveXmlPatch.js +276 -133
  153. package/dist/docx/serializer/blockSdtSerializer.js +2 -96
  154. package/dist/docx/serializer/borderSerializer.d.ts +5 -5
  155. package/dist/docx/serializer/borderSerializer.js +12 -10
  156. package/dist/docx/serializer/commentSerializer.js +5 -7
  157. package/dist/docx/serializer/documentSerializer.js +11 -11
  158. package/dist/docx/serializer/fontTableSerializer.js +31 -3
  159. package/dist/docx/serializer/headerFooterSerializer.js +10 -9
  160. package/dist/docx/serializer/markupRangeAttributes.d.ts +9 -1
  161. package/dist/docx/serializer/markupRangeAttributes.js +9 -1
  162. package/dist/docx/serializer/noteSerializer.js +11 -8
  163. package/dist/docx/serializer/numberingSerializer.d.ts +1 -6
  164. package/dist/docx/serializer/numberingSerializer.js +81 -79
  165. package/dist/docx/serializer/paragraphSerializer.d.ts +1 -9
  166. package/dist/docx/serializer/paragraphSerializer.js +156 -236
  167. package/dist/docx/serializer/runSerializer.d.ts +1 -5
  168. package/dist/docx/serializer/runSerializer.js +134 -75
  169. package/dist/docx/serializer/sdtPropertiesSerializer.d.ts +26 -0
  170. package/dist/docx/serializer/sdtPropertiesSerializer.js +111 -0
  171. package/dist/docx/serializer/sectionPropertiesSerializer.js +42 -49
  172. package/dist/docx/serializer/settingsSerializer.js +6 -4
  173. package/dist/docx/serializer/stylesSerializer.js +8 -11
  174. package/dist/docx/serializer/tableSerializer.js +283 -105
  175. package/dist/docx/serializer/textFormattingSerializer.d.ts +28 -4
  176. package/dist/docx/serializer/textFormattingSerializer.js +111 -101
  177. package/dist/docx/serializer/xmlUtils.d.ts +1 -1
  178. package/dist/docx/serializer/xmlUtils.js +1 -1
  179. package/dist/docx/server/createBilingualDocument.js +20 -16
  180. package/dist/docx/server/materializeYjsDocx.d.ts +1 -1
  181. package/dist/docx/server/materializeYjsDocx.js +9 -1
  182. package/dist/docx/server/migrateYjsAttrSchema.d.ts +55 -0
  183. package/dist/docx/server/migrateYjsAttrSchema.js +95 -0
  184. package/dist/docx/settingsParser.js +7 -4
  185. package/dist/docx/shadingParser.d.ts +2 -1
  186. package/dist/docx/shadingParser.js +43 -7
  187. package/dist/docx/shapeParser.js +13 -8
  188. package/dist/docx/strictNames.d.ts +11 -0
  189. package/dist/docx/strictNames.gen.d.ts +45 -0
  190. package/dist/docx/strictNames.gen.js +50 -0
  191. package/dist/docx/strictNames.js +43 -0
  192. package/dist/docx/strictValueEncodings.gen.js +133 -131
  193. package/dist/docx/styleParser.js +17 -349
  194. package/dist/docx/tableParser.d.ts +11 -2
  195. package/dist/docx/tableParser.js +665 -220
  196. package/dist/docx/textBoxParser.d.ts +28 -3
  197. package/dist/docx/textBoxParser.js +69 -9
  198. package/dist/docx/themeColorAttribute.d.ts +13 -0
  199. package/dist/docx/themeColorAttribute.js +24 -0
  200. package/dist/docx/trackedMoveRangeNormalization.js +2 -1
  201. package/dist/docx/unzip.js +5 -4
  202. package/dist/docx/vmlImageParser.d.ts +30 -5
  203. package/dist/docx/vmlImageParser.js +91 -32
  204. package/dist/docx/vmlPreview.js +2 -2
  205. package/dist/docx/wrapPolygon.d.ts +30 -0
  206. package/dist/docx/wrapPolygon.js +70 -0
  207. package/dist/docx/xmlEncoding.d.ts +5 -0
  208. package/dist/docx/xmlEncoding.js +12 -0
  209. package/dist/docx/xmlParser.d.ts +23 -1
  210. package/dist/docx/xmlParser.js +31 -2
  211. package/dist/fonts/embeddedFonts.js +3 -3
  212. package/dist/headless-layout.js +12 -1
  213. package/dist/i18n/messages/catalogs.gen.d.ts +68 -0
  214. package/dist/i18n/messages/catalogs.gen.js +102 -34
  215. package/dist/i18n/messages/messages.gen.d.ts +4 -0
  216. package/dist/index.d.ts +2 -1
  217. package/dist/index.js +2 -1
  218. package/dist/internal/headlessRevisionResolution.js +9 -0
  219. package/dist/internal/pageBreakRunSourceDescendantIndex.js +7 -2
  220. package/dist/internal/paragraphFormattingSerialization.d.ts +20 -9
  221. package/dist/internal/paragraphFormattingSerialization.js +118 -83
  222. package/dist/layout-bridge/convert/footnoteLayout.d.ts +1 -0
  223. package/dist/layout-bridge/convert/footnoteLayout.js +1 -0
  224. package/dist/layout-bridge/convert/headerFooterLayout.d.ts +1 -0
  225. package/dist/layout-bridge/convert/headerFooterLayout.js +2 -0
  226. package/dist/layout-bridge/convert/toFlowBlocks.d.ts +17 -12
  227. package/dist/layout-bridge/convert/toFlowBlocks.js +267 -101
  228. package/dist/layout-engine/index.d.ts +2 -2
  229. package/dist/layout-engine/index.js +53 -17
  230. package/dist/layout-engine/measure/measureBlocks.d.ts +3 -0
  231. package/dist/layout-engine/measure/measureBlocks.js +6 -10
  232. package/dist/layout-engine/measure/tableCellFloating.d.ts +2 -0
  233. package/dist/layout-engine/measure/tableCellFloating.js +2 -0
  234. package/dist/layout-engine/measure/tableCellGrid.js +2 -1
  235. package/dist/layout-engine/measure/tableFragmentBorderGeometry.js +2 -1
  236. package/dist/layout-engine/measure/tableInlinePlacement.js +2 -5
  237. package/dist/layout-engine/paragraphSequence.js +3 -2
  238. package/dist/layout-engine/renderedBreakReconciliation.js +2 -1
  239. package/dist/layout-engine/section-breaks.d.ts +49 -2
  240. package/dist/layout-engine/section-breaks.js +55 -4
  241. package/dist/layout-engine/types.d.ts +69 -17
  242. package/dist/layout-engine/types.js +16 -1
  243. package/dist/layout-painter/borderStroke.d.ts +18 -4
  244. package/dist/layout-painter/renderImage.d.ts +5 -1
  245. package/dist/layout-painter/renderImage.js +10 -3
  246. package/dist/layout-painter/renderPage.d.ts +2 -0
  247. package/dist/layout-painter/renderPage.js +10 -4
  248. package/dist/layout-painter/renderParagraph.d.ts +14 -1
  249. package/dist/layout-painter/renderParagraph.js +34 -28
  250. package/dist/layout-painter/renderTable.d.ts +4 -1
  251. package/dist/layout-painter/renderTable.js +22 -22
  252. package/dist/layout-painter/renderTextBox.js +5 -3
  253. package/dist/managers/autoSaveCodec.d.ts +9 -1
  254. package/dist/managers/autoSaveCodec.js +12 -4
  255. package/dist/markdown/renderBlock.js +3 -0
  256. package/dist/markdown/renderRuns.d.ts +1 -1
  257. package/dist/markdown/renderRuns.js +34 -6
  258. package/dist/markdown/renderTable.js +24 -6
  259. package/dist/markdown/trailers.js +4 -1
  260. package/dist/model.d.ts +3 -3
  261. package/dist/model.js +2 -2
  262. package/dist/paged-layout/sectionBlockWidths.d.ts +3 -0
  263. package/dist/paged-layout/sectionBlockWidths.js +26 -4
  264. package/dist/pdf/images.js +142 -6
  265. package/dist/prosemirror/attrs/index.d.ts +34 -5
  266. package/dist/prosemirror/attrs/index.js +639 -48
  267. package/dist/prosemirror/authoredTransformAttrs.d.ts +28 -0
  268. package/dist/prosemirror/authoredTransformAttrs.js +64 -0
  269. package/dist/prosemirror/bookmarkBoundaryAttrs.d.ts +9 -1
  270. package/dist/prosemirror/bookmarkBoundaryAttrs.js +22 -3
  271. package/dist/prosemirror/commands/comments.js +68 -53
  272. package/dist/prosemirror/commands/contentControls.js +33 -20
  273. package/dist/prosemirror/commands/image.d.ts +10 -3
  274. package/dist/prosemirror/commands/image.js +46 -29
  275. package/dist/prosemirror/commands/pageBreak.js +1 -1
  276. package/dist/prosemirror/commands/paragraph.d.ts +2 -1
  277. package/dist/prosemirror/commands/propertyChangeScope.d.ts +12 -4
  278. package/dist/prosemirror/commands/propertyChangeScope.js +22 -4
  279. package/dist/prosemirror/commands/sectionBreak.d.ts +33 -1
  280. package/dist/prosemirror/commands/sectionBreak.js +187 -11
  281. package/dist/prosemirror/commentReferenceAttrs.d.ts +8 -0
  282. package/dist/prosemirror/commentReferenceAttrs.js +33 -0
  283. package/dist/prosemirror/commentReferenceIntegrity.d.ts +47 -0
  284. package/dist/prosemirror/commentReferenceIntegrity.js +43 -0
  285. package/dist/prosemirror/conversion/fromProseDoc.d.ts +17 -12
  286. package/dist/prosemirror/conversion/fromProseDoc.js +553 -207
  287. package/dist/prosemirror/conversion/index.d.ts +2 -2
  288. package/dist/prosemirror/conversion/preservedSinkCarriers.d.ts +39 -0
  289. package/dist/prosemirror/conversion/preservedSinkCarriers.js +19 -0
  290. package/dist/prosemirror/conversion/runShadingMark.js +14 -1
  291. package/dist/prosemirror/conversion/sdtAttrs.d.ts +10 -1
  292. package/dist/prosemirror/conversion/sdtAttrs.js +19 -5
  293. package/dist/prosemirror/conversion/toProseDoc.d.ts +7 -9
  294. package/dist/prosemirror/conversion/toProseDoc.js +801 -411
  295. package/dist/prosemirror/emptyRangeAnchor.d.ts +53 -0
  296. package/dist/prosemirror/emptyRangeAnchor.js +158 -0
  297. package/dist/prosemirror/extensions/StarterKit.js +14 -58
  298. package/dist/prosemirror/extensions/core/DocExtension.js +1 -1
  299. package/dist/prosemirror/extensions/core/ParagraphExtension.js +21 -16
  300. package/dist/prosemirror/extensions/features/BaseKeymapExtension.js +48 -29
  301. package/dist/prosemirror/extensions/features/EmptyParagraphFormatExtension.js +3 -1
  302. package/dist/prosemirror/extensions/features/ImagePasteExtension.js +5 -3
  303. package/dist/prosemirror/extensions/features/ListExtension.js +43 -24
  304. package/dist/prosemirror/extensions/features/ParaIdAllocatorExtension.js +1 -0
  305. package/dist/prosemirror/extensions/features/ParagraphChangeTrackerExtension.js +4 -3
  306. package/dist/prosemirror/extensions/features/PasteCleanupExtension.d.ts +3 -3
  307. package/dist/prosemirror/extensions/features/PasteCleanupExtension.js +5 -5
  308. package/dist/prosemirror/extensions/features/pasteCleanup.d.ts +3 -1
  309. package/dist/prosemirror/extensions/features/pasteCleanup.js +56 -2
  310. package/dist/prosemirror/extensions/features/pastedHeadingStyles.js +5 -4
  311. package/dist/prosemirror/extensions/markRegistry.d.ts +65 -0
  312. package/dist/prosemirror/extensions/markRegistry.js +138 -0
  313. package/dist/prosemirror/extensions/marks/InlineWrapperExtension.d.ts +18 -0
  314. package/dist/prosemirror/extensions/marks/InlineWrapperExtension.js +77 -0
  315. package/dist/prosemirror/extensions/marks/RunIdentityExtension.d.ts +26 -0
  316. package/dist/prosemirror/extensions/marks/RunIdentityExtension.js +134 -0
  317. package/dist/prosemirror/extensions/marks/TrackedChangeExtensions.js +2 -1
  318. package/dist/prosemirror/extensions/marks/UnderlineExtension.js +12 -18
  319. package/dist/prosemirror/extensions/marks/markUtils.d.ts +2 -1
  320. package/dist/prosemirror/extensions/marks/markUtils.js +49 -5
  321. package/dist/prosemirror/extensions/nodes/BlockBookmarkBoundaryExtension.d.ts +29 -0
  322. package/dist/prosemirror/extensions/nodes/BlockBookmarkBoundaryExtension.js +46 -0
  323. package/dist/prosemirror/extensions/nodes/BlockSdtExtension.d.ts +4 -3
  324. package/dist/prosemirror/extensions/nodes/BlockSdtExtension.js +18 -13
  325. package/dist/prosemirror/extensions/nodes/BookmarkBoundaryExtension.js +28 -53
  326. package/dist/prosemirror/extensions/nodes/CommentReferenceExtension.d.ts +11 -0
  327. package/dist/prosemirror/extensions/nodes/CommentReferenceExtension.js +97 -0
  328. package/dist/prosemirror/extensions/nodes/FieldExtension.js +9 -7
  329. package/dist/prosemirror/extensions/nodes/ImageExtension.js +24 -1
  330. package/dist/prosemirror/extensions/nodes/MoveRangeBoundaryExtension.d.ts +11 -0
  331. package/dist/prosemirror/extensions/nodes/MoveRangeBoundaryExtension.js +43 -0
  332. package/dist/prosemirror/extensions/nodes/PreservedBlockExtension.d.ts +32 -0
  333. package/dist/prosemirror/extensions/nodes/PreservedBlockExtension.js +67 -0
  334. package/dist/prosemirror/extensions/nodes/PreservedXmlExtension.d.ts +16 -0
  335. package/dist/prosemirror/extensions/nodes/PreservedXmlExtension.js +60 -0
  336. package/dist/prosemirror/extensions/nodes/RangeAnchorExtension.d.ts +13 -0
  337. package/dist/prosemirror/extensions/nodes/RangeAnchorExtension.js +65 -0
  338. package/dist/prosemirror/extensions/nodes/SdtExtension.d.ts +3 -1
  339. package/dist/prosemirror/extensions/nodes/SdtExtension.js +22 -16
  340. package/dist/prosemirror/extensions/nodes/ShapeExtension.js +7 -0
  341. package/dist/prosemirror/extensions/nodes/TableExtension.js +142 -123
  342. package/dist/prosemirror/extensions/nodes/TextBoxExtension.js +9 -1
  343. package/dist/prosemirror/extensions/nodes/bookmarkBoundaryDom.d.ts +23 -0
  344. package/dist/prosemirror/extensions/nodes/bookmarkBoundaryDom.js +57 -0
  345. package/dist/prosemirror/extensions/types.d.ts +12 -3
  346. package/dist/prosemirror/index.d.ts +4 -2
  347. package/dist/prosemirror/index.js +2 -1
  348. package/dist/prosemirror/inlineWrapperStack.d.ts +39 -0
  349. package/dist/prosemirror/inlineWrapperStack.js +92 -0
  350. package/dist/prosemirror/listMarker.d.ts +2 -2
  351. package/dist/prosemirror/listMarker.js +7 -8
  352. package/dist/prosemirror/listRenderingAttrs.js +11 -1
  353. package/dist/prosemirror/listState.d.ts +62 -0
  354. package/dist/prosemirror/listState.js +49 -0
  355. package/dist/prosemirror/moveRangeBoundaryAttrs.d.ts +13 -0
  356. package/dist/prosemirror/moveRangeBoundaryAttrs.js +114 -0
  357. package/dist/prosemirror/numberedRefFields.js +4 -4
  358. package/dist/prosemirror/numberingAttr.d.ts +55 -0
  359. package/dist/prosemirror/numberingAttr.js +74 -0
  360. package/dist/prosemirror/outlineLevelAttr.d.ts +29 -0
  361. package/dist/prosemirror/outlineLevelAttr.js +42 -0
  362. package/dist/prosemirror/pageBreakRunProjection.d.ts +17 -7
  363. package/dist/prosemirror/pageBreakRunProjection.js +19 -9
  364. package/dist/prosemirror/paragraphFormattingProvenance.d.ts +9 -0
  365. package/dist/prosemirror/paragraphFormattingProvenance.js +4 -1
  366. package/dist/prosemirror/plugins/selectionTracker.d.ts +3 -6
  367. package/dist/prosemirror/plugins/selectionTracker.js +3 -10
  368. package/dist/prosemirror/rangeAnchorAttrs.d.ts +14 -0
  369. package/dist/prosemirror/rangeAnchorAttrs.js +101 -0
  370. package/dist/prosemirror/replacedAnnotations.d.ts +59 -0
  371. package/dist/prosemirror/replacedAnnotations.js +183 -0
  372. package/dist/prosemirror/revisionCarriers.d.ts +86 -2
  373. package/dist/prosemirror/revisionCarriers.js +86 -60
  374. package/dist/prosemirror/runFormattingInlineCarriers.d.ts +5 -1
  375. package/dist/prosemirror/runFormattingInlineCarriers.js +7 -1
  376. package/dist/prosemirror/runIdentity.d.ts +28 -0
  377. package/dist/prosemirror/runIdentity.js +36 -0
  378. package/dist/prosemirror/runStyleFormatting.js +1 -1
  379. package/dist/prosemirror/schema/index.d.ts +3 -3
  380. package/dist/prosemirror/schema/marks.d.ts +47 -4
  381. package/dist/prosemirror/schema/nodes.d.ts +309 -26
  382. package/dist/prosemirror/schema/nodes.js +16 -1
  383. package/dist/prosemirror/sectionCarrier.d.ts +37 -0
  384. package/dist/prosemirror/sectionCarrier.js +40 -0
  385. package/dist/prosemirror/selectionState.d.ts +3 -0
  386. package/dist/prosemirror/selectionState.js +4 -1
  387. package/dist/prosemirror/styles/resolvedStyleAttrs.d.ts +5 -4
  388. package/dist/prosemirror/styles/resolvedStyleAttrs.js +15 -13
  389. package/dist/prosemirror/tableResize.js +5 -6
  390. package/dist/prosemirror/trackedRunInlineAtoms.d.ts +4 -0
  391. package/dist/prosemirror/trackedRunInlineAtoms.js +4 -0
  392. package/dist/prosemirror/utils/extractTrackedChanges.d.ts +10 -11
  393. package/dist/prosemirror/utils/extractTrackedChanges.js +109 -92
  394. package/dist/prosemirror/validation.js +31 -6
  395. package/dist/prosemirror/yjsDocumentMetadata.d.ts +73 -0
  396. package/dist/prosemirror/yjsDocumentMetadata.js +592 -0
  397. package/dist/prosemirror/zeroWidthAnchors.js +6 -0
  398. package/dist/render-dom/commentAnchorAttributes.d.ts +37 -0
  399. package/dist/render-dom/commentAnchorAttributes.js +54 -0
  400. package/dist/server.d.ts +3 -1
  401. package/dist/server.js +3 -1
  402. package/dist/style-sets/extract.js +4 -4
  403. package/dist/style-sets/stellaStyle.js +36 -23
  404. package/dist/types/colors.d.ts +2 -2
  405. package/dist/types/content.d.ts +2 -2
  406. package/dist/types/documentEnumValues.d.ts +53 -26
  407. package/dist/types/documentEnumValues.js +72 -174
  408. package/dist/types/formatting.d.ts +2 -2
  409. package/dist/types/index.d.ts +9 -2
  410. package/dist/utils/borderCss.d.ts +246 -0
  411. package/dist/utils/borderCss.js +325 -0
  412. package/dist/utils/clipboard.d.ts +9 -1
  413. package/dist/utils/clipboard.js +27 -1
  414. package/dist/utils/colorResolver.d.ts +4 -3
  415. package/dist/utils/colorResolver.js +45 -76
  416. package/dist/utils/createDocument.js +24 -6
  417. package/dist/utils/findReplace.js +52 -10
  418. package/dist/utils/formatToStyle.d.ts +84 -2
  419. package/dist/utils/formatToStyle.js +133 -52
  420. package/dist/utils/headingCollector.js +3 -2
  421. package/dist/utils/imageLuminance.d.ts +15 -0
  422. package/dist/utils/imageLuminance.js +32 -0
  423. package/dist/utils/mergeDocumentContent.js +12 -20
  424. package/dist/utils/paragraphFormattingMerge.js +27 -6
  425. package/dist/utils/replaceText.js +1 -0
  426. package/dist/utils/tableOperations.d.ts +5 -3
  427. package/dist/utils/tableOperations.js +14 -1
  428. package/dist/utils/tablePlacement.d.ts +7 -0
  429. package/dist/utils/tablePlacement.js +14 -0
  430. package/dist/utils/textDirectionFlow.d.ts +15 -0
  431. package/dist/utils/textDirectionFlow.js +38 -0
  432. package/dist/utils/textFormattingMerge.js +16 -4
  433. package/package.json +10 -10
  434. package/dist/ai-edits/__fixtures__/paragraphs.d.ts +0 -17
  435. package/dist/ai-edits/__fixtures__/paragraphs.js +0 -33
  436. package/dist/compare/__fixtures__/body-sequence.d.ts +0 -119
  437. package/dist/compare/__fixtures__/body-sequence.js +0 -225
  438. package/dist/compare/__fixtures__/nested-table.d.ts +0 -16
  439. package/dist/compare/__fixtures__/nested-table.js +0 -50
  440. package/dist/compare/__fixtures__/numbered-list.d.ts +0 -34
  441. package/dist/compare/__fixtures__/numbered-list.js +0 -85
  442. package/dist/docx/blockRangeMarkers.d.ts +0 -36
  443. package/dist/docx/blockRangeMarkers.js +0 -59
  444. package/dist/docx/bookmarkPlacement.d.ts +0 -9
  445. package/dist/docx/bookmarkPlacement.js +0 -50
  446. package/dist/fonts/embeddedFontTable.d.ts +0 -45
  447. package/dist/fonts/embeddedFontTable.js +0 -80
  448. package/dist/prosemirror/extensions/marks/PageBreakRunOwnerExtension.d.ts +0 -13
  449. package/dist/prosemirror/extensions/marks/PageBreakRunOwnerExtension.js +0 -39
  450. package/dist/prosemirror/yjsParagraphSourceContract.d.ts +0 -9
  451. package/dist/prosemirror/yjsParagraphSourceContract.js +0 -26
@@ -1,5 +1,8 @@
1
1
  import { isValidHexColor } from "../utils/colorResolver.js";
2
- import { ShadingPatternSchema, ThemeColorSlotSchema, narrowEnum } from "./parserEnums.js";
2
+ import { readAttributeBag } from "./attributeRemainder.js";
3
+ import { ShadingPatternSchema, narrowEnum } from "./parserEnums.js";
4
+ import { SHADING_ATTRIBUTES } from "./propertyElementAttributes.js";
5
+ import { parseThemeColorAttribute } from "./themeColorAttribute.js";
3
6
  import { getAttribute } from "./xmlParser.js";
4
7
  //#region src/docx/shadingParser.ts
5
8
  /** `ST_HexColor`'s reserved "let the consumer decide" token. */
@@ -8,25 +11,58 @@ const parseHexColor = (value) => {
8
11
  if (value === AUTOMATIC_COLOR) return { auto: true };
9
12
  if (value && isValidHexColor(value)) return { rgb: value };
10
13
  };
11
- function parseShading(shd) {
14
+ function parseShading(shd, context) {
12
15
  if (!shd) return;
13
16
  const props = {};
14
17
  const color = parseHexColor(getAttribute(shd, "w", "color"));
15
18
  if (color) props.color = color;
16
19
  const fill = parseHexColor(getAttribute(shd, "w", "fill"));
17
20
  if (fill) props.fill = fill;
18
- const themeFill = narrowEnum(getAttribute(shd, "w", "themeFill"), ThemeColorSlotSchema);
19
- if (themeFill) {
21
+ const element = shd.name ?? "w:shd";
22
+ const themeColor = parseThemeColorAttribute({
23
+ raw: getAttribute(shd, "w", "themeColor"),
24
+ element,
25
+ context
26
+ });
27
+ if (themeColor !== void 0) {
28
+ props.color ??= {};
29
+ props.color.themeColor = themeColor;
30
+ }
31
+ const themeTint = getAttribute(shd, "w", "themeTint");
32
+ if (themeTint) {
33
+ props.color ??= {};
34
+ props.color.themeTint = themeTint;
35
+ }
36
+ const themeShade = getAttribute(shd, "w", "themeShade");
37
+ if (themeShade) {
38
+ props.color ??= {};
39
+ props.color.themeShade = themeShade;
40
+ }
41
+ const themeFill = parseThemeColorAttribute({
42
+ raw: getAttribute(shd, "w", "themeFill"),
43
+ element,
44
+ context
45
+ });
46
+ if (themeFill !== void 0) {
20
47
  props.fill ??= {};
21
48
  props.fill.themeColor = themeFill;
22
49
  }
23
50
  const themeFillTint = getAttribute(shd, "w", "themeFillTint");
24
- if (themeFillTint && props.fill) props.fill.themeTint = themeFillTint;
51
+ if (themeFillTint) {
52
+ props.fill ??= {};
53
+ props.fill.themeTint = themeFillTint;
54
+ }
25
55
  const themeFillShade = getAttribute(shd, "w", "themeFillShade");
26
- if (themeFillShade && props.fill) props.fill.themeShade = themeFillShade;
56
+ if (themeFillShade) {
57
+ props.fill ??= {};
58
+ props.fill.themeShade = themeFillShade;
59
+ }
27
60
  const pattern = narrowEnum(getAttribute(shd, "w", "val"), ShadingPatternSchema);
28
61
  if (pattern) props.pattern = pattern;
29
- return Object.keys(props).length > 0 ? props : void 0;
62
+ if (Object.keys(props).length === 0) return;
63
+ const preservedAttributes = readAttributeBag(shd, SHADING_ATTRIBUTES);
64
+ if (preservedAttributes) props.preservedAttributes = preservedAttributes;
65
+ return props;
30
66
  }
31
67
  //#endregion
32
68
  export { parseShading };
@@ -1,4 +1,5 @@
1
- import { parseAnchorPosition, parseAnchorWrap, parseFill, parseOutline } from "./drawingUtils.js";
1
+ import { parseDrawingAnchor } from "./drawingAnchor.js";
2
+ import { parseAnchorPosition, parseAnchorWrap, parseFill, parseInlineWrap, parseOutline } from "./drawingUtils.js";
2
3
  import { parseNonVisualDrawingNames } from "./nonVisualDrawingProps.js";
3
4
  import { ShapeTypeSchema, narrowEnum } from "./parserEnums.js";
4
5
  import { findAllDeep, findChildByLocalName, findChildren, getAttribute, getChildElements, parseNumericAttribute, parseOnOffAttribute } from "./xmlParser.js";
@@ -27,13 +28,13 @@ function parseTransform(xfrm) {
27
28
  height: parseNumericAttribute(ext, null, "cy") ?? 0
28
29
  };
29
30
  const rotation = rotToDegrees(getAttribute(xfrm, null, "rot"));
30
- const flipH = parseOnOffAttribute(xfrm, null, "flipH") === true;
31
- const flipV = parseOnOffAttribute(xfrm, null, "flipV") === true;
32
- if (rotation === void 0 && !flipH && !flipV) return { size };
31
+ const flipH = parseOnOffAttribute(xfrm, null, "flipH");
32
+ const flipV = parseOnOffAttribute(xfrm, null, "flipV");
33
+ if (rotation === void 0 && flipH === void 0 && flipV === void 0) return { size };
33
34
  const transform = {};
34
35
  if (rotation !== void 0) transform.rotation = rotation;
35
- if (flipH) transform.flipH = true;
36
- if (flipV) transform.flipV = true;
36
+ if (flipH !== void 0) transform.flipH = flipH;
37
+ if (flipV !== void 0) transform.flipV = flipV;
37
38
  return {
38
39
  size,
39
40
  transform
@@ -140,11 +141,13 @@ function parseShape(node) {
140
141
  const fill = parseShapeFill(spPr);
141
142
  const outline = parseOutline(spPr);
142
143
  const id = cNvPr ? getAttribute(cNvPr, null, "id") ?? void 0 : void 0;
144
+ const names = parseNonVisualDrawingNames(cNvPr);
143
145
  const shape = {
144
146
  type: "shape",
145
147
  shapeType,
146
148
  size,
147
- ...parseNonVisualDrawingNames(cNvPr)
149
+ ...names,
150
+ ...Object.keys(names).length > 0 ? { shapeNames: names } : {}
148
151
  };
149
152
  const geometryAdjustments = parseGeometryAdjustments(spPr);
150
153
  if (geometryAdjustments !== void 0) shape.geometryAdjustments = geometryAdjustments;
@@ -189,7 +192,9 @@ function parseShapeFromDrawing(drawingEl) {
189
192
  if (position) shape.position = position;
190
193
  const wrap = parseAnchorWrap(container);
191
194
  if (wrap) shape.wrap = wrap;
192
- } else shape.wrap = { type: "inline" };
195
+ const drawingAnchor = parseDrawingAnchor(container);
196
+ if (drawingAnchor) shape.anchor = drawingAnchor;
197
+ } else shape.wrap = parseInlineWrap(container);
193
198
  const docPr = findChildByLocalName(container, "docPr");
194
199
  if (docPr) {
195
200
  const id = getAttribute(docPr, null, "id");
@@ -0,0 +1,11 @@
1
+ import { XmlElement } from "./xmlParser.js";
2
+ import { RenamedSlot } from "./strictNames.gen.js";
3
+ //#region src/docx/strictNames.d.ts
4
+ /** A renamed child of `parent`, in whichever spelling the document used. */
5
+ declare const findChildAnySpelling: (parent: XmlElement | null | undefined, slot: RenamedSlot) => XmlElement | null;
6
+ /** A renamed attribute's number, in whichever spelling the document used. */
7
+ declare const numericAttributeAnySpelling: (element: XmlElement | null | undefined, slot: RenamedSlot) => number | undefined;
8
+ /** Whether the element carries a renamed attribute under either spelling. */
9
+ declare const hasAttributeAnySpelling: (element: XmlElement | null | undefined, slot: RenamedSlot) => boolean;
10
+ //#endregion
11
+ export { findChildAnySpelling, hasAttributeAnySpelling, numericAttributeAnySpelling };
@@ -0,0 +1,45 @@
1
+ //#region src/docx/strictNames.gen.d.ts
2
+ /**
3
+ * GENERATED FILE — do not edit.
4
+ *
5
+ * The WordprocessingML names ECMA-376 Part 1 spells by writing direction and
6
+ * Part 4 spells by physical side, derived from the cited list in
7
+ * `specifications/strict-names/renames.ts` and the committed schema graph by
8
+ * `scripts/generate-strict-names.ts`. Regenerate with:
9
+ *
10
+ * bun run generate:strict-names
11
+ *
12
+ * A key is the complex type the name belongs to — the element's own type, or
13
+ * the attribute's owner — then the local name, marked `@` for an attribute.
14
+ * The comment above each entry names the types that declare the pair.
15
+ */
16
+ /** What folio writes for a name a Strict producer spelled by writing direction. */
17
+ declare const TRANSITIONAL_NAME_BY_STRICT_NAME: {
18
+ readonly "CT_Border end": "right";
19
+ readonly "CT_Border start": "left";
20
+ readonly "CT_Ind @end": "right";
21
+ readonly "CT_Ind @endChars": "rightChars";
22
+ readonly "CT_Ind @start": "left";
23
+ readonly "CT_Ind @startChars": "leftChars";
24
+ readonly "CT_TblWidth end": "right";
25
+ readonly "CT_TblWidth start": "left";
26
+ };
27
+ /** A name Part 1 renamed, keyed by the complex type it belongs to. */
28
+ type StrictName = keyof typeof TRANSITIONAL_NAME_BY_STRICT_NAME;
29
+ /** The same keys as a list, so a consumer can walk them without widening them. */
30
+ declare const STRICT_NAMES: readonly ["CT_Border end", "CT_Border start", "CT_Ind @end", "CT_Ind @endChars", "CT_Ind @start", "CT_Ind @startChars", "CT_TblWidth end", "CT_TblWidth start"];
31
+ /** What a Strict producer may have written where folio writes the Transitional name. */
32
+ declare const STRICT_NAMES_BY_TRANSITIONAL_NAME: {
33
+ readonly "CT_Border left": readonly ["start"];
34
+ readonly "CT_Border right": readonly ["end"];
35
+ readonly "CT_Ind @left": readonly ["start"];
36
+ readonly "CT_Ind @leftChars": readonly ["startChars"];
37
+ readonly "CT_Ind @right": readonly ["end"];
38
+ readonly "CT_Ind @rightChars": readonly ["endChars"];
39
+ readonly "CT_TblWidth left": readonly ["start"];
40
+ readonly "CT_TblWidth right": readonly ["end"];
41
+ };
42
+ /** A slot a reader must take in either spelling, keyed the same way. */
43
+ type RenamedSlot = keyof typeof STRICT_NAMES_BY_TRANSITIONAL_NAME;
44
+ //#endregion
45
+ export { RenamedSlot, STRICT_NAMES, STRICT_NAMES_BY_TRANSITIONAL_NAME, StrictName, TRANSITIONAL_NAME_BY_STRICT_NAME };
@@ -0,0 +1,50 @@
1
+ //#region src/docx/strictNames.gen.ts
2
+ /**
3
+ * GENERATED FILE — do not edit.
4
+ *
5
+ * The WordprocessingML names ECMA-376 Part 1 spells by writing direction and
6
+ * Part 4 spells by physical side, derived from the cited list in
7
+ * `specifications/strict-names/renames.ts` and the committed schema graph by
8
+ * `scripts/generate-strict-names.ts`. Regenerate with:
9
+ *
10
+ * bun run generate:strict-names
11
+ *
12
+ * A key is the complex type the name belongs to — the element's own type, or
13
+ * the attribute's owner — then the local name, marked `@` for an attribute.
14
+ * The comment above each entry names the types that declare the pair.
15
+ */
16
+ /** What folio writes for a name a Strict producer spelled by writing direction. */
17
+ const TRANSITIONAL_NAME_BY_STRICT_NAME = {
18
+ "CT_Border end": "right",
19
+ "CT_Border start": "left",
20
+ "CT_Ind @end": "right",
21
+ "CT_Ind @endChars": "rightChars",
22
+ "CT_Ind @start": "left",
23
+ "CT_Ind @startChars": "leftChars",
24
+ "CT_TblWidth end": "right",
25
+ "CT_TblWidth start": "left"
26
+ };
27
+ /** The same keys as a list, so a consumer can walk them without widening them. */
28
+ const STRICT_NAMES = [
29
+ "CT_Border end",
30
+ "CT_Border start",
31
+ "CT_Ind @end",
32
+ "CT_Ind @endChars",
33
+ "CT_Ind @start",
34
+ "CT_Ind @startChars",
35
+ "CT_TblWidth end",
36
+ "CT_TblWidth start"
37
+ ];
38
+ /** What a Strict producer may have written where folio writes the Transitional name. */
39
+ const STRICT_NAMES_BY_TRANSITIONAL_NAME = {
40
+ "CT_Border left": ["start"],
41
+ "CT_Border right": ["end"],
42
+ "CT_Ind @left": ["start"],
43
+ "CT_Ind @leftChars": ["startChars"],
44
+ "CT_Ind @right": ["end"],
45
+ "CT_Ind @rightChars": ["endChars"],
46
+ "CT_TblWidth left": ["start"],
47
+ "CT_TblWidth right": ["end"]
48
+ };
49
+ //#endregion
50
+ export { STRICT_NAMES, STRICT_NAMES_BY_TRANSITIONAL_NAME, TRANSITIONAL_NAME_BY_STRICT_NAME };
@@ -0,0 +1,43 @@
1
+ import { STRICT_NAMES_BY_TRANSITIONAL_NAME } from "./strictNames.gen.js";
2
+ import { findChild, getAttribute, parseNumericAttribute } from "./xmlParser.js";
3
+ //#region src/docx/strictNames.ts
4
+ /**
5
+ * Reading a slot whose name a Strict producer spells by writing direction.
6
+ *
7
+ * ECMA-376 Part 1 names a horizontal edge `start`/`end` where Part 4 names it
8
+ * `left`/`right`, and Part 4 declares both so a Transitional consumer reads
9
+ * either. folio's model holds one direction and every save writes the physical
10
+ * name, so the tolerance belongs on the way in — once, over the generated
11
+ * table, rather than as a `?? findChild(…, "start")` at each reader. A slot the
12
+ * table does not name is not a renamed slot, and passing one here is a compile
13
+ * error rather than a lookup that silently finds nothing.
14
+ */
15
+ /**
16
+ * The spellings a document may have used for a slot, folio's own first.
17
+ *
18
+ * The key carries the complex type, so the local name is what follows the
19
+ * space, without the `@` that marks an attribute.
20
+ */
21
+ const spellingsOf = (slot) => {
22
+ const local = slot.slice(slot.indexOf(" ") + 1);
23
+ return [local.startsWith("@") ? local.slice(1) : local, ...STRICT_NAMES_BY_TRANSITIONAL_NAME[slot]];
24
+ };
25
+ /** A renamed child of `parent`, in whichever spelling the document used. */
26
+ const findChildAnySpelling = (parent, slot) => {
27
+ for (const spelling of spellingsOf(slot)) {
28
+ const child = findChild(parent, "w", spelling);
29
+ if (child !== null) return child;
30
+ }
31
+ return null;
32
+ };
33
+ /** A renamed attribute's number, in whichever spelling the document used. */
34
+ const numericAttributeAnySpelling = (element, slot) => {
35
+ for (const spelling of spellingsOf(slot)) {
36
+ const value = parseNumericAttribute(element, "w", spelling);
37
+ if (value !== void 0) return value;
38
+ }
39
+ };
40
+ /** Whether the element carries a renamed attribute under either spelling. */
41
+ const hasAttributeAnySpelling = (element, slot) => spellingsOf(slot).some((spelling) => getAttribute(element, "w", spelling) !== null);
42
+ //#endregion
43
+ export { findChildAnySpelling, hasAttributeAnySpelling, numericAttributeAnySpelling };