ooxml-ui 1.4.0 → 1.5.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 (53) hide show
  1. package/README.md +2 -0
  2. package/dist/{chunk-NYRRH2MD.js → chunk-6YEWVS7I.js} +1 -1
  3. package/dist/{chunk-56A2JK63.js → chunk-BCH2ZLWI.js} +1 -1
  4. package/dist/{chunk-IY7QJLQG.js → chunk-CXOK5QWQ.js} +1 -1
  5. package/dist/{chunk-TWQ45BFL.js → chunk-FN3MBKHE.js} +1 -1
  6. package/dist/{chunk-BOIZWKM7.js → chunk-J2WUY2Q4.js} +7 -5
  7. package/dist/{chunk-2WLRFPMW.js → chunk-SPNWHKSR.js} +2 -0
  8. package/dist/{chunk-R3LV6SGC.js → chunk-V5P7RPMN.js} +5 -5
  9. package/dist/{chunk-L4XGRNHF.js → chunk-YNGNCKBE.js} +4 -4
  10. package/dist/clipboard-worker.js +1 -0
  11. package/dist/controls.js +4 -4
  12. package/dist/docx.js +6 -6
  13. package/dist/index.js +8 -8
  14. package/dist/pptx/{chunk-KRMMJUCO.cjs → chunk-7DMJEYQJ.cjs} +13 -5
  15. package/dist/pptx/{chunk-TC7HCF5M.mjs → chunk-LHNTMJSK.mjs} +13 -5
  16. package/dist/pptx/{chunk-MWHGUEIJ.mjs → chunk-LQLOD3HL.mjs} +150 -41
  17. package/dist/pptx/{chunk-FPE5PZMI.cjs → chunk-O2TZQM65.cjs} +168 -50
  18. package/dist/pptx/dom/elements/table-editable.d.ts.map +1 -1
  19. package/dist/pptx/dom/index.cjs +238 -207
  20. package/dist/pptx/dom/index.mjs +41 -10
  21. package/dist/pptx/export/html2canvas-clone.cjs +2 -2
  22. package/dist/pptx/export/html2canvas-clone.mjs +1 -1
  23. package/dist/pptx/index.cjs +2762 -2726
  24. package/dist/pptx/index.mjs +2 -2
  25. package/dist/pptx/render/device-pixel-stroke.d.ts +10 -3
  26. package/dist/pptx/render/device-pixel-stroke.d.ts.map +1 -1
  27. package/dist/pptx/render/index.d.ts +1 -0
  28. package/dist/pptx/render/index.d.ts.map +1 -1
  29. package/dist/pptx/render/morph-heuristics.d.ts.map +1 -1
  30. package/dist/pptx/render/morph-matching.d.ts.map +1 -1
  31. package/dist/pptx/render/morph-predicates.d.ts +21 -0
  32. package/dist/pptx/render/morph-predicates.d.ts.map +1 -1
  33. package/dist/pptx/render/paragraph-spacing.d.ts +21 -0
  34. package/dist/pptx/render/paragraph-spacing.d.ts.map +1 -1
  35. package/dist/pptx/render/table-cell-paragraphs.d.ts.map +1 -1
  36. package/dist/pptx/render/table-resize-merge.d.ts +59 -0
  37. package/dist/pptx/render/table-resize-merge.d.ts.map +1 -0
  38. package/dist/pptx/render/table-style.d.ts +6 -0
  39. package/dist/pptx/render/table-style.d.ts.map +1 -1
  40. package/dist/pptx/render/text-paragraphs.d.ts.map +1 -1
  41. package/dist/presence.js +3 -3
  42. package/dist/ribbon/overflow.d.ts.map +1 -1
  43. package/dist/smartart.js +3 -3
  44. package/dist/teams.js +6 -6
  45. package/dist/theme.js +2 -2
  46. package/dist/tokens.d.ts +2 -0
  47. package/dist/tokens.d.ts.map +1 -1
  48. package/dist/visio/shapes-window.d.ts +16 -5
  49. package/dist/visio/viewer-draw-tool.d.ts +11 -1
  50. package/dist/visio/viewer-stencil.d.ts +1 -1
  51. package/dist/visio.js +49 -41
  52. package/dist/xlsx.js +11 -10
  53. package/package.json +2 -2
package/README.md CHANGED
@@ -8,6 +8,8 @@
8
8
 
9
9
  [Try the apps](https://christophervr.github.io/ooxml/) | [npm](https://www.npmjs.com/package/ooxml-ui) | [Full docs](https://christophervr.github.io/ooxml/) | [Source](https://github.com/ChristopherVR/ooxml)
10
10
 
11
+ Part of [ooxml](https://github.com/ChristopherVR/ooxml#readme): **[Office](https://github.com/ChristopherVR/ooxml#ooxml-office-the-whole-suite-in-one-app)** · [Word](https://github.com/ChristopherVR/ooxml/tree/main/viewers/docx#readme) · [Excel](https://github.com/ChristopherVR/ooxml/tree/main/viewers/xlsx#readme) · [PowerPoint](https://github.com/ChristopherVR/ooxml/tree/main/viewers/pptx#readme) · [Visio](https://github.com/ChristopherVR/ooxml/tree/main/viewers/visio#readme) · [OpenTeams](https://github.com/ChristopherVR/ooxml/tree/main/viewers/teams#readme) · [Core](https://github.com/ChristopherVR/ooxml/tree/main/src/core#readme)
12
+
11
13
  Shared, format-neutral web components and styles for the Office viewers (Word, PowerPoint and
12
14
  Excel). Custom elements with shadow-root controls and typed events, no framework. The runtime
13
15
  dependencies are `ooxml-core` (types and a few pure helpers) and `lit`, which every element is built on
@@ -1,4 +1,4 @@
1
- import { OfficeElement, controlStyles, definer } from './chunk-IY7QJLQG.js';
1
+ import { OfficeElement, controlStyles, definer } from './chunk-CXOK5QWQ.js';
2
2
  import { html } from 'lit';
3
3
  import { hexToRgbChannels } from 'ooxml-core/color';
4
4
  import { resolveDrawingColor } from 'ooxml-core/diagram';
@@ -1,4 +1,4 @@
1
- import { OFFICE_TOKENS, TOUCH } from './chunk-2WLRFPMW.js';
1
+ import { OFFICE_TOKENS, TOUCH } from './chunk-SPNWHKSR.js';
2
2
 
3
3
  // src/theme-bridge.ts
4
4
  var SHADCN_NAMES = [
@@ -1,4 +1,4 @@
1
- import { TOUCH, tok, OFFICE_TOKENS } from './chunk-2WLRFPMW.js';
1
+ import { TOUCH, tok, OFFICE_TOKENS } from './chunk-SPNWHKSR.js';
2
2
  import { unsafeCSS, LitElement } from 'lit';
3
3
 
4
4
  // src/registry.ts
@@ -1,4 +1,4 @@
1
- import { OfficeElement, controlStyles, definer } from './chunk-IY7QJLQG.js';
1
+ import { OfficeElement, controlStyles, definer } from './chunk-CXOK5QWQ.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
@@ -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,7 @@ 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.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";
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
877
  function findReplaceFields(state) {
878
878
  return html`<div class="replace-fields">
879
879
  <label
@@ -5426,7 +5426,9 @@ function createRibbonOverflow(options) {
5426
5426
  button.focus();
5427
5427
  };
5428
5428
  pop.addEventListener("click", (event) => {
5429
- 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);
5430
5432
  });
5431
5433
  doc.addEventListener("pointerdown", outside, true);
5432
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)",
@@ -1,8 +1,8 @@
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';
1
+ import { defineSmartArt } from './chunk-6YEWVS7I.js';
2
+ import { TEAMS_TAGS, registerTeams } from './chunk-YNGNCKBE.js';
3
+ import { installOfficeUiTheme } from './chunk-BCH2ZLWI.js';
4
+ import { registerControls } from './chunk-J2WUY2Q4.js';
5
+ import { definePresence } from './chunk-FN3MBKHE.js';
6
6
 
7
7
  // src/index.ts
8
8
  var OFFICE_UI_TAGS = [
@@ -1,8 +1,8 @@
1
- import { THEME_CSS, installOfficeUiTheme } from './chunk-56A2JK63.js';
2
- import { defineMenuButton, defineMenuItem, registerControls, defineSwitch } from './chunk-BOIZWKM7.js';
1
+ import { THEME_CSS, installOfficeUiTheme } from './chunk-BCH2ZLWI.js';
2
+ import { defineMenuButton, defineMenuItem, registerControls, defineSwitch } from './chunk-J2WUY2Q4.js';
3
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';
4
+ import { initialsOf, definePresence } from './chunk-FN3MBKHE.js';
5
+ import { definer, OfficeElement, controlStyles } from './chunk-CXOK5QWQ.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';
@@ -2,6 +2,7 @@ import { captureVisioClipboard, serializeVisioClipboard } from 'ooxml-core/visio
2
2
 
3
3
  // src/visio/clipboard-worker.ts
4
4
  self.onmessage = async (event) => {
5
+ if (event.origin && event.origin !== self.location.origin) return;
5
6
  try {
6
7
  const request = event.data;
7
8
  const snapshot = await captureVisioClipboard(
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-BOIZWKM7.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-BOIZWKM7.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-R3LV6SGC.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-L4XGRNHF.js';
1
+ export { OFFICE_UI_TAGS, registerOfficeUi } from './chunk-V5P7RPMN.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-YNGNCKBE.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-BOIZWKM7.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';
@@ -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
  }