ooxml-ui 1.25.0 → 1.26.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 (353) hide show
  1. package/README.md +82 -19
  2. package/custom-elements.json +321 -1
  3. package/dist/bindings/bind-element.d.ts +29 -0
  4. package/dist/bindings/contract.d.ts +115 -0
  5. package/dist/bindings/equality.d.ts +9 -0
  6. package/dist/bindings/handle.d.ts +33 -0
  7. package/dist/bindings/index.d.ts +6 -0
  8. package/dist/bindings/react.d.ts +21 -0
  9. package/dist/bindings/react.js +39 -0
  10. package/dist/bindings/solid.d.ts +14 -0
  11. package/dist/bindings/solid.js +27 -0
  12. package/dist/bindings/src-loader.d.ts +14 -0
  13. package/dist/bindings/tracker.d.ts +14 -0
  14. package/dist/bindings/vue.d.ts +35 -0
  15. package/dist/bindings/vue.js +65 -0
  16. package/dist/bindings.js +3 -0
  17. package/dist/chart/data-sheet-keys.d.ts +38 -0
  18. package/dist/chart/data-sheet-keys.d.ts.map +1 -0
  19. package/dist/chart/data-sheet-labels.d.ts +36 -0
  20. package/dist/chart/data-sheet-labels.d.ts.map +1 -0
  21. package/dist/chart/data-sheet.d.ts +68 -0
  22. package/dist/chart/data-sheet.d.ts.map +1 -0
  23. package/dist/chart/design-galleries.d.ts +52 -0
  24. package/dist/chart/design-galleries.d.ts.map +1 -0
  25. package/dist/chart/format-pane-3d.d.ts +7 -0
  26. package/dist/chart/format-pane-3d.d.ts.map +1 -0
  27. package/dist/chart/format-pane-api.d.ts +17 -0
  28. package/dist/chart/format-pane-api.d.ts.map +1 -0
  29. package/dist/chart/format-pane-axis.d.ts +5 -0
  30. package/dist/chart/format-pane-axis.d.ts.map +1 -0
  31. package/dist/chart/format-pane-common.d.ts +23 -0
  32. package/dist/chart/format-pane-common.d.ts.map +1 -0
  33. package/dist/{pptx/render/chart-format/chart-format-pane-effects.d.ts → chart/format-pane-effects.d.ts} +5 -11
  34. package/dist/chart/format-pane-effects.d.ts.map +1 -0
  35. package/dist/chart/format-pane-fields.d.ts +29 -0
  36. package/dist/chart/format-pane-fields.d.ts.map +1 -0
  37. package/dist/chart/format-pane-fill-kinds.d.ts +16 -0
  38. package/dist/chart/format-pane-fill-kinds.d.ts.map +1 -0
  39. package/dist/chart/format-pane-fill-line.d.ts +13 -0
  40. package/dist/chart/format-pane-fill-line.d.ts.map +1 -0
  41. package/dist/chart/format-pane-fixture.test-util.d.ts +3 -0
  42. package/dist/chart/format-pane-intent.d.ts +24 -0
  43. package/dist/chart/format-pane-intent.d.ts.map +1 -0
  44. package/dist/chart/format-pane-locales/de.d.ts +3 -0
  45. package/dist/chart/format-pane-locales/de.d.ts.map +1 -0
  46. package/dist/chart/format-pane-locales/en.d.ts +3 -0
  47. package/dist/chart/format-pane-locales/en.d.ts.map +1 -0
  48. package/dist/chart/format-pane-locales/es.d.ts +3 -0
  49. package/dist/chart/format-pane-locales/es.d.ts.map +1 -0
  50. package/dist/chart/format-pane-locales/fr.d.ts +3 -0
  51. package/dist/chart/format-pane-locales/fr.d.ts.map +1 -0
  52. package/dist/chart/format-pane-locales/index.d.ts +7 -0
  53. package/dist/chart/format-pane-locales/index.d.ts.map +1 -0
  54. package/dist/chart/format-pane-locales/zh-CN.d.ts +3 -0
  55. package/dist/chart/format-pane-locales/zh-CN.d.ts.map +1 -0
  56. package/dist/chart/format-pane-model.d.ts +23 -0
  57. package/dist/chart/format-pane-model.d.ts.map +1 -0
  58. package/dist/chart/format-pane-options.d.ts +14 -0
  59. package/dist/chart/format-pane-options.d.ts.map +1 -0
  60. package/dist/chart/format-pane-space.d.ts +21 -0
  61. package/dist/chart/format-pane-space.d.ts.map +1 -0
  62. package/dist/chart/format-pane-targets.d.ts +25 -0
  63. package/dist/chart/format-pane-targets.d.ts.map +1 -0
  64. package/dist/chart/format-pane-text.d.ts +7 -0
  65. package/dist/chart/format-pane-text.d.ts.map +1 -0
  66. package/dist/chart/format-pane-translate.d.ts +10 -0
  67. package/dist/chart/format-pane-translate.d.ts.map +1 -0
  68. package/dist/chart/format-pane-types.d.ts +118 -0
  69. package/dist/chart/format-pane-types.d.ts.map +1 -0
  70. package/dist/chart/format-pane-view.d.ts +212 -0
  71. package/dist/chart/format-pane-view.d.ts.map +1 -0
  72. package/dist/chart/format-pane.d.ts +128 -0
  73. package/dist/chart/format-pane.d.ts.map +1 -0
  74. package/dist/chart/gallery-tiles.d.ts +23 -0
  75. package/dist/chart/gallery-tiles.d.ts.map +1 -0
  76. package/dist/chart-format-locales.js +1 -0
  77. package/dist/chunk-CDAXY5KC.js +118 -0
  78. package/dist/chunk-FN7IF6M6.js +25 -0
  79. package/dist/{chunk-X5XR45BK.js → chunk-HGLCXNCT.js} +50 -24
  80. package/dist/chunk-KJMAVPQB.js +53 -0
  81. package/dist/{chunk-S736N64L.js → chunk-KSOHDEUI.js} +1 -1
  82. package/dist/chunk-NDUD5JJB.js +79 -0
  83. package/dist/chunk-P4FRKIPE.js +953 -0
  84. package/dist/chunk-VM6ZTKB3.js +1134 -0
  85. package/dist/{chunk-SC44SOIS.js → chunk-WDOWQKKC.js} +2601 -275
  86. package/dist/{chunk-5ZFOSFCK.js → chunk-WH3EGA3S.js} +9 -3
  87. package/dist/controls.d.ts +7 -2
  88. package/dist/controls.d.ts.map +1 -1
  89. package/dist/controls.js +3 -1
  90. package/dist/dialog/dialog.d.ts +6 -0
  91. package/dist/dialog/dialog.d.ts.map +1 -1
  92. package/dist/docx/chart-commands.d.ts +22 -0
  93. package/dist/docx/chart-design-ribbon.d.ts +4 -0
  94. package/dist/docx/chart-dialogs.d.ts +11 -0
  95. package/dist/docx/chart-format-pane.d.ts +22 -0
  96. package/dist/docx/context-menu-items.d.ts +2 -0
  97. package/dist/docx/editor-core.d.ts +3 -0
  98. package/dist/docx/format-dialogs.d.ts +4 -2
  99. package/dist/docx/image-media.d.ts +9 -1
  100. package/dist/docx/insert-controller.d.ts +5 -0
  101. package/dist/docx/locales/charts.d.ts +51 -0
  102. package/dist/docx/locales/en.d.ts +113 -0
  103. package/dist/docx/locales/smartart.d.ts +77 -0
  104. package/dist/docx/localization-strings.d.ts +113 -0
  105. package/dist/docx/resize-handle.d.ts +23 -0
  106. package/dist/docx/ribbon-action.d.ts +15 -0
  107. package/dist/docx/ribbon-icons.d.ts +13 -0
  108. package/dist/docx/smartart-commands.d.ts +26 -0
  109. package/dist/docx/smartart-controller.d.ts +35 -0
  110. package/dist/docx/smartart-design-ribbon.d.ts +7 -0
  111. package/dist/docx/smartart-dialog.d.ts +12 -0
  112. package/dist/docx/smartart-node-view.d.ts +6 -3
  113. package/dist/docx.js +1664 -542
  114. package/dist/form/color-grid.d.ts +8 -1
  115. package/dist/form/color-grid.d.ts.map +1 -1
  116. package/dist/index.d.ts +1 -1
  117. package/dist/index.js +10 -5
  118. package/dist/pptx/ai/bridge-factory.d.ts +77 -0
  119. package/dist/pptx/ai/bridge-factory.d.ts.map +1 -0
  120. package/dist/pptx/ai/index.cjs +443 -164
  121. package/dist/pptx/ai/index.d.ts +4 -0
  122. package/dist/pptx/ai/index.d.ts.map +1 -1
  123. package/dist/pptx/ai/index.mjs +437 -165
  124. package/dist/pptx/ai/panel-controller.d.ts +104 -0
  125. package/dist/pptx/ai/panel-controller.d.ts.map +1 -0
  126. package/dist/pptx/{chart-3d-view-scene-RYL7F65H.cjs → chart-3d-view-scene-N7UQOYFI.cjs} +38 -38
  127. package/dist/pptx/{chart-3d-view-scene-CDIMM5T3.mjs → chart-3d-view-scene-ZUGA3DKM.mjs} +2 -2
  128. package/dist/pptx/{chunk-PIIYTRLE.mjs → chunk-34LEUH5R.mjs} +1 -1
  129. package/dist/pptx/{chunk-G3UVZ5FO.cjs → chunk-6KLPQQYP.cjs} +1 -0
  130. package/dist/pptx/{chunk-SCURBCNQ.mjs → chunk-AMW2AR7J.mjs} +1 -1
  131. package/dist/pptx/chunk-CWHK7HF4.mjs +751 -0
  132. package/dist/pptx/{chunk-J642EKDV.cjs → chunk-FM4C4MBJ.cjs} +1 -1
  133. package/dist/pptx/{chunk-LCB46TH2.cjs → chunk-H5IPNKX6.cjs} +12 -12
  134. package/dist/pptx/{chunk-4TFSELNQ.cjs → chunk-HAO5PKWK.cjs} +7671 -4138
  135. package/dist/pptx/{chunk-QTLP3MX7.mjs → chunk-IWUIGVWT.mjs} +7468 -3993
  136. package/dist/pptx/{chunk-ZNXKAINY.mjs → chunk-LB3A3GF6.mjs} +1150 -222
  137. package/dist/pptx/chunk-LUDEAPHZ.cjs +776 -0
  138. package/dist/pptx/{chunk-A2X5BP7J.cjs → chunk-OOQMIQT3.cjs} +1151 -221
  139. package/dist/pptx/chunk-WM5SW737.mjs +27 -0
  140. package/dist/pptx/{chunk-73OUATE4.mjs → chunk-WQA3KZRB.mjs} +1 -1
  141. package/dist/pptx/chunk-Y6DO6SVT.cjs +29 -0
  142. package/dist/pptx/dom/index.cjs +503 -1123
  143. package/dist/pptx/dom/index.d.ts +1 -0
  144. package/dist/pptx/dom/index.d.ts.map +1 -1
  145. package/dist/pptx/dom/index.mjs +12 -704
  146. package/dist/pptx/dom/smartart-insert-preview.d.ts +15 -0
  147. package/dist/pptx/dom/smartart-insert-preview.d.ts.map +1 -0
  148. package/dist/pptx/export/html2canvas-clone.cjs +4 -4
  149. package/dist/pptx/export/html2canvas-clone.mjs +1 -1
  150. package/dist/pptx/i18n/index.cjs +6 -6
  151. package/dist/pptx/i18n/index.mjs +1 -1
  152. package/dist/pptx/i18n/translations-en-chart-format.d.ts.map +1 -1
  153. package/dist/pptx/i18n/translations-en-galleries.d.ts.map +1 -1
  154. package/dist/pptx/i18n/translations-en.d.ts.map +1 -1
  155. package/dist/pptx/index.cjs +3490 -3249
  156. package/dist/pptx/index.mjs +6 -5
  157. package/dist/pptx/render/autosave-inline-draft.d.ts +27 -0
  158. package/dist/pptx/render/autosave-inline-draft.d.ts.map +1 -0
  159. package/dist/pptx/render/autosave-policy.d.ts +6 -7
  160. package/dist/pptx/render/autosave-policy.d.ts.map +1 -1
  161. package/dist/pptx/render/autosave-tick.d.ts +6 -0
  162. package/dist/pptx/render/autosave-tick.d.ts.map +1 -1
  163. package/dist/pptx/render/chart-combo-stock.cjs +3 -3
  164. package/dist/pptx/render/chart-combo-stock.mjs +1 -1
  165. package/dist/pptx/render/chart-format/chart-format-pane-edit.d.ts +10 -2
  166. package/dist/pptx/render/chart-format/chart-format-pane-edit.d.ts.map +1 -1
  167. package/dist/pptx/render/chart-format/chart-format-pane-model.d.ts +4 -2
  168. package/dist/pptx/render/chart-format/chart-format-pane-model.d.ts.map +1 -1
  169. package/dist/pptx/render/chart-format/chart-format-pane-types.d.ts +4 -91
  170. package/dist/pptx/render/chart-format/chart-format-pane-types.d.ts.map +1 -1
  171. package/dist/pptx/render/chart-format/chart-format-source.d.ts +14 -0
  172. package/dist/pptx/render/chart-format/chart-format-source.d.ts.map +1 -0
  173. package/dist/pptx/render/chart-format/chart-format-targets.d.ts +16 -19
  174. package/dist/pptx/render/chart-format/chart-format-targets.d.ts.map +1 -1
  175. package/dist/pptx/render/chart-format/index.d.ts +2 -1
  176. package/dist/pptx/render/chart-format/index.d.ts.map +1 -1
  177. package/dist/pptx/render/chart-overlays.cjs +7 -7
  178. package/dist/pptx/render/chart-overlays.mjs +1 -1
  179. package/dist/pptx/render/chart-quick-action-styles.d.ts +4 -1
  180. package/dist/pptx/render/chart-quick-action-styles.d.ts.map +1 -1
  181. package/dist/pptx/render/chart-surface-treemap.cjs +4 -4
  182. package/dist/pptx/render/chart-surface-treemap.mjs +1 -1
  183. package/dist/pptx/render/chart-view-model.cjs +44 -44
  184. package/dist/pptx/render/chart-view-model.mjs +1 -1
  185. package/dist/pptx/render/chart-waterfall-map.cjs +6 -6
  186. package/dist/pptx/render/chart-waterfall-map.mjs +1 -1
  187. package/dist/pptx/render/collaboration-provider.d.ts +80 -0
  188. package/dist/pptx/render/collaboration-provider.d.ts.map +1 -0
  189. package/dist/pptx/render/collaboration-yjs-session.d.ts +48 -0
  190. package/dist/pptx/render/collaboration-yjs-session.d.ts.map +1 -0
  191. package/dist/pptx/render/controller/autosave-controller.d.ts +133 -0
  192. package/dist/pptx/render/controller/autosave-controller.d.ts.map +1 -0
  193. package/dist/pptx/render/controller/autosave-recovery-controller.d.ts +68 -0
  194. package/dist/pptx/render/controller/autosave-recovery-controller.d.ts.map +1 -0
  195. package/dist/pptx/render/controller/collaboration-session-controller.d.ts +89 -0
  196. package/dist/pptx/render/controller/collaboration-session-controller.d.ts.map +1 -0
  197. package/dist/pptx/render/controller/controller.d.ts +44 -0
  198. package/dist/pptx/render/controller/controller.d.ts.map +1 -0
  199. package/dist/pptx/render/controller/history-controller.d.ts +54 -0
  200. package/dist/pptx/render/controller/history-controller.d.ts.map +1 -0
  201. package/dist/pptx/render/controller/index.d.ts +17 -0
  202. package/dist/pptx/render/controller/index.d.ts.map +1 -0
  203. package/dist/pptx/render/customization/ribbon-control-catalog-tail.d.ts +2 -0
  204. package/dist/pptx/render/customization/ribbon-control-catalog-tail.d.ts.map +1 -1
  205. package/dist/pptx/render/customization/ribbon-control-catalog.d.ts +2 -0
  206. package/dist/pptx/render/customization/ribbon-control-catalog.d.ts.map +1 -1
  207. package/dist/pptx/render/editor-gesture-frames.d.ts +59 -0
  208. package/dist/pptx/render/editor-gesture-frames.d.ts.map +1 -0
  209. package/dist/pptx/render/editor-gestures.d.ts +39 -38
  210. package/dist/pptx/render/editor-gestures.d.ts.map +1 -1
  211. package/dist/pptx/render/editor-history.d.ts +1 -1
  212. package/dist/pptx/render/editor-history.d.ts.map +1 -1
  213. package/dist/pptx/render/editor-key-dispatch.d.ts +68 -0
  214. package/dist/pptx/render/editor-key-dispatch.d.ts.map +1 -0
  215. package/dist/pptx/render/effects-helpers.d.ts +8 -1
  216. package/dist/pptx/render/effects-helpers.d.ts.map +1 -1
  217. package/dist/pptx/render/effects-shadow-helpers.d.ts +7 -0
  218. package/dist/pptx/render/effects-shadow-helpers.d.ts.map +1 -1
  219. package/dist/pptx/render/group-press-target.d.ts +37 -0
  220. package/dist/pptx/render/group-press-target.d.ts.map +1 -0
  221. package/dist/pptx/render/index.d.ts +12 -0
  222. package/dist/pptx/render/index.d.ts.map +1 -1
  223. package/dist/pptx/render/insert-chart-preview.d.ts +15 -0
  224. package/dist/pptx/render/insert-chart-preview.d.ts.map +1 -0
  225. package/dist/pptx/render/insert-chart.d.ts +21 -1
  226. package/dist/pptx/render/insert-chart.d.ts.map +1 -1
  227. package/dist/pptx/render/inspector/element-geometry-fields.d.ts +28 -0
  228. package/dist/pptx/render/inspector/element-geometry-fields.d.ts.map +1 -0
  229. package/dist/pptx/render/inspector/index.d.ts +18 -0
  230. package/dist/pptx/render/inspector/index.d.ts.map +1 -0
  231. package/dist/pptx/render/inspector/inspector-field-model.d.ts +125 -0
  232. package/dist/pptx/render/inspector/inspector-field-model.d.ts.map +1 -0
  233. package/dist/pptx/render/inspector/shape-effect-fields-more.d.ts +8 -0
  234. package/dist/pptx/render/inspector/shape-effect-fields-more.d.ts.map +1 -0
  235. package/dist/pptx/render/inspector/shape-effect-fields.d.ts +27 -0
  236. package/dist/pptx/render/inspector/shape-effect-fields.d.ts.map +1 -0
  237. package/dist/pptx/render/inspector/shape-effect-sections.d.ts +7 -0
  238. package/dist/pptx/render/inspector/shape-effect-sections.d.ts.map +1 -0
  239. package/dist/pptx/render/inspector/shape-line-fields.d.ts +20 -0
  240. package/dist/pptx/render/inspector/shape-line-fields.d.ts.map +1 -0
  241. package/dist/pptx/render/inspector/text-box-fields.d.ts +24 -0
  242. package/dist/pptx/render/inspector/text-box-fields.d.ts.map +1 -0
  243. package/dist/pptx/render/options/viewer-options-apply.d.ts.map +1 -1
  244. package/dist/pptx/render/options/viewer-options.d.ts.map +1 -1
  245. package/dist/pptx/render/presentation-show-step.d.ts +105 -0
  246. package/dist/pptx/render/presentation-show-step.d.ts.map +1 -0
  247. package/dist/pptx/render/ribbon-galleries/chart-colors-gallery.d.ts +3 -2
  248. package/dist/pptx/render/ribbon-galleries/chart-colors-gallery.d.ts.map +1 -1
  249. package/dist/pptx/render/ribbon-galleries/chart-quick-layout-gallery.d.ts +6 -3
  250. package/dist/pptx/render/ribbon-galleries/chart-quick-layout-gallery.d.ts.map +1 -1
  251. package/dist/pptx/render/ribbon-galleries/chart-styles-gallery.d.ts +2 -1
  252. package/dist/pptx/render/ribbon-galleries/chart-styles-gallery.d.ts.map +1 -1
  253. package/dist/pptx/render/ribbon-galleries/gallery-placements.d.ts.map +1 -1
  254. package/dist/pptx/render/ribbon-galleries/gallery-types.d.ts +1 -1
  255. package/dist/pptx/render/ribbon-galleries/gallery-types.d.ts.map +1 -1
  256. package/dist/pptx/render/ribbon-galleries/smartart-colors-gallery.d.ts +0 -8
  257. package/dist/pptx/render/ribbon-galleries/smartart-colors-gallery.d.ts.map +1 -1
  258. package/dist/pptx/render/ribbon-galleries/smartart-commands.d.ts +1 -1
  259. package/dist/pptx/render/ribbon-galleries/smartart-commands.d.ts.map +1 -1
  260. package/dist/pptx/render/ribbon-galleries/smartart-gallery-patch.d.ts +4 -2
  261. package/dist/pptx/render/ribbon-galleries/smartart-gallery-patch.d.ts.map +1 -1
  262. package/dist/pptx/render/ribbon-galleries/smartart-gallery-tiles.d.ts +3 -8
  263. package/dist/pptx/render/ribbon-galleries/smartart-gallery-tiles.d.ts.map +1 -1
  264. package/dist/pptx/render/ribbon-galleries/smartart-layout-tiles.d.ts +7 -5
  265. package/dist/pptx/render/ribbon-galleries/smartart-layout-tiles.d.ts.map +1 -1
  266. package/dist/pptx/render/ribbon-galleries/smartart-layouts-gallery.d.ts.map +1 -1
  267. package/dist/pptx/render/ribbon-insert-state.d.ts +6 -0
  268. package/dist/pptx/render/ribbon-insert-state.d.ts.map +1 -1
  269. package/dist/pptx/render/smart-art-presets.d.ts +12 -6
  270. package/dist/pptx/render/smart-art-presets.d.ts.map +1 -1
  271. package/dist/pptx/render/smartart-text-pane-model.d.ts +59 -0
  272. package/dist/pptx/render/smartart-text-pane-model.d.ts.map +1 -0
  273. package/dist/pptx/render/span-snap-move.d.ts +32 -0
  274. package/dist/pptx/render/span-snap-move.d.ts.map +1 -0
  275. package/dist/pptx/render/theme-color-grid.d.ts +17 -0
  276. package/dist/pptx/render/theme-color-grid.d.ts.map +1 -1
  277. package/dist/pptx/render/viewer-event-payloads.d.ts +4 -4
  278. package/dist/pptx/smartart-insert-preview-5ZTZYAZR.cjs +48 -0
  279. package/dist/pptx/smartart-insert-preview-HMSNUWDO.mjs +39 -0
  280. package/dist/pptx/web-components/chart-data-sheet.d.ts +47 -0
  281. package/dist/pptx/web-components/chart-data-sheet.d.ts.map +1 -0
  282. package/dist/pptx/web-components/chart-format-pane.d.ts +7 -5
  283. package/dist/pptx/web-components/chart-format-pane.d.ts.map +1 -1
  284. package/dist/pptx/web-components/host-styles.d.ts.map +1 -1
  285. package/dist/pptx/web-components/index.d.ts +6 -0
  286. package/dist/pptx/web-components/index.d.ts.map +1 -1
  287. package/dist/pptx/web-components/insert-chart-dialog.d.ts +25 -0
  288. package/dist/pptx/web-components/insert-chart-dialog.d.ts.map +1 -0
  289. package/dist/pptx/web-components/insert-dialog-frame.d.ts +25 -0
  290. package/dist/pptx/web-components/insert-dialog-frame.d.ts.map +1 -0
  291. package/dist/pptx/web-components/insert-smartart-dialog.d.ts +26 -0
  292. package/dist/pptx/web-components/insert-smartart-dialog.d.ts.map +1 -0
  293. package/dist/pptx/web-components/mobile-insert.d.ts.map +1 -1
  294. package/dist/pptx/web-components/office-token-bridge.d.ts +1 -1
  295. package/dist/pptx/web-components/office-token-bridge.d.ts.map +1 -1
  296. package/dist/pptx/web-components/ribbon-insert-view.d.ts.map +1 -1
  297. package/dist/pptx/web-components/smartart-text-pane.d.ts +38 -0
  298. package/dist/pptx/web-components/smartart-text-pane.d.ts.map +1 -0
  299. package/dist/smartart/galleries.d.ts +17 -0
  300. package/dist/smartart/smartart-picker.d.ts +97 -0
  301. package/dist/smartart/smartart-picker.d.ts.map +1 -0
  302. package/dist/smartart/smartart-text-pane-tools.d.ts +51 -0
  303. package/dist/smartart/smartart-text-pane-tools.d.ts.map +1 -0
  304. package/dist/smartart/smartart-text-pane.d.ts +121 -0
  305. package/dist/smartart/smartart-text-pane.d.ts.map +1 -0
  306. package/dist/smartart/text-pane-controller.d.ts +51 -0
  307. package/dist/smartart/tiles.d.ts +17 -0
  308. package/dist/smartart/tiles.d.ts.map +1 -0
  309. package/dist/smartart.d.ts +5 -0
  310. package/dist/smartart.js +2 -1
  311. package/dist/teams/app/bind.d.ts +30 -0
  312. package/dist/teams/app/index.d.ts +1 -1
  313. package/dist/teams.js +7 -2
  314. package/dist/visio/ribbon-action.d.ts +5 -2
  315. package/dist/visio/viewer-chart-editor.d.ts +38 -0
  316. package/dist/visio/viewer-insert.d.ts +7 -2
  317. package/dist/visio.js +197 -17
  318. package/dist/xlsx/chart-format-pane.d.ts +10 -0
  319. package/dist/xlsx/chart-format-source.d.ts +17 -0
  320. package/dist/xlsx/commands/chart-design.d.ts +55 -0
  321. package/dist/xlsx/dialogs/insert-smartart.d.ts +4 -0
  322. package/dist/xlsx/grid/smartart.d.ts +4 -1
  323. package/dist/xlsx/ribbon/tabs/contextual.d.ts +6 -0
  324. package/dist/xlsx/smartart-controller.d.ts +14 -0
  325. package/dist/xlsx.js +789 -468
  326. package/package.json +47 -4
  327. package/dist/chunk-QBXYGKPB.js +0 -224
  328. package/dist/pptx/render/chart-format/chart-format-pane-3d.d.ts +0 -13
  329. package/dist/pptx/render/chart-format/chart-format-pane-3d.d.ts.map +0 -1
  330. package/dist/pptx/render/chart-format/chart-format-pane-axis.d.ts +0 -12
  331. package/dist/pptx/render/chart-format/chart-format-pane-axis.d.ts.map +0 -1
  332. package/dist/pptx/render/chart-format/chart-format-pane-common.d.ts +0 -14
  333. package/dist/pptx/render/chart-format/chart-format-pane-common.d.ts.map +0 -1
  334. package/dist/pptx/render/chart-format/chart-format-pane-effects.d.ts.map +0 -1
  335. package/dist/pptx/render/chart-format/chart-format-pane-fill-kinds.d.ts +0 -15
  336. package/dist/pptx/render/chart-format/chart-format-pane-fill-kinds.d.ts.map +0 -1
  337. package/dist/pptx/render/chart-format/chart-format-pane-fill-line.d.ts +0 -12
  338. package/dist/pptx/render/chart-format/chart-format-pane-fill-line.d.ts.map +0 -1
  339. package/dist/pptx/render/chart-format/chart-format-pane-options.d.ts +0 -13
  340. package/dist/pptx/render/chart-format/chart-format-pane-options.d.ts.map +0 -1
  341. package/dist/pptx/render/chart-format/chart-format-pane-text.d.ts +0 -14
  342. package/dist/pptx/render/chart-format/chart-format-pane-text.d.ts.map +0 -1
  343. package/dist/pptx/render/ribbon-galleries/chart-color-palette-catalog.d.ts +0 -3
  344. package/dist/pptx/render/ribbon-galleries/chart-color-palette-catalog.d.ts.map +0 -1
  345. package/dist/pptx/render/ribbon-galleries/chart-gallery-tiles.d.ts +0 -24
  346. package/dist/pptx/render/ribbon-galleries/chart-gallery-tiles.d.ts.map +0 -1
  347. package/dist/pptx/render/ribbon-galleries/chart-quick-layout-catalog.d.ts +0 -22
  348. package/dist/pptx/render/ribbon-galleries/chart-quick-layout-catalog.d.ts.map +0 -1
  349. package/dist/pptx/web-components/chart-format-pane-fields.d.ts +0 -17
  350. package/dist/pptx/web-components/chart-format-pane-fields.d.ts.map +0 -1
  351. package/dist/xlsx/chart-area-pane.d.ts +0 -9
  352. package/dist/xlsx/chart-series-pane.d.ts +0 -8
  353. package/dist/xlsx/commands/chart-colors.d.ts +0 -19
@@ -1,6 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var chunkA5MANNJR_cjs = require('../chunk-A5MANNJR.cjs');
4
+ var chunkY6DO6SVT_cjs = require('../chunk-Y6DO6SVT.cjs');
4
5
  var chunkPBZWDEXQ_cjs = require('../chunk-PBZWDEXQ.cjs');
5
6
  var pptx = require('ooxml-core/pptx');
6
7
  var zod = require('zod');
@@ -53,6 +54,441 @@ function resetAiSdkCache() {
53
54
  function deckDataFieldChanged(a, b) {
54
55
  return JSON.stringify(a) !== JSON.stringify(b);
55
56
  }
57
+ function applyElementUpdate(el, u) {
58
+ if (u.x !== void 0) {
59
+ el.x = u.x;
60
+ }
61
+ if (u.y !== void 0) {
62
+ el.y = u.y;
63
+ }
64
+ if (u.width !== void 0) {
65
+ el.width = u.width;
66
+ }
67
+ if (u.height !== void 0) {
68
+ el.height = u.height;
69
+ }
70
+ if (u.rotation !== void 0) {
71
+ el.rotation = u.rotation;
72
+ }
73
+ if (u.opacity !== void 0) {
74
+ el.opacity = u.opacity;
75
+ }
76
+ if (u.hidden !== void 0) {
77
+ el.hidden = u.hidden;
78
+ }
79
+ if (u.flipHorizontal !== void 0) {
80
+ el.flipHorizontal = u.flipHorizontal;
81
+ }
82
+ if (u.flipVertical !== void 0) {
83
+ el.flipVertical = u.flipVertical;
84
+ }
85
+ applyTextUpdate(el, u);
86
+ applyShapeStyleUpdate(el, u);
87
+ }
88
+ function applyTextUpdate(el, u) {
89
+ if (!pptx.hasTextProperties(el)) {
90
+ return;
91
+ }
92
+ const textEl = el;
93
+ if (u.text !== void 0) {
94
+ textEl.text = u.text;
95
+ if (textEl.textSegments && textEl.textSegments.length > 0) {
96
+ textEl.textSegments[0].text = u.text;
97
+ } else {
98
+ textEl.textSegments = [{ text: u.text, style: {} }];
99
+ }
100
+ }
101
+ if (u.fontSize === void 0 && u.fontFamily === void 0 && u.fontColor === void 0 && u.bold === void 0 && u.italic === void 0 && u.underline === void 0 && u.align === void 0) {
102
+ return;
103
+ }
104
+ const textStyle = {};
105
+ if (u.fontSize !== void 0) {
106
+ textStyle.fontSize = u.fontSize;
107
+ }
108
+ if (u.fontFamily !== void 0) {
109
+ textStyle.fontFamily = u.fontFamily;
110
+ }
111
+ if (u.fontColor !== void 0) {
112
+ textStyle.color = u.fontColor;
113
+ }
114
+ if (u.bold !== void 0) {
115
+ textStyle.bold = u.bold;
116
+ }
117
+ if (u.italic !== void 0) {
118
+ textStyle.italic = u.italic;
119
+ }
120
+ if (u.underline !== void 0) {
121
+ textStyle.underline = u.underline;
122
+ }
123
+ if (u.align !== void 0) {
124
+ textStyle.align = u.align;
125
+ }
126
+ textEl.textStyle = { ...textEl.textStyle, ...textStyle };
127
+ if (textEl.textSegments) {
128
+ textEl.textSegments = textEl.textSegments.map((seg) => chunkPBZWDEXQ_cjs.updateTextSegmentStyle(seg, textStyle));
129
+ }
130
+ }
131
+ function applyShapeStyleUpdate(el, u) {
132
+ if (u.fillColor === void 0 && u.strokeColor === void 0 && u.strokeWidth === void 0) {
133
+ return;
134
+ }
135
+ if (!pptx.hasShapeProperties(el)) {
136
+ return;
137
+ }
138
+ const holder = el;
139
+ holder.shapeStyle ??= {};
140
+ const style = holder.shapeStyle;
141
+ if (u.fillColor !== void 0) {
142
+ style.fillColor = u.fillColor;
143
+ }
144
+ if (u.strokeColor !== void 0) {
145
+ style.strokeColor = u.strokeColor;
146
+ }
147
+ if (u.strokeWidth !== void 0) {
148
+ style.strokeWidth = u.strokeWidth;
149
+ }
150
+ }
151
+
152
+ // src/pptx/ai/bridge-factory.ts
153
+ var TITLE_MAX_LENGTH = 120;
154
+ function pptxAiDeckTitle(slides) {
155
+ for (const element of slides[0]?.elements ?? []) {
156
+ const text = "text" in element && typeof element.text === "string" ? element.text.trim() : "";
157
+ if (text) {
158
+ return text.slice(0, TITLE_MAX_LENGTH);
159
+ }
160
+ }
161
+ return void 0;
162
+ }
163
+ function copy(list) {
164
+ return list ? [...list] : void 0;
165
+ }
166
+ function readDeckData(port) {
167
+ const canvas = port.getCanvasSize();
168
+ return {
169
+ slides: [...port.getSlides()],
170
+ width: canvas.width,
171
+ height: canvas.height,
172
+ theme: port.getTheme(),
173
+ sections: copy(port.getSections()),
174
+ presentationProperties: port.getPresentationProperties(),
175
+ customProperties: copy(port.getCustomProperties()),
176
+ coreProperties: port.getCoreProperties(),
177
+ appProperties: port.getAppProperties(),
178
+ viewProperties: port.getViewProperties(),
179
+ tableStyleMap: port.getTableStyleMap(),
180
+ tableStylesDefaultId: port.getTableStylesDefaultId(),
181
+ tags: copy(port.getTagCollections())
182
+ };
183
+ }
184
+ function commitDocumentProperties(port, before, after) {
185
+ const differs = deckDataFieldChanged;
186
+ const core = after.coreProperties ?? before.coreProperties;
187
+ const app = after.appProperties ?? before.appProperties;
188
+ const custom = after.customProperties ?? before.customProperties ?? [];
189
+ const coreChanged = differs(before.coreProperties, core);
190
+ if (!coreChanged && !differs(before.appProperties, app) && !differs(before.customProperties, custom)) {
191
+ return false;
192
+ }
193
+ port.setDocumentProperties(core ?? {}, app ?? {}, custom);
194
+ if (coreChanged && core) {
195
+ port.onCorePropertiesChanged?.(core);
196
+ }
197
+ return true;
198
+ }
199
+ function commitDeckData(port, before, after, label) {
200
+ const differs = deckDataFieldChanged;
201
+ let changed = false;
202
+ if (differs(before.slides, after.slides)) {
203
+ port.updateSlides(() => after.slides, label);
204
+ changed = true;
205
+ }
206
+ if (before.width !== after.width || before.height !== after.height) {
207
+ port.setCanvasSize({ width: after.width, height: after.height });
208
+ changed = true;
209
+ }
210
+ const sections = after.sections ?? before.sections ?? [];
211
+ if (differs(before.sections, sections)) {
212
+ port.setSections(sections);
213
+ changed = true;
214
+ }
215
+ const presentation = after.presentationProperties ?? before.presentationProperties ?? {};
216
+ if (differs(before.presentationProperties, presentation)) {
217
+ port.setPresentationProperties(presentation);
218
+ changed = true;
219
+ }
220
+ changed = commitDocumentProperties(port, before, after) || changed;
221
+ if (differs(before.viewProperties, after.viewProperties)) {
222
+ port.setViewProperties(after.viewProperties);
223
+ changed = true;
224
+ }
225
+ if (differs(before.tableStyleMap, after.tableStyleMap)) {
226
+ port.setTableStyleMap(after.tableStyleMap ?? {});
227
+ changed = true;
228
+ }
229
+ if (differs(before.tableStylesDefaultId, after.tableStylesDefaultId)) {
230
+ port.setTableStylesDefaultId(after.tableStylesDefaultId);
231
+ changed = true;
232
+ }
233
+ const tags = after.tags ?? before.tags ?? [];
234
+ if (differs(before.tags, tags)) {
235
+ port.setTagCollections(tags);
236
+ changed = true;
237
+ }
238
+ return changed;
239
+ }
240
+ function createPptxAiBridge(port) {
241
+ const applySlidesUpdate = (updater, label) => {
242
+ port.updateSlides((current) => updater(structuredClone([...current])), label);
243
+ };
244
+ const bridge = {
245
+ getDeckMeta() {
246
+ const slides = port.getSlides();
247
+ const canvas = port.getCanvasSize();
248
+ return {
249
+ slideCount: slides.length,
250
+ activeSlideIndex: port.getActiveSlideIndex(),
251
+ title: port.getFileName?.() ?? pptxAiDeckTitle(slides),
252
+ width: canvas.width,
253
+ height: canvas.height
254
+ };
255
+ },
256
+ getSlides: () => [...port.getSlides()],
257
+ getActiveSlideIndex: () => port.getActiveSlideIndex(),
258
+ getTheme: () => port.getTheme(),
259
+ getHandler: () => port.getHandler() ?? void 0,
260
+ goToSlide: (index) => port.goToSlide(index),
261
+ selectElements: (slideIndex2, elementIds) => port.selectElements(slideIndex2, elementIds),
262
+ applySlidesUpdate,
263
+ updateElement(slideIndex2, elementId2, updates) {
264
+ applySlidesUpdate((slides) => {
265
+ const element = slides[slideIndex2]?.elements.find((el) => el.id === elementId2);
266
+ if (element) {
267
+ applyElementUpdate(element, updates);
268
+ }
269
+ return slides;
270
+ }, `Update element ${elementId2}`);
271
+ },
272
+ applyTheme: (updates) => port.applyTheme(updates),
273
+ getDeckData: () => readDeckData(port),
274
+ applyDeckData(updater, label) {
275
+ const before = readDeckData(port);
276
+ const after = updater(structuredClone(before));
277
+ if (commitDeckData(port, before, after, label)) {
278
+ port.afterDeckUpdate?.();
279
+ }
280
+ }
281
+ };
282
+ if (port.getFocusedTargets) {
283
+ bridge.getFocusedTargets = () => port.getFocusedTargets?.() ?? [];
284
+ }
285
+ if (port.notify) {
286
+ bridge.notify = (message, level) => port.notify?.(message, level);
287
+ }
288
+ return bridge;
289
+ }
290
+
291
+ // src/pptx/ai/focus-targets.ts
292
+ function computeFocusTargets(input) {
293
+ const { activeSlideIndex, selectedElementIds, selectedElementId } = input;
294
+ const ids = selectedElementIds.length > 0 ? [...selectedElementIds] : selectedElementId ? [selectedElementId] : [];
295
+ if (ids.length === 0) {
296
+ return [{ kind: "slide", slideIndex: activeSlideIndex }];
297
+ }
298
+ return ids.map((elementId2) => ({ kind: "element", slideIndex: activeSlideIndex, elementId: elementId2 }));
299
+ }
300
+ function elementTypeLabel(type) {
301
+ if (type === "smartArt") {
302
+ return "SmartArt";
303
+ }
304
+ if (type === "ole") {
305
+ return "OLE";
306
+ }
307
+ return type.charAt(0).toUpperCase() + type.slice(1);
308
+ }
309
+ function shortElementId(id) {
310
+ const trimmed = id.trimEnd();
311
+ let start = trimmed.length;
312
+ while (start > 0 && isAsciiDigit(trimmed.charCodeAt(start - 1))) {
313
+ start -= 1;
314
+ }
315
+ if (start < trimmed.length) {
316
+ return trimmed.slice(start);
317
+ }
318
+ const separator = Math.max(id.lastIndexOf("/"), id.lastIndexOf("."), id.lastIndexOf("-"));
319
+ const tail = separator === -1 ? id : id.slice(separator + 1);
320
+ return tail || id;
321
+ }
322
+ function isAsciiDigit(code) {
323
+ return code >= 48 && code <= 57;
324
+ }
325
+ function focusTargetChips(targets, slides) {
326
+ return targets.map((target, index) => {
327
+ if (target.kind === "slide") {
328
+ const label2 = `Slide ${target.slideIndex + 1}`;
329
+ return { key: `slide-${target.slideIndex}-${index}`, label: label2, title: label2 };
330
+ }
331
+ const el = slides[target.slideIndex]?.elements.find((e) => e.id === target.elementId);
332
+ const typeLabel = el ? elementTypeLabel(el.type) : "Element";
333
+ const label = el ? `${typeLabel} ${shortElementId(target.elementId)}` : `${typeLabel} (missing)`;
334
+ return {
335
+ key: `el-${target.elementId}-${index}`,
336
+ label,
337
+ title: `${typeLabel}: ${target.elementId}`
338
+ };
339
+ });
340
+ }
341
+ function isTwoTableFocus(targets, slides) {
342
+ if (targets.length !== 2 || targets.some((target) => target.kind !== "element")) {
343
+ return false;
344
+ }
345
+ const [a, b] = targets;
346
+ if (a.slideIndex !== b.slideIndex) {
347
+ return false;
348
+ }
349
+ const slide = slides[a.slideIndex];
350
+ const elA = slide?.elements.find((e) => e.id === a.elementId);
351
+ const elB = slide?.elements.find((e) => e.id === b.elementId);
352
+ if (elA?.type !== "table" || elB?.type !== "table") {
353
+ return false;
354
+ }
355
+ return { slideIndex: a.slideIndex, elementIdA: a.elementId, elementIdB: b.elementId };
356
+ }
357
+ function mergeTablesDirective(slideIndex2, elementIdA, elementIdB) {
358
+ return `Merge the two selected tables (elementIdA=${elementIdA}, elementIdB=${elementIdB}) on slide ${slideIndex2 + 1} using merge_tables; stage it now, do not ask me to confirm.`;
359
+ }
360
+
361
+ // src/pptx/ai/panel-controller.ts
362
+ var AI_TOOL_FLASH_MS = 2600;
363
+ function aiFixDirective(element, slideIndex2) {
364
+ return `Review and fix any issues with this ${element.type} (id=${element.id}) on slide ${slideIndex2 + 1}.`;
365
+ }
366
+ function resolveAiEffectiveTargets(state, liveTargets) {
367
+ if (state.pickTargets.length > 0) {
368
+ return state.pickTargets;
369
+ }
370
+ if (state.pinnedFocus && state.pinnedFocus.length > 0) {
371
+ return state.pinnedFocus;
372
+ }
373
+ return liveTargets;
374
+ }
375
+ function isAiFocusPinned(state) {
376
+ return state.pickTargets.length === 0 && state.pinnedFocus !== null;
377
+ }
378
+ function buildHighlights(pickTargets, toolFocus) {
379
+ const out = [];
380
+ for (const target of pickTargets) {
381
+ if (target.kind === "element") {
382
+ out.push({ slideIndex: target.slideIndex, elementId: target.elementId, variant: "pick" });
383
+ }
384
+ }
385
+ for (const elementId2 of toolFocus?.elementIds ?? []) {
386
+ out.push({ slideIndex: toolFocus?.slideIndex ?? 0, elementId: elementId2, variant: "active" });
387
+ }
388
+ return out;
389
+ }
390
+ var INITIAL_STATE = {
391
+ isOpen: false,
392
+ pinnedFocus: null,
393
+ prefill: { text: "", nonce: 0 },
394
+ pickMode: false,
395
+ pickTargets: [],
396
+ canvasHighlights: [],
397
+ canvasAnimating: false,
398
+ changeBatch: null
399
+ };
400
+ function createPptxAiPanelController(deps) {
401
+ const store = chunkY6DO6SVT_cjs.createControllerStore(INITIAL_STATE);
402
+ let toolFocus = null;
403
+ let flashing = false;
404
+ let flashTimer = null;
405
+ const update = (patch) => {
406
+ store.update((current) => {
407
+ const next = { ...current, ...patch };
408
+ const canvasHighlights = buildHighlights(next.pickTargets, toolFocus);
409
+ const sameHighlights = canvasHighlights.length === current.canvasHighlights.length && canvasHighlights.every((h, i) => {
410
+ const prev = current.canvasHighlights[i];
411
+ return prev?.elementId === h.elementId && prev.slideIndex === h.slideIndex && prev.variant === h.variant;
412
+ });
413
+ return {
414
+ ...next,
415
+ canvasHighlights: sameHighlights ? current.canvasHighlights : canvasHighlights,
416
+ canvasAnimating: flashing || canvasHighlights.length > 0
417
+ };
418
+ });
419
+ };
420
+ const liveTargets = () => computeFocusTargets(deps.getSelection());
421
+ const openPanel = (patch) => {
422
+ update({ ...patch, isOpen: true });
423
+ deps.onOpen?.();
424
+ };
425
+ const fixElement = (element, slideIndex2) => {
426
+ const { prefill } = store.getSnapshot();
427
+ openPanel({
428
+ pinnedFocus: liveTargets(),
429
+ prefill: {
430
+ text: element ? aiFixDirective(element, slideIndex2) : "",
431
+ nonce: prefill.nonce + 1
432
+ }
433
+ });
434
+ };
435
+ return {
436
+ getSnapshot: store.getSnapshot,
437
+ subscribe: store.subscribe,
438
+ open: () => openPanel({}),
439
+ close: () => update({ isOpen: false }),
440
+ toggle() {
441
+ if (store.getSnapshot().isOpen) {
442
+ update({ isOpen: false });
443
+ } else {
444
+ openPanel({});
445
+ }
446
+ },
447
+ getLiveTargets: liveTargets,
448
+ getEffectiveTargets: () => resolveAiEffectiveTargets(store.getSnapshot(), liveTargets()),
449
+ pinFocus: () => update({ pinnedFocus: liveTargets() }),
450
+ clearPinnedFocus: () => update({ pinnedFocus: null }),
451
+ askAboutSelection() {
452
+ const { prefill } = store.getSnapshot();
453
+ openPanel({ pinnedFocus: liveTargets(), prefill: { text: "", nonce: prefill.nonce + 1 } });
454
+ },
455
+ fixSelection() {
456
+ fixElement(deps.getSelectedElement?.(), deps.getSelection().activeSlideIndex);
457
+ },
458
+ fixElement,
459
+ startPicking: () => openPanel({ pickMode: true }),
460
+ stopPicking: () => update({ pickMode: false }),
461
+ addPick(slideIndex2, elementId2) {
462
+ const { pickTargets } = store.getSnapshot();
463
+ if (pickTargets.some((t) => t.kind === "element" && t.elementId === elementId2)) {
464
+ return;
465
+ }
466
+ update({ pickTargets: [...pickTargets, { kind: "element", slideIndex: slideIndex2, elementId: elementId2 }] });
467
+ },
468
+ clearPicks: () => update({ pickTargets: [], pickMode: false }),
469
+ flashToolTarget(target) {
470
+ toolFocus = target && target.slideIndex !== void 0 && target.elementIds.length > 0 ? { slideIndex: target.slideIndex, elementIds: target.elementIds } : null;
471
+ flashing = true;
472
+ if (flashTimer) {
473
+ clearTimeout(flashTimer);
474
+ }
475
+ flashTimer = setTimeout(() => {
476
+ toolFocus = null;
477
+ flashing = false;
478
+ flashTimer = null;
479
+ update({});
480
+ }, AI_TOOL_FLASH_MS);
481
+ update({});
482
+ },
483
+ showChangeBatch: (batch) => update({ changeBatch: batch }),
484
+ dispose() {
485
+ if (flashTimer) {
486
+ clearTimeout(flashTimer);
487
+ flashTimer = null;
488
+ }
489
+ }
490
+ };
491
+ }
56
492
 
57
493
  // src/pptx/ai/config.ts
58
494
  function resolveChatTransport(options) {
@@ -1719,76 +2155,6 @@ function exportAiChatLogs(chats, meta, save) {
1719
2155
  return chats.length;
1720
2156
  }
1721
2157
 
1722
- // src/pptx/ai/focus-targets.ts
1723
- function computeFocusTargets(input) {
1724
- const { activeSlideIndex, selectedElementIds, selectedElementId } = input;
1725
- const ids = selectedElementIds.length > 0 ? [...selectedElementIds] : selectedElementId ? [selectedElementId] : [];
1726
- if (ids.length === 0) {
1727
- return [{ kind: "slide", slideIndex: activeSlideIndex }];
1728
- }
1729
- return ids.map((elementId2) => ({ kind: "element", slideIndex: activeSlideIndex, elementId: elementId2 }));
1730
- }
1731
- function elementTypeLabel(type) {
1732
- if (type === "smartArt") {
1733
- return "SmartArt";
1734
- }
1735
- if (type === "ole") {
1736
- return "OLE";
1737
- }
1738
- return type.charAt(0).toUpperCase() + type.slice(1);
1739
- }
1740
- function shortElementId(id) {
1741
- const trimmed = id.trimEnd();
1742
- let start = trimmed.length;
1743
- while (start > 0 && isAsciiDigit(trimmed.charCodeAt(start - 1))) {
1744
- start -= 1;
1745
- }
1746
- if (start < trimmed.length) {
1747
- return trimmed.slice(start);
1748
- }
1749
- const separator = Math.max(id.lastIndexOf("/"), id.lastIndexOf("."), id.lastIndexOf("-"));
1750
- const tail = separator === -1 ? id : id.slice(separator + 1);
1751
- return tail || id;
1752
- }
1753
- function isAsciiDigit(code) {
1754
- return code >= 48 && code <= 57;
1755
- }
1756
- function focusTargetChips(targets, slides) {
1757
- return targets.map((target, index) => {
1758
- if (target.kind === "slide") {
1759
- const label2 = `Slide ${target.slideIndex + 1}`;
1760
- return { key: `slide-${target.slideIndex}-${index}`, label: label2, title: label2 };
1761
- }
1762
- const el = slides[target.slideIndex]?.elements.find((e) => e.id === target.elementId);
1763
- const typeLabel = el ? elementTypeLabel(el.type) : "Element";
1764
- const label = el ? `${typeLabel} ${shortElementId(target.elementId)}` : `${typeLabel} (missing)`;
1765
- return {
1766
- key: `el-${target.elementId}-${index}`,
1767
- label,
1768
- title: `${typeLabel}: ${target.elementId}`
1769
- };
1770
- });
1771
- }
1772
- function isTwoTableFocus(targets, slides) {
1773
- if (targets.length !== 2 || targets.some((target) => target.kind !== "element")) {
1774
- return false;
1775
- }
1776
- const [a, b] = targets;
1777
- if (a.slideIndex !== b.slideIndex) {
1778
- return false;
1779
- }
1780
- const slide = slides[a.slideIndex];
1781
- const elA = slide?.elements.find((e) => e.id === a.elementId);
1782
- const elB = slide?.elements.find((e) => e.id === b.elementId);
1783
- if (elA?.type !== "table" || elB?.type !== "table") {
1784
- return false;
1785
- }
1786
- return { slideIndex: a.slideIndex, elementIdA: a.elementId, elementIdB: b.elementId };
1787
- }
1788
- function mergeTablesDirective(slideIndex2, elementIdA, elementIdB) {
1789
- return `Merge the two selected tables (elementIdA=${elementIdA}, elementIdB=${elementIdB}) on slide ${slideIndex2 + 1} using merge_tables; stage it now, do not ask me to confirm.`;
1790
- }
1791
-
1792
2158
  // src/pptx/ai/chat-history-controller.ts
1793
2159
  var SAVE_DEBOUNCE_MS = 800;
1794
2160
  var TITLE_MAX = 40;
@@ -2012,100 +2378,6 @@ async function buildPptxAiTools(config = {}) {
2012
2378
  function buildPptxAiSystemPrompt(options = {}) {
2013
2379
  return buildSystemPrompt(options);
2014
2380
  }
2015
- function applyElementUpdate(el, u) {
2016
- if (u.x !== void 0) {
2017
- el.x = u.x;
2018
- }
2019
- if (u.y !== void 0) {
2020
- el.y = u.y;
2021
- }
2022
- if (u.width !== void 0) {
2023
- el.width = u.width;
2024
- }
2025
- if (u.height !== void 0) {
2026
- el.height = u.height;
2027
- }
2028
- if (u.rotation !== void 0) {
2029
- el.rotation = u.rotation;
2030
- }
2031
- if (u.opacity !== void 0) {
2032
- el.opacity = u.opacity;
2033
- }
2034
- if (u.hidden !== void 0) {
2035
- el.hidden = u.hidden;
2036
- }
2037
- if (u.flipHorizontal !== void 0) {
2038
- el.flipHorizontal = u.flipHorizontal;
2039
- }
2040
- if (u.flipVertical !== void 0) {
2041
- el.flipVertical = u.flipVertical;
2042
- }
2043
- applyTextUpdate(el, u);
2044
- applyShapeStyleUpdate(el, u);
2045
- }
2046
- function applyTextUpdate(el, u) {
2047
- if (!pptx.hasTextProperties(el)) {
2048
- return;
2049
- }
2050
- const textEl = el;
2051
- if (u.text !== void 0) {
2052
- textEl.text = u.text;
2053
- if (textEl.textSegments && textEl.textSegments.length > 0) {
2054
- textEl.textSegments[0].text = u.text;
2055
- } else {
2056
- textEl.textSegments = [{ text: u.text, style: {} }];
2057
- }
2058
- }
2059
- if (u.fontSize === void 0 && u.fontFamily === void 0 && u.fontColor === void 0 && u.bold === void 0 && u.italic === void 0 && u.underline === void 0 && u.align === void 0) {
2060
- return;
2061
- }
2062
- const textStyle = {};
2063
- if (u.fontSize !== void 0) {
2064
- textStyle.fontSize = u.fontSize;
2065
- }
2066
- if (u.fontFamily !== void 0) {
2067
- textStyle.fontFamily = u.fontFamily;
2068
- }
2069
- if (u.fontColor !== void 0) {
2070
- textStyle.color = u.fontColor;
2071
- }
2072
- if (u.bold !== void 0) {
2073
- textStyle.bold = u.bold;
2074
- }
2075
- if (u.italic !== void 0) {
2076
- textStyle.italic = u.italic;
2077
- }
2078
- if (u.underline !== void 0) {
2079
- textStyle.underline = u.underline;
2080
- }
2081
- if (u.align !== void 0) {
2082
- textStyle.align = u.align;
2083
- }
2084
- textEl.textStyle = { ...textEl.textStyle, ...textStyle };
2085
- if (textEl.textSegments) {
2086
- textEl.textSegments = textEl.textSegments.map((seg) => chunkPBZWDEXQ_cjs.updateTextSegmentStyle(seg, textStyle));
2087
- }
2088
- }
2089
- function applyShapeStyleUpdate(el, u) {
2090
- if (u.fillColor === void 0 && u.strokeColor === void 0 && u.strokeWidth === void 0) {
2091
- return;
2092
- }
2093
- if (!pptx.hasShapeProperties(el)) {
2094
- return;
2095
- }
2096
- const holder = el;
2097
- holder.shapeStyle ??= {};
2098
- const style = holder.shapeStyle;
2099
- if (u.fillColor !== void 0) {
2100
- style.fillColor = u.fillColor;
2101
- }
2102
- if (u.strokeColor !== void 0) {
2103
- style.strokeColor = u.strokeColor;
2104
- }
2105
- if (u.strokeWidth !== void 0) {
2106
- style.strokeWidth = u.strokeWidth;
2107
- }
2108
- }
2109
2381
 
2110
2382
  // src/pptx/ai/tool-summary.ts
2111
2383
  function toolLabel(toolName) {
@@ -2520,11 +2792,13 @@ Object.defineProperty(exports, "mergeTableElements", {
2520
2792
  get: function () { return tableMerge.mergeTableElements; }
2521
2793
  });
2522
2794
  exports.AI_CHANGE_ATTR = AI_CHANGE_ATTR;
2795
+ exports.AI_TOOL_FLASH_MS = AI_TOOL_FLASH_MS;
2523
2796
  exports.BASE_SYSTEM_PROMPT = BASE_SYSTEM_PROMPT;
2524
2797
  exports.BESPOKE_TOOL_ENTRIES = BESPOKE_TOOL_ENTRIES;
2525
2798
  exports.MCP_TOOL_ENTRIES = MCP_TOOL_ENTRIES;
2526
2799
  exports.ProposalStore = ProposalStore;
2527
2800
  exports.aiChangeAnimationCss = aiChangeAnimationCss;
2801
+ exports.aiFixDirective = aiFixDirective;
2528
2802
  exports.allToolNames = allToolNames;
2529
2803
  exports.applyElementUpdate = applyElementUpdate;
2530
2804
  exports.applyShapeStyleUpdate = applyShapeStyleUpdate;
@@ -2547,6 +2821,8 @@ exports.computeFocusTargets = computeFocusTargets;
2547
2821
  exports.createAiChangeAnimator = createAiChangeAnimator;
2548
2822
  exports.createAiChatHistoryController = createAiChatHistoryController;
2549
2823
  exports.createAiChatSession = createAiChatSession;
2824
+ exports.createPptxAiBridge = createPptxAiBridge;
2825
+ exports.createPptxAiPanelController = createPptxAiPanelController;
2550
2826
  exports.createVanillaChat = createVanillaChat;
2551
2827
  exports.deckDataFieldChanged = deckDataFieldChanged;
2552
2828
  exports.deckIdFromBridge = deckIdFromBridge;
@@ -2561,13 +2837,16 @@ exports.extractReadyToolCalls = extractReadyToolCalls;
2561
2837
  exports.focusTargetChips = focusTargetChips;
2562
2838
  exports.humanizeDiffLine = humanizeDiffLine;
2563
2839
  exports.isAiAvailable = isAiAvailable;
2840
+ exports.isAiFocusPinned = isAiFocusPinned;
2564
2841
  exports.isTwoTableFocus = isTwoTableFocus;
2565
2842
  exports.loadAiSdk = loadAiSdk;
2566
2843
  exports.mergeTablesDirective = mergeTablesDirective;
2567
2844
  exports.newChatId = newChatId;
2845
+ exports.pptxAiDeckTitle = pptxAiDeckTitle;
2568
2846
  exports.requireElement = requireElement;
2569
2847
  exports.requireSlide = requireSlide;
2570
2848
  exports.resetAiSdkCache = resetAiSdkCache;
2849
+ exports.resolveAiEffectiveTargets = resolveAiEffectiveTargets;
2571
2850
  exports.resolveChangeAnimationConfig = resolveChangeAnimationConfig;
2572
2851
  exports.resolveChatTransport = resolveChatTransport;
2573
2852
  exports.routeWrite = routeWrite;
@@ -13,6 +13,10 @@
13
13
  export { isAiAvailable, loadAiSdk, resetAiSdkCache } from './loader.js';
14
14
  export type { AiSdkModule } from './loader.js';
15
15
  export { deckDataFieldChanged } from './deck-data-diff.js';
16
+ export { createPptxAiBridge, pptxAiDeckTitle } from './bridge-factory.js';
17
+ export type { PptxAiBridgePort, PptxAiCanvasSize } from './bridge-factory.js';
18
+ export { AI_TOOL_FLASH_MS, aiFixDirective, createPptxAiPanelController, isAiFocusPinned, resolveAiEffectiveTargets, } from './panel-controller.js';
19
+ export type { PptxAiPanelController, PptxAiPanelControllerDeps, PptxAiPanelState, PptxAiPrefill, } from './panel-controller.js';
16
20
  export { resolveChatTransport } from './config.js';
17
21
  export type { PptxAiConfig, PptxAiConnection, PptxAiContextStrategy, PptxAiHistoryHooks, PptxAiToolName, PptxAiUIMessage, PptxAiWritePolicy, ResolveTransportOptions, } from './config.js';
18
22
  export type { PptxAiBridge, PptxAiDataUpdater, PptxAiDeckMeta, PptxAiElementUpdate, PptxAiFocusedTarget, PptxAiNotifyLevel, PptxAiSlidesUpdater, } from './bridge.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/pptx/ai/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/pptx/ai/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AACrE,YAAY,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAE5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAExD,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACvE,YAAY,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAE3E,OAAO,EACN,gBAAgB,EAChB,cAAc,EACd,2BAA2B,EAC3B,eAAe,EACf,yBAAyB,GACzB,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACX,qBAAqB,EACrB,yBAAyB,EACzB,gBAAgB,EAChB,aAAa,GACb,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAChD,YAAY,EACX,YAAY,EACZ,gBAAgB,EAChB,qBAAqB,EACrB,kBAAkB,EAClB,cAAc,EACd,eAAe,EACf,iBAAiB,EACjB,uBAAuB,GACvB,MAAM,UAAU,CAAC;AAElB,YAAY,EACX,YAAY,EACZ,iBAAiB,EACjB,cAAc,EACd,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,GACnB,MAAM,UAAU,CAAC;AAElB,OAAO,EAAE,gBAAgB,EAAE,0BAA0B,EAAE,MAAM,mBAAmB,CAAC;AACjF,YAAY,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAE/D,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEhE,OAAO,EACN,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,EAClB,cAAc,EACd,UAAU,GACV,MAAM,WAAW,CAAC;AAEnB,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAExE,OAAO,EACN,YAAY,EACZ,oBAAoB,EACpB,kBAAkB,EAClB,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,YAAY,EACZ,UAAU,EACV,aAAa,GACb,MAAM,SAAS,CAAC;AACjB,YAAY,EACX,aAAa,EACb,cAAc,EACd,eAAe,EACf,aAAa,EACb,WAAW,EACX,gBAAgB,EAChB,cAAc,EACd,gBAAgB,GAChB,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChD,YAAY,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAEnD,OAAO,EAAE,sBAAsB,EAAE,4BAA4B,EAAE,MAAM,mBAAmB,CAAC;AACzF,YAAY,EACX,uBAAuB,EACvB,gBAAgB,EAChB,aAAa,EACb,+BAA+B,GAC/B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACnF,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAChG,YAAY,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,YAAY,EAAE,eAAe,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAEjG,OAAO,EACN,kBAAkB,EAClB,oBAAoB,EACpB,kBAAkB,EAClB,gBAAgB,EAChB,SAAS,EACT,YAAY,GACZ,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EACX,SAAS,EACT,WAAW,EACX,WAAW,EACX,YAAY,EACZ,aAAa,EACb,mBAAmB,EACnB,oBAAoB,EACpB,eAAe,GACf,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACN,mBAAmB,EACnB,gBAAgB,EAChB,eAAe,EACf,oBAAoB,GACpB,MAAM,iBAAiB,CAAC;AACzB,YAAY,EAAE,iBAAiB,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAEzF,OAAO,EACN,6BAA6B,EAC7B,gBAAgB,EAChB,eAAe,EACf,SAAS,GACT,MAAM,2BAA2B,CAAC;AACnC,YAAY,EACX,uBAAuB,EACvB,2BAA2B,GAC3B,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,YAAY,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAEjF,OAAO,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAErE,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAE/F,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,YAAY,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAE5E,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AACtE,YAAY,EACX,WAAW,EACX,aAAa,EACb,cAAc,EACd,kBAAkB,EAClB,kBAAkB,GAClB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AACpF,YAAY,EAAE,YAAY,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAExF,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,YAAY,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC"}