documents.js 1.57.0 → 1.58.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 (454) hide show
  1. package/README.md +38 -0
  2. package/dist/blr-types-CYYC3yYU.d.cts +35 -0
  3. package/dist/blr-types-CYYC3yYU.d.ts +35 -0
  4. package/dist/cell-CNHPsDEk.d.cts +17 -0
  5. package/dist/cell-CNHPsDEk.d.ts +17 -0
  6. package/dist/color-71eoF1Up.d.cts +2 -0
  7. package/dist/color-Bo228AY2.d.ts +2 -0
  8. package/dist/convert/codec.cjs +51 -0
  9. package/dist/convert/codec.d.cts +13 -0
  10. package/dist/convert/codec.d.ts +13 -0
  11. package/dist/convert/codec.js +42 -0
  12. package/dist/convert/convert.cjs +443 -0
  13. package/dist/convert/convert.d.cts +55 -0
  14. package/dist/convert/convert.d.ts +55 -0
  15. package/dist/convert/convert.js +419 -0
  16. package/dist/convert/local.cjs +393 -0
  17. package/dist/convert/local.d.cts +5 -0
  18. package/dist/convert/local.d.ts +5 -0
  19. package/dist/convert/local.js +392 -0
  20. package/dist/convert/port.cjs +0 -0
  21. package/dist/convert/port.d.cts +34 -0
  22. package/dist/convert/port.d.ts +34 -0
  23. package/dist/convert/port.js +0 -0
  24. package/dist/edit/docx/content.cjs +71 -0
  25. package/dist/edit/docx/content.d.cts +6 -0
  26. package/dist/edit/docx/content.d.ts +6 -0
  27. package/dist/edit/docx/content.js +70 -0
  28. package/dist/edit/docx/editor.cjs +116 -0
  29. package/dist/edit/docx/editor.d.cts +23 -0
  30. package/dist/edit/docx/editor.d.ts +23 -0
  31. package/dist/edit/docx/editor.js +113 -0
  32. package/dist/edit/docx/image.cjs +74 -0
  33. package/dist/edit/docx/image.d.cts +2 -0
  34. package/dist/edit/docx/image.d.ts +2 -0
  35. package/dist/edit/docx/image.js +72 -0
  36. package/dist/edit/docx/paragraph.cjs +132 -0
  37. package/dist/edit/docx/paragraph.d.cts +40 -0
  38. package/dist/edit/docx/paragraph.d.ts +40 -0
  39. package/dist/edit/docx/paragraph.js +130 -0
  40. package/dist/edit/docx/props.cjs +132 -0
  41. package/dist/edit/docx/props.d.cts +20 -0
  42. package/dist/edit/docx/props.d.ts +20 -0
  43. package/dist/edit/docx/props.js +117 -0
  44. package/dist/edit/docx/run.cjs +143 -0
  45. package/dist/edit/docx/run.d.cts +2 -0
  46. package/dist/edit/docx/run.d.ts +2 -0
  47. package/dist/edit/docx/run.js +141 -0
  48. package/dist/edit/docx/scaffold.cjs +97 -0
  49. package/dist/edit/docx/scaffold.d.cts +5 -0
  50. package/dist/edit/docx/scaffold.d.ts +5 -0
  51. package/dist/edit/docx/scaffold.js +96 -0
  52. package/dist/edit/docx/table.cjs +99 -0
  53. package/dist/edit/docx/table.d.cts +34 -0
  54. package/dist/edit/docx/table.d.ts +34 -0
  55. package/dist/edit/docx/table.js +95 -0
  56. package/dist/edit/odg/content.cjs +65 -0
  57. package/dist/edit/odg/content.d.cts +6 -0
  58. package/dist/edit/odg/content.d.ts +6 -0
  59. package/dist/edit/odg/content.js +64 -0
  60. package/dist/edit/odg/editor.cjs +96 -0
  61. package/dist/edit/odg/editor.d.cts +19 -0
  62. package/dist/edit/odg/editor.d.ts +19 -0
  63. package/dist/edit/odg/editor.js +93 -0
  64. package/dist/edit/odg/page.cjs +70 -0
  65. package/dist/edit/odg/page.d.cts +34 -0
  66. package/dist/edit/odg/page.d.ts +34 -0
  67. package/dist/edit/odg/page.js +69 -0
  68. package/dist/edit/odg/scaffold.cjs +106 -0
  69. package/dist/edit/odg/scaffold.d.cts +7 -0
  70. package/dist/edit/odg/scaffold.d.ts +7 -0
  71. package/dist/edit/odg/scaffold.js +103 -0
  72. package/dist/edit/odg/style.cjs +83 -0
  73. package/dist/edit/odg/style.d.cts +14 -0
  74. package/dist/edit/odg/style.d.ts +14 -0
  75. package/dist/edit/odg/style.js +78 -0
  76. package/dist/edit/odg/svg-path.cjs +30 -0
  77. package/dist/edit/odg/svg-path.d.cts +7 -0
  78. package/dist/edit/odg/svg-path.d.ts +7 -0
  79. package/dist/edit/odg/svg-path.js +27 -0
  80. package/dist/edit/odg/vector.cjs +208 -0
  81. package/dist/edit/odg/vector.d.cts +2 -0
  82. package/dist/edit/odg/vector.d.ts +2 -0
  83. package/dist/edit/odg/vector.js +201 -0
  84. package/dist/edit/odp/content.cjs +42 -0
  85. package/dist/edit/odp/content.d.cts +6 -0
  86. package/dist/edit/odp/content.d.ts +6 -0
  87. package/dist/edit/odp/content.js +41 -0
  88. package/dist/edit/odp/editor.cjs +113 -0
  89. package/dist/edit/odp/editor.d.cts +20 -0
  90. package/dist/edit/odp/editor.d.ts +20 -0
  91. package/dist/edit/odp/editor.js +110 -0
  92. package/dist/edit/odp/image.cjs +10 -0
  93. package/dist/edit/odp/image.d.cts +2 -0
  94. package/dist/edit/odp/image.d.ts +2 -0
  95. package/dist/edit/odp/image.js +9 -0
  96. package/dist/edit/odp/scaffold.cjs +108 -0
  97. package/dist/edit/odp/scaffold.d.cts +7 -0
  98. package/dist/edit/odp/scaffold.d.ts +7 -0
  99. package/dist/edit/odp/scaffold.js +105 -0
  100. package/dist/edit/odp/shape.cjs +133 -0
  101. package/dist/edit/odp/shape.d.cts +2 -0
  102. package/dist/edit/odp/shape.d.ts +2 -0
  103. package/dist/edit/odp/shape.js +130 -0
  104. package/dist/edit/odp/slide.cjs +80 -0
  105. package/dist/edit/odp/slide.d.cts +31 -0
  106. package/dist/edit/odp/slide.d.ts +31 -0
  107. package/dist/edit/odp/slide.js +79 -0
  108. package/dist/edit/ods/address.cjs +108 -0
  109. package/dist/edit/ods/address.d.cts +15 -0
  110. package/dist/edit/ods/address.d.ts +15 -0
  111. package/dist/edit/ods/address.js +97 -0
  112. package/dist/edit/ods/cell.cjs +177 -0
  113. package/dist/edit/ods/cell.d.cts +2 -0
  114. package/dist/edit/ods/cell.d.ts +2 -0
  115. package/dist/edit/ods/cell.js +176 -0
  116. package/dist/edit/ods/content.cjs +26 -0
  117. package/dist/edit/ods/content.d.cts +6 -0
  118. package/dist/edit/ods/content.d.ts +6 -0
  119. package/dist/edit/ods/content.js +25 -0
  120. package/dist/edit/ods/editor.cjs +84 -0
  121. package/dist/edit/ods/editor.d.cts +17 -0
  122. package/dist/edit/ods/editor.d.ts +17 -0
  123. package/dist/edit/ods/editor.js +81 -0
  124. package/dist/edit/ods/print-settings.cjs +90 -0
  125. package/dist/edit/ods/print-settings.d.cts +7 -0
  126. package/dist/edit/ods/print-settings.d.ts +7 -0
  127. package/dist/edit/ods/print-settings.js +88 -0
  128. package/dist/edit/ods/scaffold.cjs +129 -0
  129. package/dist/edit/ods/scaffold.d.cts +9 -0
  130. package/dist/edit/ods/scaffold.d.ts +9 -0
  131. package/dist/edit/ods/scaffold.js +124 -0
  132. package/dist/edit/ods/sheet.cjs +70 -0
  133. package/dist/edit/ods/sheet.d.cts +22 -0
  134. package/dist/edit/ods/sheet.d.ts +22 -0
  135. package/dist/edit/ods/sheet.js +69 -0
  136. package/dist/edit/odt/automatic-styles.cjs +49 -0
  137. package/dist/edit/odt/automatic-styles.d.cts +8 -0
  138. package/dist/edit/odt/automatic-styles.d.ts +8 -0
  139. package/dist/edit/odt/automatic-styles.js +45 -0
  140. package/dist/edit/odt/content.cjs +110 -0
  141. package/dist/edit/odt/content.d.cts +9 -0
  142. package/dist/edit/odt/content.d.ts +9 -0
  143. package/dist/edit/odt/content.js +108 -0
  144. package/dist/edit/odt/editor.cjs +98 -0
  145. package/dist/edit/odt/editor.d.cts +25 -0
  146. package/dist/edit/odt/editor.d.ts +25 -0
  147. package/dist/edit/odt/editor.js +95 -0
  148. package/dist/edit/odt/list.cjs +82 -0
  149. package/dist/edit/odt/list.d.cts +2 -0
  150. package/dist/edit/odt/list.d.ts +2 -0
  151. package/dist/edit/odt/list.js +79 -0
  152. package/dist/edit/odt/paragraph.cjs +84 -0
  153. package/dist/edit/odt/paragraph.d.cts +2 -0
  154. package/dist/edit/odt/paragraph.d.ts +2 -0
  155. package/dist/edit/odt/paragraph.js +82 -0
  156. package/dist/edit/odt/props.cjs +26 -0
  157. package/dist/edit/odt/props.d.cts +7 -0
  158. package/dist/edit/odt/props.d.ts +7 -0
  159. package/dist/edit/odt/props.js +23 -0
  160. package/dist/edit/odt/run.cjs +82 -0
  161. package/dist/edit/odt/run.d.cts +2 -0
  162. package/dist/edit/odt/run.d.ts +2 -0
  163. package/dist/edit/odt/run.js +80 -0
  164. package/dist/edit/odt/scaffold.cjs +109 -0
  165. package/dist/edit/odt/scaffold.d.cts +5 -0
  166. package/dist/edit/odt/scaffold.d.ts +5 -0
  167. package/dist/edit/odt/scaffold.js +108 -0
  168. package/dist/edit/odt/table.cjs +123 -0
  169. package/dist/edit/odt/table.d.cts +37 -0
  170. package/dist/edit/odt/table.d.ts +37 -0
  171. package/dist/edit/odt/table.js +119 -0
  172. package/dist/edit/pptx/content.cjs +49 -0
  173. package/dist/edit/pptx/content.d.cts +6 -0
  174. package/dist/edit/pptx/content.d.ts +6 -0
  175. package/dist/edit/pptx/content.js +48 -0
  176. package/dist/edit/pptx/editor.cjs +187 -0
  177. package/dist/edit/pptx/editor.d.cts +20 -0
  178. package/dist/edit/pptx/editor.d.ts +20 -0
  179. package/dist/edit/pptx/editor.js +184 -0
  180. package/dist/edit/pptx/image.cjs +27 -0
  181. package/dist/edit/pptx/image.d.cts +2 -0
  182. package/dist/edit/pptx/image.d.ts +2 -0
  183. package/dist/edit/pptx/image.js +26 -0
  184. package/dist/edit/pptx/scaffold.cjs +292 -0
  185. package/dist/edit/pptx/scaffold.d.cts +13 -0
  186. package/dist/edit/pptx/scaffold.d.ts +13 -0
  187. package/dist/edit/pptx/scaffold.js +283 -0
  188. package/dist/edit/pptx/shape.cjs +182 -0
  189. package/dist/edit/pptx/shape.d.cts +2 -0
  190. package/dist/edit/pptx/shape.d.ts +2 -0
  191. package/dist/edit/pptx/shape.js +179 -0
  192. package/dist/edit/pptx/slide.cjs +146 -0
  193. package/dist/edit/pptx/slide.d.cts +33 -0
  194. package/dist/edit/pptx/slide.d.ts +33 -0
  195. package/dist/edit/pptx/slide.js +145 -0
  196. package/dist/firebird/backup.cjs +150 -0
  197. package/dist/firebird/backup.d.cts +21 -0
  198. package/dist/firebird/backup.d.ts +21 -0
  199. package/dist/firebird/backup.js +145 -0
  200. package/dist/firebird/blr-types.cjs +118 -0
  201. package/dist/firebird/blr-types.d.cts +2 -0
  202. package/dist/firebird/blr-types.d.ts +2 -0
  203. package/dist/firebird/blr-types.js +90 -0
  204. package/dist/firebird/data.cjs +231 -0
  205. package/dist/firebird/data.d.cts +17 -0
  206. package/dist/firebird/data.d.ts +17 -0
  207. package/dist/firebird/data.js +228 -0
  208. package/dist/firebird/date.cjs +63 -0
  209. package/dist/firebird/date.d.cts +17 -0
  210. package/dist/firebird/date.d.ts +17 -0
  211. package/dist/firebird/date.js +58 -0
  212. package/dist/firebird/reader.cjs +157 -0
  213. package/dist/firebird/reader.d.cts +2 -0
  214. package/dist/firebird/reader.d.ts +2 -0
  215. package/dist/firebird/reader.js +154 -0
  216. package/dist/firebird/schema.cjs +91 -0
  217. package/dist/firebird/schema.d.cts +2 -0
  218. package/dist/firebird/schema.d.ts +2 -0
  219. package/dist/firebird/schema.js +89 -0
  220. package/dist/geometry-DvwdrIij.d.cts +5 -0
  221. package/dist/geometry-DvwdrIij.d.ts +5 -0
  222. package/dist/hsqldb/cache.cjs +88 -0
  223. package/dist/hsqldb/cache.d.cts +13 -0
  224. package/dist/hsqldb/cache.d.ts +13 -0
  225. package/dist/hsqldb/cache.js +84 -0
  226. package/dist/hsqldb/rowformat.cjs +222 -0
  227. package/dist/hsqldb/rowformat.d.cts +21 -0
  228. package/dist/hsqldb/rowformat.d.ts +21 -0
  229. package/dist/hsqldb/rowformat.js +218 -0
  230. package/dist/hsqldb/script.cjs +450 -0
  231. package/dist/hsqldb/script.d.cts +19 -0
  232. package/dist/hsqldb/script.d.ts +19 -0
  233. package/dist/hsqldb/script.js +447 -0
  234. package/dist/image-B-xQWYYS.d.ts +16 -0
  235. package/dist/image-BZDy72Jb.d.cts +16 -0
  236. package/dist/image-BfRLAD9B.d.cts +18 -0
  237. package/dist/image-BfRLAD9B.d.ts +18 -0
  238. package/dist/image-CeqwL-Qs.d.ts +14 -0
  239. package/dist/image-DWX6cNOD.d.cts +14 -0
  240. package/dist/index.cjs +201 -10863
  241. package/dist/index.d.cts +71 -1406
  242. package/dist/index.d.ts +71 -1406
  243. package/dist/index.js +67 -10727
  244. package/dist/layout/drawing.cjs +117 -0
  245. package/dist/layout/drawing.d.cts +13 -0
  246. package/dist/layout/drawing.d.ts +13 -0
  247. package/dist/layout/drawing.js +116 -0
  248. package/dist/layout/engine.cjs +216 -0
  249. package/dist/layout/engine.d.cts +19 -0
  250. package/dist/layout/engine.d.ts +19 -0
  251. package/dist/layout/engine.js +215 -0
  252. package/dist/layout/reconstruct.cjs +809 -0
  253. package/dist/layout/reconstruct.d.cts +12 -0
  254. package/dist/layout/reconstruct.d.ts +12 -0
  255. package/dist/layout/reconstruct.js +805 -0
  256. package/dist/layout/shared.cjs +104 -0
  257. package/dist/layout/shared.d.cts +15 -0
  258. package/dist/layout/shared.d.ts +15 -0
  259. package/dist/layout/shared.js +96 -0
  260. package/dist/layout/sheets.cjs +413 -0
  261. package/dist/layout/sheets.d.cts +14 -0
  262. package/dist/layout/sheets.d.ts +14 -0
  263. package/dist/layout/sheets.js +414 -0
  264. package/dist/layout/slides.cjs +194 -0
  265. package/dist/layout/slides.d.cts +25 -0
  266. package/dist/layout/slides.d.ts +25 -0
  267. package/dist/layout/slides.js +192 -0
  268. package/dist/list-BuBM9rwQ.d.cts +24 -0
  269. package/dist/list-CvKxhy3y.d.ts +24 -0
  270. package/dist/mathml/compose.cjs +53 -0
  271. package/dist/mathml/compose.d.cts +8 -0
  272. package/dist/mathml/compose.d.ts +8 -0
  273. package/dist/mathml/compose.js +49 -0
  274. package/dist/mathml/layout-types.cjs +0 -0
  275. package/dist/mathml/layout-types.d.cts +50 -0
  276. package/dist/mathml/layout-types.d.ts +50 -0
  277. package/dist/mathml/layout-types.js +0 -0
  278. package/dist/mathml/layout.cjs +373 -0
  279. package/dist/mathml/layout.d.cts +24 -0
  280. package/dist/mathml/layout.d.ts +24 -0
  281. package/dist/mathml/layout.js +371 -0
  282. package/dist/mathml/length.cjs +41 -0
  283. package/dist/mathml/length.d.cts +4 -0
  284. package/dist/mathml/length.d.ts +4 -0
  285. package/dist/mathml/length.js +40 -0
  286. package/dist/mathml/metrics.cjs +0 -0
  287. package/dist/mathml/metrics.d.cts +44 -0
  288. package/dist/mathml/metrics.d.ts +44 -0
  289. package/dist/mathml/metrics.js +0 -0
  290. package/dist/mathml/nodes.cjs +39 -0
  291. package/dist/mathml/nodes.d.cts +2 -0
  292. package/dist/mathml/nodes.d.ts +2 -0
  293. package/dist/mathml/nodes.js +32 -0
  294. package/dist/mathml/operators.cjs +189 -0
  295. package/dist/mathml/operators.d.cts +13 -0
  296. package/dist/mathml/operators.d.ts +13 -0
  297. package/dist/mathml/operators.js +188 -0
  298. package/dist/mathml/radical.cjs +46 -0
  299. package/dist/mathml/radical.d.cts +10 -0
  300. package/dist/mathml/radical.d.ts +10 -0
  301. package/dist/mathml/radical.js +45 -0
  302. package/dist/mathml/variant.cjs +1160 -0
  303. package/dist/mathml/variant.d.cts +7 -0
  304. package/dist/mathml/variant.d.ts +7 -0
  305. package/dist/mathml/variant.js +1157 -0
  306. package/dist/model/bytes.cjs +88 -0
  307. package/dist/model/bytes.d.cts +12 -0
  308. package/dist/model/bytes.d.ts +12 -0
  309. package/dist/model/bytes.js +80 -0
  310. package/dist/model/color.cjs +26 -0
  311. package/dist/model/color.d.cts +2 -0
  312. package/dist/model/color.d.ts +2 -0
  313. package/dist/model/color.js +2 -0
  314. package/dist/model/content.cjs +34 -0
  315. package/dist/model/content.d.cts +362 -0
  316. package/dist/model/content.d.ts +362 -0
  317. package/dist/model/content.js +32 -0
  318. package/dist/model/formula.cjs +0 -0
  319. package/dist/model/formula.d.cts +8 -0
  320. package/dist/model/formula.d.ts +8 -0
  321. package/dist/model/formula.js +0 -0
  322. package/dist/model/geometry.cjs +55 -0
  323. package/dist/model/geometry.d.cts +2 -0
  324. package/dist/model/geometry.d.ts +2 -0
  325. package/dist/model/geometry.js +12 -0
  326. package/dist/model/style.cjs +20 -0
  327. package/dist/model/style.d.cts +2 -0
  328. package/dist/model/style.d.ts +2 -0
  329. package/dist/model/style.js +2 -0
  330. package/dist/model/units.cjs +55 -0
  331. package/dist/model/units.d.cts +20 -0
  332. package/dist/model/units.d.ts +20 -0
  333. package/dist/model/units.js +38 -0
  334. package/dist/nodes-pArN9ilm.d.cts +27 -0
  335. package/dist/nodes-pArN9ilm.d.ts +27 -0
  336. package/dist/odb/csv.cjs +48 -0
  337. package/dist/odb/csv.d.cts +14 -0
  338. package/dist/odb/csv.d.ts +14 -0
  339. package/dist/odb/csv.js +45 -0
  340. package/dist/odb/read.cjs +87 -0
  341. package/dist/odb/read.d.cts +15 -0
  342. package/dist/odb/read.d.ts +15 -0
  343. package/dist/odb/read.js +85 -0
  344. package/dist/odb/spreadsheet.cjs +68 -0
  345. package/dist/odb/spreadsheet.d.cts +6 -0
  346. package/dist/odb/spreadsheet.d.ts +6 -0
  347. package/dist/odb/spreadsheet.js +67 -0
  348. package/dist/odf/formula/detect.cjs +29 -0
  349. package/dist/odf/formula/detect.d.cts +12 -0
  350. package/dist/odf/formula/detect.d.ts +12 -0
  351. package/dist/odf/formula/detect.js +28 -0
  352. package/dist/odf/formula/placeholder.cjs +37 -0
  353. package/dist/odf/formula/placeholder.d.cts +14 -0
  354. package/dist/odf/formula/placeholder.d.ts +14 -0
  355. package/dist/odf/formula/placeholder.js +36 -0
  356. package/dist/odf/formula/read.cjs +32 -0
  357. package/dist/odf/formula/read.d.cts +11 -0
  358. package/dist/odf/formula/read.d.ts +11 -0
  359. package/dist/odf/formula/read.js +30 -0
  360. package/dist/odf/odg/read.cjs +15 -0
  361. package/dist/odf/odg/read.d.cts +6 -0
  362. package/dist/odf/odg/read.d.ts +6 -0
  363. package/dist/odf/odg/read.js +14 -0
  364. package/dist/odf/odp/read.cjs +45 -0
  365. package/dist/odf/odp/read.d.cts +11 -0
  366. package/dist/odf/odp/read.d.ts +11 -0
  367. package/dist/odf/odp/read.js +44 -0
  368. package/dist/odf/ods/read.cjs +15 -0
  369. package/dist/odf/ods/read.d.cts +6 -0
  370. package/dist/odf/ods/read.d.ts +6 -0
  371. package/dist/odf/ods/read.js +14 -0
  372. package/dist/odf/odt/read.cjs +43 -0
  373. package/dist/odf/odt/read.d.cts +11 -0
  374. package/dist/odf/odt/read.d.ts +11 -0
  375. package/dist/odf/odt/read.js +42 -0
  376. package/dist/odf-package/manifest.cjs +62 -0
  377. package/dist/odf-package/manifest.d.cts +2 -0
  378. package/dist/odf-package/manifest.d.ts +2 -0
  379. package/dist/odf-package/manifest.js +2 -0
  380. package/dist/odf-package/media.cjs +34 -0
  381. package/dist/odf-package/media.d.cts +8 -0
  382. package/dist/odf-package/media.d.ts +8 -0
  383. package/dist/odf-package/media.js +34 -0
  384. package/dist/ooxml/docx/read.cjs +15 -0
  385. package/dist/ooxml/docx/read.d.cts +6 -0
  386. package/dist/ooxml/docx/read.d.ts +6 -0
  387. package/dist/ooxml/docx/read.js +14 -0
  388. package/dist/ooxml/pptx/read.cjs +15 -0
  389. package/dist/ooxml/pptx/read.d.cts +6 -0
  390. package/dist/ooxml/pptx/read.d.ts +6 -0
  391. package/dist/ooxml/pptx/read.js +14 -0
  392. package/dist/opc/content-types.cjs +47 -0
  393. package/dist/opc/content-types.d.cts +7 -0
  394. package/dist/opc/content-types.d.ts +7 -0
  395. package/dist/opc/content-types.js +44 -0
  396. package/dist/opc/media.cjs +45 -0
  397. package/dist/opc/media.d.cts +10 -0
  398. package/dist/opc/media.d.ts +10 -0
  399. package/dist/opc/media.js +44 -0
  400. package/dist/opc/paths.cjs +28 -0
  401. package/dist/opc/paths.d.cts +5 -0
  402. package/dist/opc/paths.d.ts +5 -0
  403. package/dist/opc/paths.js +26 -0
  404. package/dist/opc/rels.cjs +47 -0
  405. package/dist/opc/rels.d.cts +10 -0
  406. package/dist/opc/rels.d.ts +10 -0
  407. package/dist/opc/rels.js +46 -0
  408. package/dist/paragraph-BXbXKPy3.d.cts +30 -0
  409. package/dist/paragraph-CoUi_88j.d.ts +30 -0
  410. package/dist/ports/abort.cjs +7 -0
  411. package/dist/ports/abort.d.cts +4 -0
  412. package/dist/ports/abort.d.ts +4 -0
  413. package/dist/ports/abort.js +6 -0
  414. package/dist/ports/clock.cjs +9 -0
  415. package/dist/ports/clock.d.cts +8 -0
  416. package/dist/ports/clock.d.ts +8 -0
  417. package/dist/ports/clock.js +7 -0
  418. package/dist/reader-DP0Mbaj4.d.cts +41 -0
  419. package/dist/reader-DP0Mbaj4.d.ts +41 -0
  420. package/dist/run-B3GNScJH.d.cts +38 -0
  421. package/dist/run-CJfh8rv3.d.ts +38 -0
  422. package/dist/run-D2rTWHbt.d.ts +38 -0
  423. package/dist/run-F8JN7Vy4.d.cts +38 -0
  424. package/dist/schema-Acco3Ezi.d.cts +22 -0
  425. package/dist/schema-VkAA6pF5.d.ts +22 -0
  426. package/dist/shape-BUfjw5eZ.d.cts +35 -0
  427. package/dist/shape-BfN3m52m.d.ts +30 -0
  428. package/dist/shape-CN2ycxOo.d.cts +30 -0
  429. package/dist/shape-CTkl6kt8.d.ts +35 -0
  430. package/dist/style-DkamR3aY.d.cts +2 -0
  431. package/dist/style-DkamR3aY.d.ts +2 -0
  432. package/dist/vector-ClohqsOe.d.cts +76 -0
  433. package/dist/vector-ClohqsOe.d.ts +76 -0
  434. package/dist/xml/edit.cjs +65 -0
  435. package/dist/xml/edit.d.cts +12 -0
  436. package/dist/xml/edit.d.ts +12 -0
  437. package/dist/xml/edit.js +57 -0
  438. package/dist/xml/entities.cjs +12 -0
  439. package/dist/xml/entities.d.cts +5 -0
  440. package/dist/xml/entities.d.ts +5 -0
  441. package/dist/xml/entities.js +10 -0
  442. package/dist/xml/fragment.cjs +22 -0
  443. package/dist/xml/fragment.d.cts +6 -0
  444. package/dist/xml/fragment.d.ts +6 -0
  445. package/dist/xml/fragment.js +20 -0
  446. package/dist/xml/odf-text.cjs +53 -0
  447. package/dist/xml/odf-text.d.cts +6 -0
  448. package/dist/xml/odf-text.d.ts +6 -0
  449. package/dist/xml/odf-text.js +51 -0
  450. package/dist/xml/query.cjs +33 -0
  451. package/dist/xml/query.d.cts +12 -0
  452. package/dist/xml/query.d.ts +12 -0
  453. package/dist/xml/query.js +29 -0
  454. package/package.json +9 -1
@@ -0,0 +1,371 @@
1
+ import { EMPTY_BOX, concatBoxesHorizontally, placeChild, shiftItems } from "./compose.js";
2
+ import { parseMathLength } from "./length.js";
3
+ import { attrValue, elementChildren, elementLocalName, isMathMlElement, textContent } from "./nodes.js";
4
+ import { operatorProperties } from "./operators.js";
5
+ import { buildRadicalSign } from "./radical.js";
6
+ import { applyMathVariant, isMathVariant } from "./variant.js";
7
+ //#region src/mathml/layout.ts
8
+ function rootContext(options, diagnostics) {
9
+ return {
10
+ metrics: options.metrics,
11
+ sizePt: options.sizePt,
12
+ color: options.color,
13
+ inheritedVariant: void 0,
14
+ displayStyle: true,
15
+ cramped: false,
16
+ scriptLevel: 0,
17
+ diagnostics
18
+ };
19
+ }
20
+ function scriptContext(ctx, cramped) {
21
+ const scale = ctx.scriptLevel === 0 ? ctx.metrics.scriptPercentScaleDown : ctx.metrics.scriptScriptPercentScaleDown;
22
+ return {
23
+ ...ctx,
24
+ sizePt: ctx.sizePt * scale,
25
+ displayStyle: false,
26
+ cramped,
27
+ scriptLevel: ctx.scriptLevel + 1
28
+ };
29
+ }
30
+ function unsupported(ctx, element) {
31
+ ctx.diagnostics.push({
32
+ kind: "unsupported-element",
33
+ detail: elementLocalName(element)
34
+ });
35
+ return layoutToken(textContent(element), "normal", ctx);
36
+ }
37
+ function layoutToken(rawText, variant, ctx) {
38
+ const styled = applyMathVariant(rawText, variant);
39
+ let widthPt = 0;
40
+ let text = "";
41
+ for (const ch of styled) {
42
+ const codePoint = ch.codePointAt(0);
43
+ if (codePoint === void 0) continue;
44
+ const glyph = ctx.metrics.glyph(codePoint, ctx.sizePt);
45
+ if (glyph === void 0) {
46
+ ctx.diagnostics.push({
47
+ kind: "missing-glyph",
48
+ detail: `U+${codePoint.toString(16).toUpperCase().padStart(4, "0")}`
49
+ });
50
+ continue;
51
+ }
52
+ text += ch;
53
+ widthPt += glyph.advanceWidthPt;
54
+ }
55
+ if (text.length === 0) return EMPTY_BOX;
56
+ const ascentPt = ctx.metrics.ascentPerEm * ctx.sizePt;
57
+ const descentPt = ctx.metrics.descentPerEm * ctx.sizePt;
58
+ const items = [{
59
+ kind: "glyphs",
60
+ xPt: 0,
61
+ yPt: ascentPt,
62
+ text,
63
+ sizePt: ctx.sizePt,
64
+ color: ctx.color
65
+ }];
66
+ return {
67
+ widthPt,
68
+ ascentPt,
69
+ descentPt,
70
+ heightPt: ascentPt + descentPt,
71
+ items
72
+ };
73
+ }
74
+ function tokenVariant(element, intrinsicDefault, ctx) {
75
+ const attr = attrValue(element, "mathvariant");
76
+ if (attr !== void 0 && isMathVariant(attr)) return attr;
77
+ return ctx.inheritedVariant ?? intrinsicDefault;
78
+ }
79
+ function miIntrinsicDefault(content) {
80
+ return [...content].length === 1 ? "italic" : "normal";
81
+ }
82
+ function layoutRowChildren(children, ctx) {
83
+ const boxes = children.map((child) => layoutNode(child, ctx));
84
+ const gapsPt = children.map((child, index) => {
85
+ if (index === 0) return 0;
86
+ const previous = children[index - 1];
87
+ let gapEm = 0;
88
+ if (previous !== void 0 && elementLocalName(previous) === "mo") gapEm += operatorProperties(textContent(previous).trim()).rspaceEm;
89
+ if (elementLocalName(child) === "mo") gapEm += operatorProperties(textContent(child).trim()).lspaceEm;
90
+ return gapEm * ctx.sizePt;
91
+ });
92
+ return concatBoxesHorizontally(boxes, gapsPt);
93
+ }
94
+ function layoutSemantics(element, ctx) {
95
+ const content = elementChildren(element).find((child) => {
96
+ const name = elementLocalName(child);
97
+ return name !== "annotation" && name !== "annotation-xml";
98
+ });
99
+ return content === void 0 ? EMPTY_BOX : layoutNode(content, ctx);
100
+ }
101
+ function mstyleContext(element, ctx) {
102
+ let next = ctx;
103
+ const displayAttr = attrValue(element, "displaystyle");
104
+ if (displayAttr === "true" || displayAttr === "false") next = {
105
+ ...next,
106
+ displayStyle: displayAttr === "true"
107
+ };
108
+ const variantAttr = attrValue(element, "mathvariant");
109
+ if (variantAttr !== void 0 && isMathVariant(variantAttr)) next = {
110
+ ...next,
111
+ inheritedVariant: variantAttr
112
+ };
113
+ return next;
114
+ }
115
+ function layoutScripts(base, subscript, superscript, ctx) {
116
+ const metrics = ctx.metrics;
117
+ let supShiftUpPt = 0;
118
+ let subShiftDownPt = 0;
119
+ if (superscript !== void 0) supShiftUpPt = Math.max(ctx.cramped ? metrics.superscriptShiftUpCrampedPt : metrics.superscriptShiftUpPt, base.ascentPt - metrics.superscriptBaselineDropMaxPt);
120
+ if (subscript !== void 0) subShiftDownPt = Math.max(metrics.subscriptShiftDownPt, base.descentPt + metrics.subscriptBaselineDropMinPt);
121
+ if (superscript !== void 0 && subscript !== void 0) {
122
+ const gapPt = supShiftUpPt - superscript.descentPt + (subShiftDownPt - subscript.ascentPt);
123
+ const deficitPt = metrics.subSuperscriptGapMinPt - gapPt;
124
+ if (deficitPt > 0) {
125
+ supShiftUpPt += deficitPt / 2;
126
+ subShiftDownPt += deficitPt / 2;
127
+ }
128
+ }
129
+ const ascentPt = Math.max(base.ascentPt, superscript === void 0 ? 0 : supShiftUpPt + superscript.ascentPt);
130
+ const descentPt = Math.max(base.descentPt, subscript === void 0 ? 0 : subShiftDownPt + subscript.descentPt);
131
+ const scriptWidthPt = Math.max(superscript?.widthPt ?? 0, subscript?.widthPt ?? 0);
132
+ const widthPt = base.widthPt + (scriptWidthPt > 0 ? scriptWidthPt + metrics.spaceAfterScriptPt : 0);
133
+ const items = [...placeChild(base, 0, 0, ascentPt)];
134
+ if (superscript !== void 0) items.push(...placeChild(superscript, base.widthPt, -supShiftUpPt, ascentPt));
135
+ if (subscript !== void 0) items.push(...placeChild(subscript, base.widthPt, subShiftDownPt, ascentPt));
136
+ return {
137
+ widthPt,
138
+ ascentPt,
139
+ descentPt,
140
+ heightPt: ascentPt + descentPt,
141
+ items
142
+ };
143
+ }
144
+ function layoutUnderOver(base, under, over, ctx) {
145
+ const gapPt = ctx.metrics.stackGapMinPt;
146
+ const overHeightPt = over === void 0 ? 0 : gapPt + over.heightPt;
147
+ const underHeightPt = under === void 0 ? 0 : gapPt + under.heightPt;
148
+ const ascentPt = base.ascentPt + overHeightPt;
149
+ const descentPt = base.descentPt + underHeightPt;
150
+ const widthPt = Math.max(base.widthPt, under?.widthPt ?? 0, over?.widthPt ?? 0);
151
+ const items = [...placeChild(base, (widthPt - base.widthPt) / 2, 0, ascentPt)];
152
+ if (over !== void 0) items.push(...placeChild(over, (widthPt - over.widthPt) / 2, -(base.ascentPt + gapPt + over.descentPt), ascentPt));
153
+ if (under !== void 0) items.push(...placeChild(under, (widthPt - under.widthPt) / 2, base.descentPt + gapPt + under.ascentPt, ascentPt));
154
+ return {
155
+ widthPt,
156
+ ascentPt,
157
+ descentPt,
158
+ heightPt: ascentPt + descentPt,
159
+ items
160
+ };
161
+ }
162
+ function isMovableLimitsOperator(element) {
163
+ return elementLocalName(element) === "mo" && operatorProperties(textContent(element).trim()).movablelimits;
164
+ }
165
+ function layoutUnderOverElement(element, kind, ctx) {
166
+ const children = elementChildren(element);
167
+ const baseElement = children[0];
168
+ if (baseElement === void 0) return EMPTY_BOX;
169
+ if (!ctx.displayStyle && isMovableLimitsOperator(baseElement)) {
170
+ const base = layoutNode(baseElement, ctx);
171
+ const scriptCtx = scriptContext(ctx, ctx.cramped);
172
+ if (kind === "munder") return layoutScripts(base, children[1] === void 0 ? void 0 : layoutNode(children[1], scriptCtx), void 0, ctx);
173
+ if (kind === "mover") return layoutScripts(base, void 0, children[1] === void 0 ? void 0 : layoutNode(children[1], scriptCtx), ctx);
174
+ return layoutScripts(base, children[1] === void 0 ? void 0 : layoutNode(children[1], scriptCtx), children[2] === void 0 ? void 0 : layoutNode(children[2], scriptCtx), ctx);
175
+ }
176
+ const base = layoutNode(baseElement, ctx);
177
+ const scriptCtx = scriptContext(ctx, false);
178
+ if (kind === "munder") return layoutUnderOver(base, children[1] === void 0 ? void 0 : layoutNode(children[1], scriptCtx), void 0, ctx);
179
+ if (kind === "mover") return layoutUnderOver(base, void 0, children[1] === void 0 ? void 0 : layoutNode(children[1], scriptCtx), ctx);
180
+ return layoutUnderOver(base, children[1] === void 0 ? void 0 : layoutNode(children[1], scriptCtx), children[2] === void 0 ? void 0 : layoutNode(children[2], scriptCtx), ctx);
181
+ }
182
+ function layoutFraction(element, ctx) {
183
+ const children = elementChildren(element);
184
+ const numeratorElement = children[0];
185
+ const denominatorElement = children[1];
186
+ if (numeratorElement === void 0 || denominatorElement === void 0) return EMPTY_BOX;
187
+ const fracCtx = {
188
+ ...ctx,
189
+ displayStyle: false,
190
+ cramped: false
191
+ };
192
+ const numerator = layoutNode(numeratorElement, fracCtx);
193
+ const denominator = layoutNode(denominatorElement, {
194
+ ...fracCtx,
195
+ cramped: true
196
+ });
197
+ const metrics = ctx.metrics;
198
+ const lineThicknessAttr = attrValue(element, "linethickness");
199
+ const ruleThicknessPt = (lineThicknessAttr === void 0 ? void 0 : parseMathLength(lineThicknessAttr, ctx.sizePt)) ?? metrics.fractionRuleThicknessPt;
200
+ const axisPt = metrics.axisHeightPt;
201
+ const numShiftUpPt = Math.max(ctx.displayStyle ? metrics.fractionNumeratorDisplayShiftUpPt : metrics.fractionNumeratorShiftUpPt, axisPt + ruleThicknessPt / 2 + metrics.fractionNumeratorGapMinPt + numerator.descentPt);
202
+ const denShiftDownPt = Math.max(ctx.displayStyle ? metrics.fractionDenominatorDisplayShiftDownPt : metrics.fractionDenominatorShiftDownPt, ruleThicknessPt / 2 + metrics.fractionDenominatorGapMinPt + denominator.ascentPt - axisPt);
203
+ const widthPt = Math.max(numerator.widthPt, denominator.widthPt);
204
+ const ascentPt = numShiftUpPt + numerator.ascentPt;
205
+ const descentPt = denShiftDownPt + denominator.descentPt;
206
+ const items = [
207
+ ...placeChild(numerator, (widthPt - numerator.widthPt) / 2, -numShiftUpPt, ascentPt),
208
+ ...placeChild(denominator, (widthPt - denominator.widthPt) / 2, denShiftDownPt, ascentPt),
209
+ {
210
+ kind: "rule",
211
+ xPt: 0,
212
+ yPt: ascentPt - axisPt - ruleThicknessPt / 2,
213
+ widthPt,
214
+ heightPt: ruleThicknessPt,
215
+ color: ctx.color
216
+ }
217
+ ];
218
+ return {
219
+ widthPt,
220
+ ascentPt,
221
+ descentPt,
222
+ heightPt: ascentPt + descentPt,
223
+ items
224
+ };
225
+ }
226
+ function layoutRadical(element, kind, ctx) {
227
+ const children = elementChildren(element);
228
+ if (kind === "msqrt") return wrapRadical(layoutRowChildren(children, {
229
+ ...ctx,
230
+ cramped: true
231
+ }), void 0, ctx);
232
+ const radicandElement = children[0];
233
+ const indexElement = children[1];
234
+ if (radicandElement === void 0) return EMPTY_BOX;
235
+ return wrapRadical(layoutNode(radicandElement, {
236
+ ...ctx,
237
+ cramped: true
238
+ }), indexElement === void 0 ? void 0 : layoutNode(indexElement, scriptContext(scriptContext(ctx, false), false)), ctx);
239
+ }
240
+ function wrapRadical(radicand, index, ctx) {
241
+ const metrics = ctx.metrics;
242
+ const ruleThicknessPt = metrics.radicalRuleThicknessPt;
243
+ const gapPt = metrics.radicalVerticalGapPt;
244
+ const signHeightPt = metrics.radicalExtraAscenderPt + ruleThicknessPt + gapPt + radicand.heightPt;
245
+ const degreeWidthPt = index === void 0 ? 0 : metrics.radicalKernBeforeDegreePt + index.widthPt + metrics.radicalKernAfterDegreePt;
246
+ const signOriginXPt = Math.max(0, degreeWidthPt);
247
+ const sign = buildRadicalSign(signOriginXPt, 0, signHeightPt, radicand.widthPt, ruleThicknessPt, ctx.color);
248
+ const ascentPt = metrics.radicalExtraAscenderPt + ruleThicknessPt + gapPt + radicand.ascentPt;
249
+ const descentPt = radicand.descentPt;
250
+ const widthPt = signOriginXPt + sign.widthPt + radicand.widthPt;
251
+ const items = [
252
+ sign.hook,
253
+ sign.vinculum,
254
+ ...placeChild(radicand, signOriginXPt + sign.widthPt, 0, ascentPt)
255
+ ];
256
+ if (index !== void 0) {
257
+ const raisePt = (ascentPt + descentPt) * metrics.radicalDegreeBottomRaisePercent / 100;
258
+ const degreeBaselineFromTopPt = ascentPt + descentPt - raisePt - index.descentPt;
259
+ items.push(...shiftItems(index.items, metrics.radicalKernBeforeDegreePt, degreeBaselineFromTopPt - index.ascentPt));
260
+ }
261
+ return {
262
+ widthPt,
263
+ ascentPt,
264
+ descentPt,
265
+ heightPt: ascentPt + descentPt,
266
+ items
267
+ };
268
+ }
269
+ function layoutTable(element, ctx) {
270
+ const rows = elementChildren(element).filter((child) => elementLocalName(child) === "mtr");
271
+ if (rows.length === 0) return EMPTY_BOX;
272
+ const columnAligns = (attrValue(element, "columnalign") ?? "").trim().split(/\s+/).filter((s) => s.length > 0);
273
+ const rowCells = rows.map((row) => elementChildren(row).filter((child) => elementLocalName(child) === "mtd").map((cell) => layoutRowChildren(elementChildren(cell), ctx)));
274
+ const columnCount = rowCells.reduce((max, row) => Math.max(max, row.length), 0);
275
+ if (columnCount === 0) return EMPTY_BOX;
276
+ const columnWidthsPt = [];
277
+ for (let column = 0; column < columnCount; column++) columnWidthsPt.push(rowCells.reduce((max, row) => Math.max(max, row[column]?.widthPt ?? 0), 0));
278
+ const columnGapPt = .8 * ctx.sizePt;
279
+ const rowGapPt = .5 * ctx.sizePt;
280
+ const items = [];
281
+ let cursorYTopPt = 0;
282
+ rowCells.forEach((row, rowIndex) => {
283
+ const rowAscentPt = row.reduce((max, cell) => Math.max(max, cell.ascentPt), 0);
284
+ const rowDescentPt = row.reduce((max, cell) => Math.max(max, cell.descentPt), 0);
285
+ let cursorXPt = 0;
286
+ row.forEach((cell, columnIndex) => {
287
+ const columnWidthPt = columnWidthsPt[columnIndex] ?? cell.widthPt;
288
+ const align = columnAligns[columnIndex] ?? columnAligns[columnAligns.length - 1] ?? "center";
289
+ const extraPt = columnWidthPt - cell.widthPt;
290
+ const dxPt = align === "left" ? 0 : align === "right" ? extraPt : extraPt / 2;
291
+ items.push(...placeChild(cell, cursorXPt + dxPt, 0, cursorYTopPt + rowAscentPt));
292
+ cursorXPt += columnWidthPt + columnGapPt;
293
+ });
294
+ cursorYTopPt += rowAscentPt + rowDescentPt + (rowIndex < rowCells.length - 1 ? rowGapPt : 0);
295
+ });
296
+ const widthPt = columnWidthsPt.reduce((sum, w) => sum + w, 0) + columnGapPt * Math.max(0, columnCount - 1);
297
+ let descentPt = cursorYTopPt - (cursorYTopPt / 2 + ctx.metrics.axisHeightPt);
298
+ if (descentPt < 0) descentPt = 0;
299
+ return {
300
+ widthPt,
301
+ ascentPt: cursorYTopPt - descentPt,
302
+ descentPt,
303
+ heightPt: cursorYTopPt,
304
+ items
305
+ };
306
+ }
307
+ function layoutSpace(element, ctx) {
308
+ const widthAttr = attrValue(element, "width");
309
+ const heightAttr = attrValue(element, "height");
310
+ const depthAttr = attrValue(element, "depth");
311
+ const widthPt = Math.max(0, (widthAttr === void 0 ? void 0 : parseMathLength(widthAttr, ctx.sizePt)) ?? 0);
312
+ const ascentPt = Math.max(0, (heightAttr === void 0 ? void 0 : parseMathLength(heightAttr, ctx.sizePt)) ?? 0);
313
+ const descentPt = Math.max(0, (depthAttr === void 0 ? void 0 : parseMathLength(depthAttr, ctx.sizePt)) ?? 0);
314
+ return {
315
+ widthPt,
316
+ ascentPt,
317
+ descentPt,
318
+ heightPt: ascentPt + descentPt,
319
+ items: []
320
+ };
321
+ }
322
+ function layoutNode(node, ctx) {
323
+ if (!isMathMlElement(node)) return EMPTY_BOX;
324
+ switch (elementLocalName(node)) {
325
+ case "mrow": return layoutRowChildren(elementChildren(node), ctx);
326
+ case "semantics": return layoutSemantics(node, ctx);
327
+ case "mstyle": return layoutRowChildren(elementChildren(node), mstyleContext(node, ctx));
328
+ case "mi": {
329
+ const text = textContent(node);
330
+ return layoutToken(text, tokenVariant(node, miIntrinsicDefault(text), ctx), ctx);
331
+ }
332
+ case "mn": return layoutToken(textContent(node), tokenVariant(node, "normal", ctx), ctx);
333
+ case "mo": return layoutToken(textContent(node).trim(), tokenVariant(node, "normal", ctx), ctx);
334
+ case "mtext": return layoutToken(textContent(node), tokenVariant(node, "normal", ctx), ctx);
335
+ case "mspace": return layoutSpace(node, ctx);
336
+ case "msub": {
337
+ const children = elementChildren(node);
338
+ return layoutScripts(children[0] === void 0 ? EMPTY_BOX : layoutNode(children[0], ctx), children[1] === void 0 ? void 0 : layoutNode(children[1], scriptContext(ctx, ctx.cramped)), void 0, ctx);
339
+ }
340
+ case "msup": {
341
+ const children = elementChildren(node);
342
+ return layoutScripts(children[0] === void 0 ? EMPTY_BOX : layoutNode(children[0], ctx), void 0, children[1] === void 0 ? void 0 : layoutNode(children[1], scriptContext(ctx, ctx.cramped)), ctx);
343
+ }
344
+ case "msubsup": {
345
+ const children = elementChildren(node);
346
+ const base = children[0] === void 0 ? EMPTY_BOX : layoutNode(children[0], ctx);
347
+ const scriptCtx = scriptContext(ctx, ctx.cramped);
348
+ return layoutScripts(base, children[1] === void 0 ? void 0 : layoutNode(children[1], scriptCtx), children[2] === void 0 ? void 0 : layoutNode(children[2], scriptCtx), ctx);
349
+ }
350
+ case "munder": return layoutUnderOverElement(node, "munder", ctx);
351
+ case "mover": return layoutUnderOverElement(node, "mover", ctx);
352
+ case "munderover": return layoutUnderOverElement(node, "munderover", ctx);
353
+ case "mfrac": return layoutFraction(node, ctx);
354
+ case "msqrt": return layoutRadical(node, "msqrt", ctx);
355
+ case "mroot": return layoutRadical(node, "mroot", ctx);
356
+ case "mtable": return layoutTable(node, ctx);
357
+ case "mtr":
358
+ case "mtd": return layoutRowChildren(elementChildren(node), ctx);
359
+ default: return unsupported(ctx, node);
360
+ }
361
+ }
362
+ function layoutFormula(mathml, options) {
363
+ const diagnostics = [];
364
+ const ctx = rootContext(options, diagnostics);
365
+ return {
366
+ box: layoutRowChildren(mathml.filter(isMathMlElement), ctx),
367
+ diagnostics
368
+ };
369
+ }
370
+ //#endregion
371
+ export { layoutFormula, layoutNode };
@@ -0,0 +1,41 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ //#region src/mathml/length.ts
3
+ const NAMED_MATH_SPACES = /* @__PURE__ */ new Map([
4
+ ["veryverythinmathspace", 1 / 18],
5
+ ["verythinmathspace", 2 / 18],
6
+ ["thinmathspace", 3 / 18],
7
+ ["mediummathspace", 4 / 18],
8
+ ["thickmathspace", 5 / 18],
9
+ ["verythickmathspace", 6 / 18],
10
+ ["veryverythickmathspace", 7 / 18]
11
+ ]);
12
+ const EX_APPROXIMATION_OF_EM = .5;
13
+ const LENGTH_PATTERN = /^([+-]?[0-9]*\.?[0-9]+)\s*(em|ex|px|in|cm|mm|pt|pc|%)?$/;
14
+ const PX_PER_INCH = 96;
15
+ const PT_PER_INCH = 72;
16
+ const CM_PER_INCH = 2.54;
17
+ const MM_PER_INCH = 25.4;
18
+ const PC_PER_INCH = 6;
19
+ function parseMathLength(value, fontSizePt) {
20
+ const trimmed = value.trim();
21
+ const named = NAMED_MATH_SPACES.get(trimmed);
22
+ if (named !== void 0) return named * fontSizePt;
23
+ const match = LENGTH_PATTERN.exec(trimmed);
24
+ if (match === null) return;
25
+ const amount = Number(match[1]);
26
+ if (!Number.isFinite(amount)) return;
27
+ switch (match[2] ?? "em") {
28
+ case "em": return amount * fontSizePt;
29
+ case "ex": return amount * fontSizePt * EX_APPROXIMATION_OF_EM;
30
+ case "%": return amount / 100 * fontSizePt;
31
+ case "pt": return amount;
32
+ case "px": return amount / PX_PER_INCH * PT_PER_INCH;
33
+ case "in": return amount * PT_PER_INCH;
34
+ case "cm": return amount / CM_PER_INCH * PT_PER_INCH;
35
+ case "mm": return amount / MM_PER_INCH * PT_PER_INCH;
36
+ case "pc": return amount / PC_PER_INCH * PT_PER_INCH;
37
+ default: return;
38
+ }
39
+ }
40
+ //#endregion
41
+ exports.parseMathLength = parseMathLength;
@@ -0,0 +1,4 @@
1
+ //#region src/mathml/length.d.ts
2
+ declare function parseMathLength(value: string, fontSizePt: number): number | undefined;
3
+ //#endregion
4
+ export { parseMathLength };
@@ -0,0 +1,4 @@
1
+ //#region src/mathml/length.d.ts
2
+ declare function parseMathLength(value: string, fontSizePt: number): number | undefined;
3
+ //#endregion
4
+ export { parseMathLength };
@@ -0,0 +1,40 @@
1
+ //#region src/mathml/length.ts
2
+ const NAMED_MATH_SPACES = /* @__PURE__ */ new Map([
3
+ ["veryverythinmathspace", 1 / 18],
4
+ ["verythinmathspace", 2 / 18],
5
+ ["thinmathspace", 3 / 18],
6
+ ["mediummathspace", 4 / 18],
7
+ ["thickmathspace", 5 / 18],
8
+ ["verythickmathspace", 6 / 18],
9
+ ["veryverythickmathspace", 7 / 18]
10
+ ]);
11
+ const EX_APPROXIMATION_OF_EM = .5;
12
+ const LENGTH_PATTERN = /^([+-]?[0-9]*\.?[0-9]+)\s*(em|ex|px|in|cm|mm|pt|pc|%)?$/;
13
+ const PX_PER_INCH = 96;
14
+ const PT_PER_INCH = 72;
15
+ const CM_PER_INCH = 2.54;
16
+ const MM_PER_INCH = 25.4;
17
+ const PC_PER_INCH = 6;
18
+ function parseMathLength(value, fontSizePt) {
19
+ const trimmed = value.trim();
20
+ const named = NAMED_MATH_SPACES.get(trimmed);
21
+ if (named !== void 0) return named * fontSizePt;
22
+ const match = LENGTH_PATTERN.exec(trimmed);
23
+ if (match === null) return;
24
+ const amount = Number(match[1]);
25
+ if (!Number.isFinite(amount)) return;
26
+ switch (match[2] ?? "em") {
27
+ case "em": return amount * fontSizePt;
28
+ case "ex": return amount * fontSizePt * EX_APPROXIMATION_OF_EM;
29
+ case "%": return amount / 100 * fontSizePt;
30
+ case "pt": return amount;
31
+ case "px": return amount / PX_PER_INCH * PT_PER_INCH;
32
+ case "in": return amount * PT_PER_INCH;
33
+ case "cm": return amount / CM_PER_INCH * PT_PER_INCH;
34
+ case "mm": return amount / MM_PER_INCH * PT_PER_INCH;
35
+ case "pc": return amount / PC_PER_INCH * PT_PER_INCH;
36
+ default: return;
37
+ }
38
+ }
39
+ //#endregion
40
+ export { parseMathLength };
File without changes
@@ -0,0 +1,44 @@
1
+ //#region src/mathml/metrics.d.ts
2
+ interface MathGlyphMetrics {
3
+ readonly advanceWidthPt: number;
4
+ readonly italicCorrectionPt: number;
5
+ readonly topAccentXPt?: number;
6
+ }
7
+ interface MathFontMetrics {
8
+ readonly ascentPerEm: number;
9
+ readonly descentPerEm: number;
10
+ readonly axisHeightPt: number;
11
+ readonly fractionRuleThicknessPt: number;
12
+ readonly fractionNumeratorShiftUpPt: number;
13
+ readonly fractionNumeratorDisplayShiftUpPt: number;
14
+ readonly fractionDenominatorShiftDownPt: number;
15
+ readonly fractionDenominatorDisplayShiftDownPt: number;
16
+ readonly fractionNumeratorGapMinPt: number;
17
+ readonly fractionDenominatorGapMinPt: number;
18
+ readonly radicalRuleThicknessPt: number;
19
+ readonly radicalExtraAscenderPt: number;
20
+ readonly radicalVerticalGapPt: number;
21
+ readonly radicalKernBeforeDegreePt: number;
22
+ readonly radicalKernAfterDegreePt: number;
23
+ readonly radicalDegreeBottomRaisePercent: number;
24
+ readonly subscriptShiftDownPt: number;
25
+ readonly superscriptShiftUpPt: number;
26
+ readonly superscriptShiftUpCrampedPt: number;
27
+ readonly subSuperscriptGapMinPt: number;
28
+ readonly superscriptBaselineDropMaxPt: number;
29
+ readonly subscriptBaselineDropMinPt: number;
30
+ readonly spaceAfterScriptPt: number;
31
+ readonly upperLimitGapMinPt: number;
32
+ readonly upperLimitBaselineRiseMinPt: number;
33
+ readonly lowerLimitGapMinPt: number;
34
+ readonly lowerLimitBaselineDropMinPt: number;
35
+ readonly stackTopShiftUpPt: number;
36
+ readonly stackBottomShiftDownPt: number;
37
+ readonly stackGapMinPt: number;
38
+ readonly scriptPercentScaleDown: number;
39
+ readonly scriptScriptPercentScaleDown: number;
40
+ readonly defaultRuleThicknessPt: number;
41
+ glyph(codePoint: number, sizePt: number): MathGlyphMetrics | undefined;
42
+ }
43
+ //#endregion
44
+ export { MathFontMetrics, MathGlyphMetrics };
@@ -0,0 +1,44 @@
1
+ //#region src/mathml/metrics.d.ts
2
+ interface MathGlyphMetrics {
3
+ readonly advanceWidthPt: number;
4
+ readonly italicCorrectionPt: number;
5
+ readonly topAccentXPt?: number;
6
+ }
7
+ interface MathFontMetrics {
8
+ readonly ascentPerEm: number;
9
+ readonly descentPerEm: number;
10
+ readonly axisHeightPt: number;
11
+ readonly fractionRuleThicknessPt: number;
12
+ readonly fractionNumeratorShiftUpPt: number;
13
+ readonly fractionNumeratorDisplayShiftUpPt: number;
14
+ readonly fractionDenominatorShiftDownPt: number;
15
+ readonly fractionDenominatorDisplayShiftDownPt: number;
16
+ readonly fractionNumeratorGapMinPt: number;
17
+ readonly fractionDenominatorGapMinPt: number;
18
+ readonly radicalRuleThicknessPt: number;
19
+ readonly radicalExtraAscenderPt: number;
20
+ readonly radicalVerticalGapPt: number;
21
+ readonly radicalKernBeforeDegreePt: number;
22
+ readonly radicalKernAfterDegreePt: number;
23
+ readonly radicalDegreeBottomRaisePercent: number;
24
+ readonly subscriptShiftDownPt: number;
25
+ readonly superscriptShiftUpPt: number;
26
+ readonly superscriptShiftUpCrampedPt: number;
27
+ readonly subSuperscriptGapMinPt: number;
28
+ readonly superscriptBaselineDropMaxPt: number;
29
+ readonly subscriptBaselineDropMinPt: number;
30
+ readonly spaceAfterScriptPt: number;
31
+ readonly upperLimitGapMinPt: number;
32
+ readonly upperLimitBaselineRiseMinPt: number;
33
+ readonly lowerLimitGapMinPt: number;
34
+ readonly lowerLimitBaselineDropMinPt: number;
35
+ readonly stackTopShiftUpPt: number;
36
+ readonly stackBottomShiftDownPt: number;
37
+ readonly stackGapMinPt: number;
38
+ readonly scriptPercentScaleDown: number;
39
+ readonly scriptScriptPercentScaleDown: number;
40
+ readonly defaultRuleThicknessPt: number;
41
+ glyph(codePoint: number, sizePt: number): MathGlyphMetrics | undefined;
42
+ }
43
+ //#endregion
44
+ export { MathFontMetrics, MathGlyphMetrics };
File without changes
@@ -0,0 +1,39 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ //#region src/mathml/nodes.ts
3
+ function isMathMlElement(node) {
4
+ return node.type === "element";
5
+ }
6
+ function isMathMlText(node) {
7
+ return node.type === "text";
8
+ }
9
+ function localName(tag) {
10
+ const colonIndex = tag.indexOf(":");
11
+ return colonIndex === -1 ? tag : tag.slice(colonIndex + 1);
12
+ }
13
+ function elementLocalName(element) {
14
+ return localName(element.tag);
15
+ }
16
+ function attrValue(element, name) {
17
+ return element.attributes.find((attribute) => attribute.name === name)?.value;
18
+ }
19
+ function elementChildren(node) {
20
+ return node.children.filter(isMathMlElement);
21
+ }
22
+ function firstChildByLocalName(node, name) {
23
+ return elementChildren(node).find((child) => elementLocalName(child) === name);
24
+ }
25
+ function textContent(node) {
26
+ if (isMathMlText(node)) return node.value;
27
+ if (!isMathMlElement(node)) return "";
28
+ let out = "";
29
+ for (const child of node.children) out += textContent(child);
30
+ return out;
31
+ }
32
+ //#endregion
33
+ exports.attrValue = attrValue;
34
+ exports.elementChildren = elementChildren;
35
+ exports.elementLocalName = elementLocalName;
36
+ exports.firstChildByLocalName = firstChildByLocalName;
37
+ exports.isMathMlElement = isMathMlElement;
38
+ exports.localName = localName;
39
+ exports.textContent = textContent;
@@ -0,0 +1,2 @@
1
+ import { a as attrValue, c as firstChildByLocalName, d as textContent, i as MathMlText, l as isMathMlElement, n as MathMlElement, o as elementChildren, r as MathMlNode, s as elementLocalName, t as MathMlAttribute, u as localName } from "../nodes-pArN9ilm.cjs";
2
+ export { MathMlAttribute, MathMlElement, MathMlNode, MathMlText, attrValue, elementChildren, elementLocalName, firstChildByLocalName, isMathMlElement, localName, textContent };
@@ -0,0 +1,2 @@
1
+ import { a as attrValue, c as firstChildByLocalName, d as textContent, i as MathMlText, l as isMathMlElement, n as MathMlElement, o as elementChildren, r as MathMlNode, s as elementLocalName, t as MathMlAttribute, u as localName } from "../nodes-pArN9ilm.js";
2
+ export { MathMlAttribute, MathMlElement, MathMlNode, MathMlText, attrValue, elementChildren, elementLocalName, firstChildByLocalName, isMathMlElement, localName, textContent };
@@ -0,0 +1,32 @@
1
+ //#region src/mathml/nodes.ts
2
+ function isMathMlElement(node) {
3
+ return node.type === "element";
4
+ }
5
+ function isMathMlText(node) {
6
+ return node.type === "text";
7
+ }
8
+ function localName(tag) {
9
+ const colonIndex = tag.indexOf(":");
10
+ return colonIndex === -1 ? tag : tag.slice(colonIndex + 1);
11
+ }
12
+ function elementLocalName(element) {
13
+ return localName(element.tag);
14
+ }
15
+ function attrValue(element, name) {
16
+ return element.attributes.find((attribute) => attribute.name === name)?.value;
17
+ }
18
+ function elementChildren(node) {
19
+ return node.children.filter(isMathMlElement);
20
+ }
21
+ function firstChildByLocalName(node, name) {
22
+ return elementChildren(node).find((child) => elementLocalName(child) === name);
23
+ }
24
+ function textContent(node) {
25
+ if (isMathMlText(node)) return node.value;
26
+ if (!isMathMlElement(node)) return "";
27
+ let out = "";
28
+ for (const child of node.children) out += textContent(child);
29
+ return out;
30
+ }
31
+ //#endregion
32
+ export { attrValue, elementChildren, elementLocalName, firstChildByLocalName, isMathMlElement, localName, textContent };