ooxml-ui 1.7.0 → 1.8.1

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 (143) hide show
  1. package/README.md +89 -36
  2. package/custom-elements.json +251 -4
  3. package/dist/chrome/ruler.d.ts +7 -1
  4. package/dist/chrome/ruler.d.ts.map +1 -1
  5. package/dist/chrome/task-pane.d.ts +2 -0
  6. package/dist/chrome/task-pane.d.ts.map +1 -1
  7. package/dist/chrome/title-bar.d.ts +2 -1
  8. package/dist/chrome/title-bar.d.ts.map +1 -1
  9. package/dist/{chunk-6UPGM3X2.js → chunk-7US5GCXF.js} +158 -153
  10. package/dist/{chunk-VAR6O7II.js → chunk-KF72ZA6V.js} +4 -2
  11. package/dist/{chunk-SCWCZSTE.js → chunk-O7APCA5N.js} +612 -69
  12. package/dist/chunk-W6AV3GHC.js +112 -0
  13. package/dist/controls.d.ts +8 -2
  14. package/dist/controls.d.ts.map +1 -1
  15. package/dist/controls.js +1 -1
  16. package/dist/dialog/dialog-footer.d.ts.map +1 -1
  17. package/dist/dialog/options-dialog.d.ts.map +1 -1
  18. package/dist/docx/editor-core.d.ts +3 -0
  19. package/dist/docx/editor-shell.d.ts +2 -0
  20. package/dist/docx/element-api.d.ts +7 -0
  21. package/dist/docx/events.d.ts +4 -1
  22. package/dist/docx/index.d.ts +1 -0
  23. package/dist/docx/ribbon-color-grid.d.ts +3 -4
  24. package/dist/docx.js +46 -78
  25. package/dist/edit-worker.js +52 -3
  26. package/dist/form/color-custom.d.ts +79 -0
  27. package/dist/form/color-custom.d.ts.map +1 -0
  28. package/dist/form/color-grid.d.ts +125 -0
  29. package/dist/form/color-grid.d.ts.map +1 -0
  30. package/dist/index.d.ts +2 -1
  31. package/dist/index.js +4 -3
  32. package/dist/menu/context-menu.d.ts.map +1 -1
  33. package/dist/menu/menu-button.d.ts +2 -1
  34. package/dist/menu/menu-button.d.ts.map +1 -1
  35. package/dist/notices/paste-options.d.ts.map +1 -1
  36. package/dist/notices/toasts.d.ts.map +1 -1
  37. package/dist/pptx/{chart-3d-view-scene-ERX2GRCD.mjs → chart-3d-view-scene-P6MAFEGL.mjs} +2 -2
  38. package/dist/pptx/{chart-3d-view-scene-55WDENSO.cjs → chart-3d-view-scene-V74F7ZOC.cjs} +38 -38
  39. package/dist/pptx/{chunk-G2YUKLRX.cjs → chunk-526IHNIH.cjs} +1 -1
  40. package/dist/pptx/{chunk-SVN6OBG4.mjs → chunk-DPOES4WM.mjs} +26 -11
  41. package/dist/pptx/{chunk-XGPLA2OY.cjs → chunk-GCS5KBMR.cjs} +481 -605
  42. package/dist/pptx/{chunk-RPRC2EG5.cjs → chunk-K3S2A64B.cjs} +13 -13
  43. package/dist/pptx/{chunk-RCTRRS6E.mjs → chunk-MCHPNO42.mjs} +264 -447
  44. package/dist/pptx/{chunk-AWQRQUPL.mjs → chunk-NAFUYAQP.mjs} +1 -1
  45. package/dist/pptx/{chunk-LCIXR7WE.cjs → chunk-VFPVEVF4.cjs} +26 -11
  46. package/dist/pptx/{chunk-TKATCPOK.mjs → chunk-ZAOYPCAM.mjs} +1 -1
  47. package/dist/pptx/dom/activex-controls-overlay.d.ts.map +1 -1
  48. package/dist/pptx/dom/elements/image.d.ts.map +1 -1
  49. package/dist/pptx/dom/elements/media.d.ts.map +1 -1
  50. package/dist/pptx/dom/elements/text-block.d.ts.map +1 -1
  51. package/dist/pptx/dom/elements/zoom.d.ts.map +1 -1
  52. package/dist/pptx/dom/index.cjs +252 -247
  53. package/dist/pptx/dom/index.mjs +11 -6
  54. package/dist/pptx/export/html2canvas-clone.cjs +2 -2
  55. package/dist/pptx/export/html2canvas-clone.mjs +1 -1
  56. package/dist/pptx/index.cjs +3059 -3023
  57. package/dist/pptx/index.mjs +4 -4
  58. package/dist/pptx/render/chart-combo-series.d.ts.map +1 -1
  59. package/dist/pptx/render/chart-combo-stock.cjs +3 -3
  60. package/dist/pptx/render/chart-combo-stock.mjs +1 -1
  61. package/dist/pptx/render/chart-marker-shape.d.ts.map +1 -1
  62. package/dist/pptx/render/chart-overlays.cjs +7 -7
  63. package/dist/pptx/render/chart-overlays.mjs +1 -1
  64. package/dist/pptx/render/chart-surface-treemap.cjs +4 -4
  65. package/dist/pptx/render/chart-surface-treemap.mjs +1 -1
  66. package/dist/pptx/render/chart-view-model.cjs +44 -44
  67. package/dist/pptx/render/chart-view-model.mjs +1 -1
  68. package/dist/pptx/render/chart-waterfall-map.cjs +6 -6
  69. package/dist/pptx/render/chart-waterfall-map.mjs +1 -1
  70. package/dist/pptx/render/connector-router-types.d.ts +4 -52
  71. package/dist/pptx/render/connector-router-types.d.ts.map +1 -1
  72. package/dist/pptx/render/connector-router.d.ts +4 -32
  73. package/dist/pptx/render/connector-router.d.ts.map +1 -1
  74. package/dist/pptx/render/index.d.ts +1 -0
  75. package/dist/pptx/render/index.d.ts.map +1 -1
  76. package/dist/pptx/render/ribbon-add-ins.d.ts +53 -0
  77. package/dist/pptx/render/ribbon-add-ins.d.ts.map +1 -0
  78. package/dist/pptx/web-components/index.d.ts +1 -0
  79. package/dist/pptx/web-components/index.d.ts.map +1 -1
  80. package/dist/pptx/web-components/ribbon-add-in.d.ts +20 -0
  81. package/dist/pptx/web-components/ribbon-add-in.d.ts.map +1 -0
  82. package/dist/ribbon/add-in-tabs.d.ts +36 -0
  83. package/dist/ribbon/group-overflow.d.ts +37 -0
  84. package/dist/ribbon/group-overflow.d.ts.map +1 -0
  85. package/dist/ribbon/ribbon-tabs.d.ts.map +1 -1
  86. package/dist/teams/app/index.d.ts +1 -1
  87. package/dist/teams.js +2 -2
  88. package/dist/visio/format-pane-fields.d.ts +42 -0
  89. package/dist/visio/format-pane-view.d.ts +44 -0
  90. package/dist/visio/index.d.ts +1 -0
  91. package/dist/visio/page-setup-action.d.ts +4 -0
  92. package/dist/visio/ribbon-action.d.ts +17 -6
  93. package/dist/visio/ribbon-change-shape.d.ts +17 -6
  94. package/dist/visio/ribbon-color-menu.d.ts +29 -0
  95. package/dist/visio/ribbon-inline-galleries.d.ts +20 -0
  96. package/dist/visio/ribbon-overflow.d.ts +7 -0
  97. package/dist/visio/ribbon-review.d.ts +5 -2
  98. package/dist/visio/ribbon-router.d.ts +3 -3
  99. package/dist/visio/ribbon-shape-styles.d.ts +4 -1
  100. package/dist/visio/ribbon-style-options.d.ts +4 -3
  101. package/dist/visio/shapes-document.d.ts +29 -0
  102. package/dist/visio/shapes-sections.d.ts +19 -5
  103. package/dist/visio/shapes-storage.d.ts +15 -0
  104. package/dist/visio/shapes-window.d.ts +7 -0
  105. package/dist/visio/stencil-catalog.d.ts +4 -0
  106. package/dist/visio/text-measurer.d.ts +25 -0
  107. package/dist/visio/viewer-auto-connect-parts.d.ts +12 -0
  108. package/dist/visio/viewer-auto-connect.d.ts +33 -0
  109. package/dist/visio/viewer-change-shape.d.ts +8 -4
  110. package/dist/visio/viewer-chrome.d.ts +3 -2
  111. package/dist/visio/viewer-color-menus.d.ts +34 -0
  112. package/dist/visio/viewer-commands.d.ts +4 -3
  113. package/dist/visio/viewer-connector-tool.d.ts +5 -3
  114. package/dist/visio/viewer-data-window.d.ts +5 -1
  115. package/dist/visio/viewer-draw-tool.d.ts +1 -11
  116. package/dist/visio/viewer-element.d.ts +8 -0
  117. package/dist/visio/viewer-format-pane.d.ts +26 -0
  118. package/dist/visio/viewer-guides.d.ts +3 -3
  119. package/dist/visio/viewer-layout-commands.d.ts +5 -1
  120. package/dist/visio/viewer-more-colors.d.ts +16 -0
  121. package/dist/visio/viewer-page-setup.d.ts +6 -0
  122. package/dist/visio/viewer-ruler-grid.d.ts +25 -0
  123. package/dist/visio/viewer-ruler.d.ts +11 -3
  124. package/dist/visio/viewer-snap-glue.d.ts +23 -0
  125. package/dist/visio/viewer-stencil.d.ts +4 -1
  126. package/dist/visio.js +6688 -5303
  127. package/dist/xlsx/component.d.ts +8 -0
  128. package/dist/xlsx/dialogs/format-cells/color-swatches.d.ts +4 -2
  129. package/dist/xlsx/dialogs/styles.d.ts +1 -1
  130. package/dist/xlsx/events.d.ts +4 -1
  131. package/dist/xlsx/index.d.ts +1 -0
  132. package/dist/xlsx/ribbon/color-grid.d.ts +25 -7
  133. package/dist/xlsx/ribbon/ribbon.d.ts +3 -0
  134. package/dist/xlsx.js +121 -163
  135. package/package.json +5 -4
  136. package/dist/pptx/render/connector-router-astar.d.ts +0 -24
  137. package/dist/pptx/render/connector-router-astar.d.ts.map +0 -1
  138. package/dist/pptx/render/connector-router-graph.d.ts +0 -38
  139. package/dist/pptx/render/connector-router-graph.d.ts.map +0 -1
  140. package/dist/visio/format-shape-dialog.d.ts +0 -21
  141. package/dist/visio/viewer-format-shape.d.ts +0 -16
  142. package/dist/visio/viewer-paint-dialog.d.ts +0 -28
  143. package/dist/visio/viewer-paint-properties.d.ts +0 -13
@@ -1 +1 @@
1
- {"version":3,"file":"task-pane.d.ts","sourceRoot":"","sources":["../../src/chrome/task-pane.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAiB,MAAM,SAAS,CAAC;AAKvD;;;;;GAKG;AACH,qBAAa,gBAAiB,SAAQ,aAAa;IAClD,MAAM,CAAC,UAAU,SAAuB;IACxC,OAAgB,MAAM,4BAAsB;IAC5C,OAAgB,UAAU;QACzB,KAAK;YAAI,IAAI;;QACb,UAAU;YAAI,IAAI;YAAU,SAAS;;MACpC;IACM,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IAE3B,cAIC;IAED,UAAmB,UAAU,IAAI,IAAI,CAGpC;IAED,UAAmB,MAAM,oCAaxB;CACD;AAED,eAAO,MAAM,cAAc,+BAAyD,CAAC"}
1
+ {"version":3,"file":"task-pane.d.ts","sourceRoot":"","sources":["../../src/chrome/task-pane.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAiB,MAAM,SAAS,CAAC;AAKvD;;;;;;;GAOG;AACH,qBAAa,gBAAiB,SAAQ,aAAa;IAClD,MAAM,CAAC,UAAU,SAAuB;IACxC,OAAgB,MAAM,4BAAsB;IAC5C,OAAgB,UAAU;QACzB,KAAK;YAAI,IAAI;;QACb,UAAU;YAAI,IAAI;YAAU,SAAS;;MACpC;IACM,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IAE3B,cAIC;IAED,UAAmB,UAAU,IAAI,IAAI,CAGpC;IAED,UAAmB,MAAM,oCAaxB;CACD;AAED,eAAO,MAAM,cAAc,+BAAyD,CAAC"}
@@ -6,7 +6,8 @@ export * from './title-bar-types.js';
6
6
  * `<office-ui-title-bar>`: Office's title bar above the ribbon (app mark, AutoSave, Quick
7
7
  * Access Toolbar, file name and status, centred command search, `actions`, `collaboration` and
8
8
  * `account` slots). Controlled: set `state` (`OfficeTitleBarState`, every string translated); the bar
9
- * owns no effects. `placement="belowRibbon"` renders only the Quick Access row and hides
9
+ * owns no effects. The `centered` attribute puts the file name in the middle of the bar.
10
+ * `placement="belowRibbon"` renders only the Quick Access row and hides
10
11
  * itself (`data-empty`) while that row is empty. Events (bubbling, composed; static names let a
11
12
  * product subclass keep its published ones): `office-autosave-toggle`, `office-command`
12
13
  * `{ command }` from a Quick Access button and `office-command-search` `{ query, command? }`.
@@ -1 +1 @@
1
- {"version":3,"file":"title-bar.d.ts","sourceRoot":"","sources":["../../src/chrome/title-bar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,cAAc,EAAE,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAIrE,OAAO,EAAE,aAAa,EAAiB,MAAM,SAAS,CAAC;AAKvD,OAAO,EAIN,KAAK,qBAAqB,EAC1B,KAAK,uBAAuB,EAC5B,KAAK,mBAAmB,EACxB,MAAM,mBAAmB,CAAC;AAG3B,cAAc,mBAAmB,CAAC;AAYlC;;;;;;;;;;;GAWG;AACH,qBAAa,gBAAiB,SAAQ,aAAa;IAClD,MAAM,CAAC,aAAa,SAA4B;IAChD,MAAM,CAAC,YAAY,SAAoB;IACvC,MAAM,CAAC,WAAW,SAA2B;IAC7C,uEAAuE;IACvE,MAAM,CAAC,SAAS,SAAsB;IACtC,MAAM,CAAC,SAAS,SAAsB;IACtC,OAAgB,MAAM,4BAAsB;IAC5C,OAAgB,UAAU;QACzB,SAAS;YAAI,IAAI;YAAU,UAAU;;QACrC,IAAI;YAAI,KAAK;;QACb,KAAK;YAAI,KAAK;;QACd,MAAM;YAAI,KAAK;;QACf,WAAW;YAAI,KAAK;;QACpB,IAAI;YAAI,KAAK;;MACZ;IACM,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,SAAS,qBAAqB,EAAE,CAAC;IACxC,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,OAAO,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,KAAK,CAA8B;IAE3C,cAOC;IAED,IAAI,KAAK,IAAI,mBAAmB,CAE/B;IACD,IAAI,KAAK,CAAC,KAAK,EAAE,mBAAmB,GAAG,IAAI,GAAG,SAAS,EAGtD;IAED,8FAA8F;IAC9F,IAAI,SAAS,IAAI,uBAAuB,CAEvC;IACD,IAAI,SAAS,CAAC,KAAK,EAAE,uBAAuB,EAG3C;IAED,gFAAgF;IAChF,IAAI,WAAW,IAAI,WAAW,CAI7B;IAED,qEAAqE;IACrE,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAEzB;IAED,6EAA6E;IAC7E,QAAQ,IAAI,IAAI,CAAG;IAInB,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,UAAU;IAKlB,OAAO,CAAC,QAAQ;IAoBhB,OAAO,CAAC,WAAW;IAkCnB,OAAO,KAAK,KAAK,GAEhB;IAED,OAAO,CAAC,WAAW;IAUnB,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,MAAM;IAUd,OAAO,CAAC,WAAW;IAgBnB,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,OAAO;IA+Cf,OAAO,CAAC,SAAS;IAwBjB,OAAO,CAAC,QAAQ;IAwBhB,UAAmB,UAAU,CAAC,OAAO,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI,CAKjE;IAED,UAAmB,OAAO,IAAI,IAAI,CAEjC;IAED,UAAmB,MAAM,sBA+BxB;CACD;AAED,eAAO,MAAM,cAAc,+BAGzB,CAAC"}
1
+ {"version":3,"file":"title-bar.d.ts","sourceRoot":"","sources":["../../src/chrome/title-bar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,cAAc,EAAE,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAIrE,OAAO,EAAE,aAAa,EAAiB,MAAM,SAAS,CAAC;AAKvD,OAAO,EAIN,KAAK,qBAAqB,EAC1B,KAAK,uBAAuB,EAC5B,KAAK,mBAAmB,EACxB,MAAM,mBAAmB,CAAC;AAG3B,cAAc,mBAAmB,CAAC;AAYlC;;;;;;;;;;;;GAYG;AACH,qBAAa,gBAAiB,SAAQ,aAAa;IAClD,MAAM,CAAC,aAAa,SAA4B;IAChD,MAAM,CAAC,YAAY,SAAoB;IACvC,MAAM,CAAC,WAAW,SAA2B;IAC7C,uEAAuE;IACvE,MAAM,CAAC,SAAS,SAAsB;IACtC,MAAM,CAAC,SAAS,SAAsB;IACtC,OAAgB,MAAM,4BAAsB;IAC5C,OAAgB,UAAU;QACzB,SAAS;YAAI,IAAI;YAAU,UAAU;;QACrC,IAAI;YAAI,KAAK;;QACb,KAAK;YAAI,KAAK;;QACd,MAAM;YAAI,KAAK;;QACf,WAAW;YAAI,KAAK;;QACpB,IAAI;YAAI,KAAK;;MACZ;IACM,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,SAAS,qBAAqB,EAAE,CAAC;IACxC,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,OAAO,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,KAAK,CAA8B;IAE3C,cAOC;IAED,IAAI,KAAK,IAAI,mBAAmB,CAE/B;IACD,IAAI,KAAK,CAAC,KAAK,EAAE,mBAAmB,GAAG,IAAI,GAAG,SAAS,EAGtD;IAED,8FAA8F;IAC9F,IAAI,SAAS,IAAI,uBAAuB,CAEvC;IACD,IAAI,SAAS,CAAC,KAAK,EAAE,uBAAuB,EAG3C;IAED,gFAAgF;IAChF,IAAI,WAAW,IAAI,WAAW,CAI7B;IAED,qEAAqE;IACrE,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAEzB;IAED,6EAA6E;IAC7E,QAAQ,IAAI,IAAI,CAAG;IAInB,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,UAAU;IAKlB,OAAO,CAAC,QAAQ;IAoBhB,OAAO,CAAC,WAAW;IAkCnB,OAAO,KAAK,KAAK,GAEhB;IAED,OAAO,CAAC,WAAW;IAUnB,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,MAAM;IAUd,OAAO,CAAC,WAAW;IAgBnB,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,OAAO;IA+Cf,OAAO,CAAC,SAAS;IAwBjB,OAAO,CAAC,QAAQ;IAwBhB,UAAmB,UAAU,CAAC,OAAO,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI,CAKjE;IAED,UAAmB,OAAO,IAAI,IAAI,CAEjC;IAED,UAAmB,MAAM,sBA+BxB;CACD;AAED,eAAO,MAAM,cAAc,+BAGzB,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { THEME_CSS, installOfficeUiTheme } from './chunk-BCH2ZLWI.js';
2
- import { defineMenuButton, defineMenuItem, registerControls, defineSwitch } from './chunk-SCWCZSTE.js';
2
+ import { defineMenuButton, defineMenuItem, registerControls, defineSwitch } from './chunk-O7APCA5N.js';
3
3
  import { registerIcon, getIcon } from './chunk-M6GF5ED2.js';
4
4
  import { initialsOf, definePresence } from './chunk-L7JV5FVE.js';
5
5
  import { definer, OfficeElement, controlStyles } from './chunk-OGNNNTKI.js';
@@ -590,18 +590,18 @@ var OfficeUiChatComposer = class extends TeamsElement {
590
590
  ${this.files.length ? html`<ul class="pending">
591
591
  ${this.files.map(
592
592
  (f, i) => html`<li>
593
- <button
594
- type="button"
595
- aria-label=${`Remove ${f.name}`}
596
- @click=${() => {
593
+ <button
594
+ type="button"
595
+ aria-label=${`Remove ${f.name}`}
596
+ @click=${() => {
597
597
  this.files = this.files.filter((_, j) => j !== i);
598
598
  this.focusMessage();
599
599
  this.saveDraft();
600
600
  }}
601
- >
602
- <span class="file-label" title=${f.name}>${f.name}</span>${icon("close")}
603
- </button>
604
- </li>`
601
+ >
602
+ <span class="file-label" title=${f.name}>${f.name}</span>${icon("close")}
603
+ </button>
604
+ </li>`
605
605
  )}
606
606
  </ul>` : nothing}
607
607
  <div class="bar">
@@ -628,9 +628,9 @@ var OfficeUiChatComposer = class extends TeamsElement {
628
628
  ${this.emojiOpen ? html`<div class="picker" role="menu">
629
629
  ${EMOJI.map(
630
630
  (e) => html`<button
631
- type="button"
632
- role="menuitem"
633
- @click=${() => {
631
+ type="button"
632
+ role="menuitem"
633
+ @click=${() => {
634
634
  const area = this.renderRoot.querySelector("textarea");
635
635
  const start = area?.selectionStart ?? this.value.length, end = area?.selectionEnd ?? start;
636
636
  this.value = this.value.slice(0, start) + e + this.value.slice(end);
@@ -642,9 +642,9 @@ var OfficeUiChatComposer = class extends TeamsElement {
642
642
  this.emojiOpen = false;
643
643
  this.renderRoot.querySelector("textarea")?.focus();
644
644
  }}
645
- >
646
- ${e}
647
- </button>`
645
+ >
646
+ ${e}
647
+ </button>`
648
648
  )}
649
649
  </div>` : nothing}
650
650
  </div>
@@ -773,12 +773,12 @@ var OfficeUiChatList = class extends TeamsElement {
773
773
  <div class="toolbar" role="toolbar" aria-label="Message actions">
774
774
  ${QUICK_REACTIONS.slice(0, 4).map(
775
775
  (emoji) => html`<button
776
- type="button"
777
- aria-label=${`React ${emoji}`}
778
- @click=${() => this.fire("office-chat-react", { messageId: m.id, emoji })}
779
- >
780
- ${emoji}
781
- </button>`
776
+ type="button"
777
+ aria-label=${`React ${emoji}`}
778
+ @click=${() => this.fire("office-chat-react", { messageId: m.id, emoji })}
779
+ >
780
+ ${emoji}
781
+ </button>`
782
782
  )}
783
783
  <button
784
784
  type="button"
@@ -967,7 +967,8 @@ var XLSX_EDITOR_EVENTS = [
967
967
  "selection-change",
968
968
  "sheet-change",
969
969
  "dirty-change",
970
- "collaboration-change"
970
+ "collaboration-change",
971
+ "office-ribbon-add-in"
971
972
  ];
972
973
  var CANCELABLE = /* @__PURE__ */ new Set(["file-command"]);
973
974
  function emitEvent(target, type, detail) {
@@ -1883,35 +1884,35 @@ var TeamsFilesPanel = class extends LitElement {
1883
1884
  <tbody>
1884
1885
  ${files.length ? files.map(
1885
1886
  (file) => html`<tr>
1886
- <td>
1887
- <div class="file-name">
1888
- <span class="badge" data-kind=${file.kind}
1889
- >${{ docx: "W", xlsx: "X", pptx: "P", vsdx: "V", other: "F" }[file.kind]}</span
1890
- >
1891
- <button
1892
- class="file-open"
1893
- type="button"
1894
- aria-label=${`Open ${file.name}`}
1895
- title=${file.name}
1896
- ?disabled=${!file.url}
1897
- @click=${() => this.emit("open", file)}
1898
- >
1899
- ${file.name}
1900
- </button>
1901
- </div>
1902
- </td>
1903
- <td><time>${new Date(file.ts).toLocaleDateString()}</time></td>
1904
- <td>${file.author}</td>
1905
- <td>
1906
- ${file.channelName ? `# ${file.channelName}` : `# ${this.channelName}`}
1907
- </td>
1908
- <td>
1909
- <teams-file-actions
1910
- .file=${file}
1911
- .client=${this.client}
1912
- ></teams-file-actions>
1913
- </td>
1914
- </tr>`
1887
+ <td>
1888
+ <div class="file-name">
1889
+ <span class="badge" data-kind=${file.kind}
1890
+ >${{ docx: "W", xlsx: "X", pptx: "P", vsdx: "V", other: "F" }[file.kind]}</span
1891
+ >
1892
+ <button
1893
+ class="file-open"
1894
+ type="button"
1895
+ aria-label=${`Open ${file.name}`}
1896
+ title=${file.name}
1897
+ ?disabled=${!file.url}
1898
+ @click=${() => this.emit("open", file)}
1899
+ >
1900
+ ${file.name}
1901
+ </button>
1902
+ </div>
1903
+ </td>
1904
+ <td><time>${new Date(file.ts).toLocaleDateString()}</time></td>
1905
+ <td>${file.author}</td>
1906
+ <td>
1907
+ ${file.channelName ? `# ${file.channelName}` : `# ${this.channelName}`}
1908
+ </td>
1909
+ <td>
1910
+ <teams-file-actions
1911
+ .file=${file}
1912
+ .client=${this.client}
1913
+ ></teams-file-actions>
1914
+ </td>
1915
+ </tr>`
1915
1916
  ) : html`<tr>
1916
1917
  <td colspan="5" class="none">
1917
1918
  ${this.query.trim() ? "No matching files." : "No files shared yet."}
@@ -1936,18 +1937,20 @@ function themeChoices(current, change) {
1936
1937
  return html`<div class="theme-options" role="group" aria-label="Theme">
1937
1938
  ${["system", "light", "dark"].map(
1938
1939
  (theme) => html`<button
1939
- type="button"
1940
- aria-pressed=${String(current === theme)}
1941
- @click=${() => change(theme)}
1942
- >
1943
- <span class="theme-swatch" data-theme=${theme} aria-hidden="true">
1944
- <span class="preview-toolbar"></span>
1945
- <span class="preview-rail"></span>
1946
- <span class="preview-sidebar"><i></i><i></i><i></i></span>
1947
- <span class="preview-conversation"><i></i><i></i><i></i></span>
1948
- </span>
1949
- <span>${theme === "system" ? "Follow system" : theme === "light" ? "Light" : "Dark"}</span>
1950
- </button>`
1940
+ type="button"
1941
+ aria-pressed=${String(current === theme)}
1942
+ @click=${() => change(theme)}
1943
+ >
1944
+ <span class="theme-swatch" data-theme=${theme} aria-hidden="true">
1945
+ <span class="preview-toolbar"></span>
1946
+ <span class="preview-rail"></span>
1947
+ <span class="preview-sidebar"><i></i><i></i><i></i></span>
1948
+ <span class="preview-conversation"><i></i><i></i><i></i></span>
1949
+ </span>
1950
+ <span
1951
+ >${theme === "system" ? "Follow system" : theme === "light" ? "Light" : "Dark"}</span
1952
+ >
1953
+ </button>`
1951
1954
  )}
1952
1955
  </div>`;
1953
1956
  }
@@ -1971,27 +1974,27 @@ function densityChoices(density, change) {
1971
1974
  <legend>Chat density</legend>
1972
1975
  ${["comfy", "compact"].map(
1973
1976
  (value) => html`<label class="density-choice">
1974
- <input
1975
- type="radio"
1976
- name="chat-density"
1977
- value=${value}
1978
- .checked=${density === value}
1979
- @change=${() => change(value)}
1980
- />
1981
- <span class="density-preview" data-density=${value} aria-hidden="true">
1982
- ${[0, 1, 2].map(
1977
+ <input
1978
+ type="radio"
1979
+ name="chat-density"
1980
+ value=${value}
1981
+ .checked=${density === value}
1982
+ @change=${() => change(value)}
1983
+ />
1984
+ <span class="density-preview" data-density=${value} aria-hidden="true">
1985
+ ${[0, 1, 2].map(
1983
1986
  () => html`<span class="preview-message"
1984
- ><i></i><span><b></b><b></b></span
1985
- ></span>`
1987
+ ><i></i><span><b></b><b></b></span
1988
+ ></span>`
1986
1989
  )}
1987
- </span>
1988
- <span class="density-caption"
1989
- ><strong>${value === "comfy" ? "Comfy" : "Compact"}</strong>
1990
- <small
1991
- >${value === "comfy" ? "More space between messages" : "More messages in less space"}</small
1992
- ></span
1993
- >
1994
- </label>`
1990
+ </span>
1991
+ <span class="density-caption"
1992
+ ><strong>${value === "comfy" ? "Comfy" : "Compact"}</strong>
1993
+ <small
1994
+ >${value === "comfy" ? "More space between messages" : "More messages in less space"}</small
1995
+ ></span
1996
+ >
1997
+ </label>`
1995
1998
  )}
1996
1999
  </fieldset>`;
1997
2000
  }
@@ -2414,7 +2417,9 @@ var safeStorage = {
2414
2417
  };
2415
2418
  function loadIdentity() {
2416
2419
  try {
2417
- const raw = JSON.parse(safeStorage.getItem("teams:identity") ?? "null");
2420
+ const raw = JSON.parse(
2421
+ safeStorage.getItem("teams:identity") ?? "null"
2422
+ );
2418
2423
  if (raw && typeof raw.id === "string" && typeof raw.name === "string" && raw.name.trim())
2419
2424
  return { id: raw.id, name: raw.name };
2420
2425
  } catch {
@@ -2512,32 +2517,32 @@ function followedThreads(state, client, open, unreadOnly, filter) {
2512
2517
  <ul>
2513
2518
  ${threads.length ? threads.map(
2514
2519
  (thread) => html`<li data-unread=${String(thread.unread > 0)}>
2515
- <button
2516
- type="button"
2517
- @click=${() => open(thread)}
2518
- aria-label=${`Open thread in ${thread.channelName}: ${thread.root.deleted ? "Deleted message" : thread.root.text}`}
2519
- >
2520
- <strong># ${thread.channelName}</strong
2521
- ><span
2522
- >${thread.root.deleted ? "This message was deleted" : thread.root.text || "Shared file"}</span
2520
+ <button
2521
+ type="button"
2522
+ @click=${() => open(thread)}
2523
+ aria-label=${`Open thread in ${thread.channelName}: ${thread.root.deleted ? "Deleted message" : thread.root.text}`}
2523
2524
  >
2524
- <small
2525
- >${thread.replyCount} ${thread.replyCount === 1 ? "reply" : "replies"} ·
2526
- ${new Date(thread.updatedAt).toLocaleString()}</small
2527
- ></button
2528
- ><span>${thread.unread > 0 ? `${thread.unread} unread` : "Read"}</span
2529
- ><button
2530
- type="button"
2531
- @click=${() => client.markThreadRead(thread.channelId, thread.root.id, thread.unread > 0)}
2532
- >
2533
- ${thread.unread > 0 ? "Mark as read" : "Mark as unread"}</button
2534
- ><button
2535
- type="button"
2536
- @click=${() => client.followThread(thread.channelId, thread.root.id, false)}
2537
- >
2538
- Unfollow thread
2539
- </button>
2540
- </li>`
2525
+ <strong># ${thread.channelName}</strong
2526
+ ><span
2527
+ >${thread.root.deleted ? "This message was deleted" : thread.root.text || "Shared file"}</span
2528
+ >
2529
+ <small
2530
+ >${thread.replyCount} ${thread.replyCount === 1 ? "reply" : "replies"} ·
2531
+ ${new Date(thread.updatedAt).toLocaleString()}</small
2532
+ ></button
2533
+ ><span>${thread.unread > 0 ? `${thread.unread} unread` : "Read"}</span
2534
+ ><button
2535
+ type="button"
2536
+ @click=${() => client.markThreadRead(thread.channelId, thread.root.id, thread.unread > 0)}
2537
+ >
2538
+ ${thread.unread > 0 ? "Mark as read" : "Mark as unread"}</button
2539
+ ><button
2540
+ type="button"
2541
+ @click=${() => client.followThread(thread.channelId, thread.root.id, false)}
2542
+ >
2543
+ Unfollow thread
2544
+ </button>
2545
+ </li>`
2541
2546
  ) : html`<li>
2542
2547
  ${unreadOnly ? "No unread followed threads." : "No followed threads yet. Open a thread and choose Follow thread."}
2543
2548
  </li>`}
@@ -2845,19 +2850,19 @@ var TeamsAddTabDialog = class extends LitElement {
2845
2850
  <div class="apps">
2846
2851
  ${APPS.map(
2847
2852
  (entry, index) => html`<button
2848
- type="button"
2849
- class="app"
2850
- aria-label=${`Choose ${entry.label}`}
2851
- ?data-first-app=${index === 0}
2852
- ?autofocus=${index === 0}
2853
- @click=${() => this.choose(entry.id)}
2854
- >
2855
- <span class="badge" data-kind=${entry.kind ?? "other"}>${entry.letter}</span
2856
- ><strong>${entry.label}</strong>
2857
- <small
2858
- >${entry.kind ? this.availableLabel(entry.kind) : "Add a web address"}</small
2853
+ type="button"
2854
+ class="app"
2855
+ aria-label=${`Choose ${entry.label}`}
2856
+ ?data-first-app=${index === 0}
2857
+ ?autofocus=${index === 0}
2858
+ @click=${() => this.choose(entry.id)}
2859
2859
  >
2860
- </button>`
2860
+ <span class="badge" data-kind=${entry.kind ?? "other"}>${entry.letter}</span
2861
+ ><strong>${entry.label}</strong>
2862
+ <small
2863
+ >${entry.kind ? this.availableLabel(entry.kind) : "Add a web address"}</small
2864
+ >
2865
+ </button>`
2861
2866
  )}
2862
2867
  </div>
2863
2868
  <p class="hint">File tabs use files already shared in this channel.</p>
@@ -3694,20 +3699,20 @@ var TeamsApp = class extends LitElement {
3694
3699
  ${s.searchQuery ? html`<ul class="results" role="listbox" aria-label="Search results">
3695
3700
  ${s.searchResults.length === 0 ? html`<li class="none">No results</li>` : s.searchResults.map(
3696
3701
  (h) => html`<li>
3697
- <button
3698
- type="button"
3699
- @click=${() => {
3702
+ <button
3703
+ type="button"
3704
+ @click=${() => {
3700
3705
  if (this.selectChannel(h.channelId)) {
3701
3706
  this.teams.client?.search("");
3702
3707
  void this.openThread(h.message.id);
3703
3708
  }
3704
3709
  }}
3705
- >
3706
- <strong>${h.message.authorName}</strong>
3707
- <span class="in">in # ${h.channelName}</span>
3708
- <span class="snippet">${h.message.text.slice(0, 100)}</span>
3709
- </button>
3710
- </li>`
3710
+ >
3711
+ <strong>${h.message.authorName}</strong>
3712
+ <span class="in">in # ${h.channelName}</span>
3713
+ <span class="snippet">${h.message.text.slice(0, 100)}</span>
3714
+ </button>
3715
+ </li>`
3711
3716
  )}
3712
3717
  </ul>` : nothing}
3713
3718
  </div>
@@ -3741,15 +3746,15 @@ var TeamsApp = class extends LitElement {
3741
3746
  <ul class="plain">
3742
3747
  ${s.channels.map(
3743
3748
  (c) => html`<li>
3744
- <span># ${c.name}</span>
3745
- <button
3746
- type="button"
3747
- class=${c.live ? "join live" : "join"}
3748
- @click=${() => this.startMeeting(c.id)}
3749
- >
3750
- ${c.live ? "Join" : "Meet now"}
3751
- </button>
3752
- </li>`
3749
+ <span># ${c.name}</span>
3750
+ <button
3751
+ type="button"
3752
+ class=${c.live ? "join live" : "join"}
3753
+ @click=${() => this.startMeeting(c.id)}
3754
+ >
3755
+ ${c.live ? "Join" : "Meet now"}
3756
+ </button>
3757
+ </li>`
3753
3758
  )}
3754
3759
  </ul>
3755
3760
  ${live2.length === 0 ? html`<p class="hint">Nobody is in a call right now.</p>` : nothing}
@@ -3817,13 +3822,13 @@ var TeamsApp = class extends LitElement {
3817
3822
  <nav class="tabs" role="tablist">
3818
3823
  ${["posts", "files"].map(
3819
3824
  (t) => html`<button
3820
- type="button"
3821
- role="tab"
3822
- aria-selected=${String(this.tab === t)}
3823
- @click=${() => this.selectTab(t)}
3824
- >
3825
- ${t === "posts" ? "Posts" : "Shared"}
3826
- </button>`
3825
+ type="button"
3826
+ role="tab"
3827
+ aria-selected=${String(this.tab === t)}
3828
+ @click=${() => this.selectTab(t)}
3829
+ >
3830
+ ${t === "posts" ? "Posts" : "Shared"}
3831
+ </button>`
3827
3832
  )}
3828
3833
  ${s.tabs.map((t) => html`<button type="button" role="tab" aria-selected=${String(this.tab === t.id)} @click=${() => this.selectTab(t.id)}>${t.name}</button>`)}
3829
3834
  </nav>
@@ -4084,14 +4089,14 @@ var TeamsApp = class extends LitElement {
4084
4089
  <ul class="plain">
4085
4090
  ${call.participants.map(
4086
4091
  (p) => html`<li>
4087
- <office-ui-avatar
4088
- size="sm"
4089
- name=${p.name}
4090
- seed=${p.id}
4091
- ></office-ui-avatar>
4092
- <span>${p.name}${p.self ? " (you)" : ""}</span>
4093
- ${p.state.hand ? html`<span title="Hand raised">✋</span>` : nothing}
4094
- </li>`
4092
+ <office-ui-avatar
4093
+ size="sm"
4094
+ name=${p.name}
4095
+ seed=${p.id}
4096
+ ></office-ui-avatar>
4097
+ <span>${p.name}${p.self ? " (you)" : ""}</span>
4098
+ ${p.state.hand ? html`<span title="Hand raised">✋</span>` : nothing}
4099
+ </li>`
4095
4100
  )}
4096
4101
  </ul>
4097
4102
  </aside>` : nothing}
@@ -1,7 +1,7 @@
1
1
  import { defineSmartArt } from './chunk-PXIYHFZ5.js';
2
- import { TEAMS_TAGS, registerTeams } from './chunk-6UPGM3X2.js';
2
+ import { TEAMS_TAGS, registerTeams } from './chunk-7US5GCXF.js';
3
3
  import { installOfficeUiTheme } from './chunk-BCH2ZLWI.js';
4
- import { registerControls } from './chunk-SCWCZSTE.js';
4
+ import { registerControls } from './chunk-O7APCA5N.js';
5
5
  import { definePresence } from './chunk-L7JV5FVE.js';
6
6
 
7
7
  // src/index.ts
@@ -45,6 +45,8 @@ var OFFICE_UI_TAGS = [
45
45
  "office-ui-gallery",
46
46
  "office-ui-comments-pane",
47
47
  "office-ui-symbol-picker",
48
+ "office-ui-color-grid",
49
+ "office-ui-color-custom",
48
50
  "office-ui-presence",
49
51
  "office-ui-smartart",
50
52
  ...TEAMS_TAGS