@stll/folio-core 0.46.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 (366) hide show
  1. package/dist/ai-edits/apply.js +26 -24
  2. package/dist/ai-edits/headless.js +1 -1
  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/content-alignment.js +108 -12
  10. package/dist/compare/content-types.d.ts +8 -2
  11. package/dist/compare/content.js +2 -11
  12. package/dist/compare/plan.js +7 -4
  13. package/dist/compare/section-boundary-properties.js +1 -2
  14. package/dist/content-controls/checkboxDisplay.d.ts +8 -2
  15. package/dist/content-controls/checkboxDisplay.js +11 -5
  16. package/dist/content-controls/mutateContentControls.js +41 -42
  17. package/dist/controller/layoutPipeline.js +8 -3
  18. package/dist/display-list/build/buildDisplayList.js +7 -7
  19. package/dist/display-list/build/imagePrimitives.d.ts +4 -4
  20. package/dist/display-list/build/imagePrimitives.js +38 -20
  21. package/dist/display-list/build/pageBorderPrimitives.js +2 -1
  22. package/dist/display-list/build/paragraphPrimitives.js +93 -13
  23. package/dist/display-list/build/previewPrimitives.d.ts +10 -0
  24. package/dist/display-list/build/previewPrimitives.js +89 -0
  25. package/dist/display-list/build/strokes.d.ts +177 -8
  26. package/dist/display-list/build/strokes.js +167 -47
  27. package/dist/display-list/build/tablePrimitives.js +4 -2
  28. package/dist/display-list/build/textBoxPrimitives.js +6 -4
  29. package/dist/display-list/build/textDecorations.d.ts +15 -1
  30. package/dist/display-list/build/textDecorations.js +15 -1
  31. package/dist/display-list/dom/renderDisplayListToDom.js +1 -19
  32. package/dist/display-list/primitives.d.ts +13 -2
  33. package/dist/display-list/primitives.js +36 -1
  34. package/dist/document-operations.js +2 -1
  35. package/dist/docx/attributeRemainder.d.ts +34 -1
  36. package/dist/docx/attributeRemainder.js +49 -3
  37. package/dist/docx/blockContentParser.d.ts +2 -0
  38. package/dist/docx/blockContentParser.js +39 -67
  39. package/dist/docx/blockPlainText.js +3 -1
  40. package/dist/docx/borderParser.js +26 -11
  41. package/dist/docx/builtInStyles.d.ts +8 -16
  42. package/dist/docx/builtInStyles.js +54 -17
  43. package/dist/docx/commentAnchorIndex.js +1 -1
  44. package/dist/docx/commentParser.js +3 -3
  45. package/dist/docx/commentRangeIntegrity.js +1 -1
  46. package/dist/docx/commentRangeJoin.js +1 -1
  47. package/dist/docx/commentReferenceNormalization.js +3 -2
  48. package/dist/docx/commentReplyMarkers.js +1 -1
  49. package/dist/docx/compatibility.js +56 -42
  50. package/dist/docx/containerChildren.d.ts +110 -13
  51. package/dist/docx/containerChildren.gen.d.ts +16 -1
  52. package/dist/docx/containerChildren.gen.js +18 -1
  53. package/dist/docx/containerChildren.js +63 -13
  54. package/dist/docx/diagramPreview.d.ts +14 -2
  55. package/dist/docx/diagramPreview.js +81 -169
  56. package/dist/docx/documentParser.js +4 -1
  57. package/dist/docx/drawingAnchor.d.ts +87 -0
  58. package/dist/docx/drawingAnchor.js +201 -0
  59. package/dist/docx/drawingUtils.d.ts +43 -38
  60. package/dist/docx/drawingUtils.js +205 -118
  61. package/dist/docx/fontTableParser.js +102 -41
  62. package/dist/docx/footnoteParser.js +10 -6
  63. package/dist/docx/groupDrawingParser.js +4 -3
  64. package/dist/docx/headerFooterReferenceNormalization.js +1 -1
  65. package/dist/docx/hyperlinkParser.d.ts +45 -7
  66. package/dist/docx/hyperlinkParser.js +126 -57
  67. package/dist/docx/imageParser.js +127 -107
  68. package/dist/docx/index.d.ts +2 -1
  69. package/dist/docx/index.js +2 -1
  70. package/dist/docx/inlineContentRemovals.d.ts +28 -0
  71. package/dist/docx/inlineContentRemovals.js +46 -0
  72. package/dist/docx/inlineWrapperContent.d.ts +84 -3
  73. package/dist/docx/inlineWrapperContent.js +85 -4
  74. package/dist/docx/inlineWrapperParser.d.ts +11 -0
  75. package/dist/docx/inlineWrapperParser.js +60 -0
  76. package/dist/docx/nonVisualDrawingProps.d.ts +5 -13
  77. package/dist/docx/normalizeBaseDirection.js +4 -2
  78. package/dist/docx/numberingParser.d.ts +25 -2
  79. package/dist/docx/numberingParser.js +264 -361
  80. package/dist/docx/numberingReference.d.ts +9 -16
  81. package/dist/docx/numberingReference.js +17 -16
  82. package/dist/docx/numberingReferenceNormalization.js +7 -7
  83. package/dist/docx/ooxmlCounterFormatter.d.ts +1 -1
  84. package/dist/docx/ooxmlCounterFormatter.js +4 -1
  85. package/dist/docx/paraIdAttribute.d.ts +91 -1
  86. package/dist/docx/paraIdAttribute.js +79 -1
  87. package/dist/docx/paragraphParser.d.ts +9 -24
  88. package/dist/docx/paragraphParser.js +212 -396
  89. package/dist/docx/paragraphProperties.d.ts +23 -0
  90. package/dist/docx/paragraphProperties.js +279 -0
  91. package/dist/docx/paragraphPropertySource.js +2 -0
  92. package/dist/docx/paragraphTextBoxEnrichment.d.ts +2 -1
  93. package/dist/docx/paragraphTextBoxEnrichment.js +14 -7
  94. package/dist/docx/paragraphTraversal.d.ts +14 -10
  95. package/dist/docx/paragraphTraversal.js +47 -49
  96. package/dist/docx/parseWarningMessage.js +3 -0
  97. package/dist/docx/parserEnums.d.ts +6 -8
  98. package/dist/docx/parserEnums.js +4 -6
  99. package/dist/docx/preservedRunContent.js +16 -6
  100. package/dist/docx/previewBudget.d.ts +44 -23
  101. package/dist/docx/previewBudget.js +61 -30
  102. package/dist/docx/propertyElementAttributes.d.ts +178 -0
  103. package/dist/docx/propertyElementAttributes.js +114 -0
  104. package/dist/docx/renderedPageBreakNormalization.js +2 -2
  105. package/dist/docx/rezip.d.ts +28 -2
  106. package/dist/docx/rezip.js +78 -9
  107. package/dist/docx/runConsolidator.d.ts +42 -2
  108. package/dist/docx/runConsolidator.js +60 -6
  109. package/dist/docx/runParser.d.ts +54 -18
  110. package/dist/docx/runParser.js +379 -295
  111. package/dist/docx/runPayload.d.ts +5 -0
  112. package/dist/docx/runPayload.js +4 -0
  113. package/dist/docx/sdtProperties.d.ts +39 -5
  114. package/dist/docx/sdtProperties.js +205 -84
  115. package/dist/docx/sdtPropertiesPatch.d.ts +5 -9
  116. package/dist/docx/sdtPropertiesPatch.js +68 -112
  117. package/dist/docx/sectionParser.d.ts +1 -2
  118. package/dist/docx/sectionParser.js +236 -240
  119. package/dist/docx/selectiveSave.js +3 -2
  120. package/dist/docx/selectiveXmlPatch.d.ts +21 -2
  121. package/dist/docx/selectiveXmlPatch.js +195 -99
  122. package/dist/docx/serializer/blockSdtSerializer.js +2 -96
  123. package/dist/docx/serializer/borderSerializer.d.ts +5 -5
  124. package/dist/docx/serializer/borderSerializer.js +10 -8
  125. package/dist/docx/serializer/documentSerializer.js +3 -0
  126. package/dist/docx/serializer/fontTableSerializer.js +31 -3
  127. package/dist/docx/serializer/headerFooterSerializer.js +3 -0
  128. package/dist/docx/serializer/markupRangeAttributes.d.ts +9 -1
  129. package/dist/docx/serializer/markupRangeAttributes.js +9 -1
  130. package/dist/docx/serializer/noteSerializer.js +3 -0
  131. package/dist/docx/serializer/numberingSerializer.d.ts +1 -6
  132. package/dist/docx/serializer/numberingSerializer.js +81 -79
  133. package/dist/docx/serializer/paragraphSerializer.d.ts +1 -9
  134. package/dist/docx/serializer/paragraphSerializer.js +88 -188
  135. package/dist/docx/serializer/runSerializer.d.ts +1 -5
  136. package/dist/docx/serializer/runSerializer.js +109 -59
  137. package/dist/docx/serializer/sdtPropertiesSerializer.d.ts +26 -0
  138. package/dist/docx/serializer/sdtPropertiesSerializer.js +111 -0
  139. package/dist/docx/serializer/sectionPropertiesSerializer.js +34 -45
  140. package/dist/docx/serializer/settingsSerializer.js +6 -4
  141. package/dist/docx/serializer/stylesSerializer.js +8 -11
  142. package/dist/docx/serializer/tableSerializer.js +268 -100
  143. package/dist/docx/serializer/textFormattingSerializer.d.ts +28 -4
  144. package/dist/docx/serializer/textFormattingSerializer.js +111 -101
  145. package/dist/docx/serializer/xmlUtils.d.ts +1 -1
  146. package/dist/docx/serializer/xmlUtils.js +1 -1
  147. package/dist/docx/server/createBilingualDocument.js +18 -16
  148. package/dist/docx/server/migrateYjsAttrSchema.js +3 -3
  149. package/dist/docx/settingsParser.js +7 -4
  150. package/dist/docx/shadingParser.d.ts +2 -1
  151. package/dist/docx/shadingParser.js +43 -7
  152. package/dist/docx/shapeParser.js +8 -3
  153. package/dist/docx/strictNames.d.ts +11 -0
  154. package/dist/docx/strictNames.gen.d.ts +45 -0
  155. package/dist/docx/strictNames.gen.js +50 -0
  156. package/dist/docx/strictNames.js +43 -0
  157. package/dist/docx/strictValueEncodings.gen.js +133 -131
  158. package/dist/docx/styleParser.js +17 -349
  159. package/dist/docx/tableParser.d.ts +10 -1
  160. package/dist/docx/tableParser.js +505 -181
  161. package/dist/docx/textBoxParser.d.ts +3 -1
  162. package/dist/docx/textBoxParser.js +18 -8
  163. package/dist/docx/themeColorAttribute.d.ts +13 -0
  164. package/dist/docx/themeColorAttribute.js +24 -0
  165. package/dist/docx/trackedMoveRangeNormalization.js +2 -1
  166. package/dist/docx/vmlImageParser.d.ts +13 -4
  167. package/dist/docx/vmlImageParser.js +74 -31
  168. package/dist/docx/vmlPreview.js +2 -2
  169. package/dist/docx/wrapPolygon.d.ts +30 -0
  170. package/dist/docx/wrapPolygon.js +70 -0
  171. package/dist/docx/xmlParser.d.ts +14 -1
  172. package/dist/docx/xmlParser.js +18 -2
  173. package/dist/fonts/embeddedFonts.js +3 -3
  174. package/dist/headless-layout.js +2 -0
  175. package/dist/i18n/messages/catalogs.gen.d.ts +68 -0
  176. package/dist/i18n/messages/catalogs.gen.js +102 -34
  177. package/dist/i18n/messages/messages.gen.d.ts +4 -0
  178. package/dist/internal/headlessRevisionResolution.js +9 -0
  179. package/dist/internal/pageBreakRunSourceDescendantIndex.js +3 -1
  180. package/dist/internal/paragraphFormattingSerialization.d.ts +20 -9
  181. package/dist/internal/paragraphFormattingSerialization.js +118 -83
  182. package/dist/layout-bridge/convert/footnoteLayout.d.ts +1 -0
  183. package/dist/layout-bridge/convert/footnoteLayout.js +1 -0
  184. package/dist/layout-bridge/convert/headerFooterLayout.d.ts +1 -0
  185. package/dist/layout-bridge/convert/headerFooterLayout.js +2 -0
  186. package/dist/layout-bridge/convert/toFlowBlocks.d.ts +17 -12
  187. package/dist/layout-bridge/convert/toFlowBlocks.js +177 -101
  188. package/dist/layout-engine/index.d.ts +2 -2
  189. package/dist/layout-engine/index.js +53 -17
  190. package/dist/layout-engine/measure/measureBlocks.d.ts +3 -0
  191. package/dist/layout-engine/measure/measureBlocks.js +6 -10
  192. package/dist/layout-engine/measure/tableCellGrid.js +2 -1
  193. package/dist/layout-engine/measure/tableFragmentBorderGeometry.js +2 -1
  194. package/dist/layout-engine/measure/tableInlinePlacement.js +2 -5
  195. package/dist/layout-engine/paragraphSequence.js +3 -2
  196. package/dist/layout-engine/renderedBreakReconciliation.js +2 -1
  197. package/dist/layout-engine/section-breaks.d.ts +49 -2
  198. package/dist/layout-engine/section-breaks.js +55 -4
  199. package/dist/layout-engine/types.d.ts +47 -17
  200. package/dist/layout-engine/types.js +16 -1
  201. package/dist/layout-painter/borderStroke.d.ts +18 -4
  202. package/dist/layout-painter/renderPage.js +6 -4
  203. package/dist/layout-painter/renderParagraph.d.ts +2 -1
  204. package/dist/layout-painter/renderParagraph.js +13 -26
  205. package/dist/layout-painter/renderTable.d.ts +4 -1
  206. package/dist/layout-painter/renderTable.js +22 -22
  207. package/dist/layout-painter/renderTextBox.js +5 -3
  208. package/dist/markdown/renderBlock.js +3 -1
  209. package/dist/markdown/renderRuns.js +7 -2
  210. package/dist/markdown/renderTable.js +2 -1
  211. package/dist/model.d.ts +3 -3
  212. package/dist/model.js +2 -2
  213. package/dist/paged-layout/sectionBlockWidths.d.ts +3 -0
  214. package/dist/paged-layout/sectionBlockWidths.js +26 -4
  215. package/dist/prosemirror/attrs/index.d.ts +22 -4
  216. package/dist/prosemirror/attrs/index.js +498 -60
  217. package/dist/prosemirror/bookmarkBoundaryAttrs.d.ts +9 -1
  218. package/dist/prosemirror/bookmarkBoundaryAttrs.js +22 -3
  219. package/dist/prosemirror/commands/comments.js +68 -53
  220. package/dist/prosemirror/commands/contentControls.js +24 -19
  221. package/dist/prosemirror/commands/image.d.ts +1 -1
  222. package/dist/prosemirror/commands/image.js +4 -1
  223. package/dist/prosemirror/commands/paragraph.d.ts +2 -1
  224. package/dist/prosemirror/commands/propertyChangeScope.d.ts +12 -4
  225. package/dist/prosemirror/commands/propertyChangeScope.js +22 -4
  226. package/dist/prosemirror/commands/sectionBreak.d.ts +33 -1
  227. package/dist/prosemirror/commands/sectionBreak.js +187 -11
  228. package/dist/prosemirror/conversion/fromProseDoc.d.ts +18 -2
  229. package/dist/prosemirror/conversion/fromProseDoc.js +330 -183
  230. package/dist/prosemirror/conversion/index.d.ts +2 -2
  231. package/dist/prosemirror/conversion/preservedSinkCarriers.d.ts +39 -0
  232. package/dist/prosemirror/conversion/preservedSinkCarriers.js +19 -0
  233. package/dist/prosemirror/conversion/runShadingMark.js +14 -1
  234. package/dist/prosemirror/conversion/sdtAttrs.d.ts +10 -1
  235. package/dist/prosemirror/conversion/sdtAttrs.js +19 -5
  236. package/dist/prosemirror/conversion/toProseDoc.js +371 -141
  237. package/dist/prosemirror/emptyRangeAnchor.d.ts +53 -0
  238. package/dist/prosemirror/emptyRangeAnchor.js +158 -0
  239. package/dist/prosemirror/extensions/StarterKit.js +8 -2
  240. package/dist/prosemirror/extensions/core/DocExtension.js +1 -1
  241. package/dist/prosemirror/extensions/core/ParagraphExtension.js +19 -15
  242. package/dist/prosemirror/extensions/features/BaseKeymapExtension.js +3 -2
  243. package/dist/prosemirror/extensions/features/ListExtension.js +43 -24
  244. package/dist/prosemirror/extensions/features/ParagraphChangeTrackerExtension.js +4 -3
  245. package/dist/prosemirror/extensions/features/PasteCleanupExtension.d.ts +3 -3
  246. package/dist/prosemirror/extensions/features/PasteCleanupExtension.js +5 -5
  247. package/dist/prosemirror/extensions/features/pasteCleanup.d.ts +3 -1
  248. package/dist/prosemirror/extensions/features/pasteCleanup.js +56 -2
  249. package/dist/prosemirror/extensions/features/pastedHeadingStyles.js +5 -4
  250. package/dist/prosemirror/extensions/markRegistry.d.ts +26 -2
  251. package/dist/prosemirror/extensions/markRegistry.js +73 -10
  252. package/dist/prosemirror/extensions/marks/InlineWrapperExtension.js +17 -3
  253. package/dist/prosemirror/extensions/marks/RunIdentityExtension.d.ts +26 -0
  254. package/dist/prosemirror/extensions/marks/RunIdentityExtension.js +134 -0
  255. package/dist/prosemirror/extensions/marks/TrackedChangeExtensions.js +2 -1
  256. package/dist/prosemirror/extensions/marks/UnderlineExtension.js +12 -18
  257. package/dist/prosemirror/extensions/marks/markUtils.js +2 -1
  258. package/dist/prosemirror/extensions/nodes/BlockBookmarkBoundaryExtension.d.ts +29 -0
  259. package/dist/prosemirror/extensions/nodes/BlockBookmarkBoundaryExtension.js +46 -0
  260. package/dist/prosemirror/extensions/nodes/BlockSdtExtension.d.ts +4 -3
  261. package/dist/prosemirror/extensions/nodes/BlockSdtExtension.js +18 -13
  262. package/dist/prosemirror/extensions/nodes/BookmarkBoundaryExtension.js +28 -53
  263. package/dist/prosemirror/extensions/nodes/CommentReferenceExtension.js +10 -0
  264. package/dist/prosemirror/extensions/nodes/ImageExtension.js +8 -1
  265. package/dist/prosemirror/extensions/nodes/MoveRangeBoundaryExtension.d.ts +11 -0
  266. package/dist/prosemirror/extensions/nodes/MoveRangeBoundaryExtension.js +43 -0
  267. package/dist/prosemirror/extensions/nodes/RangeAnchorExtension.d.ts +13 -0
  268. package/dist/prosemirror/extensions/nodes/RangeAnchorExtension.js +65 -0
  269. package/dist/prosemirror/extensions/nodes/SdtExtension.d.ts +3 -1
  270. package/dist/prosemirror/extensions/nodes/SdtExtension.js +22 -16
  271. package/dist/prosemirror/extensions/nodes/ShapeExtension.js +4 -0
  272. package/dist/prosemirror/extensions/nodes/TableExtension.js +141 -123
  273. package/dist/prosemirror/extensions/nodes/TextBoxExtension.js +4 -0
  274. package/dist/prosemirror/extensions/nodes/bookmarkBoundaryDom.d.ts +23 -0
  275. package/dist/prosemirror/extensions/nodes/bookmarkBoundaryDom.js +57 -0
  276. package/dist/prosemirror/extensions/types.d.ts +12 -3
  277. package/dist/prosemirror/index.d.ts +4 -2
  278. package/dist/prosemirror/index.js +2 -1
  279. package/dist/prosemirror/inlineWrapperStack.js +20 -3
  280. package/dist/prosemirror/listMarker.d.ts +2 -2
  281. package/dist/prosemirror/listMarker.js +7 -8
  282. package/dist/prosemirror/listRenderingAttrs.js +11 -1
  283. package/dist/prosemirror/listState.d.ts +62 -0
  284. package/dist/prosemirror/listState.js +49 -0
  285. package/dist/prosemirror/moveRangeBoundaryAttrs.d.ts +13 -0
  286. package/dist/prosemirror/moveRangeBoundaryAttrs.js +114 -0
  287. package/dist/prosemirror/numberedRefFields.js +4 -4
  288. package/dist/prosemirror/numberingAttr.d.ts +55 -0
  289. package/dist/prosemirror/numberingAttr.js +74 -0
  290. package/dist/prosemirror/outlineLevelAttr.d.ts +29 -0
  291. package/dist/prosemirror/outlineLevelAttr.js +42 -0
  292. package/dist/prosemirror/paragraphFormattingProvenance.d.ts +9 -0
  293. package/dist/prosemirror/paragraphFormattingProvenance.js +4 -1
  294. package/dist/prosemirror/plugins/selectionTracker.d.ts +3 -6
  295. package/dist/prosemirror/plugins/selectionTracker.js +3 -10
  296. package/dist/prosemirror/rangeAnchorAttrs.d.ts +14 -0
  297. package/dist/prosemirror/rangeAnchorAttrs.js +101 -0
  298. package/dist/prosemirror/replacedAnnotations.d.ts +1 -1
  299. package/dist/prosemirror/replacedAnnotations.js +24 -6
  300. package/dist/prosemirror/revisionCarriers.d.ts +86 -2
  301. package/dist/prosemirror/revisionCarriers.js +86 -60
  302. package/dist/prosemirror/runFormattingInlineCarriers.d.ts +2 -0
  303. package/dist/prosemirror/runFormattingInlineCarriers.js +2 -0
  304. package/dist/prosemirror/runIdentity.d.ts +28 -0
  305. package/dist/prosemirror/runIdentity.js +36 -0
  306. package/dist/prosemirror/runStyleFormatting.js +1 -1
  307. package/dist/prosemirror/schema/index.d.ts +2 -2
  308. package/dist/prosemirror/schema/marks.d.ts +23 -4
  309. package/dist/prosemirror/schema/nodes.d.ts +220 -24
  310. package/dist/prosemirror/sectionCarrier.d.ts +37 -0
  311. package/dist/prosemirror/sectionCarrier.js +40 -0
  312. package/dist/prosemirror/selectionState.d.ts +3 -0
  313. package/dist/prosemirror/selectionState.js +4 -1
  314. package/dist/prosemirror/styles/resolvedStyleAttrs.d.ts +5 -4
  315. package/dist/prosemirror/styles/resolvedStyleAttrs.js +15 -13
  316. package/dist/prosemirror/tableResize.js +5 -6
  317. package/dist/prosemirror/trackedRunInlineAtoms.d.ts +2 -0
  318. package/dist/prosemirror/trackedRunInlineAtoms.js +2 -0
  319. package/dist/prosemirror/utils/extractTrackedChanges.d.ts +10 -11
  320. package/dist/prosemirror/utils/extractTrackedChanges.js +109 -92
  321. package/dist/prosemirror/validation.js +17 -6
  322. package/dist/prosemirror/yjsDocumentMetadata.d.ts +2 -2
  323. package/dist/prosemirror/yjsDocumentMetadata.js +428 -7
  324. package/dist/prosemirror/zeroWidthAnchors.js +4 -0
  325. package/dist/style-sets/extract.js +4 -4
  326. package/dist/style-sets/stellaStyle.js +36 -23
  327. package/dist/types/colors.d.ts +2 -2
  328. package/dist/types/content.d.ts +2 -2
  329. package/dist/types/documentEnumValues.d.ts +53 -26
  330. package/dist/types/documentEnumValues.js +72 -174
  331. package/dist/types/formatting.d.ts +2 -2
  332. package/dist/types/index.d.ts +9 -2
  333. package/dist/utils/borderCss.d.ts +246 -0
  334. package/dist/utils/borderCss.js +325 -0
  335. package/dist/utils/colorResolver.d.ts +4 -3
  336. package/dist/utils/colorResolver.js +45 -76
  337. package/dist/utils/createDocument.js +24 -6
  338. package/dist/utils/findReplace.js +52 -10
  339. package/dist/utils/formatToStyle.d.ts +84 -2
  340. package/dist/utils/formatToStyle.js +133 -52
  341. package/dist/utils/headingCollector.js +3 -2
  342. package/dist/utils/mergeDocumentContent.js +5 -3
  343. package/dist/utils/paragraphFormattingMerge.js +27 -6
  344. package/dist/utils/replaceText.js +1 -1
  345. package/dist/utils/tableOperations.d.ts +5 -3
  346. package/dist/utils/tableOperations.js +14 -1
  347. package/dist/utils/tablePlacement.d.ts +7 -0
  348. package/dist/utils/tablePlacement.js +14 -0
  349. package/dist/utils/textDirectionFlow.d.ts +15 -0
  350. package/dist/utils/textDirectionFlow.js +38 -0
  351. package/dist/utils/textFormattingMerge.js +16 -4
  352. package/package.json +10 -10
  353. package/dist/ai-edits/__fixtures__/paragraphs.d.ts +0 -17
  354. package/dist/ai-edits/__fixtures__/paragraphs.js +0 -33
  355. package/dist/compare/__fixtures__/body-sequence.d.ts +0 -119
  356. package/dist/compare/__fixtures__/body-sequence.js +0 -225
  357. package/dist/compare/__fixtures__/nested-table.d.ts +0 -16
  358. package/dist/compare/__fixtures__/nested-table.js +0 -50
  359. package/dist/compare/__fixtures__/numbered-list.d.ts +0 -34
  360. package/dist/compare/__fixtures__/numbered-list.js +0 -85
  361. package/dist/docx/bookmarkPlacement.d.ts +0 -9
  362. package/dist/docx/bookmarkPlacement.js +0 -52
  363. package/dist/fonts/embeddedFontTable.d.ts +0 -45
  364. package/dist/fonts/embeddedFontTable.js +0 -80
  365. package/dist/prosemirror/extensions/marks/PageBreakRunOwnerExtension.d.ts +0 -13
  366. package/dist/prosemirror/extensions/marks/PageBreakRunOwnerExtension.js +0 -39
@@ -7,17 +7,15 @@ import * as v from "valibot";
7
7
  * no `as` at the call site.
8
8
  */
9
9
  declare const narrowEnum: <T extends string>(value: string | null | undefined, schema: v.PicklistSchema<readonly T[], undefined>) => T | undefined;
10
- declare const ThemeColorSlotSchema: v.PicklistSchema<readonly ["dk1", "lt1", "dk2", "lt2", "accent1", "accent2", "accent3", "accent4", "accent5", "accent6", "hlink", "folHlink", "background1", "text1", "background2", "text2"], undefined>;
11
- declare const BorderStyleSchema: v.PicklistSchema<readonly ["none", "single", "double", "dotted", "dashed", "thick", "triple", "thinThickSmallGap", "thickThinSmallGap", "thinThickMediumGap", "thickThinMediumGap", "thinThickLargeGap", "thickThinLargeGap", "wave", "doubleWave", "dashSmallGap", "dashDotStroked", "threeDEmboss", "threeDEngrave", "outset", "inset", "nil"], undefined>;
12
10
  declare const UnderlineStyleSchema: v.PicklistSchema<readonly ["none", "single", "words", "double", "thick", "dotted", "dottedHeavy", "dash", "dashedHeavy", "dashLong", "dashLongHeavy", "dotDash", "dashDotHeavy", "dotDotDash", "dashDotDotHeavy", "wave", "wavyHeavy", "wavyDouble"], undefined>;
13
11
  declare const HighlightColorSchema: v.PicklistSchema<readonly ["black", "blue", "cyan", "darkBlue", "darkCyan", "darkGray", "darkGreen", "darkMagenta", "darkRed", "darkYellow", "green", "lightGray", "magenta", "none", "red", "white", "yellow"], undefined>;
14
12
  declare const TextEffectSchema: v.PicklistSchema<readonly ["none", "blinkBackground", "lights", "antsBlack", "antsRed", "shimmer", "sparkle"], undefined>;
15
13
  declare const EmphasisMarkSchema: v.PicklistSchema<readonly ["none", "dot", "comma", "circle", "underDot"], undefined>;
16
14
  declare const FontThemeSchema: v.PicklistSchema<readonly ["majorAscii", "majorHAnsi", "majorEastAsia", "majorBidi", "minorAscii", "minorHAnsi", "minorEastAsia", "minorBidi"], undefined>;
17
15
  declare const FontHintSchema: v.PicklistSchema<readonly ["default", "eastAsia", "cs"], undefined>;
18
- declare const ParagraphAlignmentSchema: v.PicklistSchema<readonly ["left", "center", "right", "both", "distribute", "mediumKashida", "highKashida", "lowKashida", "thaiDistribute"], undefined>;
16
+ declare const ParagraphAlignmentSchema: v.PicklistSchema<readonly ["start", "center", "end", "both", "mediumKashida", "distribute", "numTab", "highKashida", "lowKashida", "thaiDistribute", "left", "right"], undefined>;
19
17
  declare const LineSpacingRuleSchema: v.PicklistSchema<readonly ["auto", "exact", "atLeast"], undefined>;
20
- declare const TabStopAlignmentSchema: v.PicklistSchema<readonly ["left", "center", "right", "decimal", "bar", "clear", "num"], undefined>;
18
+ declare const TabStopAlignmentSchema: v.PicklistSchema<readonly ["clear", "start", "center", "end", "decimal", "bar", "num", "left", "right"], undefined>;
21
19
  declare const TabLeaderSchema: v.PicklistSchema<readonly ["none", "dot", "hyphen", "underscore", "heavy", "middleDot"], undefined>;
22
20
  declare const PositionalTabRelativeToSchema: v.PicklistSchema<readonly ["margin", "indent"], undefined>;
23
21
  declare const PositionalTabAlignmentSchema: v.PicklistSchema<readonly ["left", "center", "right"], undefined>;
@@ -29,9 +27,10 @@ declare const SdtLockSchema: v.PicklistSchema<readonly ["sdtLocked", "contentLoc
29
27
  declare const FieldTypeSchema: v.PicklistSchema<readonly ["PAGE", "NUMPAGES", "NUMWORDS", "NUMCHARS", "DATE", "TIME", "CREATEDATE", "SAVEDATE", "PRINTDATE", "AUTHOR", "TITLE", "SUBJECT", "KEYWORDS", "COMMENTS", "FILENAME", "FILESIZE", "TEMPLATE", "DOCPROPERTY", "DOCVARIABLE", "REF", "PAGEREF", "NOTEREF", "HYPERLINK", "TOC", "TOA", "INDEX", "SEQ", "STYLEREF", "AUTONUM", "AUTONUMLGL", "AUTONUMOUT", "LISTNUM", "IF", "MERGEFIELD", "NEXT", "NEXTIF", "ASK", "SET", "QUOTE", "INCLUDETEXT", "INCLUDEPICTURE", "SYMBOL", "ADVANCE", "EDITTIME", "REVNUM", "SECTION", "SECTIONPAGES", "USERADDRESS", "USERNAME", "USERINITIALS", "UNKNOWN"], undefined>;
30
28
  declare const StyleTypeSchema: v.PicklistSchema<readonly ["paragraph", "character", "numbering", "table"], undefined>;
31
29
  declare const ConditionalStyleTypeSchema: v.PicklistSchema<readonly ["band1Horz", "band1Vert", "band2Horz", "band2Vert", "firstCol", "firstRow", "lastCol", "lastRow", "neCell", "nwCell", "seCell", "swCell", "wholeTable"], undefined>;
30
+ declare const TableAlignmentSchema: v.PicklistSchema<readonly ["center", "end", "left", "right", "start"], undefined>;
32
31
  declare const TableWidthTypeSchema: v.PicklistSchema<readonly ["auto", "dxa", "nil", "pct"], undefined>;
33
32
  declare const TableRowHeightRuleSchema: v.PicklistSchema<readonly ["auto", "atLeast", "exact"], undefined>;
34
- declare const TableCellTextDirectionSchema: v.PicklistSchema<readonly ["lr", "lrV", "rl", "rlV", "tb", "tbV", "tbRl", "tbRlV", "btLr"], undefined>;
33
+ declare const TextDirectionSchema: v.PicklistSchema<readonly ["tb", "rl", "lr", "tbV", "rlV", "lrV", "btLr", "lrTb", "lrTbV", "tbLrV", "tbRl", "tbRlV"], undefined>;
35
34
  declare const ShadingPatternSchema: v.PicklistSchema<readonly ["clear", "solid", "horzStripe", "vertStripe", "reverseDiagStripe", "diagStripe", "horzCross", "diagCross", "thinHorzStripe", "thinVertStripe", "thinReverseDiagStripe", "thinDiagStripe", "thinHorzCross", "thinDiagCross", "pct5", "pct10", "pct12", "pct15", "pct20", "pct25", "pct30", "pct35", "pct37", "pct40", "pct45", "pct50", "pct55", "pct60", "pct62", "pct65", "pct70", "pct75", "pct80", "pct85", "pct87", "pct90", "pct95", "nil"], undefined>;
36
35
  declare const FloatingTableXSpecSchema: v.PicklistSchema<readonly ["left", "center", "right", "inside", "outside"], undefined>;
37
36
  declare const FloatingTableYSpecSchema: v.PicklistSchema<readonly ["top", "center", "bottom", "inside", "outside", "inline"], undefined>;
@@ -40,9 +39,8 @@ declare const ImageHorizontalAlignmentSchema: v.PicklistSchema<readonly ["left",
40
39
  declare const ImageVerticalRelativeToSchema: v.PicklistSchema<readonly ["insideMargin", "line", "margin", "outsideMargin", "page", "paragraph", "topMargin", "bottomMargin"], undefined>;
41
40
  declare const ImageVerticalAlignmentSchema: v.PicklistSchema<readonly ["top", "bottom", "center", "inside", "outside"], undefined>;
42
41
  declare const ImageWrapTextSchema: v.PicklistSchema<readonly ["bothSides", "left", "right", "largest"], undefined>;
43
- declare const ShapeOutlineStyleSchema: v.PicklistSchema<readonly ["solid", "dot", "dash", "lgDash", "dashDot", "lgDashDot", "lgDashDotDot", "sysDot", "sysDash", "sysDashDot", "sysDashDotDot"], undefined>;
44
42
  declare const ShapeTypeSchema: v.PicklistSchema<readonly ["rect", "roundRect", "ellipse", "triangle", "rtTriangle", "parallelogram", "trapezoid", "pentagon", "hexagon", "heptagon", "octagon", "decagon", "dodecagon", "star4", "star5", "star6", "star7", "star8", "star10", "star12", "star16", "star24", "star32", "line", "straightConnector1", "bentConnector2", "bentConnector3", "bentConnector4", "bentConnector5", "curvedConnector2", "curvedConnector3", "curvedConnector4", "curvedConnector5", "rightArrow", "leftArrow", "upArrow", "downArrow", "leftRightArrow", "upDownArrow", "quadArrow", "leftRightUpArrow", "bentArrow", "uturnArrow", "leftUpArrow", "bentUpArrow", "curvedRightArrow", "curvedLeftArrow", "curvedUpArrow", "curvedDownArrow", "stripedRightArrow", "notchedRightArrow", "homePlate", "chevron", "rightArrowCallout", "downArrowCallout", "leftArrowCallout", "upArrowCallout", "leftRightArrowCallout", "quadArrowCallout", "circularArrow", "flowChartProcess", "flowChartAlternateProcess", "flowChartDecision", "flowChartInputOutput", "flowChartPredefinedProcess", "flowChartInternalStorage", "flowChartDocument", "flowChartMultidocument", "flowChartTerminator", "flowChartPreparation", "flowChartManualInput", "flowChartManualOperation", "flowChartConnector", "flowChartOffpageConnector", "flowChartPunchedCard", "flowChartPunchedTape", "flowChartSummingJunction", "flowChartOr", "flowChartCollate", "flowChartSort", "flowChartExtract", "flowChartMerge", "flowChartOnlineStorage", "flowChartDelay", "flowChartMagneticTape", "flowChartMagneticDisk", "flowChartMagneticDrum", "flowChartDisplay", "wedgeRectCallout", "wedgeRoundRectCallout", "wedgeEllipseCallout", "cloudCallout", "borderCallout1", "borderCallout2", "borderCallout3", "accentCallout1", "accentCallout2", "accentCallout3", "callout1", "callout2", "callout3", "accentBorderCallout1", "accentBorderCallout2", "accentBorderCallout3", "actionButtonBlank", "actionButtonHome", "actionButtonHelp", "actionButtonInformation", "actionButtonBackPrevious", "actionButtonForwardNext", "actionButtonBeginning", "actionButtonEnd", "actionButtonReturn", "actionButtonDocument", "actionButtonSound", "actionButtonMovie", "irregularSeal1", "irregularSeal2", "frame", "halfFrame", "corner", "diagStripe", "chord", "arc", "bracketPair", "bracePair", "leftBracket", "rightBracket", "leftBrace", "rightBrace", "can", "cube", "bevel", "donut", "noSmoking", "blockArc", "foldedCorner", "smileyFace", "heart", "lightningBolt", "sun", "moon", "cloud", "snip1Rect", "snip2SameRect", "snip2DiagRect", "snipRoundRect", "round1Rect", "round2SameRect", "round2DiagRect", "plaque", "teardrop", "mathPlus", "mathMinus", "mathMultiply", "mathDivide", "mathEqual", "mathNotEqual", "gear6", "gear9", "funnel", "pieWedge", "pie", "leftCircularArrow", "leftRightCircularArrow", "swooshArrow", "textBox"], undefined>;
45
- declare const NumberFormatSchema: v.PicklistSchema<readonly ["decimal", "upperRoman", "lowerRoman", "upperLetter", "lowerLetter", "ordinal", "cardinalText", "ordinalText", "hex", "chicago", "ideographDigital", "japaneseCounting", "aiueo", "iroha", "decimalFullWidth", "decimalHalfWidth", "japaneseLegal", "japaneseDigitalTenThousand", "decimalEnclosedCircle", "decimalFullWidth2", "aiueoFullWidth", "irohaFullWidth", "decimalZero", "decimalZero3", "decimalZero4", "decimalZero5", "bullet", "ganada", "chosung", "decimalEnclosedFullstop", "decimalEnclosedParen", "decimalEnclosedCircleChinese", "ideographEnclosedCircle", "ideographTraditional", "ideographZodiac", "ideographZodiacTraditional", "taiwaneseCounting", "ideographLegalTraditional", "taiwaneseCountingThousand", "taiwaneseDigital", "chineseCounting", "chineseLegalSimplified", "chineseCountingThousand", "koreanDigital", "koreanCounting", "koreanLegal", "koreanDigital2", "vietnameseCounting", "russianLower", "russianUpper", "none", "numberInDash", "hebrew1", "hebrew2", "arabicAlpha", "arabicAbjad", "hindiVowels", "hindiConsonants", "hindiNumbers", "hindiCounting", "thaiLetters", "thaiNumbers", "thaiCounting"], undefined>;
43
+ declare const NumberFormatSchema: v.PicklistSchema<readonly ["decimal", "upperRoman", "lowerRoman", "upperLetter", "lowerLetter", "ordinal", "cardinalText", "ordinalText", "hex", "chicago", "ideographDigital", "japaneseCounting", "aiueo", "iroha", "decimalFullWidth", "decimalHalfWidth", "japaneseLegal", "japaneseDigitalTenThousand", "decimalEnclosedCircle", "decimalFullWidth2", "aiueoFullWidth", "irohaFullWidth", "decimalZero", "bullet", "ganada", "chosung", "decimalEnclosedFullstop", "decimalEnclosedParen", "decimalEnclosedCircleChinese", "ideographEnclosedCircle", "ideographTraditional", "ideographZodiac", "ideographZodiacTraditional", "taiwaneseCounting", "ideographLegalTraditional", "taiwaneseCountingThousand", "taiwaneseDigital", "chineseCounting", "chineseLegalSimplified", "chineseCountingThousand", "koreanDigital", "koreanCounting", "koreanLegal", "koreanDigital2", "vietnameseCounting", "russianLower", "russianUpper", "none", "numberInDash", "hebrew1", "hebrew2", "arabicAlpha", "arabicAbjad", "hindiVowels", "hindiConsonants", "hindiNumbers", "hindiCounting", "thaiLetters", "thaiNumbers", "thaiCounting", "bahtText", "dollarText", "custom"], undefined>;
46
44
  declare const LevelSuffixSchema: v.PicklistSchema<readonly ["tab", "space", "nothing"], undefined>;
47
45
  //#endregion
48
- export { BorderStyleSchema, ConditionalStyleTypeSchema, EmphasisMarkSchema, FieldTypeSchema, FloatingTableXSpecSchema, FloatingTableYSpecSchema, FontHintSchema, FontThemeSchema, FrameWrapSchema, FrameXAlignSchema, FrameYAlignSchema, HighlightColorSchema, ImageHorizontalAlignmentSchema, ImageHorizontalRelativeToSchema, ImageVerticalAlignmentSchema, ImageVerticalRelativeToSchema, ImageWrapTextSchema, LevelSuffixSchema, LineSpacingRuleSchema, NumberFormatSchema, ParagraphAlignmentSchema, PositionalTabAlignmentSchema, PositionalTabLeaderSchema, PositionalTabRelativeToSchema, SdtLockSchema, ShadingPatternSchema, ShapeOutlineStyleSchema, ShapeTypeSchema, StyleTypeSchema, TabLeaderSchema, TabStopAlignmentSchema, TableCellTextDirectionSchema, TableRowHeightRuleSchema, TableWidthTypeSchema, TextEffectSchema, ThemeColorSlotSchema, UnderlineStyleSchema, narrowEnum };
46
+ export { ConditionalStyleTypeSchema, EmphasisMarkSchema, FieldTypeSchema, FloatingTableXSpecSchema, FloatingTableYSpecSchema, FontHintSchema, FontThemeSchema, FrameWrapSchema, FrameXAlignSchema, FrameYAlignSchema, HighlightColorSchema, ImageHorizontalAlignmentSchema, ImageHorizontalRelativeToSchema, ImageVerticalAlignmentSchema, ImageVerticalRelativeToSchema, ImageWrapTextSchema, LevelSuffixSchema, LineSpacingRuleSchema, NumberFormatSchema, ParagraphAlignmentSchema, PositionalTabAlignmentSchema, PositionalTabLeaderSchema, PositionalTabRelativeToSchema, SdtLockSchema, ShadingPatternSchema, ShapeTypeSchema, StyleTypeSchema, TabLeaderSchema, TabStopAlignmentSchema, TableAlignmentSchema, TableRowHeightRuleSchema, TableWidthTypeSchema, TextDirectionSchema, TextEffectSchema, UnderlineStyleSchema, narrowEnum };
@@ -1,4 +1,4 @@
1
- import { BORDER_STYLE_VALUES, CONDITIONAL_STYLE_TYPE_VALUES, EMPHASIS_MARK_VALUES, FIELD_TYPE_VALUES, FLOATING_TABLE_X_SPEC_VALUES, FLOATING_TABLE_Y_SPEC_VALUES, FONT_HINT_VALUES, FONT_THEME_VALUES, FRAME_WRAP_VALUES, FRAME_X_ALIGN_VALUES, FRAME_Y_ALIGN_VALUES, HIGHLIGHT_COLOR_VALUES, IMAGE_HORIZONTAL_ALIGNMENT_VALUES, IMAGE_HORIZONTAL_RELATIVE_TO_VALUES, IMAGE_VERTICAL_ALIGNMENT_VALUES, IMAGE_VERTICAL_RELATIVE_TO_VALUES, IMAGE_WRAP_TEXT_VALUES, LEVEL_SUFFIX_VALUES, LINE_SPACING_RULE_VALUES, NUMBER_FORMAT_VALUES, PARAGRAPH_ALIGNMENT_VALUES, POSITIONAL_TAB_ALIGNMENT_VALUES, POSITIONAL_TAB_LEADER_VALUES, POSITIONAL_TAB_RELATIVE_TO_VALUES, SDT_LOCK_VALUES, SHADING_PATTERN_VALUES, SHAPE_OUTLINE_STYLE_VALUES, SHAPE_TYPE_VALUES, STYLE_TYPE_VALUES, TABLE_CELL_TEXT_DIRECTION_VALUES, TABLE_ROW_HEIGHT_RULE_VALUES, TABLE_WIDTH_TYPE_VALUES, TAB_LEADER_VALUES, TAB_STOP_ALIGNMENT_VALUES, TEXT_EFFECT_VALUES, THEME_COLOR_SLOT_VALUES, UNDERLINE_STYLE_VALUES } from "../types/documentEnumValues.js";
1
+ import { CONDITIONAL_STYLE_TYPE_VALUES, EMPHASIS_MARK_VALUES, FIELD_TYPE_VALUES, FLOATING_TABLE_X_SPEC_VALUES, FLOATING_TABLE_Y_SPEC_VALUES, FONT_HINT_VALUES, FONT_THEME_VALUES, FRAME_WRAP_VALUES, FRAME_X_ALIGN_VALUES, FRAME_Y_ALIGN_VALUES, HIGHLIGHT_COLOR_VALUES, IMAGE_HORIZONTAL_ALIGNMENT_VALUES, IMAGE_HORIZONTAL_RELATIVE_TO_VALUES, IMAGE_VERTICAL_ALIGNMENT_VALUES, IMAGE_VERTICAL_RELATIVE_TO_VALUES, IMAGE_WRAP_TEXT_VALUES, LEVEL_SUFFIX_VALUES, LINE_SPACING_RULE_VALUES, NUMBER_FORMAT_VALUES, PARAGRAPH_ALIGNMENT_VALUES, POSITIONAL_TAB_ALIGNMENT_VALUES, POSITIONAL_TAB_LEADER_VALUES, POSITIONAL_TAB_RELATIVE_TO_VALUES, SDT_LOCK_VALUES, SHADING_PATTERN_VALUES, SHAPE_TYPE_VALUES, STYLE_TYPE_VALUES, TABLE_JUSTIFICATION_VALUES, TABLE_ROW_HEIGHT_RULE_VALUES, TABLE_WIDTH_TYPE_VALUES, TAB_LEADER_VALUES, TAB_STOP_ALIGNMENT_VALUES, TEXT_DIRECTION_VALUES, TEXT_EFFECT_VALUES, UNDERLINE_STYLE_VALUES } from "../types/documentEnumValues.js";
2
2
  import * as v from "valibot";
3
3
  //#region src/docx/parserEnums.ts
4
4
  /**
@@ -33,8 +33,6 @@ const narrowEnum = (value, schema) => {
33
33
  const result = v.safeParse(schema, value);
34
34
  return result.success ? result.output : void 0;
35
35
  };
36
- const ThemeColorSlotSchema = v.picklist(THEME_COLOR_SLOT_VALUES);
37
- const BorderStyleSchema = v.picklist(BORDER_STYLE_VALUES);
38
36
  const UnderlineStyleSchema = v.picklist(UNDERLINE_STYLE_VALUES);
39
37
  const HighlightColorSchema = v.picklist(HIGHLIGHT_COLOR_VALUES);
40
38
  const TextEffectSchema = v.picklist(TEXT_EFFECT_VALUES);
@@ -55,9 +53,10 @@ const SdtLockSchema = v.picklist(SDT_LOCK_VALUES);
55
53
  const FieldTypeSchema = v.picklist(FIELD_TYPE_VALUES);
56
54
  const StyleTypeSchema = v.picklist(STYLE_TYPE_VALUES);
57
55
  const ConditionalStyleTypeSchema = v.picklist(CONDITIONAL_STYLE_TYPE_VALUES);
56
+ const TableAlignmentSchema = v.picklist(TABLE_JUSTIFICATION_VALUES);
58
57
  const TableWidthTypeSchema = v.picklist(TABLE_WIDTH_TYPE_VALUES);
59
58
  const TableRowHeightRuleSchema = v.picklist(TABLE_ROW_HEIGHT_RULE_VALUES);
60
- const TableCellTextDirectionSchema = v.picklist(TABLE_CELL_TEXT_DIRECTION_VALUES);
59
+ const TextDirectionSchema = v.picklist(TEXT_DIRECTION_VALUES);
61
60
  const ShadingPatternSchema = v.picklist(SHADING_PATTERN_VALUES);
62
61
  const FloatingTableXSpecSchema = v.picklist(FLOATING_TABLE_X_SPEC_VALUES);
63
62
  const FloatingTableYSpecSchema = v.picklist(FLOATING_TABLE_Y_SPEC_VALUES);
@@ -66,9 +65,8 @@ const ImageHorizontalAlignmentSchema = v.picklist(IMAGE_HORIZONTAL_ALIGNMENT_VAL
66
65
  const ImageVerticalRelativeToSchema = v.picklist(IMAGE_VERTICAL_RELATIVE_TO_VALUES);
67
66
  const ImageVerticalAlignmentSchema = v.picklist(IMAGE_VERTICAL_ALIGNMENT_VALUES);
68
67
  const ImageWrapTextSchema = v.picklist(IMAGE_WRAP_TEXT_VALUES);
69
- const ShapeOutlineStyleSchema = v.picklist(SHAPE_OUTLINE_STYLE_VALUES);
70
68
  const ShapeTypeSchema = v.picklist(SHAPE_TYPE_VALUES);
71
69
  const NumberFormatSchema = v.picklist(NUMBER_FORMAT_VALUES);
72
70
  const LevelSuffixSchema = v.picklist(LEVEL_SUFFIX_VALUES);
73
71
  //#endregion
74
- export { BorderStyleSchema, ConditionalStyleTypeSchema, EmphasisMarkSchema, FieldTypeSchema, FloatingTableXSpecSchema, FloatingTableYSpecSchema, FontHintSchema, FontThemeSchema, FrameWrapSchema, FrameXAlignSchema, FrameYAlignSchema, HighlightColorSchema, ImageHorizontalAlignmentSchema, ImageHorizontalRelativeToSchema, ImageVerticalAlignmentSchema, ImageVerticalRelativeToSchema, ImageWrapTextSchema, LevelSuffixSchema, LineSpacingRuleSchema, NumberFormatSchema, ParagraphAlignmentSchema, PositionalTabAlignmentSchema, PositionalTabLeaderSchema, PositionalTabRelativeToSchema, SdtLockSchema, ShadingPatternSchema, ShapeOutlineStyleSchema, ShapeTypeSchema, StyleTypeSchema, TabLeaderSchema, TabStopAlignmentSchema, TableCellTextDirectionSchema, TableRowHeightRuleSchema, TableWidthTypeSchema, TextEffectSchema, ThemeColorSlotSchema, UnderlineStyleSchema, narrowEnum };
72
+ export { ConditionalStyleTypeSchema, EmphasisMarkSchema, FieldTypeSchema, FloatingTableXSpecSchema, FloatingTableYSpecSchema, FontHintSchema, FontThemeSchema, FrameWrapSchema, FrameXAlignSchema, FrameYAlignSchema, HighlightColorSchema, ImageHorizontalAlignmentSchema, ImageHorizontalRelativeToSchema, ImageVerticalAlignmentSchema, ImageVerticalRelativeToSchema, ImageWrapTextSchema, LevelSuffixSchema, LineSpacingRuleSchema, NumberFormatSchema, ParagraphAlignmentSchema, PositionalTabAlignmentSchema, PositionalTabLeaderSchema, PositionalTabRelativeToSchema, SdtLockSchema, ShadingPatternSchema, ShapeTypeSchema, StyleTypeSchema, TabLeaderSchema, TabStopAlignmentSchema, TableAlignmentSchema, TableRowHeightRuleSchema, TableWidthTypeSchema, TextDirectionSchema, TextEffectSchema, UnderlineStyleSchema, narrowEnum };
@@ -52,13 +52,23 @@ const preserveRunChild = (element) => ({
52
52
  *
53
53
  * `w:customXml` and `w:smartTag` are transparent wrappers (ECMA-376 §17.5.1,
54
54
  * §17.5.1.9): their content is ordinary inline content, so their `w:t`
55
- * descendants are on the line. Every other inline child folio captures —
56
- * `w:permStart`, `w:proofErr` and the custom-XML revision ranges — is an
57
- * empty marker, and an element folio has never seen contributes nothing on
58
- * purpose, because guessing at its text would put invented words in a
59
- * document.
55
+ * descendants are on the line. A `w:hyperlink` and a `w:fldSimple` are here
56
+ * for the same reason and only in one place — inside another link or another
57
+ * field, where folio captures the inner one rather than modelling the nesting.
58
+ * Their runs print like any other; a capture that kept the markup and not the
59
+ * words would take a linked clause off the page.
60
+ *
61
+ * Every other inline child folio captures — `w:permStart`, `w:proofErr` and
62
+ * the custom-XML revision ranges — is an empty marker, and an element folio
63
+ * has never seen contributes nothing on purpose, because guessing at its text
64
+ * would put invented words in a document.
60
65
  */
61
- const VISIBLE_TEXT_INLINE_CHILDREN = /* @__PURE__ */ new Set(["customXml", "smartTag"]);
66
+ const VISIBLE_TEXT_INLINE_CHILDREN = /* @__PURE__ */ new Set([
67
+ "customXml",
68
+ "fldSimple",
69
+ "hyperlink",
70
+ "smartTag"
71
+ ]);
62
72
  /**
63
73
  * One capture from the shared dispatcher's sink, as a member of the
64
74
  * container's own inline union.
@@ -15,44 +15,65 @@
15
15
  * would have stopped the other charging for it without anything failing. The
16
16
  * table below is that agreement written once, and a producer builds its image
17
17
  * out of the entry the budget matches against.
18
+ *
19
+ * An entry says what backs the preview, because that decides what there is to
20
+ * agree on. A source-backed preview is image data in `src`, recognized by the
21
+ * strings its producer stamps on it and charged by the character. A
22
+ * descriptor-backed preview is no picture at all, so it carries none of those
23
+ * strings: a table that offered them would be offering a cap over nothing and
24
+ * a prefix nothing can start with.
18
25
  */
19
- declare const VML_PREVIEW_DATA_URL_PREFIX = "data:image/svg+xml;charset=utf-8,";
26
+ type PreviewKindName = "vmlShape" | "wpGroup" | "smartArt";
20
27
  declare const PREVIEW_KINDS: {
21
28
  /** A VML shape folio renders rather than projects (`v:shape`, `v:rect`, ...). */
22
29
  readonly vmlShape: {
30
+ readonly backing: "source";
23
31
  readonly mimeType: "image/svg+xml";
24
32
  readonly filename: "vml-shape-preview.svg";
25
33
  readonly srcPrefix: "data:image/svg+xml;charset=utf-8,";
26
34
  readonly maxPackageCharacters: number;
27
35
  };
28
36
  /**
29
- * A SmartArt diagram: its extent filled with one flat rectangle per shape.
37
+ * A WordprocessingGroup (`wpg:wgp`) folio renders rather than projects.
30
38
  *
31
- * A raster rather than a vector because the display list decodes only base64
32
- * PNG and JPEG, so a vector preview would be missing from every display-list
33
- * backend (PDF among them) while still showing in the DOM. That is what
34
- * makes this preview expensive: one of them is 7.3 MB of data URL whatever
35
- * the package weighs, because its cost follows the extent the author chose
36
- * rather than anything the drawing contains.
39
+ * The group's shapes, their text and any picture they carry are drawn into
40
+ * one SVG, so a package with many groups retains as much generated text as a
41
+ * package of VML shapes does, from a producer bounded per drawing the same
42
+ * way. It was missing from this table, which is not a preview with a generous
43
+ * cap but a preview with none: the matcher below never named it, so no
44
+ * package was ever charged for one.
45
+ */
46
+ readonly wpGroup: {
47
+ readonly backing: "source";
48
+ readonly mimeType: "image/svg+xml";
49
+ readonly filename: "wordprocessing-group.svg";
50
+ readonly srcPrefix: "data:image/svg+xml;charset=utf-8,";
51
+ readonly maxPackageCharacters: number;
52
+ };
53
+ /**
54
+ * A SmartArt diagram: its extent filled with one flat rectangle per shape.
37
55
  *
38
- * Across the public corpus, the fifty packages that produce one retain a
39
- * median of 7.3 MB and a maximum of 51.3 MB (ten previews, from a package
40
- * under a megabyte). The cap is set above that maximum: it refuses no
41
- * legitimate file in the corpus while bounding what had no bound at all, and
42
- * it is a ceiling rather than a fix. The fix is for the preview to be a
43
- * descriptor the renderer rasterizes, which needs the display-list contract
44
- * to carry one.
56
+ * It used to be a raster in `src`, because the display list decoded only
57
+ * base64 PNG and JPEG and a vector preview would have been missing from
58
+ * every backend but the DOM. That cost 7.3 MB of data URL per diagram
59
+ * whatever the package weighed, up to 51.3 MB in one corpus package, because
60
+ * it followed the extent the author chose rather than anything the drawing
61
+ * contained. It is a `PreviewDescriptor` now, which both backends draw, and
62
+ * the bound on it is the shape cap the parse applies to the description.
45
63
  */
46
64
  readonly smartArt: {
47
- readonly mimeType: "image/png";
48
- readonly filename: "smartart-preview.png";
49
- readonly srcPrefix: "data:image/png;base64,";
50
- readonly maxPackageCharacters: number;
65
+ readonly backing: "descriptor";
51
66
  };
52
67
  };
53
- type PreviewKindName = keyof typeof PREVIEW_KINDS;
54
- /** Per-kind allowances for one package, defaulting to the table's caps. */
55
- type PreviewBudgetOverrides = Partial<Record<PreviewKindName, number>>;
68
+ /** The kinds a package charges: those whose preview is image data it retains. */
69
+ type SourceBackedKindName = { [Name in PreviewKindName]: (typeof PREVIEW_KINDS)[Name]["backing"] extends "source" ? Name : never; }[PreviewKindName];
70
+ /**
71
+ * Per-kind allowances for one package, defaulting to the table's caps.
72
+ *
73
+ * Only a source-backed kind has an allowance: there is no number that would
74
+ * change what the budget does to a descriptor.
75
+ */
76
+ type PreviewBudgetOverrides = Partial<Record<SourceBackedKindName, number>>;
56
77
  /**
57
78
  * Charge every generated preview in the model against its kind's allowance and
58
79
  * drop the `src` of those past it. Dropping leaves the image in place with its
@@ -61,4 +82,4 @@ type PreviewBudgetOverrides = Partial<Record<PreviewKindName, number>>;
61
82
  */
62
83
  declare const enforcePackagePreviewBudget: (root: unknown, overrides?: PreviewBudgetOverrides) => void;
63
84
  //#endregion
64
- export { PREVIEW_KINDS, PreviewBudgetOverrides, VML_PREVIEW_DATA_URL_PREFIX, enforcePackagePreviewBudget };
85
+ export { PREVIEW_KINDS, PreviewBudgetOverrides, enforcePackagePreviewBudget };
@@ -1,49 +1,80 @@
1
1
  //#region src/docx/previewBudget.ts
2
- const VML_PREVIEW_DATA_URL_PREFIX = "data:image/svg+xml;charset=utf-8,";
3
- const MEBIBYTE = 1024 * 1024;
2
+ /** Both SVG producers encode their drawing into the URL rather than base64. */
3
+ const SVG_PREVIEW_DATA_URL_PREFIX = "data:image/svg+xml;charset=utf-8,";
4
+ /**
5
+ * Eight times what a producer may spend on one drawing, which is a package
6
+ * holding a handful of the largest previews folio will build.
7
+ */
8
+ const SVG_PREVIEW_PACKAGE_CHARACTERS = 8 * (1024 * 1024);
4
9
  const PREVIEW_KINDS = {
5
10
  /** A VML shape folio renders rather than projects (`v:shape`, `v:rect`, ...). */
6
11
  vmlShape: {
12
+ backing: "source",
7
13
  mimeType: "image/svg+xml",
8
14
  filename: "vml-shape-preview.svg",
9
- srcPrefix: VML_PREVIEW_DATA_URL_PREFIX,
10
- maxPackageCharacters: 8 * MEBIBYTE
15
+ srcPrefix: SVG_PREVIEW_DATA_URL_PREFIX,
16
+ maxPackageCharacters: SVG_PREVIEW_PACKAGE_CHARACTERS
11
17
  },
12
18
  /**
13
- * A SmartArt diagram: its extent filled with one flat rectangle per shape.
19
+ * A WordprocessingGroup (`wpg:wgp`) folio renders rather than projects.
14
20
  *
15
- * A raster rather than a vector because the display list decodes only base64
16
- * PNG and JPEG, so a vector preview would be missing from every display-list
17
- * backend (PDF among them) while still showing in the DOM. That is what
18
- * makes this preview expensive: one of them is 7.3 MB of data URL whatever
19
- * the package weighs, because its cost follows the extent the author chose
20
- * rather than anything the drawing contains.
21
+ * The group's shapes, their text and any picture they carry are drawn into
22
+ * one SVG, so a package with many groups retains as much generated text as a
23
+ * package of VML shapes does, from a producer bounded per drawing the same
24
+ * way. It was missing from this table, which is not a preview with a generous
25
+ * cap but a preview with none: the matcher below never named it, so no
26
+ * package was ever charged for one.
27
+ */
28
+ wpGroup: {
29
+ backing: "source",
30
+ mimeType: "image/svg+xml",
31
+ filename: "wordprocessing-group.svg",
32
+ srcPrefix: SVG_PREVIEW_DATA_URL_PREFIX,
33
+ maxPackageCharacters: SVG_PREVIEW_PACKAGE_CHARACTERS
34
+ },
35
+ /**
36
+ * A SmartArt diagram: its extent filled with one flat rectangle per shape.
21
37
  *
22
- * Across the public corpus, the fifty packages that produce one retain a
23
- * median of 7.3 MB and a maximum of 51.3 MB (ten previews, from a package
24
- * under a megabyte). The cap is set above that maximum: it refuses no
25
- * legitimate file in the corpus while bounding what had no bound at all, and
26
- * it is a ceiling rather than a fix. The fix is for the preview to be a
27
- * descriptor the renderer rasterizes, which needs the display-list contract
28
- * to carry one.
38
+ * It used to be a raster in `src`, because the display list decoded only
39
+ * base64 PNG and JPEG and a vector preview would have been missing from
40
+ * every backend but the DOM. That cost 7.3 MB of data URL per diagram
41
+ * whatever the package weighed, up to 51.3 MB in one corpus package, because
42
+ * it followed the extent the author chose rather than anything the drawing
43
+ * contained. It is a `PreviewDescriptor` now, which both backends draw, and
44
+ * the bound on it is the shape cap the parse applies to the description.
29
45
  */
30
- smartArt: {
31
- mimeType: "image/png",
32
- filename: "smartart-preview.png",
33
- srcPrefix: "data:image/png;base64,",
34
- maxPackageCharacters: 64 * MEBIBYTE
35
- }
46
+ smartArt: { backing: "descriptor" }
36
47
  };
37
48
  const KIND_NAMES = Object.keys(PREVIEW_KINDS);
38
49
  /**
50
+ * Whether a package charges this kind, narrowing the name to a source-backed
51
+ * one: the predicate reads the same field `SourceBackedKindName` selects on.
52
+ */
53
+ const isSourceBacked = (name) => {
54
+ const kind = PREVIEW_KINDS[name];
55
+ switch (kind.backing) {
56
+ case "source": return true;
57
+ case "descriptor": return false;
58
+ default: return kind;
59
+ }
60
+ };
61
+ const SOURCE_BACKED_KIND_NAMES = KIND_NAMES.filter(isSourceBacked);
62
+ /**
39
63
  * The kind a model image was generated as, or `undefined` for one the package
40
- * actually carries. A generated preview has no relationship behind it, so
41
- * `rId` is empty; the filename and data-URL prefix name which producer made it.
64
+ * actually carries. A generated preview has no relationship behind it; the
65
+ * filename and data-URL prefix name which producer made it.
66
+ *
67
+ * "No relationship" is read as the one spelling `RelationshipId` leaves: a
68
+ * field that is absent or `undefined`. The walk takes an unvalidated object,
69
+ * so the check stays, but it no longer has a second spelling to accept.
70
+ *
71
+ * Only a source-backed kind can be named this way. A descriptor-backed preview
72
+ * has no `src` to match, so no image the model carries can be charged to it.
42
73
  */
43
74
  const previewKindOf = (value) => {
44
- if (!("type" in value) || value.type !== "image" || !("rId" in value) || value.rId !== "" || !("src" in value) || typeof value.src !== "string" || !("mimeType" in value) || !("filename" in value)) return;
75
+ if (!("type" in value) || value.type !== "image" || "rId" in value && value.rId !== void 0 || !("src" in value) || typeof value.src !== "string" || !("mimeType" in value) || !("filename" in value)) return;
45
76
  const { src, mimeType, filename } = value;
46
- return KIND_NAMES.find((name) => {
77
+ return SOURCE_BACKED_KIND_NAMES.find((name) => {
47
78
  const kind = PREVIEW_KINDS[name];
48
79
  return mimeType === kind.mimeType && filename === kind.filename && src.startsWith(kind.srcPrefix);
49
80
  });
@@ -55,7 +86,7 @@ const previewKindOf = (value) => {
55
86
  * and never touches the preserved XML the package saves from.
56
87
  */
57
88
  const enforcePackagePreviewBudget = (root, overrides = {}) => {
58
- const remaining = new Map(KIND_NAMES.map((name) => [name, Math.max(0, overrides[name] ?? PREVIEW_KINDS[name].maxPackageCharacters)]));
89
+ const remaining = new Map(SOURCE_BACKED_KIND_NAMES.map((name) => [name, Math.max(0, overrides[name] ?? PREVIEW_KINDS[name].maxPackageCharacters)]));
59
90
  const visited = /* @__PURE__ */ new WeakSet();
60
91
  const visit = (value) => {
61
92
  if (value === null || typeof value !== "object" || visited.has(value)) return;
@@ -85,4 +116,4 @@ const enforcePackagePreviewBudget = (root, overrides = {}) => {
85
116
  visit(root);
86
117
  };
87
118
  //#endregion
88
- export { PREVIEW_KINDS, VML_PREVIEW_DATA_URL_PREFIX, enforcePackagePreviewBudget };
119
+ export { PREVIEW_KINDS, enforcePackagePreviewBudget };
@@ -0,0 +1,178 @@
1
+ //#region src/docx/propertyElementAttributes.d.ts
2
+ /**
3
+ * Which attributes of a property element the model has a field for.
4
+ *
5
+ * A property element is an attribute bag: `w:ind`, `w:spacing`, `w:framePr`,
6
+ * `w:tab`, a `w:pBdr` side, `w:shd`. The child dispatcher decides them whole —
7
+ * a handler either reads the element or hands back its bytes — and that is
8
+ * exactly as far as it goes. `<w:ind w:leftChars="100"/>` is kept entire
9
+ * because the reader took nothing from it, and `<w:ind w:left="720"
10
+ * w:leftChars="100"/>` is modelled and loses the character unit, because the
11
+ * reader took something. The census measures one attribute at a time, so the
12
+ * second case reported as surviving.
13
+ *
14
+ * The fix is the attribute remainder that `w:p`'s `w:rsid*` attributes already
15
+ * ride, applied one level down: every attribute with no model field is kept on
16
+ * the record, decided on the resolved local name, written back by
17
+ * `serializePreservedAttributes`. The remainder predicate has to be derived
18
+ * from the model rather than hand-listed, or it is a mirror of the reader and
19
+ * drifts the first time a field is added — so each table below is
20
+ * `as const satisfies ModelledAttributes<…>` over the record's own fields, and
21
+ * a field that gains no entry does not compile.
22
+ *
23
+ * The tables live together, in a module with no runtime dependencies, because
24
+ * three callers consult them: the reader (to compute the remainder), and the
25
+ * container-survival census (to state a subject attribute beside a modelled
26
+ * sibling, which is what catches a whole-or-nothing reader at all). The writer
27
+ * needs no copy: it hands the fragments it is about to emit to
28
+ * `serializePreservedAttributes`, which drops a remainder entry that would
29
+ * spell one of them again.
30
+ *
31
+ * A field may name more than one attribute. `ParagraphFormatting.indentLeft`
32
+ * is filled from `w:left` or from the Strict `w:start`, and both have to be
33
+ * out of the remainder or a save writes the same indent twice under two
34
+ * spellings.
35
+ */
36
+ /**
37
+ * The attributes one record's fields are read from, keyed by field.
38
+ *
39
+ * `Record`, never `Partial<Record>`: the key set is the record's own fields,
40
+ * so a field that has no attribute to name has to say so with an empty list
41
+ * rather than by being absent.
42
+ */
43
+ type ModelledAttributes<Field extends string> = Readonly<Record<Field, string | readonly string[]>>;
44
+ /**
45
+ * `w:ind`. `hangingIndent` is the sign of `indentFirstLine` rather than a
46
+ * value of its own, so both name the attribute pair that carries it.
47
+ */
48
+ declare const INDENTATION_ATTRIBUTES: {
49
+ readonly indentLeft: readonly ["left", "start"];
50
+ readonly indentRight: readonly ["right", "end"];
51
+ readonly indentFirstLine: readonly ["firstLine", "hanging"];
52
+ readonly hangingIndent: "hanging";
53
+ };
54
+ /**
55
+ * `w:spacing`. `spacingExplicit` records which of the two sides the paragraph
56
+ * stated itself; it is derived from them and reads no attribute of its own.
57
+ */
58
+ declare const SPACING_ATTRIBUTES: {
59
+ readonly spaceBefore: "before";
60
+ readonly spaceAfter: "after";
61
+ readonly lineSpacing: "line";
62
+ readonly lineSpacingRule: "lineRule";
63
+ readonly beforeAutospacing: "beforeAutospacing";
64
+ readonly afterAutospacing: "afterAutospacing";
65
+ readonly spacingExplicit: readonly [];
66
+ };
67
+ declare const FRAME_ATTRIBUTES: {
68
+ readonly dropCap: "dropCap";
69
+ readonly lines: "lines";
70
+ readonly width: "w";
71
+ readonly height: "h";
72
+ readonly hSpace: "hSpace";
73
+ readonly vSpace: "vSpace";
74
+ readonly hAnchor: "hAnchor";
75
+ readonly vAnchor: "vAnchor";
76
+ readonly x: "x";
77
+ readonly y: "y";
78
+ readonly xAlign: "xAlign";
79
+ readonly yAlign: "yAlign";
80
+ readonly wrap: "wrap";
81
+ };
82
+ declare const TAB_STOP_ATTRIBUTES: {
83
+ readonly position: "pos";
84
+ readonly alignment: "val";
85
+ readonly leader: "leader";
86
+ };
87
+ /**
88
+ * `CT_Border`. The five art relationship ids are in the relationships
89
+ * namespace; the remainder decides on the local name, so naming them here
90
+ * keeps a `r:topLeft` out of it.
91
+ */
92
+ declare const BORDER_ATTRIBUTES: {
93
+ readonly style: "val";
94
+ readonly color: readonly ["color", "themeColor", "themeTint", "themeShade"];
95
+ readonly size: "sz";
96
+ readonly space: "space";
97
+ readonly shadow: "shadow";
98
+ readonly frame: "frame";
99
+ readonly artRelationshipId: "id";
100
+ readonly topLeftArtRelationshipId: "topLeft";
101
+ readonly topRightArtRelationshipId: "topRight";
102
+ readonly bottomLeftArtRelationshipId: "bottomLeft";
103
+ readonly bottomRightArtRelationshipId: "bottomRight";
104
+ };
105
+ /** `CT_Shd`: direct, theme, modifier, and pattern attributes all have model fields. */
106
+ declare const SHADING_ATTRIBUTES: {
107
+ readonly color: readonly ["color", "themeColor", "themeTint", "themeShade"];
108
+ readonly fill: readonly ["fill", "themeFill", "themeFillTint", "themeFillShade"];
109
+ readonly pattern: "val";
110
+ };
111
+ /**
112
+ * The same tables by the complex type whose attributes they answer for, in
113
+ * the order the model declares the fields.
114
+ *
115
+ * The census reads this: to catch a whole-or-nothing reader it has to state
116
+ * the subject attribute *beside* one the element models, and which one that
117
+ * is has to come from the model rather than from a list in the census. The
118
+ * first entry is the one it picks.
119
+ */
120
+ declare const PROPERTY_ELEMENT_ATTRIBUTES: {
121
+ readonly CT_Ind: {
122
+ readonly indentLeft: readonly ["left", "start"];
123
+ readonly indentRight: readonly ["right", "end"];
124
+ readonly indentFirstLine: readonly ["firstLine", "hanging"];
125
+ readonly hangingIndent: "hanging";
126
+ };
127
+ readonly CT_Spacing: {
128
+ readonly spaceBefore: "before";
129
+ readonly spaceAfter: "after";
130
+ readonly lineSpacing: "line";
131
+ readonly lineSpacingRule: "lineRule";
132
+ readonly beforeAutospacing: "beforeAutospacing";
133
+ readonly afterAutospacing: "afterAutospacing";
134
+ readonly spacingExplicit: readonly [];
135
+ };
136
+ readonly CT_FramePr: {
137
+ readonly dropCap: "dropCap";
138
+ readonly lines: "lines";
139
+ readonly width: "w";
140
+ readonly height: "h";
141
+ readonly hSpace: "hSpace";
142
+ readonly vSpace: "vSpace";
143
+ readonly hAnchor: "hAnchor";
144
+ readonly vAnchor: "vAnchor";
145
+ readonly x: "x";
146
+ readonly y: "y";
147
+ readonly xAlign: "xAlign";
148
+ readonly yAlign: "yAlign";
149
+ readonly wrap: "wrap";
150
+ };
151
+ readonly CT_TabStop: {
152
+ readonly position: "pos";
153
+ readonly alignment: "val";
154
+ readonly leader: "leader";
155
+ };
156
+ readonly CT_Border: {
157
+ readonly style: "val";
158
+ readonly color: readonly ["color", "themeColor", "themeTint", "themeShade"];
159
+ readonly size: "sz";
160
+ readonly space: "space";
161
+ readonly shadow: "shadow";
162
+ readonly frame: "frame";
163
+ readonly artRelationshipId: "id";
164
+ readonly topLeftArtRelationshipId: "topLeft";
165
+ readonly topRightArtRelationshipId: "topRight";
166
+ readonly bottomLeftArtRelationshipId: "bottomLeft";
167
+ readonly bottomRightArtRelationshipId: "bottomRight";
168
+ };
169
+ readonly CT_Shd: {
170
+ readonly color: readonly ["color", "themeColor", "themeTint", "themeShade"];
171
+ readonly fill: readonly ["fill", "themeFill", "themeFillTint", "themeFillShade"];
172
+ readonly pattern: "val";
173
+ };
174
+ };
175
+ /** Every attribute local name a table names, flattened, in field order. */
176
+ declare const modelledAttributeNames: (modelled: ModelledAttributes<string>) => readonly string[];
177
+ //#endregion
178
+ export { BORDER_ATTRIBUTES, FRAME_ATTRIBUTES, INDENTATION_ATTRIBUTES, ModelledAttributes, PROPERTY_ELEMENT_ATTRIBUTES, SHADING_ATTRIBUTES, SPACING_ATTRIBUTES, TAB_STOP_ATTRIBUTES, modelledAttributeNames };