ooxml-ui 0.27.2 → 0.28.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 (424) hide show
  1. package/dist/chunk-A56QI2OA.js +57 -0
  2. package/dist/{chunk-LE4FTRWB.js → chunk-AJ2J734X.js} +619 -3
  3. package/dist/{chunk-4PBFBPOH.js → chunk-G4ZGQYBH.js} +2 -1
  4. package/dist/controls.js +1 -1
  5. package/dist/docx/backstage-home.d.ts +3 -0
  6. package/dist/docx/backstage-options.d.ts +13 -0
  7. package/dist/docx/backstage-pages.d.ts +41 -0
  8. package/dist/docx/backstage.d.ts +18 -0
  9. package/dist/docx/binding-labels.d.ts +9 -0
  10. package/dist/docx/bookmark-commands.d.ts +20 -0
  11. package/dist/docx/bookmark-dialog.d.ts +4 -0
  12. package/dist/docx/borders-dialog.d.ts +4 -0
  13. package/dist/docx/canvas-measurer.d.ts +7 -0
  14. package/dist/docx/caption-commands.d.ts +31 -0
  15. package/dist/docx/caption-dialog.d.ts +5 -0
  16. package/dist/docx/change-case.d.ts +5 -0
  17. package/dist/docx/character-style-picker.d.ts +12 -0
  18. package/dist/docx/chrome-icons.d.ts +25 -0
  19. package/dist/docx/collaboration-model.d.ts +4 -0
  20. package/dist/docx/collaboration-session.d.ts +18 -0
  21. package/dist/docx/columns-dialog.d.ts +10 -0
  22. package/dist/docx/comment-commands.d.ts +21 -0
  23. package/dist/docx/comments-panel.d.ts +19 -0
  24. package/dist/docx/component.d.ts +70 -0
  25. package/dist/docx/context-menu-actions.d.ts +10 -0
  26. package/dist/docx/context-menu-items.d.ts +36 -0
  27. package/dist/docx/context-menu.d.ts +25 -0
  28. package/dist/docx/contextual-tabs.d.ts +8 -0
  29. package/dist/docx/cover-page.d.ts +14 -0
  30. package/dist/docx/cross-reference-commands.d.ts +30 -0
  31. package/dist/docx/cross-reference-dialog.d.ts +5 -0
  32. package/dist/docx/dialog-fields.d.ts +22 -0
  33. package/dist/docx/dialog-shell.d.ts +19 -0
  34. package/dist/docx/drop-cap-command.d.ts +20 -0
  35. package/dist/docx/drop-cap-dialog.d.ts +4 -0
  36. package/dist/docx/editor-attributes.d.ts +26 -0
  37. package/dist/docx/editor-chrome.d.ts +59 -0
  38. package/dist/docx/editor-commands.d.ts +7 -0
  39. package/dist/docx/editor-controls.d.ts +10 -0
  40. package/dist/docx/editor-core.d.ts +78 -0
  41. package/dist/docx/editor-host.d.ts +19 -0
  42. package/dist/docx/editor-interactions.d.ts +2 -0
  43. package/dist/docx/editor-plugins.d.ts +16 -0
  44. package/dist/docx/editor-presence.d.ts +20 -0
  45. package/dist/docx/editor-render.d.ts +3 -0
  46. package/dist/docx/editor-shell.d.ts +11 -0
  47. package/dist/docx/element-api.d.ts +35 -0
  48. package/dist/docx/equation-schema.d.ts +4 -0
  49. package/dist/docx/events.d.ts +45 -0
  50. package/dist/docx/field-update.d.ts +16 -0
  51. package/dist/docx/file-commands.d.ts +15 -0
  52. package/dist/docx/focus-view.d.ts +3 -0
  53. package/dist/docx/font-advanced.d.ts +18 -0
  54. package/dist/docx/font-dialog-tabs.d.ts +8 -0
  55. package/dist/docx/font-dialog.d.ts +11 -0
  56. package/dist/docx/font-format-batch.d.ts +3 -0
  57. package/dist/docx/font-format.d.ts +38 -0
  58. package/dist/docx/font-step.d.ts +5 -0
  59. package/dist/docx/font-sync.d.ts +9 -0
  60. package/dist/docx/format-dialogs.d.ts +37 -0
  61. package/dist/docx/format-painter.d.ts +12 -0
  62. package/dist/docx/go-to-panel.d.ts +4 -0
  63. package/dist/docx/go-to.d.ts +23 -0
  64. package/dist/docx/hard-break-command.d.ts +3 -0
  65. package/dist/docx/header-footer-commands.d.ts +19 -0
  66. package/dist/docx/header-footer-editor.d.ts +40 -0
  67. package/dist/docx/header-footer-link.d.ts +6 -0
  68. package/dist/docx/header-footer-navigation.d.ts +6 -0
  69. package/dist/docx/header-footer-position.d.ts +3 -0
  70. package/dist/docx/header-footer-ribbon.d.ts +9 -0
  71. package/dist/docx/header-footer-view.d.ts +5 -0
  72. package/dist/docx/heading-commands.d.ts +11 -0
  73. package/dist/docx/heading-navigator.d.ts +33 -0
  74. package/dist/docx/image-media.d.ts +29 -0
  75. package/dist/docx/indent-commands.d.ts +9 -0
  76. package/dist/docx/index.d.ts +23 -0
  77. package/dist/docx/inline-commands.d.ts +4 -0
  78. package/dist/docx/insert-controller.d.ts +46 -0
  79. package/dist/docx/insert-text-commands.d.ts +8 -0
  80. package/dist/docx/keyboard.d.ts +68 -0
  81. package/dist/docx/line-number-dialog.d.ts +11 -0
  82. package/dist/docx/link-commands.d.ts +31 -0
  83. package/dist/docx/link-dialog.d.ts +15 -0
  84. package/dist/docx/list-commands.d.ts +35 -0
  85. package/dist/docx/list-marker-display.d.ts +8 -0
  86. package/dist/docx/locales/columns.d.ts +15 -0
  87. package/dist/docx/locales/de-app.d.ts +8 -0
  88. package/dist/docx/locales/de-ribbon.d.ts +8 -0
  89. package/dist/docx/locales/de.d.ts +2 -0
  90. package/dist/docx/locales/drop-cap.d.ts +10 -0
  91. package/dist/docx/locales/en-app.d.ts +247 -0
  92. package/dist/docx/locales/en-ribbon.d.ts +394 -0
  93. package/dist/docx/locales/en.d.ts +746 -0
  94. package/dist/docx/locales/es-app.d.ts +8 -0
  95. package/dist/docx/locales/es-ribbon.d.ts +8 -0
  96. package/dist/docx/locales/es.d.ts +2 -0
  97. package/dist/docx/locales/font-advanced.d.ts +14 -0
  98. package/dist/docx/locales/fr-app.d.ts +2 -0
  99. package/dist/docx/locales/fr-ribbon.d.ts +2 -0
  100. package/dist/docx/locales/fr.d.ts +2 -0
  101. package/dist/docx/locales/ligatures.d.ts +5 -0
  102. package/dist/docx/locales/line-numbers.d.ts +16 -0
  103. package/dist/docx/locales/multilevel-list.d.ts +5 -0
  104. package/dist/docx/locales/navigation.d.ts +13 -0
  105. package/dist/docx/locales/table-properties.d.ts +29 -0
  106. package/dist/docx/locales/zh-CN-app.d.ts +8 -0
  107. package/dist/docx/locales/zh-CN-ribbon.d.ts +8 -0
  108. package/dist/docx/locales/zh-CN.d.ts +2 -0
  109. package/dist/docx/localization-strings.d.ts +745 -0
  110. package/dist/docx/localization.d.ts +24 -0
  111. package/dist/docx/model-adapter.d.ts +6 -0
  112. package/dist/docx/multilevel-list-dialog.d.ts +5 -0
  113. package/dist/docx/multilingual-commands.d.ts +14 -0
  114. package/dist/docx/multilingual-ribbon.d.ts +6 -0
  115. package/dist/docx/note-commands.d.ts +17 -0
  116. package/dist/docx/note-editor.d.ts +10 -0
  117. package/dist/docx/notes-view.d.ts +3 -0
  118. package/dist/docx/page-borders-dialog.d.ts +16 -0
  119. package/dist/docx/page-break-command.d.ts +5 -0
  120. package/dist/docx/page-controller.d.ts +66 -0
  121. package/dist/docx/page-navigator.d.ts +64 -0
  122. package/dist/docx/page-setup-change.d.ts +7 -0
  123. package/dist/docx/page-setup-dialog.d.ts +12 -0
  124. package/dist/docx/page-sync.d.ts +22 -0
  125. package/dist/docx/paragraph-decoration.d.ts +29 -0
  126. package/dist/docx/paragraph-dialog.d.ts +5 -0
  127. package/dist/docx/paragraph-format.d.ts +37 -0
  128. package/dist/docx/paragraph-styles.d.ts +5 -0
  129. package/dist/docx/paragraph-toggle-sync.d.ts +8 -0
  130. package/dist/docx/parts-controller.d.ts +52 -0
  131. package/dist/docx/picture-commands.d.ts +35 -0
  132. package/dist/docx/picture-dialog.d.ts +11 -0
  133. package/dist/docx/presence-decorations.d.ts +6 -0
  134. package/dist/docx/presence.d.ts +63 -0
  135. package/dist/docx/preview-run-styles.d.ts +4 -0
  136. package/dist/docx/preview-scale-fonts.d.ts +3 -0
  137. package/dist/docx/print-fragment-hit.d.ts +7 -0
  138. package/dist/docx/print-header-footer.d.ts +28 -0
  139. package/dist/docx/print-layout-cursor.d.ts +9 -0
  140. package/dist/docx/print-layout-view.d.ts +38 -0
  141. package/dist/docx/print-layout.d.ts +32 -0
  142. package/dist/docx/print-line-numbers.d.ts +13 -0
  143. package/dist/docx/print-page-borders.d.ts +18 -0
  144. package/dist/docx/print-table.d.ts +8 -0
  145. package/dist/docx/read-aloud.d.ts +11 -0
  146. package/dist/docx/review-commands.d.ts +24 -0
  147. package/dist/docx/review-controller.d.ts +30 -0
  148. package/dist/docx/review-display.d.ts +11 -0
  149. package/dist/docx/review-ribbon.d.ts +2 -0
  150. package/dist/docx/ribbon-action.d.ts +183 -0
  151. package/dist/docx/ribbon-behavior.d.ts +7 -0
  152. package/dist/docx/ribbon-color-grid.d.ts +11 -0
  153. package/dist/docx/ribbon-combo.d.ts +23 -0
  154. package/dist/docx/ribbon-commands.d.ts +13 -0
  155. package/dist/docx/ribbon-controls.d.ts +4 -0
  156. package/dist/docx/ribbon-gallery-menu.d.ts +26 -0
  157. package/dist/docx/ribbon-home.d.ts +4 -0
  158. package/dist/docx/ribbon-icons.d.ts +126 -0
  159. package/dist/docx/ribbon-keytips.d.ts +11 -0
  160. package/dist/docx/ribbon-overflow.d.ts +3 -0
  161. package/dist/docx/ribbon-parts.d.ts +53 -0
  162. package/dist/docx/ribbon-popover.d.ts +16 -0
  163. package/dist/docx/ribbon-router.d.ts +4 -0
  164. package/dist/docx/ribbon-tab-api.d.ts +29 -0
  165. package/dist/docx/ribbon-tabs.d.ts +2 -0
  166. package/dist/docx/ribbon-visibility.d.ts +8 -0
  167. package/dist/docx/ribbon.d.ts +5 -0
  168. package/dist/docx/ruler-sync.d.ts +7 -0
  169. package/dist/docx/ruler.d.ts +36 -0
  170. package/dist/docx/run-adapter.d.ts +9 -0
  171. package/dist/docx/run-marks.d.ts +4 -0
  172. package/dist/docx/run-scale.d.ts +11 -0
  173. package/dist/docx/run-styles.d.ts +19 -0
  174. package/dist/docx/scaled-paragraph-breaks.d.ts +7 -0
  175. package/dist/docx/schema.d.ts +6 -0
  176. package/dist/docx/script-state.d.ts +4 -0
  177. package/dist/docx/search-controller.d.ts +32 -0
  178. package/dist/docx/search-panel.d.ts +14 -0
  179. package/dist/docx/section-commands.d.ts +14 -0
  180. package/dist/docx/shell-labels.d.ts +3 -0
  181. package/dist/docx/shortcut-help.d.ts +16 -0
  182. package/dist/docx/smartart-node-view.d.ts +26 -0
  183. package/dist/docx/sort-commands.d.ts +9 -0
  184. package/dist/docx/spelling.d.ts +6 -0
  185. package/dist/docx/status-bar.d.ts +23 -0
  186. package/dist/docx/style-gallery.d.ts +22 -0
  187. package/dist/docx/styles/index.d.ts +6 -0
  188. package/dist/docx/styles-group.d.ts +7 -0
  189. package/dist/docx/styles-pane.d.ts +15 -0
  190. package/dist/docx/styles-popover.d.ts +24 -0
  191. package/dist/docx/tab-stops-view.d.ts +8 -0
  192. package/dist/docx/table-border-commands.d.ts +51 -0
  193. package/dist/docx/table-cell-alignment-dialog.d.ts +8 -0
  194. package/dist/docx/table-cell-margins-dialog.d.ts +9 -0
  195. package/dist/docx/table-commands.d.ts +6 -0
  196. package/dist/docx/table-model-adapter.d.ts +15 -0
  197. package/dist/docx/table-picker.d.ts +10 -0
  198. package/dist/docx/table-properties-dialog.d.ts +3 -0
  199. package/dist/docx/table-properties.d.ts +28 -0
  200. package/dist/docx/table-shading.d.ts +6 -0
  201. package/dist/docx/test-support.d.ts +24 -0
  202. package/dist/docx/text-box-commands.d.ts +17 -0
  203. package/dist/docx/text-box-dialog.d.ts +4 -0
  204. package/dist/docx/title-bar.d.ts +25 -0
  205. package/dist/docx/toc-commands.d.ts +17 -0
  206. package/dist/docx/toggle-commands.d.ts +8 -0
  207. package/dist/docx/track-changes-mode.d.ts +20 -0
  208. package/dist/docx/view-options.d.ts +10 -0
  209. package/dist/docx/watermark-commands.d.ts +9 -0
  210. package/dist/docx/watermark-dialog.d.ts +11 -0
  211. package/dist/docx/word-count-panel.d.ts +12 -0
  212. package/dist/docx/zoom-dialog.d.ts +16 -0
  213. package/dist/docx.js +21371 -0
  214. package/dist/edit-worker.js +18 -0
  215. package/dist/index.js +4 -60
  216. package/dist/parse-worker.js +16 -0
  217. package/dist/teams/app/bind.d.ts +28 -0
  218. package/dist/teams/app/controller.d.ts +13 -0
  219. package/dist/teams/app/index.d.ts +6 -0
  220. package/dist/teams/app/storage.d.ts +11 -0
  221. package/dist/teams/app/store.d.ts +4 -0
  222. package/dist/teams/app/teams-app.d.ts +110 -0
  223. package/dist/teams/app/teams-settings.d.ts +34 -0
  224. package/dist/teams/index.d.ts +1 -0
  225. package/dist/teams.js +3 -1
  226. package/dist/visio/arrowheads.d.ts +3 -0
  227. package/dist/visio/backstage.d.ts +15 -0
  228. package/dist/visio/binding.d.ts +27 -0
  229. package/dist/visio/controller.d.ts +71 -0
  230. package/dist/visio/edit-worker.d.ts +1 -0
  231. package/dist/visio/export-svg.d.ts +25 -0
  232. package/dist/visio/index.d.ts +14 -0
  233. package/dist/visio/office-ui.d.ts +2 -0
  234. package/dist/visio/paragraph-layout.d.ts +18 -0
  235. package/dist/visio/parse-worker.d.ts +1 -0
  236. package/dist/visio/print-snapshot.d.ts +87 -0
  237. package/dist/visio/render-fill.d.ts +2 -0
  238. package/dist/visio/render-foreign-vector-shape.d.ts +4 -0
  239. package/dist/visio/render-foreign-vector.d.ts +3 -0
  240. package/dist/visio/render-image.d.ts +4 -0
  241. package/dist/visio/render-resources.d.ts +10 -0
  242. package/dist/visio/render-svg.d.ts +17 -0
  243. package/dist/visio/render-text.d.ts +4 -0
  244. package/dist/visio/ribbon-action.d.ts +41 -0
  245. package/dist/visio/ribbon-home-format.d.ts +2 -0
  246. package/dist/visio/ribbon-home.d.ts +6 -0
  247. package/dist/visio/ribbon-keytips.d.ts +2 -0
  248. package/dist/visio/ribbon-other-tabs.d.ts +12 -0
  249. package/dist/visio/ribbon-parts.d.ts +60 -0
  250. package/dist/visio/ribbon-router.d.ts +19 -0
  251. package/dist/visio/ribbon-view.d.ts +5 -0
  252. package/dist/visio/ribbon.d.ts +13 -0
  253. package/dist/visio/shape-inspector.d.ts +5 -0
  254. package/dist/visio/shapes-window.d.ts +28 -0
  255. package/dist/visio/status-bar.d.ts +10 -0
  256. package/dist/visio/styles/index.d.ts +5 -0
  257. package/dist/visio/styles.d.ts +2 -0
  258. package/dist/visio/text-layout.d.ts +45 -0
  259. package/dist/visio/viewer-backstage.d.ts +33 -0
  260. package/dist/visio/viewer-canvas.d.ts +21 -0
  261. package/dist/visio/viewer-chrome.d.ts +22 -0
  262. package/dist/visio/viewer-commands.d.ts +34 -0
  263. package/dist/visio/viewer-context-menu.d.ts +8 -0
  264. package/dist/visio/viewer-draw-tool.d.ts +33 -0
  265. package/dist/visio/viewer-edit-controls.d.ts +12 -0
  266. package/dist/visio/viewer-element.d.ts +51 -0
  267. package/dist/visio/viewer-fit.d.ts +6 -0
  268. package/dist/visio/viewer-geometry-controls.d.ts +14 -0
  269. package/dist/visio/viewer-input.d.ts +10 -0
  270. package/dist/visio/viewer-layer-controls.d.ts +5 -0
  271. package/dist/visio/viewer-layers.d.ts +22 -0
  272. package/dist/visio/viewer-options.d.ts +22 -0
  273. package/dist/visio/viewer-pan-zoom.d.ts +19 -0
  274. package/dist/visio/viewer-ruler.d.ts +13 -0
  275. package/dist/visio/viewer-search.d.ts +18 -0
  276. package/dist/visio/viewer-share.d.ts +20 -0
  277. package/dist/visio/viewer-stencil.d.ts +6 -0
  278. package/dist/visio/viewer-tell-me.d.ts +4 -0
  279. package/dist/visio/worker-editor.d.ts +23 -0
  280. package/dist/visio/worker-parser.d.ts +13 -0
  281. package/dist/visio.js +6618 -0
  282. package/dist/xlsx/backstage/index.d.ts +14 -0
  283. package/dist/xlsx/backstage/pages-file.d.ts +6 -0
  284. package/dist/xlsx/backstage/pages-info.d.ts +10 -0
  285. package/dist/xlsx/backstage/pages-options.d.ts +7 -0
  286. package/dist/xlsx/backstage/parts.d.ts +53 -0
  287. package/dist/xlsx/backstage/properties-custom.d.ts +4 -0
  288. package/dist/xlsx/clipboard.d.ts +26 -0
  289. package/dist/xlsx/commands/index.d.ts +11 -0
  290. package/dist/xlsx/commands/insert-now.d.ts +4 -0
  291. package/dist/xlsx/commands/insert.d.ts +7 -0
  292. package/dist/xlsx/commands/register-icons.d.ts +2 -0
  293. package/dist/xlsx/commands/review.d.ts +6 -0
  294. package/dist/xlsx/commands/styles.d.ts +17 -0
  295. package/dist/xlsx/commands/test-support.d.ts +25 -0
  296. package/dist/xlsx/commands/view.d.ts +7 -0
  297. package/dist/xlsx/component.d.ts +66 -0
  298. package/dist/xlsx/context-menu/index.d.ts +2 -0
  299. package/dist/xlsx/context-menu/menu.d.ts +14 -0
  300. package/dist/xlsx/dialogs/cell-shift.d.ts +5 -0
  301. package/dist/xlsx/dialogs/cf-common.d.ts +29 -0
  302. package/dist/xlsx/dialogs/cf-manager.d.ts +8 -0
  303. package/dist/xlsx/dialogs/cf-quick.d.ts +10 -0
  304. package/dist/xlsx/dialogs/cf-rule-panels.d.ts +20 -0
  305. package/dist/xlsx/dialogs/cf-rule-scale.d.ts +3 -0
  306. package/dist/xlsx/dialogs/cf-rule.d.ts +13 -0
  307. package/dist/xlsx/dialogs/comments-list.d.ts +2 -0
  308. package/dist/xlsx/dialogs/create-names.d.ts +8 -0
  309. package/dist/xlsx/dialogs/create-table.d.ts +6 -0
  310. package/dist/xlsx/dialogs/data-validation.d.ts +3 -0
  311. package/dist/xlsx/dialogs/define-name.d.ts +9 -0
  312. package/dist/xlsx/dialogs/fields.d.ts +47 -0
  313. package/dist/xlsx/dialogs/fill-series.d.ts +10 -0
  314. package/dist/xlsx/dialogs/find-replace.d.ts +8 -0
  315. package/dist/xlsx/dialogs/format-cells/alignment-tab.d.ts +5 -0
  316. package/dist/xlsx/dialogs/format-cells/border-tab.d.ts +4 -0
  317. package/dist/xlsx/dialogs/format-cells/color-swatches.d.ts +10 -0
  318. package/dist/xlsx/dialogs/format-cells/fill-tab.d.ts +11 -0
  319. package/dist/xlsx/dialogs/format-cells/font-tab.d.ts +2 -0
  320. package/dist/xlsx/dialogs/format-cells/index.d.ts +6 -0
  321. package/dist/xlsx/dialogs/format-cells/number-tab.d.ts +7 -0
  322. package/dist/xlsx/dialogs/format-cells/protection-tab.d.ts +2 -0
  323. package/dist/xlsx/dialogs/format-cells/tab-color.d.ts +6 -0
  324. package/dist/xlsx/dialogs/frame.d.ts +27 -0
  325. package/dist/xlsx/dialogs/go-to.d.ts +12 -0
  326. package/dist/xlsx/dialogs/help-dialogs.d.ts +5 -0
  327. package/dist/xlsx/dialogs/host.d.ts +6 -0
  328. package/dist/xlsx/dialogs/hyperlink.d.ts +16 -0
  329. package/dist/xlsx/dialogs/index.d.ts +2 -0
  330. package/dist/xlsx/dialogs/insert-chart.d.ts +7 -0
  331. package/dist/xlsx/dialogs/insert-function.d.ts +10 -0
  332. package/dist/xlsx/dialogs/move-copy-sheet.d.ts +5 -0
  333. package/dist/xlsx/dialogs/name-manager.d.ts +9 -0
  334. package/dist/xlsx/dialogs/package-password.d.ts +3 -0
  335. package/dist/xlsx/dialogs/page-setup-tabs.d.ts +23 -0
  336. package/dist/xlsx/dialogs/page-setup.d.ts +6 -0
  337. package/dist/xlsx/dialogs/paste-special.d.ts +3 -0
  338. package/dist/xlsx/dialogs/prompts.d.ts +42 -0
  339. package/dist/xlsx/dialogs/protect-sheet.d.ts +8 -0
  340. package/dist/xlsx/dialogs/register-navigation.d.ts +2 -0
  341. package/dist/xlsx/dialogs/register-rules.d.ts +2 -0
  342. package/dist/xlsx/dialogs/register-tools.d.ts +2 -0
  343. package/dist/xlsx/dialogs/remove-duplicates.d.ts +2 -0
  344. package/dist/xlsx/dialogs/simple.d.ts +2 -0
  345. package/dist/xlsx/dialogs/sort-dialog.d.ts +6 -0
  346. package/dist/xlsx/dialogs/statistics.d.ts +12 -0
  347. package/dist/xlsx/dialogs/styles.d.ts +1 -0
  348. package/dist/xlsx/dialogs/symbol.d.ts +6 -0
  349. package/dist/xlsx/dialogs/text-to-columns.d.ts +9 -0
  350. package/dist/xlsx/dialogs/zoom.d.ts +2 -0
  351. package/dist/xlsx/editor-attributes.d.ts +26 -0
  352. package/dist/xlsx/editor-core.d.ts +91 -0
  353. package/dist/xlsx/editor-files.d.ts +28 -0
  354. package/dist/xlsx/editor-shell.d.ts +29 -0
  355. package/dist/xlsx/element-api.d.ts +34 -0
  356. package/dist/xlsx/events.d.ts +64 -0
  357. package/dist/xlsx/file-commands.d.ts +24 -0
  358. package/dist/xlsx/formula-bar/formula-input.d.ts +11 -0
  359. package/dist/xlsx/formula-bar/index.d.ts +3 -0
  360. package/dist/xlsx/formula-bar/name-box.d.ts +10 -0
  361. package/dist/xlsx/formula-bar/styles.d.ts +1 -0
  362. package/dist/xlsx/grid/alert.d.ts +4 -0
  363. package/dist/xlsx/grid/cell-editor.d.ts +29 -0
  364. package/dist/xlsx/grid/cell-layer.d.ts +14 -0
  365. package/dist/xlsx/grid/dom.d.ts +19 -0
  366. package/dist/xlsx/grid/drawing-keys.d.ts +7 -0
  367. package/dist/xlsx/grid/drawings.d.ts +12 -0
  368. package/dist/xlsx/grid/formula-field.d.ts +11 -0
  369. package/dist/xlsx/grid/function-assist.d.ts +16 -0
  370. package/dist/xlsx/grid/grid-a11y.d.ts +12 -0
  371. package/dist/xlsx/grid/grid-commands.d.ts +19 -0
  372. package/dist/xlsx/grid/grid-keys.d.ts +19 -0
  373. package/dist/xlsx/grid/grid-menus.d.ts +8 -0
  374. package/dist/xlsx/grid/grid-pointer.d.ts +16 -0
  375. package/dist/xlsx/grid/grid-selection.d.ts +22 -0
  376. package/dist/xlsx/grid/grid-view.d.ts +75 -0
  377. package/dist/xlsx/grid/gridlines.d.ts +7 -0
  378. package/dist/xlsx/grid/header-resize.d.ts +8 -0
  379. package/dist/xlsx/grid/headers.d.ts +9 -0
  380. package/dist/xlsx/grid/index.d.ts +8 -0
  381. package/dist/xlsx/grid/indicators.d.ts +5 -0
  382. package/dist/xlsx/grid/measure.d.ts +9 -0
  383. package/dist/xlsx/grid/pane-chrome.d.ts +22 -0
  384. package/dist/xlsx/grid/point-mode.d.ts +27 -0
  385. package/dist/xlsx/grid/selection-layer.d.ts +32 -0
  386. package/dist/xlsx/grid/smartart.d.ts +10 -0
  387. package/dist/xlsx/grid/styles.d.ts +1 -0
  388. package/dist/xlsx/grid/test-context.d.ts +14 -0
  389. package/dist/xlsx/grid/validation-list.d.ts +13 -0
  390. package/dist/xlsx/index.d.ts +10 -0
  391. package/dist/xlsx/keyboard.d.ts +41 -0
  392. package/dist/xlsx/modules.d.ts +4 -0
  393. package/dist/xlsx/print.d.ts +22 -0
  394. package/dist/xlsx/ribbon/caption.d.ts +4 -0
  395. package/dist/xlsx/ribbon/color-grid.d.ts +18 -0
  396. package/dist/xlsx/ribbon/controls-input.d.ts +22 -0
  397. package/dist/xlsx/ribbon/controls.d.ts +28 -0
  398. package/dist/xlsx/ribbon/icons.d.ts +8 -0
  399. package/dist/xlsx/ribbon/keytips.d.ts +12 -0
  400. package/dist/xlsx/ribbon/overflow.d.ts +3 -0
  401. package/dist/xlsx/ribbon/popover.d.ts +30 -0
  402. package/dist/xlsx/ribbon/ribbon.d.ts +24 -0
  403. package/dist/xlsx/ribbon/tabs/contextual.d.ts +3 -0
  404. package/dist/xlsx/ribbon/tabs/formulas-data.d.ts +3 -0
  405. package/dist/xlsx/ribbon/tabs/home-groups.d.ts +6 -0
  406. package/dist/xlsx/ribbon/tabs/home.d.ts +3 -0
  407. package/dist/xlsx/ribbon/tabs/index.d.ts +2 -0
  408. package/dist/xlsx/ribbon/tabs/insert-layout.d.ts +3 -0
  409. package/dist/xlsx/ribbon/visibility.d.ts +1 -0
  410. package/dist/xlsx/sheet-tabs/drag.d.ts +12 -0
  411. package/dist/xlsx/sheet-tabs/index.d.ts +4 -0
  412. package/dist/xlsx/sheet-tabs/rename.d.ts +8 -0
  413. package/dist/xlsx/sheet-tabs/render.d.ts +15 -0
  414. package/dist/xlsx/sheet-tabs/styles.d.ts +1 -0
  415. package/dist/xlsx/shell-commands.d.ts +13 -0
  416. package/dist/xlsx/shortcut-help.d.ts +15 -0
  417. package/dist/xlsx/status-bar.d.ts +26 -0
  418. package/dist/xlsx/test-support/shell.d.ts +19 -0
  419. package/dist/xlsx/theme/index.d.ts +5 -0
  420. package/dist/xlsx/theme/styles.d.ts +7 -0
  421. package/dist/xlsx/title-bar.d.ts +17 -0
  422. package/dist/xlsx/toast.d.ts +8 -0
  423. package/dist/xlsx.js +14188 -0
  424. package/package.json +27 -2
@@ -0,0 +1,29 @@
1
+ import { type BeginOptions, type CommitMove, type EditBridge, type EditDriver } from 'ooxml-core/xlsx/ui';
2
+ import { type FormulaField } from './formula-field.js';
3
+ import { type FunctionAssist } from './function-assist.js';
4
+ import type { GridView } from './grid-view.js';
5
+ import { PointMode } from './point-mode.js';
6
+ export declare class CellEditor implements EditDriver {
7
+ #private;
8
+ readonly host: HTMLDivElement;
9
+ readonly field: FormulaField;
10
+ readonly assist: FunctionAssist;
11
+ readonly bridge: EditBridge;
12
+ readonly point: PointMode;
13
+ constructor(view: GridView, afterCommit: (move: CommitMove) => void);
14
+ get editing(): boolean;
15
+ focus(): void;
16
+ begin(options: BeginOptions): boolean;
17
+ changed(source: 'cell' | 'bar'): void;
18
+ /** Writes text and caret from the grid side (point mode, F4) and tells the formula bar. */
19
+ setText(text: string, caret: number): void;
20
+ setMode(mode: 'enter' | 'edit' | 'point'): void;
21
+ commit(move: CommitMove, allSelected: boolean): boolean;
22
+ cancel(): void;
23
+ /** Leaves edit mode without writing. */
24
+ end(): void;
25
+ /** Keeps the editor over its cell, growing right and down with its text like Excel. */
26
+ position(): void;
27
+ describe(): string;
28
+ destroy(): void;
29
+ }
@@ -0,0 +1,14 @@
1
+ import type { CellItem } from 'ooxml-core/xlsx/ui';
2
+ export declare function itemSignature(item: CellItem, zoom: number): string;
3
+ export declare class CellLayer {
4
+ #private;
5
+ readonly element: HTMLDivElement;
6
+ constructor(doc: Document);
7
+ get size(): number;
8
+ /** Paints `items`; nodes not in the list go back to the pool. */
9
+ render(items: readonly CellItem[], zoom: number): void;
10
+ nodeAt(row: number, col: number): HTMLElement | undefined;
11
+ clear(): void;
12
+ }
13
+ /** Writes a cell node from scratch (only called when its signature changed). */
14
+ export declare function paintCell(doc: Document, node: HTMLElement, item: CellItem, zoom: number): void;
@@ -0,0 +1,19 @@
1
+ /** Creates an element with an optional class name and attributes. */
2
+ export declare function h<K extends keyof HTMLElementTagNameMap>(doc: Document, tag: K, className?: string, attrs?: Record<string, string>): HTMLElementTagNameMap[K];
3
+ /** Sets a style property only when it changed (cheap repaint of recycled nodes). */
4
+ export declare function setStyle(node: HTMLElement, name: string, value: string): void;
5
+ /** Sets pixel geometry in one go. */
6
+ export declare function place(node: HTMLElement, left: number, top: number, width: number, height: number): void;
7
+ /** Toggles a class without touching the DOM when nothing changes. */
8
+ export declare function toggleClass(node: Element, name: string, on: boolean): void;
9
+ /** Parses SVG markup generated by this package or the core (chart and icon painters, which escape text). */
10
+ export declare function svgNode(doc: Document, markup: string): Element;
11
+ /** The window a node lives in (falls back to the global one). */
12
+ export declare const viewOf: (node: Node) => (Window & typeof globalThis) | null;
13
+ /** requestAnimationFrame with a timer fallback (jsdom, background tabs). */
14
+ export declare function nextFrame(node: Node, fn: () => void): () => void;
15
+ /**
16
+ * Adds a `<style data-xg-style="id">` to the shadow root once. Each UI module (grid, formula bar,
17
+ * sheet tabs, menus) ships its own CSS this way, using the `--xve-*` theme tokens.
18
+ */
19
+ export declare function ensureStyle(root: ShadowRoot | HTMLElement, id: string, css: string): void;
@@ -0,0 +1,7 @@
1
+ import type { EditorContext } from 'ooxml-core/xlsx/ui';
2
+ import type { DrawingLayer } from './drawings.js';
3
+ /**
4
+ * Keys while a picture or chart is selected: Delete removes it, Escape returns to the cells,
5
+ * arrows nudge it. Returns true when the key was handled.
6
+ */
7
+ export declare function drawingKeyDown(ctx: EditorContext, layer: DrawingLayer, event: KeyboardEvent): boolean;
@@ -0,0 +1,12 @@
1
+ import type { GridView } from './grid-view.js';
2
+ export declare class DrawingLayer {
3
+ #private;
4
+ constructor(view: GridView);
5
+ /** Charts depend on cell values: bump after model changes so they redraw. */
6
+ invalidate(): void;
7
+ render(): void;
8
+ deselect(): void;
9
+ /** Moves the selected drawing by a few pixels (arrow keys); false when nothing is selected. */
10
+ nudge(dx: number, dy: number): boolean;
11
+ destroy(): void;
12
+ }
@@ -0,0 +1,11 @@
1
+ import { type ColoredReference } from 'ooxml-core/xlsx';
2
+ export interface FormulaField {
3
+ readonly root: HTMLElement;
4
+ readonly input: HTMLTextAreaElement;
5
+ /** Sets the text (and caret) without firing input events. */
6
+ setText(text: string, caret?: number): void;
7
+ /** Repaints the backdrop from the current input value. */
8
+ refresh(): ColoredReference[];
9
+ references(): ColoredReference[];
10
+ }
11
+ export declare function createFormulaField(doc: Document, className: string, label: string): FormulaField;
@@ -0,0 +1,16 @@
1
+ import { type FunctionInfo } from 'ooxml-core/xlsx';
2
+ import type { FormulaField } from './formula-field.js';
3
+ export interface FunctionAssist {
4
+ update(field: FormulaField, anchor: {
5
+ left: number;
6
+ top: number;
7
+ }): void;
8
+ /** True when the key was consumed by the popup. */
9
+ handleKey(event: KeyboardEvent, field: FormulaField): boolean;
10
+ close(): void;
11
+ isOpen(): boolean;
12
+ destroy(): void;
13
+ }
14
+ type Translate = (key: string, vars?: Record<string, string | number>) => string;
15
+ export declare function createFunctionAssist(doc: Document, container: HTMLElement, t: Translate, catalog?: readonly FunctionInfo[]): FunctionAssist;
16
+ export {};
@@ -0,0 +1,12 @@
1
+ import type { Selection } from 'ooxml-core/xlsx/ui';
2
+ import type { GridView } from './grid-view.js';
3
+ export declare function describeSelection(view: GridView, selection: Selection): string;
4
+ export declare class GridA11y {
5
+ #private;
6
+ readonly live: HTMLDivElement;
7
+ constructor(view: GridView, input: HTMLTextAreaElement);
8
+ readonly input: HTMLTextAreaElement;
9
+ /** Updates the sink label and announces (debounced) after a selection change. */
10
+ update(selection: Selection, editing: boolean): void;
11
+ destroy(): void;
12
+ }
@@ -0,0 +1,19 @@
1
+ import { type CellRange, type Worksheet } from 'ooxml-core/xlsx';
2
+ import type { GridClipboard } from '../clipboard.js';
3
+ import type { Command } from 'ooxml-core/xlsx/ui';
4
+ import type { Selection } from 'ooxml-core/xlsx/ui';
5
+ export interface CommandHost {
6
+ clipboard: GridClipboard;
7
+ cancelEdit(): void;
8
+ isEditing(): boolean;
9
+ selectAll(): void;
10
+ openValidationList(): boolean;
11
+ }
12
+ /** Ctrl+A: the current region first, everything when the region is already selected. */
13
+ export declare function currentRegionOrAll(sheet: Worksheet, selection: Selection): CellRange | undefined;
14
+ /** Fill down / right: the first row (column) of each range, or the one before a single row. */
15
+ export declare function fillPlan(range: CellRange, axis: 'down' | 'right'): {
16
+ source: CellRange;
17
+ target: CellRange;
18
+ } | undefined;
19
+ export declare function gridCommands(host: CommandHost): Command[];
@@ -0,0 +1,19 @@
1
+ import type { NavigationKey } from 'ooxml-core/xlsx';
2
+ import type { CellEditor } from './cell-editor.js';
3
+ import type { GridSelection } from './grid-selection.js';
4
+ import type { GridView } from './grid-view.js';
5
+ export interface KeyHost {
6
+ view: GridView;
7
+ selection: GridSelection;
8
+ editor: CellEditor;
9
+ openCellMenu(): void;
10
+ openValidationList(): boolean;
11
+ clearMarquee(): boolean;
12
+ prepareCopy(cut: boolean): void;
13
+ }
14
+ /** The navigation key for an arrow / Home / End / Page key event, or undefined. */
15
+ export declare function navigationKey(event: Pick<KeyboardEvent, 'key' | 'ctrlKey' | 'metaKey'>): NavigationKey | undefined;
16
+ /** Ready mode (not editing). */
17
+ export declare function readyKeyDown(host: KeyHost, event: KeyboardEvent): void;
18
+ /** Edit / Enter / Point mode keys of the in-cell editor. */
19
+ export declare function editorKeyDown(host: KeyHost, event: KeyboardEvent): void;
@@ -0,0 +1,8 @@
1
+ import type { GridView } from './grid-view.js';
2
+ export type MenuKind = 'cell' | 'row' | 'col';
3
+ /** Which menu the current selection calls for (whole rows / columns get the header menus). */
4
+ export declare function menuKindFor(view: GridView): MenuKind;
5
+ export declare function openGridMenu(view: GridView, kind: MenuKind, x: number, y: number, refocus: () => void): void;
6
+ /** Opens the menu for the active cell's position (keyboard). */
7
+ export declare function openMenuAtActive(view: GridView, refocus: () => void): void;
8
+ export declare function wireMenus(view: GridView, refocus: () => void): () => void;
@@ -0,0 +1,16 @@
1
+ import { type CellAddress, type CellRange } from 'ooxml-core/xlsx';
2
+ import type { CellEditor } from './cell-editor.js';
3
+ import type { GridSelection } from './grid-selection.js';
4
+ import type { GridView } from './grid-view.js';
5
+ import { spanRange } from 'ooxml-core/xlsx/ui';
6
+ export interface PointerHost {
7
+ view: GridView;
8
+ selection: GridSelection;
9
+ editor: CellEditor;
10
+ followLink(row: number, col: number): boolean;
11
+ fill(source: CellRange, target: CellRange): void;
12
+ }
13
+ /** The range a fill-handle drag to `at` produces (extends the source along one axis). */
14
+ export declare function fillTarget(source: CellRange, at: CellAddress): CellRange | undefined;
15
+ export declare function wirePointer(host: PointerHost): () => void;
16
+ export { spanRange };
@@ -0,0 +1,22 @@
1
+ import { type CellAddress, type NavigationKey } from 'ooxml-core/xlsx';
2
+ import type { Selection } from 'ooxml-core/xlsx/ui';
3
+ import type { GridView } from './grid-view.js';
4
+ export declare class GridSelection {
5
+ #private;
6
+ constructor(view: GridView);
7
+ get(): Selection;
8
+ /** Replaces the selection; `reveal` scrolls a cell into view. */
9
+ set(next: Selection, reveal?: CellAddress): void;
10
+ /** Visible rows per page in the scrolling pane (PageUp/PageDown). */
11
+ pageRows(): number;
12
+ cellAt(at: CellAddress): void;
13
+ /** Arrow-like movement; with `extend` the moving corner moves and the active cell stays. */
14
+ move(key: NavigationKey, extend: boolean): void;
15
+ /** Enter / Tab: walk the selection when it has several cells, else move one cell. */
16
+ advance(direction: 'down' | 'up' | 'right' | 'left'): void;
17
+ rows(r1: number, r2: number, add?: boolean): void;
18
+ cols(c1: number, c2: number, add?: boolean): void;
19
+ all(): void;
20
+ firstVisibleRow(): number;
21
+ firstVisibleCol(): number;
22
+ }
@@ -0,0 +1,75 @@
1
+ import { type CellRange, type CellView, type GridMetrics, type Workbook, type Worksheet } from 'ooxml-core/xlsx';
2
+ import type { EditorContext } from 'ooxml-core/xlsx/ui';
3
+ import { CellLayer } from './cell-layer.js';
4
+ import { GridGeometry, type Hit, type Quadrant } from 'ooxml-core/xlsx/ui';
5
+ import { GridlineLayer } from './gridlines.js';
6
+ import { type HeaderPane } from './pane-chrome.js';
7
+ import { type TextMeasurer } from './measure.js';
8
+ import { SelectionLayer, type OverlayState } from './selection-layer.js';
9
+ interface QuadrantNodes {
10
+ box: HTMLDivElement;
11
+ plane: HTMLDivElement;
12
+ cells: CellLayer;
13
+ lines: GridlineLayer;
14
+ overlay: SelectionLayer;
15
+ drawings: HTMLDivElement;
16
+ }
17
+ export type PaintHook = (view: GridView) => void;
18
+ export declare class GridView {
19
+ #private;
20
+ readonly ctx: EditorContext;
21
+ readonly doc: Document;
22
+ readonly root: HTMLDivElement;
23
+ readonly scroller: HTMLDivElement;
24
+ readonly space: HTMLDivElement;
25
+ readonly view: HTMLDivElement;
26
+ readonly corner: HTMLDivElement;
27
+ readonly quads: Record<Quadrant, QuadrantNodes>;
28
+ readonly colHeaders: {
29
+ frozen: HeaderPane;
30
+ scroll: HeaderPane;
31
+ };
32
+ readonly rowHeaders: {
33
+ frozen: HeaderPane;
34
+ scroll: HeaderPane;
35
+ };
36
+ readonly measurer: TextMeasurer;
37
+ readonly overlay: Pick<OverlayState, 'copyRange' | 'references' | 'fillPreview'>;
38
+ readonly hooks: Set<PaintHook>;
39
+ metrics: GridMetrics;
40
+ geometry: GridGeometry;
41
+ extentRow: number;
42
+ extentCol: number;
43
+ constructor(ctx: EditorContext, container: HTMLElement);
44
+ workbook(): Workbook | undefined;
45
+ sheetIndex(): number;
46
+ sheet(): Worksheet | undefined;
47
+ zoom(): number;
48
+ setZoom(percent: number): void;
49
+ /** Recreates metrics (structure, sizes, zoom or sheet changed) and repaints. */
50
+ rebuild(): void;
51
+ /** Drops cached cell views (after any model change) and schedules a repaint. */
52
+ invalidate(): void;
53
+ clearViews(): void;
54
+ /** Grows the scroll extent so `row`/`col` (and some margin) are reachable. */
55
+ ensureExtent(row: number, col: number): void;
56
+ headerSizes(): {
57
+ w: number;
58
+ h: number;
59
+ };
60
+ schedule(): void;
61
+ /** The cached core view of a cell; null when it paints nothing. */
62
+ cellViewAt(row: number, col: number): CellView | null;
63
+ /** The active cell's range, merge-expanded. */
64
+ activeRange(): CellRange;
65
+ clientToView(clientX: number, clientY: number): {
66
+ x: number;
67
+ y: number;
68
+ };
69
+ hitClient(clientX: number, clientY: number): Hit;
70
+ /** Scrolls so a cell is fully visible in the scrolling pane. */
71
+ reveal(row: number, col: number): void;
72
+ paint(): void;
73
+ destroy(): void;
74
+ }
75
+ export {};
@@ -0,0 +1,7 @@
1
+ import type { GridMetrics } from 'ooxml-core/xlsx';
2
+ export declare class GridlineLayer {
3
+ #private;
4
+ readonly element: HTMLDivElement;
5
+ constructor(doc: Document);
6
+ render(metrics: GridMetrics, rows: readonly number[], cols: readonly number[], visible: boolean): void;
7
+ }
@@ -0,0 +1,8 @@
1
+ import type { GridView } from './grid-view.js';
2
+ /** The indices a resize applies to: every fully selected row/column when `index` is one of them. */
3
+ export declare function resizeTargets(view: GridView, axis: 'row' | 'col', index: number): number[];
4
+ /** Pixels at the current zoom to a file size (characters for columns, points for rows). */
5
+ export declare function toFileSize(view: GridView, axis: 'row' | 'col', px: number): number;
6
+ export declare function startHeaderResize(view: GridView, axis: 'row' | 'col', index: number, event: PointerEvent): void;
7
+ /** Double-click on a header border: fit the column(s) to their content, or the row(s) height. */
8
+ export declare function autoFit(view: GridView, axis: 'row' | 'col', index: number): void;
@@ -0,0 +1,9 @@
1
+ import { type GridMetrics } from 'ooxml-core/xlsx';
2
+ export type HeaderAxis = 'row' | 'col';
3
+ export type HeaderState = 'none' | 'part' | 'full';
4
+ export declare class HeaderLayer {
5
+ #private;
6
+ readonly element: HTMLDivElement;
7
+ constructor(doc: Document, axis: HeaderAxis);
8
+ render(metrics: GridMetrics, indices: readonly number[], state: (index: number) => HeaderState, fontPx: number): void;
9
+ }
@@ -0,0 +1,8 @@
1
+ import type { EditorContext, GridController } from 'ooxml-core/xlsx/ui';
2
+ export { editBridge, type EditBridge, type EditMode, type EditState } from 'ooxml-core/xlsx/ui';
3
+ /** The GridController plus the grid's status-bar mode. */
4
+ export interface GridControllerExt extends GridController {
5
+ /** Excel's mode indicator: 'ready' | 'enter' | 'edit' | 'point'. */
6
+ mode(): string;
7
+ }
8
+ export declare function mountGrid(ctx: EditorContext, container: HTMLElement): () => void;
@@ -0,0 +1,5 @@
1
+ import type { GridSelection } from './grid-selection.js';
2
+ import type { GridView } from './grid-view.js';
3
+ export declare function wireTooltips(view: GridView): () => void;
4
+ /** Follows the hyperlink of a cell; false when the cell has none. */
5
+ export declare function followLink(view: GridView, selection: GridSelection, row: number, col: number): boolean;
@@ -0,0 +1,9 @@
1
+ import type { FontView } from 'ooxml-core/xlsx';
2
+ export interface TextMeasurer {
3
+ /** Width in CSS pixels of `text` in a CSS font shorthand. */
4
+ measure(text: string, font: string): number;
5
+ /** Width at 100% zoom of `text` in a core font view (for `autoFitColumnWidth`). */
6
+ measureFont(text: string, font: FontView): number;
7
+ }
8
+ export declare function estimateWidth(text: string, font: string): number;
9
+ export declare function createTextMeasurer(doc: Document | undefined): TextMeasurer;
@@ -0,0 +1,22 @@
1
+ import type { GridMetrics, VisibleCells } from 'ooxml-core/xlsx';
2
+ import type { Selection } from 'ooxml-core/xlsx/ui';
3
+ import type { GridGeometry } from 'ooxml-core/xlsx/ui';
4
+ import type { HeaderLayer } from './headers.js';
5
+ export interface HeaderPane {
6
+ box: HTMLDivElement;
7
+ layer: HeaderLayer;
8
+ }
9
+ export interface ChromeNodes {
10
+ colHeaders: {
11
+ frozen: HeaderPane;
12
+ scroll: HeaderPane;
13
+ };
14
+ rowHeaders: {
15
+ frozen: HeaderPane;
16
+ scroll: HeaderPane;
17
+ };
18
+ corner: HTMLDivElement;
19
+ freezeH: HTMLDivElement;
20
+ freezeV: HTMLDivElement;
21
+ }
22
+ export declare function paintChrome(nodes: ChromeNodes, g: GridGeometry, metrics: GridMetrics, vis: VisibleCells, selection: Selection): void;
@@ -0,0 +1,27 @@
1
+ import { type CellAddress, type NavigationKey } from 'ooxml-core/xlsx';
2
+ import type { GridView } from './grid-view.js';
3
+ export interface PointEditor {
4
+ readonly bridge: {
5
+ state(): {
6
+ editing: boolean;
7
+ text: string;
8
+ caret: number;
9
+ sheet: number;
10
+ address: CellAddress;
11
+ };
12
+ };
13
+ setText(text: string, caret: number): void;
14
+ setMode(mode: 'enter' | 'edit' | 'point'): void;
15
+ }
16
+ export declare class PointMode {
17
+ #private;
18
+ constructor(view: GridView, editor: PointEditor);
19
+ reset(): void;
20
+ get active(): boolean;
21
+ /** True when a pointed reference would be inserted (or replace the current one). */
22
+ canPoint(): boolean;
23
+ /** Arrow key in point mode; Shift extends the pointed range. */
24
+ move(key: NavigationKey, extend: boolean): boolean;
25
+ /** Mouse pointing: `anchor` where the press started, `at` where the pointer is. */
26
+ pointRange(anchor: CellAddress, at: CellAddress): boolean;
27
+ }
@@ -0,0 +1,32 @@
1
+ import type { CellRange, GridMetrics } from 'ooxml-core/xlsx';
2
+ import type { Selection } from 'ooxml-core/xlsx/ui';
3
+ export interface OverlayState {
4
+ selection: Selection | undefined;
5
+ /** The cell range the active cell covers (merge-sized). */
6
+ activeRange: CellRange | undefined;
7
+ copyRange?: CellRange | undefined;
8
+ references?: {
9
+ range: CellRange;
10
+ color: string;
11
+ }[] | undefined;
12
+ fillPreview?: CellRange | undefined;
13
+ showHandle: boolean;
14
+ /** Last row/column worth painting (whole-column ranges are clipped to it). */
15
+ maxRow: number;
16
+ maxCol: number;
17
+ }
18
+ interface Rect {
19
+ x: number;
20
+ y: number;
21
+ w: number;
22
+ h: number;
23
+ }
24
+ export declare class SelectionLayer {
25
+ #private;
26
+ readonly element: HTMLDivElement;
27
+ constructor(doc: Document);
28
+ render(metrics: GridMetrics, state: OverlayState): void;
29
+ }
30
+ /** clip-path polygon showing `outer` minus `inner` (both in plane pixels). */
31
+ export declare function cutout(outer: Rect, inner: Rect): string;
32
+ export {};
@@ -0,0 +1,10 @@
1
+ import { type SmartArtObject, type ThemePalette } from 'ooxml-core/xlsx';
2
+ import { type SchemeColors } from '../../index';
3
+ import type { EditorContext } from 'ooxml-core/xlsx/ui';
4
+ /** The workbook theme as the scheme colours the SmartArt drawing refers to (`#rrggbb`). */
5
+ export declare function smartArtSchemeColors(theme: ThemePalette | undefined): SchemeColors;
6
+ /**
7
+ * Paints a SmartArt frame into `node`. The shared SVG scales to the positioned frame,
8
+ * following both zoom and drawing resize without clipping the original cached extent.
9
+ */
10
+ export declare function paintSmartArt(ctx: EditorContext, node: HTMLElement, obj: SmartArtObject, theme: ThemePalette | undefined): void;
@@ -0,0 +1 @@
1
+ export declare const GRID_CSS = "\n.xg-root [hidden]{display:none!important}\n.xg-root{position:relative;overflow:hidden;width:100%;height:100%;min-height:0;outline:none;\n\tbackground:var(--xve-sheet-bg,#fff);color:#000;font-family:\"Segoe UI\",system-ui,sans-serif;\n\t-webkit-user-select:none;user-select:none;contain:strict}\n.xg-scroller{position:absolute;inset:0;overflow:auto;overscroll-behavior:contain;touch-action:pan-x pan-y}\n.xg-space{position:relative}\n.xg-view{position:sticky;left:0;top:0;overflow:hidden;cursor:cell;touch-action:pan-x pan-y}\n.xg-q,.xg-hbox{position:absolute;overflow:hidden}\n.xg-plane{position:absolute;left:0;top:0;will-change:transform}\n.xg-cells,.xg-lines,.xg-overlay,.xg-drawings{position:absolute;left:0;top:0}\n.xg-gl{position:absolute;background:var(--xve-grid-line,#e1e1e1)}\n.xg-c{position:absolute;box-sizing:border-box;overflow:visible}\n.xg-c[hidden],.xg-gl[hidden],.xg-hd[hidden]{display:none}\n.xg-c-over{z-index:1}\n.xg-t{position:absolute;top:0;bottom:0;display:flex;box-sizing:border-box;overflow:hidden;line-height:1.15}\n.xg-t.xg-wrap{white-space:pre-wrap;overflow-wrap:anywhere}\n.xg-t.xg-wrap>.xg-tx{display:block;width:100%}\n.xg-t.xg-vert{writing-mode:vertical-rl;text-orientation:upright}\n.xg-t.xg-over{background:var(--xve-sheet-bg,#fff)}\n.xg-c[style*=\"background-color\"]>.xg-t.xg-over,.xg-c-fill>.xg-t.xg-over{background:transparent}\n.xg-tx{display:inline-block;white-space:inherit}\n.xg-link{cursor:pointer}\n.xg-b{position:absolute;left:-1px;top:-1px;box-sizing:border-box;pointer-events:none}\n.xg-diag{position:absolute;left:0;top:0;pointer-events:none}\n.xg-db{position:absolute;left:2px;top:2px;bottom:2px;border:1px solid;box-sizing:border-box}\n.xg-ic{position:absolute;left:2px;top:50%;transform:translateY(-50%)}\n.xg-cm{position:absolute;right:0;top:0;width:0;height:0;border-left:6px solid transparent;border-top:6px solid #d13438;z-index:2}\n.xg-er{position:absolute;left:0;top:0;width:0;height:0;border-right:6px solid transparent;border-top:6px solid #107c41;z-index:2}\n.xg-overlay{pointer-events:none;z-index:3}\n.xg-shade{position:absolute;background:var(--xve-selection,rgba(33,115,70,.12))}\n.xg-outline{position:absolute;box-sizing:border-box;border:2px solid var(--xve-selection-border,#217346)}\n.xg-active{position:absolute;box-sizing:border-box;border:1px solid var(--xve-selection-border,#217346)}\n.xg-handle{position:absolute;box-sizing:border-box;background:var(--xve-selection-border,#217346);border:1px solid #fff;pointer-events:auto;cursor:crosshair}\n.xg-ants{position:absolute;box-sizing:border-box;--a:var(--xve-selection-border,#217346);\n\tbackground-image:linear-gradient(90deg,var(--a) 50%,transparent 50%),linear-gradient(90deg,var(--a) 50%,transparent 50%),linear-gradient(0deg,var(--a) 50%,transparent 50%),linear-gradient(0deg,var(--a) 50%,transparent 50%);\n\tbackground-repeat:repeat-x,repeat-x,repeat-y,repeat-y;background-size:8px 2px,8px 2px,2px 8px,2px 8px;\n\tbackground-position:0 0,0 100%,0 0,100% 0;animation:xg-ants .5s linear infinite}\n@keyframes xg-ants{to{background-position:8px 0,-8px 100%,0 -8px,100% 8px}}\n@media (prefers-reduced-motion:reduce){.xg-ants{animation:none}}\n.xg-fill-preview{position:absolute;box-sizing:border-box;border:1px dashed #666}\n.xg-refbox{position:absolute;box-sizing:border-box;border:2px solid}\n.xg-hbox{background:var(--xve-header-bg,#f3f3f3);z-index:4}\n.xg-hdr-plane{position:absolute;left:0;top:0;will-change:transform}\n.xg-hd{position:absolute;box-sizing:border-box;display:flex;align-items:center;justify-content:center;\n\tcolor:var(--xve-header-fg,#444);border-right:1px solid var(--xve-header-line,#d4d4d4);border-bottom:1px solid var(--xve-header-line,#d4d4d4);overflow:hidden;white-space:nowrap}\n.xg-hdr-col .xg-hd{top:0;height:100%}\n.xg-hdr-row .xg-hd{left:0;width:100%}\n.xg-hd-sel{background:var(--xve-header-active-bg,#e1e1e1);color:var(--xve-selection-border,#217346);font-weight:600}\n.xg-hdr-col .xg-hd-sel{box-shadow:inset 0 -2px 0 var(--xve-selection-border,#217346)}\n.xg-hdr-row .xg-hd-sel{box-shadow:inset -2px 0 0 var(--xve-selection-border,#217346)}\n.xg-hd-full{background:var(--xve-header-full-bg,#cde6d7);color:var(--xve-selection-border,#185c37);font-weight:600}\n.xg-hdr-col{cursor:s-resize}.xg-hdr-row{cursor:e-resize}\n.xg-hdr-col .xg-hd,.xg-hdr-row .xg-hd{cursor:inherit}\n.xg-corner{position:absolute;left:0;top:0;background:var(--xve-header-bg,#f3f3f3);z-index:5;box-sizing:border-box;\n\tborder-right:1px solid var(--xve-header-line,#d4d4d4);border-bottom:1px solid var(--xve-header-line,#d4d4d4);cursor:default}\n.xg-corner::after{content:\"\";position:absolute;right:3px;bottom:3px;border-left:9px solid transparent;border-bottom:9px solid #b4b4b4}\n.xg-freeze-h,.xg-freeze-v{position:absolute;background:var(--xve-freeze-line,#9b9b9b);z-index:6;pointer-events:none}\n.xg-col-resize{cursor:col-resize!important}.xg-row-resize{cursor:row-resize!important}\n.xg-resize-guide{position:absolute;z-index:8;border:0 dashed #666;pointer-events:none}\n.xg-editor-host{position:absolute;z-index:7;box-sizing:border-box;opacity:0;overflow:hidden;pointer-events:none;background:#fff;color:#000;line-height:1.25}\n.xg-editor-host.xg-editing{opacity:1;pointer-events:auto;overflow:visible;cursor:text;\n\tbox-shadow:0 0 0 2px var(--xve-selection-border,#217346),0 2px 6px rgba(0,0,0,.25)}\n.xg-editor-host .xg-field-backdrop,.xg-editor-host .xg-field-input{padding:1px 3px}\n.xg-sink{position:absolute;left:0;top:0;width:1px;height:1px;opacity:0;padding:0;border:0;resize:none;overflow:hidden;pointer-events:none}\n.xg-field{position:relative}\n.xg-field-backdrop,.xg-field-input{margin:0;border:0;box-sizing:border-box;font:inherit;line-height:inherit;letter-spacing:inherit;\n\tpadding:inherit;white-space:pre-wrap;overflow-wrap:anywhere;word-break:normal;tab-size:4}\n.xg-field-backdrop{position:absolute;inset:0;overflow:hidden;color:inherit;pointer-events:none;visibility:hidden}\n.xg-field.xg-formula .xg-field-backdrop{visibility:visible}\n.xg-field-input{position:relative;display:block;width:100%;height:100%;resize:none;outline:none;background:transparent;color:inherit;overflow:hidden}\n.xg-field.xg-formula .xg-field-input{color:transparent;caret-color:#000}\n.xg-ref{font:inherit}\n.xg-editor-host .xg-field{width:100%;height:100%}\n.xg-dd{position:absolute;z-index:6;width:17px;height:17px;box-sizing:border-box;border:1px solid #c8c8c8;background:#f3f3f3;\n\tdisplay:flex;align-items:center;justify-content:center;cursor:default;pointer-events:auto}\n.xg-dd::before{content:\"\";border-left:4px solid transparent;border-right:4px solid transparent;border-top:5px solid #444}\n.xg-popup{position:absolute;z-index:20;background:var(--xve-popover,#fff);color:var(--xve-popover-foreground,#222);\n\tborder:1px solid var(--xve-border,#c8c8c8);box-shadow:0 4px 12px rgba(0,0,0,.18);font-size:13px;border-radius:4px}\n.xg-list{max-height:220px;overflow:auto;min-width:120px;padding:2px 0;margin:0;list-style:none}\n.xg-list [role=option]{padding:3px 10px;cursor:default;white-space:nowrap}\n.xg-list [aria-selected=true]{background:var(--xve-accent,#e1efe6)}\n.xg-tip{padding:6px 8px;max-width:260px;white-space:pre-wrap;background:#fffbe6;color:#222;pointer-events:none}\n.xg-tip b{display:block;margin-bottom:2px}\n.xg-alert{padding:12px 14px;max-width:340px}\n.xg-alert h3{margin:0 0 6px;font-size:14px}\n.xg-alert p{margin:0 0 10px;white-space:pre-wrap}\n.xg-alert .xg-actions{display:flex;gap:6px;justify-content:flex-end}\n.xg-alert button{min-width:64px;padding:4px 10px;border:1px solid var(--xve-border,#c8c8c8);border-radius:3px;background:var(--xve-secondary,#f3f3f3);color:inherit;font:inherit}\n.xg-alert button:first-child{background:var(--xve-selection-border,#217346);color:#fff;border-color:transparent}\n.xg-drawings{z-index:4}\n.xg-obj{position:absolute;box-sizing:border-box;pointer-events:auto;cursor:default}\n.xg-obj img,.xg-obj svg{display:block;width:100%;height:100%;pointer-events:none}\n.xg-obj.xg-chart{background:#fff;border:1px solid #d9d9d9}\n.xg-obj.xg-obj-sel{outline:1px solid #8a8a8a}\n.xg-obj .xg-grip{position:absolute;width:8px;height:8px;background:#fff;border:1px solid #555;box-sizing:border-box;border-radius:50%}\n.xg-obj-unsupported{background:repeating-linear-gradient(45deg,#f6f6f6,#f6f6f6 6px,#ececec 6px,#ececec 12px);border:1px dashed #aaa;\n\tfont-size:11px;color:#555;display:flex;align-items:center;justify-content:center;text-align:center}\n.xg-obj.xg-smartart{overflow:hidden}\n.xg-obj.xg-smartart office-ui-smartart{display:block;pointer-events:none}\n.xg-smartart-placeholder{background:#fafafa;border:1px dashed #aaa;font-size:11px;color:#333;padding:4px;overflow:auto}\n.xg-smartart-nodes{margin:0;padding-left:16px}\n.xg-smartart-nodes .xg-smartart-child{margin-left:12px}\n.xg-smartart-notice{display:none;position:absolute;left:0;bottom:0;padding:1px 4px;font-size:10px;background:rgba(255,255,255,.9);color:#555;border-top-right-radius:3px}\n.xg-obj-sel .xg-smartart-notice,.xg-smartart-placeholder .xg-smartart-notice{display:block}\n.xg-live{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}\n";
@@ -0,0 +1,14 @@
1
+ import { type Workbook } from 'ooxml-core/xlsx';
2
+ import type { EditorContext } from 'ooxml-core/xlsx/ui';
3
+ export interface TestContext extends EditorContext {
4
+ readonly events: {
5
+ type: string;
6
+ detail: unknown;
7
+ }[];
8
+ readonly toasts: string[];
9
+ setReadOnly(value: boolean): void;
10
+ /** Simulates the shell's model-change fan-out. */
11
+ notify(change?: unknown): void;
12
+ }
13
+ export declare function interpolate(text: string, vars?: Record<string, string | number>): string;
14
+ export declare function createTestContext(workbook?: Workbook, doc?: Document): TestContext;
@@ -0,0 +1,13 @@
1
+ import type { GridView } from './grid-view.js';
2
+ /** Unique texts above and below a cell in its column (contiguous block), for the pick list. */
3
+ export declare function columnPickList(view: GridView, row: number, col: number, limit?: number): string[];
4
+ export declare class ValidationList {
5
+ #private;
6
+ readonly arrow: HTMLDivElement;
7
+ constructor(view: GridView, onDone: () => void);
8
+ position(): void;
9
+ get isOpen(): boolean;
10
+ /** Opens the list; `pick` falls back to the column's values when there is no list rule. */
11
+ open(pick: boolean): boolean;
12
+ close(refocus?: boolean): void;
13
+ }
@@ -0,0 +1,10 @@
1
+ export { XlsxEditorElement, defineXlsxEditor, type XlsxThemeColors } from './component';
2
+ export { XLSX_EDITOR_EVENTS, type FileCommand, type FileCommandDetail, type SelectionChangeDetail, type XlsxEditorEventDetail, type XlsxEditorEventMap, type XlsxEditorEventName, } from './events';
3
+ export { XLSX_EDITOR_ATTRIBUTES, DEFAULT_AUTHOR_NAME, DEFAULT_FILE_NAME, } from './editor-attributes';
4
+ export { EDITOR_LOCALES, normalizeEditorLocale, type EditorLocale, type EditorLocaleInput, } from 'ooxml-core/xlsx/ui';
5
+ export { THEME_KEYS, darkTheme as xlsxDarkTheme, lightTheme as xlsxLightTheme, themeToCssVars, type EditorThemeMode, type XlsxTheme, } from './theme';
6
+ export type { Command as EditorCommand, CommandRegistry } from 'ooxml-core/xlsx/ui';
7
+ export type { EditorContext, GridController, Selection as EditorSelection, SelectionModel, } from 'ooxml-core/xlsx/ui';
8
+ export type { DialogRegistry } from 'ooxml-core/xlsx/ui';
9
+ export { registerRibbonTabs, type RibbonControl, type RibbonGroup, type RibbonMenuItem, type RibbonTab, } from 'ooxml-core/xlsx/ui';
10
+ export { registerRibbonIcon } from './ribbon/icons';
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Global keyboard shortcuts. The map only decides which command id (or shell action) a key runs;
3
+ * the behaviour lives in the commands. Grid navigation and in-cell editing keys belong to the grid,
4
+ * which handles them first (a handled event is `defaultPrevented` and left alone here).
5
+ */
6
+ import type { EditorContext } from 'ooxml-core/xlsx/ui';
7
+ /** `Mod` is Cmd on Apple platforms and Ctrl elsewhere; `code:` matches `KeyboardEvent.code`. */
8
+ export type KeySpec = string;
9
+ export type ShellAction = 'help' | 'keytips' | 'next-region' | 'previous-region' | 'context-menu';
10
+ export interface Shortcut {
11
+ keys: readonly KeySpec[];
12
+ label: string;
13
+ command?: string;
14
+ arg?: unknown;
15
+ action?: ShellAction;
16
+ /** True: also works while typing in a text field (formula bar, dialogs). */
17
+ global?: boolean;
18
+ }
19
+ /** Excel's shortcuts, mapped to command ids (`file.*` and `sheet.next/previous` are the shell's). */
20
+ export declare const SHORTCUTS: readonly Shortcut[];
21
+ export interface KeyEventLike {
22
+ key: string;
23
+ code?: string;
24
+ ctrlKey: boolean;
25
+ metaKey: boolean;
26
+ altKey: boolean;
27
+ shiftKey: boolean;
28
+ }
29
+ export declare function isMacPlatform(): boolean;
30
+ /** Exact modifier match: Ctrl on a Mac, or Cmd elsewhere, never satisfies `Mod`. */
31
+ export declare function matchesKeys(event: KeyEventLike, spec: KeySpec, mac: boolean): boolean;
32
+ /** Human-readable key text (`Ctrl+Shift+L`, `Cmd+S` on a Mac). Legends are not translated. */
33
+ export declare function formatKeys(spec: KeySpec, mac: boolean): string;
34
+ /** Specs listed in help: the first of each shortcut without `code:` duplicates. */
35
+ export declare const displayKeys: (shortcut: Shortcut, mac: boolean) => string[];
36
+ export declare function findShortcut(event: KeyEventLike, mac: boolean): Shortcut | undefined;
37
+ /**
38
+ * Listens on the host (shadow-tree events bubble to it, retargeted) and runs the map. Returns a
39
+ * disposer.
40
+ */
41
+ export declare function installKeyboard(ctx: EditorContext, actions: (action: ShellAction) => void): () => void;
@@ -0,0 +1,4 @@
1
+ export { installCommands } from './commands/index';
2
+ export { mountGrid } from './grid/index';
3
+ export { mountFormulaBar } from './formula-bar/index';
4
+ export { mountSheetTabs } from './sheet-tabs/index';
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Printing: the active sheet's print area (or its used range) rendered as a print-only HTML table
3
+ * from the core's cell views, column and row metrics, and merges, printed through a hidden frame.
4
+ * It approximates Excel's page output (no headers, footers or scaling to fit) and says so.
5
+ */
6
+ import { type CellRange, type CellView, type Workbook } from 'ooxml-core/xlsx';
7
+ /** Inline CSS for one cell view. */
8
+ export declare function cellCss(view: CellView): string;
9
+ /** The range a sheet prints: its print area, else its used range (undefined for an empty sheet). */
10
+ export declare function printRange(workbook: Workbook, sheetIndex: number): CellRange | undefined;
11
+ /** A standalone HTML document with the sheet's print range as a table. */
12
+ export declare function buildPrintHtml(workbook: Workbook, sheetIndex: number, title: string): string;
13
+ /** How long a print frame may stay without `afterprint` before it is removed anyway. */
14
+ export declare const PRINT_FRAME_TIMEOUT_MS = 60000;
15
+ /**
16
+ * Prints through a hidden frame so the editor page itself is never reflowed. The frame is removed
17
+ * on `afterprint` (some browsers return from `print()` before the dialog closes, so removing it
18
+ * then would cancel the job), on the next print, or after a long safety timeout.
19
+ */
20
+ export declare function printHtml(doc: Document, html: string): void;
21
+ /** Prints the active sheet of `workbook`. */
22
+ export declare function printWorkbook(doc: Document, workbook: Workbook, sheetIndex: number, title: string): void;
@@ -0,0 +1,4 @@
1
+ /** The label with a `\n` at the most balanced space (one line for a single word). */
2
+ export declare function balancedCaption(label: string): string;
3
+ /** Writes a large button's caption (two balanced lines). */
4
+ export declare function setLargeCaption(caption: HTMLElement, label: string): void;
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Excel's colour picker: Automatic (or No Fill), Theme Colors (ten columns, each a theme slot over
3
+ * five tints taken from the workbook theme), Standard Colors and More Colors (the browser's colour
4
+ * input). The choice is a SpreadsheetML `Color` (`{ theme, tint }` or `{ rgb }`), or undefined.
5
+ */
6
+ import { type Color, type ThemePalette } from 'ooxml-core/xlsx';
7
+ /** Excel's five tint rows under each theme colour (lt1, dk1, lt2 and the rest differ). */
8
+ export declare function themeTints(slot: number): number[];
9
+ export declare const STANDARD_COLORS: ReadonlyArray<readonly [string, string]>;
10
+ export interface ColorGridOptions {
11
+ /** First row: 'Automatic' (font colour) or 'No Fill' (fill colour). */
12
+ automaticLabel?: string;
13
+ theme?: ThemePalette;
14
+ t(key: string, vars?: Record<string, string | number>): string;
15
+ }
16
+ /** The CSS colour a `Color` shows in the workbook theme (for swatches and the split bar). */
17
+ export declare function cssColor(color: Color | undefined, theme?: ThemePalette): string;
18
+ export declare function openColorGrid(anchor: HTMLElement, choose: (color: Color | undefined) => void, options: ColorGridOptions): void;