@sheetxl/sdk 0.8.0-beta.10 → 0.8.0-beta.11

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 (480) hide show
  1. package/README.md +1 -1
  2. package/browser/esm/B7aUIvgUjncMMD_i.mjs +394 -0
  3. package/browser/esm/{Cgd5BnM3hg9RyUel.mjs → BFagR2JeWs74iAG3.mjs} +1 -1
  4. package/browser/esm/BGOFfpxr2jPIdqmV.mjs +40 -0
  5. package/browser/esm/{CdLZWVcH8cncBUPJ.mjs → BLoUBId2xZpXAK_H.mjs} +110 -261
  6. package/browser/esm/BMyDRQ716j79h_bH.mjs +86 -0
  7. package/browser/esm/{o8MFgcVXns987D6_.mjs → BVDiOXGMc5_FMGfy.mjs} +6 -6
  8. package/browser/esm/{BzLfNyc6OOShIErH.mjs → BjkCiv5Jz6WYKZeu.mjs} +2 -2
  9. package/browser/esm/{De175LygU7ot4nQm.mjs → BkBhLS0l6z8sxI6D.mjs} +2 -2
  10. package/browser/esm/{Y79I7Sm8kjaYexhf.mjs → BnG31I6Oj_HEtSPS.mjs} +1 -1
  11. package/browser/esm/BoV6zPBnfqCBCqZ7.mjs +7729 -0
  12. package/browser/esm/{CYyv6uGjo10ig5FP.mjs → BpgskG1Er_lGQ_yS.mjs} +1 -1
  13. package/browser/esm/{C9B0djuUarfNdoj0.mjs → BtvLTTfSBdAKplVG.mjs} +1 -1
  14. package/browser/esm/{zqJOaweiXE9D8RY1.mjs → C16ycKja6zG0crV_.mjs} +27687 -38788
  15. package/browser/esm/C2VbEI_XVAoseAwa.mjs +1552 -0
  16. package/browser/esm/{Btg43M1Bf-ENDreu.mjs → C4MqfLn9Dm-l3OIk.mjs} +1 -1
  17. package/browser/esm/C5E6zSGAALWf61n4.mjs +199 -0
  18. package/browser/esm/{CjsUGJEQSbGjnH6R.mjs → CHU6iu_WGlm7fLET.mjs} +1 -1
  19. package/browser/esm/{DhKkrCVASZ6Isvz6.mjs → CQYjO777cmAznUzK.mjs} +1 -1
  20. package/browser/esm/{D4uVlrG0xEFctsSM.mjs → CU3DmJ-YnVVrC1_k.mjs} +285 -67
  21. package/browser/esm/{ClB5ix51roQOpZEr.mjs → CV5EGEjG5_-CPpP0.mjs} +2877 -2067
  22. package/browser/esm/{CSx9ed1JOs7K5BXO.mjs → CaB7J-xgfKO2uAkG.mjs} +2 -2
  23. package/browser/esm/CkxWugaJFjDGZNZ-.mjs +12 -0
  24. package/browser/esm/{CZ5oa92wZEAXebgk.mjs → ClPfI4lODvCece29.mjs} +32 -22
  25. package/browser/esm/ClbvFbFzFzXLBKNN.mjs +193 -0
  26. package/browser/esm/{Cqr3knDsBvoVZ6MN.mjs → Ctjb0SsxV4K4MMqG.mjs} +2 -2
  27. package/browser/esm/{Bk7xxbdDpa7-sIwd.mjs → D5np__Jb1euAyaLw.mjs} +2 -2
  28. package/browser/esm/{Di58Ji1n--3Mgc_2.mjs → DEiPS3Dr-s4fPbVZ.mjs} +1 -1
  29. package/browser/esm/DLLE0FZNsKxbBzRn.mjs +128 -0
  30. package/browser/esm/{BqskM7wA8oPfFQue.mjs → DWNzqw7DUKwoxjri.mjs} +2 -2
  31. package/browser/esm/{BEAY9XgKNx-bakXW.mjs → Dlmig06rIo7cInRk.mjs} +1 -1
  32. package/browser/esm/DvAaxH6z_tGvrRzl.mjs +5132 -0
  33. package/browser/esm/Dyq_ivuHvlXLwPCl.mjs +12831 -0
  34. package/browser/esm/{Dtoyt8q5RyGAlxCp.mjs → PcHFjNzQsE54POri.mjs} +1 -1
  35. package/browser/esm/S2dNNx1a5ydRnARM.mjs +367 -0
  36. package/browser/esm/f1IoRb7tEb0QmCSt.mjs +110 -0
  37. package/browser/esm/gssVX_FH1XFN-twD.mjs +210 -0
  38. package/browser/esm/index.mjs +999 -850
  39. package/browser/esm/nvU0ClAbf0g94YBK.mjs +1695 -0
  40. package/browser/esm/{BcHmrKHwMMOlzc9_.mjs → zlLuW405RSguy4Kn.mjs} +34 -34
  41. package/licenses/dependencies.txt +75 -75
  42. package/node/esm/{CnSQ7MTXAUAyBOoS.mjs → 2Kihw_-5lVTEnwMa.mjs} +285 -64
  43. package/node/esm/857CIBgQgGpnqrXk.mjs +199 -0
  44. package/node/esm/B084DssTcdBheTp_.mjs +7966 -0
  45. package/node/esm/B21JjOLghRoDOrkx.mjs +134 -0
  46. package/node/esm/{CImNvdz1iP-lUlro.mjs → BIRq1kT7lLRzns9t.mjs} +181 -181
  47. package/node/esm/{CD9wbvufChVYYkrI.mjs → BIwObuhTJYf0jpUa.mjs} +2 -2
  48. package/node/esm/Bbf1Pm9Gk7YpLTvg.mjs +12 -0
  49. package/node/esm/{B6D7sSetrcOWLsKj.mjs → BqiexuA89caYnAPz.mjs} +1 -1
  50. package/node/esm/{BH1v-E4Ro3bR7Znw.mjs → BrCKGFRsX_ezFJ4B.mjs} +151 -302
  51. package/node/esm/CCN5vD410obwdz38.mjs +405 -0
  52. package/node/esm/{Bh4dv6tMjXX3X4nI.mjs → CDHdgJXH2vS71WMc.mjs} +1 -1
  53. package/node/esm/{DCplLG93GfTs1vNw.mjs → CGp6VZL-gZa9Uezx.mjs} +1 -1
  54. package/node/esm/{B9ljpEIZg6wOTzRE.mjs → CNCNJNg890KdgkWh.mjs} +1 -1
  55. package/node/esm/{Bqd62L8KFgdS0Vou.mjs → CZICGK_ss0HoGHCP.mjs} +2 -2
  56. package/node/esm/{D7MfcID2Wf6l6VpC.mjs → CZiqiay42tFTrLI4.mjs} +1 -1
  57. package/node/esm/{Bsx9uijd4X_SKV3L.mjs → CdJHUJSBRHZoryPe.mjs} +41 -41
  58. package/node/esm/Ct3h15sCus4Tgt6M.mjs +1762 -0
  59. package/node/esm/CwePQwTILHHjGDkZ.mjs +1033 -0
  60. package/node/esm/{CUUoseJmFsCf82bb.mjs → CzXT00vrQa1_gvW9.mjs} +1 -1
  61. package/node/esm/{C6ZXsNyLXI6zA63X.mjs → D1TKBVmoKGAXf37B.mjs} +9 -9
  62. package/node/esm/{BN9j8V9gCExMjVtJ.mjs → D2KBymQJd1XhpeQD.mjs} +1 -1
  63. package/node/esm/{MiU4rDOiocmJ-9Ry.mjs → D6e2z7eZpxOJXHc7.mjs} +1 -1
  64. package/node/esm/{BtuY37FumvLE7EBo.mjs → D8zEN-6ZdDqDvTxM.mjs} +156 -146
  65. package/node/esm/DNRhGK-8Tr9xcRyc.mjs +8320 -0
  66. package/node/esm/DOU54VsOjG-m-NyQ.mjs +210 -0
  67. package/node/esm/DUTskXCXref-IJnI.mjs +133 -0
  68. package/node/esm/{DMD12JUh7HJw2-jl.mjs → D_t5AUxSm7_icjzq.mjs} +1 -1
  69. package/node/esm/Db0v7zXNnyjBIjjI.mjs +372 -0
  70. package/node/esm/{CUQi5ZtMO02nhG0W.mjs → De2IONBxQhz-Qbyh.mjs} +1 -1
  71. package/node/esm/Df1bL6VFvrqIdSLB.mjs +40 -0
  72. package/node/esm/DkwIPzKc3UwdUIfM.mjs +86 -0
  73. package/node/esm/DrTZbfemSLq2mseG.mjs +111 -0
  74. package/node/esm/OVfaSb506tNSIvbv.mjs +57107 -0
  75. package/node/esm/{DefYISWfdZJFx57m.mjs → cGwrLA1RCE-WhJ7w.mjs} +1 -1
  76. package/node/esm/index.mjs +2657 -65664
  77. package/node/esm/mFiBSM7XgBHV9AY7.mjs +13010 -0
  78. package/node/esm/{DdFgXl-Ux2cMBTs_.mjs → yavzZOiZW_EjG9lE.mjs} +1 -1
  79. package/package.json +6 -7
  80. package/resources/contents.json +120 -0
  81. package/resources/fonts/arial-bold-italic.hinted.json +125 -0
  82. package/resources/fonts/arial-bold-italic.metrics.json +13 -13
  83. package/resources/fonts/arial-bold-italic.rows.json +9 -0
  84. package/resources/fonts/arial-bold.hinted.json +125 -0
  85. package/resources/fonts/arial-bold.metrics.json +12 -12
  86. package/resources/fonts/arial-bold.rows.json +9 -0
  87. package/resources/fonts/arial-italic.hinted.json +125 -0
  88. package/resources/fonts/arial-italic.metrics.json +13 -13
  89. package/resources/fonts/arial-italic.rows.json +9 -0
  90. package/resources/fonts/arial-regular.hinted.json +125 -0
  91. package/resources/fonts/arial-regular.metrics.json +12 -12
  92. package/resources/fonts/arial-regular.rows.json +9 -0
  93. package/resources/fonts/calibri-bold-italic.hinted.json +122 -0
  94. package/resources/fonts/calibri-bold-italic.metrics.json +2 -2
  95. package/resources/fonts/calibri-bold-italic.rows.json +9 -0
  96. package/resources/fonts/calibri-bold.hinted.json +122 -0
  97. package/resources/fonts/calibri-bold.metrics.json +1 -1
  98. package/resources/fonts/calibri-bold.rows.json +9 -0
  99. package/resources/fonts/calibri-italic.hinted.json +121 -0
  100. package/resources/fonts/calibri-italic.metrics.json +2 -2
  101. package/resources/fonts/calibri-italic.rows.json +9 -0
  102. package/resources/fonts/calibri-regular.hinted.json +121 -0
  103. package/resources/fonts/calibri-regular.metrics.json +1 -1
  104. package/resources/fonts/calibri-regular.rows.json +9 -0
  105. package/resources/fonts/cambria-bold-italic.hinted.json +105 -0
  106. package/resources/fonts/cambria-bold-italic.metrics.json +26 -26
  107. package/resources/fonts/cambria-bold-italic.rows.json +9 -0
  108. package/resources/fonts/cambria-bold.hinted.json +108 -0
  109. package/resources/fonts/cambria-bold.metrics.json +19 -19
  110. package/resources/fonts/cambria-bold.rows.json +9 -0
  111. package/resources/fonts/cambria-italic.hinted.json +102 -0
  112. package/resources/fonts/cambria-italic.metrics.json +23 -23
  113. package/resources/fonts/cambria-italic.rows.json +9 -0
  114. package/resources/fonts/cambria-regular.hinted.json +110 -0
  115. package/resources/fonts/cambria-regular.metrics.json +18 -18
  116. package/resources/fonts/cambria-regular.rows.json +9 -0
  117. package/resources/fonts/contents.json +280 -0
  118. package/resources/fonts/courier-new-bold-italic.hinted.json +11 -0
  119. package/resources/fonts/courier-new-bold-italic.metrics.json +12 -12
  120. package/resources/fonts/courier-new-bold-italic.rows.json +9 -0
  121. package/resources/fonts/courier-new-bold.hinted.json +11 -0
  122. package/resources/fonts/courier-new-bold.metrics.json +12 -12
  123. package/resources/fonts/courier-new-bold.rows.json +9 -0
  124. package/resources/fonts/courier-new-italic.hinted.json +11 -0
  125. package/resources/fonts/courier-new-italic.metrics.json +12 -12
  126. package/resources/fonts/courier-new-italic.rows.json +9 -0
  127. package/resources/fonts/courier-new-regular.hinted.json +11 -0
  128. package/resources/fonts/courier-new-regular.metrics.json +12 -12
  129. package/resources/fonts/courier-new-regular.rows.json +9 -0
  130. package/resources/fonts/times-new-roman-bold-italic.hinted.json +125 -0
  131. package/resources/fonts/times-new-roman-bold-italic.metrics.json +15 -15
  132. package/resources/fonts/times-new-roman-bold-italic.rows.json +9 -0
  133. package/resources/fonts/times-new-roman-bold.hinted.json +125 -0
  134. package/resources/fonts/times-new-roman-bold.metrics.json +12 -12
  135. package/resources/fonts/times-new-roman-bold.rows.json +9 -0
  136. package/resources/fonts/times-new-roman-italic.hinted.json +125 -0
  137. package/resources/fonts/times-new-roman-italic.metrics.json +16 -16
  138. package/resources/fonts/times-new-roman-italic.rows.json +9 -0
  139. package/resources/fonts/times-new-roman-regular.hinted.json +125 -0
  140. package/resources/fonts/times-new-roman-regular.metrics.json +16 -16
  141. package/resources/fonts/times-new-roman-regular.rows.json +9 -0
  142. package/resources/locales/de/model.msg.json +87 -9
  143. package/resources/locales/en/model.msg.json +88 -10
  144. package/types/scripting-api.json +10636 -8021
  145. package/types/scripting-enums.json +181 -43
  146. package/types/scripting.d.ts +15886 -8459
  147. package/types/src/.generated/wasm/fonts.d.ts +161 -0
  148. package/types/src/.generated/wasm/fonts_bg.inline.d.ts +3 -0
  149. package/types/src/.generated/wasm/sdk.d.ts +122 -0
  150. package/types/src/.generated/wasm/sdk_bg.inline.d.ts +3 -0
  151. package/types/src/address/AddressUtils.d.ts +10 -1
  152. package/types/src/address/_StructuredAddress.d.ts +58 -0
  153. package/types/src/border/IBorders.d.ts +16 -0
  154. package/types/src/calculation/Calculation.d.ts +93 -363
  155. package/types/src/calculation/FormulaLiterals.d.ts +2 -1
  156. package/types/src/calculation/FormulaText.d.ts +18 -2
  157. package/types/src/calculation/ICalculation.d.ts +37 -9
  158. package/types/src/calculation/INamedFormulasCollection.d.ts +4 -0
  159. package/types/src/calculation/NamedFormulaCollection.d.ts +190 -15
  160. package/types/src/calculation/_FormulaToolkit.d.ts +9 -0
  161. package/types/src/calculation/_TableExtent.d.ts +60 -0
  162. package/types/src/calculation/compiler/CompilerUtils.d.ts +17 -0
  163. package/types/src/calculation/compiler/ParserUtils.d.ts +16 -0
  164. package/types/src/calculation/compiler/Types.d.ts +1 -1
  165. package/types/src/calculation/engine/CalcBackend.d.ts +855 -0
  166. package/types/src/calculation/engine/index.d.ts +10 -0
  167. package/types/src/calculation/executor/CalcExecutor.d.ts +21 -2
  168. package/types/src/calculation/executor/CalcExecutorUtils.d.ts +6 -0
  169. package/types/src/calculation/formula/Formula.d.ts +9 -0
  170. package/types/src/calculation/formula/FormulaBlock.d.ts +6 -0
  171. package/types/src/calculation/formula/IFormulaBlock.d.ts +16 -0
  172. package/types/src/calculation/formula/LambdaValue.d.ts +5 -3
  173. package/types/src/calculation/functions/FunctionDeclarations.d.ts +5 -1
  174. package/types/src/calculation/functions/expandDeclaration.d.ts +15 -0
  175. package/types/src/calculation/functions/initializeFunctions.d.ts +0 -12
  176. package/types/src/calculation/grid/CalcGrid.d.ts +40 -4
  177. package/types/src/calculation/grid/CalcGridBackend.d.ts +30 -0
  178. package/types/src/calculation/grid/CalcGridProxy.d.ts +2 -0
  179. package/types/src/calculation/grid/CalcGridUtils.d.ts +8 -1
  180. package/types/src/calculation/grid/FormulaHost.d.ts +51 -6
  181. package/types/src/calculation/grid/ICalcGrid.d.ts +35 -6
  182. package/types/src/calculation/grid/_CalcRequest.d.ts +11 -1
  183. package/types/src/calculation/grid/_CellValueRun.d.ts +21 -0
  184. package/types/src/calculation/spatial/FormulaSpatialValue.d.ts +27 -2
  185. package/types/src/calculation/state/CalcScope.d.ts +15 -6
  186. package/types/src/calculation/state/CalcState.d.ts +10 -0
  187. package/types/src/calculation/state/CalculationContext.d.ts +2 -2
  188. package/types/src/calculation/state/IContextContainer.d.ts +12 -0
  189. package/types/src/calculation/toolkit/FormulaLiteralReader.d.ts +4 -0
  190. package/types/src/calculation/toolkit/FormulaTextParser.d.ts +10 -0
  191. package/types/src/calculation/toolkit/FunctionDeclarationTable.d.ts +4 -0
  192. package/types/src/calculation/toolkit/index.d.ts +12 -0
  193. package/types/src/cell/ICell.d.ts +256 -7
  194. package/types/src/cell/ICellHeader.d.ts +7 -6
  195. package/types/src/cell/ICellProtection.d.ts +1 -1
  196. package/types/src/cellRange/ICellHeaderRange.d.ts +6 -9
  197. package/types/src/cellRange/ICellHeaderRanges.d.ts +5 -0
  198. package/types/src/cellRange/ICellRange.d.ts +322 -55
  199. package/types/src/cellRange/ICellRanges.d.ts +8 -3
  200. package/types/src/chart/Chart.d.ts +217 -15
  201. package/types/src/chart/ChartCollection.d.ts +7 -2
  202. package/types/src/chart/IChart.d.ts +1921 -35
  203. package/types/src/chart/IChartCollection.d.ts +27 -2
  204. package/types/src/chart/_ChartParts.d.ts +1066 -0
  205. package/types/src/chart/_ChartSource.d.ts +47 -0
  206. package/types/src/chart/createChart.d.ts +26 -0
  207. package/types/src/chart/index.d.ts +4 -0
  208. package/types/src/chart/kinds/ChartKind.d.ts +252 -0
  209. package/types/src/chart/kinds/_Area.d.ts +3 -0
  210. package/types/src/chart/kinds/_Bar.d.ts +4 -0
  211. package/types/src/chart/kinds/_BoxWhisker.d.ts +4 -0
  212. package/types/src/chart/kinds/_Bubble.d.ts +3 -0
  213. package/types/src/chart/kinds/_Funnel.d.ts +4 -0
  214. package/types/src/chart/kinds/_Hierarchy.d.ts +31 -0
  215. package/types/src/chart/kinds/_Histogram.d.ts +4 -0
  216. package/types/src/chart/kinds/_HitKinds.d.ts +23 -0
  217. package/types/src/chart/kinds/_Line.d.ts +4 -0
  218. package/types/src/chart/kinds/_OfPie.d.ts +4 -0
  219. package/types/src/chart/kinds/_Pie.d.ts +4 -0
  220. package/types/src/chart/kinds/_Placeholder.d.ts +6 -0
  221. package/types/src/chart/kinds/_Radar.d.ts +4 -0
  222. package/types/src/chart/kinds/_Scatter.d.ts +8 -0
  223. package/types/src/chart/kinds/_Sunburst.d.ts +4 -0
  224. package/types/src/chart/kinds/_Surface.d.ts +4 -0
  225. package/types/src/chart/kinds/_Treemap.d.ts +4 -0
  226. package/types/src/chart/kinds/_Waterfall.d.ts +18 -0
  227. package/types/src/chart/kinds/_builtIns.d.ts +11 -0
  228. package/types/src/chart/layout/ChartLayout.d.ts +825 -0
  229. package/types/src/chart/layout/TextMeasurer.d.ts +38 -0
  230. package/types/src/chart/layout/_HitGeometry.d.ts +50 -0
  231. package/types/src/chart/layout/_HitTest.d.ts +36 -0
  232. package/types/src/chart/layout/_Layout.d.ts +25 -0
  233. package/types/src/chart/layout/_LayoutUtils.d.ts +97 -0
  234. package/types/src/chart/math/BoxStats.d.ts +35 -0
  235. package/types/src/chart/math/DateUnitCalcs.d.ts +80 -0
  236. package/types/src/chart/math/DisplayUnits.d.ts +53 -0
  237. package/types/src/chart/math/Histogram.d.ts +48 -0
  238. package/types/src/chart/math/OrdUnitCalcs.d.ts +166 -0
  239. package/types/src/chart/math/Treemap.d.ts +28 -0
  240. package/types/src/chart/math/Trendlines.d.ts +71 -0
  241. package/types/src/chart/math/UnitCalcs.d.ts +98 -0
  242. package/types/src/chart/model/ChartModel.d.ts +681 -0
  243. package/types/src/chart/model/_ChartType.d.ts +14 -0
  244. package/types/src/chart/model/_Edits.d.ts +489 -0
  245. package/types/src/chart/model/_Grouping.d.ts +83 -0
  246. package/types/src/chart/model/_Inference.d.ts +52 -0
  247. package/types/src/chart/model/_ModelFacts.d.ts +112 -0
  248. package/types/src/chart/model/_NewChart.d.ts +208 -0
  249. package/types/src/chart/model/_OfPie.d.ts +18 -0
  250. package/types/src/chart/resolve/_LegacyStyles.d.ts +48 -0
  251. package/types/src/chart/resolve/_Resolve.d.ts +51 -0
  252. package/types/src/chart/resolve/_ResolvedChart.d.ts +444 -0
  253. package/types/src/collections/RTree.d.ts +116 -36
  254. package/types/src/collections/SparseGrid.d.ts +6 -3
  255. package/types/src/collections/SpatialMap.d.ts +2 -8
  256. package/types/src/collections/SpatialMap3D.d.ts +2 -0
  257. package/types/src/collections/index.d.ts +1 -1
  258. package/types/src/comment/Comment.d.ts +32 -9
  259. package/types/src/comment/IComment.d.ts +41 -4
  260. package/types/src/comment/_NoteBox.d.ts +19 -2
  261. package/types/src/condition/AnchoredConditional.d.ts +28 -2
  262. package/types/src/condition/ICondition.d.ts +3 -2
  263. package/types/src/conditionalFormat/ConditionalFormat.d.ts +9 -3
  264. package/types/src/conditionalFormat/IConditionalFormat.d.ts +4 -3
  265. package/types/src/dataTable/DataTable.d.ts +67 -0
  266. package/types/src/dataTable/DataTableCollection.d.ts +19 -0
  267. package/types/src/dataTable/IDataTable.d.ts +99 -0
  268. package/types/src/dataTable/IDataTableCollection.d.ts +18 -0
  269. package/types/src/dataTable/index.d.ts +6 -0
  270. package/types/src/dataValidation/DataValidation.d.ts +1 -1
  271. package/types/src/dataValidation/DataValidationCollection.d.ts +4 -1
  272. package/types/src/dataValidation/IDataValidation.d.ts +1 -1
  273. package/types/src/dataValidation/IDataValidationCollection.d.ts +24 -0
  274. package/types/src/documentProperties/DocumentProperties.d.ts +66 -0
  275. package/types/src/documentProperties/ICustomProperty.d.ts +69 -0
  276. package/types/src/documentProperties/IDocumentProperties.d.ts +110 -0
  277. package/types/src/documentProperties/index.d.ts +3 -0
  278. package/types/src/externalBook/IExternalBook.d.ts +1 -1
  279. package/types/src/fill/IFill.d.ts +7 -0
  280. package/types/src/fill/IFillable.d.ts +47 -0
  281. package/types/src/fill/IStroke.d.ts +15 -1
  282. package/types/src/fill/PaintUtils.d.ts +22 -0
  283. package/types/src/fill/index.d.ts +2 -0
  284. package/types/src/font/AdvanceBuilder.d.ts +34 -0
  285. package/types/src/font/AdvanceTable.d.ts +128 -14
  286. package/types/src/font/CanvasAdvanceBuilder.d.ts +54 -0
  287. package/types/src/font/FontCapture.d.ts +4 -0
  288. package/types/src/font/FontCollection.d.ts +53 -2
  289. package/types/src/font/FontPlatform.d.ts +20 -0
  290. package/types/src/font/FontUtils.d.ts +5 -0
  291. package/types/src/font/IFont.d.ts +191 -61
  292. package/types/src/font/IFontCollection.d.ts +20 -14
  293. package/types/src/font/IFontStyle.d.ts +207 -0
  294. package/types/src/font/TableFileAdvanceBuilder.d.ts +9 -0
  295. package/types/src/font/_FontUtils.d.ts +11 -4
  296. package/types/src/font/_FontsVersion.d.ts +7 -0
  297. package/types/src/font/index.d.ts +1 -3
  298. package/types/src/font/platform.browser.d.ts +15 -0
  299. package/types/src/font/platform.node.d.ts +5 -0
  300. package/types/src/group/Group.d.ts +5 -0
  301. package/types/src/group/GroupMovableCollection.d.ts +4 -0
  302. package/types/src/history/IHistory.d.ts +19 -2
  303. package/types/src/hyperlink/IHyperlink.d.ts +7 -1
  304. package/types/src/index.d.ts +3 -0
  305. package/types/src/license/LicenseManager.d.ts +21 -0
  306. package/types/src/license/_Utils.d.ts +18 -1
  307. package/types/src/license/runtime.browser.d.ts +5 -0
  308. package/types/src/license/runtime.node.d.ts +10 -0
  309. package/types/src/listener/IListener.d.ts +14 -2
  310. package/types/src/listener/ListenerEmitter.d.ts +11 -3
  311. package/types/src/movable/IMovable.d.ts +28 -15
  312. package/types/src/movable/IMovableCollection.d.ts +1 -1
  313. package/types/src/movable/Movable.d.ts +12 -1
  314. package/types/src/movable/MovableCollection.d.ts +7 -3
  315. package/types/src/movable/_InsertableCollection.d.ts +16 -5
  316. package/types/src/named/INamed.d.ts +30 -0
  317. package/types/src/named/INamedCollection.d.ts +2 -2
  318. package/types/src/named/NamedCollection.d.ts +16 -4
  319. package/types/src/numFmt/NumberFormatParser.d.ts +5 -0
  320. package/types/src/outline/IOutline.d.ts +1 -1
  321. package/types/src/outline/Outline.d.ts +2 -2
  322. package/types/src/picture/IPicture.d.ts +98 -1
  323. package/types/src/picture/Picture.d.ts +15 -7
  324. package/types/src/pivot/IPivotTable.d.ts +2 -2
  325. package/types/src/pivot/PivotTable.d.ts +5 -5
  326. package/types/src/primitives/ReferenceRange.d.ts +2 -2
  327. package/types/src/print/IPageLayout.d.ts +635 -0
  328. package/types/src/print/PageLayout.d.ts +258 -0
  329. package/types/src/print/index.d.ts +1 -1
  330. package/types/src/protectedRange/IProtectedRange.d.ts +2 -2
  331. package/types/src/protection/IProtection.d.ts +6 -0
  332. package/types/src/protection/PasswordHasher.d.ts +13 -0
  333. package/types/src/richData/IRichDataKind.d.ts +22 -0
  334. package/types/src/richData/RichDataRegistry.d.ts +57 -0
  335. package/types/src/richData/RichText.d.ts +59 -0
  336. package/types/src/richData/index.d.ts +3 -0
  337. package/types/src/scripting/IModule.d.ts +3 -3
  338. package/types/src/scripting/IScript.d.ts +2 -2
  339. package/types/src/scripting/ITypedFunction.d.ts +1 -1
  340. package/types/src/scripting/declarations.d.ts +3 -0
  341. package/types/src/selection/ChartElementSelection.d.ts +39 -0
  342. package/types/src/selection/IChartElementSelection.d.ts +103 -0
  343. package/types/src/selection/IItemSelection.d.ts +131 -0
  344. package/types/src/selection/IMovableSelection.d.ts +6 -34
  345. package/types/src/selection/IRangeSelection.d.ts +4 -4
  346. package/types/src/selection/ItemSelection.d.ts +49 -0
  347. package/types/src/selection/MovableSelection.d.ts +11 -30
  348. package/types/src/selection/RangeSelection.d.ts +4 -4
  349. package/types/src/selection/index.d.ts +3 -0
  350. package/types/src/shape/IShape.d.ts +2 -1
  351. package/types/src/shape/IShapeStyle.d.ts +5 -31
  352. package/types/src/shape/ITextBoxStyle.d.ts +85 -0
  353. package/types/src/shape/ShapeStyleUtils.d.ts +13 -1
  354. package/types/src/shape/_Connectors.d.ts +9 -9
  355. package/types/src/shape/_ShapeStyle.d.ts +9 -0
  356. package/types/src/shape/index.d.ts +1 -0
  357. package/types/src/sheet/CellRegion.d.ts +37 -3
  358. package/types/src/sheet/IOpaqueSheet.d.ts +46 -0
  359. package/types/src/sheet/ISheet.d.ts +81 -1078
  360. package/types/src/sheet/IWorksheet.d.ts +1514 -0
  361. package/types/src/sheet/{ISheetCollection.d.ts → IWorksheetCollection.d.ts} +37 -12
  362. package/types/src/sheet/NamedCellRange.d.ts +2 -2
  363. package/types/src/sheet/NamedRange.d.ts +2 -2
  364. package/types/src/sheet/OpaqueSheet.d.ts +114 -0
  365. package/types/src/sheet/SheetCell.d.ts +24 -27
  366. package/types/src/sheet/SheetRange.d.ts +42 -11
  367. package/types/src/sheet/SheetRanges.d.ts +12 -10
  368. package/types/src/sheet/{Sheet.d.ts → Worksheet.d.ts} +510 -144
  369. package/types/src/sheet/WorksheetCollection.d.ts +39 -0
  370. package/types/src/sheet/_Anomalies.d.ts +109 -0
  371. package/types/src/sheet/_AnomalyFormulaChecks.d.ts +125 -0
  372. package/types/src/sheet/_AnomalyLabelChecks.d.ts +21 -0
  373. package/types/src/sheet/_CellBuffer.d.ts +11 -1
  374. package/types/src/sheet/_CopyUtils.d.ts +13 -6
  375. package/types/src/sheet/_IgnoredErrors.d.ts +46 -0
  376. package/types/src/sheet/_InvalidSheetRange.d.ts +3 -2
  377. package/types/src/sheet/_Kinds.d.ts +34 -0
  378. package/types/src/sheet/_Labels.d.ts +38 -0
  379. package/types/src/sheet/_RangeStateSweep.d.ts +2 -3
  380. package/types/src/sheet/_ScalarListFactory.d.ts +1 -1
  381. package/types/src/sheet/_SheetAutoFillUtils.d.ts +3 -3
  382. package/types/src/sheet/_SheetAutoFitUtils.d.ts +3 -3
  383. package/types/src/sheet/_SheetChangeEvent.d.ts +72 -0
  384. package/types/src/sheet/_SheetCoords.d.ts +3 -3
  385. package/types/src/sheet/_SheetEvents.d.ts +1 -1
  386. package/types/src/sheet/_SheetFilterUtils.d.ts +6 -6
  387. package/types/src/sheet/_SheetIntents.d.ts +32 -14
  388. package/types/src/sheet/_SheetMessages.d.ts +1 -1
  389. package/types/src/sheet/_SheetMutations.d.ts +7 -8
  390. package/types/src/sheet/_SheetSortUtils.d.ts +2 -2
  391. package/types/src/sheet/_SheetStateReader.d.ts +18 -0
  392. package/types/src/sheet/_SheetStateTypes.d.ts +60 -1
  393. package/types/src/sheet/_SheetUtils.d.ts +20 -19
  394. package/types/src/sheet/_WatchAnchor.d.ts +15 -2
  395. package/types/src/sheet/clipboard/RangeClipboardItems.d.ts +4 -4
  396. package/types/src/sheet/clipboard/SheetHTMLTableParser.d.ts +3 -3
  397. package/types/src/sheet/clipboard/SheetHTMLTableWriter.d.ts +3 -3
  398. package/types/src/sheet/index.d.ts +5 -2
  399. package/types/src/sheet/style/SheetCellStyle.d.ts +67 -86
  400. package/types/src/sheet/style/SheetDirectStyle.d.ts +3 -3
  401. package/types/src/sheet/style/SheetNamedStyle.d.ts +2 -0
  402. package/types/src/sheet/style/_DigitWidth.d.ts +7 -0
  403. package/types/src/sheet/style/_Resolvers.d.ts +3 -2
  404. package/types/src/sheet/style/_StyleUtils.d.ts +7 -43
  405. package/types/src/sheetHeader/ISheetHeader.d.ts +2 -2
  406. package/types/src/sheetHeader/SheetCellHeader.d.ts +2 -0
  407. package/types/src/sheetHeader/SheetCellHeaderRange.d.ts +2 -0
  408. package/types/src/sheetHeader/SheetCellHeaderRanges.d.ts +2 -0
  409. package/types/src/sheetHeader/SheetHeader.d.ts +7 -6
  410. package/types/src/sheetHeader/_HeaderUtils.d.ts +2 -3
  411. package/types/src/sheetProtection/{ISheetProtection.d.ts → IWorksheetProtection.d.ts} +28 -28
  412. package/types/src/sheetProtection/WorksheetProtection.d.ts +51 -0
  413. package/types/src/sheetProtection/index.d.ts +1 -1
  414. package/types/src/sheetView/{ISheetView.d.ts → IWorksheetView.d.ts} +168 -61
  415. package/types/src/sheetView/WorksheetView.d.ts +139 -0
  416. package/types/src/sheetView/_SheetViewUtils.d.ts +5 -3
  417. package/types/src/sheetView/index.d.ts +1 -1
  418. package/types/src/slicer/ISlicer.d.ts +2 -2
  419. package/types/src/sort/ISort.d.ts +35 -5
  420. package/types/src/style/ICellStyle.d.ts +56 -44
  421. package/types/src/style/_BuiltInStyleDefs.d.ts +4 -3
  422. package/types/src/table/AnchoredTable.d.ts +23 -7
  423. package/types/src/table/AutoTable.d.ts +1 -1
  424. package/types/src/table/ITable.d.ts +32 -19
  425. package/types/src/table/_NamedTable.d.ts +3 -3
  426. package/types/src/table/_NamedTableSource.d.ts +2 -2
  427. package/types/src/text/IText.d.ts +4 -51
  428. package/types/src/text/TextEngine.d.ts +34 -0
  429. package/types/src/text/TextFrame.d.ts +4 -2
  430. package/types/src/text/TextRun.d.ts +3 -2
  431. package/types/src/text/TextWrapper.d.ts +32 -26
  432. package/types/src/text/_TextUtils.d.ts +5 -5
  433. package/types/src/text/_TextWrapperFallback.d.ts +49 -0
  434. package/types/src/text/impl/TabStrategy.d.ts +3 -1
  435. package/types/src/text/richtext/IRichText.d.ts +16 -2
  436. package/types/src/text/richtext/index.d.ts +0 -1
  437. package/types/src/theme/ITheme.d.ts +108 -7
  438. package/types/src/theme/ThemeCollection.d.ts +5 -0
  439. package/types/src/theme/_OfficeFontScheme.d.ts +8 -0
  440. package/types/src/transaction/ITransaction.d.ts +20 -1
  441. package/types/src/transaction/Transaction.d.ts +8 -1
  442. package/types/src/transaction/_BatchHandle.d.ts +118 -0
  443. package/types/src/type/AbstractCollection.d.ts +4 -13
  444. package/types/src/type/ICollection.d.ts +17 -4
  445. package/types/src/type/IProperties.d.ts +1 -1
  446. package/types/src/utils/_CSSUtils.d.ts +1 -1
  447. package/types/src/wasm/_fontsWasm.d.ts +7 -0
  448. package/types/src/wasm/_sdkWasm.d.ts +1 -1
  449. package/types/src/wasm/fontsWasm.d.ts +32 -0
  450. package/types/src/wasm/index.d.ts +1 -0
  451. package/types/src/wasm/loader.browser.d.ts +9 -0
  452. package/types/src/wasm/loader.node.d.ts +9 -0
  453. package/types/src/wasm/sdkWasm.d.ts +6 -3
  454. package/types/src/workbook/IWorkbook.d.ts +229 -38
  455. package/types/src/workbook/Workbook.d.ts +77 -22
  456. package/types/src/workbook/WorkbookRange.d.ts +2 -2
  457. package/types/src/workbook/WorkbookRanges.d.ts +2 -2
  458. package/types/src/workbook/_WorkbookIntents.d.ts +2 -2
  459. package/types/src/workbook/_WorkbookMessages.d.ts +5 -0
  460. package/types/src/workbookView/IWorkbookView.d.ts +82 -0
  461. package/types/src/workbookView/WorkbookView.d.ts +21 -0
  462. package/browser/esm/BbSmt62FpFIpoVzu.mjs +0 -392
  463. package/browser/esm/BgcZ-CoTbMfmyDJL.mjs +0 -412
  464. package/browser/esm/DOMHmhYzPcLVcpAW.mjs +0 -7
  465. package/browser/esm/DUvUK61b2_4pf4tG.mjs +0 -484
  466. package/node/esm/CCouEwT37f08qO3V.mjs +0 -7
  467. package/node/esm/CT0CN82y0_Qgoryk.mjs +0 -7568
  468. package/node/esm/DHUADiCmxNQS1ARz.mjs +0 -417
  469. package/node/esm/Ds0d8zXzmgOu3MGx.mjs +0 -403
  470. package/types/src/chart/_ChartXml.d.ts +0 -70
  471. package/types/src/collections/OverlappingRangeIterator.d.ts +0 -87
  472. package/types/src/collections/_RangeSweep.d.ts +0 -97
  473. package/types/src/font/CanvasFontMeasurer.d.ts +0 -25
  474. package/types/src/font/FontKitFontMeasurer.d.ts +0 -11
  475. package/types/src/font/SimpleFontMeasurer.d.ts +0 -4
  476. package/types/src/print/IPrint.d.ts +0 -212
  477. package/types/src/sheet/SheetCollection.d.ts +0 -29
  478. package/types/src/sheetProtection/SheetProtection.d.ts +0 -51
  479. package/types/src/sheetView/SheetView.d.ts +0 -122
  480. package/types/src/text/richtext/IStyledFont.d.ts +0 -330
@@ -0,0 +1,38 @@
1
+ import { IFontCollection } from '../../font/IFontCollection';
2
+ /**
3
+ * How chart layout measures text: one line's advance width and its height, in points.
4
+ *
5
+ * @remarks
6
+ * Excel lays chart text out with DirectWrite's numbers, not GDI's: advances unhinted and unkerned,
7
+ * and a line as tall as the font's ascent plus descent at the exact size, from the typo metrics
8
+ * when the font sets `USE_TYPO_METRICS` and from `usWinAscent`/`usWinDescent` otherwise (measured,
9
+ * DESIGN-CHART §4). Every host measures through this one interface, so a server and a browser lay
10
+ * a chart out alike.
11
+ */
12
+ export interface TextMeasurer {
13
+ /** The advance width of `text` on one line, in pt. */
14
+ width(text: string, font: TextMeasurer.Font): number;
15
+ /** The height of one line, in pt. */
16
+ lineHeight(font: TextMeasurer.Font): number;
17
+ }
18
+ export declare namespace TextMeasurer {
19
+ interface Font {
20
+ family: string;
21
+ /** In pt. */
22
+ size: number;
23
+ bold?: boolean;
24
+ italic?: boolean;
25
+ }
26
+ }
27
+ /**
28
+ * Measures with the font tables of `fonts`: the family's own table, a related family's, or a
29
+ * built-in one (DESIGN-FONTS §3).
30
+ *
31
+ * @remarks
32
+ * A table keeps `usWinAscent`/`usWinDescent` only, so a family that sets `USE_TYPO_METRICS` and has
33
+ * typo metrics that differ from them measures taller than Excel draws it. Aptos Narrow, the default
34
+ * chart font, has no table: it is measured with Calibri's, whose width differs by up to 8% per
35
+ * string and whose line height (1.2207 em) is Aptos Narrow's.
36
+ */
37
+ export declare function createTableMeasurer(fonts?: IFontCollection): TextMeasurer;
38
+ //# sourceMappingURL=TextMeasurer.d.ts.map
@@ -0,0 +1,50 @@
1
+ import { Bounds, Point } from '@sheetxl/utils';
2
+ /**
3
+ * Geometry for hit testing a layout: everything in px, as the layout speaks.
4
+ */
5
+ /** How near a line a point may be and still hit it, in px. */
6
+ export declare const LINE_TOLERANCE = 3;
7
+ /** The least a point's box is across, so a marker-less point can be pressed, in px. */
8
+ export declare const MIN_POINT_SIZE = 6;
9
+ export declare const contains: (bounds: Bounds | null | undefined, point: Point) => boolean;
10
+ /** `bounds` grown by `by` on every side. */
11
+ export declare const grow: (bounds: Bounds, by: number) => Bounds;
12
+ /** The box about `center`, `size` across. */
13
+ export declare const boxAbout: (center: Point, size: number) => Bounds;
14
+ /** The smallest box holding every one of `boxes`; `null` for none. */
15
+ export declare const union: (boxes: readonly (Bounds | null | undefined)[]) => Bounds | null;
16
+ /** The box about a run of points; `null` for none. */
17
+ export declare const boundsOfPoints: (points: readonly (Point | null | undefined)[]) => Bounds | null;
18
+ export declare const distance: (a: Point, b: Point) => number;
19
+ /** The distance from `point` to the segment `from`–`to`. */
20
+ export declare const distanceToSegment: (point: Point, from: Point, to: Point) => number;
21
+ /**
22
+ * Whether `point` is within `tolerance` of a polyline through `points` (a `null` breaks it), and
23
+ * the index of the nearer end of the segment it is nearest to.
24
+ */
25
+ export declare const nearPolyline: (point: Point, points: readonly (Point | null)[], tolerance: number, closed?: boolean) => {
26
+ index: number;
27
+ distance: number;
28
+ } | null;
29
+ /** Whether `point` is inside the polygon `polygon` (even-odd). */
30
+ export declare const inPolygon: (point: Point, polygon: readonly Point[]) => boolean;
31
+ /** The point `radius` from `center` at `angle` degrees clockwise from 12 o'clock. */
32
+ export declare const pointAtAngle: (center: Point, radius: number, angle: number) => Point;
33
+ /** An angle in degrees clockwise from 12 o'clock, in `[0, 360)`. */
34
+ export declare const normalizeAngle: (angle: number) => number;
35
+ /** The angle of `point` about `center`, in degrees clockwise from 12 o'clock. */
36
+ export declare const angleOf: (center: Point, point: Point) => number;
37
+ /** A ring sector: between two radii from `center`, from `startAngle` clockwise to `endAngle`. */
38
+ export interface Sector {
39
+ center: Point;
40
+ innerRadius: number;
41
+ outerRadius: number;
42
+ /** Degrees clockwise from 12 o'clock. */
43
+ startAngle: number;
44
+ endAngle: number;
45
+ }
46
+ /** Whether `point` is in the sector. A sector of no span is hit by nothing. */
47
+ export declare const inSector: (point: Point, sector: Sector) => boolean;
48
+ /** The box about the sector. */
49
+ export declare const sectorBounds: (sector: Sector) => Bounds;
50
+ //# sourceMappingURL=_HitGeometry.d.ts.map
@@ -0,0 +1,36 @@
1
+ import { Bounds, Point } from '@sheetxl/utils';
2
+ import { ChartLayout } from './ChartLayout';
3
+ /**
4
+ * Hit testing a layout, painter-free: what element is drawn at a point, and the box an element is
5
+ * drawn in, both in px from the chart's top-left as the layout speaks. The chrome (title, legend,
6
+ * axes, labels, analysis lines, plot and chart area) is answered from the layout's own rects; each
7
+ * group's drawing through its kind's {@link ChartKind.hitTest} and {@link ChartKind.pointBounds}.
8
+ *
9
+ * The layout names its parts by ids (a series' `s<idx>`, an axis's `axId`, a group's and a legend
10
+ * entry's place); the chart supplies what each is called as an element path.
11
+ */
12
+ /** What the layout's ids are as element paths, from the chart. */
13
+ export interface HitNames {
14
+ /** The path of a series by its layout id (`series/<key>`). */
15
+ series: ReadonlyMap<string, string>;
16
+ /** The path of an axis by its id (`axes/primary/value`). */
17
+ axes: ReadonlyMap<number, string>;
18
+ /** The path of a group by its index in the layout's `groups` (`groups/<n>`). */
19
+ groups: ReadonlyMap<number, string>;
20
+ /** The path of a legend entry by its index in the layout's legend's `entries` (`legend/entries/<n>`). */
21
+ legendEntries: ReadonlyMap<number, string>;
22
+ }
23
+ /**
24
+ * The element drawn at `point`: the topmost of what the layout draws there, as Excel stacks them
25
+ * (title and legend over everything; then data labels, trendlines and error bars; the series;
26
+ * the lines under them; axis titles, axes and gridlines; the plot area; the chart area), or `null`
27
+ * outside the chart.
28
+ */
29
+ export declare function hitTestLayout(layout: ChartLayout, point: Point, names: HitNames): string | null;
30
+ /**
31
+ * The box the element at `path` is drawn in, or `null` where the layout draws nothing for it (a
32
+ * hidden part, a data table, a point not drawn). The chart area's is the whole chart's; the plot
33
+ * area's its outer box; an axis's its band of line and labels; a series' its points' together.
34
+ */
35
+ export declare function elementBoundsOf(layout: ChartLayout, path: string, names: HitNames): Bounds | null;
36
+ //# sourceMappingURL=_HitTest.d.ts.map
@@ -0,0 +1,25 @@
1
+ import { ChartLayout } from './ChartLayout';
2
+ import { TextMeasurer } from './TextMeasurer';
3
+ import { ResolvedChart } from '../resolve/_ResolvedChart';
4
+ /**
5
+ * Lays a resolved chart out at `size` px (unzoomed), measuring its text with `measurer`.
6
+ *
7
+ * @remarks
8
+ * Builds columns and horizontal bars (clustered, stacked and 100% stacked), lines and areas
9
+ * (standard, stacked and 100% stacked) on category axes, scatters on two value axes, and
10
+ * pies and doughnuts, with their axes and axis titles, title, legend, and the data labels of bars,
11
+ * lines, areas, scatters, pies and doughnuts. Category labels wrap, turn and are skipped as Excel
12
+ * fits them, and multi-level categories take a band per level with dividers between their groups;
13
+ * a date axis has a slot per day, month or year and labels its major ticks; a value axis may be
14
+ * logarithmic. Other groups are left out of the layout. Manual layouts are not built yet.
15
+ */
16
+ /**
17
+ * The groups the layout lays out, in the chart's order: those with a registered kind that draws
18
+ * them. `ChartLayout.groups` has one entry per group here.
19
+ */
20
+ export declare function drawnGroups(chart: ResolvedChart): ResolvedChart.Group[];
21
+ export declare function layoutChart(chart: ResolvedChart, measurer: TextMeasurer, size: {
22
+ width: number;
23
+ height: number;
24
+ }): ChartLayout;
25
+ //# sourceMappingURL=_Layout.d.ts.map
@@ -0,0 +1,97 @@
1
+ import { Bounds } from '@sheetxl/utils';
2
+ import { IStroke } from '../../fill/IStroke';
3
+ import { IText } from '../../text/IText';
4
+ import { ChartLayout } from './ChartLayout';
5
+ import { ResolvedChart } from '../resolve/_ResolvedChart';
6
+ import { AxisLimits } from '../math/UnitCalcs';
7
+ import { TrendlineTextRun } from '../math/Trendlines';
8
+ /**
9
+ * What the layout and the kinds share: the frame's units and the conversions to px, and the small
10
+ * questions every kind asks of an axis or a group.
11
+ *
12
+ * @remarks
13
+ * Lengths are points until the end, where they become px. Element positions are relative to a
14
+ * frame inset {@link FRAME_INSET} from the chart on every side: COM reports them in it, the title
15
+ * centers in it, and the margins are symmetric about it, at every chart size and border width
16
+ * probed (DESIGN-CHART §4, `probe-chart-layout.ps1`, Excel 16.0, 2026-10-16).
17
+ */
18
+ export declare const FRAME_INSET = 4;
19
+ export declare const PX_PER_PT: number;
20
+ /** How far a value axis's end labels may reach past the plot area's outer rect. */
21
+ export declare const LABEL_OVERHANG = 6;
22
+ /**
23
+ * The band axis labels take beside the plot: the widest label (vertical value axis) or one line
24
+ * (horizontal axis) plus `perLine` lines, less 4.5 pt. Fit on Aptos Narrow from 6 to 28 pt to
25
+ * 0.012 pt; Calibri and Arial at 18 pt fall within 0.15 pt and 0.54 pt. A scatter's x axis takes the
26
+ * horizontal band too (`probe-chart-area-scatter.ps1` S0).
27
+ */
28
+ export declare const VALUE_LABEL_BAND: {
29
+ perLine: number;
30
+ offset: number;
31
+ };
32
+ export declare const CATEGORY_LABEL_BAND: {
33
+ perLine: number;
34
+ offset: number;
35
+ };
36
+ /**
37
+ * How far a data label keeps from what it labels (D01-D36): 3 pt from a bar's end or base, inside or
38
+ * out; from a line's or a scatter's point, 3 pt from its marker's edge, a marker of the series' size
39
+ * (5 pt where none is drawn) whether or not one is drawn, at 9 and 14 pt.
40
+ */
41
+ export declare const LABEL_GAP = 3;
42
+ /** Where labels are drawn: their near edge this far from the axis, by font size. From the exported pictures, to ±0.75 pt. */
43
+ export declare const valueLabelGap: (size: number) => number;
44
+ export declare const categoryLabelGap: (size: number) => number;
45
+ export declare const px: (pt: number) => number;
46
+ /** A frame coordinate to px from the chart's top-left. */
47
+ export declare const at: (pt: number) => number;
48
+ export declare const rectPx: (x: number, y: number, width: number, height: number) => Bounds;
49
+ /** A resolved font as the run a painter draws, its size in px. */
50
+ export declare const fontPx: (font: ResolvedChart.Font) => IText.RunPropertiesJSON;
51
+ /** A resolved line as a painter draws it, its width in px. */
52
+ export declare const strokePx: (stroke: ResolvedChart.Stroke | null) => IStroke.JSON | null;
53
+ export declare const markerPx: (marker: ResolvedChart.Marker | null) => ChartLayout.MarkerLayout | null;
54
+ /** A rect in the frame, pt. */
55
+ export interface Box {
56
+ x: number;
57
+ y: number;
58
+ width: number;
59
+ height: number;
60
+ }
61
+ /** A value axis's scale: its limits, and the ticks and labels along it. */
62
+ export interface ValueScale extends AxisLimits {
63
+ ticks: number[];
64
+ labels: string[];
65
+ /** A log axis's base. */
66
+ logBase?: number;
67
+ /** What the axis's label band is as wide as, when more than its labels. */
68
+ measured?: string[];
69
+ }
70
+ /** A slice as its label is placed about it, in pt: its middle in radians clockwise from 12 o'clock, and what it is drawn around. */
71
+ export interface PieSlice {
72
+ middle: number;
73
+ center: {
74
+ x: number;
75
+ y: number;
76
+ };
77
+ innerRadius: number;
78
+ outerRadius: number;
79
+ }
80
+ /** A value's share of the way up a scale, `null` where a log scale has no place for it. */
81
+ export declare const shareOf: (scale: ValueScale, value: number) => number | null;
82
+ export declare const isStacked: (group: ResolvedChart.Group) => boolean;
83
+ /** An axis along the bottom or top of the plot. */
84
+ export declare const isHorizontal: (axis: ResolvedChart.Axis) => boolean;
85
+ export declare const hasLabels: (axis: ResolvedChart.Axis) => boolean;
86
+ export declare const POSITIONS: Readonly<Record<ResolvedChart.Axis['position'], ChartLayout.AxisPosition>>;
87
+ /** A group's horizontal axis and vertical axis: a category and a value axis, or a scatter's two value axes. */
88
+ export declare const pairOf: (group: ResolvedChart.Group, axes: ResolvedChart.Axis[]) => {
89
+ x: ResolvedChart.Axis;
90
+ y: ResolvedChart.Axis;
91
+ } | null;
92
+ /**
93
+ * A line of runs wrapped between words to `room`: each word kept whole, a word wider than the room
94
+ * on a line of its own, and the space a line breaks at dropped.
95
+ */
96
+ export declare const wrapRuns: (runs: readonly TrendlineTextRun[], room: number, widthOf: (runs: readonly TrendlineTextRun[]) => number) => TrendlineTextRun[][];
97
+ //# sourceMappingURL=_LayoutUtils.d.ts.map
@@ -0,0 +1,35 @@
1
+ /**
2
+ * The statistics a box and whisker draws for one set of values, as Excel computes them (measured
3
+ * 2026-10-22, `probe-chart-2016-types.ps1` B01-B13 and `probe-chart-2016-types-reopen.ps1` B05-B07;
4
+ * DESIGN-CHART §4.17): quartiles by Excel's exclusive (`QUARTILE.EXC`) or inclusive
5
+ * (`QUARTILE.INC`) method, the median the same either way; whiskers to the furthest values within
6
+ * 1.5 interquartile ranges of the box, and the values beyond them outliers (B09: 60 beyond a box of
7
+ * 15..25).
8
+ */
9
+ export type QuartileMethod = 'inclusive' | 'exclusive';
10
+ export interface BoxStats {
11
+ count: number;
12
+ min: number;
13
+ max: number;
14
+ q1: number;
15
+ median: number;
16
+ q3: number;
17
+ mean: number;
18
+ /** The whiskers' ends: the furthest values within the fences. */
19
+ whiskerLow: number;
20
+ whiskerHigh: number;
21
+ /** The values beyond the fences, in their order. */
22
+ outliers: number[];
23
+ /** The values within the fences, in their order. */
24
+ inliers: number[];
25
+ }
26
+ /**
27
+ * The `p`th quantile of sorted values: at position `p·(n + 1)` from 1 (exclusive) or
28
+ * `1 + p·(n − 1)` (inclusive), interpolated between the values either side, and held to the ends
29
+ * where the position falls outside them (Excel's `QUARTILE.EXC` answers an error there; the chart
30
+ * draws the end value, by belief).
31
+ */
32
+ export declare function quantile(sorted: readonly number[], p: number, method: QuartileMethod): number;
33
+ /** The statistics of `values` (blanks left out); `null` where there are none. */
34
+ export declare function boxStats(values: readonly (number | null)[], method: QuartileMethod): BoxStats | null;
35
+ //# sourceMappingURL=BoxStats.d.ts.map
@@ -0,0 +1,80 @@
1
+ /**
2
+ * Excel's date axis (measured 2026-10-17, `probe-chart-dates.ps1` and `probe-chart-dates-units.ps1`,
3
+ * DESIGN-CHART §4.2). Dates are serials, in the 1900 or 1904 system; lengths are points.
4
+ *
5
+ * @remarks
6
+ * A date axis has one slot per base unit (a day, a month or a year) from its first date, snapped to
7
+ * the start of its unit, to its last; each point is drawn in the slot of its date, so a gap in the
8
+ * dates is a gap on the axis and two points of one date share a slot. Labels are drawn on the
9
+ * major ticks only, from the first slot on, in the axis's number format.
10
+ */
11
+ export type TimeUnit = 'days' | 'months' | 'years';
12
+ /** A length of time: `count` of `unit`. */
13
+ export interface DateUnit {
14
+ count: number;
15
+ unit: TimeUnit;
16
+ }
17
+ /**
18
+ * `serial` moved back to the start of its `unit`: its day, the first of its month, or January 1st
19
+ * of its year. The time of day is dropped.
20
+ */
21
+ export declare function toBaseUnit(serial: number, unit?: TimeUnit, date1904?: boolean): number;
22
+ /** `serial` moved on by `count` of `unit`; months and years keep the day of the month where they can. */
23
+ export declare function addUnits(serial: number, count: number, unit: TimeUnit, date1904?: boolean): number;
24
+ /** How many whole `unit`s `to` is after `from`, counting the units they fall in: Jan 31 to Feb 1 is one month. */
25
+ export declare function unitsBetween(from: number, to: number, unit: TimeUnit, date1904?: boolean): number;
26
+ /**
27
+ * The base unit Excel chooses for `serials`: the largest unit no two different dates share. Two
28
+ * dates in one month make it days; two in one year, months; else years (measured: month starts
29
+ * and mid-month dates are months, dates a few months apart are months, a repeated date leaves it
30
+ * days).
31
+ */
32
+ export declare function baseUnitOf(serials: readonly number[], date1904?: boolean): TimeUnit;
33
+ /** A date axis's slots: its bounds and base unit. */
34
+ export interface DateSlots {
35
+ /** The first slot's date: the first date snapped to the base unit, or the stated minimum. */
36
+ min: number;
37
+ /** The last slot's date. */
38
+ max: number;
39
+ baseUnit: TimeUnit;
40
+ /** How many base units the axis holds, both ends included. */
41
+ count: number;
42
+ }
43
+ /** The slots of a date axis over `serials`; stated bounds and base unit win. */
44
+ export declare function dateSlots(serials: readonly number[], options?: {
45
+ min?: number;
46
+ max?: number;
47
+ baseUnit?: TimeUnit;
48
+ date1904?: boolean;
49
+ }): DateSlots;
50
+ /** The slot `serial` falls in, or `null` outside the axis. */
51
+ export declare function slotOf(slots: DateSlots, serial: number, date1904?: boolean): number | null;
52
+ /**
53
+ * Where `serial` falls along the slots, as a slot and the share of its base unit past the slot's
54
+ * date: a trendline's x on a date axis. Not bounded to the slots.
55
+ */
56
+ export declare function slotAt(slots: DateSlots, serial: number, date1904?: boolean): number;
57
+ /** The major ticks from the first slot on, every `major`: each its date and the slot it is in. */
58
+ export declare function dateTicks(slots: DateSlots, major: DateUnit, date1904?: boolean): {
59
+ serial: number;
60
+ slot: number;
61
+ }[];
62
+ /**
63
+ * Along the bottom or top, each label of a date axis needs this many times its size of the axis,
64
+ * whatever its text (the same widths for `m/d/yyyy` and `mmm-yy`): all 58 moves between majors of
65
+ * one unit in 17 sweeps, at 9 and 14 pt, fall between 1.46443 and 1.46485, the axis being the
66
+ * width the plot area's labels share.
67
+ */
68
+ export declare const DATE_LABEL_SPAN = 1.4648;
69
+ /**
70
+ * The major unit Excel chooses for a date axis `length` long whose labels are `size` pt: the
71
+ * first candidate whose labels each get {@link DATE_LABEL_SPAN} × `size` of the axis, a weekly
72
+ * major on a daily axis only while the axis is long enough for it ({@link WEEKLY}). The last
73
+ * candidate when none fits.
74
+ *
75
+ * @remarks
76
+ * Measured along the bottom; up a side (horizontal bars) the same rule is believed. Below about
77
+ * 80 pt Excel moves on to multiples of 7 days on any daily axis; that is not followed.
78
+ */
79
+ export declare function fitDateMajor(slots: DateSlots, length: number, size: number, date1904?: boolean): DateUnit;
80
+ //# sourceMappingURL=DateUnitCalcs.d.ts.map
@@ -0,0 +1,53 @@
1
+ /**
2
+ * Excel's built-in axis display units. `multi` is the divisor applied to a value before it is
3
+ * formatted for an axis label: 1,500,000 shows as 1.5 under `millions`.
4
+ */
5
+ export declare const builtInDisplayUnits: {
6
+ readonly none: {
7
+ readonly description: "None";
8
+ readonly multi: 1;
9
+ };
10
+ readonly hundreds: {
11
+ readonly description: "Hundreds";
12
+ readonly multi: 100;
13
+ };
14
+ readonly thousands: {
15
+ readonly description: "Thousands";
16
+ readonly multi: 1000;
17
+ };
18
+ readonly tenThousands: {
19
+ readonly description: "10000";
20
+ readonly multi: 10000;
21
+ };
22
+ readonly hundredThousands: {
23
+ readonly description: "100000";
24
+ readonly multi: 100000;
25
+ };
26
+ readonly millions: {
27
+ readonly description: "Millions";
28
+ readonly multi: 1000000;
29
+ };
30
+ readonly tenMillions: {
31
+ readonly description: "10000000";
32
+ readonly multi: 10000000;
33
+ };
34
+ readonly hundredMillions: {
35
+ readonly description: "100000000";
36
+ readonly multi: 100000000;
37
+ };
38
+ readonly billions: {
39
+ readonly description: "Billions";
40
+ readonly multi: 1000000000;
41
+ };
42
+ readonly trillions: {
43
+ readonly description: "Trillions";
44
+ readonly multi: 1000000000000;
45
+ };
46
+ };
47
+ export type BuiltInDisplayUnit = keyof typeof builtInDisplayUnits;
48
+ /**
49
+ * `value` scaled for display by a built-in unit's name (`c:builtInUnit`) or a divisor
50
+ * (`c:custUnit`).
51
+ */
52
+ export declare function adjustForDisplayUnit(value: number, displayUnit?: BuiltInDisplayUnit | string | number | null): number;
53
+ //# sourceMappingURL=DisplayUnits.d.ts.map
@@ -0,0 +1,48 @@
1
+ /**
2
+ * How a histogram bins its values, as Excel does (measured 2026-10-22,
3
+ * `probe-chart-2016-types.ps1` H01-H16 and `probe-chart-2016-types-reopen.ps1` H04-H07, H13;
4
+ * DESIGN-CHART §4.16).
5
+ *
6
+ * - The automatic bin width is Scott's rule, 3.5·s/∛n for the sample standard deviation s, rounded
7
+ * to two significant digits (27.32 → 27, 14.75 → 15, 18.88 → 19, 0.4001 → 0.40, 81.32 → 81);
8
+ * {@link REPEATED_VALUE_WIDTH} when every value is the same (H15: one value, [7, 12]).
9
+ * - A stated bin count divides the values' range into that many bins (H05: 81/5 = 16.2).
10
+ * - The bins start at the minimum, or at the underflow bound where one is stated, and run up by
11
+ * the width until they reach the maximum, or the overflow bound, where the last bin is cut
12
+ * (H06: (30, 57], (57, 60]; H07: [12, 39], (39, 60]). An underflow bin takes the values at or
13
+ * below its bound, an overflow bin those above (`intervalClosed r`), or below and at or above
14
+ * (`l`).
15
+ * - Closed on the right, the first bin takes its lower bound too, `[12, 39]`, the others `(39, 66]`;
16
+ * closed on the left, every bin is `[30, 40)` (H13), and a value at the maximum has a bin of its own.
17
+ */
18
+ /** The bin width when the values have no spread: belief, from one value repeated (H15). */
19
+ export declare const REPEATED_VALUE_WIDTH = 5;
20
+ export interface HistogramOptions {
21
+ /** Which end of a bin takes a value on its bound. */
22
+ intervalClosed: 'l' | 'r';
23
+ binSize?: number;
24
+ binCount?: number;
25
+ /** Values at or below (closed right) or below (closed left) this go in a bin of their own. */
26
+ underflow?: number;
27
+ /** Values above (closed right) or at or above (closed left) this go in a bin of their own. */
28
+ overflow?: number;
29
+ }
30
+ export interface HistogramBin {
31
+ kind: 'underflow' | 'bin' | 'overflow';
32
+ /** The bin's lower bound; `null` for an underflow bin. */
33
+ from: number | null;
34
+ /** The bin's upper bound; `null` for an overflow bin. */
35
+ to: number | null;
36
+ /** The indexes of the values in the bin, in their order. */
37
+ points: number[];
38
+ }
39
+ /** Scott's bin width for `values`, rounded as Excel rounds it. */
40
+ export declare function automaticBinWidth(values: number[]): number;
41
+ /** The bins of `values` (a blank, `null`, is in none), each with the values that fall in it. */
42
+ export declare function histogramBins(values: readonly (number | null)[], options: HistogramOptions): HistogramBin[];
43
+ /**
44
+ * A bin's label: `[12, 39]` for the first bin closed on the right and `(39, 66]` for the next,
45
+ * `[30, 40)` closed on the left; `≤ 30` or `< 30` for an underflow bin, `> 60` or `≥ 60` for an overflow.
46
+ */
47
+ export declare function histogramBinLabel(bins: readonly HistogramBin[], index: number, intervalClosed: 'l' | 'r', format: (value: number) => string): string;
48
+ //# sourceMappingURL=Histogram.d.ts.map
@@ -0,0 +1,166 @@
1
+ import { TextMeasurer } from '../layout/TextMeasurer';
2
+ /**
3
+ * Excel's fit of category axis labels: as they are, wrapped, turned to 45 and then 90 degrees, and
4
+ * then only every nth one shown (measured 2026-10-17, `probe-chart-categories.ps1`, DESIGN-CHART
5
+ * §4.1). Lengths are points.
6
+ *
7
+ * @remarks
8
+ * Rescued from exhibit-master's `OrdUnitCalcs.js` and typed over {@link TextMeasurer}: the same
9
+ * order of trials, with the spacing each angle needs taken from {@link calcDistanceNeededAtAxis}
10
+ * of the labels' own width, and the label interval from how many labels the axis holds.
11
+ */
12
+ /** What is drawn for a label cut short. */
13
+ export declare const LABEL_ELLIPSIS = "\u2026";
14
+ /** How to fit one axis's labels. */
15
+ export interface CategoryFitOptions {
16
+ /**
17
+ * The length the categories share. Along the bottom or top: the plot area's outer width less the
18
+ * value axes' label bands, before any label reaches past an end. Up a side: the inside height.
19
+ */
20
+ length: number;
21
+ /**
22
+ * The axis runs along the bottom or top. Its labels may wrap, turn and be cut. A side axis's
23
+ * labels stay level and wrap to {@link maxWidth}.
24
+ */
25
+ horizontal: boolean;
26
+ /** The stated angle, in degrees counterclockwise; absent when Excel chooses. */
27
+ rotation?: number;
28
+ /** The stated interval between labels (`tickLblSkip`); absent when Excel chooses. */
29
+ skip?: number;
30
+ /** Along the bottom or top: how far the labels may reach from the axis. */
31
+ maxDepth?: number;
32
+ /** Up a side: how wide a line may be. */
33
+ maxWidth?: number;
34
+ /** The last category comes first along the axis. */
35
+ reversed?: boolean;
36
+ /** The labels are stacked letter over letter (`vert="wordArtVert"`). */
37
+ vertical?: boolean;
38
+ /**
39
+ * The labels are the innermost level of multi-level categories. Excel then turns them straight
40
+ * to 90 degrees when it chooses, never 45 (measured 2026-10-17, `probe-chart-multilevel.ps1`: every
41
+ * turn of four sweeps, where 45 degrees would have fit; a stated 45 is kept).
42
+ */
43
+ innermost?: boolean;
44
+ }
45
+ /** An axis's labels as fitted. */
46
+ export interface CategoryLabelFit {
47
+ /** Every `skip`th category has a label, starting with the first. */
48
+ skip: number;
49
+ /** In degrees counterclockwise. */
50
+ rotation: number;
51
+ /** The labels are stacked: each label's columns joined by `\t`, their letters by `\n`. */
52
+ vertical?: boolean;
53
+ /** One per category: the text drawn, its lines joined by `\n`; `null` for a category with no label. */
54
+ labels: (string | null)[];
55
+ /**
56
+ * How far the labels reach away from the axis: their lines' height when level, the extent of the
57
+ * turned box when turned; up a side, the widest line.
58
+ */
59
+ depth: number;
60
+ /**
61
+ * How far the labels reach along the axis past the end categories' centers: `start` before the
62
+ * first category along the axis (its left, or its bottom up a side), `end` after the last.
63
+ */
64
+ reach: {
65
+ start: number;
66
+ end: number;
67
+ };
68
+ }
69
+ /** The width of the widest word of `text`. */
70
+ export declare function findLargestWord(text: string, measure: (text: string) => number): number;
71
+ /**
72
+ * `text` broken into lines no wider than `width`: at its own line breaks, between words, and inside
73
+ * a word too wide for a line of its own when `breakWords` is set (such a word otherwise keeps its
74
+ * line).
75
+ */
76
+ export declare function wrapLabel(text: string, width: number, measure: (text: string) => number, breakWords?: boolean): string[];
77
+ /**
78
+ * Stacked labels (`vert="wordArtVert"`, measured 2026-10-22, `probe-chart-axes.ps1` V01-V09): each
79
+ * letter on its own line, {@link STACKED_LETTER_PITCH} lines apart (12.82 pt at 9 pt, fitted there
80
+ * and held within 0.2 pt at 6, 14 and 18 pt); along the bottom a label taller than half the plot's
81
+ * outer height breaks into columns of as many letters as fit, {@link STACKED_COLUMN_PITCH} font
82
+ * sizes apart (from the pictures at 9 and 14 pt), centered on the category. The last label reaches
83
+ * past its category along the axis by {@link STACKED_REACH} of its own column's height, the
84
+ * letters' drawn pitch (V01, V02, V06, V07, V09: 0.939 to 0.940 at 9, 14 and 18 pt); the first
85
+ * reaches nowhere (V02, V06, V09: two columns over the value axis's band, which stays).
86
+ * Up a side, a label is one column as deep as a letter's pitch, whatever its letters (V03, V04 at
87
+ * 9 pt: 12.82 pt for "Jan".."Jun" and for "0".."30").
88
+ */
89
+ export declare const STACKED_LETTER_PITCH: number;
90
+ export declare const STACKED_COLUMN_PITCH = 0.95;
91
+ /**
92
+ * Fits `texts`, one per category, to an axis.
93
+ *
94
+ * @remarks
95
+ * Along the bottom or top, the interval is the smallest that lets the labels fit. Excel takes it
96
+ * from how many labels the axis holds at the most compact angle tried (90 degrees when it
97
+ * chooses), so 12 categories go from every 4th to every 6th label. At that interval the first
98
+ * angle that fits is taken. Level labels fit when every word is no wider than the labels' share
99
+ * of the axis, and wrap between words to it. A turned label needs its line's height over the
100
+ * sine of the angle. A label longer than its room ({@link CategoryFitOptions.maxDepth}, the axis's
101
+ * length along it, or {@link CategoryFitOptions.maxWidth} up a side) is cut, or at 90 degrees and up
102
+ * a side wrapped in the lines its category holds and the last cut.
103
+ */
104
+ export declare function fitCategoryLabels(texts: string[], font: TextMeasurer.Font, measurer: TextMeasurer, options: CategoryFitOptions): CategoryLabelFit;
105
+ /** A run of categories that one label of an outer level of multi-level categories spans. */
106
+ export interface CategoryGroup {
107
+ first: number;
108
+ last: number;
109
+ /** The label; `null` for the blanks before a level's first label, a group with none. */
110
+ text: string | null;
111
+ }
112
+ /**
113
+ * The groups of each level of multi-level categories beyond the innermost, the nearest the axis
114
+ * first. `levels` are by level, the innermost first, each by category with `''` for a blank. A
115
+ * label starts a group, and a blank continues the one before it; blanks before a level's first
116
+ * label are a group with no label (measured 2026-10-17, `probe-chart-multilevel.ps1` L21). A group
117
+ * also ends where a group of a level further out does (believed).
118
+ */
119
+ export declare function groupCategories(levels: readonly (readonly string[])[], count: number): CategoryGroup[][];
120
+ /** How to fit one outer level of multi-level categories. */
121
+ export interface LevelFitOptions {
122
+ /** The length the categories share, as for {@link CategoryFitOptions.length}. */
123
+ length: number;
124
+ /** How many categories share it. */
125
+ count: number;
126
+ /** The axis runs along the bottom or top; up a side, the labels are turned to read up. */
127
+ horizontal: boolean;
128
+ /** The stated interval between the innermost labels (`tickLblSkip`). */
129
+ skip?: number;
130
+ }
131
+ /** One outer level of multi-level categories as fitted. */
132
+ export interface LevelFit {
133
+ /** Each group, with its label's lines; `null` for a group whose label is not shown. */
134
+ groups: (CategoryGroup & {
135
+ lines: string[] | null;
136
+ })[];
137
+ /** How far the level's labels reach away from the axis: their lines' height. */
138
+ depth: number;
139
+ }
140
+ /**
141
+ * Fits the labels of one outer level of multi-level categories to their groups, a group having its
142
+ * categories' share of the axis (measured 2026-10-17, `probe-chart-multilevel.ps1`):
143
+ * - Along the bottom, each label wraps between words to its group's share, its lines centered,
144
+ * when every word of the level fits its group; else every label of the level wraps to
145
+ * {@link OVERRUN_WRAP} of the axis and may overrun its group (the long outer sweep).
146
+ * - Up a side, the labels are turned to read up and wrap to their group's share, inside words too
147
+ * (L16, the bar height sweep).
148
+ * - A stated interval shows a group's label only where its first category's label is shown (L27,
149
+ * L38-L41); Excel's own interval leaves every outer label shown (L4).
150
+ */
151
+ export declare function fitCategoryLevel(groups: readonly CategoryGroup[], font: TextMeasurer.Font, measurer: TextMeasurer, options: LevelFitOptions): LevelFit;
152
+ /** How to fit a date axis's labels. */
153
+ export interface DateFitOptions extends Omit<CategoryFitOptions, 'skip'> {
154
+ /** A wide date in the axis's format (December 13th, 2000): what Excel measures to decide whether labels stay level. */
155
+ sample: string;
156
+ }
157
+ /**
158
+ * Fits a date axis's labels, `texts` one per slot and `null` for a slot with no major tick
159
+ * (measured 2026-10-17, `probe-chart-dates.ps1`), by the room the labels have: level
160
+ * when each has room for {@link DATE_LEVEL}, at 45 degrees when two ticks are √2 × {@link DATE_LABEL_SPAN}
161
+ * × the size apart, else at 90 degrees, which needs the span the major unit is fit to (every move between
162
+ * 45 and 90 degrees in the sweeps within 0.2 pt). A level label stays on one line (believed). Up a
163
+ * side the labels stay level.
164
+ */
165
+ export declare function fitDateLabels(texts: readonly (string | null)[], font: TextMeasurer.Font, measurer: TextMeasurer, options: DateFitOptions): CategoryLabelFit;
166
+ //# sourceMappingURL=OrdUnitCalcs.d.ts.map