@eigenpal/docx-editor-core 0.0.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 (419) hide show
  1. package/LICENSE +204 -0
  2. package/README.md +54 -0
  3. package/dist/ImageExtension-BN327PNe.d.mts +38 -0
  4. package/dist/ImageExtension-BlI5afZD.d.ts +38 -0
  5. package/dist/Subscribable-DOz6Ohoo.d.mts +33 -0
  6. package/dist/Subscribable-DOz6Ohoo.d.ts +33 -0
  7. package/dist/agent/index.d.mts +169 -0
  8. package/dist/agent/index.d.ts +169 -0
  9. package/dist/agent/index.js +1 -0
  10. package/dist/agent/index.mjs +1 -0
  11. package/dist/borders-BH_GoYU3.d.mts +58 -0
  12. package/dist/borders-Z9hPno2u.d.ts +58 -0
  13. package/dist/chunk-23CP3TOP.js +1 -0
  14. package/dist/chunk-2KHWHVTA.js +1 -0
  15. package/dist/chunk-36VIYQHD.mjs +9 -0
  16. package/dist/chunk-3COGZG7O.mjs +1 -0
  17. package/dist/chunk-3NRMSZX2.mjs +1 -0
  18. package/dist/chunk-3SXJPJSV.mjs +1 -0
  19. package/dist/chunk-44RUAQA2.js +1 -0
  20. package/dist/chunk-4AJYHCPB.js +2 -0
  21. package/dist/chunk-4BFNWPKW.js +1 -0
  22. package/dist/chunk-4EHBV73E.mjs +59 -0
  23. package/dist/chunk-4G6AJ4ZM.js +1 -0
  24. package/dist/chunk-4GER4JLW.js +1 -0
  25. package/dist/chunk-4Q2IP5FW.js +1 -0
  26. package/dist/chunk-5N5DBQJV.mjs +1 -0
  27. package/dist/chunk-62NPHRTF.js +1 -0
  28. package/dist/chunk-67LVRQIR.mjs +1 -0
  29. package/dist/chunk-6ILFFGGS.js +2 -0
  30. package/dist/chunk-6LOYA7G5.mjs +2 -0
  31. package/dist/chunk-6LVPRTB6.js +1 -0
  32. package/dist/chunk-6NQSIC27.mjs +1 -0
  33. package/dist/chunk-6VUYFDHY.mjs +1 -0
  34. package/dist/chunk-7E5VBRDL.mjs +1 -0
  35. package/dist/chunk-7GHQ4YCJ.mjs +1 -0
  36. package/dist/chunk-7RDCZLTU.js +1 -0
  37. package/dist/chunk-7VCMJCBY.js +2 -0
  38. package/dist/chunk-AAPBAMD7.js +1 -0
  39. package/dist/chunk-AMENZY5F.mjs +1 -0
  40. package/dist/chunk-ARHPXIBJ.mjs +1 -0
  41. package/dist/chunk-BGC7QKP5.mjs +1 -0
  42. package/dist/chunk-BGY3CB37.mjs +1 -0
  43. package/dist/chunk-BHBOAP6Z.js +3 -0
  44. package/dist/chunk-BWHUD2XC.mjs +4 -0
  45. package/dist/chunk-CCWOLPZE.js +3 -0
  46. package/dist/chunk-CGJ6S3AH.mjs +1 -0
  47. package/dist/chunk-CKKO4JWE.mjs +1 -0
  48. package/dist/chunk-CKXAHSJQ.js +10 -0
  49. package/dist/chunk-CP5OSG5Z.mjs +1 -0
  50. package/dist/chunk-CUY2THAO.mjs +1 -0
  51. package/dist/chunk-CWAP26GB.js +4 -0
  52. package/dist/chunk-D4RPOJC7.js +1 -0
  53. package/dist/chunk-D6GO7UGD.mjs +1 -0
  54. package/dist/chunk-DC7S76ZX.js +1 -0
  55. package/dist/chunk-DFZTUQ7O.js +2 -0
  56. package/dist/chunk-DROCYKAR.js +1 -0
  57. package/dist/chunk-DWFWYHM5.mjs +1 -0
  58. package/dist/chunk-DY2MJCSV.js +1 -0
  59. package/dist/chunk-ESI4BSBF.js +1 -0
  60. package/dist/chunk-FC6QL3E6.js +1 -0
  61. package/dist/chunk-FWTP7BN7.mjs +4 -0
  62. package/dist/chunk-G6Y4UZMJ.mjs +1 -0
  63. package/dist/chunk-GGPKPXON.js +1 -0
  64. package/dist/chunk-GXW7YSFL.mjs +1 -0
  65. package/dist/chunk-I6PMX4BO.js +1 -0
  66. package/dist/chunk-IBNUQL57.mjs +2 -0
  67. package/dist/chunk-ILJUDEZ5.mjs +1 -0
  68. package/dist/chunk-IP2VXNWG.js +1 -0
  69. package/dist/chunk-J7ULKGU2.mjs +10 -0
  70. package/dist/chunk-JFZIXFRC.js +1 -0
  71. package/dist/chunk-JHZ3HLSR.mjs +1 -0
  72. package/dist/chunk-JKVXID22.mjs +1 -0
  73. package/dist/chunk-JY5EFI4D.js +1 -0
  74. package/dist/chunk-KBU6QQFU.js +9 -0
  75. package/dist/chunk-KESNGXGO.js +1 -0
  76. package/dist/chunk-KQTB5Y7P.mjs +1 -0
  77. package/dist/chunk-LBKMYD3M.mjs +1 -0
  78. package/dist/chunk-LMF2ELOB.js +1 -0
  79. package/dist/chunk-LVD6HXRF.mjs +2 -0
  80. package/dist/chunk-MJ5FQX7Q.js +1 -0
  81. package/dist/chunk-MOKKS75W.mjs +3 -0
  82. package/dist/chunk-MVZOTKNL.mjs +1 -0
  83. package/dist/chunk-MZ7LW5CH.js +1 -0
  84. package/dist/chunk-MZOVDLYL.js +1 -0
  85. package/dist/chunk-N27FJQTG.js +1 -0
  86. package/dist/chunk-N3Y5BUKV.js +1 -0
  87. package/dist/chunk-NBLJPT54.mjs +1 -0
  88. package/dist/chunk-NERY274X.js +1 -0
  89. package/dist/chunk-NNQWQOC5.mjs +1 -0
  90. package/dist/chunk-NXLJVVVE.js +1 -0
  91. package/dist/chunk-O5X22KZ6.mjs +1 -0
  92. package/dist/chunk-OBMN4VSM.mjs +1 -0
  93. package/dist/chunk-OCAX2KJQ.js +4 -0
  94. package/dist/chunk-OZMNIX6U.mjs +1 -0
  95. package/dist/chunk-PRRM64JO.mjs +1 -0
  96. package/dist/chunk-Q4CKLXWA.js +1 -0
  97. package/dist/chunk-Q5QOBZWT.mjs +1 -0
  98. package/dist/chunk-QPFJJPIC.mjs +1 -0
  99. package/dist/chunk-QYUPLKLP.mjs +1 -0
  100. package/dist/chunk-RNOXNNSD.mjs +0 -0
  101. package/dist/chunk-RPIQG46O.mjs +1 -0
  102. package/dist/chunk-S7IKPRC3.js +9 -0
  103. package/dist/chunk-SUXJX72X.js +1 -0
  104. package/dist/chunk-SYJAAHUK.js +1 -0
  105. package/dist/chunk-T4CPTPRP.js +1 -0
  106. package/dist/chunk-TE2AF7FM.js +1 -0
  107. package/dist/chunk-TE2VQJZG.js +1 -0
  108. package/dist/chunk-TRJWRZZD.js +1 -0
  109. package/dist/chunk-U4UCHBZ7.js +1 -0
  110. package/dist/chunk-UDPROEUK.js +1 -0
  111. package/dist/chunk-UIROUI5I.mjs +1 -0
  112. package/dist/chunk-UOFQYE2L.mjs +1 -0
  113. package/dist/chunk-UQ6WNWXX.js +1 -0
  114. package/dist/chunk-V7BKPX67.mjs +2 -0
  115. package/dist/chunk-VKTCTMIO.mjs +2 -0
  116. package/dist/chunk-VQWZHPWI.mjs +1 -0
  117. package/dist/chunk-VW22RZ6C.mjs +1 -0
  118. package/dist/chunk-WLKRUBY4.js +1 -0
  119. package/dist/chunk-WLQEPVDR.js +1 -0
  120. package/dist/chunk-WNTT4MGC.js +59 -0
  121. package/dist/chunk-WTFLNYAT.mjs +1 -0
  122. package/dist/chunk-XXU7YQVV.js +1 -0
  123. package/dist/chunk-Y5HZAMND.mjs +9 -0
  124. package/dist/chunk-Y74ANBPV.js +1 -0
  125. package/dist/chunk-Y7JZPBBW.js +1 -0
  126. package/dist/chunk-YGHHSCPR.js +2 -0
  127. package/dist/chunk-YMZ3F2FZ.mjs +1 -0
  128. package/dist/chunk-YUKBAAB5.mjs +1 -0
  129. package/dist/chunk-ZRZ2VRQQ.mjs +1 -0
  130. package/dist/chunk-ZYESB4KC.mjs +3 -0
  131. package/dist/colorResolver-C3q7MLLD.d.mts +390 -0
  132. package/dist/colorResolver-CVsPLsw1.d.ts +390 -0
  133. package/dist/colors-C3vA7HUU.d.mts +70 -0
  134. package/dist/colors-C3vA7HUU.d.ts +70 -0
  135. package/dist/core-plugins.d.mts +64 -0
  136. package/dist/core-plugins.d.ts +64 -0
  137. package/dist/core-plugins.js +1 -0
  138. package/dist/core-plugins.mjs +1 -0
  139. package/dist/core.d.mts +399 -0
  140. package/dist/core.d.ts +399 -0
  141. package/dist/core.js +1 -0
  142. package/dist/core.mjs +1 -0
  143. package/dist/documentSerializer-C1ueey5d.d.mts +36 -0
  144. package/dist/documentSerializer-Chn7J1WG.d.ts +36 -0
  145. package/dist/docx/index.d.mts +1124 -0
  146. package/dist/docx/index.d.ts +1124 -0
  147. package/dist/docx/index.js +1 -0
  148. package/dist/docx/index.mjs +1 -0
  149. package/dist/docx/parser.d.mts +109 -0
  150. package/dist/docx/parser.d.ts +109 -0
  151. package/dist/docx/parser.js +1 -0
  152. package/dist/docx/parser.mjs +1 -0
  153. package/dist/docx/rezip.d.mts +313 -0
  154. package/dist/docx/rezip.d.ts +313 -0
  155. package/dist/docx/rezip.js +1 -0
  156. package/dist/docx/rezip.mjs +1 -0
  157. package/dist/docx/serializer/index.d.mts +126 -0
  158. package/dist/docx/serializer/index.d.ts +126 -0
  159. package/dist/docx/serializer/index.js +1 -0
  160. package/dist/docx/serializer/index.mjs +1 -0
  161. package/dist/docx/wrapTypes.d.mts +19 -0
  162. package/dist/docx/wrapTypes.d.ts +19 -0
  163. package/dist/docx/wrapTypes.js +1 -0
  164. package/dist/docx/wrapTypes.mjs +1 -0
  165. package/dist/docxInput-DTbCa48g.d.mts +21 -0
  166. package/dist/docxInput-DTbCa48g.d.ts +21 -0
  167. package/dist/executor-DZAMMQ35.js +1 -0
  168. package/dist/executor-ZCJRLT3Z.mjs +1 -0
  169. package/dist/findParagraphByParaId-Maw_8M5D.d.mts +28 -0
  170. package/dist/findParagraphByParaId-Maw_8M5D.d.ts +28 -0
  171. package/dist/fontLoader-BOt95Jtf.d.mts +223 -0
  172. package/dist/fontLoader-QPwbcX5j.d.ts +223 -0
  173. package/dist/footnotes-lCH_P3N3.d.mts +78 -0
  174. package/dist/footnotes-skVvEHvZ.d.ts +78 -0
  175. package/dist/formatting-BwpZWdGi.d.ts +410 -0
  176. package/dist/formatting-D9I-lFS4.d.mts +410 -0
  177. package/dist/headerFooterLayout-B3QVg556.d.ts +201 -0
  178. package/dist/headerFooterLayout-DkclHZ0Z.d.mts +201 -0
  179. package/dist/headless.d.mts +110 -0
  180. package/dist/headless.d.ts +110 -0
  181. package/dist/headless.js +1 -0
  182. package/dist/headless.mjs +1 -0
  183. package/dist/layout-bridge/clickToPositionDom.d.mts +56 -0
  184. package/dist/layout-bridge/clickToPositionDom.d.ts +56 -0
  185. package/dist/layout-bridge/clickToPositionDom.js +1 -0
  186. package/dist/layout-bridge/clickToPositionDom.mjs +1 -0
  187. package/dist/layout-bridge/index.d.mts +462 -0
  188. package/dist/layout-bridge/index.d.ts +462 -0
  189. package/dist/layout-bridge/index.js +1 -0
  190. package/dist/layout-bridge/index.mjs +1 -0
  191. package/dist/layout-bridge/measuring/index.d.mts +320 -0
  192. package/dist/layout-bridge/measuring/index.d.ts +320 -0
  193. package/dist/layout-bridge/measuring/index.js +1 -0
  194. package/dist/layout-bridge/measuring/index.mjs +1 -0
  195. package/dist/layout-bridge/tableInsertHover.d.mts +45 -0
  196. package/dist/layout-bridge/tableInsertHover.d.ts +45 -0
  197. package/dist/layout-bridge/tableInsertHover.js +1 -0
  198. package/dist/layout-bridge/tableInsertHover.mjs +1 -0
  199. package/dist/layout-bridge/toFlowBlocks.d.mts +122 -0
  200. package/dist/layout-bridge/toFlowBlocks.d.ts +122 -0
  201. package/dist/layout-bridge/toFlowBlocks.js +1 -0
  202. package/dist/layout-bridge/toFlowBlocks.mjs +1 -0
  203. package/dist/layout-engine/index.d.mts +322 -0
  204. package/dist/layout-engine/index.d.ts +322 -0
  205. package/dist/layout-engine/index.js +1 -0
  206. package/dist/layout-engine/index.mjs +1 -0
  207. package/dist/layout-engine/types.d.mts +903 -0
  208. package/dist/layout-engine/types.d.ts +903 -0
  209. package/dist/layout-engine/types.js +1 -0
  210. package/dist/layout-engine/types.mjs +1 -0
  211. package/dist/layout-painter/index.d.mts +23 -0
  212. package/dist/layout-painter/index.d.ts +23 -0
  213. package/dist/layout-painter/index.js +1 -0
  214. package/dist/layout-painter/index.mjs +1 -0
  215. package/dist/layout-painter/renderPage.d.mts +674 -0
  216. package/dist/layout-painter/renderPage.d.ts +674 -0
  217. package/dist/layout-painter/renderPage.js +1 -0
  218. package/dist/layout-painter/renderPage.mjs +1 -0
  219. package/dist/lists-CdiIk_c1.d.ts +142 -0
  220. package/dist/lists-JDB80qyP.d.mts +142 -0
  221. package/dist/managers/AutoSaveManager.d.mts +96 -0
  222. package/dist/managers/AutoSaveManager.d.ts +96 -0
  223. package/dist/managers/AutoSaveManager.js +1 -0
  224. package/dist/managers/AutoSaveManager.mjs +1 -0
  225. package/dist/managers/TableSelectionManager.d.mts +95 -0
  226. package/dist/managers/TableSelectionManager.d.ts +95 -0
  227. package/dist/managers/TableSelectionManager.js +1 -0
  228. package/dist/managers/TableSelectionManager.mjs +1 -0
  229. package/dist/managers/types.d.mts +122 -0
  230. package/dist/managers/types.d.ts +122 -0
  231. package/dist/managers/types.js +1 -0
  232. package/dist/managers/types.mjs +0 -0
  233. package/dist/marks-BujVxYP4.d.ts +56 -0
  234. package/dist/marks-CCPVlQzL.d.mts +56 -0
  235. package/dist/mcp-cli.mjs +137 -0
  236. package/dist/mcp.d.mts +184 -0
  237. package/dist/mcp.d.ts +184 -0
  238. package/dist/mcp.js +16 -0
  239. package/dist/mcp.mjs +16 -0
  240. package/dist/nodes-BXi1Uu3e.d.mts +257 -0
  241. package/dist/nodes-DfKj9kUA.d.ts +257 -0
  242. package/dist/plugin-api/RenderedDomContext.d.mts +74 -0
  243. package/dist/plugin-api/RenderedDomContext.d.ts +74 -0
  244. package/dist/plugin-api/RenderedDomContext.js +1 -0
  245. package/dist/plugin-api/RenderedDomContext.mjs +1 -0
  246. package/dist/plugin-api/index.d.mts +15 -0
  247. package/dist/plugin-api/index.d.ts +15 -0
  248. package/dist/plugin-api/index.js +1 -0
  249. package/dist/plugin-api/index.mjs +0 -0
  250. package/dist/plugin-api/resolveItemPositions.d.mts +54 -0
  251. package/dist/plugin-api/resolveItemPositions.d.ts +54 -0
  252. package/dist/plugin-api/resolveItemPositions.js +1 -0
  253. package/dist/plugin-api/resolveItemPositions.mjs +1 -0
  254. package/dist/plugin-api/types.d.mts +190 -0
  255. package/dist/plugin-api/types.d.ts +190 -0
  256. package/dist/plugin-api/types.js +1 -0
  257. package/dist/plugin-api/types.mjs +0 -0
  258. package/dist/processTemplate-GPFDLQMX.mjs +1 -0
  259. package/dist/processTemplate-HH2E3HBO.js +1 -0
  260. package/dist/prosemirror/commands/formatting.d.mts +100 -0
  261. package/dist/prosemirror/commands/formatting.d.ts +100 -0
  262. package/dist/prosemirror/commands/formatting.js +1 -0
  263. package/dist/prosemirror/commands/formatting.mjs +1 -0
  264. package/dist/prosemirror/commands/index.d.mts +114 -0
  265. package/dist/prosemirror/commands/index.d.ts +114 -0
  266. package/dist/prosemirror/commands/index.js +1 -0
  267. package/dist/prosemirror/commands/index.mjs +1 -0
  268. package/dist/prosemirror/commands/pageBreak.d.mts +20 -0
  269. package/dist/prosemirror/commands/pageBreak.d.ts +20 -0
  270. package/dist/prosemirror/commands/pageBreak.js +1 -0
  271. package/dist/prosemirror/commands/pageBreak.mjs +1 -0
  272. package/dist/prosemirror/commands/paragraph.d.mts +70 -0
  273. package/dist/prosemirror/commands/paragraph.d.ts +70 -0
  274. package/dist/prosemirror/commands/paragraph.js +1 -0
  275. package/dist/prosemirror/commands/paragraph.mjs +1 -0
  276. package/dist/prosemirror/conversion/fromProseDoc.d.mts +66 -0
  277. package/dist/prosemirror/conversion/fromProseDoc.d.ts +66 -0
  278. package/dist/prosemirror/conversion/fromProseDoc.js +1 -0
  279. package/dist/prosemirror/conversion/fromProseDoc.mjs +1 -0
  280. package/dist/prosemirror/conversion/index.d.mts +78 -0
  281. package/dist/prosemirror/conversion/index.d.ts +78 -0
  282. package/dist/prosemirror/conversion/index.js +1 -0
  283. package/dist/prosemirror/conversion/index.mjs +1 -0
  284. package/dist/prosemirror/editor.css +763 -0
  285. package/dist/prosemirror/extensions/index.d.mts +79 -0
  286. package/dist/prosemirror/extensions/index.d.ts +79 -0
  287. package/dist/prosemirror/extensions/index.js +1 -0
  288. package/dist/prosemirror/extensions/index.mjs +1 -0
  289. package/dist/prosemirror/extensions/nodes/TableExtension.d.mts +30 -0
  290. package/dist/prosemirror/extensions/nodes/TableExtension.d.ts +30 -0
  291. package/dist/prosemirror/extensions/nodes/TableExtension.js +1 -0
  292. package/dist/prosemirror/extensions/nodes/TableExtension.mjs +1 -0
  293. package/dist/prosemirror/index.d.mts +71 -0
  294. package/dist/prosemirror/index.d.ts +71 -0
  295. package/dist/prosemirror/index.js +1 -0
  296. package/dist/prosemirror/index.mjs +1 -0
  297. package/dist/prosemirror/plugins/index.d.mts +50 -0
  298. package/dist/prosemirror/plugins/index.d.ts +50 -0
  299. package/dist/prosemirror/plugins/index.js +1 -0
  300. package/dist/prosemirror/plugins/index.mjs +1 -0
  301. package/dist/prosemirror/plugins/selectionTracker.d.mts +78 -0
  302. package/dist/prosemirror/plugins/selectionTracker.d.ts +78 -0
  303. package/dist/prosemirror/plugins/selectionTracker.js +1 -0
  304. package/dist/prosemirror/plugins/selectionTracker.mjs +1 -0
  305. package/dist/prosemirror/schema/index.d.mts +30 -0
  306. package/dist/prosemirror/schema/index.d.ts +30 -0
  307. package/dist/prosemirror/schema/index.js +1 -0
  308. package/dist/prosemirror/schema/index.mjs +1 -0
  309. package/dist/prosemirror/styles/index.d.mts +124 -0
  310. package/dist/prosemirror/styles/index.d.ts +124 -0
  311. package/dist/prosemirror/styles/index.js +1 -0
  312. package/dist/prosemirror/styles/index.mjs +1 -0
  313. package/dist/prosemirror/template/prosemirror-plugin.d.mts +66 -0
  314. package/dist/prosemirror/template/prosemirror-plugin.d.ts +66 -0
  315. package/dist/prosemirror/template/prosemirror-plugin.js +15 -0
  316. package/dist/prosemirror/template/prosemirror-plugin.mjs +15 -0
  317. package/dist/prosemirror/utils/ClickPositionResolver.d.mts +109 -0
  318. package/dist/prosemirror/utils/ClickPositionResolver.d.ts +109 -0
  319. package/dist/prosemirror/utils/ClickPositionResolver.js +1 -0
  320. package/dist/prosemirror/utils/ClickPositionResolver.mjs +1 -0
  321. package/dist/prosemirror/utils/LayoutSelectionGate.d.mts +81 -0
  322. package/dist/prosemirror/utils/LayoutSelectionGate.d.ts +81 -0
  323. package/dist/prosemirror/utils/LayoutSelectionGate.js +1 -0
  324. package/dist/prosemirror/utils/LayoutSelectionGate.mjs +1 -0
  325. package/dist/prosemirror/utils/PointerEventHandler.d.mts +94 -0
  326. package/dist/prosemirror/utils/PointerEventHandler.d.ts +94 -0
  327. package/dist/prosemirror/utils/PointerEventHandler.js +1 -0
  328. package/dist/prosemirror/utils/PointerEventHandler.mjs +1 -0
  329. package/dist/prosemirror/utils/extractTrackedChanges.d.mts +63 -0
  330. package/dist/prosemirror/utils/extractTrackedChanges.d.ts +63 -0
  331. package/dist/prosemirror/utils/extractTrackedChanges.js +1 -0
  332. package/dist/prosemirror/utils/extractTrackedChanges.mjs +1 -0
  333. package/dist/prosemirror/utils/visualLineNavigation.d.mts +45 -0
  334. package/dist/prosemirror/utils/visualLineNavigation.d.ts +45 -0
  335. package/dist/prosemirror/utils/visualLineNavigation.js +1 -0
  336. package/dist/prosemirror/utils/visualLineNavigation.mjs +1 -0
  337. package/dist/registry-Cpyybgij.d.mts +165 -0
  338. package/dist/registry-E5pahPKL.d.ts +165 -0
  339. package/dist/selectionContext-85CE0f7a.d.ts +570 -0
  340. package/dist/selectionContext-Xq3AY7pn.d.mts +570 -0
  341. package/dist/selectiveSave-CWaPEv0B.d.ts +31 -0
  342. package/dist/selectiveSave-jinP_4xa.d.mts +31 -0
  343. package/dist/selectiveXmlPatch-ypkxlTD_.d.mts +23 -0
  344. package/dist/selectiveXmlPatch-ypkxlTD_.d.ts +23 -0
  345. package/dist/styles-BBoqh07F.d.mts +233 -0
  346. package/dist/styles-jqO45PSq.d.ts +233 -0
  347. package/dist/table-P8esKWAc.d.ts +82 -0
  348. package/dist/table-_t_W8oQf.d.mts +82 -0
  349. package/dist/types/agentApi.d.mts +467 -0
  350. package/dist/types/agentApi.d.ts +467 -0
  351. package/dist/types/agentApi.js +1 -0
  352. package/dist/types/agentApi.mjs +1 -0
  353. package/dist/types/content.d.mts +1181 -0
  354. package/dist/types/content.d.ts +1181 -0
  355. package/dist/types/content.js +1 -0
  356. package/dist/types/content.mjs +0 -0
  357. package/dist/types/document.d.mts +106 -0
  358. package/dist/types/document.d.ts +106 -0
  359. package/dist/types/document.js +1 -0
  360. package/dist/types/document.mjs +0 -0
  361. package/dist/types-DXG7vqe9.d.ts +311 -0
  362. package/dist/types-RchZmPFN.d.mts +137 -0
  363. package/dist/types-RchZmPFN.d.ts +137 -0
  364. package/dist/types-dYdjUZMo.d.mts +311 -0
  365. package/dist/utils/cardStyles.d.mts +31 -0
  366. package/dist/utils/cardStyles.d.ts +31 -0
  367. package/dist/utils/cardStyles.js +1 -0
  368. package/dist/utils/cardStyles.mjs +1 -0
  369. package/dist/utils/comments.d.mts +48 -0
  370. package/dist/utils/comments.d.ts +48 -0
  371. package/dist/utils/comments.js +1 -0
  372. package/dist/utils/comments.mjs +1 -0
  373. package/dist/utils/findReplace.d.mts +114 -0
  374. package/dist/utils/findReplace.d.ts +114 -0
  375. package/dist/utils/findReplace.js +2 -0
  376. package/dist/utils/findReplace.mjs +2 -0
  377. package/dist/utils/findVerticalScrollParent.d.mts +25 -0
  378. package/dist/utils/findVerticalScrollParent.d.ts +25 -0
  379. package/dist/utils/findVerticalScrollParent.js +1 -0
  380. package/dist/utils/findVerticalScrollParent.mjs +1 -0
  381. package/dist/utils/fontOptions.d.mts +21 -0
  382. package/dist/utils/fontOptions.d.ts +21 -0
  383. package/dist/utils/fontOptions.js +1 -0
  384. package/dist/utils/fontOptions.mjs +1 -0
  385. package/dist/utils/headingCollector.d.mts +32 -0
  386. package/dist/utils/headingCollector.d.ts +32 -0
  387. package/dist/utils/headingCollector.js +1 -0
  388. package/dist/utils/headingCollector.mjs +1 -0
  389. package/dist/utils/highlightColors.d.mts +14 -0
  390. package/dist/utils/highlightColors.d.ts +14 -0
  391. package/dist/utils/highlightColors.js +1 -0
  392. package/dist/utils/highlightColors.mjs +1 -0
  393. package/dist/utils/index.d.mts +711 -0
  394. package/dist/utils/index.d.ts +711 -0
  395. package/dist/utils/index.js +82 -0
  396. package/dist/utils/index.mjs +82 -0
  397. package/dist/utils/listState.d.mts +27 -0
  398. package/dist/utils/listState.d.ts +27 -0
  399. package/dist/utils/listState.js +1 -0
  400. package/dist/utils/listState.mjs +1 -0
  401. package/dist/utils/reportIssue.d.mts +23 -0
  402. package/dist/utils/reportIssue.d.ts +23 -0
  403. package/dist/utils/reportIssue.js +2 -0
  404. package/dist/utils/reportIssue.mjs +2 -0
  405. package/dist/utils/sidebarConstants.d.mts +10 -0
  406. package/dist/utils/sidebarConstants.d.ts +10 -0
  407. package/dist/utils/sidebarConstants.js +1 -0
  408. package/dist/utils/sidebarConstants.mjs +1 -0
  409. package/dist/utils/textSelection.d.mts +92 -0
  410. package/dist/utils/textSelection.d.ts +92 -0
  411. package/dist/utils/textSelection.js +1 -0
  412. package/dist/utils/textSelection.mjs +1 -0
  413. package/dist/utils/units.d.mts +91 -0
  414. package/dist/utils/units.d.ts +91 -0
  415. package/dist/utils/units.js +1 -0
  416. package/dist/utils/units.mjs +1 -0
  417. package/dist/variableDetector-CAdt8yOr.d.mts +115 -0
  418. package/dist/variableDetector-W4XEN9YC.d.ts +115 -0
  419. package/package.json +565 -0
@@ -0,0 +1,320 @@
1
+ /**
2
+ * Text Measurement Module
3
+ *
4
+ * Provides text measurement utilities for the layout engine.
5
+ * Uses Canvas API for accurate, cached measurements.
6
+ * @packageDocumentation
7
+ * @public
8
+ */
9
+ import { WrapTextDirection, TextRun, ParagraphBlock, ParagraphMeasure } from '../../layout-engine/types.mjs';
10
+
11
+ /**
12
+ * Measurement container for text layout
13
+ *
14
+ * Uses HTML5 Canvas API to measure text runs and calculate typography metrics.
15
+ * Canvas-based measurement is more accurate and performant than DOM-based approaches.
16
+ *
17
+ * Typography conventions (matching Word behavior):
18
+ * - ascent ≈ fontSize * 0.8 (baseline to top)
19
+ * - descent ≈ fontSize * 0.2 (baseline to bottom)
20
+ * - lineHeight from font metrics (fontBoundingBoxAscent + fontBoundingBoxDescent),
21
+ * falling back to fontSize * 1.0 (OOXML spec default single spacing)
22
+ */
23
+ /**
24
+ * Font styling properties for measurement
25
+ */
26
+ interface FontStyle {
27
+ fontFamily?: string;
28
+ fontSize?: number;
29
+ bold?: boolean;
30
+ italic?: boolean;
31
+ letterSpacing?: number;
32
+ }
33
+ /**
34
+ * Typography metrics for a font
35
+ */
36
+ interface FontMetrics {
37
+ fontSize: number;
38
+ ascent: number;
39
+ descent: number;
40
+ lineHeight: number;
41
+ fontFamily: string;
42
+ /** OS/2 single-line ratio for OOXML line spacing calculation */
43
+ singleLineRatio: number;
44
+ }
45
+ /**
46
+ * Result of measuring a text string
47
+ */
48
+ interface TextMeasurement {
49
+ width: number;
50
+ height: number;
51
+ ascent: number;
52
+ descent: number;
53
+ }
54
+ /**
55
+ * Result of measuring a run of text
56
+ */
57
+ interface RunMeasurement {
58
+ width: number;
59
+ charWidths: number[];
60
+ metrics: FontMetrics;
61
+ }
62
+ /**
63
+ * Get or create a canvas 2D context for text measurement
64
+ */
65
+ declare function getCanvasContext(): CanvasRenderingContext2D;
66
+ /**
67
+ * Reset the canvas context (useful for testing)
68
+ */
69
+ declare function resetCanvasContext(): void;
70
+ /**
71
+ * Build a CSS font string from styling properties
72
+ *
73
+ * Font sizes are in points and need to be converted to pixels for canvas.
74
+ * 1pt = 96/72 px ≈ 1.333px at standard web DPI.
75
+ *
76
+ * Uses the font resolver to get category-appropriate fallback stacks
77
+ * (serif fonts get serif fallbacks, sans-serif get sans-serif, etc.)
78
+ * matching the same stacks used in rendering for consistent measurements.
79
+ *
80
+ * @example
81
+ * buildFontString({ fontFamily: "Arial", fontSize: 12, bold: true })
82
+ * // Returns: "bold 16px Arial, Arimo, Helvetica, sans-serif" (12pt = 16px)
83
+ */
84
+ declare function buildFontString(style: FontStyle): string;
85
+ /**
86
+ * Get typography metrics for a given font size and family
87
+ *
88
+ * Uses Canvas TextMetrics API when available for precise metrics,
89
+ * falls back to ratio-based approximations.
90
+ */
91
+ declare function getFontMetrics(style: FontStyle): FontMetrics;
92
+ /**
93
+ * Measure the width of a text string with specific styling
94
+ *
95
+ * @param text - The text to measure
96
+ * @param style - Font styling properties
97
+ * @returns Width in pixels
98
+ */
99
+ declare function measureTextWidth(text: string, style: FontStyle): number;
100
+ /**
101
+ * Measure text and return full metrics
102
+ */
103
+ declare function measureText(text: string, style: FontStyle): TextMeasurement;
104
+ /**
105
+ * Measure a run of text and return per-character widths for click positioning
106
+ *
107
+ * @param text - The text to measure
108
+ * @param style - Font styling properties
109
+ * @returns Run measurement with width and per-character widths
110
+ */
111
+ declare function measureRun(text: string, style: FontStyle): RunMeasurement;
112
+ /**
113
+ * Find the character offset at a given X position within a text run
114
+ *
115
+ * @param x - X position relative to run start
116
+ * @param charWidths - Per-character widths from measureRun
117
+ * @returns Character offset (0-based index)
118
+ */
119
+ declare function findCharacterAtX(x: number, charWidths: number[]): number;
120
+ /**
121
+ * Get the X position of a character offset within a text run
122
+ *
123
+ * @param offset - Character offset (0-based index)
124
+ * @param charWidths - Per-character widths from measureRun
125
+ * @returns X position in pixels
126
+ */
127
+ declare function getXForCharacter(offset: number, charWidths: number[]): number;
128
+ /**
129
+ * Convert twips to pixels
130
+ */
131
+ declare function twipsToPx(twips: number): number;
132
+ /**
133
+ * Convert pixels to twips
134
+ */
135
+ declare function pxToTwips(px: number): number;
136
+ /**
137
+ * Convert points to pixels
138
+ */
139
+ declare function ptToPx(pt: number): number;
140
+ /**
141
+ * Convert pixels to points
142
+ */
143
+ declare function pxToPt(px: number): number;
144
+ /**
145
+ * Convert OOXML half-points to pixels
146
+ * OOXML font sizes are in half-points (24 = 12pt)
147
+ */
148
+ declare function halfPtToPx(halfPt: number): number;
149
+ /**
150
+ * Convert pixels to OOXML half-points
151
+ */
152
+ declare function pxToHalfPt(px: number): number;
153
+
154
+ interface FloatingExclusionRect {
155
+ /** Which side the object is on for simple one-sided wrapping. */
156
+ side: 'left' | 'right';
157
+ /** X position relative to the content area. */
158
+ x: number;
159
+ /** Y position relative to the content area. */
160
+ y: number;
161
+ width: number;
162
+ height: number;
163
+ distTop: number;
164
+ distBottom: number;
165
+ distLeft: number;
166
+ distRight: number;
167
+ wrapText?: WrapTextDirection;
168
+ wrapType?: string;
169
+ }
170
+ interface FloatingImageZone {
171
+ leftMargin: number;
172
+ rightMargin: number;
173
+ topY: number;
174
+ bottomY: number;
175
+ segments?: FloatingLineSegmentZone[];
176
+ }
177
+ interface FloatingLineSegmentZone {
178
+ leftOffset: number;
179
+ availableWidth: number;
180
+ }
181
+ interface FloatingLineMargins {
182
+ leftMargin: number;
183
+ rightMargin: number;
184
+ segments?: FloatingLineSegmentZone[];
185
+ }
186
+ declare function rectsToFloatingZones(rects: FloatingExclusionRect[], contentWidth: number): FloatingImageZone[];
187
+ declare function getFloatingMargins(lineY: number, lineHeight: number, zones: FloatingImageZone[] | undefined, paragraphYOffset: number): FloatingLineMargins;
188
+
189
+ /**
190
+ * Paragraph measurement module
191
+ *
192
+ * Measures paragraph blocks and computes line breaking.
193
+ * Converts runs into measured lines with typography metrics.
194
+ */
195
+
196
+ /**
197
+ * Options for paragraph measurement
198
+ */
199
+ interface MeasureParagraphOptions {
200
+ /** Floating image exclusion zones that affect line widths */
201
+ floatingZones?: FloatingImageZone[];
202
+ /** Y offset of this paragraph relative to the exclusion zones (default: 0) */
203
+ paragraphYOffset?: number;
204
+ }
205
+ /**
206
+ * Measure a paragraph block and compute line breaks
207
+ *
208
+ * @param block - The paragraph block to measure
209
+ * @param maxWidth - Maximum available width for the paragraph
210
+ * @param options - Optional measurement options (floating zones, Y offset)
211
+ * @returns ParagraphMeasure with lines and total height
212
+ */
213
+ declare function measureParagraph(block: ParagraphBlock, maxWidth: number, options?: MeasureParagraphOptions): ParagraphMeasure;
214
+ /**
215
+ * Measure multiple paragraph blocks
216
+ *
217
+ * @param blocks - Array of paragraph blocks to measure
218
+ * @param maxWidth - Maximum available width
219
+ * @returns Array of ParagraphMeasure results
220
+ */
221
+ declare function measureParagraphs(blocks: ParagraphBlock[], maxWidth: number): ParagraphMeasure[];
222
+ /**
223
+ * Get per-character widths for a text run (for click positioning)
224
+ *
225
+ * @param run - The text run to measure
226
+ * @returns Array of character widths
227
+ */
228
+ declare function getRunCharWidths(run: TextRun): number[];
229
+
230
+ /**
231
+ * Measurement Cache
232
+ *
233
+ * LRU cache for text width measurements and paragraph layout results.
234
+ * Improves performance by avoiding repeated measurements of identical content.
235
+ */
236
+
237
+ /**
238
+ * Get cached text width or return undefined
239
+ */
240
+ declare function getCachedTextWidth(text: string, font: string, letterSpacing?: number): number | undefined;
241
+ /**
242
+ * Store text width in cache
243
+ */
244
+ declare function setCachedTextWidth(text: string, font: string, letterSpacing: number, width: number): void;
245
+ /**
246
+ * Clear the text width cache
247
+ */
248
+ declare function clearTextWidthCache(): void;
249
+ /**
250
+ * Set the maximum size of the text width cache
251
+ */
252
+ declare function setTextCacheSize(size: number): void;
253
+ /**
254
+ * Get current text width cache size
255
+ */
256
+ declare function getTextCacheSize(): number;
257
+ /**
258
+ * Cached font metrics entry
259
+ */
260
+ interface FontMetricsEntry {
261
+ ascent: number;
262
+ descent: number;
263
+ lineHeight: number;
264
+ }
265
+ /**
266
+ * Get cached font metrics or return undefined
267
+ */
268
+ declare function getCachedFontMetrics(fontFamily: string, fontSize: number, bold?: boolean, italic?: boolean): FontMetricsEntry | undefined;
269
+ /**
270
+ * Store font metrics in cache
271
+ */
272
+ declare function setCachedFontMetrics(fontFamily: string, fontSize: number, bold: boolean, italic: boolean, metrics: FontMetricsEntry): void;
273
+ /**
274
+ * Clear the font metrics cache
275
+ */
276
+ declare function clearFontMetricsCache(): void;
277
+ /**
278
+ * Set the maximum size of the font metrics cache
279
+ */
280
+ declare function setFontCacheSize(size: number): void;
281
+ /**
282
+ * Get current font metrics cache size
283
+ */
284
+ declare function getFontCacheSize(): number;
285
+ /**
286
+ * Generate a simple hash for a paragraph block
287
+ * Used as cache key to identify identical content
288
+ */
289
+ declare function hashParagraphBlock(block: ParagraphBlock): string;
290
+ /**
291
+ * Get cached paragraph measurement or return undefined
292
+ */
293
+ declare function getCachedParagraphMeasure(block: ParagraphBlock, maxWidth: number): ParagraphMeasure | undefined;
294
+ /**
295
+ * Store paragraph measurement in cache
296
+ */
297
+ declare function setCachedParagraphMeasure(block: ParagraphBlock, maxWidth: number, measure: ParagraphMeasure): void;
298
+ /**
299
+ * Clear the paragraph measure cache
300
+ */
301
+ declare function clearParagraphMeasureCache(): void;
302
+ /**
303
+ * Set the maximum size of the paragraph measure cache
304
+ */
305
+ declare function setParagraphCacheSize(size: number): void;
306
+ /**
307
+ * Get current paragraph measure cache size
308
+ */
309
+ declare function getParagraphCacheSize(): number;
310
+ /**
311
+ * Clear all measurement caches
312
+ * Call when fonts change, page width changes, or for testing
313
+ */
314
+ declare function clearAllCaches(): void;
315
+ /**
316
+ * Get total size of all caches
317
+ */
318
+ declare function getTotalCacheSize(): number;
319
+
320
+ export { type FloatingExclusionRect, type FloatingImageZone, type FloatingLineSegmentZone, type FontMetrics, type FontStyle, type MeasureParagraphOptions, type RunMeasurement, type TextMeasurement, buildFontString, clearAllCaches, clearFontMetricsCache, clearParagraphMeasureCache, clearTextWidthCache, findCharacterAtX, getCachedFontMetrics, getCachedParagraphMeasure, getCachedTextWidth, getCanvasContext, getFloatingMargins, getFontCacheSize, getFontMetrics, getParagraphCacheSize, getRunCharWidths, getTextCacheSize, getTotalCacheSize, getXForCharacter, halfPtToPx, hashParagraphBlock, measureParagraph, measureParagraphs, measureRun, measureText, measureTextWidth, ptToPx, pxToHalfPt, pxToPt, pxToTwips, rectsToFloatingZones, resetCanvasContext, setCachedFontMetrics, setCachedParagraphMeasure, setCachedTextWidth, setFontCacheSize, setParagraphCacheSize, setTextCacheSize, twipsToPx };
@@ -0,0 +1,320 @@
1
+ /**
2
+ * Text Measurement Module
3
+ *
4
+ * Provides text measurement utilities for the layout engine.
5
+ * Uses Canvas API for accurate, cached measurements.
6
+ * @packageDocumentation
7
+ * @public
8
+ */
9
+ import { WrapTextDirection, TextRun, ParagraphBlock, ParagraphMeasure } from '../../layout-engine/types.js';
10
+
11
+ /**
12
+ * Measurement container for text layout
13
+ *
14
+ * Uses HTML5 Canvas API to measure text runs and calculate typography metrics.
15
+ * Canvas-based measurement is more accurate and performant than DOM-based approaches.
16
+ *
17
+ * Typography conventions (matching Word behavior):
18
+ * - ascent ≈ fontSize * 0.8 (baseline to top)
19
+ * - descent ≈ fontSize * 0.2 (baseline to bottom)
20
+ * - lineHeight from font metrics (fontBoundingBoxAscent + fontBoundingBoxDescent),
21
+ * falling back to fontSize * 1.0 (OOXML spec default single spacing)
22
+ */
23
+ /**
24
+ * Font styling properties for measurement
25
+ */
26
+ interface FontStyle {
27
+ fontFamily?: string;
28
+ fontSize?: number;
29
+ bold?: boolean;
30
+ italic?: boolean;
31
+ letterSpacing?: number;
32
+ }
33
+ /**
34
+ * Typography metrics for a font
35
+ */
36
+ interface FontMetrics {
37
+ fontSize: number;
38
+ ascent: number;
39
+ descent: number;
40
+ lineHeight: number;
41
+ fontFamily: string;
42
+ /** OS/2 single-line ratio for OOXML line spacing calculation */
43
+ singleLineRatio: number;
44
+ }
45
+ /**
46
+ * Result of measuring a text string
47
+ */
48
+ interface TextMeasurement {
49
+ width: number;
50
+ height: number;
51
+ ascent: number;
52
+ descent: number;
53
+ }
54
+ /**
55
+ * Result of measuring a run of text
56
+ */
57
+ interface RunMeasurement {
58
+ width: number;
59
+ charWidths: number[];
60
+ metrics: FontMetrics;
61
+ }
62
+ /**
63
+ * Get or create a canvas 2D context for text measurement
64
+ */
65
+ declare function getCanvasContext(): CanvasRenderingContext2D;
66
+ /**
67
+ * Reset the canvas context (useful for testing)
68
+ */
69
+ declare function resetCanvasContext(): void;
70
+ /**
71
+ * Build a CSS font string from styling properties
72
+ *
73
+ * Font sizes are in points and need to be converted to pixels for canvas.
74
+ * 1pt = 96/72 px ≈ 1.333px at standard web DPI.
75
+ *
76
+ * Uses the font resolver to get category-appropriate fallback stacks
77
+ * (serif fonts get serif fallbacks, sans-serif get sans-serif, etc.)
78
+ * matching the same stacks used in rendering for consistent measurements.
79
+ *
80
+ * @example
81
+ * buildFontString({ fontFamily: "Arial", fontSize: 12, bold: true })
82
+ * // Returns: "bold 16px Arial, Arimo, Helvetica, sans-serif" (12pt = 16px)
83
+ */
84
+ declare function buildFontString(style: FontStyle): string;
85
+ /**
86
+ * Get typography metrics for a given font size and family
87
+ *
88
+ * Uses Canvas TextMetrics API when available for precise metrics,
89
+ * falls back to ratio-based approximations.
90
+ */
91
+ declare function getFontMetrics(style: FontStyle): FontMetrics;
92
+ /**
93
+ * Measure the width of a text string with specific styling
94
+ *
95
+ * @param text - The text to measure
96
+ * @param style - Font styling properties
97
+ * @returns Width in pixels
98
+ */
99
+ declare function measureTextWidth(text: string, style: FontStyle): number;
100
+ /**
101
+ * Measure text and return full metrics
102
+ */
103
+ declare function measureText(text: string, style: FontStyle): TextMeasurement;
104
+ /**
105
+ * Measure a run of text and return per-character widths for click positioning
106
+ *
107
+ * @param text - The text to measure
108
+ * @param style - Font styling properties
109
+ * @returns Run measurement with width and per-character widths
110
+ */
111
+ declare function measureRun(text: string, style: FontStyle): RunMeasurement;
112
+ /**
113
+ * Find the character offset at a given X position within a text run
114
+ *
115
+ * @param x - X position relative to run start
116
+ * @param charWidths - Per-character widths from measureRun
117
+ * @returns Character offset (0-based index)
118
+ */
119
+ declare function findCharacterAtX(x: number, charWidths: number[]): number;
120
+ /**
121
+ * Get the X position of a character offset within a text run
122
+ *
123
+ * @param offset - Character offset (0-based index)
124
+ * @param charWidths - Per-character widths from measureRun
125
+ * @returns X position in pixels
126
+ */
127
+ declare function getXForCharacter(offset: number, charWidths: number[]): number;
128
+ /**
129
+ * Convert twips to pixels
130
+ */
131
+ declare function twipsToPx(twips: number): number;
132
+ /**
133
+ * Convert pixels to twips
134
+ */
135
+ declare function pxToTwips(px: number): number;
136
+ /**
137
+ * Convert points to pixels
138
+ */
139
+ declare function ptToPx(pt: number): number;
140
+ /**
141
+ * Convert pixels to points
142
+ */
143
+ declare function pxToPt(px: number): number;
144
+ /**
145
+ * Convert OOXML half-points to pixels
146
+ * OOXML font sizes are in half-points (24 = 12pt)
147
+ */
148
+ declare function halfPtToPx(halfPt: number): number;
149
+ /**
150
+ * Convert pixels to OOXML half-points
151
+ */
152
+ declare function pxToHalfPt(px: number): number;
153
+
154
+ interface FloatingExclusionRect {
155
+ /** Which side the object is on for simple one-sided wrapping. */
156
+ side: 'left' | 'right';
157
+ /** X position relative to the content area. */
158
+ x: number;
159
+ /** Y position relative to the content area. */
160
+ y: number;
161
+ width: number;
162
+ height: number;
163
+ distTop: number;
164
+ distBottom: number;
165
+ distLeft: number;
166
+ distRight: number;
167
+ wrapText?: WrapTextDirection;
168
+ wrapType?: string;
169
+ }
170
+ interface FloatingImageZone {
171
+ leftMargin: number;
172
+ rightMargin: number;
173
+ topY: number;
174
+ bottomY: number;
175
+ segments?: FloatingLineSegmentZone[];
176
+ }
177
+ interface FloatingLineSegmentZone {
178
+ leftOffset: number;
179
+ availableWidth: number;
180
+ }
181
+ interface FloatingLineMargins {
182
+ leftMargin: number;
183
+ rightMargin: number;
184
+ segments?: FloatingLineSegmentZone[];
185
+ }
186
+ declare function rectsToFloatingZones(rects: FloatingExclusionRect[], contentWidth: number): FloatingImageZone[];
187
+ declare function getFloatingMargins(lineY: number, lineHeight: number, zones: FloatingImageZone[] | undefined, paragraphYOffset: number): FloatingLineMargins;
188
+
189
+ /**
190
+ * Paragraph measurement module
191
+ *
192
+ * Measures paragraph blocks and computes line breaking.
193
+ * Converts runs into measured lines with typography metrics.
194
+ */
195
+
196
+ /**
197
+ * Options for paragraph measurement
198
+ */
199
+ interface MeasureParagraphOptions {
200
+ /** Floating image exclusion zones that affect line widths */
201
+ floatingZones?: FloatingImageZone[];
202
+ /** Y offset of this paragraph relative to the exclusion zones (default: 0) */
203
+ paragraphYOffset?: number;
204
+ }
205
+ /**
206
+ * Measure a paragraph block and compute line breaks
207
+ *
208
+ * @param block - The paragraph block to measure
209
+ * @param maxWidth - Maximum available width for the paragraph
210
+ * @param options - Optional measurement options (floating zones, Y offset)
211
+ * @returns ParagraphMeasure with lines and total height
212
+ */
213
+ declare function measureParagraph(block: ParagraphBlock, maxWidth: number, options?: MeasureParagraphOptions): ParagraphMeasure;
214
+ /**
215
+ * Measure multiple paragraph blocks
216
+ *
217
+ * @param blocks - Array of paragraph blocks to measure
218
+ * @param maxWidth - Maximum available width
219
+ * @returns Array of ParagraphMeasure results
220
+ */
221
+ declare function measureParagraphs(blocks: ParagraphBlock[], maxWidth: number): ParagraphMeasure[];
222
+ /**
223
+ * Get per-character widths for a text run (for click positioning)
224
+ *
225
+ * @param run - The text run to measure
226
+ * @returns Array of character widths
227
+ */
228
+ declare function getRunCharWidths(run: TextRun): number[];
229
+
230
+ /**
231
+ * Measurement Cache
232
+ *
233
+ * LRU cache for text width measurements and paragraph layout results.
234
+ * Improves performance by avoiding repeated measurements of identical content.
235
+ */
236
+
237
+ /**
238
+ * Get cached text width or return undefined
239
+ */
240
+ declare function getCachedTextWidth(text: string, font: string, letterSpacing?: number): number | undefined;
241
+ /**
242
+ * Store text width in cache
243
+ */
244
+ declare function setCachedTextWidth(text: string, font: string, letterSpacing: number, width: number): void;
245
+ /**
246
+ * Clear the text width cache
247
+ */
248
+ declare function clearTextWidthCache(): void;
249
+ /**
250
+ * Set the maximum size of the text width cache
251
+ */
252
+ declare function setTextCacheSize(size: number): void;
253
+ /**
254
+ * Get current text width cache size
255
+ */
256
+ declare function getTextCacheSize(): number;
257
+ /**
258
+ * Cached font metrics entry
259
+ */
260
+ interface FontMetricsEntry {
261
+ ascent: number;
262
+ descent: number;
263
+ lineHeight: number;
264
+ }
265
+ /**
266
+ * Get cached font metrics or return undefined
267
+ */
268
+ declare function getCachedFontMetrics(fontFamily: string, fontSize: number, bold?: boolean, italic?: boolean): FontMetricsEntry | undefined;
269
+ /**
270
+ * Store font metrics in cache
271
+ */
272
+ declare function setCachedFontMetrics(fontFamily: string, fontSize: number, bold: boolean, italic: boolean, metrics: FontMetricsEntry): void;
273
+ /**
274
+ * Clear the font metrics cache
275
+ */
276
+ declare function clearFontMetricsCache(): void;
277
+ /**
278
+ * Set the maximum size of the font metrics cache
279
+ */
280
+ declare function setFontCacheSize(size: number): void;
281
+ /**
282
+ * Get current font metrics cache size
283
+ */
284
+ declare function getFontCacheSize(): number;
285
+ /**
286
+ * Generate a simple hash for a paragraph block
287
+ * Used as cache key to identify identical content
288
+ */
289
+ declare function hashParagraphBlock(block: ParagraphBlock): string;
290
+ /**
291
+ * Get cached paragraph measurement or return undefined
292
+ */
293
+ declare function getCachedParagraphMeasure(block: ParagraphBlock, maxWidth: number): ParagraphMeasure | undefined;
294
+ /**
295
+ * Store paragraph measurement in cache
296
+ */
297
+ declare function setCachedParagraphMeasure(block: ParagraphBlock, maxWidth: number, measure: ParagraphMeasure): void;
298
+ /**
299
+ * Clear the paragraph measure cache
300
+ */
301
+ declare function clearParagraphMeasureCache(): void;
302
+ /**
303
+ * Set the maximum size of the paragraph measure cache
304
+ */
305
+ declare function setParagraphCacheSize(size: number): void;
306
+ /**
307
+ * Get current paragraph measure cache size
308
+ */
309
+ declare function getParagraphCacheSize(): number;
310
+ /**
311
+ * Clear all measurement caches
312
+ * Call when fonts change, page width changes, or for testing
313
+ */
314
+ declare function clearAllCaches(): void;
315
+ /**
316
+ * Get total size of all caches
317
+ */
318
+ declare function getTotalCacheSize(): number;
319
+
320
+ export { type FloatingExclusionRect, type FloatingImageZone, type FloatingLineSegmentZone, type FontMetrics, type FontStyle, type MeasureParagraphOptions, type RunMeasurement, type TextMeasurement, buildFontString, clearAllCaches, clearFontMetricsCache, clearParagraphMeasureCache, clearTextWidthCache, findCharacterAtX, getCachedFontMetrics, getCachedParagraphMeasure, getCachedTextWidth, getCanvasContext, getFloatingMargins, getFontCacheSize, getFontMetrics, getParagraphCacheSize, getRunCharWidths, getTextCacheSize, getTotalCacheSize, getXForCharacter, halfPtToPx, hashParagraphBlock, measureParagraph, measureParagraphs, measureRun, measureText, measureTextWidth, ptToPx, pxToHalfPt, pxToPt, pxToTwips, rectsToFloatingZones, resetCanvasContext, setCachedFontMetrics, setCachedParagraphMeasure, setCachedTextWidth, setFontCacheSize, setParagraphCacheSize, setTextCacheSize, twipsToPx };
@@ -0,0 +1 @@
1
+ 'use strict';var chunkDY2MJCSV_js=require('../../chunk-DY2MJCSV.js');require('../../chunk-JFZIXFRC.js'),require('../../chunk-N3Y5BUKV.js'),require('../../chunk-DC7S76ZX.js');Object.defineProperty(exports,"buildFontString",{enumerable:true,get:function(){return chunkDY2MJCSV_js.c}});Object.defineProperty(exports,"clearAllCaches",{enumerable:true,get:function(){return chunkDY2MJCSV_js.K}});Object.defineProperty(exports,"clearFontMetricsCache",{enumerable:true,get:function(){return chunkDY2MJCSV_js.B}});Object.defineProperty(exports,"clearParagraphMeasureCache",{enumerable:true,get:function(){return chunkDY2MJCSV_js.H}});Object.defineProperty(exports,"clearTextWidthCache",{enumerable:true,get:function(){return chunkDY2MJCSV_js.w}});Object.defineProperty(exports,"findCharacterAtX",{enumerable:true,get:function(){return chunkDY2MJCSV_js.h}});Object.defineProperty(exports,"getCachedFontMetrics",{enumerable:true,get:function(){return chunkDY2MJCSV_js.z}});Object.defineProperty(exports,"getCachedParagraphMeasure",{enumerable:true,get:function(){return chunkDY2MJCSV_js.F}});Object.defineProperty(exports,"getCachedTextWidth",{enumerable:true,get:function(){return chunkDY2MJCSV_js.u}});Object.defineProperty(exports,"getCanvasContext",{enumerable:true,get:function(){return chunkDY2MJCSV_js.a}});Object.defineProperty(exports,"getFloatingMargins",{enumerable:true,get:function(){return chunkDY2MJCSV_js.q}});Object.defineProperty(exports,"getFontCacheSize",{enumerable:true,get:function(){return chunkDY2MJCSV_js.D}});Object.defineProperty(exports,"getFontMetrics",{enumerable:true,get:function(){return chunkDY2MJCSV_js.d}});Object.defineProperty(exports,"getParagraphCacheSize",{enumerable:true,get:function(){return chunkDY2MJCSV_js.J}});Object.defineProperty(exports,"getRunCharWidths",{enumerable:true,get:function(){return chunkDY2MJCSV_js.t}});Object.defineProperty(exports,"getTextCacheSize",{enumerable:true,get:function(){return chunkDY2MJCSV_js.y}});Object.defineProperty(exports,"getTotalCacheSize",{enumerable:true,get:function(){return chunkDY2MJCSV_js.L}});Object.defineProperty(exports,"getXForCharacter",{enumerable:true,get:function(){return chunkDY2MJCSV_js.i}});Object.defineProperty(exports,"halfPtToPx",{enumerable:true,get:function(){return chunkDY2MJCSV_js.n}});Object.defineProperty(exports,"hashParagraphBlock",{enumerable:true,get:function(){return chunkDY2MJCSV_js.E}});Object.defineProperty(exports,"measureParagraph",{enumerable:true,get:function(){return chunkDY2MJCSV_js.r}});Object.defineProperty(exports,"measureParagraphs",{enumerable:true,get:function(){return chunkDY2MJCSV_js.s}});Object.defineProperty(exports,"measureRun",{enumerable:true,get:function(){return chunkDY2MJCSV_js.g}});Object.defineProperty(exports,"measureText",{enumerable:true,get:function(){return chunkDY2MJCSV_js.f}});Object.defineProperty(exports,"measureTextWidth",{enumerable:true,get:function(){return chunkDY2MJCSV_js.e}});Object.defineProperty(exports,"ptToPx",{enumerable:true,get:function(){return chunkDY2MJCSV_js.l}});Object.defineProperty(exports,"pxToHalfPt",{enumerable:true,get:function(){return chunkDY2MJCSV_js.o}});Object.defineProperty(exports,"pxToPt",{enumerable:true,get:function(){return chunkDY2MJCSV_js.m}});Object.defineProperty(exports,"pxToTwips",{enumerable:true,get:function(){return chunkDY2MJCSV_js.k}});Object.defineProperty(exports,"rectsToFloatingZones",{enumerable:true,get:function(){return chunkDY2MJCSV_js.p}});Object.defineProperty(exports,"resetCanvasContext",{enumerable:true,get:function(){return chunkDY2MJCSV_js.b}});Object.defineProperty(exports,"setCachedFontMetrics",{enumerable:true,get:function(){return chunkDY2MJCSV_js.A}});Object.defineProperty(exports,"setCachedParagraphMeasure",{enumerable:true,get:function(){return chunkDY2MJCSV_js.G}});Object.defineProperty(exports,"setCachedTextWidth",{enumerable:true,get:function(){return chunkDY2MJCSV_js.v}});Object.defineProperty(exports,"setFontCacheSize",{enumerable:true,get:function(){return chunkDY2MJCSV_js.C}});Object.defineProperty(exports,"setParagraphCacheSize",{enumerable:true,get:function(){return chunkDY2MJCSV_js.I}});Object.defineProperty(exports,"setTextCacheSize",{enumerable:true,get:function(){return chunkDY2MJCSV_js.x}});Object.defineProperty(exports,"twipsToPx",{enumerable:true,get:function(){return chunkDY2MJCSV_js.j}});
@@ -0,0 +1 @@
1
+ export{c as buildFontString,K as clearAllCaches,B as clearFontMetricsCache,H as clearParagraphMeasureCache,w as clearTextWidthCache,h as findCharacterAtX,z as getCachedFontMetrics,F as getCachedParagraphMeasure,u as getCachedTextWidth,a as getCanvasContext,q as getFloatingMargins,D as getFontCacheSize,d as getFontMetrics,J as getParagraphCacheSize,t as getRunCharWidths,y as getTextCacheSize,L as getTotalCacheSize,i as getXForCharacter,n as halfPtToPx,E as hashParagraphBlock,r as measureParagraph,s as measureParagraphs,g as measureRun,f as measureText,e as measureTextWidth,l as ptToPx,o as pxToHalfPt,m as pxToPt,k as pxToTwips,p as rectsToFloatingZones,b as resetCanvasContext,A as setCachedFontMetrics,G as setCachedParagraphMeasure,v as setCachedTextWidth,C as setFontCacheSize,I as setParagraphCacheSize,x as setTextCacheSize,j as twipsToPx}from'../../chunk-G6Y4UZMJ.mjs';import'../../chunk-QPFJJPIC.mjs';import'../../chunk-AMENZY5F.mjs';import'../../chunk-QYUPLKLP.mjs';
@@ -0,0 +1,45 @@
1
+ /**
2
+ * Table-insert "+" hover hit-test.
3
+ *
4
+ * Pure DOM logic for the floating row/column insert button that shows
5
+ * when the mouse is near the left or top edge of a layout table. Lives
6
+ * in core so React + Vue + any future adapter can share the hit-test
7
+ * and just wire up their own UI rendering of the button.
8
+ *
9
+ * The function is gated by `hfEditMode`: tables in inactive HF/body
10
+ * regions don't surface the affordance. A header table only matches
11
+ * when the user is editing the header; a body table only matches when
12
+ * not in any HF edit mode.
13
+ * @packageDocumentation
14
+ * @public
15
+ */
16
+ declare const TABLE_INSERT_EDGE_PROXIMITY = 30;
17
+ declare const TABLE_INSERT_HIDE_DELAY_MS = 200;
18
+ type TableInsertHoverHit = {
19
+ type: 'row' | 'column';
20
+ /** Client-coordinate anchor for the button. Caller converts to its UI frame. */
21
+ clientX: number;
22
+ clientY: number;
23
+ /** PM position of the cell the button targets. */
24
+ cellPmPos: number;
25
+ };
26
+ type TableInsertHoverInput = {
27
+ mouseX: number;
28
+ mouseY: number;
29
+ pagesContainer: HTMLElement;
30
+ /** Element under the cursor at the time of the event (e.target). */
31
+ target: HTMLElement;
32
+ hfEditMode: 'header' | 'footer' | null;
33
+ /** Override edge proximity in pixels (defaults to TABLE_INSERT_EDGE_PROXIMITY). */
34
+ edgeProximity?: number;
35
+ };
36
+ /**
37
+ * Detect whether a mousemove should surface a row/column insert "+" button.
38
+ *
39
+ * Returns the button anchor + target cell PM position, or `null` if the
40
+ * mouse isn't near a row's left edge or a column's top edge — or if the
41
+ * relevant table belongs to an inactive HF/body region.
42
+ */
43
+ declare function detectTableInsertHover(input: TableInsertHoverInput): TableInsertHoverHit | null;
44
+
45
+ export { TABLE_INSERT_EDGE_PROXIMITY, TABLE_INSERT_HIDE_DELAY_MS, type TableInsertHoverHit, type TableInsertHoverInput, detectTableInsertHover };