@stll/folio-core 0.0.1-placeholder.0 → 0.1.1

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 (683) hide show
  1. package/LICENSE +202 -0
  2. package/NOTICE.md +29 -0
  3. package/README.md +41 -0
  4. package/dist/_virtual/_rolldown/runtime.js +13 -0
  5. package/dist/ai-edits/apply.d.ts +35 -0
  6. package/dist/ai-edits/apply.js +683 -0
  7. package/dist/ai-edits/clean-text.d.ts +28 -0
  8. package/dist/ai-edits/clean-text.js +23 -0
  9. package/dist/ai-edits/headless.d.ts +225 -0
  10. package/dist/ai-edits/headless.js +513 -0
  11. package/dist/ai-edits/index.d.ts +6 -0
  12. package/dist/ai-edits/index.js +5 -0
  13. package/dist/ai-edits/inline-emphasis.d.ts +38 -0
  14. package/dist/ai-edits/inline-emphasis.js +78 -0
  15. package/dist/ai-edits/snapshot.d.ts +9 -0
  16. package/dist/ai-edits/snapshot.js +195 -0
  17. package/dist/ai-edits/types.d.ts +156 -0
  18. package/dist/ai-edits/types.js +0 -0
  19. package/dist/ai-edits/word-diff.d.ts +20 -0
  20. package/dist/ai-edits/word-diff.js +77 -0
  21. package/dist/ai-suggestions/apply.d.ts +17 -0
  22. package/dist/ai-suggestions/apply.js +64 -0
  23. package/dist/ai-suggestions/conflict.d.ts +22 -0
  24. package/dist/ai-suggestions/conflict.js +67 -0
  25. package/dist/ai-suggestions/text-positions.d.ts +21 -0
  26. package/dist/ai-suggestions/text-positions.js +48 -0
  27. package/dist/ai-suggestions/types.d.ts +199 -0
  28. package/dist/ai-suggestions/types.js +59 -0
  29. package/dist/content-controls/errors.d.ts +52 -0
  30. package/dist/content-controls/errors.js +36 -0
  31. package/dist/content-controls/findContentControls.d.ts +55 -0
  32. package/dist/content-controls/findContentControls.js +75 -0
  33. package/dist/content-controls/index.d.ts +4 -0
  34. package/dist/content-controls/index.js +4 -0
  35. package/dist/content-controls/mutateContentControls.d.ts +51 -0
  36. package/dist/content-controls/mutateContentControls.js +377 -0
  37. package/dist/controller/folioEditor.d.ts +21 -0
  38. package/dist/controller/folioEditor.js +29 -0
  39. package/dist/controller/folioEditorEvents.d.ts +23 -0
  40. package/dist/controller/folioEditorEvents.js +24 -0
  41. package/dist/controller/hiddenEditorApi.d.ts +35 -0
  42. package/dist/controller/hiddenEditorApi.js +112 -0
  43. package/dist/controller/hiddenEditorManager.d.ts +93 -0
  44. package/dist/controller/hiddenEditorManager.js +308 -0
  45. package/dist/controller/layoutPipeline.d.ts +63 -0
  46. package/dist/controller/layoutPipeline.js +406 -0
  47. package/dist/controller/layoutScheduler.d.ts +41 -0
  48. package/dist/controller/layoutScheduler.js +59 -0
  49. package/dist/controller/layoutSession.d.ts +24 -0
  50. package/dist/controller/layoutSession.js +13 -0
  51. package/dist/docx/blockContentParser.d.ts +13 -0
  52. package/dist/docx/blockContentParser.js +289 -0
  53. package/dist/docx/bookmarkParser.d.ts +178 -0
  54. package/dist/docx/bookmarkParser.js +246 -0
  55. package/dist/docx/bookmarkPlacement.d.ts +10 -0
  56. package/dist/docx/bookmarkPlacement.js +50 -0
  57. package/dist/docx/bulletMarkers.d.ts +4 -0
  58. package/dist/docx/bulletMarkers.js +42 -0
  59. package/dist/docx/commentParser.d.ts +34 -0
  60. package/dist/docx/commentParser.js +127 -0
  61. package/dist/docx/commentReferenceNormalization.d.ts +25 -0
  62. package/dist/docx/commentReferenceNormalization.js +97 -0
  63. package/dist/docx/commentReplyMarkers.d.ts +20 -0
  64. package/dist/docx/commentReplyMarkers.js +123 -0
  65. package/dist/docx/compatibility.d.ts +12 -0
  66. package/dist/docx/compatibility.js +77 -0
  67. package/dist/docx/documentParser.d.ts +65 -0
  68. package/dist/docx/documentParser.js +209 -0
  69. package/dist/docx/drawingUtils.d.ts +56 -0
  70. package/dist/docx/drawingUtils.js +305 -0
  71. package/dist/docx/fieldParser.d.ts +228 -0
  72. package/dist/docx/fieldParser.js +559 -0
  73. package/dist/docx/footnoteParser.d.ts +109 -0
  74. package/dist/docx/footnoteParser.js +270 -0
  75. package/dist/docx/headerFooterParser.d.ts +119 -0
  76. package/dist/docx/headerFooterParser.js +266 -0
  77. package/dist/docx/headerFooterRefParser.d.ts +22 -0
  78. package/dist/docx/headerFooterRefParser.js +52 -0
  79. package/dist/docx/headerFooterReferenceNormalization.d.ts +19 -0
  80. package/dist/docx/headerFooterReferenceNormalization.js +64 -0
  81. package/dist/docx/hyperlinkParser.d.ts +108 -0
  82. package/dist/docx/hyperlinkParser.js +230 -0
  83. package/dist/docx/imageParser.d.ts +93 -0
  84. package/dist/docx/imageParser.js +522 -0
  85. package/dist/docx/mathToMathml.d.ts +15 -0
  86. package/dist/docx/mathToMathml.js +357 -0
  87. package/dist/docx/modelValidation.d.ts +13 -0
  88. package/dist/docx/modelValidation.js +21 -0
  89. package/dist/docx/normalizeBaseDirection.d.ts +12 -0
  90. package/dist/docx/normalizeBaseDirection.js +81 -0
  91. package/dist/docx/notePropertiesParser.d.ts +16 -0
  92. package/dist/docx/notePropertiesParser.js +99 -0
  93. package/dist/docx/numberingParser.d.ts +86 -0
  94. package/dist/docx/numberingParser.js +735 -0
  95. package/dist/docx/numberingReferenceNormalization.d.ts +25 -0
  96. package/dist/docx/numberingReferenceNormalization.js +22 -0
  97. package/dist/docx/paragraphParser.d.ts +86 -0
  98. package/dist/docx/paragraphParser.js +1132 -0
  99. package/dist/docx/paragraphTraversal.d.ts +19 -0
  100. package/dist/docx/paragraphTraversal.js +76 -0
  101. package/dist/docx/parser.d.ts +67 -0
  102. package/dist/docx/parser.js +391 -0
  103. package/dist/docx/parserEnums.d.ts +45 -0
  104. package/dist/docx/parserEnums.js +70 -0
  105. package/dist/docx/relsParser.d.ts +160 -0
  106. package/dist/docx/relsParser.js +235 -0
  107. package/dist/docx/replyToComment.d.ts +29 -0
  108. package/dist/docx/replyToComment.js +73 -0
  109. package/dist/docx/rezip.d.ts +166 -0
  110. package/dist/docx/rezip.js +1194 -0
  111. package/dist/docx/runConsolidator.d.ts +57 -0
  112. package/dist/docx/runConsolidator.js +224 -0
  113. package/dist/docx/runParser.d.ts +78 -0
  114. package/dist/docx/runParser.js +661 -0
  115. package/dist/docx/sdtProperties.d.ts +15 -0
  116. package/dist/docx/sdtProperties.js +290 -0
  117. package/dist/docx/sdtPropertiesPatch.d.ts +16 -0
  118. package/dist/docx/sdtPropertiesPatch.js +144 -0
  119. package/dist/docx/sectionParser.d.ts +95 -0
  120. package/dist/docx/sectionParser.js +534 -0
  121. package/dist/docx/selectiveSave.d.ts +25 -0
  122. package/dist/docx/selectiveSave.js +247 -0
  123. package/dist/docx/selectiveSaveFlags.d.ts +33 -0
  124. package/dist/docx/selectiveSaveFlags.js +11 -0
  125. package/dist/docx/selectiveSaveTripwire.d.ts +33 -0
  126. package/dist/docx/selectiveSaveTripwire.js +79 -0
  127. package/dist/docx/selectiveXmlPatch.d.ts +103 -0
  128. package/dist/docx/selectiveXmlPatch.js +493 -0
  129. package/dist/docx/serializer/blockSdtSerializer.d.ts +6 -0
  130. package/dist/docx/serializer/blockSdtSerializer.js +88 -0
  131. package/dist/docx/serializer/borderSerializer.d.ts +25 -0
  132. package/dist/docx/serializer/borderSerializer.js +44 -0
  133. package/dist/docx/serializer/commentSerializer.d.ts +31 -0
  134. package/dist/docx/serializer/commentSerializer.js +184 -0
  135. package/dist/docx/serializer/documentSerializer.d.ts +65 -0
  136. package/dist/docx/serializer/documentSerializer.js +199 -0
  137. package/dist/docx/serializer/headerFooterSerializer.d.ts +12 -0
  138. package/dist/docx/serializer/headerFooterSerializer.js +84 -0
  139. package/dist/docx/serializer/noteSerializer.d.ts +19 -0
  140. package/dist/docx/serializer/noteSerializer.js +70 -0
  141. package/dist/docx/serializer/numberingSerializer.d.ts +12 -0
  142. package/dist/docx/serializer/numberingSerializer.js +93 -0
  143. package/dist/docx/serializer/paragraphSerializer.d.ts +48 -0
  144. package/dist/docx/serializer/paragraphSerializer.js +559 -0
  145. package/dist/docx/serializer/runSerializer.d.ts +56 -0
  146. package/dist/docx/serializer/runSerializer.js +621 -0
  147. package/dist/docx/serializer/sectionPropertiesSerializer.d.ts +6 -0
  148. package/dist/docx/serializer/sectionPropertiesSerializer.js +187 -0
  149. package/dist/docx/serializer/tableSerializer.d.ts +79 -0
  150. package/dist/docx/serializer/tableSerializer.js +422 -0
  151. package/dist/docx/serializer/xmlUtils.d.ts +20 -0
  152. package/dist/docx/serializer/xmlUtils.js +25 -0
  153. package/dist/docx/settingsParser.d.ts +8 -0
  154. package/dist/docx/settingsParser.js +36 -0
  155. package/dist/docx/shapeParser.d.ts +20 -0
  156. package/dist/docx/shapeParser.js +272 -0
  157. package/dist/docx/styleParser.d.ts +50 -0
  158. package/dist/docx/styleParser.js +905 -0
  159. package/dist/docx/tableParser.d.ts +202 -0
  160. package/dist/docx/tableParser.js +811 -0
  161. package/dist/docx/textBoxParser.d.ts +117 -0
  162. package/dist/docx/textBoxParser.js +262 -0
  163. package/dist/docx/themeParser.d.ts +77 -0
  164. package/dist/docx/themeParser.js +330 -0
  165. package/dist/docx/trackedMoveRangeNormalization.d.ts +22 -0
  166. package/dist/docx/trackedMoveRangeNormalization.js +100 -0
  167. package/dist/docx/unzip.d.ts +118 -0
  168. package/dist/docx/unzip.js +383 -0
  169. package/dist/docx/vmlImageParser.d.ts +16 -0
  170. package/dist/docx/vmlImageParser.js +100 -0
  171. package/dist/docx/watermarkParser.d.ts +45 -0
  172. package/dist/docx/watermarkParser.js +348 -0
  173. package/dist/docx/wrapTypes.d.ts +29 -0
  174. package/dist/docx/wrapTypes.js +48 -0
  175. package/dist/docx/xmlParser.d.ts +297 -0
  176. package/dist/docx/xmlParser.js +527 -0
  177. package/dist/fields/bookmarkPages.d.ts +13 -0
  178. package/dist/fields/bookmarkPages.js +66 -0
  179. package/dist/fields/bookmarkText.d.ts +16 -0
  180. package/dist/fields/bookmarkText.js +61 -0
  181. package/dist/fields/evaluateField.d.ts +23 -0
  182. package/dist/fields/evaluateField.js +77 -0
  183. package/dist/fields/fieldContext.d.ts +21 -0
  184. package/dist/fields/fieldContext.js +0 -0
  185. package/dist/fields/resolveFieldValues.d.ts +44 -0
  186. package/dist/fields/resolveFieldValues.js +204 -0
  187. package/dist/fields/sectionPageCounts.d.ts +11 -0
  188. package/dist/fields/sectionPageCounts.js +16 -0
  189. package/dist/fields/seqValues.d.ts +14 -0
  190. package/dist/fields/seqValues.js +36 -0
  191. package/dist/fonts/embeddedFontTable.d.ts +42 -0
  192. package/dist/fonts/embeddedFontTable.js +80 -0
  193. package/dist/fonts/embeddedFonts.d.ts +46 -0
  194. package/dist/fonts/embeddedFonts.js +112 -0
  195. package/dist/fonts/fontDeobfuscation.d.ts +30 -0
  196. package/dist/fonts/fontDeobfuscation.js +57 -0
  197. package/dist/index.d.ts +28 -0
  198. package/dist/index.js +23 -0
  199. package/dist/layout-bridge/convert/footnoteLayout.d.ts +57 -0
  200. package/dist/layout-bridge/convert/footnoteLayout.js +316 -0
  201. package/dist/layout-bridge/convert/headerFooterLayout.d.ts +74 -0
  202. package/dist/layout-bridge/convert/headerFooterLayout.js +432 -0
  203. package/dist/layout-bridge/convert/templatePreviewFlow.d.ts +36 -0
  204. package/dist/layout-bridge/convert/templatePreviewFlow.js +176 -0
  205. package/dist/layout-bridge/convert/toFlowBlocks.d.ts +65 -0
  206. package/dist/layout-bridge/convert/toFlowBlocks.js +1309 -0
  207. package/dist/layout-bridge/convert/wrapEditorViewAsSurface.d.ts +17 -0
  208. package/dist/layout-bridge/convert/wrapEditorViewAsSurface.js +36 -0
  209. package/dist/layout-bridge/dom/clickToPositionDom.d.ts +66 -0
  210. package/dist/layout-bridge/dom/clickToPositionDom.js +304 -0
  211. package/dist/layout-bridge/dom/findBodyPmSpans.d.ts +7 -0
  212. package/dist/layout-bridge/dom/findBodyPmSpans.js +17 -0
  213. package/dist/layout-bridge/dom/findHfPmSpans.d.ts +62 -0
  214. package/dist/layout-bridge/dom/findHfPmSpans.js +197 -0
  215. package/dist/layout-bridge/engine/clickToPosition.d.ts +66 -0
  216. package/dist/layout-bridge/engine/clickToPosition.js +403 -0
  217. package/dist/layout-bridge/engine/hitTest.d.ts +135 -0
  218. package/dist/layout-bridge/engine/hitTest.js +375 -0
  219. package/dist/layout-bridge/engine/measuring/index.d.ts +10 -0
  220. package/dist/layout-bridge/engine/measuring/index.js +9 -0
  221. package/dist/layout-bridge/engine/selectionRects.d.ts +59 -0
  222. package/dist/layout-bridge/engine/selectionRects.js +485 -0
  223. package/dist/layout-bridge/engine/tableWidthUtils.d.ts +7 -0
  224. package/dist/layout-bridge/engine/tableWidthUtils.js +25 -0
  225. package/dist/layout-engine/index.d.ts +44 -0
  226. package/dist/layout-engine/index.js +691 -0
  227. package/dist/layout-engine/keep-together.d.ts +43 -0
  228. package/dist/layout-engine/keep-together.js +98 -0
  229. package/dist/layout-engine/layoutInstrumentation.d.ts +50 -0
  230. package/dist/layout-engine/layoutInstrumentation.js +43 -0
  231. package/dist/layout-engine/lineFlow.d.ts +8 -0
  232. package/dist/layout-engine/lineFlow.js +17 -0
  233. package/dist/layout-engine/measure/cache.d.ts +93 -0
  234. package/dist/layout-engine/measure/cache.js +245 -0
  235. package/dist/layout-engine/measure/clampFloatingWrapMargins.d.ts +20 -0
  236. package/dist/layout-engine/measure/clampFloatingWrapMargins.js +29 -0
  237. package/dist/layout-engine/measure/featureFlags.d.ts +44 -0
  238. package/dist/layout-engine/measure/featureFlags.js +19 -0
  239. package/dist/layout-engine/measure/floatingZones.d.ts +89 -0
  240. package/dist/layout-engine/measure/floatingZones.js +152 -0
  241. package/dist/layout-engine/measure/font-metrics.worker.d.ts +17 -0
  242. package/dist/layout-engine/measure/font-metrics.worker.js +104 -0
  243. package/dist/layout-engine/measure/index.d.ts +9 -0
  244. package/dist/layout-engine/measure/index.js +8 -0
  245. package/dist/layout-engine/measure/listMarkerWidth.d.ts +40 -0
  246. package/dist/layout-engine/measure/listMarkerWidth.js +76 -0
  247. package/dist/layout-engine/measure/measureBlocks.d.ts +25 -0
  248. package/dist/layout-engine/measure/measureBlocks.js +450 -0
  249. package/dist/layout-engine/measure/measureContainer.d.ts +24 -0
  250. package/dist/layout-engine/measure/measureContainer.js +280 -0
  251. package/dist/layout-engine/measure/measureHelpers.d.ts +82 -0
  252. package/dist/layout-engine/measure/measureHelpers.js +156 -0
  253. package/dist/layout-engine/measure/measureParagraph.d.ts +61 -0
  254. package/dist/layout-engine/measure/measureParagraph.js +724 -0
  255. package/dist/layout-engine/measure/measureProvider.d.ts +23 -0
  256. package/dist/layout-engine/measure/measureProvider.js +35 -0
  257. package/dist/layout-engine/measure/measureTypes.d.ts +61 -0
  258. package/dist/layout-engine/measure/measureTypes.js +0 -0
  259. package/dist/layout-engine/measure/measureWorker.d.ts +54 -0
  260. package/dist/layout-engine/measure/measureWorker.js +249 -0
  261. package/dist/layout-engine/measure/measureWorkerProtocol.d.ts +88 -0
  262. package/dist/layout-engine/measure/measureWorkerProtocol.js +20 -0
  263. package/dist/layout-engine/measure/tableCellFloating.d.ts +26 -0
  264. package/dist/layout-engine/measure/tableCellFloating.js +99 -0
  265. package/dist/layout-engine/paginator.d.ts +84 -0
  266. package/dist/layout-engine/paginator.js +348 -0
  267. package/dist/layout-engine/paragraphFragmentRange.d.ts +9 -0
  268. package/dist/layout-engine/paragraphFragmentRange.js +40 -0
  269. package/dist/layout-engine/section-breaks.d.ts +78 -0
  270. package/dist/layout-engine/section-breaks.js +182 -0
  271. package/dist/layout-engine/tableRowBreak.d.ts +23 -0
  272. package/dist/layout-engine/tableRowBreak.js +147 -0
  273. package/dist/layout-engine/textBoxFlow.d.ts +50 -0
  274. package/dist/layout-engine/textBoxFlow.js +160 -0
  275. package/dist/layout-engine/types.d.ts +1031 -0
  276. package/dist/layout-engine/types.js +100 -0
  277. package/dist/layout-painter/documentColors.d.ts +4 -0
  278. package/dist/layout-painter/documentColors.js +40 -0
  279. package/dist/layout-painter/index.d.ts +110 -0
  280. package/dist/layout-painter/index.js +182 -0
  281. package/dist/layout-painter/registry/modules/image.d.ts +6 -0
  282. package/dist/layout-painter/registry/modules/image.js +17 -0
  283. package/dist/layout-painter/registry/modules/paragraph.d.ts +6 -0
  284. package/dist/layout-painter/registry/modules/paragraph.js +18 -0
  285. package/dist/layout-painter/registry/modules/table.d.ts +6 -0
  286. package/dist/layout-painter/registry/modules/table.js +16 -0
  287. package/dist/layout-painter/registry/modules/textBox.d.ts +6 -0
  288. package/dist/layout-painter/registry/modules/textBox.js +13 -0
  289. package/dist/layout-painter/registry/modules.d.ts +6 -0
  290. package/dist/layout-painter/registry/modules.js +26 -0
  291. package/dist/layout-painter/registry/registry.d.ts +24 -0
  292. package/dist/layout-painter/registry/registry.js +53 -0
  293. package/dist/layout-painter/registry/types.d.ts +61 -0
  294. package/dist/layout-painter/registry/types.js +0 -0
  295. package/dist/layout-painter/renderFragment.d.ts +32 -0
  296. package/dist/layout-painter/renderFragment.js +114 -0
  297. package/dist/layout-painter/renderImage.d.ts +88 -0
  298. package/dist/layout-painter/renderImage.js +130 -0
  299. package/dist/layout-painter/renderPage.d.ts +264 -0
  300. package/dist/layout-painter/renderPage.js +1795 -0
  301. package/dist/layout-painter/renderParagraph.d.ts +93 -0
  302. package/dist/layout-painter/renderParagraph.js +1300 -0
  303. package/dist/layout-painter/renderTable.d.ts +36 -0
  304. package/dist/layout-painter/renderTable.js +432 -0
  305. package/dist/layout-painter/renderTextBox.d.ts +22 -0
  306. package/dist/layout-painter/renderTextBox.js +67 -0
  307. package/dist/layout-painter/renderUtils.d.ts +42 -0
  308. package/dist/layout-painter/renderUtils.js +30 -0
  309. package/dist/layout-painter/renderWatermark.d.ts +16 -0
  310. package/dist/layout-painter/renderWatermark.js +61 -0
  311. package/dist/layout-painter/sdtBoundary.d.ts +6 -0
  312. package/dist/layout-painter/sdtBoundary.js +28 -0
  313. package/dist/managers/ContextMenuManager.d.ts +28 -0
  314. package/dist/managers/ContextMenuManager.js +48 -0
  315. package/dist/managers/DocumentLoaderManager.d.ts +47 -0
  316. package/dist/managers/DocumentLoaderManager.js +69 -0
  317. package/dist/managers/EditorModeManager.d.ts +28 -0
  318. package/dist/managers/EditorModeManager.js +50 -0
  319. package/dist/managers/ErrorManager.d.ts +26 -0
  320. package/dist/managers/ErrorManager.js +85 -0
  321. package/dist/managers/FindReplaceManager.d.ts +54 -0
  322. package/dist/managers/FindReplaceManager.js +104 -0
  323. package/dist/managers/HistoryManager.d.ts +92 -0
  324. package/dist/managers/HistoryManager.js +193 -0
  325. package/dist/managers/Subscribable.d.ts +34 -0
  326. package/dist/managers/Subscribable.js +46 -0
  327. package/dist/managers/TableSelectionManager.d.ts +74 -0
  328. package/dist/managers/TableSelectionManager.js +225 -0
  329. package/dist/managers/editorShortcuts.d.ts +42 -0
  330. package/dist/managers/editorShortcuts.js +60 -0
  331. package/dist/managers/types.d.ts +41 -0
  332. package/dist/managers/types.js +0 -0
  333. package/dist/markdown/annotations.d.ts +14 -0
  334. package/dist/markdown/annotations.js +42 -0
  335. package/dist/markdown/escape.d.ts +36 -0
  336. package/dist/markdown/escape.js +59 -0
  337. package/dist/markdown/fromMarkdown.d.ts +11 -0
  338. package/dist/markdown/fromMarkdown.js +223 -0
  339. package/dist/markdown/headings.d.ts +13 -0
  340. package/dist/markdown/headings.js +20 -0
  341. package/dist/markdown/images.d.ts +13 -0
  342. package/dist/markdown/images.js +63 -0
  343. package/dist/markdown/index.d.ts +18 -0
  344. package/dist/markdown/index.js +33 -0
  345. package/dist/markdown/internals.d.ts +15 -0
  346. package/dist/markdown/internals.js +35 -0
  347. package/dist/markdown/renderBlock.d.ts +7 -0
  348. package/dist/markdown/renderBlock.js +68 -0
  349. package/dist/markdown/renderParagraph.d.ts +11 -0
  350. package/dist/markdown/renderParagraph.js +64 -0
  351. package/dist/markdown/renderRuns.d.ts +11 -0
  352. package/dist/markdown/renderRuns.js +265 -0
  353. package/dist/markdown/renderTable.d.ts +8 -0
  354. package/dist/markdown/renderTable.js +229 -0
  355. package/dist/markdown/trailers.d.ts +13 -0
  356. package/dist/markdown/trailers.js +54 -0
  357. package/dist/markdown/types.d.ts +118 -0
  358. package/dist/markdown/types.js +0 -0
  359. package/dist/model.d.ts +13 -0
  360. package/dist/model.js +4 -0
  361. package/dist/paged-layout/LayoutSelectionGate.d.ts +80 -0
  362. package/dist/paged-layout/LayoutSelectionGate.js +131 -0
  363. package/dist/paged-layout/headerFooterMargins.d.ts +73 -0
  364. package/dist/paged-layout/headerFooterMargins.js +120 -0
  365. package/dist/paged-layout/hiddenEditorScroll.d.ts +4 -0
  366. package/dist/paged-layout/hiddenEditorScroll.js +4 -0
  367. package/dist/paged-layout/incrementalMeasure.d.ts +33 -0
  368. package/dist/paged-layout/incrementalMeasure.js +56 -0
  369. package/dist/paged-layout/rangeProjection.d.ts +51 -0
  370. package/dist/paged-layout/rangeProjection.js +153 -0
  371. package/dist/paged-layout/readOnlyEditAttempt.d.ts +5 -0
  372. package/dist/paged-layout/readOnlyEditAttempt.js +22 -0
  373. package/dist/paged-layout/scrollNavigation.d.ts +23 -0
  374. package/dist/paged-layout/scrollNavigation.js +31 -0
  375. package/dist/paged-layout/scrollPageInfo.d.ts +41 -0
  376. package/dist/paged-layout/scrollPageInfo.js +34 -0
  377. package/dist/paged-layout/scrollToPmPosition.d.ts +17 -0
  378. package/dist/paged-layout/scrollToPmPosition.js +95 -0
  379. package/dist/paged-layout/sectionBlockWidths.d.ts +35 -0
  380. package/dist/paged-layout/sectionBlockWidths.js +52 -0
  381. package/dist/paged-layout/sectionGeometry.d.ts +21 -0
  382. package/dist/paged-layout/sectionGeometry.js +36 -0
  383. package/dist/paged-layout/selectionViewportRect.d.ts +29 -0
  384. package/dist/paged-layout/selectionViewportRect.js +55 -0
  385. package/dist/paged-layout/tableColumnResize.d.ts +19 -0
  386. package/dist/paged-layout/tableColumnResize.js +28 -0
  387. package/dist/paged-layout/tableInsertButtonGeometry.d.ts +15 -0
  388. package/dist/paged-layout/tableInsertButtonGeometry.js +15 -0
  389. package/dist/paged-layout/transactionDirtyRange.d.ts +7 -0
  390. package/dist/paged-layout/transactionDirtyRange.js +27 -0
  391. package/dist/paged-layout/zoomScrollAnchor.d.ts +40 -0
  392. package/dist/paged-layout/zoomScrollAnchor.js +25 -0
  393. package/dist/prosemirror/attrs/index.d.ts +80 -0
  394. package/dist/prosemirror/attrs/index.js +1218 -0
  395. package/dist/prosemirror/autospacingBase.d.ts +11 -0
  396. package/dist/prosemirror/autospacingBase.js +16 -0
  397. package/dist/prosemirror/commands/comments.d.ts +93 -0
  398. package/dist/prosemirror/commands/comments.js +435 -0
  399. package/dist/prosemirror/commands/contentControls.d.ts +45 -0
  400. package/dist/prosemirror/commands/contentControls.js +294 -0
  401. package/dist/prosemirror/commands/contentControlsBlockFill.d.ts +15 -0
  402. package/dist/prosemirror/commands/contentControlsBlockFill.js +19 -0
  403. package/dist/prosemirror/commands/formatPainter.d.ts +31 -0
  404. package/dist/prosemirror/commands/formatPainter.js +130 -0
  405. package/dist/prosemirror/commands/formatting.d.ts +32 -0
  406. package/dist/prosemirror/commands/formatting.js +45 -0
  407. package/dist/prosemirror/commands/hyperlink.d.ts +31 -0
  408. package/dist/prosemirror/commands/hyperlink.js +79 -0
  409. package/dist/prosemirror/commands/image.d.ts +59 -0
  410. package/dist/prosemirror/commands/image.js +219 -0
  411. package/dist/prosemirror/commands/index.d.ts +13 -0
  412. package/dist/prosemirror/commands/index.js +13 -0
  413. package/dist/prosemirror/commands/pageBreak.d.ts +10 -0
  414. package/dist/prosemirror/commands/pageBreak.js +47 -0
  415. package/dist/prosemirror/commands/paragraph.d.ts +39 -0
  416. package/dist/prosemirror/commands/paragraph.js +64 -0
  417. package/dist/prosemirror/commands/pastePlainText.d.ts +39 -0
  418. package/dist/prosemirror/commands/pastePlainText.js +67 -0
  419. package/dist/prosemirror/commands/table.d.ts +83 -0
  420. package/dist/prosemirror/commands/table.js +105 -0
  421. package/dist/prosemirror/conversion/fromProseDoc.d.ts +27 -0
  422. package/dist/prosemirror/conversion/fromProseDoc.js +1550 -0
  423. package/dist/prosemirror/conversion/index.d.ts +4 -0
  424. package/dist/prosemirror/conversion/index.js +4 -0
  425. package/dist/prosemirror/conversion/runShadingMark.d.ts +16 -0
  426. package/dist/prosemirror/conversion/runShadingMark.js +39 -0
  427. package/dist/prosemirror/conversion/toProseDoc.d.ts +39 -0
  428. package/dist/prosemirror/conversion/toProseDoc.js +1404 -0
  429. package/dist/prosemirror/extensions/ExtensionManager.d.ts +43 -0
  430. package/dist/prosemirror/extensions/ExtensionManager.js +86 -0
  431. package/dist/prosemirror/extensions/StarterKit.d.ts +16 -0
  432. package/dist/prosemirror/extensions/StarterKit.js +132 -0
  433. package/dist/prosemirror/extensions/core/DocExtension.d.ts +9 -0
  434. package/dist/prosemirror/extensions/core/DocExtension.js +12 -0
  435. package/dist/prosemirror/extensions/core/HistoryExtension.d.ts +13 -0
  436. package/dist/prosemirror/extensions/core/HistoryExtension.js +28 -0
  437. package/dist/prosemirror/extensions/core/ParagraphExtension.d.ts +25 -0
  438. package/dist/prosemirror/extensions/core/ParagraphExtension.js +619 -0
  439. package/dist/prosemirror/extensions/core/TextExtension.d.ts +9 -0
  440. package/dist/prosemirror/extensions/core/TextExtension.js +12 -0
  441. package/dist/prosemirror/extensions/create.d.ts +17 -0
  442. package/dist/prosemirror/extensions/create.js +129 -0
  443. package/dist/prosemirror/extensions/features/AutoBidiDetectionExtension.d.ts +23 -0
  444. package/dist/prosemirror/extensions/features/AutoBidiDetectionExtension.js +106 -0
  445. package/dist/prosemirror/extensions/features/BaseKeymapExtension.d.ts +8 -0
  446. package/dist/prosemirror/extensions/features/BaseKeymapExtension.js +172 -0
  447. package/dist/prosemirror/extensions/features/BidiShortcutExtension.d.ts +16 -0
  448. package/dist/prosemirror/extensions/features/BidiShortcutExtension.js +38 -0
  449. package/dist/prosemirror/extensions/features/ContentControlWidgetsExtension.d.ts +16 -0
  450. package/dist/prosemirror/extensions/features/ContentControlWidgetsExtension.js +21 -0
  451. package/dist/prosemirror/extensions/features/DropCursorExtension.d.ts +12 -0
  452. package/dist/prosemirror/extensions/features/DropCursorExtension.js +20 -0
  453. package/dist/prosemirror/extensions/features/EmptyParagraphFormatExtension.d.ts +8 -0
  454. package/dist/prosemirror/extensions/features/EmptyParagraphFormatExtension.js +44 -0
  455. package/dist/prosemirror/extensions/features/GapCursorExtension.d.ts +19 -0
  456. package/dist/prosemirror/extensions/features/GapCursorExtension.js +24 -0
  457. package/dist/prosemirror/extensions/features/ImageDragExtension.d.ts +15 -0
  458. package/dist/prosemirror/extensions/features/ImageDragExtension.js +66 -0
  459. package/dist/prosemirror/extensions/features/ImagePasteExtension.d.ts +12 -0
  460. package/dist/prosemirror/extensions/features/ImagePasteExtension.js +91 -0
  461. package/dist/prosemirror/extensions/features/ListExtension.d.ts +14 -0
  462. package/dist/prosemirror/extensions/features/ListExtension.js +340 -0
  463. package/dist/prosemirror/extensions/features/ParaIdAllocatorExtension.d.ts +9 -0
  464. package/dist/prosemirror/extensions/features/ParaIdAllocatorExtension.js +60 -0
  465. package/dist/prosemirror/extensions/features/ParagraphChangeTrackerExtension.d.ts +35 -0
  466. package/dist/prosemirror/extensions/features/ParagraphChangeTrackerExtension.js +188 -0
  467. package/dist/prosemirror/extensions/features/PasteCleanupExtension.d.ts +20 -0
  468. package/dist/prosemirror/extensions/features/PasteCleanupExtension.js +34 -0
  469. package/dist/prosemirror/extensions/features/PasteStyleInlinerExtension.d.ts +20 -0
  470. package/dist/prosemirror/extensions/features/PasteStyleInlinerExtension.js +145 -0
  471. package/dist/prosemirror/extensions/features/SelectionTrackerExtension.d.ts +10 -0
  472. package/dist/prosemirror/extensions/features/SelectionTrackerExtension.js +17 -0
  473. package/dist/prosemirror/extensions/features/bidiShortcutController.d.ts +31 -0
  474. package/dist/prosemirror/extensions/features/bidiShortcutController.js +27 -0
  475. package/dist/prosemirror/extensions/features/pasteCleanup.d.ts +31 -0
  476. package/dist/prosemirror/extensions/features/pasteCleanup.js +159 -0
  477. package/dist/prosemirror/extensions/marks/AllCapsExtension.d.ts +9 -0
  478. package/dist/prosemirror/extensions/marks/AllCapsExtension.js +24 -0
  479. package/dist/prosemirror/extensions/marks/BoldExtension.d.ts +9 -0
  480. package/dist/prosemirror/extensions/marks/BoldExtension.js +41 -0
  481. package/dist/prosemirror/extensions/marks/CharacterSpacingExtension.d.ts +14 -0
  482. package/dist/prosemirror/extensions/marks/CharacterSpacingExtension.js +64 -0
  483. package/dist/prosemirror/extensions/marks/CharacterStyleExtension.d.ts +23 -0
  484. package/dist/prosemirror/extensions/marks/CharacterStyleExtension.js +47 -0
  485. package/dist/prosemirror/extensions/marks/CommentExtension.d.ts +12 -0
  486. package/dist/prosemirror/extensions/marks/CommentExtension.js +38 -0
  487. package/dist/prosemirror/extensions/marks/FontFamilyExtension.d.ts +9 -0
  488. package/dist/prosemirror/extensions/marks/FontFamilyExtension.js +55 -0
  489. package/dist/prosemirror/extensions/marks/FontSizeExtension.d.ts +9 -0
  490. package/dist/prosemirror/extensions/marks/FontSizeExtension.js +47 -0
  491. package/dist/prosemirror/extensions/marks/FootnoteRefExtension.d.ts +11 -0
  492. package/dist/prosemirror/extensions/marks/FootnoteRefExtension.js +92 -0
  493. package/dist/prosemirror/extensions/marks/HiddenTextExtension.d.ts +23 -0
  494. package/dist/prosemirror/extensions/marks/HiddenTextExtension.js +35 -0
  495. package/dist/prosemirror/extensions/marks/HighlightExtension.d.ts +10 -0
  496. package/dist/prosemirror/extensions/marks/HighlightExtension.js +115 -0
  497. package/dist/prosemirror/extensions/marks/HyperlinkExtension.d.ts +13 -0
  498. package/dist/prosemirror/extensions/marks/HyperlinkExtension.js +146 -0
  499. package/dist/prosemirror/extensions/marks/ItalicExtension.d.ts +9 -0
  500. package/dist/prosemirror/extensions/marks/ItalicExtension.js +34 -0
  501. package/dist/prosemirror/extensions/marks/RtlExtension.d.ts +6 -0
  502. package/dist/prosemirror/extensions/marks/RtlExtension.js +21 -0
  503. package/dist/prosemirror/extensions/marks/RunFormattingOverrideExtension.d.ts +11 -0
  504. package/dist/prosemirror/extensions/marks/RunFormattingOverrideExtension.js +75 -0
  505. package/dist/prosemirror/extensions/marks/RunShadingExtension.d.ts +6 -0
  506. package/dist/prosemirror/extensions/marks/RunShadingExtension.js +38 -0
  507. package/dist/prosemirror/extensions/marks/SmallCapsExtension.d.ts +9 -0
  508. package/dist/prosemirror/extensions/marks/SmallCapsExtension.js +24 -0
  509. package/dist/prosemirror/extensions/marks/StrikeExtension.d.ts +9 -0
  510. package/dist/prosemirror/extensions/marks/StrikeExtension.js +33 -0
  511. package/dist/prosemirror/extensions/marks/SubscriptExtension.d.ts +9 -0
  512. package/dist/prosemirror/extensions/marks/SubscriptExtension.js +25 -0
  513. package/dist/prosemirror/extensions/marks/SuperscriptExtension.d.ts +9 -0
  514. package/dist/prosemirror/extensions/marks/SuperscriptExtension.js +25 -0
  515. package/dist/prosemirror/extensions/marks/TextColorExtension.d.ts +9 -0
  516. package/dist/prosemirror/extensions/marks/TextColorExtension.js +50 -0
  517. package/dist/prosemirror/extensions/marks/TextEffectExtension.d.ts +6 -0
  518. package/dist/prosemirror/extensions/marks/TextEffectExtension.js +35 -0
  519. package/dist/prosemirror/extensions/marks/TextEffectsExtensions.d.ts +31 -0
  520. package/dist/prosemirror/extensions/marks/TextEffectsExtensions.js +134 -0
  521. package/dist/prosemirror/extensions/marks/TrackedChangeExtensions.d.ts +22 -0
  522. package/dist/prosemirror/extensions/marks/TrackedChangeExtensions.js +113 -0
  523. package/dist/prosemirror/extensions/marks/UnderlineExtension.d.ts +9 -0
  524. package/dist/prosemirror/extensions/marks/UnderlineExtension.js +60 -0
  525. package/dist/prosemirror/extensions/marks/markUtils.d.ts +34 -0
  526. package/dist/prosemirror/extensions/marks/markUtils.js +233 -0
  527. package/dist/prosemirror/extensions/nodes/BlockSdtExtension.d.ts +22 -0
  528. package/dist/prosemirror/extensions/nodes/BlockSdtExtension.js +122 -0
  529. package/dist/prosemirror/extensions/nodes/FieldExtension.d.ts +12 -0
  530. package/dist/prosemirror/extensions/nodes/FieldExtension.js +87 -0
  531. package/dist/prosemirror/extensions/nodes/HardBreakExtension.d.ts +9 -0
  532. package/dist/prosemirror/extensions/nodes/HardBreakExtension.js +38 -0
  533. package/dist/prosemirror/extensions/nodes/HorizontalRuleExtension.d.ts +9 -0
  534. package/dist/prosemirror/extensions/nodes/HorizontalRuleExtension.js +18 -0
  535. package/dist/prosemirror/extensions/nodes/ImageExtension.d.ts +9 -0
  536. package/dist/prosemirror/extensions/nodes/ImageExtension.js +132 -0
  537. package/dist/prosemirror/extensions/nodes/MathExtension.d.ts +13 -0
  538. package/dist/prosemirror/extensions/nodes/MathExtension.js +56 -0
  539. package/dist/prosemirror/extensions/nodes/PageBreakExtension.d.ts +9 -0
  540. package/dist/prosemirror/extensions/nodes/PageBreakExtension.js +20 -0
  541. package/dist/prosemirror/extensions/nodes/SdtExtension.d.ts +12 -0
  542. package/dist/prosemirror/extensions/nodes/SdtExtension.js +107 -0
  543. package/dist/prosemirror/extensions/nodes/ShapeExtension.d.ts +30 -0
  544. package/dist/prosemirror/extensions/nodes/ShapeExtension.js +502 -0
  545. package/dist/prosemirror/extensions/nodes/TabExtension.d.ts +9 -0
  546. package/dist/prosemirror/extensions/nodes/TabExtension.js +27 -0
  547. package/dist/prosemirror/extensions/nodes/TableExtension.d.ts +34 -0
  548. package/dist/prosemirror/extensions/nodes/TableExtension.js +1972 -0
  549. package/dist/prosemirror/extensions/nodes/TextBoxExtension.d.ts +34 -0
  550. package/dist/prosemirror/extensions/nodes/TextBoxExtension.js +150 -0
  551. package/dist/prosemirror/extensions/types.d.ts +101 -0
  552. package/dist/prosemirror/extensions/types.js +10 -0
  553. package/dist/prosemirror/findReplaceSelection.d.ts +23 -0
  554. package/dist/prosemirror/findReplaceSelection.js +86 -0
  555. package/dist/prosemirror/index.d.ts +25 -0
  556. package/dist/prosemirror/index.js +23 -0
  557. package/dist/prosemirror/insertOperations.d.ts +12 -0
  558. package/dist/prosemirror/insertOperations.js +19 -0
  559. package/dist/prosemirror/paragraphDirection.d.ts +42 -0
  560. package/dist/prosemirror/paragraphDirection.js +33 -0
  561. package/dist/prosemirror/plugins/aiCitationDecorations.d.ts +40 -0
  562. package/dist/prosemirror/plugins/aiCitationDecorations.js +90 -0
  563. package/dist/prosemirror/plugins/aiSuggestionDecorations.d.ts +42 -0
  564. package/dist/prosemirror/plugins/aiSuggestionDecorations.js +135 -0
  565. package/dist/prosemirror/plugins/anonymizationDecorations.d.ts +60 -0
  566. package/dist/prosemirror/plugins/anonymizationDecorations.js +120 -0
  567. package/dist/prosemirror/plugins/autocompleteSuggestion.d.ts +123 -0
  568. package/dist/prosemirror/plugins/autocompleteSuggestion.js +283 -0
  569. package/dist/prosemirror/plugins/contentControlWidgets.d.ts +56 -0
  570. package/dist/prosemirror/plugins/contentControlWidgets.js +192 -0
  571. package/dist/prosemirror/plugins/createDocScanPlugin.d.ts +37 -0
  572. package/dist/prosemirror/plugins/createDocScanPlugin.js +55 -0
  573. package/dist/prosemirror/plugins/documentStyles.d.ts +18 -0
  574. package/dist/prosemirror/plugins/documentStyles.js +46 -0
  575. package/dist/prosemirror/plugins/index.d.ts +3 -0
  576. package/dist/prosemirror/plugins/index.js +3 -0
  577. package/dist/prosemirror/plugins/pmTextScan.d.ts +19 -0
  578. package/dist/prosemirror/plugins/pmTextScan.js +39 -0
  579. package/dist/prosemirror/plugins/selectionTracker.d.ts +43 -0
  580. package/dist/prosemirror/plugins/selectionTracker.js +179 -0
  581. package/dist/prosemirror/plugins/suggestionMode.d.ts +70 -0
  582. package/dist/prosemirror/plugins/suggestionMode.js +489 -0
  583. package/dist/prosemirror/plugins/templateDirectives.d.ts +25 -0
  584. package/dist/prosemirror/plugins/templateDirectives.js +67 -0
  585. package/dist/prosemirror/plugins/templatePreviewValues.d.ts +49 -0
  586. package/dist/prosemirror/plugins/templatePreviewValues.js +117 -0
  587. package/dist/prosemirror/plugins/templateSlashMenu.d.ts +57 -0
  588. package/dist/prosemirror/plugins/templateSlashMenu.js +184 -0
  589. package/dist/prosemirror/schema/index.d.ts +15 -0
  590. package/dist/prosemirror/schema/index.js +20 -0
  591. package/dist/prosemirror/schema/marks.d.ts +118 -0
  592. package/dist/prosemirror/schema/marks.js +0 -0
  593. package/dist/prosemirror/schema/nodes.d.ts +389 -0
  594. package/dist/prosemirror/schema/nodes.js +0 -0
  595. package/dist/prosemirror/selectionState.d.ts +23 -0
  596. package/dist/prosemirror/selectionState.js +111 -0
  597. package/dist/prosemirror/styles/index.d.ts +2 -0
  598. package/dist/prosemirror/styles/index.js +2 -0
  599. package/dist/prosemirror/styles/resolvedStyleAttrs.d.ts +32 -0
  600. package/dist/prosemirror/styles/resolvedStyleAttrs.js +108 -0
  601. package/dist/prosemirror/styles/styleResolver.d.ts +94 -0
  602. package/dist/prosemirror/styles/styleResolver.js +200 -0
  603. package/dist/prosemirror/utils/findParagraphByParaId.d.ts +26 -0
  604. package/dist/prosemirror/utils/findParagraphByParaId.js +37 -0
  605. package/dist/prosemirror/utils/tabCalculator.d.ts +110 -0
  606. package/dist/prosemirror/utils/tabCalculator.js +137 -0
  607. package/dist/prosemirror/validation.d.ts +20 -0
  608. package/dist/prosemirror/validation.js +177 -0
  609. package/dist/server.d.ts +7 -0
  610. package/dist/server.js +6 -0
  611. package/dist/style-engine/index.d.ts +3 -0
  612. package/dist/style-engine/index.js +2 -0
  613. package/dist/style-engine/styleEngine.d.ts +67 -0
  614. package/dist/style-engine/styleEngine.js +70 -0
  615. package/dist/types/block-id.d.ts +66 -0
  616. package/dist/types/block-id.js +73 -0
  617. package/dist/types/colors.d.ts +2 -0
  618. package/dist/types/colors.js +0 -0
  619. package/dist/types/content.d.ts +2 -0
  620. package/dist/types/content.js +0 -0
  621. package/dist/types/document.d.ts +7 -0
  622. package/dist/types/document.js +0 -0
  623. package/dist/types/documentEnumValues.d.ts +89 -0
  624. package/dist/types/documentEnumValues.js +693 -0
  625. package/dist/types/formatting.d.ts +2 -0
  626. package/dist/types/formatting.js +0 -0
  627. package/dist/types/index.d.ts +107 -0
  628. package/dist/types/index.js +0 -0
  629. package/dist/utils/authorColors.d.ts +16 -0
  630. package/dist/utils/authorColors.js +30 -0
  631. package/dist/utils/baseDirection.d.ts +23 -0
  632. package/dist/utils/baseDirection.js +34 -0
  633. package/dist/utils/clipboard.d.ts +126 -0
  634. package/dist/utils/clipboard.js +622 -0
  635. package/dist/utils/colorResolver.d.ts +158 -0
  636. package/dist/utils/colorResolver.js +557 -0
  637. package/dist/utils/createDocument.d.ts +50 -0
  638. package/dist/utils/createDocument.js +262 -0
  639. package/dist/utils/documentLoaderBehavior.d.ts +22 -0
  640. package/dist/utils/documentLoaderBehavior.js +14 -0
  641. package/dist/utils/docxInput.d.ts +22 -0
  642. package/dist/utils/docxInput.js +16 -0
  643. package/dist/utils/domGuards.d.ts +59 -0
  644. package/dist/utils/domGuards.js +82 -0
  645. package/dist/utils/fontFamilyMerge.d.ts +7 -0
  646. package/dist/utils/fontFamilyMerge.js +31 -0
  647. package/dist/utils/fontLoader.d.ts +50 -0
  648. package/dist/utils/fontLoader.js +177 -0
  649. package/dist/utils/fontResolver.d.ts +61 -0
  650. package/dist/utils/fontResolver.js +651 -0
  651. package/dist/utils/fontWeights.d.ts +4 -0
  652. package/dist/utils/fontWeights.js +4 -0
  653. package/dist/utils/formatToStyle.d.ts +103 -0
  654. package/dist/utils/formatToStyle.js +289 -0
  655. package/dist/utils/headerFooter.d.ts +74 -0
  656. package/dist/utils/headerFooter.js +257 -0
  657. package/dist/utils/headingCollector.d.ts +22 -0
  658. package/dist/utils/headingCollector.js +36 -0
  659. package/dist/utils/hexId.d.ts +33 -0
  660. package/dist/utils/hexId.js +37 -0
  661. package/dist/utils/imageValidation.d.ts +5 -0
  662. package/dist/utils/imageValidation.js +31 -0
  663. package/dist/utils/paragraphFormattingMerge.d.ts +14 -0
  664. package/dist/utils/paragraphFormattingMerge.js +68 -0
  665. package/dist/utils/replaceText.d.ts +17 -0
  666. package/dist/utils/replaceText.js +161 -0
  667. package/dist/utils/rotationBoundingBox.d.ts +12 -0
  668. package/dist/utils/rotationBoundingBox.js +36 -0
  669. package/dist/utils/scriptSegments.d.ts +36 -0
  670. package/dist/utils/scriptSegments.js +52 -0
  671. package/dist/utils/tableOperations.d.ts +87 -0
  672. package/dist/utils/tableOperations.js +259 -0
  673. package/dist/utils/textFormattingMerge.d.ts +6 -0
  674. package/dist/utils/textFormattingMerge.js +31 -0
  675. package/dist/utils/tiffConverter.d.ts +18 -0
  676. package/dist/utils/tiffConverter.js +83 -0
  677. package/dist/utils/units.d.ts +99 -0
  678. package/dist/utils/units.js +139 -0
  679. package/dist/utils/urlSecurity.d.ts +7 -0
  680. package/dist/utils/urlSecurity.js +65 -0
  681. package/dist/watermark/index.d.ts +39 -0
  682. package/dist/watermark/index.js +149 -0
  683. package/package.json +122 -2
@@ -0,0 +1,100 @@
1
+ import { __exportAll } from "../_virtual/_rolldown/runtime.js";
2
+ import { isFloatingWrapType, isWrapNone } from "../docx/wrapTypes.js";
3
+ //#region src/layout-engine/types.ts
4
+ var types_exports = /* @__PURE__ */ __exportAll({
5
+ DEFAULT_TEXTBOX_MARGINS: () => DEFAULT_TEXTBOX_MARGINS,
6
+ DEFAULT_TEXTBOX_WIDTH: () => 200,
7
+ FOOTNOTE_ENTRY_MARGIN_BOTTOM: () => 0,
8
+ FOOTNOTE_FALLBACK_LINE_HEIGHT: () => 13,
9
+ FOOTNOTE_SEPARATOR_HEIGHT: () => 12,
10
+ floatingTextBoxReservesBand: () => floatingTextBoxReservesBand,
11
+ floatingTextBoxWrapsText: () => floatingTextBoxWrapsText,
12
+ isFloatingImageRun: () => isFloatingImageRun,
13
+ isFloatingTextBoxBlock: () => isFloatingTextBoxBlock,
14
+ isTextWrappingFloatingImageRun: () => isTextWrappingFloatingImageRun
15
+ });
16
+ /** Default internal margins for text boxes (OOXML defaults in pixels) */
17
+ const DEFAULT_TEXTBOX_MARGINS = {
18
+ top: 4,
19
+ bottom: 4,
20
+ left: 7,
21
+ right: 7
22
+ };
23
+ /** Default text box width in pixels when no width is specified */
24
+ const DEFAULT_TEXTBOX_WIDTH = 200;
25
+ /**
26
+ * Height of the horizontal separator line drawn above the footnote stack.
27
+ * Used by the paginator when reserving space and by the painter when laying
28
+ * out the stack at the bottom of the page.
29
+ */
30
+ const FOOTNOTE_SEPARATOR_HEIGHT = 12;
31
+ /**
32
+ * Extra bottom margin applied to every rendered footnote entry, in CSS pixels.
33
+ *
34
+ * Word footnotes are separate paragraphs in the footnote story, so their
35
+ * own paragraph spacing already describes the vertical gap between notes.
36
+ * Keep the wrapper margin at zero to avoid adding whitespace that is not
37
+ * present in the source DOCX.
38
+ */
39
+ const FOOTNOTE_ENTRY_MARGIN_BOTTOM = 0;
40
+ /**
41
+ * Line height used when a footnote entry has no measured line height yet.
42
+ * Conservative fallback so a missing measure does not collapse the entry.
43
+ */
44
+ const FOOTNOTE_FALLBACK_LINE_HEIGHT = 13;
45
+ /**
46
+ * `true` when the image run is anchored at page-level coordinates instead of
47
+ * participating in inline flow. Covers the OOXML floating wrap types
48
+ * (`square`, `tight`, `through`, `behind`, `inFront`) and the legacy
49
+ * `displayMode === "float"` escape hatch used by ProseMirror nodes that
50
+ * pre-date the wrap-type round-trip.
51
+ *
52
+ * Pure predicate over `ImageRun` — no DOM, no measurement state. Lives here
53
+ * so the bridge can call it without importing from the painter.
54
+ */
55
+ const isFloatingImageRun = (run) => {
56
+ const wrapType = run.wrapType;
57
+ if (wrapType === "square" || wrapType === "tight" || wrapType === "through" || wrapType === "behind" || wrapType === "inFront") return true;
58
+ return run.displayMode === "float";
59
+ };
60
+ /**
61
+ * `true` when a floating image should also shrink surrounding line widths.
62
+ * `behind` / `inFront` (wrapNone) and `topAndBottom` do not — text either
63
+ * paints over/under them or flows above/below as a block — only
64
+ * `square` / `tight` / `through` carve a horizontal exclusion. The legacy
65
+ * `displayMode === "float"` path is treated as wrapping when a CSS float
66
+ * direction is set.
67
+ */
68
+ const isTextWrappingFloatingImageRun = (run) => {
69
+ const wrapType = run.wrapType;
70
+ if (wrapType === "behind" || wrapType === "inFront" || wrapType === "topAndBottom") return false;
71
+ if (wrapType === "square" || wrapType === "tight" || wrapType === "through") return true;
72
+ return run.displayMode === "float" && run.cssFloat !== "none";
73
+ };
74
+ /**
75
+ * `true` when the text box is anchored outside normal block flow — either
76
+ * via the `float` display mode or via an OOXML floating wrap type (which
77
+ * includes `topAndBottom`; see {@link floatingTextBoxReservesBand}).
78
+ */
79
+ function isFloatingTextBoxBlock(block) {
80
+ return block.displayMode === "float" || isFloatingWrapType(block.wrapType);
81
+ }
82
+ /**
83
+ * `true` when a floating text box should also reduce surrounding text
84
+ * line widths. Excludes wrapNone (`behind`/`inFront`) and `topAndBottom`
85
+ * which are positioned floats but do not carve a horizontal exclusion.
86
+ */
87
+ function floatingTextBoxWrapsText(block) {
88
+ return isFloatingTextBoxBlock(block) && !isWrapNone(block.wrapType) && block.wrapType !== "topAndBottom";
89
+ }
90
+ /**
91
+ * `true` when a floating text box reserves a full-width vertical band rather
92
+ * than a side exclusion. `topAndBottom` boxes break the text above and below
93
+ * the box (no text beside it), so surrounding lines flow past the band.
94
+ * Ported from eigenpal #694.
95
+ */
96
+ function floatingTextBoxReservesBand(block) {
97
+ return isFloatingTextBoxBlock(block) && block.wrapType === "topAndBottom";
98
+ }
99
+ //#endregion
100
+ export { DEFAULT_TEXTBOX_MARGINS, DEFAULT_TEXTBOX_WIDTH, FOOTNOTE_ENTRY_MARGIN_BOTTOM, FOOTNOTE_FALLBACK_LINE_HEIGHT, FOOTNOTE_SEPARATOR_HEIGHT, floatingTextBoxReservesBand, floatingTextBoxWrapsText, isFloatingImageRun, isFloatingTextBoxBlock, isTextWrappingFloatingImageRun, types_exports };
@@ -0,0 +1,4 @@
1
+ //#region src/layout-painter/documentColors.d.ts
2
+ declare function getAutomaticTextColorForBackground(backgroundColor: string | undefined): string | undefined;
3
+ //#endregion
4
+ export { getAutomaticTextColorForBackground };
@@ -0,0 +1,40 @@
1
+ //#region src/layout-painter/documentColors.ts
2
+ const HEX_COLOR_RE = /^#?[0-9a-f]{6}$/iu;
3
+ const BLACK_TEXT_COLOR = "#000000";
4
+ const WHITE_TEXT_COLOR = "#FFFFFF";
5
+ const BLACK_LUMINANCE = 0;
6
+ const WHITE_LUMINANCE = 1;
7
+ const CONTRAST_OFFSET = .05;
8
+ function normalizeHexColor(color) {
9
+ const trimmed = color.trim();
10
+ if (!HEX_COLOR_RE.test(trimmed)) return null;
11
+ return `#${trimmed.replace(/^#/u, "").toUpperCase()}`;
12
+ }
13
+ function relativeLuminance(hexColor) {
14
+ const normalized = normalizeHexColor(hexColor);
15
+ if (!normalized) return null;
16
+ const hex = normalized.slice(1);
17
+ const [red, green, blue] = [
18
+ 0,
19
+ 2,
20
+ 4
21
+ ].map((offset) => {
22
+ const value = Number.parseInt(hex.slice(offset, offset + 2), 16) / 255;
23
+ return value <= .03928 ? value / 12.92 : ((value + .055) / 1.055) ** 2.4;
24
+ });
25
+ if (red === void 0 || green === void 0 || blue === void 0) return null;
26
+ return .2126 * red + .7152 * green + .0722 * blue;
27
+ }
28
+ function contrastRatio(luminanceA, luminanceB) {
29
+ const lighter = Math.max(luminanceA, luminanceB);
30
+ const darker = Math.min(luminanceA, luminanceB);
31
+ return (lighter + CONTRAST_OFFSET) / (darker + CONTRAST_OFFSET);
32
+ }
33
+ function getAutomaticTextColorForBackground(backgroundColor) {
34
+ if (!backgroundColor) return;
35
+ const luminance = relativeLuminance(backgroundColor);
36
+ if (luminance === null) return;
37
+ return contrastRatio(luminance, BLACK_LUMINANCE) >= contrastRatio(luminance, WHITE_LUMINANCE) ? BLACK_TEXT_COLOR : WHITE_TEXT_COLOR;
38
+ }
39
+ //#endregion
40
+ export { getAutomaticTextColorForBackground };
@@ -0,0 +1,110 @@
1
+ import { FlowBlock, Layout, Measure } from "../layout-engine/types.js";
2
+ import { RenderContext } from "./renderUtils.js";
3
+ import { BlockFor, FeatureDispatchInput, FeatureFallback, FeatureModule, FeatureRenderInput, FragmentFor, MeasureFor } from "./registry/types.js";
4
+ import { FeatureRegistry, createFeatureRegistry } from "./registry/registry.js";
5
+ import { FRAGMENT_CLASS_NAMES, renderFragment } from "./renderFragment.js";
6
+ import { IMAGE_CLASS_NAMES, renderImageFragment } from "./renderImage.js";
7
+ import { renderPage, renderPages } from "./renderPage.js";
8
+ import { renderLine, renderParagraphFragment, sliceRunsForLine } from "./renderParagraph.js";
9
+ import { TABLE_CLASS_NAMES, renderTableFragment } from "./renderTable.js";
10
+ import { TEXTBOX_CLASS_NAMES, renderTextBoxFragment } from "./renderTextBox.js";
11
+ import { createDefaultRegistry } from "./registry/modules.js";
12
+
13
+ //#region src/layout-painter/index.d.ts
14
+ /**
15
+ * Block lookup entry for painter
16
+ */
17
+ type BlockLookupEntry = {
18
+ block: FlowBlock;
19
+ measure: Measure;
20
+ version?: string;
21
+ };
22
+ /**
23
+ * Block lookup map type
24
+ */
25
+ type BlockLookup = Map<string, BlockLookupEntry>;
26
+ /**
27
+ * Painter options
28
+ */
29
+ type PainterOptions = {
30
+ /** Document to create elements in */document?: Document; /** Gap between pages in pixels */
31
+ pageGap?: number; /** Show page shadows */
32
+ showShadow?: boolean; /** Background color for pages */
33
+ pageBackground?: string; /** Container background color */
34
+ containerBackground?: string;
35
+ /**
36
+ * Optional custom feature registry. Defaults to `createDefaultRegistry()`.
37
+ * Pass a custom registry to swap or extend renderers without subclassing
38
+ * `LayoutPainter`.
39
+ */
40
+ registry?: FeatureRegistry;
41
+ };
42
+ /**
43
+ * Layout Painter class
44
+ *
45
+ * Renders Layout data to DOM with efficient reconciliation.
46
+ * Only updates changed pages and fragments for better performance.
47
+ */
48
+ declare class LayoutPainter {
49
+ private container;
50
+ private blockLookup;
51
+ private pageStates;
52
+ private totalPages;
53
+ private readonly options;
54
+ private readonly doc;
55
+ private readonly registry;
56
+ constructor(options?: PainterOptions);
57
+ /**
58
+ * Set the block lookup map for rendering fragments
59
+ */
60
+ setBlockLookup(lookup: BlockLookup): void;
61
+ /**
62
+ * Mount the painter to a container element
63
+ */
64
+ mount(container: HTMLElement): void;
65
+ /**
66
+ * Unmount the painter
67
+ */
68
+ unmount(): void;
69
+ /**
70
+ * Apply styles to the container
71
+ */
72
+ private applyContainerStyles;
73
+ /**
74
+ * Paint a layout to the container
75
+ */
76
+ paint(layout: Layout): void;
77
+ /**
78
+ * Render a page using block lookup for full fragment rendering
79
+ */
80
+ private renderPageWithLookup;
81
+ /**
82
+ * Render a fragment via the feature-module registry. Dispatch is O(1)
83
+ * keyed on `fragment.kind`; modules supply the actual render. Fragments
84
+ * without a resolved block/measure or with an unregistered kind fall
85
+ * back to the placeholder renderer (`renderFragment`).
86
+ */
87
+ private renderFragmentWithLookup;
88
+ /**
89
+ * Apply positioning styles to a fragment element
90
+ */
91
+ private applyFragmentPosition;
92
+ /**
93
+ * Get the current page count
94
+ */
95
+ getPageCount(): number;
96
+ /**
97
+ * Get a page element by index
98
+ */
99
+ getPageElement(index: number): HTMLElement | null;
100
+ /**
101
+ * Scroll to a specific page
102
+ */
103
+ scrollToPage(pageNumber: number): void;
104
+ }
105
+ /**
106
+ * Create a new LayoutPainter instance
107
+ */
108
+ declare function createPainter(options?: PainterOptions): LayoutPainter;
109
+ //#endregion
110
+ export { type BlockFor, BlockLookup, BlockLookupEntry, FRAGMENT_CLASS_NAMES, type FeatureDispatchInput, type FeatureFallback, type FeatureModule, type FeatureRegistry, type FeatureRenderInput, type FragmentFor, IMAGE_CLASS_NAMES, LayoutPainter, type MeasureFor, PainterOptions, type RenderContext, TABLE_CLASS_NAMES, TEXTBOX_CLASS_NAMES, createDefaultRegistry, createFeatureRegistry, createPainter, renderFragment, renderImageFragment, renderLine, renderPage, renderPages, renderParagraphFragment, renderTableFragment, renderTextBoxFragment, sliceRunsForLine };
@@ -0,0 +1,182 @@
1
+ import { FRAGMENT_CLASS_NAMES, renderFragment } from "./renderFragment.js";
2
+ import { IMAGE_CLASS_NAMES, renderImageFragment } from "./renderImage.js";
3
+ import { renderLine, renderParagraphFragment, sliceRunsForLine } from "./renderParagraph.js";
4
+ import { TABLE_CLASS_NAMES, renderTableFragment } from "./renderTable.js";
5
+ import { TEXTBOX_CLASS_NAMES, renderTextBoxFragment } from "./renderTextBox.js";
6
+ import { renderPage, renderPages } from "./renderPage.js";
7
+ import { prefersReducedMotionBehavior } from "../paged-layout/scrollNavigation.js";
8
+ import { createFeatureRegistry } from "./registry/registry.js";
9
+ import { createDefaultRegistry } from "./registry/modules.js";
10
+ import { panic } from "better-result";
11
+ //#region src/layout-painter/index.ts
12
+ /**
13
+ * Layout Painter
14
+ *
15
+ * Main entry point for rendering Layout data to DOM.
16
+ * Provides reconciliation for efficient incremental updates.
17
+ */
18
+ /**
19
+ * Layout Painter class
20
+ *
21
+ * Renders Layout data to DOM with efficient reconciliation.
22
+ * Only updates changed pages and fragments for better performance.
23
+ */
24
+ var LayoutPainter = class {
25
+ container = null;
26
+ blockLookup = /* @__PURE__ */ new Map();
27
+ pageStates = [];
28
+ totalPages = 0;
29
+ options;
30
+ doc;
31
+ registry;
32
+ constructor(options = {}) {
33
+ this.options = options;
34
+ this.doc = options.document ?? document;
35
+ this.registry = options.registry ?? createDefaultRegistry();
36
+ }
37
+ /**
38
+ * Set the block lookup map for rendering fragments
39
+ */
40
+ setBlockLookup(lookup) {
41
+ this.blockLookup = lookup;
42
+ }
43
+ /**
44
+ * Mount the painter to a container element
45
+ */
46
+ mount(container) {
47
+ this.container = container;
48
+ this.applyContainerStyles();
49
+ }
50
+ /**
51
+ * Unmount the painter
52
+ */
53
+ unmount() {
54
+ if (this.container) this.container.innerHTML = "";
55
+ this.container = null;
56
+ this.pageStates = [];
57
+ }
58
+ /**
59
+ * Apply styles to the container
60
+ */
61
+ applyContainerStyles() {
62
+ if (!this.container) return;
63
+ const pageGap = this.options.pageGap ?? 24;
64
+ this.container.style.display = "flex";
65
+ this.container.style.flexDirection = "column";
66
+ this.container.style.alignItems = "center";
67
+ this.container.style.gap = `${pageGap}px`;
68
+ this.container.style.padding = `${pageGap}px`;
69
+ this.container.style.backgroundColor = this.options.containerBackground ?? "var(--doc-bg, #f8f9fa)";
70
+ this.container.style.minHeight = "100%";
71
+ }
72
+ /**
73
+ * Paint a layout to the container
74
+ */
75
+ paint(layout) {
76
+ if (!this.container) panic("LayoutPainter: not mounted");
77
+ const { pages } = layout;
78
+ this.totalPages = pages.length;
79
+ this.container.innerHTML = "";
80
+ this.pageStates = [];
81
+ for (const i_item of pages) {
82
+ const page = i_item;
83
+ const context = {
84
+ pageNumber: page.number,
85
+ totalPages: this.totalPages,
86
+ section: "body"
87
+ };
88
+ const pageEl = this.renderPageWithLookup(page, context);
89
+ this.container.append(pageEl);
90
+ this.pageStates.push({
91
+ element: pageEl,
92
+ pageNumber: page.number,
93
+ fragmentCount: page.fragments.length
94
+ });
95
+ }
96
+ }
97
+ /**
98
+ * Render a page using block lookup for full fragment rendering
99
+ */
100
+ renderPageWithLookup(page, context) {
101
+ const pageEl = this.doc.createElement("div");
102
+ pageEl.className = "layout-page";
103
+ pageEl.dataset["pageNumber"] = String(page.number);
104
+ pageEl.style.position = "relative";
105
+ pageEl.style.width = `${page.size.w}px`;
106
+ pageEl.style.height = `${page.size.h}px`;
107
+ pageEl.style.backgroundColor = this.options.pageBackground ?? "var(--doc-canvas, #ffffff)";
108
+ pageEl.style.color = "var(--doc-canvas-text, #1f2937)";
109
+ pageEl.style.overflow = "hidden";
110
+ const contentEl = this.doc.createElement("div");
111
+ contentEl.className = "layout-page-content";
112
+ contentEl.style.position = "absolute";
113
+ contentEl.style.top = `${page.margins.top}px`;
114
+ contentEl.style.left = `${page.margins.left}px`;
115
+ contentEl.style.right = `${page.margins.right}px`;
116
+ contentEl.style.bottom = `${page.margins.bottom}px`;
117
+ contentEl.style.overflow = "visible";
118
+ for (const fragment of page.fragments) {
119
+ const fragmentEl = this.renderFragmentWithLookup(fragment, context);
120
+ this.applyFragmentPosition(fragmentEl, fragment);
121
+ contentEl.append(fragmentEl);
122
+ }
123
+ pageEl.append(contentEl);
124
+ return pageEl;
125
+ }
126
+ /**
127
+ * Render a fragment via the feature-module registry. Dispatch is O(1)
128
+ * keyed on `fragment.kind`; modules supply the actual render. Fragments
129
+ * without a resolved block/measure or with an unregistered kind fall
130
+ * back to the placeholder renderer (`renderFragment`).
131
+ */
132
+ renderFragmentWithLookup(fragment, context) {
133
+ const lookup = this.blockLookup.get(String(fragment.blockId));
134
+ return this.registry.render({
135
+ fragment,
136
+ block: lookup?.block,
137
+ measure: lookup?.measure,
138
+ context,
139
+ doc: this.doc
140
+ });
141
+ }
142
+ /**
143
+ * Apply positioning styles to a fragment element
144
+ */
145
+ applyFragmentPosition(element, fragment) {
146
+ element.style.position = "absolute";
147
+ element.style.left = `${fragment.x}px`;
148
+ element.style.top = `${fragment.y}px`;
149
+ element.style.width = `${fragment.width}px`;
150
+ element.style.height = `${fragment.height}px`;
151
+ }
152
+ /**
153
+ * Get the current page count
154
+ */
155
+ getPageCount() {
156
+ return this.totalPages;
157
+ }
158
+ /**
159
+ * Get a page element by index
160
+ */
161
+ getPageElement(index) {
162
+ return this.pageStates[index]?.element ?? null;
163
+ }
164
+ /**
165
+ * Scroll to a specific page
166
+ */
167
+ scrollToPage(pageNumber) {
168
+ const state = this.pageStates.find((s) => s.pageNumber === pageNumber);
169
+ if (state?.element) state.element.scrollIntoView({
170
+ behavior: prefersReducedMotionBehavior(),
171
+ block: "start"
172
+ });
173
+ }
174
+ };
175
+ /**
176
+ * Create a new LayoutPainter instance
177
+ */
178
+ function createPainter(options) {
179
+ return new LayoutPainter(options);
180
+ }
181
+ //#endregion
182
+ export { FRAGMENT_CLASS_NAMES, IMAGE_CLASS_NAMES, LayoutPainter, TABLE_CLASS_NAMES, TEXTBOX_CLASS_NAMES, createDefaultRegistry, createFeatureRegistry, createPainter, renderFragment, renderImageFragment, renderLine, renderPage, renderPages, renderParagraphFragment, renderTableFragment, renderTextBoxFragment, sliceRunsForLine };
@@ -0,0 +1,6 @@
1
+ import { FeatureModule } from "../types.js";
2
+
3
+ //#region src/layout-painter/registry/modules/image.d.ts
4
+ declare const imageModule: FeatureModule<"image">;
5
+ //#endregion
6
+ export { imageModule };
@@ -0,0 +1,17 @@
1
+ import { renderImageFragment } from "../../renderImage.js";
2
+ //#region src/layout-painter/registry/modules/image.ts
3
+ /**
4
+ * Image feature module — renders `ImageFragment`.
5
+ *
6
+ * Thin wrapper over `renderImageFragment`. Kept as a module so the
7
+ * registry can dispatch image fragments uniformly and so future
8
+ * variants (e.g. SVG, EMF preview) can plug in alongside.
9
+ */
10
+ const imageModule = {
11
+ kind: "image",
12
+ render({ fragment, block, measure, context, doc }) {
13
+ return renderImageFragment(fragment, block, measure, context, { document: doc });
14
+ }
15
+ };
16
+ //#endregion
17
+ export { imageModule };
@@ -0,0 +1,6 @@
1
+ import { FeatureModule } from "../types.js";
2
+
3
+ //#region src/layout-painter/registry/modules/paragraph.d.ts
4
+ declare const paragraphModule: FeatureModule<"paragraph">;
5
+ //#endregion
6
+ export { paragraphModule };
@@ -0,0 +1,18 @@
1
+ import { renderParagraphFragment } from "../../renderParagraph.js";
2
+ //#region src/layout-painter/registry/modules/paragraph.ts
3
+ /**
4
+ * Paragraph feature module — wraps `renderParagraphFragment`.
5
+ *
6
+ * The paragraph orchestrator is intentionally still monolithic: it dispatches
7
+ * paragraph-internal kinds (runs, fields, inline images, hyperlinks). Future
8
+ * work can split that into a sub-registry without changing this module's
9
+ * external contract.
10
+ */
11
+ const paragraphModule = {
12
+ kind: "paragraph",
13
+ render({ fragment, block, measure, context, doc }) {
14
+ return renderParagraphFragment(fragment, block, measure, context, { document: doc });
15
+ }
16
+ };
17
+ //#endregion
18
+ export { paragraphModule };
@@ -0,0 +1,6 @@
1
+ import { FeatureModule } from "../types.js";
2
+
3
+ //#region src/layout-painter/registry/modules/table.d.ts
4
+ declare const tableModule: FeatureModule<"table">;
5
+ //#endregion
6
+ export { tableModule };
@@ -0,0 +1,16 @@
1
+ import { renderTableFragment } from "../../renderTable.js";
2
+ //#region src/layout-painter/registry/modules/table.ts
3
+ /**
4
+ * Table feature module — wraps `renderTableFragment`.
5
+ *
6
+ * Like paragraph, the table orchestrator still owns row/cell rendering.
7
+ * Splitting cell-level renderers into a sub-registry is future work.
8
+ */
9
+ const tableModule = {
10
+ kind: "table",
11
+ render({ fragment, block, measure, context, doc }) {
12
+ return renderTableFragment(fragment, block, measure, context, { document: doc });
13
+ }
14
+ };
15
+ //#endregion
16
+ export { tableModule };
@@ -0,0 +1,6 @@
1
+ import { FeatureModule } from "../types.js";
2
+
3
+ //#region src/layout-painter/registry/modules/textBox.d.ts
4
+ declare const textBoxModule: FeatureModule<"textBox">;
5
+ //#endregion
6
+ export { textBoxModule };
@@ -0,0 +1,13 @@
1
+ import { renderTextBoxFragment } from "../../renderTextBox.js";
2
+ //#region src/layout-painter/registry/modules/textBox.ts
3
+ /**
4
+ * Text-box feature module — renders `TextBoxFragment`.
5
+ */
6
+ const textBoxModule = {
7
+ kind: "textBox",
8
+ render({ fragment, block, measure, context, doc }) {
9
+ return renderTextBoxFragment(fragment, block, measure, context, { document: doc });
10
+ }
11
+ };
12
+ //#endregion
13
+ export { textBoxModule };
@@ -0,0 +1,6 @@
1
+ import { FeatureRegistry } from "./registry.js";
2
+
3
+ //#region src/layout-painter/registry/modules.d.ts
4
+ declare function createDefaultRegistry(): FeatureRegistry;
5
+ //#endregion
6
+ export { createDefaultRegistry };
@@ -0,0 +1,26 @@
1
+ import { imageModule } from "./modules/image.js";
2
+ import { paragraphModule } from "./modules/paragraph.js";
3
+ import { tableModule } from "./modules/table.js";
4
+ import { textBoxModule } from "./modules/textBox.js";
5
+ import { createFeatureRegistry } from "./registry.js";
6
+ //#region src/layout-painter/registry/modules.ts
7
+ /**
8
+ * Default feature-module registry.
9
+ *
10
+ * To add a new OOXML renderer:
11
+ * 1. Create `modules/<kind>.ts` exporting a `FeatureModule<"...">`.
12
+ * 2. Add one import + `register(...)` line below.
13
+ *
14
+ * Discovery is explicit (not glob-based) so register lines are greppable
15
+ * and tree-shaking stays deterministic.
16
+ */
17
+ function createDefaultRegistry() {
18
+ const registry = createFeatureRegistry();
19
+ registry.register(paragraphModule);
20
+ registry.register(tableModule);
21
+ registry.register(imageModule);
22
+ registry.register(textBoxModule);
23
+ return registry;
24
+ }
25
+ //#endregion
26
+ export { createDefaultRegistry };
@@ -0,0 +1,24 @@
1
+ import { Fragment } from "../../layout-engine/types.js";
2
+ import { FeatureDispatchInput, FeatureFallback, FeatureModule } from "./types.js";
3
+
4
+ //#region src/layout-painter/registry/registry.d.ts
5
+ type FeatureRegistry = {
6
+ register: <TKind extends Fragment["kind"]>(mod: FeatureModule<TKind>) => void;
7
+ get: <TKind extends Fragment["kind"]>(kind: TKind) => FeatureModule<TKind> | undefined;
8
+ has: (kind: Fragment["kind"]) => boolean;
9
+ render: (input: FeatureDispatchInput) => HTMLElement;
10
+ };
11
+ type CreateFeatureRegistryOptions = {
12
+ /**
13
+ * Hook for unknown kinds and fragments with no resolved block/measure.
14
+ * Defaults to the placeholder renderer in `renderFragment.ts`.
15
+ */
16
+ fallback?: FeatureFallback;
17
+ };
18
+ /**
19
+ * Build a new feature registry. Callers register modules, then dispatch via
20
+ * `render()`. The registry never mutates module objects.
21
+ */
22
+ declare function createFeatureRegistry(options?: CreateFeatureRegistryOptions): FeatureRegistry;
23
+ //#endregion
24
+ export { CreateFeatureRegistryOptions, FeatureRegistry, createFeatureRegistry };
@@ -0,0 +1,53 @@
1
+ import { renderFragment } from "../renderFragment.js";
2
+ import { panic } from "better-result";
3
+ //#region src/layout-painter/registry/registry.ts
4
+ /**
5
+ * Feature-module registry for the layout painter.
6
+ *
7
+ * O(1) dispatch keyed on `Fragment["kind"]`. Modules self-describe their
8
+ * kind; the registry routes each fragment to its module's `render()`. A
9
+ * fallback closes the loop for unknown kinds and for fragments arriving
10
+ * without a resolved block/measure.
11
+ */
12
+ const defaultFallback = ({ fragment, context, doc }) => renderFragment(fragment, context, { document: doc });
13
+ /**
14
+ * Build a new feature registry. Callers register modules, then dispatch via
15
+ * `render()`. The registry never mutates module objects.
16
+ */
17
+ function createFeatureRegistry(options = {}) {
18
+ const modules = /* @__PURE__ */ new Map();
19
+ const fallback = options.fallback ?? defaultFallback;
20
+ const register = (mod) => {
21
+ if (modules.has(mod.kind)) panic(`FeatureRegistry: module for kind "${mod.kind}" is already registered`);
22
+ modules.set(mod.kind, mod);
23
+ };
24
+ const get = (kind) => {
25
+ const found = modules.get(kind);
26
+ if (!found) return;
27
+ return found;
28
+ };
29
+ const has = (kind) => modules.has(kind);
30
+ const render = ({ fragment, block, measure, context, doc }) => {
31
+ const mod = modules.get(fragment.kind);
32
+ if (!mod || !block || !measure) return fallback({
33
+ fragment,
34
+ context,
35
+ doc
36
+ });
37
+ return mod.render({
38
+ fragment,
39
+ block,
40
+ measure,
41
+ context,
42
+ doc
43
+ });
44
+ };
45
+ return {
46
+ register,
47
+ get,
48
+ has,
49
+ render
50
+ };
51
+ }
52
+ //#endregion
53
+ export { createFeatureRegistry };