ooxml-core 0.18.0 → 0.20.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (297) hide show
  1. package/dist/automation/index.cjs +195 -193
  2. package/dist/automation/index.mjs +195 -193
  3. package/dist/diagram/index.cjs +2 -1
  4. package/dist/diagram/index.mjs +2 -1
  5. package/dist/docx/attr-units.d.ts +11 -0
  6. package/dist/docx/attr-units.d.ts.map +1 -0
  7. package/dist/docx/block-parser.d.ts.map +1 -1
  8. package/dist/docx/case-transform.d.ts +9 -0
  9. package/dist/docx/case-transform.d.ts.map +1 -0
  10. package/dist/docx/column-settings.d.ts +16 -0
  11. package/dist/docx/column-settings.d.ts.map +1 -0
  12. package/dist/docx/embedded.cjs +2 -1
  13. package/dist/docx/embedded.mjs +2 -1
  14. package/dist/docx/index.cjs +461 -3
  15. package/dist/docx/index.d.ts +8 -0
  16. package/dist/docx/index.d.ts.map +1 -1
  17. package/dist/docx/index.mjs +426 -4
  18. package/dist/docx/layout/adapter.d.ts.map +1 -1
  19. package/dist/docx/layout/table-layout.d.ts.map +1 -1
  20. package/dist/docx/line-spacing.d.ts +9 -0
  21. package/dist/docx/line-spacing.d.ts.map +1 -0
  22. package/dist/docx/load/index.cjs +2 -1
  23. package/dist/docx/load/index.mjs +2 -1
  24. package/dist/docx/page-setup-model.d.ts +29 -0
  25. package/dist/docx/page-setup-model.d.ts.map +1 -0
  26. package/dist/docx/page-size.d.ts +11 -0
  27. package/dist/docx/page-size.d.ts.map +1 -0
  28. package/dist/docx/parse.d.ts.map +1 -1
  29. package/dist/docx/section-edit.d.ts +19 -0
  30. package/dist/docx/section-edit.d.ts.map +1 -0
  31. package/dist/docx/section-layout.d.ts +14 -0
  32. package/dist/docx/section-layout.d.ts.map +1 -0
  33. package/dist/docx/tab-stops.d.ts.map +1 -1
  34. package/dist/docx/ui/backstage-focus.d.ts +6 -0
  35. package/dist/docx/ui/backstage-focus.d.ts.map +1 -0
  36. package/dist/docx/ui/break-note-schema.d.ts +11 -0
  37. package/dist/docx/ui/break-note-schema.d.ts.map +1 -0
  38. package/dist/docx/ui/collaboration-authority.d.ts +31 -0
  39. package/dist/docx/ui/collaboration-authority.d.ts.map +1 -0
  40. package/dist/docx/ui/collaboration-identity.d.ts +8 -0
  41. package/dist/docx/ui/collaboration-identity.d.ts.map +1 -0
  42. package/dist/docx/ui/collaboration-protocol.d.ts +25 -0
  43. package/dist/docx/ui/collaboration-protocol.d.ts.map +1 -0
  44. package/dist/docx/ui/collaboration.d.ts +30 -0
  45. package/dist/docx/ui/collaboration.d.ts.map +1 -0
  46. package/dist/docx/ui/defined.d.ts +3 -0
  47. package/dist/docx/ui/defined.d.ts.map +1 -0
  48. package/dist/docx/ui/dirty-state.d.ts +9 -0
  49. package/dist/docx/ui/dirty-state.d.ts.map +1 -0
  50. package/dist/docx/ui/field-guard.d.ts +21 -0
  51. package/dist/docx/ui/field-guard.d.ts.map +1 -0
  52. package/dist/docx/ui/header-footer-history.d.ts +15 -0
  53. package/dist/docx/ui/header-footer-history.d.ts.map +1 -0
  54. package/dist/docx/ui/index.cjs +2380 -0
  55. package/dist/docx/ui/index.d.ts +30 -0
  56. package/dist/docx/ui/index.d.ts.map +1 -0
  57. package/dist/docx/ui/index.mjs +2317 -0
  58. package/dist/docx/ui/inline-content-schema.d.ts +15 -0
  59. package/dist/docx/ui/inline-content-schema.d.ts.map +1 -0
  60. package/dist/docx/ui/ligature-style.d.ts +4 -0
  61. package/dist/docx/ui/ligature-style.d.ts.map +1 -0
  62. package/dist/docx/ui/node-numbering.d.ts +8 -0
  63. package/dist/docx/ui/node-numbering.d.ts.map +1 -0
  64. package/dist/docx/ui/review-schema.d.ts +90 -0
  65. package/dist/docx/ui/review-schema.d.ts.map +1 -0
  66. package/dist/docx/ui/ribbon-action-ids.d.ts +26 -0
  67. package/dist/docx/ui/ribbon-action-ids.d.ts.map +1 -0
  68. package/dist/docx/ui/ribbon-colors.d.ts +3 -0
  69. package/dist/docx/ui/ribbon-colors.d.ts.map +1 -0
  70. package/dist/docx/ui/ribbon-legacy-labels.d.ts +6 -0
  71. package/dist/docx/ui/ribbon-legacy-labels.d.ts.map +1 -0
  72. package/dist/docx/ui/run-compare.d.ts +5 -0
  73. package/dist/docx/ui/run-compare.d.ts.map +1 -0
  74. package/dist/docx/ui/run-extra-mark.d.ts +17 -0
  75. package/dist/docx/ui/run-extra-mark.d.ts.map +1 -0
  76. package/dist/docx/ui/schema-marks.d.ts +273 -0
  77. package/dist/docx/ui/schema-marks.d.ts.map +1 -0
  78. package/dist/docx/ui/smartart-theme.d.ts +21 -0
  79. package/dist/docx/ui/smartart-theme.d.ts.map +1 -0
  80. package/dist/docx/ui/table-render.d.ts +24 -0
  81. package/dist/docx/ui/table-render.d.ts.map +1 -0
  82. package/dist/docx/ui/table-visuals.d.ts +3 -0
  83. package/dist/docx/ui/table-visuals.d.ts.map +1 -0
  84. package/dist/docx/ui/theme/css-vars.d.ts +6 -0
  85. package/dist/docx/ui/theme/css-vars.d.ts.map +1 -0
  86. package/dist/docx/ui/theme/defaults.d.ts +12 -0
  87. package/dist/docx/ui/theme/defaults.d.ts.map +1 -0
  88. package/dist/docx/ui/theme/element.d.ts +9 -0
  89. package/dist/docx/ui/theme/element.d.ts.map +1 -0
  90. package/dist/docx/ui/theme/index.d.ts +5 -0
  91. package/dist/docx/ui/theme/index.d.ts.map +1 -0
  92. package/dist/docx/ui/theme/types.d.ts +42 -0
  93. package/dist/docx/ui/theme/types.d.ts.map +1 -0
  94. package/dist/docx/ui/word-count.d.ts +3 -0
  95. package/dist/docx/ui/word-count.d.ts.map +1 -0
  96. package/dist/docx/ui/zoom-fit.d.ts +16 -0
  97. package/dist/docx/ui/zoom-fit.d.ts.map +1 -0
  98. package/dist/docx/validate-paragraph.d.ts.map +1 -1
  99. package/dist/index.cjs +2 -1
  100. package/dist/index.mjs +2 -1
  101. package/dist/math/index.cjs +2 -1
  102. package/dist/math/index.mjs +2 -1
  103. package/dist/opc/index.cjs +2 -1
  104. package/dist/opc/index.mjs +2 -1
  105. package/dist/visio/index.cjs +2 -1
  106. package/dist/visio/index.mjs +2 -1
  107. package/dist/visio/ui/contract.d.ts +33 -0
  108. package/dist/visio/ui/contract.d.ts.map +1 -0
  109. package/dist/visio/ui/demo-document.d.ts +4 -0
  110. package/dist/visio/ui/demo-document.d.ts.map +1 -0
  111. package/dist/visio/ui/diagnostics.d.ts +10 -0
  112. package/dist/visio/ui/diagnostics.d.ts.map +1 -0
  113. package/dist/visio/ui/document-history.d.ts +43 -0
  114. package/dist/visio/ui/document-history.d.ts.map +1 -0
  115. package/dist/visio/ui/document-text-search.d.ts +45 -0
  116. package/dist/visio/ui/document-text-search.d.ts.map +1 -0
  117. package/dist/visio/ui/edit-commands.d.ts +4 -0
  118. package/dist/visio/ui/edit-commands.d.ts.map +1 -0
  119. package/dist/visio/ui/edit-error.d.ts +5 -0
  120. package/dist/visio/ui/edit-error.d.ts.map +1 -0
  121. package/dist/visio/ui/foreign-vector-budget.d.ts +25 -0
  122. package/dist/visio/ui/foreign-vector-budget.d.ts.map +1 -0
  123. package/dist/visio/ui/index.cjs +1523 -0
  124. package/dist/visio/ui/index.d.ts +12 -0
  125. package/dist/visio/ui/index.d.ts.map +1 -0
  126. package/dist/visio/ui/index.mjs +1498 -0
  127. package/dist/visio/ui/scene-details.d.ts +8 -0
  128. package/dist/visio/ui/scene-details.d.ts.map +1 -0
  129. package/dist/visio/ui/scene-validation.d.ts +5 -0
  130. package/dist/visio/ui/scene-validation.d.ts.map +1 -0
  131. package/dist/visio/ui/snapshot-scene.d.ts +9 -0
  132. package/dist/visio/ui/snapshot-scene.d.ts.map +1 -0
  133. package/dist/xlsx/index.cjs +100 -98
  134. package/dist/xlsx/index.mjs +100 -98
  135. package/dist/xlsx/load/index.cjs +68 -66
  136. package/dist/xlsx/load/index.mjs +68 -66
  137. package/dist/xlsx/ui/backstage/templates.d.ts +16 -0
  138. package/dist/xlsx/ui/backstage/templates.d.ts.map +1 -0
  139. package/dist/xlsx/ui/commands/alignment.d.ts +4 -0
  140. package/dist/xlsx/ui/commands/alignment.d.ts.map +1 -0
  141. package/dist/xlsx/ui/commands/cells.d.ts +3 -0
  142. package/dist/xlsx/ui/commands/cells.d.ts.map +1 -0
  143. package/dist/xlsx/ui/commands/cf-presets.d.ts +15 -0
  144. package/dist/xlsx/ui/commands/cf-presets.d.ts.map +1 -0
  145. package/dist/xlsx/ui/commands/clipboard.d.ts +22 -0
  146. package/dist/xlsx/ui/commands/clipboard.d.ts.map +1 -0
  147. package/dist/xlsx/ui/commands/contextual.d.ts +13 -0
  148. package/dist/xlsx/ui/commands/contextual.d.ts.map +1 -0
  149. package/dist/xlsx/ui/commands/data.d.ts +3 -0
  150. package/dist/xlsx/ui/commands/data.d.ts.map +1 -0
  151. package/dist/xlsx/ui/commands/editing.d.ts +13 -0
  152. package/dist/xlsx/ui/commands/editing.d.ts.map +1 -0
  153. package/dist/xlsx/ui/commands/font.d.ts +21 -0
  154. package/dist/xlsx/ui/commands/font.d.ts.map +1 -0
  155. package/dist/xlsx/ui/commands/formulas.d.ts +15 -0
  156. package/dist/xlsx/ui/commands/formulas.d.ts.map +1 -0
  157. package/dist/xlsx/ui/commands/i18n/core-features.d.ts +3 -0
  158. package/dist/xlsx/ui/commands/i18n/core-features.d.ts.map +1 -0
  159. package/dist/xlsx/ui/commands/i18n/format-cells.d.ts +3 -0
  160. package/dist/xlsx/ui/commands/i18n/format-cells.d.ts.map +1 -0
  161. package/dist/xlsx/ui/commands/i18n/index.d.ts +4 -0
  162. package/dist/xlsx/ui/commands/i18n/index.d.ts.map +1 -0
  163. package/dist/xlsx/ui/commands/i18n/messages.d.ts +3 -0
  164. package/dist/xlsx/ui/commands/i18n/messages.d.ts.map +1 -0
  165. package/dist/xlsx/ui/commands/i18n/navigation.d.ts +3 -0
  166. package/dist/xlsx/ui/commands/i18n/navigation.d.ts.map +1 -0
  167. package/dist/xlsx/ui/commands/i18n/ribbon-home.d.ts +3 -0
  168. package/dist/xlsx/ui/commands/i18n/ribbon-home.d.ts.map +1 -0
  169. package/dist/xlsx/ui/commands/i18n/ribbon-tabs.d.ts +3 -0
  170. package/dist/xlsx/ui/commands/i18n/ribbon-tabs.d.ts.map +1 -0
  171. package/dist/xlsx/ui/commands/i18n/rules.d.ts +3 -0
  172. package/dist/xlsx/ui/commands/i18n/rules.d.ts.map +1 -0
  173. package/dist/xlsx/ui/commands/i18n/tools.d.ts +3 -0
  174. package/dist/xlsx/ui/commands/i18n/tools.d.ts.map +1 -0
  175. package/dist/xlsx/ui/commands/i18n/types.d.ts +5 -0
  176. package/dist/xlsx/ui/commands/i18n/types.d.ts.map +1 -0
  177. package/dist/xlsx/ui/commands/icons.d.ts +4 -0
  178. package/dist/xlsx/ui/commands/icons.d.ts.map +1 -0
  179. package/dist/xlsx/ui/commands/number.d.ts +11 -0
  180. package/dist/xlsx/ui/commands/number.d.ts.map +1 -0
  181. package/dist/xlsx/ui/commands/page-layout.d.ts +10 -0
  182. package/dist/xlsx/ui/commands/page-layout.d.ts.map +1 -0
  183. package/dist/xlsx/ui/commands/select-special.d.ts +12 -0
  184. package/dist/xlsx/ui/commands/select-special.d.ts.map +1 -0
  185. package/dist/xlsx/ui/commands/sort-filter.d.ts +3 -0
  186. package/dist/xlsx/ui/commands/sort-filter.d.ts.map +1 -0
  187. package/dist/xlsx/ui/commands/style-presets.d.ts +21 -0
  188. package/dist/xlsx/ui/commands/style-presets.d.ts.map +1 -0
  189. package/dist/xlsx/ui/commands/util.d.ts +59 -0
  190. package/dist/xlsx/ui/commands/util.d.ts.map +1 -0
  191. package/dist/xlsx/ui/commands.d.ts +36 -0
  192. package/dist/xlsx/ui/commands.d.ts.map +1 -0
  193. package/dist/xlsx/ui/context-menu/items.d.ts +36 -0
  194. package/dist/xlsx/ui/context-menu/items.d.ts.map +1 -0
  195. package/dist/xlsx/ui/context.d.ts +65 -0
  196. package/dist/xlsx/ui/context.d.ts.map +1 -0
  197. package/dist/xlsx/ui/dialogs/format-cells/number-categories.d.ts +28 -0
  198. package/dist/xlsx/ui/dialogs/format-cells/number-categories.d.ts.map +1 -0
  199. package/dist/xlsx/ui/dialogs/format-cells/types.d.ts +40 -0
  200. package/dist/xlsx/ui/dialogs/format-cells/types.d.ts.map +1 -0
  201. package/dist/xlsx/ui/dialogs/insert-chart-model.d.ts +9 -0
  202. package/dist/xlsx/ui/dialogs/insert-chart-model.d.ts.map +1 -0
  203. package/dist/xlsx/ui/dialogs.d.ts +9 -0
  204. package/dist/xlsx/ui/dialogs.d.ts.map +1 -0
  205. package/dist/xlsx/ui/dirty-state.d.ts +9 -0
  206. package/dist/xlsx/ui/dirty-state.d.ts.map +1 -0
  207. package/dist/xlsx/ui/formula-bar/name-resolve.d.ts +23 -0
  208. package/dist/xlsx/ui/formula-bar/name-resolve.d.ts.map +1 -0
  209. package/dist/xlsx/ui/grid/cell-items.d.ts +42 -0
  210. package/dist/xlsx/ui/grid/cell-items.d.ts.map +1 -0
  211. package/dist/xlsx/ui/grid/cell-paint.d.ts +26 -0
  212. package/dist/xlsx/ui/grid/cell-paint.d.ts.map +1 -0
  213. package/dist/xlsx/ui/grid/edit-bridge.d.ts +47 -0
  214. package/dist/xlsx/ui/grid/edit-bridge.d.ts.map +1 -0
  215. package/dist/xlsx/ui/grid/geometry.d.ts +76 -0
  216. package/dist/xlsx/ui/grid/geometry.d.ts.map +1 -0
  217. package/dist/xlsx/ui/grid/icon-sets.d.ts +3 -0
  218. package/dist/xlsx/ui/grid/icon-sets.d.ts.map +1 -0
  219. package/dist/xlsx/ui/grid/number-fit.d.ts +3 -0
  220. package/dist/xlsx/ui/grid/number-fit.d.ts.map +1 -0
  221. package/dist/xlsx/ui/grid/selection-ops.d.ts +32 -0
  222. package/dist/xlsx/ui/grid/selection-ops.d.ts.map +1 -0
  223. package/dist/xlsx/ui/grid/view-cache.d.ts +15 -0
  224. package/dist/xlsx/ui/grid/view-cache.d.ts.map +1 -0
  225. package/dist/xlsx/ui/index.cjs +28484 -0
  226. package/dist/xlsx/ui/index.d.ts +56 -0
  227. package/dist/xlsx/ui/index.d.ts.map +1 -0
  228. package/dist/xlsx/ui/index.mjs +28290 -0
  229. package/dist/xlsx/ui/locales/de/commands.d.ts +2 -0
  230. package/dist/xlsx/ui/locales/de/commands.d.ts.map +1 -0
  231. package/dist/xlsx/ui/locales/de/grid.d.ts +2 -0
  232. package/dist/xlsx/ui/locales/de/grid.d.ts.map +1 -0
  233. package/dist/xlsx/ui/locales/de/index.d.ts +2 -0
  234. package/dist/xlsx/ui/locales/de/index.d.ts.map +1 -0
  235. package/dist/xlsx/ui/locales/de/shell.d.ts +2 -0
  236. package/dist/xlsx/ui/locales/de/shell.d.ts.map +1 -0
  237. package/dist/xlsx/ui/locales/en/commands.d.ts +2 -0
  238. package/dist/xlsx/ui/locales/en/commands.d.ts.map +1 -0
  239. package/dist/xlsx/ui/locales/en/grid.d.ts +2 -0
  240. package/dist/xlsx/ui/locales/en/grid.d.ts.map +1 -0
  241. package/dist/xlsx/ui/locales/en/index.d.ts +2 -0
  242. package/dist/xlsx/ui/locales/en/index.d.ts.map +1 -0
  243. package/dist/xlsx/ui/locales/en/shell.d.ts +2 -0
  244. package/dist/xlsx/ui/locales/en/shell.d.ts.map +1 -0
  245. package/dist/xlsx/ui/locales/es/commands.d.ts +2 -0
  246. package/dist/xlsx/ui/locales/es/commands.d.ts.map +1 -0
  247. package/dist/xlsx/ui/locales/es/grid.d.ts +2 -0
  248. package/dist/xlsx/ui/locales/es/grid.d.ts.map +1 -0
  249. package/dist/xlsx/ui/locales/es/index.d.ts +2 -0
  250. package/dist/xlsx/ui/locales/es/index.d.ts.map +1 -0
  251. package/dist/xlsx/ui/locales/es/shell.d.ts +2 -0
  252. package/dist/xlsx/ui/locales/es/shell.d.ts.map +1 -0
  253. package/dist/xlsx/ui/locales/fr/commands.d.ts +2 -0
  254. package/dist/xlsx/ui/locales/fr/commands.d.ts.map +1 -0
  255. package/dist/xlsx/ui/locales/fr/grid.d.ts +2 -0
  256. package/dist/xlsx/ui/locales/fr/grid.d.ts.map +1 -0
  257. package/dist/xlsx/ui/locales/fr/index.d.ts +2 -0
  258. package/dist/xlsx/ui/locales/fr/index.d.ts.map +1 -0
  259. package/dist/xlsx/ui/locales/fr/shell.d.ts +2 -0
  260. package/dist/xlsx/ui/locales/fr/shell.d.ts.map +1 -0
  261. package/dist/xlsx/ui/locales/merge.d.ts +7 -0
  262. package/dist/xlsx/ui/locales/merge.d.ts.map +1 -0
  263. package/dist/xlsx/ui/locales/zh-CN/commands.d.ts +2 -0
  264. package/dist/xlsx/ui/locales/zh-CN/commands.d.ts.map +1 -0
  265. package/dist/xlsx/ui/locales/zh-CN/grid.d.ts +2 -0
  266. package/dist/xlsx/ui/locales/zh-CN/grid.d.ts.map +1 -0
  267. package/dist/xlsx/ui/locales/zh-CN/index.d.ts +2 -0
  268. package/dist/xlsx/ui/locales/zh-CN/index.d.ts.map +1 -0
  269. package/dist/xlsx/ui/locales/zh-CN/shell.d.ts +2 -0
  270. package/dist/xlsx/ui/locales/zh-CN/shell.d.ts.map +1 -0
  271. package/dist/xlsx/ui/localization.d.ts +23 -0
  272. package/dist/xlsx/ui/localization.d.ts.map +1 -0
  273. package/dist/xlsx/ui/ribbon/icon-paths.d.ts +9 -0
  274. package/dist/xlsx/ui/ribbon/icon-paths.d.ts.map +1 -0
  275. package/dist/xlsx/ui/ribbon/parts.d.ts +88 -0
  276. package/dist/xlsx/ui/ribbon/parts.d.ts.map +1 -0
  277. package/dist/xlsx/ui/ribbon/tab-api.d.ts +21 -0
  278. package/dist/xlsx/ui/ribbon/tab-api.d.ts.map +1 -0
  279. package/dist/xlsx/ui/ribbon/tabs/review-view.d.ts +5 -0
  280. package/dist/xlsx/ui/ribbon/tabs/review-view.d.ts.map +1 -0
  281. package/dist/xlsx/ui/ribbon/tabs/theme-palette.d.ts +8 -0
  282. package/dist/xlsx/ui/ribbon/tabs/theme-palette.d.ts.map +1 -0
  283. package/dist/xlsx/ui/ribbon/tell-me.d.ts +16 -0
  284. package/dist/xlsx/ui/ribbon/tell-me.d.ts.map +1 -0
  285. package/dist/xlsx/ui/selection.d.ts +34 -0
  286. package/dist/xlsx/ui/selection.d.ts.map +1 -0
  287. package/dist/xlsx/ui/theme/css-vars.d.ts +6 -0
  288. package/dist/xlsx/ui/theme/css-vars.d.ts.map +1 -0
  289. package/dist/xlsx/ui/theme/defaults.d.ts +6 -0
  290. package/dist/xlsx/ui/theme/defaults.d.ts.map +1 -0
  291. package/dist/xlsx/ui/theme/element.d.ts +9 -0
  292. package/dist/xlsx/ui/theme/element.d.ts.map +1 -0
  293. package/dist/xlsx/ui/theme/types.d.ts +54 -0
  294. package/dist/xlsx/ui/theme/types.d.ts.map +1 -0
  295. package/dist/xml/index.cjs +2 -1
  296. package/dist/xml/index.mjs +2 -1
  297. package/package.json +30 -3
@@ -1943,7 +1943,8 @@ function parseXml(xml, options = {}) {
1943
1943
  }).parseFromString(xml, "application/xml");
1944
1944
  } catch (error) {
1945
1945
  throw new Error(
1946
- `Invalid ${label2} XML: ${error instanceof Error ? error.message : String(error)}`
1946
+ `Invalid ${label2} XML: ${error instanceof Error ? error.message : String(error)}`,
1947
+ { cause: error }
1947
1948
  );
1948
1949
  }
1949
1950
  if (parseError || !parsed.documentElement)
@@ -2734,7 +2735,8 @@ async function readZipParts(input, limits = {}) {
2734
2735
  zip = await JSZip.loadAsync(bytes);
2735
2736
  } catch (error) {
2736
2737
  throw new Error(
2737
- `Not a valid XLSX package: ${error instanceof Error ? error.message : String(error)}`
2738
+ `Not a valid XLSX package: ${error instanceof Error ? error.message : String(error)}`,
2739
+ { cause: error }
2738
2740
  );
2739
2741
  }
2740
2742
  const entries = Object.values(zip.files).filter((entry) => !entry.dir);
@@ -3701,24 +3703,24 @@ function mergeSpacedAreas(tokens2) {
3701
3703
  const out = [];
3702
3704
  const plainCell = (t) => t?.kind === "ref" && t.ref?.kind === "cell" && !t.spill;
3703
3705
  for (let i = 0; i < tokens2.length; i++) {
3704
- const first3 = tokens2[i];
3706
+ const first2 = tokens2[i];
3705
3707
  let j = i + 1;
3706
3708
  while (tokens2[j]?.kind === "ws") j++;
3707
3709
  let k = j + 1;
3708
3710
  while (tokens2[k]?.kind === "ws") k++;
3709
3711
  const colon = tokens2[j];
3710
3712
  const last = tokens2[k];
3711
- if (plainCell(first3) && colon?.kind === "op" && colon.text === ":" && plainCell(last) && !last?.prefix && k > i + 2 && first3.ref && last?.ref) {
3713
+ if (plainCell(first2) && colon?.kind === "op" && colon.text === ":" && plainCell(last) && !last?.prefix && k > i + 2 && first2.ref && last?.ref) {
3712
3714
  const text = tokens2.slice(i, k + 1).map((t) => t.text).join("");
3713
3715
  out.push({
3714
- ...first3,
3716
+ ...first2,
3715
3717
  text,
3716
- ref: { kind: "area", start: first3.ref.start, end: last.ref.start }
3718
+ ref: { kind: "area", start: first2.ref.start, end: last.ref.start }
3717
3719
  });
3718
3720
  i = k;
3719
3721
  continue;
3720
3722
  }
3721
- out.push(first3);
3723
+ out.push(first2);
3722
3724
  }
3723
3725
  return out;
3724
3726
  }
@@ -3770,10 +3772,10 @@ function renameSheetInFormula(formula, oldName, newName) {
3770
3772
  for (const token of tokens2) {
3771
3773
  const prefix = token.prefix;
3772
3774
  if (!prefix || prefix.book !== void 0) continue;
3773
- const first3 = prefix.sheet.toLowerCase() === lower2;
3775
+ const first2 = prefix.sheet.toLowerCase() === lower2;
3774
3776
  const second = prefix.sheet2?.toLowerCase() === lower2;
3775
- if (!first3 && !second) continue;
3776
- const renamed = { ...prefix, sheet: first3 ? newName : prefix.sheet };
3777
+ if (!first2 && !second) continue;
3778
+ const renamed = { ...prefix, sheet: first2 ? newName : prefix.sheet };
3777
3779
  if (prefix.sheet2 !== void 0) renamed.sheet2 = second ? newName : prefix.sheet2;
3778
3780
  const text = prefixText(renamed);
3779
3781
  token.text = text + token.text.slice(prefix.text.length);
@@ -6445,9 +6447,9 @@ function seriesXml(chart, series, index2) {
6445
6447
  var axes = (horizontal, scatter) => {
6446
6448
  const common = '<c:scaling><c:orientation val="minMax"/></c:scaling><c:delete val="0"/>';
6447
6449
  const ticks = '<c:numFmt formatCode="General" sourceLinked="1"/><c:majorTickMark val="out"/><c:minorTickMark val="none"/><c:tickLblPos val="nextTo"/>';
6448
- const first3 = scatter ? `<c:valAx><c:axId val="500000001"/>${common}<c:axPos val="b"/>${ticks}<c:crossAx val="500000002"/><c:crosses val="autoZero"/><c:crossBetween val="midCat"/></c:valAx>` : `<c:catAx><c:axId val="500000001"/>${common}<c:axPos val="${horizontal ? "l" : "b"}"/>${ticks}<c:crossAx val="500000002"/><c:crosses val="autoZero"/><c:auto val="1"/><c:lblAlgn val="ctr"/><c:lblOffset val="100"/><c:noMultiLvlLbl val="0"/></c:catAx>`;
6450
+ const first2 = scatter ? `<c:valAx><c:axId val="500000001"/>${common}<c:axPos val="b"/>${ticks}<c:crossAx val="500000002"/><c:crosses val="autoZero"/><c:crossBetween val="midCat"/></c:valAx>` : `<c:catAx><c:axId val="500000001"/>${common}<c:axPos val="${horizontal ? "l" : "b"}"/>${ticks}<c:crossAx val="500000002"/><c:crosses val="autoZero"/><c:auto val="1"/><c:lblAlgn val="ctr"/><c:lblOffset val="100"/><c:noMultiLvlLbl val="0"/></c:catAx>`;
6449
6451
  const second = `<c:valAx><c:axId val="500000002"/>${common}<c:axPos val="${horizontal ? "b" : "l"}"/><c:majorGridlines/>${ticks}<c:crossAx val="500000001"/><c:crosses val="autoZero"/><c:crossBetween val="${scatter ? "midCat" : "between"}"/></c:valAx>`;
6450
- return first3 + second;
6452
+ return first2 + second;
6451
6453
  };
6452
6454
  var AX_IDS = '<c:axId val="500000001"/><c:axId val="500000002"/>';
6453
6455
  function plotXml(chart) {
@@ -7643,8 +7645,8 @@ function fitNumber(value, format, options) {
7643
7645
  const date1904 = options.date1904 ?? false;
7644
7646
  const width = options.width ?? 0;
7645
7647
  const fits = (text) => (options.measure ? options.measure(text) : text.length) <= width;
7646
- const first3 = formatNumber(value, format, date1904);
7647
- if (fits(first3.text) || first3.text === OVERFLOW_TEXT) return first3;
7648
+ const first2 = formatNumber(value, format, date1904);
7649
+ if (fits(first2.text) || first2.text === OVERFLOW_TEXT) return first2;
7648
7650
  const choice = chooseSection(compileFormat(format), value);
7649
7651
  const general = choice && !choice.section.number && !choice.section.fraction && choice.section.tokens.some((t) => t.t === "general");
7650
7652
  if (general) {
@@ -7654,7 +7656,7 @@ function fitNumber(value, format, options) {
7654
7656
  }
7655
7657
  }
7656
7658
  const fill2 = hashFill(options);
7657
- return first3.color ? { text: fill2, color: first3.color } : { text: fill2 };
7659
+ return first2.color ? { text: fill2, color: first2.color } : { text: fill2 };
7658
7660
  }
7659
7661
  function formatNumber(value, format, date1904, generalWidth) {
7660
7662
  if (!Number.isFinite(value)) return { text: "#NUM!" };
@@ -8256,9 +8258,9 @@ function serialToYmd(serial, date1904 = date1904Mode) {
8256
8258
  return { year: d.getUTCFullYear(), month: d.getUTCMonth() + 1, day: d.getUTCDate() };
8257
8259
  }
8258
8260
  function monthStartSerial(year, month0, date1904) {
8259
- const first3 = /* @__PURE__ */ new Date(0);
8260
- first3.setUTCFullYear(year, month0, 1);
8261
- const days = Math.round((first3.getTime() - (date1904 ? EPOCH_19042 : EPOCH_19003)) / DAY_MS2);
8261
+ const first2 = /* @__PURE__ */ new Date(0);
8262
+ first2.setUTCFullYear(year, month0, 1);
8263
+ const days = Math.round((first2.getTime() - (date1904 ? EPOCH_19042 : EPOCH_19003)) / DAY_MS2);
8262
8264
  return !date1904 && days < 61 ? days - 1 : days;
8263
8265
  }
8264
8266
  function ymdToSerial(year, month, day, date1904 = date1904Mode) {
@@ -9326,9 +9328,9 @@ function percentRank(values2, x, digits2, exclusive) {
9326
9328
  const s = sorted(values2);
9327
9329
  const n = s.length;
9328
9330
  if (n === 0 || digits2 < 1) fail(ERR.NUM);
9329
- const first3 = s[0];
9331
+ const first2 = s[0];
9330
9332
  const last = s[n - 1];
9331
- if (x < first3 || x > last) fail(ERR.NA);
9333
+ if (x < first2 || x > last) fail(ERR.NA);
9332
9334
  let rank3;
9333
9335
  const lower2 = s.filter((v) => v < x).length;
9334
9336
  const exact = s.includes(x);
@@ -9528,8 +9530,8 @@ function weekendDays(value) {
9528
9530
  }
9529
9531
  const code = Math.trunc(num2(v));
9530
9532
  if (code >= 1 && code <= 7) {
9531
- const first3 = (code + 5) % 7;
9532
- return /* @__PURE__ */ new Set([first3, (first3 + 1) % 7]);
9533
+ const first2 = (code + 5) % 7;
9534
+ return /* @__PURE__ */ new Set([first2, (first2 + 1) % 7]);
9533
9535
  }
9534
9536
  if (code >= 11 && code <= 17) return /* @__PURE__ */ new Set([code - 11]);
9535
9537
  return fail(ERR.NUM);
@@ -10773,16 +10775,16 @@ function quasiPeriods(anchor, from, to, frequency2, ctx) {
10773
10775
  }
10774
10776
  function accruedInterest(args, ctx) {
10775
10777
  const issue = serialArg(args[0]);
10776
- const first3 = serialArg(args[1]);
10778
+ const first2 = serialArg(args[1]);
10777
10779
  const settlement = serialArg(args[2]);
10778
10780
  const [rate, par] = [num2(args[3]), optNum(args, 4, 1e3)];
10779
10781
  const frequency2 = int3(args[5]);
10780
10782
  const basis = basisOf(args, 6);
10781
10783
  const fromIssue = args.length > 7 && args[7] !== null ? bool(args[7]) : true;
10782
10784
  if (rate <= 0 || par <= 0 || ![1, 2, 4].includes(frequency2) || issue >= settlement) fail(ERR.NUM);
10783
- const start = fromIssue ? issue : Math.max(issue, first3);
10785
+ const start = fromIssue ? issue : Math.max(issue, first2);
10784
10786
  if (start >= settlement) return 0;
10785
- const dates = quasiPeriods(first3, start, settlement, frequency2, ctx);
10787
+ const dates = quasiPeriods(first2, start, settlement, frequency2, ctx);
10786
10788
  const count2 = (a, b) => basis === 0 || basis === 4 ? days360(a, b, basis === 4, ctx) : b - a;
10787
10789
  let sum2 = 0;
10788
10790
  for (let i = 0; i + 1 < dates.length; i++) {
@@ -11241,8 +11243,8 @@ function datedFlows(ctx, args) {
11241
11243
  const values2 = collectNumbers(ctx, [args[0] ?? null]);
11242
11244
  const dates = collectNumbers(ctx, [args[1] ?? null]).map(Math.floor);
11243
11245
  if (values2.length !== dates.length || values2.length === 0) fail(ERR.NUM);
11244
- const first3 = dates[0];
11245
- if (dates.some((d) => d < first3)) fail(ERR.NUM);
11246
+ const first2 = dates[0];
11247
+ if (dates.some((d) => d < first2)) fail(ERR.NUM);
11246
11248
  return { values: values2, dates };
11247
11249
  }
11248
11250
  var xnpv = (rate, values2, dates) => values2.reduce(
@@ -12713,7 +12715,7 @@ function matchingCells(ctx, pairs, target, sameShape) {
12713
12715
  const tests = pairs.map((p) => makeCriteria(scalar(p.criteria)));
12714
12716
  const values2 = matrices[matrices.length - 1];
12715
12717
  const out = [];
12716
- const first3 = matrices[0];
12718
+ const first2 = matrices[0];
12717
12719
  const holds = (r, c2) => {
12718
12720
  for (let i = 0; i < tests.length; i++) {
12719
12721
  if (!tests[i](matrices[i].get(r, c2))) return false;
@@ -12723,23 +12725,23 @@ function matchingCells(ctx, pairs, target, sameShape) {
12723
12725
  const candidates = indexedCandidates(pairs, matrices);
12724
12726
  if (candidates) {
12725
12727
  for (const at of candidates) {
12726
- const r = Math.floor(at / first3.cols);
12727
- const c2 = at - r * first3.cols;
12728
+ const r = Math.floor(at / first2.cols);
12729
+ const c2 = at - r * first2.cols;
12728
12730
  if (holds(r, c2)) out.push(values2.get(r, c2));
12729
12731
  }
12730
12732
  } else {
12731
- for (let r = 0; r < first3.rows; r++) {
12732
- for (let c2 = 0; c2 < first3.cols; c2++) if (holds(r, c2)) out.push(values2.get(r, c2));
12733
+ for (let r = 0; r < first2.rows; r++) {
12734
+ for (let c2 = 0; c2 < first2.cols; c2++) if (holds(r, c2)) out.push(values2.get(r, c2));
12733
12735
  }
12734
12736
  }
12735
12737
  const blankTail = total2 > block && tests.every((test) => test(null)) ? total2 - block : 0;
12736
12738
  return { values: out, blankTail };
12737
12739
  }
12738
12740
  function indexedCandidates(pairs, matrices) {
12739
- const first3 = matrices[0];
12741
+ const first2 = matrices[0];
12740
12742
  for (let i = 0; i < pairs.length; i++) {
12741
12743
  const m = matrices[i];
12742
- if (!(pairs[i]?.range instanceof RefValue) || m.cols !== first3.cols) continue;
12744
+ if (!(pairs[i]?.range instanceof RefValue) || m.cols !== first2.cols) continue;
12743
12745
  const key = equalityKey(scalar(pairs[i]?.criteria));
12744
12746
  if (key === void 0) continue;
12745
12747
  const found = positionsOf(m, key);
@@ -12796,12 +12798,12 @@ var C18 = "Math & Trig";
12796
12798
  var numbersOf = (values2) => values2.filter((v) => typeof v === "number");
12797
12799
  function sumProduct(ctx, args) {
12798
12800
  const matrices = args.map((a) => ctx.toMatrix(a));
12799
- const first3 = matrices[0];
12800
- if (!first3) fail(ERR.VALUE);
12801
- for (const m of matrices) if (m.rows !== first3.rows || m.cols !== first3.cols) fail(ERR.VALUE);
12801
+ const first2 = matrices[0];
12802
+ if (!first2) fail(ERR.VALUE);
12803
+ for (const m of matrices) if (m.rows !== first2.rows || m.cols !== first2.cols) fail(ERR.VALUE);
12802
12804
  let total2 = 0;
12803
- for (let r = 0; r < first3.rows; r++) {
12804
- for (let c2 = 0; c2 < first3.cols; c2++) {
12805
+ for (let r = 0; r < first2.rows; r++) {
12806
+ for (let c2 = 0; c2 < first2.cols; c2++) {
12805
12807
  let product = 1;
12806
12808
  for (const m of matrices) {
12807
12809
  const v = m.get(r, c2);
@@ -17434,8 +17436,8 @@ function ruleXml(rule, styles, anchor) {
17434
17436
  }
17435
17437
  function conditionalFormatsXml(formats, styles) {
17436
17438
  return formats.filter((format) => format.ranges.length && format.rules.length).map((format) => {
17437
- const first3 = format.ranges[0];
17438
- const anchor = first3 ? formatAddress(first3.start) : "A1";
17439
+ const first2 = format.ranges[0];
17440
+ const anchor = first2 ? formatAddress(first2.start) : "A1";
17439
17441
  const rules = format.rules.map((rule) => ruleXml(rule, styles, anchor)).join("");
17440
17442
  return `<conditionalFormatting sqref="${format.ranges.map((r) => formatRange(r)).join(" ")}">${rules}</conditionalFormatting>`;
17441
17443
  }).join("");
@@ -18142,10 +18144,10 @@ function dimensionXml(sheet) {
18142
18144
  function sheetViewsXml(sheet, tabSelected) {
18143
18145
  const source2 = snapshotElement(sheet, "sheetViews");
18144
18146
  if (source2 && sameModel(readSheetView(source2), sheet.view)) {
18145
- const first3 = elements(source2).find((node) => node.localName === "sheetView");
18146
- if (first3) {
18147
- if (tabSelected) first3.setAttribute("tabSelected", "1");
18148
- else first3.removeAttribute("tabSelected");
18147
+ const first2 = elements(source2).find((node) => node.localName === "sheetView");
18148
+ if (first2) {
18149
+ if (tabSelected) first2.setAttribute("tabSelected", "1");
18150
+ else first2.removeAttribute("tabSelected");
18149
18151
  }
18150
18152
  return outerXml(source2);
18151
18153
  }
@@ -19146,12 +19148,12 @@ function stringLiteral(text) {
19146
19148
  function cellText(loc) {
19147
19149
  return `${loc.colRel ? "" : "$"}${columnName(loc.col)}${loc.rowRel ? "" : "$"}${loc.row + 1}`;
19148
19150
  }
19149
- function areaText(first3, last) {
19150
- if (first3.row === 0 && last.row === 65535)
19151
- return `${first3.colRel ? "" : "$"}${columnName(first3.col)}:${last.colRel ? "" : "$"}${columnName(last.col)}`;
19152
- if (first3.col === 0 && last.col >= 255)
19153
- return `${first3.rowRel ? "" : "$"}${first3.row + 1}:${last.rowRel ? "" : "$"}${last.row + 1}`;
19154
- return `${cellText(first3)}:${cellText(last)}`;
19151
+ function areaText(first2, last) {
19152
+ if (first2.row === 0 && last.row === 65535)
19153
+ return `${first2.colRel ? "" : "$"}${columnName(first2.col)}:${last.colRel ? "" : "$"}${columnName(last.col)}`;
19154
+ if (first2.col === 0 && last.col >= 255)
19155
+ return `${first2.rowRel ? "" : "$"}${first2.row + 1}:${last.rowRel ? "" : "$"}${last.row + 1}`;
19156
+ return `${cellText(first2)}:${cellText(last)}`;
19155
19157
  }
19156
19158
  function readLoc(row2, colField, relative, base) {
19157
19159
  const rowRel = (colField & 32768) !== 0;
@@ -19391,10 +19393,10 @@ function decode(rgce, extra, context, options) {
19391
19393
  args.unshift(pop());
19392
19394
  let fn = name;
19393
19395
  if (name === "") {
19394
- const first3 = args.shift();
19395
- if (first3 === void 0)
19396
+ const first2 = args.shift();
19397
+ if (first2 === void 0)
19396
19398
  throw new Unsupported();
19397
- fn = first3.trim().replace(/^_xlfn\./, "");
19399
+ fn = first2.trim().replace(/^_xlfn\./, "");
19398
19400
  }
19399
19401
  push(`${fn}(${args.join(",")}${closeSpace})`);
19400
19402
  closeSpace = "";
@@ -19961,17 +19963,17 @@ function parseSupBook(data) {
19961
19963
  const path = rawPath.split(/[\u0001-\u0008\\/]/).pop() ?? rawPath;
19962
19964
  return { kind: "external", sheets, path, externNames: [] };
19963
19965
  }
19964
- function sheetRange(first3, last) {
19965
- if (first3 === last)
19966
- return quoteSheetName2(first3);
19967
- const plain2 = quoteSheetName2(first3) === first3 && quoteSheetName2(last) === last;
19968
- return plain2 ? `${first3}:${last}` : `'${`${first3}:${last}`.replace(/'/g, "''")}'`;
19966
+ function sheetRange(first2, last) {
19967
+ if (first2 === last)
19968
+ return quoteSheetName2(first2);
19969
+ const plain2 = quoteSheetName2(first2) === first2 && quoteSheetName2(last) === last;
19970
+ return plain2 ? `${first2}:${last}` : `'${`${first2}:${last}`.replace(/'/g, "''")}'`;
19969
19971
  }
19970
19972
  function parseGlobals(records) {
19971
- const first3 = records[0];
19972
- if (!first3 || first3.opcode !== RT.BOF)
19973
+ const first2 = records[0];
19974
+ if (!first2 || first2.opcode !== RT.BOF)
19973
19975
  throw new XlsReadError("corrupt", "Missing BOF record.");
19974
- const version = first3.data[0] | first3.data[1] << 8;
19976
+ const version = first2.data[0] | first2.data[1] << 8;
19975
19977
  if (version !== 1536)
19976
19978
  throw new XlsReadError("unsupported-version", "Only Excel 97-2003 (BIFF8) workbooks are supported; this file uses an older Excel format.");
19977
19979
  const end = records.findIndex((record) => record.opcode === RT.EOF);
@@ -20459,11 +20461,11 @@ function parseSheet(bound, records, start, globals) {
20459
20461
  break;
20460
20462
  case 189: {
20461
20463
  const row2 = r.u16();
20462
- const first3 = r.u16();
20464
+ const first2 = r.u16();
20463
20465
  const count2 = Math.floor((data.length - 6) / 6);
20464
20466
  for (let i = 0; i < count2; i++) {
20465
20467
  const xf = r.u16();
20466
- sheet.cells.push({ row: row2, col: first3 + i, xf, value: decodeRk(r.u32()) });
20468
+ sheet.cells.push({ row: row2, col: first2 + i, xf, value: decodeRk(r.u32()) });
20467
20469
  }
20468
20470
  break;
20469
20471
  }
@@ -20472,10 +20474,10 @@ function parseSheet(bound, records, start, globals) {
20472
20474
  break;
20473
20475
  case 190: {
20474
20476
  const row2 = r.u16();
20475
- const first3 = r.u16();
20477
+ const first2 = r.u16();
20476
20478
  const count2 = Math.floor((data.length - 6) / 2);
20477
20479
  for (let i = 0; i < count2; i++)
20478
- sheet.cells.push({ row: row2, col: first3 + i, xf: r.u16(), value: null });
20480
+ sheet.cells.push({ row: row2, col: first2 + i, xf: r.u16(), value: null });
20479
20481
  break;
20480
20482
  }
20481
20483
  case 253: {
@@ -0,0 +1,16 @@
1
+ /**
2
+ * File > New templates, generated from code through the core's edit session (no bundled files):
3
+ * a monthly budget, a to-do list and an invoice, each with working formulas.
4
+ */
5
+ import { type Workbook } from '../../index.js';
6
+ export type TemplateId = 'budget' | 'todo' | 'invoice';
7
+ type T = (key: string, vars?: Record<string, string | number>) => string;
8
+ export declare const TEMPLATES: ReadonlyArray<{
9
+ id: TemplateId;
10
+ label: string;
11
+ description: string;
12
+ }>;
13
+ /** A new workbook filled from a template, with the labels in the display language. */
14
+ export declare function createTemplateWorkbook(id: TemplateId, t: T): Workbook;
15
+ export {};
16
+ //# sourceMappingURL=templates.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../../../src/xlsx/ui/backstage/templates.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAON,KAAK,QAAQ,EACb,MAAM,gBAAgB,CAAC;AAExB,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,CAAC;AACvD,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,KAAK,MAAM,CAAC;AAEzE,eAAO,MAAM,SAAS,EAAE,aAAa,CAAC;IAAE,EAAE,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAI3F,CAAC;AAsGF,sFAAsF;AACtF,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,GAAG,QAAQ,CAOrE"}
@@ -0,0 +1,4 @@
1
+ import type { Command } from '../commands.js';
2
+ export declare const ORIENTATIONS: ReadonlyArray<readonly [number, string]>;
3
+ export declare function alignmentCommands(): Command[];
4
+ //# sourceMappingURL=alignment.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"alignment.d.ts","sourceRoot":"","sources":["../../../../src/xlsx/ui/commands/alignment.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAW9C,eAAO,MAAM,YAAY,EAAE,aAAa,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAMjE,CAAC;AAuCF,wBAAgB,iBAAiB,IAAI,OAAO,EAAE,CA+F7C"}
@@ -0,0 +1,3 @@
1
+ import type { Command } from '../commands.js';
2
+ export declare function cellCommands(): Command[];
3
+ //# sourceMappingURL=cells.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cells.d.ts","sourceRoot":"","sources":["../../../../src/xlsx/ui/commands/cells.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAyC9C,wBAAgB,YAAY,IAAI,OAAO,EAAE,CAoQxC"}
@@ -0,0 +1,15 @@
1
+ import type { CfvoThreshold, ConditionalRule, DifferentialStyle } from '../../index.js';
2
+ /** The "Format cells that..." choices of the quick rule dialogs. */
3
+ export declare const HIGHLIGHT_STYLES: ReadonlyArray<readonly [id: string, label: string, style: DifferentialStyle]>;
4
+ export declare const DATA_BAR_COLORS: ReadonlyArray<readonly [id: string, label: string, hex: string]>;
5
+ export declare const COLOR_SCALES: ReadonlyArray<readonly [id: string, label: string, colors: string[]]>;
6
+ export declare const ICON_SETS: ReadonlyArray<readonly [id: string, label: string]>;
7
+ export declare const iconCount: (set: string) => number;
8
+ /** Evenly spaced percent thresholds (`0, 33, 67` for three icons). */
9
+ export declare function iconThresholds(count: number): CfvoThreshold[];
10
+ export declare function dataBarRule(hex: string): ConditionalRule;
11
+ export declare function colorScaleRule(colors: string[]): ConditionalRule;
12
+ export declare function iconSetRule(set: string): ConditionalRule;
13
+ /** A CSS preview of a differential style (for the dialogs' format pickers). */
14
+ export declare function dxfCss(style: DifferentialStyle): string;
15
+ //# sourceMappingURL=cf-presets.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cf-presets.d.ts","sourceRoot":"","sources":["../../../../src/xlsx/ui/commands/cf-presets.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAIxF,oEAAoE;AACpE,eAAO,MAAM,gBAAgB,EAAE,aAAa,CAC3C,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,iBAAiB,CAAC,CA4C9D,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,aAAa,CAAC,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,CAO5F,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,aAAa,CAAC,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAa9F,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,aAAa,CAAC,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAiBzE,CAAC;AAEF,eAAO,MAAM,SAAS,QAAS,MAAM,KAAG,MAA2C,CAAC;AAEpF,sEAAsE;AACtE,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa,EAAE,CAK7D;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe,CAQxD;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,eAAe,CAMhE;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe,CAExD;AAED,+EAA+E;AAC/E,wBAAgB,MAAM,CAAC,KAAK,EAAE,iBAAiB,GAAG,MAAM,CAavD"}
@@ -0,0 +1,22 @@
1
+ import type { ClipboardPayload, PasteMode } from '../../index.js';
2
+ import type { Command } from '../commands.js';
3
+ import type { EditorContext } from '../context.js';
4
+ interface ClipState {
5
+ payload?: ClipboardPayload;
6
+ painter?: {
7
+ payload: ClipboardPayload;
8
+ sticky: boolean;
9
+ };
10
+ painterTimer?: ReturnType<typeof setTimeout>;
11
+ }
12
+ export declare const clipState: (ctx: EditorContext) => ClipState;
13
+ /** Pastes the kept payload with a mode; falls back to the grid's system-clipboard paste. */
14
+ export declare function pasteWith(ctx: EditorContext, mode: PasteMode): void;
15
+ export declare function clipboardCommands(): Command[];
16
+ /**
17
+ * Applies an armed format painter to the next selection (after the drag settles), as Excel does
18
+ * on mouse-up. Returns the unsubscribe function.
19
+ */
20
+ export declare function installFormatPainter(ctx: EditorContext): () => void;
21
+ export {};
22
+ //# sourceMappingURL=clipboard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clipboard.d.ts","sourceRoot":"","sources":["../../../../src/xlsx/ui/commands/clipboard.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAClE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAInD,UAAU,SAAS;IAClB,OAAO,CAAC,EAAE,gBAAgB,CAAC;IAC3B,OAAO,CAAC,EAAE;QAAE,OAAO,EAAE,gBAAgB,CAAC;QAAC,MAAM,EAAE,OAAO,CAAA;KAAE,CAAC;IACzD,YAAY,CAAC,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC;CAC7C;AAGD,eAAO,MAAM,SAAS,QAAS,aAAa,KAAG,SAO9C,CAAC;AAaF,4FAA4F;AAC5F,wBAAgB,SAAS,CAAC,GAAG,EAAE,aAAa,EAAE,IAAI,EAAE,SAAS,GAAG,IAAI,CAcnE;AAED,wBAAgB,iBAAiB,IAAI,OAAO,EAAE,CAoF7C;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,aAAa,GAAG,MAAM,IAAI,CAcnE"}
@@ -0,0 +1,13 @@
1
+ import { type ChartObject, type ChartPatch, type Table } from '../../index.js';
2
+ import type { Command } from '../commands.js';
3
+ import type { EditorContext } from '../context.js';
4
+ export declare const activeTable: (ctx: EditorContext) => Table | undefined;
5
+ /** The selected chart (clicked in the grid, or just inserted), as Excel's Chart Design follows. */
6
+ export declare function activeChart(ctx: EditorContext): {
7
+ chart: ChartObject;
8
+ index: number;
9
+ } | undefined;
10
+ /** Edits the active chart (a chart read from a file keeps its part; the core patches it on save). */
11
+ export declare function editChart(ctx: EditorContext, patch: (chart: ChartObject) => ChartPatch): void;
12
+ export declare function contextualCommands(): Command[];
13
+ //# sourceMappingURL=contextual.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contextual.d.ts","sourceRoot":"","sources":["../../../../src/xlsx/ui/commands/contextual.ts"],"names":[],"mappings":"AAEA,OAAO,EACN,KAAK,WAAW,EAChB,KAAK,UAAU,EAEf,KAAK,KAAK,EACV,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAInD,eAAO,MAAM,WAAW,QAAS,aAAa,KAAG,KAAK,GAAG,SAGxD,CAAC;AAEF,mGAAmG;AACnG,wBAAgB,WAAW,CAAC,GAAG,EAAE,aAAa,GAAG;IAAE,KAAK,EAAE,WAAW,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAMjG;AAED,qGAAqG;AACrG,wBAAgB,SAAS,CAAC,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,UAAU,GAAG,IAAI,CAI7F;AAuBD,wBAAgB,kBAAkB,IAAI,OAAO,EAAE,CAkH9C"}
@@ -0,0 +1,3 @@
1
+ import type { Command } from '../commands.js';
2
+ export declare function dataCommands(): Command[];
3
+ //# sourceMappingURL=data.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data.d.ts","sourceRoot":"","sources":["../../../../src/xlsx/ui/commands/data.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAI9C,wBAAgB,YAAY,IAAI,OAAO,EAAE,CA6DxC"}
@@ -0,0 +1,13 @@
1
+ import { type CellRange } from '../../index.js';
2
+ import type { Command } from '../commands.js';
3
+ import { type Target } from './util.js';
4
+ export declare const AUTOSUM_FUNCTIONS: ReadonlyArray<readonly [fn: string, label: string]>;
5
+ /** Excel's AutoSum guess for a single cell: the run of numbers above it, else to its left. */
6
+ export declare function autoSumRange(t: Target, row: number, col: number): CellRange | undefined;
7
+ /** The source band of a fill: the edge row / column, or the neighbour of a one-line selection. */
8
+ export declare function fillSource(r: CellRange, dir: 'down' | 'right' | 'up' | 'left'): {
9
+ source: CellRange;
10
+ target: CellRange;
11
+ } | undefined;
12
+ export declare function editingCommands(): Command[];
13
+ //# sourceMappingURL=editing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"editing.d.ts","sourceRoot":"","sources":["../../../../src/xlsx/ui/commands/editing.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,SAAS,EAAwB,MAAM,gBAAgB,CAAC;AACtE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAG9C,OAAO,EAAE,KAAK,MAAM,EAA4B,MAAM,WAAW,CAAC;AAIlE,eAAO,MAAM,iBAAiB,EAAE,aAAa,CAAC,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAMjF,CAAC;AAKF,8FAA8F;AAC9F,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAYvF;AA6BD,kGAAkG;AAClG,wBAAgB,UAAU,CACzB,CAAC,EAAE,SAAS,EACZ,GAAG,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,MAAM,GACnC;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,SAAS,CAAA;CAAE,GAAG,SAAS,CA4CtD;AAaD,wBAAgB,eAAe,IAAI,OAAO,EAAE,CAwH3C"}
@@ -0,0 +1,21 @@
1
+ import type { BorderEdge, BorderPreset, Color, StylePatch } from '../../index.js';
2
+ import type { Command } from '../commands.js';
3
+ import type { EditorContext } from '../context.js';
4
+ export declare const FONT_NAMES: readonly ['Aptos', 'Arial', 'Arial Black', 'Calibri', 'Calibri Light', 'Cambria', 'Candara', 'Century Gothic', 'Comic Sans MS', 'Consolas', 'Constantia', 'Corbel', 'Courier New', 'Franklin Gothic Medium', 'Garamond', 'Georgia', 'Impact', 'Lucida Console', 'Lucida Sans Unicode', 'Palatino Linotype', 'Segoe UI', 'Tahoma', 'Times New Roman', 'Trebuchet MS', 'Verdana'];
5
+ export declare const FONT_SIZES: readonly [8, 9, 10, 11, 12, 14, 16, 18, 20, 22, 24, 26, 28, 36, 48, 72];
6
+ /** The next size in Excel's list (grow) or the previous one (shrink). */
7
+ export declare function stepFontSize(size: number, grow: boolean): number;
8
+ export declare const style: (ctx: EditorContext, patch: StylePatch) => void;
9
+ /**
10
+ * Colour command args, as the ribbon's colour split sends them: a `Color` applies it; undefined,
11
+ * null or an `auto` colour clears it (Automatic font colour, No Fill).
12
+ */
13
+ export declare function pickColor(arg: unknown): Color | null;
14
+ export declare const BORDER_PRESETS: ReadonlyArray<readonly [BorderPreset, string, string]>;
15
+ export declare function fontCommands(): Command[];
16
+ /** `home.borders` accepts a preset name or `{ preset, style, color }`; nothing re-applies the last one. */
17
+ export declare function parseBorderArg(arg: unknown): {
18
+ preset: BorderPreset;
19
+ edge?: BorderEdge;
20
+ };
21
+ //# sourceMappingURL=font.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"font.d.ts","sourceRoot":"","sources":["../../../../src/xlsx/ui/commands/font.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAClF,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAInD,eAAO,MAAM,UAAU,YACtB,OAAO,EACP,OAAO,EACP,aAAa,EACb,SAAS,EACT,eAAe,EACf,SAAS,EACT,SAAS,EACT,gBAAgB,EAChB,eAAe,EACf,UAAU,EACV,YAAY,EACZ,QAAQ,EACR,aAAa,EACb,wBAAwB,EACxB,UAAU,EACV,SAAS,EACT,QAAQ,EACR,gBAAgB,EAChB,qBAAqB,EACrB,mBAAmB,EACnB,UAAU,EACV,QAAQ,EACR,iBAAiB,EACjB,cAAc,EACd,SAAS,CACA,CAAC;AAEX,eAAO,MAAM,UAAU,YAAI,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAU,CAAC;AAElG,yEAAyE;AACzE,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,MAAM,CAGhE;AAED,eAAO,MAAM,KAAK,QAAS,aAAa,SAAS,UAAU,KAAG,IAE7D,CAAC;AAEF;;;GAGG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,OAAO,GAAG,KAAK,GAAG,IAAI,CAGpD;AAoBD,eAAO,MAAM,cAAc,EAAE,aAAa,CAAC,SAAS,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,CAAC,CAejF,CAAC;AAIF,wBAAgB,YAAY,IAAI,OAAO,EAAE,CAyIxC;AAED,2GAA2G;AAC3G,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,GAAG;IAAE,MAAM,EAAE,YAAY,CAAC;IAAC,IAAI,CAAC,EAAE,UAAU,CAAA;CAAE,CAUxF"}
@@ -0,0 +1,15 @@
1
+ import { type FunctionInfo } from '../../index.js';
2
+ import type { Command } from '../commands.js';
3
+ import type { EditorContext } from '../context.js';
4
+ /** Function Library menus: [menu label, catalog category]. */
5
+ export declare const FUNCTION_MENUS: ReadonlyArray<readonly [label: string, category: string, glyph: string]>;
6
+ /** Categories under More Functions. */
7
+ export declare const MORE_FUNCTION_CATEGORIES: readonly ['Statistical', 'Engineering', 'Information'];
8
+ export declare const functionsIn: (category: string) => readonly FunctionInfo[];
9
+ /** Most recently used functions, newest first (Excel keeps ten). */
10
+ export declare const recentFunctions: () => readonly string[];
11
+ export declare function noteFunctionUse(name: string): void;
12
+ /** Starts editing the active cell with `=NAME(` (or writes `=NAME()` when no grid is mounted). */
13
+ export declare function insertFunctionCall(ctx: EditorContext, name: string, args?: string): void;
14
+ export declare function formulaCommands(): Command[];
15
+ //# sourceMappingURL=formulas.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formulas.d.ts","sourceRoot":"","sources":["../../../../src/xlsx/ui/commands/formulas.ts"],"names":[],"mappings":"AAEA,OAAO,EAAoB,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACrE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAInD,8DAA8D;AAC9D,eAAO,MAAM,cAAc,EAAE,aAAa,CACzC,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAQzD,CAAC;AAEF,uCAAuC;AACvC,eAAO,MAAM,wBAAwB,YAAI,aAAa,EAAE,aAAa,EAAE,aAAa,CAAU,CAAC;AAE/F,eAAO,MAAM,WAAW,aAAc,MAAM,KAAG,SAAS,YAAY,EACZ,CAAC;AAezD,oEAAoE;AACpE,eAAO,MAAM,eAAe,QAAO,SAAS,MAAM,EACqB,CAAC;AAExE,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAKlD;AAED,kGAAkG;AAClG,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAWxF;AAED,wBAAgB,eAAe,IAAI,OAAO,EAAE,CAoG3C"}
@@ -0,0 +1,3 @@
1
+ import type { Translations } from './types.js';
2
+ export declare const CORE_FEATURE_STRINGS: Translations;
3
+ //# sourceMappingURL=core-features.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core-features.d.ts","sourceRoot":"","sources":["../../../../../src/xlsx/ui/commands/i18n/core-features.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAwB/C,eAAO,MAAM,oBAAoB,EAAE,YA6PlC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { Translations } from './types.js';
2
+ export declare const FORMAT_CELLS_STRINGS: Translations;
3
+ //# sourceMappingURL=format-cells.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format-cells.d.ts","sourceRoot":"","sources":["../../../../../src/xlsx/ui/commands/i18n/format-cells.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,eAAO,MAAM,oBAAoB,EAAE,YA2alC,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { type CommandLocale, type Translations } from './types.js';
2
+ export declare const COMMAND_TABLES: readonly Translations[];
3
+ export declare const commandStrings: (locale: CommandLocale) => Record<string, string>;
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/xlsx/ui/commands/i18n/index.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,YAAY,EAAW,MAAM,YAAY,CAAC;AAE5E,eAAO,MAAM,cAAc,EAAE,SAAS,YAAY,EASjD,CAAC;AAEF,eAAO,MAAM,cAAc,WAAY,aAAa,KAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAC5C,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { Translations } from './types.js';
2
+ export declare const MESSAGE_STRINGS: Translations;
3
+ //# sourceMappingURL=messages.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../../../../src/xlsx/ui/commands/i18n/messages.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,eAAO,MAAM,eAAe,EAAE,YA4S7B,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { Translations } from './types.js';
2
+ export declare const NAVIGATION_STRINGS: Translations;
3
+ //# sourceMappingURL=navigation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"navigation.d.ts","sourceRoot":"","sources":["../../../../../src/xlsx/ui/commands/i18n/navigation.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,eAAO,MAAM,kBAAkB,EAAE,YA8YhC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { Translations } from './types.js';
2
+ export declare const RIBBON_HOME_STRINGS: Translations;
3
+ //# sourceMappingURL=ribbon-home.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ribbon-home.d.ts","sourceRoot":"","sources":["../../../../../src/xlsx/ui/commands/i18n/ribbon-home.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,eAAO,MAAM,mBAAmB,EAAE,YAgejC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { Translations } from './types.js';
2
+ export declare const RIBBON_TAB_STRINGS: Translations;
3
+ //# sourceMappingURL=ribbon-tabs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ribbon-tabs.d.ts","sourceRoot":"","sources":["../../../../../src/xlsx/ui/commands/i18n/ribbon-tabs.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,eAAO,MAAM,kBAAkB,EAAE,YA2WhC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { Translations } from './types.js';
2
+ export declare const RULES_STRINGS: Translations;
3
+ //# sourceMappingURL=rules.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rules.d.ts","sourceRoot":"","sources":["../../../../../src/xlsx/ui/commands/i18n/rules.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,eAAO,MAAM,aAAa,EAAE,YAy1B3B,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { Translations } from './types.js';
2
+ export declare const TOOLS_STRINGS: Translations;
3
+ //# sourceMappingURL=tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../../../../src/xlsx/ui/commands/i18n/tools.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,eAAO,MAAM,aAAa,EAAE,YAid3B,CAAC"}
@@ -0,0 +1,5 @@
1
+ export type Translations = Readonly<Record<string, readonly [fr: string, de: string, es: string, zhCN: string]>>;
2
+ export type CommandLocale = 'en' | 'fr' | 'de' | 'es' | 'zh-CN';
3
+ /** One locale's flat table (English is the identity map, as the locale coverage test expects). */
4
+ export declare function flatten(tables: readonly Translations[], locale: CommandLocale): Record<string, string>;
5
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/xlsx/ui/commands/i18n/types.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,YAAY,GAAG,QAAQ,CAClC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAC3E,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,OAAO,CAAC;AAShE,kGAAkG;AAClG,wBAAgB,OAAO,CACtB,MAAM,EAAE,SAAS,YAAY,EAAE,EAC/B,MAAM,EAAE,aAAa,GACnB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAMxB"}
@@ -0,0 +1,4 @@
1
+ export declare const SHEET_ICONS: Readonly<Record<string, string>>;
2
+ /** The registered name of a glyph. */
3
+ export declare const icon: (name: keyof typeof SHEET_ICONS) => string;
4
+ //# sourceMappingURL=icons.d.ts.map