ooxml-ui 1.2.0 → 1.4.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 (156) hide show
  1. package/custom-elements.json +262 -2
  2. package/dist/chrome/find-bar.d.ts +85 -0
  3. package/dist/chrome/find-bar.d.ts.map +1 -1
  4. package/dist/chrome/find-replace-fields.d.ts +21 -0
  5. package/dist/chrome/find-replace-fields.d.ts.map +1 -0
  6. package/dist/{chunk-XNCWB2X6.js → chunk-2WLRFPMW.js} +4 -0
  7. package/dist/{chunk-JAJFLFAV.js → chunk-56A2JK63.js} +1 -1
  8. package/dist/{chunk-7FNDOWTX.js → chunk-BOIZWKM7.js} +226 -53
  9. package/dist/{chunk-YK2DPYMU.js → chunk-IY7QJLQG.js} +1 -1
  10. package/dist/{chunk-AYXFLBSV.js → chunk-L4XGRNHF.js} +6 -6
  11. package/dist/{chunk-BOX43CZD.js → chunk-M6GF5ED2.js} +2 -1
  12. package/dist/{chunk-Y2E22JVO.js → chunk-NYRRH2MD.js} +1 -1
  13. package/dist/{chunk-YP5S7DTT.js → chunk-R3LV6SGC.js} +6 -5
  14. package/dist/{chunk-VUB44CAJ.js → chunk-TWQ45BFL.js} +1 -1
  15. package/dist/clipboard-worker.js +21 -0
  16. package/dist/controls.d.ts +5 -3
  17. package/dist/controls.d.ts.map +1 -1
  18. package/dist/controls.js +5 -5
  19. package/dist/docx/editor-chrome.d.ts +8 -1
  20. package/dist/docx/file-commands.d.ts +1 -1
  21. package/dist/docx/locales/en-app.d.ts +1 -0
  22. package/dist/docx/locales/en.d.ts +1 -0
  23. package/dist/docx/localization-strings.d.ts +1 -0
  24. package/dist/docx/ribbon-actions.d.ts +22 -0
  25. package/dist/docx/title-bar.d.ts +3 -5
  26. package/dist/docx.js +66 -46
  27. package/dist/icons.d.ts.map +1 -1
  28. package/dist/icons.js +1 -1
  29. package/dist/index.d.ts +1 -1
  30. package/dist/index.js +9 -9
  31. package/dist/keytips.d.ts.map +1 -1
  32. package/dist/menu/menu-button.d.ts +11 -1
  33. package/dist/menu/menu-button.d.ts.map +1 -1
  34. package/dist/pptx/{chart-3d-view-scene-6B5TOWB6.mjs → chart-3d-view-scene-OYJ4CDCO.mjs} +3 -4
  35. package/dist/pptx/{chart-3d-view-scene-MJ6YNT56.cjs → chart-3d-view-scene-SE2Y6QRE.cjs} +38 -39
  36. package/dist/pptx/{chunk-AWKKC3VW.mjs → chunk-CIVA3MLN.mjs} +1 -1
  37. package/dist/pptx/{chunk-ZK344LOB.cjs → chunk-FPE5PZMI.cjs} +303 -155
  38. package/dist/pptx/{chunk-YRHK45AB.cjs → chunk-IURZJAWP.cjs} +233 -127
  39. package/dist/pptx/{chunk-XIQMFSNG.cjs → chunk-KRMMJUCO.cjs} +83 -1
  40. package/dist/pptx/{chunk-YI5LH5NN.mjs → chunk-MWHGUEIJ.mjs} +162 -16
  41. package/dist/pptx/{chunk-XQVKQD5Z.mjs → chunk-STLXPKJJ.mjs} +230 -128
  42. package/dist/pptx/{chunk-YMTQLZ2I.mjs → chunk-TC7HCF5M.mjs} +76 -2
  43. package/dist/pptx/{chunk-STKGUT5S.cjs → chunk-WKLHJEPD.cjs} +13 -13
  44. package/dist/pptx/dom/element-styles.d.ts.map +1 -1
  45. package/dist/pptx/dom/elements/connector.d.ts.map +1 -1
  46. package/dist/pptx/dom/elements/shape-filter-defs.d.ts.map +1 -1
  47. package/dist/pptx/dom/elements/table.d.ts.map +1 -1
  48. package/dist/pptx/dom/index.cjs +254 -254
  49. package/dist/pptx/dom/index.mjs +26 -26
  50. package/dist/pptx/dom/slide-stage.d.ts.map +1 -1
  51. package/dist/pptx/export/html2canvas-clone.cjs +2 -2
  52. package/dist/pptx/export/html2canvas-clone.mjs +1 -1
  53. package/dist/pptx/index.cjs +3041 -3001
  54. package/dist/pptx/index.mjs +4 -4
  55. package/dist/pptx/render/chart-3d-oblique-layout.d.ts.map +1 -1
  56. package/dist/pptx/render/chart-3d-persp-bars.d.ts.map +1 -1
  57. package/dist/pptx/render/chart-3d-persp-layout.d.ts.map +1 -1
  58. package/dist/pptx/render/chart-bar-cluster-geometry.d.ts +1 -1
  59. package/dist/pptx/render/chart-bar-cluster-geometry.d.ts.map +1 -1
  60. package/dist/pptx/render/chart-cartesian-area.d.ts.map +1 -1
  61. package/dist/pptx/render/chart-cartesian-bars.d.ts.map +1 -1
  62. package/dist/pptx/render/chart-cartesian-line-area.d.ts.map +1 -1
  63. package/dist/pptx/render/chart-cartesian-stacked-labels.d.ts +11 -7
  64. package/dist/pptx/render/chart-cartesian-stacked-labels.d.ts.map +1 -1
  65. package/dist/pptx/render/chart-combo-stock.cjs +3 -3
  66. package/dist/pptx/render/chart-combo-stock.mjs +1 -1
  67. package/dist/pptx/render/chart-data-label-anchor.d.ts +4 -1
  68. package/dist/pptx/render/chart-data-label-anchor.d.ts.map +1 -1
  69. package/dist/pptx/render/chart-horizontal-bars.d.ts.map +1 -1
  70. package/dist/pptx/render/chart-line-path.d.ts +9 -0
  71. package/dist/pptx/render/chart-line-path.d.ts.map +1 -1
  72. package/dist/pptx/render/chart-overlays.cjs +7 -7
  73. package/dist/pptx/render/chart-overlays.mjs +1 -1
  74. package/dist/pptx/render/chart-plot-clip.d.ts +37 -0
  75. package/dist/pptx/render/chart-plot-clip.d.ts.map +1 -0
  76. package/dist/pptx/render/chart-surface-treemap.cjs +4 -4
  77. package/dist/pptx/render/chart-surface-treemap.mjs +1 -1
  78. package/dist/pptx/render/chart-view-model-bars.d.ts +3 -2
  79. package/dist/pptx/render/chart-view-model-bars.d.ts.map +1 -1
  80. package/dist/pptx/render/chart-view-model.cjs +44 -44
  81. package/dist/pptx/render/chart-view-model.mjs +1 -1
  82. package/dist/pptx/render/chart-waterfall-map.cjs +6 -6
  83. package/dist/pptx/render/chart-waterfall-map.mjs +1 -1
  84. package/dist/pptx/render/device-pixel-stroke.d.ts +101 -0
  85. package/dist/pptx/render/device-pixel-stroke.d.ts.map +1 -0
  86. package/dist/pptx/render/export-clone.d.ts +4 -0
  87. package/dist/pptx/render/export-clone.d.ts.map +1 -1
  88. package/dist/pptx/render/foreign-object-svg-document.d.ts.map +1 -1
  89. package/dist/pptx/render/index.d.ts +2 -0
  90. package/dist/pptx/render/index.d.ts.map +1 -1
  91. package/dist/pptx/render/stroke-outline.d.ts +6 -0
  92. package/dist/pptx/render/stroke-outline.d.ts.map +1 -1
  93. package/dist/pptx/render/stroke-style.d.ts +8 -2
  94. package/dist/pptx/render/stroke-style.d.ts.map +1 -1
  95. package/dist/pptx/render/tab-row-actions.d.ts +40 -0
  96. package/dist/pptx/render/tab-row-actions.d.ts.map +1 -0
  97. package/dist/pptx/render/table-style-borders.d.ts.map +1 -1
  98. package/dist/pptx/render/table-style.d.ts.map +1 -1
  99. package/dist/pptx/web-components/index.d.ts.map +1 -1
  100. package/dist/pptx/web-components/office-token-bridge.d.ts +1 -1
  101. package/dist/pptx/web-components/office-token-bridge.d.ts.map +1 -1
  102. package/dist/pptx/web-components/ribbon-actions.d.ts +8 -0
  103. package/dist/pptx/web-components/ribbon-actions.d.ts.map +1 -0
  104. package/dist/presence.js +3 -3
  105. package/dist/ribbon/ribbon-actions.d.ts +119 -0
  106. package/dist/ribbon/ribbon-actions.d.ts.map +1 -0
  107. package/dist/smartart.js +3 -3
  108. package/dist/teams.js +7 -7
  109. package/dist/theme.js +2 -2
  110. package/dist/tokens.d.ts +4 -0
  111. package/dist/tokens.d.ts.map +1 -1
  112. package/dist/visio/binding.d.ts +10 -2
  113. package/dist/visio/clipboard-capture.d.ts +39 -0
  114. package/dist/visio/clipboard-worker.d.ts +1 -0
  115. package/dist/visio/controller.d.ts +45 -8
  116. package/dist/visio/creation-token.d.ts +26 -0
  117. package/dist/visio/index.d.ts +3 -1
  118. package/dist/visio/replacement-token.d.ts +56 -0
  119. package/dist/visio/ribbon-action.d.ts +61 -2
  120. package/dist/visio/ribbon-parts.d.ts +3 -2
  121. package/dist/visio/ribbon-router.d.ts +14 -1
  122. package/dist/visio/ribbon-style-options.d.ts +5 -0
  123. package/dist/visio/viewer-arrangement.d.ts +13 -0
  124. package/dist/visio/viewer-backstage.d.ts +1 -0
  125. package/dist/visio/viewer-clipboard.d.ts +21 -0
  126. package/dist/visio/viewer-commands.d.ts +5 -0
  127. package/dist/visio/viewer-draw-tool.d.ts +9 -29
  128. package/dist/visio/viewer-drawing-gesture.d.ts +36 -0
  129. package/dist/visio/viewer-duplication.d.ts +11 -0
  130. package/dist/visio/viewer-element.d.ts +11 -1
  131. package/dist/visio/viewer-formatting.d.ts +12 -0
  132. package/dist/visio/viewer-gesture-overlays.d.ts +2 -0
  133. package/dist/visio/viewer-handle-events.d.ts +3 -0
  134. package/dist/visio/viewer-layers.d.ts +1 -2
  135. package/dist/visio/viewer-movement-preview.d.ts +7 -0
  136. package/dist/visio/viewer-new-drawing.d.ts +5 -0
  137. package/dist/visio/viewer-page-point.d.ts +6 -0
  138. package/dist/visio/viewer-paint-dialog.d.ts +28 -0
  139. package/dist/visio/viewer-paint-menu.d.ts +4 -0
  140. package/dist/visio/viewer-paint-properties.d.ts +13 -0
  141. package/dist/visio/viewer-pointer-gestures.d.ts +14 -0
  142. package/dist/visio/viewer-replace-status.d.ts +6 -0
  143. package/dist/visio/viewer-replace.d.ts +14 -0
  144. package/dist/visio/viewer-resize-frame.d.ts +9 -0
  145. package/dist/visio/viewer-resize-handles.d.ts +14 -0
  146. package/dist/visio/viewer-search.d.ts +15 -0
  147. package/dist/visio/viewer-size-position.d.ts +13 -0
  148. package/dist/visio/viewer-text-draft.d.ts +9 -0
  149. package/dist/visio/viewer-text-tool.d.ts +17 -0
  150. package/dist/visio/worker-clipboard.d.ts +16 -0
  151. package/dist/visio.js +5953 -2623
  152. package/dist/xlsx/calc-preparation.d.ts +44 -0
  153. package/dist/xlsx/editor-core.d.ts +3 -0
  154. package/dist/xlsx/ribbon-actions.d.ts +5 -4
  155. package/dist/xlsx.js +131 -44
  156. package/package.json +2 -2
@@ -1,7 +1,7 @@
1
- import { createIconSvg, paintIcon, getIcon } from './chunk-BOX43CZD.js';
2
- import { initialsOf } from './chunk-VUB44CAJ.js';
3
- import { OfficeElement, controlStyles, definer, valueOn, flag, present, triState, withTokens } from './chunk-YK2DPYMU.js';
4
- import { tok, OFFICE_TOKENS } from './chunk-XNCWB2X6.js';
1
+ import { createIconSvg, paintIcon, getIcon } from './chunk-M6GF5ED2.js';
2
+ import { initialsOf } from './chunk-TWQ45BFL.js';
3
+ import { OfficeElement, controlStyles, definer, valueOn, flag, present, triState, withTokens } from './chunk-IY7QJLQG.js';
4
+ import { tok, OFFICE_TOKENS } from './chunk-2WLRFPMW.js';
5
5
  import { html, LitElement, nothing, render, svg } from 'lit';
6
6
  import { ifDefined } from 'lit/directives/if-defined.js';
7
7
  import { repeat } from 'lit/directives/repeat.js';
@@ -873,7 +873,56 @@ var OfficeUiBackstage = class extends OfficeElement {
873
873
  var defineBackstage = definer("office-ui-backstage", () => OfficeUiBackstage);
874
874
 
875
875
  // raw-css:/home/runner/work/ooxml/ooxml/src/ui/src/chrome/find-bar.css?raw
876
- var find_bar_default = ":host {\n display: flex;\n align-items: center;\n gap: var(--office-space-2);\n min-height: var(--office-find-bar-height);\n padding: var(--office-space-1) var(--office-space-2) var(--office-space-1) var(--office-space-3);\n border-bottom: var(--office-border-width) solid var(--office-border);\n background: var(--office-surface);\n color: var(--office-foreground);\n font: var(--office-font-size-sm) var(--office-font);\n}\n:host(:not([open])) {\n display: none;\n}\n[role='search'] {\n display: flex;\n flex: 1;\n align-items: center;\n gap: var(--office-space-1);\n min-width: 0;\n max-width: var(--office-find-max-width);\n}\nlabel {\n display: flex;\n flex: 1;\n align-items: center;\n gap: var(--office-space-1-5);\n min-width: 0;\n}\ninput {\n flex: 1;\n min-width: 0;\n min-height: var(--office-input-height);\n padding: var(--office-space-0) var(--office-space-1-5);\n font: inherit;\n color: inherit;\n border: var(--office-border-width) solid var(--office-border);\n border-radius: var(--office-radius-sm);\n background: var(--office-background);\n}\nbutton {\n min-height: var(--office-input-height);\n padding: var(--office-space-0) var(--office-space-2);\n font: inherit;\n color: inherit;\n cursor: pointer;\n border: var(--office-border-width) solid var(--office-border);\n border-radius: var(--office-radius-sm);\n background: var(--office-background);\n}\nbutton:disabled {\n opacity: 0.5;\n cursor: default;\n}\n.status {\n flex: 1;\n min-width: 0;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n color: var(--office-muted-foreground);\n}\n.close {\n margin-inline-start: auto;\n width: var(--office-target-size);\n padding: 0;\n border-color: transparent;\n background: transparent;\n font-size: var(--office-font-size-xl);\n line-height: 1;\n}\ninput:focus-visible,\nbutton:focus-visible {\n outline: var(--office-focus-width) solid var(--office-ring);\n outline-offset: calc(var(--office-focus-offset) / 2);\n}\n@media (max-width: 760px) {\n :host {\n flex-wrap: wrap;\n }\n [role='search'] {\n flex-wrap: wrap;\n }\n}\n";
876
+ var find_bar_default = ":host {\n display: flex;\n align-items: center;\n gap: var(--office-space-2);\n min-height: var(--office-find-bar-height);\n padding: var(--office-space-1) var(--office-space-2) var(--office-space-1) var(--office-space-3);\n border-bottom: var(--office-border-width) solid var(--office-border);\n background: var(--office-surface);\n color: var(--office-foreground);\n font: var(--office-font-size-sm) var(--office-font);\n}\n:host(:not([open])) {\n display: none;\n}\n.find-content {\n flex: 1;\n min-width: 0;\n}\n.replace-fields {\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n gap: var(--office-space-2);\n margin-top: var(--office-space-2);\n}\n.replace-fields label {\n flex: 0 1 auto;\n}\n.replace-fields label:first-child {\n flex: 1;\n}\n.replace-fields textarea {\n min-width: 120px;\n width: 100%;\n box-sizing: border-box;\n min-height: var(--office-input-height);\n padding: var(--office-space-1);\n font: inherit;\n color: inherit;\n border: var(--office-border-width) solid var(--office-border);\n border-radius: var(--office-radius-sm);\n background: var(--office-background);\n}\n.replace-fields office-ui-select {\n min-width: 150px;\n}\n.find-error {\n color: var(--office-error, #b00020);\n margin-bottom: 0;\n}\n[role='search'] {\n display: flex;\n flex: 1;\n align-items: center;\n gap: var(--office-space-1);\n min-width: 0;\n max-width: var(--office-find-max-width);\n}\nlabel {\n display: flex;\n flex: 1;\n align-items: center;\n gap: var(--office-space-1-5);\n min-width: 0;\n}\ninput {\n flex: 1;\n min-width: 0;\n min-height: var(--office-input-height);\n padding: var(--office-space-0) var(--office-space-1-5);\n font: inherit;\n color: inherit;\n border: var(--office-border-width) solid var(--office-border);\n border-radius: var(--office-radius-sm);\n background: var(--office-background);\n}\nbutton {\n min-height: var(--office-input-height);\n padding: var(--office-space-0) var(--office-space-2);\n font: inherit;\n color: inherit;\n cursor: pointer;\n border: var(--office-border-width) solid var(--office-border);\n border-radius: var(--office-radius-sm);\n background: var(--office-background);\n}\nbutton:disabled {\n opacity: 0.5;\n cursor: default;\n}\n.status {\n flex: 1;\n min-width: 0;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n color: var(--office-muted-foreground);\n}\n.close {\n margin-inline-start: auto;\n width: var(--office-target-size);\n padding: 0;\n border-color: transparent;\n background: transparent;\n font-size: var(--office-font-size-xl);\n line-height: 1;\n}\ninput:focus-visible,\nbutton:focus-visible {\n outline: var(--office-focus-width) solid var(--office-ring);\n outline-offset: calc(var(--office-focus-offset) / 2);\n}\n@media (max-width: 760px) {\n :host {\n flex-wrap: wrap;\n }\n [role='search'] {\n flex-wrap: wrap;\n }\n}\n";
877
+ function findReplaceFields(state) {
878
+ return html`<div class="replace-fields">
879
+ <label
880
+ >Replace with
881
+ <textarea
882
+ rows="2"
883
+ aria-label="Replace with"
884
+ spellcheck="false"
885
+ maxlength=${ifDefined(state.replacementMaxlength > 0 ? String(state.replacementMaxlength) : void 0)}
886
+ .value=${live(state.replacement)}
887
+ ?disabled=${state.disabled}
888
+ @input=${(event) => state.options({ replacement: event.target.value })}
889
+ ></textarea>
890
+ </label>
891
+ <label
892
+ >Search in
893
+ <office-ui-select
894
+ aria-label="Search scope"
895
+ .value=${state.scope}
896
+ .options=${state.scopeOptions}
897
+ ?disabled=${state.disabled}
898
+ @change=${(event) => state.options({ scope: event.currentTarget.value })}
899
+ ></office-ui-select
900
+ ></label>
901
+ <label class="match-case"
902
+ ><office-ui-checkbox
903
+ aria-label="Match case"
904
+ .checked=${state.matchCase}
905
+ ?disabled=${state.disabled || state.matchCaseDisabled}
906
+ @change=${(event) => state.options({ matchCase: event.currentTarget.checked })}
907
+ ></office-ui-checkbox
908
+ >Match case</label
909
+ >
910
+ <button
911
+ type="button"
912
+ data-action="replace"
913
+ ?disabled=${state.disabled || state.replaceDisabled}
914
+ @click=${() => state.replace("current")}
915
+ >Replace</button
916
+ >
917
+ <button
918
+ type="button"
919
+ data-action="replace-all"
920
+ ?disabled=${state.disabled || state.replaceAllDisabled}
921
+ @click=${() => state.replace("all")}
922
+ >Replace All</button
923
+ >
924
+ </div>`;
925
+ }
877
926
 
878
927
  // src/chrome/find-bar.ts
879
928
  var OfficeUiFindBar = class extends OfficeElement {
@@ -892,7 +941,17 @@ var OfficeUiFindBar = class extends OfficeElement {
892
941
  closeLabel: { attribute: "close-label", type: String },
893
942
  value: { attribute: false },
894
943
  status: { attribute: false },
895
- statusTitle: { attribute: false }
944
+ statusTitle: { attribute: false },
945
+ replaceMode: { attribute: "replace-mode", ...flag },
946
+ replacement: { attribute: false },
947
+ replacementMaxlength: { attribute: "replacement-maxlength", type: Number },
948
+ scope: { attribute: false },
949
+ scopeOptions: { attribute: false },
950
+ matchCase: { attribute: "match-case", ...flag },
951
+ matchCaseDisabled: { attribute: "match-case-disabled", ...flag },
952
+ replaceDisabled: { attribute: "replace-disabled", ...flag },
953
+ replaceAllDisabled: { attribute: "replace-all-disabled", ...flag },
954
+ error: { attribute: false }
896
955
  };
897
956
  constructor() {
898
957
  super();
@@ -909,6 +968,20 @@ var OfficeUiFindBar = class extends OfficeElement {
909
968
  this.value = "";
910
969
  this.status = "";
911
970
  this.statusTitle = "";
971
+ this.replaceMode = false;
972
+ this.replacement = "";
973
+ this.replacementMaxlength = 0;
974
+ this.scope = "";
975
+ this.scopeOptions = [];
976
+ this.matchCase = true;
977
+ this.matchCaseDisabled = false;
978
+ this.replaceDisabled = false;
979
+ this.replaceAllDisabled = false;
980
+ this.error = "";
981
+ this.addEventListener("keydown", (event) => {
982
+ if (present(this.replaceMode) && event.key === "Escape" && !event.defaultPrevented)
983
+ this.onKey(event);
984
+ });
912
985
  }
913
986
  get input() {
914
987
  return this.renderRoot.querySelector("input");
@@ -946,54 +1019,85 @@ var OfficeUiFindBar = class extends OfficeElement {
946
1019
  } else this.close();
947
1020
  }
948
1021
  }
1022
+ replaceOptions(next) {
1023
+ if (present(this.disabled)) return;
1024
+ if (next.replacement !== void 0) this.replacement = next.replacement;
1025
+ if (next.scope !== void 0) this.scope = next.scope;
1026
+ if (next.matchCase !== void 0 && !present(this.matchCaseDisabled))
1027
+ this.matchCase = next.matchCase;
1028
+ this.fire("office-find-options", {
1029
+ replacement: this.replacement,
1030
+ scope: this.scope,
1031
+ matchCase: this.matchCase
1032
+ });
1033
+ }
949
1034
  render() {
950
1035
  const max = Number(this.maxlength);
951
1036
  const disabled = present(this.disabled);
952
1037
  const stuck = present(this.navigationDisabled) || disabled;
953
1038
  const close = this.closeLabel ?? "Close Find";
954
1039
  return html`
955
- <div role="search" aria-label=${this.label ?? "Find"}>
956
- <label>
957
- Find
958
- <input
959
- type="search"
960
- autocomplete="off"
961
- spellcheck="false"
962
- aria-describedby="status"
963
- aria-label=${this.inputLabel ?? "Find"}
964
- placeholder=${this.placeholder ?? ""}
965
- maxlength=${ifDefined(Number.isInteger(max) && max > 0 ? String(max) : void 0)}
966
- .value=${live(this.value)}
967
- ?disabled=${disabled}
968
- @input=${this.onInput}
969
- @keydown=${this.onKey}
970
- />
971
- </label>
972
- <button
973
- type="button"
974
- data-action="previous"
975
- aria-label=${this.previousLabel ?? "Previous result"}
976
- ?disabled=${stuck}
977
- @click=${() => this.step("previous")}
978
- >Previous</button
979
- >
980
- <button
981
- type="button"
982
- data-action="next"
983
- aria-label=${this.nextLabel ?? "Next result"}
984
- ?disabled=${stuck}
985
- @click=${() => this.step("next")}
986
- >Next</button
987
- >
988
- <span
989
- id="status"
990
- class="status"
991
- role="status"
992
- aria-live="polite"
993
- aria-atomic="true"
994
- title=${this.statusTitle}
995
- >${this.status}</span
996
- >
1040
+ <div class="find-content">
1041
+ <div role="search" aria-label=${this.label ?? "Find"}>
1042
+ <label>
1043
+ Find
1044
+ <input
1045
+ type="search"
1046
+ autocomplete="off"
1047
+ spellcheck="false"
1048
+ aria-describedby="status"
1049
+ aria-label=${this.inputLabel ?? "Find"}
1050
+ placeholder=${this.placeholder ?? ""}
1051
+ maxlength=${ifDefined(Number.isInteger(max) && max > 0 ? String(max) : void 0)}
1052
+ .value=${live(this.value)}
1053
+ ?disabled=${disabled}
1054
+ @input=${this.onInput}
1055
+ @keydown=${this.onKey}
1056
+ />
1057
+ </label>
1058
+ <button
1059
+ type="button"
1060
+ data-action="previous"
1061
+ aria-label=${this.previousLabel ?? "Previous result"}
1062
+ ?disabled=${stuck}
1063
+ @click=${() => this.step("previous")}
1064
+ >Previous</button
1065
+ >
1066
+ <button
1067
+ type="button"
1068
+ data-action="next"
1069
+ aria-label=${this.nextLabel ?? "Next result"}
1070
+ ?disabled=${stuck}
1071
+ @click=${() => this.step("next")}
1072
+ >Next</button
1073
+ >
1074
+ <span
1075
+ id="status"
1076
+ class="status"
1077
+ role="status"
1078
+ aria-live="polite"
1079
+ aria-atomic="true"
1080
+ title=${this.statusTitle}
1081
+ >${this.status}</span
1082
+ >
1083
+ </div>
1084
+ ${present(this.replaceMode) ? findReplaceFields({
1085
+ replacement: this.replacement,
1086
+ replacementMaxlength: this.replacementMaxlength,
1087
+ scope: this.scope,
1088
+ scopeOptions: this.scopeOptions,
1089
+ matchCase: this.matchCase,
1090
+ matchCaseDisabled: present(this.matchCaseDisabled),
1091
+ disabled,
1092
+ replaceDisabled: present(this.replaceDisabled),
1093
+ replaceAllDisabled: present(this.replaceAllDisabled),
1094
+ options: (next) => this.replaceOptions(next),
1095
+ replace: (mode) => {
1096
+ if (!disabled && !present(mode === "current" ? this.replaceDisabled : this.replaceAllDisabled))
1097
+ this.fire("office-find-replace", { mode });
1098
+ }
1099
+ }) : null}
1100
+ ${this.error ? html`<p class="find-error" role="alert">${this.error}</p>` : null}
997
1101
  </div>
998
1102
  <button
999
1103
  type="button"
@@ -1635,6 +1739,72 @@ var OfficeUiRibbon = class extends OfficeElement {
1635
1739
  };
1636
1740
  var defineRibbon = definer("office-ui-ribbon", () => OfficeUiRibbon);
1637
1741
 
1742
+ // raw-css:/home/runner/work/ooxml/ooxml/src/ui/src/ribbon/ribbon-actions.css?raw
1743
+ var ribbon_actions_default = ":host {\n display: inline-flex;\n flex: none;\n align-items: center;\n gap: var(--office-space-1-5);\n padding-inline-start: var(--office-space-2);\n color: var(--office-foreground);\n font: inherit;\n font-size: var(--office-font-size);\n}\n[hidden] {\n display: none !important;\n}\n.glyph {\n flex: none;\n width: var(--office-icon-size-md);\n height: var(--office-icon-size-md);\n fill: none;\n stroke: currentColor;\n stroke-width: var(--office-icon-stroke);\n stroke-linecap: round;\n stroke-linejoin: round;\n}\n.glyph:not([data-painted]) {\n display: none;\n}\n.mode {\n position: relative;\n display: inline-flex;\n align-items: center;\n height: var(--office-control-height-md);\n}\n.mode > .glyph {\n position: absolute;\n inset-inline-start: var(--office-space-2);\n pointer-events: none;\n}\n.mode-select {\n height: var(--office-control-height-md);\n padding: 0 var(--office-space-1-5) 0 calc(var(--office-space-2) * 2 + var(--office-icon-size-md));\n border: var(--office-border-width) solid var(--office-border);\n border-radius: var(--office-radius-sm);\n background: var(--office-background);\n color: var(--office-foreground);\n font: inherit;\n cursor: pointer;\n}\nbutton {\n position: relative;\n display: inline-flex;\n align-items: center;\n gap: var(--office-space-1-5);\n height: var(--office-control-height-md);\n padding: 0 var(--office-space-2-5);\n border: var(--office-border-width) solid var(--office-border);\n border-radius: var(--office-radius-sm);\n background: transparent;\n color: var(--office-foreground);\n font: inherit;\n white-space: nowrap;\n cursor: pointer;\n}\n.comments:hover {\n background: var(--office-surface);\n}\n.comments[aria-pressed='true'] {\n background: var(--office-selected);\n}\n.badge {\n min-width: var(--office-space-4);\n padding: 0 var(--office-space-1);\n border-radius: var(--office-radius-full);\n background: var(--office-accent);\n color: var(--office-accent-foreground);\n font-size: var(--office-font-size-2xs);\n line-height: var(--office-space-4);\n text-align: center;\n}\n.share {\n padding: 0 var(--office-space-3);\n border-color: var(--office-accent);\n background: var(--office-accent);\n color: var(--office-accent-foreground);\n}\n.share:hover,\n.share[aria-pressed='true'] {\n /* Darkened here rather than read from --office-accent-hover, which resolves where the theme\n is installed and so would miss a product's own accent. */\n filter: brightness(0.88);\n}\n.mode-select:focus-visible,\nbutton:focus-visible {\n outline: var(--office-focus-width) solid var(--office-ring);\n outline-offset: var(--office-focus-offset);\n}\n/* Narrow windows keep the icons and drop the labels, as Office's simplified layout does. */\n@media (max-width: 900px) {\n .label {\n display: none;\n }\n button {\n padding: 0 var(--office-space-1-5);\n }\n}\n";
1744
+
1745
+ // src/ribbon/ribbon-actions.ts
1746
+ var OfficeUiRibbonActions = class extends OfficeElement {
1747
+ static modeEvent = "office-ribbon-mode";
1748
+ static commentsEvent = "office-ribbon-comments";
1749
+ static shareEvent = "office-ribbon-share";
1750
+ static styles = controlStyles(ribbon_actions_default);
1751
+ static properties = {
1752
+ modes: { attribute: false },
1753
+ mode: { type: String },
1754
+ modeLabel: { attribute: "mode-label", type: String },
1755
+ commentsLabel: { attribute: "comments-label", type: String },
1756
+ commentsTitle: { attribute: "comments-title", type: String },
1757
+ commentsPressed: { attribute: "comments-pressed", ...flag },
1758
+ commentsCount: { attribute: "comments-count", type: Number },
1759
+ noComments: { attribute: "no-comments", ...flag },
1760
+ shareLabel: { attribute: "share-label", type: String },
1761
+ shareTitle: { attribute: "share-title", type: String },
1762
+ sharePressed: { attribute: "share-pressed", ...flag },
1763
+ noShare: { attribute: "no-share", ...flag }
1764
+ };
1765
+ constructor() {
1766
+ super();
1767
+ this.modes = [];
1768
+ this.mode = "";
1769
+ this.modeLabel = "Editing mode";
1770
+ this.commentsLabel = "Comments";
1771
+ this.commentsTitle = null;
1772
+ this.commentsPressed = false;
1773
+ this.commentsCount = 0;
1774
+ this.noComments = false;
1775
+ this.shareLabel = "Share";
1776
+ this.shareTitle = null;
1777
+ this.sharePressed = false;
1778
+ this.noShare = false;
1779
+ }
1780
+ /** The rendered control of a part, or null before the first render. */
1781
+ control(part) {
1782
+ return this.renderRoot.querySelector(`[part="${part}"]`);
1783
+ }
1784
+ onMode(event) {
1785
+ event.stopPropagation();
1786
+ const select = event.target;
1787
+ const mode = select.value;
1788
+ select.value = this.mode;
1789
+ if (mode !== this.mode) this.fire(this.events().modeEvent, { mode });
1790
+ }
1791
+ events() {
1792
+ return this.constructor;
1793
+ }
1794
+ updated() {
1795
+ const select = this.control("mode-select");
1796
+ if (select && select.value !== this.mode) select.value = this.mode;
1797
+ }
1798
+ render() {
1799
+ const modes = this.modes ?? [];
1800
+ const count = Number(this.commentsCount) || 0;
1801
+ const commentsTitle = this.commentsTitle ?? this.commentsLabel;
1802
+ const shareTitle = this.shareTitle ?? this.shareLabel;
1803
+ return html`<label class="mode" part="mode" ?hidden=${modes.length === 0}>${glyph("pencil", "glyph")}<select class="mode-select" part="mode-select" aria-label=${this.modeLabel} title=${this.modeLabel} @change=${this.onMode}>${modes.map((option) => html`<option value=${option.value} ?selected=${option.value === this.mode}>${option.label}</option>`)}</select></label><button class="comments" part="comments" type="button" aria-label=${this.commentsLabel} title=${count > 0 ? `${commentsTitle} (${count})` : commentsTitle} aria-pressed=${String(present(this.commentsPressed))} ?hidden=${present(this.noComments)} @click=${() => this.fire(this.events().commentsEvent, {})}>${glyph("message", "glyph")}<span class="label">${this.commentsLabel}</span>${count > 0 ? html`<span class="badge" aria-hidden="true">${count}</span>` : ""}</button><button class="share" part="share" type="button" aria-label=${this.shareLabel} title=${shareTitle} aria-pressed=${String(present(this.sharePressed))} ?hidden=${present(this.noShare)} @click=${() => this.fire(this.events().shareEvent, {})}>${glyph("share", "glyph")}<span class="label">${this.shareLabel}</span></button>`;
1804
+ }
1805
+ };
1806
+ var defineRibbonActions = definer("office-ui-ribbon-actions", () => OfficeUiRibbonActions);
1807
+
1638
1808
  // raw-css:/home/runner/work/ooxml/ooxml/src/ui/src/ribbon/button.css?raw
1639
1809
  var button_default = ":host {\n display: inline-flex;\n vertical-align: middle;\n}\nbutton {\n box-sizing: border-box;\n position: relative;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: var(--office-space-1-5);\n min-width: var(--office-target-size);\n min-height: var(--office-target-size);\n padding: 0 var(--office-space-2);\n border: var(--office-border-width) solid transparent;\n border-radius: var(--office-radius);\n background: transparent;\n color: var(--office-foreground);\n font: inherit;\n font-size: var(--office-font-size-sm);\n cursor: pointer;\n white-space: nowrap;\n}\n:host([variant='stacked']) button {\n flex-direction: column;\n padding: var(--office-space-1) var(--office-space-2);\n}\nbutton:hover:not(:disabled) {\n background: var(--office-surface);\n}\nbutton:active:not(:disabled) {\n background: var(--office-selected);\n}\nbutton:focus-visible {\n outline: var(--office-focus-width) solid var(--office-ring);\n outline-offset: calc(var(--office-focus-offset) / 2);\n}\nbutton[aria-pressed='true'],\nbutton[aria-expanded='true'] {\n border-color: var(--office-accent);\n background: var(--office-surface);\n}\n:host([active]) button {\n background: var(--office-command-active);\n color: var(--office-accent);\n}\nbutton:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\nsvg {\n width: var(--office-icon-size-ml);\n height: var(--office-icon-size-ml);\n flex: none;\n color: var(--office-command-icon-color);\n fill: none;\n stroke: currentColor;\n stroke-width: var(--office-icon-stroke);\n stroke-linecap: round;\n stroke-linejoin: round;\n}\nsvg.glyph:not([data-painted]) {\n display: none;\n}\n.label[hidden],\n.caret[hidden],\n.badge[hidden] {\n display: none;\n}\n/* Office trails a menu chevron after the last line of the label. */\n.caret {\n display: inline-block;\n width: var(--office-icon-size-xs);\n height: var(--office-icon-size-xs);\n margin-inline-start: var(--office-space-0);\n vertical-align: middle;\n color: var(--office-muted-foreground);\n}\n.badge {\n position: absolute;\n top: 0;\n inset-inline-end: 0;\n padding: 0 var(--office-space-0);\n border-radius: var(--office-radius-full);\n background: var(--office-accent);\n color: var(--office-accent-foreground);\n font-size: var(--office-font-size-3xs);\n}\n\n/* Large ribbon command: a big glyph above a two-line label. */\n:host([size='large']) button {\n flex-direction: column;\n justify-content: flex-start;\n gap: var(--office-space-0);\n min-width: var(--office-command-large-min-width);\n max-width: var(--office-command-large-max-width);\n height: var(--office-command-large-height);\n padding: var(--office-space-0) var(--office-space-1);\n border: 0;\n white-space: normal;\n text-align: center;\n line-height: var(--office-line-height-tight);\n}\n:host([size='large']) svg.glyph {\n width: var(--office-command-large-icon);\n height: var(--office-command-large-icon);\n}\n\n/* Small ribbon command: icon and label in one row. */\n:host([size='small']) button {\n justify-content: flex-start;\n min-width: 0;\n height: var(--office-control-height);\n min-height: var(--office-control-height);\n padding: 0 var(--office-space-1-5);\n border: 0;\n text-align: start;\n}\n:host([size='small']) svg.glyph {\n width: var(--office-command-small-icon);\n height: var(--office-command-small-icon);\n}\n\n/* Tall, label-less tool tiles (pens, erasers). */\n:host([icon-only][tall]) button {\n min-width: var(--office-command-tall-min-width);\n height: var(--office-command-tall-height);\n padding: var(--office-space-1);\n}\n:host([icon-only][tall]) svg.glyph {\n width: var(--office-command-tall-icon);\n height: var(--office-command-tall-icon);\n}\n:host([icon-only][tall][active]) button {\n box-shadow: inset 0 0 0 var(--office-border-width) var(--office-accent);\n}\n\n@media (pointer: coarse), (max-width: 767px) {\n :host([size='small']) button {\n min-height: var(--office-target-size-touch);\n }\n :host([icon-only]) button {\n min-width: var(--office-target-size-touch);\n }\n}\n@media (forced-colors: active) {\n button {\n border-color: ButtonText;\n color: ButtonText;\n background: ButtonFace;\n }\n svg {\n color: ButtonText;\n }\n button:disabled {\n color: GrayText;\n border-color: GrayText;\n }\n button[aria-pressed='true'],\n button[aria-expanded='true'],\n :host([active]) button {\n background: Highlight;\n color: HighlightText;\n }\n}\n";
1640
1810
 
@@ -3376,6 +3546,7 @@ var OfficeUiMenuButton = class _OfficeUiMenuButton extends OfficeElement {
3376
3546
  command: { type: String, reflect: true },
3377
3547
  keyshortcuts: { type: String },
3378
3548
  disabled: flag,
3549
+ mainDisabled: { attribute: "main-disabled", ...flag },
3379
3550
  submenu: flag,
3380
3551
  iconOnly: { attribute: "icon-only", ...flag },
3381
3552
  open: { state: true }
@@ -3392,6 +3563,7 @@ var OfficeUiMenuButton = class _OfficeUiMenuButton extends OfficeElement {
3392
3563
  this.command = null;
3393
3564
  this.keyshortcuts = null;
3394
3565
  this.disabled = false;
3566
+ this.mainDisabled = false;
3395
3567
  this.submenu = false;
3396
3568
  this.iconOnly = false;
3397
3569
  this.open = false;
@@ -3422,7 +3594,7 @@ var OfficeUiMenuButton = class _OfficeUiMenuButton extends OfficeElement {
3422
3594
  );
3423
3595
  }
3424
3596
  focus(options) {
3425
- this.renderRoot.querySelector(".main")?.focus(options);
3597
+ this.renderRoot.querySelector(this.split && present(this.mainDisabled) ? ".caret" : ".main")?.focus(options);
3426
3598
  }
3427
3599
  toggle() {
3428
3600
  if (present(this.submenu)) {
@@ -3495,7 +3667,7 @@ var OfficeUiMenuButton = class _OfficeUiMenuButton extends OfficeElement {
3495
3667
  this.open = false;
3496
3668
  }
3497
3669
  onMain() {
3498
- if (present(this.disabled)) return;
3670
+ if (present(this.disabled) || this.split && present(this.mainDisabled)) return;
3499
3671
  if (this.command) this.fire("office-command", { command: this.command });
3500
3672
  else this.toggle();
3501
3673
  }
@@ -3548,7 +3720,7 @@ var OfficeUiMenuButton = class _OfficeUiMenuButton extends OfficeElement {
3548
3720
  role=${ifDefined(present(this.submenu) ? "menuitem" : void 0)}
3549
3721
  tabindex=${present(this.submenu) ? -1 : 0}
3550
3722
  aria-expanded=${ifDefined(split ? void 0 : String(open))}
3551
- ?disabled=${disabled}
3723
+ ?disabled=${disabled || split && present(this.mainDisabled)}
3552
3724
  @click=${this.onMain}
3553
3725
  @keydown=${this.onTriggerKey}
3554
3726
  @pointerenter=${() => present(this.submenu) && this.show(-1)}
@@ -4984,7 +5156,7 @@ var defineZoomSlider = definer("office-ui-zoom-slider", () => OfficeUiZoomSlider
4984
5156
  // src/keytips.ts
4985
5157
  var BADGE_CSS = "position:fixed;inset:auto;margin:0;padding:0;border:0;background:transparent;overflow:visible;pointer-events:none";
4986
5158
  var TIP_CSS = `position:fixed;transform:translate(-50%,-30%);min-width:${tok("--office-icon-size")};padding:${tok("--office-space-px")} ${tok("--office-space-1")};border:${tok("--office-border-width")} solid ${tok("--office-keytip-border")};border-radius:${tok("--office-radius-xs")};background:${tok("--office-keytip-background")};color:${tok("--office-keytip-foreground")};font:${tok("--office-font-weight-bold")} ${tok("--office-font-size-xs")}/${tok("--office-icon-size")} ${tok("--office-font")};text-align:center;box-shadow:${tok("--office-shadow-sm")}`;
4987
- var isDisabled = (el) => el.hasAttribute("disabled") || el.getAttribute("aria-disabled") === "true";
5159
+ var isDisabled = (el) => el.hasAttribute("disabled") || el.getAttribute("aria-disabled") === "true" || el.matches("office-ui-menu-button[command][main-disabled]") && !!el.getAttribute("command");
4988
5160
  var visible = (el) => {
4989
5161
  const box = el.getBoundingClientRect();
4990
5162
  return box.width > 0 && box.height > 0;
@@ -5349,6 +5521,7 @@ var CONTROL_DEFINERS = [
5349
5521
  defineOptionsDialog,
5350
5522
  defineAccount,
5351
5523
  defineRibbon,
5524
+ defineRibbonActions,
5352
5525
  defineFindBar,
5353
5526
  defineRuler,
5354
5527
  defineBackstage,
@@ -5369,4 +5542,4 @@ function registerControls(registry) {
5369
5542
  for (const define of CONTROL_DEFINERS) define(registry);
5370
5543
  }
5371
5544
 
5372
- export { CONTROL_DEFINERS, DEFAULT_COMMENTS_LABELS, DEFAULT_OFFICE_PROFILE, EMPTY_MENU_STATE, OFFICE_AVATAR_SWATCHES, OFFICE_COLOR_SWATCHES, OFFICE_COLOR_SWATCH_HEXES, OFFICE_PROFILE_STORAGE_KEY, OFFICE_TITLE_BAR_SEARCH_LIMIT, OFFICE_TOAST_VISIBLE_LIMIT, assignKeyTips, attachKeyTips, clampFlyoutPosition, clampOptionNumber, clearOfficeProfile, commentInitials, createRibbonOverflow, defineAccount, defineBackstage, defineButton, defineCheckbox, defineCommandSearch, defineCommentsPane, defineContextMenu, defineDialog, defineDialogFooter, defineFindBar, defineGallery, defineIcon, defineMenuButton, defineMenuItem, defineMenuSeparator, defineOptionsDialog, definePasteOptions, definePrintPreview, defineRadio, defineReadOnlyBanner, defineRibbon, defineRibbonGroup, defineRibbonSection, defineRibbonStack, defineRibbonToggle, defineRuler, defineSearchField, defineSelect, defineStatusBar, defineStatusItem, defineSwitch, defineTabStrip, defineTitleBar, defineToasts, defineToolbar, defineZoomSlider, formatCommentTime, glyph, nextEnabledIndex, parseSvgPreview, profileInitials, rangeControl, range_control_default, readOfficeProfile, registerControls, rulerDivisions, runKeyTips, sanitizeOfficeProfile, typeAheadIndex, writeOfficeProfile };
5545
+ export { CONTROL_DEFINERS, DEFAULT_COMMENTS_LABELS, DEFAULT_OFFICE_PROFILE, EMPTY_MENU_STATE, OFFICE_AVATAR_SWATCHES, OFFICE_COLOR_SWATCHES, OFFICE_COLOR_SWATCH_HEXES, OFFICE_PROFILE_STORAGE_KEY, OFFICE_TITLE_BAR_SEARCH_LIMIT, OFFICE_TOAST_VISIBLE_LIMIT, assignKeyTips, attachKeyTips, clampFlyoutPosition, clampOptionNumber, clearOfficeProfile, commentInitials, createRibbonOverflow, defineAccount, defineBackstage, defineButton, defineCheckbox, defineCommandSearch, defineCommentsPane, defineContextMenu, defineDialog, defineDialogFooter, defineFindBar, defineGallery, defineIcon, defineMenuButton, defineMenuItem, defineMenuSeparator, defineOptionsDialog, definePasteOptions, definePrintPreview, defineRadio, defineReadOnlyBanner, defineRibbon, defineRibbonActions, defineRibbonGroup, defineRibbonSection, defineRibbonStack, defineRibbonToggle, defineRuler, defineSearchField, defineSelect, defineStatusBar, defineStatusItem, defineSwitch, defineTabStrip, defineTitleBar, defineToasts, defineToolbar, defineZoomSlider, formatCommentTime, glyph, nextEnabledIndex, parseSvgPreview, profileInitials, rangeControl, range_control_default, readOfficeProfile, registerControls, rulerDivisions, runKeyTips, sanitizeOfficeProfile, typeAheadIndex, writeOfficeProfile };
@@ -1,4 +1,4 @@
1
- import { TOUCH, tok, OFFICE_TOKENS } from './chunk-XNCWB2X6.js';
1
+ import { TOUCH, tok, OFFICE_TOKENS } from './chunk-2WLRFPMW.js';
2
2
  import { unsafeCSS, LitElement } from 'lit';
3
3
 
4
4
  // src/registry.ts
@@ -1,8 +1,8 @@
1
- import { THEME_CSS, installOfficeUiTheme } from './chunk-JAJFLFAV.js';
2
- import { defineMenuButton, defineMenuItem, registerControls, defineSwitch } from './chunk-7FNDOWTX.js';
3
- import { registerIcon, getIcon } from './chunk-BOX43CZD.js';
4
- import { initialsOf, definePresence } from './chunk-VUB44CAJ.js';
5
- import { definer, OfficeElement, controlStyles } from './chunk-YK2DPYMU.js';
1
+ import { THEME_CSS, installOfficeUiTheme } from './chunk-56A2JK63.js';
2
+ import { defineMenuButton, defineMenuItem, registerControls, defineSwitch } from './chunk-BOIZWKM7.js';
3
+ import { registerIcon, getIcon } from './chunk-M6GF5ED2.js';
4
+ import { initialsOf, definePresence } from './chunk-TWQ45BFL.js';
5
+ import { definer, OfficeElement, controlStyles } from './chunk-IY7QJLQG.js';
6
6
  import { html, nothing, LitElement, unsafeCSS, svg } from 'lit';
7
7
  import { repeat } from 'lit/directives/repeat.js';
8
8
  import { live } from 'lit/directives/live.js';
@@ -395,7 +395,7 @@ var OfficeUiChannelList = class extends TeamsElement {
395
395
  var defineChannelList = definer("office-ui-channel-list", () => OfficeUiChannelList);
396
396
 
397
397
  // raw-css:/home/runner/work/ooxml/ooxml/src/ui/src/teams/chat-composer.css?raw
398
- var chat_composer_default = ":host {\n display: block;\n min-width: 0;\n flex: none;\n padding: 0 var(--office-space-5) var(--office-space-4);\n}\n.typing {\n min-height: 1.4em;\n color: var(--office-teams-text-subtle);\n font-size: var(--office-font-size-xs);\n}\n.box {\n position: relative;\n border: var(--office-border-width) solid var(--office-teams-divider);\n border-block-end: var(--office-border-width-thick) solid var(--office-teams-divider);\n border-radius: var(--office-radius-md);\n background: var(--office-field-background);\n}\n.box:focus-within {\n border-block-end-color: var(--office-teams-brand);\n}\n.banner {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: var(--office-space-1) var(--office-space-3);\n border-bottom: var(--office-border-width) solid var(--office-teams-divider);\n background: var(--office-teams-panel);\n font-size: var(--office-font-size-sm);\n}\ntextarea {\n display: block;\n width: 100%;\n min-height: 3.2em;\n max-height: 12em;\n padding: var(--office-space-3);\n border: 0;\n outline: 0;\n resize: none;\n background: transparent;\n color: inherit;\n font: inherit;\n overflow-y: auto;\n line-height: 1.5;\n}\n.bar {\n display: flex;\n align-items: center;\n gap: var(--office-space-1);\n padding: 0 var(--office-space-2) var(--office-space-2);\n}\n.spacer {\n flex: 1;\n}\n.bar button,\n.banner button,\n.pending button {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: var(--office-space-1);\n min-width: 2.2em;\n height: 2.2em;\n border: 0;\n border-radius: var(--office-radius);\n background: transparent;\n color: var(--office-teams-text-subtle);\n}\n.bar button:hover:not(:disabled),\n.banner button:hover {\n background: var(--office-selected);\n color: var(--office-foreground);\n}\n.bar button:disabled {\n opacity: 0.45;\n cursor: not-allowed;\n}\n.bar .send:not(:disabled) {\n color: var(--office-teams-brand);\n}\n.pending {\n display: flex;\n flex-wrap: wrap;\n gap: var(--office-space-1);\n margin: 0;\n padding: 0 var(--office-space-3);\n list-style: none;\n}\n.pending button {\n padding: 0 var(--office-space-2);\n border: var(--office-border-width) solid var(--office-teams-divider);\n background: var(--office-teams-panel);\n font-size: var(--office-font-size-sm);\n color: var(--office-foreground);\n}\n.emoji {\n position: relative;\n}\n.picker {\n position: absolute;\n inset-block-end: calc(100% + var(--office-space-1));\n inset-inline-start: 0;\n z-index: 2;\n display: grid;\n grid-template-columns: repeat(5, 1fr);\n gap: var(--office-space-0);\n padding: var(--office-space-2);\n border: var(--office-border-width) solid var(--office-teams-divider);\n border-radius: var(--office-radius-md);\n background: var(--office-popover);\n box-shadow: var(--office-shadow-teams);\n}\n.picker button {\n font-size: 1.3em;\n}\n\ntextarea:focus-visible {\n outline: none;\n}\n.box:focus-within {\n border-color: var(--office-teams-brand);\n}\n.pending {\n max-height: 7em;\n overflow-y: auto;\n padding-block-end: var(--office-space-2);\n}\n.pending li {\n min-width: 0;\n max-width: 100%;\n}\n.pending button {\n max-width: 100%;\n height: auto;\n min-height: 2.4em;\n}\n.file-label {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n min-width: 0;\n}\n@media (max-width: 600px) {\n :host {\n padding: 0 var(--office-space-2) var(--office-space-2);\n }\n textarea {\n font-size: 16px;\n min-height: 3em;\n }\n .bar button {\n min-width: 36px;\n height: 36px;\n }\n}\n";
398
+ var chat_composer_default = ":host {\n display: block;\n min-width: 0;\n flex: none;\n padding: 0 var(--office-space-5) var(--office-space-4);\n}\n.typing {\n min-height: 1.4em;\n color: var(--office-teams-text-subtle);\n font-size: var(--office-font-size-xs);\n}\n.box {\n position: relative;\n border: var(--office-border-width) solid var(--office-teams-divider);\n border-block-end: var(--office-border-width-thick) solid var(--office-teams-divider);\n border-radius: var(--office-radius-md);\n background: var(--office-field-background);\n}\n.box:focus-within {\n border-block-end-color: var(--office-teams-brand);\n}\n.banner {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: var(--office-space-1) var(--office-space-3);\n border-bottom: var(--office-border-width) solid var(--office-teams-divider);\n background: var(--office-teams-panel);\n font-size: var(--office-font-size-sm);\n}\ntextarea {\n display: block;\n width: 100%;\n min-height: 3.2em;\n max-height: 12em;\n padding: var(--office-space-3);\n border: 0;\n outline: 0;\n resize: none;\n background: transparent;\n color: inherit;\n font: inherit;\n overflow-y: auto;\n line-height: 1.5;\n}\n.bar {\n display: flex;\n align-items: center;\n gap: var(--office-space-1);\n padding: 0 var(--office-space-2) var(--office-space-2);\n}\n.spacer {\n flex: 1;\n}\n.bar button,\n.banner button,\n.pending button {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: var(--office-space-1);\n min-width: 2.2em;\n height: 2.2em;\n border: 0;\n border-radius: var(--office-radius);\n background: transparent;\n color: var(--office-teams-text-subtle);\n}\n.bar button:hover:not(:disabled),\n.banner button:hover {\n background: var(--office-selected);\n color: var(--office-foreground);\n}\n.bar button:disabled {\n opacity: 0.45;\n cursor: not-allowed;\n}\n.bar .send:not(:disabled) {\n color: var(--office-teams-brand);\n}\n.pending {\n display: flex;\n flex-wrap: wrap;\n gap: var(--office-space-1);\n margin: 0;\n padding: 0 var(--office-space-3);\n list-style: none;\n}\n.pending button {\n padding: 0 var(--office-space-2);\n border: var(--office-border-width) solid var(--office-teams-divider);\n background: var(--office-teams-panel);\n font-size: var(--office-font-size-sm);\n color: var(--office-foreground);\n}\n.emoji {\n position: relative;\n}\n.picker {\n position: absolute;\n inset-block-end: calc(100% + var(--office-space-1));\n inset-inline-start: 0;\n z-index: 2;\n display: grid;\n grid-template-columns: repeat(5, 1fr);\n gap: var(--office-space-0);\n padding: var(--office-space-2);\n border: var(--office-border-width) solid var(--office-teams-divider);\n border-radius: var(--office-radius-md);\n background: var(--office-popover);\n box-shadow: var(--office-shadow-teams);\n}\n.picker button {\n font-size: 1.3em;\n}\n\ntextarea:focus-visible {\n outline: none;\n}\n.box:focus-within {\n border-color: var(--office-teams-brand);\n}\n.pending {\n max-height: 7em;\n overflow-y: auto;\n padding-block-end: var(--office-space-2);\n}\n.pending li {\n min-width: 0;\n max-width: 100%;\n}\n.pending button {\n max-width: 100%;\n height: auto;\n min-height: 2.4em;\n}\n.file-label {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n min-width: 0;\n}\n@media (max-width: 600px) {\n :host {\n padding: 0 var(--office-space-2) var(--office-space-2);\n }\n textarea {\n font-size: var(--office-font-size-touch);\n min-height: 3em;\n }\n .bar button {\n min-width: var(--office-touch-target);\n height: var(--office-touch-target);\n }\n}\n";
399
399
  var EMOJI = [
400
400
  "\u{1F600}",
401
401
  "\u{1F604}",
@@ -68,7 +68,8 @@ var BUILT_IN = {
68
68
  warning: "M10 3l7.5 13H2.5ZM10 8v3.5M10 14v.1",
69
69
  info: "M3 10a7 7 0 1 0 14 0 7 7 0 1 0-14 0M10 9v4.5M10 6.3v.1",
70
70
  restore: "M3.5 10a6.5 6.5 0 1 0 2-4.6M3.5 3v3.5H7M10 6.5v3.8l2.5 1.6",
71
- print: "M5.5 7.5V3h9v4.5M5.5 14.5H3V8h14v6.5h-2.5M5.5 12h9v5h-9Z"
71
+ print: "M5.5 7.5V3h9v4.5M5.5 14.5H3V8h14v6.5h-2.5M5.5 12h9v5h-9Z",
72
+ share: "m12 4 5 5-5 5M17 9h-6a7 7 0 0 0-7 7"
72
73
  };
73
74
  for (const [name, d] of Object.entries(BUILT_IN)) registry.set(name, { d });
74
75
  function registerIcon(name, icon) {
@@ -1,4 +1,4 @@
1
- import { OfficeElement, controlStyles, definer } from './chunk-YK2DPYMU.js';
1
+ import { OfficeElement, controlStyles, definer } from './chunk-IY7QJLQG.js';
2
2
  import { html } from 'lit';
3
3
  import { hexToRgbChannels } from 'ooxml-core/color';
4
4
  import { resolveDrawingColor } from 'ooxml-core/diagram';
@@ -1,8 +1,8 @@
1
- import { defineSmartArt } from './chunk-Y2E22JVO.js';
2
- import { TEAMS_TAGS, registerTeams } from './chunk-AYXFLBSV.js';
3
- import { installOfficeUiTheme } from './chunk-JAJFLFAV.js';
4
- import { registerControls } from './chunk-7FNDOWTX.js';
5
- import { definePresence } from './chunk-VUB44CAJ.js';
1
+ import { defineSmartArt } from './chunk-NYRRH2MD.js';
2
+ import { TEAMS_TAGS, registerTeams } from './chunk-L4XGRNHF.js';
3
+ import { installOfficeUiTheme } from './chunk-56A2JK63.js';
4
+ import { registerControls } from './chunk-BOIZWKM7.js';
5
+ import { definePresence } from './chunk-TWQ45BFL.js';
6
6
 
7
7
  // src/index.ts
8
8
  var OFFICE_UI_TAGS = [
@@ -27,6 +27,7 @@ var OFFICE_UI_TAGS = [
27
27
  "office-ui-options-dialog",
28
28
  "office-ui-account",
29
29
  "office-ui-ribbon",
30
+ "office-ui-ribbon-actions",
30
31
  "office-ui-find-bar",
31
32
  "office-ui-ruler",
32
33
  "office-ui-backstage",
@@ -1,4 +1,4 @@
1
- import { OfficeElement, controlStyles, definer } from './chunk-YK2DPYMU.js';
1
+ import { OfficeElement, controlStyles, definer } from './chunk-IY7QJLQG.js';
2
2
  import { html } from 'lit';
3
3
 
4
4
  // raw-css:/home/runner/work/ooxml/ooxml/src/ui/src/presence/presence.css?raw
@@ -0,0 +1,21 @@
1
+ import { captureVisioClipboard, serializeVisioClipboard } from 'ooxml-core/visio';
2
+
3
+ // src/visio/clipboard-worker.ts
4
+ self.onmessage = async (event) => {
5
+ try {
6
+ const request = event.data;
7
+ const snapshot = await captureVisioClipboard(
8
+ new Uint8Array(request.bytes),
9
+ request.pageId,
10
+ request.shapeIds
11
+ );
12
+ self.postMessage({ ok: true, text: serializeVisioClipboard(snapshot) });
13
+ } catch (cause) {
14
+ const error = cause instanceof Error ? cause : new Error(String(cause));
15
+ self.postMessage({
16
+ ok: false,
17
+ message: error.message.slice(0, 4096),
18
+ code: "code" in error ? error.code : void 0
19
+ });
20
+ }
21
+ };
@@ -11,6 +11,7 @@ import { defineFindBar } from './chrome/find-bar.js';
11
11
  import { defineCommentsPane } from './comments/comments-pane.js';
12
12
  import { definePrintPreview } from './chrome/print-preview.js';
13
13
  import { defineRibbon } from './ribbon/ribbon-tabs.js';
14
+ import { defineRibbonActions } from './ribbon/ribbon-actions.js';
14
15
  import { defineRibbonSection } from './ribbon/ribbon-section.js';
15
16
  import { defineGallery } from './ribbon/gallery.js';
16
17
  import { defineRuler } from './chrome/ruler.js';
@@ -35,7 +36,7 @@ import { defineStatusItem } from './chrome/status-item.js';
35
36
  import { defineTabStrip } from './chrome/tab-strip.js';
36
37
  import { defineTitleBar } from './chrome/title-bar.js';
37
38
  import { defineZoomSlider } from './form/zoom-slider.js';
38
- export { defineAccount, defineDialogFooter, definePasteOptions, defineRadio, defineReadOnlyBanner, defineRibbonToggle, defineSearchField, defineToasts, defineBackstage, defineCommentsPane, defineFindBar, defineGallery, definePrintPreview, defineRibbon, defineRuler, defineButton, defineCheckbox, defineCommandSearch, defineContextMenu, defineDialog, defineIcon, defineMenuButton, defineMenuItem, defineMenuSeparator, defineOptionsDialog, defineRibbonGroup, defineRibbonSection, defineRibbonStack, defineSelect, defineStatusBar, defineStatusItem, defineSwitch, defineTabStrip, defineTitleBar, defineToolbar, defineZoomSlider, };
39
+ export { defineAccount, defineDialogFooter, definePasteOptions, defineRadio, defineReadOnlyBanner, defineRibbonToggle, defineSearchField, defineToasts, defineBackstage, defineCommentsPane, defineFindBar, defineGallery, definePrintPreview, defineRibbon, defineRibbonActions, defineRuler, defineButton, defineCheckbox, defineCommandSearch, defineContextMenu, defineDialog, defineIcon, defineMenuButton, defineMenuItem, defineMenuSeparator, defineOptionsDialog, defineRibbonGroup, defineRibbonSection, defineRibbonStack, defineSelect, defineStatusBar, defineStatusItem, defineSwitch, defineTabStrip, defineTitleBar, defineToolbar, defineZoomSlider, };
39
40
  export type { OfficeCommandEvent } from './ribbon/button.js';
40
41
  export type { OfficeDialogCloseEvent, OfficeDialogCloseReason } from './dialog/dialog.js';
41
42
  export type { OfficeSelectOption } from './form/select.js';
@@ -45,7 +46,7 @@ export type { OfficeSearchCommand } from './menu/command-search.js';
45
46
  export { OFFICE_TITLE_BAR_SEARCH_LIMIT, type OfficeQuickAccessItem, type OfficeTitleBarAutosave, type OfficeTitleBarCommand, type OfficeTitleBarPlacement, type OfficeTitleBarSearch, type OfficeTitleBarSearchDetail, type OfficeTitleBarState, type OfficeTitleBarTone, } from './chrome/title-bar.js';
46
47
  export { attachKeyTips, type KeyTipsHandle } from './keytips.js';
47
48
  export type { OfficeBackstageCloseEvent, OfficeBackstageItem, OfficeBackstageSelectEvent, } from './chrome/backstage.js';
48
- export type { OfficeFindInputEvent, OfficeFindStepEvent } from './chrome/find-bar.js';
49
+ export type { OfficeFindInputEvent, OfficeFindStepEvent, OfficeFindOptionsEvent, OfficeFindReplaceEvent, } from './chrome/find-bar.js';
49
50
  export type { OfficePrintPreviewPageEvent } from './chrome/print-preview.js';
50
51
  export { commentInitials, DEFAULT_COMMENTS_LABELS, formatCommentTime, type OfficeComment, type OfficeCommentAddDetail, type OfficeCommentDeleteDetail, type OfficeCommentEditDetail, type OfficeCommentReplyDetail, type OfficeCommentsClassNames, type OfficeCommentsLabels, type OfficeCommentThread, type OfficeThreadDetail, } from './comments/types.js';
51
52
  export { assignKeyTips, runKeyTips } from './ribbon/keytip-run.js';
@@ -53,6 +54,7 @@ export type { KeyTipTarget } from './ribbon/keytip-run.js';
53
54
  export { createRibbonOverflow } from './ribbon/overflow.js';
54
55
  export type { RibbonOverflow, RibbonOverflowOptions } from './ribbon/overflow.js';
55
56
  export type { OfficeRibbonSelectEvent } from './ribbon/ribbon-tabs.js';
57
+ export type { OfficeRibbonActionsMode, OfficeRibbonModeEvent } from './ribbon/ribbon-actions.js';
56
58
  export type { OfficeRibbonCommandView, OfficeRibbonGroupView } from './ribbon/ribbon-section.js';
57
59
  export { parseSvgPreview, type OfficeGalleryItem, type OfficeGalleryPickEvent, type OfficeGallerySection, type OfficeGalleryState, } from './ribbon/gallery.js';
58
60
  export { rulerDivisions } from './chrome/ruler.js';
@@ -64,7 +66,7 @@ export type { OfficeReadOnlyBannerIntent, OfficeReadOnlyBannerState, } from './n
64
66
  export { clearOfficeProfile, DEFAULT_OFFICE_PROFILE, OFFICE_AVATAR_SWATCHES, OFFICE_PROFILE_STORAGE_KEY, profileInitials, readOfficeProfile, sanitizeOfficeProfile, writeOfficeProfile, type OfficeProfile, type OfficeProfileChangeEvent, } from './chrome/account-profile.js';
65
67
  export { clampOptionNumber, type OfficeOptionCategory, type OfficeOptionChoice, type OfficeOptionControl, type OfficeOptionSection, type OfficeOptionsChangeEvent, type OfficeOptionValue, type OfficeOptionValues, } from './dialog/options-dialog.js';
66
68
  /** Every control of this entry. */
67
- export declare const CONTROL_DEFINERS: readonly [import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer];
69
+ export declare const CONTROL_DEFINERS: readonly [import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer];
68
70
  /** Idempotent, SSR-safe (no-op without a DOM). */
69
71
  export declare function registerControls(registry?: CustomElementRegistry): void;
70
72
  //# sourceMappingURL=controls.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"controls.d.ts","sourceRoot":"","sources":["../src/controls.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"controls.d.ts","sourceRoot":"","sources":["../src/controls.ts"],"names":[],"mappings":"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"}
package/dist/controls.js CHANGED
@@ -1,5 +1,5 @@
1
- export { CONTROL_DEFINERS, DEFAULT_COMMENTS_LABELS, DEFAULT_OFFICE_PROFILE, EMPTY_MENU_STATE, OFFICE_AVATAR_SWATCHES, OFFICE_COLOR_SWATCHES, OFFICE_COLOR_SWATCH_HEXES, OFFICE_PROFILE_STORAGE_KEY, OFFICE_TITLE_BAR_SEARCH_LIMIT, OFFICE_TOAST_VISIBLE_LIMIT, assignKeyTips, attachKeyTips, clampFlyoutPosition, clampOptionNumber, clearOfficeProfile, commentInitials, createRibbonOverflow, defineAccount, defineBackstage, defineButton, defineCheckbox, defineCommandSearch, defineCommentsPane, defineContextMenu, defineDialog, defineDialogFooter, defineFindBar, defineGallery, defineIcon, defineMenuButton, defineMenuItem, defineMenuSeparator, defineOptionsDialog, definePasteOptions, definePrintPreview, defineRadio, defineReadOnlyBanner, defineRibbon, defineRibbonGroup, defineRibbonSection, defineRibbonStack, defineRibbonToggle, defineRuler, defineSearchField, defineSelect, defineStatusBar, defineStatusItem, defineSwitch, defineTabStrip, defineTitleBar, defineToasts, defineToolbar, defineZoomSlider, formatCommentTime, nextEnabledIndex, parseSvgPreview, profileInitials, readOfficeProfile, registerControls, rulerDivisions, runKeyTips, sanitizeOfficeProfile, typeAheadIndex, writeOfficeProfile } from './chunk-7FNDOWTX.js';
2
- import './chunk-BOX43CZD.js';
3
- import './chunk-VUB44CAJ.js';
4
- import './chunk-YK2DPYMU.js';
5
- import './chunk-XNCWB2X6.js';
1
+ export { CONTROL_DEFINERS, DEFAULT_COMMENTS_LABELS, DEFAULT_OFFICE_PROFILE, EMPTY_MENU_STATE, OFFICE_AVATAR_SWATCHES, OFFICE_COLOR_SWATCHES, OFFICE_COLOR_SWATCH_HEXES, OFFICE_PROFILE_STORAGE_KEY, OFFICE_TITLE_BAR_SEARCH_LIMIT, OFFICE_TOAST_VISIBLE_LIMIT, assignKeyTips, attachKeyTips, clampFlyoutPosition, clampOptionNumber, clearOfficeProfile, commentInitials, createRibbonOverflow, defineAccount, defineBackstage, defineButton, defineCheckbox, defineCommandSearch, defineCommentsPane, defineContextMenu, defineDialog, defineDialogFooter, defineFindBar, defineGallery, defineIcon, defineMenuButton, defineMenuItem, defineMenuSeparator, defineOptionsDialog, definePasteOptions, definePrintPreview, defineRadio, defineReadOnlyBanner, defineRibbon, defineRibbonActions, defineRibbonGroup, defineRibbonSection, defineRibbonStack, defineRibbonToggle, defineRuler, defineSearchField, defineSelect, defineStatusBar, defineStatusItem, defineSwitch, defineTabStrip, defineTitleBar, defineToasts, defineToolbar, defineZoomSlider, formatCommentTime, nextEnabledIndex, parseSvgPreview, profileInitials, readOfficeProfile, registerControls, rulerDivisions, runKeyTips, sanitizeOfficeProfile, typeAheadIndex, writeOfficeProfile } from './chunk-BOIZWKM7.js';
2
+ import './chunk-M6GF5ED2.js';
3
+ import './chunk-TWQ45BFL.js';
4
+ import './chunk-IY7QJLQG.js';
5
+ import './chunk-2WLRFPMW.js';