pptx-angular-viewer 4.16.0 → 4.16.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (21) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/fesm2022/{pptx-angular-viewer-chart-3d-view-scene-D-8RhIEx.mjs → pptx-angular-viewer-chart-3d-view-scene-B2GMxwCZ.mjs} +2 -2
  3. package/fesm2022/{pptx-angular-viewer-chart-3d-view-scene-D-8RhIEx.mjs.map → pptx-angular-viewer-chart-3d-view-scene-B2GMxwCZ.mjs.map} +1 -1
  4. package/fesm2022/{pptx-angular-viewer-chat-history-idb-CV-VR2z1.mjs → pptx-angular-viewer-chat-history-idb-Bb82Jssm.mjs} +2 -2
  5. package/fesm2022/{pptx-angular-viewer-chat-history-idb-CV-VR2z1.mjs.map → pptx-angular-viewer-chat-history-idb-Bb82Jssm.mjs.map} +1 -1
  6. package/fesm2022/{pptx-angular-viewer-pptx-angular-viewer-Bc1e9poJ.mjs → pptx-angular-viewer-pptx-angular-viewer-ByBs8vwz.mjs} +1810 -1625
  7. package/fesm2022/{pptx-angular-viewer-pptx-angular-viewer-Bc1e9poJ.mjs.map → pptx-angular-viewer-pptx-angular-viewer-ByBs8vwz.mjs.map} +1 -1
  8. package/fesm2022/{pptx-angular-viewer-view-scene-DK5uoxBI.mjs → pptx-angular-viewer-view-scene-yiGd2Mi4.mjs} +2 -2
  9. package/fesm2022/{pptx-angular-viewer-view-scene-DK5uoxBI.mjs.map → pptx-angular-viewer-view-scene-yiGd2Mi4.mjs.map} +1 -1
  10. package/fesm2022/pptx-angular-viewer.mjs +1 -1
  11. package/i18n/de.cjs +3 -0
  12. package/i18n/de.mjs +3 -0
  13. package/i18n/es.cjs +3 -0
  14. package/i18n/es.mjs +3 -0
  15. package/i18n/fr.cjs +3 -0
  16. package/i18n/fr.mjs +3 -0
  17. package/i18n/zh-CN.cjs +3 -0
  18. package/i18n/zh-CN.mjs +3 -0
  19. package/package.json +2 -2
  20. package/types/pptx-angular-viewer.d.ts +144 -10
  21. package/types/pptx-angular-viewer.d.ts.map +1 -1
package/i18n/es.cjs CHANGED
@@ -1877,6 +1877,7 @@ var translations10 = {
1877
1877
  "pptx.review.hideInk": "Ocultar entrada de l\xE1piz",
1878
1878
  "pptx.review.markAllRead": "Marcar todo como le\xEDdo",
1879
1879
  "pptx.review.proofing": "Revisi\xF3n",
1880
+ "pptx.review.ink": "Tinta",
1880
1881
  "pptx.review.protect": "Proteger",
1881
1882
  "pptx.review.readOnly": "Abrir siempre como solo lectura",
1882
1883
  "pptx.review.restrictPermission": "Restringir permisos",
@@ -3134,6 +3135,8 @@ var translations18 = {
3134
3135
  "pptx.ribbon.groupChartLayouts": "Dise\xF1os de gr\xE1fico",
3135
3136
  "pptx.ribbon.groupChartStyles": "Estilos de diagrama",
3136
3137
  "pptx.ribbon.groupSmartArtStyles": "Estilos SmartArt",
3138
+ "pptx.ribbon.groupThemes": "Temas",
3139
+ "pptx.ribbon.groupCustomize": "Personalizar",
3137
3140
  "pptx.ribbon.groupVariants": "Variantes",
3138
3141
  "pptx.gallery.more": "M\xE1s {{name}}",
3139
3142
  "pptx.gallery.shapeStyles.title": "Estilos de forma",
package/i18n/es.mjs CHANGED
@@ -1851,6 +1851,7 @@ var translations10 = {
1851
1851
  "pptx.review.hideInk": "Ocultar entrada de l\xE1piz",
1852
1852
  "pptx.review.markAllRead": "Marcar todo como le\xEDdo",
1853
1853
  "pptx.review.proofing": "Revisi\xF3n",
1854
+ "pptx.review.ink": "Tinta",
1854
1855
  "pptx.review.protect": "Proteger",
1855
1856
  "pptx.review.readOnly": "Abrir siempre como solo lectura",
1856
1857
  "pptx.review.restrictPermission": "Restringir permisos",
@@ -3108,6 +3109,8 @@ var translations18 = {
3108
3109
  "pptx.ribbon.groupChartLayouts": "Dise\xF1os de gr\xE1fico",
3109
3110
  "pptx.ribbon.groupChartStyles": "Estilos de diagrama",
3110
3111
  "pptx.ribbon.groupSmartArtStyles": "Estilos SmartArt",
3112
+ "pptx.ribbon.groupThemes": "Temas",
3113
+ "pptx.ribbon.groupCustomize": "Personalizar",
3111
3114
  "pptx.ribbon.groupVariants": "Variantes",
3112
3115
  "pptx.gallery.more": "M\xE1s {{name}}",
3113
3116
  "pptx.gallery.shapeStyles.title": "Estilos de forma",
package/i18n/fr.cjs CHANGED
@@ -1877,6 +1877,7 @@ var translations10 = {
1877
1877
  "pptx.review.hideInk": "Masquer l'entr\xE9e manuscrite",
1878
1878
  "pptx.review.markAllRead": "Marquer tout comme lu",
1879
1879
  "pptx.review.proofing": "V\xE9rification",
1880
+ "pptx.review.ink": "Encre",
1880
1881
  "pptx.review.protect": "Prot\xE9ger",
1881
1882
  "pptx.review.readOnly": "Toujours ouvrir en lecture seule",
1882
1883
  "pptx.review.restrictPermission": "Restreindre l'autorisation",
@@ -3134,6 +3135,8 @@ var translations18 = {
3134
3135
  "pptx.ribbon.groupChartLayouts": "Dispositions du graphique",
3135
3136
  "pptx.ribbon.groupChartStyles": "Styles du graphique",
3136
3137
  "pptx.ribbon.groupSmartArtStyles": "Styles SmartArt",
3138
+ "pptx.ribbon.groupThemes": "Th\xE8mes",
3139
+ "pptx.ribbon.groupCustomize": "Personnaliser",
3137
3140
  "pptx.ribbon.groupVariants": "Variantes",
3138
3141
  "pptx.gallery.more": "Autres {{name}}",
3139
3142
  "pptx.gallery.shapeStyles.title": "Styles de forme",
package/i18n/fr.mjs CHANGED
@@ -1851,6 +1851,7 @@ var translations10 = {
1851
1851
  "pptx.review.hideInk": "Masquer l'entr\xE9e manuscrite",
1852
1852
  "pptx.review.markAllRead": "Marquer tout comme lu",
1853
1853
  "pptx.review.proofing": "V\xE9rification",
1854
+ "pptx.review.ink": "Encre",
1854
1855
  "pptx.review.protect": "Prot\xE9ger",
1855
1856
  "pptx.review.readOnly": "Toujours ouvrir en lecture seule",
1856
1857
  "pptx.review.restrictPermission": "Restreindre l'autorisation",
@@ -3108,6 +3109,8 @@ var translations18 = {
3108
3109
  "pptx.ribbon.groupChartLayouts": "Dispositions du graphique",
3109
3110
  "pptx.ribbon.groupChartStyles": "Styles du graphique",
3110
3111
  "pptx.ribbon.groupSmartArtStyles": "Styles SmartArt",
3112
+ "pptx.ribbon.groupThemes": "Th\xE8mes",
3113
+ "pptx.ribbon.groupCustomize": "Personnaliser",
3111
3114
  "pptx.ribbon.groupVariants": "Variantes",
3112
3115
  "pptx.gallery.more": "Autres {{name}}",
3113
3116
  "pptx.gallery.shapeStyles.title": "Styles de forme",
package/i18n/zh-CN.cjs CHANGED
@@ -1933,6 +1933,7 @@ var translations15 = {
1933
1933
  "pptx.review.hideInk": "\u9690\u85CF\u58A8\u8FF9",
1934
1934
  "pptx.review.markAllRead": "\u5168\u90E8\u6807\u8BB0\u4E3A\u5DF2\u8BFB",
1935
1935
  "pptx.review.proofing": "\u6821\u5BF9",
1936
+ "pptx.review.ink": "\u58A8\u8FF9",
1936
1937
  "pptx.review.protect": "\u4FDD\u62A4",
1937
1938
  "pptx.review.readOnly": "\u59CB\u7EC8\u4EE5\u53EA\u8BFB\u65B9\u5F0F\u6253\u5F00",
1938
1939
  "pptx.review.restrictPermission": "\u9650\u5236\u6743\u9650",
@@ -3154,6 +3155,8 @@ var translations25 = {
3154
3155
  "pptx.ribbon.groupChartLayouts": "\u56FE\u8868\u5E03\u5C40",
3155
3156
  "pptx.ribbon.groupChartStyles": "\u56FE\u8868\u6837\u5F0F",
3156
3157
  "pptx.ribbon.groupSmartArtStyles": "SmartArt \u6837\u5F0F",
3158
+ "pptx.ribbon.groupThemes": "\u4E3B\u9898",
3159
+ "pptx.ribbon.groupCustomize": "\u81EA\u5B9A\u4E49",
3157
3160
  "pptx.ribbon.groupVariants": "\u53D8\u4F53",
3158
3161
  "pptx.gallery.more": "\u66F4\u591A{{name}}",
3159
3162
  "pptx.gallery.shapeStyles.title": "\u5F62\u72B6\u6837\u5F0F",
package/i18n/zh-CN.mjs CHANGED
@@ -1907,6 +1907,7 @@ var translations15 = {
1907
1907
  "pptx.review.hideInk": "\u9690\u85CF\u58A8\u8FF9",
1908
1908
  "pptx.review.markAllRead": "\u5168\u90E8\u6807\u8BB0\u4E3A\u5DF2\u8BFB",
1909
1909
  "pptx.review.proofing": "\u6821\u5BF9",
1910
+ "pptx.review.ink": "\u58A8\u8FF9",
1910
1911
  "pptx.review.protect": "\u4FDD\u62A4",
1911
1912
  "pptx.review.readOnly": "\u59CB\u7EC8\u4EE5\u53EA\u8BFB\u65B9\u5F0F\u6253\u5F00",
1912
1913
  "pptx.review.restrictPermission": "\u9650\u5236\u6743\u9650",
@@ -3128,6 +3129,8 @@ var translations25 = {
3128
3129
  "pptx.ribbon.groupChartLayouts": "\u56FE\u8868\u5E03\u5C40",
3129
3130
  "pptx.ribbon.groupChartStyles": "\u56FE\u8868\u6837\u5F0F",
3130
3131
  "pptx.ribbon.groupSmartArtStyles": "SmartArt \u6837\u5F0F",
3132
+ "pptx.ribbon.groupThemes": "\u4E3B\u9898",
3133
+ "pptx.ribbon.groupCustomize": "\u81EA\u5B9A\u4E49",
3131
3134
  "pptx.ribbon.groupVariants": "\u53D8\u4F53",
3132
3135
  "pptx.gallery.more": "\u66F4\u591A{{name}}",
3133
3136
  "pptx.gallery.shapeStyles.title": "\u5F62\u72B6\u6837\u5F0F",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pptx-angular-viewer",
3
- "version": "4.16.0",
3
+ "version": "4.16.1",
4
4
  "description": "pptx-viewer for Angular: a PowerPoint viewer and editor component to render, edit, and export PPTX slides in the browser.",
5
5
  "keywords": [
6
6
  "angular",
@@ -92,7 +92,7 @@
92
92
  "jspdf": "^4.2.1",
93
93
  "jszip": "^3.10.2",
94
94
  "opentype.js": "^2.0.0",
95
- "pptx-viewer-core": "^4.9.1",
95
+ "pptx-viewer-core": "^4.9.2",
96
96
  "pptx-viewer-mcp": "^2.5.7",
97
97
  "tslib": "^2.8.1",
98
98
  "zod": ">=4.4.3 <4.5.3"
@@ -6574,6 +6574,7 @@ declare const RIBBON_CONTROL_CATALOG: {
6574
6574
  readonly label: "Language";
6575
6575
  readonly controls: {
6576
6576
  readonly translate: "Translate";
6577
+ readonly language: "Language";
6577
6578
  };
6578
6579
  };
6579
6580
  readonly comments: {
@@ -7271,6 +7272,28 @@ interface SlideShowRibbonGroup {
7271
7272
  commands: readonly SlideShowRibbonCommand[];
7272
7273
  }
7273
7274
 
7275
+ /** A host supplies translated labels and controlled state; shared owns markup. */
7276
+ interface RibbonCommandView {
7277
+ id: RibbonControlId;
7278
+ label: string;
7279
+ icon: string;
7280
+ title?: string;
7281
+ disabled?: boolean;
7282
+ active?: boolean;
7283
+ pressed?: boolean;
7284
+ expanded?: boolean;
7285
+ hidden?: boolean;
7286
+ compact?: boolean;
7287
+ badge?: number;
7288
+ /** Commands with the same column share a vertical stack. */
7289
+ column?: number;
7290
+ }
7291
+ interface RibbonGroupView {
7292
+ id: RibbonGroupId;
7293
+ label: string;
7294
+ commands: readonly RibbonCommandView[];
7295
+ }
7296
+
7274
7297
  /** Part 1: conveyor / doors / ferris / flash / flythrough / gallery / glitter / honeycomb / pan. */
7275
7298
  declare const P14_TRANSITION_KEYFRAMES = "\n/* \u2500\u2500 Conveyor (translate X with staggered timing) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n@keyframes pptx-tr-conveyor-in-from-right {\n\tfrom { transform: translateX(100%) rotateY(-30deg); }\n\t60% { transform: translateX(20%) rotateY(-10deg); }\n\tto { transform: translateX(0) rotateY(0deg); }\n}\n@keyframes pptx-tr-conveyor-out-to-left {\n\tfrom { transform: translateX(0) rotateY(0deg); }\n\t40% { transform: translateX(-20%) rotateY(10deg); }\n\tto { transform: translateX(-100%) rotateY(30deg); }\n}\n@keyframes pptx-tr-conveyor-in-from-left {\n\tfrom { transform: translateX(-100%) rotateY(30deg); }\n\t60% { transform: translateX(-20%) rotateY(10deg); }\n\tto { transform: translateX(0) rotateY(0deg); }\n}\n@keyframes pptx-tr-conveyor-out-to-right {\n\tfrom { transform: translateX(0) rotateY(0deg); }\n\t40% { transform: translateX(20%) rotateY(-10deg); }\n\tto { transform: translateX(100%) rotateY(-30deg); }\n}\n\n/* \u2500\u2500 Doors (clip-path from center split) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n MEASURED via COM CreateVideo: PowerPoint's `dir=\"horz\"` names a\n HORIZONTAL split line (two panels stacked top/bottom, opening upward and\n downward), and `dir=\"vert\"` a VERTICAL split line (panels side by side,\n opening left and right) - the opposite of what \"clips left/right\" vs\n \"clips top/bottom\" would suggest at a glance. Keep the clip-path bodies\n matched to the MEASURED direction, not the intuitive one. */\n@keyframes pptx-tr-doors-horz {\n\tfrom { clip-path: inset(50% 0); }\n\tto { clip-path: inset(0 0); }\n}\n@keyframes pptx-tr-doors-vert {\n\tfrom { clip-path: inset(0 50%); }\n\tto { clip-path: inset(0 0); }\n}\n\n/* \u2500\u2500 Ferris (rotate elements around center) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n@keyframes pptx-tr-ferris-in-from-right {\n\tfrom { transform: translateX(80%) rotate(45deg) scale(0.6); opacity: 0; }\n\tto { transform: translateX(0) rotate(0deg) scale(1); opacity: 1; }\n}\n@keyframes pptx-tr-ferris-out-to-left {\n\tfrom { transform: translateX(0) rotate(0deg) scale(1); opacity: 1; }\n\tto { transform: translateX(-80%) rotate(-45deg) scale(0.6); opacity: 0; }\n}\n@keyframes pptx-tr-ferris-in-from-left {\n\tfrom { transform: translateX(-80%) rotate(-45deg) scale(0.6); opacity: 0; }\n\tto { transform: translateX(0) rotate(0deg) scale(1); opacity: 1; }\n}\n@keyframes pptx-tr-ferris-out-to-right {\n\tfrom { transform: translateX(0) rotate(0deg) scale(1); opacity: 1; }\n\tto { transform: translateX(80%) rotate(45deg) scale(0.6); opacity: 0; }\n}\n\n/* \u2500\u2500 Flash (bright flash opacity burst) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n@keyframes pptx-tr-flash-white {\n\t0% { opacity: 1; }\n\t30% { opacity: 0; }\n\t50% { opacity: 0; }\n\t100% { opacity: 1; }\n}\n@keyframes pptx-tr-flash-in {\n\t0% { opacity: 0; }\n\t50% { opacity: 0; }\n\t70% { opacity: 1; }\n\t100% { opacity: 1; }\n}\n\n/* \u2500\u2500 Flythrough (scale + translate Z-axis feel) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n@keyframes pptx-tr-flythrough-in {\n\tfrom { transform: scale(4) translateZ(200px); opacity: 0; filter: blur(8px); }\n\tto { transform: scale(1) translateZ(0); opacity: 1; filter: blur(0); }\n}\n@keyframes pptx-tr-flythrough-out {\n\tfrom { transform: scale(1) translateZ(0); opacity: 1; filter: blur(0); }\n\tto { transform: scale(0.1) translateZ(-200px); opacity: 0; filter: blur(8px); }\n}\n@keyframes pptx-tr-flythrough-reverse-in {\n\tfrom { transform: scale(0.1) translateZ(-200px); opacity: 0; filter: blur(8px); }\n\tto { transform: scale(1) translateZ(0); opacity: 1; filter: blur(0); }\n}\n@keyframes pptx-tr-flythrough-reverse-out {\n\tfrom { transform: scale(1) translateZ(0); opacity: 1; filter: blur(0); }\n\tto { transform: scale(4) translateZ(200px); opacity: 0; filter: blur(8px); }\n}\n\n/* \u2500\u2500 Gallery (translate with perspective) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n@keyframes pptx-tr-gallery-in-from-right {\n\tfrom { transform: perspective(800px) translateX(100%) rotateY(-45deg); opacity: 0.5; }\n\tto { transform: perspective(800px) translateX(0) rotateY(0deg); opacity: 1; }\n}\n@keyframes pptx-tr-gallery-out-to-left {\n\tfrom { transform: perspective(800px) translateX(0) rotateY(0deg); opacity: 1; }\n\tto { transform: perspective(800px) translateX(-100%) rotateY(45deg); opacity: 0.5; }\n}\n@keyframes pptx-tr-gallery-in-from-left {\n\tfrom { transform: perspective(800px) translateX(-100%) rotateY(45deg); opacity: 0.5; }\n\tto { transform: perspective(800px) translateX(0) rotateY(0deg); opacity: 1; }\n}\n@keyframes pptx-tr-gallery-out-to-right {\n\tfrom { transform: perspective(800px) translateX(0) rotateY(0deg); opacity: 1; }\n\tto { transform: perspective(800px) translateX(100%) rotateY(-45deg); opacity: 0.5; }\n}\n\n/* \u2500\u2500 Glitter (particle dissolve effect) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n@keyframes pptx-tr-glitter-in {\n\tfrom { opacity: 0; filter: brightness(1.5) contrast(1.3) blur(2px); }\n\t60% { opacity: 0.7; filter: brightness(1.2) contrast(1.1) blur(1px); }\n\tto { opacity: 1; filter: brightness(1) contrast(1) blur(0); }\n}\n\n/* \u2500\u2500 Honeycomb (hexagonal reveal) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n@keyframes pptx-tr-honeycomb-in {\n\tfrom {\n\t\tclip-path: polygon(50% 50%, 50% 50%, 50% 50%, 50% 50%, 50% 50%, 50% 50%);\n\t\topacity: 0;\n\t}\n\tto {\n\t\tclip-path: polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%);\n\t\topacity: 1;\n\t}\n}\n@keyframes pptx-tr-honeycomb-out {\n\tfrom { opacity: 1; }\n\tto { opacity: 0; filter: blur(2px); }\n}\n\n/* \u2500\u2500 Pan (large-scale translate) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n@keyframes pptx-tr-pan-from-right {\n\tfrom { transform: translateX(100%); }\n\tto { transform: translateX(0); }\n}\n@keyframes pptx-tr-pan-to-left {\n\tfrom { transform: translateX(0); }\n\tto { transform: translateX(-100%); }\n}\n@keyframes pptx-tr-pan-from-left {\n\tfrom { transform: translateX(-100%); }\n\tto { transform: translateX(0); }\n}\n@keyframes pptx-tr-pan-to-right {\n\tfrom { transform: translateX(0); }\n\tto { transform: translateX(100%); }\n}\n@keyframes pptx-tr-pan-from-bottom {\n\tfrom { transform: translateY(100%); }\n\tto { transform: translateY(0); }\n}\n@keyframes pptx-tr-pan-to-top {\n\tfrom { transform: translateY(0); }\n\tto { transform: translateY(-100%); }\n}\n@keyframes pptx-tr-pan-from-top {\n\tfrom { transform: translateY(-100%); }\n\tto { transform: translateY(0); }\n}\n@keyframes pptx-tr-pan-to-bottom {\n\tfrom { transform: translateY(0); }\n\tto { transform: translateY(100%); }\n}\n";
7276
7299
  /** Part 2: prism / reveal / ripple / shred / switch / vortex / warp / wheelReverse / window. */
@@ -11020,6 +11043,73 @@ declare function clearAllLocalViewerData(): Promise<void>;
11020
11043
  /** Persist an updated profile via the shared viewer-prefs store. */
11021
11044
  declare function saveViewerProfile(profile: ViewerProfile): void;
11022
11045
 
11046
+ /**
11047
+ * Framework-neutral types for the ribbon style galleries (Shape Styles,
11048
+ * WordArt Styles, Picture Styles, Table Styles, Chart Styles, ...).
11049
+ *
11050
+ * A binding renders a gallery by asking `buildRibbonGallery(id, context)` for
11051
+ * a {@link RibbonGalleryDescriptor} and mapping it onto its own markup: a
11052
+ * trigger button, then a grid of tiles whose preview is the ready-made
11053
+ * `previewSvg` string. Clicking a tile calls
11054
+ * `applyRibbonGalleryItem(id, itemId, context)` and dispatches the returned
11055
+ * {@link RibbonGalleryApplyResult} to the binding's existing update path.
11056
+ * Everything that decides WHAT a gallery offers, how a tile looks and what
11057
+ * OOXML a pick writes lives in shared, so a new entry reaches all five
11058
+ * bindings at once.
11059
+ *
11060
+ * @module render/ribbon-galleries/gallery-types
11061
+ */
11062
+
11063
+ /** Every gallery the ribbon offers. */
11064
+ type RibbonGalleryId = 'shapeStyles' | 'shapeEffects' | 'wordArtStyles' | 'pictureStyles' | 'pictureCorrections' | 'pictureColor' | 'pictureArtisticEffects' | 'bullets' | 'numbering' | 'tableStyles' | 'chartStyles' | 'chartColors' | 'chartQuickLayout' | 'smartArtStyles' | 'smartArtColors' | 'themeColors' | 'themeFonts';
11065
+ /** One tile. */
11066
+ interface RibbonGalleryItem {
11067
+ /** Stable within its gallery; what `applyRibbonGalleryItem` takes. */
11068
+ id: string;
11069
+ /** i18n key of the tile's accessible name / tooltip. */
11070
+ labelKey: string;
11071
+ /** `{{name}}` interpolation values for `labelKey`. */
11072
+ labelParams?: Readonly<Record<string, string | number>>;
11073
+ /** English fallback for bindings whose dictionary lacks `labelKey`. */
11074
+ label: string;
11075
+ /**
11076
+ * A complete, self-contained `<svg>` element (width/height/viewBox set).
11077
+ * Built only from catalogue data and theme colours, never from user text,
11078
+ * so it is safe to inject as markup.
11079
+ */
11080
+ previewSvg: string;
11081
+ /**
11082
+ * CSS `filter` the tile's preview carries (the Picture Adjust galleries),
11083
+ * for a host that draws the thumbnail over a real image instead of
11084
+ * `previewSvg`. Omitted when the preset has no CSS-expressible preview.
11085
+ */
11086
+ previewFilter?: string;
11087
+ /** True when this entry is what the selection currently carries. */
11088
+ applied: boolean;
11089
+ }
11090
+ /** A titled block of tiles (PowerPoint's "Theme Styles" / "Presets"). */
11091
+ interface RibbonGallerySection {
11092
+ id: string;
11093
+ /** i18n key of the section heading; omitted for an untitled section. */
11094
+ titleKey?: string;
11095
+ title?: string;
11096
+ /** Tiles per row in the dropped-down grid. */
11097
+ columns: number;
11098
+ /** Preview tile size in CSS px (the SVG's own width/height). */
11099
+ tileWidth: number;
11100
+ tileHeight: number;
11101
+ items: RibbonGalleryItem[];
11102
+ }
11103
+ interface RibbonGalleryDescriptor {
11104
+ id: RibbonGalleryId;
11105
+ /** i18n key of the gallery trigger / group caption. */
11106
+ labelKey: string;
11107
+ label: string;
11108
+ sections: RibbonGallerySection[];
11109
+ /** True when the selection cannot take this gallery (trigger disabled). */
11110
+ disabled: boolean;
11111
+ }
11112
+
11023
11113
  /**
11024
11114
  * Data-driven placeholder icon primitives for `ole` (embedded object)
11025
11115
  * elements: the Excel grid, Word document, PDF, Visio diagram, MathType
@@ -11522,6 +11612,32 @@ declare global {
11522
11612
  }
11523
11613
  }
11524
11614
 
11615
+ interface PptxUiRibbonSectionElement extends HTMLElement {
11616
+ groups: readonly RibbonGroupView[];
11617
+ }
11618
+ declare global {
11619
+ interface HTMLElementTagNameMap {
11620
+ 'pptx-ui-ribbon-section': PptxUiRibbonSectionElement;
11621
+ }
11622
+ }
11623
+
11624
+ type GalleryTranslate = (key: string, params?: Readonly<Record<string, string | number>>) => string;
11625
+
11626
+ interface PptxUiRibbonGalleryElement extends HTMLElement {
11627
+ readonly trigger: HTMLButtonElement;
11628
+ readonly popup: HTMLElement;
11629
+ descriptor: RibbonGalleryDescriptor | undefined;
11630
+ translateLabel: GalleryTranslate;
11631
+ disabled: boolean;
11632
+ open: boolean;
11633
+ close(): void;
11634
+ }
11635
+ declare global {
11636
+ interface HTMLElementTagNameMap {
11637
+ 'pptx-ui-ribbon-gallery': PptxUiRibbonGalleryElement;
11638
+ }
11639
+ }
11640
+
11525
11641
  interface PptxUiSubtitleSettingsElement extends HTMLElement {
11526
11642
  settings: SubtitleSettings;
11527
11643
  labels: SubtitleSettingsLabels;
@@ -15280,7 +15396,7 @@ declare class ViewerInspectorPanelService {
15280
15396
  /** Inspector content, but null on mobile once the user has swiped it away. */
15281
15397
  readonly visibleInspectorKind: _angular_core.Signal<InspectorContent>;
15282
15398
  /** Accessible-label translation key for the inspector host, by active content. */
15283
- readonly inspectorLabel: _angular_core.Signal<"" | "pptx.accessibility.title" | "pptx.viewer.digitalSignatures" | "pptx.toolbar.comments" | "pptx.selectionPane.title" | "pptx.inspector.properties">;
15399
+ readonly inspectorLabel: _angular_core.Signal<"" | "pptx.toolbar.comments" | "pptx.accessibility.title" | "pptx.viewer.digitalSignatures" | "pptx.selectionPane.title" | "pptx.inspector.properties">;
15284
15400
  /**
15285
15401
  * Dismiss the mobile bottom-sheet inspector (backdrop tap or a past-threshold
15286
15402
  * swipe-down): hide the host until reopened and clear any explicit tool panel.
@@ -24405,7 +24521,7 @@ declare class AccountPageComponent {
24405
24521
  readonly accountAuth: _angular_core.InputSignal<AccountAuthConfig | undefined>;
24406
24522
  private readonly translate;
24407
24523
  protected readonly swatches: readonly string[];
24408
- protected readonly version = "4.15.0";
24524
+ protected readonly version = "4.16.0";
24409
24525
  protected readonly profile: _angular_core.WritableSignal<ViewerProfile>;
24410
24526
  protected readonly initial: _angular_core.Signal<string>;
24411
24527
  protected readonly usage: _angular_core.WritableSignal<LocalStorageUsageSummary | null>;
@@ -26318,17 +26434,31 @@ declare class RibbonColorPopoverComponent {
26318
26434
  }
26319
26435
 
26320
26436
  declare class RibbonDesignSectionComponent {
26437
+ readonly groups: readonly {
26438
+ id: RibbonGroupId;
26439
+ labelKey: string;
26440
+ }[];
26441
+ readonly commands: readonly {
26442
+ id: RibbonControlId;
26443
+ labelKey: string;
26444
+ titleKey: string;
26445
+ icon: string;
26446
+ }[];
26321
26447
  readonly themeGalleryOpen: _angular_core.InputSignal<boolean>;
26322
- /** Selection + editability for the Variants galleries. */
26323
26448
  readonly selectedElement: _angular_core.InputSignal<PptxElement | null>;
26324
26449
  readonly slideIndex: _angular_core.InputSignal<number>;
26325
26450
  readonly canEdit: _angular_core.InputSignal<boolean>;
26326
26451
  readonly toggleThemeGallery: _angular_core.OutputEmitterRef<void>;
26327
- /** "Edit Theme": open the theme gallery already in its customise mode. */
26328
26452
  readonly editTheme: _angular_core.OutputEmitterRef<void>;
26329
- /** "Slide Size": surface the inspector deck panel that owns the size card. */
26330
26453
  readonly openSlideSize: _angular_core.OutputEmitterRef<void>;
26331
26454
  readonly toggleInspector: _angular_core.OutputEmitterRef<void>;
26455
+ protected view(id: RibbonControlId): {
26456
+ disabled: boolean;
26457
+ active: boolean;
26458
+ expanded: boolean | undefined;
26459
+ hidden: boolean;
26460
+ };
26461
+ protected request(id: RibbonControlId): void;
26332
26462
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<RibbonDesignSectionComponent, never>;
26333
26463
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<RibbonDesignSectionComponent, "pptx-ribbon-design-section", never, { "themeGalleryOpen": { "alias": "themeGalleryOpen"; "required": false; "isSignal": true; }; "selectedElement": { "alias": "selectedElement"; "required": false; "isSignal": true; }; "slideIndex": { "alias": "slideIndex"; "required": false; "isSignal": true; }; "canEdit": { "alias": "canEdit"; "required": false; "isSignal": true; }; }, { "toggleThemeGallery": "toggleThemeGallery"; "editTheme": "editTheme"; "openSlideSize": "openSlideSize"; "toggleInspector": "toggleInspector"; }, never, never, true, never>;
26334
26464
  }
@@ -26770,18 +26900,22 @@ declare class RibbonPrimaryRowComponent {
26770
26900
  }
26771
26901
 
26772
26902
  declare class RibbonReviewSectionComponent {
26773
- private readonly editor;
26774
- readonly spellCheckEnabled: _angular_core.InputSignal<boolean>;
26775
- readonly canEdit: _angular_core.InputSignal<boolean>;
26903
+ private readonly translator;
26904
+ private readonly state;
26905
+ get spellCheckEnabled(): boolean;
26906
+ set spellCheckEnabled(value: boolean);
26907
+ get canEdit(): boolean;
26908
+ set canEdit(value: boolean);
26776
26909
  readonly comments: _angular_core.OutputEmitterRef<void>;
26777
26910
  readonly spellCheckChange: _angular_core.OutputEmitterRef<boolean>;
26778
26911
  readonly a11y: _angular_core.OutputEmitterRef<void>;
26779
26912
  readonly openCompare: _angular_core.OutputEmitterRef<void>;
26780
26913
  readonly language: _angular_core.OutputEmitterRef<void>;
26781
26914
  readonly link: _angular_core.OutputEmitterRef<void>;
26782
- protected hasSel(): boolean;
26915
+ readonly groups: _angular_core.Signal<RibbonGroupView[]>;
26916
+ protected request(event: Event): void;
26783
26917
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<RibbonReviewSectionComponent, never>;
26784
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<RibbonReviewSectionComponent, "pptx-ribbon-review-section", never, { "spellCheckEnabled": { "alias": "spellCheckEnabled"; "required": false; "isSignal": true; }; "canEdit": { "alias": "canEdit"; "required": false; "isSignal": true; }; }, { "comments": "comments"; "spellCheckChange": "spellCheckChange"; "a11y": "a11y"; "openCompare": "openCompare"; "language": "language"; "link": "link"; }, never, never, true, never>;
26918
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<RibbonReviewSectionComponent, "pptx-ribbon-review-section", never, { "spellCheckEnabled": { "alias": "spellCheckEnabled"; "required": false; }; "canEdit": { "alias": "canEdit"; "required": false; }; }, { "comments": "comments"; "spellCheckChange": "spellCheckChange"; "a11y": "a11y"; "openCompare": "openCompare"; "language": "language"; "link": "link"; }, never, never, true, never>;
26785
26919
  }
26786
26920
 
26787
26921
  /**