pptx-react-viewer 4.39.0 → 4.40.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 (85) hide show
  1. package/CHANGELOG.md +33 -0
  2. package/dist/{AiChatPanel-5O6PHRSH.mjs → AiChatPanel-IDP326YW.mjs} +1 -1
  3. package/dist/AiChatPanel-IDP326YW.mjs.br +0 -0
  4. package/dist/AiChatPanel-IDP326YW.mjs.gz +0 -0
  5. package/dist/{AiChatPanel-FNHDAKPB.js → AiChatPanel-KEVVVR7C.js} +9 -9
  6. package/dist/AiChatPanel-KEVVVR7C.js.br +0 -0
  7. package/dist/AiChatPanel-KEVVVR7C.js.gz +0 -0
  8. package/dist/{chunk-43TOUP5U.js → chunk-3PKYNJJG.js} +8 -14
  9. package/dist/chunk-3PKYNJJG.js.br +0 -0
  10. package/dist/chunk-3PKYNJJG.js.gz +0 -0
  11. package/dist/{chunk-5XBS7MCX.mjs → chunk-EQTNWM5Y.mjs} +16 -6
  12. package/dist/chunk-EQTNWM5Y.mjs.br +0 -0
  13. package/dist/chunk-EQTNWM5Y.mjs.gz +0 -0
  14. package/dist/{chunk-UC2VQORY.mjs → chunk-MNT2CXDI.mjs} +9 -15
  15. package/dist/chunk-MNT2CXDI.mjs.br +0 -0
  16. package/dist/chunk-MNT2CXDI.mjs.gz +0 -0
  17. package/dist/{chunk-TYULCCA6.mjs → chunk-MZKSWYSM.mjs} +247 -101
  18. package/dist/chunk-MZKSWYSM.mjs.br +0 -0
  19. package/dist/chunk-MZKSWYSM.mjs.gz +0 -0
  20. package/dist/{chunk-HOKZJLT5.js → chunk-QJ4X7Y7S.js} +258 -248
  21. package/dist/chunk-QJ4X7Y7S.js.br +0 -0
  22. package/dist/chunk-QJ4X7Y7S.js.gz +0 -0
  23. package/dist/{chunk-2LNWGZPT.js → chunk-WM7LBTSB.js} +1546 -1400
  24. package/dist/chunk-WM7LBTSB.js.br +0 -0
  25. package/dist/chunk-WM7LBTSB.js.gz +0 -0
  26. package/dist/i18n/de.cjs +321 -50
  27. package/dist/i18n/de.cjs.br +0 -0
  28. package/dist/i18n/de.cjs.gz +0 -0
  29. package/dist/i18n/de.mjs +321 -50
  30. package/dist/i18n/de.mjs.br +0 -0
  31. package/dist/i18n/de.mjs.gz +0 -0
  32. package/dist/i18n/es.cjs +326 -55
  33. package/dist/i18n/es.cjs.br +0 -0
  34. package/dist/i18n/es.cjs.gz +0 -0
  35. package/dist/i18n/es.mjs +326 -55
  36. package/dist/i18n/es.mjs.br +0 -0
  37. package/dist/i18n/es.mjs.gz +0 -0
  38. package/dist/i18n/fr.cjs +338 -67
  39. package/dist/i18n/fr.cjs.br +0 -0
  40. package/dist/i18n/fr.cjs.gz +0 -0
  41. package/dist/i18n/fr.mjs +338 -67
  42. package/dist/i18n/fr.mjs.br +0 -0
  43. package/dist/i18n/fr.mjs.gz +0 -0
  44. package/dist/i18n/zh-CN.cjs +330 -59
  45. package/dist/i18n/zh-CN.cjs.br +0 -0
  46. package/dist/i18n/zh-CN.cjs.gz +0 -0
  47. package/dist/i18n/zh-CN.mjs +330 -59
  48. package/dist/i18n/zh-CN.mjs.br +0 -0
  49. package/dist/i18n/zh-CN.mjs.gz +0 -0
  50. package/dist/index.js +24 -24
  51. package/dist/index.js.br +0 -0
  52. package/dist/index.js.gz +0 -0
  53. package/dist/index.mjs +3 -3
  54. package/dist/index.mjs.br +0 -0
  55. package/dist/index.mjs.gz +0 -0
  56. package/dist/internals.d.ts +19 -0
  57. package/dist/internals.js +81 -81
  58. package/dist/internals.js.br +0 -0
  59. package/dist/internals.js.gz +0 -0
  60. package/dist/internals.mjs +2 -2
  61. package/dist/internals.mjs.br +0 -0
  62. package/dist/internals.mjs.gz +0 -0
  63. package/dist/viewer/index.js +19 -19
  64. package/dist/viewer/index.js.br +0 -0
  65. package/dist/viewer/index.js.gz +0 -0
  66. package/dist/viewer/index.mjs +3 -3
  67. package/dist/viewer/index.mjs.br +0 -0
  68. package/dist/viewer/index.mjs.gz +0 -0
  69. package/package.json +3 -3
  70. package/dist/AiChatPanel-5O6PHRSH.mjs.br +0 -0
  71. package/dist/AiChatPanel-5O6PHRSH.mjs.gz +0 -0
  72. package/dist/AiChatPanel-FNHDAKPB.js.br +0 -0
  73. package/dist/AiChatPanel-FNHDAKPB.js.gz +0 -0
  74. package/dist/chunk-2LNWGZPT.js.br +0 -0
  75. package/dist/chunk-2LNWGZPT.js.gz +0 -0
  76. package/dist/chunk-43TOUP5U.js.br +0 -0
  77. package/dist/chunk-43TOUP5U.js.gz +0 -0
  78. package/dist/chunk-5XBS7MCX.mjs.br +0 -0
  79. package/dist/chunk-5XBS7MCX.mjs.gz +0 -0
  80. package/dist/chunk-HOKZJLT5.js.br +0 -0
  81. package/dist/chunk-HOKZJLT5.js.gz +0 -0
  82. package/dist/chunk-TYULCCA6.mjs.br +0 -0
  83. package/dist/chunk-TYULCCA6.mjs.gz +0 -0
  84. package/dist/chunk-UC2VQORY.mjs.br +0 -0
  85. package/dist/chunk-UC2VQORY.mjs.gz +0 -0
package/CHANGELOG.md CHANGED
@@ -7,6 +7,39 @@ A release listed with no entries carried no Conventional Commit in this package'
7
7
  scope: scripts/release-plan.mjs releases whenever any published file changes, not only on
8
8
  conventional commits.
9
9
 
10
+ ## [4.40.0](https://github.com/ChristopherVR/ooxml/releases/tag/pptx-react-viewer@4.40.0) - 2026-10-16
11
+
12
+ ### Features
13
+
14
+ - **pptx:** Apply theme effect schemes and background styles ([998bb4b](https://github.com/ChristopherVR/ooxml/commit/998bb4b52c0d3606d0d4c26a0f26c970b4684b69))
15
+ - **pptx:** Resolve a style against another effect scheme ([6db6a07](https://github.com/ChristopherVR/ooxml/commit/6db6a0777b8a82a787f8a78015b34513df4c2f0a))
16
+ - **locales:** Translate the Effects, Background Styles and Variants copy ([89b8b02](https://github.com/ChristopherVR/ooxml/commit/89b8b02486600fa46087023293b87867d3e3b0d6))
17
+ - **pptx:** Expose a package's real theme variants on the handler ([f176c1b](https://github.com/ChristopherVR/ooxml/commit/f176c1bcd2974005606fcc3588a5d3620de414b8))
18
+ - **react:** Preview and apply Design effects and background styles ([5cd3fac](https://github.com/ChristopherVR/ooxml/commit/5cd3facee7143a6f2331e2f08636307d348c4255))
19
+ - **ui:** Add Link and Date & Time to the phone Insert sheet ([f9962a5](https://github.com/ChristopherVR/ooxml/commit/f9962a5ddc0aebbaba8568f2203627c6989bc4c6))
20
+ - **pptx:** Save chart picture, pattern, gradient, 3-D and text formats ([979e444](https://github.com/ChristopherVR/ooxml/commit/979e444af1cab982a8e1ea2360325646efeec6d4))
21
+ - **locales:** Translate the chart Format pane's fills, 3-D and text ([2714041](https://github.com/ChristopherVR/ooxml/commit/2714041813ab5899ff519bb8386269ff07ffc0c8))
22
+
23
+ ### Bug Fixes
24
+
25
+ - **locales:** Align new powerpoint strings with office terms ([5de0ce8](https://github.com/ChristopherVR/ooxml/commit/5de0ce84918554207043198369a2dd3021e3abda))
26
+ - **ui:** Translate built-in SmartArt layout names in the Layouts gallery ([a48c035](https://github.com/ChristopherVR/ooxml/commit/a48c035a309cfadb46eb91e651839efaf559cf33))
27
+ - **ui:** Translate Compare change sentences and the waterfall legend ([f6f8e77](https://github.com/ChristopherVR/ooxml/commit/f6f8e77a0db1e2b418c5a326abae9b8a6a51124f))
28
+ - **pptx:** Write ChartEx bin size and count as val attributes ([457df13](https://github.com/ChristopherVR/ooxml/commit/457df13ae1c4bafbb61d53b41a3078e7a74556b4))
29
+ - **pptx:** Write animation graphicEl children in the DrawingML namespace ([9b7604d](https://github.com/ChristopherVR/ooxml/commit/9b7604d417495e0c89342207ffb2ed4afc5906ab))
30
+ - **pptx:** Mirror chart text colour edits and keep automatic label angles ([c8f12c3](https://github.com/ChristopherVR/ooxml/commit/c8f12c3b17c0fc778fc5905a4d8ba8c0f2fd0e2a))
31
+ - **pptx:** Keep a chart title's size when its text format is edited ([67b433c](https://github.com/ChristopherVR/ooxml/commit/67b433c3dd77863e37201441c851dc9b1e9b60ec))
32
+ - **pptx:** See data labels of a second chart group of the same type ([06e7685](https://github.com/ChristopherVR/ooxml/commit/06e7685fd29fc9c5239c8161aa0963e09378adbc))
33
+ - **react:** Cast the chart area shadow and glow outside the chart frame ([bf08978](https://github.com/ChristopherVR/ooxml/commit/bf089783da051187287b7cb589195cf58fba177c))
34
+ - **react:** Keep a gallery hover preview out of save and recovery ([67c714d](https://github.com/ChristopherVR/ooxml/commit/67c714d47272e218d167d7df71a44376bd80b213))
35
+ - **pptx:** Sync a slide background style over collaboration ([32bc400](https://github.com/ChristopherVR/ooxml/commit/32bc400deccd8a4c53df15aec8e4c1245b392654))
36
+ - **pptx:** Center resized slide content in pixel coordinates ([#86](https://github.com/ChristopherVR/ooxml/issues/86)) ([fbbdfee](https://github.com/ChristopherVR/ooxml/commit/fbbdfee9dfe9b718ed02f0847e2a1197661f2f33))
37
+ - **pptx:** Preserve picture source crops in svg exports ([#88](https://github.com/ChristopherVR/ooxml/issues/88)) ([97c254c](https://github.com/ChristopherVR/ooxml/commit/97c254c159e7486e77b425be95bbe17aca0955ea))
38
+
39
+ ### Testing
40
+
41
+ - **pptx:** Make the generated e2e decks open in PowerPoint ([036e0eb](https://github.com/ChristopherVR/ooxml/commit/036e0eb438d8664230afe7fe2de44a1e9365fb9b))
42
+
10
43
  ## [4.39.0](https://github.com/ChristopherVR/ooxml/releases/tag/pptx-react-viewer@4.39.0) - 2026-10-16
11
44
 
12
45
  ### Features
@@ -1,4 +1,4 @@
1
- import { cn } from './chunk-UC2VQORY.mjs';
1
+ import { cn } from './chunk-MNT2CXDI.mjs';
2
2
  import './chunk-Q3DHYOLK.mjs';
3
3
  import { useMemo, useRef, useState, useEffect, useReducer, useCallback } from 'react';
4
4
  import { useTranslation } from 'react-i18next';
Binary file
Binary file
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunk43TOUP5U_js = require('./chunk-43TOUP5U.js');
3
+ var chunk3PKYNJJG_js = require('./chunk-3PKYNJJG.js');
4
4
  require('./chunk-W2IMY5SY.js');
5
5
  var react = require('react');
6
6
  var reactI18next = require('react-i18next');
@@ -365,7 +365,7 @@ function AiComposer({
365
365
  disabled: value.trim().length === 0,
366
366
  title: t("pptx.ai.send"),
367
367
  "aria-label": t("pptx.ai.send"),
368
- className: chunk43TOUP5U_js.cn(
368
+ className: chunk3PKYNJJG_js.cn(
369
369
  "shrink-0 rounded-sm p-1.5 transition-colors",
370
370
  value.trim().length === 0 ? "text-muted-foreground/50" : "bg-primary text-primary-foreground hover:bg-primary/90"
371
371
  ),
@@ -396,7 +396,7 @@ function AiFocusBar({
396
396
  chips.map((chip) => /* @__PURE__ */ jsxRuntime.jsx(
397
397
  "span",
398
398
  {
399
- className: chunk43TOUP5U_js.cn(
399
+ className: chunk3PKYNJJG_js.cn(
400
400
  "inline-flex max-w-[10rem] items-center rounded-full px-2 py-0.5 text-[11px]",
401
401
  hasPicks || isPinned ? "bg-primary/15 text-primary" : "bg-muted text-muted-foreground"
402
402
  ),
@@ -433,7 +433,7 @@ function AiFocusBar({
433
433
  title: t("pptx.ai.pickElement"),
434
434
  "aria-label": t("pptx.ai.pickAria"),
435
435
  "aria-pressed": pickMode,
436
- className: chunk43TOUP5U_js.cn(
436
+ className: chunk3PKYNJJG_js.cn(
437
437
  "rounded-sm p-1 max-md:min-w-[44px]! max-md:min-h-[44px]! flex items-center justify-center",
438
438
  pickMode ? "bg-primary text-primary-foreground" : "text-muted-foreground hover:bg-accent"
439
439
  ),
@@ -512,7 +512,7 @@ function AiHistoryList({ chats, activeChatId, onResume, onDelete }) {
512
512
  {
513
513
  type: "button",
514
514
  onClick: () => onResume(chat.id),
515
- className: chunk43TOUP5U_js.cn(
515
+ className: chunk3PKYNJJG_js.cn(
516
516
  "flex min-w-0 flex-1 items-start gap-2 rounded-sm px-2 py-1.5 text-left hover:bg-accent",
517
517
  chat.id === activeChatId && "bg-accent/60"
518
518
  ),
@@ -676,17 +676,17 @@ function AiToolCallCard({ part }) {
676
676
  /* @__PURE__ */ jsxRuntime.jsx(
677
677
  Icon,
678
678
  {
679
- className: chunk43TOUP5U_js.cn(
679
+ className: chunk3PKYNJJG_js.cn(
680
680
  "w-3.5 h-3.5 shrink-0",
681
681
  failed ? "text-destructive" : "text-muted-foreground"
682
682
  )
683
683
  }
684
684
  ),
685
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: chunk43TOUP5U_js.cn("truncate", failed ? "text-destructive" : "text-foreground"), children: activity.label }),
685
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: chunk3PKYNJJG_js.cn("truncate", failed ? "text-destructive" : "text-foreground"), children: activity.label }),
686
686
  /* @__PURE__ */ jsxRuntime.jsxs(
687
687
  "span",
688
688
  {
689
- className: chunk43TOUP5U_js.cn(
689
+ className: chunk3PKYNJJG_js.cn(
690
690
  "ml-auto inline-flex items-center gap-1 rounded-sm px-1.5 py-0.5 text-[10px]",
691
691
  failed ? "bg-destructive/15 text-destructive" : done ? "bg-primary/10 text-primary" : "bg-muted text-muted-foreground"
692
692
  ),
@@ -734,7 +734,7 @@ function AiMessageList({ messages, isStreaming, bridge }) {
734
734
  /* @__PURE__ */ jsxRuntime.jsx(
735
735
  "div",
736
736
  {
737
- className: chunk43TOUP5U_js.cn(
737
+ className: chunk3PKYNJJG_js.cn(
738
738
  "mt-0.5 flex h-6 w-6 shrink-0 items-center justify-center rounded-full",
739
739
  isUser ? "bg-secondary text-muted-foreground" : "bg-primary/15 text-primary"
740
740
  ),
Binary file
Binary file
@@ -1807,16 +1807,9 @@ function rendersWedgeCalloutVector(element) {
1807
1807
  return element.type === "shape" && pptx.isWedgeCalloutPresetShape(element.shapeType);
1808
1808
  }
1809
1809
  function getShapeVisualStyle(element, _hasFill, fillColor, _strokeWidth, _strokeColor, animatesFill, animatesStroke, parentGroupFill) {
1810
- if (element.type === "group") {
1811
- const fx2 = pptx.getComputedEffectStyle(element);
1812
- const groupStyle = {};
1813
- if (fx2.filter) {
1814
- groupStyle.filter = fx2.filter;
1815
- }
1816
- if (fx2.overflowVisible) {
1817
- groupStyle.overflow = "visible";
1818
- }
1819
- return groupStyle;
1810
+ const frame = pptx.getFrameEffectStyle(element);
1811
+ if (frame) {
1812
+ return { ...frame };
1820
1813
  }
1821
1814
  if (!(0, dist_exports.hasShapeProperties)(element)) {
1822
1815
  return {};
@@ -3676,8 +3669,8 @@ function renderText(t, key) {
3676
3669
  key
3677
3670
  );
3678
3671
  }
3679
- function renderChartViewModel(elementId, vm, preserveAspectRatio = "none") {
3680
- const legendItems = pptx.computeChartLegendLayout(vm);
3672
+ function renderChartViewModel(elementId, vm, preserveAspectRatio = "none", translate) {
3673
+ const legendItems = pptx.computeChartLegendLayout(vm, translate);
3681
3674
  return /* @__PURE__ */ jsxRuntime.jsxs(
3682
3675
  "svg",
3683
3676
  {
@@ -3840,7 +3833,7 @@ function renderChartViewModel(elementId, vm, preserveAspectRatio = "none") {
3840
3833
  }
3841
3834
  );
3842
3835
  }
3843
- function renderChartElement(element) {
3836
+ function renderChartElement(element, translate) {
3844
3837
  if (element.type !== "chart") {
3845
3838
  return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children: i18n.translationsEn["pptx.chart.heading"] });
3846
3839
  }
@@ -3852,7 +3845,8 @@ function renderChartElement(element) {
3852
3845
  return renderChartViewModel(
3853
3846
  element.id,
3854
3847
  buildReactChartViewModel(element),
3855
- pptx.chartPreserveAspectRatio(kind)
3848
+ pptx.chartPreserveAspectRatio(kind),
3849
+ translate
3856
3850
  );
3857
3851
  }
3858
3852
  function buildNotesPdf(pages) {
Binary file
Binary file
@@ -1,4 +1,4 @@
1
- import { dist_exports, normalizeHexColor, DEFAULT_STROKE_COLOR, colorWithOpacity, normalizeStrokeDashType, getSvgStrokeDasharray, getCompoundLineOffsets, getCompoundLineWidths, getConnectorPathGeometry, buildLineShadowCss, buildLineGlowFilter, renderConnectorMarker, getAriaRoleDescription, getAriaLabel, getAriaRole, isEditableTextElement, getShapeVisualStyle, getTextStyleForElement, DEFAULT_TEXT_COLOR, renderVectorShape, isConnectorOrLineElement, build3DExtrusionData, getImageEffectsOpacity, getImageEffectsFilter, getImageRenderStyle, cn, ACTION_BUTTON_PRESETS, getImageSurfaceStyle, getTextLayoutStyle, renderTableElement, renderMediaElement, shouldRenderFallbackLabel, getElementLabel, DEFAULT_FILL_COLOR, buildCssGradientFromShapeStyle, getCropShapeClipPath, getElementTransform, hasDagDuotoneEffect, renderDagDuotoneSvgFilter, getImageSurfaceMaskStyle, isImageTiled, getDuotoneColors, getTextWarpStyle, getTextCompensationTransform, renderTextSegments, buildReactChartViewModel, renderChartElement, buildInkGroupStrokes, getInkReplayStyles, INK_REPLAY_KEYFRAMES, buildContentPartStrokes, getContentPartReplayStyles, MIN_ELEMENT_SIZE, buildTextBody3DSceneStyle, getImageTilingStyle, buildCacheKey, DEFAULT_COLOR_CHANGE_TOLERANCE, getCachedResult, applyColorChange, setCachedResult, DEFAULT_TEXT_FONT_SIZE, DEFAULT_FONT_FAMILY, substituteFieldText, HYPERLINK_COLOR, cloneTemplateElementsBySlideId, cloneSlide, cloneHistorySnapshot, ZOOM_TO_SELECTION_PADDING, DEFAULT_CANVAS_HEIGHT, DEFAULT_CANVAS_WIDTH, partitionTemplateElements, isTemplateElementId, DEFAULT_TABLE_ROWS, DEFAULT_TABLE_COLUMNS, comparePresentation, UNGROUPED_SECTION_ID, DEFAULT_SECTION_GROUP_ID, stopAllPersistentAudio, buildSaveSlides, MAX_ZOOM_SCALE, MIN_ZOOM_SCALE, makeCloneId, buildPdfFromTiledImageData, GRID_SIZE, copyFormatFromElement, hasCopyableFormat, rerouteConnectorsForMovedElements, applyReroutedConnectors, splitCell, mergeCells, buildNotesPdf, canvasToJpegData, applyFormatToElement, isPpactionUrl, parsePpactionUrl, isUrlSafe, computeSnapToShape, safeOpenUrl as safeOpenUrl$1 } from './chunk-UC2VQORY.mjs';
1
+ import { dist_exports, normalizeHexColor, DEFAULT_STROKE_COLOR, colorWithOpacity, normalizeStrokeDashType, getSvgStrokeDasharray, getCompoundLineOffsets, getCompoundLineWidths, getConnectorPathGeometry, buildLineShadowCss, buildLineGlowFilter, renderConnectorMarker, getAriaRoleDescription, getAriaLabel, getAriaRole, isEditableTextElement, getShapeVisualStyle, getTextStyleForElement, DEFAULT_TEXT_COLOR, renderVectorShape, isConnectorOrLineElement, build3DExtrusionData, getImageEffectsOpacity, getImageEffectsFilter, getImageRenderStyle, cn, ACTION_BUTTON_PRESETS, getImageSurfaceStyle, getTextLayoutStyle, renderTableElement, renderMediaElement, shouldRenderFallbackLabel, getElementLabel, DEFAULT_FILL_COLOR, buildCssGradientFromShapeStyle, getCropShapeClipPath, getElementTransform, hasDagDuotoneEffect, renderDagDuotoneSvgFilter, getImageSurfaceMaskStyle, isImageTiled, getDuotoneColors, getTextWarpStyle, getTextCompensationTransform, renderTextSegments, buildReactChartViewModel, renderChartElement, buildInkGroupStrokes, getInkReplayStyles, INK_REPLAY_KEYFRAMES, buildContentPartStrokes, getContentPartReplayStyles, MIN_ELEMENT_SIZE, buildTextBody3DSceneStyle, getImageTilingStyle, buildCacheKey, DEFAULT_COLOR_CHANGE_TOLERANCE, getCachedResult, applyColorChange, setCachedResult, DEFAULT_TEXT_FONT_SIZE, DEFAULT_FONT_FAMILY, substituteFieldText, HYPERLINK_COLOR, cloneTemplateElementsBySlideId, cloneSlide, cloneHistorySnapshot, ZOOM_TO_SELECTION_PADDING, DEFAULT_CANVAS_HEIGHT, DEFAULT_CANVAS_WIDTH, partitionTemplateElements, isTemplateElementId, DEFAULT_TABLE_ROWS, DEFAULT_TABLE_COLUMNS, comparePresentation, UNGROUPED_SECTION_ID, DEFAULT_SECTION_GROUP_ID, stopAllPersistentAudio, buildSaveSlides, MAX_ZOOM_SCALE, MIN_ZOOM_SCALE, makeCloneId, buildPdfFromTiledImageData, GRID_SIZE, copyFormatFromElement, hasCopyableFormat, rerouteConnectorsForMovedElements, applyReroutedConnectors, splitCell, mergeCells, buildNotesPdf, canvasToJpegData, applyFormatToElement, isPpactionUrl, parsePpactionUrl, isUrlSafe, computeSnapToShape, safeOpenUrl as safeOpenUrl$1 } from './chunk-MNT2CXDI.mjs';
2
2
  import { GlyphOutlineFontCache, createGlyphOutlineLookup, DEFAULT_VIEWER_OPTIONS, TOOLBAR_TABS, defineThreeViewElement, getSelectionControlArtworkStyle, svgLineCap, getSelectionOutlineColor, screenStrokeWidth, connectorWrapperTransform, resolveElementInteractivity, getBackgroundAnimationState, getShapeEffectLayerPlacement, buildTextStyleOverrideCss, isElementRendered, resolveElementAriaAttributes, isMediaFullscreenActive, shouldRenderHitTarget, elementHitTargetStyle, getShapeEffectAnimationLayerStyle, inlineElementPointerEvents, isHollowShapeElement, LINK_TOOLTIP_HOST_CLASS, mediaTransportVisible, oleActionsVisible, getGroupChildParentFill, getResizeHandleHitAreaStyle, paintedStrokeWidth, ensureActionAffordanceStyles, resolveElementActionAffordance, actionAffordanceLabels, paintedElementSize, MEDIA_FULLSCREEN_OVERLAY_STYLE, elementContainerHeightStyle, getAnimationOpacity, resolveElementHighlightClick, applyHighlightClickStyle, getComputedEffectStyle, getSoftEdgeSvgFilter, getEffectStyleSource, getBevelLightingSvgFilter, buildStrokeOutline, buildHollowHitOutline, buildSubpathFillOverlay, strokeOutlineViewBox, resolveRevealedSmartArtNodes, resolveRevealedDrawingShapes, buildSmartArtA11y, canDrillDown, computeSmartArtElementLayout, flattenNodes, buildSummaryZoomView, getImageColorWashStyle, readEditableText, placeCaretAt, takePendingCaretPoint, getPendingSelectionRestore, restoreSegmentSelection, mapInlineTextFormatKey, mapInlineEditorChord, subscribeBarFacePicturePixelSamples, getBarFacePicturePixelSampleVersion, ensureChartInteractionStyles, applyChartPartHighlight, resolveRevealedChartData, formatAxisValue, chartFormatTargetFromEvent, resolveOleType, getOleAriaLabel, getOleTypeColor, getOleTypeLabel, filterRenderedElements, resolveGroupChildFill, isLinkedTextBox, getOverflowSegments, shouldUseSvgWarp, getTextBodyRotationTransform, placeholderPromptDescriptor, getAriaRoleDescription as getAriaRoleDescription$1, getAriaLabel as getAriaLabel$1, attachRotateHandlePlacement, elementIdSelector, createRotationDrag, ACTION_INDICATOR_CLASS, ACTION_INDICATOR_ICON_PATH, LINK_TOOLTIP_CLASS, LINK_TOOLTIP_PANEL_CLASS, LINK_TOOLTIP_LABEL_CLASS, LINK_TOOLTIP_HINT_CLASS, SMARTART_DEFAULT_PALETTE, resolvePalette as resolvePalette$1, computeDrawingViewBox, projectDrawingShapes, resolveRevealedDrawingShapeNodeIds, styleShadowFilter, buildChromeStyle, measureSvgViewportRect, modelDataToBlobUrl, resolveZoomNavigationTarget, getImageSvgFilters, getCachedNativeImageSize, probeNativeImageSize, buildDuotoneCacheKey, getDuotoneCachedResult, applyDuotone, setDuotoneCachedResult, inlineListBodyText, createInlineListSeed, readListActivationSelection, createInlineListModelObserver, attachCollaborationInlineEditor, bindInlineListParagraph, bindInlineListRun, attachInlineListController, restoreInlineListBodySelection, getInlineEditorSelectionResult, isBulletMarkerSegment, resolveChartThreeViewSpec, applyChart3DDrag, applyChart3DSelect, findChartPartTarget, withChartTitle, resolveSmartArtThreeViewSpec, isBrowserOpenableMime, formatBytes, getOleDisplayName, getOleBadgeLabel, openUrlInNewTab, hasGlyphEnvelope, buildGlyphEnvelopeBlock, getWarpPath, isWedgeCalloutPresetShape, getAriaRole as getAriaRole$1, isElementActionable, centeredSvgTextLines, findSmartArtNodeText, rebuildDrawingShapesIfCleared, shouldCommitSmartArtNodeText, advanceChartMarkDrag, advanceChartValueDrag, resolveChartKind, buildChartMarkDragGeometry, beginChartMarkDrag, beginChartValueDrag, commitSmartArtNodeFill, commitSmartArtNodeText, groupIntoParagraphs as groupIntoParagraphs$1, computeInlineEditorRect, smartArtNodeAtPoint, MIN_TOUCH_TARGET_PX, computeVirtualRange, DEFAULT_VIRTUAL_OVERSCAN, createSyncGate, clearLocalAwareness, validateRoomId, createDepartureChannel, resolveTransportForServerUrl, isMixedContentBlocked, CONNECTION_TIMEOUT_MS, registerCollaborationTeardown, createPresenceProjector, BROADCAST_THROTTLE_MS, sanitizeColor, createWheelStepBuffer, createViewerZoomStore, clampZoomScale, mapEditingWheel, createActiveAnimationGroup, cancelBuildReveal, clearPlaybackTimers, PresentationAnimationController, resolveMediaTimeNodeElementIds, resolveMediaBookmarkTimesMs, advanceMainSequence, playGroup, PRESENTATION_HASH, PRESENTATION_NONCE_KEY, PRESENTATION_CHANNEL_NAME, swapPresentationWindows, PRESENTATION_MESSAGE_ORIGIN, clearAudienceContent, buildPresentationAudienceUrl, resolveAudienceScreenPlacement, placeAudienceWindow, storeAudienceContent, isPresentationSessionMessage, endAudienceDisplay, createPresentationKeyBuffer, acceptsPresentationInput, resolveAutoAdvanceDelayMs, resolveForwardSlideWithZoomReturn, buildZoomTransitionOverride, hasShowSlideAfter, nextShowSlideIndex, previousShowSlideIndex, beginZoomExcursion, createPresenterShowGuard, firstShowSlideIndex, attachPresentationVisibilityPause, presentationEntrySlideIndex, buildMorphTransitionPlan, morphOptionToMode, buildMorphAnimationRules, findInSlides, applyFindReplacements, visibleTemplateElements, createCollaborationLivePatcher, publishLiveInlineText, initialInspectorOpen, createPresentationLoadResources, collectMediaElements, resolveMediaElementSource, collectImagePaths, applyImagePathPatches, resolveTableCellImageUrls, resolveTableStyleImageUrls, resolveTextFillBlipUrls, seedRecentColors, resolveAuthoredCustomShowId, buildInitialGuides, readOnlyRecommendation, compatibilityWarningToasts, resolveInitialSlideIndex, resolveAutosaveIntervalMs, shouldWriteAutosaveSnapshot, saveAutosaveSnapshot, autosaveSnapshotMark, updateMasterViewElement, updateElement, masterViewElements, replaceMasterViewElements, addSection, renameSection, deleteSection, moveSectionUp, moveSectionDown, moveSlidesToSection, canMergeShapes, canInteractWithElement, prepareHtml2CanvasClone, slideProgressPercent, slideStatusLabel, EXPORT_ASSEMBLING_PERCENT, EXPORT_DONE_PERCENT, isExportAbortError, resolveImageResolutionScale, applyAcceptSlide, applyAcceptAllSlides, collectUsedFonts, describeFontEmbedding, isMobileViewport, resolveAuthoredSlideRange, mayLeaveSlideShow, buildDeckSaveOptions, resolveSlideSizeSelection, saveDeckWithPassword, shouldProbeAutosaveRecovery, probeAutosaveRecovery, acceptAutosaveRecovery, acknowledgeAutosaveRecovery, discardAutosaveRecovery, shouldLoopContinuously, applyRehearsalTimings, rasterResultToPngBlob, downloadBlob, elementPictureFilename, canEditElementPoints, collectReferencedFontFamilies, resolveGoogleWebfontHref, syncGoogleWebfontStylesheet, selectGoogleWebfontFamilies, fetchGoogleWebfontOutlineBytes, isFeatureEnabled, mapSlideShowStartKey, mapCustomizedEditorKey, isEditorControlTarget, isEditorTextInputTarget, parentSelection, textFontSizePtToPx, stepFontSizePt, textFontSizePxToPt, cycleSelectableElement, createCustomizationController, prepareElementForInsertion, slideSpaceElement, createViewerOptionsStore, observeYDocSlides, LOCAL_SYNC_ORIGIN, readSlidesFromYDoc, shouldRoomSlidesReplaceLoad, reconcileSlidesInYDoc, shouldAutoFollowBroadcaster, detectTouchDevice, detectOrientation, deriveViewportBreakpoints, createTouchGestureRecognizer, isKeyboardOpen, scopeLayoutOptionsToSlide, checkModifyPassword, viewerPreferencesFromViewProperties, DEFAULT_VIEWER_PREFERENCES, viewPropertiesPatchFromPreferences, openPptxFile, readBackstageRecentFile, resolveCollaborationShellEditability, resolveCollaborationShellState, deviceStrokeStageStyle, MORPH_CROSSFADE_GROUP_STYLE, MORPH_CROSSFADE_HALF_STYLE, getSlideTransitionAnimations, getFragmentedTransitionDescriptor, SLIDE_TRANSITION_KEYFRAMES, isActionHidden, buildInlineTextCommitPatch, resolveInlineEditAutoFitHeight, resolveInlineEditNormAutofitShrink, setPendingCaretPoint, drillSelectionForDoubleClick, filterInteractableIds, beginShapeAdjustment, buildElementClipboardPayload, contextMenuInspectorAnchor, savedPresentationFileName, exportDeckJson, groupElements, generateElementId, ungroupElements, alignElements, distributeElements, newTableElement, createDefaultChartElement, readViewportMetrics, computeKeyboardInset, planMergeShapes, applyMergeShapesPlan, mapPresentationKey, lastShowSlideIndex, mapPresentationWheel, openPendingPrintWindow, computeColorFilter, filterHiddenSlideIndices, computeSlideIndices, buildPrintDocument, finishPrintWindow, buildPrintHtmlDocument, buildOutlineHtml, buildSlidesHtml, buildNotesHtml, buildHandoutsHtml, createBlankSlide, insertSlidePaste, applySlidePasteTemplates, makeSlideId, buildSlideTemplateSlide, templateSchemeFromTheme, resolveViewportFitOptions, editorViewportFitFor, calculateViewportFit, scheduleAutoAdvanceChain, computeEntranceAnimationDelay, createPresentationSessionId, resolveTransitionDurationMs, resolveTransitionSoundAction, runPresentationAction, safeOpenUrl, buildRunProgramNotice, toggleStageElementMedia, resolveOleVerbTarget, downloadDataUrl, createPresenterTimer, createInitialPresentationSnapshot, mergePresentationSnapshot, resetPresenterTimer, presenterElapsed, stepPresenterZoom, togglePresenterTimer, addCommentToList, removeCommentFromList, editCommentInList, toggleCommentResolvedInList, slideSpaceMembers, remapTextToSegments, buildInlineListStylePatch, applyActiveInlineListFormatting, applyListStyleUpdate, setPendingSelectionRestore, applyTextStyleUpdate, toggleSelectionBullets, transformInlineListCase, applyCaseTransformToSegments, transformTextCase, resolveExportCaptureDecision, recordProgressPercent, computeGridSpacingPx as computeGridSpacingPx$1, resolveShowSlideIndexes, groupSlidesBySection, masterViewPseudoSlide, overlayMasterViewInlineSnapshot, overlayInlineTextSnapshot, rasterizeElement, cloneElementForPaste, applyPasteSpecialFormat, buildRasterPictureElement, cloneElementUpdates, assertElementUpdateTarget, prepareElementUpdateBatch, createWriteBackScheduler, observeExternalCollaborationReadiness, resolveHistoryDepth, createBackstagePresentation, buildFieldSubstitutionContext, isEnterableGroup, memberChainAtPoint, findElementPath, drillSelectionForClick, scrollInspectorSectionIntoView, computeScrollDelta, replyToCommentInList, removeTableElementColumn, insertTableElementColumn, removeTableElementRow, insertTableElementRow, withCellStyle, setCellText, pickSupportedMimeType, WEBM_MIME_CANDIDATES, fpsToFrameIntervalMs, segmentFrameCount, stopCaptureStream, GIF_POST_CAPTURE_MAX_SIDE, encodeGif, rasterizeElementTiles, placeTileOnPage, PDF_SLIDES_PAGE_WIDTH_PT, PDF_SLIDES_PAGE_HEIGHT_PT, createSnapshotTextPositions, resolvePresentationAction, buildSmartArtPresetData, classifyMediaType, publishLiveGeometry, getDraggedShapeAdjustments, computeMarqueeHitIds, mergeAdditiveSelection, rasterizeElementTiledToCanvas, borrowExternalCollaborationAwareness, observeExternalCollaborationSession, clampGifDimensions, rasterResultToPngDataUrl, shouldConfirmExternalHyperlink, applyResize, lockResizeAspect, snapBoxToGrid, applyMotionPathPreset, bringForward, sendBackward, bringToFront, sendToBack } from 'ooxml-ui/pptx';
3
3
  export { DUOTONE_PRESETS, MOBILE_BREAKPOINT, SLIDE_TRANSITION_KEYFRAMES, TABLET_BREAKPOINT, clearAudienceContent, computeVirtualRange, downloadBlob, getSlideTransitionAnimations, loadAudienceContent, storeAudienceContent } from 'ooxml-ui/pptx';
4
4
  import React17, { createContext, useMemo, useState, useCallback, useEffect, Suspense, useRef, useLayoutEffect, useContext, useSyncExternalStore, useImperativeHandle } from 'react';
@@ -747,6 +747,7 @@ function useEditorHistory(input) {
747
747
  const lastHistorySerializedRef = useRef("");
748
748
  const lastCheapHashRef = useRef("");
749
749
  const isApplyingHistoryRef = useRef(false);
750
+ const trackingHeldRef = useRef(false);
750
751
  const unlockHistoryTimerRef = useRef(null);
751
752
  const [canUndo, setCanUndo] = useState(false);
752
753
  const [canRedo, setCanRedo] = useState(false);
@@ -889,7 +890,7 @@ function useEditorHistory(input) {
889
890
  if (loading || error) {
890
891
  return;
891
892
  }
892
- if (isApplyingHistoryRef.current) {
893
+ if (isApplyingHistoryRef.current || trackingHeldRef.current) {
893
894
  return;
894
895
  }
895
896
  if (hasActivePointerInteraction()) {
@@ -965,8 +966,12 @@ function useEditorHistory(input) {
965
966
  onDirtyRef.current?.();
966
967
  updateHistoryAvailability();
967
968
  };
969
+ const holdTracking = useCallback((held) => {
970
+ trackingHeldRef.current = held;
971
+ }, []);
968
972
  return {
969
973
  commitSlides,
974
+ holdTracking,
970
975
  canUndo,
971
976
  canRedo,
972
977
  undoLabel,
@@ -4155,6 +4160,7 @@ function useViewerCoreState(_input) {
4155
4160
  const [modernCommentAuthors, setModernCommentAuthors] = useState([]);
4156
4161
  const [recentColors, setRecentColors] = useState([]);
4157
4162
  const [theme, setTheme] = useState();
4163
+ const deckStyleHeldRef = useRef(void 0);
4158
4164
  const [tableStyleMap, setTableStyleMap] = useState();
4159
4165
  const [tableStylesDefaultId, setTableStylesDefaultId] = useState();
4160
4166
  const [tableStylesToDelete, setTableStylesToDelete] = useState([]);
@@ -4252,6 +4258,7 @@ function useViewerCoreState(_input) {
4252
4258
  recentColors,
4253
4259
  setRecentColors,
4254
4260
  theme,
4261
+ deckStyleHeldRef,
4255
4262
  setTheme,
4256
4263
  tableStyleMap,
4257
4264
  setTableStyleMap,
@@ -9460,6 +9467,7 @@ function useSerialize(input) {
9460
9467
  notesMaster,
9461
9468
  handoutMaster,
9462
9469
  handlerRef,
9470
+ heldDeckRef,
9463
9471
  inlineEditingElementIdRef,
9464
9472
  inlineEditingTextRef,
9465
9473
  inlineEditingSnapshotRef,
@@ -9485,8 +9493,8 @@ function useSerialize(input) {
9485
9493
  const pendingSnapshot = read?.snapshot ?? inlineEditingSnapshotRef?.current;
9486
9494
  const pending = overlayPendingInlineEdit(
9487
9495
  {
9488
- slides,
9489
- templateElementsBySlideId,
9496
+ slides: heldDeckRef?.current?.slides ?? slides,
9497
+ templateElementsBySlideId: heldDeckRef?.current?.templateElementsBySlideId ?? templateElementsBySlideId,
9490
9498
  activeSlideIndex,
9491
9499
  editTemplateMode,
9492
9500
  masterViewTarget,
@@ -10616,6 +10624,7 @@ function useContentLifecycle(input) {
10616
10624
  notesMaster: state.notesMaster,
10617
10625
  handoutMaster: state.handoutMaster,
10618
10626
  handlerRef,
10627
+ heldDeckRef: state.deckStyleHeldRef,
10619
10628
  inlineEditingElementIdRef: state.inlineEditingElementIdRef,
10620
10629
  inlineEditingTextRef: state.inlineEditingTextRef,
10621
10630
  inlineEditingSnapshotRef: state.inlineEditingSnapshotRef,
@@ -14055,6 +14064,7 @@ function ChartElementView({
14055
14064
  onUpdateElement,
14056
14065
  animationState
14057
14066
  }) {
14067
+ const { t } = useTranslation();
14058
14068
  const wrapperRef = useRef(null);
14059
14069
  const { selection, setSelection } = useChartPartSelection();
14060
14070
  const [titleDraft, setTitleDraft] = useState(null);
@@ -14174,9 +14184,9 @@ function ChartElementView({
14174
14184
  textStyle: animationState?.textStyle,
14175
14185
  onSelect: chart3D.onSelect,
14176
14186
  onDrag: chart3D.onDrag,
14177
- children: renderChartElement(renderedElement)
14187
+ children: renderChartElement(renderedElement, (key) => t(key))
14178
14188
  }
14179
- ) : renderChartElement(renderedElement),
14189
+ ) : renderChartElement(renderedElement, (key) => t(key)),
14180
14190
  dragValue !== null && /* @__PURE__ */ jsx("div", { className: "absolute top-1 right-1 z-10 rounded bg-primary/90 px-1.5 py-0.5 text-[10px] font-medium text-white pointer-events-none", children: formatAxisValue(dragValue) }),
14181
14191
  titleDraft !== null && /* @__PURE__ */ jsx(
14182
14192
  "input",
Binary file
Binary file
@@ -1,5 +1,5 @@
1
1
  import { __reExport } from './chunk-Q3DHYOLK.mjs';
2
- import { SHAPE_PRESET_DEFS, VIEWER_SHORTCUT_REFERENCE, STROKE_DASH_OPTIONS as STROKE_DASH_OPTIONS$1, getAnimationInitialStyle as getAnimationInitialStyle$1, cloneHistorySnapshot as cloneHistorySnapshot$1, getImageFitStyle, getImageFillCounterTransform, getComputedFillStyle, getCropShapeClipPath as getCropShapeClipPath$1, getImageTilingStyle as getImageTilingStyle$1, mediaPlaybackAttributes, getOnlineVideoEmbed, ONLINE_VIDEO_IFRAME_SANDBOX, ONLINE_VIDEO_IFRAME_ALLOW, buildTextBlockStyle, toCssWritingMode, toCssTextOrientation, toCssVerticalDirection, buildTextBodyLayoutStyle, buildTextBody3DSceneStyle as buildTextBody3DSceneStyle$1, buildParagraphs, followingText, colorWithOpacity, normalizeHexColor, hexToRgbUnit, build3DExtrusionData as build3DExtrusionData$1, getComputedEffectStyle, getComputedStrokeStyle, getAnimationColorBaseStyle, isStrokeOnlyPresetElement, resolveShapeGeometry, screenStrokeWidth, normalizeStrokeDashType, getSvgStrokeDasharray, buildSvgGradientDef, buildStrokeOutline, getPresetShapeVectorGeometry, isWedgeCalloutPresetShape, svgGradientFillRef, svgLineCap, getCompoundLineOffsets, getCompoundLineWidths, canDrillDown, computeSelectionRect, DEFAULT_FONT_FAMILY as DEFAULT_FONT_FAMILY$1, cellStyleToCss, TABLE_CELL_TEXT_DEFAULTS, rectToCells, isCellInRect, tableContainerCss, buildChartViewModel, resolveChartKind, chartPreserveAspectRatio, buildNotesPdfBytes, buildTiledSlidesPdfBytes, buildPreviewAnimation, measurePreviewGeometry, buildMotionPathPreview, mediaFallbackVisual, scheduleMediaTrimAndFade, registerCrossSlideAudio, shouldShowMediaFullscreenStopButton, withInlineListDecorationDefaults, segmentStyleToCss, resolveAutoFitFontScale, applyUnderlineVariant, nestedTextDecorationStyle, scaleFontSizeForAutoFit, resolveFontKerning, resolveScriptFontSet, hasDistinctScriptFonts, authoredLetterSpacingPx, eastAsianBreaksForRun, pieceLetterSpacing, resolveMetricTrackingPx, hollowTextFillStyle, splitsUnderlineIntoWords, stripUnderlineDecoration, buildTabContext, TEXT_BUILD_ID_SEP, buildTextBuildSpec, textBuildSpanStyle, apply3dEffects as apply3dEffects$1, buildSubpathPaints, computeColumnBoundaries, computeTableMergeCrossings, columnHandleSegments, rowHandleSegments, getTableCellBandStyle as getTableCellBandStyle$1, parseDrawingColor, parseDrawingColorOpacity, getCellDiagonalBorders as getCellDiagonalBorders$1, cellParagraphBlocks, resolveChartPalette, computeChartLegendLayout, resolveChartSvgDef, mediaFallbackIcon, mediaFallbackLabelKey, MEDIA_CHROME_ATTRIBUTE, convertOmmlToMathMl, sanitizeMathMl, tableCellCss, computeResizedColumnWidths, computeResizedRowHeight, DEFAULT_ROW_HEIGHT, buildRectPathGradient, screenBorder, cellRunStyle, buildRunTabLines, chartPartToAttrs, splitWordsForUnderline, splitRunForMetrics, splitEastAsianBreaks, splitRunByScriptFont } from 'ooxml-ui/pptx';
2
+ import { SHAPE_PRESET_DEFS, VIEWER_SHORTCUT_REFERENCE, STROKE_DASH_OPTIONS as STROKE_DASH_OPTIONS$1, getAnimationInitialStyle as getAnimationInitialStyle$1, cloneHistorySnapshot as cloneHistorySnapshot$1, getImageFitStyle, getImageFillCounterTransform, getComputedFillStyle, getCropShapeClipPath as getCropShapeClipPath$1, getImageTilingStyle as getImageTilingStyle$1, mediaPlaybackAttributes, getOnlineVideoEmbed, ONLINE_VIDEO_IFRAME_SANDBOX, ONLINE_VIDEO_IFRAME_ALLOW, buildTextBlockStyle, toCssWritingMode, toCssTextOrientation, toCssVerticalDirection, buildTextBodyLayoutStyle, buildTextBody3DSceneStyle as buildTextBody3DSceneStyle$1, buildParagraphs, followingText, colorWithOpacity, normalizeHexColor, hexToRgbUnit, build3DExtrusionData as build3DExtrusionData$1, getFrameEffectStyle, getComputedEffectStyle, getComputedStrokeStyle, getAnimationColorBaseStyle, isStrokeOnlyPresetElement, resolveShapeGeometry, screenStrokeWidth, normalizeStrokeDashType, getSvgStrokeDasharray, buildSvgGradientDef, buildStrokeOutline, getPresetShapeVectorGeometry, isWedgeCalloutPresetShape, svgGradientFillRef, svgLineCap, getCompoundLineOffsets, getCompoundLineWidths, canDrillDown, computeSelectionRect, DEFAULT_FONT_FAMILY as DEFAULT_FONT_FAMILY$1, cellStyleToCss, TABLE_CELL_TEXT_DEFAULTS, rectToCells, isCellInRect, tableContainerCss, buildChartViewModel, resolveChartKind, chartPreserveAspectRatio, buildNotesPdfBytes, buildTiledSlidesPdfBytes, buildPreviewAnimation, measurePreviewGeometry, buildMotionPathPreview, mediaFallbackVisual, scheduleMediaTrimAndFade, registerCrossSlideAudio, shouldShowMediaFullscreenStopButton, withInlineListDecorationDefaults, segmentStyleToCss, resolveAutoFitFontScale, applyUnderlineVariant, nestedTextDecorationStyle, scaleFontSizeForAutoFit, resolveFontKerning, resolveScriptFontSet, hasDistinctScriptFonts, authoredLetterSpacingPx, eastAsianBreaksForRun, pieceLetterSpacing, resolveMetricTrackingPx, hollowTextFillStyle, splitsUnderlineIntoWords, stripUnderlineDecoration, buildTabContext, TEXT_BUILD_ID_SEP, buildTextBuildSpec, textBuildSpanStyle, apply3dEffects as apply3dEffects$1, buildSubpathPaints, computeColumnBoundaries, computeTableMergeCrossings, columnHandleSegments, rowHandleSegments, getTableCellBandStyle as getTableCellBandStyle$1, parseDrawingColor, parseDrawingColorOpacity, getCellDiagonalBorders as getCellDiagonalBorders$1, cellParagraphBlocks, resolveChartPalette, computeChartLegendLayout, resolveChartSvgDef, mediaFallbackIcon, mediaFallbackLabelKey, MEDIA_CHROME_ATTRIBUTE, convertOmmlToMathMl, sanitizeMathMl, tableCellCss, computeResizedColumnWidths, computeResizedRowHeight, DEFAULT_ROW_HEIGHT, buildRectPathGradient, screenBorder, cellRunStyle, buildRunTabLines, chartPartToAttrs, splitWordsForUnderline, splitRunForMetrics, splitEastAsianBreaks, splitRunByScriptFont } from 'ooxml-ui/pptx';
3
3
  export { ACTION_BUTTON_PRESETS, DEFAULT_COLOR_CHANGE_TOLERANCE, INK_REPLAY_KEYFRAMES, MAX_ZOOM_SCALE, MIN_ZOOM_SCALE, SHAPE_QUICK_STYLES, SLIDE_TRANSITION_OPTIONS, TABLE_STYLE_PRESETS, applyColorChange, applyFormatToElement, applyReroutedConnectors, buildCacheKey, buildContentPartStrokes, buildCssGradientFromShapeStyle, buildInkGroupStrokes, buildSaveSlides, canvasToJpegData, clampCropValue, cloneSlide, cloneTemplateElementsBySlideId, colorWithOpacity, comparePresentation, computeHandoutLayout, computeSnapToShape, copyFormatFromElement, formatCommentTimestamp, generateNoteLineCount, getAriaLabel, getAriaRole, getAriaRoleDescription, getCachedResult, getCompoundLineOffsets, getCompoundLineWidths, getContentPartReplayStyles, getElementLabel, getElementTransform, getElementTransformWithoutRotation, getImageEffectsFilter, getImageEffectsOpacity, getInkReplayStyles, getPatternSvg, getPrintableArea, getShapeAdjustmentHandleDescriptors, getSvgStrokeDasharray, getTextCompensationTransform, hasCopyableFormat, isEditableTextElement, isImageTiled, isPpactionUrl, isTemplateElementId, isUrlSafe, makeCloneId, mergeCells, normalizeHexColor, normalizeStrokeDashType, openNativeEyeDropper, parsePpactionUrl, partitionTemplateElements, rerouteConnectorsForMovedElements, safeOpenUrl, sanitizeGradientStops, setCachedResult, splitCell, stopAllPersistentAudio, substituteFieldText } from 'ooxml-ui/pptx';
4
4
  import * as pptx_star from 'ooxml-core/pptx';
5
5
  import { clsx } from 'clsx';
@@ -1783,16 +1783,9 @@ function rendersWedgeCalloutVector(element) {
1783
1783
  return element.type === "shape" && isWedgeCalloutPresetShape(element.shapeType);
1784
1784
  }
1785
1785
  function getShapeVisualStyle(element, _hasFill, fillColor, _strokeWidth, _strokeColor, animatesFill, animatesStroke, parentGroupFill) {
1786
- if (element.type === "group") {
1787
- const fx2 = getComputedEffectStyle(element);
1788
- const groupStyle = {};
1789
- if (fx2.filter) {
1790
- groupStyle.filter = fx2.filter;
1791
- }
1792
- if (fx2.overflowVisible) {
1793
- groupStyle.overflow = "visible";
1794
- }
1795
- return groupStyle;
1786
+ const frame = getFrameEffectStyle(element);
1787
+ if (frame) {
1788
+ return { ...frame };
1796
1789
  }
1797
1790
  if (!(0, dist_exports.hasShapeProperties)(element)) {
1798
1791
  return {};
@@ -3652,8 +3645,8 @@ function renderText(t, key) {
3652
3645
  key
3653
3646
  );
3654
3647
  }
3655
- function renderChartViewModel(elementId, vm, preserveAspectRatio = "none") {
3656
- const legendItems = computeChartLegendLayout(vm);
3648
+ function renderChartViewModel(elementId, vm, preserveAspectRatio = "none", translate) {
3649
+ const legendItems = computeChartLegendLayout(vm, translate);
3657
3650
  return /* @__PURE__ */ jsxs(
3658
3651
  "svg",
3659
3652
  {
@@ -3816,7 +3809,7 @@ function renderChartViewModel(elementId, vm, preserveAspectRatio = "none") {
3816
3809
  }
3817
3810
  );
3818
3811
  }
3819
- function renderChartElement(element) {
3812
+ function renderChartElement(element, translate) {
3820
3813
  if (element.type !== "chart") {
3821
3814
  return /* @__PURE__ */ jsx("div", { className: "w-full h-full flex items-center justify-center text-[11px] text-white/80 pointer-events-none", children: translationsEn["pptx.chart.heading"] });
3822
3815
  }
@@ -3828,7 +3821,8 @@ function renderChartElement(element) {
3828
3821
  return renderChartViewModel(
3829
3822
  element.id,
3830
3823
  buildReactChartViewModel(element),
3831
- chartPreserveAspectRatio(kind)
3824
+ chartPreserveAspectRatio(kind),
3825
+ translate
3832
3826
  );
3833
3827
  }
3834
3828
  function buildNotesPdf(pages) {
Binary file
Binary file