ooxml-ui 1.12.2 → 1.13.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 +19 -4
  2. package/dist/chrome/status-layout.d.ts +23 -0
  3. package/dist/{chunk-GI3WX6LZ.js → chunk-3XST4F6J.js} +1 -1
  4. package/dist/{chunk-S6ZXU442.js → chunk-7E3HU7RL.js} +1 -1
  5. package/dist/{chunk-PXIYHFZ5.js → chunk-ANPFMQ6E.js} +1 -1
  6. package/dist/{chunk-FUQYUUIQ.js → chunk-BFPHRWEB.js} +356 -99
  7. package/dist/{chunk-OGNNNTKI.js → chunk-CWBSXK7P.js} +1 -1
  8. package/dist/{chunk-3H5NR32A.js → chunk-D7JPVAYS.js} +319 -202
  9. package/dist/{chunk-NLJVBHLG.js → chunk-EL2A3BDM.js} +5 -5
  10. package/dist/{chunk-L7JV5FVE.js → chunk-KNC2UEUR.js} +1 -1
  11. package/dist/{chunk-SPNWHKSR.js → chunk-LD3K2RDN.js} +7 -5
  12. package/dist/chunk-UBBC5FH7.js +31 -0
  13. package/dist/{chunk-HZSYGNNB.js → chunk-VRVFLYGI.js} +1 -0
  14. package/dist/controls.d.ts +2 -1
  15. package/dist/controls.d.ts.map +1 -1
  16. package/dist/controls.js +4 -4
  17. package/dist/dialog/options-categories.d.ts +39 -0
  18. package/dist/dialog/options-categories.d.ts.map +1 -0
  19. package/dist/dialog/options-controls.d.ts +49 -0
  20. package/dist/dialog/options-controls.d.ts.map +1 -0
  21. package/dist/dialog/options-dialog.d.ts +35 -41
  22. package/dist/dialog/options-dialog.d.ts.map +1 -1
  23. package/dist/docx/auto-fit.d.ts +10 -0
  24. package/dist/docx/backstage-customize.d.ts +7 -0
  25. package/dist/docx/backstage-options.d.ts +13 -3
  26. package/dist/docx/backstage-pages.d.ts +0 -6
  27. package/dist/docx/backstage.d.ts +3 -0
  28. package/dist/docx/canvas-click.d.ts +7 -0
  29. package/dist/docx/locales/en-app.d.ts +1 -0
  30. package/dist/docx/locales/en.d.ts +5 -0
  31. package/dist/docx/locales/options.d.ts +11 -0
  32. package/dist/docx/localization-strings.d.ts +5 -0
  33. package/dist/docx/page-controller.d.ts +17 -3
  34. package/dist/docx/print-editing.d.ts +2 -0
  35. package/dist/docx/print-layout-view.d.ts +2 -0
  36. package/dist/docx/status-bar.d.ts +1 -1
  37. package/dist/docx.js +531 -218
  38. package/dist/form/color-swatches.d.ts +8 -5
  39. package/dist/form/color-swatches.d.ts.map +1 -1
  40. package/dist/index.js +10 -10
  41. package/dist/pptx/{chunk-5AD3V3PA.mjs → chunk-CB2DZVKL.mjs} +127 -1
  42. package/dist/pptx/{chunk-4EHNTVSN.mjs → chunk-DZUSNYRA.mjs} +1310 -216
  43. package/dist/pptx/{chunk-Y7CDPPMZ.cjs → chunk-J3GEBMYK.cjs} +127 -1
  44. package/dist/pptx/{chunk-LMZK4UNY.cjs → chunk-J4HVGXPW.cjs} +1333 -213
  45. package/dist/pptx/dom/elements/table.d.ts.map +1 -1
  46. package/dist/pptx/dom/index.cjs +209 -206
  47. package/dist/pptx/dom/index.mjs +8 -5
  48. package/dist/pptx/dom/load-presentation.d.ts +3 -1
  49. package/dist/pptx/dom/load-presentation.d.ts.map +1 -1
  50. package/dist/pptx/dom/slide-stage.d.ts +3 -1
  51. package/dist/pptx/dom/slide-stage.d.ts.map +1 -1
  52. package/dist/pptx/dom/types.d.ts +6 -1
  53. package/dist/pptx/dom/types.d.ts.map +1 -1
  54. package/dist/pptx/i18n/index.cjs +6 -6
  55. package/dist/pptx/i18n/index.mjs +1 -1
  56. package/dist/pptx/i18n/translations-en-galleries-data.d.ts.map +1 -1
  57. package/dist/pptx/i18n/translations-en-table-layout.d.ts +3 -0
  58. package/dist/pptx/i18n/translations-en-table-layout.d.ts.map +1 -0
  59. package/dist/pptx/i18n/translations-en.d.ts.map +1 -1
  60. package/dist/pptx/index.cjs +2838 -2758
  61. package/dist/pptx/index.mjs +2 -2
  62. package/dist/pptx/render/action-buttons.d.ts +2 -0
  63. package/dist/pptx/render/action-buttons.d.ts.map +1 -1
  64. package/dist/pptx/render/comment-navigation.d.ts +51 -0
  65. package/dist/pptx/render/comment-navigation.d.ts.map +1 -0
  66. package/dist/pptx/render/customization/ribbon-control-catalog-tail.d.ts +61 -0
  67. package/dist/pptx/render/customization/ribbon-control-catalog-tail.d.ts.map +1 -1
  68. package/dist/pptx/render/customization/ribbon-control-catalog.d.ts +61 -0
  69. package/dist/pptx/render/customization/ribbon-control-catalog.d.ts.map +1 -1
  70. package/dist/pptx/render/index.d.ts +2 -0
  71. package/dist/pptx/render/index.d.ts.map +1 -1
  72. package/dist/pptx/render/review-comment-commands.d.ts +42 -0
  73. package/dist/pptx/render/review-comment-commands.d.ts.map +1 -0
  74. package/dist/pptx/render/ribbon-galleries/gallery-placements.d.ts.map +1 -1
  75. package/dist/pptx/render/ribbon-galleries/gallery-registry.d.ts.map +1 -1
  76. package/dist/pptx/render/ribbon-galleries/gallery-types.d.ts +17 -1
  77. package/dist/pptx/render/ribbon-galleries/gallery-types.d.ts.map +1 -1
  78. package/dist/pptx/render/ribbon-galleries/gallery-view.d.ts.map +1 -1
  79. package/dist/pptx/render/ribbon-galleries/index.d.ts +2 -0
  80. package/dist/pptx/render/ribbon-galleries/index.d.ts.map +1 -1
  81. package/dist/pptx/render/ribbon-galleries/shape-styles-gallery.d.ts.map +1 -1
  82. package/dist/pptx/render/ribbon-galleries/table-layout-commands.d.ts +7 -0
  83. package/dist/pptx/render/ribbon-galleries/table-layout-commands.d.ts.map +1 -0
  84. package/dist/pptx/render/ribbon-galleries/table-layout-ops.d.ts +64 -0
  85. package/dist/pptx/render/ribbon-galleries/table-layout-ops.d.ts.map +1 -0
  86. package/dist/pptx/render/ribbon-galleries/table-style-tile-svg.d.ts +7 -3
  87. package/dist/pptx/render/ribbon-galleries/table-style-tile-svg.d.ts.map +1 -1
  88. package/dist/pptx/render/ribbon-galleries/table-styles-gallery.d.ts.map +1 -1
  89. package/dist/pptx/render/ribbon-galleries/table-text-direction-gallery.d.ts +3 -0
  90. package/dist/pptx/render/ribbon-galleries/table-text-direction-gallery.d.ts.map +1 -0
  91. package/dist/pptx/render/ribbon-galleries/theme-colors-gallery.d.ts.map +1 -1
  92. package/dist/pptx/render/ribbon-galleries/theme-fonts-gallery.d.ts.map +1 -1
  93. package/dist/pptx/render/ribbon-home-families-objects.d.ts.map +1 -1
  94. package/dist/pptx/render/ribbon-home-spec.d.ts +10 -6
  95. package/dist/pptx/render/ribbon-home-spec.d.ts.map +1 -1
  96. package/dist/pptx/render/ribbon-review-commands.d.ts +7 -0
  97. package/dist/pptx/render/ribbon-review-commands.d.ts.map +1 -1
  98. package/dist/pptx/render/shape-quick-styles.d.ts +6 -0
  99. package/dist/pptx/render/shape-quick-styles.d.ts.map +1 -1
  100. package/dist/pptx/render/table-style-borders.d.ts.map +1 -1
  101. package/dist/pptx/render/table-style-builtins-data.d.ts +7 -1
  102. package/dist/pptx/render/table-style-builtins-data.d.ts.map +1 -1
  103. package/dist/pptx/render/table-style-scheme.d.ts +2 -0
  104. package/dist/pptx/render/table-style-scheme.d.ts.map +1 -1
  105. package/dist/pptx/render/table-style-theme-refs.d.ts +16 -0
  106. package/dist/pptx/render/table-style-theme-refs.d.ts.map +1 -0
  107. package/dist/pptx/render/table-style.d.ts +7 -1
  108. package/dist/pptx/render/table-style.d.ts.map +1 -1
  109. package/dist/pptx/render/theme-color-swatches.d.ts +1 -1
  110. package/dist/pptx/render/theme-color-swatches.d.ts.map +1 -1
  111. package/dist/pptx/render/toolbar-actions.d.ts +1 -1
  112. package/dist/pptx/render/toolbar-actions.d.ts.map +1 -1
  113. package/dist/pptx/web-components/ribbon-draw-view.d.ts.map +1 -1
  114. package/dist/pptx/web-components/ribbon-home-colour.d.ts.map +1 -1
  115. package/dist/pptx/web-components/ribbon-insert-view.d.ts.map +1 -1
  116. package/dist/presence.js +3 -3
  117. package/dist/{presentation-preview-VIIU7E2S.js → presentation-preview-HVKJ3KJN.js} +1 -1
  118. package/dist/ribbon/auto-collapse.d.ts +8 -0
  119. package/dist/ribbon/auto-collapse.d.ts.map +1 -0
  120. package/dist/ribbon/group-overflow.d.ts +7 -0
  121. package/dist/ribbon/group-overflow.d.ts.map +1 -1
  122. package/dist/ribbon/overflow.d.ts +7 -0
  123. package/dist/ribbon/overflow.d.ts.map +1 -1
  124. package/dist/ribbon/ribbon-tabs.d.ts +5 -0
  125. package/dist/ribbon/ribbon-tabs.d.ts.map +1 -1
  126. package/dist/ribbon/scroll-more.d.ts +17 -0
  127. package/dist/ribbon/scroll-more.d.ts.map +1 -0
  128. package/dist/smartart.js +3 -3
  129. package/dist/teams/app/activity.d.ts +5 -0
  130. package/dist/teams/app/pinned-bar.d.ts +24 -0
  131. package/dist/teams/app/profile-menu.d.ts +18 -1
  132. package/dist/teams/app/teams-app.d.ts +8 -3
  133. package/dist/teams/app-rail.d.ts +3 -1
  134. package/dist/teams/avatar.d.ts +2 -2
  135. package/dist/teams/chat-list.d.ts +10 -2
  136. package/dist/teams.js +7 -7
  137. package/dist/theme.js +2 -2
  138. package/dist/tokens.d.ts +7 -5
  139. package/dist/tokens.d.ts.map +1 -1
  140. package/dist/visio/viewer-gesture-state.d.ts +54 -0
  141. package/dist/visio/viewer-options-categories.d.ts +8 -0
  142. package/dist/visio/viewer-options.d.ts +3 -7
  143. package/dist/visio/viewer-touch-gestures.d.ts +17 -0
  144. package/dist/visio/viewer-touch-hit.d.ts +3 -0
  145. package/dist/visio/viewer-touch-long-press.d.ts +13 -0
  146. package/dist/visio/viewer-touch-math.d.ts +44 -0
  147. package/dist/visio.js +319 -149
  148. package/dist/xlsx/backstage/index.d.ts +3 -0
  149. package/dist/xlsx/backstage/options-customize.d.ts +7 -0
  150. package/dist/xlsx/backstage/options-dialog.d.ts +13 -0
  151. package/dist/xlsx/ribbon/ribbon.d.ts +1 -1
  152. package/dist/xlsx/status-bar.d.ts +1 -1
  153. package/dist/xlsx.js +282 -172
  154. package/package.json +2 -2
  155. package/dist/teams/app/navigation-drawer.d.ts +0 -26
  156. package/dist/xlsx/backstage/pages-options.d.ts +0 -7
@@ -32,7 +32,7 @@ var chunkOJFD3SHS_cjs = require('./chunk-OJFD3SHS.cjs');
32
32
  var chunkUSBRSEJK_cjs = require('./chunk-USBRSEJK.cjs');
33
33
  var chunk47FYJVMH_cjs = require('./chunk-47FYJVMH.cjs');
34
34
  var chunkU47LRWDT_cjs = require('./chunk-U47LRWDT.cjs');
35
- var chunkY7CDPPMZ_cjs = require('./chunk-Y7CDPPMZ.cjs');
35
+ var chunkJ3GEBMYK_cjs = require('./chunk-J3GEBMYK.cjs');
36
36
  var chunkPBZWDEXQ_cjs = require('./chunk-PBZWDEXQ.cjs');
37
37
  var chunkHJ3JZXOL_cjs = require('./chunk-HJ3JZXOL.cjs');
38
38
  var chunkEW5DW5KR_cjs = require('./chunk-EW5DW5KR.cjs');
@@ -86,6 +86,7 @@ var slideSearch = require('ooxml-core/pptx/editor/render/slide-search');
86
86
  var findReplace = require('ooxml-core/pptx/editor/render/find-replace');
87
87
  var groupDrill = require('ooxml-core/pptx/editor/render/group-drill');
88
88
  var chart = require('ooxml-core/chart');
89
+ var i18n = require('ooxml-core/i18n');
89
90
  var themeEditorPresets = require('ooxml-core/pptx/editor/render/theme-editor-presets');
90
91
  var templateEditing = require('ooxml-core/pptx/editor/render/template-editing');
91
92
  var ui = require('ooxml-core/pptx/ui');
@@ -216,6 +217,8 @@ chunkMF3JURQN_cjs.__export(pptx_exports, {
216
217
  COMBO_SERIES_TYPE_OPTIONS: () => COMBO_SERIES_TYPE_OPTIONS,
217
218
  COMBO_SUPPORTED_TYPES: () => COMBO_SUPPORTED_TYPES,
218
219
  COMMAND_SEARCH_ENTRIES: () => COMMAND_SEARCH_ENTRIES,
220
+ COMMENT_ACTIVE_ATTR: () => COMMENT_ACTIVE_ATTR,
221
+ COMMENT_ID_ATTR: () => COMMENT_ID_ATTR,
219
222
  COMMENT_MARKER_COLOR: () => COMMENT_MARKER_COLOR,
220
223
  COMMENT_MARKER_SIZE: () => COMMENT_MARKER_SIZE,
221
224
  COMMENT_MENTION_ATTRIBUTE: () => COMMENT_MENTION_ATTRIBUTE,
@@ -637,6 +640,7 @@ chunkMF3JURQN_cjs.__export(pptx_exports, {
637
640
  REPEAT_MODE_VALUES: () => chunkOJFD3SHS_cjs.REPEAT_MODE_VALUES,
638
641
  RESIZE_HANDLES: () => geometry.RESIZE_HANDLES,
639
642
  RESIZE_HANDLE_GEOMETRY: () => geometry.RESIZE_HANDLE_GEOMETRY,
643
+ REVIEW_COMMENT_COMMAND_IDS: () => REVIEW_COMMENT_COMMAND_IDS,
640
644
  RGBA_BYTES_PER_PIXEL: () => RGBA_BYTES_PER_PIXEL,
641
645
  RIBBON_ADD_IN_EVENT: () => ribbon.RIBBON_ADD_IN_EVENT,
642
646
  RIBBON_ADD_IN_TAB_ATTR: () => RIBBON_ADD_IN_TAB_ATTR,
@@ -755,6 +759,8 @@ chunkMF3JURQN_cjs.__export(pptx_exports, {
755
759
  THEME_CATALOG: () => chunk47FYJVMH_cjs.THEME_CATALOG,
756
760
  THEME_COLOR_LABELS: () => textTheme.THEME_COLOR_LABELS,
757
761
  THEME_COLOR_SLOT_LABEL_KEYS: () => schemaLabelKeys.THEME_COLOR_SLOT_LABEL_KEYS,
762
+ THEME_COLOR_SWATCH_COLUMN_LABEL_KEYS: () => ui.THEME_COLOR_SWATCH_COLUMN_LABEL_KEYS,
763
+ THEME_COLOR_SWATCH_VARIANT_LABEL_KEYS: () => ui.THEME_COLOR_SWATCH_VARIANT_LABEL_KEYS,
758
764
  THEME_COLOR_TINT_ROWS: () => textTheme.THEME_COLOR_TINT_ROWS,
759
765
  THEME_EDITOR_COLOR_LABELS: () => themeEditorModel.THEME_EDITOR_COLOR_LABELS,
760
766
  THEME_EDITOR_LABEL_KEYS: () => themeEditorModel.THEME_EDITOR_LABEL_KEYS,
@@ -831,6 +837,7 @@ chunkMF3JURQN_cjs.__export(pptx_exports, {
831
837
  acceptsPresentationInput: () => acceptsPresentationInput,
832
838
  acknowledgeAutosaveRecovery: () => acknowledgeAutosaveRecovery,
833
839
  actionAffordanceLabels: () => actionAffordanceLabels,
840
+ actionButtonLabelKey: () => actionButtonLabelKey,
834
841
  actionTypeNeedsTarget: () => actionTypeNeedsTarget,
835
842
  activateModalFocus: () => activateModalFocus,
836
843
  activeGalleryThemePreset: () => chunk47FYJVMH_cjs.activeGalleryThemePreset,
@@ -843,6 +850,7 @@ chunkMF3JURQN_cjs.__export(pptx_exports, {
843
850
  addSection: () => sectionOperations.addSection,
844
851
  addSiblingAfter: () => addSiblingAfter,
845
852
  addTagToCollections: () => addTagToCollections,
853
+ adjacentComment: () => adjacentComment,
846
854
  adjustFillForMode: () => chunkVFPVEVF4_cjs.adjustFillForMode,
847
855
  adjustGalleryModule: () => adjustGalleryModule,
848
856
  adjustmentRange: () => adjustmentRange,
@@ -1313,6 +1321,7 @@ chunkMF3JURQN_cjs.__export(pptx_exports, {
1313
1321
  classifyMediaType: () => classifyMediaType,
1314
1322
  classifyTextWarp: () => classifyTextWarp,
1315
1323
  clearActiveAnimationGroup: () => clearActiveAnimationGroup,
1324
+ clearAllComments: () => clearAllComments,
1316
1325
  clearAllLocalViewerData: () => clearAllLocalViewerData,
1317
1326
  clearAudienceContent: () => clearAudienceContent,
1318
1327
  clearAutosaveRecoveryAcknowledgement: () => clearAutosaveRecoveryAcknowledgement,
@@ -1322,6 +1331,7 @@ chunkMF3JURQN_cjs.__export(pptx_exports, {
1322
1331
  clearPlaybackTimers: () => clearPlaybackTimers,
1323
1332
  clearPresentationDeck: () => clearPresentationDeck,
1324
1333
  clearSeriesColor: () => clearSeriesColor,
1334
+ clearSlideComments: () => clearSlideComments,
1325
1335
  clearStoredViewerPrefs: () => clearStoredViewerPrefs,
1326
1336
  clearTransitionSound: () => clearTransitionSound,
1327
1337
  clientPointToViewBox: () => clientPointToViewBox,
@@ -1372,6 +1382,7 @@ chunkMF3JURQN_cjs.__export(pptx_exports, {
1372
1382
  columnHandleSegments: () => columnHandleSegments,
1373
1383
  columnIndexAtFraction: () => columnIndexAtFraction,
1374
1384
  combineTileRowPixels: () => combineTileRowPixels,
1385
+ commentCounts: () => commentCounts,
1375
1386
  commentMarkerTitle: () => commentMarkerTitle,
1376
1387
  commentMentionQuery: () => commentMentionQuery,
1377
1388
  commentTextSegments: () => commentTextSegments,
@@ -1767,6 +1778,7 @@ chunkMF3JURQN_cjs.__export(pptx_exports, {
1767
1778
  findChartPartInEvent: () => findChartPartInEvent,
1768
1779
  findChartPartTarget: () => chunkK3S2A64B_cjs.findChartPartTarget,
1769
1780
  findChartUserShapeNode: () => findChartUserShapeNode,
1781
+ findCommentLocation: () => findCommentLocation,
1770
1782
  findConnectorSiteNear: () => findConnectorSiteNear,
1771
1783
  findConstraint: () => pptx.findConstraint,
1772
1784
  findDataPoint: () => chunkVFPVEVF4_cjs.findDataPoint,
@@ -2275,6 +2287,7 @@ chunkMF3JURQN_cjs.__export(pptx_exports, {
2275
2287
  isPresentationAudience: () => isPresentationAudience,
2276
2288
  isPresentationSessionMessage: () => isPresentationSessionMessage,
2277
2289
  isPrimaryCategoryAxisAtTop: () => chunkVFPVEVF4_cjs.isPrimaryCategoryAxisAtTop,
2290
+ isReviewCommentCommand: () => isReviewCommentCommand,
2278
2291
  isRibbonControlId: () => isRibbonControlId,
2279
2292
  isRibbonControlVisible: () => isRibbonControlVisible,
2280
2293
  isRibbonGroupId: () => isRibbonGroupId,
@@ -2320,6 +2333,7 @@ chunkMF3JURQN_cjs.__export(pptx_exports, {
2320
2333
  listBackstageRecentFiles: () => listBackstageRecentFiles,
2321
2334
  listChartUserShapeDescriptors: () => chartUserShapeEdit.listChartUserShapeDescriptors,
2322
2335
  listChartUserShapeRows: () => listChartUserShapeRows,
2336
+ listCommentLocations: () => listCommentLocations,
2323
2337
  listMediaBookmarkOptions: () => listMediaBookmarkOptions,
2324
2338
  listenForOutlineViewDismiss: () => listenForOutlineViewDismiss,
2325
2339
  loadAudienceContent: () => loadAudienceContent,
@@ -2487,6 +2501,7 @@ chunkMF3JURQN_cjs.__export(pptx_exports, {
2487
2501
  observeExternalCollaborationReadiness: () => observeExternalCollaborationReadiness,
2488
2502
  observeExternalCollaborationSession: () => observeExternalCollaborationSession,
2489
2503
  observeYDocSlides: () => collaborationSync.observeYDocSlides,
2504
+ officeColorSwatchLabel: () => officeColorSwatchLabel,
2490
2505
  oleActionsVisible: () => oleActionsVisible,
2491
2506
  ommlToMathml: () => math.ommlToMathml,
2492
2507
  ooxmlDashToCssBorderStyle: () => ooxmlDashToCssBorderStyle,
@@ -2713,6 +2728,7 @@ chunkMF3JURQN_cjs.__export(pptx_exports, {
2713
2728
  removeChartCategory: () => pptx.chartGridRemoveCategory,
2714
2729
  removeChartSeries: () => pptx.chartGridRemoveSeries,
2715
2730
  removeCommentFromList: () => removeCommentFromList,
2731
+ removeCommentFromSlides: () => removeCommentFromSlides,
2716
2732
  removeElement: () => editorMutations.removeElement,
2717
2733
  removeElementAnimation: () => chunkOJFD3SHS_cjs.removeElementAnimation,
2718
2734
  removeEmptyNode: () => removeEmptyNode,
@@ -2979,6 +2995,7 @@ chunkMF3JURQN_cjs.__export(pptx_exports, {
2979
2995
  restoreSegmentSelection: () => restoreSegmentSelection,
2980
2996
  restoreSessionDeck: () => restoreSessionDeck,
2981
2997
  resumeAllPersistentAudio: () => resumeAllPersistentAudio,
2998
+ revealComment: () => revealComment,
2982
2999
  revealedElementStyles: () => revealedElementStyles,
2983
3000
  revealedSmartArtNodeCount: () => revealedSmartArtNodeCount,
2984
3001
  revealedStageCount: () => revealedStageCount,
@@ -3012,6 +3029,7 @@ chunkMF3JURQN_cjs.__export(pptx_exports, {
3012
3029
  runPresentationAction: () => runPresentationAction,
3013
3030
  runProgramNoticeStackStyle: () => runProgramNoticeStackStyle,
3014
3031
  runProgramNoticeStackStyleAttr: () => runProgramNoticeStackStyleAttr,
3032
+ runReviewCommentCommand: () => runReviewCommentCommand,
3015
3033
  runRibbonAddInCommand: () => runRibbonAddInCommand,
3016
3034
  safeColor: () => safeColor,
3017
3035
  safeDataImageSrc: () => chunkUPN5FFKP_cjs.safeDataImageSrc,
@@ -3122,6 +3140,7 @@ chunkMF3JURQN_cjs.__export(pptx_exports, {
3122
3140
  shadeColor: () => textTheme.shadeColor,
3123
3141
  shapeFillChange: () => shapeFillChange,
3124
3142
  shapeOutlineChange: () => shapeOutlineChange,
3143
+ shapeQuickStyleLabel: () => shapeQuickStyleLabel,
3125
3144
  shapeQuickStylePatch: () => shapeQuickStylePatch,
3126
3145
  shapeStylePatch: () => chunkT34B6TZT_cjs.shapeStylePatch,
3127
3146
  shapeStyleWithoutFormatting: () => shapeStyleWithoutFormatting,
@@ -3266,6 +3285,7 @@ chunkMF3JURQN_cjs.__export(pptx_exports, {
3266
3285
  tableContainerCss: () => tableContainerCss,
3267
3286
  tableInspectorPatch: () => tableInspectorPatch,
3268
3287
  tableInspectorStateOf: () => tableInspectorStateOf,
3288
+ tableLayoutCells: () => tableLayoutCells,
3269
3289
  tableStyleAssignmentUpdate: () => tableStyleMapEdits.tableStyleAssignmentUpdate,
3270
3290
  tableStyleSaveOptions: () => tableStyleMapEdits.tableStyleSaveOptions,
3271
3291
  takePendingCaretPoint: () => takePendingCaretPoint,
@@ -3335,6 +3355,7 @@ chunkMF3JURQN_cjs.__export(pptx_exports, {
3335
3355
  tokenizeText: () => tokenizeText,
3336
3356
  toleranceToThreshold: () => toleranceToThreshold,
3337
3357
  traceGlyphOutlineCommands: () => traceGlyphOutlineCommands,
3358
+ trackActiveComment: () => trackActiveComment,
3338
3359
  transformConnectionSite: () => transformConnectionSite,
3339
3360
  transformInlineListCase: () => transformInlineListCase,
3340
3361
  transformTextCase: () => chunk52LKIMK3_cjs.transformTextCase,
@@ -3750,6 +3771,8 @@ chunkMF3JURQN_cjs.__export(render_exports, {
3750
3771
  COMBO_SERIES_TYPE_OPTIONS: () => COMBO_SERIES_TYPE_OPTIONS,
3751
3772
  COMBO_SUPPORTED_TYPES: () => COMBO_SUPPORTED_TYPES,
3752
3773
  COMMAND_SEARCH_ENTRIES: () => COMMAND_SEARCH_ENTRIES,
3774
+ COMMENT_ACTIVE_ATTR: () => COMMENT_ACTIVE_ATTR,
3775
+ COMMENT_ID_ATTR: () => COMMENT_ID_ATTR,
3753
3776
  COMMENT_MARKER_COLOR: () => COMMENT_MARKER_COLOR,
3754
3777
  COMMENT_MARKER_SIZE: () => COMMENT_MARKER_SIZE,
3755
3778
  COMMENT_MENTION_ATTRIBUTE: () => COMMENT_MENTION_ATTRIBUTE,
@@ -4134,6 +4157,7 @@ chunkMF3JURQN_cjs.__export(render_exports, {
4134
4157
  REPEAT_MODE_VALUES: () => chunkOJFD3SHS_cjs.REPEAT_MODE_VALUES,
4135
4158
  RESIZE_HANDLES: () => geometry.RESIZE_HANDLES,
4136
4159
  RESIZE_HANDLE_GEOMETRY: () => geometry.RESIZE_HANDLE_GEOMETRY,
4160
+ REVIEW_COMMENT_COMMAND_IDS: () => REVIEW_COMMENT_COMMAND_IDS,
4137
4161
  RIBBON_ADD_IN_EVENT: () => ribbon.RIBBON_ADD_IN_EVENT,
4138
4162
  RIBBON_ADD_IN_TAB_ATTR: () => RIBBON_ADD_IN_TAB_ATTR,
4139
4163
  RIBBON_CONTEXTUAL_TABS: () => RIBBON_CONTEXTUAL_TABS,
@@ -4250,6 +4274,8 @@ chunkMF3JURQN_cjs.__export(render_exports, {
4250
4274
  TEXT_WRAP_OPTIONS: () => TEXT_WRAP_OPTIONS,
4251
4275
  THEME_COLOR_LABELS: () => textTheme.THEME_COLOR_LABELS,
4252
4276
  THEME_COLOR_SLOT_LABEL_KEYS: () => schemaLabelKeys.THEME_COLOR_SLOT_LABEL_KEYS,
4277
+ THEME_COLOR_SWATCH_COLUMN_LABEL_KEYS: () => ui.THEME_COLOR_SWATCH_COLUMN_LABEL_KEYS,
4278
+ THEME_COLOR_SWATCH_VARIANT_LABEL_KEYS: () => ui.THEME_COLOR_SWATCH_VARIANT_LABEL_KEYS,
4253
4279
  THEME_COLOR_TINT_ROWS: () => textTheme.THEME_COLOR_TINT_ROWS,
4254
4280
  THEME_EDITOR_COLOR_LABELS: () => themeEditorModel.THEME_EDITOR_COLOR_LABELS,
4255
4281
  THEME_EDITOR_LABEL_KEYS: () => themeEditorModel.THEME_EDITOR_LABEL_KEYS,
@@ -4318,6 +4344,7 @@ chunkMF3JURQN_cjs.__export(render_exports, {
4318
4344
  acceptsPresentationInput: () => acceptsPresentationInput,
4319
4345
  acknowledgeAutosaveRecovery: () => acknowledgeAutosaveRecovery,
4320
4346
  actionAffordanceLabels: () => actionAffordanceLabels,
4347
+ actionButtonLabelKey: () => actionButtonLabelKey,
4321
4348
  actionTypeNeedsTarget: () => actionTypeNeedsTarget,
4322
4349
  activateModalFocus: () => activateModalFocus,
4323
4350
  addChartCategory: () => pptx.chartGridAddCategory,
@@ -4329,6 +4356,7 @@ chunkMF3JURQN_cjs.__export(render_exports, {
4329
4356
  addSection: () => sectionOperations.addSection,
4330
4357
  addSiblingAfter: () => addSiblingAfter,
4331
4358
  addTagToCollections: () => addTagToCollections,
4359
+ adjacentComment: () => adjacentComment,
4332
4360
  adjustFillForMode: () => chunkVFPVEVF4_cjs.adjustFillForMode,
4333
4361
  adjustGalleryModule: () => adjustGalleryModule,
4334
4362
  adjustmentRange: () => adjustmentRange,
@@ -4769,6 +4797,7 @@ chunkMF3JURQN_cjs.__export(render_exports, {
4769
4797
  classifyMediaType: () => classifyMediaType,
4770
4798
  classifyTextWarp: () => classifyTextWarp,
4771
4799
  clearActiveAnimationGroup: () => clearActiveAnimationGroup,
4800
+ clearAllComments: () => clearAllComments,
4772
4801
  clearAllLocalViewerData: () => clearAllLocalViewerData,
4773
4802
  clearAudienceContent: () => clearAudienceContent,
4774
4803
  clearAutosaveRecoveryAcknowledgement: () => clearAutosaveRecoveryAcknowledgement,
@@ -4778,6 +4807,7 @@ chunkMF3JURQN_cjs.__export(render_exports, {
4778
4807
  clearPlaybackTimers: () => clearPlaybackTimers,
4779
4808
  clearPresentationDeck: () => clearPresentationDeck,
4780
4809
  clearSeriesColor: () => clearSeriesColor,
4810
+ clearSlideComments: () => clearSlideComments,
4781
4811
  clearStoredViewerPrefs: () => clearStoredViewerPrefs,
4782
4812
  clearTransitionSound: () => clearTransitionSound,
4783
4813
  clientPointToViewBox: () => clientPointToViewBox,
@@ -4821,6 +4851,7 @@ chunkMF3JURQN_cjs.__export(render_exports, {
4821
4851
  colour: () => pptx.colour,
4822
4852
  columnHandleSegments: () => columnHandleSegments,
4823
4853
  columnIndexAtFraction: () => columnIndexAtFraction,
4854
+ commentCounts: () => commentCounts,
4824
4855
  commentMarkerTitle: () => commentMarkerTitle,
4825
4856
  commentMentionQuery: () => commentMentionQuery,
4826
4857
  commentTextSegments: () => commentTextSegments,
@@ -5181,6 +5212,7 @@ chunkMF3JURQN_cjs.__export(render_exports, {
5181
5212
  findChartPartInEvent: () => findChartPartInEvent,
5182
5213
  findChartPartTarget: () => chunkK3S2A64B_cjs.findChartPartTarget,
5183
5214
  findChartUserShapeNode: () => findChartUserShapeNode,
5215
+ findCommentLocation: () => findCommentLocation,
5184
5216
  findConnectorSiteNear: () => findConnectorSiteNear,
5185
5217
  findConstraint: () => pptx.findConstraint,
5186
5218
  findDataPoint: () => chunkVFPVEVF4_cjs.findDataPoint,
@@ -5664,6 +5696,7 @@ chunkMF3JURQN_cjs.__export(render_exports, {
5664
5696
  isPresentationAudience: () => isPresentationAudience,
5665
5697
  isPresentationSessionMessage: () => isPresentationSessionMessage,
5666
5698
  isPrimaryCategoryAxisAtTop: () => chunkVFPVEVF4_cjs.isPrimaryCategoryAxisAtTop,
5699
+ isReviewCommentCommand: () => isReviewCommentCommand,
5667
5700
  isRibbonControlId: () => isRibbonControlId,
5668
5701
  isRibbonControlVisible: () => isRibbonControlVisible,
5669
5702
  isRibbonGroupId: () => isRibbonGroupId,
@@ -5706,6 +5739,7 @@ chunkMF3JURQN_cjs.__export(render_exports, {
5706
5739
  listBackstageRecentFiles: () => listBackstageRecentFiles,
5707
5740
  listChartUserShapeDescriptors: () => chartUserShapeEdit.listChartUserShapeDescriptors,
5708
5741
  listChartUserShapeRows: () => listChartUserShapeRows,
5742
+ listCommentLocations: () => listCommentLocations,
5709
5743
  listMediaBookmarkOptions: () => listMediaBookmarkOptions,
5710
5744
  listenForOutlineViewDismiss: () => listenForOutlineViewDismiss,
5711
5745
  loadAudienceContent: () => loadAudienceContent,
@@ -5869,6 +5903,7 @@ chunkMF3JURQN_cjs.__export(render_exports, {
5869
5903
  observeExternalCollaborationReadiness: () => observeExternalCollaborationReadiness,
5870
5904
  observeExternalCollaborationSession: () => observeExternalCollaborationSession,
5871
5905
  observeYDocSlides: () => collaborationSync.observeYDocSlides,
5906
+ officeColorSwatchLabel: () => officeColorSwatchLabel,
5872
5907
  oleActionsVisible: () => oleActionsVisible,
5873
5908
  ommlToMathml: () => math.ommlToMathml,
5874
5909
  ooxmlDashToCssBorderStyle: () => ooxmlDashToCssBorderStyle,
@@ -6067,6 +6102,7 @@ chunkMF3JURQN_cjs.__export(render_exports, {
6067
6102
  removeChartCategory: () => pptx.chartGridRemoveCategory,
6068
6103
  removeChartSeries: () => pptx.chartGridRemoveSeries,
6069
6104
  removeCommentFromList: () => removeCommentFromList,
6105
+ removeCommentFromSlides: () => removeCommentFromSlides,
6070
6106
  removeElement: () => editorMutations.removeElement,
6071
6107
  removeElementAnimation: () => chunkOJFD3SHS_cjs.removeElementAnimation,
6072
6108
  removeEmptyNode: () => removeEmptyNode,
@@ -6322,6 +6358,7 @@ chunkMF3JURQN_cjs.__export(render_exports, {
6322
6358
  restoreSegmentSelection: () => restoreSegmentSelection,
6323
6359
  restoreSessionDeck: () => restoreSessionDeck,
6324
6360
  resumeAllPersistentAudio: () => resumeAllPersistentAudio,
6361
+ revealComment: () => revealComment,
6325
6362
  revealedElementStyles: () => revealedElementStyles,
6326
6363
  revealedSmartArtNodeCount: () => revealedSmartArtNodeCount,
6327
6364
  revealedStageCount: () => revealedStageCount,
@@ -6355,6 +6392,7 @@ chunkMF3JURQN_cjs.__export(render_exports, {
6355
6392
  runPresentationAction: () => runPresentationAction,
6356
6393
  runProgramNoticeStackStyle: () => runProgramNoticeStackStyle,
6357
6394
  runProgramNoticeStackStyleAttr: () => runProgramNoticeStackStyleAttr,
6395
+ runReviewCommentCommand: () => runReviewCommentCommand,
6358
6396
  runRibbonAddInCommand: () => runRibbonAddInCommand,
6359
6397
  safeColor: () => safeColor,
6360
6398
  safeOpenUrl: () => chunkIOOI63TH_cjs.safeOpenUrl,
@@ -6456,6 +6494,7 @@ chunkMF3JURQN_cjs.__export(render_exports, {
6456
6494
  shadeColor: () => textTheme.shadeColor,
6457
6495
  shapeFillChange: () => shapeFillChange,
6458
6496
  shapeOutlineChange: () => shapeOutlineChange,
6497
+ shapeQuickStyleLabel: () => shapeQuickStyleLabel,
6459
6498
  shapeQuickStylePatch: () => shapeQuickStylePatch,
6460
6499
  shapeStylePatch: () => chunkT34B6TZT_cjs.shapeStylePatch,
6461
6500
  shapeStyleWithoutFormatting: () => shapeStyleWithoutFormatting,
@@ -6592,6 +6631,7 @@ chunkMF3JURQN_cjs.__export(render_exports, {
6592
6631
  tableContainerCss: () => tableContainerCss,
6593
6632
  tableInspectorPatch: () => tableInspectorPatch,
6594
6633
  tableInspectorStateOf: () => tableInspectorStateOf,
6634
+ tableLayoutCells: () => tableLayoutCells,
6595
6635
  tableStyleAssignmentUpdate: () => tableStyleMapEdits.tableStyleAssignmentUpdate,
6596
6636
  tableStyleSaveOptions: () => tableStyleMapEdits.tableStyleSaveOptions,
6597
6637
  takePendingCaretPoint: () => takePendingCaretPoint,
@@ -6658,6 +6698,7 @@ chunkMF3JURQN_cjs.__export(render_exports, {
6658
6698
  tokenizeText: () => tokenizeText,
6659
6699
  toleranceToThreshold: () => toleranceToThreshold,
6660
6700
  traceGlyphOutlineCommands: () => traceGlyphOutlineCommands,
6701
+ trackActiveComment: () => trackActiveComment,
6661
6702
  transformConnectionSite: () => transformConnectionSite,
6662
6703
  transformInlineListCase: () => transformInlineListCase,
6663
6704
  transformTextCase: () => chunk52LKIMK3_cjs.transformTextCase,
@@ -7637,16 +7678,16 @@ function buildSvgStrokePatternDef(style, elementId) {
7637
7678
  }
7638
7679
  const fg = chunkVFPVEVF4_cjs.normalizeHexColor(style.strokeColor, "#000000");
7639
7680
  const bg = chunkVFPVEVF4_cjs.normalizeHexColor(style.strokePatternBackgroundColor, "#ffffff");
7640
- const tile4 = chunkVFPVEVF4_cjs.getPatternTile(style.strokePatternPreset, fg, bg);
7641
- if (!tile4) {
7681
+ const tile5 = chunkVFPVEVF4_cjs.getPatternTile(style.strokePatternPreset, fg, bg);
7682
+ if (!tile5) {
7642
7683
  return void 0;
7643
7684
  }
7644
- const markup = `<svg xmlns="http://www.w3.org/2000/svg" width="${tile4.w}" height="${tile4.h}">${tile4.inner}</svg>`;
7685
+ const markup = `<svg xmlns="http://www.w3.org/2000/svg" width="${tile5.w}" height="${tile5.h}">${tile5.inner}</svg>`;
7645
7686
  return {
7646
7687
  kind: "pattern",
7647
7688
  id: svgGradientId(elementId, "strokepat"),
7648
- width: tile4.w,
7649
- height: tile4.h,
7689
+ width: tile5.w,
7690
+ height: tile5.h,
7650
7691
  href: `data:image/svg+xml,${encodeURIComponent(markup)}`
7651
7692
  };
7652
7693
  }
@@ -8948,16 +8989,16 @@ function buildPatternOverlayTile(pattern) {
8948
8989
  if (!pattern) {
8949
8990
  return void 0;
8950
8991
  }
8951
- const tile4 = chunkVFPVEVF4_cjs.getPatternTile(
8992
+ const tile5 = chunkVFPVEVF4_cjs.getPatternTile(
8952
8993
  pattern.preset,
8953
8994
  pattern.foreground ?? "#000000",
8954
8995
  pattern.background ?? "#ffffff"
8955
8996
  );
8956
- if (!tile4) {
8997
+ if (!tile5) {
8957
8998
  return void 0;
8958
8999
  }
8959
- const svg2 = `<svg xmlns="http://www.w3.org/2000/svg" width="${tile4.w}" height="${tile4.h}">${tile4.inner}</svg>`;
8960
- return { dataUri: toSvgDataUri(svg2), width: tile4.w, height: tile4.h };
9000
+ const svg2 = `<svg xmlns="http://www.w3.org/2000/svg" width="${tile5.w}" height="${tile5.h}">${tile5.inner}</svg>`;
9001
+ return { dataUri: toSvgDataUri(svg2), width: tile5.w, height: tile5.h };
8961
9002
  }
8962
9003
  function buildImageFillOverlayFilterMarkup(effects, width, height) {
8963
9004
  const overlay = effects.fillOverlay;
@@ -8976,9 +9017,9 @@ function buildImageFillOverlayFilterMarkup(effects, width, height) {
8976
9017
  const uriAttr = dataUri ? escapeXmlAttr(dataUri) : "";
8977
9018
  paintMarkup = dataUri ? `<feImage href="${uriAttr}" xlink:href="${uriAttr}" x="0" y="0" width="${w}" height="${h}" result="fillOverlayFlood"/>` : void 0;
8978
9019
  } else if (overlay.resolvedPattern) {
8979
- const tile4 = buildPatternOverlayTile(overlay.resolvedPattern);
8980
- const uriAttr = tile4 ? escapeXmlAttr(tile4.dataUri) : "";
8981
- paintMarkup = tile4 ? `<feImage href="${uriAttr}" xlink:href="${uriAttr}" x="0" y="0" width="${tile4.width}" height="${tile4.height}" result="fillOverlayTile"/><feTile in="fillOverlayTile" result="fillOverlayFlood"/>` : void 0;
9020
+ const tile5 = buildPatternOverlayTile(overlay.resolvedPattern);
9021
+ const uriAttr = tile5 ? escapeXmlAttr(tile5.dataUri) : "";
9022
+ paintMarkup = tile5 ? `<feImage href="${uriAttr}" xlink:href="${uriAttr}" x="0" y="0" width="${tile5.width}" height="${tile5.height}" result="fillOverlayTile"/><feTile in="fillOverlayTile" result="fillOverlayFlood"/>` : void 0;
8982
9023
  }
8983
9024
  if (!paintMarkup) {
8984
9025
  return void 0;
@@ -10669,11 +10710,11 @@ var LINE_PITCH_EM = 1.2;
10669
10710
  var BASELINE_FRACTION = 0.805;
10670
10711
  var FALLBACK_CAP_HEIGHT_EM = 0.72;
10671
10712
  var WHITESPACE_RE = /^\s$/u;
10672
- function alignOffset(align, blockWidth, lineWidth) {
10673
- if (align === "right") {
10713
+ function alignOffset(align2, blockWidth, lineWidth) {
10714
+ if (align2 === "right") {
10674
10715
  return blockWidth - lineWidth;
10675
10716
  }
10676
- if (align === "center" || align === void 0) {
10717
+ if (align2 === "center" || align2 === void 0) {
10677
10718
  return (blockWidth - lineWidth) / 2;
10678
10719
  }
10679
10720
  return 0;
@@ -10705,7 +10746,7 @@ function lineFontSize(segments, fallback) {
10705
10746
  const sizes = segments.map((s) => envelopeFontSizePx(s.font));
10706
10747
  return sizes.length > 0 ? Math.max(...sizes) : fallback;
10707
10748
  }
10708
- function layoutEnvelopeBlock(paragraphs2, align, getGlyphOutline) {
10749
+ function layoutEnvelopeBlock(paragraphs2, align2, getGlyphOutline) {
10709
10750
  const measured = paragraphs2.map(
10710
10751
  (segments) => segments.map((seg) => ({ seg, advances: measureGlyphAdvances(seg.text, seg.font) }))
10711
10752
  );
@@ -10723,7 +10764,7 @@ function layoutEnvelopeBlock(paragraphs2, align, getGlyphOutline) {
10723
10764
  baseline += LINE_PITCH_EM * ((1 - BASELINE_FRACTION) * previousSize + BASELINE_FRACTION * size);
10724
10765
  }
10725
10766
  previousSize = size;
10726
- let x = alignOffset(effectiveAlign(align), blockWidth, widths[lineIdx]);
10767
+ let x = alignOffset(effectiveAlign(align2), blockWidth, widths[lineIdx]);
10727
10768
  const glyphs = [];
10728
10769
  for (const { seg, advances } of line4) {
10729
10770
  const chars = [...seg.text];
@@ -10760,8 +10801,8 @@ function layoutEnvelopeBlock(paragraphs2, align, getGlyphOutline) {
10760
10801
  });
10761
10802
  return { lines, box: hasInk ? box : void 0 };
10762
10803
  }
10763
- function effectiveAlign(align) {
10764
- return align === "justify" || align === "justLow" || align === "dist" || align === "thaiDist" ? "left" : align;
10804
+ function effectiveAlign(align2) {
10805
+ return align2 === "justify" || align2 === "justLow" || align2 === "dist" || align2 === "thaiDist" ? "left" : align2;
10765
10806
  }
10766
10807
 
10767
10808
  // src/pptx/render/text-warp-envelope-map.ts
@@ -10952,12 +10993,12 @@ function placeGlyph(glyph3, warp, maxSegment, shapeHeight) {
10952
10993
  const fit = fitGlyphEnvelopeAffine(warp, box, shapeHeight);
10953
10994
  return { ...base2, transform: fit.transform, slices: fit.slices };
10954
10995
  }
10955
- function buildGlyphEnvelopeBlock(preset2, paragraphs2, width, height, align, adj, adj2, getGlyphOutline) {
10996
+ function buildGlyphEnvelopeBlock(preset2, paragraphs2, width, height, align2, adj, adj2, getGlyphOutline) {
10956
10997
  const empty = paragraphs2.map(() => []);
10957
10998
  if (!hasGlyphEnvelope(preset2) || !(width > 0) || !(height > 0)) {
10958
10999
  return empty;
10959
11000
  }
10960
- const layout = layoutEnvelopeBlock(paragraphs2, align, getGlyphOutline);
11001
+ const layout = layoutEnvelopeBlock(paragraphs2, align2, getGlyphOutline);
10961
11002
  if (!layout.box) {
10962
11003
  return empty;
10963
11004
  }
@@ -10970,13 +11011,13 @@ function buildGlyphEnvelopeBlock(preset2, paragraphs2, width, height, align, adj
10970
11011
  (line4) => line4.map((glyph3) => placeGlyph(glyph3, warp, maxSegment, height))
10971
11012
  );
10972
11013
  }
10973
- function buildGlyphEnvelope(preset2, segments, width, height, align, adj, adj2, getGlyphOutline) {
11014
+ function buildGlyphEnvelope(preset2, segments, width, height, align2, adj, adj2, getGlyphOutline) {
10974
11015
  return buildGlyphEnvelopeBlock(
10975
11016
  preset2,
10976
11017
  [segments],
10977
11018
  width,
10978
11019
  height,
10979
- align,
11020
+ align2,
10980
11021
  adj,
10981
11022
  adj2,
10982
11023
  getGlyphOutline
@@ -15532,11 +15573,11 @@ function checkerboardDecl(direction, revealedFraction) {
15532
15573
  const pct3 = (clamped * 100).toFixed(3);
15533
15574
  const cell = 12.5;
15534
15575
  const half = cell / 2;
15535
- const tile4 = `linear-gradient(45deg, #000 25%, transparent 25%, transparent 75%, #000 75%)`;
15576
+ const tile5 = `linear-gradient(45deg, #000 25%, transparent 25%, transparent 75%, #000 75%)`;
15536
15577
  const wipeDir = direction === "across" ? "to right" : "to bottom";
15537
15578
  const wipe = `linear-gradient(${wipeDir}, #000 ${pct3}%, transparent ${pct3}%)`;
15538
15579
  return [
15539
- `mask-image: ${tile4}, ${tile4}, ${wipe};`,
15580
+ `mask-image: ${tile5}, ${tile5}, ${wipe};`,
15540
15581
  `mask-size: ${cell}% ${cell}%, ${cell}% ${cell}%, 100% 100%;`,
15541
15582
  "mask-repeat: repeat, repeat, no-repeat;",
15542
15583
  `mask-position: 0 0, ${half}% ${half}%, 0 0;`,
@@ -17687,9 +17728,9 @@ function svgDataUri(svg2, filterId) {
17687
17728
  return `url("data:image/svg+xml,${encodeURIComponent(svg2)}#${filterId}")`;
17688
17729
  }
17689
17730
  function pixelateFilterMarkup(level, filterId) {
17690
- const tile4 = round(level, 4);
17731
+ const tile5 = round(level, 4);
17691
17732
  const dot = round(level * DOT_RATIO, 4);
17692
- return `<svg xmlns="http://www.w3.org/2000/svg"><filter id="${filterId}" primitiveUnits="objectBoundingBox" x="-0.5" y="-0.5" width="2" height="2" color-interpolation-filters="sRGB"><feFlood x="0" y="0" width="${dot}" height="${dot}" result="dot"/><feComposite in="dot" width="${tile4}" height="${tile4}" result="tile"/><feTile in="tile" result="grid"/><feComposite in="SourceGraphic" in2="grid" operator="in"/></filter></svg>`;
17733
+ return `<svg xmlns="http://www.w3.org/2000/svg"><filter id="${filterId}" primitiveUnits="objectBoundingBox" x="-0.5" y="-0.5" width="2" height="2" color-interpolation-filters="sRGB"><feFlood x="0" y="0" width="${dot}" height="${dot}" result="dot"/><feComposite in="dot" width="${tile5}" height="${tile5}" result="tile"/><feTile in="tile" result="grid"/><feComposite in="SourceGraphic" in2="grid" operator="in"/></filter></svg>`;
17693
17734
  }
17694
17735
  var PIXELATE_FILTER_VALUES = PIXELATE_LEVELS.map((level, index) => {
17695
17736
  const filterId = `pptx-pixelate-${index}`;
@@ -26168,6 +26209,114 @@ function cellPaddingCss(style) {
26168
26209
  return css;
26169
26210
  }
26170
26211
 
26212
+ // src/pptx/render/table-style-scheme.ts
26213
+ var SCHEME_ALIASES = {
26214
+ tx1: "dk1",
26215
+ bg1: "lt1",
26216
+ tx2: "dk2",
26217
+ bg2: "lt2"
26218
+ };
26219
+ function tableSchemeColor(colorScheme, key) {
26220
+ const scheme = colorScheme;
26221
+ return scheme[key] ?? scheme[SCHEME_ALIASES[key] ?? ""];
26222
+ }
26223
+ var SECTION_FILL_KEYS = [
26224
+ "wholeTblFill",
26225
+ "band1HFill",
26226
+ "band2HFill",
26227
+ "band1VFill",
26228
+ "band2VFill",
26229
+ "firstRowFill",
26230
+ "lastRowFill",
26231
+ "firstColFill",
26232
+ "lastColFill"
26233
+ ];
26234
+ function styleDeclaresFills(entry5) {
26235
+ if (!entry5) {
26236
+ return false;
26237
+ }
26238
+ return entry5.tableBackground?.fill !== void 0 || SECTION_FILL_KEYS.some((key) => entry5[key] !== void 0);
26239
+ }
26240
+
26241
+ // src/pptx/render/table-style-theme-refs.ts
26242
+ var BORDER_KEYS = [
26243
+ "wholeTblBorders",
26244
+ "band1HBorders",
26245
+ "band2HBorders",
26246
+ "band1VBorders",
26247
+ "band2VBorders",
26248
+ "lastColBorders",
26249
+ "firstColBorders",
26250
+ "lastRowBorders",
26251
+ "seCellBorders",
26252
+ "swCellBorders",
26253
+ "firstRowBorders",
26254
+ "neCellBorders",
26255
+ "nwCellBorders"
26256
+ ];
26257
+ function isLineRefOnly(border) {
26258
+ return Boolean(
26259
+ border?.lnRef && border.width === void 0 && border.dash === void 0 && border.fill === void 0 && border.color === void 0 && border.noFill === void 0
26260
+ );
26261
+ }
26262
+ function colorMapOf(colorScheme) {
26263
+ const map = {};
26264
+ for (const [key, value] of Object.entries(colorScheme ?? {})) {
26265
+ if (typeof value === "string" && value) {
26266
+ map[key] = value;
26267
+ }
26268
+ }
26269
+ for (const [alias, key] of Object.entries(SCHEME_ALIASES)) {
26270
+ const value = map[key];
26271
+ if (!map[alias] && value) {
26272
+ map[alias] = value;
26273
+ }
26274
+ }
26275
+ return map;
26276
+ }
26277
+ function resolveBorders(borders, formatScheme, colorMap) {
26278
+ const next = {};
26279
+ for (const [side, border] of Object.entries(borders)) {
26280
+ if (!isLineRefOnly(border)) {
26281
+ next[side] = border;
26282
+ continue;
26283
+ }
26284
+ const resolved = border.lnRef ? pptx.resolveTableStyleLineRef(border.lnRef, formatScheme, colorMap) : void 0;
26285
+ if (resolved) {
26286
+ next[side] = resolved;
26287
+ }
26288
+ }
26289
+ return next;
26290
+ }
26291
+ function hasThemeRefs(entry5) {
26292
+ const background = entry5.tableBackground;
26293
+ if (background?.fillRef && !background.fill) {
26294
+ return true;
26295
+ }
26296
+ return BORDER_KEYS.some((key) => Object.values(entry5[key] ?? {}).some(isLineRefOnly));
26297
+ }
26298
+ function resolveTableStyleThemeRefs(entry5, formatScheme, colorScheme) {
26299
+ if (!entry5 || !hasThemeRefs(entry5)) {
26300
+ return entry5;
26301
+ }
26302
+ const colorMap = colorMapOf(colorScheme);
26303
+ const next = { ...entry5 };
26304
+ const background = entry5.tableBackground;
26305
+ if (background?.fillRef && !background.fill) {
26306
+ const fill = pptx.resolveTableBackgroundFillRef(background.fillRef, formatScheme, colorMap);
26307
+ if (fill) {
26308
+ next.tableBackground = { ...background, fill };
26309
+ }
26310
+ }
26311
+ for (const key of BORDER_KEYS) {
26312
+ const borders = entry5[key];
26313
+ if (borders) {
26314
+ next[key] = resolveBorders(borders, formatScheme, colorMap);
26315
+ }
26316
+ }
26317
+ return next;
26318
+ }
26319
+
26171
26320
  // src/pptx/render/table-style-borders.ts
26172
26321
  function edgesFromSection(borders, regionTop, regionBottom, regionLeft, regionRight) {
26173
26322
  if (!borders) {
@@ -26181,7 +26330,7 @@ function edgesFromSection(borders, regionTop, regionBottom, regionLeft, regionRi
26181
26330
  };
26182
26331
  }
26183
26332
  function borderToCss(border, resolve) {
26184
- if (!border) {
26333
+ if (!border || isLineRefOnly(border)) {
26185
26334
  return void 0;
26186
26335
  }
26187
26336
  if (border.noFill) {
@@ -26324,12 +26473,12 @@ function resolveStyleDiagonalBorders(entry5, tableData, pos, resolve) {
26324
26473
  }
26325
26474
  const info = {};
26326
26475
  let applied = false;
26327
- if (tl2br && !tl2br.noFill) {
26476
+ if (tl2br && !tl2br.noFill && !isLineRefOnly(tl2br)) {
26328
26477
  info.diagDownColor = tl2br.color ?? resolve(tl2br.fill) ?? "#000000";
26329
26478
  info.diagDownWidth = tl2br.width ?? 1;
26330
26479
  applied = true;
26331
26480
  }
26332
- if (tr2bl && !tr2bl.noFill) {
26481
+ if (tr2bl && !tr2bl.noFill && !isLineRefOnly(tr2bl)) {
26333
26482
  info.diagUpColor = tr2bl.color ?? resolve(tr2bl.fill) ?? "#000000";
26334
26483
  info.diagUpWidth = tr2bl.width ?? 1;
26335
26484
  applied = true;
@@ -26338,7 +26487,7 @@ function resolveStyleDiagonalBorders(entry5, tableData, pos, resolve) {
26338
26487
  }
26339
26488
 
26340
26489
  // src/pptx/render/table-style-builtins-data.ts
26341
- var BUILTIN_TABLE_STYLE_JSON = '{"families":[{"baseAccent":1,"template":{"styleId":"","styleName":"","accentKey":"accent1","wholeTblFill":{"schemeColor":"accent1","tint":20000},"band1HFill":{"schemeColor":"accent1","tint":40000},"band1VFill":{"schemeColor":"accent1","tint":40000},"lastColFill":{"schemeColor":"accent1"},"firstColFill":{"schemeColor":"accent1"},"lastRowFill":{"schemeColor":"accent1"},"firstRowFill":{"schemeColor":"accent1"},"wholeTblText":{"fontRefIdx":"minor","fontSchemeColor":"dk1"},"lastColText":{"bold":true,"fontRefIdx":"minor","fontSchemeColor":"lt1"},"firstColText":{"bold":true,"fontRefIdx":"minor","fontSchemeColor":"lt1"},"lastRowText":{"bold":true,"fontRefIdx":"minor","fontSchemeColor":"lt1"},"firstRowText":{"bold":true,"fontRefIdx":"minor","fontSchemeColor":"lt1"},"wholeTblBorders":{"left":{"width":1,"fill":{"schemeColor":"lt1"}},"right":{"width":1,"fill":{"schemeColor":"lt1"}},"top":{"width":1,"fill":{"schemeColor":"lt1"}},"bottom":{"width":1,"fill":{"schemeColor":"lt1"}},"insideH":{"width":1,"fill":{"schemeColor":"lt1"}},"insideV":{"width":1,"fill":{"schemeColor":"lt1"}}},"lastRowBorders":{"top":{"width":4,"fill":{"schemeColor":"lt1"}}},"firstRowBorders":{"bottom":{"width":4,"fill":{"schemeColor":"lt1"}}}},"variants":[{"id":"{5C22544A-7EE6-4342-B048-85BDC9FD1C3A}","name":"Medium Style 2 - Accent 1","a":1},{"id":"{21E4AEA4-8DFA-4A89-87EB-49C32662AFE0}","name":"Medium Style 2 - Accent 2","a":2},{"id":"{F5AB1C69-6EDB-4FF4-983F-18BD219EF322}","name":"Medium Style 2 - Accent 3","a":3},{"id":"{00A15C55-8517-42AA-B614-E9B94910E393}","name":"Medium Style 2 - Accent 4","a":4},{"id":"{7DF18680-E054-41AD-8BC1-D1AEF772440D}","name":"Medium Style 2 - Accent 5","a":5},{"id":"{93296810-A885-4BE3-A3E7-6D5BEEA58F35}","name":"Medium Style 2 - Accent 6","a":6}]},{"baseAccent":1,"template":{"styleId":"","styleName":"","accentKey":"accent1","wholeTblFill":{"schemeColor":"","noFill":true},"band1HFill":{"schemeColor":"accent1","alpha":40000},"band1VFill":{"schemeColor":"accent1","alpha":40000},"lastRowFill":{"schemeColor":"","noFill":true},"firstRowFill":{"schemeColor":"accent1"},"wholeTblText":{"fontRefIdx":"minor","fontSchemeColor":"dk1"},"lastColText":{"bold":true},"firstColText":{"bold":true},"lastRowText":{"bold":true},"firstRowText":{"bold":true,"fontRefIdx":"minor","fontSchemeColor":"lt1"},"lastColBorders":{"insideV":{"noFill":true}},"firstColBorders":{"insideV":{"noFill":true}},"lastRowBorders":{"insideH":{"noFill":true},"insideV":{"noFill":true}},"firstRowBorders":{"insideH":{"noFill":true},"insideV":{"noFill":true}}},"variants":[{"id":"{3C2FFA5D-87B4-456A-9821-1D502468CF0F}","name":"Themed Style 1 - Accent 1","a":1},{"id":"{284E427A-3D55-4303-BF80-6455036E1DE7}","name":"Themed Style 1 - Accent 2","a":2},{"id":"{69C7853C-536D-4A76-A0AE-DD22124D55A5}","name":"Themed Style 1 - Accent 3","a":3},{"id":"{775DCB02-9BB8-47FD-8907-85C794F793BA}","name":"Themed Style 1 - Accent 4","a":4},{"id":"{35758FB7-9AC5-4552-8A53-C91805E547FA}","name":"Themed Style 1 - Accent 5","a":5},{"id":"{08FB837D-C827-4EFA-A057-4D05807E0F7C}","name":"Themed Style 1 - Accent 6","a":6}]},{"baseAccent":1,"template":{"styleId":"","styleName":"","wholeTblFill":{"schemeColor":"","noFill":true},"band1HFill":{"schemeColor":"lt1","alpha":20000},"band1VFill":{"schemeColor":"lt1","alpha":20000},"lastRowFill":{"schemeColor":"","noFill":true},"firstRowFill":{"schemeColor":"","noFill":true},"wholeTblText":{"fontRefIdx":"minor","fontSchemeColor":"lt1"},"lastColText":{"bold":true},"firstColText":{"bold":true},"lastRowText":{"bold":true},"firstRowText":{"bold":true},"wholeTblBorders":{"insideH":{"noFill":true},"insideV":{"noFill":true}},"seCellBorders":{"left":{"noFill":true},"top":{"noFill":true}},"swCellBorders":{"right":{"noFill":true},"top":{"noFill":true}},"neCellBorders":{"bottom":{"noFill":true}}},"variants":[{"id":"{D113A9D2-9D6B-4929-AA2D-F23B5EE8CBE7}","name":"Themed Style 2 - Accent 1","a":1},{"id":"{18603FDC-E32A-4AB5-989C-0864C3EAD2B8}","name":"Themed Style 2 - Accent 2","a":2},{"id":"{306799F8-075E-4A3A-A7F6-7FBC6576F1A4}","name":"Themed Style 2 - Accent 3","a":3},{"id":"{E269D01E-BC32-4049-B463-5C60D7B0CCD2}","name":"Themed Style 2 - Accent 4","a":4},{"id":"{327F97BB-C833-4FB7-BDE5-3F7075034690}","name":"Themed Style 2 - Accent 5","a":5},{"id":"{638B1855-1B75-4FBE-930C-398BA8C253C6}","name":"Themed Style 2 - Accent 6","a":6}]},{"baseAccent":1,"template":{"styleId":"","styleName":"","accentKey":"accent1","wholeTblFill":{"schemeColor":"","noFill":true},"band1HFill":{"schemeColor":"accent1","alpha":20000},"band1VFill":{"schemeColor":"accent1","alpha":20000},"lastRowFill":{"schemeColor":"","noFill":true},"firstRowFill":{"schemeColor":"","noFill":true},"wholeTblText":{"fontRefIdx":"minor","fontSchemeColor":"tx1"},"lastColText":{"bold":true},"firstColText":{"bold":true},"lastRowText":{"bold":true},"firstRowText":{"bold":true},"wholeTblBorders":{"left":{"noFill":true},"right":{"noFill":true},"top":{"width":1,"fill":{"schemeColor":"accent1"}},"bottom":{"width":1,"fill":{"schemeColor":"accent1"}},"insideH":{"noFill":true},"insideV":{"noFill":true}},"lastRowBorders":{"top":{"width":1,"fill":{"schemeColor":"accent1"}}},"firstRowBorders":{"bottom":{"width":1,"fill":{"schemeColor":"accent1"}}}},"variants":[{"id":"{3B4B98B0-60AC-42C2-AFA5-B58CD77FA1E5}","name":"Light Style 1 - Accent 1","a":1},{"id":"{0E3FDE45-AF77-4B5C-9715-49D594BDF05E}","name":"Light Style 1 - Accent 2","a":2},{"id":"{C083E6E3-FA7D-4D7B-A595-EF9225AFEA82}","name":"Light Style 1 - Accent 3","a":3},{"id":"{D27102A9-8310-4765-A935-A1911B00CA55}","name":"Light Style 1 - Accent 4","a":4},{"id":"{5FD0F851-EC5A-4D38-B0AD-8093EC10F338}","name":"Light Style 1 - Accent 5","a":5},{"id":"{68D230F3-CF80-4859-8CE7-A43EE81993B5}","name":"Light Style 1 - Accent 6","a":6}]},{"baseAccent":1,"template":{"styleId":"","styleName":"","wholeTblFill":{"schemeColor":"","noFill":true},"wholeTblText":{"fontRefIdx":"minor","fontSchemeColor":"tx1"},"lastColText":{"bold":true},"firstColText":{"bold":true},"lastRowText":{"bold":true},"firstRowText":{"bold":true,"fontRefIdx":"minor","fontSchemeColor":"bg1"},"wholeTblBorders":{"insideH":{"noFill":true},"insideV":{"noFill":true}},"lastRowBorders":{"top":{"width":5,"fill":{"schemeColor":"accent1"}}}},"variants":[{"id":"{69012ECD-51FC-41F1-AA8D-1B2483CD663E}","name":"Light Style 2 - Accent 1","a":1},{"id":"{72833802-FEF1-4C79-8D5D-14CF1EAF98D9}","name":"Light Style 2 - Accent 2","a":2},{"id":"{F2DE63D5-997A-4646-A377-4702673A728D}","name":"Light Style 2 - Accent 3","a":3},{"id":"{17292A2E-F333-43FB-9621-5CBBE7FDCDCB}","name":"Light Style 2 - Accent 4","a":4},{"id":"{5A111915-BE36-4E01-A7E5-04B1672EAD32}","name":"Light Style 2 - Accent 5","a":5},{"id":"{912C8C85-51F0-491E-9774-3900AFEF0FD7}","name":"Light Style 2 - Accent 6","a":6}]},{"baseAccent":1,"template":{"styleId":"","styleName":"","accentKey":"accent1","wholeTblFill":{"schemeColor":"","noFill":true},"band1HFill":{"schemeColor":"accent1","alpha":20000},"band1VFill":{"schemeColor":"accent1","alpha":20000},"lastRowFill":{"schemeColor":"","noFill":true},"firstRowFill":{"schemeColor":"","noFill":true},"wholeTblText":{"fontRefIdx":"minor","fontSchemeColor":"tx1"},"lastColText":{"bold":true},"firstColText":{"bold":true},"lastRowText":{"bold":true},"firstRowText":{"bold":true},"wholeTblBorders":{"left":{"width":1,"fill":{"schemeColor":"accent1"}},"right":{"width":1,"fill":{"schemeColor":"accent1"}},"top":{"width":1,"fill":{"schemeColor":"accent1"}},"bottom":{"width":1,"fill":{"schemeColor":"accent1"}},"insideH":{"width":1,"fill":{"schemeColor":"accent1"}},"insideV":{"width":1,"fill":{"schemeColor":"accent1"}}},"lastRowBorders":{"top":{"width":5,"fill":{"schemeColor":"accent1"}}},"firstRowBorders":{"bottom":{"width":3,"fill":{"schemeColor":"accent1"}}}},"variants":[{"id":"{BC89EF96-8CEA-46FF-86C4-4CE0E7609802}","name":"Light Style 3 - Accent 1","a":1},{"id":"{5DA37D80-6434-44D0-A028-1B22A696006F}","name":"Light Style 3 - Accent 2","a":2},{"id":"{8799B23B-EC83-4686-B30A-512413B5E67A}","name":"Light Style 3 - Accent 3","a":3},{"id":"{ED083AE6-46FA-4A59-8FB0-9F97EB10719F}","name":"Light Style 3 - Accent 4","a":4},{"id":"{BDBED569-4797-4DF1-A0F4-6AAB3CD982D8}","name":"Light Style 3 - Accent 5","a":5},{"id":"{E8B1032C-EA38-4F05-BA0D-38AFFFC7BED3}","name":"Light Style 3 - Accent 6","a":6}]},{"baseAccent":1,"template":{"styleId":"","styleName":"","accentKey":"accent1","wholeTblFill":{"schemeColor":"lt1"},"band1HFill":{"schemeColor":"accent1","tint":20000},"band1VFill":{"schemeColor":"accent1","tint":20000},"lastRowFill":{"schemeColor":"lt1"},"firstRowFill":{"schemeColor":"accent1"},"wholeTblText":{"fontRefIdx":"minor","fontSchemeColor":"dk1"},"lastColText":{"bold":true},"firstColText":{"bold":true},"lastRowText":{"bold":true},"firstRowText":{"bold":true,"fontRefIdx":"minor","fontSchemeColor":"lt1"},"wholeTblBorders":{"left":{"width":1,"fill":{"schemeColor":"accent1"}},"right":{"width":1,"fill":{"schemeColor":"accent1"}},"top":{"width":1,"fill":{"schemeColor":"accent1"}},"bottom":{"width":1,"fill":{"schemeColor":"accent1"}},"insideH":{"width":1,"fill":{"schemeColor":"accent1"}},"insideV":{"noFill":true}},"lastRowBorders":{"top":{"width":5,"fill":{"schemeColor":"accent1"}}}},"variants":[{"id":"{B301B821-A1FF-4177-AEE7-76D212191A09}","name":"Medium Style 1 - Accent 1","a":1},{"id":"{9DCAF9ED-07DC-4A11-8D7F-57B35C25682E}","name":"Medium Style 1 - Accent 2","a":2},{"id":"{1FECB4D8-DB02-4DC6-A0A2-4F2EBAE1DC90}","name":"Medium Style 1 - Accent 3","a":3},{"id":"{1E171933-4619-4E11-9A3F-F7608DF75F80}","name":"Medium Style 1 - Accent 4","a":4},{"id":"{FABFCF23-3B69-468F-B69F-88F6DE6A72F2}","name":"Medium Style 1 - Accent 5","a":5},{"id":"{10A1B5D5-9B99-4C35-A422-299274C87663}","name":"Medium Style 1 - Accent 6","a":6}]},{"baseAccent":1,"template":{"styleId":"","styleName":"","accentKey":"accent1","wholeTblFill":{"schemeColor":"lt1"},"band1HFill":{"schemeColor":"dk1","tint":20000},"band1VFill":{"schemeColor":"dk1","tint":20000},"lastColFill":{"schemeColor":"accent1"},"firstColFill":{"schemeColor":"accent1"},"lastRowFill":{"schemeColor":"lt1"},"firstRowFill":{"schemeColor":"accent1"},"wholeTblText":{"fontRefIdx":"minor","fontSchemeColor":"dk1"},"lastColText":{"bold":true,"fontRefIdx":"minor","fontSchemeColor":"lt1"},"firstColText":{"bold":true,"fontRefIdx":"minor","fontSchemeColor":"lt1"},"lastRowText":{"bold":true},"seCellText":{"bold":true,"fontRefIdx":"minor","fontSchemeColor":"dk1"},"swCellText":{"bold":true,"fontRefIdx":"minor","fontSchemeColor":"dk1"},"firstRowText":{"bold":true,"fontRefIdx":"minor","fontSchemeColor":"lt1"},"wholeTblBorders":{"left":{"noFill":true},"right":{"noFill":true},"top":{"width":3,"fill":{"schemeColor":"dk1"}},"bottom":{"width":3,"fill":{"schemeColor":"dk1"}},"insideH":{"noFill":true},"insideV":{"noFill":true}},"lastRowBorders":{"top":{"width":5,"fill":{"schemeColor":"dk1"}}},"firstRowBorders":{"bottom":{"width":3,"fill":{"schemeColor":"dk1"}}}},"variants":[{"id":"{6E25E649-3F16-4E02-A733-19D2CDBF48F0}","name":"Medium Style 3 - Accent 1","a":1},{"id":"{85BE263C-DBD7-4A20-BB59-AAB30ACAA65A}","name":"Medium Style 3 - Accent 2","a":2},{"id":"{EB344D84-9AFB-497E-A393-DC336BA19D2E}","name":"Medium Style 3 - Accent 3","a":3},{"id":"{EB9631B5-78F2-41C9-869B-9F39066F8104}","name":"Medium Style 3 - Accent 4","a":4},{"id":"{74C1A8A3-306A-4EB7-A6B1-4F7E0EB9C5D6}","name":"Medium Style 3 - Accent 5","a":5},{"id":"{2A488322-F2BA-4B5B-9748-0D474271808F}","name":"Medium Style 3 - Accent 6","a":6}]},{"baseAccent":1,"template":{"styleId":"","styleName":"","accentKey":"accent1","wholeTblFill":{"schemeColor":"accent1","tint":20000},"band1HFill":{"schemeColor":"accent1","tint":40000},"band1VFill":{"schemeColor":"accent1","tint":40000},"lastRowFill":{"schemeColor":"accent1","tint":20000},"firstRowFill":{"schemeColor":"accent1","tint":20000},"wholeTblText":{"fontRefIdx":"minor","fontSchemeColor":"dk1"},"lastColText":{"bold":true},"firstColText":{"bold":true},"lastRowText":{"bold":true},"firstRowText":{"bold":true},"wholeTblBorders":{"left":{"width":1,"fill":{"schemeColor":"accent1"}},"right":{"width":1,"fill":{"schemeColor":"accent1"}},"top":{"width":1,"fill":{"schemeColor":"accent1"}},"bottom":{"width":1,"fill":{"schemeColor":"accent1"}},"insideH":{"width":1,"fill":{"schemeColor":"accent1"}},"insideV":{"width":1,"fill":{"schemeColor":"accent1"}}},"lastRowBorders":{"top":{"width":3,"fill":{"schemeColor":"accent1"}}}},"variants":[{"id":"{69CF1AB2-1976-4502-BF36-3FF5EA218861}","name":"Medium Style 4 - Accent 1","a":1},{"id":"{8A107856-5554-42FB-B03E-39F5DBC370BA}","name":"Medium Style 4 - Accent 2","a":2},{"id":"{0505E3EF-67EA-436B-97B2-0124C06EBD24}","name":"Medium Style 4 - Accent 3","a":3},{"id":"{C4B1156A-380E-4F78-BDF5-A606A8083BF9}","name":"Medium Style 4 - Accent 4","a":4},{"id":"{22838BEF-8BB2-4498-84A7-C5851F593DF1}","name":"Medium Style 4 - Accent 5","a":5},{"id":"{16D9F66E-5EB9-4882-86FB-DCBF35E3C3E4}","name":"Medium Style 4 - Accent 6","a":6}]},{"baseAccent":1,"template":{"styleId":"","styleName":"","accentKey":"accent1","wholeTblFill":{"schemeColor":"accent1"},"band1HFill":{"schemeColor":"accent1","shade":60000},"band1VFill":{"schemeColor":"accent1","shade":60000},"lastColFill":{"schemeColor":"accent1","shade":60000},"firstColFill":{"schemeColor":"accent1","shade":60000},"lastRowFill":{"schemeColor":"accent1","shade":40000},"firstRowFill":{"schemeColor":"dk1"},"wholeTblText":{"fontRefIdx":"minor","fontSchemeColor":"lt1"},"lastColText":{"bold":true},"firstColText":{"bold":true},"lastRowText":{"bold":true},"firstRowText":{"bold":true},"wholeTblBorders":{"left":{"noFill":true},"right":{"noFill":true},"top":{"noFill":true},"bottom":{"noFill":true},"insideH":{"noFill":true},"insideV":{"noFill":true}},"lastColBorders":{"left":{"width":3,"fill":{"schemeColor":"lt1"}}},"firstColBorders":{"right":{"width":3,"fill":{"schemeColor":"lt1"}}},"lastRowBorders":{"top":{"width":3,"fill":{"schemeColor":"lt1"}}},"seCellBorders":{"left":{"noFill":true}},"swCellBorders":{"right":{"noFill":true}},"firstRowBorders":{"bottom":{"width":3,"fill":{"schemeColor":"lt1"}}},"neCellBorders":{"left":{"noFill":true}},"nwCellBorders":{"right":{"noFill":true}}},"variants":[{"id":"{125E5076-3810-47DD-B79F-674D7AD40C01}","name":"Dark Style 1 - Accent 1","a":1},{"id":"{37CE84F3-28C3-443E-9E96-99CF82512B78}","name":"Dark Style 1 - Accent 2","a":2},{"id":"{D03447BB-5D67-496B-8E87-E561075AD55C}","name":"Dark Style 1 - Accent 3","a":3},{"id":"{E929F9F4-4A8F-4326-A1B4-22849713DDAB}","name":"Dark Style 1 - Accent 4","a":4},{"id":"{8FD4443E-F989-4FC4-A0C8-D5A2AF1F390B}","name":"Dark Style 1 - Accent 5","a":5},{"id":"{AF606853-7671-496A-8E4F-DF71F8EC918B}","name":"Dark Style 1 - Accent 6","a":6}]},{"baseAccent":1,"baseAccent2":2,"template":{"styleId":"","styleName":"","accentKey":"accent1","wholeTblFill":{"schemeColor":"accent1","tint":20000},"band1HFill":{"schemeColor":"accent1","tint":40000},"band1VFill":{"schemeColor":"accent1","tint":40000},"lastRowFill":{"schemeColor":"accent1","tint":20000},"firstRowFill":{"schemeColor":"accent2"},"wholeTblText":{"fontRefIdx":"minor","fontSchemeColor":"dk1"},"lastColText":{"bold":true},"firstColText":{"bold":true},"lastRowText":{"bold":true},"firstRowText":{"bold":true,"fontRefIdx":"minor","fontSchemeColor":"lt1"},"wholeTblBorders":{"left":{"noFill":true},"right":{"noFill":true},"top":{"noFill":true},"bottom":{"noFill":true},"insideH":{"noFill":true},"insideV":{"noFill":true}},"lastRowBorders":{"top":{"width":5,"fill":{"schemeColor":"dk1"}}}},"variants":[{"id":"{0660B408-B3CF-4A94-85FC-2B1E0A45F4A2}","name":"Dark Style 2 - Accent 1/Accent 2","a":1,"b":2},{"id":"{91EBBBCC-DAD2-459C-BE2E-F6DE35CF9A28}","name":"Dark Style 2 - Accent 3/Accent 4","a":3,"b":4},{"id":"{46F890A9-2807-4EBB-B81D-B2AA78EC7F39}","name":"Dark Style 2 - Accent 5/Accent 6","a":5,"b":6}]}],"standalone":[{"styleId":"{2D5ABB26-0587-4C30-8999-92F81FD0307C}","styleName":"No Style, No Grid","wholeTblFill":{"schemeColor":"","noFill":true},"wholeTblText":{"fontRefIdx":"minor","fontSchemeColor":"tx1"},"wholeTblBorders":{"left":{"noFill":true},"right":{"noFill":true},"top":{"noFill":true},"bottom":{"noFill":true},"insideH":{"noFill":true},"insideV":{"noFill":true}}},{"styleId":"{5940675A-B579-460E-94D1-54222C63F5DA}","styleName":"No Style, Table Grid","wholeTblFill":{"schemeColor":"","noFill":true},"wholeTblText":{"fontRefIdx":"minor","fontSchemeColor":"tx1"},"wholeTblBorders":{"left":{"width":1,"fill":{"schemeColor":"tx1"}},"right":{"width":1,"fill":{"schemeColor":"tx1"}},"top":{"width":1,"fill":{"schemeColor":"tx1"}},"bottom":{"width":1,"fill":{"schemeColor":"tx1"}},"insideH":{"width":1,"fill":{"schemeColor":"tx1"}},"insideV":{"width":1,"fill":{"schemeColor":"tx1"}}}},{"styleId":"{9D7B26C5-4107-4FEC-AEDC-1716B250A1EF}","styleName":"Light Style 1","wholeTblFill":{"schemeColor":"","noFill":true},"band1HFill":{"schemeColor":"tx1","alpha":20000},"band1VFill":{"schemeColor":"tx1","alpha":20000},"lastRowFill":{"schemeColor":"","noFill":true},"firstRowFill":{"schemeColor":"","noFill":true},"wholeTblText":{"fontRefIdx":"minor","fontSchemeColor":"tx1"},"lastColText":{"bold":true},"firstColText":{"bold":true},"lastRowText":{"bold":true},"firstRowText":{"bold":true},"wholeTblBorders":{"left":{"noFill":true},"right":{"noFill":true},"top":{"width":1,"fill":{"schemeColor":"tx1"}},"bottom":{"width":1,"fill":{"schemeColor":"tx1"}},"insideH":{"noFill":true},"insideV":{"noFill":true}},"lastRowBorders":{"top":{"width":1,"fill":{"schemeColor":"tx1"}}},"firstRowBorders":{"bottom":{"width":1,"fill":{"schemeColor":"tx1"}}}},{"styleId":"{7E9639D4-E3E2-4D34-9284-5A2195B3D0D7}","styleName":"Light Style 2","wholeTblFill":{"schemeColor":"","noFill":true},"wholeTblText":{"fontRefIdx":"minor","fontSchemeColor":"tx1"},"lastColText":{"bold":true},"firstColText":{"bold":true},"lastRowText":{"bold":true},"firstRowText":{"bold":true,"fontRefIdx":"minor","fontSchemeColor":"bg1"},"wholeTblBorders":{"insideH":{"noFill":true},"insideV":{"noFill":true}},"lastRowBorders":{"top":{"width":5,"fill":{"schemeColor":"tx1"}}}},{"styleId":"{616DA210-FB5B-4158-B5E0-FEB733F419BA}","styleName":"Light Style 3","wholeTblFill":{"schemeColor":"","noFill":true},"band1HFill":{"schemeColor":"tx1","alpha":20000},"band1VFill":{"schemeColor":"tx1","alpha":20000},"lastRowFill":{"schemeColor":"","noFill":true},"firstRowFill":{"schemeColor":"","noFill":true},"wholeTblText":{"fontRefIdx":"minor","fontSchemeColor":"tx1"},"lastColText":{"bold":true},"firstColText":{"bold":true},"lastRowText":{"bold":true},"firstRowText":{"bold":true},"wholeTblBorders":{"left":{"width":1,"fill":{"schemeColor":"tx1"}},"right":{"width":1,"fill":{"schemeColor":"tx1"}},"top":{"width":1,"fill":{"schemeColor":"tx1"}},"bottom":{"width":1,"fill":{"schemeColor":"tx1"}},"insideH":{"width":1,"fill":{"schemeColor":"tx1"}},"insideV":{"width":1,"fill":{"schemeColor":"tx1"}}},"lastRowBorders":{"top":{"width":5,"fill":{"schemeColor":"tx1"}}},"firstRowBorders":{"bottom":{"width":3,"fill":{"schemeColor":"tx1"}}}},{"styleId":"{793D81CF-94F2-401A-BA57-92F5A7B2D0C5}","styleName":"Medium Style 1","wholeTblFill":{"schemeColor":"lt1"},"band1HFill":{"schemeColor":"dk1","tint":20000},"band1VFill":{"schemeColor":"dk1","tint":20000},"lastRowFill":{"schemeColor":"lt1"},"firstRowFill":{"schemeColor":"dk1"},"wholeTblText":{"fontRefIdx":"minor","fontSchemeColor":"dk1"},"lastColText":{"bold":true},"firstColText":{"bold":true},"lastRowText":{"bold":true},"firstRowText":{"bold":true,"fontRefIdx":"minor","fontSchemeColor":"lt1"},"wholeTblBorders":{"left":{"width":1,"fill":{"schemeColor":"dk1"}},"right":{"width":1,"fill":{"schemeColor":"dk1"}},"top":{"width":1,"fill":{"schemeColor":"dk1"}},"bottom":{"width":1,"fill":{"schemeColor":"dk1"}},"insideH":{"width":1,"fill":{"schemeColor":"dk1"}},"insideV":{"noFill":true}},"lastRowBorders":{"top":{"width":5,"fill":{"schemeColor":"dk1"}}}},{"styleId":"{073A0DAA-6AF3-43AB-8588-CEC1D06C72B9}","styleName":"Medium Style 2","wholeTblFill":{"schemeColor":"dk1","tint":20000},"band1HFill":{"schemeColor":"dk1","tint":40000},"band1VFill":{"schemeColor":"dk1","tint":40000},"lastColFill":{"schemeColor":"dk1"},"firstColFill":{"schemeColor":"dk1"},"lastRowFill":{"schemeColor":"dk1"},"firstRowFill":{"schemeColor":"dk1"},"wholeTblText":{"fontRefIdx":"minor","fontSchemeColor":"dk1"},"lastColText":{"bold":true,"fontRefIdx":"minor","fontSchemeColor":"lt1"},"firstColText":{"bold":true,"fontRefIdx":"minor","fontSchemeColor":"lt1"},"lastRowText":{"bold":true,"fontRefIdx":"minor","fontSchemeColor":"lt1"},"firstRowText":{"bold":true,"fontRefIdx":"minor","fontSchemeColor":"lt1"},"wholeTblBorders":{"left":{"width":1,"fill":{"schemeColor":"lt1"}},"right":{"width":1,"fill":{"schemeColor":"lt1"}},"top":{"width":1,"fill":{"schemeColor":"lt1"}},"bottom":{"width":1,"fill":{"schemeColor":"lt1"}},"insideH":{"width":1,"fill":{"schemeColor":"lt1"}},"insideV":{"width":1,"fill":{"schemeColor":"lt1"}}},"lastRowBorders":{"top":{"width":4,"fill":{"schemeColor":"lt1"}}},"firstRowBorders":{"bottom":{"width":4,"fill":{"schemeColor":"lt1"}}}},{"styleId":"{8EC20E35-A176-4012-BC5E-935CFFF8708E}","styleName":"Medium Style 3","wholeTblFill":{"schemeColor":"lt1"},"band1HFill":{"schemeColor":"dk1","tint":20000},"band1VFill":{"schemeColor":"dk1","tint":20000},"lastColFill":{"schemeColor":"dk1"},"firstColFill":{"schemeColor":"dk1"},"lastRowFill":{"schemeColor":"lt1"},"firstRowFill":{"schemeColor":"dk1"},"wholeTblText":{"fontRefIdx":"minor","fontSchemeColor":"dk1"},"lastColText":{"bold":true,"fontRefIdx":"minor","fontSchemeColor":"lt1"},"firstColText":{"bold":true,"fontRefIdx":"minor","fontSchemeColor":"lt1"},"lastRowText":{"bold":true},"seCellText":{"bold":true,"fontRefIdx":"minor","fontSchemeColor":"dk1"},"swCellText":{"bold":true,"fontRefIdx":"minor","fontSchemeColor":"dk1"},"firstRowText":{"bold":true,"fontRefIdx":"minor","fontSchemeColor":"lt1"},"wholeTblBorders":{"left":{"noFill":true},"right":{"noFill":true},"top":{"width":3,"fill":{"schemeColor":"dk1"}},"bottom":{"width":3,"fill":{"schemeColor":"dk1"}},"insideH":{"noFill":true},"insideV":{"noFill":true}},"lastRowBorders":{"top":{"width":5,"fill":{"schemeColor":"dk1"}}},"firstRowBorders":{"bottom":{"width":3,"fill":{"schemeColor":"dk1"}}}},{"styleId":"{D7AC3CCA-C797-4891-BE02-D94E43425B78}","styleName":"Medium Style 4","wholeTblFill":{"schemeColor":"dk1","tint":20000},"band1HFill":{"schemeColor":"dk1","tint":40000},"band1VFill":{"schemeColor":"dk1","tint":40000},"lastRowFill":{"schemeColor":"dk1","tint":20000},"firstRowFill":{"schemeColor":"dk1","tint":20000},"wholeTblText":{"fontRefIdx":"minor","fontSchemeColor":"dk1"},"lastColText":{"bold":true},"firstColText":{"bold":true},"lastRowText":{"bold":true},"firstRowText":{"bold":true},"wholeTblBorders":{"left":{"width":1,"fill":{"schemeColor":"dk1"}},"right":{"width":1,"fill":{"schemeColor":"dk1"}},"top":{"width":1,"fill":{"schemeColor":"dk1"}},"bottom":{"width":1,"fill":{"schemeColor":"dk1"}},"insideH":{"width":1,"fill":{"schemeColor":"dk1"}},"insideV":{"width":1,"fill":{"schemeColor":"dk1"}}},"lastRowBorders":{"top":{"width":3,"fill":{"schemeColor":"dk1"}}}},{"styleId":"{E8034E78-7F5D-4C2E-B375-FC64B27BC917}","styleName":"Dark Style 1","wholeTblFill":{"schemeColor":"dk1","tint":20000},"band1HFill":{"schemeColor":"dk1","tint":40000},"band1VFill":{"schemeColor":"dk1","tint":40000},"lastColFill":{"schemeColor":"dk1","tint":60000},"firstColFill":{"schemeColor":"dk1","tint":60000},"lastRowFill":{"schemeColor":"dk1","tint":60000},"firstRowFill":{"schemeColor":"dk1"},"wholeTblText":{"fontRefIdx":"minor","fontSchemeColor":"lt1"},"lastColText":{"bold":true},"firstColText":{"bold":true},"lastRowText":{"bold":true},"firstRowText":{"bold":true},"wholeTblBorders":{"left":{"noFill":true},"right":{"noFill":true},"top":{"noFill":true},"bottom":{"noFill":true},"insideH":{"noFill":true},"insideV":{"noFill":true}},"lastColBorders":{"left":{"width":3,"fill":{"schemeColor":"lt1"}}},"firstColBorders":{"right":{"width":3,"fill":{"schemeColor":"lt1"}}},"lastRowBorders":{"top":{"width":3,"fill":{"schemeColor":"lt1"}}},"seCellBorders":{"left":{"noFill":true}},"swCellBorders":{"right":{"noFill":true}},"firstRowBorders":{"bottom":{"width":3,"fill":{"schemeColor":"lt1"}}},"neCellBorders":{"left":{"noFill":true}},"nwCellBorders":{"right":{"noFill":true}}},{"styleId":"{5202B0CA-FC54-4496-8BCA-5EF66A818D29}","styleName":"Dark Style 2","wholeTblFill":{"schemeColor":"dk1","tint":20000},"band1HFill":{"schemeColor":"dk1","tint":40000},"band1VFill":{"schemeColor":"dk1","tint":40000},"lastRowFill":{"schemeColor":"dk1","tint":20000},"firstRowFill":{"schemeColor":"dk1"},"wholeTblText":{"fontRefIdx":"minor","fontSchemeColor":"dk1"},"lastColText":{"bold":true},"firstColText":{"bold":true},"lastRowText":{"bold":true},"firstRowText":{"bold":true,"fontRefIdx":"minor","fontSchemeColor":"lt1"},"wholeTblBorders":{"left":{"noFill":true},"right":{"noFill":true},"top":{"noFill":true},"bottom":{"noFill":true},"insideH":{"noFill":true},"insideV":{"noFill":true}},"lastRowBorders":{"top":{"width":5,"fill":{"schemeColor":"dk1"}}}}]}';
26490
+ var BUILTIN_TABLE_STYLE_JSON = '{"families":[{"baseAccent":1,"template":{"styleId":"","styleName":"","accentKey":"accent1","wholeTblFill":{"schemeColor":"accent1","tint":20000},"band1HFill":{"schemeColor":"accent1","tint":40000},"band1VFill":{"schemeColor":"accent1","tint":40000},"lastColFill":{"schemeColor":"accent1"},"firstColFill":{"schemeColor":"accent1"},"lastRowFill":{"schemeColor":"accent1"},"firstRowFill":{"schemeColor":"accent1"},"wholeTblText":{"fontRefIdx":"minor","fontSchemeColor":"dk1"},"lastColText":{"bold":true,"fontRefIdx":"minor","fontSchemeColor":"lt1"},"firstColText":{"bold":true,"fontRefIdx":"minor","fontSchemeColor":"lt1"},"lastRowText":{"bold":true,"fontRefIdx":"minor","fontSchemeColor":"lt1"},"firstRowText":{"bold":true,"fontRefIdx":"minor","fontSchemeColor":"lt1"},"wholeTblBorders":{"left":{"width":1,"fill":{"schemeColor":"lt1"}},"right":{"width":1,"fill":{"schemeColor":"lt1"}},"top":{"width":1,"fill":{"schemeColor":"lt1"}},"bottom":{"width":1,"fill":{"schemeColor":"lt1"}},"insideH":{"width":1,"fill":{"schemeColor":"lt1"}},"insideV":{"width":1,"fill":{"schemeColor":"lt1"}}},"lastRowBorders":{"top":{"width":4,"fill":{"schemeColor":"lt1"}}},"firstRowBorders":{"bottom":{"width":4,"fill":{"schemeColor":"lt1"}}}},"variants":[{"id":"{5C22544A-7EE6-4342-B048-85BDC9FD1C3A}","name":"Medium Style 2 - Accent 1","a":1},{"id":"{21E4AEA4-8DFA-4A89-87EB-49C32662AFE0}","name":"Medium Style 2 - Accent 2","a":2},{"id":"{F5AB1C69-6EDB-4FF4-983F-18BD219EF322}","name":"Medium Style 2 - Accent 3","a":3},{"id":"{00A15C55-8517-42AA-B614-E9B94910E393}","name":"Medium Style 2 - Accent 4","a":4},{"id":"{7DF18680-E054-41AD-8BC1-D1AEF772440D}","name":"Medium Style 2 - Accent 5","a":5},{"id":"{93296810-A885-4BE3-A3E7-6D5BEEA58F35}","name":"Medium Style 2 - Accent 6","a":6}]},{"baseAccent":1,"template":{"styleId":"","styleName":"","accentKey":"accent1","tableBackground":{"fillRef":{"idx":2,"color":{"schemeColor":"accent1"}}},"wholeTblFill":{"schemeColor":"","noFill":true},"band1HFill":{"schemeColor":"accent1","alpha":40000},"band1VFill":{"schemeColor":"accent1","alpha":40000},"lastRowFill":{"schemeColor":"","noFill":true},"firstRowFill":{"schemeColor":"accent1"},"wholeTblText":{"fontRefIdx":"minor","fontSchemeColor":"dk1"},"lastColText":{"bold":true},"firstColText":{"bold":true},"lastRowText":{"bold":true},"firstRowText":{"bold":true,"fontRefIdx":"minor","fontSchemeColor":"lt1"},"wholeTblBorders":{"left":{"lnRef":{"idx":1,"color":{"schemeColor":"accent1"}}},"right":{"lnRef":{"idx":1,"color":{"schemeColor":"accent1"}}},"top":{"lnRef":{"idx":1,"color":{"schemeColor":"accent1"}}},"bottom":{"lnRef":{"idx":1,"color":{"schemeColor":"accent1"}}},"insideH":{"lnRef":{"idx":1,"color":{"schemeColor":"accent1"}}},"insideV":{"lnRef":{"idx":1,"color":{"schemeColor":"accent1"}}}},"band1VBorders":{"top":{"lnRef":{"idx":1,"color":{"schemeColor":"accent1"}}},"bottom":{"lnRef":{"idx":1,"color":{"schemeColor":"accent1"}}}},"lastColBorders":{"left":{"lnRef":{"idx":2,"color":{"schemeColor":"accent1"}}},"right":{"lnRef":{"idx":1,"color":{"schemeColor":"accent1"}}},"top":{"lnRef":{"idx":1,"color":{"schemeColor":"accent1"}}},"bottom":{"lnRef":{"idx":1,"color":{"schemeColor":"accent1"}}},"insideH":{"lnRef":{"idx":1,"color":{"schemeColor":"accent1"}}},"insideV":{"noFill":true}},"firstColBorders":{"left":{"lnRef":{"idx":1,"color":{"schemeColor":"accent1"}}},"right":{"lnRef":{"idx":2,"color":{"schemeColor":"accent1"}}},"top":{"lnRef":{"idx":1,"color":{"schemeColor":"accent1"}}},"bottom":{"lnRef":{"idx":1,"color":{"schemeColor":"accent1"}}},"insideH":{"lnRef":{"idx":1,"color":{"schemeColor":"accent1"}}},"insideV":{"noFill":true}},"lastRowBorders":{"left":{"lnRef":{"idx":1,"color":{"schemeColor":"accent1"}}},"right":{"lnRef":{"idx":1,"color":{"schemeColor":"accent1"}}},"top":{"lnRef":{"idx":2,"color":{"schemeColor":"accent1"}}},"bottom":{"lnRef":{"idx":2,"color":{"schemeColor":"accent1"}}},"insideH":{"noFill":true},"insideV":{"noFill":true}},"firstRowBorders":{"left":{"lnRef":{"idx":1,"color":{"schemeColor":"accent1"}}},"right":{"lnRef":{"idx":1,"color":{"schemeColor":"accent1"}}},"top":{"lnRef":{"idx":1,"color":{"schemeColor":"accent1"}}},"bottom":{"lnRef":{"idx":2,"color":{"schemeColor":"lt1"}}},"insideH":{"noFill":true},"insideV":{"noFill":true}}},"variants":[{"id":"{3C2FFA5D-87B4-456A-9821-1D502468CF0F}","name":"Themed Style 1 - Accent 1","a":1},{"id":"{284E427A-3D55-4303-BF80-6455036E1DE7}","name":"Themed Style 1 - Accent 2","a":2},{"id":"{69C7853C-536D-4A76-A0AE-DD22124D55A5}","name":"Themed Style 1 - Accent 3","a":3},{"id":"{775DCB02-9BB8-47FD-8907-85C794F793BA}","name":"Themed Style 1 - Accent 4","a":4},{"id":"{35758FB7-9AC5-4552-8A53-C91805E547FA}","name":"Themed Style 1 - Accent 5","a":5},{"id":"{08FB837D-C827-4EFA-A057-4D05807E0F7C}","name":"Themed Style 1 - Accent 6","a":6}]},{"baseAccent":1,"template":{"styleId":"","styleName":"","tableBackground":{"fillRef":{"idx":3,"color":{"schemeColor":"accent1"}}},"wholeTblFill":{"schemeColor":"","noFill":true},"band1HFill":{"schemeColor":"lt1","alpha":20000},"band1VFill":{"schemeColor":"lt1","alpha":20000},"lastRowFill":{"schemeColor":"","noFill":true},"firstRowFill":{"schemeColor":"","noFill":true},"wholeTblText":{"fontRefIdx":"minor","fontSchemeColor":"lt1"},"lastColText":{"bold":true},"firstColText":{"bold":true},"lastRowText":{"bold":true},"firstRowText":{"bold":true},"wholeTblBorders":{"left":{"lnRef":{"idx":1,"color":{"schemeColor":"accent1","tint":50000}}},"right":{"lnRef":{"idx":1,"color":{"schemeColor":"accent1","tint":50000}}},"top":{"lnRef":{"idx":1,"color":{"schemeColor":"accent1","tint":50000}}},"bottom":{"lnRef":{"idx":1,"color":{"schemeColor":"accent1","tint":50000}}},"insideH":{"noFill":true},"insideV":{"noFill":true}},"lastColBorders":{"left":{"lnRef":{"idx":2,"color":{"schemeColor":"lt1"}}}},"firstColBorders":{"right":{"lnRef":{"idx":2,"color":{"schemeColor":"lt1"}}}},"lastRowBorders":{"top":{"lnRef":{"idx":2,"color":{"schemeColor":"lt1"}}}},"seCellBorders":{"left":{"noFill":true},"top":{"noFill":true}},"swCellBorders":{"right":{"noFill":true},"top":{"noFill":true}},"firstRowBorders":{"bottom":{"lnRef":{"idx":3,"color":{"schemeColor":"lt1"}}}},"neCellBorders":{"bottom":{"noFill":true}}},"variants":[{"id":"{D113A9D2-9D6B-4929-AA2D-F23B5EE8CBE7}","name":"Themed Style 2 - Accent 1","a":1},{"id":"{18603FDC-E32A-4AB5-989C-0864C3EAD2B8}","name":"Themed Style 2 - Accent 2","a":2},{"id":"{306799F8-075E-4A3A-A7F6-7FBC6576F1A4}","name":"Themed Style 2 - Accent 3","a":3},{"id":"{E269D01E-BC32-4049-B463-5C60D7B0CCD2}","name":"Themed Style 2 - Accent 4","a":4},{"id":"{327F97BB-C833-4FB7-BDE5-3F7075034690}","name":"Themed Style 2 - Accent 5","a":5},{"id":"{638B1855-1B75-4FBE-930C-398BA8C253C6}","name":"Themed Style 2 - Accent 6","a":6}]},{"baseAccent":1,"template":{"styleId":"","styleName":"","accentKey":"accent1","wholeTblFill":{"schemeColor":"","noFill":true},"band1HFill":{"schemeColor":"accent1","alpha":20000},"band1VFill":{"schemeColor":"accent1","alpha":20000},"lastRowFill":{"schemeColor":"","noFill":true},"firstRowFill":{"schemeColor":"","noFill":true},"wholeTblText":{"fontRefIdx":"minor","fontSchemeColor":"tx1"},"lastColText":{"bold":true},"firstColText":{"bold":true},"lastRowText":{"bold":true},"firstRowText":{"bold":true},"wholeTblBorders":{"left":{"noFill":true},"right":{"noFill":true},"top":{"width":1,"fill":{"schemeColor":"accent1"}},"bottom":{"width":1,"fill":{"schemeColor":"accent1"}},"insideH":{"noFill":true},"insideV":{"noFill":true}},"lastRowBorders":{"top":{"width":1,"fill":{"schemeColor":"accent1"}}},"firstRowBorders":{"bottom":{"width":1,"fill":{"schemeColor":"accent1"}}}},"variants":[{"id":"{3B4B98B0-60AC-42C2-AFA5-B58CD77FA1E5}","name":"Light Style 1 - Accent 1","a":1},{"id":"{0E3FDE45-AF77-4B5C-9715-49D594BDF05E}","name":"Light Style 1 - Accent 2","a":2},{"id":"{C083E6E3-FA7D-4D7B-A595-EF9225AFEA82}","name":"Light Style 1 - Accent 3","a":3},{"id":"{D27102A9-8310-4765-A935-A1911B00CA55}","name":"Light Style 1 - Accent 4","a":4},{"id":"{5FD0F851-EC5A-4D38-B0AD-8093EC10F338}","name":"Light Style 1 - Accent 5","a":5},{"id":"{68D230F3-CF80-4859-8CE7-A43EE81993B5}","name":"Light Style 1 - Accent 6","a":6}]},{"baseAccent":1,"template":{"styleId":"","styleName":"","wholeTblFill":{"schemeColor":"","noFill":true},"wholeTblText":{"fontRefIdx":"minor","fontSchemeColor":"tx1"},"lastColText":{"bold":true},"firstColText":{"bold":true},"lastRowText":{"bold":true},"firstRowText":{"bold":true,"fontRefIdx":"minor","fontSchemeColor":"bg1"},"wholeTblBorders":{"insideH":{"noFill":true},"insideV":{"noFill":true}},"lastRowBorders":{"top":{"width":5,"fill":{"schemeColor":"accent1"}}}},"variants":[{"id":"{69012ECD-51FC-41F1-AA8D-1B2483CD663E}","name":"Light Style 2 - Accent 1","a":1},{"id":"{72833802-FEF1-4C79-8D5D-14CF1EAF98D9}","name":"Light Style 2 - Accent 2","a":2},{"id":"{F2DE63D5-997A-4646-A377-4702673A728D}","name":"Light Style 2 - Accent 3","a":3},{"id":"{17292A2E-F333-43FB-9621-5CBBE7FDCDCB}","name":"Light Style 2 - Accent 4","a":4},{"id":"{5A111915-BE36-4E01-A7E5-04B1672EAD32}","name":"Light Style 2 - Accent 5","a":5},{"id":"{912C8C85-51F0-491E-9774-3900AFEF0FD7}","name":"Light Style 2 - Accent 6","a":6}]},{"baseAccent":1,"template":{"styleId":"","styleName":"","accentKey":"accent1","wholeTblFill":{"schemeColor":"","noFill":true},"band1HFill":{"schemeColor":"accent1","alpha":20000},"band1VFill":{"schemeColor":"accent1","alpha":20000},"lastRowFill":{"schemeColor":"","noFill":true},"firstRowFill":{"schemeColor":"","noFill":true},"wholeTblText":{"fontRefIdx":"minor","fontSchemeColor":"tx1"},"lastColText":{"bold":true},"firstColText":{"bold":true},"lastRowText":{"bold":true},"firstRowText":{"bold":true},"wholeTblBorders":{"left":{"width":1,"fill":{"schemeColor":"accent1"}},"right":{"width":1,"fill":{"schemeColor":"accent1"}},"top":{"width":1,"fill":{"schemeColor":"accent1"}},"bottom":{"width":1,"fill":{"schemeColor":"accent1"}},"insideH":{"width":1,"fill":{"schemeColor":"accent1"}},"insideV":{"width":1,"fill":{"schemeColor":"accent1"}}},"lastRowBorders":{"top":{"width":5,"fill":{"schemeColor":"accent1"}}},"firstRowBorders":{"bottom":{"width":3,"fill":{"schemeColor":"accent1"}}}},"variants":[{"id":"{BC89EF96-8CEA-46FF-86C4-4CE0E7609802}","name":"Light Style 3 - Accent 1","a":1},{"id":"{5DA37D80-6434-44D0-A028-1B22A696006F}","name":"Light Style 3 - Accent 2","a":2},{"id":"{8799B23B-EC83-4686-B30A-512413B5E67A}","name":"Light Style 3 - Accent 3","a":3},{"id":"{ED083AE6-46FA-4A59-8FB0-9F97EB10719F}","name":"Light Style 3 - Accent 4","a":4},{"id":"{BDBED569-4797-4DF1-A0F4-6AAB3CD982D8}","name":"Light Style 3 - Accent 5","a":5},{"id":"{E8B1032C-EA38-4F05-BA0D-38AFFFC7BED3}","name":"Light Style 3 - Accent 6","a":6}]},{"baseAccent":1,"template":{"styleId":"","styleName":"","accentKey":"accent1","wholeTblFill":{"schemeColor":"lt1"},"band1HFill":{"schemeColor":"accent1","tint":20000},"band1VFill":{"schemeColor":"accent1","tint":20000},"lastRowFill":{"schemeColor":"lt1"},"firstRowFill":{"schemeColor":"accent1"},"wholeTblText":{"fontRefIdx":"minor","fontSchemeColor":"dk1"},"lastColText":{"bold":true},"firstColText":{"bold":true},"lastRowText":{"bold":true},"firstRowText":{"bold":true,"fontRefIdx":"minor","fontSchemeColor":"lt1"},"wholeTblBorders":{"left":{"width":1,"fill":{"schemeColor":"accent1"}},"right":{"width":1,"fill":{"schemeColor":"accent1"}},"top":{"width":1,"fill":{"schemeColor":"accent1"}},"bottom":{"width":1,"fill":{"schemeColor":"accent1"}},"insideH":{"width":1,"fill":{"schemeColor":"accent1"}},"insideV":{"noFill":true}},"lastRowBorders":{"top":{"width":5,"fill":{"schemeColor":"accent1"}}}},"variants":[{"id":"{B301B821-A1FF-4177-AEE7-76D212191A09}","name":"Medium Style 1 - Accent 1","a":1},{"id":"{9DCAF9ED-07DC-4A11-8D7F-57B35C25682E}","name":"Medium Style 1 - Accent 2","a":2},{"id":"{1FECB4D8-DB02-4DC6-A0A2-4F2EBAE1DC90}","name":"Medium Style 1 - Accent 3","a":3},{"id":"{1E171933-4619-4E11-9A3F-F7608DF75F80}","name":"Medium Style 1 - Accent 4","a":4},{"id":"{FABFCF23-3B69-468F-B69F-88F6DE6A72F2}","name":"Medium Style 1 - Accent 5","a":5},{"id":"{10A1B5D5-9B99-4C35-A422-299274C87663}","name":"Medium Style 1 - Accent 6","a":6}]},{"baseAccent":1,"template":{"styleId":"","styleName":"","accentKey":"accent1","wholeTblFill":{"schemeColor":"lt1"},"band1HFill":{"schemeColor":"dk1","tint":20000},"band1VFill":{"schemeColor":"dk1","tint":20000},"lastColFill":{"schemeColor":"accent1"},"firstColFill":{"schemeColor":"accent1"},"lastRowFill":{"schemeColor":"lt1"},"firstRowFill":{"schemeColor":"accent1"},"wholeTblText":{"fontRefIdx":"minor","fontSchemeColor":"dk1"},"lastColText":{"bold":true,"fontRefIdx":"minor","fontSchemeColor":"lt1"},"firstColText":{"bold":true,"fontRefIdx":"minor","fontSchemeColor":"lt1"},"lastRowText":{"bold":true},"seCellText":{"bold":true,"fontRefIdx":"minor","fontSchemeColor":"dk1"},"swCellText":{"bold":true,"fontRefIdx":"minor","fontSchemeColor":"dk1"},"firstRowText":{"bold":true,"fontRefIdx":"minor","fontSchemeColor":"lt1"},"wholeTblBorders":{"left":{"noFill":true},"right":{"noFill":true},"top":{"width":3,"fill":{"schemeColor":"dk1"}},"bottom":{"width":3,"fill":{"schemeColor":"dk1"}},"insideH":{"noFill":true},"insideV":{"noFill":true}},"lastRowBorders":{"top":{"width":5,"fill":{"schemeColor":"dk1"}}},"firstRowBorders":{"bottom":{"width":3,"fill":{"schemeColor":"dk1"}}}},"variants":[{"id":"{6E25E649-3F16-4E02-A733-19D2CDBF48F0}","name":"Medium Style 3 - Accent 1","a":1},{"id":"{85BE263C-DBD7-4A20-BB59-AAB30ACAA65A}","name":"Medium Style 3 - Accent 2","a":2},{"id":"{EB344D84-9AFB-497E-A393-DC336BA19D2E}","name":"Medium Style 3 - Accent 3","a":3},{"id":"{EB9631B5-78F2-41C9-869B-9F39066F8104}","name":"Medium Style 3 - Accent 4","a":4},{"id":"{74C1A8A3-306A-4EB7-A6B1-4F7E0EB9C5D6}","name":"Medium Style 3 - Accent 5","a":5},{"id":"{2A488322-F2BA-4B5B-9748-0D474271808F}","name":"Medium Style 3 - Accent 6","a":6}]},{"baseAccent":1,"template":{"styleId":"","styleName":"","accentKey":"accent1","wholeTblFill":{"schemeColor":"accent1","tint":20000},"band1HFill":{"schemeColor":"accent1","tint":40000},"band1VFill":{"schemeColor":"accent1","tint":40000},"lastRowFill":{"schemeColor":"accent1","tint":20000},"firstRowFill":{"schemeColor":"accent1","tint":20000},"wholeTblText":{"fontRefIdx":"minor","fontSchemeColor":"dk1"},"lastColText":{"bold":true},"firstColText":{"bold":true},"lastRowText":{"bold":true},"firstRowText":{"bold":true},"wholeTblBorders":{"left":{"width":1,"fill":{"schemeColor":"accent1"}},"right":{"width":1,"fill":{"schemeColor":"accent1"}},"top":{"width":1,"fill":{"schemeColor":"accent1"}},"bottom":{"width":1,"fill":{"schemeColor":"accent1"}},"insideH":{"width":1,"fill":{"schemeColor":"accent1"}},"insideV":{"width":1,"fill":{"schemeColor":"accent1"}}},"lastRowBorders":{"top":{"width":3,"fill":{"schemeColor":"accent1"}}}},"variants":[{"id":"{69CF1AB2-1976-4502-BF36-3FF5EA218861}","name":"Medium Style 4 - Accent 1","a":1},{"id":"{8A107856-5554-42FB-B03E-39F5DBC370BA}","name":"Medium Style 4 - Accent 2","a":2},{"id":"{0505E3EF-67EA-436B-97B2-0124C06EBD24}","name":"Medium Style 4 - Accent 3","a":3},{"id":"{C4B1156A-380E-4F78-BDF5-A606A8083BF9}","name":"Medium Style 4 - Accent 4","a":4},{"id":"{22838BEF-8BB2-4498-84A7-C5851F593DF1}","name":"Medium Style 4 - Accent 5","a":5},{"id":"{16D9F66E-5EB9-4882-86FB-DCBF35E3C3E4}","name":"Medium Style 4 - Accent 6","a":6}]},{"baseAccent":1,"template":{"styleId":"","styleName":"","accentKey":"accent1","wholeTblFill":{"schemeColor":"accent1"},"band1HFill":{"schemeColor":"accent1","shade":60000},"band1VFill":{"schemeColor":"accent1","shade":60000},"lastColFill":{"schemeColor":"accent1","shade":60000},"firstColFill":{"schemeColor":"accent1","shade":60000},"lastRowFill":{"schemeColor":"accent1","shade":40000},"firstRowFill":{"schemeColor":"dk1"},"wholeTblText":{"fontRefIdx":"minor","fontSchemeColor":"lt1"},"lastColText":{"bold":true},"firstColText":{"bold":true},"lastRowText":{"bold":true},"firstRowText":{"bold":true},"wholeTblBorders":{"left":{"noFill":true},"right":{"noFill":true},"top":{"noFill":true},"bottom":{"noFill":true},"insideH":{"noFill":true},"insideV":{"noFill":true}},"lastColBorders":{"left":{"width":3,"fill":{"schemeColor":"lt1"}}},"firstColBorders":{"right":{"width":3,"fill":{"schemeColor":"lt1"}}},"lastRowBorders":{"top":{"width":3,"fill":{"schemeColor":"lt1"}}},"seCellBorders":{"left":{"noFill":true}},"swCellBorders":{"right":{"noFill":true}},"firstRowBorders":{"bottom":{"width":3,"fill":{"schemeColor":"lt1"}}},"neCellBorders":{"left":{"noFill":true}},"nwCellBorders":{"right":{"noFill":true}}},"variants":[{"id":"{125E5076-3810-47DD-B79F-674D7AD40C01}","name":"Dark Style 1 - Accent 1","a":1},{"id":"{37CE84F3-28C3-443E-9E96-99CF82512B78}","name":"Dark Style 1 - Accent 2","a":2},{"id":"{D03447BB-5D67-496B-8E87-E561075AD55C}","name":"Dark Style 1 - Accent 3","a":3},{"id":"{E929F9F4-4A8F-4326-A1B4-22849713DDAB}","name":"Dark Style 1 - Accent 4","a":4},{"id":"{8FD4443E-F989-4FC4-A0C8-D5A2AF1F390B}","name":"Dark Style 1 - Accent 5","a":5},{"id":"{AF606853-7671-496A-8E4F-DF71F8EC918B}","name":"Dark Style 1 - Accent 6","a":6}]},{"baseAccent":1,"baseAccent2":2,"template":{"styleId":"","styleName":"","accentKey":"accent1","wholeTblFill":{"schemeColor":"accent1","tint":20000},"band1HFill":{"schemeColor":"accent1","tint":40000},"band1VFill":{"schemeColor":"accent1","tint":40000},"lastRowFill":{"schemeColor":"accent1","tint":20000},"firstRowFill":{"schemeColor":"accent2"},"wholeTblText":{"fontRefIdx":"minor","fontSchemeColor":"dk1"},"lastColText":{"bold":true},"firstColText":{"bold":true},"lastRowText":{"bold":true},"firstRowText":{"bold":true,"fontRefIdx":"minor","fontSchemeColor":"lt1"},"wholeTblBorders":{"left":{"noFill":true},"right":{"noFill":true},"top":{"noFill":true},"bottom":{"noFill":true},"insideH":{"noFill":true},"insideV":{"noFill":true}},"lastRowBorders":{"top":{"width":5,"fill":{"schemeColor":"dk1"}}}},"variants":[{"id":"{0660B408-B3CF-4A94-85FC-2B1E0A45F4A2}","name":"Dark Style 2 - Accent 1/Accent 2","a":1,"b":2},{"id":"{91EBBBCC-DAD2-459C-BE2E-F6DE35CF9A28}","name":"Dark Style 2 - Accent 3/Accent 4","a":3,"b":4},{"id":"{46F890A9-2807-4EBB-B81D-B2AA78EC7F39}","name":"Dark Style 2 - Accent 5/Accent 6","a":5,"b":6}]}],"standalone":[{"styleId":"{2D5ABB26-0587-4C30-8999-92F81FD0307C}","styleName":"No Style, No Grid","wholeTblFill":{"schemeColor":"","noFill":true},"wholeTblText":{"fontRefIdx":"minor","fontSchemeColor":"tx1"},"wholeTblBorders":{"left":{"noFill":true},"right":{"noFill":true},"top":{"noFill":true},"bottom":{"noFill":true},"insideH":{"noFill":true},"insideV":{"noFill":true}}},{"styleId":"{5940675A-B579-460E-94D1-54222C63F5DA}","styleName":"No Style, Table Grid","wholeTblFill":{"schemeColor":"","noFill":true},"wholeTblText":{"fontRefIdx":"minor","fontSchemeColor":"tx1"},"wholeTblBorders":{"left":{"width":1,"fill":{"schemeColor":"tx1"}},"right":{"width":1,"fill":{"schemeColor":"tx1"}},"top":{"width":1,"fill":{"schemeColor":"tx1"}},"bottom":{"width":1,"fill":{"schemeColor":"tx1"}},"insideH":{"width":1,"fill":{"schemeColor":"tx1"}},"insideV":{"width":1,"fill":{"schemeColor":"tx1"}}}},{"styleId":"{9D7B26C5-4107-4FEC-AEDC-1716B250A1EF}","styleName":"Light Style 1","wholeTblFill":{"schemeColor":"","noFill":true},"band1HFill":{"schemeColor":"tx1","alpha":20000},"band1VFill":{"schemeColor":"tx1","alpha":20000},"lastRowFill":{"schemeColor":"","noFill":true},"firstRowFill":{"schemeColor":"","noFill":true},"wholeTblText":{"fontRefIdx":"minor","fontSchemeColor":"tx1"},"lastColText":{"bold":true},"firstColText":{"bold":true},"lastRowText":{"bold":true},"firstRowText":{"bold":true},"wholeTblBorders":{"left":{"noFill":true},"right":{"noFill":true},"top":{"width":1,"fill":{"schemeColor":"tx1"}},"bottom":{"width":1,"fill":{"schemeColor":"tx1"}},"insideH":{"noFill":true},"insideV":{"noFill":true}},"lastRowBorders":{"top":{"width":1,"fill":{"schemeColor":"tx1"}}},"firstRowBorders":{"bottom":{"width":1,"fill":{"schemeColor":"tx1"}}}},{"styleId":"{7E9639D4-E3E2-4D34-9284-5A2195B3D0D7}","styleName":"Light Style 2","wholeTblFill":{"schemeColor":"","noFill":true},"wholeTblText":{"fontRefIdx":"minor","fontSchemeColor":"tx1"},"lastColText":{"bold":true},"firstColText":{"bold":true},"lastRowText":{"bold":true},"firstRowText":{"bold":true,"fontRefIdx":"minor","fontSchemeColor":"bg1"},"wholeTblBorders":{"insideH":{"noFill":true},"insideV":{"noFill":true}},"lastRowBorders":{"top":{"width":5,"fill":{"schemeColor":"tx1"}}}},{"styleId":"{616DA210-FB5B-4158-B5E0-FEB733F419BA}","styleName":"Light Style 3","wholeTblFill":{"schemeColor":"","noFill":true},"band1HFill":{"schemeColor":"tx1","alpha":20000},"band1VFill":{"schemeColor":"tx1","alpha":20000},"lastRowFill":{"schemeColor":"","noFill":true},"firstRowFill":{"schemeColor":"","noFill":true},"wholeTblText":{"fontRefIdx":"minor","fontSchemeColor":"tx1"},"lastColText":{"bold":true},"firstColText":{"bold":true},"lastRowText":{"bold":true},"firstRowText":{"bold":true},"wholeTblBorders":{"left":{"width":1,"fill":{"schemeColor":"tx1"}},"right":{"width":1,"fill":{"schemeColor":"tx1"}},"top":{"width":1,"fill":{"schemeColor":"tx1"}},"bottom":{"width":1,"fill":{"schemeColor":"tx1"}},"insideH":{"width":1,"fill":{"schemeColor":"tx1"}},"insideV":{"width":1,"fill":{"schemeColor":"tx1"}}},"lastRowBorders":{"top":{"width":5,"fill":{"schemeColor":"tx1"}}},"firstRowBorders":{"bottom":{"width":3,"fill":{"schemeColor":"tx1"}}}},{"styleId":"{793D81CF-94F2-401A-BA57-92F5A7B2D0C5}","styleName":"Medium Style 1","wholeTblFill":{"schemeColor":"lt1"},"band1HFill":{"schemeColor":"dk1","tint":20000},"band1VFill":{"schemeColor":"dk1","tint":20000},"lastRowFill":{"schemeColor":"lt1"},"firstRowFill":{"schemeColor":"dk1"},"wholeTblText":{"fontRefIdx":"minor","fontSchemeColor":"dk1"},"lastColText":{"bold":true},"firstColText":{"bold":true},"lastRowText":{"bold":true},"firstRowText":{"bold":true,"fontRefIdx":"minor","fontSchemeColor":"lt1"},"wholeTblBorders":{"left":{"width":1,"fill":{"schemeColor":"dk1"}},"right":{"width":1,"fill":{"schemeColor":"dk1"}},"top":{"width":1,"fill":{"schemeColor":"dk1"}},"bottom":{"width":1,"fill":{"schemeColor":"dk1"}},"insideH":{"width":1,"fill":{"schemeColor":"dk1"}},"insideV":{"noFill":true}},"lastRowBorders":{"top":{"width":5,"fill":{"schemeColor":"dk1"}}}},{"styleId":"{073A0DAA-6AF3-43AB-8588-CEC1D06C72B9}","styleName":"Medium Style 2","wholeTblFill":{"schemeColor":"dk1","tint":20000},"band1HFill":{"schemeColor":"dk1","tint":40000},"band1VFill":{"schemeColor":"dk1","tint":40000},"lastColFill":{"schemeColor":"dk1"},"firstColFill":{"schemeColor":"dk1"},"lastRowFill":{"schemeColor":"dk1"},"firstRowFill":{"schemeColor":"dk1"},"wholeTblText":{"fontRefIdx":"minor","fontSchemeColor":"dk1"},"lastColText":{"bold":true,"fontRefIdx":"minor","fontSchemeColor":"lt1"},"firstColText":{"bold":true,"fontRefIdx":"minor","fontSchemeColor":"lt1"},"lastRowText":{"bold":true,"fontRefIdx":"minor","fontSchemeColor":"lt1"},"firstRowText":{"bold":true,"fontRefIdx":"minor","fontSchemeColor":"lt1"},"wholeTblBorders":{"left":{"width":1,"fill":{"schemeColor":"lt1"}},"right":{"width":1,"fill":{"schemeColor":"lt1"}},"top":{"width":1,"fill":{"schemeColor":"lt1"}},"bottom":{"width":1,"fill":{"schemeColor":"lt1"}},"insideH":{"width":1,"fill":{"schemeColor":"lt1"}},"insideV":{"width":1,"fill":{"schemeColor":"lt1"}}},"lastRowBorders":{"top":{"width":4,"fill":{"schemeColor":"lt1"}}},"firstRowBorders":{"bottom":{"width":4,"fill":{"schemeColor":"lt1"}}}},{"styleId":"{8EC20E35-A176-4012-BC5E-935CFFF8708E}","styleName":"Medium Style 3","wholeTblFill":{"schemeColor":"lt1"},"band1HFill":{"schemeColor":"dk1","tint":20000},"band1VFill":{"schemeColor":"dk1","tint":20000},"lastColFill":{"schemeColor":"dk1"},"firstColFill":{"schemeColor":"dk1"},"lastRowFill":{"schemeColor":"lt1"},"firstRowFill":{"schemeColor":"dk1"},"wholeTblText":{"fontRefIdx":"minor","fontSchemeColor":"dk1"},"lastColText":{"bold":true,"fontRefIdx":"minor","fontSchemeColor":"lt1"},"firstColText":{"bold":true,"fontRefIdx":"minor","fontSchemeColor":"lt1"},"lastRowText":{"bold":true},"seCellText":{"bold":true,"fontRefIdx":"minor","fontSchemeColor":"dk1"},"swCellText":{"bold":true,"fontRefIdx":"minor","fontSchemeColor":"dk1"},"firstRowText":{"bold":true,"fontRefIdx":"minor","fontSchemeColor":"lt1"},"wholeTblBorders":{"left":{"noFill":true},"right":{"noFill":true},"top":{"width":3,"fill":{"schemeColor":"dk1"}},"bottom":{"width":3,"fill":{"schemeColor":"dk1"}},"insideH":{"noFill":true},"insideV":{"noFill":true}},"lastRowBorders":{"top":{"width":5,"fill":{"schemeColor":"dk1"}}},"firstRowBorders":{"bottom":{"width":3,"fill":{"schemeColor":"dk1"}}}},{"styleId":"{D7AC3CCA-C797-4891-BE02-D94E43425B78}","styleName":"Medium Style 4","wholeTblFill":{"schemeColor":"dk1","tint":20000},"band1HFill":{"schemeColor":"dk1","tint":40000},"band1VFill":{"schemeColor":"dk1","tint":40000},"lastRowFill":{"schemeColor":"dk1","tint":20000},"firstRowFill":{"schemeColor":"dk1","tint":20000},"wholeTblText":{"fontRefIdx":"minor","fontSchemeColor":"dk1"},"lastColText":{"bold":true},"firstColText":{"bold":true},"lastRowText":{"bold":true},"firstRowText":{"bold":true},"wholeTblBorders":{"left":{"width":1,"fill":{"schemeColor":"dk1"}},"right":{"width":1,"fill":{"schemeColor":"dk1"}},"top":{"width":1,"fill":{"schemeColor":"dk1"}},"bottom":{"width":1,"fill":{"schemeColor":"dk1"}},"insideH":{"width":1,"fill":{"schemeColor":"dk1"}},"insideV":{"width":1,"fill":{"schemeColor":"dk1"}}},"lastRowBorders":{"top":{"width":3,"fill":{"schemeColor":"dk1"}}}},{"styleId":"{E8034E78-7F5D-4C2E-B375-FC64B27BC917}","styleName":"Dark Style 1","wholeTblFill":{"schemeColor":"dk1","tint":20000},"band1HFill":{"schemeColor":"dk1","tint":40000},"band1VFill":{"schemeColor":"dk1","tint":40000},"lastColFill":{"schemeColor":"dk1","tint":60000},"firstColFill":{"schemeColor":"dk1","tint":60000},"lastRowFill":{"schemeColor":"dk1","tint":60000},"firstRowFill":{"schemeColor":"dk1"},"wholeTblText":{"fontRefIdx":"minor","fontSchemeColor":"lt1"},"lastColText":{"bold":true},"firstColText":{"bold":true},"lastRowText":{"bold":true},"firstRowText":{"bold":true},"wholeTblBorders":{"left":{"noFill":true},"right":{"noFill":true},"top":{"noFill":true},"bottom":{"noFill":true},"insideH":{"noFill":true},"insideV":{"noFill":true}},"lastColBorders":{"left":{"width":3,"fill":{"schemeColor":"lt1"}}},"firstColBorders":{"right":{"width":3,"fill":{"schemeColor":"lt1"}}},"lastRowBorders":{"top":{"width":3,"fill":{"schemeColor":"lt1"}}},"seCellBorders":{"left":{"noFill":true}},"swCellBorders":{"right":{"noFill":true}},"firstRowBorders":{"bottom":{"width":3,"fill":{"schemeColor":"lt1"}}},"neCellBorders":{"left":{"noFill":true}},"nwCellBorders":{"right":{"noFill":true}}},{"styleId":"{5202B0CA-FC54-4496-8BCA-5EF66A818D29}","styleName":"Dark Style 2","wholeTblFill":{"schemeColor":"dk1","tint":20000},"band1HFill":{"schemeColor":"dk1","tint":40000},"band1VFill":{"schemeColor":"dk1","tint":40000},"lastRowFill":{"schemeColor":"dk1","tint":20000},"firstRowFill":{"schemeColor":"dk1"},"wholeTblText":{"fontRefIdx":"minor","fontSchemeColor":"dk1"},"lastColText":{"bold":true},"firstColText":{"bold":true},"lastRowText":{"bold":true},"firstRowText":{"bold":true,"fontRefIdx":"minor","fontSchemeColor":"lt1"},"wholeTblBorders":{"left":{"noFill":true},"right":{"noFill":true},"top":{"noFill":true},"bottom":{"noFill":true},"insideH":{"noFill":true},"insideV":{"noFill":true}},"lastRowBorders":{"top":{"width":5,"fill":{"schemeColor":"dk1"}}}}]}';
26342
26491
 
26343
26492
  // src/pptx/render/table-style-builtins.ts
26344
26493
  function substituteAccent(template, from, to, from2, to2) {
@@ -26469,35 +26618,6 @@ function cellImageFillCss(style) {
26469
26618
  };
26470
26619
  }
26471
26620
 
26472
- // src/pptx/render/table-style-scheme.ts
26473
- var SCHEME_ALIASES = {
26474
- tx1: "dk1",
26475
- bg1: "lt1",
26476
- tx2: "dk2",
26477
- bg2: "lt2"
26478
- };
26479
- function tableSchemeColor(colorScheme, key) {
26480
- const scheme = colorScheme;
26481
- return scheme[key] ?? scheme[SCHEME_ALIASES[key] ?? ""];
26482
- }
26483
- var SECTION_FILL_KEYS = [
26484
- "wholeTblFill",
26485
- "band1HFill",
26486
- "band2HFill",
26487
- "band1VFill",
26488
- "band2VFill",
26489
- "firstRowFill",
26490
- "lastRowFill",
26491
- "firstColFill",
26492
- "lastColFill"
26493
- ];
26494
- function styleDeclaresFills(entry5) {
26495
- if (!entry5) {
26496
- return false;
26497
- }
26498
- return entry5.tableBackground?.fill !== void 0 || SECTION_FILL_KEYS.some((key) => entry5[key] !== void 0);
26499
- }
26500
-
26501
26621
  // src/pptx/render/table-style-fill.ts
26502
26622
  function hexToRgb2(hex2) {
26503
26623
  const clean = hex2.replace(/^#/u, "");
@@ -27496,6 +27616,13 @@ function cellPatternFillCss(style) {
27496
27616
  const fallback = style.patternFillBackground ?? style.backgroundColor;
27497
27617
  return fallback ? { backgroundColor: fallback } : null;
27498
27618
  }
27619
+ function styleEntryFor(tableData, styleCtx) {
27620
+ return resolveTableStyleThemeRefs(
27621
+ resolveTableStyleEntry(tableData.tableStyleId, styleCtx?.tableStyleMap),
27622
+ styleCtx?.formatScheme,
27623
+ styleCtx?.colorScheme
27624
+ );
27625
+ }
27499
27626
  function tableContainerCss(tableData) {
27500
27627
  return {
27501
27628
  ...tableData?.rtl ? { direction: "rtl" } : {},
@@ -27700,7 +27827,7 @@ function getDiagonalBorders(style, styleDiagonals) {
27700
27827
  function getCellDiagonalBorders(style, tableData, pos, styleCtx) {
27701
27828
  let styleDiagonals;
27702
27829
  if (tableData) {
27703
- const entry5 = resolveTableStyleEntry(tableData.tableStyleId, styleCtx?.tableStyleMap);
27830
+ const entry5 = styleEntryFor(tableData, styleCtx);
27704
27831
  styleDiagonals = resolveStyleDiagonalBorders(
27705
27832
  entry5,
27706
27833
  tableData,
@@ -27714,7 +27841,7 @@ function getTableCellBandStyle(tableData, rowIndex, cellIndex, rowCount, columnC
27714
27841
  if (!tableData) {
27715
27842
  return void 0;
27716
27843
  }
27717
- const styleEntry = resolveTableStyleEntry(tableData.tableStyleId, styleCtx?.tableStyleMap);
27844
+ const styleEntry = styleEntryFor(tableData, styleCtx);
27718
27845
  const authoredFills = styleDeclaresFills(styleEntry);
27719
27846
  const colorScheme = styleCtx?.colorScheme;
27720
27847
  const fontScheme = styleCtx?.fontScheme;
@@ -27949,17 +28076,17 @@ function resolveParagraphAlign(paraSegments, elementAlign) {
27949
28076
  }
27950
28077
  return elementAlign;
27951
28078
  }
27952
- function resolveCssTextAlign(align, isRtl) {
27953
- if (align === "justLow" || align === "dist" || align === "thaiDist") {
28079
+ function resolveCssTextAlign(align2, isRtl) {
28080
+ if (align2 === "justLow" || align2 === "dist" || align2 === "thaiDist") {
27954
28081
  return "justify";
27955
28082
  }
27956
- if (align) {
27957
- return align;
28083
+ if (align2) {
28084
+ return align2;
27958
28085
  }
27959
28086
  return isRtl ? "right" : void 0;
27960
28087
  }
27961
- function resolveTextAlignLast(align) {
27962
- return align === "dist" ? "justify" : void 0;
28088
+ function resolveTextAlignLast(align2) {
28089
+ return align2 === "dist" ? "justify" : void 0;
27963
28090
  }
27964
28091
 
27965
28092
  // src/pptx/render/table-cell-paragraphs.ts
@@ -29546,7 +29673,7 @@ function createTemplateContext(options = {}) {
29546
29673
  const scheme = { ...pptx.DEFAULT_SCHEME_COLOR_MAP, ...options.scheme ?? {} };
29547
29674
  let counter = 0;
29548
29675
  const idFor = options.idFor ?? ((index) => `template-el-${Date.now()}-${index}`);
29549
- const dictionary = chunkY7CDPPMZ_cjs.translationsEn;
29676
+ const dictionary = chunkJ3GEBMYK_cjs.translationsEn;
29550
29677
  const translate = options.translate ?? ((key) => dictionary[key] ?? key);
29551
29678
  return {
29552
29679
  scheme,
@@ -30370,11 +30497,11 @@ function buildTabContext(tabStops, defaultTabSize, fontSizePx, fontFamily, bold,
30370
30497
  rtl: options.rtl === true
30371
30498
  };
30372
30499
  }
30373
- function directedAlign(align, rtl) {
30500
+ function directedAlign(align2, rtl) {
30374
30501
  if (!rtl) {
30375
- return align;
30502
+ return align2;
30376
30503
  }
30377
- return align === "l" ? "r" : align === "r" ? "l" : align;
30504
+ return align2 === "l" ? "r" : align2 === "r" ? "l" : align2;
30378
30505
  }
30379
30506
  function leaderGlyph(leader) {
30380
30507
  switch (leader) {
@@ -30402,23 +30529,23 @@ function computeTabbedLayout(segments, tabStops, measure2, defaultTabSize, optio
30402
30529
  const stop = stops.find((s) => s.position > cursor + EPS);
30403
30530
  const width = measure2(text3);
30404
30531
  let tabX;
30405
- let align;
30532
+ let align2;
30406
30533
  let leader;
30407
30534
  if (stop) {
30408
30535
  tabX = stop.position;
30409
- align = directedAlign(stop.align, options.rtl);
30536
+ align2 = directedAlign(stop.align, options.rtl);
30410
30537
  leader = stop.leader;
30411
30538
  } else {
30412
30539
  tabX = Math.floor(cursor / step + 1 + EPS) * step;
30413
- align = "l";
30540
+ align2 = "l";
30414
30541
  leader = void 0;
30415
30542
  }
30416
30543
  let left;
30417
- if (align === "ctr") {
30544
+ if (align2 === "ctr") {
30418
30545
  left = tabX - width / 2;
30419
- } else if (align === "r") {
30546
+ } else if (align2 === "r") {
30420
30547
  left = tabX - width;
30421
- } else if (align === "dec") {
30548
+ } else if (align2 === "dec") {
30422
30549
  const anchor = text$1.decimalAnchorIndex(text3, options.decimalSeparator ?? ".");
30423
30550
  left = tabX - (anchor >= text3.length ? width : measure2(text3.slice(0, anchor)));
30424
30551
  } else {
@@ -30852,11 +30979,11 @@ function buildTextFillCss(style) {
30852
30979
  }
30853
30980
  }
30854
30981
  if (style.textFillBlipUrl) {
30855
- const tile4 = style.textFillBlipMode === "tile";
30982
+ const tile5 = style.textFillBlipMode === "tile";
30856
30983
  return {
30857
30984
  background: `url("${style.textFillBlipUrl}")`,
30858
- backgroundSize: tile4 ? "auto" : "100% 100%",
30859
- backgroundRepeat: tile4 ? "repeat" : "no-repeat",
30985
+ backgroundSize: tile5 ? "auto" : "100% 100%",
30986
+ backgroundRepeat: tile5 ? "repeat" : "no-repeat",
30860
30987
  backgroundClip: "text",
30861
30988
  WebkitBackgroundClip: "text",
30862
30989
  WebkitTextFillColor: "transparent"
@@ -31278,16 +31405,16 @@ function buildParagraphs(element, fieldContext, segmentOverrides, options) {
31278
31405
  pptx.hasTextProperties(element) ? element.textStyle?.fontSize : void 0,
31279
31406
  fontScale
31280
31407
  );
31281
- const align = resolveParagraphAlign(
31408
+ const align2 = resolveParagraphAlign(
31282
31409
  paraSegments.map((seg) => ({ segment: seg })),
31283
31410
  bodyStyle?.align
31284
31411
  );
31285
31412
  const paragraphStyle = getKinsokuLineBreakStyles(geometryOverrides);
31286
- const cssAlign = resolveCssTextAlign(align, rtl === true);
31413
+ const cssAlign = resolveCssTextAlign(align2, rtl === true);
31287
31414
  if (cssAlign !== void 0) {
31288
31415
  paragraphStyle.textAlign = cssAlign;
31289
31416
  }
31290
- const textAlignLast = resolveTextAlignLast(align);
31417
+ const textAlignLast = resolveTextAlignLast(align2);
31291
31418
  if (textAlignLast !== void 0) {
31292
31419
  paragraphStyle.textAlignLast = textAlignLast;
31293
31420
  }
@@ -36747,8 +36874,8 @@ function lineSpacingPatch(el, multiplier, exactPt) {
36747
36874
  lineSpacingExactPt: void 0
36748
36875
  });
36749
36876
  }
36750
- function alignPatch(el, align) {
36751
- return textAdvancedPatch(el, { align });
36877
+ function alignPatch(el, align2) {
36878
+ return textAdvancedPatch(el, { align: align2 });
36752
36879
  }
36753
36880
  function vAlignPatch(el, vAlign) {
36754
36881
  return textAdvancedPatch(el, { vAlign });
@@ -42417,7 +42544,11 @@ function buildReviewRibbon(t, state) {
42417
42544
  ]),
42418
42545
  group("review.compare", "pptx.review.changes", "Changes", [
42419
42546
  command("review.compare.markAllRead", "pptx.review.markAllRead", "Mark All as Read", "copy", {
42420
- disabled: true
42547
+ disabled: true,
42548
+ title: label(
42549
+ "pptx.review.markAllReadHint",
42550
+ "Comments in this viewer keep no read state, so there is nothing to mark"
42551
+ )
42421
42552
  }),
42422
42553
  command("review.compare.compare", "pptx.ribbon.compare", "Compare", "compare", {
42423
42554
  disabled: !state.editable || !state.canCompare,
@@ -42440,13 +42571,37 @@ function buildReviewRibbon(t, state) {
42440
42571
  }
42441
42572
  ),
42442
42573
  command("review.comments.delete", "pptx.common.delete", "Delete", "trash", {
42443
- disabled: true
42574
+ disabled: !state.editable || !state.canNavigateComments || !state.hasActiveComment,
42575
+ title: state.hasActiveComment ? label("pptx.review.deleteCommentTitle", "Delete the selected comment") : label(
42576
+ "pptx.review.noSelectedCommentHint",
42577
+ "Use Previous or Next to select a comment first"
42578
+ )
42444
42579
  }),
42580
+ command(
42581
+ "review.comments.deleteSlide",
42582
+ "pptx.review.deleteSlideComments",
42583
+ "Delete Slide Comments",
42584
+ "trash",
42585
+ {
42586
+ disabled: !state.editable || !state.canNavigateComments || !state.commentCount
42587
+ }
42588
+ ),
42589
+ command(
42590
+ "review.comments.deleteAll",
42591
+ "pptx.review.deleteAllComments",
42592
+ "Delete All Comments",
42593
+ "trash",
42594
+ {
42595
+ disabled: !state.editable || !state.canNavigateComments || !state.totalCommentCount
42596
+ }
42597
+ ),
42445
42598
  command("review.comments.previous", "pptx.common.previous", "Previous", "chevronLeft", {
42446
- disabled: true
42599
+ disabled: !state.canNavigateComments || !state.totalCommentCount,
42600
+ title: state.totalCommentCount ? label("pptx.review.previousCommentTitle", "Go to the previous comment") : label("pptx.review.noCommentsHint", "This presentation has no comments")
42447
42601
  }),
42448
42602
  command("review.comments.next", "pptx.common.next", "Next", "chevronRight", {
42449
- disabled: true
42603
+ disabled: !state.canNavigateComments || !state.totalCommentCount,
42604
+ title: state.totalCommentCount ? label("pptx.review.nextCommentTitle", "Go to the next comment") : label("pptx.review.noCommentsHint", "This presentation has no comments")
42450
42605
  }),
42451
42606
  command(
42452
42607
  "review.comments.showComments",
@@ -50630,6 +50785,10 @@ var ACTION_BUTTONS = {
50630
50785
  actionButtonMovie: { label: "Movie" },
50631
50786
  actionButtonBlank: { label: "Custom" }
50632
50787
  };
50788
+ function actionButtonLabelKey(shapeType) {
50789
+ const suffix = shapeType.replace(/^actionButton/u, "");
50790
+ return `pptx.insert.actionButton.${suffix.charAt(0).toLowerCase()}${suffix.slice(1)}`;
50791
+ }
50633
50792
  function isActionButton(shapeType) {
50634
50793
  return shapeType in ACTION_BUTTONS;
50635
50794
  }
@@ -52722,6 +52881,209 @@ function toggleCommentResolvedInList(comments, id) {
52722
52881
  return changed ? next : null;
52723
52882
  }
52724
52883
 
52884
+ // src/pptx/render/comment-navigation.ts
52885
+ function listCommentLocations(slides) {
52886
+ const out = [];
52887
+ slides.forEach((slide, slideIndex) => {
52888
+ for (const comment of slide.comments ?? []) {
52889
+ out.push({ slideIndex, commentId: comment.id });
52890
+ }
52891
+ });
52892
+ return out;
52893
+ }
52894
+ function findCommentLocation(slides, id) {
52895
+ if (!id) {
52896
+ return null;
52897
+ }
52898
+ for (let slideIndex = 0; slideIndex < slides.length; slideIndex += 1) {
52899
+ for (const comment of slides[slideIndex]?.comments ?? []) {
52900
+ if (comment.id === id || containsReply(comment, id)) {
52901
+ return { slideIndex, commentId: comment.id };
52902
+ }
52903
+ }
52904
+ }
52905
+ return null;
52906
+ }
52907
+ function containsReply(comment, id) {
52908
+ return (comment.replies ?? []).some((reply) => reply.id === id || containsReply(reply, id));
52909
+ }
52910
+ function adjacentComment(slides, current, currentSlide, direction) {
52911
+ const all = listCommentLocations(slides);
52912
+ if (all.length === 0) {
52913
+ return null;
52914
+ }
52915
+ const at = current ? all.findIndex(
52916
+ (item4) => item4.slideIndex === current.slideIndex && item4.commentId === current.commentId
52917
+ ) : -1;
52918
+ if (at >= 0) {
52919
+ return all[(at + direction + all.length) % all.length] ?? null;
52920
+ }
52921
+ if (direction === 1) {
52922
+ return all.find((item4) => item4.slideIndex >= currentSlide) ?? all[0] ?? null;
52923
+ }
52924
+ return [...all].reverse().find((item4) => item4.slideIndex <= currentSlide) ?? all.at(-1) ?? null;
52925
+ }
52926
+ function removeCommentFromSlides(slides, id) {
52927
+ for (let slideIndex = 0; slideIndex < slides.length; slideIndex += 1) {
52928
+ const slide = slides[slideIndex];
52929
+ const next = slide?.comments ? removeCommentFromList(slide.comments, id) : null;
52930
+ if (slide && next) {
52931
+ return slides.map(
52932
+ (candidate, index) => index === slideIndex ? { ...candidate, comments: next } : candidate
52933
+ );
52934
+ }
52935
+ }
52936
+ return null;
52937
+ }
52938
+ function clearSlideComments(slides, slideIndex) {
52939
+ if (!slides[slideIndex]?.comments?.length) {
52940
+ return null;
52941
+ }
52942
+ return slides.map((slide, index) => index === slideIndex ? { ...slide, comments: [] } : slide);
52943
+ }
52944
+ function clearAllComments(slides) {
52945
+ if (!slides.some((slide) => slide.comments?.length)) {
52946
+ return null;
52947
+ }
52948
+ return slides.map((slide) => slide.comments?.length ? { ...slide, comments: [] } : slide);
52949
+ }
52950
+ var COMMENT_ID_ATTR = "data-comment-id";
52951
+ var COMMENT_ACTIVE_ATTR = "data-comment-active";
52952
+ var ACTIVE_STYLE_ID = "pptx-comment-active-style";
52953
+ function ensureActiveStyle(doc) {
52954
+ if (!doc || doc.getElementById(ACTIVE_STYLE_ID) || !doc.head) {
52955
+ return;
52956
+ }
52957
+ const style = doc.createElement("style");
52958
+ style.id = ACTIVE_STYLE_ID;
52959
+ style.textContent = `[${COMMENT_ACTIVE_ATTR}]{outline:2px solid #2563eb;outline-offset:1px;}`;
52960
+ doc.head.append(style);
52961
+ }
52962
+ function escapeAttr(value) {
52963
+ return value.replace(/["\\]/gu, "\\$&");
52964
+ }
52965
+ function revealComment(root, id) {
52966
+ for (const stale of root.querySelectorAll(`[${COMMENT_ACTIVE_ATTR}]`)) {
52967
+ stale.removeAttribute(COMMENT_ACTIVE_ATTR);
52968
+ }
52969
+ const row = root.querySelector(`[${COMMENT_ID_ATTR}="${escapeAttr(id)}"]`);
52970
+ if (!row) {
52971
+ return false;
52972
+ }
52973
+ ensureActiveStyle(row.ownerDocument);
52974
+ row.setAttribute(COMMENT_ACTIVE_ATTR, "true");
52975
+ if (!row.hasAttribute("tabindex")) {
52976
+ row.setAttribute("tabindex", "-1");
52977
+ }
52978
+ row.scrollIntoView?.({ block: "nearest" });
52979
+ row.focus({ preventScroll: true });
52980
+ return true;
52981
+ }
52982
+ function trackActiveComment(root, onChange) {
52983
+ const handler = (event) => {
52984
+ const target = event.target;
52985
+ const row = target instanceof Element ? target.closest(`[${COMMENT_ID_ATTR}]`) : null;
52986
+ const id = row?.getAttribute(COMMENT_ID_ATTR);
52987
+ if (id) {
52988
+ onChange(id);
52989
+ }
52990
+ };
52991
+ root.addEventListener("focusin", handler);
52992
+ root.addEventListener("click", handler);
52993
+ return () => {
52994
+ root.removeEventListener("focusin", handler);
52995
+ root.removeEventListener("click", handler);
52996
+ };
52997
+ }
52998
+
52999
+ // src/pptx/render/review-comment-commands.ts
53000
+ var REVIEW_COMMENT_COMMAND_IDS = /* @__PURE__ */ new Set([
53001
+ "review.comments.previous",
53002
+ "review.comments.next",
53003
+ "review.comments.delete",
53004
+ "review.comments.deleteSlide",
53005
+ "review.comments.deleteAll"
53006
+ ]);
53007
+ function isReviewCommentCommand(id) {
53008
+ return REVIEW_COMMENT_COMMAND_IDS.has(id);
53009
+ }
53010
+ function commentCounts(slides, currentSlide) {
53011
+ return {
53012
+ slide: slides[currentSlide]?.comments?.length ?? 0,
53013
+ total: slides.reduce((sum, slide) => sum + (slide.comments?.length ?? 0), 0)
53014
+ };
53015
+ }
53016
+ function revealSoon(host2, id) {
53017
+ const view2 = host2.root?.() ?? (typeof document === "undefined" ? null : document);
53018
+ if (!view2) {
53019
+ return;
53020
+ }
53021
+ let attempts = 0;
53022
+ const attempt = () => {
53023
+ attempts += 1;
53024
+ if (!revealComment(view2, id) && attempts < 60 && typeof requestAnimationFrame === "function") {
53025
+ requestAnimationFrame(attempt);
53026
+ }
53027
+ };
53028
+ attempt();
53029
+ }
53030
+ function changesFor(before, after) {
53031
+ const changes = [];
53032
+ after.forEach((slide, slideIndex) => {
53033
+ if (slide.comments !== before[slideIndex]?.comments) {
53034
+ changes.push({ slideIndex, comments: slide.comments ?? [] });
53035
+ }
53036
+ });
53037
+ return changes;
53038
+ }
53039
+ function runReviewCommentCommand(id, host2, activeId) {
53040
+ const slides = host2.slides();
53041
+ switch (id) {
53042
+ case "review.comments.previous":
53043
+ case "review.comments.next": {
53044
+ const target = adjacentComment(
53045
+ slides,
53046
+ findCommentLocation(slides, activeId),
53047
+ host2.currentSlide(),
53048
+ id === "review.comments.next" ? 1 : -1
53049
+ );
53050
+ if (!target) {
53051
+ return void 0;
53052
+ }
53053
+ host2.ensureCommentsOpen();
53054
+ if (target.slideIndex !== host2.currentSlide()) {
53055
+ host2.goToSlide(target.slideIndex);
53056
+ }
53057
+ revealSoon(host2, target.commentId);
53058
+ return target.commentId;
53059
+ }
53060
+ case "review.comments.delete": {
53061
+ const next = activeId ? removeCommentFromSlides(slides, activeId) : null;
53062
+ if (!next) {
53063
+ return void 0;
53064
+ }
53065
+ host2.applyComments(changesFor(slides, next));
53066
+ return null;
53067
+ }
53068
+ case "review.comments.deleteSlide": {
53069
+ const next = clearSlideComments(slides, host2.currentSlide());
53070
+ if (!next) {
53071
+ return void 0;
53072
+ }
53073
+ host2.applyComments(changesFor(slides, next));
53074
+ return findCommentLocation(next, activeId) ? activeId : null;
53075
+ }
53076
+ case "review.comments.deleteAll": {
53077
+ const next = clearAllComments(slides);
53078
+ if (!next) {
53079
+ return void 0;
53080
+ }
53081
+ host2.applyComments(changesFor(slides, next));
53082
+ return null;
53083
+ }
53084
+ }
53085
+ }
53086
+
52725
53087
  // src/pptx/render/comment-mentions.ts
52726
53088
  var COMMENT_MENTION_ATTRIBUTE = "data-pptx-comment-mention";
52727
53089
  var COMMENT_MENTION_CLASS = "pptx-comment-mention";
@@ -53825,60 +54187,76 @@ function shapeQuickStylePatch(el, style) {
53825
54187
  const base2 = pptx.hasShapeProperties(el) ? el.shapeStyle ?? {} : {};
53826
54188
  return { shapeStyle: { ...base2, ...style } };
53827
54189
  }
54190
+ function shapeQuickStyleLabel(quickStyle, translate) {
54191
+ return i18n.translateOr(translate, quickStyle.labelKey, quickStyle.name);
54192
+ }
53828
54193
  var SHAPE_QUICK_STYLES = [
53829
54194
  // Row 1: Solid fills (theme-inspired palette)
53830
54195
  {
53831
54196
  name: "Blue Fill",
54197
+ labelKey: "pptx.shape.quickStylePreset.blueFill",
53832
54198
  style: { fillMode: "solid", fillColor: "#4472C4", strokeColor: "#2F5597", strokeWidth: 1 }
53833
54199
  },
53834
54200
  {
53835
54201
  name: "Orange Fill",
54202
+ labelKey: "pptx.shape.quickStylePreset.orangeFill",
53836
54203
  style: { fillMode: "solid", fillColor: "#ED7D31", strokeColor: "#C55A11", strokeWidth: 1 }
53837
54204
  },
53838
54205
  {
53839
54206
  name: "Grey Fill",
54207
+ labelKey: "pptx.shape.quickStylePreset.greyFill",
53840
54208
  style: { fillMode: "solid", fillColor: "#A5A5A5", strokeColor: "#7F7F7F", strokeWidth: 1 }
53841
54209
  },
53842
54210
  {
53843
54211
  name: "Gold Fill",
54212
+ labelKey: "pptx.shape.quickStylePreset.goldFill",
53844
54213
  style: { fillMode: "solid", fillColor: "#FFC000", strokeColor: "#BF9000", strokeWidth: 1 }
53845
54214
  },
53846
54215
  {
53847
54216
  name: "Green Fill",
54217
+ labelKey: "pptx.shape.quickStylePreset.greenFill",
53848
54218
  style: { fillMode: "solid", fillColor: "#70AD47", strokeColor: "#548235", strokeWidth: 1 }
53849
54219
  },
53850
54220
  {
53851
54221
  name: "Teal Fill",
54222
+ labelKey: "pptx.shape.quickStylePreset.tealFill",
53852
54223
  style: { fillMode: "solid", fillColor: "#5B9BD5", strokeColor: "#2E75B6", strokeWidth: 1 }
53853
54224
  },
53854
54225
  // Row 2: Outline-only styles
53855
54226
  {
53856
54227
  name: "Blue Outline",
54228
+ labelKey: "pptx.shape.quickStylePreset.blueOutline",
53857
54229
  style: { fillMode: "none", fillColor: "transparent", strokeColor: "#4472C4", strokeWidth: 2 }
53858
54230
  },
53859
54231
  {
53860
54232
  name: "Orange Outline",
54233
+ labelKey: "pptx.shape.quickStylePreset.orangeOutline",
53861
54234
  style: { fillMode: "none", fillColor: "transparent", strokeColor: "#ED7D31", strokeWidth: 2 }
53862
54235
  },
53863
54236
  {
53864
54237
  name: "Grey Outline",
54238
+ labelKey: "pptx.shape.quickStylePreset.greyOutline",
53865
54239
  style: { fillMode: "none", fillColor: "transparent", strokeColor: "#A5A5A5", strokeWidth: 2 }
53866
54240
  },
53867
54241
  {
53868
54242
  name: "Gold Outline",
54243
+ labelKey: "pptx.shape.quickStylePreset.goldOutline",
53869
54244
  style: { fillMode: "none", fillColor: "transparent", strokeColor: "#FFC000", strokeWidth: 2 }
53870
54245
  },
53871
54246
  {
53872
54247
  name: "Green Outline",
54248
+ labelKey: "pptx.shape.quickStylePreset.greenOutline",
53873
54249
  style: { fillMode: "none", fillColor: "transparent", strokeColor: "#70AD47", strokeWidth: 2 }
53874
54250
  },
53875
54251
  {
53876
54252
  name: "Teal Outline",
54253
+ labelKey: "pptx.shape.quickStylePreset.tealOutline",
53877
54254
  style: { fillMode: "none", fillColor: "transparent", strokeColor: "#5B9BD5", strokeWidth: 2 }
53878
54255
  },
53879
54256
  // Row 3: Fills with shadow
53880
54257
  {
53881
54258
  name: "Blue Shadow",
54259
+ labelKey: "pptx.shape.quickStylePreset.blueShadow",
53882
54260
  style: {
53883
54261
  fillMode: "solid",
53884
54262
  fillColor: "#4472C4",
@@ -53891,6 +54269,7 @@ var SHAPE_QUICK_STYLES = [
53891
54269
  },
53892
54270
  {
53893
54271
  name: "Orange Shadow",
54272
+ labelKey: "pptx.shape.quickStylePreset.orangeShadow",
53894
54273
  style: {
53895
54274
  fillMode: "solid",
53896
54275
  fillColor: "#ED7D31",
@@ -53903,6 +54282,7 @@ var SHAPE_QUICK_STYLES = [
53903
54282
  },
53904
54283
  {
53905
54284
  name: "Dark Fill",
54285
+ labelKey: "pptx.shape.quickStylePreset.darkFill",
53906
54286
  style: {
53907
54287
  fillMode: "solid",
53908
54288
  fillColor: "#2F5597",
@@ -53915,6 +54295,7 @@ var SHAPE_QUICK_STYLES = [
53915
54295
  },
53916
54296
  {
53917
54297
  name: "Dark Orange",
54298
+ labelKey: "pptx.shape.quickStylePreset.darkOrange",
53918
54299
  style: {
53919
54300
  fillMode: "solid",
53920
54301
  fillColor: "#C55A11",
@@ -53927,6 +54308,7 @@ var SHAPE_QUICK_STYLES = [
53927
54308
  },
53928
54309
  {
53929
54310
  name: "Dark Green",
54311
+ labelKey: "pptx.shape.quickStylePreset.darkGreen",
53930
54312
  style: {
53931
54313
  fillMode: "solid",
53932
54314
  fillColor: "#548235",
@@ -53939,6 +54321,7 @@ var SHAPE_QUICK_STYLES = [
53939
54321
  },
53940
54322
  {
53941
54323
  name: "White Fill",
54324
+ labelKey: "pptx.shape.quickStylePreset.whiteFill",
53942
54325
  style: {
53943
54326
  fillMode: "solid",
53944
54327
  fillColor: "#FFFFFF",
@@ -54463,23 +54846,24 @@ function describeFontEmbedding(embeddedFamilies) {
54463
54846
  function embeddedFontSaveOptions(embedFonts) {
54464
54847
  return embedFonts ? { embedTrueTypeFonts: true } : { embeddedFontList: null, embedTrueTypeFonts: false };
54465
54848
  }
54466
-
54467
- // src/form/color-swatches.ts
54468
54849
  var OFFICE_COLOR_SWATCHES = [
54469
- { hex: "#000000", label: "Black" },
54470
- { hex: "#ffffff", label: "White" },
54471
- { hex: "#ff0000", label: "Red" },
54472
- { hex: "#00aa00", label: "Green" },
54473
- { hex: "#0000ff", label: "Blue" },
54474
- { hex: "#ff8800", label: "Orange" },
54475
- { hex: "#8800cc", label: "Purple" },
54476
- { hex: "#00cccc", label: "Cyan" },
54477
- { hex: "#ff69b4", label: "Pink" },
54478
- { hex: "#808080", label: "Gray" }
54850
+ { hex: "#000000", label: "Black", labelKey: "pptx.colorPicker.standard.black" },
54851
+ { hex: "#ffffff", label: "White", labelKey: "pptx.colorPicker.standard.white" },
54852
+ { hex: "#ff0000", label: "Red", labelKey: "pptx.colorPicker.standard.red" },
54853
+ { hex: "#00aa00", label: "Green", labelKey: "pptx.colorPicker.standard.green" },
54854
+ { hex: "#0000ff", label: "Blue", labelKey: "pptx.colorPicker.standard.blue" },
54855
+ { hex: "#ff8800", label: "Orange", labelKey: "pptx.colorPicker.standard.orange" },
54856
+ { hex: "#8800cc", label: "Purple", labelKey: "pptx.colorPicker.standard.purple" },
54857
+ { hex: "#00cccc", label: "Cyan", labelKey: "pptx.colorPicker.standard.cyan" },
54858
+ { hex: "#ff69b4", label: "Pink", labelKey: "pptx.colorPicker.standard.pink" },
54859
+ { hex: "#808080", label: "Gray", labelKey: "pptx.colorPicker.standard.gray" }
54479
54860
  ];
54480
54861
  var OFFICE_COLOR_SWATCH_HEXES = OFFICE_COLOR_SWATCHES.map(
54481
54862
  (swatch) => swatch.hex
54482
54863
  );
54864
+ function officeColorSwatchLabel(swatch, translate) {
54865
+ return i18n.translateOr(translate, swatch.labelKey, swatch.label);
54866
+ }
54483
54867
 
54484
54868
  // src/pptx/render/theme-color-field-commit.ts
54485
54869
  function gradientStopColorCommitPatch(commit) {
@@ -54701,15 +55085,15 @@ function resolveZoomNavigationTarget(element) {
54701
55085
  transitionDurationMs: element.transitionDurationMs
54702
55086
  };
54703
55087
  }
54704
- function resolveSummaryZoomTileNavigationTarget(tile4) {
54705
- if (!tile4) {
55088
+ function resolveSummaryZoomTileNavigationTarget(tile5) {
55089
+ if (!tile5) {
54706
55090
  return void 0;
54707
55091
  }
54708
55092
  return {
54709
- targetSlideIndex: tile4.targetSlideIndex,
54710
- targetSectionId: tile4.sectionId,
54711
- returnToParent: tile4.returnToParent !== false,
54712
- transitionDurationMs: tile4.transitionDurationMs
55093
+ targetSlideIndex: tile5.targetSlideIndex,
55094
+ targetSectionId: tile5.sectionId,
55095
+ returnToParent: tile5.returnToParent !== false,
55096
+ transitionDurationMs: tile5.transitionDurationMs
54713
55097
  };
54714
55098
  }
54715
55099
  function resolveZoomExcursionEndIndex(target, slides) {
@@ -56317,6 +56701,7 @@ var RIBBON_CONTEXTUAL_TABS = [
56317
56701
  { id: "shapeFormat", labelKey: "pptx.ribbon.tab.shapeFormat" },
56318
56702
  { id: "pictureFormat", labelKey: "pptx.ribbon.tab.pictureFormat" },
56319
56703
  { id: "tableDesign", labelKey: "pptx.ribbon.tab.tableDesign" },
56704
+ { id: "tableLayout", labelKey: "pptx.ribbon.tab.tableLayout" },
56320
56705
  { id: "chartDesign", labelKey: "pptx.ribbon.tab.chartDesign" },
56321
56706
  { id: "smartArtDesign", labelKey: "pptx.ribbon.tab.smartArtDesign" }
56322
56707
  ];
@@ -58158,6 +58543,8 @@ var RIBBON_CATALOG_TAIL_TABS = {
58158
58543
  controls: {
58159
58544
  newComment: "New Comment",
58160
58545
  delete: "Delete",
58546
+ deleteSlide: "Delete Slide Comments",
58547
+ deleteAll: "Delete All Comments",
58161
58548
  previous: "Previous",
58162
58549
  next: "Next",
58163
58550
  showComments: "Show Comments"
@@ -58244,6 +58631,40 @@ var RIBBON_CATALOG_TAIL_TABS = {
58244
58631
  tableDesign: {
58245
58632
  tableStyles: { label: "Table Styles", controls: { gallery: "Table Styles gallery" } }
58246
58633
  },
58634
+ tableLayout: {
58635
+ table: { label: "Table", controls: { select: "Select", viewGridlines: "View Gridlines" } },
58636
+ rowsColumns: {
58637
+ label: "Rows & Columns",
58638
+ controls: {
58639
+ deleteRows: "Delete Rows",
58640
+ deleteColumns: "Delete Columns",
58641
+ insertAbove: "Insert Above",
58642
+ insertBelow: "Insert Below",
58643
+ insertLeft: "Insert Left",
58644
+ insertRight: "Insert Right"
58645
+ }
58646
+ },
58647
+ merge: { label: "Merge", controls: { mergeCells: "Merge Cells", splitCells: "Split Cells" } },
58648
+ cellSize: {
58649
+ label: "Cell Size",
58650
+ controls: { distributeRows: "Distribute Rows", distributeColumns: "Distribute Columns" }
58651
+ },
58652
+ alignment: {
58653
+ label: "Alignment",
58654
+ controls: {
58655
+ alignLeft: "Align Left",
58656
+ alignCenter: "Center",
58657
+ alignRight: "Align Right",
58658
+ alignTop: "Align Top",
58659
+ alignMiddle: "Center Vertically",
58660
+ alignBottom: "Align Bottom",
58661
+ textDirection: "Text Direction",
58662
+ cellMargins: "Cell Margins"
58663
+ }
58664
+ },
58665
+ tableSize: { label: "Table Size", controls: { size: "Table Size" } },
58666
+ arrange: { label: "Arrange", controls: { arrange: "Arrange" } }
58667
+ },
58247
58668
  chartDesign: {
58248
58669
  chartLayouts: { label: "Chart Layouts", controls: { quickLayout: "Quick Layout gallery" } },
58249
58670
  chartStyles: {
@@ -61734,6 +62155,15 @@ function fallbackResolveStyleMatrix(styleXml, colorMap) {
61734
62155
 
61735
62156
  // src/pptx/render/ribbon-galleries/shape-styles-gallery.ts
61736
62157
  var TILE4 = { width: 44, height: 32 };
62158
+ var COLUMN_LABEL_KEYS = {
62159
+ dk1: "pptx.themeColor.dark1",
62160
+ accent1: "pptx.themeColor.accent1",
62161
+ accent2: "pptx.themeColor.accent2",
62162
+ accent3: "pptx.themeColor.accent3",
62163
+ accent4: "pptx.themeColor.accent4",
62164
+ accent5: "pptx.themeColor.accent5",
62165
+ accent6: "pptx.themeColor.accent6"
62166
+ };
61737
62167
  var COLUMN_LABELS = {
61738
62168
  dk1: "Dark 1",
61739
62169
  accent1: "Accent 1",
@@ -61860,6 +62290,7 @@ function item2(block, row, rowIndex, col, ctx) {
61860
62290
  id,
61861
62291
  labelKey: `pptx.gallery.shapeStyles.${row.key}`,
61862
62292
  labelParams: { color: COLUMN_LABELS[column2] },
62293
+ labelParamKeys: { color: { key: COLUMN_LABEL_KEYS[column2], fallback: COLUMN_LABELS[column2] } },
61863
62294
  label: `${row.label} - ${COLUMN_LABELS[column2]}`,
61864
62295
  previewSvg: shapeTileSvg(tileSpecFromShapeStyle(`gss-${id}`, style, TILE4, resolved?.fontColor)),
61865
62296
  applied: styleMatches(ctx.element, style)
@@ -62589,6 +63020,408 @@ var SMARTART_LAYOUTS_GALLERY = {
62589
63020
  return patch ? { kind: "element", ...patch } : null;
62590
63021
  }
62591
63022
  };
63023
+ function tableLayoutCells(state) {
63024
+ if (!state) {
63025
+ return [];
63026
+ }
63027
+ if (state.selectedCells && state.selectedCells.length > 0) {
63028
+ return state.selectedCells.map(({ row, col }) => ({ row, column: col }));
63029
+ }
63030
+ return [{ row: state.rowIndex, column: state.columnIndex }];
63031
+ }
63032
+ function selectionBounds2(cells) {
63033
+ if (cells.length === 0) {
63034
+ return null;
63035
+ }
63036
+ return {
63037
+ minRow: Math.min(...cells.map((c) => c.row)),
63038
+ maxRow: Math.max(...cells.map((c) => c.row)),
63039
+ minColumn: Math.min(...cells.map((c) => c.column)),
63040
+ maxColumn: Math.max(...cells.map((c) => c.column))
63041
+ };
63042
+ }
63043
+ function elementResult(before, after) {
63044
+ if (after === before || !after.tableData) {
63045
+ return null;
63046
+ }
63047
+ const patch = { tableData: after.tableData };
63048
+ if (after.rawXml !== before.rawXml) {
63049
+ patch.rawXml = after.rawXml;
63050
+ }
63051
+ return { kind: "element", elementId: before.id, patch };
63052
+ }
63053
+ function dataResult(element, next, syncMerges = false) {
63054
+ if (!next || next === element.tableData) {
63055
+ return null;
63056
+ }
63057
+ const patch = { tableData: next };
63058
+ const rawXml = syncMerges ? pptx.updateMergeAttrsInRawXml(element, next) : void 0;
63059
+ if (rawXml) {
63060
+ patch.rawXml = rawXml;
63061
+ }
63062
+ return { kind: "element", elementId: element.id, patch };
63063
+ }
63064
+ var asCoords = (cells) => cells.map((c) => ({ row: c.row, col: c.column }));
63065
+ function insertNextToSelection(element, cells, side) {
63066
+ const data = element.tableData;
63067
+ if (!data) {
63068
+ return null;
63069
+ }
63070
+ const bounds = selectionBounds2(cells);
63071
+ const lastRow = data.rows.length - 1;
63072
+ const lastColumn = data.columnWidths.length - 1;
63073
+ switch (side) {
63074
+ case "above":
63075
+ return elementResult(element, tableDataGridOps.insertTableElementRow(element, bounds?.minRow ?? 0, "above"));
63076
+ case "below":
63077
+ return elementResult(
63078
+ element,
63079
+ tableDataGridOps.insertTableElementRow(element, bounds?.maxRow ?? lastRow, "below")
63080
+ );
63081
+ case "left":
63082
+ return elementResult(
63083
+ element,
63084
+ tableDataGridOps.insertTableElementColumn(element, bounds?.minColumn ?? 0, "left")
63085
+ );
63086
+ case "right":
63087
+ return elementResult(
63088
+ element,
63089
+ tableDataGridOps.insertTableElementColumn(element, bounds?.maxColumn ?? lastColumn, "right")
63090
+ );
63091
+ }
63092
+ }
63093
+ function deleteSelected(element, cells, axis) {
63094
+ const bounds = selectionBounds2(cells);
63095
+ if (!bounds) {
63096
+ return null;
63097
+ }
63098
+ let next = element;
63099
+ const from = axis === "row" ? bounds.minRow : bounds.minColumn;
63100
+ const to = axis === "row" ? bounds.maxRow : bounds.maxColumn;
63101
+ for (let index = to; index >= from; index -= 1) {
63102
+ next = axis === "row" ? tableDataGridOps.removeTableElementRow(next, index) : tableDataGridOps.removeTableElementColumn(next, index);
63103
+ }
63104
+ return elementResult(element, next);
63105
+ }
63106
+ function canMergeSelection(data, cells) {
63107
+ return cells.length > 1 && tableMerge.canMergeCells(asCoords(cells), data);
63108
+ }
63109
+ function canSplitSelection(data, cells) {
63110
+ return cells.some((c) => tableMerge.canSplitCell(c.row, c.column, data));
63111
+ }
63112
+ function mergeSelection(element, cells) {
63113
+ const data = element.tableData;
63114
+ if (!data || !canMergeSelection(data, cells)) {
63115
+ return null;
63116
+ }
63117
+ return dataResult(element, tableMerge.mergeCells(asCoords(cells), data), true);
63118
+ }
63119
+ function splitSelection(element, cells) {
63120
+ let data = element.tableData;
63121
+ if (!data) {
63122
+ return null;
63123
+ }
63124
+ for (const cell of cells) {
63125
+ if (tableMerge.canSplitCell(cell.row, cell.column, data)) {
63126
+ data = tableMerge.splitCell(cell.row, cell.column, data);
63127
+ }
63128
+ }
63129
+ return dataResult(element, data, true);
63130
+ }
63131
+ function distribute(element, cells, axis) {
63132
+ const data = element.tableData;
63133
+ if (!data) {
63134
+ return null;
63135
+ }
63136
+ const bounds = selectionBounds2(cells);
63137
+ if (axis === "row") {
63138
+ const spans2 = bounds !== null && bounds.maxRow > bounds.minRow;
63139
+ const from2 = spans2 ? bounds.minRow : 0;
63140
+ const to2 = spans2 ? bounds.maxRow : data.rows.length - 1;
63141
+ const evened = evenRowHeights(data.rows.slice(from2, to2 + 1));
63142
+ const rows = data.rows.map(
63143
+ (row, index) => index >= from2 && index <= to2 ? evened[index - from2] ?? row : row
63144
+ );
63145
+ return dataResult(element, { ...data, rows });
63146
+ }
63147
+ const count = data.columnWidths.length;
63148
+ const spans = bounds !== null && bounds.maxColumn > bounds.minColumn;
63149
+ const from = spans ? bounds.minColumn : 0;
63150
+ const to = spans ? bounds.maxColumn : count - 1;
63151
+ if (from === 0 && to === count - 1) {
63152
+ return dataResult(element, { ...data, columnWidths: evenColumnWidths(count) });
63153
+ }
63154
+ const slice = data.columnWidths.slice(from, to + 1);
63155
+ const share = slice.reduce((sum, width) => sum + width, 0) / slice.length;
63156
+ return dataResult(element, {
63157
+ ...data,
63158
+ columnWidths: data.columnWidths.map(
63159
+ (width, index) => index >= from && index <= to ? share : width
63160
+ )
63161
+ });
63162
+ }
63163
+ function styleCells(element, cells, patch, clear = []) {
63164
+ const data = element.tableData;
63165
+ if (!data) {
63166
+ return null;
63167
+ }
63168
+ const keys = new Set(cells.map((c) => `${c.row}:${c.column}`));
63169
+ const all = keys.size === 0;
63170
+ const restyle = (style) => {
63171
+ const next = { ...style, ...patch };
63172
+ for (const key of clear) {
63173
+ delete next[key];
63174
+ }
63175
+ return next;
63176
+ };
63177
+ return dataResult(element, {
63178
+ ...data,
63179
+ rows: data.rows.map((row, r) => ({
63180
+ ...row,
63181
+ cells: row.cells.map(
63182
+ (cell, c) => all || keys.has(`${r}:${c}`) ? { ...cell, style: restyle(cell.style) } : cell
63183
+ )
63184
+ }))
63185
+ });
63186
+ }
63187
+
63188
+ // src/pptx/render/ribbon-galleries/table-layout-commands.ts
63189
+ var NEEDS_CELLS = {
63190
+ key: "pptx.gallery.tableLayout.needsCells",
63191
+ text: "Select cells in the table to use this command"
63192
+ };
63193
+ var NO_ENGINE2 = {
63194
+ key: "pptx.gallery.smartArtCommand.unsupported",
63195
+ text: "Not available yet in this viewer"
63196
+ };
63197
+ var IN_INSPECTOR = {
63198
+ key: "pptx.gallery.tableLayout.inInspector",
63199
+ text: "Set this in the Inspector while the table is selected"
63200
+ };
63201
+ var IN_HOME = {
63202
+ key: "pptx.gallery.tableLayout.inHome",
63203
+ text: "Use Home > Arrange"
63204
+ };
63205
+ var hasCells = (t) => t.cells.length > 0;
63206
+ var align = (key) => {
63207
+ return (t) => styleCells(t.element, t.cells, { align: key });
63208
+ };
63209
+ var valign = (key) => {
63210
+ return (t) => styleCells(t.element, t.cells, { vAlign: key });
63211
+ };
63212
+ var SPECS2 = [
63213
+ {
63214
+ id: "tableSelect",
63215
+ key: "select",
63216
+ label: "Select",
63217
+ iconPath: "M3 3h14v14H3zM3 8h14M8 3v14",
63218
+ large: true,
63219
+ unavailable: {
63220
+ key: "pptx.gallery.tableLayout.selectHint",
63221
+ text: "Click or drag cells in the table to select them"
63222
+ }
63223
+ },
63224
+ {
63225
+ id: "tableViewGridlines",
63226
+ key: "viewGridlines",
63227
+ label: "View Gridlines",
63228
+ iconPath: "M3 3h14v14H3zM3 10h14M10 3v14",
63229
+ unavailable: NO_ENGINE2
63230
+ },
63231
+ {
63232
+ id: "tableDeleteRows",
63233
+ key: "deleteRows",
63234
+ label: "Delete Rows",
63235
+ iconPath: "M3 5h14v4H3zM3 13h14M7 15l6 3M13 15l-6 3",
63236
+ enabled: hasCells,
63237
+ run: (t) => deleteSelected(t.element, t.cells, "row")
63238
+ },
63239
+ {
63240
+ id: "tableDeleteColumns",
63241
+ key: "deleteColumns",
63242
+ label: "Delete Columns",
63243
+ iconPath: "M5 3h4v14H5zM13 3v14M15 7l3 6M18 7l-3 6",
63244
+ enabled: hasCells,
63245
+ run: (t) => deleteSelected(t.element, t.cells, "column")
63246
+ },
63247
+ {
63248
+ id: "tableInsertAbove",
63249
+ key: "insertAbove",
63250
+ label: "Insert Above",
63251
+ iconPath: "M3 9h14v8H3zM3 13h14M10 2v5M7.5 4.5h5",
63252
+ run: (t) => insertNextToSelection(t.element, t.cells, "above")
63253
+ },
63254
+ {
63255
+ id: "tableInsertBelow",
63256
+ key: "insertBelow",
63257
+ label: "Insert Below",
63258
+ iconPath: "M3 3h14v8H3zM3 7h14M10 13v5M7.5 15.5h5",
63259
+ run: (t) => insertNextToSelection(t.element, t.cells, "below")
63260
+ },
63261
+ {
63262
+ id: "tableInsertLeft",
63263
+ key: "insertLeft",
63264
+ label: "Insert Left",
63265
+ iconPath: "M9 3h8v14H9zM13 3v14M2 10h5M4.5 7.5v5",
63266
+ run: (t) => insertNextToSelection(t.element, t.cells, "left")
63267
+ },
63268
+ {
63269
+ id: "tableInsertRight",
63270
+ key: "insertRight",
63271
+ label: "Insert Right",
63272
+ iconPath: "M3 3h8v14H3zM7 3v14M13 10h5M15.5 7.5v5",
63273
+ run: (t) => insertNextToSelection(t.element, t.cells, "right")
63274
+ },
63275
+ {
63276
+ id: "tableMergeCells",
63277
+ key: "mergeCells",
63278
+ label: "Merge Cells",
63279
+ iconPath: "M3 4h14v12H3zM3 10h4M13 10h4M7 8l3 2-3 2M13 8l-3 2 3 2",
63280
+ large: true,
63281
+ enabled: (t) => canMergeSelection(t.data, t.cells),
63282
+ run: (t) => mergeSelection(t.element, t.cells)
63283
+ },
63284
+ {
63285
+ id: "tableSplitCells",
63286
+ key: "splitCells",
63287
+ label: "Split Cells",
63288
+ iconPath: "M3 4h14v12H3zM10 4v12M7 8 4 10l3 2M13 8l3 2-3 2",
63289
+ large: true,
63290
+ enabled: (t) => canSplitSelection(t.data, t.cells),
63291
+ run: (t) => splitSelection(t.element, t.cells)
63292
+ },
63293
+ {
63294
+ id: "tableDistributeRows",
63295
+ key: "distributeRows",
63296
+ label: "Distribute Rows",
63297
+ iconPath: "M3 3h14M3 10h14M3 17h14M10 4.5v3M10 12.5v3",
63298
+ run: (t) => distribute(t.element, t.cells, "row")
63299
+ },
63300
+ {
63301
+ id: "tableDistributeColumns",
63302
+ key: "distributeColumns",
63303
+ label: "Distribute Columns",
63304
+ iconPath: "M3 3v14M10 3v14M17 3v14M4.5 10h3M12.5 10h3",
63305
+ run: (t) => distribute(t.element, t.cells, "column")
63306
+ },
63307
+ {
63308
+ id: "tableAlignLeft",
63309
+ key: "alignLeft",
63310
+ label: "Align Left",
63311
+ iconPath: "M3 5h14M3 9h9M3 13h14M3 17h9",
63312
+ run: align("left")
63313
+ },
63314
+ {
63315
+ id: "tableAlignCenter",
63316
+ key: "alignCenter",
63317
+ label: "Center",
63318
+ iconPath: "M3 5h14M5.5 9h9M3 13h14M5.5 17h9",
63319
+ run: align("center")
63320
+ },
63321
+ {
63322
+ id: "tableAlignRight",
63323
+ key: "alignRight",
63324
+ label: "Align Right",
63325
+ iconPath: "M3 5h14M8 9h9M3 13h14M8 17h9",
63326
+ run: align("right")
63327
+ },
63328
+ {
63329
+ id: "tableAlignTop",
63330
+ key: "alignTop",
63331
+ label: "Align Top",
63332
+ iconPath: "M3 3h14M6 6h8v6H6z",
63333
+ run: valign("top")
63334
+ },
63335
+ {
63336
+ id: "tableAlignMiddle",
63337
+ key: "alignMiddle",
63338
+ label: "Center Vertically",
63339
+ iconPath: "M3 10h2M15 10h2M6 5h8v10H6z",
63340
+ run: valign("middle")
63341
+ },
63342
+ {
63343
+ id: "tableAlignBottom",
63344
+ key: "alignBottom",
63345
+ label: "Align Bottom",
63346
+ iconPath: "M3 17h14M6 14h8V8H6z",
63347
+ run: valign("bottom")
63348
+ },
63349
+ {
63350
+ id: "tableCellMargins",
63351
+ key: "cellMargins",
63352
+ label: "Cell Margins",
63353
+ iconPath: "M3 3h14v14H3zM6.5 6.5h7v7h-7z",
63354
+ large: true,
63355
+ unavailable: IN_INSPECTOR
63356
+ },
63357
+ {
63358
+ id: "tableSize",
63359
+ key: "tableSize",
63360
+ label: "Table Size",
63361
+ iconPath: "M4 4h12v12H4zM2 10h2M16 10h2M10 2v2M10 16v2",
63362
+ large: true,
63363
+ unavailable: IN_INSPECTOR
63364
+ },
63365
+ {
63366
+ id: "tableArrange",
63367
+ key: "arrange",
63368
+ label: "Arrange",
63369
+ iconPath: "M3 3h9v9H3zM8 8h9v9H8z",
63370
+ large: true,
63371
+ unavailable: IN_HOME
63372
+ }
63373
+ ];
63374
+ function targetsOf(ctx) {
63375
+ const element = ctx.element;
63376
+ if (element?.type !== "table" || !element.tableData) {
63377
+ return null;
63378
+ }
63379
+ return { element, data: element.tableData, cells: ctx.selectedTableCells ?? [] };
63380
+ }
63381
+ function moduleFor2(spec5) {
63382
+ const labelKey = `pptx.gallery.tableLayout.${spec5.key}`;
63383
+ return {
63384
+ build(ctx) {
63385
+ const targets = targetsOf(ctx);
63386
+ const gated = targets !== null && spec5.enabled !== void 0 && !spec5.enabled(targets);
63387
+ const hint = spec5.unavailable ?? (gated ? NEEDS_CELLS : void 0);
63388
+ return {
63389
+ id: spec5.id,
63390
+ labelKey,
63391
+ label: spec5.label,
63392
+ disabled: !targets || gated || Boolean(spec5.unavailable),
63393
+ command: {
63394
+ iconPath: spec5.iconPath,
63395
+ large: spec5.large,
63396
+ hintKey: hint?.key,
63397
+ hint: hint?.text
63398
+ },
63399
+ sections: [
63400
+ {
63401
+ id: "command",
63402
+ columns: 1,
63403
+ tileWidth: 0,
63404
+ tileHeight: 0,
63405
+ items: [{ id: "run", labelKey, label: spec5.label, previewSvg: "", applied: false }]
63406
+ }
63407
+ ]
63408
+ };
63409
+ },
63410
+ apply(itemId, ctx) {
63411
+ const targets = targetsOf(ctx);
63412
+ if (itemId !== "run" || !targets || spec5.unavailable || !spec5.run) {
63413
+ return null;
63414
+ }
63415
+ if (spec5.enabled && !spec5.enabled(targets)) {
63416
+ return null;
63417
+ }
63418
+ return spec5.run(targets);
63419
+ }
63420
+ };
63421
+ }
63422
+ var TABLE_LAYOUT_COMMAND_MODULES = Object.fromEntries(
63423
+ SPECS2.map((spec5) => [spec5.id, moduleFor2(spec5)])
63424
+ );
62592
63425
 
62593
63426
  // src/pptx/render/ribbon-galleries/table-style-gallery-catalog.ts
62594
63427
  var NAME_PATTERN = /^(Themed|Light|Medium|Dark) Style (\d)(?: - Accent (\d)(?:\/Accent (\d))?)?$/u;
@@ -62726,7 +63559,7 @@ function tileBorderStroke(value) {
62726
63559
  const color = safeColor(match[2], "none");
62727
63560
  return color === "none" || Number(match[1]) <= 0 ? null : { width: Math.min(Math.max(Number(match[1]) / 2, 0.5), 2), color };
62728
63561
  }
62729
- function tableStyleTileSvg(styleId, colorScheme, size, options = DEFAULT_OPTIONS) {
63562
+ function tableStyleTileSvg(styleId, colorScheme, size, options = DEFAULT_OPTIONS, formatScheme) {
62730
63563
  const tableData = {
62731
63564
  ...options,
62732
63565
  tableStyleId: styleId
@@ -62746,7 +63579,7 @@ function tableStyleTileSvg(styleId, colorScheme, size, options = DEFAULT_OPTIONS
62746
63579
  };
62747
63580
  for (let r = 0; r < ROWS; r++) {
62748
63581
  for (let c = 0; c < COLS; c++) {
62749
- const css = getTableCellBandStyle(tableData, r, c, ROWS, COLS, { colorScheme }) ?? {};
63582
+ const css = getTableCellBandStyle(tableData, r, c, ROWS, COLS, { colorScheme, formatScheme }) ?? {};
62750
63583
  const x = inset3 + c * cw;
62751
63584
  const y = inset3 + r * rh;
62752
63585
  const fill = cellFill(css);
@@ -62859,7 +63692,13 @@ function build5(ctx) {
62859
63692
  labelKey: entry5.labelKey,
62860
63693
  ...entry5.labelParams && { labelParams: entry5.labelParams },
62861
63694
  label: entry5.name,
62862
- previewSvg: tableStyleTileSvg(entry5.id, colorScheme, TILE8, options),
63695
+ previewSvg: tableStyleTileSvg(
63696
+ entry5.id,
63697
+ colorScheme,
63698
+ TILE8,
63699
+ options,
63700
+ ctx.theme?.formatScheme
63701
+ ),
62863
63702
  applied: current === entry5.id
62864
63703
  }))
62865
63704
  }))
@@ -62887,6 +63726,68 @@ var TABLE_STYLES_GALLERY = {
62887
63726
  }
62888
63727
  };
62889
63728
 
63729
+ // src/pptx/render/ribbon-galleries/table-text-direction-gallery.ts
63730
+ var ENTRIES = [
63731
+ { id: "horizontal", label: "Horizontal", vert: void 0, transform: "" },
63732
+ { id: "rotate90", label: "Rotate all text 90\xB0", vert: "vert", transform: "rotate(90 18 15)" },
63733
+ {
63734
+ id: "rotate270",
63735
+ label: "Rotate all text 270\xB0",
63736
+ vert: "vert270",
63737
+ transform: "rotate(-90 18 15)"
63738
+ },
63739
+ { id: "stacked", label: "Stacked", vert: "wordArtVert", transform: "" }
63740
+ ];
63741
+ function tile2(entry5) {
63742
+ const body = entry5.id === "stacked" ? '<text x="18" y="9" font-size="9" text-anchor="middle" fill="currentColor">A</text><text x="18" y="18" font-size="9" text-anchor="middle" fill="currentColor">b</text><text x="18" y="27" font-size="9" text-anchor="middle" fill="currentColor">c</text>' : `<text x="18" y="19" font-size="11" text-anchor="middle" fill="currentColor"${entry5.transform ? ` transform="${entry5.transform}"` : ""}>Abc</text>`;
63743
+ return `<svg xmlns="http://www.w3.org/2000/svg" width="36" height="30" viewBox="0 0 36 30" role="img" aria-hidden="true">${body}</svg>`;
63744
+ }
63745
+ function currentDirection(ctx) {
63746
+ const element = ctx.element;
63747
+ if (element?.type !== "table" || !element.tableData) {
63748
+ return void 0;
63749
+ }
63750
+ const cells = ctx.selectedTableCells ?? [];
63751
+ const first = cells[0];
63752
+ const cell = first ? element.tableData.rows[first.row]?.cells[first.column] : element.tableData.rows[0]?.cells[0];
63753
+ return cell?.style?.textDirection;
63754
+ }
63755
+ var TABLE_TEXT_DIRECTION_GALLERY = {
63756
+ build(ctx) {
63757
+ const current = currentDirection(ctx);
63758
+ return {
63759
+ id: "tableTextDirection",
63760
+ labelKey: "pptx.gallery.tableLayout.textDirection",
63761
+ label: "Text Direction",
63762
+ disabled: ctx.element?.type !== "table",
63763
+ sections: [
63764
+ {
63765
+ id: "direction",
63766
+ columns: 4,
63767
+ tileWidth: 36,
63768
+ tileHeight: 30,
63769
+ items: ENTRIES.map((entry5) => ({
63770
+ id: entry5.id,
63771
+ labelKey: `pptx.gallery.tableLayout.direction.${entry5.id}`,
63772
+ label: entry5.label,
63773
+ previewSvg: tile2(entry5),
63774
+ applied: entry5.vert === current
63775
+ }))
63776
+ }
63777
+ ]
63778
+ };
63779
+ },
63780
+ apply(itemId, ctx) {
63781
+ const element = ctx.element;
63782
+ const entry5 = ENTRIES.find((candidate) => candidate.id === itemId);
63783
+ if (element?.type !== "table" || !entry5) {
63784
+ return null;
63785
+ }
63786
+ const cells = ctx.selectedTableCells ?? [];
63787
+ return entry5.vert ? styleCells(element, cells, { textDirection: entry5.vert }) : styleCells(element, cells, {}, ["textDirection"]);
63788
+ }
63789
+ };
63790
+
62890
63791
  // src/pptx/render/ribbon-galleries/theme-color-schemes-data.ts
62891
63792
  var PACKED_ROWS = [
62892
63793
  ["Office", "000000 FFFFFF 0E2841 E8E8E8 156082 E97132 196B24 0F9ED5 A02B93 4EA72E 467886 96607D"],
@@ -62961,6 +63862,7 @@ var THEME_COLOR_SCHEME_ROWS = PACKED_ROWS.map(([name, hexes]) => [name, ...hexes
62961
63862
  // src/pptx/render/ribbon-galleries/theme-colors-gallery.ts
62962
63863
  var TILE9 = { width: 96, height: 14 };
62963
63864
  var CURRENT_ID = "current";
63865
+ var SCHEME_LABEL_KEY = "pptx.gallery.themeColors.scheme";
62964
63866
  var entries;
62965
63867
  function builtinThemeColorSchemes() {
62966
63868
  entries ??= THEME_COLOR_SCHEME_ROWS.map(([name, ...hexes]) => {
@@ -62987,11 +63889,18 @@ function swatches(scheme) {
62987
63889
  function deckScheme(ctx) {
62988
63890
  return ctx.theme?.colorScheme || ctx.themeColorMap ? galleryColorScheme(ctx) : void 0;
62989
63891
  }
62990
- function tile2(id, name, scheme, applied, labelKey = "pptx.gallery.themeColors.scheme") {
63892
+ function tile3(id, name, scheme, applied, labelKey = SCHEME_LABEL_KEY) {
62991
63893
  return {
62992
63894
  id,
62993
63895
  labelKey,
62994
63896
  labelParams: { name },
63897
+ // A built-in scheme's name is a word the dictionary translates ("Blue Warm"); the current
63898
+ // deck's tile has a key of its own.
63899
+ ...labelKey === SCHEME_LABEL_KEY && {
63900
+ labelParamKeys: {
63901
+ name: { key: `pptx.gallery.themeColors.name.${schemeSlug(name)}`, fallback: name }
63902
+ }
63903
+ },
62995
63904
  label: name,
62996
63905
  previewSvg: swatchStripSvg(swatches(scheme), TILE9),
62997
63906
  applied
@@ -63003,7 +63912,7 @@ var THEME_COLORS_GALLERY = {
63003
63912
  const builtins = builtinThemeColorSchemes();
63004
63913
  const matched = builtins.some((entry5) => colorSchemesEqual(entry5.colorScheme, current));
63005
63914
  const items = builtins.map(
63006
- (entry5) => tile2(
63915
+ (entry5) => tile3(
63007
63916
  schemeSlug(entry5.name),
63008
63917
  entry5.name,
63009
63918
  entry5.colorScheme,
@@ -63012,7 +63921,7 @@ var THEME_COLORS_GALLERY = {
63012
63921
  );
63013
63922
  if (current && !matched) {
63014
63923
  items.unshift(
63015
- tile2(CURRENT_ID, "Current Colors", current, true, "pptx.gallery.themeColors.current")
63924
+ tile3(CURRENT_ID, "Current Colors", current, true, "pptx.gallery.themeColors.current")
63016
63925
  );
63017
63926
  }
63018
63927
  return {
@@ -63093,11 +64002,21 @@ function deckFonts(ctx) {
63093
64002
  const minor = ctx.theme?.fontScheme?.minorFont?.latin;
63094
64003
  return major && minor ? { major, minor } : void 0;
63095
64004
  }
63096
- function tile3(id, name, major, minor, applied, labelKey = "pptx.gallery.themeFonts.scheme") {
64005
+ var OFFICE_FONT_SCHEMES = /* @__PURE__ */ new Set([
64006
+ "Office",
64007
+ "Office 2013 - 2022",
64008
+ "Office 2007 - 2010"
64009
+ ]);
64010
+ function tile4(id, name, major, minor, applied, labelKey = "pptx.gallery.themeFonts.scheme") {
63097
64011
  return {
63098
64012
  id,
63099
64013
  labelKey,
63100
64014
  labelParams: { name, major, minor },
64015
+ ...OFFICE_FONT_SCHEMES.has(name) && {
64016
+ labelParamKeys: {
64017
+ name: { key: `pptx.gallery.themeFonts.name.${schemeSlug(name)}`, fallback: name }
64018
+ }
64019
+ },
63101
64020
  label: `${name}: ${major} / ${minor}`,
63102
64021
  previewSvg: fontSchemeTileSvg(major, minor),
63103
64022
  applied
@@ -63111,11 +64030,11 @@ var THEME_FONTS_GALLERY = {
63111
64030
  const current = deckFonts(ctx);
63112
64031
  const matches = (major, minor) => Boolean(current && sameFace(current.major, major) && sameFace(current.minor, minor));
63113
64032
  const items = THEME_FONT_SCHEME_ROWS.map(
63114
- ([name, major, minor]) => tile3(schemeSlug(name), name, major, minor, matches(major, minor))
64033
+ ([name, major, minor]) => tile4(schemeSlug(name), name, major, minor, matches(major, minor))
63115
64034
  );
63116
64035
  if (current && !items.some((item4) => item4.applied)) {
63117
64036
  items.unshift(
63118
- tile3(
64037
+ tile4(
63119
64038
  CURRENT_ID2,
63120
64039
  "Current Fonts",
63121
64040
  current.major,
@@ -63893,6 +64812,8 @@ var MODULES = {
63893
64812
  bullets: BULLETS_GALLERY,
63894
64813
  numbering: NUMBERING_GALLERY,
63895
64814
  tableStyles: TABLE_STYLES_GALLERY,
64815
+ ...TABLE_LAYOUT_COMMAND_MODULES,
64816
+ tableTextDirection: TABLE_TEXT_DIRECTION_GALLERY,
63896
64817
  chartStyles: CHART_STYLES_GALLERY,
63897
64818
  chartColors: CHART_COLORS_GALLERY,
63898
64819
  chartQuickLayout: CHART_QUICK_LAYOUT_GALLERY,
@@ -63988,6 +64909,139 @@ var CONTEXTUAL_TAB_GROUPS = {
63988
64909
  ]
63989
64910
  }
63990
64911
  ],
64912
+ tableLayout: [
64913
+ {
64914
+ group: "tableLayout.table",
64915
+ labelKey: "pptx.ribbon.groupTable",
64916
+ label: "Table",
64917
+ galleries: [
64918
+ { gallery: "tableSelect", control: "tableLayout.table.select", mode: "dropdown" },
64919
+ {
64920
+ gallery: "tableViewGridlines",
64921
+ control: "tableLayout.table.viewGridlines",
64922
+ mode: "dropdown"
64923
+ }
64924
+ ]
64925
+ },
64926
+ {
64927
+ group: "tableLayout.rowsColumns",
64928
+ labelKey: "pptx.ribbon.groupRowsColumns",
64929
+ label: "Rows & Columns",
64930
+ galleries: [
64931
+ {
64932
+ gallery: "tableDeleteRows",
64933
+ control: "tableLayout.rowsColumns.deleteRows",
64934
+ mode: "dropdown"
64935
+ },
64936
+ {
64937
+ gallery: "tableDeleteColumns",
64938
+ control: "tableLayout.rowsColumns.deleteColumns",
64939
+ mode: "dropdown"
64940
+ },
64941
+ {
64942
+ gallery: "tableInsertAbove",
64943
+ control: "tableLayout.rowsColumns.insertAbove",
64944
+ mode: "dropdown"
64945
+ },
64946
+ {
64947
+ gallery: "tableInsertBelow",
64948
+ control: "tableLayout.rowsColumns.insertBelow",
64949
+ mode: "dropdown"
64950
+ },
64951
+ {
64952
+ gallery: "tableInsertLeft",
64953
+ control: "tableLayout.rowsColumns.insertLeft",
64954
+ mode: "dropdown"
64955
+ },
64956
+ {
64957
+ gallery: "tableInsertRight",
64958
+ control: "tableLayout.rowsColumns.insertRight",
64959
+ mode: "dropdown"
64960
+ }
64961
+ ]
64962
+ },
64963
+ {
64964
+ group: "tableLayout.merge",
64965
+ labelKey: "pptx.ribbon.groupMerge",
64966
+ label: "Merge",
64967
+ galleries: [
64968
+ { gallery: "tableMergeCells", control: "tableLayout.merge.mergeCells", mode: "dropdown" },
64969
+ { gallery: "tableSplitCells", control: "tableLayout.merge.splitCells", mode: "dropdown" }
64970
+ ]
64971
+ },
64972
+ {
64973
+ group: "tableLayout.cellSize",
64974
+ labelKey: "pptx.ribbon.groupCellSize",
64975
+ label: "Cell Size",
64976
+ galleries: [
64977
+ {
64978
+ gallery: "tableDistributeRows",
64979
+ control: "tableLayout.cellSize.distributeRows",
64980
+ mode: "dropdown"
64981
+ },
64982
+ {
64983
+ gallery: "tableDistributeColumns",
64984
+ control: "tableLayout.cellSize.distributeColumns",
64985
+ mode: "dropdown"
64986
+ }
64987
+ ]
64988
+ },
64989
+ {
64990
+ group: "tableLayout.alignment",
64991
+ labelKey: "pptx.ribbon.groupAlignment",
64992
+ label: "Alignment",
64993
+ galleries: [
64994
+ { gallery: "tableAlignLeft", control: "tableLayout.alignment.alignLeft", mode: "dropdown" },
64995
+ {
64996
+ gallery: "tableAlignCenter",
64997
+ control: "tableLayout.alignment.alignCenter",
64998
+ mode: "dropdown"
64999
+ },
65000
+ {
65001
+ gallery: "tableAlignRight",
65002
+ control: "tableLayout.alignment.alignRight",
65003
+ mode: "dropdown"
65004
+ },
65005
+ { gallery: "tableAlignTop", control: "tableLayout.alignment.alignTop", mode: "dropdown" },
65006
+ {
65007
+ gallery: "tableAlignMiddle",
65008
+ control: "tableLayout.alignment.alignMiddle",
65009
+ mode: "dropdown"
65010
+ },
65011
+ {
65012
+ gallery: "tableAlignBottom",
65013
+ control: "tableLayout.alignment.alignBottom",
65014
+ mode: "dropdown"
65015
+ },
65016
+ {
65017
+ gallery: "tableTextDirection",
65018
+ control: "tableLayout.alignment.textDirection",
65019
+ mode: "dropdown"
65020
+ },
65021
+ {
65022
+ gallery: "tableCellMargins",
65023
+ control: "tableLayout.alignment.cellMargins",
65024
+ mode: "dropdown"
65025
+ }
65026
+ ]
65027
+ },
65028
+ {
65029
+ group: "tableLayout.tableSize",
65030
+ labelKey: "pptx.ribbon.groupTableSize",
65031
+ label: "Table Size",
65032
+ galleries: [
65033
+ { gallery: "tableSize", control: "tableLayout.tableSize.size", mode: "dropdown" }
65034
+ ]
65035
+ },
65036
+ {
65037
+ group: "tableLayout.arrange",
65038
+ labelKey: "pptx.ribbon.groupArrange",
65039
+ label: "Arrange",
65040
+ galleries: [
65041
+ { gallery: "tableArrange", control: "tableLayout.arrange.arrange", mode: "dropdown" }
65042
+ ]
65043
+ }
65044
+ ],
63991
65045
  chartDesign: [
63992
65046
  {
63993
65047
  group: "chartDesign.chartLayouts",
@@ -64120,7 +65174,7 @@ function contextualTabsForElement(element) {
64120
65174
  case "picture":
64121
65175
  return ["pictureFormat"];
64122
65176
  case "table":
64123
- return ["tableDesign"];
65177
+ return ["tableDesign", "tableLayout"];
64124
65178
  case "chart":
64125
65179
  return ["chartDesign"];
64126
65180
  case "smartArt":
@@ -64158,7 +65212,12 @@ function galleryHasItems(descriptor) {
64158
65212
  return descriptor.sections.some((section) => section.items.length > 0);
64159
65213
  }
64160
65214
  function galleryItemLabel(item4, translate) {
64161
- const translated = translate(item4.labelKey, item4.labelParams);
65215
+ const params = { ...item4.labelParams };
65216
+ for (const [name, { key, fallback }] of Object.entries(item4.labelParamKeys ?? {})) {
65217
+ const value = translate(key);
65218
+ params[name] = value && value !== key ? value : fallback;
65219
+ }
65220
+ const translated = translate(item4.labelKey, params);
64162
65221
  return translated && translated !== item4.labelKey ? translated : item4.label;
64163
65222
  }
64164
65223
  function galleryTextLabel(translate, key, fallback) {
@@ -65487,13 +66546,13 @@ function computeExportTilePlan(fullWidth, fullHeight, maxDim) {
65487
66546
  }
65488
66547
  return { fullWidth: fw, fullHeight: fh, tiled: true, cols, rows, tiles };
65489
66548
  }
65490
- function tileRectToSourceRect(tile4, scale2) {
66549
+ function tileRectToSourceRect(tile5, scale2) {
65491
66550
  const s = scale2 > 0 ? scale2 : 1;
65492
66551
  return {
65493
- x: tile4.x / s,
65494
- y: tile4.y / s,
65495
- width: tile4.width / s,
65496
- height: tile4.height / s
66552
+ x: tile5.x / s,
66553
+ y: tile5.y / s,
66554
+ width: tile5.width / s,
66555
+ height: tile5.height / s
65497
66556
  };
65498
66557
  }
65499
66558
 
@@ -65740,8 +66799,8 @@ async function buildForeignObjectSvgBody(element, doc, options) {
65740
66799
  ].join("");
65741
66800
  return { bodyMarkup, allEmbedded, naturalWidth: width, naturalHeight: height };
65742
66801
  }
65743
- function wrapForeignObjectSvg(bodyMarkup, tile4) {
65744
- const { viewBoxX, viewBoxY, viewBoxWidth, viewBoxHeight, outputWidth, outputHeight } = tile4;
66802
+ function wrapForeignObjectSvg(bodyMarkup, tile5) {
66803
+ const { viewBoxX, viewBoxY, viewBoxWidth, viewBoxHeight, outputWidth, outputHeight } = tile5;
65745
66804
  return `<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="${Number(outputWidth)}" height="${Number(outputHeight)}" viewBox="${Number(viewBoxX)} ${Number(viewBoxY)} ${Number(viewBoxWidth)} ${Number(viewBoxHeight)}">${bodyMarkup}</svg>`;
65746
66805
  }
65747
66806
 
@@ -70248,7 +71307,12 @@ var RIBBON_HOME_OBJECT_FAMILIES = {
70248
71307
  chevron: true,
70249
71308
  kind: "colour",
70250
71309
  popup: true,
70251
- colour: { swatches: "shape", theme: true, swatchLabelPrefix: "Fill colour" }
71310
+ colour: {
71311
+ swatches: "shape",
71312
+ theme: true,
71313
+ swatchLabelPrefix: "Fill colour",
71314
+ swatchLabelKey: "pptx.colorPicker.fillSwatch"
71315
+ }
70252
71316
  }),
70253
71317
  control(
70254
71318
  "home.drawing.shapeOutline",
@@ -70260,7 +71324,12 @@ var RIBBON_HOME_OBJECT_FAMILIES = {
70260
71324
  chevron: true,
70261
71325
  kind: "colour",
70262
71326
  popup: true,
70263
- colour: { swatches: "shape", theme: true, swatchLabelPrefix: "Outline colour" }
71327
+ colour: {
71328
+ swatches: "shape",
71329
+ theme: true,
71330
+ swatchLabelPrefix: "Outline colour",
71331
+ swatchLabelKey: "pptx.colorPicker.outlineSwatch"
71332
+ }
70264
71333
  }
70265
71334
  ),
70266
71335
  control(
@@ -70567,18 +71636,29 @@ var RIBBON_HOME_FAMILIES = {
70567
71636
  };
70568
71637
 
70569
71638
  // src/pptx/render/ribbon-home-spec.ts
71639
+ var THEME_COLOR_SWATCH_LABEL_KEYS = [
71640
+ .../* @__PURE__ */ new Set([
71641
+ ...Object.values(ui.THEME_COLOR_SWATCH_COLUMN_LABEL_KEYS),
71642
+ ...Object.values(ui.THEME_COLOR_SWATCH_VARIANT_LABEL_KEYS)
71643
+ ])
71644
+ ];
70570
71645
  var HOME_COLOUR_KEYS = [
70571
71646
  "pptx.colorPicker.themeColors",
70572
71647
  "pptx.colorPicker.standardColors",
70573
71648
  "pptx.colorPicker.recentColors",
70574
- "pptx.ribbon.customColour"
71649
+ "pptx.ribbon.customColour",
71650
+ // Swatch names (tooltips and accessible names of the theme and standard rows).
71651
+ ...THEME_COLOR_SWATCH_LABEL_KEYS,
71652
+ ...OFFICE_COLOR_SWATCHES.map((swatch) => swatch.labelKey),
71653
+ "pptx.colorPicker.fillSwatch",
71654
+ "pptx.colorPicker.outlineSwatch"
70575
71655
  ];
70576
71656
  var homeControlKey = (spec5) => spec5.part ? `${spec5.id}#${spec5.part}` : spec5.id;
70577
71657
  function homeFamilyControls(family2) {
70578
71658
  return RIBBON_HOME_FAMILIES[family2].clusters.flatMap((cluster) => cluster.controls);
70579
71659
  }
70580
- function homeLabel(state, key, fallback) {
70581
- const value = state.translate?.(key);
71660
+ function homeLabel(state, key, fallback, params) {
71661
+ const value = state.translate?.(key, params);
70582
71662
  return value && value !== key ? value : fallback;
70583
71663
  }
70584
71664
  var HEX = /^#[0-9a-f]{6}$/iu;
@@ -70653,7 +71733,7 @@ function homeSnapshotTranslator(families, t) {
70653
71733
  labels.set(key, t(key));
70654
71734
  }
70655
71735
  }
70656
- return (key) => labels.get(key) ?? t(key);
71736
+ return (key, params) => params ? t(key, params) : labels.get(key) ?? t(key);
70657
71737
  }
70658
71738
 
70659
71739
  // src/pptx/render/ribbon-home-state-objects.ts
@@ -70683,7 +71763,7 @@ function drawingHomeControls(input) {
70683
71763
  }
70684
71764
  function arrangeHomeControls(input) {
70685
71765
  const disabled = !input.editable || !input.hasSelection;
70686
- const distribute = { disabled: !input.editable || !input.canDistribute };
71766
+ const distribute2 = { disabled: !input.editable || !input.canDistribute };
70687
71767
  const controls2 = {
70688
71768
  "home.arrange.flipHorizontal": { disabled },
70689
71769
  "home.arrange.flipVertical": { disabled },
@@ -70693,8 +71773,8 @@ function arrangeHomeControls(input) {
70693
71773
  "home.arrange.bringToFront": { disabled },
70694
71774
  "home.arrange.duplicate": { disabled },
70695
71775
  "home.arrange.delete": { disabled },
70696
- "home.arrange.align#distribute-horizontal": distribute,
70697
- "home.arrange.align#distribute-vertical": distribute
71776
+ "home.arrange.align#distribute-horizontal": distribute2,
71777
+ "home.arrange.align#distribute-vertical": distribute2
70698
71778
  };
70699
71779
  for (const edge of ["left", "centerH", "right", "top", "middle", "bottom"]) {
70700
71780
  controls2[`home.arrange.align#${edge}`] = { disabled };
@@ -70824,7 +71904,7 @@ function fontHomeControls(input) {
70824
71904
  }
70825
71905
  function paragraphHomeControls(input) {
70826
71906
  const disabled = !input.enabled;
70827
- const pressed = (align) => input.align === void 0 ? void 0 : input.align === align;
71907
+ const pressed = (align2) => input.align === void 0 ? void 0 : input.align === align2;
70828
71908
  return {
70829
71909
  "home.paragraph.decreaseIndent": { disabled },
70830
71910
  "home.paragraph.increaseIndent": { disabled },
@@ -70865,8 +71945,8 @@ function paragraphHomeAction(id) {
70865
71945
  if (id === "home.paragraph.increaseIndent") {
70866
71946
  return { kind: "indent", delta: RIBBON_HOME_INDENT_STEP };
70867
71947
  }
70868
- const align = PARAGRAPH_ALIGN_BY_ID[id];
70869
- return align ? { kind: "align", align } : void 0;
71948
+ const align2 = PARAGRAPH_ALIGN_BY_ID[id];
71949
+ return align2 ? { kind: "align", align: align2 } : void 0;
70870
71950
  }
70871
71951
  function paragraphHomeAlign(value) {
70872
71952
  return value === "left" || value === "center" || value === "right" || value === "justify" ? value : void 0;
@@ -72193,7 +73273,7 @@ var paragraph = (command) => ({
72193
73273
  kind: "paragraph",
72194
73274
  command
72195
73275
  });
72196
- var SPECS2 = [
73276
+ var SPECS3 = [
72197
73277
  { id: "bold", icon: "bold", labelKey: "pptx.notes.bold", intent: inline("bold") },
72198
73278
  { id: "italic", icon: "italic", labelKey: "pptx.notes.italic", intent: inline("italic") },
72199
73279
  {
@@ -72262,7 +73342,7 @@ function createNotesToolbarView(doc, emit2) {
72262
73342
  buttons[id] = button;
72263
73343
  return button;
72264
73344
  };
72265
- for (const spec5 of SPECS2) {
73345
+ for (const spec5 of SPECS3) {
72266
73346
  if (spec5.sep) {
72267
73347
  const sep = doc.createElement("i");
72268
73348
  sep.className = "sep";
@@ -72340,7 +73420,7 @@ function createNotesToolbarView(doc, emit2) {
72340
73420
  const t = state.translate ?? identity3;
72341
73421
  const off = state.disabled === true;
72342
73422
  bar.setAttribute("aria-label", t("pptx.notesToolbar.ariaLabel"));
72343
- for (const spec5 of SPECS2) {
73423
+ for (const spec5 of SPECS3) {
72344
73424
  const button = buttons[spec5.id];
72345
73425
  const text3 = t(spec5.labelKey);
72346
73426
  button.title = text3;
@@ -72616,12 +73696,14 @@ var OFFICE_TOKENS = {
72616
73696
  "--office-dialog-max-height": "90vh",
72617
73697
  "--office-dialog-min-width": "min(320px, 100vw)",
72618
73698
  "--office-dialog-button-min-width": "76px",
72619
- "--office-options-width": "min(820px, 100vw)",
72620
- "--office-options-nav-width": "180px",
72621
- "--office-options-min-height": "min(440px, 70vh)",
72622
- "--office-options-label-width": "180px",
73699
+ "--office-options-width": "min(728px, 92vw)",
73700
+ "--office-options-nav-width": "172px",
73701
+ "--office-options-height": "510px",
73702
+ "--office-options-chrome-height": "130px",
73703
+ "--office-options-text-width": "180px",
72623
73704
  "--office-options-row-height": "30px",
72624
- "--office-options-number-width": "80px",
73705
+ "--office-options-number-width": "112px",
73706
+ "--office-options-check-size": "16px",
72625
73707
  "--office-info-size": "15px",
72626
73708
  "--office-selection-bar-width": "3px",
72627
73709
  "--office-backstage-nav-width": "200px",
@@ -74293,14 +75375,14 @@ var OfficeUiGallery = class extends OfficeElement {
74293
75375
  const panel = this.getAttribute("mode") === "panel";
74294
75376
  if (panel || this.open) {
74295
75377
  const target = event.target;
74296
- const tile4 = target.closest(".tile");
74297
- const section = tile4?.closest(".section");
75378
+ const tile5 = target.closest(".tile");
75379
+ const section = tile5?.closest(".section");
74298
75380
  const items = Array.from(
74299
75381
  (panel ? section : this.popup)?.querySelectorAll(
74300
75382
  ".tile:not(:disabled)"
74301
75383
  ) ?? []
74302
75384
  );
74303
- const index = tile4 ? items.indexOf(tile4) : -1;
75385
+ const index = tile5 ? items.indexOf(tile5) : -1;
74304
75386
  const columns = this.model?.sections[Array.from(this.querySelectorAll(".section")).indexOf(section)]?.columns ?? 1;
74305
75387
  const delta = { ArrowRight: 1, ArrowLeft: -1, ArrowDown: columns, ArrowUp: -columns }[event.key];
74306
75388
  const next = event.key === "Home" ? 0 : event.key === "End" ? items.length - 1 : delta === void 0 ? -1 : (index + delta + items.length) % items.length;
@@ -75262,7 +76344,7 @@ var OfficeUiSelect = class extends OfficeElement {
75262
76344
  var defineSelect = definer("office-ui-select", () => OfficeUiSelect);
75263
76345
 
75264
76346
  // raw-css:/home/runner/work/ooxml/ooxml/src/ui/src/chrome/status-bar.css?raw
75265
- var status_bar_default = ":host {\n display: flex;\n align-items: center;\n gap: var(--office-space-3);\n min-height: var(--office-status-bar-height);\n padding: 0 var(--office-space-2);\n font-size: var(--office-font-size-xs);\n background: var(--office-surface);\n color: var(--office-foreground);\n border-top: var(--office-border-width) solid var(--office-border);\n font-family: var(--office-font);\n}\n::slotted([slot='end']) {\n margin-inline-start: auto;\n}\n.bar {\n display: contents;\n}\n[hidden] {\n display: none !important;\n}\n:host([data-controlled]) {\n display: block;\n flex: none;\n padding: 0;\n gap: 0;\n}\n:host([data-controlled]) .bar {\n box-sizing: border-box;\n display: flex;\n align-items: center;\n gap: var(--office-space-1);\n width: 100%;\n min-height: var(--office-status-bar-height);\n padding: var(--office-space-0) var(--office-space-2);\n color: var(--office-muted-foreground);\n}\n:host([data-controlled]) ::slotted([slot='end']) {\n margin-inline-start: 0;\n}\n.items {\n display: flex;\n align-items: center;\n min-width: 0;\n}\n.item {\n flex: none;\n white-space: nowrap;\n}\n.item + .item::before {\n content: '';\n display: inline-block;\n width: var(--office-border-width);\n height: var(--office-space-3);\n margin: 0 var(--office-space-2);\n vertical-align: middle;\n background: var(--office-border);\n opacity: var(--office-status-bar-separator-opacity);\n}\n.item.saving {\n color: var(--office-warning);\n}\n.item.error {\n color: var(--office-danger);\n}\n.spacer {\n flex: 1;\n}\n.toggles,\n.group {\n display: flex;\n align-items: center;\n gap: var(--office-space-0);\n}\n.sep {\n flex: none;\n width: var(--office-border-width);\n height: var(--office-space-3);\n margin: 0 var(--office-space-0);\n background: var(--office-border);\n opacity: var(--office-status-bar-separator-opacity);\n}\n.bar button {\n box-sizing: border-box;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: var(--office-space-1);\n min-width: var(--office-control-height-xs);\n min-height: var(--office-control-height-xs);\n padding: var(--office-space-1);\n border: 0;\n border-radius: var(--office-radius-sm);\n background: transparent;\n color: inherit;\n font: inherit;\n cursor: pointer;\n touch-action: manipulation;\n}\n.bar button:hover {\n background: var(--office-selected);\n color: var(--office-foreground);\n}\n.bar button[aria-pressed='true'] {\n color: var(--office-accent);\n}\n.bar button:active {\n opacity: 0.8;\n}\n.bar button:focus-visible {\n outline: var(--office-focus-width) solid var(--office-ring);\n outline-offset: var(--office-focus-offset);\n}\n.bar svg {\n flex: none;\n width: var(--office-icon-size);\n height: var(--office-icon-size);\n fill: none;\n stroke: currentColor;\n stroke-width: var(--office-icon-stroke);\n stroke-linecap: round;\n stroke-linejoin: round;\n}\n.toggle svg,\n.zoom-step svg {\n width: var(--office-icon-size-sm);\n height: var(--office-icon-size-sm);\n}\n.zoom-fit {\n min-width: var(--office-zoom-value-width);\n font-variant-numeric: tabular-nums;\n}\n@media (max-width: 767px) {\n .narrow-hide,\n .toggle .label {\n display: none !important;\n }\n}\n@media (pointer: coarse) {\n .bar button {\n min-width: var(--office-target-size-touch);\n min-height: var(--office-target-size-touch);\n }\n}\n@media (forced-colors: active) {\n :host {\n background: Canvas;\n color: CanvasText;\n border-top-color: CanvasText;\n }\n .bar button {\n color: ButtonText;\n }\n .bar button:hover {\n background: Highlight;\n color: HighlightText;\n }\n .bar button[aria-pressed='true'] {\n border: var(--office-border-width) solid Highlight;\n }\n .bar button:focus-visible {\n outline-color: Highlight;\n }\n .sep,\n .item + .item::before {\n background: CanvasText;\n }\n}\n";
76347
+ var status_bar_default = ":host {\n display: flex;\n align-items: center;\n gap: var(--office-space-3);\n min-height: var(--office-status-bar-height);\n padding: 0 var(--office-space-2);\n font-size: var(--office-font-size-xs);\n background: var(--office-surface);\n color: var(--office-foreground);\n border-top: var(--office-border-width) solid var(--office-border);\n font-family: var(--office-font);\n}\n::slotted([slot='end']) {\n margin-inline-start: auto;\n}\n.bar {\n display: contents;\n}\n[hidden] {\n display: none !important;\n}\n:host([data-controlled]) {\n display: block;\n flex: none;\n padding: 0;\n gap: 0;\n}\n:host([data-controlled]) .bar {\n box-sizing: border-box;\n display: flex;\n align-items: center;\n gap: var(--office-space-1);\n width: 100%;\n min-height: var(--office-status-bar-height);\n padding: var(--office-space-0) var(--office-space-2);\n color: var(--office-muted-foreground);\n}\n:host([data-controlled]) ::slotted([slot='end']) {\n margin-inline-start: 0;\n}\n.items {\n display: flex;\n flex: 0 1 auto;\n align-items: center;\n min-width: 0;\n overflow: hidden;\n}\n.item {\n flex: 0 1 auto;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n/* The page counter is the one text that stays whole. */\n.item[aria-live] {\n flex: none;\n}\n.item + .item::before {\n content: '';\n display: inline-block;\n width: var(--office-border-width);\n height: var(--office-space-3);\n margin: 0 var(--office-space-2);\n vertical-align: middle;\n background: var(--office-border);\n opacity: var(--office-status-bar-separator-opacity);\n}\n.item.saving {\n color: var(--office-warning);\n}\n.item.error {\n color: var(--office-danger);\n}\n.spacer {\n flex: 1;\n}\n.toggles,\n.group {\n display: flex;\n align-items: center;\n gap: var(--office-space-0);\n}\n.sep {\n flex: none;\n width: var(--office-border-width);\n height: var(--office-space-3);\n margin: 0 var(--office-space-0);\n background: var(--office-border);\n opacity: var(--office-status-bar-separator-opacity);\n}\n.bar button {\n box-sizing: border-box;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: var(--office-space-1);\n min-width: var(--office-control-height-xs);\n min-height: var(--office-control-height-xs);\n padding: var(--office-space-1);\n border: 0;\n border-radius: var(--office-radius-sm);\n background: transparent;\n color: inherit;\n font: inherit;\n cursor: pointer;\n touch-action: manipulation;\n}\n.bar button:hover {\n background: var(--office-selected);\n color: var(--office-foreground);\n}\n.bar button[aria-pressed='true'] {\n color: var(--office-accent);\n}\n.bar button:active {\n opacity: 0.8;\n}\n.bar button:focus-visible {\n outline: var(--office-focus-width) solid var(--office-ring);\n outline-offset: var(--office-focus-offset);\n}\n.bar svg {\n flex: none;\n width: var(--office-icon-size);\n height: var(--office-icon-size);\n fill: none;\n stroke: currentColor;\n stroke-width: var(--office-icon-stroke);\n stroke-linecap: round;\n stroke-linejoin: round;\n}\n.toggle svg,\n.zoom-step svg {\n width: var(--office-icon-size-sm);\n height: var(--office-icon-size-sm);\n}\n.zoom-fit {\n min-width: var(--office-zoom-value-width);\n font-variant-numeric: tabular-nums;\n}\n@media (max-width: 767px) {\n .narrow-hide,\n .toggle .label {\n display: none !important;\n }\n}\n@media (pointer: coarse) {\n .bar button {\n min-width: var(--office-touch-target, 44px);\n min-height: var(--office-touch-target, 44px);\n }\n}\n@media (forced-colors: active) {\n :host {\n background: Canvas;\n color: CanvasText;\n border-top-color: CanvasText;\n }\n .bar button {\n color: ButtonText;\n }\n .bar button:hover {\n background: Highlight;\n color: HighlightText;\n }\n .bar button[aria-pressed='true'] {\n border: var(--office-border-width) solid Highlight;\n }\n .bar button:focus-visible {\n outline-color: Highlight;\n }\n .sep,\n .item + .item::before {\n background: CanvasText;\n }\n}\n";
75266
76348
 
75267
76349
  // src/chrome/status-bar.ts
75268
76350
  var OfficeUiStatusBar = class extends OfficeElement {
@@ -77340,13 +78422,19 @@ function createRibbonDrawView(doc, request) {
77340
78422
  }
77341
78423
  presets.value = String(state.width);
77342
78424
  colorInput.disabled = range.disabled = presets.disabled = !state.editable;
77343
- for (const button of standard.querySelectorAll("button")) {
78425
+ standard.querySelectorAll("button").forEach((button, index) => {
78426
+ const color = OFFICE_COLOR_SWATCHES[index];
78427
+ if (color) {
78428
+ const name = officeColorSwatchLabel(color, state.translate);
78429
+ button.title = name;
78430
+ button.setAttribute("aria-label", name);
78431
+ }
77344
78432
  button.disabled = !state.editable;
77345
78433
  button.setAttribute(
77346
78434
  "aria-pressed",
77347
78435
  String(button.dataset.drawColor?.toLowerCase() === state.color.toLowerCase())
77348
78436
  );
77349
- }
78437
+ });
77350
78438
  const nextKey = `${state.editable}:${state.recentColors?.join(",") ?? ""}`;
77351
78439
  if (recentKey !== nextKey) {
77352
78440
  recent.replaceChildren(
@@ -77454,7 +78542,7 @@ function definePptxRibbonDraw(registry2) {
77454
78542
 
77455
78543
  // src/pptx/web-components/ribbon-gallery-styles.ts
77456
78544
  var host = "pptx-ui-ribbon-gallery";
77457
- var FORMAT_GROUPS = 'pptx-ui-ribbon-group:is([data-ribbon-group^="shapeFormat."],[data-ribbon-group^="pictureFormat."],[data-ribbon-group^="tableDesign."],[data-ribbon-group^="chartDesign."],[data-ribbon-group^="smartArtDesign."])';
78545
+ var FORMAT_GROUPS = 'pptx-ui-ribbon-group:is([data-ribbon-group^="shapeFormat."],[data-ribbon-group^="pictureFormat."],[data-ribbon-group^="tableDesign."],[data-ribbon-group^="tableLayout."],[data-ribbon-group^="chartDesign."],[data-ribbon-group^="smartArtDesign."])';
77458
78546
  var CSS2 = `
77459
78547
  ${FORMAT_GROUPS} ${host}[mode=dropdown] .trigger { border-color:transparent; background:transparent; }
77460
78548
  ${FORMAT_GROUPS} ${host}[mode=dropdown] .trigger:hover:not(:disabled) { border-color:var(--pptx-border,#374151); background:var(--pptx-accent,#33334d); }
@@ -77816,15 +78904,21 @@ function syncHomeButton(button, control2, state, current, options = {}) {
77816
78904
  }
77817
78905
 
77818
78906
  // src/pptx/web-components/ribbon-home-colour.ts
77819
- function standardSwatches(spec5) {
78907
+ function standardSwatches(spec5, state) {
77820
78908
  if (spec5.swatches === "office") {
77821
- return OFFICE_COLOR_SWATCHES;
78909
+ return OFFICE_COLOR_SWATCHES.map((swatch) => ({
78910
+ hex: swatch.hex,
78911
+ label: officeColorSwatchLabel(swatch, state.translate)
78912
+ }));
77822
78913
  }
77823
78914
  const hexes = spec5.swatches === "shape" ? RIBBON_SHAPE_SWATCHES : HOME_HIGHLIGHT_PRESETS;
77824
- return hexes.map((hex2) => ({
77825
- hex: hex2,
77826
- label: spec5.swatchLabelPrefix ? `${spec5.swatchLabelPrefix} ${hex2}` : hex2
77827
- }));
78915
+ return hexes.map((hex2) => {
78916
+ const english = spec5.swatchLabelPrefix ? `${spec5.swatchLabelPrefix} ${hex2}` : hex2;
78917
+ return {
78918
+ hex: hex2,
78919
+ label: spec5.swatchLabelKey ? homeLabel(state, spec5.swatchLabelKey, english, { hex: hex2 }) : english
78920
+ };
78921
+ });
77828
78922
  }
77829
78923
  function paintHomeColour(doc, popup, spec5, model, value, state, pick) {
77830
78924
  const current = typeof value === "string" ? value.toLowerCase() : void 0;
@@ -77848,7 +78942,7 @@ function paintHomeColour(doc, popup, spec5, model, value, state, pick) {
77848
78942
  return button;
77849
78943
  };
77850
78944
  const sections2 = [];
77851
- const columns = spec5.theme ? ui.buildThemeColorSwatchGrid(model?.themeColors) : [];
78945
+ const columns = spec5.theme ? ui.buildThemeColorSwatchGrid(model?.themeColors, state.translate) : [];
77852
78946
  if (columns.length > 0) {
77853
78947
  const selected = ui.findSelectedThemeSwatch(columns, model?.selectedRef, current);
77854
78948
  const grid = doc.createElement("div");
@@ -77872,7 +78966,7 @@ function paintHomeColour(doc, popup, spec5, model, value, state, pick) {
77872
78966
  }
77873
78967
  const standard = doc.createElement("div");
77874
78968
  standard.className = "std-grid";
77875
- for (const { hex: hex2, label } of standardSwatches(spec5)) {
78969
+ for (const { hex: hex2, label } of standardSwatches(spec5, state)) {
77876
78970
  standard.append(swatch(hex2, label, current === hex2.toLowerCase(), () => pick(hex2)));
77877
78971
  }
77878
78972
  sections2.push(heading("pptx.colorPicker.standardColors", "Standard Colors"), standard);
@@ -77929,16 +79023,16 @@ function paintHomeLayouts(doc, popup, model, state, artwork, pick) {
77929
79023
  const current = chunkW3X2UVYQ_cjs.isCurrentLayout(layout, model?.current);
77930
79024
  const preview = model ? previewOf(model, layout.path) : void 0;
77931
79025
  const geometry = chunkWSTWYZFM_cjs.buildLayoutPreviewGeometry(preview, THUMB_WIDTH, THUMB_HEIGHT);
77932
- const tile4 = doc.createElement("button");
77933
- tile4.type = "button";
77934
- tile4.className = "tile";
77935
- tile4.dataset.layoutPath = layout.path;
77936
- tile4.dataset.pptxCompact = "";
79026
+ const tile5 = doc.createElement("button");
79027
+ tile5.type = "button";
79028
+ tile5.className = "tile";
79029
+ tile5.dataset.layoutPath = layout.path;
79030
+ tile5.dataset.pptxCompact = "";
77937
79031
  if (current) {
77938
- tile4.setAttribute("aria-current", "true");
79032
+ tile5.setAttribute("aria-current", "true");
77939
79033
  }
77940
79034
  const currentLabel = homeLabel(state, "pptx.layoutGallery.current", "Current layout");
77941
- tile4.title = current ? `${layout.name} (${currentLabel})` : layout.name;
79035
+ tile5.title = current ? `${layout.name} (${currentLabel})` : layout.name;
77942
79036
  const box = doc.createElement("div");
77943
79037
  box.className = "thumb";
77944
79038
  box.style.width = `${geometry.boxWidth}px`;
@@ -77966,10 +79060,10 @@ function paintHomeLayouts(doc, popup, model, state, artwork, pick) {
77966
79060
  const name = doc.createElement("span");
77967
79061
  name.className = "name";
77968
79062
  name.textContent = layout.name;
77969
- tile4.append(box, name);
77970
- tile4.addEventListener("mousedown", (event) => event.preventDefault());
77971
- tile4.addEventListener("click", () => pick(layout.path));
77972
- tiles.push(tile4);
79063
+ tile5.append(box, name);
79064
+ tile5.addEventListener("mousedown", (event) => event.preventDefault());
79065
+ tile5.addEventListener("click", () => pick(layout.path));
79066
+ tiles.push(tile5);
77973
79067
  }
77974
79068
  popup.replaceChildren(...tiles);
77975
79069
  return () => {
@@ -78998,7 +80092,7 @@ function createRibbonInsertView(doc, request) {
78998
80092
  actionTitle,
78999
80093
  ACTION_BUTTON_PRESETS.map((item4) => ({
79000
80094
  id: item4.shapeType,
79001
- label: item4.label,
80095
+ label: text3([actionButtonLabelKey(item4.shapeType), item4.label]),
79002
80096
  glyph: item4.iconPath
79003
80097
  })),
79004
80098
  disabled,
@@ -79268,18 +80362,18 @@ function createRibbonTransitionsView(doc, request) {
79268
80362
  const button = make("button", "preset");
79269
80363
  button.type = "button";
79270
80364
  button.dataset.pptxCompact = "";
79271
- const tile4 = doc.createElementNS("http://www.w3.org/2000/svg", "svg");
79272
- tile4.setAttribute("viewBox", "0 0 36 24");
79273
- tile4.setAttribute("aria-hidden", "true");
79274
- tile4.setAttribute("class", "tile-icon");
80365
+ const tile5 = doc.createElementNS("http://www.w3.org/2000/svg", "svg");
80366
+ tile5.setAttribute("viewBox", "0 0 36 24");
80367
+ tile5.setAttribute("aria-hidden", "true");
80368
+ tile5.setAttribute("class", "tile-icon");
79275
80369
  const tilePath = doc.createElementNS("http://www.w3.org/2000/svg", "path");
79276
80370
  tilePath.setAttribute(
79277
80371
  "d",
79278
80372
  RIBBON_TRANSITION_TILE_PATHS[preset2.type] ?? RIBBON_TRANSITION_TILE_DEFAULT
79279
80373
  );
79280
- tile4.append(tilePath);
80374
+ tile5.append(tilePath);
79281
80375
  const name = make("span", "name");
79282
- button.append(tile4, name);
80376
+ button.append(tile5, name);
79283
80377
  button.addEventListener("click", () => request({ kind: "preset", value: preset2.type }));
79284
80378
  strip2.append(button);
79285
80379
  return { preset: preset2, button, name };
@@ -82734,21 +83828,21 @@ async function rasterizeElementTiles(element, naturalWidth, naturalHeight, doc,
82734
83828
  };
82735
83829
  const tiles = [];
82736
83830
  let done = 0;
82737
- for (const tile4 of plan.tiles) {
83831
+ for (const tile5 of plan.tiles) {
82738
83832
  const { canvas, strategy } = await rasterizeWindow(
82739
83833
  body,
82740
- tileRectToSourceRect(tile4, scale2),
82741
- { width: tile4.width, height: tile4.height },
83834
+ tileRectToSourceRect(tile5, scale2),
83835
+ { width: tile5.width, height: tile5.height },
82742
83836
  options.backgroundColor,
82743
83837
  strategyOptions
82744
83838
  );
82745
83839
  tiles.push({
82746
- col: tile4.col,
82747
- row: tile4.row,
82748
- x: tile4.x,
82749
- y: tile4.y,
82750
- width: tile4.width,
82751
- height: tile4.height,
83840
+ col: tile5.col,
83841
+ row: tile5.row,
83842
+ x: tile5.x,
83843
+ y: tile5.y,
83844
+ width: tile5.width,
83845
+ height: tile5.height,
82752
83846
  canvas,
82753
83847
  strategy
82754
83848
  });
@@ -82759,15 +83853,15 @@ async function rasterizeElementTiles(element, naturalWidth, naturalHeight, doc,
82759
83853
  }
82760
83854
  function groupTilesByRow(tiles) {
82761
83855
  const validTiles = tiles.filter(
82762
- (tile4) => Number.isInteger(tile4.row) && Number.isInteger(tile4.col) && tile4.row >= 0 && tile4.col >= 0
83856
+ (tile5) => Number.isInteger(tile5.row) && Number.isInteger(tile5.col) && tile5.row >= 0 && tile5.col >= 0
82763
83857
  );
82764
- const rowCount = validTiles.reduce((max, tile4) => Math.max(max, tile4.row), 0) + 1;
83858
+ const rowCount = validTiles.reduce((max, tile5) => Math.max(max, tile5.row), 0) + 1;
82765
83859
  return Array.from({ length: rowCount }, (_rowIndex, row) => {
82766
- const tilesInRow = validTiles.filter((tile4) => tile4.row === row);
82767
- const colCount = tilesInRow.reduce((max, tile4) => Math.max(max, tile4.col), -1) + 1;
83860
+ const tilesInRow = validTiles.filter((tile5) => tile5.row === row);
83861
+ const colCount = tilesInRow.reduce((max, tile5) => Math.max(max, tile5.col), -1) + 1;
82768
83862
  return Array.from(
82769
83863
  { length: colCount },
82770
- (_columnIndex, col) => tilesInRow.find((tile4) => tile4.col === col)
83864
+ (_columnIndex, col) => tilesInRow.find((tile5) => tile5.col === col)
82771
83865
  );
82772
83866
  });
82773
83867
  }
@@ -82784,20 +83878,20 @@ function combineTileRowPixels(tiles, fullWidth) {
82784
83878
  `combineTileRowPixels: tile widths sum to ${totalWidth}, expected ${fullWidth}`
82785
83879
  );
82786
83880
  }
82787
- for (const tile4 of tiles) {
82788
- if (tile4.height !== bandHeight) {
83881
+ for (const tile5 of tiles) {
83882
+ if (tile5.height !== bandHeight) {
82789
83883
  throw new Error("combineTileRowPixels: every tile in a row must share the same height");
82790
83884
  }
82791
83885
  }
82792
83886
  const out = new Uint8Array(fullWidth * 4 * bandHeight);
82793
83887
  for (let y = 0; y < bandHeight; y++) {
82794
83888
  let xOffset = 0;
82795
- for (const tile4 of tiles) {
82796
- const rowBytes = tile4.width * 4;
83889
+ for (const tile5 of tiles) {
83890
+ const rowBytes = tile5.width * 4;
82797
83891
  const srcStart = y * rowBytes;
82798
83892
  const destStart = y * fullWidth * 4 + xOffset * 4;
82799
- out.set(tile4.pixels.subarray(srcStart, srcStart + rowBytes), destStart);
82800
- xOffset += tile4.width;
83893
+ out.set(tile5.pixels.subarray(srcStart, srcStart + rowBytes), destStart);
83894
+ xOffset += tile5.width;
82801
83895
  }
82802
83896
  }
82803
83897
  return out;
@@ -82808,15 +83902,15 @@ async function stitchTilesToPng(fullWidth, fullHeight, tiles) {
82808
83902
  const rows = groupTilesByRow(tiles);
82809
83903
  async function* rowBands() {
82810
83904
  for (const rowTiles of rows) {
82811
- const pixelTiles = rowTiles.map((tile4) => {
82812
- const ctx = tile4.canvas.getContext("2d");
83905
+ const pixelTiles = rowTiles.map((tile5) => {
83906
+ const ctx = tile5.canvas.getContext("2d");
82813
83907
  if (!ctx) {
82814
83908
  throw new Error("rasterizeElement: 2D canvas context unavailable while stitching tiles");
82815
83909
  }
82816
83910
  return {
82817
- pixels: ctx.getImageData(0, 0, tile4.canvas.width, tile4.canvas.height).data,
82818
- width: tile4.canvas.width,
82819
- height: tile4.canvas.height
83911
+ pixels: ctx.getImageData(0, 0, tile5.canvas.width, tile5.canvas.height).data,
83912
+ width: tile5.canvas.width,
83913
+ height: tile5.canvas.height
82820
83914
  };
82821
83915
  });
82822
83916
  yield {
@@ -82856,17 +83950,17 @@ async function rasterizeElement(element, naturalWidth, naturalHeight, doc, optio
82856
83950
  }
82857
83951
 
82858
83952
  // src/pptx/export/pdf-tile-placement.ts
82859
- function placeTileOnPage(tile4, fullWidth, fullHeight, pageWidth, pageHeight) {
83953
+ function placeTileOnPage(tile5, fullWidth, fullHeight, pageWidth, pageHeight) {
82860
83954
  const fitScale = fullWidth > 0 && fullHeight > 0 ? Math.min(pageWidth / fullWidth, pageHeight / fullHeight) : 0;
82861
83955
  const fittedWidth = fullWidth * fitScale;
82862
83956
  const fittedHeight = fullHeight * fitScale;
82863
83957
  const offsetX = (pageWidth - fittedWidth) / 2;
82864
83958
  const offsetY = (pageHeight - fittedHeight) / 2;
82865
83959
  return {
82866
- x: offsetX + tile4.x * fitScale,
82867
- y: offsetY + tile4.y * fitScale,
82868
- width: tile4.width * fitScale,
82869
- height: tile4.height * fitScale
83960
+ x: offsetX + tile5.x * fitScale,
83961
+ y: offsetY + tile5.y * fitScale,
83962
+ width: tile5.width * fitScale,
83963
+ height: tile5.height * fitScale
82870
83964
  };
82871
83965
  }
82872
83966
 
@@ -82944,14 +84038,14 @@ async function rasterizeElementClampedToCanvas(element, naturalWidth, naturalHei
82944
84038
  }
82945
84039
 
82946
84040
  // src/pptx/export/rasterize-element-tiled-canvas.ts
82947
- function tileToRowPixels(tile4) {
82948
- const ctx = tile4.canvas.getContext("2d");
84041
+ function tileToRowPixels(tile5) {
84042
+ const ctx = tile5.canvas.getContext("2d");
82949
84043
  if (!ctx) {
82950
84044
  throw new Error(
82951
84045
  "rasterizeElementTiledToCanvas: 2D canvas context unavailable while reading a tile"
82952
84046
  );
82953
84047
  }
82954
- const { data, width, height } = ctx.getImageData(0, 0, tile4.canvas.width, tile4.canvas.height);
84048
+ const { data, width, height } = ctx.getImageData(0, 0, tile5.canvas.width, tile5.canvas.height);
82955
84049
  return { pixels: data, width, height };
82956
84050
  }
82957
84051
  function stitchTilesToCanvas(doc, fullWidth, fullHeight, tiles) {
@@ -84263,6 +85357,14 @@ Object.defineProperty(exports, "visibleTemplateElements", {
84263
85357
  enumerable: true,
84264
85358
  get: function () { return templateEditing.visibleTemplateElements; }
84265
85359
  });
85360
+ Object.defineProperty(exports, "THEME_COLOR_SWATCH_COLUMN_LABEL_KEYS", {
85361
+ enumerable: true,
85362
+ get: function () { return ui.THEME_COLOR_SWATCH_COLUMN_LABEL_KEYS; }
85363
+ });
85364
+ Object.defineProperty(exports, "THEME_COLOR_SWATCH_VARIANT_LABEL_KEYS", {
85365
+ enumerable: true,
85366
+ get: function () { return ui.THEME_COLOR_SWATCH_VARIANT_LABEL_KEYS; }
85367
+ });
84266
85368
  Object.defineProperty(exports, "buildThemeColorSwatchGrid", {
84267
85369
  enumerable: true,
84268
85370
  get: function () { return ui.buildThemeColorSwatchGrid; }
@@ -84518,6 +85620,8 @@ exports.COLLAB_LEAVE_MESSAGE = COLLAB_LEAVE_MESSAGE;
84518
85620
  exports.COMBO_SERIES_TYPE_OPTIONS = COMBO_SERIES_TYPE_OPTIONS;
84519
85621
  exports.COMBO_SUPPORTED_TYPES = COMBO_SUPPORTED_TYPES;
84520
85622
  exports.COMMAND_SEARCH_ENTRIES = COMMAND_SEARCH_ENTRIES;
85623
+ exports.COMMENT_ACTIVE_ATTR = COMMENT_ACTIVE_ATTR;
85624
+ exports.COMMENT_ID_ATTR = COMMENT_ID_ATTR;
84521
85625
  exports.COMMENT_MARKER_COLOR = COMMENT_MARKER_COLOR;
84522
85626
  exports.COMMENT_MARKER_SIZE = COMMENT_MARKER_SIZE;
84523
85627
  exports.COMMENT_MENTION_ATTRIBUTE = COMMENT_MENTION_ATTRIBUTE;
@@ -84861,6 +85965,7 @@ exports.READING_VIEW_STAGE_ATTR = READING_VIEW_STAGE_ATTR;
84861
85965
  exports.RECENT_COLOR_LIMIT = RECENT_COLOR_LIMIT;
84862
85966
  exports.RECOLOR_ACCENTS = RECOLOR_ACCENTS;
84863
85967
  exports.RECORD_COMMAND_GROUPS = RECORD_COMMAND_GROUPS;
85968
+ exports.REVIEW_COMMENT_COMMAND_IDS = REVIEW_COMMENT_COMMAND_IDS;
84864
85969
  exports.RGBA_BYTES_PER_PIXEL = RGBA_BYTES_PER_PIXEL;
84865
85970
  exports.RIBBON_ADD_IN_TAB_ATTR = RIBBON_ADD_IN_TAB_ATTR;
84866
85971
  exports.RIBBON_CONTEXTUAL_TABS = RIBBON_CONTEXTUAL_TABS;
@@ -85016,6 +86121,7 @@ exports.acceptAutosaveRecovery = acceptAutosaveRecovery;
85016
86121
  exports.acceptsPresentationInput = acceptsPresentationInput;
85017
86122
  exports.acknowledgeAutosaveRecovery = acknowledgeAutosaveRecovery;
85018
86123
  exports.actionAffordanceLabels = actionAffordanceLabels;
86124
+ exports.actionButtonLabelKey = actionButtonLabelKey;
85019
86125
  exports.actionTypeNeedsTarget = actionTypeNeedsTarget;
85020
86126
  exports.activateModalFocus = activateModalFocus;
85021
86127
  exports.addCommentToList = addCommentToList;
@@ -85024,6 +86130,7 @@ exports.addGradientStopPatch = addGradientStopPatch;
85024
86130
  exports.addQuickAccessCommand = addQuickAccessCommand;
85025
86131
  exports.addSiblingAfter = addSiblingAfter;
85026
86132
  exports.addTagToCollections = addTagToCollections;
86133
+ exports.adjacentComment = adjacentComment;
85027
86134
  exports.adjustGalleryModule = adjustGalleryModule;
85028
86135
  exports.adjustmentRange = adjustmentRange;
85029
86136
  exports.advanceChartMarkDrag = advanceChartMarkDrag;
@@ -85356,6 +86463,7 @@ exports.classifyExtraConnections = classifyExtraConnections;
85356
86463
  exports.classifyMediaType = classifyMediaType;
85357
86464
  exports.classifyTextWarp = classifyTextWarp;
85358
86465
  exports.clearActiveAnimationGroup = clearActiveAnimationGroup;
86466
+ exports.clearAllComments = clearAllComments;
85359
86467
  exports.clearAllLocalViewerData = clearAllLocalViewerData;
85360
86468
  exports.clearAudienceContent = clearAudienceContent;
85361
86469
  exports.clearAutosaveRecoveryAcknowledgement = clearAutosaveRecoveryAcknowledgement;
@@ -85364,6 +86472,7 @@ exports.clearMotionPath = clearMotionPath;
85364
86472
  exports.clearPlaybackTimers = clearPlaybackTimers;
85365
86473
  exports.clearPresentationDeck = clearPresentationDeck;
85366
86474
  exports.clearSeriesColor = clearSeriesColor;
86475
+ exports.clearSlideComments = clearSlideComments;
85367
86476
  exports.clearStoredViewerPrefs = clearStoredViewerPrefs;
85368
86477
  exports.clearTransitionSound = clearTransitionSound;
85369
86478
  exports.clientPointToViewBox = clientPointToViewBox;
@@ -85390,6 +86499,7 @@ exports.colorDistance = colorDistance;
85390
86499
  exports.columnHandleSegments = columnHandleSegments;
85391
86500
  exports.columnIndexAtFraction = columnIndexAtFraction;
85392
86501
  exports.combineTileRowPixels = combineTileRowPixels;
86502
+ exports.commentCounts = commentCounts;
85393
86503
  exports.commentMarkerTitle = commentMarkerTitle;
85394
86504
  exports.commentMentionQuery = commentMentionQuery;
85395
86505
  exports.commentTextSegments = commentTextSegments;
@@ -85659,6 +86769,7 @@ exports.findCanvasElementNode = findCanvasElementNode;
85659
86769
  exports.findChartPartElementInEvent = findChartPartElementInEvent;
85660
86770
  exports.findChartPartInEvent = findChartPartInEvent;
85661
86771
  exports.findChartUserShapeNode = findChartUserShapeNode;
86772
+ exports.findCommentLocation = findCommentLocation;
85662
86773
  exports.findConnectorSiteNear = findConnectorSiteNear;
85663
86774
  exports.findEffectSoundCatalogueEntry = findEffectSoundCatalogueEntry;
85664
86775
  exports.findEraserHitElementId = findEraserHitElementId;
@@ -86034,6 +87145,7 @@ exports.isPresenceFresh = isPresenceFresh;
86034
87145
  exports.isPresentationAdvanceClick = isPresentationAdvanceClick;
86035
87146
  exports.isPresentationAudience = isPresentationAudience;
86036
87147
  exports.isPresentationSessionMessage = isPresentationSessionMessage;
87148
+ exports.isReviewCommentCommand = isReviewCommentCommand;
86037
87149
  exports.isRibbonControlId = isRibbonControlId;
86038
87150
  exports.isRibbonControlVisible = isRibbonControlVisible;
86039
87151
  exports.isRibbonGroupId = isRibbonGroupId;
@@ -86064,6 +87176,7 @@ exports.lineSpacingPatch = lineSpacingPatch;
86064
87176
  exports.listAutosaveSnapshots = listAutosaveSnapshots;
86065
87177
  exports.listBackstageRecentFiles = listBackstageRecentFiles;
86066
87178
  exports.listChartUserShapeRows = listChartUserShapeRows;
87179
+ exports.listCommentLocations = listCommentLocations;
86067
87180
  exports.listMediaBookmarkOptions = listMediaBookmarkOptions;
86068
87181
  exports.listenForOutlineViewDismiss = listenForOutlineViewDismiss;
86069
87182
  exports.loadAudienceContent = loadAudienceContent;
@@ -86195,6 +87308,7 @@ exports.numberControl = numberControl;
86195
87308
  exports.observeElementHeight = observeElementHeight;
86196
87309
  exports.observeExternalCollaborationReadiness = observeExternalCollaborationReadiness;
86197
87310
  exports.observeExternalCollaborationSession = observeExternalCollaborationSession;
87311
+ exports.officeColorSwatchLabel = officeColorSwatchLabel;
86198
87312
  exports.oleActionsVisible = oleActionsVisible;
86199
87313
  exports.ooxmlDashToCssBorderStyle = ooxmlDashToCssBorderStyle;
86200
87314
  exports.openAutosaveDb = openAutosaveDb;
@@ -86370,6 +87484,7 @@ exports.registerPersistentAudio = registerPersistentAudio;
86370
87484
  exports.registerPptxWebControls = registerPptxWebControls;
86371
87485
  exports.rememberSessionDeck = rememberSessionDeck;
86372
87486
  exports.removeCommentFromList = removeCommentFromList;
87487
+ exports.removeCommentFromSlides = removeCommentFromSlides;
86373
87488
  exports.removeEmptyNode = removeEmptyNode;
86374
87489
  exports.removeGradientStopPatch = removeGradientStopPatch;
86375
87490
  exports.removeGuide = removeGuide;
@@ -86550,6 +87665,7 @@ exports.restoreParagraphMetadata = restoreParagraphMetadata;
86550
87665
  exports.restoreSegmentSelection = restoreSegmentSelection;
86551
87666
  exports.restoreSessionDeck = restoreSessionDeck;
86552
87667
  exports.resumeAllPersistentAudio = resumeAllPersistentAudio;
87668
+ exports.revealComment = revealComment;
86553
87669
  exports.revealedElementStyles = revealedElementStyles;
86554
87670
  exports.revealedSmartArtNodeCount = revealedSmartArtNodeCount;
86555
87671
  exports.revealedStageCount = revealedStageCount;
@@ -86578,6 +87694,7 @@ exports.runMediaCommand = runMediaCommand;
86578
87694
  exports.runPresentationAction = runPresentationAction;
86579
87695
  exports.runProgramNoticeStackStyle = runProgramNoticeStackStyle;
86580
87696
  exports.runProgramNoticeStackStyleAttr = runProgramNoticeStackStyleAttr;
87697
+ exports.runReviewCommentCommand = runReviewCommentCommand;
86581
87698
  exports.runRibbonAddInCommand = runRibbonAddInCommand;
86582
87699
  exports.safeColor = safeColor;
86583
87700
  exports.sameArray = sameArray;
@@ -86645,6 +87762,7 @@ exports.setSelectionBullets = setSelectionBullets;
86645
87762
  exports.setTriggerBookmark = setTriggerBookmark;
86646
87763
  exports.shapeFillChange = shapeFillChange;
86647
87764
  exports.shapeOutlineChange = shapeOutlineChange;
87765
+ exports.shapeQuickStyleLabel = shapeQuickStyleLabel;
86648
87766
  exports.shapeQuickStylePatch = shapeQuickStylePatch;
86649
87767
  exports.shapeStyleWithoutFormatting = shapeStyleWithoutFormatting;
86650
87768
  exports.shapeTileSvg = shapeTileSvg;
@@ -86759,6 +87877,7 @@ exports.tableCellTextColorCommitPatch = tableCellTextColorCommitPatch;
86759
87877
  exports.tableContainerCss = tableContainerCss;
86760
87878
  exports.tableInspectorPatch = tableInspectorPatch;
86761
87879
  exports.tableInspectorStateOf = tableInspectorStateOf;
87880
+ exports.tableLayoutCells = tableLayoutCells;
86762
87881
  exports.takePendingCaretPoint = takePendingCaretPoint;
86763
87882
  exports.templateSchemeFromTheme = templateSchemeFromTheme;
86764
87883
  exports.text3dEmuToPt = text3dEmuToPt;
@@ -86800,6 +87919,7 @@ exports.toggleText3dExtrusionPatch = toggleText3dExtrusionPatch;
86800
87919
  exports.tokenizeText = tokenizeText;
86801
87920
  exports.toleranceToThreshold = toleranceToThreshold;
86802
87921
  exports.traceGlyphOutlineCommands = traceGlyphOutlineCommands;
87922
+ exports.trackActiveComment = trackActiveComment;
86803
87923
  exports.transformConnectionSite = transformConnectionSite;
86804
87924
  exports.transformInlineListCase = transformInlineListCase;
86805
87925
  exports.transitionSoundOptions = transitionSoundOptions;