pptx-react-viewer 4.45.0 → 4.46.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 (44) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/README.md +2 -2
  3. package/dist/{chunk-KUQRWMIK.js → chunk-2J3467IB.js} +122 -120
  4. package/dist/chunk-2J3467IB.js.br +0 -0
  5. package/dist/chunk-2J3467IB.js.gz +0 -0
  6. package/dist/{chunk-2YCROYR6.js → chunk-AMXSOQRH.js} +32 -11
  7. package/dist/chunk-AMXSOQRH.js.br +0 -0
  8. package/dist/chunk-AMXSOQRH.js.gz +0 -0
  9. package/dist/{chunk-VUE3EPTJ.mjs → chunk-CLHUOZSY.mjs} +7 -5
  10. package/dist/chunk-CLHUOZSY.mjs.br +0 -0
  11. package/dist/chunk-CLHUOZSY.mjs.gz +0 -0
  12. package/dist/{chunk-66APV3YZ.mjs → chunk-UQFIRJGG.mjs} +33 -12
  13. package/dist/chunk-UQFIRJGG.mjs.br +0 -0
  14. package/dist/chunk-UQFIRJGG.mjs.gz +0 -0
  15. package/dist/index.d.ts +5 -1
  16. package/dist/index.js +22 -22
  17. package/dist/index.js.br +0 -0
  18. package/dist/index.js.gz +0 -0
  19. package/dist/index.mjs +2 -2
  20. package/dist/index.mjs.br +0 -0
  21. package/dist/index.mjs.gz +0 -0
  22. package/dist/internals.d.ts +8 -1
  23. package/dist/internals.js +80 -80
  24. package/dist/internals.js.br +0 -0
  25. package/dist/internals.js.gz +0 -0
  26. package/dist/internals.mjs +1 -1
  27. package/dist/internals.mjs.br +0 -0
  28. package/dist/internals.mjs.gz +0 -0
  29. package/dist/viewer/index.d.ts +5 -1
  30. package/dist/viewer/index.js +17 -17
  31. package/dist/viewer/index.js.br +0 -0
  32. package/dist/viewer/index.js.gz +0 -0
  33. package/dist/viewer/index.mjs +2 -2
  34. package/dist/viewer/index.mjs.br +0 -0
  35. package/dist/viewer/index.mjs.gz +0 -0
  36. package/package.json +3 -3
  37. package/dist/chunk-2YCROYR6.js.br +0 -0
  38. package/dist/chunk-2YCROYR6.js.gz +0 -0
  39. package/dist/chunk-66APV3YZ.mjs.br +0 -0
  40. package/dist/chunk-66APV3YZ.mjs.gz +0 -0
  41. package/dist/chunk-KUQRWMIK.js.br +0 -0
  42. package/dist/chunk-KUQRWMIK.js.gz +0 -0
  43. package/dist/chunk-VUE3EPTJ.mjs.br +0 -0
  44. package/dist/chunk-VUE3EPTJ.mjs.gz +0 -0
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunk2YCROYR6_js = require('./chunk-2YCROYR6.js');
3
+ var chunkAMXSOQRH_js = require('./chunk-AMXSOQRH.js');
4
4
  var chunkVJZJESNT_js = require('./chunk-VJZJESNT.js');
5
5
  var pptx = require('ooxml-ui/pptx');
6
6
  var React106 = require('react');
@@ -307,7 +307,7 @@ function SlideTemplatePreview({
307
307
  transformOrigin: "top left"
308
308
  },
309
309
  children: previewSlide.elements.map((element, index) => /* @__PURE__ */ jsxRuntime.jsx(
310
- chunk2YCROYR6_js.StaticElementRenderer,
310
+ chunkAMXSOQRH_js.StaticElementRenderer,
311
311
  {
312
312
  element,
313
313
  activeSlide: previewSlide,
@@ -376,7 +376,7 @@ function SlideTemplateGalleryDialog({
376
376
  scheme
377
377
  }) {
378
378
  const { t } = reactI18next.useTranslation();
379
- const { panelStyle, handlers: dragHandlers } = chunk2YCROYR6_js.useModalDismissDrag(onClose);
379
+ const { panelStyle, handlers: dragHandlers } = chunkAMXSOQRH_js.useModalDismissDrag(onClose);
380
380
  const [selected, setSelected] = React106.useState(null);
381
381
  const dialogRef = React106.useRef(null);
382
382
  useModalFocus(isOpen, dialogRef, onClose);
@@ -868,7 +868,7 @@ function MobileSheet({
868
868
  }) {
869
869
  const sheetRef = React106.useRef(null);
870
870
  const { t } = reactI18next.useTranslation();
871
- const { dragY, dragging, handlers } = chunk2YCROYR6_js.useSheetDismissDrag(onClose);
871
+ const { dragY, dragging, handlers } = chunkAMXSOQRH_js.useSheetDismissDrag(onClose);
872
872
  useModalFocus(open, sheetRef, onClose);
873
873
  if (!open) {
874
874
  return null;
@@ -1136,7 +1136,7 @@ function WebHomeControls({
1136
1136
  function ShapeArrangeExtras(p) {
1137
1137
  const commands = useShapeFormatContext();
1138
1138
  const crop = commands?.crop;
1139
- const { isHidden } = chunk2YCROYR6_js.useToolbarVisibility(p.hiddenActions);
1139
+ const { isHidden } = chunkAMXSOQRH_js.useToolbarVisibility(p.hiddenActions);
1140
1140
  const { onGroupElements, onUngroupElement, onUpdateElementStyle } = p;
1141
1141
  const controls = React106.useMemo(
1142
1142
  () => pptx.arrangeShapeHomeControls({
@@ -1471,7 +1471,7 @@ function TransitionsSection(p) {
1471
1471
  case "soundPreview": {
1472
1472
  const url = pptx.ribbonTransitionStockSoundUrl(transition);
1473
1473
  if (url) {
1474
- chunk2YCROYR6_js.playAnimationSound(url);
1474
+ chunkAMXSOQRH_js.playAnimationSound(url);
1475
1475
  }
1476
1476
  break;
1477
1477
  }
@@ -1667,7 +1667,7 @@ function AccountPage() {
1667
1667
  return void 0;
1668
1668
  });
1669
1669
  };
1670
- const version = "4.45.0" ;
1670
+ const version = "4.46.0" ;
1671
1671
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-8 max-w-[700px] space-y-6", children: [
1672
1672
  /* @__PURE__ */ jsxRuntime.jsxs("section", { className: cardClass, children: [
1673
1673
  /* @__PURE__ */ jsxRuntime.jsxs("h2", { className: "flex items-center gap-2 text-sm font-semibold", children: [
@@ -1931,7 +1931,7 @@ function FileSection(p) {
1931
1931
  const page = offered(requestedPage) ? requestedPage : offered("home") ? "home" : nav.find((item) => item.id !== "save" && item.id !== "close")?.id ?? "home";
1932
1932
  const [query, setQuery] = React106.useState("");
1933
1933
  const [recent, setRecent] = React106.useState([]);
1934
- const { isHidden } = chunk2YCROYR6_js.useToolbarVisibility(p.hiddenActions);
1934
+ const { isHidden } = chunkAMXSOQRH_js.useToolbarVisibility(p.hiddenActions);
1935
1935
  const exportHidden = isHidden("export");
1936
1936
  React106.useEffect(() => {
1937
1937
  void pptx.listBackstageRecentFiles(t, p.recentPresentationsCount).then(setRecent);
@@ -2279,7 +2279,7 @@ function LayoutArtwork({
2279
2279
  backgroundColor
2280
2280
  };
2281
2281
  return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: (preview?.elements ?? []).slice(0, MAX_PREVIEW_ELEMENTS).map((element, index) => /* @__PURE__ */ jsxRuntime.jsx(
2282
- chunk2YCROYR6_js.StaticElementRenderer,
2282
+ chunkAMXSOQRH_js.StaticElementRenderer,
2283
2283
  {
2284
2284
  element,
2285
2285
  activeSlide: slide,
@@ -2729,7 +2729,7 @@ function SlideShowOptions({
2729
2729
  }
2730
2730
  function SubtitleSettingsControl() {
2731
2731
  const { t } = reactI18next.useTranslation();
2732
- const supplied = React106.useContext(chunk2YCROYR6_js.ViewerOptionsStoreContext);
2732
+ const supplied = React106.useContext(chunkAMXSOQRH_js.ViewerOptionsStoreContext);
2733
2733
  const fallback = React106.useRef(null);
2734
2734
  if (!supplied) {
2735
2735
  fallback.current ??= pptx.createViewerOptionsStore({ persist: false });
@@ -2763,7 +2763,7 @@ function SubtitleSettingsControl() {
2763
2763
  }
2764
2764
  function SlideShowSection(p) {
2765
2765
  const { t } = reactI18next.useTranslation();
2766
- const { isHidden } = chunk2YCROYR6_js.useToolbarVisibility(p.hiddenActions);
2766
+ const { isHidden } = chunkAMXSOQRH_js.useToolbarVisibility(p.hiddenActions);
2767
2767
  const [showsOpen, setShowsOpen] = React106.useState(false);
2768
2768
  const showsRef = React106.useRef(null);
2769
2769
  React106.useEffect(() => {
@@ -3302,7 +3302,7 @@ function MobileMenuSheet(props) {
3302
3302
  const { t } = reactI18next.useTranslation();
3303
3303
  const { open, onClose } = props;
3304
3304
  const [active, setActive] = React106.useState("home");
3305
- const { isTabVisible } = chunk2YCROYR6_js.useToolbarVisibility(props.hiddenActions);
3305
+ const { isTabVisible } = chunkAMXSOQRH_js.useToolbarVisibility(props.hiddenActions);
3306
3306
  return /* @__PURE__ */ jsxRuntime.jsx(
3307
3307
  MobileSheet,
3308
3308
  {
@@ -3591,7 +3591,7 @@ function MobileToolbar(props) {
3591
3591
  const { t } = reactI18next.useTranslation();
3592
3592
  const { mode, canUndo, canRedo, onUndo, onRedo, onSetMode, onSaveAsPptx } = props;
3593
3593
  const [menuOpen, setMenuOpen] = React106.useState(false);
3594
- const { isHidden } = chunk2YCROYR6_js.useToolbarVisibility(props.hiddenActions);
3594
+ const { isHidden } = chunkAMXSOQRH_js.useToolbarVisibility(props.hiddenActions);
3595
3595
  const showEdit = mode === "edit" || mode === "master";
3596
3596
  const hidden = [];
3597
3597
  if (isHidden("undo")) {
@@ -3638,7 +3638,7 @@ function MobileToolbar(props) {
3638
3638
  }
3639
3639
  function ChartSelectionStrip() {
3640
3640
  const { t } = reactI18next.useTranslation();
3641
- const commands = chunk2YCROYR6_js.useChartFormatContext();
3641
+ const commands = chunkAMXSOQRH_js.useChartFormatContext();
3642
3642
  const chart = commands?.chart;
3643
3643
  const chartData = chart?.type === "chart" ? chart.chartData : void 0;
3644
3644
  const controls = React106.useMemo(
@@ -3669,7 +3669,7 @@ function PictureSizeStrip({
3669
3669
  hiddenActions
3670
3670
  }) {
3671
3671
  const crop = useShapeFormatContext()?.crop;
3672
- const { isHidden } = chunk2YCROYR6_js.useToolbarVisibility(hiddenActions);
3672
+ const { isHidden } = chunkAMXSOQRH_js.useToolbarVisibility(hiddenActions);
3673
3673
  const controls = React106.useMemo(
3674
3674
  () => pptx.pictureSizeHomeControls({
3675
3675
  editable: Boolean(crop),
@@ -3842,7 +3842,7 @@ var TAB_BASE = "relative px-3.5 py-2 text-[12px] font-medium whitespace-nowrap t
3842
3842
  var TAB_UNDERLINE = "after:absolute after:-bottom-px after:left-0 after:right-0 after:h-[2.5px] after:bg-primary";
3843
3843
  function RibbonTabBar(p) {
3844
3844
  const { t } = reactI18next.useTranslation();
3845
- const viewerOptions = chunk2YCROYR6_js.useViewerOptionsContext();
3845
+ const viewerOptions = chunkAMXSOQRH_js.useViewerOptionsContext();
3846
3846
  return /* @__PURE__ */ jsxRuntime.jsxs(
3847
3847
  "div",
3848
3848
  {
@@ -3919,9 +3919,9 @@ function RibbonTabBar(p) {
3919
3919
  }
3920
3920
  function TabRowActions(p) {
3921
3921
  const { t } = reactI18next.useTranslation();
3922
- const collab = chunk2YCROYR6_js.useCollaboration();
3922
+ const collab = chunkAMXSOQRH_js.useCollaboration();
3923
3923
  const isCollaborating = Boolean(collab && collab.status === "connected");
3924
- const { isHidden } = chunk2YCROYR6_js.useToolbarVisibility(p.hiddenActions);
3924
+ const { isHidden } = chunkAMXSOQRH_js.useToolbarVisibility(p.hiddenActions);
3925
3925
  const customization = useViewerCustomizationContext();
3926
3926
  const ref = React106.useRef(null);
3927
3927
  const handlers = React106.useRef(p);
@@ -3976,7 +3976,7 @@ function TabRowActions(p) {
3976
3976
  }
3977
3977
  function TitleBarElement(p) {
3978
3978
  const { t } = reactI18next.useTranslation();
3979
- const options = chunk2YCROYR6_js.useViewerOptionsContext();
3979
+ const options = chunkAMXSOQRH_js.useViewerOptionsContext();
3980
3980
  const customization = useViewerCustomizationContext();
3981
3981
  const ref = React106.useRef(null);
3982
3982
  const stripVisible = options.quickAccess.visible && pptx.isPanelVisible(customization, "quickAccessToolbar");
@@ -4312,7 +4312,7 @@ function ToolbarPrimaryRow(p) {
4312
4312
  onToggleSidebar,
4313
4313
  onToggleInspector
4314
4314
  } = p;
4315
- const collab = chunk2YCROYR6_js.useCollaboration();
4315
+ const collab = chunkAMXSOQRH_js.useCollaboration();
4316
4316
  const customization = useViewerCustomizationContext();
4317
4317
  const showSlidesToggle = pptx.isPanelVisible(customization, "slidesPane");
4318
4318
  const showInspectorToggle = pptx.isPanelVisible(customization, "inspector");
@@ -4602,8 +4602,8 @@ function ToolbarLateTabs({
4602
4602
  function Toolbar(p) {
4603
4603
  const { mode, isNarrowViewport, isCompactToolbarOpen, toolbarSection, onSetToolbarSection } = p;
4604
4604
  const { t } = reactI18next.useTranslation();
4605
- const { isTabVisible } = chunk2YCROYR6_js.useToolbarVisibility(p.hiddenActions);
4606
- const viewerOptions = chunk2YCROYR6_js.useViewerOptionsContext();
4605
+ const { isTabVisible } = chunkAMXSOQRH_js.useToolbarVisibility(p.hiddenActions);
4606
+ const viewerOptions = chunkAMXSOQRH_js.useViewerOptionsContext();
4607
4607
  const customization = useViewerCustomizationContext();
4608
4608
  const belowInput = React106.useMemo(
4609
4609
  () => ({
@@ -5587,7 +5587,7 @@ function DrawingOverlaySvg({
5587
5587
  onPointerDown,
5588
5588
  onPointerMove,
5589
5589
  onPointerUp,
5590
- children: isStrokeActive && liveStrokeView ? chunk2YCROYR6_js.renderStrokeView(liveStrokeView, true, void 0, "ink-live-preview") : isStrokeActive && liveStrokeD && /* @__PURE__ */ jsxRuntime.jsx(
5590
+ children: isStrokeActive && liveStrokeView ? chunkAMXSOQRH_js.renderStrokeView(liveStrokeView, true, void 0, "ink-live-preview") : isStrokeActive && liveStrokeD && /* @__PURE__ */ jsxRuntime.jsx(
5591
5591
  "path",
5592
5592
  {
5593
5593
  d: liveStrokeD,
@@ -6166,7 +6166,7 @@ function PictureCropOverlay({
6166
6166
  };
6167
6167
  };
6168
6168
  const { ghost, frame, handles } = overlay;
6169
- const src = chunk2YCROYR6_js.imgSrc(element);
6169
+ const src = chunkAMXSOQRH_js.imgSrc(element);
6170
6170
  return /* @__PURE__ */ jsxRuntime.jsxs(
6171
6171
  "div",
6172
6172
  {
@@ -6606,7 +6606,7 @@ function SelectionHandleOverlay({
6606
6606
  onDoubleClick: (e) => onDoubleClick(element.id, e),
6607
6607
  onContextMenu: (e) => onContextMenu(element.id, e),
6608
6608
  children: /* @__PURE__ */ jsxRuntime.jsx(
6609
- chunk2YCROYR6_js.ResizeHandles,
6609
+ chunkAMXSOQRH_js.ResizeHandles,
6610
6610
  {
6611
6611
  elementId: element.id,
6612
6612
  adjustmentHandles,
@@ -7317,7 +7317,7 @@ function SlideCanvas(props) {
7317
7317
  props.registerInlineEditReader
7318
7318
  ]
7319
7319
  );
7320
- return /* @__PURE__ */ jsxRuntime.jsx(chunk2YCROYR6_js.InlineCollaborationContext.Provider, { value, children: /* @__PURE__ */ jsxRuntime.jsx(SlideCanvasContent, { ...props }) });
7320
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkAMXSOQRH_js.InlineCollaborationContext.Provider, { value, children: /* @__PURE__ */ jsxRuntime.jsx(SlideCanvasContent, { ...props }) });
7321
7321
  }
7322
7322
  function SlideCanvasContent({
7323
7323
  imagePaste,
@@ -7586,7 +7586,7 @@ function SlideCanvasContent({
7586
7586
  onPointerMove: handleStagePointerMove,
7587
7587
  onPointerUp: handleStagePointerUp,
7588
7588
  children: [
7589
- /* @__PURE__ */ jsxRuntime.jsx(chunk2YCROYR6_js.SlideBackgroundImageLayer, { slide: activeSlide }),
7589
+ /* @__PURE__ */ jsxRuntime.jsx(chunkAMXSOQRH_js.SlideBackgroundImageLayer, { slide: activeSlide }),
7590
7590
  presentationKeyframesCss && /* @__PURE__ */ jsxRuntime.jsx("style", { children: presentationKeyframesCss }),
7591
7591
  /* @__PURE__ */ jsxRuntime.jsx(GridOverlay, { canvasSize, gridSpacingPx, visible: showGrid }),
7592
7592
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -7598,7 +7598,7 @@ function SlideCanvasContent({
7598
7598
  }
7599
7599
  ),
7600
7600
  templateElements.map((element, index) => /* @__PURE__ */ jsxRuntime.jsx(
7601
- chunk2YCROYR6_js.ElementRenderer,
7601
+ chunkAMXSOQRH_js.ElementRenderer,
7602
7602
  {
7603
7603
  element,
7604
7604
  activeSlide,
@@ -7642,7 +7642,7 @@ function SlideCanvasContent({
7642
7642
  `tpl-${element.id}`
7643
7643
  )),
7644
7644
  activeSlide?.elements.map((element, index) => /* @__PURE__ */ jsxRuntime.jsx(
7645
- chunk2YCROYR6_js.ElementRenderer,
7645
+ chunkAMXSOQRH_js.ElementRenderer,
7646
7646
  {
7647
7647
  element,
7648
7648
  activeSlide,
@@ -7708,7 +7708,7 @@ function SlideCanvasContent({
7708
7708
  editingMember && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
7709
7709
  /* @__PURE__ */ jsxRuntime.jsx("style", { children: `[data-element-id="${cssAttr(editingMember.parentId)}"] [data-element-id="${cssAttr(editingMember.member.id)}"]{visibility:hidden}` }),
7710
7710
  /* @__PURE__ */ jsxRuntime.jsx(
7711
- chunk2YCROYR6_js.ElementRenderer,
7711
+ chunkAMXSOQRH_js.ElementRenderer,
7712
7712
  {
7713
7713
  element: editingMember.member,
7714
7714
  activeSlide,
@@ -8224,7 +8224,7 @@ function SlideThumbnailImpl({
8224
8224
  ...pptx.deviceStrokeStageStyle(scale)
8225
8225
  },
8226
8226
  children: [
8227
- /* @__PURE__ */ jsxRuntime.jsx(chunk2YCROYR6_js.SlideBackgroundImageLayer, { slide }),
8227
+ /* @__PURE__ */ jsxRuntime.jsx(chunkAMXSOQRH_js.SlideBackgroundImageLayer, { slide }),
8228
8228
  slide.transition && slide.transition.type !== "none" && slide.transition.type !== "cut" && /* @__PURE__ */ jsxRuntime.jsx(
8229
8229
  "div",
8230
8230
  {
@@ -8234,7 +8234,7 @@ function SlideThumbnailImpl({
8234
8234
  }
8235
8235
  ),
8236
8236
  previewElements.map((element, index) => /* @__PURE__ */ jsxRuntime.jsx(
8237
- chunk2YCROYR6_js.StaticElementRenderer,
8237
+ chunkAMXSOQRH_js.StaticElementRenderer,
8238
8238
  {
8239
8239
  element,
8240
8240
  activeSlide: slide,
@@ -8409,7 +8409,7 @@ function ContextMenu(props) {
8409
8409
  const { t } = reactI18next.useTranslation();
8410
8410
  const customization = useViewerCustomizationContext();
8411
8411
  const shapeFormat = useShapeFormatContext();
8412
- const chartFormat = chunk2YCROYR6_js.useChartFormatContext();
8412
+ const chartFormat = chunkAMXSOQRH_js.useChartFormatContext();
8413
8413
  const open = Boolean(contextMenuState) && mode === "edit";
8414
8414
  const handlers = {
8415
8415
  ...contextMenuHandlers(props, shapeFormat),
@@ -9324,7 +9324,7 @@ function SlidesPaneSidebar({
9324
9324
  tableStyleContext
9325
9325
  }) {
9326
9326
  const { t } = reactI18next.useTranslation();
9327
- const collab = chunk2YCROYR6_js.useCollaboration();
9327
+ const collab = chunkAMXSOQRH_js.useCollaboration();
9328
9328
  const slideRefs = React106.useRef(/* @__PURE__ */ new Map());
9329
9329
  const renameInputRef = React106.useRef(null);
9330
9330
  const slidePresenceMap = React106.useMemo(() => {
@@ -9419,7 +9419,7 @@ function SlidesPaneSidebar({
9419
9419
  [sectionGroups, showSectionHeaders, effectiveCollapsed]
9420
9420
  );
9421
9421
  const shouldVirtualize = slides.length >= VIRTUALIZATION_THRESHOLD;
9422
- const { startIndex, endIndex, totalHeight, offsetY, scrollContainerRef, scrollToIndex } = chunk2YCROYR6_js.useVirtualizedSlides({
9422
+ const { startIndex, endIndex, totalHeight, offsetY, scrollContainerRef, scrollToIndex } = chunkAMXSOQRH_js.useVirtualizedSlides({
9423
9423
  totalItems: shouldVirtualize ? flatItems.length : 0,
9424
9424
  itemHeight: estimatedItemHeight
9425
9425
  });
@@ -11303,7 +11303,7 @@ function ReadingViewStage({
11303
11303
  className: "absolute left-0 top-0 origin-top-left",
11304
11304
  style: { width, height, transform: `scale(${scale})`, ...pptx.deviceStrokeStageStyle(scale) },
11305
11305
  children: elements.map((element, index) => /* @__PURE__ */ jsxRuntime.jsx(
11306
- chunk2YCROYR6_js.StaticElementRenderer,
11306
+ chunkAMXSOQRH_js.StaticElementRenderer,
11307
11307
  {
11308
11308
  element,
11309
11309
  activeSlide: slide,
@@ -11958,7 +11958,7 @@ function SlideNotesPanel({
11958
11958
  });
11959
11959
  const hasNotes = draft.trim().length > 0;
11960
11960
  const slideLabel = activeSlide ? t("pptx.notes.slideN", { n: activeSlide.slideNumber }) : t("pptx.notes.noSlide");
11961
- const { dragY, handlers: dragHandlers } = chunk2YCROYR6_js.useSheetDismissDrag(onToggle);
11961
+ const { dragY, handlers: dragHandlers } = chunkAMXSOQRH_js.useSheetDismissDrag(onToggle);
11962
11962
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
11963
11963
  isExpanded && /* @__PURE__ */ jsxRuntime.jsx(
11964
11964
  "button",
@@ -13095,7 +13095,7 @@ function DocumentPropertiesDialog({
13095
13095
  const handleClose = React106.useCallback(() => {
13096
13096
  onClose();
13097
13097
  }, [onClose]);
13098
- const { panelStyle, handlers: dragHandlers } = chunk2YCROYR6_js.useModalDismissDrag(handleClose);
13098
+ const { panelStyle, handlers: dragHandlers } = chunkAMXSOQRH_js.useModalDismissDrag(handleClose);
13099
13099
  if (!isOpen) {
13100
13100
  return null;
13101
13101
  }
@@ -13692,7 +13692,7 @@ function PresentationSubtitleBar({
13692
13692
  }) {
13693
13693
  const { t } = reactI18next.useTranslation();
13694
13694
  const language = pptx.subtitleRecognitionLanguage(
13695
- pptx.subtitleSettingsFromOptions(chunk2YCROYR6_js.useViewerOptionsContext()),
13695
+ pptx.subtitleSettingsFromOptions(chunkAMXSOQRH_js.useViewerOptionsContext()),
13696
13696
  typeof navigator === "undefined" ? "en-US" : navigator.language
13697
13697
  );
13698
13698
  const [captionText, setCaptionText] = React106.useState("");
@@ -13886,7 +13886,7 @@ function ScaledSlidePreviewImpl({
13886
13886
  ...pptx.deviceStrokeStageStyle(scale)
13887
13887
  },
13888
13888
  children: previewElements.map((element, index) => /* @__PURE__ */ jsxRuntime.jsx(
13889
- chunk2YCROYR6_js.StaticElementRenderer,
13889
+ chunkAMXSOQRH_js.StaticElementRenderer,
13890
13890
  {
13891
13891
  element,
13892
13892
  activeSlide: slide,
@@ -15203,7 +15203,7 @@ function EffectSoundRow({
15203
15203
  }
15204
15204
  const asset = pptx.getEffectSoundAsset(soundState.catalogueId);
15205
15205
  if (asset) {
15206
- chunk2YCROYR6_js.playAnimationSound(asset.dataUrl);
15206
+ chunkAMXSOQRH_js.playAnimationSound(asset.dataUrl);
15207
15207
  }
15208
15208
  };
15209
15209
  return /* @__PURE__ */ jsxRuntime.jsxs("label", { className: "flex flex-col gap-1", children: [
@@ -15715,7 +15715,7 @@ function AnimationPanel({
15715
15715
  onUpdateSlide
15716
15716
  }) {
15717
15717
  const { t } = reactI18next.useTranslation();
15718
- const { viewportWidth } = chunk2YCROYR6_js.useIsMobile();
15718
+ const { viewportWidth } = chunkAMXSOQRH_js.useIsMobile();
15719
15719
  const directionBtnPx = Math.max(28, pptx.getDensePanelTouchTargetPx(viewportWidth));
15720
15720
  const fieldStyle = { minHeight: pptx.getDensePanelTouchTargetPx(viewportWidth) };
15721
15721
  const handlers = useAnimationHandlers({
@@ -16614,7 +16614,7 @@ function ChartDataGrid({
16614
16614
  }) {
16615
16615
  const { t } = reactI18next.useTranslation();
16616
16616
  const highlightRef = React106.useRef(null);
16617
- const { viewportWidth } = chunk2YCROYR6_js.useIsMobile();
16617
+ const { viewportWidth } = chunkAMXSOQRH_js.useIsMobile();
16618
16618
  const gridPlan = pptx.getDenseGridLayoutPlan(viewportWidth);
16619
16619
  const touchTargetPx = pptx.getDensePanelTouchTargetPx(viewportWidth);
16620
16620
  const rowHeaderClass = gridPlan.stickyFirstColumn ? "sticky left-0 z-10 bg-card" : "";
@@ -17971,8 +17971,8 @@ function ChartUserShapeOptions({
17971
17971
  }
17972
17972
  function ChartDataPanel({ selectedElement, canEdit, onUpdateElement }) {
17973
17973
  const chartData = selectedElement.chartData;
17974
- const followDataPoint = chunk2YCROYR6_js.useViewerOptionsContext().advanced.chartPropertiesFollowDataPoint;
17975
- const { selection: partSelection } = chunk2YCROYR6_js.useChartPartSelection();
17974
+ const followDataPoint = chunkAMXSOQRH_js.useViewerOptionsContext().advanced.chartPropertiesFollowDataPoint;
17975
+ const { selection: partSelection } = chunkAMXSOQRH_js.useChartPartSelection();
17976
17976
  const canvasPart = partSelection?.elementId === selectedElement.id ? partSelection.part : null;
17977
17977
  const title = chartData?.title;
17978
17978
  const chartType = chartData?.chartType;
@@ -19240,7 +19240,7 @@ function DuotonePanel({
19240
19240
  ] }),
19241
19241
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-1", children: [
19242
19242
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-muted-foreground text-[10px]", children: t("pptx.image.duotonePresets") }),
19243
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-4 gap-1", children: chunk2YCROYR6_js.DUOTONE_PRESETS.map((preset) => /* @__PURE__ */ jsxRuntime.jsxs(
19243
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-4 gap-1", children: chunkAMXSOQRH_js.DUOTONE_PRESETS.map((preset) => /* @__PURE__ */ jsxRuntime.jsxs(
19244
19244
  "button",
19245
19245
  {
19246
19246
  type: "button",
@@ -21542,7 +21542,7 @@ function QuickStylesGallery({
21542
21542
  onUpdateShapeStyle
21543
21543
  }) {
21544
21544
  const { t } = reactI18next.useTranslation();
21545
- const { viewportWidth } = chunk2YCROYR6_js.useIsMobile();
21545
+ const { viewportWidth } = chunkAMXSOQRH_js.useIsMobile();
21546
21546
  const swatchMinHeight = pptx.getDensePanelTouchTargetPx(viewportWidth);
21547
21547
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-1", children: [
21548
21548
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: LBL, children: t("pptx.shape.quickStyles") }),
@@ -23237,7 +23237,7 @@ function SmartArtPropertiesPanel({
23237
23237
  const reflowed = box ? pptx.rebuildDrawingShapesIfCleared(
23238
23238
  newData,
23239
23239
  newData.layout,
23240
- chunk2YCROYR6_js.resolveSmartArtDataPalette(newData),
23240
+ chunkAMXSOQRH_js.resolveSmartArtDataPalette(newData),
23241
23241
  newData.style ?? "flat",
23242
23242
  "inspector",
23243
23243
  box
@@ -23426,7 +23426,7 @@ function TableDataGrid({
23426
23426
  }) {
23427
23427
  const { t } = reactI18next.useTranslation();
23428
23428
  const grid = pptx.buildTableDataGrid(tableElement);
23429
- const { viewportWidth } = chunk2YCROYR6_js.useIsMobile();
23429
+ const { viewportWidth } = chunkAMXSOQRH_js.useIsMobile();
23430
23430
  const gridPlan = pptx.getDenseGridLayoutPlan(viewportWidth);
23431
23431
  const touchTargetPx = pptx.getDensePanelTouchTargetPx(viewportWidth);
23432
23432
  const stickyGutterClass = gridPlan.stickyFirstColumn ? "sticky left-0 z-10" : "";
@@ -25268,7 +25268,7 @@ function InspectorPaneHeader({
25268
25268
  onClose
25269
25269
  }) {
25270
25270
  const { t } = reactI18next.useTranslation();
25271
- const { viewportWidth } = chunk2YCROYR6_js.useIsMobile();
25271
+ const { viewportWidth } = chunkAMXSOQRH_js.useIsMobile();
25272
25272
  const touchTargetPx = pptx.getDensePanelTouchTargetPx(viewportWidth);
25273
25273
  const touchBtnStyle = { minWidth: touchTargetPx, minHeight: touchTargetPx };
25274
25274
  return /* @__PURE__ */ jsxRuntime.jsxs(
@@ -25969,7 +25969,7 @@ function TransitionPreview({
25969
25969
  const { t } = reactI18next.useTranslation();
25970
25970
  const durationMs = transition.durationMs ?? 500;
25971
25971
  const animations = React106.useMemo(
25972
- () => chunk2YCROYR6_js.getSlideTransitionAnimations(
25972
+ () => chunkAMXSOQRH_js.getSlideTransitionAnimations(
25973
25973
  transition.type,
25974
25974
  durationMs,
25975
25975
  transition.direction,
@@ -26038,7 +26038,7 @@ function TransitionPreview({
26038
26038
  ]
26039
26039
  }
26040
26040
  ),
26041
- /* @__PURE__ */ jsxRuntime.jsx("style", { children: chunk2YCROYR6_js.SLIDE_TRANSITION_KEYFRAMES })
26041
+ /* @__PURE__ */ jsxRuntime.jsx("style", { children: chunkAMXSOQRH_js.SLIDE_TRANSITION_KEYFRAMES })
26042
26042
  ] });
26043
26043
  }
26044
26044
  var DEFAULT_DURATION_MS = 320;
@@ -26701,7 +26701,7 @@ function InspectorPane(props) {
26701
26701
  } = props;
26702
26702
  const hasSelection = selectedElement !== null;
26703
26703
  const { t } = reactI18next.useTranslation();
26704
- const { dragY, handlers: dragHandlers } = chunk2YCROYR6_js.useSheetDismissDrag(onClose);
26704
+ const { dragY, handlers: dragHandlers } = chunkAMXSOQRH_js.useSheetDismissDrag(onClose);
26705
26705
  const {
26706
26706
  animationPanelHeight,
26707
26707
  effectiveThemeOptions,
@@ -27114,7 +27114,7 @@ function PresentationTouchControls({
27114
27114
  hideNavigation = false
27115
27115
  }) {
27116
27116
  const { t } = reactI18next.useTranslation();
27117
- const { isTouchDevice } = chunk2YCROYR6_js.useIsMobile();
27117
+ const { isTouchDevice } = chunkAMXSOQRH_js.useIsMobile();
27118
27118
  if (!isTouchDevice) {
27119
27119
  return null;
27120
27120
  }
@@ -27761,11 +27761,11 @@ function PrintDialog({
27761
27761
  }) {
27762
27762
  const { t } = reactI18next.useTranslation();
27763
27763
  const regionRenderer = useRegionRenderer("dialog.print");
27764
- const { panelStyle, handlers: dragHandlers } = chunk2YCROYR6_js.useModalDismissDrag(onClose);
27765
- const { viewportWidth } = chunk2YCROYR6_js.useIsMobile();
27764
+ const { panelStyle, handlers: dragHandlers } = chunkAMXSOQRH_js.useModalDismissDrag(onClose);
27765
+ const { viewportWidth } = chunkAMXSOQRH_js.useIsMobile();
27766
27766
  const touchTargetPx = pptx.getDensePanelTouchTargetPx(viewportWidth);
27767
27767
  const closeBtnStyle = { minWidth: touchTargetPx, minHeight: touchTargetPx };
27768
- const printOptionDefaults = pptx.resolveDefaultPrintSettings(chunk2YCROYR6_js.useViewerOptionsContext());
27768
+ const printOptionDefaults = pptx.resolveDefaultPrintSettings(chunkAMXSOQRH_js.useViewerOptionsContext());
27769
27769
  const [printWhat, setPrintWhat] = React106.useState(printOptionDefaults?.printWhat ?? "slides");
27770
27770
  const [orientation, setOrientation] = React106.useState("landscape");
27771
27771
  const [colorMode, setColorMode] = React106.useState(
@@ -28282,14 +28282,14 @@ function BroadcastDialog({
28282
28282
  }) {
28283
28283
  const { t } = reactI18next.useTranslation();
28284
28284
  const regionRenderer = useRegionRenderer("dialog.broadcast");
28285
- const collab = chunk2YCROYR6_js.useCollaboration();
28285
+ const collab = chunkAMXSOQRH_js.useCollaboration();
28286
28286
  const isBroadcasting = collab !== null && collab.status !== "disconnected" && collab.status !== "error" && collab.config.role === "owner";
28287
28287
  const [roomId, setRoomId] = React106.useState("");
28288
28288
  const [userName, setUserName] = React106.useState("");
28289
28289
  const [serverUrl, setServerUrl] = React106.useState("");
28290
28290
  const [copied, setCopied] = React106.useState(false);
28291
28291
  const dialogRef = React106.useRef(null);
28292
- const { panelStyle, handlers: dragHandlers } = chunk2YCROYR6_js.useModalDismissDrag(onClose);
28292
+ const { panelStyle, handlers: dragHandlers } = chunkAMXSOQRH_js.useModalDismissDrag(onClose);
28293
28293
  useModalFocus(open, dialogRef, onClose);
28294
28294
  React106.useEffect(() => {
28295
28295
  if (open && !isBroadcasting) {
@@ -28605,7 +28605,7 @@ function ActiveSessionView({
28605
28605
  onCopyRoomId,
28606
28606
  onStopCollaboration
28607
28607
  }) {
28608
- const { t } = reactI18next.useTranslation(), viewerOptions = chunk2YCROYR6_js.useViewerOptionsContext(), statusColor = collab.status === "connected" ? "text-green-400" : collab.status === "connecting" ? "text-yellow-400" : "text-red-400", statusIcon = collab.status === "connected" || collab.status === "connecting" ? /* @__PURE__ */ jsxRuntime.jsx(lu.LuWifi, { className: "w-4 h-4" }) : /* @__PURE__ */ jsxRuntime.jsx(lu.LuWifiOff, { className: "w-4 h-4" }), sessionUsers = pptx.buildActiveSessionUsers({
28608
+ const { t } = reactI18next.useTranslation(), viewerOptions = chunkAMXSOQRH_js.useViewerOptionsContext(), statusColor = collab.status === "connected" ? "text-green-400" : collab.status === "connecting" ? "text-yellow-400" : "text-red-400", statusIcon = collab.status === "connected" || collab.status === "connecting" ? /* @__PURE__ */ jsxRuntime.jsx(lu.LuWifi, { className: "w-4 h-4" }) : /* @__PURE__ */ jsxRuntime.jsx(lu.LuWifiOff, { className: "w-4 h-4" }), sessionUsers = pptx.buildActiveSessionUsers({
28609
28609
  localUserName: activeCollaboration?.userName ?? collab.config.userName,
28610
28610
  localUserInitials: viewerOptions.general.userInitials,
28611
28611
  localUserColor: collab.config.userColor,
@@ -28704,7 +28704,7 @@ function StartSessionForm({
28704
28704
  onRetry
28705
28705
  }) {
28706
28706
  const { t } = reactI18next.useTranslation();
28707
- const { viewportWidth } = chunk2YCROYR6_js.useIsMobile();
28707
+ const { viewportWidth } = chunkAMXSOQRH_js.useIsMobile();
28708
28708
  const tabBtnStyle = { minHeight: pptx.getDensePanelTouchTargetPx(viewportWidth) };
28709
28709
  const inputReadOnlyClass = preconfigured ? " opacity-70 cursor-not-allowed" : "";
28710
28710
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
@@ -28838,7 +28838,7 @@ function ShareDialog({
28838
28838
  defaultUserName,
28839
28839
  defaultServerUrl
28840
28840
  }) {
28841
- const collab = chunk2YCROYR6_js.useCollaboration();
28841
+ const collab = chunkAMXSOQRH_js.useCollaboration();
28842
28842
  const isActive = collab !== null && collab.status !== "disconnected" && collab.status !== "error";
28843
28843
  const { t } = reactI18next.useTranslation();
28844
28844
  const regionRenderer = useRegionRenderer("dialog.share");
@@ -28849,9 +28849,9 @@ function ShareDialog({
28849
28849
  const [invitation, setInvitation] = React106.useState("");
28850
28850
  const [copied, setCopied] = React106.useState(false);
28851
28851
  const dialogRef = React106.useRef(null);
28852
- const { panelStyle, handlers: dragHandlers } = chunk2YCROYR6_js.useModalDismissDrag(onClose);
28852
+ const { panelStyle, handlers: dragHandlers } = chunkAMXSOQRH_js.useModalDismissDrag(onClose);
28853
28853
  useModalFocus(open, dialogRef, onClose);
28854
- const { viewportWidth, viewportHeight } = chunk2YCROYR6_js.useIsMobile();
28854
+ const { viewportWidth, viewportHeight } = chunkAMXSOQRH_js.useIsMobile();
28855
28855
  const touchTargetPx = pptx.getDensePanelTouchTargetPx(viewportWidth);
28856
28856
  const touchBtnStyle = { minWidth: touchTargetPx, minHeight: touchTargetPx };
28857
28857
  const stickyFooterClass = pptx.shouldStickyActionRow(viewportWidth, viewportHeight) ? "sticky bottom-0 bg-popover" : "";
@@ -29150,12 +29150,12 @@ function HyperlinkEditDialog({
29150
29150
  onCancel
29151
29151
  }) {
29152
29152
  const { t } = reactI18next.useTranslation();
29153
- const { panelStyle, handlers: dragHandlers } = chunk2YCROYR6_js.useModalDismissDrag(onCancel);
29153
+ const { panelStyle, handlers: dragHandlers } = chunkAMXSOQRH_js.useModalDismissDrag(onCancel);
29154
29154
  const inputRef = React106.useRef(null);
29155
- const detectedType = chunk2YCROYR6_js.detectTargetType(initialUrl, initialAction);
29156
- const emailParts = chunk2YCROYR6_js.parseEmailUrl(initialUrl || "");
29157
- const detectedSlide = chunk2YCROYR6_js.parseSlideFromUrl(initialUrl, initialAction);
29158
- const detectedVerb = initialAction ? chunk2YCROYR6_js.ACTION_VERB_MAP[initialAction.toLowerCase()] || "nextSlide" : "nextSlide";
29155
+ const detectedType = chunkAMXSOQRH_js.detectTargetType(initialUrl, initialAction);
29156
+ const emailParts = chunkAMXSOQRH_js.parseEmailUrl(initialUrl || "");
29157
+ const detectedSlide = chunkAMXSOQRH_js.parseSlideFromUrl(initialUrl, initialAction);
29158
+ const detectedVerb = initialAction ? chunkAMXSOQRH_js.ACTION_VERB_MAP[initialAction.toLowerCase()] || "nextSlide" : "nextSlide";
29159
29159
  const [targetType, setTargetType] = React106.useState(detectedType);
29160
29160
  const [url, setUrl] = React106.useState(
29161
29161
  detectedType === "email" || detectedType === "slide" || detectedType === "action" ? "" : initialUrl || ""
@@ -29432,7 +29432,7 @@ function ViewerBottomPanels({
29432
29432
  notesStyle,
29433
29433
  onNotesHeightChange
29434
29434
  }) {
29435
- const { isHidden } = chunk2YCROYR6_js.useToolbarVisibility(hiddenActions);
29435
+ const { isHidden } = chunkAMXSOQRH_js.useToolbarVisibility(hiddenActions);
29436
29436
  const customization = useViewerCustomizationContext();
29437
29437
  const showNotes = pptx.isPanelVisible(customization, "notes");
29438
29438
  const notesRenderer = useRegionRenderer("notes");
@@ -29822,7 +29822,7 @@ function ViewerToolbarSection(props) {
29822
29822
  [activeSlide, propertyHandlers]
29823
29823
  );
29824
29824
  const scopedLayoutOptions = React106__default.default.useMemo(
29825
- () => chunk2YCROYR6_js.scopeLayoutOptionsToActiveSlide(s.layoutOptions, activeSlide),
29825
+ () => chunkAMXSOQRH_js.scopeLayoutOptionsToActiveSlide(s.layoutOptions, activeSlide),
29826
29826
  [s.layoutOptions, activeSlide]
29827
29827
  );
29828
29828
  const handleResetSlide = React106.useCallback(() => {
@@ -30227,7 +30227,7 @@ function ViewerToolbarSection(props) {
30227
30227
  isMobileInsertOpen: s.isMobileInsertOpen,
30228
30228
  onCloseMobileInsert: () => s.setIsMobileInsertOpen(false),
30229
30229
  slideCommentCount: activeSlide?.comments?.length ?? 0,
30230
- reviewComments: chunk2YCROYR6_js.createReviewCommentsHost({
30230
+ reviewComments: chunkAMXSOQRH_js.createReviewCommentsHost({
30231
30231
  state: s,
30232
30232
  activeSlideIndex,
30233
30233
  updateSlides: ops.updateSlides,
@@ -30321,7 +30321,7 @@ function EquationEditorDialog({
30321
30321
  existingOmml
30322
30322
  }) {
30323
30323
  const { t } = reactI18next.useTranslation();
30324
- const { panelStyle, handlers: dragHandlers } = chunk2YCROYR6_js.useModalDismissDrag(onClose);
30324
+ const { panelStyle, handlers: dragHandlers } = chunkAMXSOQRH_js.useModalDismissDrag(onClose);
30325
30325
  const initialLatex = React106.useMemo(() => {
30326
30326
  if (!existingOmml) {
30327
30327
  return "";
@@ -30509,7 +30509,7 @@ function getPreviewForLayout(layout) {
30509
30509
  transform: `scale(${scale})`,
30510
30510
  transformOrigin: "top left"
30511
30511
  },
30512
- children: /* @__PURE__ */ jsxRuntime.jsx(chunk2YCROYR6_js.SmartArtRenderer, { element: pptx.buildSmartArtPreviewElement(layout) })
30512
+ children: /* @__PURE__ */ jsxRuntime.jsx(chunkAMXSOQRH_js.SmartArtRenderer, { element: pptx.buildSmartArtPreviewElement(layout) })
30513
30513
  }
30514
30514
  )
30515
30515
  }
@@ -30521,7 +30521,7 @@ function InsertSmartArtDialog({
30521
30521
  onInsert
30522
30522
  }) {
30523
30523
  const { t } = reactI18next.useTranslation();
30524
- const { panelStyle, handlers: dragHandlers } = chunk2YCROYR6_js.useModalDismissDrag(onClose);
30524
+ const { panelStyle, handlers: dragHandlers } = chunkAMXSOQRH_js.useModalDismissDrag(onClose);
30525
30525
  const [activeCategory, setActiveCategory] = React106.useState("list");
30526
30526
  const [selectedLayout, setSelectedLayout] = React106.useState(null);
30527
30527
  const dialogRef = React106.useRef(null);
@@ -31128,11 +31128,11 @@ function PresentationStage({
31128
31128
  })
31129
31129
  },
31130
31130
  children: [
31131
- /* @__PURE__ */ jsxRuntime.jsx(chunk2YCROYR6_js.SlideBackgroundImageLayer, { slide: activeSlide }),
31131
+ /* @__PURE__ */ jsxRuntime.jsx(chunkAMXSOQRH_js.SlideBackgroundImageLayer, { slide: activeSlide }),
31132
31132
  /* @__PURE__ */ jsxRuntime.jsx("style", { children: pptx.PRESENTATION_HIT_TEST_CSS }),
31133
31133
  presentationKeyframesCss && /* @__PURE__ */ jsxRuntime.jsx("style", { children: presentationKeyframesCss }),
31134
31134
  templateElements.map((element, index) => /* @__PURE__ */ jsxRuntime.jsx(
31135
- chunk2YCROYR6_js.ElementRenderer,
31135
+ chunkAMXSOQRH_js.ElementRenderer,
31136
31136
  {
31137
31137
  element,
31138
31138
  activeSlide,
@@ -31169,7 +31169,7 @@ function PresentationStage({
31169
31169
  `tpl-${element.id}`
31170
31170
  )),
31171
31171
  activeSlide?.elements.map((element, index) => /* @__PURE__ */ jsxRuntime.jsx(
31172
- chunk2YCROYR6_js.ElementRenderer,
31172
+ chunkAMXSOQRH_js.ElementRenderer,
31173
31173
  {
31174
31174
  element,
31175
31175
  activeSlide,
@@ -31291,8 +31291,8 @@ function ViewerCanvasArea(props) {
31291
31291
  aiCanvasActive = false
31292
31292
  } = props;
31293
31293
  const { t } = reactI18next.useTranslation();
31294
- const { isHidden } = chunk2YCROYR6_js.useToolbarVisibility(hiddenActions);
31295
- const viewerOptions = chunk2YCROYR6_js.useViewerOptionsContext();
31294
+ const { isHidden } = chunkAMXSOQRH_js.useToolbarVisibility(hiddenActions);
31295
+ const viewerOptions = chunkAMXSOQRH_js.useViewerOptionsContext();
31296
31296
  const outlineAuthoring = useOutlineAuthoring({
31297
31297
  state: s,
31298
31298
  updateElement: canvasHandlers.handleUpdateSmartArtElement,
@@ -31430,7 +31430,7 @@ ${url}`)) {
31430
31430
  s.setActiveSlideIndex((i) => Math.max(0, i - 1));
31431
31431
  }
31432
31432
  }, [mode, presentation, s]);
31433
- const swipe = chunk2YCROYR6_js.useSwipeNavigation({
31433
+ const swipe = chunkAMXSOQRH_js.useSwipeNavigation({
31434
31434
  enabled: swipeEnabled,
31435
31435
  onNext: handleSwipeNext,
31436
31436
  onPrev: handleSwipePrev
@@ -31510,7 +31510,7 @@ ${url}`)) {
31510
31510
  ),
31511
31511
  children: (stageScale) => /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
31512
31512
  presentation.transitionOverlay && slides[presentation.transitionOverlay.outgoingSlideIndex] && /* @__PURE__ */ jsxRuntime.jsx(
31513
- chunk2YCROYR6_js.PresentationTransitionOverlay,
31513
+ chunkAMXSOQRH_js.PresentationTransitionOverlay,
31514
31514
  {
31515
31515
  outgoingSlide: slides[presentation.transitionOverlay.outgoingSlideIndex],
31516
31516
  templateElements,
@@ -31621,14 +31621,14 @@ ${url}`)) {
31621
31621
  outlineAuthoring,
31622
31622
  collaborationOverlay: /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
31623
31623
  /* @__PURE__ */ jsxRuntime.jsx(
31624
- chunk2YCROYR6_js.RemoteSelectionOverlay,
31624
+ chunkAMXSOQRH_js.RemoteSelectionOverlay,
31625
31625
  {
31626
31626
  elements: effectiveSlide?.elements ?? [],
31627
31627
  activeSlideIndex
31628
31628
  }
31629
31629
  ),
31630
31630
  /* @__PURE__ */ jsxRuntime.jsx(
31631
- chunk2YCROYR6_js.CollaborationCursorOverlay,
31631
+ chunkAMXSOQRH_js.CollaborationCursorOverlay,
31632
31632
  {
31633
31633
  activeSlideIndex,
31634
31634
  canvasWidth: canvasSize.width,
@@ -31892,7 +31892,7 @@ function AiChangeOverlay({ batch, activeSlideIndex }) {
31892
31892
  }
31893
31893
  function ChartFormatPanel() {
31894
31894
  const { t } = reactI18next.useTranslation();
31895
- const commands = chunk2YCROYR6_js.useChartFormatContext();
31895
+ const commands = chunkAMXSOQRH_js.useChartFormatContext();
31896
31896
  const ref = React106.useRef(null);
31897
31897
  const chart = commands?.chart;
31898
31898
  const chartData = chart?.type === "chart" ? chart.chartData : void 0;
@@ -31965,7 +31965,7 @@ function MobileDismissSheet({
31965
31965
  children
31966
31966
  }) {
31967
31967
  const { t } = reactI18next.useTranslation();
31968
- const { dragY, handlers } = chunk2YCROYR6_js.useSheetDismissDrag(onClose);
31968
+ const { dragY, handlers } = chunkAMXSOQRH_js.useSheetDismissDrag(onClose);
31969
31969
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
31970
31970
  /* @__PURE__ */ jsxRuntime.jsx(
31971
31971
  "button",
@@ -32705,7 +32705,7 @@ function ViewerMainContent(props) {
32705
32705
  );
32706
32706
  const layoutGalleryAnchorRef = React106.useRef(null);
32707
32707
  const layoutGalleryPreviews = useLayoutPreviews(loadLayoutPreviews, layoutGalleryAnchor !== null);
32708
- return /* @__PURE__ */ jsxRuntime.jsx(chunk2YCROYR6_js.ChartPartSelectionProvider, { children: /* @__PURE__ */ jsxRuntime.jsxs("div", { "data-pptx-chrome": "body", className: "relative z-10 flex flex-1 min-h-0", children: [
32708
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkAMXSOQRH_js.ChartPartSelectionProvider, { children: /* @__PURE__ */ jsxRuntime.jsxs("div", { "data-pptx-chrome": "body", className: "relative z-10 flex flex-1 min-h-0", children: [
32709
32709
  showSlidesPane && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
32710
32710
  slidesPaneRenderer ? (
32711
32711
  // The rail's slot (width, collapse, resize handle) stays the viewer's.
@@ -33210,7 +33210,7 @@ function MobileChromeOverlay(props) {
33210
33210
  slideSectionGroups,
33211
33211
  canEdit,
33212
33212
  commentCount
33213
- } = props, { keyboardInset, isKeyboardOpen } = chunk2YCROYR6_js.useKeyboardInsets(), activeSheet = s.isMobileInsertOpen ? "insert" : s.isSlidesPaneOpen ? "slides" : s.isInspectorPaneOpen ? s.sidebarPanelMode === "comments" ? "comments" : "inspector" : !s.isSlideNotesCollapsed ? "notes" : null, closeAllSheets = () => {
33213
+ } = props, { keyboardInset, isKeyboardOpen } = chunkAMXSOQRH_js.useKeyboardInsets(), activeSheet = s.isMobileInsertOpen ? "insert" : s.isSlidesPaneOpen ? "slides" : s.isInspectorPaneOpen ? s.sidebarPanelMode === "comments" ? "comments" : "inspector" : !s.isSlideNotesCollapsed ? "notes" : null, closeAllSheets = () => {
33214
33214
  s.setIsSlidesPaneOpen(false);
33215
33215
  s.setIsMobileInsertOpen(false);
33216
33216
  s.setIsInspectorPaneOpen(false);
@@ -33696,7 +33696,7 @@ async function exportAiChatLogs(options) {
33696
33696
  chats,
33697
33697
  { format: options?.format, detailed: options?.detailed, now: options?.now },
33698
33698
  (filename, content, mime) => {
33699
- chunk2YCROYR6_js.downloadBlob(new Blob([content], { type: mime }), filename);
33699
+ chunkAMXSOQRH_js.downloadBlob(new Blob([content], { type: mime }), filename);
33700
33700
  }
33701
33701
  );
33702
33702
  }
@@ -34038,7 +34038,7 @@ function ViewerOptionsProvider({
34038
34038
  store,
34039
34039
  children
34040
34040
  }) {
34041
- return /* @__PURE__ */ jsxRuntime.jsx(chunk2YCROYR6_js.ViewerOptionsStoreContext.Provider, { value: store, children: /* @__PURE__ */ jsxRuntime.jsx(chunk2YCROYR6_js.ViewerOptionsContext.Provider, { value: options, children }) });
34041
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkAMXSOQRH_js.ViewerOptionsStoreContext.Provider, { value: store, children: /* @__PURE__ */ jsxRuntime.jsx(chunkAMXSOQRH_js.ViewerOptionsContext.Provider, { value: options, children }) });
34042
34042
  }
34043
34043
  function useAiBridge(input) {
34044
34044
  const ref = React106.useRef(input);
@@ -34304,6 +34304,7 @@ function useCollaborationStateReport(collab, onChange) {
34304
34304
  const clientId = collab?.clientId;
34305
34305
  const remoteUsers = collab?.remoteUsers;
34306
34306
  const config = collab?.config;
34307
+ const writeBack = collab?.writeBack;
34307
34308
  React106.useEffect(() => {
34308
34309
  reporter.update(
34309
34310
  pptx.buildCollaborationState({
@@ -34314,10 +34315,11 @@ function useCollaborationStateReport(collab, onChange) {
34314
34315
  clientId,
34315
34316
  userName: config?.userName,
34316
34317
  userColor: config?.userColor,
34317
- remoteUsers: remoteUsers ?? []
34318
+ remoteUsers: remoteUsers ?? [],
34319
+ writeBack: pptx.writeBackReport(config, writeBack)
34318
34320
  })
34319
34321
  );
34320
- }, [reporter, status, synced, clientId, remoteUsers, config]);
34322
+ }, [reporter, status, synced, clientId, remoteUsers, config, writeBack]);
34321
34323
  }
34322
34324
  function handleClearOptionsCache() {
34323
34325
  void (async () => {
@@ -34509,7 +34511,7 @@ function useMasterViewCrud(input) {
34509
34511
  if (id === "renameLayout" || id === "renameMaster") {
34510
34512
  const master = slideMasters[target.masterIndex];
34511
34513
  const current = id === "renameLayout" ? master?.layouts?.[target.layoutIndex ?? -1]?.name ?? "" : master?.name ?? "";
34512
- const next = chunk2YCROYR6_js.safePrompt(t("pptx.masterView.renamePrompt"), current)?.trim();
34514
+ const next = chunkAMXSOQRH_js.safePrompt(t("pptx.masterView.renamePrompt"), current)?.trim();
34513
34515
  if (!next) {
34514
34516
  return;
34515
34517
  }
@@ -35009,7 +35011,7 @@ var PowerPointViewer = React106.forwardRef(
35009
35011
  }
35010
35012
  })();
35011
35013
  }, []);
35012
- const { optionsStore, options: viewerOptions } = chunk2YCROYR6_js.useViewerOptions();
35014
+ const { optionsStore, options: viewerOptions } = chunkAMXSOQRH_js.useViewerOptions();
35013
35015
  const custom = useViewerCustomization(customization, legacyHiddenActions, optionsStore);
35014
35016
  const { resolved: customizationResolved, hiddenActions } = custom;
35015
35017
  const aiEnabled = Boolean(ai) && pptx.isFeatureEnabled(customizationResolved, "ai");
@@ -35023,8 +35025,8 @@ var PowerPointViewer = React106.forwardRef(
35023
35025
  const handleEnableEditing = React106.useCallback(() => {
35024
35026
  setProtectedViewOverridden(true);
35025
35027
  }, []);
35026
- const readOnlyRec = chunk2YCROYR6_js.useReadOnlyRecommendationState(content);
35027
- const compatToastsState = chunk2YCROYR6_js.useCompatibilityToastsState();
35028
+ const readOnlyRec = chunkAMXSOQRH_js.useReadOnlyRecommendationState(content);
35029
+ const compatToastsState = chunkAMXSOQRH_js.useCompatibilityToastsState();
35028
35030
  const [notesBarHeight, setNotesBarHeight] = React106.useState(0);
35029
35031
  const runProgramNoticesState = useRunProgramNoticesState();
35030
35032
  const [collaborationReadOnly, setCollaborationReadOnly] = React106.useState(Boolean(collaboration));
@@ -35039,8 +35041,8 @@ var PowerPointViewer = React106.forwardRef(
35039
35041
  filePath
35040
35042
  });
35041
35043
  const [isShareDialogOpen, setIsShareDialogOpen] = React106.useState(false);
35042
- const { reducedMotion, toggleReducedMotion } = chunk2YCROYR6_js.useReducedMotion();
35043
- const state = chunk2YCROYR6_js.useViewerState({
35044
+ const { reducedMotion, toggleReducedMotion } = chunkAMXSOQRH_js.useReducedMotion();
35045
+ const state = chunkAMXSOQRH_js.useViewerState({
35044
35046
  content,
35045
35047
  canEdit,
35046
35048
  inspectorInitiallyOpen: props.inspectorInitiallyOpen
@@ -35164,16 +35166,16 @@ var PowerPointViewer = React106.forwardRef(
35164
35166
  }
35165
35167
  }, [settings, optionsStore]);
35166
35168
  const handleClearOptionsCache2 = useAutosaveCacheMaintenance(viewerOptions);
35167
- const mobile = chunk2YCROYR6_js.useIsMobile();
35169
+ const mobile = chunkAMXSOQRH_js.useIsMobile();
35168
35170
  const { isMobile, isTouchDevice, isVirtualKeyboardOpen } = mobile;
35169
- const resizablePanels = chunk2YCROYR6_js.useResizablePanels();
35171
+ const resizablePanels = chunkAMXSOQRH_js.useResizablePanels();
35170
35172
  const {
35171
35173
  gridSpacingPx,
35172
35174
  visibleSlideIndexes,
35173
35175
  slideSectionGroups,
35174
35176
  masterPseudoSlide,
35175
35177
  authoredRange
35176
- } = chunk2YCROYR6_js.useDerivedSlideState({
35178
+ } = chunkAMXSOQRH_js.useDerivedSlideState({
35177
35179
  slides,
35178
35180
  sections: state.sections,
35179
35181
  customShows: state.customShows,
@@ -35198,7 +35200,7 @@ var PowerPointViewer = React106.forwardRef(
35198
35200
  state.cropSessionRef
35199
35201
  ]
35200
35202
  );
35201
- const zoom = chunk2YCROYR6_js.useZoomViewport({
35203
+ const zoom = chunkAMXSOQRH_js.useZoomViewport({
35202
35204
  canvasSize,
35203
35205
  selectedElements: state.selectedElements,
35204
35206
  fitPadding: props.fitPadding,
@@ -35208,7 +35210,7 @@ var PowerPointViewer = React106.forwardRef(
35208
35210
  const markDocumentDirty = React106.useCallback(() => {
35209
35211
  setIsDirty(true);
35210
35212
  }, [setIsDirty]);
35211
- const history = chunk2YCROYR6_js.useEditorHistory({
35213
+ const history = chunkAMXSOQRH_js.useEditorHistory({
35212
35214
  slides,
35213
35215
  canvasSize,
35214
35216
  activeSlideIndex,
@@ -35234,7 +35236,7 @@ var PowerPointViewer = React106.forwardRef(
35234
35236
  setEditTemplateMode: state.setEditTemplateMode,
35235
35237
  setHeaderFooter: state.setHeaderFooter
35236
35238
  });
35237
- const { presentation, annotations, actionSoundHandlerRef, setExitModeHandler } = chunk2YCROYR6_js.usePresentationSetup({
35239
+ const { presentation, annotations, actionSoundHandlerRef, setExitModeHandler } = chunkAMXSOQRH_js.usePresentationSetup({
35238
35240
  mode,
35239
35241
  slides,
35240
35242
  visibleSlideIndexes,
@@ -35309,7 +35311,7 @@ ${url}`)
35309
35311
  loading,
35310
35312
  error
35311
35313
  ]);
35312
- chunk2YCROYR6_js.useTouchGestures({
35314
+ chunkAMXSOQRH_js.useTouchGestures({
35313
35315
  targetRef: zoom.canvasViewportRef,
35314
35316
  currentScale: zoom.scale,
35315
35317
  callbacks: {
@@ -35331,7 +35333,7 @@ ${url}`)
35331
35333
  },
35332
35334
  enabled: isTouchDevice
35333
35335
  });
35334
- const dialogs = chunk2YCROYR6_js.useViewerDialogs({
35336
+ const dialogs = chunkAMXSOQRH_js.useViewerDialogs({
35335
35337
  mode,
35336
35338
  slides,
35337
35339
  activeSlide,
@@ -35380,7 +35382,7 @@ ${url}`)
35380
35382
  zoom.handleZoomToFit();
35381
35383
  zoom.canvasViewportRef.current?.scrollTo({ left: 0, top: 0 });
35382
35384
  }, [mode]);
35383
- const editorOps = chunk2YCROYR6_js.useEditorOperations({
35385
+ const editorOps = chunkAMXSOQRH_js.useEditorOperations({
35384
35386
  state,
35385
35387
  history,
35386
35388
  zoom,
@@ -35423,7 +35425,7 @@ ${url}`)
35423
35425
  handlerRef,
35424
35426
  viewerApi,
35425
35427
  loadVersion
35426
- } = chunk2YCROYR6_js.useViewerIntegration({
35428
+ } = chunkAMXSOQRH_js.useViewerIntegration({
35427
35429
  transformCommittedText: (text) => pptx.applyAutoCorrect(text, viewerOptions.proofing),
35428
35430
  state,
35429
35431
  zoom,
@@ -35550,7 +35552,7 @@ ${url}`)
35550
35552
  updateElementById: editorOps.ops.updateElementById
35551
35553
  });
35552
35554
  const ribbonScope = useRibbonScopeToken();
35553
- const viewPreferencesSync = chunk2YCROYR6_js.useViewPreferencesSync({
35555
+ const viewPreferencesSync = chunkAMXSOQRH_js.useViewPreferencesSync({
35554
35556
  loadVersion,
35555
35557
  viewProperties: state.viewProperties,
35556
35558
  setViewProperties: state.setViewProperties,
@@ -35588,7 +35590,7 @@ ${url}`)
35588
35590
  },
35589
35591
  [state]
35590
35592
  );
35591
- const layoutSwitching = chunk2YCROYR6_js.useLayoutSwitching({
35593
+ const layoutSwitching = chunkAMXSOQRH_js.useLayoutSwitching({
35592
35594
  handler: handlerRef.current,
35593
35595
  slides,
35594
35596
  activeSlideIndex,
@@ -36094,8 +36096,8 @@ ${url}`)
36094
36096
  // Nothing previously provided it, so every one of those consumers was
36095
36097
  // silently reading `DEFAULT_VIEWER_OPTIONS` forever, no matter what
36096
36098
  // the user changed in the Options dialog.
36097
- /* @__PURE__ */ jsxRuntime.jsx(ViewerOptionsProvider, { options: viewerOptions, store: optionsStore, children: /* @__PURE__ */ jsxRuntime.jsx(ViewerCustomizationContext.Provider, { value: customizationResolved, children: /* @__PURE__ */ jsxRuntime.jsx(ViewerRegionBaseContext.Provider, { value: regionBase, children: /* @__PURE__ */ jsxRuntime.jsx(RibbonAddInsContext.Provider, { value: ribbonAddIns ?? NO_RIBBON_ADD_INS, children: /* @__PURE__ */ jsxRuntime.jsx(AccountAuthContext.Provider, { value: accountAuth, children: /* @__PURE__ */ jsxRuntime.jsx(chunk2YCROYR6_js.Rendering3DFlagsContext.Provider, { value: effective3D, children: /* @__PURE__ */ jsxRuntime.jsx(ViewerThemeProvider, { theme: effectiveTheme, children: /* @__PURE__ */ jsxRuntime.jsxs(
36098
- chunk2YCROYR6_js.CollaborationProvider,
36099
+ /* @__PURE__ */ jsxRuntime.jsx(ViewerOptionsProvider, { options: viewerOptions, store: optionsStore, children: /* @__PURE__ */ jsxRuntime.jsx(ViewerCustomizationContext.Provider, { value: customizationResolved, children: /* @__PURE__ */ jsxRuntime.jsx(ViewerRegionBaseContext.Provider, { value: regionBase, children: /* @__PURE__ */ jsxRuntime.jsx(RibbonAddInsContext.Provider, { value: ribbonAddIns ?? NO_RIBBON_ADD_INS, children: /* @__PURE__ */ jsxRuntime.jsx(AccountAuthContext.Provider, { value: accountAuth, children: /* @__PURE__ */ jsxRuntime.jsx(chunkAMXSOQRH_js.Rendering3DFlagsContext.Provider, { value: effective3D, children: /* @__PURE__ */ jsxRuntime.jsx(ViewerThemeProvider, { theme: effectiveTheme, children: /* @__PURE__ */ jsxRuntime.jsxs(
36100
+ chunkAMXSOQRH_js.CollaborationProvider,
36099
36101
  {
36100
36102
  config: collaboration,
36101
36103
  canvasWidth: canvasSize.width,
@@ -36145,7 +36147,7 @@ ${url}`)
36145
36147
  slideCount: slides.length
36146
36148
  }
36147
36149
  ),
36148
- /* @__PURE__ */ jsxRuntime.jsx(ShapeFormatContext.Provider, { value: shapeFormat, children: /* @__PURE__ */ jsxRuntime.jsx(RibbonGalleryCommandsContext.Provider, { value: ribbonGalleries, children: /* @__PURE__ */ jsxRuntime.jsx(chunk2YCROYR6_js.ChartFormatContext.Provider, { value: chartFormat, children: viewerContent }) }) })
36150
+ /* @__PURE__ */ jsxRuntime.jsx(ShapeFormatContext.Provider, { value: shapeFormat, children: /* @__PURE__ */ jsxRuntime.jsx(RibbonGalleryCommandsContext.Provider, { value: ribbonGalleries, children: /* @__PURE__ */ jsxRuntime.jsx(chunkAMXSOQRH_js.ChartFormatContext.Provider, { value: chartFormat, children: viewerContent }) }) })
36149
36151
  ]
36150
36152
  }
36151
36153
  ) }) }) }) }) }) }) })
@@ -36154,7 +36156,7 @@ ${url}`)
36154
36156
  );
36155
36157
  PowerPointViewer.displayName = "PowerPointViewer";
36156
36158
  function CollaborationStatusStrip() {
36157
- const collab = chunk2YCROYR6_js.useCollaboration();
36159
+ const collab = chunkAMXSOQRH_js.useCollaboration();
36158
36160
  if (!collab) {
36159
36161
  return null;
36160
36162
  }
@@ -36170,7 +36172,7 @@ function CollaborationStatusStrip() {
36170
36172
  function CollaborationStateReporter({
36171
36173
  onChange
36172
36174
  }) {
36173
- useCollaborationStateReport(chunk2YCROYR6_js.useCollaboration(), onChange);
36175
+ useCollaborationStateReport(chunkAMXSOQRH_js.useCollaboration(), onChange);
36174
36176
  return null;
36175
36177
  }
36176
36178
  function CollaborationDocumentSync({
@@ -36184,8 +36186,8 @@ function CollaborationDocumentSync({
36184
36186
  deckSaveState,
36185
36187
  onReadOnlyChange
36186
36188
  }) {
36187
- const collab = chunk2YCROYR6_js.useCollaboration();
36188
- chunk2YCROYR6_js.useCollaborationDocumentSync({
36189
+ const collab = chunkAMXSOQRH_js.useCollaboration();
36190
+ chunkAMXSOQRH_js.useCollaborationDocumentSync({
36189
36191
  collaboration: collab,
36190
36192
  slides,
36191
36193
  templateElementsBySlideId,
@@ -36204,14 +36206,14 @@ function CollaborationFollowLayer({
36204
36206
  setActiveSlideIndex,
36205
36207
  slideCount
36206
36208
  }) {
36207
- const collab = chunk2YCROYR6_js.useCollaboration();
36208
- const { followedClientId, followUser } = chunk2YCROYR6_js.useFollowMode({
36209
+ const collab = chunkAMXSOQRH_js.useCollaboration();
36210
+ const { followedClientId, followUser } = chunkAMXSOQRH_js.useFollowMode({
36209
36211
  collab,
36210
36212
  activeSlideIndex,
36211
36213
  setActiveSlideIndex,
36212
36214
  slideCount
36213
36215
  });
36214
- chunk2YCROYR6_js.useBroadcastFollower({
36216
+ chunkAMXSOQRH_js.useBroadcastFollower({
36215
36217
  collab,
36216
36218
  activeSlideIndex,
36217
36219
  setActiveSlideIndex,