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
@@ -3,6 +3,7 @@ import { type Backstage } from './backstage.js';
3
3
  import type { BackstageOptions, BackstageOptionKey } from './backstage-options.js';
4
4
  import { type FileCommand } from './file-commands.js';
5
5
  import { type EditorLocale } from './localization.js';
6
+ import { type RibbonActions } from './ribbon-actions.js';
6
7
  import { type StatusBar } from './status-bar.js';
7
8
  import { type SaveState, type TitleBar } from './title-bar.js';
8
9
  /** What the chrome needs from the editor element; keeps component.ts free of chrome details. */
@@ -20,6 +21,8 @@ export interface ChromeHost {
20
21
  print(): void;
21
22
  history(key: 'undo' | 'redo'): void;
22
23
  toggleComments(): void;
24
+ /** Whether a collaboration session is live (Share then reads pressed). */
25
+ collaborating(): boolean;
23
26
  setViewMode(mode: 'draft' | 'print'): void;
24
27
  setZoom(percent: number): void;
25
28
  reportError(error: Error): void;
@@ -32,10 +35,14 @@ export interface ChromeHost {
32
35
  setHiddenActions(ids: string[]): void;
33
36
  }
34
37
  export declare const DEFAULT_FILE_NAME = "Document1.docx";
35
- /** Title bar, File tab/backstage, status bar and the default browser file workflow. */
38
+ /**
39
+ * Title bar, ribbon tab-row actions (editing mode, Comments, Share), File tab/backstage, status
40
+ * bar and the default browser file workflow.
41
+ */
36
42
  export declare class EditorChrome {
37
43
  private readonly host;
38
44
  readonly titleBar: TitleBar;
45
+ readonly ribbonActions: RibbonActions;
39
46
  readonly backstage: Backstage;
40
47
  readonly statusBar: StatusBar;
41
48
  readonly fileInput: HTMLInputElement;
@@ -1,4 +1,4 @@
1
- export type FileCommand = 'new' | 'open' | 'save' | 'saveAs' | 'export' | 'exportText' | 'print';
1
+ export type FileCommand = 'new' | 'open' | 'save' | 'saveAs' | 'export' | 'exportText' | 'print' | 'share';
2
2
  export interface FileCommandDetail {
3
3
  command: FileCommand;
4
4
  /** Save As: the name the user chose. */
@@ -9,6 +9,7 @@ export declare const enApp: {
9
9
  readonly Editing: 'Editing';
10
10
  readonly Viewing: 'Viewing';
11
11
  readonly 'Show comments': 'Show comments';
12
+ readonly Share: 'Share';
12
13
  readonly 'Unsaved changes': 'Unsaved changes';
13
14
  readonly Saved: 'Saved';
14
15
  readonly 'Saving…': 'Saving…';
@@ -51,6 +51,7 @@ export declare const en: {
51
51
  readonly Editing: 'Editing';
52
52
  readonly Viewing: 'Viewing';
53
53
  readonly 'Show comments': 'Show comments';
54
+ readonly Share: 'Share';
54
55
  readonly 'Unsaved changes': 'Unsaved changes';
55
56
  readonly Saved: 'Saved';
56
57
  readonly 'Saving\u2026': 'Saving…';
@@ -48,6 +48,7 @@ export declare const strings: {
48
48
  readonly Editing: 'Editing';
49
49
  readonly Viewing: 'Viewing';
50
50
  readonly 'Show comments': 'Show comments';
51
+ readonly Share: 'Share';
51
52
  readonly 'Unsaved changes': 'Unsaved changes';
52
53
  readonly Saved: 'Saved';
53
54
  readonly 'Saving\u2026': 'Saving…';
@@ -0,0 +1,22 @@
1
+ /**
2
+ * The controls at the right end of Word's ribbon tab row: the Editing / Viewing selector, the
3
+ * Comments toggle and Share, in that order, as Word 365 places them (Excel uses the same
4
+ * `office-ui-ribbon-actions` element). They sit in the shared ribbon's `actions` slot; the title
5
+ * bar keeps the quick access toolbar, the file name and "Tell me".
6
+ */
7
+ import { type OfficeUiRibbonActions } from '../ribbon/ribbon-actions.js';
8
+ import { type EditorLocale } from './localization.js';
9
+ export interface RibbonActionsHandlers {
10
+ setReadOnly(readOnly: boolean): void;
11
+ toggleComments(): void;
12
+ share(): void;
13
+ }
14
+ export interface RibbonActions {
15
+ readonly element: OfficeUiRibbonActions;
16
+ setReadOnly(readOnly: boolean): void;
17
+ setCommentsOpen(open: boolean): void;
18
+ /** Share reads pressed while a collaboration session is live. */
19
+ setSharing(active: boolean): void;
20
+ relocalize(locale: EditorLocale): void;
21
+ }
22
+ export declare function createRibbonActions(handlers: RibbonActionsHandlers): RibbonActions;
@@ -3,8 +3,6 @@ export type SaveState = 'saved' | 'dirty' | 'saving' | 'saved-local';
3
3
  export interface TitleBarHandlers {
4
4
  fileCommand(command: FileCommand): void;
5
5
  history(key: 'undo' | 'redo'): void;
6
- toggleComments(): void;
7
- setReadOnly(readOnly: boolean): void;
8
6
  /** The ribbon root, searched by the "Tell me" box for runnable commands. */
9
7
  ribbon(): HTMLElement | undefined;
10
8
  }
@@ -13,13 +11,13 @@ export interface TitleBar {
13
11
  setFileName(name: string): void;
14
12
  setSaveState(state: SaveState): void;
15
13
  setReadOnly(readOnly: boolean): void;
16
- setCommentsOpen(open: boolean): void;
17
14
  /** Redraws every label after the editor locale changed. */
18
15
  relocalize(): void;
19
16
  }
20
17
  /**
21
18
  * Word-style title bar: quick access toolbar, document name/state and "Tell me". The shared
22
- * `office-ui-title-bar` draws it from translated state; the comments toggle and view mode stay
23
- * docx controls placed in its `account` slot.
19
+ * `office-ui-title-bar` draws it from translated state. The editing mode, Comments and Share sit
20
+ * at the right end of the ribbon tab row (ribbon-actions.ts), as in Word 365; the bar's `account`
21
+ * and `collaboration` slots stay free for a host's account and presence.
24
22
  */
25
23
  export declare function createTitleBar(handlers: TitleBarHandlers): TitleBar;
package/dist/docx.js CHANGED
@@ -1,10 +1,10 @@
1
- import { defineSmartArt } from './chunk-Y2E22JVO.js';
2
- import { shadcnBridge } from './chunk-JAJFLFAV.js';
3
- import { createRibbonOverflow, defineRibbon, defineRuler, defineCommentsPane, defineDialog, defineSearchField, defineSwitch, defineTitleBar, defineBackstage, defineStatusBar, defineZoomSlider, defineContextMenu, runKeyTips, assignKeyTips } from './chunk-7FNDOWTX.js';
4
- import { registerIcon } from './chunk-BOX43CZD.js';
5
- import './chunk-VUB44CAJ.js';
6
- import './chunk-YK2DPYMU.js';
7
- import './chunk-XNCWB2X6.js';
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';
4
+ import { registerIcon } from './chunk-M6GF5ED2.js';
5
+ import './chunk-TWQ45BFL.js';
6
+ import './chunk-IY7QJLQG.js';
7
+ import './chunk-2WLRFPMW.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';
@@ -529,6 +529,7 @@ var deApp = {
529
529
  Editing: "Bearbeiten",
530
530
  Viewing: "Anzeigen",
531
531
  "Show comments": "Kommentare anzeigen",
532
+ Share: "Freigeben",
532
533
  "Unsaved changes": "Nicht gespeicherte \xC4nderungen",
533
534
  Saved: "Gespeichert",
534
535
  "Saving\u2026": "Speichern\u2026",
@@ -1320,6 +1321,7 @@ var enApp = {
1320
1321
  Editing: "Editing",
1321
1322
  Viewing: "Viewing",
1322
1323
  "Show comments": "Show comments",
1324
+ Share: "Share",
1323
1325
  "Unsaved changes": "Unsaved changes",
1324
1326
  Saved: "Saved",
1325
1327
  "Saving\u2026": "Saving\u2026",
@@ -1981,6 +1983,7 @@ var esApp = {
1981
1983
  Editing: "Edici\xF3n",
1982
1984
  Viewing: "Visualizaci\xF3n",
1983
1985
  "Show comments": "Mostrar comentarios",
1986
+ Share: "Compartir",
1984
1987
  "Unsaved changes": "Cambios sin guardar",
1985
1988
  Saved: "Guardado",
1986
1989
  "Saving\u2026": "Guardando\u2026",
@@ -2642,6 +2645,7 @@ var frApp = {
2642
2645
  Editing: "Modification",
2643
2646
  Viewing: "Lecture",
2644
2647
  "Show comments": "Afficher les commentaires",
2648
+ Share: "Partager",
2645
2649
  "Unsaved changes": "Modifications non enregistr\xE9es",
2646
2650
  Saved: "Enregistr\xE9",
2647
2651
  "Saving\u2026": "Enregistrement\u2026",
@@ -3303,6 +3307,7 @@ var zhCNApp = {
3303
3307
  Editing: "\u7F16\u8F91",
3304
3308
  Viewing: "\u67E5\u770B",
3305
3309
  "Show comments": "\u663E\u793A\u6279\u6CE8",
3310
+ Share: "\u5171\u4EAB",
3306
3311
  "Unsaved changes": "\u672A\u4FDD\u5B58\u7684\u66F4\u6539",
3307
3312
  Saved: "\u5DF2\u4FDD\u5B58",
3308
3313
  "Saving\u2026": "\u6B63\u5728\u4FDD\u5B58\u2026",
@@ -16440,7 +16445,7 @@ var EditorCore = class {
16440
16445
  this.host.canEditOutsideBody()
16441
16446
  );
16442
16447
  syncPageState(this);
16443
- chrome?.titleBar.setCommentsOpen(Boolean(review?.commentsOpen));
16448
+ chrome?.ribbonActions.setCommentsOpen(Boolean(review?.commentsOpen));
16444
16449
  }
16445
16450
  };
16446
16451
 
@@ -16478,7 +16483,7 @@ var document_default = ".dve-revision-insert {\n color: var(--dve-revision-color
16478
16483
  var print_default = ".dve-print-pages {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 24px;\n margin: 0 auto;\n zoom: var(--dve-zoom, 1);\n}\n.dve-print-pages[hidden] {\n display: none;\n}\n.dve-print-page {\n position: relative;\n flex: none;\n background: var(--dve-page-color, #fff);\n color: #202124;\n box-shadow:\n 0 1px 3px #20212430,\n 0 4px 12px #20212420;\n overflow: hidden;\n}\n.dve-print-column {\n position: absolute;\n z-index: 1;\n}\n/* Floating pictures sit in front of text unless anchored behind it (wp:anchor/@behindDoc). */\n.dve-print-float {\n z-index: 2;\n}\n.dve-print-float-behind {\n z-index: 0;\n}\n.dve-print-picture-missing {\n box-sizing: border-box;\n border: 1px dashed #8a8886;\n background: #f3f2f1;\n}\n.dve-print-chart {\n overflow: hidden;\n background: #fff;\n}\n.dve-print-chart > svg {\n display: block;\n width: 100%;\n height: 100%;\n}\n.dve-print-chart-frame {\n display: grid;\n place-items: center;\n color: #605e5c;\n font-size: 11px;\n}\n.dve-print-block {\n position: absolute;\n left: 0;\n width: 100%;\n}\n.dve-print-line {\n position: absolute;\n left: 0;\n width: 100%;\n font:\n 11pt/1.2 Calibri,\n Arial,\n sans-serif;\n cursor: text;\n}\n.dve-print-line span {\n position: absolute;\n top: 0;\n}\n.dve-print-row {\n position: absolute;\n left: 0;\n width: 100%;\n}\n/* Cells sit at their grid positions; borders come from the document (Word prints no gridlines). */\n.dve-print-cell {\n position: absolute;\n top: 0;\n box-sizing: border-box;\n}\n.dve-print-cell-content {\n position: absolute;\n bottom: 0;\n}\n@media print {\n .dve-ribbon,\n .dve-status,\n .multilingual-controls {\n display: none !important;\n }\n .dve-canvas {\n overflow: visible !important;\n padding: 0 !important;\n }\n .dve-paper {\n display: none !important;\n }\n .dve-print-pages {\n gap: 0 !important;\n zoom: 1 !important;\n }\n .dve-print-page {\n /* Like Word, page colours are not printed unless asked for. */\n background: #fff !important;\n box-shadow: none !important;\n break-after: page;\n }\n}\n.dve-print-header,\n.dve-print-footer {\n position: absolute;\n color: var(--ink);\n font-size: 11pt;\n pointer-events: none;\n}\n.dve-print-header p,\n.dve-print-footer p {\n margin: 0;\n}\n.dve-print-header table,\n.dve-print-footer table {\n width: 100%;\n border-collapse: collapse;\n}\n\n/* Complex field begin/code/separate/end markers: kept in the document, never shown. */\n.dve-field-marker {\n display: inline;\n font-size: 0;\n}\n\n/* TOC entries link to hidden _Toc bookmarks; Word draws them in the entry's style, not as links. */\na.dve-link[data-anchor^='_Toc'] {\n color: inherit;\n text-decoration: none;\n}\n\n/* Tabs sized to Word's tab stops by tab-stops-view.ts; leaders fill the tab's width. */\n.dve-tab {\n display: inline-block;\n overflow: hidden;\n white-space: pre;\n vertical-align: baseline;\n text-indent: 0;\n}\n.dve-tab-leader-dot,\n.dve-tab-leader-middleDot {\n background-image: radial-gradient(circle, currentColor 0.8px, transparent 1.1px);\n background-size: 4px 4px;\n background-repeat: repeat-x;\n background-position: right 0 bottom 0.25em;\n}\n.dve-tab-leader-hyphen {\n background-image: linear-gradient(to right, currentColor 50%, transparent 50%);\n background-size: 6px 1px;\n background-repeat: repeat-x;\n background-position: right 0 bottom 0.4em;\n}\n.dve-tab-leader-underscore,\n.dve-tab-leader-heavy {\n border-bottom: 1px solid currentColor;\n}\n.dve-tab-leader-heavy {\n border-bottom-width: 2px;\n}\n\n/* Footnotes above the bottom margin; the separator is Word's 2-inch rule. */\n.dve-print-footnotes {\n position: absolute;\n z-index: 1;\n}\n.dve-print-footnote-separator {\n position: absolute;\n top: -7px;\n left: 0;\n width: 192px;\n border-top: 1px solid currentColor;\n}\n.dve-print-footnote {\n position: absolute;\n left: 0;\n width: 100%;\n}\n\n[data-print-view] .dve-notes-container {\n display: none;\n}\n\n/* Word draws superscript and subscript at about two thirds size without growing the line. */\n.dve-paper sup,\n.dve-paper sub {\n font-size: 0.65em;\n line-height: 0;\n}\n/* Exact-height rows clip content that does not fit, as Word does. */\n.dve-print-cell {\n overflow: hidden;\n}\n.dve-print-paragraph-frame {\n position: absolute;\n top: 0;\n box-sizing: border-box;\n}\n\n/* View > Multiple Pages: Print Layout's sheets sit side by side and wrap, instead of one column. */\n.dve-canvas[data-multipage] .dve-print-pages {\n flex-direction: row;\n flex-wrap: wrap;\n align-items: flex-start;\n justify-content: center;\n}\n\n/* Layout > Line Numbers: numbers in the left margin, one per printed line. */\n.dve-print-line-number {\n position: absolute;\n width: 40px;\n text-align: right;\n font:\n 10px 'Segoe UI',\n Arial,\n sans-serif;\n color: #444;\n pointer-events: none;\n}\n";
16479
16484
 
16480
16485
  // raw-css:/home/runner/work/ooxml/ooxml/src/ui/src/docx/styles/chrome-titlebar.css?raw
16481
- var chrome_titlebar_default = ".dve-frame {\n position: relative;\n border: 0;\n box-shadow: none;\n}\n.dve-icon {\n flex: none;\n}\n.dve-icon-button {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-width: 28px;\n height: 28px;\n padding: 0 6px;\n border: 0;\n border-radius: 4px;\n background: none;\n color: inherit;\n cursor: pointer;\n}\n.dve-icon-button:hover:not(:disabled),\n.dve-icon-button[aria-pressed='true'] {\n background: var(--word-soft);\n}\n.dve-icon-button:disabled {\n opacity: 0.4;\n cursor: default;\n}\n\n/* Title bar: drawn by the shared office-ui-title-bar; these colour it and style the account slot. */\n.dve-titlebar {\n flex: none;\n --office-title-bar-height: 40px;\n --office-title-bar-background: var(--chrome);\n --office-title-bar-border: var(--line);\n --office-title-bar-mark-background: var(--word);\n --office-title-bar-mark-foreground: var(--dve-primary-foreground);\n}\n.dve-title-actions {\n display: flex;\n align-items: center;\n gap: 2px;\n}\n.dve-mode-select {\n height: 28px;\n margin-left: 4px;\n padding: 0 6px;\n border: 1px solid var(--line);\n border-radius: 4px;\n background: var(--surface);\n color: var(--ink);\n font: inherit;\n}\n";
16486
+ var chrome_titlebar_default = ".dve-frame {\n position: relative;\n border: 0;\n box-shadow: none;\n}\n.dve-icon {\n flex: none;\n}\n.dve-icon-button {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-width: 28px;\n height: 28px;\n padding: 0 6px;\n border: 0;\n border-radius: 4px;\n background: none;\n color: inherit;\n cursor: pointer;\n}\n.dve-icon-button:hover:not(:disabled),\n.dve-icon-button[aria-pressed='true'] {\n background: var(--word-soft);\n}\n.dve-icon-button:disabled {\n opacity: 0.4;\n cursor: default;\n}\n\n/* Title bar: drawn by the shared office-ui-title-bar; these colour it. */\n.dve-titlebar {\n flex: none;\n --office-title-bar-height: 40px;\n --office-title-bar-background: var(--chrome);\n --office-title-bar-border: var(--line);\n --office-title-bar-mark-background: var(--word);\n --office-title-bar-mark-foreground: var(--dve-primary-foreground);\n}\n";
16482
16487
 
16483
16488
  // raw-css:/home/runner/work/ooxml/ooxml/src/ui/src/docx/styles/backstage.css?raw
16484
16489
  var backstage_default = "/* Backstage: the shared office-ui-backstage draws the frame; these colour it and style the pages. */\n.dve-backstage {\n --office-backstage-nav-width: 220px;\n --office-backstage-nav-background: var(--word);\n --office-backstage-nav-foreground: var(--dve-primary-foreground);\n --office-backstage-item-hover: var(--word-strong);\n z-index: 40;\n background: var(--surface);\n}\n.dve-backstage-content {\n overflow: auto;\n padding: 28px 40px;\n color: var(--ink);\n}\n.dve-backstage-content h2 {\n margin: 0 0 20px;\n font-size: 30px;\n font-weight: 300;\n}\n.dve-backstage-content h3 {\n margin: 24px 0 10px;\n font-size: 15px;\n font-weight: 600;\n}\n.dve-backstage-facts {\n display: grid;\n grid-template-columns: max-content minmax(0, 1fr);\n gap: 6px 24px;\n margin: 0;\n}\n.dve-backstage-facts dt {\n color: var(--muted);\n}\n.dve-backstage-facts dd {\n margin: 0;\n overflow-wrap: anywhere;\n}\n.dve-compatibility-notes {\n display: grid;\n gap: 8px;\n max-width: 760px;\n margin: 0;\n padding: 0;\n list-style: none;\n}\n.dve-compatibility-notes li {\n display: flex;\n gap: 8px;\n padding: 10px 12px;\n border: 1px solid var(--line);\n border-radius: 6px;\n line-height: 1.45;\n}\n.dve-compatibility-notes .dve-icon {\n margin-top: 2px;\n color: #b7791f;\n}\n.dve-backstage-tile {\n display: inline-flex;\n flex-direction: column;\n gap: 8px;\n padding: 8px;\n border: 1px solid transparent;\n border-radius: 6px;\n background: none;\n color: var(--ink);\n font: inherit;\n cursor: pointer;\n}\n.dve-backstage-tile:hover {\n border-color: var(--line);\n background: var(--word-soft);\n}\n.dve-backstage-tile-preview {\n width: 150px;\n height: 190px;\n border: 1px solid var(--line);\n background: #fff;\n box-shadow: 0 1px 3px #0002;\n}\n.dve-backstage-primary {\n padding: 8px 18px;\n border: 0;\n border-radius: 4px;\n background: var(--word);\n color: var(--dve-primary-foreground);\n font: inherit;\n cursor: pointer;\n}\n.dve-backstage-muted {\n color: var(--muted);\n}\n\n.dve-backstage-title {\n margin: 0 0 4px;\n font-size: 26px;\n font-weight: 400;\n overflow-wrap: anywhere;\n}\n.dve-backstage-columns {\n display: grid;\n grid-template-columns: minmax(0, 1fr) 300px;\n gap: 40px;\n align-items: start;\n}\n.dve-backstage-properties {\n padding: 4px 0 0 24px;\n border-left: 1px solid var(--line);\n}\n.dve-backstage-properties h3 {\n margin-top: 0;\n}\n.dve-backstage-card {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 24px;\n max-width: 760px;\n margin-bottom: 12px;\n padding: 14px 18px;\n border: 1px solid var(--line);\n border-radius: 6px;\n}\n.dve-backstage-card h3 {\n margin: 0 0 4px;\n}\n.dve-backstage-card p {\n margin: 0;\n}\n.dve-backstage-field {\n display: grid;\n gap: 4px;\n max-width: 420px;\n margin-bottom: 14px;\n color: var(--muted);\n font-size: 12px;\n}\n.dve-backstage-field input,\n.dve-backstage-field select {\n height: 32px;\n padding: 0 8px;\n border: 1px solid var(--line);\n border-radius: 4px;\n background: var(--surface);\n color: var(--ink);\n font:\n 14px 'Segoe UI',\n Arial,\n sans-serif;\n}\n.dve-backstage-home-actions {\n display: flex;\n flex-wrap: wrap;\n gap: 12px;\n margin: 24px 0;\n}\n.dve-backstage-toggle {\n display: flex;\n align-items: center;\n gap: 12px;\n}\n.dve-backstage-toggle input {\n width: 18px;\n height: 18px;\n}\n@media (max-width: 760px) {\n .dve-backstage-content {\n padding: 20px;\n }\n .dve-backstage-card {\n align-items: stretch;\n flex-direction: column;\n }\n .dve-backstage-columns {\n grid-template-columns: minmax(0, 1fr);\n }\n .dve-backstage-properties {\n padding-left: 0;\n border-left: 0;\n }\n}\n\n/* Customize Ribbon: one block per tab, one fieldset per group, a checkbox per command. */\n.dve-customize-tab h3 {\n margin: 18px 0 6px;\n}\n.dve-customize-group {\n margin: 0 0 8px;\n padding: 6px 10px 8px;\n border: 1px solid var(--line);\n border-radius: 4px;\n}\n.dve-customize-group legend {\n padding: 0 4px;\n color: var(--muted);\n font-size: 12px;\n}\n.dve-customize-row {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n min-width: 180px;\n padding: 2px 8px 2px 0;\n font-size: 13px;\n}\n";
@@ -17766,15 +17771,6 @@ function icon(name) {
17766
17771
  svg.append(path);
17767
17772
  return svg;
17768
17773
  }
17769
- function iconButton(name, label, className = "") {
17770
- const button3 = document.createElement("button");
17771
- button3.type = "button";
17772
- button3.className = `dve-icon-button ${className}`.trim();
17773
- button3.setAttribute("aria-label", label);
17774
- button3.title = label;
17775
- button3.append(icon(name));
17776
- return button3;
17777
- }
17778
17774
 
17779
17775
  // src/docx/backstage-options.ts
17780
17776
  function renderOptions({ handlers, t, content }) {
@@ -18283,6 +18279,46 @@ function withExtension(fileName, extension) {
18283
18279
  return `${base}.${extension}`;
18284
18280
  }
18285
18281
 
18282
+ // src/docx/ribbon-actions.ts
18283
+ function createRibbonActions(handlers) {
18284
+ defineRibbonActions();
18285
+ const element = document.createElement("office-ui-ribbon-actions");
18286
+ element.className = "dve-ribbon-actions";
18287
+ element.slot = "actions";
18288
+ element.mode = "editing";
18289
+ element.addEventListener(
18290
+ "office-ribbon-mode",
18291
+ (event) => handlers.setReadOnly(event.detail.mode === "viewing")
18292
+ );
18293
+ element.addEventListener("office-ribbon-comments", () => handlers.toggleComments());
18294
+ element.addEventListener("office-ribbon-share", () => handlers.share());
18295
+ const relocalize = (locale) => {
18296
+ element.modeLabel = translate(locale, "Editing mode");
18297
+ element.modes = [
18298
+ { value: "editing", label: translate(locale, "Editing") },
18299
+ { value: "viewing", label: translate(locale, "Viewing") }
18300
+ ];
18301
+ element.commentsLabel = translate(locale, "Comments");
18302
+ element.commentsTitle = translate(locale, "Show comments");
18303
+ element.shareLabel = translate(locale, "Share");
18304
+ element.shareTitle = translate(locale, "Share");
18305
+ };
18306
+ relocalize("en");
18307
+ return {
18308
+ element,
18309
+ setReadOnly(readOnly) {
18310
+ element.mode = readOnly ? "viewing" : "editing";
18311
+ },
18312
+ setCommentsOpen(open) {
18313
+ element.commentsPressed = open;
18314
+ },
18315
+ setSharing(active) {
18316
+ element.sharePressed = active;
18317
+ },
18318
+ relocalize
18319
+ };
18320
+ }
18321
+
18286
18322
  // src/docx/status-bar.ts
18287
18323
  var ZOOM_MIN = 50;
18288
18324
  var ZOOM_MAX = 200;
@@ -18408,28 +18444,6 @@ function createTitleBar(handlers) {
18408
18444
  defineTitleBar();
18409
18445
  const element = document.createElement("office-ui-title-bar");
18410
18446
  element.className = "dve-titlebar";
18411
- const actions = document.createElement("div");
18412
- actions.className = "dve-title-actions";
18413
- actions.slot = "account";
18414
- const comments = iconButton("comment", "Show comments");
18415
- comments.setAttribute("aria-pressed", "false");
18416
- comments.addEventListener("click", () => handlers.toggleComments());
18417
- const mode = document.createElement("select");
18418
- mode.className = "dve-mode-select";
18419
- mode.setAttribute("aria-label", "Editing mode");
18420
- const modeOptions = [
18421
- ["editing", "Editing"],
18422
- ["viewing", "Viewing"]
18423
- ];
18424
- for (const [value, text] of modeOptions) {
18425
- const option = document.createElement("option");
18426
- option.value = value;
18427
- option.textContent = text;
18428
- mode.append(option);
18429
- }
18430
- mode.addEventListener("change", () => handlers.setReadOnly(mode.value === "viewing"));
18431
- actions.append(comments, mode);
18432
- element.append(actions);
18433
18447
  const model = { fileName: "", saveState: "saved", readOnly: false };
18434
18448
  let found = /* @__PURE__ */ new Map();
18435
18449
  const render = () => {
@@ -18502,12 +18516,8 @@ function createTitleBar(handlers) {
18502
18516
  },
18503
18517
  setReadOnly(readOnly) {
18504
18518
  model.readOnly = readOnly;
18505
- mode.value = readOnly ? "viewing" : "editing";
18506
18519
  render();
18507
18520
  },
18508
- setCommentsOpen(open) {
18509
- comments.setAttribute("aria-pressed", String(open));
18510
- },
18511
18521
  relocalize: render
18512
18522
  };
18513
18523
  }
@@ -18520,10 +18530,13 @@ var EditorChrome = class {
18520
18530
  this.titleBar = createTitleBar({
18521
18531
  fileCommand: (command) => void this.run(command),
18522
18532
  history: (key2) => host.history(key2),
18523
- toggleComments: () => host.toggleComments(),
18524
- setReadOnly: (readOnly) => host.setReadOnly(readOnly),
18525
18533
  ribbon: () => host.ribbon()
18526
18534
  });
18535
+ this.ribbonActions = createRibbonActions({
18536
+ setReadOnly: (readOnly) => host.setReadOnly(readOnly),
18537
+ toggleComments: () => host.toggleComments(),
18538
+ share: () => void this.run("share")
18539
+ });
18527
18540
  this.backstage = createBackstage({
18528
18541
  fileCommand: (command, fileName) => void this.run(command, fileName),
18529
18542
  close: () => this.closeBackstage(),
@@ -18568,6 +18581,7 @@ var EditorChrome = class {
18568
18581
  }
18569
18582
  host;
18570
18583
  titleBar;
18584
+ ribbonActions;
18571
18585
  backstage;
18572
18586
  statusBar;
18573
18587
  fileInput;
@@ -18579,6 +18593,7 @@ var EditorChrome = class {
18579
18593
  frame.prepend(this.titleBar.element);
18580
18594
  frame.append(this.statusBar.element, this.backstage.element, this.fileInput);
18581
18595
  this.ribbon = ribbon;
18596
+ ribbon.append(this.ribbonActions.element);
18582
18597
  ribbon.addEventListener("office-ribbon-file", () => this.backstage.open("home"));
18583
18598
  }
18584
18599
  get fileName() {
@@ -18604,6 +18619,7 @@ var EditorChrome = class {
18604
18619
  this.statusBar.relocalize();
18605
18620
  this.backstage.relocalize();
18606
18621
  this.titleBar.relocalize();
18622
+ this.ribbonActions.relocalize(locale);
18607
18623
  const fileTab = this.host.ribbon()?.querySelector(".dve-file-tab");
18608
18624
  if (fileTab) fileTab.textContent = translate(locale, "File");
18609
18625
  this.fileInput.setAttribute("aria-label", translate(locale, "Open"));
@@ -18615,6 +18631,8 @@ var EditorChrome = class {
18615
18631
  this.statusBar.setNoteCount(model.warnings.length);
18616
18632
  this.statusBar.setLanguage(this.host.element.lang || "");
18617
18633
  this.titleBar.setReadOnly(this.host.readOnly());
18634
+ this.ribbonActions.setReadOnly(this.host.readOnly());
18635
+ this.ribbonActions.setSharing(this.host.collaborating());
18618
18636
  }
18619
18637
  closeBackstage() {
18620
18638
  this.backstage.close();
@@ -18627,6 +18645,7 @@ var EditorChrome = class {
18627
18645
  if (command === "new") this.newDocument();
18628
18646
  else if (command === "open") this.fileInput.click();
18629
18647
  else if (command === "print") this.host.print();
18648
+ else if (command === "share") return;
18630
18649
  else if (command === "exportText")
18631
18650
  downloadText(plainText(this.host.model()), withExtension(this._fileName, "txt"));
18632
18651
  else if (command === "saveAs") {
@@ -20099,6 +20118,7 @@ function createChrome(core, api) {
20099
20118
  if (typeof document.execCommand === "function") core.targetView()?.focus();
20100
20119
  },
20101
20120
  toggleComments: () => shell.review?.handleComments("toggle"),
20121
+ collaborating: () => core.collab.active,
20102
20122
  setViewMode: (mode) => core.pages.setViewMode(mode),
20103
20123
  setZoom: (percent) => core.pages.setZoom(percent),
20104
20124
  options: () => ({
@@ -1 +1 @@
1
- {"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../src/icons.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,MAAM,WAAW,UAAU;IAC1B,CAAC,EAAE,MAAM,CAAC;IACV,+BAA+B;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB;AAoFD,4EAA4E;AAC5E,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,MAAM,GAAG,OAAO,CAK7E;AAED,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS,CAE/E;AAED,wBAAgB,SAAS,IAAI,MAAM,EAAE,CAEpC;AAID,wBAAgB,aAAa,CAAC,GAAG,EAAE,QAAQ,GAAG,aAAa,CAI1D;AAED,0FAA0F;AAC1F,wBAAgB,SAAS,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAmBnF"}
1
+ {"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../src/icons.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,MAAM,WAAW,UAAU;IAC1B,CAAC,EAAE,MAAM,CAAC;IACV,+BAA+B;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB;AAqFD,4EAA4E;AAC5E,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,MAAM,GAAG,OAAO,CAK7E;AAED,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS,CAE/E;AAED,wBAAgB,SAAS,IAAI,MAAM,EAAE,CAEpC;AAID,wBAAgB,aAAa,CAAC,GAAG,EAAE,QAAQ,GAAG,aAAa,CAI1D;AAED,0FAA0F;AAC1F,wBAAgB,SAAS,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAmBnF"}
package/dist/icons.js CHANGED
@@ -1 +1 @@
1
- export { createIconSvg, getIcon, listIcons, paintIcon, registerIcon } from './chunk-BOX43CZD.js';
1
+ export { createIconSvg, getIcon, listIcons, paintIcon, registerIcon } from './chunk-M6GF5ED2.js';
package/dist/index.d.ts CHANGED
@@ -8,7 +8,7 @@ export * from './teams/index.js';
8
8
  export * from './theme.js';
9
9
  export { CONTRACT_REVISION, type Definer } from './registry.js';
10
10
  /** Every ooxml-ui tag this package defines, in registration order. */
11
- export declare const OFFICE_UI_TAGS: readonly ["office-ui-icon", "office-ui-button", "office-ui-checkbox", "office-ui-switch", "office-ui-select", "office-ui-ribbon-group", "office-ui-ribbon-stack", "office-ui-menu-item", "office-ui-menu-button", "office-ui-menu-separator", "office-ui-context-menu", "office-ui-command-search", "office-ui-toolbar", "office-ui-dialog", "office-ui-status-bar", "office-ui-status-item", "office-ui-zoom-slider", "office-ui-tab-strip", "office-ui-options-dialog", "office-ui-account", "office-ui-ribbon", "office-ui-find-bar", "office-ui-ruler", "office-ui-backstage", "office-ui-print-preview", "office-ui-radio", "office-ui-search", "office-ui-ribbon-toggle", "office-ui-dialog-footer", "office-ui-toasts", "office-ui-read-only-banner", "office-ui-paste-options", "office-ui-title-bar", "office-ui-ribbon-section", "office-ui-gallery", "office-ui-comments-pane", "office-ui-presence", "office-ui-smartart", "office-ui-avatar", "office-ui-app-rail", "office-ui-channel-list", "office-ui-chat-list", "office-ui-chat-composer", "office-ui-prejoin", "office-ui-call-grid", "office-ui-call-controls"];
11
+ export declare const OFFICE_UI_TAGS: readonly ["office-ui-icon", "office-ui-button", "office-ui-checkbox", "office-ui-switch", "office-ui-select", "office-ui-ribbon-group", "office-ui-ribbon-stack", "office-ui-menu-item", "office-ui-menu-button", "office-ui-menu-separator", "office-ui-context-menu", "office-ui-command-search", "office-ui-toolbar", "office-ui-dialog", "office-ui-status-bar", "office-ui-status-item", "office-ui-zoom-slider", "office-ui-tab-strip", "office-ui-options-dialog", "office-ui-account", "office-ui-ribbon", "office-ui-ribbon-actions", "office-ui-find-bar", "office-ui-ruler", "office-ui-backstage", "office-ui-print-preview", "office-ui-radio", "office-ui-search", "office-ui-ribbon-toggle", "office-ui-dialog-footer", "office-ui-toasts", "office-ui-read-only-banner", "office-ui-paste-options", "office-ui-title-bar", "office-ui-ribbon-section", "office-ui-gallery", "office-ui-comments-pane", "office-ui-presence", "office-ui-smartart", "office-ui-avatar", "office-ui-app-rail", "office-ui-channel-list", "office-ui-chat-list", "office-ui-chat-composer", "office-ui-prejoin", "office-ui-call-grid", "office-ui-call-controls"];
12
12
  /**
13
13
  * Install the theme tokens and define every element. Idempotent and safe to call from every
14
14
  * viewer binding; a no-op where there is no DOM (SSR).
package/dist/index.js CHANGED
@@ -1,10 +1,10 @@
1
- export { OFFICE_UI_TAGS, registerOfficeUi } from './chunk-YP5S7DTT.js';
2
- export { OfficeUiSmartArt, defineSmartArt, renderDiagramDrawing } from './chunk-Y2E22JVO.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-AYXFLBSV.js';
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';
4
4
  export { TeamsPresentationPreview, defineTeamsPresentationPreview } from './chunk-SNV6YKPC.js';
5
- export { THEME_CSS, THEME_STYLE_ID, installOfficeUiTheme, shadcnBridge, themeBridge } from './chunk-JAJFLFAV.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, 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-7FNDOWTX.js';
7
- export { createIconSvg, getIcon, listIcons, paintIcon, registerIcon } from './chunk-BOX43CZD.js';
8
- export { OfficeUiPresence, definePresence, initialsOf, participantsFromAwareness } from './chunk-VUB44CAJ.js';
9
- export { CONTRACT_REVISION, OfficeElement, controlStyles, flag, readFlag, triState, valueOn, withTokens } from './chunk-YK2DPYMU.js';
10
- export { COMPACT, FOCUS_RING, OFFICE_TOKENS, TOUCH, tok } from './chunk-XNCWB2X6.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';
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';
@@ -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"}
@@ -1,5 +1,5 @@
1
- import { widenPieViewModel, buildPerspCamera, createSvgEl, appendChartLegendSvg, renderChartLineSvg, renderChartTextSvg, perspBoxMatrix, pieRimPoint, perspScreenToPlaneY, resolvePieSliceShareValue, perspToScreen, roundDragValue, buildBarChart3DHoverTooltip, isChartInteractionArmed, computePieChartLayout, obliqueBarTaper } from './chunk-AWKKC3VW.mjs';
2
- import { resolveChartPalette, shade } from './chunk-XQVKQD5Z.mjs';
1
+ import { widenPieViewModel, buildPerspCamera, createSvgEl, appendChartLegendSvg, renderChartLineSvg, renderChartTextSvg, perspBoxMatrix, pieRimPoint, perspScreenToPlaneY, resolvePieSliceShareValue, perspToScreen, roundDragValue, buildBarChart3DHoverTooltip, isChartInteractionArmed, computePieChartLayout, obliqueBarTaper } from './chunk-CIVA3MLN.mjs';
2
+ import { resolveChartPalette, shade, DEFAULT_BAR_GAP_WIDTH } from './chunk-STLXPKJJ.mjs';
3
3
 
4
4
  // src/pptx/render/chart-3d-shading.ts
5
5
  var FACE_SHADE_AMOUNT = {
@@ -556,7 +556,6 @@ function attachObliqueBarInteraction(options) {
556
556
  }
557
557
 
558
558
  // src/pptx/render/chart-3d-persp-bars.ts
559
- var DEFAULT_GAP_WIDTH = 150;
560
559
  function valueY(layout, v) {
561
560
  const clamped = Math.min(Math.max(v, layout.range.min), layout.range.max);
562
561
  return (clamped - layout.range.min) * layout.valueScale;
@@ -566,7 +565,7 @@ function buildPerspBarPrisms(chartData, layout, override) {
566
565
  const nSer = chartData.series.length;
567
566
  const catExtent = layout.horizontal ? layout.view.box.h : layout.view.box.w;
568
567
  const slot = nCat > 0 ? catExtent / nCat : catExtent;
569
- const gapWidth = (chartData.barGapWidth ?? DEFAULT_GAP_WIDTH) / 100;
568
+ const gapWidth = (chartData.barGapWidth ?? DEFAULT_BAR_GAP_WIDTH) / 100;
570
569
  const slots = layout.grouping === "clustered" ? nSer : 1;
571
570
  const barW = slot / (slots + gapWidth);
572
571
  const depth = Math.min(barW, layout.rowDepth);