ooxml-ui 1.3.0 → 1.4.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 (93) hide show
  1. package/README.md +2 -0
  2. package/custom-elements.json +101 -2
  3. package/dist/chrome/find-bar.d.ts +85 -0
  4. package/dist/chrome/find-bar.d.ts.map +1 -1
  5. package/dist/chrome/find-replace-fields.d.ts +21 -0
  6. package/dist/chrome/find-replace-fields.d.ts.map +1 -0
  7. package/dist/{chunk-NYRRH2MD.js → chunk-6YEWVS7I.js} +1 -1
  8. package/dist/{chunk-56A2JK63.js → chunk-BCH2ZLWI.js} +1 -1
  9. package/dist/{chunk-V6P6KZCO.js → chunk-CEBFGUMT.js} +5 -5
  10. package/dist/{chunk-IY7QJLQG.js → chunk-CXOK5QWQ.js} +1 -1
  11. package/dist/{chunk-5OFAJDMQ.js → chunk-F23XSUJD.js} +4 -4
  12. package/dist/{chunk-TWQ45BFL.js → chunk-FN3MBKHE.js} +1 -1
  13. package/dist/{chunk-723JC3OC.js → chunk-J2WUY2Q4.js} +160 -52
  14. package/dist/{chunk-2WLRFPMW.js → chunk-SPNWHKSR.js} +2 -0
  15. package/dist/clipboard-worker.js +22 -0
  16. package/dist/controls.d.ts +1 -1
  17. package/dist/controls.d.ts.map +1 -1
  18. package/dist/controls.js +4 -4
  19. package/dist/docx.js +6 -6
  20. package/dist/index.js +8 -8
  21. package/dist/keytips.d.ts.map +1 -1
  22. package/dist/menu/menu-button.d.ts +11 -1
  23. package/dist/menu/menu-button.d.ts.map +1 -1
  24. package/dist/pptx/{chunk-KRMMJUCO.cjs → chunk-7DMJEYQJ.cjs} +13 -5
  25. package/dist/pptx/{chunk-TC7HCF5M.mjs → chunk-LHNTMJSK.mjs} +13 -5
  26. package/dist/pptx/{chunk-FPE5PZMI.cjs → chunk-SOHTHDYV.cjs} +147 -45
  27. package/dist/pptx/{chunk-MWHGUEIJ.mjs → chunk-TLLEKXWQ.mjs} +130 -36
  28. package/dist/pptx/dom/elements/table-editable.d.ts.map +1 -1
  29. package/dist/pptx/dom/index.cjs +238 -207
  30. package/dist/pptx/dom/index.mjs +41 -10
  31. package/dist/pptx/export/html2canvas-clone.cjs +2 -2
  32. package/dist/pptx/export/html2canvas-clone.mjs +1 -1
  33. package/dist/pptx/index.cjs +2758 -2726
  34. package/dist/pptx/index.mjs +2 -2
  35. package/dist/pptx/render/device-pixel-stroke.d.ts +10 -3
  36. package/dist/pptx/render/device-pixel-stroke.d.ts.map +1 -1
  37. package/dist/pptx/render/index.d.ts +1 -0
  38. package/dist/pptx/render/index.d.ts.map +1 -1
  39. package/dist/pptx/render/morph-heuristics.d.ts.map +1 -1
  40. package/dist/pptx/render/morph-matching.d.ts.map +1 -1
  41. package/dist/pptx/render/morph-predicates.d.ts +21 -0
  42. package/dist/pptx/render/morph-predicates.d.ts.map +1 -1
  43. package/dist/pptx/render/table-resize-merge.d.ts +59 -0
  44. package/dist/pptx/render/table-resize-merge.d.ts.map +1 -0
  45. package/dist/presence.js +3 -3
  46. package/dist/ribbon/overflow.d.ts.map +1 -1
  47. package/dist/smartart.js +3 -3
  48. package/dist/teams.js +6 -6
  49. package/dist/theme.js +2 -2
  50. package/dist/tokens.d.ts +2 -0
  51. package/dist/tokens.d.ts.map +1 -1
  52. package/dist/visio/binding.d.ts +10 -2
  53. package/dist/visio/clipboard-capture.d.ts +39 -0
  54. package/dist/visio/clipboard-worker.d.ts +1 -0
  55. package/dist/visio/controller.d.ts +45 -8
  56. package/dist/visio/creation-token.d.ts +26 -0
  57. package/dist/visio/index.d.ts +3 -1
  58. package/dist/visio/replacement-token.d.ts +56 -0
  59. package/dist/visio/ribbon-action.d.ts +61 -2
  60. package/dist/visio/ribbon-parts.d.ts +3 -2
  61. package/dist/visio/ribbon-router.d.ts +14 -1
  62. package/dist/visio/ribbon-style-options.d.ts +5 -0
  63. package/dist/visio/viewer-arrangement.d.ts +13 -0
  64. package/dist/visio/viewer-backstage.d.ts +1 -0
  65. package/dist/visio/viewer-clipboard.d.ts +21 -0
  66. package/dist/visio/viewer-commands.d.ts +5 -0
  67. package/dist/visio/viewer-draw-tool.d.ts +9 -29
  68. package/dist/visio/viewer-drawing-gesture.d.ts +36 -0
  69. package/dist/visio/viewer-duplication.d.ts +11 -0
  70. package/dist/visio/viewer-element.d.ts +11 -1
  71. package/dist/visio/viewer-formatting.d.ts +12 -0
  72. package/dist/visio/viewer-gesture-overlays.d.ts +2 -0
  73. package/dist/visio/viewer-handle-events.d.ts +3 -0
  74. package/dist/visio/viewer-layers.d.ts +1 -2
  75. package/dist/visio/viewer-movement-preview.d.ts +7 -0
  76. package/dist/visio/viewer-new-drawing.d.ts +5 -0
  77. package/dist/visio/viewer-page-point.d.ts +6 -0
  78. package/dist/visio/viewer-paint-dialog.d.ts +28 -0
  79. package/dist/visio/viewer-paint-menu.d.ts +4 -0
  80. package/dist/visio/viewer-paint-properties.d.ts +13 -0
  81. package/dist/visio/viewer-pointer-gestures.d.ts +14 -0
  82. package/dist/visio/viewer-replace-status.d.ts +6 -0
  83. package/dist/visio/viewer-replace.d.ts +14 -0
  84. package/dist/visio/viewer-resize-frame.d.ts +9 -0
  85. package/dist/visio/viewer-resize-handles.d.ts +14 -0
  86. package/dist/visio/viewer-search.d.ts +15 -0
  87. package/dist/visio/viewer-size-position.d.ts +13 -0
  88. package/dist/visio/viewer-text-draft.d.ts +9 -0
  89. package/dist/visio/viewer-text-tool.d.ts +17 -0
  90. package/dist/visio/worker-clipboard.d.ts +16 -0
  91. package/dist/visio.js +5952 -2622
  92. package/dist/xlsx.js +11 -10
  93. package/package.json +2 -2
@@ -1,7 +1,7 @@
1
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';
2
+ import { initialsOf } from './chunk-FN3MBKHE.js';
3
+ import { OfficeElement, controlStyles, definer, valueOn, flag, present, triState, withTokens } from './chunk-CXOK5QWQ.js';
4
+ import { tok, OFFICE_TOKENS } from './chunk-SPNWHKSR.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: var(--office-find-replace-field-min-width);\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: var(--office-find-replace-select-min-width);\n}\n.find-error {\n color: var(--office-danger);\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"
@@ -3442,6 +3546,7 @@ var OfficeUiMenuButton = class _OfficeUiMenuButton extends OfficeElement {
3442
3546
  command: { type: String, reflect: true },
3443
3547
  keyshortcuts: { type: String },
3444
3548
  disabled: flag,
3549
+ mainDisabled: { attribute: "main-disabled", ...flag },
3445
3550
  submenu: flag,
3446
3551
  iconOnly: { attribute: "icon-only", ...flag },
3447
3552
  open: { state: true }
@@ -3458,6 +3563,7 @@ var OfficeUiMenuButton = class _OfficeUiMenuButton extends OfficeElement {
3458
3563
  this.command = null;
3459
3564
  this.keyshortcuts = null;
3460
3565
  this.disabled = false;
3566
+ this.mainDisabled = false;
3461
3567
  this.submenu = false;
3462
3568
  this.iconOnly = false;
3463
3569
  this.open = false;
@@ -3488,7 +3594,7 @@ var OfficeUiMenuButton = class _OfficeUiMenuButton extends OfficeElement {
3488
3594
  );
3489
3595
  }
3490
3596
  focus(options) {
3491
- this.renderRoot.querySelector(".main")?.focus(options);
3597
+ this.renderRoot.querySelector(this.split && present(this.mainDisabled) ? ".caret" : ".main")?.focus(options);
3492
3598
  }
3493
3599
  toggle() {
3494
3600
  if (present(this.submenu)) {
@@ -3561,7 +3667,7 @@ var OfficeUiMenuButton = class _OfficeUiMenuButton extends OfficeElement {
3561
3667
  this.open = false;
3562
3668
  }
3563
3669
  onMain() {
3564
- if (present(this.disabled)) return;
3670
+ if (present(this.disabled) || this.split && present(this.mainDisabled)) return;
3565
3671
  if (this.command) this.fire("office-command", { command: this.command });
3566
3672
  else this.toggle();
3567
3673
  }
@@ -3614,7 +3720,7 @@ var OfficeUiMenuButton = class _OfficeUiMenuButton extends OfficeElement {
3614
3720
  role=${ifDefined(present(this.submenu) ? "menuitem" : void 0)}
3615
3721
  tabindex=${present(this.submenu) ? -1 : 0}
3616
3722
  aria-expanded=${ifDefined(split ? void 0 : String(open))}
3617
- ?disabled=${disabled}
3723
+ ?disabled=${disabled || split && present(this.mainDisabled)}
3618
3724
  @click=${this.onMain}
3619
3725
  @keydown=${this.onTriggerKey}
3620
3726
  @pointerenter=${() => present(this.submenu) && this.show(-1)}
@@ -5050,7 +5156,7 @@ var defineZoomSlider = definer("office-ui-zoom-slider", () => OfficeUiZoomSlider
5050
5156
  // src/keytips.ts
5051
5157
  var BADGE_CSS = "position:fixed;inset:auto;margin:0;padding:0;border:0;background:transparent;overflow:visible;pointer-events:none";
5052
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")}`;
5053
- 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");
5054
5160
  var visible = (el) => {
5055
5161
  const box = el.getBoundingClientRect();
5056
5162
  return box.width > 0 && box.height > 0;
@@ -5320,7 +5426,9 @@ function createRibbonOverflow(options) {
5320
5426
  button.focus();
5321
5427
  };
5322
5428
  pop.addEventListener("click", (event) => {
5323
- if (event.target.closest(options.command)) setTimeout(() => closeOpen?.(), 0);
5429
+ const command = event.target.closest(options.command);
5430
+ const popup = command?.getAttribute("aria-haspopup");
5431
+ if (command && (!popup || popup === "false")) setTimeout(() => closeOpen?.(), 0);
5324
5432
  });
5325
5433
  doc.addEventListener("pointerdown", outside, true);
5326
5434
  doc.addEventListener("keydown", escape, true);
@@ -208,6 +208,8 @@ var OFFICE_TOKENS = {
208
208
  "--office-print-preview-width": "420px",
209
209
  "--office-find-max-width": "640px",
210
210
  "--office-find-bar-height": "40px",
211
+ "--office-find-replace-field-min-width": "120px",
212
+ "--office-find-replace-select-min-width": "150px",
211
213
  "--office-ruler-size": "18px",
212
214
  "--office-avatar-size": "48px",
213
215
  "--office-avatar-color": "var(--office-muted-foreground, #6b7280)",
@@ -0,0 +1,22 @@
1
+ import { captureVisioClipboard, serializeVisioClipboard } from 'ooxml-core/visio';
2
+
3
+ // src/visio/clipboard-worker.ts
4
+ self.onmessage = async (event) => {
5
+ if (event.origin && event.origin !== self.location.origin) return;
6
+ try {
7
+ const request = event.data;
8
+ const snapshot = await captureVisioClipboard(
9
+ new Uint8Array(request.bytes),
10
+ request.pageId,
11
+ request.shapeIds
12
+ );
13
+ self.postMessage({ ok: true, text: serializeVisioClipboard(snapshot) });
14
+ } catch (cause) {
15
+ const error = cause instanceof Error ? cause : new Error(String(cause));
16
+ self.postMessage({
17
+ ok: false,
18
+ message: error.message.slice(0, 4096),
19
+ code: "code" in error ? error.code : void 0
20
+ });
21
+ }
22
+ };
@@ -46,7 +46,7 @@ export type { OfficeSearchCommand } from './menu/command-search.js';
46
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';
47
47
  export { attachKeyTips, type KeyTipsHandle } from './keytips.js';
48
48
  export type { OfficeBackstageCloseEvent, OfficeBackstageItem, OfficeBackstageSelectEvent, } from './chrome/backstage.js';
49
- export type { OfficeFindInputEvent, OfficeFindStepEvent } from './chrome/find-bar.js';
49
+ export type { OfficeFindInputEvent, OfficeFindStepEvent, OfficeFindOptionsEvent, OfficeFindReplaceEvent, } from './chrome/find-bar.js';
50
50
  export type { OfficePrintPreviewPageEvent } from './chrome/print-preview.js';
51
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';
52
52
  export { assignKeyTips, runKeyTips } from './ribbon/keytip-run.js';
@@ -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, 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-723JC3OC.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-J2WUY2Q4.js';
2
2
  import './chunk-M6GF5ED2.js';
3
- import './chunk-TWQ45BFL.js';
4
- import './chunk-IY7QJLQG.js';
5
- import './chunk-2WLRFPMW.js';
3
+ import './chunk-FN3MBKHE.js';
4
+ import './chunk-CXOK5QWQ.js';
5
+ import './chunk-SPNWHKSR.js';
package/dist/docx.js CHANGED
@@ -1,10 +1,10 @@
1
- import { defineSmartArt } from './chunk-NYRRH2MD.js';
2
- import { shadcnBridge } from './chunk-56A2JK63.js';
3
- import { createRibbonOverflow, defineRibbon, defineRuler, defineCommentsPane, defineDialog, defineSearchField, defineSwitch, defineTitleBar, defineRibbonActions, defineBackstage, defineStatusBar, defineZoomSlider, defineContextMenu, runKeyTips, assignKeyTips } from './chunk-723JC3OC.js';
1
+ import { defineSmartArt } from './chunk-6YEWVS7I.js';
2
+ import { shadcnBridge } from './chunk-BCH2ZLWI.js';
3
+ import { createRibbonOverflow, defineRibbon, defineRuler, defineCommentsPane, defineDialog, defineSearchField, defineSwitch, defineTitleBar, defineRibbonActions, defineBackstage, defineStatusBar, defineZoomSlider, defineContextMenu, runKeyTips, assignKeyTips } from './chunk-J2WUY2Q4.js';
4
4
  import { registerIcon } from './chunk-M6GF5ED2.js';
5
- import './chunk-TWQ45BFL.js';
6
- import './chunk-IY7QJLQG.js';
7
- import './chunk-2WLRFPMW.js';
5
+ import './chunk-FN3MBKHE.js';
6
+ import './chunk-CXOK5QWQ.js';
7
+ import './chunk-SPNWHKSR.js';
8
8
  import { normalizeLocale, SUPPORTED_OFFICE_LOCALES, interpolate } from 'ooxml-core/i18n';
9
9
  import { createDocument, saveDocx, sectionsFromLayout, sectionLayoutJson, sectionsOf, pageSizeOf, columnPreset, applyPageSetup, withSection, computeListLabels, numberNotesInOrder, tocEntries, tableOfFiguresInstruction, findTableOfContents, ensureListDefinition, resolveNumberingLevel, equalColumnDraft, readColumnDraft, PAGE_SIZE_OPTIONS, PAGE_SIZES, readPageSetup, isRunHiddenForReview, resolveTableStyleFormatting, resolveParagraphFormatting, displayListLabel, setTitlePage, setLineNumbering, setVerticalAlign, setPageNumbering, ST_NumberFormat, unequalColumnPreset, setColumns, setOrientation, setPageSize, setMargins, lineSpacingLabel, formatNoteNumber, reviewDocumentFormatting, reviewFormattingWarnings, listRevisions, plainText, tocHyperlinks, DEFAULT_TOC_INSTRUCTION, tocBookmarks, buildTableOfContents, tocCaptionLabel, isFieldLocked, twips as twips$1, signedTwips, formatListNumber, columnTextWidth, validColumnDraft, validatePageSetup, presetOf, LIGATURE_VALUES, isLigatures, reviewRunFormatting, resolveRunFormatting, reviewParagraphFormatting, resolveThemeColorReference, lineSpacingValue, isStHighlightColor, transformCase, DEFAULT_TABLE_BORDERS, parseLineSpacingValue, twipsAttr, twipsFromPixels, headingLevel, isValidLanguageTag, WORD, isHeadingListKind, fieldName, lineSpacingOptions, halfPointsFromPoints, changeColumnWidth, changeColumnGap, createListDefinition, linkStylesToList, headingListLevels, documentStats } from 'ooxml-core/docx';
10
10
  import { Schema, DOMSerializer, Fragment } from 'prosemirror-model';
package/dist/index.js CHANGED
@@ -1,10 +1,10 @@
1
- export { OFFICE_UI_TAGS, registerOfficeUi } from './chunk-V6P6KZCO.js';
2
- export { OfficeUiSmartArt, defineSmartArt, renderDiagramDrawing } from './chunk-NYRRH2MD.js';
3
- export { EMOJI, OfficeUiAppRail, OfficeUiAvatar, OfficeUiCallControls, OfficeUiCallGrid, OfficeUiChannelList, OfficeUiChatComposer, OfficeUiChatList, OfficeUiPrejoin, QUICK_REACTIONS, TEAMS_TAGS, TeamsApp, TeamsChannelTab, TeamsContentPreview, TeamsController, TeamsElement, TeamsFilesPanel, TeamsSettings, applyTeamsProps, colorFor, createTeams, dayLabel, defineAppRail, defineAvatar, defineCallControls, defineCallGrid, defineChannelList, defineChatComposer, defineChatList, definePrejoin, defineTeamsApp, defineTeamsChannelTab, defineTeamsContentPreview, defineTeamsFilesPanel, defineTeamsSettings, formatElapsed, formatSize, formatTime, icon, listenTeamsEvents, loadConfig, loadIdentity, parseIceLines, registerTeams, safeStorage, saveConfig, saveIdentity, withStyles } from './chunk-5OFAJDMQ.js';
1
+ export { OFFICE_UI_TAGS, registerOfficeUi } from './chunk-CEBFGUMT.js';
2
+ export { OfficeUiSmartArt, defineSmartArt, renderDiagramDrawing } from './chunk-6YEWVS7I.js';
3
+ export { EMOJI, OfficeUiAppRail, OfficeUiAvatar, OfficeUiCallControls, OfficeUiCallGrid, OfficeUiChannelList, OfficeUiChatComposer, OfficeUiChatList, OfficeUiPrejoin, QUICK_REACTIONS, TEAMS_TAGS, TeamsApp, TeamsChannelTab, TeamsContentPreview, TeamsController, TeamsElement, TeamsFilesPanel, TeamsSettings, applyTeamsProps, colorFor, createTeams, dayLabel, defineAppRail, defineAvatar, defineCallControls, defineCallGrid, defineChannelList, defineChatComposer, defineChatList, definePrejoin, defineTeamsApp, defineTeamsChannelTab, defineTeamsContentPreview, defineTeamsFilesPanel, defineTeamsSettings, formatElapsed, formatSize, formatTime, icon, listenTeamsEvents, loadConfig, loadIdentity, parseIceLines, registerTeams, safeStorage, saveConfig, saveIdentity, withStyles } from './chunk-F23XSUJD.js';
4
4
  export { TeamsPresentationPreview, defineTeamsPresentationPreview } from './chunk-SNV6YKPC.js';
5
- export { THEME_CSS, THEME_STYLE_ID, installOfficeUiTheme, shadcnBridge, themeBridge } from './chunk-56A2JK63.js';
6
- 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, readOfficeProfile, registerControls, rulerDivisions, runKeyTips, sanitizeOfficeProfile, typeAheadIndex, writeOfficeProfile } from './chunk-723JC3OC.js';
5
+ export { THEME_CSS, THEME_STYLE_ID, installOfficeUiTheme, shadcnBridge, themeBridge } from './chunk-BCH2ZLWI.js';
6
+ 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, readOfficeProfile, registerControls, rulerDivisions, runKeyTips, sanitizeOfficeProfile, typeAheadIndex, writeOfficeProfile } from './chunk-J2WUY2Q4.js';
7
7
  export { createIconSvg, getIcon, listIcons, paintIcon, registerIcon } from './chunk-M6GF5ED2.js';
8
- export { OfficeUiPresence, definePresence, initialsOf, participantsFromAwareness } from './chunk-TWQ45BFL.js';
9
- export { CONTRACT_REVISION, OfficeElement, controlStyles, flag, readFlag, triState, valueOn, withTokens } from './chunk-IY7QJLQG.js';
10
- export { COMPACT, FOCUS_RING, OFFICE_TOKENS, TOUCH, tok } from './chunk-2WLRFPMW.js';
8
+ export { OfficeUiPresence, definePresence, initialsOf, participantsFromAwareness } from './chunk-FN3MBKHE.js';
9
+ export { CONTRACT_REVISION, OfficeElement, controlStyles, flag, readFlag, triState, valueOn, withTokens } from './chunk-CXOK5QWQ.js';
10
+ export { COMPACT, FOCUS_RING, OFFICE_TOKENS, TOUCH, tok } from './chunk-SPNWHKSR.js';
@@ -1 +1 @@
1
- {"version":3,"file":"keytips.d.ts","sourceRoot":"","sources":["../src/keytips.ts"],"names":[],"mappings":"AACA;;;;;;;;;;GAUG;AACH,MAAM,WAAW,aAAa;IAC7B,0CAA0C;IAC1C,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,wFAAwF;IACxF,KAAK,IAAI,IAAI,CAAC;IACd,uBAAuB;IACvB,IAAI,IAAI,IAAI,CAAC;IACb,OAAO,IAAI,IAAI,CAAC;CAChB;AAWD,KAAK,IAAI,GAAG,UAAU,GAAG,WAAW,CAAC;AAkCrC,wBAAgB,aAAa,CAAC,KAAK,EAAE,IAAI,GAAG,aAAa,CAqIxD"}
1
+ {"version":3,"file":"keytips.d.ts","sourceRoot":"","sources":["../src/keytips.ts"],"names":[],"mappings":"AACA;;;;;;;;;;GAUG;AACH,MAAM,WAAW,aAAa;IAC7B,0CAA0C;IAC1C,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,wFAAwF;IACxF,KAAK,IAAI,IAAI,CAAC;IACd,uBAAuB;IACvB,IAAI,IAAI,IAAI,CAAC;IACb,OAAO,IAAI,IAAI,CAAC;CAChB;AAWD,KAAK,IAAI,GAAG,UAAU,GAAG,WAAW,CAAC;AAoCrC,wBAAgB,aAAa,CAAC,KAAK,EAAE,IAAI,GAAG,aAAa,CAqIxD"}
@@ -3,7 +3,7 @@ import { OfficeElement } from '../base.js';
3
3
  * Dropdown command with a menu of `office-ui-menu-item` children (Office's Find, Layers,
4
4
  * Align). With a `command` attribute it is a split button: the main part emits that command
5
5
  * and the caret opens the menu. Attributes: `label`, `icon`, `command`, `variant="stacked"`, `icon-only`,
6
- * `disabled`, `title`, `keyshortcuts`. The menu uses the top layer (`popover`) so ribbon
6
+ * `disabled`, `main-disabled` (split command only), `title`, `keyshortcuts`. The menu uses the top layer (`popover`) so ribbon
7
7
  * overflow never clips it. Keyboard: Enter, Space or ArrowDown open; arrows, Home and End move;
8
8
  * Escape and Tab close; focus returns to the trigger. Choosing an item closes the menu; its
9
9
  * `office-command` bubbles to the host.
@@ -32,6 +32,15 @@ export declare class OfficeUiMenuButton extends OfficeElement {
32
32
  toAttribute: (value: unknown) => string | null;
33
33
  };
34
34
  };
35
+ mainDisabled: {
36
+ type: BooleanConstructor;
37
+ reflect: true;
38
+ converter: {
39
+ fromAttribute: (value: string | null) => boolean;
40
+ toAttribute: (value: unknown) => string | null;
41
+ };
42
+ attribute: string;
43
+ };
35
44
  submenu: {
36
45
  type: BooleanConstructor;
37
46
  reflect: true;
@@ -58,6 +67,7 @@ export declare class OfficeUiMenuButton extends OfficeElement {
58
67
  command: string | null;
59
68
  keyshortcuts: string | null;
60
69
  disabled: boolean;
70
+ mainDisabled: boolean;
61
71
  submenu: boolean;
62
72
  iconOnly: boolean;
63
73
  open: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"menu-button.d.ts","sourceRoot":"","sources":["../../src/menu/menu-button.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAuB,MAAM,SAAS,CAAC;AAc7D;;;;;;;;GAQG;AACH,qBAAa,kBAAmB,SAAQ,aAAa;IACpD,OAAgB,MAAM,4BAAsB;IAC5C,OAAgB,UAAU;;YAChB,IAAI;;;YACL,IAAI;;;YACD,IAAI;YAAU,OAAO;;;YAChB,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;YAIZ,KAAK;;MACZ;IACM,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,EAAE,OAAO,CAAC;IACtB,OAAO,CAAC,OAAO,CAAuC;IAEtD,0FAA0F;IAC1F,WAAoB,kBAAkB,IAAI,MAAM,EAAE,CAEjD;IAED,cAcC;IAEQ,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAG9F;IAEQ,oBAAoB,IAAI,IAAI,CAGpC;IAED,OAAO,KAAK,KAAK,GAEhB;IACD,OAAO,KAAK,KAAK,GAEhB;IACD,OAAO,KAAK,aAAa,GAExB;IAED,OAAO,CAAC,KAAK;IAWJ,KAAK,CAAC,OAAO,CAAC,EAAE,YAAY,GAAG,IAAI,CAE3C;IAED,OAAO,CAAC,MAAM;IASd,OAAO,CAAC,IAAI;IA2BZ,+FAA+F;IAC/F,OAAO,CAAC,KAAK;IAoBb,OAAO,CAAC,IAAI;IAeZ,OAAO,CAAC,MAAM;IAOd,OAAO,CAAC,MAAM;IAMd,OAAO,CAAC,YAAY;IAWpB,OAAO,CAAC,SAAS;IAqBjB,UAAmB,UAAU,IAAI,IAAI,CAEpC;IAED,UAAmB,MAAM,oCAqDxB;CACD;AAED,eAAO,MAAM,gBAAgB,+BAA6D,CAAC"}
1
+ {"version":3,"file":"menu-button.d.ts","sourceRoot":"","sources":["../../src/menu/menu-button.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAuB,MAAM,SAAS,CAAC;AAc7D;;;;;;;;GAQG;AACH,qBAAa,kBAAmB,SAAQ,aAAa;IACpD,OAAgB,MAAM,4BAAsB;IAC5C,OAAgB,UAAU;;YAChB,IAAI;;;YACL,IAAI;;;YACD,IAAI;YAAU,OAAO;;;YAChB,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YAKZ,KAAK;;MACZ;IACM,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,QAAQ,EAAE,OAAO,CAAC;IAClB,YAAY,EAAE,OAAO,CAAC;IACtB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,EAAE,OAAO,CAAC;IACtB,OAAO,CAAC,OAAO,CAAuC;IAEtD,0FAA0F;IAC1F,WAAoB,kBAAkB,IAAI,MAAM,EAAE,CAEjD;IAED,cAeC;IAEQ,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAG9F;IAEQ,oBAAoB,IAAI,IAAI,CAGpC;IAED,OAAO,KAAK,KAAK,GAEhB;IACD,OAAO,KAAK,KAAK,GAEhB;IACD,OAAO,KAAK,aAAa,GAExB;IAED,OAAO,CAAC,KAAK;IAWJ,KAAK,CAAC,OAAO,CAAC,EAAE,YAAY,GAAG,IAAI,CAI3C;IAED,OAAO,CAAC,MAAM;IASd,OAAO,CAAC,IAAI;IA2BZ,+FAA+F;IAC/F,OAAO,CAAC,KAAK;IAoBb,OAAO,CAAC,IAAI;IAeZ,OAAO,CAAC,MAAM;IAOd,OAAO,CAAC,MAAM;IAMd,OAAO,CAAC,YAAY;IAWpB,OAAO,CAAC,SAAS;IAqBjB,UAAmB,UAAU,IAAI,IAAI,CAEpC;IAED,UAAmB,MAAM,oCAqDxB;CACD;AAED,eAAO,MAAM,gBAAgB,+BAA6D,CAAC"}
@@ -59,18 +59,26 @@ function neutralizeDeviceStrokes(root) {
59
59
  }
60
60
  }
61
61
  function withAuthoredStrokeWidths(root, read) {
62
- const saved = carriers(root).map((el) => ({ el, style: el.getAttribute("style") }));
62
+ const saved = carriers(root).map((el) => ({
63
+ el,
64
+ hadStyle: el.hasAttribute("style"),
65
+ value: el.style?.getPropertyValue(DEVICE_PX_VAR) ?? "",
66
+ priority: el.style?.getPropertyPriority(DEVICE_PX_VAR) ?? ""
67
+ }));
63
68
  for (const { el } of saved) {
64
69
  el.style?.setProperty(DEVICE_PX_VAR, "0px");
65
70
  }
66
71
  try {
67
72
  return read();
68
73
  } finally {
69
- for (const { el, style } of saved) {
70
- if (style === null) {
71
- el.removeAttribute("style");
74
+ for (const { el, hadStyle, value, priority } of saved) {
75
+ if (value) {
76
+ el.style?.setProperty(DEVICE_PX_VAR, value, priority);
72
77
  } else {
73
- el.setAttribute("style", style);
78
+ el.style?.removeProperty(DEVICE_PX_VAR);
79
+ }
80
+ if (!hadStyle && !el.getAttribute("style")) {
81
+ el.removeAttribute("style");
74
82
  }
75
83
  }
76
84
  }
@@ -57,18 +57,26 @@ function neutralizeDeviceStrokes(root) {
57
57
  }
58
58
  }
59
59
  function withAuthoredStrokeWidths(root, read) {
60
- const saved = carriers(root).map((el) => ({ el, style: el.getAttribute("style") }));
60
+ const saved = carriers(root).map((el) => ({
61
+ el,
62
+ hadStyle: el.hasAttribute("style"),
63
+ value: el.style?.getPropertyValue(DEVICE_PX_VAR) ?? "",
64
+ priority: el.style?.getPropertyPriority(DEVICE_PX_VAR) ?? ""
65
+ }));
61
66
  for (const { el } of saved) {
62
67
  el.style?.setProperty(DEVICE_PX_VAR, "0px");
63
68
  }
64
69
  try {
65
70
  return read();
66
71
  } finally {
67
- for (const { el, style } of saved) {
68
- if (style === null) {
69
- el.removeAttribute("style");
72
+ for (const { el, hadStyle, value, priority } of saved) {
73
+ if (value) {
74
+ el.style?.setProperty(DEVICE_PX_VAR, value, priority);
70
75
  } else {
71
- el.setAttribute("style", style);
76
+ el.style?.removeProperty(DEVICE_PX_VAR);
77
+ }
78
+ if (!hadStyle && !el.getAttribute("style")) {
79
+ el.removeAttribute("style");
72
80
  }
73
81
  }
74
82
  }