superdoc 2.2.1 → 2.3.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 (687) hide show
  1. package/AGENTS.md +337 -0
  2. package/LICENSE +661 -0
  3. package/NOTICE +8 -0
  4. package/README.md +107 -0
  5. package/dist/chunks/FindReplaceSurface-BEW-1NhM.es.js +344 -0
  6. package/dist/chunks/FindReplaceSurface-DLxnCQOB.cjs +346 -0
  7. package/dist/chunks/PasswordPromptSurface-BA6HHqEa.es.js +111 -0
  8. package/dist/chunks/PasswordPromptSurface-DMbfDvpQ.cjs +113 -0
  9. package/dist/chunks/PdfViewer-CNOtyS-I.es.js +531 -0
  10. package/dist/chunks/PdfViewer-CoFiGAhm.cjs +535 -0
  11. package/dist/chunks/_plugin-vue_export-helper-BTwbGDKw.cjs +11 -0
  12. package/dist/chunks/_plugin-vue_export-helper-CInC0bKI.es.js +6 -0
  13. package/dist/chunks/blank-docx-CJAXnJKp.es.js +2 -0
  14. package/dist/chunks/blank-docx-DA-G-3VB.cjs +7 -0
  15. package/dist/chunks/constants-CY3R3_kF.es.js +3 -0
  16. package/dist/chunks/constants-sbCZ2O_A.cjs +14 -0
  17. package/dist/chunks/create-super-doc-ui-CXCqHc2m.cjs +9451 -0
  18. package/dist/chunks/create-super-doc-ui-fxF2Q8Ib.es.js +9188 -0
  19. package/dist/chunks/eventemitter3-B60Fsz-a.es.js +131 -0
  20. package/dist/chunks/eventemitter3-DCfwFVNn.cjs +137 -0
  21. package/dist/chunks/jszip-BdUBlUeG.cjs +4679 -0
  22. package/dist/chunks/jszip-DzmwAHr3.es.js +4650 -0
  23. package/dist/chunks/rolldown-runtime-BJVcqBbz.es.js +43 -0
  24. package/dist/chunks/rolldown-runtime-_dR15c8t.cjs +68 -0
  25. package/dist/chunks/uuid-B2Sqk-3p.es.js +32 -0
  26. package/dist/chunks/uuid-CFp0WGVU.cjs +38 -0
  27. package/dist/collaboration-upgrade-engine.cjs +37 -0
  28. package/dist/collaboration-upgrade-engine.es.js +30 -0
  29. package/dist/document-api/src/authorities/authorities.d.ts +29 -0
  30. package/dist/document-api/src/authorities/authorities.types.d.ts +113 -0
  31. package/dist/document-api/src/blocks/blocks.d.ts +29 -0
  32. package/dist/document-api/src/bookmarks/bookmarks.d.ts +15 -0
  33. package/dist/document-api/src/bookmarks/bookmarks.types.d.ts +82 -0
  34. package/dist/document-api/src/capabilities/capabilities.d.ts +82 -0
  35. package/dist/document-api/src/captions/captions.d.ts +17 -0
  36. package/dist/document-api/src/captions/captions.types.d.ts +61 -0
  37. package/dist/document-api/src/citations/citations.d.ts +39 -0
  38. package/dist/document-api/src/citations/citations.types.d.ts +151 -0
  39. package/dist/document-api/src/clear-content/clear-content.d.ts +25 -0
  40. package/dist/document-api/src/clipboard/clipboard.d.ts +11 -0
  41. package/dist/document-api/src/comments/comments.d.ts +222 -0
  42. package/dist/document-api/src/comments/comments.types.d.ts +227 -0
  43. package/dist/document-api/src/content-controls/content-controls.d.ts +136 -0
  44. package/dist/document-api/src/content-controls/content-controls.types.d.ts +453 -0
  45. package/dist/document-api/src/contract/command-catalog.d.ts +17 -0
  46. package/dist/document-api/src/contract/index.d.ts +9 -0
  47. package/dist/document-api/src/contract/metadata-types.d.ts +30 -0
  48. package/dist/document-api/src/contract/operation-definitions.d.ts +3645 -0
  49. package/dist/document-api/src/contract/operation-map.d.ts +5 -0
  50. package/dist/document-api/src/contract/operation-registry.d.ts +2002 -0
  51. package/dist/document-api/src/contract/reference-aliases.d.ts +19 -0
  52. package/dist/document-api/src/contract/reference-doc-map.d.ts +12 -0
  53. package/dist/document-api/src/contract/schemas.d.ts +35 -0
  54. package/dist/document-api/src/contract/step-op-catalog.d.ts +26 -0
  55. package/dist/document-api/src/contract/types.d.ts +31 -0
  56. package/dist/document-api/src/create/create.d.ts +27 -0
  57. package/dist/document-api/src/cross-refs/cross-refs.d.ts +15 -0
  58. package/dist/document-api/src/cross-refs/cross-refs.types.d.ts +68 -0
  59. package/dist/document-api/src/customXml/customXml.d.ts +19 -0
  60. package/dist/document-api/src/customXml/customXml.types.d.ts +148 -0
  61. package/dist/document-api/src/delete/delete.d.ts +20 -0
  62. package/dist/document-api/src/diff/diff.d.ts +14 -0
  63. package/dist/document-api/src/diff/diff.types.d.ts +83 -0
  64. package/dist/document-api/src/diff/index.d.ts +3 -0
  65. package/dist/document-api/src/errors.d.ts +11 -0
  66. package/dist/document-api/src/export/export.d.ts +10 -0
  67. package/dist/document-api/src/export/export.types.d.ts +40 -0
  68. package/dist/document-api/src/extract/extract.d.ts +15 -0
  69. package/dist/document-api/src/fields/fields.d.ts +15 -0
  70. package/dist/document-api/src/fields/fields.types.d.ts +90 -0
  71. package/dist/document-api/src/find/find.d.ts +52 -0
  72. package/dist/document-api/src/footnotes/footnotes.d.ts +17 -0
  73. package/dist/document-api/src/footnotes/footnotes.types.d.ts +104 -0
  74. package/dist/document-api/src/format/format.d.ts +92 -0
  75. package/dist/document-api/src/format/inline-run-patch.d.ts +138 -0
  76. package/dist/document-api/src/get/get.d.ts +19 -0
  77. package/dist/document-api/src/get-html/get-html.d.ts +27 -0
  78. package/dist/document-api/src/get-markdown/get-markdown.d.ts +22 -0
  79. package/dist/document-api/src/get-node/get-node.d.ts +46 -0
  80. package/dist/document-api/src/get-text/get-text.d.ts +22 -0
  81. package/dist/document-api/src/header-footers/header-footers.d.ts +37 -0
  82. package/dist/document-api/src/header-footers/header-footers.types.d.ts +116 -0
  83. package/dist/document-api/src/history/history.d.ts +38 -0
  84. package/dist/document-api/src/history/history.types.d.ts +100 -0
  85. package/dist/document-api/src/hyperlinks/hyperlinks.d.ts +17 -0
  86. package/dist/document-api/src/hyperlinks/hyperlinks.types.d.ts +112 -0
  87. package/dist/document-api/src/images/images.d.ts +63 -0
  88. package/dist/document-api/src/images/images.types.d.ts +209 -0
  89. package/dist/document-api/src/images/z-order.d.ts +10 -0
  90. package/dist/document-api/src/index/index.d.ts +29 -0
  91. package/dist/document-api/src/index/index.types.d.ts +125 -0
  92. package/dist/document-api/src/index.d.ts +560 -0
  93. package/dist/document-api/src/info/info.d.ts +19 -0
  94. package/dist/document-api/src/inline-semantics/directives.d.ts +95 -0
  95. package/dist/document-api/src/inline-semantics/error-types.d.ts +68 -0
  96. package/dist/document-api/src/inline-semantics/index.d.ts +20 -0
  97. package/dist/document-api/src/inline-semantics/property-ids.d.ts +24 -0
  98. package/dist/document-api/src/inline-semantics/token-parsers.d.ts +59 -0
  99. package/dist/document-api/src/inline-semantics/token-sets.d.ts +34 -0
  100. package/dist/document-api/src/insert/insert.d.ts +65 -0
  101. package/dist/document-api/src/invoke/invoke.d.ts +17 -0
  102. package/dist/document-api/src/lists/lists.d.ts +100 -0
  103. package/dist/document-api/src/lists/lists.types.d.ts +499 -0
  104. package/dist/document-api/src/markdown-to-fragment/markdown-to-fragment.d.ts +15 -0
  105. package/dist/document-api/src/metadata/anchored-metadata.d.ts +33 -0
  106. package/dist/document-api/src/metadata/anchored-metadata.types.d.ts +175 -0
  107. package/dist/document-api/src/paragraphs/paragraphs.d.ts +84 -0
  108. package/dist/document-api/src/paragraphs/paragraphs.types.d.ts +214 -0
  109. package/dist/document-api/src/permission-ranges/permission-ranges.d.ts +15 -0
  110. package/dist/document-api/src/permission-ranges/permission-ranges.types.d.ts +49 -0
  111. package/dist/document-api/src/plan/plan.d.ts +73 -0
  112. package/dist/document-api/src/protection/protection.d.ts +11 -0
  113. package/dist/document-api/src/protection/protection.types.d.ts +47 -0
  114. package/dist/document-api/src/ranges/index.d.ts +2 -0
  115. package/dist/document-api/src/ranges/ranges.types.d.ts +121 -0
  116. package/dist/document-api/src/ranges/resolve.d.ts +2 -0
  117. package/dist/document-api/src/receipt-bridge.d.ts +30 -0
  118. package/dist/document-api/src/replace/replace.d.ts +24 -0
  119. package/dist/document-api/src/sections/sections.d.ts +42 -0
  120. package/dist/document-api/src/sections/sections.types.d.ts +236 -0
  121. package/dist/document-api/src/selection/selection.d.ts +23 -0
  122. package/dist/document-api/src/selection/selection.types.d.ts +85 -0
  123. package/dist/document-api/src/selection-mutation.d.ts +46 -0
  124. package/dist/document-api/src/styles/apply.d.ts +142 -0
  125. package/dist/document-api/src/styles/catalog.d.ts +154 -0
  126. package/dist/document-api/src/styles/index.d.ts +14 -0
  127. package/dist/document-api/src/styles/registry.d.ts +43 -0
  128. package/dist/document-api/src/styles/schema.d.ts +9 -0
  129. package/dist/document-api/src/styles/validation.d.ts +38 -0
  130. package/dist/document-api/src/tables/color-formats.d.ts +12 -0
  131. package/dist/document-api/src/tables/tables.d.ts +83 -0
  132. package/dist/document-api/src/templates/apply.d.ts +160 -0
  133. package/dist/document-api/src/templates/index.d.ts +7 -0
  134. package/dist/document-api/src/toc/toc.d.ts +25 -0
  135. package/dist/document-api/src/toc/toc.types.d.ts +247 -0
  136. package/dist/document-api/src/track-changes/track-changes.d.ts +177 -0
  137. package/dist/document-api/src/types/adapter-result.d.ts +10 -0
  138. package/dist/document-api/src/types/address.d.ts +169 -0
  139. package/dist/document-api/src/types/base.d.ts +89 -0
  140. package/dist/document-api/src/types/blocks.types.d.ts +190 -0
  141. package/dist/document-api/src/types/clipboard.d.ts +216 -0
  142. package/dist/document-api/src/types/comments.types.d.ts +17 -0
  143. package/dist/document-api/src/types/create.types.d.ts +56 -0
  144. package/dist/document-api/src/types/discovery.d.ts +99 -0
  145. package/dist/document-api/src/types/extract.types.d.ts +163 -0
  146. package/dist/document-api/src/types/fragment.d.ts +29 -0
  147. package/dist/document-api/src/types/index.d.ts +30 -0
  148. package/dist/document-api/src/types/info.types.d.ts +109 -0
  149. package/dist/document-api/src/types/inline.types.d.ts +28 -0
  150. package/dist/document-api/src/types/media.types.d.ts +72 -0
  151. package/dist/document-api/src/types/mutation-plan.types.d.ts +264 -0
  152. package/dist/document-api/src/types/node.d.ts +9 -0
  153. package/dist/document-api/src/types/paragraph.types.d.ts +61 -0
  154. package/dist/document-api/src/types/placement.d.ts +24 -0
  155. package/dist/document-api/src/types/query-match.types.d.ts +212 -0
  156. package/dist/document-api/src/types/query.d.ts +133 -0
  157. package/dist/document-api/src/types/receipt.d.ts +191 -0
  158. package/dist/document-api/src/types/references.types.d.ts +9 -0
  159. package/dist/document-api/src/types/sd-contract.d.ts +54 -0
  160. package/dist/document-api/src/types/sd-envelope.d.ts +59 -0
  161. package/dist/document-api/src/types/sd-nodes.d.ts +375 -0
  162. package/dist/document-api/src/types/sd-objects.d.ts +144 -0
  163. package/dist/document-api/src/types/sd-props.d.ts +240 -0
  164. package/dist/document-api/src/types/sd-sections.d.ts +126 -0
  165. package/dist/document-api/src/types/sd-styles.d.ts +36 -0
  166. package/dist/document-api/src/types/step-manifest.types.d.ts +30 -0
  167. package/dist/document-api/src/types/story.types.d.ts +123 -0
  168. package/dist/document-api/src/types/structural-input.d.ts +40 -0
  169. package/dist/document-api/src/types/structured.types.d.ts +21 -0
  170. package/dist/document-api/src/types/style-policy.types.d.ts +49 -0
  171. package/dist/document-api/src/types/table-operations.types.d.ts +618 -0
  172. package/dist/document-api/src/types/tables.types.d.ts +43 -0
  173. package/dist/document-api/src/types/toc.types.d.ts +1 -0
  174. package/dist/document-api/src/types/track-changes.types.d.ts +703 -0
  175. package/dist/document-api/src/validation/create-location-validator.d.ts +2 -0
  176. package/dist/document-api/src/validation/fragment-validator.d.ts +13 -0
  177. package/dist/document-api/src/validation/selection-target-validator.d.ts +7 -0
  178. package/dist/document-api/src/validation/story-validator.d.ts +12 -0
  179. package/dist/document-api/src/validation-primitives.d.ts +29 -0
  180. package/dist/document-api/src/write/locator.d.ts +24 -0
  181. package/dist/document-api/src/write/write.d.ts +73 -0
  182. package/dist/images/altText_add.svg +3 -0
  183. package/dist/images/altText_disclaimer.svg +3 -0
  184. package/dist/images/altText_done.svg +3 -0
  185. package/dist/images/altText_spinner.svg +30 -0
  186. package/dist/images/altText_warning.svg +3 -0
  187. package/dist/images/annotation-check.svg +11 -0
  188. package/dist/images/annotation-comment.svg +16 -0
  189. package/dist/images/annotation-help.svg +26 -0
  190. package/dist/images/annotation-insert.svg +10 -0
  191. package/dist/images/annotation-key.svg +11 -0
  192. package/dist/images/annotation-newparagraph.svg +11 -0
  193. package/dist/images/annotation-noicon.svg +7 -0
  194. package/dist/images/annotation-note.svg +42 -0
  195. package/dist/images/annotation-paperclip.svg +6 -0
  196. package/dist/images/annotation-paragraph.svg +16 -0
  197. package/dist/images/annotation-pushpin.svg +7 -0
  198. package/dist/images/checkmark.svg +5 -0
  199. package/dist/images/comment-actionsButton.svg +3 -0
  200. package/dist/images/comment-closeButton.svg +3 -0
  201. package/dist/images/comment-editButton.svg +8 -0
  202. package/dist/images/comment-popup-editButton.svg +5 -0
  203. package/dist/images/cursor-editorFreeHighlight.svg +6 -0
  204. package/dist/images/cursor-editorFreeText.svg +3 -0
  205. package/dist/images/cursor-editorInk.svg +4 -0
  206. package/dist/images/cursor-editorTextHighlight.svg +8 -0
  207. package/dist/images/editor-toolbar-delete.svg +5 -0
  208. package/dist/images/editor-toolbar-edit.svg +3 -0
  209. package/dist/images/findbarButton-next.svg +3 -0
  210. package/dist/images/findbarButton-previous.svg +3 -0
  211. package/dist/images/gv-toolbarButton-download.svg +3 -0
  212. package/dist/images/loading-icon.gif +0 -0
  213. package/dist/images/loading.svg +1 -0
  214. package/dist/images/messageBar_closingButton.svg +3 -0
  215. package/dist/images/messageBar_info.svg +3 -0
  216. package/dist/images/messageBar_warning.svg +3 -0
  217. package/dist/images/pages_closeButton.svg +3 -0
  218. package/dist/images/pages_selected.svg +7 -0
  219. package/dist/images/pages_viewArrow.svg +3 -0
  220. package/dist/images/pages_viewButton.svg +3 -0
  221. package/dist/images/secondaryToolbarButton-documentProperties.svg +3 -0
  222. package/dist/images/secondaryToolbarButton-firstPage.svg +3 -0
  223. package/dist/images/secondaryToolbarButton-handTool.svg +3 -0
  224. package/dist/images/secondaryToolbarButton-lastPage.svg +3 -0
  225. package/dist/images/secondaryToolbarButton-rotateCcw.svg +3 -0
  226. package/dist/images/secondaryToolbarButton-rotateCw.svg +3 -0
  227. package/dist/images/secondaryToolbarButton-scrollHorizontal.svg +3 -0
  228. package/dist/images/secondaryToolbarButton-scrollPage.svg +3 -0
  229. package/dist/images/secondaryToolbarButton-scrollVertical.svg +3 -0
  230. package/dist/images/secondaryToolbarButton-scrollWrapped.svg +3 -0
  231. package/dist/images/secondaryToolbarButton-selectTool.svg +3 -0
  232. package/dist/images/secondaryToolbarButton-spreadEven.svg +3 -0
  233. package/dist/images/secondaryToolbarButton-spreadNone.svg +3 -0
  234. package/dist/images/secondaryToolbarButton-spreadOdd.svg +3 -0
  235. package/dist/images/toolbarButton-bookmark.svg +3 -0
  236. package/dist/images/toolbarButton-currentOutlineItem.svg +3 -0
  237. package/dist/images/toolbarButton-download.svg +4 -0
  238. package/dist/images/toolbarButton-editorFreeText.svg +5 -0
  239. package/dist/images/toolbarButton-editorHighlight.svg +6 -0
  240. package/dist/images/toolbarButton-editorInk.svg +4 -0
  241. package/dist/images/toolbarButton-editorSignature.svg +6 -0
  242. package/dist/images/toolbarButton-editorStamp.svg +8 -0
  243. package/dist/images/toolbarButton-menuArrow.svg +3 -0
  244. package/dist/images/toolbarButton-openFile.svg +3 -0
  245. package/dist/images/toolbarButton-pageDown.svg +3 -0
  246. package/dist/images/toolbarButton-pageUp.svg +3 -0
  247. package/dist/images/toolbarButton-presentationMode.svg +3 -0
  248. package/dist/images/toolbarButton-print.svg +3 -0
  249. package/dist/images/toolbarButton-search.svg +3 -0
  250. package/dist/images/toolbarButton-secondaryToolbarToggle.svg +3 -0
  251. package/dist/images/toolbarButton-viewAttachments.svg +3 -0
  252. package/dist/images/toolbarButton-viewLayers.svg +3 -0
  253. package/dist/images/toolbarButton-viewOutline.svg +3 -0
  254. package/dist/images/toolbarButton-viewThumbnail.svg +3 -0
  255. package/dist/images/toolbarButton-viewsManagerToggle.svg +3 -0
  256. package/dist/images/toolbarButton-zoomIn.svg +3 -0
  257. package/dist/images/toolbarButton-zoomOut.svg +3 -0
  258. package/dist/images/treeitem-collapsed.svg +1 -0
  259. package/dist/images/treeitem-expanded.svg +1 -0
  260. package/dist/layout-engine/contracts/src/author-colors.d.ts +56 -0
  261. package/dist/layout-engine/contracts/src/cell-spacing.d.ts +12 -0
  262. package/dist/layout-engine/contracts/src/clip-path-inset.d.ts +27 -0
  263. package/dist/layout-engine/contracts/src/column-layout.d.ts +79 -0
  264. package/dist/layout-engine/contracts/src/direction-context.d.ts +219 -0
  265. package/dist/layout-engine/contracts/src/drawing-taxonomy.d.ts +126 -0
  266. package/dist/layout-engine/contracts/src/engines/image-wrap.d.ts +54 -0
  267. package/dist/layout-engine/contracts/src/engines/index.d.ts +17 -0
  268. package/dist/layout-engine/contracts/src/engines/lists.d.ts +57 -0
  269. package/dist/layout-engine/contracts/src/engines/paragraph.d.ts +59 -0
  270. package/dist/layout-engine/contracts/src/engines/tables.d.ts +89 -0
  271. package/dist/layout-engine/contracts/src/engines/tabs.d.ts +117 -0
  272. package/dist/layout-engine/contracts/src/graphic-placement.d.ts +76 -0
  273. package/dist/layout-engine/contracts/src/header-footer-inheritance.d.ts +22 -0
  274. package/dist/layout-engine/contracts/src/header-footer-resolution.d.ts +28 -0
  275. package/dist/layout-engine/contracts/src/incremental-dependency.d.ts +10 -0
  276. package/dist/layout-engine/contracts/src/index.d.ts +2459 -0
  277. package/dist/layout-engine/contracts/src/justify-utils.d.ts +98 -0
  278. package/dist/layout-engine/contracts/src/layout-identity.d.ts +136 -0
  279. package/dist/layout-engine/contracts/src/ooxml-z-index.d.ts +46 -0
  280. package/dist/layout-engine/contracts/src/page-number-formatting.d.ts +26 -0
  281. package/dist/layout-engine/contracts/src/page-ref-anchor.d.ts +2 -0
  282. package/dist/layout-engine/contracts/src/pm-range.d.ts +45 -0
  283. package/dist/layout-engine/contracts/src/resolved-layout.d.ts +541 -0
  284. package/dist/layout-engine/contracts/src/run-helpers.d.ts +23 -0
  285. package/dist/layout-engine/contracts/src/sdt-container.d.ts +13 -0
  286. package/dist/layout-engine/contracts/src/segment-geometry.d.ts +192 -0
  287. package/dist/layout-engine/contracts/src/semantic-colors.d.ts +150 -0
  288. package/dist/layout-engine/contracts/src/table-cell-spacing.d.ts +12 -0
  289. package/dist/layout-engine/contracts/src/table-column-rescale.d.ts +13 -0
  290. package/dist/layout-engine/contracts/src/vertical-text.d.ts +43 -0
  291. package/dist/layout-engine/dom-contract/src/class-names.d.ts +62 -0
  292. package/dist/layout-engine/dom-contract/src/data-attrs.d.ts +103 -0
  293. package/dist/layout-engine/dom-contract/src/index.d.ts +18 -0
  294. package/dist/layout-engine/dom-contract/src/selectors.d.ts +47 -0
  295. package/dist/layout-engine/layout-bridge/src/cache-warmer.d.ts +73 -0
  296. package/dist/layout-engine/layout-bridge/src/cache.d.ts +143 -0
  297. package/dist/layout-engine/layout-bridge/src/cacheInvalidation.d.ts +117 -0
  298. package/dist/layout-engine/layout-bridge/src/cursor-renderer.d.ts +201 -0
  299. package/dist/layout-engine/layout-bridge/src/debounced-passes.d.ts +130 -0
  300. package/dist/layout-engine/layout-bridge/src/diff.d.ts +36 -0
  301. package/dist/layout-engine/layout-bridge/src/dirty-tracker.d.ts +128 -0
  302. package/dist/layout-engine/layout-bridge/src/dom-mapping.d.ts +80 -0
  303. package/dist/layout-engine/layout-bridge/src/featureFlags.d.ts +95 -0
  304. package/dist/layout-engine/layout-bridge/src/field-annotation-key.d.ts +2 -0
  305. package/dist/layout-engine/layout-bridge/src/focus-watchdog.d.ts +170 -0
  306. package/dist/layout-engine/layout-bridge/src/font-metrics-cache.d.ts +164 -0
  307. package/dist/layout-engine/layout-bridge/src/footnote-scorer.d.ts +63 -0
  308. package/dist/layout-engine/layout-bridge/src/headerFooterUtils.d.ts +218 -0
  309. package/dist/layout-engine/layout-bridge/src/ime-handler.d.ts +81 -0
  310. package/dist/layout-engine/layout-bridge/src/incrementalLayout.d.ts +390 -0
  311. package/dist/layout-engine/layout-bridge/src/index.d.ts +211 -0
  312. package/dist/layout-engine/layout-bridge/src/instrumentation.d.ts +245 -0
  313. package/dist/layout-engine/layout-bridge/src/layoutHeaderFooter.d.ts +123 -0
  314. package/dist/layout-engine/layout-bridge/src/list-indent-utils.d.ts +205 -0
  315. package/dist/layout-engine/layout-bridge/src/local-paragraph-layout.d.ts +93 -0
  316. package/dist/layout-engine/layout-bridge/src/neutral-hit.d.ts +142 -0
  317. package/dist/layout-engine/layout-bridge/src/neutral-segment-geometry.d.ts +32 -0
  318. package/dist/layout-engine/layout-bridge/src/page-geometry-helper.d.ts +197 -0
  319. package/dist/layout-engine/layout-bridge/src/paragraph-hash-utils.d.ts +126 -0
  320. package/dist/layout-engine/layout-bridge/src/paragraph-line-cache.d.ts +152 -0
  321. package/dist/layout-engine/layout-bridge/src/performance-metrics.d.ts +249 -0
  322. package/dist/layout-engine/layout-bridge/src/pm-dom-fallback.d.ts +188 -0
  323. package/dist/layout-engine/layout-bridge/src/pm-position-validator.d.ts +100 -0
  324. package/dist/layout-engine/layout-bridge/src/position-hit.d.ts +167 -0
  325. package/dist/layout-engine/layout-bridge/src/remeasure.d.ts +75 -0
  326. package/dist/layout-engine/layout-bridge/src/resolveHeaderFooterTokens.d.ts +76 -0
  327. package/dist/layout-engine/layout-bridge/src/rtl-text-geometry.d.ts +34 -0
  328. package/dist/layout-engine/layout-bridge/src/run-visual-marks.d.ts +12 -0
  329. package/dist/layout-engine/layout-bridge/src/safety-net.d.ts +234 -0
  330. package/dist/layout-engine/layout-bridge/src/sectionAwareHeaderFooter.d.ts +15 -0
  331. package/dist/layout-engine/layout-bridge/src/table-handler.d.ts +86 -0
  332. package/dist/layout-engine/layout-bridge/src/text-boundaries.d.ts +17 -0
  333. package/dist/layout-engine/layout-bridge/src/text-measurement.d.ts +69 -0
  334. package/dist/layout-engine/layout-bridge/src/track-changes-handler.d.ts +90 -0
  335. package/dist/layout-engine/layout-bridge/src/tracked-changes-utils.d.ts +41 -0
  336. package/dist/layout-engine/layout-engine/src/anchors.d.ts +52 -0
  337. package/dist/layout-engine/layout-engine/src/column-balancing.d.ts +255 -0
  338. package/dist/layout-engine/layout-engine/src/column-utils.d.ts +1 -0
  339. package/dist/layout-engine/layout-engine/src/floating-objects.d.ts +60 -0
  340. package/dist/layout-engine/layout-engine/src/floating-table-anchor.d.ts +21 -0
  341. package/dist/layout-engine/layout-engine/src/index.d.ts +349 -0
  342. package/dist/layout-engine/layout-engine/src/layout-drawing.d.ts +60 -0
  343. package/dist/layout-engine/layout-engine/src/layout-image.d.ts +16 -0
  344. package/dist/layout-engine/layout-engine/src/layout-paragraph.d.ts +101 -0
  345. package/dist/layout-engine/layout-engine/src/layout-table.d.ts +71 -0
  346. package/dist/layout-engine/layout-engine/src/layout-textbox.d.ts +4 -0
  347. package/dist/layout-engine/layout-engine/src/layout-utils.d.ts +104 -0
  348. package/dist/layout-engine/layout-engine/src/normalize-header-footer-fragments.d.ts +45 -0
  349. package/dist/layout-engine/layout-engine/src/pageNumbering.d.ts +73 -0
  350. package/dist/layout-engine/layout-engine/src/paginator.d.ts +131 -0
  351. package/dist/layout-engine/layout-engine/src/paragraph-layout-eligibility.d.ts +1 -0
  352. package/dist/layout-engine/layout-engine/src/resolvePageRefs.d.ts +31 -0
  353. package/dist/layout-engine/layout-engine/src/resolvePageTokens.d.ts +82 -0
  354. package/dist/layout-engine/layout-engine/src/section-breaks.d.ts +98 -0
  355. package/dist/layout-engine/layout-engine/src/section-props.d.ts +65 -0
  356. package/dist/layout-engine/layout-engine/src/table-cell-slice.d.ts +98 -0
  357. package/dist/layout-engine/painters/dom/src/_test-utils.d.ts +21 -0
  358. package/dist/layout-engine/painters/dom/src/chart-renderer.d.ts +13 -0
  359. package/dist/layout-engine/painters/dom/src/constants.d.ts +10 -0
  360. package/dist/layout-engine/painters/dom/src/css-token.d.ts +10 -0
  361. package/dist/layout-engine/painters/dom/src/features/feature-registry.d.ts +41 -0
  362. package/dist/layout-engine/painters/dom/src/features/inline-direction/index.d.ts +22 -0
  363. package/dist/layout-engine/painters/dom/src/features/inline-direction/rtl-styles.d.ts +27 -0
  364. package/dist/layout-engine/painters/dom/src/features/inline-direction/run-direction.d.ts +75 -0
  365. package/dist/layout-engine/painters/dom/src/features/math/converters/accent.d.ts +25 -0
  366. package/dist/layout-engine/painters/dom/src/features/math/converters/bar.d.ts +16 -0
  367. package/dist/layout-engine/painters/dom/src/features/math/converters/box.d.ts +38 -0
  368. package/dist/layout-engine/painters/dom/src/features/math/converters/delimiter.d.ts +13 -0
  369. package/dist/layout-engine/painters/dom/src/features/math/converters/equation-array.d.ts +19 -0
  370. package/dist/layout-engine/painters/dom/src/features/math/converters/fraction.d.ts +13 -0
  371. package/dist/layout-engine/painters/dom/src/features/math/converters/function.d.ts +16 -0
  372. package/dist/layout-engine/painters/dom/src/features/math/converters/group-character.d.ts +26 -0
  373. package/dist/layout-engine/painters/dom/src/features/math/converters/index.d.ts +27 -0
  374. package/dist/layout-engine/painters/dom/src/features/math/converters/lower-limit.d.ts +13 -0
  375. package/dist/layout-engine/painters/dom/src/features/math/converters/math-run.d.ts +47 -0
  376. package/dist/layout-engine/painters/dom/src/features/math/converters/matrix.d.ts +23 -0
  377. package/dist/layout-engine/painters/dom/src/features/math/converters/nary.d.ts +23 -0
  378. package/dist/layout-engine/painters/dom/src/features/math/converters/phantom.d.ts +17 -0
  379. package/dist/layout-engine/painters/dom/src/features/math/converters/pre-sub-superscript.d.ts +25 -0
  380. package/dist/layout-engine/painters/dom/src/features/math/converters/radical.d.ts +14 -0
  381. package/dist/layout-engine/painters/dom/src/features/math/converters/sub-superscript.d.ts +13 -0
  382. package/dist/layout-engine/painters/dom/src/features/math/converters/subscript.d.ts +13 -0
  383. package/dist/layout-engine/painters/dom/src/features/math/converters/superscript.d.ts +13 -0
  384. package/dist/layout-engine/painters/dom/src/features/math/converters/upper-limit.d.ts +13 -0
  385. package/dist/layout-engine/painters/dom/src/features/math/index.d.ts +14 -0
  386. package/dist/layout-engine/painters/dom/src/features/math/omml-to-mathml.d.ts +18 -0
  387. package/dist/layout-engine/painters/dom/src/features/math/types.d.ts +41 -0
  388. package/dist/layout-engine/painters/dom/src/images/drawing-image.d.ts +5 -0
  389. package/dist/layout-engine/painters/dom/src/images/hyperlink.d.ts +2 -0
  390. package/dist/layout-engine/painters/dom/src/images/image-block.d.ts +15 -0
  391. package/dist/layout-engine/painters/dom/src/images/image-clip-path.d.ts +17 -0
  392. package/dist/layout-engine/painters/dom/src/images/image-fragment.d.ts +34 -0
  393. package/dist/layout-engine/painters/dom/src/images/image-selectors.d.ts +9 -0
  394. package/dist/layout-engine/painters/dom/src/images/types.d.ts +2 -0
  395. package/dist/layout-engine/painters/dom/src/index.d.ts +125 -0
  396. package/dist/layout-engine/painters/dom/src/page-content.d.ts +209 -0
  397. package/dist/layout-engine/painters/dom/src/paragraph/block-version.d.ts +8 -0
  398. package/dist/layout-engine/painters/dom/src/paragraph/borders/border-layer.d.ts +59 -0
  399. package/dist/layout-engine/painters/dom/src/paragraph/borders/group-analysis.d.ts +38 -0
  400. package/dist/layout-engine/painters/dom/src/paragraph/borders/index.d.ts +18 -0
  401. package/dist/layout-engine/painters/dom/src/paragraph/frame.d.ts +3 -0
  402. package/dist/layout-engine/painters/dom/src/paragraph/indentation.d.ts +25 -0
  403. package/dist/layout-engine/painters/dom/src/paragraph/list-marker.d.ts +51 -0
  404. package/dist/layout-engine/painters/dom/src/paragraph/marker-tracked-change.d.ts +34 -0
  405. package/dist/layout-engine/painters/dom/src/paragraph/renderParagraphContent.d.ts +87 -0
  406. package/dist/layout-engine/painters/dom/src/paragraph/renderParagraphFragment.d.ts +33 -0
  407. package/dist/layout-engine/painters/dom/src/paragraph/styles.d.ts +3 -0
  408. package/dist/layout-engine/painters/dom/src/paragraph-hash-utils.d.ts +13 -0
  409. package/dist/layout-engine/painters/dom/src/pm-position-validation.d.ts +149 -0
  410. package/dist/layout-engine/painters/dom/src/renderer.d.ts +681 -0
  411. package/dist/layout-engine/painters/dom/src/ruler/index.d.ts +41 -0
  412. package/dist/layout-engine/painters/dom/src/ruler/ruler-core.d.ts +195 -0
  413. package/dist/layout-engine/painters/dom/src/ruler/ruler-renderer.d.ts +97 -0
  414. package/dist/layout-engine/painters/dom/src/ruler/ruler-styles.d.ts +31 -0
  415. package/dist/layout-engine/painters/dom/src/runs/field-annotation-run.d.ts +14 -0
  416. package/dist/layout-engine/painters/dom/src/runs/font-synthesis.d.ts +1 -0
  417. package/dist/layout-engine/painters/dom/src/runs/formatting-marks.d.ts +3 -0
  418. package/dist/layout-engine/painters/dom/src/runs/hash.d.ts +82 -0
  419. package/dist/layout-engine/painters/dom/src/runs/image-run.d.ts +37 -0
  420. package/dist/layout-engine/painters/dom/src/runs/index.d.ts +13 -0
  421. package/dist/layout-engine/painters/dom/src/runs/links.d.ts +58 -0
  422. package/dist/layout-engine/painters/dom/src/runs/math-run.d.ts +7 -0
  423. package/dist/layout-engine/painters/dom/src/runs/render-line.d.ts +2 -0
  424. package/dist/layout-engine/painters/dom/src/runs/render-run.d.ts +12 -0
  425. package/dist/layout-engine/painters/dom/src/runs/tab-run.d.ts +66 -0
  426. package/dist/layout-engine/painters/dom/src/runs/text-run.d.ts +35 -0
  427. package/dist/layout-engine/painters/dom/src/runs/tracked-changes.d.ts +90 -0
  428. package/dist/layout-engine/painters/dom/src/runs/types.d.ts +67 -0
  429. package/dist/layout-engine/painters/dom/src/sdt/boundaries.d.ts +16 -0
  430. package/dist/layout-engine/painters/dom/src/sdt/container.d.ts +32 -0
  431. package/dist/layout-engine/painters/dom/src/sdt/dataset.d.ts +7 -0
  432. package/dist/layout-engine/painters/dom/src/sdt/inline.d.ts +9 -0
  433. package/dist/layout-engine/painters/dom/src/sdt/snapshot.d.ts +29 -0
  434. package/dist/layout-engine/painters/dom/src/styles.d.ts +71 -0
  435. package/dist/layout-engine/painters/dom/src/svg-utils.d.ts +101 -0
  436. package/dist/layout-engine/painters/dom/src/table/border-utils.d.ts +185 -0
  437. package/dist/layout-engine/painters/dom/src/table/grid-geometry.d.ts +69 -0
  438. package/dist/layout-engine/painters/dom/src/table/renderTableCell.d.ts +170 -0
  439. package/dist/layout-engine/painters/dom/src/table/renderTableFragment.d.ts +132 -0
  440. package/dist/layout-engine/painters/dom/src/table/renderTableRow.d.ts +146 -0
  441. package/dist/layout-engine/painters/dom/src/test-utils/normalize-line.d.ts +39 -0
  442. package/dist/layout-engine/painters/dom/src/utils/anchor-helpers.d.ts +3 -0
  443. package/dist/layout-engine/painters/dom/src/utils/apply-styles.d.ts +1 -0
  444. package/dist/layout-engine/painters/dom/src/utils/layout-identity.d.ts +9 -0
  445. package/dist/layout-engine/painters/dom/src/utils/source-anchor.d.ts +2 -0
  446. package/dist/layout-engine/style-engine/src/bench/resolveSdtMetadata.bench.d.ts +1 -0
  447. package/dist/layout-engine/style-engine/src/cascade.d.ts +43 -0
  448. package/dist/layout-engine/style-engine/src/index.d.ts +121 -0
  449. package/dist/layout-engine/style-engine/src/normalize/colors.d.ts +13 -0
  450. package/dist/layout-engine/style-engine/src/normalize/index.d.ts +13 -0
  451. package/dist/layout-engine/style-engine/src/normalize/paragraph-attrs.d.ts +3 -0
  452. package/dist/layout-engine/style-engine/src/normalize/run-attrs.d.ts +17 -0
  453. package/dist/layout-engine/style-engine/src/normalize/types.d.ts +36 -0
  454. package/dist/layout-engine/style-engine/src/normalize/units.d.ts +13 -0
  455. package/dist/layout-engine/style-engine/src/ooxml/index.d.ts +64 -0
  456. package/dist/layout-engine/style-engine/src/ooxml/numbering-types.d.ts +126 -0
  457. package/dist/layout-engine/style-engine/src/ooxml/styles-types.d.ts +363 -0
  458. package/dist/layout-engine/style-engine/src/ooxml/table-style-selection.d.ts +86 -0
  459. package/dist/layout-engine/style-engine/src/ooxml/types.d.ts +459 -0
  460. package/dist/layout-engine/style-engine/src/ooxml/word-style-model/parse-theme.d.ts +33 -0
  461. package/dist/layout-engine/style-engine/src/ooxml/word-style-model/parse-xml.d.ts +29 -0
  462. package/dist/public/ui-react.cjs +175 -0
  463. package/dist/public/ui-react.es.js +159 -0
  464. package/dist/public/ui.cjs +5 -0
  465. package/dist/public/ui.es.js +2 -0
  466. package/dist/shared/common/comments-types.d.ts +102 -0
  467. package/dist/shared/common/layout-constants.d.ts +7 -0
  468. package/dist/shared/common/list-marker-utils.d.ts +186 -0
  469. package/dist/shared/common/list-numbering/index.d.ts +16 -0
  470. package/dist/shared/font-system/src/activation.d.ts +64 -0
  471. package/dist/shared/font-system/src/bundled-manifest.d.ts +32 -0
  472. package/dist/shared/font-system/src/bundled.d.ts +41 -0
  473. package/dist/shared/font-system/src/document-font-options.d.ts +53 -0
  474. package/dist/shared/font-system/src/epoch.d.ts +6 -0
  475. package/dist/shared/font-system/src/font-offerings.d.ts +120 -0
  476. package/dist/shared/font-system/src/index.d.ts +35 -0
  477. package/dist/shared/font-system/src/os2.d.ts +30 -0
  478. package/dist/shared/font-system/src/registry.d.ts +188 -0
  479. package/dist/shared/font-system/src/report.d.ts +98 -0
  480. package/dist/shared/font-system/src/resolver.d.ts +215 -0
  481. package/dist/shared/font-system/src/substitution-evidence.d.ts +103 -0
  482. package/dist/shared/font-system/src/types.d.ts +128 -0
  483. package/dist/style.css +3316 -0
  484. package/dist/style.layered.css +3316 -0
  485. package/dist/superdoc/src/SuperDoc.vue.d.ts +88 -0
  486. package/dist/superdoc/src/cdn-entry.d.ts +2 -0
  487. package/dist/superdoc/src/components/CommentsLayer/CommentDialog.vue.d.ts +62 -0
  488. package/dist/superdoc/src/components/CommentsLayer/CommentHeader.vue.d.ts +26 -0
  489. package/dist/superdoc/src/components/CommentsLayer/CommentInput.vue.d.ts +19 -0
  490. package/dist/superdoc/src/components/CommentsLayer/CommentsDropdown.vue.d.ts +30 -0
  491. package/dist/superdoc/src/components/CommentsLayer/InternalDropdown.vue.d.ts +10 -0
  492. package/dist/superdoc/src/components/CommentsLayer/collect-removed-comment-ids.d.ts +1 -0
  493. package/dist/superdoc/src/components/CommentsLayer/collect-tracked-change-thread.d.ts +6 -0
  494. package/dist/superdoc/src/components/CommentsLayer/comment-schemas.d.ts +18 -0
  495. package/dist/superdoc/src/components/CommentsLayer/commentsList/commentsList.vue.d.ts +9 -0
  496. package/dist/superdoc/src/components/CommentsLayer/commentsList/super-comments-list.d.ts +21 -0
  497. package/dist/superdoc/src/components/CommentsLayer/floating-comment-positioning.d.ts +28 -0
  498. package/dist/superdoc/src/components/CommentsLayer/helpers.d.ts +7 -0
  499. package/dist/superdoc/src/components/CommentsLayer/tracked-change-threading.d.ts +2 -0
  500. package/dist/superdoc/src/components/CommentsLayer/types.d.ts +3 -0
  501. package/dist/superdoc/src/components/CommentsLayer/use-comment.d.ts +8 -0
  502. package/dist/superdoc/src/components/CommentsLayer/use-conversation.d.ts +22 -0
  503. package/dist/superdoc/src/components/CommentsLayer/use-floating-comment.d.ts +11 -0
  504. package/dist/superdoc/src/components/HtmlViewer/HtmlViewer.vue.d.ts +10 -0
  505. package/dist/superdoc/src/components/PdfViewer/PdfViewer.vue.d.ts +61 -0
  506. package/dist/superdoc/src/components/PdfViewer/PdfViewerDocument.vue.d.ts +21 -0
  507. package/dist/superdoc/src/components/PdfViewer/PdfViewerPage.vue.d.ts +24 -0
  508. package/dist/superdoc/src/components/Whiteboard/WhiteboardLayer.vue.d.ts +19 -0
  509. package/dist/superdoc/src/components/Whiteboard/WhiteboardPage.vue.d.ts +17 -0
  510. package/dist/superdoc/src/components/Whiteboard/use-whiteboard.d.ts +18 -0
  511. package/dist/superdoc/src/components/surfaces/FindReplaceSurface.vue.d.ts +19 -0
  512. package/dist/superdoc/src/components/surfaces/PasswordPromptSurface.vue.d.ts +17 -0
  513. package/dist/superdoc/src/components/surfaces/SurfaceDialog.vue.d.ts +12 -0
  514. package/dist/superdoc/src/components/surfaces/SurfaceExternalMount.vue.d.ts +19 -0
  515. package/dist/superdoc/src/components/surfaces/SurfaceFloating.vue.d.ts +10 -0
  516. package/dist/superdoc/src/components/surfaces/SurfaceHost.vue.d.ts +31 -0
  517. package/dist/superdoc/src/components/surfaces/focusable-selector.d.ts +5 -0
  518. package/dist/superdoc/src/composables/find-shortcut-owner.d.ts +32 -0
  519. package/dist/superdoc/src/composables/replace-continuation.d.ts +37 -0
  520. package/dist/superdoc/src/composables/use-ai.d.ts +10 -0
  521. package/dist/superdoc/src/composables/use-comment-small-screen.d.ts +10 -0
  522. package/dist/superdoc/src/composables/use-compact-comment-popover.d.ts +21 -0
  523. package/dist/superdoc/src/composables/use-document.d.ts +34 -0
  524. package/dist/superdoc/src/composables/use-field.d.ts +33 -0
  525. package/dist/superdoc/src/composables/use-find-replace.d.ts +83 -0
  526. package/dist/superdoc/src/composables/use-high-contrast-mode.d.ts +4 -0
  527. package/dist/superdoc/src/composables/use-link-popover.d.ts +221 -0
  528. package/dist/superdoc/src/composables/use-password-prompt.d.ts +33 -0
  529. package/dist/superdoc/src/composables/use-selected-text.d.ts +16 -0
  530. package/dist/superdoc/src/composables/use-viewport-fit.d.ts +50 -0
  531. package/dist/superdoc/src/composables/useUiFontFamily.d.ts +24 -0
  532. package/dist/superdoc/src/core/EventEmitter.d.ts +55 -0
  533. package/dist/superdoc/src/core/SuperDoc.d.ts +775 -0
  534. package/dist/superdoc/src/core/collaboration/collaboration-comments.d.ts +4 -0
  535. package/dist/superdoc/src/core/collaboration/collaboration.d.ts +28 -0
  536. package/dist/superdoc/src/core/collaboration/helpers.d.ts +8 -0
  537. package/dist/superdoc/src/core/collaboration/permissions.d.ts +19 -0
  538. package/dist/superdoc/src/core/collaboration/resolve-v2-collaboration-target.d.ts +99 -0
  539. package/dist/superdoc/src/core/collaboration/room-overwrite.d.ts +22 -0
  540. package/dist/superdoc/src/core/collaboration/v2-awareness-bridge.d.ts +57 -0
  541. package/dist/superdoc/src/core/config/merge-defined.d.ts +35 -0
  542. package/dist/superdoc/src/core/config/normalize-interaction-config.d.ts +15 -0
  543. package/dist/superdoc/src/core/config/normalize-surfaces-config.d.ts +23 -0
  544. package/dist/superdoc/src/core/config/normalize-ui-config.d.ts +62 -0
  545. package/dist/superdoc/src/core/create-app.d.ts +32 -0
  546. package/dist/superdoc/src/core/editor-runtime/conformance/fake-v2-runtime.d.ts +9 -0
  547. package/dist/superdoc/src/core/editor-runtime/editor-runtime-registry.d.ts +117 -0
  548. package/dist/superdoc/src/core/editor-runtime/index.d.ts +1 -0
  549. package/dist/superdoc/src/core/editor-runtime/root-marker.d.ts +33 -0
  550. package/dist/superdoc/src/core/editor-runtime/types.d.ts +405 -0
  551. package/dist/superdoc/src/core/editor-runtime/v2/v2-editor-runtime-adapter.d.ts +185 -0
  552. package/dist/superdoc/src/core/editor-runtime/v2/v2-session-shortcut-routes.d.ts +47 -0
  553. package/dist/superdoc/src/core/extensions/define.d.ts +56 -0
  554. package/dist/superdoc/src/core/extensions/index.d.ts +2 -0
  555. package/dist/superdoc/src/core/extensions/types.d.ts +519 -0
  556. package/dist/superdoc/src/core/helpers/export.d.ts +2 -0
  557. package/dist/superdoc/src/core/helpers/file.d.ts +43 -0
  558. package/dist/superdoc/src/core/helpers/normalize-track-changes-config.d.ts +60 -0
  559. package/dist/superdoc/src/core/helpers/normalize-user.d.ts +13 -0
  560. package/dist/superdoc/src/core/index.d.ts +1 -0
  561. package/dist/superdoc/src/core/pdf/helpers/constants.d.ts +2 -0
  562. package/dist/superdoc/src/core/pdf/helpers/floor.d.ts +1 -0
  563. package/dist/superdoc/src/core/pdf/helpers/range.d.ts +1 -0
  564. package/dist/superdoc/src/core/pdf/helpers/read-file.d.ts +1 -0
  565. package/dist/superdoc/src/core/pdf/pdf-adapter.d.ts +66 -0
  566. package/dist/superdoc/src/core/surface-manager.d.ts +90 -0
  567. package/dist/superdoc/src/core/theme/create-theme.d.ts +82 -0
  568. package/dist/superdoc/src/core/types/index.d.ts +3006 -0
  569. package/dist/superdoc/src/core/v2-integration/browser-peer-runtime.d.ts +3 -0
  570. package/dist/superdoc/src/core/v2-integration/cdn-engine-loader.d.ts +16 -0
  571. package/dist/superdoc/src/core/v2-integration/v2-integration.d.ts +97 -0
  572. package/dist/superdoc/src/core/whiteboard/Whiteboard.d.ts +247 -0
  573. package/dist/superdoc/src/core/whiteboard/WhiteboardPage.d.ts +251 -0
  574. package/dist/superdoc/src/core/whiteboard/WhiteboardRenderer.d.ts +2 -0
  575. package/dist/superdoc/src/core/whiteboard/helpers/createTextarea.d.ts +1 -0
  576. package/dist/superdoc/src/core/whiteboard/helpers/flattenPoints.d.ts +1 -0
  577. package/dist/superdoc/src/core/whiteboard/helpers/getRandomId.d.ts +1 -0
  578. package/dist/superdoc/src/helpers/collect-touched-tracked-change-ids.d.ts +11 -0
  579. package/dist/superdoc/src/helpers/comment-focus.d.ts +4 -0
  580. package/dist/superdoc/src/helpers/comment-small-screen.d.ts +14 -0
  581. package/dist/superdoc/src/helpers/deprecation.d.ts +26 -0
  582. package/dist/superdoc/src/helpers/floor.d.ts +1 -0
  583. package/dist/superdoc/src/helpers/group-changes.d.ts +1 -0
  584. package/dist/superdoc/src/helpers/interaction-trace.d.ts +26 -0
  585. package/dist/superdoc/src/helpers/selection-source.d.ts +1 -0
  586. package/dist/superdoc/src/helpers/transaction-touches-structural-change.d.ts +19 -0
  587. package/dist/superdoc/src/helpers/use-selection.d.ts +17 -0
  588. package/dist/superdoc/src/helpers/v2-author-required-rejection.d.ts +22 -0
  589. package/dist/superdoc/src/helpers/v2-remote-review-hydration.d.ts +12 -0
  590. package/dist/superdoc/src/helpers/v2-review-mutation-impact.d.ts +15 -0
  591. package/dist/superdoc/src/helpers/v2-review-mutation-reconciler.d.ts +19 -0
  592. package/dist/superdoc/src/helpers/v2-review-target.d.ts +7 -0
  593. package/dist/superdoc/src/helpers/v2-selection-sync.d.ts +12 -0
  594. package/dist/superdoc/src/helpers/v2-typing-mutation-event.d.ts +5 -0
  595. package/dist/superdoc/src/icons.d.ts +11 -0
  596. package/dist/superdoc/src/index.d.cts +13 -0
  597. package/dist/superdoc/src/index.d.ts +11 -0
  598. package/dist/superdoc/src/internal/toolbar/built-in/AIWriter.vue.d.ts +21 -0
  599. package/dist/superdoc/src/internal/toolbar/built-in/AlignmentButtons.vue.d.ts +6 -0
  600. package/dist/superdoc/src/internal/toolbar/built-in/ButtonGroup.vue.d.ts +10 -0
  601. package/dist/superdoc/src/internal/toolbar/built-in/DocumentMode.vue.d.ts +10 -0
  602. package/dist/superdoc/src/internal/toolbar/built-in/FontFamilyCombobox.vue.d.ts +10 -0
  603. package/dist/superdoc/src/internal/toolbar/built-in/FontSizeCombobox.vue.d.ts +10 -0
  604. package/dist/superdoc/src/internal/toolbar/built-in/IconGrid.vue.d.ts +14 -0
  605. package/dist/superdoc/src/internal/toolbar/built-in/IconGridRow.vue.d.ts +13 -0
  606. package/dist/superdoc/src/internal/toolbar/built-in/LinkInput.vue.d.ts +37 -0
  607. package/dist/superdoc/src/internal/toolbar/built-in/LinkedStyle.vue.d.ts +12 -0
  608. package/dist/superdoc/src/internal/toolbar/built-in/OverflowMenu.vue.d.ts +10 -0
  609. package/dist/superdoc/src/internal/toolbar/built-in/SdTooltip.vue.d.ts +34 -0
  610. package/dist/superdoc/src/internal/toolbar/built-in/StyleButtonsList.vue.d.ts +14 -0
  611. package/dist/superdoc/src/internal/toolbar/built-in/TableActions.vue.d.ts +8 -0
  612. package/dist/superdoc/src/internal/toolbar/built-in/TableGrid.vue.d.ts +6 -0
  613. package/dist/superdoc/src/internal/toolbar/built-in/Toolbar.vue.d.ts +4 -0
  614. package/dist/superdoc/src/internal/toolbar/built-in/ToolbarButton.vue.d.ts +24 -0
  615. package/dist/superdoc/src/internal/toolbar/built-in/ToolbarButtonIcon.vue.d.ts +11 -0
  616. package/dist/superdoc/src/internal/toolbar/built-in/ToolbarComboBox.vue.d.ts +18 -0
  617. package/dist/superdoc/src/internal/toolbar/built-in/ToolbarDropdown.vue.d.ts +38 -0
  618. package/dist/superdoc/src/internal/toolbar/built-in/ToolbarSeparator.vue.d.ts +8 -0
  619. package/dist/superdoc/src/internal/toolbar/built-in/color-dropdown-helpers.d.ts +24 -0
  620. package/dist/superdoc/src/internal/toolbar/built-in/constants.d.ts +102 -0
  621. package/dist/superdoc/src/internal/toolbar/built-in/default-items.d.ts +17 -0
  622. package/dist/superdoc/src/internal/toolbar/built-in/font-options.d.ts +1 -0
  623. package/dist/superdoc/src/internal/toolbar/built-in/font-typeahead.d.ts +11 -0
  624. package/dist/superdoc/src/internal/toolbar/built-in/format-negation.d.ts +5 -0
  625. package/dist/superdoc/src/internal/toolbar/built-in/general.d.ts +1 -0
  626. package/dist/superdoc/src/internal/toolbar/built-in/helpers.d.ts +5 -0
  627. package/dist/superdoc/src/internal/toolbar/built-in/list-style-buttons.d.ts +10 -0
  628. package/dist/superdoc/src/internal/toolbar/built-in/scroll-helpers.d.ts +4 -0
  629. package/dist/superdoc/src/internal/toolbar/built-in/toolbar-focus-helpers.d.ts +1 -0
  630. package/dist/superdoc/src/internal/toolbar/built-in/toolbarIcons.d.ts +76 -0
  631. package/dist/superdoc/src/internal/toolbar/built-in/toolbarTexts.d.ts +58 -0
  632. package/dist/superdoc/src/internal/toolbar/built-in/url-safety.d.ts +8 -0
  633. package/dist/superdoc/src/internal/toolbar/built-in/use-toolbar-item.d.ts +48 -0
  634. package/dist/superdoc/src/internal/toolbar/built-in-toolbar.d.ts +237 -0
  635. package/dist/superdoc/src/internal/toolbar/compatibility-catalog.d.ts +59 -0
  636. package/dist/superdoc/src/internal/toolbar/image-upload.d.ts +63 -0
  637. package/dist/superdoc/src/internal/toolbar/index.d.ts +10 -0
  638. package/dist/superdoc/src/main.d.ts +1 -0
  639. package/dist/superdoc/src/public/browser-document-api.d.ts +53 -0
  640. package/dist/superdoc/src/public/collaboration-upgrade-engine.d.cts +26 -0
  641. package/dist/superdoc/src/public/collaboration-upgrade-engine.d.ts +130 -0
  642. package/dist/superdoc/src/public/index.d.cts +359 -0
  643. package/dist/superdoc/src/public/index.d.ts +179 -0
  644. package/dist/superdoc/src/public/ui/commands.d.ts +249 -0
  645. package/dist/superdoc/src/public/ui/create-super-doc-ui.d.ts +18 -0
  646. package/dist/superdoc/src/public/ui/entity-at.d.ts +29 -0
  647. package/dist/superdoc/src/public/ui/equality.d.ts +10 -0
  648. package/dist/superdoc/src/public/ui/format-painter-helpers.d.ts +36 -0
  649. package/dist/superdoc/src/public/ui/react.d.ts +81 -0
  650. package/dist/superdoc/src/public/ui/reasons.d.ts +99 -0
  651. package/dist/superdoc/src/public/ui/types.d.ts +1425 -0
  652. package/dist/superdoc/src/public/ui-react.d.cts +20 -0
  653. package/dist/superdoc/src/public/ui-react.d.ts +20 -0
  654. package/dist/superdoc/src/public/ui.d.cts +194 -0
  655. package/dist/superdoc/src/public/ui.d.ts +29 -0
  656. package/dist/superdoc/src/stores/comments-store.d.ts +676 -0
  657. package/dist/superdoc/src/stores/helpers/floating-comment-instances.d.ts +14 -0
  658. package/dist/superdoc/src/stores/helpers/tracked-change-thread-index.d.ts +14 -0
  659. package/dist/superdoc/src/stores/hrbr-fields-store.d.ts +43 -0
  660. package/dist/superdoc/src/stores/superdoc-store.d.ts +2182 -0
  661. package/dist/superdoc.cjs +36521 -0
  662. package/dist/superdoc.es.js +36449 -0
  663. package/dist/word-layout/src/index.d.ts +64 -0
  664. package/dist/word-layout/src/list-marker.d.ts +68 -0
  665. package/dist/word-layout/src/marker-utils.d.ts +20 -0
  666. package/dist/word-layout/src/numbering-manager.d.ts +85 -0
  667. package/dist/word-layout/src/tab-layout.d.ts +193 -0
  668. package/dist/word-layout/src/types.d.ts +106 -0
  669. package/dist/word-layout/src/unit-conversions.d.ts +120 -0
  670. package/dist-cdn/style.layered.css +2 -0
  671. package/dist-cdn/superdoc.min.css +2 -0
  672. package/dist-cdn/superdoc.min.js +108 -0
  673. package/package.json +137 -24
  674. package/.npmignore +0 -4
  675. package/data.json +0 -17
  676. package/index.js +0 -2
  677. package/lib/Augmenter.js +0 -27
  678. package/lib/Runner.js +0 -80
  679. package/lib/Stopper.js +0 -71
  680. package/test/superdoc.js +0 -126
  681. package/utils/app.js +0 -18
  682. package/utils/server.js +0 -2
  683. package/web/index.js +0 -54
  684. package/web/public/style.css +0 -76
  685. package/web/views/index.ejs +0 -53
  686. package/web/views/layout.ejs +0 -13
  687. package/web/views/method.ejs +0 -59
@@ -0,0 +1,6 @@
1
+ /** The current epoch. Reuse signatures include this so they bust on a font change. */
2
+ export declare function getFontConfigVersion(): number;
3
+ /** Advance the epoch (call after a font loads or the configuration changes). */
4
+ export declare function bumpFontConfigVersion(): number;
5
+ /** Reset the epoch. Test-only; not part of the public surface. */
6
+ export declare function __resetFontConfigVersion(): void;
@@ -0,0 +1,120 @@
1
+ /**
2
+ * Font OFFERINGS: the product layer between the substitution evidence and the UI. It answers a
3
+ * different question than the resolver does. The resolver answers "given a logical font a document
4
+ * already uses, what do we render?". An offering answers "should SuperDoc advertise this logical font
5
+ * as a choice, and on which surface?".
6
+ *
7
+ * Three consumers are intended:
8
+ * 1. CLEAN defaults - reliable, bundled, metric-safe fonts SuperDoc can render deterministically.
9
+ * Built from {@link getDefaultFontOfferings}.
10
+ * 2. BUILT-IN toolbar options - bundled choices SuperDoc can render, plus qualified/category rows
11
+ * the product has explicitly chosen to advertise. Built from {@link getBuiltInToolbarFontOfferings}.
12
+ * 3. DOCUMENT-specific options - whatever a given document actually uses. Those are
13
+ * document-scoped and runtime-aware; this static module only provides the default offerings.
14
+ *
15
+ * Derived from `SUBSTITUTION_EVIDENCE` x `BUNDLED_MANIFEST`. Adding/retiring a font is an evidence
16
+ * edit, never a hand-maintained toolbar list.
17
+ */
18
+ import { type BundledActivation, type BundledFontSelection, type FontAssetConfigLike } from './activation.js';
19
+ import { type CssGeneric, type SubstituteVerdict } from './substitution-evidence.js';
20
+ /** CSS generic family used to terminate an offering's fallback stack. */
21
+ export type FontGeneric = CssGeneric;
22
+ /** Which UI surface a logical font may appear on. A product decision, distinct from the verdict. */
23
+ export type OfferingClass = 'default' | 'qualified' | 'category_fallback' | 'supported_alias' | 'requires_asset' | 'customer_supplied' | 'preserve_only';
24
+ export interface FontOffering {
25
+ /** Word-facing logical family: the toolbar label and the value stored/exported (e.g. "Calibri"). */
26
+ logicalFamily: string;
27
+ /** Physical render family (e.g. "Carlito"); null when nothing renders it (customer_supplied). */
28
+ physicalFamily: string | null;
29
+ generic: FontGeneric;
30
+ /** Product classification: which UI surface this font may appear on (distinct from the verdict). */
31
+ offering: OfferingClass;
32
+ /**
33
+ * Static fact: `physicalFamily` ships in the bundled pack. This is NOT runtime renderability - a
34
+ * document's `fonts.add` faces or embedded fonts are unknown to this static module and belong to a
35
+ * later document-scoped offering function.
36
+ */
37
+ bundled: boolean;
38
+ /** docfonts fidelity verdict, used to separate clean defaults from qualified/category fallbacks. */
39
+ verdict: SubstituteVerdict;
40
+ /** Provenance back to the evidence row. */
41
+ evidenceId: string;
42
+ }
43
+ /** Every logical font SuperDoc has evidence for, classified by offering surface. */
44
+ export declare const FONT_OFFERINGS: readonly FontOffering[];
45
+ /**
46
+ * The metric-safe, bundled-backed offerings safe to treat as clean defaults, sorted by logical
47
+ * family. Excludes redundant aliases even when they are renderable; those still resolve for
48
+ * documents through the resolver.
49
+ * Excludes qualified rows (Arial Black, Arial Narrow, Cambria, Century, Century Gothic,
50
+ * Century Schoolbook, Cooper Black, Georgia, Baskerville Old Face, Bookman Old Style, ITC Bookman),
51
+ * category fallbacks (Calibri Light, Tahoma, Trebuchet MS, Garamond, Comic Sans MS, Brush Script MT,
52
+ * Gill Sans MT Condensed, Lucida Console, Consolas, Verdana, Segoe UI), supported aliases
53
+ * (Arial MT, Courier, Times), and not-yet-bundled candidates.
54
+ */
55
+ export declare function getDefaultFontOfferings(): FontOffering[];
56
+ /**
57
+ * Built-in font picker options for a document, gated on its bundled-font {@link BundledActivation}:
58
+ *
59
+ * - pack NOT configured (the default): the conservative {@link BUILT_IN_TOOLBAR_BASELINE_FAMILIES}
60
+ * baseline - only fonts that render acceptably with no pack served. SuperDoc does not advertise
61
+ * bundled fonts it would have to fetch from an unconfigured location.
62
+ * - pack configured: the clean defaults plus the advertised qualified / category fallbacks, minus
63
+ * any the consumer curated out (`createSuperDocFonts({ include / exclude })`).
64
+ *
65
+ * Documents still RESOLVE the full reviewed substitute table through the resolver when their pack is
66
+ * active; this governs only what the picker ADVERTISES. Consumers that need strict metric-safe
67
+ * choices should use {@link getDefaultFontOfferings}.
68
+ */
69
+ export declare function getBuiltInToolbarFontOfferings(activation?: BundledActivation): FontOffering[];
70
+ /** The logical CSS stack stored/applied when an offering is chosen, e.g. "Calibri, sans-serif". */
71
+ export declare function fontOfferingStack(offering: FontOffering): string;
72
+ /**
73
+ * The physical render CSS stack, for an accurate dropdown preview - the row renders in the bundled
74
+ * clone that actually paints (e.g. "Carlito, sans-serif"), not the proprietary logical name the
75
+ * browser lacks. Falls back to the logical stack when there is no physical family.
76
+ */
77
+ export declare function fontOfferingRenderStack(offering: FontOffering): string;
78
+ /**
79
+ * Default toolbar font options in the generic `{ label, value }` shape: label is the Word-facing
80
+ * logical name (stored/exported), value is the logical CSS stack applied to the selection. The
81
+ * built-in (Vue) toolbar builds its own richer `FontConfig` from
82
+ * {@link getBuiltInToolbarFontOfferings}.
83
+ */
84
+ export declare function getDefaultFontFamilyOptions(activation?: BundledActivation): readonly {
85
+ label: string;
86
+ value: string;
87
+ }[];
88
+ /**
89
+ * The Word family names a document can curate (`include` / `exclude`): every logical family the
90
+ * resolver substitutes to a bundled face, including category fallbacks like Verdana. The single
91
+ * source of truth for the curation surface - {@link warnUnknownBundledSelection} validates against it
92
+ * and `@superdoc/fonts` generates its committed list from it. Distinct from the asset manifest's
93
+ * `replaces`, which omits category fallbacks (the reason curation keys on offerings, not `replaces`).
94
+ */
95
+ export declare function getBundledFamilyNames(): string[];
96
+ /**
97
+ * Warn (once per name) at config time when a `fonts.bundled` curation entry is not a bundled family,
98
+ * so curating it silently does nothing - and when both `include` and `exclude` are set. The safety
99
+ * net for `fonts.bundled` set DIRECTLY: `createSuperDocFonts` already rejects unknown names and
100
+ * structural errors in the consumer's setup code, but a hand-written `fonts.bundled` bypasses it. Warn
101
+ * (not throw) here because this runs at editor init, where a font-name typo must not crash the editor.
102
+ */
103
+ export declare function warnUnknownBundledSelection(selection: BundledFontSelection | undefined): void;
104
+ /**
105
+ * Drop curation names that are not bundled families (keyed against the same set
106
+ * {@link warnUnknownBundledSelection} validates), preserving the `include` / `exclude` KEYS so the
107
+ * "include wins" precedence survives. A raw `fonts.bundled.include` that is all typos thus sanitizes
108
+ * to an empty-but-present include, which {@link createBundledActivation} ignores back to the full pack
109
+ * rather than emptying the toolbar. Silent: warnings are emitted once by
110
+ * {@link warnUnknownBundledSelection}; this only cleans.
111
+ */
112
+ export declare function sanitizeBundledSelection(selection: BundledFontSelection | undefined): BundledFontSelection | undefined;
113
+ /**
114
+ * Derive a document's {@link BundledActivation} from its `fonts` config, first sanitizing raw
115
+ * `fonts.bundled` against the known family set ({@link sanitizeBundledSelection}). Runtime documents
116
+ * that may carry hand-written `fonts.bundled` should use this instead of the lower-level
117
+ * {@link deriveBundledActivation}: it guarantees an all-unknown `include` cannot empty the
118
+ * toolbar/resolver. (createSuperDocFonts validates the same names in the consumer's setup code.)
119
+ */
120
+ export declare function deriveBundledActivationForConfig(config: FontAssetConfigLike | null | undefined): BundledActivation;
@@ -0,0 +1,35 @@
1
+ /**
2
+ * `@superdoc/font-system` - runtime font registry, load-state, and logical->physical
3
+ * resolution shared across the SuperDoc rendering pipeline.
4
+ *
5
+ * Consumed by measurement (`@superdoc/measuring-dom`), paint (`painters/dom`),
6
+ * and editor runtimes so all layers agree on which
7
+ * physical face is used and whether it is ready. Separate from
8
+ * `@superdoc/font-utils` (CSS fallback-string composition only).
9
+ *
10
+ * Surfaces: the load-state contract + `FontRegistry` (a registry per `FontFaceSet`);
11
+ * the resolver (`resolveFontFamily`/`resolvePhysicalFamily`, e.g. Calibri->Carlito);
12
+ * and a `fontConfigVersion` epoch that reuse signatures fold in so a font change busts
13
+ * stale measure/paint reuse. The bundled substitute pack ships from the `./bundled`
14
+ * subpath; the public DX surface (T7) builds on `FontRegistry.register`.
15
+ */
16
+ export type { FontLoadStatus, FontFaceSource, FontFaceDescriptor, RegisteredFace, RegisterFaceResult, FontLoadResult, FontLoadSummary, FontFaceRequest, FontFaceLoadResult, FontAssetUrlContext, FontAssetUrlResolver, RequiredFace, } from './types.js';
17
+ export { SETTLED_STATUSES, isSettled } from './types.js';
18
+ export type { FontResolution, FontResolutionReason, FaceKey, HasFace, FontMeasureContext, ResolvePhysicalFamily, } from './resolver.js';
19
+ export { FontResolver, createFontResolver } from './resolver.js';
20
+ export { resolveFontFamily, resolvePhysicalFamily, resolvePrimaryPhysicalFamily, resolvePhysicalFamilies, resolveFace, DEFAULT_FONT_MEASURE_CONTEXT, } from './resolver.js';
21
+ export { getFontConfigVersion, bumpFontConfigVersion, __resetFontConfigVersion } from './epoch.js';
22
+ export type { BundledFontSelection, BundledActivation, BundledActivationInput, FontAssetConfigLike, } from './activation.js';
23
+ export { createBundledActivation, deriveBundledActivation, FULLY_ACTIVE_BUNDLED, BASELINE_BUNDLED } from './activation.js';
24
+ export { setBundledFontAssetBase, getBundledFontAssetBase, DEFAULT_BUNDLED_FONT_BASE, markBundledPackPresent, isBundledPackPresent, __resetBundledPackPresent, } from './bundled.js';
25
+ export type { FontResolutionRecord, ResolvedFontEvidence, UsedFace } from './report.js';
26
+ export { buildFontReport, buildFaceReport } from './report.js';
27
+ export type { EmbeddingPolicy } from './os2.js';
28
+ export { parseEmbeddingPolicy } from './os2.js';
29
+ export type { FontSetLike, FontFaceLike, FontFaceCtor, FontRegistryOptions, OwnedFaceDescriptor } from './registry.js';
30
+ export { FontRegistry, getFontRegistryFor, getDefaultFontRegistry, DEFAULT_FONT_LOAD_TIMEOUT_MS, __resetDefaultFontRegistry, } from './registry.js';
31
+ export type { FontOffering, OfferingClass, FontGeneric } from './font-offerings.js';
32
+ export { FONT_OFFERINGS, getBuiltInToolbarFontOfferings, getDefaultFontOfferings, getDefaultFontFamilyOptions, fontOfferingStack, fontOfferingRenderStack, warnUnknownBundledSelection, getBundledFamilyNames, sanitizeBundledSelection, deriveBundledActivationForConfig, } from './font-offerings.js';
33
+ export type { DocumentFontOption, FontFamilyOption } from './document-font-options.js';
34
+ export { buildDocumentFontOptions, buildFontFamilyOptions } from './document-font-options.js';
35
+ export type { FaceSlot as FontFaceSlot, GlyphException, SubstitutePolicyAction, SubstituteVerdict, } from './substitution-evidence.js';
@@ -0,0 +1,30 @@
1
+ import type { FaceKey } from './resolver.js';
2
+ /**
3
+ * The embedding policy + face axis read from a font's OS/2 table.
4
+ *
5
+ * Used to decide whether a DOCX-embedded font may be REGISTERED for rendering (its license permits
6
+ * embedding) and which weight/style FACE it represents - so embedded fonts become first-class
7
+ * registry faces with the correct {@link FaceKey} instead of being inferred from filenames.
8
+ */
9
+ export interface EmbeddingPolicy {
10
+ /** Raw OS/2 `fsType` bit field (the licensing/embedding permissions). */
11
+ fsType: number;
12
+ /** The face this font provides, from OS/2 `usWeightClass` + the `fsSelection` italic bit. */
13
+ face: FaceKey;
14
+ /**
15
+ * The minimal RENDER gate: false only when fsType marks the font Restricted-License / no-embedding
16
+ * (bit 1). This is NOT a complete licensing model - Preview&Print vs Editable vs Installable, the
17
+ * No-Subsetting (0x0100) and Bitmap-only (0x0200) bits, and re-embedding for EXPORT/EDIT (vs
18
+ * display) all need their own policy decisions. The raw {@link fsType} is preserved so callers can
19
+ * apply a stricter policy without re-parsing.
20
+ */
21
+ embeddable: boolean;
22
+ }
23
+ /**
24
+ * Parse a font's OS/2 embedding policy + face from its raw bytes (a deobfuscated DOCX-embedded TTF/OTF).
25
+ *
26
+ * Returns `null` when the bytes are not a parseable SFNT or have no readable OS/2 table - callers MUST
27
+ * treat a null result conservatively (do NOT register; fall through to the bundled substitute), since
28
+ * we cannot prove the font is licensed for embedding.
29
+ */
30
+ export declare function parseEmbeddingPolicy(bytes: ArrayBuffer | ArrayBufferView): EmbeddingPolicy | null;
@@ -0,0 +1,188 @@
1
+ import type { FontFaceDescriptor, FontFaceLoadResult, FontFaceRequest, FontLoadResult, FontLoadStatus, RegisteredFace, RegisterFaceResult, RequiredFace } from './types.js';
2
+ /**
3
+ * Default per-font budget the gate waits before treating a face as `timed_out`
4
+ * and proceeding with a fallback. Generous enough for a cold cache on a slow
5
+ * connection, short enough that a missing font never blocks first paint forever.
6
+ */
7
+ export declare const DEFAULT_FONT_LOAD_TIMEOUT_MS = 3000;
8
+ /**
9
+ * Structural slice of the CSS Font Loading API (`FontFaceSet`) the registry
10
+ * depends on. Declared as an interface (not the DOM type) so the registry is
11
+ * unit-testable with a fake and degrades cleanly where there is no DOM.
12
+ */
13
+ export interface FontSetLike {
14
+ add(face: FontFaceLike): void;
15
+ /** Remove a managed face (DOM `FontFaceSet.delete`). Optional: some sets (domless/tests) omit it. */
16
+ delete?(face: FontFaceLike): boolean;
17
+ load(font: string, text?: string): Promise<FontFaceLike[]>;
18
+ check(font: string, text?: string): boolean;
19
+ }
20
+ /** Structural slice of a `FontFace`. */
21
+ export interface FontFaceLike {
22
+ readonly family: string;
23
+ load(): Promise<FontFaceLike>;
24
+ readonly status?: string;
25
+ }
26
+ /** Structural slice of the global `FontFace` constructor. */
27
+ export type FontFaceCtor = new (family: string, source: string | ArrayBuffer | ArrayBufferView, descriptors?: FontFaceDescriptors) => FontFaceLike;
28
+ /**
29
+ * A document-owned font face registered from raw bytes (a deobfuscated DOCX-embedded font), the input
30
+ * to {@link FontRegistry.registerOwnedFace}. Carries the bytes plus the OS/2-derived face axis so the
31
+ * face registers under the document's family name with the correct weight/style and flows through the
32
+ * resolver's `registered_face` rung. `weight`/`style` are already canonical (no normalization needed).
33
+ */
34
+ export interface OwnedFaceDescriptor {
35
+ family: string;
36
+ source: ArrayBuffer | ArrayBufferView;
37
+ weight: '400' | '700';
38
+ style: 'normal' | 'italic';
39
+ }
40
+ export interface FontRegistryOptions {
41
+ /** The font set to drive. Defaults to the ambient `document.fonts`. */
42
+ fontSet?: FontSetLike | null;
43
+ /** Constructor for new managed faces. Defaults to the global `FontFace`. */
44
+ FontFaceCtor?: FontFaceCtor | null;
45
+ /** Font size used in probe strings. Only affects the `font` shorthand syntax. */
46
+ probeSize?: string;
47
+ /** Timer hooks, injectable for deterministic tests. Default to the globals. */
48
+ scheduleTimeout?: (cb: () => void, ms: number) => unknown;
49
+ cancelTimeout?: (handle: unknown) => void;
50
+ }
51
+ /**
52
+ * Runtime registry of font faces and their load state.
53
+ *
54
+ * Two jobs:
55
+ * 1. **Register** managed faces (bundled substitutes, customer BYO fonts) so the
56
+ * browser knows how to load them. Registration is lazy - it adds the face to
57
+ * the set but does not download until something awaits it.
58
+ * 2. **Await** the specific faces a layout pass needs, with a per-font timeout,
59
+ * reporting `loaded | failed | timed_out | fallback_used`. This is the
60
+ * contract the load-before-measure gate consumes; it works for *any* family
61
+ * in the set, whether the registry created the face (managed) or it was
62
+ * injected elsewhere (embedded `@font-face`, a system font).
63
+ *
64
+ * The registry intentionally does not subscribe to font-loading events or touch
65
+ * measurement caches - those belong to the gate, which owns the editor lifecycle.
66
+ */
67
+ export declare class FontRegistry {
68
+ #private;
69
+ constructor(options?: FontRegistryOptions);
70
+ /**
71
+ * Register a managed face. Adds it to the font set so the browser can load it
72
+ * on demand, but does not download yet. Safe to call where there is no DOM /
73
+ * constructor: the family is recorded as `unloaded` and will resolve to
74
+ * `fallback_used` when awaited.
75
+ */
76
+ register(descriptor: FontFaceDescriptor): RegisterFaceResult;
77
+ /** True if this registry created a managed face for the family. */
78
+ isManaged(family: string): boolean;
79
+ /**
80
+ * Register a DOCUMENT-OWNED face from raw bytes (a deobfuscated DOCX-embedded font) and return a
81
+ * disposer that releases EXACTLY this face. Unlike {@link register} - the shared registrar for
82
+ * bundled and `fonts.add` faces, idempotent by URL source - every call here creates a distinct
83
+ * managed face, because the registry is shared per FontFaceSet across editors and two documents can
84
+ * embed the same family|weight|style with different (subset) bytes. Calling the returned disposer
85
+ * (on a document swap or editor teardown) removes only this face; the key's `hasFace` stays true
86
+ * while any other owner's face remains, so one document's cleanup never drops another document's or
87
+ * a customer's face. The face participates in `hasFace`/await like any managed face while it lives.
88
+ *
89
+ * Returns null where there is no DOM `FontFace` constructor / font set: embedded bytes cannot render
90
+ * without one, so the resolver correctly falls through to the bundled substitute. The disposer is
91
+ * idempotent (a second call returns false).
92
+ */
93
+ registerOwnedFace(descriptor: OwnedFaceDescriptor): (() => boolean) | null;
94
+ /**
95
+ * Last known status for a family, rolled up from its faces (and any legacy family-path
96
+ * load). Used by declared-font diagnostics (`buildFontReport`).
97
+ *
98
+ * A FAILED/TIMED_OUT/FALLBACK_USED face surfaces OVER a loaded sibling: if a document
99
+ * uses Arial regular (Liberation Sans loads) and Arial bold (its face 404s), the family
100
+ * reports the failure (`missing: true`), not a misleadingly-clean `loaded`. This is sound
101
+ * because the gate only awaits USED faces - an unused face stays `unloaded` (lowest
102
+ * priority), so a declared-but-unused family stays `unloaded` (not settled => not missing)
103
+ * and a used-but-failed face is never masked. Per-face detail is in `getFaceStatus` and
104
+ * the load summary's per-face counts.
105
+ */
106
+ getStatus(family: string): FontLoadStatus;
107
+ /**
108
+ * Is a face (family + weight + style) provided by a REGISTERED face that has not terminally failed
109
+ * to load? The face-availability oracle the face-aware resolver consults to answer "does the
110
+ * physical family actually provide this face?" - so a single-face substitute is never mapped onto a
111
+ * weight/style it lacks (which the painter would faux-synthesize). Covers bundled faces (registered
112
+ * by `installBundledSubstitutes`) and customer `fonts.add()` faces alike, because both register
113
+ * through {@link register}.
114
+ *
115
+ * Two deliberate exclusions:
116
+ * - A merely-AWAITED face is not a provider. The oracle reads {@link #providerFaceKeys} (registration
117
+ * only), NOT `#facesByFamily` (which the await path also populates for the status rollup), so an
118
+ * `as_requested` family the gate once awaited does not masquerade as a registered face on the next
119
+ * resolve.
120
+ * - A face whose asset terminally FAILED to load is dropped, so the ladder steps down to the bundled
121
+ * clone instead of committing forever to a broken registered face. `timed_out` is NOT excluded -
122
+ * the late-load reflow still recovers a slow face, and demoting it would strand the real font.
123
+ *
124
+ * Distinct from {@link isAvailable}, which asks whether a face is LOADED right now.
125
+ */
126
+ hasFace(family: string, weight: '400' | '700', style: 'normal' | 'italic'): boolean;
127
+ /**
128
+ * Synchronous availability check: is a real face for this family loaded and
129
+ * usable in the set *right now*? Used by the gate's late-load handler to detect
130
+ * a face that finished after the first measure. Returns false where there is no
131
+ * font set.
132
+ */
133
+ isAvailable(family: string): boolean;
134
+ /**
135
+ * Await one family with a per-font timeout. Concurrent calls for the same
136
+ * family share the in-flight probe. A family already known to be `loaded`
137
+ * resolves immediately.
138
+ */
139
+ awaitFace(family: string, timeoutMs?: number): Promise<FontLoadResult>;
140
+ /**
141
+ * Await many families. The result preserves input order after de-duplication.
142
+ * This is the gate's primary entry point before a measurement pass.
143
+ */
144
+ awaitFaces(families: Iterable<string>, options?: {
145
+ timeoutMs?: number;
146
+ }): Promise<FontLoadResult[]>;
147
+ /**
148
+ * Required families as `{ family, status, ready }` handles. Reading `status` is
149
+ * synchronous; `ready` settles when the load resolves. Calling this starts the
150
+ * loads (idempotently).
151
+ */
152
+ getRequiredFaces(families: Iterable<string>, timeoutMs?: number): RequiredFace[];
153
+ /** Snapshot of every family the registry has seen and its status (diagnostics). */
154
+ getStates(): RegisteredFace[];
155
+ /** Last known status for a specific face (`unloaded` if never seen). */
156
+ getFaceStatus(request: FontFaceRequest): FontLoadStatus;
157
+ /**
158
+ * Await one specific face (family + weight + style) with a per-font timeout. Uses a
159
+ * weight/style-specific probe (`italic 700 16px "Carlito"`), so unlike {@link awaitFace}
160
+ * it loads the EXACT face the run needs, not just the regular one. Concurrent awaits of
161
+ * the same face share one probe; an already-`loaded` face resolves immediately.
162
+ */
163
+ awaitFaceRequest(request: FontFaceRequest, timeoutMs?: number): Promise<FontFaceLoadResult>;
164
+ /** Await many faces; result preserves input order after de-duplication by face key. */
165
+ awaitFaceRequests(requests: Iterable<FontFaceRequest>, options?: {
166
+ timeoutMs?: number;
167
+ }): Promise<FontFaceLoadResult[]>;
168
+ }
169
+ /**
170
+ * The single registry bound to a given font set. There is exactly one registry
171
+ * per `FontFaceSet`, so a document's load gate, its bundled faces, and the public
172
+ * `superdoc.fonts.*` surface all share load state.
173
+ *
174
+ * Callers MUST pass the same font set they watch for load events. A consumer that
175
+ * awaits one set but listens to another would never observe its fonts arriving -
176
+ * the exact failure mode for an editor inside an iframe whose `document.fonts`
177
+ * differs from the top window's. Pass `null` (no DOM) to get a shared DOM-less
178
+ * registry whose every await resolves to `fallback_used`.
179
+ */
180
+ export declare function getFontRegistryFor(fontSet: FontSetLike | null, FontFaceCtor: FontFaceCtor | null): FontRegistry;
181
+ /**
182
+ * The registry for the ambient `document.fonts`. Convenience for the common
183
+ * single-document case; iframe/embedded callers should use {@link getFontRegistryFor}
184
+ * with their own document's font set so the registry and the watched set match.
185
+ */
186
+ export declare function getDefaultFontRegistry(): FontRegistry;
187
+ /** Reset the cached DOM-less registry. Test-only; not part of the public surface. */
188
+ export declare function __resetDefaultFontRegistry(): void;
@@ -0,0 +1,98 @@
1
+ import { type FaceKey, type FontResolutionReason, type FontResolver } from './resolver.js';
2
+ import type { FontRegistry } from './registry.js';
3
+ import type { GlyphException, SubstituteVerdict, SubstitutePolicyAction } from './substitution-evidence.js';
4
+ import { type FontLoadStatus } from './types.js';
5
+ /**
6
+ * docfonts fidelity evidence for a row where SuperDoc rendered the recommended substitute. Local types
7
+ * only (no `@docfonts/fallbacks` in the emitted `.d.ts`). `verdict` describes THIS row: the worst-face
8
+ * top-level verdict on family rows, the per-face verdict on face rows - so a consumer never reads
9
+ * `reason: 'bundled_substitute'` as a clean clone (Cambria -> Caladea is `visual_only` overall but
10
+ * `metric_safe` at Regular).
11
+ */
12
+ export interface ResolvedFontEvidence {
13
+ /** docfonts evidence id, e.g. "cambria". */
14
+ evidenceId: string;
15
+ /** renderer-neutral action behind the substitution. */
16
+ policyAction: SubstitutePolicyAction;
17
+ /** fidelity verdict for this row (per-face on face rows; worst-face top-level on family rows). */
18
+ verdict: SubstituteVerdict;
19
+ /** advances preserve line breaks: metric_safe, near_metric, or monospace cell_width_only. */
20
+ lineBreakSafe: boolean;
21
+ /** named glyph-level divergences qualifying this row's face(s); omitted when none apply. */
22
+ glyphExceptions?: readonly GlyphException[];
23
+ }
24
+ /**
25
+ * One row of the font report: what the document asked for, what SuperDoc actually
26
+ * renders, why, whether it was ready before measurement, and what export preserves.
27
+ *
28
+ * This is the observable answer to "what font did SuperDoc use, and is that faithful?"
29
+ * e.g. requested Calibri -> rendered Carlito (bundled_substitute), loaded before measure,
30
+ * export still Calibri.
31
+ */
32
+ export interface FontResolutionRecord {
33
+ /** The family the document requested (e.g. "Calibri"). */
34
+ logicalFamily: string;
35
+ /** The physical family actually measured and painted (e.g. "Carlito"). */
36
+ physicalFamily: string;
37
+ /** Why the physical family differs from the logical one. */
38
+ reason: FontResolutionReason;
39
+ /** Load state of the physical face at report time (`loaded` = ready before measurement). */
40
+ loadStatus: FontLoadStatus;
41
+ /** The family export writes back - always the logical name, so intent is preserved. */
42
+ exportFamily: string;
43
+ /**
44
+ * True when SuperDoc did NOT faithfully render the requested font with a metric-compatible face.
45
+ * Two ways this happens:
46
+ * - a non-metric substitute rendered but is not faithful, so it is missing EVEN WHEN `loaded`:
47
+ * `reason: 'category_fallback'` (wrong weight / reflows, e.g. Calibri Light -> Carlito), and on
48
+ * face-level rows `reason: 'fallback_face_absent'` (the substitute lacks this weight/style).
49
+ * - the physical face settled to a state other than `loaded`: a font with no known substitute
50
+ * (`reason: 'as_requested'`, e.g. Aptos), or a substitute whose asset failed
51
+ * (`reason: 'bundled_substitute'`, `loadStatus: 'failed'`, e.g. a 404ing `assetBaseUrl`).
52
+ * Transient states (`unloaded` / `loading`) are NOT missing, so an early `getReport()` pull before
53
+ * the gate settles does not over-report. `reason` and `loadStatus` distinguish the cause.
54
+ */
55
+ missing: boolean;
56
+ /**
57
+ * The specific face (weight/style) this row describes, present only on FACE-level rows
58
+ * ({@link buildFaceReport}); undefined on family-level rows ({@link buildFontReport}). A
59
+ * face-level row with `reason: 'fallback_face_absent'` means a substitute exists for the family
60
+ * but not for THIS face, so this face renders unsubstituted (non-metric) while other faces of the
61
+ * same family may substitute. Optional + additive, so existing consumers are unaffected.
62
+ */
63
+ face?: {
64
+ weight: '400' | '700';
65
+ style: 'normal' | 'italic';
66
+ };
67
+ /**
68
+ * docfonts fidelity evidence, present ONLY when SuperDoc rendered the recommended substitute
69
+ * (`reason` `bundled_substitute` or `category_fallback`). Lets a consumer distinguish a clean clone
70
+ * (Calibri -> Carlito, `metric_safe`) from a qualified one (Cambria -> Caladea, `visual_only`)
71
+ * instead of treating every `bundled_substitute` alike. Optional + additive. See {@link ResolvedFontEvidence}.
72
+ */
73
+ evidence?: ResolvedFontEvidence;
74
+ }
75
+ /**
76
+ * Build the per-font resolution report for a document's logical fonts. Pure given the
77
+ * resolver map and the registry's current load state, so it reflects exactly what was
78
+ * resolved and loaded for the last measurement pass.
79
+ *
80
+ * This is the diagnostics seam: the public `superdoc.fonts.getReport()` (T7) and the
81
+ * upgraded `onFontsResolved` payload are thin wrappers over this - they must not compute
82
+ * resolution independently, or the report could disagree with what actually painted.
83
+ */
84
+ export declare function buildFontReport(logicalFamilies: Iterable<string>, registry: FontRegistry, resolver?: FontResolver): FontResolutionRecord[];
85
+ /** One used (logical family + face) the document actually renders, for the face-level report. */
86
+ export interface UsedFace extends FaceKey {
87
+ logicalFamily: string;
88
+ }
89
+ /**
90
+ * Face-level resolution report: one row per (logical family, face) the document RENDERS, resolved
91
+ * FACE-aware so a substitute that lacks a face is reported `fallback_face_absent` unless docfonts
92
+ * explicitly names a synthetic source face. The caller passes the used faces (the runtime builds them
93
+ * from the load planner, which carries logical family + weight/style); `registry.hasFace` is the
94
+ * face-availability oracle. Unlike {@link buildFontReport} (one row per declared family), this
95
+ * explains per-face fidelity, e.g. "Baskerville Regular -> Bacasime (custom_mapping); Baskerville Bold
96
+ * -> fallback_face_absent". Deduped by logical family + weight + style.
97
+ */
98
+ export declare function buildFaceReport(usedFaces: Iterable<UsedFace>, registry: FontRegistry, resolver?: FontResolver): FontResolutionRecord[];