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

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 (349) hide show
  1. package/THIRD-PARTY-NOTICES.md +172 -0
  2. package/browser/esm/{BMyDRQ716j79h_bH.mjs → -GEhXGMfNcWmHPby.mjs} +6 -6
  3. package/browser/esm/{B7aUIvgUjncMMD_i.mjs → 9WXf_BTKjW1cQisZ.mjs} +95 -94
  4. package/browser/esm/{PcHFjNzQsE54POri.mjs → B2SgIPPBX0wjzuq8.mjs} +1 -1
  5. package/browser/esm/{DEiPS3Dr-s4fPbVZ.mjs → BC2RwlNwCdRywkoD.mjs} +1 -1
  6. package/browser/esm/{BpgskG1Er_lGQ_yS.mjs → BEqhm9xAUPiHUCFv.mjs} +1 -1
  7. package/browser/esm/BHgqi7KNrl7Vjr0W.mjs +348 -0
  8. package/browser/esm/{BkBhLS0l6z8sxI6D.mjs → BJKH0tDRx2FeSWvt.mjs} +2 -2
  9. package/browser/esm/{CU3DmJ-YnVVrC1_k.mjs → BTgWtqdQoh2cB6DL.mjs} +1 -1
  10. package/browser/esm/{Dyq_ivuHvlXLwPCl.mjs → BVshV1iY3bcUH9_E.mjs} +1135 -1129
  11. package/browser/esm/{BFagR2JeWs74iAG3.mjs → BYQ63XU7JzB4_itX.mjs} +1 -1
  12. package/browser/esm/{DvAaxH6z_tGvrRzl.mjs → Bax5aOzQkbHKXW_X.mjs} +239 -230
  13. package/browser/esm/{DLLE0FZNsKxbBzRn.mjs → BiDGKhtzV6yIy66o.mjs} +45 -45
  14. package/browser/esm/BmYrWK5OmHRtgyqM.mjs +367 -0
  15. package/browser/esm/{ClPfI4lODvCece29.mjs → BoAlHgjPQ6mxb_oO.mjs} +74 -74
  16. package/browser/esm/{BoV6zPBnfqCBCqZ7.mjs → C0mjTq8lhrX3HiPa.mjs} +4328 -3166
  17. package/browser/esm/{nvU0ClAbf0g94YBK.mjs → C5j0IdwtYkWlOftv.mjs} +604 -596
  18. package/browser/esm/{DWNzqw7DUKwoxjri.mjs → CL84-iL2QeKlLzo5.mjs} +2 -2
  19. package/browser/esm/{Ctjb0SsxV4K4MMqG.mjs → CLkBe-6n-pStQhnz.mjs} +2 -2
  20. package/{node/esm/CZICGK_ss0HoGHCP.mjs → browser/esm/CPzfhTPX2Y4dHX2p.mjs} +2 -2
  21. package/browser/esm/{Dlmig06rIo7cInRk.mjs → CSJuIjYUOE387FIP.mjs} +1 -1
  22. package/browser/esm/{BjkCiv5Jz6WYKZeu.mjs → Cdw0mGuoV3IU2LhR.mjs} +2 -2
  23. package/browser/esm/Ced5uyofOWHuL_Jy.mjs +114 -0
  24. package/browser/esm/{CkxWugaJFjDGZNZ-.mjs → Ci_LJ4S_GvYX0STI.mjs} +1 -1
  25. package/browser/esm/{zlLuW405RSguy4Kn.mjs → CwygVKP_RXmne5Ot.mjs} +47 -47
  26. package/browser/esm/{C4MqfLn9Dm-l3OIk.mjs → D-mfK0noQrM2jZLT.mjs} +1 -1
  27. package/browser/esm/{BnG31I6Oj_HEtSPS.mjs → D9SH_8v3FYCnxOFK.mjs} +1 -1
  28. package/browser/esm/{BVDiOXGMc5_FMGfy.mjs → DPD8fop6az9HZNiK.mjs} +2 -2
  29. package/browser/esm/DW-MmlgMH87l-_cw.mjs +302 -0
  30. package/browser/esm/{CaB7J-xgfKO2uAkG.mjs → DctIlUsO78-OU2ht.mjs} +2 -2
  31. package/browser/esm/DdcKkVb4jM6Y_epY.mjs +184 -0
  32. package/browser/esm/{CHU6iu_WGlm7fLET.mjs → DfKzE0IY0TjaEIxG.mjs} +1 -1
  33. package/browser/esm/{C2VbEI_XVAoseAwa.mjs → DkloMquaR1pbZCER.mjs} +44 -43
  34. package/browser/esm/{C16ycKja6zG0crV_.mjs → Dz86-De57bv2VYIi.mjs} +19447 -16481
  35. package/browser/esm/{BtvLTTfSBdAKplVG.mjs → HApSgmV2FXRRwQac.mjs} +1 -1
  36. package/browser/esm/{CQYjO777cmAznUzK.mjs → IbVAQU4YqtFqLwYk.mjs} +1 -1
  37. package/browser/esm/index.mjs +823 -644
  38. package/browser/esm/mHQ95RAfxHzcUN2r.mjs +18 -0
  39. package/browser/esm/pm00uZZu_H3gxHFx.mjs +117 -0
  40. package/browser/esm/{CV5EGEjG5_-CPpP0.mjs → quEvwgrEuOb0h3q-.mjs} +1926 -1298
  41. package/browser/esm/{ClbvFbFzFzXLBKNN.mjs → zZngLMg6mg6nnNGX.mjs} +66 -66
  42. package/licenses/dependencies.txt +71 -1
  43. package/node/esm/{BqiexuA89caYnAPz.mjs → -K4Cek-bTUItkB_8.mjs} +1 -1
  44. package/node/esm/-b8yNV4v9qiq8EMY.mjs +117 -0
  45. package/node/esm/{D8zEN-6ZdDqDvTxM.mjs → 1V-m67YHbxmg3xk2.mjs} +74 -74
  46. package/node/esm/{D_t5AUxSm7_icjzq.mjs → 4ROAfJC1mokmqubv.mjs} +1 -1
  47. package/node/esm/B89et7t3uRmtxk4v.mjs +115 -0
  48. package/node/esm/BKBkCBNGhMU0nQdY.mjs +372 -0
  49. package/node/esm/{OVfaSb506tNSIvbv.mjs → BQ2XqExomMceAjfe.mjs} +20822 -18373
  50. package/node/esm/{2Kihw_-5lVTEnwMa.mjs → Bfg7qjCXCwXbzW3K.mjs} +1 -1
  51. package/node/esm/{D1TKBVmoKGAXf37B.mjs → BtMeAB_dqJnOfzJM.mjs} +2 -2
  52. package/node/esm/{D6e2z7eZpxOJXHc7.mjs → Byc_bxU_MdjYtt0x.mjs} +1 -1
  53. package/node/esm/{CNCNJNg890KdgkWh.mjs → Bzrl292TNCK3Cpid.mjs} +1 -1
  54. package/node/esm/{De2IONBxQhz-Qbyh.mjs → C0P9zspoypRAj7yv.mjs} +1 -1
  55. package/node/esm/{CzXT00vrQa1_gvW9.mjs → C9gpMN3galHGZyoK.mjs} +1 -1
  56. package/node/esm/CKCG2peOkTq0gIIW.mjs +310 -0
  57. package/node/esm/{DUTskXCXref-IJnI.mjs → CWBS90g3Hz-kQDkY.mjs} +46 -46
  58. package/node/esm/{BIwObuhTJYf0jpUa.mjs → CoGSVnn-hNMtTEus.mjs} +2 -2
  59. package/node/esm/{CwePQwTILHHjGDkZ.mjs → CzrLqStvrcPE2-hb.mjs} +194 -185
  60. package/node/esm/{CCN5vD410obwdz38.mjs → D16EdlZG1hX5WUUK.mjs} +96 -95
  61. package/node/esm/{CDHdgJXH2vS71WMc.mjs → D1mDga2K5sjs8y07.mjs} +1 -1
  62. package/node/esm/{cGwrLA1RCE-WhJ7w.mjs → D2jtztjE6c23RKvZ.mjs} +1 -1
  63. package/node/esm/{Bbf1Pm9Gk7YpLTvg.mjs → D9nRcWsYk3M82iD8.mjs} +1 -1
  64. package/node/esm/{yavzZOiZW_EjG9lE.mjs → DALYzTxZ9Ur9C69Q.mjs} +1 -1
  65. package/node/esm/{DkwIPzKc3UwdUIfM.mjs → DF0nL7s01dp7n0Bx.mjs} +10 -10
  66. package/node/esm/{DNRhGK-8Tr9xcRyc.mjs → DO5ldLqhTvIfPXLW.mjs} +3348 -2610
  67. package/node/esm/DQz8J8ci7EJdqbuB.mjs +351 -0
  68. package/node/esm/{BIRq1kT7lLRzns9t.mjs → DR2OQTKqqyIkZnse.mjs} +2 -2
  69. package/node/esm/{857CIBgQgGpnqrXk.mjs → DSTLPBgpsGW6qP9e.mjs} +73 -73
  70. package/node/esm/{CGp6VZL-gZa9Uezx.mjs → DiXp7KSOZUSWXaZ5.mjs} +1 -1
  71. package/node/esm/{CZiqiay42tFTrLI4.mjs → DwvXHsycOQR219c7.mjs} +1 -1
  72. package/node/esm/{B21JjOLghRoDOrkx.mjs → Hc6B04OyVzHx2F5I.mjs} +38 -37
  73. package/node/esm/{Ct3h15sCus4Tgt6M.mjs → NkPNHsq2T3DXg76x.mjs} +561 -553
  74. package/node/esm/{B084DssTcdBheTp_.mjs → Nl_IIkO1jbk0s9i-.mjs} +4552 -3373
  75. package/node/esm/{D2KBymQJd1XhpeQD.mjs → OQT5lGqq8a4r5xNa.mjs} +1 -1
  76. package/node/esm/OTaaFGhF-k_iwobp.mjs +18 -0
  77. package/node/esm/{CdJHUJSBRHZoryPe.mjs → Z1elC_roIu7LhceZ.mjs} +53 -53
  78. package/{browser/esm/D5np__Jb1euAyaLw.mjs → node/esm/e3F3OVXCxLJrSukW.mjs} +2 -2
  79. package/node/esm/index.mjs +806 -625
  80. package/node/esm/{mFiBSM7XgBHV9AY7.mjs → suOBVUz-pca6ilJH.mjs} +1607 -1601
  81. package/package.json +8 -6
  82. package/resources/contents.json +108 -0
  83. package/resources/fonts/aptos-bold-italic.hinted.json +125 -0
  84. package/resources/fonts/aptos-bold-italic.metrics.json +221 -0
  85. package/resources/fonts/aptos-bold-italic.rows.json +8 -0
  86. package/resources/fonts/aptos-bold.hinted.json +125 -0
  87. package/resources/fonts/aptos-bold.metrics.json +221 -0
  88. package/resources/fonts/aptos-bold.rows.json +8 -0
  89. package/resources/fonts/aptos-display-bold-italic.hinted.json +125 -0
  90. package/resources/fonts/aptos-display-bold-italic.metrics.json +221 -0
  91. package/resources/fonts/aptos-display-bold-italic.rows.json +8 -0
  92. package/resources/fonts/aptos-display-bold.hinted.json +125 -0
  93. package/resources/fonts/aptos-display-bold.metrics.json +221 -0
  94. package/resources/fonts/aptos-display-bold.rows.json +8 -0
  95. package/resources/fonts/aptos-display-italic.hinted.json +124 -0
  96. package/resources/fonts/aptos-display-italic.metrics.json +221 -0
  97. package/resources/fonts/aptos-display-italic.rows.json +8 -0
  98. package/resources/fonts/aptos-display-regular.hinted.json +125 -0
  99. package/resources/fonts/aptos-display-regular.metrics.json +221 -0
  100. package/resources/fonts/aptos-display-regular.rows.json +8 -0
  101. package/resources/fonts/aptos-italic.hinted.json +125 -0
  102. package/resources/fonts/aptos-italic.metrics.json +221 -0
  103. package/resources/fonts/aptos-italic.rows.json +8 -0
  104. package/resources/fonts/aptos-narrow-bold-italic.hinted.json +125 -0
  105. package/resources/fonts/aptos-narrow-bold-italic.metrics.json +221 -0
  106. package/resources/fonts/aptos-narrow-bold-italic.rows.json +8 -0
  107. package/resources/fonts/aptos-narrow-bold.hinted.json +125 -0
  108. package/resources/fonts/aptos-narrow-bold.metrics.json +221 -0
  109. package/resources/fonts/aptos-narrow-bold.rows.json +8 -0
  110. package/resources/fonts/aptos-narrow-italic.hinted.json +125 -0
  111. package/resources/fonts/aptos-narrow-italic.metrics.json +221 -0
  112. package/resources/fonts/aptos-narrow-italic.rows.json +8 -0
  113. package/resources/fonts/aptos-narrow-regular.hinted.json +125 -0
  114. package/resources/fonts/aptos-narrow-regular.metrics.json +221 -0
  115. package/resources/fonts/aptos-narrow-regular.rows.json +8 -0
  116. package/resources/fonts/aptos-regular.hinted.json +125 -0
  117. package/resources/fonts/aptos-regular.metrics.json +221 -0
  118. package/resources/fonts/aptos-regular.rows.json +8 -0
  119. package/resources/fonts/arial-bold-italic.rows.json +0 -1
  120. package/resources/fonts/arial-bold.rows.json +0 -1
  121. package/resources/fonts/arial-italic.rows.json +0 -1
  122. package/resources/fonts/arial-regular.rows.json +0 -1
  123. package/resources/fonts/calibri-bold-italic.rows.json +0 -1
  124. package/resources/fonts/calibri-bold.rows.json +0 -1
  125. package/resources/fonts/calibri-italic.rows.json +0 -1
  126. package/resources/fonts/calibri-regular.rows.json +0 -1
  127. package/resources/fonts/cambria-bold-italic.rows.json +0 -1
  128. package/resources/fonts/cambria-bold.rows.json +0 -1
  129. package/resources/fonts/cambria-italic.rows.json +0 -1
  130. package/resources/fonts/cambria-regular.rows.json +0 -1
  131. package/resources/fonts/contents.json +240 -0
  132. package/resources/fonts/courier-new-bold-italic.rows.json +0 -1
  133. package/resources/fonts/courier-new-bold.rows.json +0 -1
  134. package/resources/fonts/courier-new-italic.rows.json +0 -1
  135. package/resources/fonts/courier-new-regular.rows.json +0 -1
  136. package/resources/fonts/times-new-roman-bold-italic.rows.json +0 -1
  137. package/resources/fonts/times-new-roman-bold.rows.json +0 -1
  138. package/resources/fonts/times-new-roman-italic.rows.json +0 -1
  139. package/resources/fonts/times-new-roman-regular.rows.json +0 -1
  140. package/resources/locales/de/model.msg.json +12 -2
  141. package/resources/locales/en/model.msg.json +13 -2
  142. package/types/scripting-api.json +10638 -10446
  143. package/types/scripting-enums.json +20 -1
  144. package/types/scripting.d.ts +1536 -477
  145. package/types/src/.generated/wasm/sdk.d.ts +5 -27
  146. package/types/src/address/AddressUtils.d.ts +8 -0
  147. package/types/src/address/_SheetNameQuoteChars.d.ts +3 -0
  148. package/types/src/{sheet → anomalies}/_Anomalies.d.ts +3 -3
  149. package/types/src/anomalies/_FocusTable.d.ts +5 -0
  150. package/types/src/{sheet/_AnomalyFormulaChecks.d.ts → anomalies/_FormulaChecks.d.ts} +10 -2
  151. package/types/src/{sheet/_AnomalyLabelChecks.d.ts → anomalies/_LabelChecks.d.ts} +1 -1
  152. package/types/src/anomalies/_LiteralChecks.d.ts +35 -0
  153. package/types/src/anomalies/_SeriesChecks.d.ts +13 -0
  154. package/types/src/calculation/Calculation.d.ts +61 -98
  155. package/types/src/calculation/ExternalBookBindings.d.ts +2 -29
  156. package/types/src/calculation/ICalculation.d.ts +96 -9
  157. package/types/src/calculation/NamedFormulaCollection.d.ts +110 -10
  158. package/types/src/calculation/TokenType.d.ts +0 -10
  159. package/types/src/calculation/_CloneBoundary.d.ts +0 -24
  160. package/types/src/calculation/_FormulaToolkit.d.ts +0 -5
  161. package/types/src/calculation/compiler/ASTTypes.d.ts +6 -15
  162. package/types/src/calculation/compiler/CompilerUtils.d.ts +0 -227
  163. package/types/src/calculation/compiler/FormulaLexer.d.ts +0 -8
  164. package/types/src/calculation/compiler/FormulaParser.d.ts +0 -61
  165. package/types/src/calculation/compiler/ParserUtils.d.ts +0 -24
  166. package/types/src/calculation/compiler/Types.d.ts +1 -45
  167. package/types/src/calculation/engine/CalcBackend.d.ts +83 -127
  168. package/types/src/calculation/engine/index.d.ts +0 -8
  169. package/types/src/calculation/executor/CalcExecutor.d.ts +50 -116
  170. package/types/src/calculation/executor/CalcExecutorUtils.d.ts +47 -12
  171. package/types/src/calculation/executor/CircularReference.d.ts +0 -17
  172. package/types/src/calculation/executor/_BlockOrder.d.ts +29 -0
  173. package/types/src/calculation/executor/_WhatIf.d.ts +31 -0
  174. package/types/src/calculation/formula/FormulaBlock.d.ts +4 -31
  175. package/types/src/calculation/formula/FormulaRecordView.d.ts +0 -15
  176. package/types/src/calculation/formula/IFormulaBlock.d.ts +5 -12
  177. package/types/src/calculation/formula/LambdaValue.d.ts +0 -15
  178. package/types/src/calculation/formula/TokenUtils.d.ts +1 -8
  179. package/types/src/calculation/functions/_DataTableFunction.d.ts +14 -0
  180. package/types/src/calculation/grid/CalcGrid.d.ts +8 -64
  181. package/types/src/calculation/grid/CalcGridBackend.d.ts +12 -35
  182. package/types/src/calculation/grid/CalcGridProxy.d.ts +0 -15
  183. package/types/src/calculation/grid/CalcGridUtils.d.ts +21 -23
  184. package/types/src/calculation/grid/ICalcGrid.d.ts +28 -109
  185. package/types/src/calculation/grid/_CalcRequest.d.ts +17 -33
  186. package/types/src/calculation/spatial/CircularEntry.d.ts +0 -10
  187. package/types/src/calculation/spatial/FormulaSpatialValue.d.ts +54 -82
  188. package/types/src/calculation/spatial/SpillEntry.d.ts +20 -3
  189. package/types/src/calculation/state/CalcNode.d.ts +0 -1
  190. package/types/src/calculation/state/CalcScope.d.ts +29 -9
  191. package/types/src/calculation/state/CalcState.d.ts +19 -9
  192. package/types/src/calculation/state/CalculationContext.d.ts +32 -38
  193. package/types/src/calculation/state/DeferredCalls.d.ts +207 -0
  194. package/types/src/calculation/state/IContextContainer.d.ts +19 -55
  195. package/types/src/calculation/state/_KeepBlanks.d.ts +5 -0
  196. package/types/src/calculation/state/_PendingOverlayGrid.d.ts +52 -33
  197. package/types/src/calculation/state/_WhatIfLayer.d.ts +77 -0
  198. package/types/src/calculation/symbol/ExternalSheetSymbols.d.ts +0 -42
  199. package/types/src/calculation/symbol/ISymbolRegistry.d.ts +0 -6
  200. package/types/src/calculation/symbol/SheetSymbolProvider.d.ts +0 -12
  201. package/types/src/calculation/symbol/SymbolRegistry.d.ts +0 -9
  202. package/types/src/calculation/toolkit/index.d.ts +0 -8
  203. package/types/src/cell/ICell.d.ts +59 -54
  204. package/types/src/cellControl/CellControl.d.ts +67 -0
  205. package/types/src/cellControl/CellControlCollection.d.ts +29 -0
  206. package/types/src/cellControl/CellControlRegistry.d.ts +47 -0
  207. package/types/src/cellControl/ICellControl.d.ts +99 -0
  208. package/types/src/cellControl/ICellControlCollection.d.ts +67 -0
  209. package/types/src/cellControl/index.d.ts +4 -0
  210. package/types/src/cellRange/ICellRange.d.ts +226 -67
  211. package/types/src/cellRange/ICellRanges.d.ts +4 -3
  212. package/types/src/chart/Chart.d.ts +0 -16
  213. package/types/src/chart/_ChartParts.d.ts +0 -39
  214. package/types/src/chart/_ChartSource.d.ts +0 -14
  215. package/types/src/chart/createChart.d.ts +1 -1
  216. package/types/src/chart/kinds/ChartKind.d.ts +4 -4
  217. package/types/src/chart/kinds/_Placeholder.d.ts +0 -1
  218. package/types/src/chart/layout/ChartLayout.d.ts +5 -1
  219. package/types/src/chart/layout/TextMeasurer.d.ts +0 -20
  220. package/types/src/chart/layout/_LayoutUtils.d.ts +0 -16
  221. package/types/src/chart/math/BoxStats.d.ts +0 -8
  222. package/types/src/chart/math/DateUnitCalcs.d.ts +0 -10
  223. package/types/src/chart/math/Histogram.d.ts +0 -17
  224. package/types/src/chart/math/OrdUnitCalcs.d.ts +0 -53
  225. package/types/src/chart/math/Treemap.d.ts +0 -15
  226. package/types/src/chart/math/Trendlines.d.ts +0 -8
  227. package/types/src/chart/math/UnitCalcs.d.ts +0 -22
  228. package/types/src/chart/model/_Edits.d.ts +0 -33
  229. package/types/src/chart/model/_Grouping.d.ts +0 -25
  230. package/types/src/chart/model/_Inference.d.ts +0 -18
  231. package/types/src/chart/model/_NewChart.d.ts +0 -41
  232. package/types/src/chart/model/_OfPie.d.ts +0 -7
  233. package/types/src/chart/resolve/_LegacyStyles.d.ts +0 -20
  234. package/types/src/chart/resolve/_Resolve.d.ts +3 -12
  235. package/types/src/chart/resolve/_ResolvedChart.d.ts +5 -8
  236. package/types/src/collections/ISparseGrid.d.ts +11 -2
  237. package/types/src/collections/MixedTypedArrayList.d.ts +8 -2
  238. package/types/src/collections/SparseGrid.d.ts +3 -8
  239. package/types/src/collections/_GridUtils.d.ts +0 -10
  240. package/types/src/comment/_NoteBox.d.ts +0 -15
  241. package/types/src/condition/AnchoredConditional.d.ts +3 -25
  242. package/types/src/condition/BuiltInOperators/AbstractOperator.d.ts +0 -49
  243. package/types/src/condition/BuiltinSelectors/DisplaySelector.d.ts +0 -10
  244. package/types/src/condition/ICondition.d.ts +2 -2
  245. package/types/src/condition/_ConditionUtils.d.ts +0 -38
  246. package/types/src/externalBook/ExternalBookCollection.d.ts +0 -15
  247. package/types/src/externalBook/ExternalBookName.d.ts +2 -3
  248. package/types/src/externalBook/IExternalBook.d.ts +16 -18
  249. package/types/src/fetch/Fetcher.d.ts +15 -0
  250. package/types/src/fetch/IFetcher.d.ts +48 -0
  251. package/types/src/fetch/_WorkbookFetch.d.ts +43 -0
  252. package/types/src/fetch/index.d.ts +3 -0
  253. package/types/src/fill/PaintUtils.d.ts +3 -1
  254. package/types/src/font/AdvanceTable.d.ts +16 -42
  255. package/types/src/font/IFont.d.ts +32 -9
  256. package/types/src/font/TableFileAdvanceBuilder.d.ts +6 -3
  257. package/types/src/font/_FontUtils.d.ts +0 -8
  258. package/types/src/font/_StandIns.d.ts +33 -0
  259. package/types/src/hyperlink/IHyperlink.d.ts +10 -0
  260. package/types/src/hyperlink/_Hyperlink.d.ts +4 -1
  261. package/types/src/index.d.ts +2 -1
  262. package/types/src/io/IWorkbookIO.d.ts +3 -3
  263. package/types/src/io/WorkbookOrigin.d.ts +2 -2
  264. package/types/src/license/LicenseManager.d.ts +2 -1
  265. package/types/src/license/_Utils.d.ts +4 -3
  266. package/types/src/license/details.d.ts +3 -1
  267. package/types/src/license/keys.d.ts +6 -0
  268. package/types/src/license/license-key.d.ts +15 -33
  269. package/types/src/license/token.d.ts +55 -0
  270. package/types/src/named/INamedCollection.d.ts +36 -0
  271. package/types/src/named/NamedCollection.d.ts +18 -0
  272. package/types/src/picture/IPicture.d.ts +45 -0
  273. package/types/src/picture/Picture.d.ts +12 -0
  274. package/types/src/pivot/PivotTable.d.ts +0 -7
  275. package/types/src/primitives/AsyncValue.d.ts +46 -0
  276. package/types/src/primitives/PrimitiveUtils.d.ts +1 -110
  277. package/types/src/primitives/Range.d.ts +0 -60
  278. package/types/src/primitives/ScalarCollation.d.ts +0 -106
  279. package/types/src/primitives/stats/AggregateStats.d.ts +0 -19
  280. package/types/src/print/PageLayout.d.ts +0 -6
  281. package/types/src/reference/ReferenceUtils.d.ts +4 -2
  282. package/types/src/resource/IResource.d.ts +9 -0
  283. package/types/src/resource/IResourceCollection.d.ts +4 -0
  284. package/types/src/resource/Resource.d.ts +2 -0
  285. package/types/src/resource/_AddResource.d.ts +13 -0
  286. package/types/src/richData/CellImage.d.ts +95 -0
  287. package/types/src/richData/Hyperlink.d.ts +49 -0
  288. package/types/src/richData/IRichDataCollection.d.ts +76 -0
  289. package/types/src/richData/IRichDataKind.d.ts +55 -11
  290. package/types/src/richData/RichArray.d.ts +42 -0
  291. package/types/src/richData/RichDataCollection.d.ts +23 -0
  292. package/types/src/richData/RichDataRegistry.d.ts +52 -14
  293. package/types/src/richData/RichDataValues.d.ts +20 -0
  294. package/types/src/richData/RichRecord.d.ts +68 -0
  295. package/types/src/richData/RichText.d.ts +5 -5
  296. package/types/src/richData/index.d.ts +6 -0
  297. package/types/src/scripting/FunctionArguments.d.ts +17 -1
  298. package/types/src/scripting/FunctionCollection.d.ts +8 -0
  299. package/types/src/scripting/Scripts.d.ts +10 -0
  300. package/types/src/scripting/TypedFunction.d.ts +2 -109
  301. package/types/src/sheet/ICellContainerOptions.d.ts +6 -0
  302. package/types/src/sheet/IWorksheet.d.ts +26 -22
  303. package/types/src/sheet/NamedCellRange.d.ts +0 -21
  304. package/types/src/sheet/SheetCell.d.ts +25 -3
  305. package/types/src/sheet/SheetRange.d.ts +8 -2
  306. package/types/src/sheet/SheetRanges.d.ts +2 -2
  307. package/types/src/sheet/Worksheet.d.ts +117 -104
  308. package/types/src/sheet/_DelimitedText.d.ts +13 -0
  309. package/types/src/sheet/_IgnoredErrors.d.ts +0 -12
  310. package/types/src/sheet/_ListenerAnchor.d.ts +7 -1
  311. package/types/src/sheet/_ScalarListFactory.d.ts +46 -17
  312. package/types/src/sheet/_SheetCoords.d.ts +0 -7
  313. package/types/src/sheet/_SheetFilterUtils.d.ts +0 -8
  314. package/types/src/sheet/_SheetMutations.d.ts +4 -1
  315. package/types/src/sheet/_SheetStateReader.d.ts +0 -10
  316. package/types/src/sheet/_SheetStateTypes.d.ts +23 -14
  317. package/types/src/sheet/_SheetUtils.d.ts +1 -1
  318. package/types/src/sheet/style/_RowLine.d.ts +32 -0
  319. package/types/src/sheet/style/_StyleUtils.d.ts +6 -14
  320. package/types/src/sheetView/_SheetViewUtils.d.ts +0 -1
  321. package/types/src/slicer/_BuiltInSlicerStyles.d.ts +0 -5
  322. package/types/src/style/ICellStyle.d.ts +4 -0
  323. package/types/src/table/AnchoredTable.d.ts +0 -147
  324. package/types/src/text/TextFrame.d.ts +4 -1
  325. package/types/src/text/TextStacked.d.ts +0 -24
  326. package/types/src/text/TextWrapper.d.ts +3 -5
  327. package/types/src/text/_LineBox.d.ts +24 -0
  328. package/types/src/text/_TextUtils.d.ts +5 -2
  329. package/types/src/text/_TextWrapperFallback.d.ts +2 -1
  330. package/types/src/wasm/sdkWasm.d.ts +1 -1
  331. package/types/src/workbook/IWorkbook.d.ts +40 -1
  332. package/types/src/workbook/Workbook.d.ts +25 -13
  333. package/types/src/workbook/WorkbookRanges.d.ts +1 -1
  334. package/browser/esm/BGOFfpxr2jPIdqmV.mjs +0 -40
  335. package/browser/esm/BLoUBId2xZpXAK_H.mjs +0 -698
  336. package/browser/esm/C5E6zSGAALWf61n4.mjs +0 -199
  337. package/browser/esm/S2dNNx1a5ydRnARM.mjs +0 -367
  338. package/browser/esm/f1IoRb7tEb0QmCSt.mjs +0 -110
  339. package/browser/esm/gssVX_FH1XFN-twD.mjs +0 -210
  340. package/node/esm/BrCKGFRsX_ezFJ4B.mjs +0 -811
  341. package/node/esm/DOU54VsOjG-m-NyQ.mjs +0 -210
  342. package/node/esm/Db0v7zXNnyjBIjjI.mjs +0 -372
  343. package/node/esm/Df1bL6VFvrqIdSLB.mjs +0 -40
  344. package/node/esm/DrTZbfemSLq2mseG.mjs +0 -111
  345. package/types/src/dataTable/DataTable.d.ts +0 -67
  346. package/types/src/dataTable/DataTableCollection.d.ts +0 -19
  347. package/types/src/dataTable/IDataTable.d.ts +0 -99
  348. package/types/src/dataTable/IDataTableCollection.d.ts +0 -18
  349. package/types/src/dataTable/index.d.ts +0 -6
@@ -40,14 +40,6 @@ export interface FilterRuns {
40
40
  * Read-only: resolves every condition and settles the final visible and hidden runs.
41
41
  */
42
42
  export declare function evalFilter(sheet: Worksheet, coords: Readonly<IRange.Coords>, condition: ICondition.Input | ICondition.RangeOptions | null | undefined): Promise<FilterRuns>;
43
- /**
44
- * Writes the hidden bits {@link evalFilter} settled. Inside the caller's open transaction.
45
- *
46
- * @remarks
47
- * Full recompute, every apply (DESIGN-FILTER.md §2): unhide every row/column that now matches,
48
- * then hide every row/column that doesn't — including one the user hid manually, matching real
49
- * Excel AutoFilter (there's no persisted "hidden by filter" vs. "hidden by user" bit to preserve).
50
- */
51
43
  export declare function applyFilterRuns(sheet: Worksheet, runs: FilterRuns, options?: ITransaction.OperationOptions): void;
52
44
  /**
53
45
  * Sheet specific filter utils. Mirrors `_SheetSortUtils.doSort`: {@link evalFilter}, then one
@@ -50,7 +50,9 @@ export declare function setErrorIgnored(ctx: SheetMutationContext, ranges: reado
50
50
  * @internal
51
51
  */
52
52
  export declare function setHyperlinks(ctx: SheetMutationContext, ranges: readonly ISpatialMap.Entry<IHyperlink.Update>[], defaultUpdate?: IHyperlink.Update, // we do this because updateTuples may update each
53
- options?: ITransaction.OperationOptions): void;
53
+ options?: ITransaction.OperationOptions,
54
+ /** The caller has ruled on protection for these ranges (a content clear on a locked sheet). */
55
+ isRuled?: boolean): void;
54
56
  export declare function updateStyles(ctx: SheetMutationContext, ranges: readonly ISpatialMap.Entry<ICellStyle.Update>[], defaultUpdate?: ICellStyle.Update, // we do this because updateTuples may update each
55
57
  options?: ICellStyle.UpdateOptions, calcedNumberFormat?: boolean, // this is a bit of a hack. This is prevent number formats from functions to override user defined formats.
56
58
  isStep?: boolean): void;
@@ -162,6 +164,7 @@ export interface TupleScan {
162
164
  readonly allowFormatCells: boolean;
163
165
  readonly hasUnlockRanges: boolean;
164
166
  readonly runtime: SheetMutationContext['runtime'];
167
+ readonly richData: SheetMutationContext['richData'];
165
168
  /**
166
169
  * A scan that stays open holds only cells whose write cannot fail once scanned, and whose held
167
170
  * style changes that cell alone: a cell that carries a hyperlink or comments, or a style that
@@ -71,16 +71,6 @@ export interface SheetReadContext {
71
71
  */
72
72
  getRoles?(): ISpatialMap<ICell.Role>;
73
73
  }
74
- /**
75
- * The read engine for a {@link Sheet}'s versioned state.
76
- *
77
- * These are stateless free functions: they take the pieces of sheet state they need explicitly
78
- * (spatial maps, headers) and never reach back into the `Sheet` instance. `Sheet` keeps thin
79
- * delegators that forward its internal fields here (see `_getRangedEntries`). Extracting the logic
80
- * this way keeps it testable in isolation and lets the state re-key / feature-map reworks touch a
81
- * small, self-contained surface. See `private-assets/design/SHEET-SPLIT-DESIGN.md` §5.2.
82
- * @internal
83
- */
84
74
  /** Header iterator options that walk only the visible spans (used for the ignore-hidden paths). */
85
75
  export declare const OptionRangeIteratorVisibleOnly: ICellHeaderRange.IteratorOptions;
86
76
  export interface GetTypedRangeOptions<T = any, E = any> {
@@ -13,8 +13,8 @@ import { SpillEntry, ContentfulSpatialValue, CircularEntry } from '../calculatio
13
13
  import { IConditionalFormat } from '../conditionalFormat';
14
14
  import { IDataValidation } from '../dataValidation';
15
15
  import { IProtectedRange } from '../protectedRange';
16
+ import { ICellControl } from '../cellControl';
16
17
  import { IPivotTable } from '../pivot';
17
- import { IDataTable } from '../dataTable';
18
18
  import { ICell } from '../cell';
19
19
  import { IgnoredErrors } from './_IgnoredErrors';
20
20
  import { CellKind } from './_Kinds';
@@ -153,6 +153,14 @@ export declare namespace RangeState {
153
153
  * Overlaps are allowed
154
154
  */
155
155
  conditionals?: IConditionalFormat | IConditionalFormat[];
156
+ /**
157
+ * The cell's control, such as a checkbox.
158
+ *
159
+ * @remarks
160
+ * A cell has at most one; an array arises only from a file whose controls overlap, and the
161
+ * first wins (`ICell.getControl`).
162
+ */
163
+ cellControls?: ICellControl | ICellControl[];
156
164
  /**
157
165
  * The per-feature direct styles for a collection of cells (SHEET-STYLE-SPLIT). These are the
158
166
  * user-authored style, kept DISCRETE — `borderStyle` carries `borders`, `fillStyle` carries `fill`,
@@ -234,10 +242,8 @@ export declare namespace RangeState {
234
242
  * The date format as a string
235
243
  */
236
244
  dateFormat?: string;
237
- /**
238
- * Pending calcs.
239
- */
240
- pending?: boolean;
245
+ /** Why the cell is waiting on a calculation: its own function's result, or a precedent's. */
246
+ calcStatus?: ICalcGrid.CalcStatus;
241
247
  /**
242
248
  * Errors during calculation.
243
249
  */
@@ -283,16 +289,14 @@ export declare namespace RangeState {
283
289
  readonly Unlock: "unlock";
284
290
  readonly Contentful: "contentful";
285
291
  readonly Conditionals: "conditionals";
292
+ readonly CellControls: "cellControls";
286
293
  /**
287
294
  * Has a formula
288
295
  */
289
296
  readonly Formula: "formula";
290
297
  readonly Spills: "spills";
291
- readonly Pending: "pending";
298
+ readonly CalcStatus: "calcStatus";
292
299
  readonly CalcError: "calcError";
293
- /**
294
- * In a reference cycle, or downstream of one — evaluates to `0` (DESIGN-CIRCULAR-CALC.md §7).
295
- */
296
300
  readonly Circular: "circular";
297
301
  /**
298
302
  * Error VALUES (the `Error` scalar kind). Backed by the RECONCILED view
@@ -339,8 +343,8 @@ export declare namespace RangeState {
339
343
  * spatial map (`dateFormatSpatial`, no longer internal-only), `Error` off the reconciled error
340
344
  * view. Neither needs the value-scan special-casing the old derived `Date` feature did.
341
345
  *
342
- * Internal-only members of `RangeState.Type` (`Pending`, `Continuous`, the legacy `Validation`
343
- * alias) deliberately have no public feature.
346
+ * Internal-only members of `RangeState.Type` (`Continuous`, the legacy `Validation` alias)
347
+ * deliberately have no public feature.
344
348
  */
345
349
  export declare const FeatureToRangeState: Readonly<Record<ICellRange.Feature, RangeState.Type | null>>;
346
350
  /**
@@ -358,7 +362,7 @@ export declare function featuresToSearchTypes(features?: ICellRange.Feature | re
358
362
  * would put an intersection on every valued cell (the null-check optimization dies).
359
363
  * - `Continuous` rides along with any content-style projection (it is the continuous-alignment
360
364
  * fast path — internal, so no public feature can name it).
361
- * - `Pending` rides along with `Formula`/`CalcError` (calc status accompanies calc state).
365
+ * - `CalcStatus` rides along with `Formula`/`CalcError` (calc status accompanies calc state).
362
366
  */
363
367
  export declare function cellFeaturesToSearchTypes(features?: ICellRange.Feature | readonly ICellRange.Feature[]): boolean | RangeState.SearchTypes;
364
368
  /**
@@ -463,6 +467,13 @@ export interface State {
463
467
  * Read through `RangeState.Type.Comments` — see {@link RangeState.Intersection.comments}.
464
468
  */
465
469
  comments: IAnchoredMap<IComment, IComment.JSON>;
470
+ /**
471
+ * The cell controls, such as checkboxes.
472
+ *
473
+ * @remarks
474
+ * Read through `RangeState.Type.CellControls` — see {@link RangeState.Intersection.cellControls}.
475
+ */
476
+ cellControls: IAnchoredMap<ICellControl, ICellControl.JSON>;
466
477
  /**
467
478
  * The reference each range listener watches.
468
479
  *
@@ -476,8 +487,6 @@ export interface State {
476
487
  listeners: IAnchoredMap<ListenerAnchor, never>;
477
488
  /** The pivot tables laid out on the sheet, anchored at their locations as tables are. */
478
489
  pivotTables: IAnchoredMap<IPivotTable, IPivotTable.JSON>;
479
- /** The data tables on the sheet, anchored at their result cells. */
480
- dataTables: IAnchoredMap<IDataTable, IDataTable.JSON>;
481
490
  /**
482
491
  * The grid's inputs this record pairs with, as the grid named them when the model last wrote
483
492
  * this sheet's cells (`ICalcGrid.Events.onInputsWritten`); `null` before any write.
@@ -189,7 +189,7 @@ export declare function mergeOptions(optionsA: any, optionsB: any): any;
189
189
  /**
190
190
  * Returns a regEx. Either a regular regex or a Excel like wildcard regex.
191
191
  */
192
- export declare function builtFindReg(findText: string, matchCase: boolean, useRegex: boolean): RegExp;
192
+ export declare function builtFindReg(findText: string, matchCase: boolean, useRegex: boolean, matchEntireCell: boolean): RegExp;
193
193
  export declare function rangeTopLeft(range: IRange.Coords): IRange.Coords;
194
194
  /**
195
195
  * Given a selection, find the 'natural' bounding area to sort.
@@ -0,0 +1,32 @@
1
+ import { IFont } from '../../font/IFont';
2
+ import { LineBox, LineHeightRule } from '../../text/_LineBox';
3
+ /** One pixel above the font's box and one below. */
4
+ export declare const CELL_GUTTER_PX = 2;
5
+ /** The `format` of a `.rows.json` this version reads. */
6
+ export declare const ROWS_FORMAT = "sheetxl-font-rows/1";
7
+ /**
8
+ * A `.rows.json`, shipped beside a face's tables: Excel's row height for the face, in px at
9
+ * 96 dpi, at every integer ppem from `firstPpem` up to Excel's 409 pt cap.
10
+ */
11
+ export interface RowsJSON {
12
+ format: typeof ROWS_FORMAT;
13
+ family: string;
14
+ weight: number;
15
+ italic: boolean;
16
+ firstPpem: number;
17
+ /** `pitches[i]` is the pitch at `firstPpem + i`. */
18
+ pitches: number[];
19
+ }
20
+ /**
21
+ * Records a face's `.rows.json`; cells in that face size their lines by it from then on.
22
+ *
23
+ * @throws when the format is not one this reads, or fewer than two sizes are listed.
24
+ */
25
+ export declare function registerRows(json: RowsJSON): void;
26
+ /** Whether a face's `.rows.json` has been recorded. */
27
+ export declare function hasRows(face: IFont.AdvanceTable.Face): boolean;
28
+ /** The height of a row sized to one line of text in `table`'s face at `px` pixels per em. */
29
+ export declare const rowLineHeight: LineHeightRule;
30
+ /** The line a cell gives one line of text in `table`'s face at `px` pixels per em. */
31
+ export declare function cellLine(table: IFont.AdvanceTable, px: number): LineBox;
32
+ //# sourceMappingURL=_RowLine.d.ts.map
@@ -15,6 +15,12 @@ export declare function resolveAlwaysUnlocked(styles: IStyleCollection, direct:
15
15
  * @internal
16
16
  */
17
17
  export declare function resolveShowFormulas(styles: IStyleCollection, direct: Readonly<ICellStyle.Properties> | null | undefined): boolean;
18
+ /**
19
+ * The number format a cell with these direct content properties was given: its own, then its named
20
+ * style's. A named style's `General` is no format, and Normal's is not given to any cell.
21
+ * @internal
22
+ */
23
+ export declare function resolveGivenNumberFormat(styles: IStyleCollection, direct: Readonly<ICellStyle.Properties> | null | undefined): string | undefined;
18
24
  /**
19
25
  * The formula entries over `bounds` that protection lets a reader see.
20
26
  *
@@ -45,19 +51,5 @@ export declare function isEqualStrokeProperties(a: IBorders.StrokeProperties | u
45
51
  * same pieces a real stroke would.
46
52
  */
47
53
  export declare function splitBorderRange(border: IBorders.Properties, rangeFrom: IRange.Coords, rangeTo: IRange.Coords, isColumn: boolean): Partial<IBorders.Properties> | null | undefined;
48
- /**
49
- * Performs a shift but uses the entire range to ensure edge styles.
50
- *
51
- * @param options
52
- * @param entireRange
53
- *
54
- * @remarks
55
- * Returns an entry but requires the value be set/cloned.
56
- *
57
- * An entry that reaches the sheet's far edge is a header's: it keeps reaching it. An entry that
58
- * only starts at the near edge is an ordinary block, and moves or grows as the shift says: an
59
- * insert at its first row or column moves it whole, one strictly inside grows it (Excel-probed
60
- * 2026-10-18 for a fill and a merge: `A1:A3` + insert rows 1:2 is `A3:A5`, + insert row 2 is `A1:A4`).
61
- */
62
54
  export declare function getEdgeAwareShifted<T = any>(options: ISpatialMap.ShiftDetails<T>, entireRange?: IRange.Coords): ISpatialMap.Entry<T> | null;
63
55
  //# sourceMappingURL=_StyleUtils.d.ts.map
@@ -9,7 +9,6 @@ export declare const EmptyFreezePanes: IWorksheetView.FreezePanes;
9
9
  */
10
10
  export declare const EmptySelection: IRangeSelection.Coords;
11
11
  export declare const DefaultSheetProperties: IWorksheetView.Properties;
12
- /** The zoom a view mode opens at before one is set in it. Measured against Excel. */
13
12
  export declare const DefaultViewModeZoom: Readonly<Record<IWorksheetView.ViewMode, number>>;
14
13
  /**
15
14
  * A simple stepper.
@@ -1,9 +1,4 @@
1
1
  import { ISlicerStyle } from './ISlicerStyle';
2
- /**
3
- * Excel's built-in slicer styles, taken from Excel (each built-in duplicated and saved, the dxfs
4
- * read back; `private-assets/design/shapes/fixtures/slicers/`). Light 1–6 and Dark 1–6 are each one
5
- * design over the six accents; Other 1 and 2 stand alone.
6
- */
7
2
  /** The style a slicer is given when nothing names another. */
8
3
  export declare const DefaultSlicerStyleName: string;
9
4
  /**
@@ -147,6 +147,10 @@ export interface ICellStyle extends IFillable<ICellStyle, IFill.ISolid | IFill.I
147
147
  /**
148
148
  * Measure the text using the styling properties
149
149
  *
150
+ * @remarks
151
+ * The vertical metrics are a cell's line: `lineHeight` is the height of a row sized to one
152
+ * line of this text, which leaves room around the font's ascent and descent as Excel does.
153
+ *
150
154
  * @param text The text to measure.
151
155
  * @param size Size @defaultValue 'to the cell font.size'
152
156
  * @param family Family @defaultValue 'to the cell font.family'
@@ -238,27 +238,6 @@ export declare class AnchoredTable extends AbstractAnchored<State, ITable.Events
238
238
  * props, where {@link _showTotalsFromProps} finds it when the row comes back.
239
239
  */
240
240
  private _holdTotalsFromCells;
241
- /**
242
- * Keep every totals EXPRESSION a live formula while its row is hidden.
243
- *
244
- * @remarks
245
- * Excel's held totals formulas are live (probed, T2): hidden, they follow a column rename, a table
246
- * rename, a row inserted above and a row added to the table, A1 references included. Text in the
247
- * props follows none of that. So while the row is hidden each expression is ALSO a watch - a
248
- * formula the engine holds without a cell, which gets everything a cell formula gets - anchored
249
- * on the row below the table, where the totals row was and will be again. It moves with that row
250
- * on an insert, as the table's end does; when the table's end moves without one (a resize, an
251
- * auto expansion) it is re-anchored with the text it has by then, which is a move and leaves its
252
- * references where they were. Only the row matters: the text is A1, so it reads the same from
253
- * any column, and a column shift inside the table is no reason to touch it.
254
- *
255
- * The props keep the text the watch was made from. They are what a snapshot can restore and what
256
- * there is to read until the engine has registered the watch; {@link _readHeldTotal} prefers what
257
- * the engine has. A function number needs none of this - it is spelled from the column's name
258
- * when it is shown - and neither does a label.
259
- *
260
- * Derived from state, like the listeners, and called wherever they are re-derived.
261
- */
262
241
  private _syncHeldTotals;
263
242
  /**
264
243
  * A held expression as the model's grid holds it, or `null` when it holds none - not registered
@@ -266,22 +245,6 @@ export declare class AnchoredTable extends AbstractAnchored<State, ITable.Events
266
245
  */
267
246
  private _readHeldTotal;
268
247
  private _removeHeldTotals;
269
- /**
270
- * Keep every calculated column's formula a live formula.
271
- *
272
- * @remarks
273
- * A calculated column remembers its formula apart from its cells - any of them may hold
274
- * something else, the first included - and Excel's is live (probed, G5 of
275
- * `probe-table-columnfill-edges.ps1`): it follows a sheet row inserted above the table, a column
276
- * inserted inside it and a column rename, exceptions or not. It is the problem
277
- * {@link _syncHeldTotals} solves and the same holder: the text in the column props, and a watch
278
- * made from it, here on a body cell of the column.
279
- *
280
- * The text is always the formula as it reads in the FIRST body row, which is how a file stores
281
- * it and what {@link _readHeldCalculated} images, wherever in the body the watch has been pushed
282
- * to. So a watch is only made again when it has left the column's body, or when the props hold
283
- * a different text.
284
- */
285
248
  private _syncHeldCalculated;
286
249
  /**
287
250
  * A calculated column's formula as the engine has it now, as it reads in the first body row, or
@@ -303,19 +266,6 @@ export declare class AnchoredTable extends AbstractAnchored<State, ITable.Events
303
266
  * after it.
304
267
  */
305
268
  private _calculatedTextAt;
306
- /**
307
- * What Excel gives a totals row the FIRST time it is shown, and never again: an aggregate in the
308
- * last column, chosen by what the column holds. Held in the props, which is where
309
- * {@link _showTotalsFromProps} is about to look.
310
- *
311
- * @remarks
312
- * Probed (`probe-table-totals-firstshow.ps1`): `109` (sum) when every cell of the body that holds
313
- * anything holds a number - a formula's result counts, and so does a currency or a percent
314
- * format - and `103` (count) as soon as one is text, a boolean, an error, or a number shown as a
315
- * date or a time, and for a column with nothing in it. A row shown a second time is given
316
- * nothing, even when the aggregate was cleared in between, which is what `totalsRowShown` records.
317
- * The `Total` label is the first column's from the day the table is made.
318
- */
319
269
  private _holdFirstShowTotals;
320
270
  /**
321
271
  * The region a bare cursor on this table traverses within, or `null` to leave the move alone.
@@ -465,61 +415,8 @@ export declare class AnchoredTable extends AbstractAnchored<State, ITable.Events
465
415
  /** @internal */
466
416
  protected _processExpandListener(): void;
467
417
  private _onExpandListenerEvent;
468
- /**
469
- * A formula has been entered in the row just below the table: that row becomes the totals row, in
470
- * the one step of the expansion (Excel: `Table AutoExpansion`).
471
- *
472
- * @remarks
473
- * Probed (`probe-table-autototals.ps1`). What was entered stays where it is and is its column's
474
- * total from here on. The other columns total nothing - not the `Total` label a table is made
475
- * with, not the aggregate a first showing gives - unless the table has shown a totals row before,
476
- * whose totals then come back beside it as they would with the row toggled on.
477
- */
478
418
  private _takeRowBelowAsTotals;
479
- /**
480
- * What a commit that wrote into the body means for the columns it wrote to: a formula to fill
481
- * down the column, a formula to remember, or one to forget.
482
- *
483
- * @remarks
484
- * Probed (`probe-table-columnfill.ps1` and `-edges.ps1`). A formula written to ONE body cell is
485
- * filled down its column when every other body cell of the column is blank, or when the column
486
- * is calculated and every other body cell still holds one formula - so editing the formula of
487
- * a calculated column edits the column, and a column holding an exception, a blank one
488
- * included, is left alone. Nothing is asked about what the written cell held before. A write of
489
- * two cells or more never fills, whatever it wrote. The fill is a commit of its own (Excel:
490
- * `Fill`), recorded after the write it follows, so the first undo takes back the fill and
491
- * leaves the formula that was typed. Hidden and filtered rows are filled like any other, and
492
- * the totals row never is.
493
- *
494
- * A write that fills nothing can still change what the column remembers, and that is part of
495
- * the write, not a step of its own: a formula written over the whole body in one write is
496
- * remembered, and a column left with no formula in it at all remembers none.
497
- *
498
- * Everything here is asked of whole rectangles and of formula blocks - a filled column is one
499
- * block - never cell by cell.
500
- *
501
- * @param changed Every range the commit changed, unclipped.
502
- * @param bodyBefore The body as it was when the commit landed. A row the table has taken since
503
- * is not one the write could have filled from: a formula written just below a table becomes a
504
- * row of it and fills nothing.
505
- */
506
419
  private _processBodyWrite;
507
- /**
508
- * A table has just been made over cells that were already there: a column whose cells hold one
509
- * formula is a calculated column from the start.
510
- *
511
- * @remarks
512
- * Probed (`probe-table-columnfill-created.ps1`). Excel looks at the LAST five body rows and no
513
- * further. The column remembers the formula of its last body cell when at most one of the other
514
- * four holds anything else - another formula, a constant, a blank. So `aaaaaabbbb` remembers
515
- * `b`, `baaaa` and `ab` remember `a` and `b`, and `aabbb`, `aaab` and `aaa_` remember nothing.
516
- * It is not a majority, and nothing above the five rows is ever asked.
517
- *
518
- * The sheet calls this for a table it has just made, never for one it loads: a file says which
519
- * of its columns are calculated, and a column of identical formulas is not one unless it does.
520
- *
521
- * @internal
522
- */
523
420
  _detectCalculatedColumns(): void;
524
421
  /**
525
422
  * Every calculated column's formula as it reads in `rowIndex`, by column index, or `null` when
@@ -532,13 +429,6 @@ export declare class AnchoredTable extends AbstractAnchored<State, ITable.Events
532
429
  * an insert, which the new row names as it was before the insert moved it.
533
430
  */
534
431
  private _calculatedTextsAt;
535
- /**
536
- * Give new body rows each calculated column's formula (probed, F4: a row added to the table is
537
- * given it whatever the column's other cells hold). A column whose new cells already hold
538
- * something - the write the table expanded for - keeps it.
539
- *
540
- * @param texts From {@link _calculatedTextsAt}, for `rowStart`.
541
- */
542
432
  private _writeCalculatedRows;
543
433
  /**
544
434
  * Fill the formula in `from` down the body of its column, and have the column remember it.
@@ -802,43 +692,6 @@ export declare class AnchoredTable extends AbstractAnchored<State, ITable.Events
802
692
  * its header cell rather than by a generated one.
803
693
  */
804
694
  private _setAnchor;
805
- /**
806
- * Move the totals row to the row a resize ends the table on.
807
- *
808
- * @remarks
809
- * Excel moves the row rather than rewriting it (probed, `probe-table-totals-refit.ps1`): what it
810
- * passes on the way becomes body - growing over `70, 80` makes them the last two body rows, and
811
- * shrinking leaves the body rows given up sitting below the totals - and nothing outside the
812
- * table's columns or below the two rows involved ends up anywhere else.
813
- *
814
- * That is a rotation of the totals row past the rows between, done here with the sheet's own
815
- * shifts - inserts and deletes of the table's columns - so that what names a cell follows it and
816
- * nothing below the two rows is left anywhere else. A shift carries cells but cannot reorder
817
- * them, so one side of the rotation has to be written again, and which side depends on what the
818
- * totals row passes:
819
- *
820
- * - **Growing over blank rows**, the usual case, the blank rows are the side given up. Rows are
821
- * inserted above the totals row, which carries it down whole - its formats, its formulas and
822
- * every reference to its cells, exactly as Excel has them - and the blank rows it pushed out
823
- * below are deleted.
824
- * - **Growing over content, and shrinking**, the rows between are the user's and have to travel,
825
- * so the totals row is the side written again: a blank row is opened where it is going, its
826
- * cells are written there - formula, value and the cell's own format - and the row they came
827
- * from is deleted, which closes the gap. Two divergences follow from writing rather than
828
- * moving. A reference to a totals CELL from elsewhere (`=C7`) becomes `#REF!` where Excel
829
- * re-points it; `Table[[#Totals],[Column]]` is unaffected. And, shrinking, an A1 reference
830
- * into the rows being given up is not pushed down with them (Excel: `SUM(C3:C5)` becomes
831
- * `SUM(C3:C6)`), because the engine re-images a formula for a shift once it has settled and
832
- * the text written here is from before; Excel's own result there is a circular reference,
833
- * the totals cell sitting inside that range.
834
- *
835
- * The table steps back above both rows first. A shift inside a table is the table's business
836
- * ({@link _processContainerShift} would hide a totals row whose row is deleted); one below it is
837
- * not.
838
- *
839
- * @param from The anchor the table has now, totals row included.
840
- * @param rowEnd The row the totals row is going to.
841
- */
842
695
  private _moveTotalsRow;
843
696
  /**
844
697
  * Bring the column properties in line with a new width: a column taken in is appended (or
@@ -5,6 +5,7 @@ import { ITextLine } from './TextLine';
5
5
  import { ITextParagraph } from './TextParagraph';
6
6
  import { ITextFrame } from './ITextFrame';
7
7
  import { ITextBoxAlignment } from './TextBoxAlignment';
8
+ import { LineHeightRule } from './_LineBox';
8
9
  export declare class TextFrame {
9
10
  private _private;
10
11
  private _bounds;
@@ -16,7 +17,9 @@ export declare class TextFrame {
16
17
  private _lastLayoutFonts;
17
18
  private _defaultFont;
18
19
  private _alignment;
19
- constructor(overrides: Partial<ITextFrame>, defaultFont: IFontStyle, alignment: ITextBoxAlignment, lines?: ITextLine[] | null, bounds?: Bounds | null, textBounds?: Bounds | null);
20
+ /** How tall each line is when laid out; the font's own line when `null`. */
21
+ private _lineHeight;
22
+ constructor(overrides: Partial<ITextFrame>, defaultFont: IFontStyle, alignment: ITextBoxAlignment, lines?: ITextLine[] | null, bounds?: Bounds | null, textBounds?: Bounds | null, lineHeight?: LineHeightRule | null);
20
23
  visitParas(visitor: TextVisitor): void;
21
24
  visitLines(visitor: TextVisitor): void;
22
25
  layout(size?: Partial<Size> | null): ITextFrame;
@@ -1,29 +1,5 @@
1
1
  import { Bounds } from '@sheetxl/utils';
2
2
  import { ITextFrame } from './ITextFrame';
3
- /**
4
- * Stacked cell-text layout — Excel's "Vertical Text" (`textRotation="255"`).
5
- *
6
- * Stacked text is not rotated. Every glyph stays upright and occupies one SLOT of the font's line
7
- * pitch, glyphs advancing downward in a column. Measured against Excel (hidden-COM probes, see
8
- * `VERTICAL-TEXT-PLAN.md`):
9
- *
10
- * 1. Columns come from explicit line breaks — one column per line, left → right in reading order —
11
- * and, when the cell wraps, from breaking a column that would exceed the content height: greedy
12
- * at spaces (the space at a break is consumed), per glyph inside a word longer than the capacity.
13
- * It is the horizontal wrap rule transposed. An unwrapped cell keeps one column; a line break
14
- * there is a blank slot.
15
- * 2. Leading and trailing spaces of a column are measured but never painted (see
16
- * {@link layoutColumns}); inner spaces are blank slots.
17
- * 3. Each column is aligned on its own by the vertical alignment (Top / Center / Bottom; Justify
18
- * and Distributed behave as Top and Center — nothing is spread). The horizontal alignment places
19
- * the group of columns; the caller resolves General (Excel centers it). Columns are one pitch
20
- * wide and glyphs center in them.
21
- * 4. Nothing overflows: the footprint clips to the cell on both axes.
22
- *
23
- * All output is pure geometry, renderer-agnostic: a DOM renderer maps each column to a box of
24
- * `pitch` line-height with one glyph per line; a canvas renderer paints each glyph centered in
25
- * its slot.
26
- */
27
3
  /**
28
4
  * One stacked column.
29
5
  */
@@ -1,4 +1,5 @@
1
1
  import { IFontCollection } from '../font';
2
+ import { LineHeightRule } from './_LineBox';
2
3
  /**
3
4
  * Simple Text Line Wrapper. Is not useful for Rich Text (yet). see TextLayout.
4
5
  */
@@ -18,6 +19,8 @@ export interface TextWrapperOptions {
18
19
  * This affects the width but not the height of the line.
19
20
  */
20
21
  superSub?: boolean;
22
+ /** How tall each line is; without one a line is as tall as the font's own metrics ask. */
23
+ lineHeight?: LineHeightRule | null;
21
24
  indent?: number;
22
25
  }
23
26
  export interface TextWrapperResults {
@@ -74,11 +77,6 @@ export declare class TextWrapper {
74
77
  /** Whether the next wrap runs in the Rust wrapper. */
75
78
  get isNative(): boolean;
76
79
  wrap(text: string, options?: TextWrapperOptions | null): TextWrapperResults;
77
- /**
78
- * The wrap through the Rust wrapper: the text crosses the boundary once and the lines come
79
- * back as one flat array, {@link NATIVE_LINE_STRIDE} numbers each (DESIGN-FONTS §6.2:
80
- * one call per wrap). Its offsets are UTF-8 bytes, turned into UTF-16 positions here.
81
- */
82
80
  private _wrapNative;
83
81
  }
84
82
  //# sourceMappingURL=TextWrapper.d.ts.map
@@ -0,0 +1,24 @@
1
+ import { IFont } from '../font/IFont';
2
+ /** A line of text at a size, in whole px. */
3
+ export interface LineBox {
4
+ /** What a line advances by. */
5
+ readonly lineHeight: number;
6
+ /** The leading around the font's box: `lineHeight` less ascent and descent. */
7
+ readonly lineGap: number;
8
+ /** The baseline's offset from the top of the line: half the leading above, then the ascent. */
9
+ readonly baseline: number;
10
+ }
11
+ /**
12
+ * How tall a line of text is in a face at `px` pixels per em, in whole px: the layout's choice of
13
+ * leading. Without one a line is as tall as the font's own metrics ask.
14
+ */
15
+ export type LineHeightRule = (table: IFont.AdvanceTable, px: number) => number;
16
+ /**
17
+ * A line `lineHeight` tall around a font's box: the leading split above and below, the half above
18
+ * floored (as a browser lays out a CSS line box). A line shorter than the box leaves the baseline
19
+ * at the ascent. `LineBox::around` in `sheetxl-text` is the same rule.
20
+ */
21
+ export declare function lineBoxAround(metrics: Pick<IFont.Metrics, 'ascent' | 'descent'>, lineHeight: number): LineBox;
22
+ /** The line `rule` gives text in `table`'s face at `px`, or the font's own without one. */
23
+ export declare function lineBox(table: IFont.AdvanceTable, px: number, rule?: LineHeightRule | null): LineBox;
24
+ //# sourceMappingURL=_LineBox.d.ts.map
@@ -3,15 +3,17 @@ import { IFontCollection } from '../font';
3
3
  import { ITextFrame } from './ITextFrame';
4
4
  import { ITextBoxAlignment } from './TextBoxAlignment';
5
5
  import { IFontStyle } from '../font/IFontStyle';
6
+ import { LineHeightRule } from './_LineBox';
6
7
  /**
7
8
  * This 'places' text which means that using all of the formatting rules it assign's locations and bounds to
8
9
  * all of the characters. It does not however actually render them. See @renderTextFrame for rendering.
9
10
  *
10
11
  * @param textFrame
11
12
  * @param dimensions
13
+ * @param lineHeight How tall each line is; the font's own line without one.
12
14
  * @param fonts Where fonts are measured from; the shared collection by default.
13
15
  */
14
- export declare function layoutTextFrame(textFrame: ITextFrame, defaultFont: IFontStyle, alignment: ITextBoxAlignment, dimensions?: Partial<Size> | null, fonts?: IFontCollection): ITextFrame;
16
+ export declare function layoutTextFrame(textFrame: ITextFrame, defaultFont: IFontStyle, alignment: ITextBoxAlignment, dimensions?: Partial<Size> | null, lineHeight?: LineHeightRule | null, fonts?: IFontCollection): ITextFrame;
15
17
  /**
16
18
  * Checks whether a string is entirely uppercase, lowercase, or mixed case.
17
19
  *
@@ -84,7 +86,8 @@ export declare function convertCase(str: string, caseArray: readonly number[]):
84
86
  * Create a simple text frame.
85
87
  * TODO - Later we will make take frame take the style (and theme?) and have more operations on it.
86
88
  * TODO - abstract CellStyle
89
+ * @param lineHeight How tall each line is when laid out; the font's own line without one.
87
90
  * @internal
88
91
  */
89
- export declare function createTextFrameFromText(text: string, defaultFont: IFontStyle, alignment: ITextBoxAlignment, allowWrap: boolean, disableCustomFormatting?: boolean): ITextFrame;
92
+ export declare function createTextFrameFromText(text: string, defaultFont: IFontStyle, alignment: ITextBoxAlignment, allowWrap: boolean, disableCustomFormatting?: boolean, lineHeight?: LineHeightRule | null): ITextFrame;
90
93
  //# sourceMappingURL=_TextUtils.d.ts.map
@@ -25,7 +25,8 @@ export declare class TextWrapperFallback {
25
25
  private _maxHeight;
26
26
  /** One character's advance in px, by character, for the current wrap. */
27
27
  private _advances;
28
- private _metrics;
28
+ /** The line every wrapped line takes. */
29
+ private _line;
29
30
  /** The current line from its start to {@link _charactersRead}. */
30
31
  private _lineTally;
31
32
  /**
@@ -14,7 +14,7 @@ export type { SdkWasmExports } from './_sdkWasm';
14
14
  * @example
15
15
  * ```ts
16
16
  * const wasm = await SdkWasm.load();
17
- * wasm.line_pitch(12, 3); // 17
17
+ * wasm.char_count('abc'); // 3
18
18
  * ```
19
19
  */
20
20
  export declare const SdkWasm: {