ooxml-ui 1.2.0 → 1.3.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 (109) hide show
  1. package/custom-elements.json +161 -0
  2. package/dist/{chunk-XNCWB2X6.js → chunk-2WLRFPMW.js} +4 -0
  3. package/dist/{chunk-JAJFLFAV.js → chunk-56A2JK63.js} +1 -1
  4. package/dist/{chunk-AYXFLBSV.js → chunk-5OFAJDMQ.js} +6 -6
  5. package/dist/{chunk-7FNDOWTX.js → chunk-723JC3OC.js} +72 -5
  6. package/dist/{chunk-YK2DPYMU.js → chunk-IY7QJLQG.js} +1 -1
  7. package/dist/{chunk-BOX43CZD.js → chunk-M6GF5ED2.js} +2 -1
  8. package/dist/{chunk-Y2E22JVO.js → chunk-NYRRH2MD.js} +1 -1
  9. package/dist/{chunk-VUB44CAJ.js → chunk-TWQ45BFL.js} +1 -1
  10. package/dist/{chunk-YP5S7DTT.js → chunk-V6P6KZCO.js} +6 -5
  11. package/dist/controls.d.ts +4 -2
  12. package/dist/controls.d.ts.map +1 -1
  13. package/dist/controls.js +5 -5
  14. package/dist/docx/editor-chrome.d.ts +8 -1
  15. package/dist/docx/file-commands.d.ts +1 -1
  16. package/dist/docx/locales/en-app.d.ts +1 -0
  17. package/dist/docx/locales/en.d.ts +1 -0
  18. package/dist/docx/localization-strings.d.ts +1 -0
  19. package/dist/docx/ribbon-actions.d.ts +22 -0
  20. package/dist/docx/title-bar.d.ts +3 -5
  21. package/dist/docx.js +66 -46
  22. package/dist/icons.d.ts.map +1 -1
  23. package/dist/icons.js +1 -1
  24. package/dist/index.d.ts +1 -1
  25. package/dist/index.js +9 -9
  26. package/dist/pptx/{chart-3d-view-scene-6B5TOWB6.mjs → chart-3d-view-scene-OYJ4CDCO.mjs} +3 -4
  27. package/dist/pptx/{chart-3d-view-scene-MJ6YNT56.cjs → chart-3d-view-scene-SE2Y6QRE.cjs} +38 -39
  28. package/dist/pptx/{chunk-AWKKC3VW.mjs → chunk-CIVA3MLN.mjs} +1 -1
  29. package/dist/pptx/{chunk-ZK344LOB.cjs → chunk-FPE5PZMI.cjs} +303 -155
  30. package/dist/pptx/{chunk-YRHK45AB.cjs → chunk-IURZJAWP.cjs} +233 -127
  31. package/dist/pptx/{chunk-XIQMFSNG.cjs → chunk-KRMMJUCO.cjs} +83 -1
  32. package/dist/pptx/{chunk-YI5LH5NN.mjs → chunk-MWHGUEIJ.mjs} +162 -16
  33. package/dist/pptx/{chunk-XQVKQD5Z.mjs → chunk-STLXPKJJ.mjs} +230 -128
  34. package/dist/pptx/{chunk-YMTQLZ2I.mjs → chunk-TC7HCF5M.mjs} +76 -2
  35. package/dist/pptx/{chunk-STKGUT5S.cjs → chunk-WKLHJEPD.cjs} +13 -13
  36. package/dist/pptx/dom/element-styles.d.ts.map +1 -1
  37. package/dist/pptx/dom/elements/connector.d.ts.map +1 -1
  38. package/dist/pptx/dom/elements/shape-filter-defs.d.ts.map +1 -1
  39. package/dist/pptx/dom/elements/table.d.ts.map +1 -1
  40. package/dist/pptx/dom/index.cjs +254 -254
  41. package/dist/pptx/dom/index.mjs +26 -26
  42. package/dist/pptx/dom/slide-stage.d.ts.map +1 -1
  43. package/dist/pptx/export/html2canvas-clone.cjs +2 -2
  44. package/dist/pptx/export/html2canvas-clone.mjs +1 -1
  45. package/dist/pptx/index.cjs +3041 -3001
  46. package/dist/pptx/index.mjs +4 -4
  47. package/dist/pptx/render/chart-3d-oblique-layout.d.ts.map +1 -1
  48. package/dist/pptx/render/chart-3d-persp-bars.d.ts.map +1 -1
  49. package/dist/pptx/render/chart-3d-persp-layout.d.ts.map +1 -1
  50. package/dist/pptx/render/chart-bar-cluster-geometry.d.ts +1 -1
  51. package/dist/pptx/render/chart-bar-cluster-geometry.d.ts.map +1 -1
  52. package/dist/pptx/render/chart-cartesian-area.d.ts.map +1 -1
  53. package/dist/pptx/render/chart-cartesian-bars.d.ts.map +1 -1
  54. package/dist/pptx/render/chart-cartesian-line-area.d.ts.map +1 -1
  55. package/dist/pptx/render/chart-cartesian-stacked-labels.d.ts +11 -7
  56. package/dist/pptx/render/chart-cartesian-stacked-labels.d.ts.map +1 -1
  57. package/dist/pptx/render/chart-combo-stock.cjs +3 -3
  58. package/dist/pptx/render/chart-combo-stock.mjs +1 -1
  59. package/dist/pptx/render/chart-data-label-anchor.d.ts +4 -1
  60. package/dist/pptx/render/chart-data-label-anchor.d.ts.map +1 -1
  61. package/dist/pptx/render/chart-horizontal-bars.d.ts.map +1 -1
  62. package/dist/pptx/render/chart-line-path.d.ts +9 -0
  63. package/dist/pptx/render/chart-line-path.d.ts.map +1 -1
  64. package/dist/pptx/render/chart-overlays.cjs +7 -7
  65. package/dist/pptx/render/chart-overlays.mjs +1 -1
  66. package/dist/pptx/render/chart-plot-clip.d.ts +37 -0
  67. package/dist/pptx/render/chart-plot-clip.d.ts.map +1 -0
  68. package/dist/pptx/render/chart-surface-treemap.cjs +4 -4
  69. package/dist/pptx/render/chart-surface-treemap.mjs +1 -1
  70. package/dist/pptx/render/chart-view-model-bars.d.ts +3 -2
  71. package/dist/pptx/render/chart-view-model-bars.d.ts.map +1 -1
  72. package/dist/pptx/render/chart-view-model.cjs +44 -44
  73. package/dist/pptx/render/chart-view-model.mjs +1 -1
  74. package/dist/pptx/render/chart-waterfall-map.cjs +6 -6
  75. package/dist/pptx/render/chart-waterfall-map.mjs +1 -1
  76. package/dist/pptx/render/device-pixel-stroke.d.ts +101 -0
  77. package/dist/pptx/render/device-pixel-stroke.d.ts.map +1 -0
  78. package/dist/pptx/render/export-clone.d.ts +4 -0
  79. package/dist/pptx/render/export-clone.d.ts.map +1 -1
  80. package/dist/pptx/render/foreign-object-svg-document.d.ts.map +1 -1
  81. package/dist/pptx/render/index.d.ts +2 -0
  82. package/dist/pptx/render/index.d.ts.map +1 -1
  83. package/dist/pptx/render/stroke-outline.d.ts +6 -0
  84. package/dist/pptx/render/stroke-outline.d.ts.map +1 -1
  85. package/dist/pptx/render/stroke-style.d.ts +8 -2
  86. package/dist/pptx/render/stroke-style.d.ts.map +1 -1
  87. package/dist/pptx/render/tab-row-actions.d.ts +40 -0
  88. package/dist/pptx/render/tab-row-actions.d.ts.map +1 -0
  89. package/dist/pptx/render/table-style-borders.d.ts.map +1 -1
  90. package/dist/pptx/render/table-style.d.ts.map +1 -1
  91. package/dist/pptx/web-components/index.d.ts.map +1 -1
  92. package/dist/pptx/web-components/office-token-bridge.d.ts +1 -1
  93. package/dist/pptx/web-components/office-token-bridge.d.ts.map +1 -1
  94. package/dist/pptx/web-components/ribbon-actions.d.ts +8 -0
  95. package/dist/pptx/web-components/ribbon-actions.d.ts.map +1 -0
  96. package/dist/presence.js +3 -3
  97. package/dist/ribbon/ribbon-actions.d.ts +119 -0
  98. package/dist/ribbon/ribbon-actions.d.ts.map +1 -0
  99. package/dist/smartart.js +3 -3
  100. package/dist/teams.js +7 -7
  101. package/dist/theme.js +2 -2
  102. package/dist/tokens.d.ts +4 -0
  103. package/dist/tokens.d.ts.map +1 -1
  104. package/dist/visio.js +6 -6
  105. package/dist/xlsx/calc-preparation.d.ts +44 -0
  106. package/dist/xlsx/editor-core.d.ts +3 -0
  107. package/dist/xlsx/ribbon-actions.d.ts +5 -4
  108. package/dist/xlsx.js +131 -44
  109. package/package.json +2 -2
@@ -2179,6 +2179,167 @@
2179
2179
  }
2180
2180
  ]
2181
2181
  },
2182
+ {
2183
+ "kind": "javascript-module",
2184
+ "path": "ribbon/ribbon-actions.ts",
2185
+ "declarations": [
2186
+ {
2187
+ "kind": "class",
2188
+ "name": "OfficeUiRibbonActions",
2189
+ "tagName": "office-ui-ribbon-actions",
2190
+ "customElement": true,
2191
+ "description": "`<office-ui-ribbon-actions>`: the controls Office places at the right end of the ribbon tab row, in Office's order: the editing-mode selector (pencil icon and a native select), Comments (icon and label) and the accent Share button. Put it in `office-ui-ribbon`'s `actions` slot (or at a product tab row's right end). Controlled: the host owns every value and redraws after an event. Properties: `modes` (the selector's choices; empty hides it), `mode`, `mode-label` (its name), `comments-label`, `comments-title`, `comments-pressed`, `comments-count` (a badge when above 0), `no-comments`, `share-label`, `share-title`, `share-pressed` (a live session) and `no-share`. Events: `office-ribbon-mode` `{ mode }`, `office-ribbon-comments` and `office-ribbon-share` (static `modeEvent`, `commentsEvent` and `shareEvent` let a product subclass keep its own names). Parts: `mode`, `mode-select`, `comments`, `share`. Below 900px the labels hide, as in Office's narrow layout; the buttons keep their accessible names through `aria-label`.",
2192
+ "attributes": [
2193
+ {
2194
+ "name": "comments-count"
2195
+ },
2196
+ {
2197
+ "name": "comments-label"
2198
+ },
2199
+ {
2200
+ "name": "comments-pressed"
2201
+ },
2202
+ {
2203
+ "name": "comments-title"
2204
+ },
2205
+ {
2206
+ "name": "mode"
2207
+ },
2208
+ {
2209
+ "name": "mode-label"
2210
+ },
2211
+ {
2212
+ "name": "no-comments"
2213
+ },
2214
+ {
2215
+ "name": "no-share"
2216
+ },
2217
+ {
2218
+ "name": "share-label"
2219
+ },
2220
+ {
2221
+ "name": "share-pressed"
2222
+ },
2223
+ {
2224
+ "name": "share-title"
2225
+ }
2226
+ ],
2227
+ "members": [
2228
+ {
2229
+ "kind": "field",
2230
+ "name": "commentsCount",
2231
+ "type": {
2232
+ "text": "number"
2233
+ },
2234
+ "attribute": "comments-count"
2235
+ },
2236
+ {
2237
+ "kind": "field",
2238
+ "name": "commentsLabel",
2239
+ "type": {
2240
+ "text": "string"
2241
+ },
2242
+ "attribute": "comments-label"
2243
+ },
2244
+ {
2245
+ "kind": "field",
2246
+ "name": "commentsPressed",
2247
+ "type": {
2248
+ "text": "boolean"
2249
+ },
2250
+ "attribute": "comments-pressed"
2251
+ },
2252
+ {
2253
+ "kind": "field",
2254
+ "name": "commentsTitle",
2255
+ "type": {
2256
+ "text": "string"
2257
+ },
2258
+ "attribute": "comments-title"
2259
+ },
2260
+ {
2261
+ "kind": "field",
2262
+ "name": "mode",
2263
+ "type": {
2264
+ "text": "string"
2265
+ }
2266
+ },
2267
+ {
2268
+ "kind": "field",
2269
+ "name": "modeLabel",
2270
+ "type": {
2271
+ "text": "string"
2272
+ },
2273
+ "attribute": "mode-label"
2274
+ },
2275
+ {
2276
+ "kind": "field",
2277
+ "name": "modes"
2278
+ },
2279
+ {
2280
+ "kind": "field",
2281
+ "name": "noComments",
2282
+ "type": {
2283
+ "text": "boolean"
2284
+ },
2285
+ "attribute": "no-comments"
2286
+ },
2287
+ {
2288
+ "kind": "field",
2289
+ "name": "noShare",
2290
+ "type": {
2291
+ "text": "boolean"
2292
+ },
2293
+ "attribute": "no-share"
2294
+ },
2295
+ {
2296
+ "kind": "field",
2297
+ "name": "shareLabel",
2298
+ "type": {
2299
+ "text": "string"
2300
+ },
2301
+ "attribute": "share-label"
2302
+ },
2303
+ {
2304
+ "kind": "field",
2305
+ "name": "sharePressed",
2306
+ "type": {
2307
+ "text": "boolean"
2308
+ },
2309
+ "attribute": "share-pressed"
2310
+ },
2311
+ {
2312
+ "kind": "field",
2313
+ "name": "shareTitle",
2314
+ "type": {
2315
+ "text": "string"
2316
+ },
2317
+ "attribute": "share-title"
2318
+ }
2319
+ ],
2320
+ "events": [
2321
+ {
2322
+ "name": "office-ribbon-comments"
2323
+ },
2324
+ {
2325
+ "name": "office-ribbon-mode"
2326
+ },
2327
+ {
2328
+ "name": "office-ribbon-share"
2329
+ }
2330
+ ]
2331
+ }
2332
+ ],
2333
+ "exports": [
2334
+ {
2335
+ "kind": "custom-element-definition",
2336
+ "name": "office-ui-ribbon-actions",
2337
+ "declaration": {
2338
+ "name": "OfficeUiRibbonActions"
2339
+ }
2340
+ }
2341
+ ]
2342
+ },
2182
2343
  {
2183
2344
  "kind": "javascript-module",
2184
2345
  "path": "ribbon/ribbon-group.ts",
@@ -38,6 +38,8 @@ var OFFICE_TOKENS = {
38
38
  "--office-font-size-md": "14px",
39
39
  "--office-font-size-lg": "15px",
40
40
  "--office-font-size-xl": "18px",
41
+ /** Smallest text size that keeps mobile browsers from zooming a focused field. */
42
+ "--office-font-size-touch": "16px",
41
43
  "--office-font-weight-medium": "500",
42
44
  "--office-font-weight-bold": "600",
43
45
  "--office-line-height": "1.4",
@@ -70,6 +72,8 @@ var OFFICE_TOKENS = {
70
72
  // Sizes
71
73
  "--office-target-size": "28px",
72
74
  "--office-target-size-touch": "44px",
75
+ /** Minimum pointer target on touch layouts. */
76
+ "--office-touch-target": "36px",
73
77
  "--office-control-height": "24px",
74
78
  "--office-control-height-md": "28px",
75
79
  "--office-control-height-lg": "32px",
@@ -1,4 +1,4 @@
1
- import { OFFICE_TOKENS, TOUCH } from './chunk-XNCWB2X6.js';
1
+ import { OFFICE_TOKENS, TOUCH } from './chunk-2WLRFPMW.js';
2
2
 
3
3
  // src/theme-bridge.ts
4
4
  var SHADCN_NAMES = [
@@ -1,8 +1,8 @@
1
- import { THEME_CSS, installOfficeUiTheme } from './chunk-JAJFLFAV.js';
2
- import { defineMenuButton, defineMenuItem, registerControls, defineSwitch } from './chunk-7FNDOWTX.js';
3
- import { registerIcon, getIcon } from './chunk-BOX43CZD.js';
4
- import { initialsOf, definePresence } from './chunk-VUB44CAJ.js';
5
- import { definer, OfficeElement, controlStyles } from './chunk-YK2DPYMU.js';
1
+ import { THEME_CSS, installOfficeUiTheme } from './chunk-56A2JK63.js';
2
+ import { defineMenuButton, defineMenuItem, registerControls, defineSwitch } from './chunk-723JC3OC.js';
3
+ import { registerIcon, getIcon } from './chunk-M6GF5ED2.js';
4
+ import { initialsOf, definePresence } from './chunk-TWQ45BFL.js';
5
+ import { definer, OfficeElement, controlStyles } from './chunk-IY7QJLQG.js';
6
6
  import { html, nothing, LitElement, unsafeCSS, svg } from 'lit';
7
7
  import { repeat } from 'lit/directives/repeat.js';
8
8
  import { live } from 'lit/directives/live.js';
@@ -395,7 +395,7 @@ var OfficeUiChannelList = class extends TeamsElement {
395
395
  var defineChannelList = definer("office-ui-channel-list", () => OfficeUiChannelList);
396
396
 
397
397
  // raw-css:/home/runner/work/ooxml/ooxml/src/ui/src/teams/chat-composer.css?raw
398
- var chat_composer_default = ":host {\n display: block;\n min-width: 0;\n flex: none;\n padding: 0 var(--office-space-5) var(--office-space-4);\n}\n.typing {\n min-height: 1.4em;\n color: var(--office-teams-text-subtle);\n font-size: var(--office-font-size-xs);\n}\n.box {\n position: relative;\n border: var(--office-border-width) solid var(--office-teams-divider);\n border-block-end: var(--office-border-width-thick) solid var(--office-teams-divider);\n border-radius: var(--office-radius-md);\n background: var(--office-field-background);\n}\n.box:focus-within {\n border-block-end-color: var(--office-teams-brand);\n}\n.banner {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: var(--office-space-1) var(--office-space-3);\n border-bottom: var(--office-border-width) solid var(--office-teams-divider);\n background: var(--office-teams-panel);\n font-size: var(--office-font-size-sm);\n}\ntextarea {\n display: block;\n width: 100%;\n min-height: 3.2em;\n max-height: 12em;\n padding: var(--office-space-3);\n border: 0;\n outline: 0;\n resize: none;\n background: transparent;\n color: inherit;\n font: inherit;\n overflow-y: auto;\n line-height: 1.5;\n}\n.bar {\n display: flex;\n align-items: center;\n gap: var(--office-space-1);\n padding: 0 var(--office-space-2) var(--office-space-2);\n}\n.spacer {\n flex: 1;\n}\n.bar button,\n.banner button,\n.pending button {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: var(--office-space-1);\n min-width: 2.2em;\n height: 2.2em;\n border: 0;\n border-radius: var(--office-radius);\n background: transparent;\n color: var(--office-teams-text-subtle);\n}\n.bar button:hover:not(:disabled),\n.banner button:hover {\n background: var(--office-selected);\n color: var(--office-foreground);\n}\n.bar button:disabled {\n opacity: 0.45;\n cursor: not-allowed;\n}\n.bar .send:not(:disabled) {\n color: var(--office-teams-brand);\n}\n.pending {\n display: flex;\n flex-wrap: wrap;\n gap: var(--office-space-1);\n margin: 0;\n padding: 0 var(--office-space-3);\n list-style: none;\n}\n.pending button {\n padding: 0 var(--office-space-2);\n border: var(--office-border-width) solid var(--office-teams-divider);\n background: var(--office-teams-panel);\n font-size: var(--office-font-size-sm);\n color: var(--office-foreground);\n}\n.emoji {\n position: relative;\n}\n.picker {\n position: absolute;\n inset-block-end: calc(100% + var(--office-space-1));\n inset-inline-start: 0;\n z-index: 2;\n display: grid;\n grid-template-columns: repeat(5, 1fr);\n gap: var(--office-space-0);\n padding: var(--office-space-2);\n border: var(--office-border-width) solid var(--office-teams-divider);\n border-radius: var(--office-radius-md);\n background: var(--office-popover);\n box-shadow: var(--office-shadow-teams);\n}\n.picker button {\n font-size: 1.3em;\n}\n\ntextarea:focus-visible {\n outline: none;\n}\n.box:focus-within {\n border-color: var(--office-teams-brand);\n}\n.pending {\n max-height: 7em;\n overflow-y: auto;\n padding-block-end: var(--office-space-2);\n}\n.pending li {\n min-width: 0;\n max-width: 100%;\n}\n.pending button {\n max-width: 100%;\n height: auto;\n min-height: 2.4em;\n}\n.file-label {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n min-width: 0;\n}\n@media (max-width: 600px) {\n :host {\n padding: 0 var(--office-space-2) var(--office-space-2);\n }\n textarea {\n font-size: 16px;\n min-height: 3em;\n }\n .bar button {\n min-width: 36px;\n height: 36px;\n }\n}\n";
398
+ var chat_composer_default = ":host {\n display: block;\n min-width: 0;\n flex: none;\n padding: 0 var(--office-space-5) var(--office-space-4);\n}\n.typing {\n min-height: 1.4em;\n color: var(--office-teams-text-subtle);\n font-size: var(--office-font-size-xs);\n}\n.box {\n position: relative;\n border: var(--office-border-width) solid var(--office-teams-divider);\n border-block-end: var(--office-border-width-thick) solid var(--office-teams-divider);\n border-radius: var(--office-radius-md);\n background: var(--office-field-background);\n}\n.box:focus-within {\n border-block-end-color: var(--office-teams-brand);\n}\n.banner {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: var(--office-space-1) var(--office-space-3);\n border-bottom: var(--office-border-width) solid var(--office-teams-divider);\n background: var(--office-teams-panel);\n font-size: var(--office-font-size-sm);\n}\ntextarea {\n display: block;\n width: 100%;\n min-height: 3.2em;\n max-height: 12em;\n padding: var(--office-space-3);\n border: 0;\n outline: 0;\n resize: none;\n background: transparent;\n color: inherit;\n font: inherit;\n overflow-y: auto;\n line-height: 1.5;\n}\n.bar {\n display: flex;\n align-items: center;\n gap: var(--office-space-1);\n padding: 0 var(--office-space-2) var(--office-space-2);\n}\n.spacer {\n flex: 1;\n}\n.bar button,\n.banner button,\n.pending button {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: var(--office-space-1);\n min-width: 2.2em;\n height: 2.2em;\n border: 0;\n border-radius: var(--office-radius);\n background: transparent;\n color: var(--office-teams-text-subtle);\n}\n.bar button:hover:not(:disabled),\n.banner button:hover {\n background: var(--office-selected);\n color: var(--office-foreground);\n}\n.bar button:disabled {\n opacity: 0.45;\n cursor: not-allowed;\n}\n.bar .send:not(:disabled) {\n color: var(--office-teams-brand);\n}\n.pending {\n display: flex;\n flex-wrap: wrap;\n gap: var(--office-space-1);\n margin: 0;\n padding: 0 var(--office-space-3);\n list-style: none;\n}\n.pending button {\n padding: 0 var(--office-space-2);\n border: var(--office-border-width) solid var(--office-teams-divider);\n background: var(--office-teams-panel);\n font-size: var(--office-font-size-sm);\n color: var(--office-foreground);\n}\n.emoji {\n position: relative;\n}\n.picker {\n position: absolute;\n inset-block-end: calc(100% + var(--office-space-1));\n inset-inline-start: 0;\n z-index: 2;\n display: grid;\n grid-template-columns: repeat(5, 1fr);\n gap: var(--office-space-0);\n padding: var(--office-space-2);\n border: var(--office-border-width) solid var(--office-teams-divider);\n border-radius: var(--office-radius-md);\n background: var(--office-popover);\n box-shadow: var(--office-shadow-teams);\n}\n.picker button {\n font-size: 1.3em;\n}\n\ntextarea:focus-visible {\n outline: none;\n}\n.box:focus-within {\n border-color: var(--office-teams-brand);\n}\n.pending {\n max-height: 7em;\n overflow-y: auto;\n padding-block-end: var(--office-space-2);\n}\n.pending li {\n min-width: 0;\n max-width: 100%;\n}\n.pending button {\n max-width: 100%;\n height: auto;\n min-height: 2.4em;\n}\n.file-label {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n min-width: 0;\n}\n@media (max-width: 600px) {\n :host {\n padding: 0 var(--office-space-2) var(--office-space-2);\n }\n textarea {\n font-size: var(--office-font-size-touch);\n min-height: 3em;\n }\n .bar button {\n min-width: var(--office-touch-target);\n height: var(--office-touch-target);\n }\n}\n";
399
399
  var EMOJI = [
400
400
  "\u{1F600}",
401
401
  "\u{1F604}",
@@ -1,7 +1,7 @@
1
- import { createIconSvg, paintIcon, getIcon } from './chunk-BOX43CZD.js';
2
- import { initialsOf } from './chunk-VUB44CAJ.js';
3
- import { OfficeElement, controlStyles, definer, valueOn, flag, present, triState, withTokens } from './chunk-YK2DPYMU.js';
4
- import { tok, OFFICE_TOKENS } from './chunk-XNCWB2X6.js';
1
+ import { createIconSvg, paintIcon, getIcon } from './chunk-M6GF5ED2.js';
2
+ import { initialsOf } from './chunk-TWQ45BFL.js';
3
+ import { OfficeElement, controlStyles, definer, valueOn, flag, present, triState, withTokens } from './chunk-IY7QJLQG.js';
4
+ import { tok, OFFICE_TOKENS } from './chunk-2WLRFPMW.js';
5
5
  import { html, LitElement, nothing, render, svg } from 'lit';
6
6
  import { ifDefined } from 'lit/directives/if-defined.js';
7
7
  import { repeat } from 'lit/directives/repeat.js';
@@ -1635,6 +1635,72 @@ var OfficeUiRibbon = class extends OfficeElement {
1635
1635
  };
1636
1636
  var defineRibbon = definer("office-ui-ribbon", () => OfficeUiRibbon);
1637
1637
 
1638
+ // raw-css:/home/runner/work/ooxml/ooxml/src/ui/src/ribbon/ribbon-actions.css?raw
1639
+ var ribbon_actions_default = ":host {\n display: inline-flex;\n flex: none;\n align-items: center;\n gap: var(--office-space-1-5);\n padding-inline-start: var(--office-space-2);\n color: var(--office-foreground);\n font: inherit;\n font-size: var(--office-font-size);\n}\n[hidden] {\n display: none !important;\n}\n.glyph {\n flex: none;\n width: var(--office-icon-size-md);\n height: var(--office-icon-size-md);\n fill: none;\n stroke: currentColor;\n stroke-width: var(--office-icon-stroke);\n stroke-linecap: round;\n stroke-linejoin: round;\n}\n.glyph:not([data-painted]) {\n display: none;\n}\n.mode {\n position: relative;\n display: inline-flex;\n align-items: center;\n height: var(--office-control-height-md);\n}\n.mode > .glyph {\n position: absolute;\n inset-inline-start: var(--office-space-2);\n pointer-events: none;\n}\n.mode-select {\n height: var(--office-control-height-md);\n padding: 0 var(--office-space-1-5) 0 calc(var(--office-space-2) * 2 + var(--office-icon-size-md));\n border: var(--office-border-width) solid var(--office-border);\n border-radius: var(--office-radius-sm);\n background: var(--office-background);\n color: var(--office-foreground);\n font: inherit;\n cursor: pointer;\n}\nbutton {\n position: relative;\n display: inline-flex;\n align-items: center;\n gap: var(--office-space-1-5);\n height: var(--office-control-height-md);\n padding: 0 var(--office-space-2-5);\n border: var(--office-border-width) solid var(--office-border);\n border-radius: var(--office-radius-sm);\n background: transparent;\n color: var(--office-foreground);\n font: inherit;\n white-space: nowrap;\n cursor: pointer;\n}\n.comments:hover {\n background: var(--office-surface);\n}\n.comments[aria-pressed='true'] {\n background: var(--office-selected);\n}\n.badge {\n min-width: var(--office-space-4);\n padding: 0 var(--office-space-1);\n border-radius: var(--office-radius-full);\n background: var(--office-accent);\n color: var(--office-accent-foreground);\n font-size: var(--office-font-size-2xs);\n line-height: var(--office-space-4);\n text-align: center;\n}\n.share {\n padding: 0 var(--office-space-3);\n border-color: var(--office-accent);\n background: var(--office-accent);\n color: var(--office-accent-foreground);\n}\n.share:hover,\n.share[aria-pressed='true'] {\n /* Darkened here rather than read from --office-accent-hover, which resolves where the theme\n is installed and so would miss a product's own accent. */\n filter: brightness(0.88);\n}\n.mode-select:focus-visible,\nbutton:focus-visible {\n outline: var(--office-focus-width) solid var(--office-ring);\n outline-offset: var(--office-focus-offset);\n}\n/* Narrow windows keep the icons and drop the labels, as Office's simplified layout does. */\n@media (max-width: 900px) {\n .label {\n display: none;\n }\n button {\n padding: 0 var(--office-space-1-5);\n }\n}\n";
1640
+
1641
+ // src/ribbon/ribbon-actions.ts
1642
+ var OfficeUiRibbonActions = class extends OfficeElement {
1643
+ static modeEvent = "office-ribbon-mode";
1644
+ static commentsEvent = "office-ribbon-comments";
1645
+ static shareEvent = "office-ribbon-share";
1646
+ static styles = controlStyles(ribbon_actions_default);
1647
+ static properties = {
1648
+ modes: { attribute: false },
1649
+ mode: { type: String },
1650
+ modeLabel: { attribute: "mode-label", type: String },
1651
+ commentsLabel: { attribute: "comments-label", type: String },
1652
+ commentsTitle: { attribute: "comments-title", type: String },
1653
+ commentsPressed: { attribute: "comments-pressed", ...flag },
1654
+ commentsCount: { attribute: "comments-count", type: Number },
1655
+ noComments: { attribute: "no-comments", ...flag },
1656
+ shareLabel: { attribute: "share-label", type: String },
1657
+ shareTitle: { attribute: "share-title", type: String },
1658
+ sharePressed: { attribute: "share-pressed", ...flag },
1659
+ noShare: { attribute: "no-share", ...flag }
1660
+ };
1661
+ constructor() {
1662
+ super();
1663
+ this.modes = [];
1664
+ this.mode = "";
1665
+ this.modeLabel = "Editing mode";
1666
+ this.commentsLabel = "Comments";
1667
+ this.commentsTitle = null;
1668
+ this.commentsPressed = false;
1669
+ this.commentsCount = 0;
1670
+ this.noComments = false;
1671
+ this.shareLabel = "Share";
1672
+ this.shareTitle = null;
1673
+ this.sharePressed = false;
1674
+ this.noShare = false;
1675
+ }
1676
+ /** The rendered control of a part, or null before the first render. */
1677
+ control(part) {
1678
+ return this.renderRoot.querySelector(`[part="${part}"]`);
1679
+ }
1680
+ onMode(event) {
1681
+ event.stopPropagation();
1682
+ const select = event.target;
1683
+ const mode = select.value;
1684
+ select.value = this.mode;
1685
+ if (mode !== this.mode) this.fire(this.events().modeEvent, { mode });
1686
+ }
1687
+ events() {
1688
+ return this.constructor;
1689
+ }
1690
+ updated() {
1691
+ const select = this.control("mode-select");
1692
+ if (select && select.value !== this.mode) select.value = this.mode;
1693
+ }
1694
+ render() {
1695
+ const modes = this.modes ?? [];
1696
+ const count = Number(this.commentsCount) || 0;
1697
+ const commentsTitle = this.commentsTitle ?? this.commentsLabel;
1698
+ const shareTitle = this.shareTitle ?? this.shareLabel;
1699
+ return html`<label class="mode" part="mode" ?hidden=${modes.length === 0}>${glyph("pencil", "glyph")}<select class="mode-select" part="mode-select" aria-label=${this.modeLabel} title=${this.modeLabel} @change=${this.onMode}>${modes.map((option) => html`<option value=${option.value} ?selected=${option.value === this.mode}>${option.label}</option>`)}</select></label><button class="comments" part="comments" type="button" aria-label=${this.commentsLabel} title=${count > 0 ? `${commentsTitle} (${count})` : commentsTitle} aria-pressed=${String(present(this.commentsPressed))} ?hidden=${present(this.noComments)} @click=${() => this.fire(this.events().commentsEvent, {})}>${glyph("message", "glyph")}<span class="label">${this.commentsLabel}</span>${count > 0 ? html`<span class="badge" aria-hidden="true">${count}</span>` : ""}</button><button class="share" part="share" type="button" aria-label=${this.shareLabel} title=${shareTitle} aria-pressed=${String(present(this.sharePressed))} ?hidden=${present(this.noShare)} @click=${() => this.fire(this.events().shareEvent, {})}>${glyph("share", "glyph")}<span class="label">${this.shareLabel}</span></button>`;
1700
+ }
1701
+ };
1702
+ var defineRibbonActions = definer("office-ui-ribbon-actions", () => OfficeUiRibbonActions);
1703
+
1638
1704
  // raw-css:/home/runner/work/ooxml/ooxml/src/ui/src/ribbon/button.css?raw
1639
1705
  var button_default = ":host {\n display: inline-flex;\n vertical-align: middle;\n}\nbutton {\n box-sizing: border-box;\n position: relative;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: var(--office-space-1-5);\n min-width: var(--office-target-size);\n min-height: var(--office-target-size);\n padding: 0 var(--office-space-2);\n border: var(--office-border-width) solid transparent;\n border-radius: var(--office-radius);\n background: transparent;\n color: var(--office-foreground);\n font: inherit;\n font-size: var(--office-font-size-sm);\n cursor: pointer;\n white-space: nowrap;\n}\n:host([variant='stacked']) button {\n flex-direction: column;\n padding: var(--office-space-1) var(--office-space-2);\n}\nbutton:hover:not(:disabled) {\n background: var(--office-surface);\n}\nbutton:active:not(:disabled) {\n background: var(--office-selected);\n}\nbutton:focus-visible {\n outline: var(--office-focus-width) solid var(--office-ring);\n outline-offset: calc(var(--office-focus-offset) / 2);\n}\nbutton[aria-pressed='true'],\nbutton[aria-expanded='true'] {\n border-color: var(--office-accent);\n background: var(--office-surface);\n}\n:host([active]) button {\n background: var(--office-command-active);\n color: var(--office-accent);\n}\nbutton:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\nsvg {\n width: var(--office-icon-size-ml);\n height: var(--office-icon-size-ml);\n flex: none;\n color: var(--office-command-icon-color);\n fill: none;\n stroke: currentColor;\n stroke-width: var(--office-icon-stroke);\n stroke-linecap: round;\n stroke-linejoin: round;\n}\nsvg.glyph:not([data-painted]) {\n display: none;\n}\n.label[hidden],\n.caret[hidden],\n.badge[hidden] {\n display: none;\n}\n/* Office trails a menu chevron after the last line of the label. */\n.caret {\n display: inline-block;\n width: var(--office-icon-size-xs);\n height: var(--office-icon-size-xs);\n margin-inline-start: var(--office-space-0);\n vertical-align: middle;\n color: var(--office-muted-foreground);\n}\n.badge {\n position: absolute;\n top: 0;\n inset-inline-end: 0;\n padding: 0 var(--office-space-0);\n border-radius: var(--office-radius-full);\n background: var(--office-accent);\n color: var(--office-accent-foreground);\n font-size: var(--office-font-size-3xs);\n}\n\n/* Large ribbon command: a big glyph above a two-line label. */\n:host([size='large']) button {\n flex-direction: column;\n justify-content: flex-start;\n gap: var(--office-space-0);\n min-width: var(--office-command-large-min-width);\n max-width: var(--office-command-large-max-width);\n height: var(--office-command-large-height);\n padding: var(--office-space-0) var(--office-space-1);\n border: 0;\n white-space: normal;\n text-align: center;\n line-height: var(--office-line-height-tight);\n}\n:host([size='large']) svg.glyph {\n width: var(--office-command-large-icon);\n height: var(--office-command-large-icon);\n}\n\n/* Small ribbon command: icon and label in one row. */\n:host([size='small']) button {\n justify-content: flex-start;\n min-width: 0;\n height: var(--office-control-height);\n min-height: var(--office-control-height);\n padding: 0 var(--office-space-1-5);\n border: 0;\n text-align: start;\n}\n:host([size='small']) svg.glyph {\n width: var(--office-command-small-icon);\n height: var(--office-command-small-icon);\n}\n\n/* Tall, label-less tool tiles (pens, erasers). */\n:host([icon-only][tall]) button {\n min-width: var(--office-command-tall-min-width);\n height: var(--office-command-tall-height);\n padding: var(--office-space-1);\n}\n:host([icon-only][tall]) svg.glyph {\n width: var(--office-command-tall-icon);\n height: var(--office-command-tall-icon);\n}\n:host([icon-only][tall][active]) button {\n box-shadow: inset 0 0 0 var(--office-border-width) var(--office-accent);\n}\n\n@media (pointer: coarse), (max-width: 767px) {\n :host([size='small']) button {\n min-height: var(--office-target-size-touch);\n }\n :host([icon-only]) button {\n min-width: var(--office-target-size-touch);\n }\n}\n@media (forced-colors: active) {\n button {\n border-color: ButtonText;\n color: ButtonText;\n background: ButtonFace;\n }\n svg {\n color: ButtonText;\n }\n button:disabled {\n color: GrayText;\n border-color: GrayText;\n }\n button[aria-pressed='true'],\n button[aria-expanded='true'],\n :host([active]) button {\n background: Highlight;\n color: HighlightText;\n }\n}\n";
1640
1706
 
@@ -5349,6 +5415,7 @@ var CONTROL_DEFINERS = [
5349
5415
  defineOptionsDialog,
5350
5416
  defineAccount,
5351
5417
  defineRibbon,
5418
+ defineRibbonActions,
5352
5419
  defineFindBar,
5353
5420
  defineRuler,
5354
5421
  defineBackstage,
@@ -5369,4 +5436,4 @@ function registerControls(registry) {
5369
5436
  for (const define of CONTROL_DEFINERS) define(registry);
5370
5437
  }
5371
5438
 
5372
- export { CONTROL_DEFINERS, DEFAULT_COMMENTS_LABELS, DEFAULT_OFFICE_PROFILE, EMPTY_MENU_STATE, OFFICE_AVATAR_SWATCHES, OFFICE_COLOR_SWATCHES, OFFICE_COLOR_SWATCH_HEXES, OFFICE_PROFILE_STORAGE_KEY, OFFICE_TITLE_BAR_SEARCH_LIMIT, OFFICE_TOAST_VISIBLE_LIMIT, assignKeyTips, attachKeyTips, clampFlyoutPosition, clampOptionNumber, clearOfficeProfile, commentInitials, createRibbonOverflow, defineAccount, defineBackstage, defineButton, defineCheckbox, defineCommandSearch, defineCommentsPane, defineContextMenu, defineDialog, defineDialogFooter, defineFindBar, defineGallery, defineIcon, defineMenuButton, defineMenuItem, defineMenuSeparator, defineOptionsDialog, definePasteOptions, definePrintPreview, defineRadio, defineReadOnlyBanner, defineRibbon, defineRibbonGroup, defineRibbonSection, defineRibbonStack, defineRibbonToggle, defineRuler, defineSearchField, defineSelect, defineStatusBar, defineStatusItem, defineSwitch, defineTabStrip, defineTitleBar, defineToasts, defineToolbar, defineZoomSlider, formatCommentTime, glyph, nextEnabledIndex, parseSvgPreview, profileInitials, rangeControl, range_control_default, readOfficeProfile, registerControls, rulerDivisions, runKeyTips, sanitizeOfficeProfile, typeAheadIndex, writeOfficeProfile };
5439
+ export { CONTROL_DEFINERS, DEFAULT_COMMENTS_LABELS, DEFAULT_OFFICE_PROFILE, EMPTY_MENU_STATE, OFFICE_AVATAR_SWATCHES, OFFICE_COLOR_SWATCHES, OFFICE_COLOR_SWATCH_HEXES, OFFICE_PROFILE_STORAGE_KEY, OFFICE_TITLE_BAR_SEARCH_LIMIT, OFFICE_TOAST_VISIBLE_LIMIT, assignKeyTips, attachKeyTips, clampFlyoutPosition, clampOptionNumber, clearOfficeProfile, commentInitials, createRibbonOverflow, defineAccount, defineBackstage, defineButton, defineCheckbox, defineCommandSearch, defineCommentsPane, defineContextMenu, defineDialog, defineDialogFooter, defineFindBar, defineGallery, defineIcon, defineMenuButton, defineMenuItem, defineMenuSeparator, defineOptionsDialog, definePasteOptions, definePrintPreview, defineRadio, defineReadOnlyBanner, defineRibbon, defineRibbonActions, defineRibbonGroup, defineRibbonSection, defineRibbonStack, defineRibbonToggle, defineRuler, defineSearchField, defineSelect, defineStatusBar, defineStatusItem, defineSwitch, defineTabStrip, defineTitleBar, defineToasts, defineToolbar, defineZoomSlider, formatCommentTime, glyph, nextEnabledIndex, parseSvgPreview, profileInitials, rangeControl, range_control_default, readOfficeProfile, registerControls, rulerDivisions, runKeyTips, sanitizeOfficeProfile, typeAheadIndex, writeOfficeProfile };
@@ -1,4 +1,4 @@
1
- import { TOUCH, tok, OFFICE_TOKENS } from './chunk-XNCWB2X6.js';
1
+ import { TOUCH, tok, OFFICE_TOKENS } from './chunk-2WLRFPMW.js';
2
2
  import { unsafeCSS, LitElement } from 'lit';
3
3
 
4
4
  // src/registry.ts
@@ -68,7 +68,8 @@ var BUILT_IN = {
68
68
  warning: "M10 3l7.5 13H2.5ZM10 8v3.5M10 14v.1",
69
69
  info: "M3 10a7 7 0 1 0 14 0 7 7 0 1 0-14 0M10 9v4.5M10 6.3v.1",
70
70
  restore: "M3.5 10a6.5 6.5 0 1 0 2-4.6M3.5 3v3.5H7M10 6.5v3.8l2.5 1.6",
71
- print: "M5.5 7.5V3h9v4.5M5.5 14.5H3V8h14v6.5h-2.5M5.5 12h9v5h-9Z"
71
+ print: "M5.5 7.5V3h9v4.5M5.5 14.5H3V8h14v6.5h-2.5M5.5 12h9v5h-9Z",
72
+ share: "m12 4 5 5-5 5M17 9h-6a7 7 0 0 0-7 7"
72
73
  };
73
74
  for (const [name, d] of Object.entries(BUILT_IN)) registry.set(name, { d });
74
75
  function registerIcon(name, icon) {
@@ -1,4 +1,4 @@
1
- import { OfficeElement, controlStyles, definer } from './chunk-YK2DPYMU.js';
1
+ import { OfficeElement, controlStyles, definer } from './chunk-IY7QJLQG.js';
2
2
  import { html } from 'lit';
3
3
  import { hexToRgbChannels } from 'ooxml-core/color';
4
4
  import { resolveDrawingColor } from 'ooxml-core/diagram';
@@ -1,4 +1,4 @@
1
- import { OfficeElement, controlStyles, definer } from './chunk-YK2DPYMU.js';
1
+ import { OfficeElement, controlStyles, definer } from './chunk-IY7QJLQG.js';
2
2
  import { html } from 'lit';
3
3
 
4
4
  // raw-css:/home/runner/work/ooxml/ooxml/src/ui/src/presence/presence.css?raw
@@ -1,8 +1,8 @@
1
- import { defineSmartArt } from './chunk-Y2E22JVO.js';
2
- import { TEAMS_TAGS, registerTeams } from './chunk-AYXFLBSV.js';
3
- import { installOfficeUiTheme } from './chunk-JAJFLFAV.js';
4
- import { registerControls } from './chunk-7FNDOWTX.js';
5
- import { definePresence } from './chunk-VUB44CAJ.js';
1
+ import { defineSmartArt } from './chunk-NYRRH2MD.js';
2
+ import { TEAMS_TAGS, registerTeams } from './chunk-5OFAJDMQ.js';
3
+ import { installOfficeUiTheme } from './chunk-56A2JK63.js';
4
+ import { registerControls } from './chunk-723JC3OC.js';
5
+ import { definePresence } from './chunk-TWQ45BFL.js';
6
6
 
7
7
  // src/index.ts
8
8
  var OFFICE_UI_TAGS = [
@@ -27,6 +27,7 @@ var OFFICE_UI_TAGS = [
27
27
  "office-ui-options-dialog",
28
28
  "office-ui-account",
29
29
  "office-ui-ribbon",
30
+ "office-ui-ribbon-actions",
30
31
  "office-ui-find-bar",
31
32
  "office-ui-ruler",
32
33
  "office-ui-backstage",
@@ -11,6 +11,7 @@ import { defineFindBar } from './chrome/find-bar.js';
11
11
  import { defineCommentsPane } from './comments/comments-pane.js';
12
12
  import { definePrintPreview } from './chrome/print-preview.js';
13
13
  import { defineRibbon } from './ribbon/ribbon-tabs.js';
14
+ import { defineRibbonActions } from './ribbon/ribbon-actions.js';
14
15
  import { defineRibbonSection } from './ribbon/ribbon-section.js';
15
16
  import { defineGallery } from './ribbon/gallery.js';
16
17
  import { defineRuler } from './chrome/ruler.js';
@@ -35,7 +36,7 @@ import { defineStatusItem } from './chrome/status-item.js';
35
36
  import { defineTabStrip } from './chrome/tab-strip.js';
36
37
  import { defineTitleBar } from './chrome/title-bar.js';
37
38
  import { defineZoomSlider } from './form/zoom-slider.js';
38
- export { defineAccount, defineDialogFooter, definePasteOptions, defineRadio, defineReadOnlyBanner, defineRibbonToggle, defineSearchField, defineToasts, defineBackstage, defineCommentsPane, defineFindBar, defineGallery, definePrintPreview, defineRibbon, defineRuler, defineButton, defineCheckbox, defineCommandSearch, defineContextMenu, defineDialog, defineIcon, defineMenuButton, defineMenuItem, defineMenuSeparator, defineOptionsDialog, defineRibbonGroup, defineRibbonSection, defineRibbonStack, defineSelect, defineStatusBar, defineStatusItem, defineSwitch, defineTabStrip, defineTitleBar, defineToolbar, defineZoomSlider, };
39
+ export { defineAccount, defineDialogFooter, definePasteOptions, defineRadio, defineReadOnlyBanner, defineRibbonToggle, defineSearchField, defineToasts, defineBackstage, defineCommentsPane, defineFindBar, defineGallery, definePrintPreview, defineRibbon, defineRibbonActions, defineRuler, defineButton, defineCheckbox, defineCommandSearch, defineContextMenu, defineDialog, defineIcon, defineMenuButton, defineMenuItem, defineMenuSeparator, defineOptionsDialog, defineRibbonGroup, defineRibbonSection, defineRibbonStack, defineSelect, defineStatusBar, defineStatusItem, defineSwitch, defineTabStrip, defineTitleBar, defineToolbar, defineZoomSlider, };
39
40
  export type { OfficeCommandEvent } from './ribbon/button.js';
40
41
  export type { OfficeDialogCloseEvent, OfficeDialogCloseReason } from './dialog/dialog.js';
41
42
  export type { OfficeSelectOption } from './form/select.js';
@@ -53,6 +54,7 @@ export type { KeyTipTarget } from './ribbon/keytip-run.js';
53
54
  export { createRibbonOverflow } from './ribbon/overflow.js';
54
55
  export type { RibbonOverflow, RibbonOverflowOptions } from './ribbon/overflow.js';
55
56
  export type { OfficeRibbonSelectEvent } from './ribbon/ribbon-tabs.js';
57
+ export type { OfficeRibbonActionsMode, OfficeRibbonModeEvent } from './ribbon/ribbon-actions.js';
56
58
  export type { OfficeRibbonCommandView, OfficeRibbonGroupView } from './ribbon/ribbon-section.js';
57
59
  export { parseSvgPreview, type OfficeGalleryItem, type OfficeGalleryPickEvent, type OfficeGallerySection, type OfficeGalleryState, } from './ribbon/gallery.js';
58
60
  export { rulerDivisions } from './chrome/ruler.js';
@@ -64,7 +66,7 @@ export type { OfficeReadOnlyBannerIntent, OfficeReadOnlyBannerState, } from './n
64
66
  export { clearOfficeProfile, DEFAULT_OFFICE_PROFILE, OFFICE_AVATAR_SWATCHES, OFFICE_PROFILE_STORAGE_KEY, profileInitials, readOfficeProfile, sanitizeOfficeProfile, writeOfficeProfile, type OfficeProfile, type OfficeProfileChangeEvent, } from './chrome/account-profile.js';
65
67
  export { clampOptionNumber, type OfficeOptionCategory, type OfficeOptionChoice, type OfficeOptionControl, type OfficeOptionSection, type OfficeOptionsChangeEvent, type OfficeOptionValue, type OfficeOptionValues, } from './dialog/options-dialog.js';
66
68
  /** Every control of this entry. */
67
- export declare const CONTROL_DEFINERS: readonly [import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer];
69
+ export declare const CONTROL_DEFINERS: readonly [import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer, import("./registry.js").Definer];
68
70
  /** Idempotent, SSR-safe (no-op without a DOM). */
69
71
  export declare function registerControls(registry?: CustomElementRegistry): void;
70
72
  //# sourceMappingURL=controls.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"controls.d.ts","sourceRoot":"","sources":["../src/controls.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"controls.d.ts","sourceRoot":"","sources":["../src/controls.ts"],"names":[],"mappings":"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"}
package/dist/controls.js CHANGED
@@ -1,5 +1,5 @@
1
- export { CONTROL_DEFINERS, DEFAULT_COMMENTS_LABELS, DEFAULT_OFFICE_PROFILE, EMPTY_MENU_STATE, OFFICE_AVATAR_SWATCHES, OFFICE_COLOR_SWATCHES, OFFICE_COLOR_SWATCH_HEXES, OFFICE_PROFILE_STORAGE_KEY, OFFICE_TITLE_BAR_SEARCH_LIMIT, OFFICE_TOAST_VISIBLE_LIMIT, assignKeyTips, attachKeyTips, clampFlyoutPosition, clampOptionNumber, clearOfficeProfile, commentInitials, createRibbonOverflow, defineAccount, defineBackstage, defineButton, defineCheckbox, defineCommandSearch, defineCommentsPane, defineContextMenu, defineDialog, defineDialogFooter, defineFindBar, defineGallery, defineIcon, defineMenuButton, defineMenuItem, defineMenuSeparator, defineOptionsDialog, definePasteOptions, definePrintPreview, defineRadio, defineReadOnlyBanner, defineRibbon, defineRibbonGroup, defineRibbonSection, defineRibbonStack, defineRibbonToggle, defineRuler, defineSearchField, defineSelect, defineStatusBar, defineStatusItem, defineSwitch, defineTabStrip, defineTitleBar, defineToasts, defineToolbar, defineZoomSlider, formatCommentTime, nextEnabledIndex, parseSvgPreview, profileInitials, readOfficeProfile, registerControls, rulerDivisions, runKeyTips, sanitizeOfficeProfile, typeAheadIndex, writeOfficeProfile } from './chunk-7FNDOWTX.js';
2
- import './chunk-BOX43CZD.js';
3
- import './chunk-VUB44CAJ.js';
4
- import './chunk-YK2DPYMU.js';
5
- import './chunk-XNCWB2X6.js';
1
+ export { CONTROL_DEFINERS, DEFAULT_COMMENTS_LABELS, DEFAULT_OFFICE_PROFILE, EMPTY_MENU_STATE, OFFICE_AVATAR_SWATCHES, OFFICE_COLOR_SWATCHES, OFFICE_COLOR_SWATCH_HEXES, OFFICE_PROFILE_STORAGE_KEY, OFFICE_TITLE_BAR_SEARCH_LIMIT, OFFICE_TOAST_VISIBLE_LIMIT, assignKeyTips, attachKeyTips, clampFlyoutPosition, clampOptionNumber, clearOfficeProfile, commentInitials, createRibbonOverflow, defineAccount, defineBackstage, defineButton, defineCheckbox, defineCommandSearch, defineCommentsPane, defineContextMenu, defineDialog, defineDialogFooter, defineFindBar, defineGallery, defineIcon, defineMenuButton, defineMenuItem, defineMenuSeparator, defineOptionsDialog, definePasteOptions, definePrintPreview, defineRadio, defineReadOnlyBanner, defineRibbon, defineRibbonActions, defineRibbonGroup, defineRibbonSection, defineRibbonStack, defineRibbonToggle, defineRuler, defineSearchField, defineSelect, defineStatusBar, defineStatusItem, defineSwitch, defineTabStrip, defineTitleBar, defineToasts, defineToolbar, defineZoomSlider, formatCommentTime, nextEnabledIndex, parseSvgPreview, profileInitials, readOfficeProfile, registerControls, rulerDivisions, runKeyTips, sanitizeOfficeProfile, typeAheadIndex, writeOfficeProfile } from './chunk-723JC3OC.js';
2
+ import './chunk-M6GF5ED2.js';
3
+ import './chunk-TWQ45BFL.js';
4
+ import './chunk-IY7QJLQG.js';
5
+ import './chunk-2WLRFPMW.js';
@@ -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;