pptx-react-viewer 4.51.0 → 4.51.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/dist/{chunk-ETJ752B5.mjs → chunk-KCUXY7DE.mjs} +2 -2
  3. package/dist/chunk-KCUXY7DE.mjs.br +0 -0
  4. package/dist/chunk-KCUXY7DE.mjs.gz +0 -0
  5. package/dist/{chunk-ACFR4LFQ.mjs → chunk-V4DY4IWP.mjs} +1 -1
  6. package/dist/chunk-V4DY4IWP.mjs.br +0 -0
  7. package/dist/{chunk-ACFR4LFQ.mjs.gz → chunk-V4DY4IWP.mjs.gz} +0 -0
  8. package/dist/{chunk-VI5DQRQZ.js → chunk-VRX5NJY2.js} +119 -119
  9. package/dist/chunk-VRX5NJY2.js.br +0 -0
  10. package/dist/chunk-VRX5NJY2.js.gz +0 -0
  11. package/dist/{chunk-V3XADJ2O.js → chunk-YJ4DAS4V.js} +1 -1
  12. package/dist/chunk-YJ4DAS4V.js.br +0 -0
  13. package/dist/{chunk-V3XADJ2O.js.gz → chunk-YJ4DAS4V.js.gz} +0 -0
  14. package/dist/index.js +23 -23
  15. package/dist/index.js.br +0 -0
  16. package/dist/index.js.gz +0 -0
  17. package/dist/index.mjs +2 -2
  18. package/dist/index.mjs.br +0 -0
  19. package/dist/index.mjs.gz +0 -0
  20. package/dist/internals.js +80 -80
  21. package/dist/internals.js.br +0 -0
  22. package/dist/internals.js.gz +0 -0
  23. package/dist/internals.mjs +1 -1
  24. package/dist/internals.mjs.br +0 -0
  25. package/dist/internals.mjs.gz +0 -0
  26. package/dist/viewer/index.js +18 -18
  27. package/dist/viewer/index.js.br +0 -0
  28. package/dist/viewer/index.js.gz +0 -0
  29. package/dist/viewer/index.mjs +2 -2
  30. package/dist/viewer/index.mjs.br +0 -0
  31. package/dist/viewer/index.mjs.gz +0 -0
  32. package/package.json +3 -3
  33. package/dist/chunk-ACFR4LFQ.mjs.br +0 -0
  34. package/dist/chunk-ETJ752B5.mjs.br +0 -0
  35. package/dist/chunk-ETJ752B5.mjs.gz +0 -0
  36. package/dist/chunk-V3XADJ2O.js.br +0 -0
  37. package/dist/chunk-VI5DQRQZ.js.br +0 -0
  38. package/dist/chunk-VI5DQRQZ.js.gz +0 -0
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunkV3XADJ2O_js = require('./chunk-V3XADJ2O.js');
3
+ var chunkYJ4DAS4V_js = require('./chunk-YJ4DAS4V.js');
4
4
  var chunkZ22RD3E2_js = require('./chunk-Z22RD3E2.js');
5
5
  var pptx = require('ooxml-ui/pptx');
6
6
  var React108 = require('react');
@@ -309,7 +309,7 @@ function SlideTemplatePreview({
309
309
  transformOrigin: "top left"
310
310
  },
311
311
  children: previewSlide.elements.map((element, index) => /* @__PURE__ */ jsxRuntime.jsx(
312
- chunkV3XADJ2O_js.StaticElementRenderer,
312
+ chunkYJ4DAS4V_js.StaticElementRenderer,
313
313
  {
314
314
  element,
315
315
  activeSlide: previewSlide,
@@ -378,7 +378,7 @@ function SlideTemplateGalleryDialog({
378
378
  scheme
379
379
  }) {
380
380
  const { t } = chunkZ22RD3E2_js.useTranslation();
381
- const { panelStyle, handlers: dragHandlers } = chunkV3XADJ2O_js.useModalDismissDrag(onClose);
381
+ const { panelStyle, handlers: dragHandlers } = chunkYJ4DAS4V_js.useModalDismissDrag(onClose);
382
382
  const [selected, setSelected] = React108.useState(null);
383
383
  const dialogRef = React108.useRef(null);
384
384
  useModalFocus(isOpen, dialogRef, onClose);
@@ -876,7 +876,7 @@ function MobileSheet({
876
876
  }) {
877
877
  const sheetRef = React108.useRef(null);
878
878
  const { t } = chunkZ22RD3E2_js.useTranslation();
879
- const { dragY, dragging, handlers } = chunkV3XADJ2O_js.useSheetDismissDrag(onClose);
879
+ const { dragY, dragging, handlers } = chunkYJ4DAS4V_js.useSheetDismissDrag(onClose);
880
880
  useModalFocus(open, sheetRef, onClose);
881
881
  if (!open) {
882
882
  return null;
@@ -1145,7 +1145,7 @@ function WebHomeControls({
1145
1145
  function ShapeArrangeExtras(p) {
1146
1146
  const commands = useShapeFormatContext();
1147
1147
  const crop = commands?.crop;
1148
- const { isHidden } = chunkV3XADJ2O_js.useToolbarVisibility(p.hiddenActions);
1148
+ const { isHidden } = chunkYJ4DAS4V_js.useToolbarVisibility(p.hiddenActions);
1149
1149
  const { onGroupElements, onUngroupElement, onUpdateElementStyle } = p;
1150
1150
  const controls = React108.useMemo(
1151
1151
  () => pptx.arrangeShapeHomeControls({
@@ -1480,7 +1480,7 @@ function TransitionsSection(p) {
1480
1480
  case "soundPreview": {
1481
1481
  const url = pptx.ribbonTransitionStockSoundUrl(transition);
1482
1482
  if (url) {
1483
- chunkV3XADJ2O_js.playAnimationSound(url);
1483
+ chunkYJ4DAS4V_js.playAnimationSound(url);
1484
1484
  }
1485
1485
  break;
1486
1486
  }
@@ -1683,7 +1683,7 @@ function AccountPage() {
1683
1683
  return void 0;
1684
1684
  });
1685
1685
  };
1686
- const version = "4.51.0" ;
1686
+ const version = "4.51.1" ;
1687
1687
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-8 max-w-[700px] space-y-6", children: [
1688
1688
  /* @__PURE__ */ jsxRuntime.jsxs("section", { className: cardClass, children: [
1689
1689
  /* @__PURE__ */ jsxRuntime.jsxs("h2", { className: "flex items-center gap-2 text-sm font-semibold", children: [
@@ -1947,7 +1947,7 @@ function FileSection(p) {
1947
1947
  const page = offered(requestedPage) ? requestedPage : offered("home") ? "home" : nav.find((item) => item.id !== "save" && item.id !== "close")?.id ?? "home";
1948
1948
  const [query, setQuery] = React108.useState("");
1949
1949
  const [recent, setRecent] = React108.useState([]);
1950
- const { isHidden } = chunkV3XADJ2O_js.useToolbarVisibility(p.hiddenActions);
1950
+ const { isHidden } = chunkYJ4DAS4V_js.useToolbarVisibility(p.hiddenActions);
1951
1951
  const exportHidden = isHidden("export");
1952
1952
  const storage = useViewerStorage();
1953
1953
  React108.useEffect(() => {
@@ -2296,7 +2296,7 @@ function LayoutArtwork({
2296
2296
  backgroundColor
2297
2297
  };
2298
2298
  return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: (preview?.elements ?? []).slice(0, MAX_PREVIEW_ELEMENTS).map((element, index) => /* @__PURE__ */ jsxRuntime.jsx(
2299
- chunkV3XADJ2O_js.StaticElementRenderer,
2299
+ chunkYJ4DAS4V_js.StaticElementRenderer,
2300
2300
  {
2301
2301
  element,
2302
2302
  activeSlide: slide,
@@ -2746,7 +2746,7 @@ function SlideShowOptions({
2746
2746
  }
2747
2747
  function SubtitleSettingsControl() {
2748
2748
  const { t } = chunkZ22RD3E2_js.useTranslation();
2749
- const supplied = React108.useContext(chunkV3XADJ2O_js.ViewerOptionsStoreContext);
2749
+ const supplied = React108.useContext(chunkYJ4DAS4V_js.ViewerOptionsStoreContext);
2750
2750
  const fallback = React108.useRef(null);
2751
2751
  if (!supplied) {
2752
2752
  fallback.current ??= pptx.createViewerOptionsStore({ persist: false });
@@ -2780,7 +2780,7 @@ function SubtitleSettingsControl() {
2780
2780
  }
2781
2781
  function SlideShowSection(p) {
2782
2782
  const { t } = chunkZ22RD3E2_js.useTranslation();
2783
- const { isHidden } = chunkV3XADJ2O_js.useToolbarVisibility(p.hiddenActions);
2783
+ const { isHidden } = chunkYJ4DAS4V_js.useToolbarVisibility(p.hiddenActions);
2784
2784
  const [showsOpen, setShowsOpen] = React108.useState(false);
2785
2785
  const showsRef = React108.useRef(null);
2786
2786
  React108.useEffect(() => {
@@ -3319,7 +3319,7 @@ function MobileMenuSheet(props) {
3319
3319
  const { t } = chunkZ22RD3E2_js.useTranslation();
3320
3320
  const { open, onClose } = props;
3321
3321
  const [active, setActive] = React108.useState("home");
3322
- const { isTabVisible } = chunkV3XADJ2O_js.useToolbarVisibility(props.hiddenActions);
3322
+ const { isTabVisible } = chunkYJ4DAS4V_js.useToolbarVisibility(props.hiddenActions);
3323
3323
  return /* @__PURE__ */ jsxRuntime.jsx(
3324
3324
  MobileSheet,
3325
3325
  {
@@ -3610,7 +3610,7 @@ function MobileToolbar(props) {
3610
3610
  const { t } = chunkZ22RD3E2_js.useTranslation();
3611
3611
  const { mode, canUndo, canRedo, onUndo, onRedo, onSetMode, onSaveAsPptx } = props;
3612
3612
  const [menuOpen, setMenuOpen] = React108.useState(false);
3613
- const { isHidden } = chunkV3XADJ2O_js.useToolbarVisibility(props.hiddenActions);
3613
+ const { isHidden } = chunkYJ4DAS4V_js.useToolbarVisibility(props.hiddenActions);
3614
3614
  const showEdit = mode === "edit" || mode === "master";
3615
3615
  const hidden = [];
3616
3616
  if (isHidden("undo")) {
@@ -3657,7 +3657,7 @@ function MobileToolbar(props) {
3657
3657
  }
3658
3658
  function ChartSelectionStrip() {
3659
3659
  const { t } = chunkZ22RD3E2_js.useTranslation();
3660
- const commands = chunkV3XADJ2O_js.useChartFormatContext();
3660
+ const commands = chunkYJ4DAS4V_js.useChartFormatContext();
3661
3661
  const chart = commands?.chart;
3662
3662
  const chartData = chart?.type === "chart" ? chart.chartData : void 0;
3663
3663
  const controls = React108.useMemo(
@@ -3688,7 +3688,7 @@ function PictureSizeStrip({
3688
3688
  hiddenActions
3689
3689
  }) {
3690
3690
  const crop = useShapeFormatContext()?.crop;
3691
- const { isHidden } = chunkV3XADJ2O_js.useToolbarVisibility(hiddenActions);
3691
+ const { isHidden } = chunkYJ4DAS4V_js.useToolbarVisibility(hiddenActions);
3692
3692
  const controls = React108.useMemo(
3693
3693
  () => pptx.pictureSizeHomeControls({
3694
3694
  editable: Boolean(crop),
@@ -3861,7 +3861,7 @@ var TAB_BASE = "relative px-3.5 py-2 text-[12px] font-medium whitespace-nowrap t
3861
3861
  var TAB_UNDERLINE = "after:absolute after:-bottom-px after:left-0 after:right-0 after:h-[2.5px] after:bg-primary";
3862
3862
  function RibbonTabBar(p) {
3863
3863
  const { t } = chunkZ22RD3E2_js.useTranslation();
3864
- const viewerOptions = chunkV3XADJ2O_js.useViewerOptionsContext();
3864
+ const viewerOptions = chunkYJ4DAS4V_js.useViewerOptionsContext();
3865
3865
  return /* @__PURE__ */ jsxRuntime.jsxs(
3866
3866
  "div",
3867
3867
  {
@@ -3938,9 +3938,9 @@ function RibbonTabBar(p) {
3938
3938
  }
3939
3939
  function TabRowActions(p) {
3940
3940
  const { t } = chunkZ22RD3E2_js.useTranslation();
3941
- const collab = chunkV3XADJ2O_js.useCollaboration();
3941
+ const collab = chunkYJ4DAS4V_js.useCollaboration();
3942
3942
  const isCollaborating = Boolean(collab && collab.status === "connected");
3943
- const { isHidden } = chunkV3XADJ2O_js.useToolbarVisibility(p.hiddenActions);
3943
+ const { isHidden } = chunkYJ4DAS4V_js.useToolbarVisibility(p.hiddenActions);
3944
3944
  const customization = useViewerCustomizationContext();
3945
3945
  const ref = React108.useRef(null);
3946
3946
  const handlers = React108.useRef(p);
@@ -3995,7 +3995,7 @@ function TabRowActions(p) {
3995
3995
  }
3996
3996
  function TitleBarElement(p) {
3997
3997
  const { t } = chunkZ22RD3E2_js.useTranslation();
3998
- const options = chunkV3XADJ2O_js.useViewerOptionsContext();
3998
+ const options = chunkYJ4DAS4V_js.useViewerOptionsContext();
3999
3999
  const customization = useViewerCustomizationContext();
4000
4000
  const ref = React108.useRef(null);
4001
4001
  const stripVisible = options.quickAccess.visible && pptx.isPanelVisible(customization, "quickAccessToolbar");
@@ -4331,7 +4331,7 @@ function ToolbarPrimaryRow(p) {
4331
4331
  onToggleSidebar,
4332
4332
  onToggleInspector
4333
4333
  } = p;
4334
- const collab = chunkV3XADJ2O_js.useCollaboration();
4334
+ const collab = chunkYJ4DAS4V_js.useCollaboration();
4335
4335
  const customization = useViewerCustomizationContext();
4336
4336
  const showSlidesToggle = pptx.isPanelVisible(customization, "slidesPane");
4337
4337
  const showInspectorToggle = pptx.isPanelVisible(customization, "inspector");
@@ -4621,8 +4621,8 @@ function ToolbarLateTabs({
4621
4621
  function Toolbar(p) {
4622
4622
  const { mode, isNarrowViewport, isCompactToolbarOpen, toolbarSection, onSetToolbarSection } = p;
4623
4623
  const { t } = chunkZ22RD3E2_js.useTranslation();
4624
- const { isTabVisible } = chunkV3XADJ2O_js.useToolbarVisibility(p.hiddenActions);
4625
- const viewerOptions = chunkV3XADJ2O_js.useViewerOptionsContext();
4624
+ const { isTabVisible } = chunkYJ4DAS4V_js.useToolbarVisibility(p.hiddenActions);
4625
+ const viewerOptions = chunkYJ4DAS4V_js.useViewerOptionsContext();
4626
4626
  const customization = useViewerCustomizationContext();
4627
4627
  const belowInput = React108.useMemo(
4628
4628
  () => ({
@@ -5608,7 +5608,7 @@ function DrawingOverlaySvg({
5608
5608
  onPointerDown,
5609
5609
  onPointerMove,
5610
5610
  onPointerUp,
5611
- children: isStrokeActive && liveStrokeView ? chunkV3XADJ2O_js.renderStrokeView(liveStrokeView, true, void 0, "ink-live-preview") : isStrokeActive && liveStrokeD && /* @__PURE__ */ jsxRuntime.jsx(
5611
+ children: isStrokeActive && liveStrokeView ? chunkYJ4DAS4V_js.renderStrokeView(liveStrokeView, true, void 0, "ink-live-preview") : isStrokeActive && liveStrokeD && /* @__PURE__ */ jsxRuntime.jsx(
5612
5612
  "path",
5613
5613
  {
5614
5614
  d: liveStrokeD,
@@ -6187,7 +6187,7 @@ function PictureCropOverlay({
6187
6187
  };
6188
6188
  };
6189
6189
  const { ghost, frame, handles } = overlay;
6190
- const src = chunkV3XADJ2O_js.imgSrc(element);
6190
+ const src = chunkYJ4DAS4V_js.imgSrc(element);
6191
6191
  return /* @__PURE__ */ jsxRuntime.jsxs(
6192
6192
  "div",
6193
6193
  {
@@ -6363,7 +6363,7 @@ function HorizontalRulerView({ ticks, widthPx, highlight }) {
6363
6363
  }
6364
6364
  );
6365
6365
  }
6366
- var HorizontalRuler = /* @__PURE__ */ chunkV3XADJ2O_js.withDisplayName(
6366
+ var HorizontalRuler = /* @__PURE__ */ chunkYJ4DAS4V_js.withDisplayName(
6367
6367
  /* @__PURE__ */ React108__default.default.memo(HorizontalRulerView),
6368
6368
  "HorizontalRuler"
6369
6369
  );
@@ -6437,7 +6437,7 @@ function VerticalRulerView({ ticks, heightPx, highlight }) {
6437
6437
  }
6438
6438
  );
6439
6439
  }
6440
- var VerticalRuler = /* @__PURE__ */ chunkV3XADJ2O_js.withDisplayName(
6440
+ var VerticalRuler = /* @__PURE__ */ chunkYJ4DAS4V_js.withDisplayName(
6441
6441
  /* @__PURE__ */ React108__default.default.memo(VerticalRulerView),
6442
6442
  "VerticalRuler"
6443
6443
  );
@@ -6631,7 +6631,7 @@ function SelectionHandleOverlay({
6631
6631
  onDoubleClick: (e) => onDoubleClick(element.id, e),
6632
6632
  onContextMenu: (e) => onContextMenu(element.id, e),
6633
6633
  children: /* @__PURE__ */ jsxRuntime.jsx(
6634
- chunkV3XADJ2O_js.ResizeHandles,
6634
+ chunkYJ4DAS4V_js.ResizeHandles,
6635
6635
  {
6636
6636
  elementId: element.id,
6637
6637
  adjustmentHandles,
@@ -7342,7 +7342,7 @@ function SlideCanvas(props) {
7342
7342
  props.registerInlineEditReader
7343
7343
  ]
7344
7344
  );
7345
- return /* @__PURE__ */ jsxRuntime.jsx(chunkV3XADJ2O_js.InlineCollaborationContext.Provider, { value, children: /* @__PURE__ */ jsxRuntime.jsx(SlideCanvasContent, { ...props }) });
7345
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkYJ4DAS4V_js.InlineCollaborationContext.Provider, { value, children: /* @__PURE__ */ jsxRuntime.jsx(SlideCanvasContent, { ...props }) });
7346
7346
  }
7347
7347
  function SlideCanvasContent({
7348
7348
  imagePaste,
@@ -7611,7 +7611,7 @@ function SlideCanvasContent({
7611
7611
  onPointerMove: handleStagePointerMove,
7612
7612
  onPointerUp: handleStagePointerUp,
7613
7613
  children: [
7614
- /* @__PURE__ */ jsxRuntime.jsx(chunkV3XADJ2O_js.SlideBackgroundImageLayer, { slide: activeSlide }),
7614
+ /* @__PURE__ */ jsxRuntime.jsx(chunkYJ4DAS4V_js.SlideBackgroundImageLayer, { slide: activeSlide }),
7615
7615
  presentationKeyframesCss && /* @__PURE__ */ jsxRuntime.jsx("style", { children: presentationKeyframesCss }),
7616
7616
  /* @__PURE__ */ jsxRuntime.jsx(GridOverlay, { canvasSize, gridSpacingPx, visible: showGrid }),
7617
7617
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -7623,7 +7623,7 @@ function SlideCanvasContent({
7623
7623
  }
7624
7624
  ),
7625
7625
  templateElements.map((element, index) => /* @__PURE__ */ jsxRuntime.jsx(
7626
- chunkV3XADJ2O_js.ElementRenderer,
7626
+ chunkYJ4DAS4V_js.ElementRenderer,
7627
7627
  {
7628
7628
  element,
7629
7629
  activeSlide,
@@ -7667,7 +7667,7 @@ function SlideCanvasContent({
7667
7667
  `tpl-${element.id}`
7668
7668
  )),
7669
7669
  activeSlide?.elements.map((element, index) => /* @__PURE__ */ jsxRuntime.jsx(
7670
- chunkV3XADJ2O_js.ElementRenderer,
7670
+ chunkYJ4DAS4V_js.ElementRenderer,
7671
7671
  {
7672
7672
  element,
7673
7673
  activeSlide,
@@ -7733,7 +7733,7 @@ function SlideCanvasContent({
7733
7733
  editingMember && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
7734
7734
  /* @__PURE__ */ jsxRuntime.jsx("style", { children: `[data-element-id="${cssAttr(editingMember.parentId)}"] [data-element-id="${cssAttr(editingMember.member.id)}"]{visibility:hidden}` }),
7735
7735
  /* @__PURE__ */ jsxRuntime.jsx(
7736
- chunkV3XADJ2O_js.ElementRenderer,
7736
+ chunkYJ4DAS4V_js.ElementRenderer,
7737
7737
  {
7738
7738
  element: editingMember.member,
7739
7739
  activeSlide,
@@ -8205,7 +8205,7 @@ function SlideThumbnailImpl({
8205
8205
  ...pptx.deviceStrokeStageStyle(scale)
8206
8206
  },
8207
8207
  children: [
8208
- /* @__PURE__ */ jsxRuntime.jsx(chunkV3XADJ2O_js.SlideBackgroundImageLayer, { slide }),
8208
+ /* @__PURE__ */ jsxRuntime.jsx(chunkYJ4DAS4V_js.SlideBackgroundImageLayer, { slide }),
8209
8209
  slide.transition && slide.transition.type !== "none" && slide.transition.type !== "cut" && /* @__PURE__ */ jsxRuntime.jsx(
8210
8210
  "div",
8211
8211
  {
@@ -8215,7 +8215,7 @@ function SlideThumbnailImpl({
8215
8215
  }
8216
8216
  ),
8217
8217
  previewElements.map((element, index) => /* @__PURE__ */ jsxRuntime.jsx(
8218
- chunkV3XADJ2O_js.StaticElementRenderer,
8218
+ chunkYJ4DAS4V_js.StaticElementRenderer,
8219
8219
  {
8220
8220
  element,
8221
8221
  activeSlide: slide,
@@ -8393,7 +8393,7 @@ function ContextMenu(props) {
8393
8393
  const { t } = chunkZ22RD3E2_js.useTranslation();
8394
8394
  const customization = useViewerCustomizationContext();
8395
8395
  const shapeFormat = useShapeFormatContext();
8396
- const chartFormat = chunkV3XADJ2O_js.useChartFormatContext();
8396
+ const chartFormat = chunkYJ4DAS4V_js.useChartFormatContext();
8397
8397
  const open = Boolean(contextMenuState) && mode === "edit";
8398
8398
  const handlers = {
8399
8399
  ...contextMenuHandlers(props, shapeFormat),
@@ -9308,7 +9308,7 @@ function SlidesPaneSidebar({
9308
9308
  tableStyleContext
9309
9309
  }) {
9310
9310
  const { t } = chunkZ22RD3E2_js.useTranslation();
9311
- const collab = chunkV3XADJ2O_js.useCollaboration();
9311
+ const collab = chunkYJ4DAS4V_js.useCollaboration();
9312
9312
  const slideRefs = React108.useRef(/* @__PURE__ */ new Map());
9313
9313
  const renameInputRef = React108.useRef(null);
9314
9314
  const slidePresenceMap = React108.useMemo(() => {
@@ -9403,7 +9403,7 @@ function SlidesPaneSidebar({
9403
9403
  [sectionGroups, showSectionHeaders, effectiveCollapsed]
9404
9404
  );
9405
9405
  const shouldVirtualize = slides.length >= VIRTUALIZATION_THRESHOLD;
9406
- const { startIndex, endIndex, totalHeight, offsetY, scrollContainerRef, scrollToIndex } = chunkV3XADJ2O_js.useVirtualizedSlides({
9406
+ const { startIndex, endIndex, totalHeight, offsetY, scrollContainerRef, scrollToIndex } = chunkYJ4DAS4V_js.useVirtualizedSlides({
9407
9407
  totalItems: shouldVirtualize ? flatItems.length : 0,
9408
9408
  itemHeight: estimatedItemHeight
9409
9409
  });
@@ -11287,7 +11287,7 @@ function ReadingViewStage({
11287
11287
  className: "absolute left-0 top-0 origin-top-left",
11288
11288
  style: { width, height, transform: `scale(${scale})`, ...pptx.deviceStrokeStageStyle(scale) },
11289
11289
  children: elements.map((element, index) => /* @__PURE__ */ jsxRuntime.jsx(
11290
- chunkV3XADJ2O_js.StaticElementRenderer,
11290
+ chunkYJ4DAS4V_js.StaticElementRenderer,
11291
11291
  {
11292
11292
  element,
11293
11293
  activeSlide: slide,
@@ -11942,7 +11942,7 @@ function SlideNotesPanel({
11942
11942
  });
11943
11943
  const hasNotes = draft.trim().length > 0;
11944
11944
  const slideLabel = activeSlide ? t("pptx.notes.slideN", { n: activeSlide.slideNumber }) : t("pptx.notes.noSlide");
11945
- const { dragY, handlers: dragHandlers } = chunkV3XADJ2O_js.useSheetDismissDrag(onToggle);
11945
+ const { dragY, handlers: dragHandlers } = chunkYJ4DAS4V_js.useSheetDismissDrag(onToggle);
11946
11946
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
11947
11947
  isExpanded && /* @__PURE__ */ jsxRuntime.jsx(
11948
11948
  "button",
@@ -13079,7 +13079,7 @@ function DocumentPropertiesDialog({
13079
13079
  const handleClose = React108.useCallback(() => {
13080
13080
  onClose();
13081
13081
  }, [onClose]);
13082
- const { panelStyle, handlers: dragHandlers } = chunkV3XADJ2O_js.useModalDismissDrag(handleClose);
13082
+ const { panelStyle, handlers: dragHandlers } = chunkYJ4DAS4V_js.useModalDismissDrag(handleClose);
13083
13083
  if (!isOpen) {
13084
13084
  return null;
13085
13085
  }
@@ -13676,7 +13676,7 @@ function PresentationSubtitleBar({
13676
13676
  }) {
13677
13677
  const { t } = chunkZ22RD3E2_js.useTranslation();
13678
13678
  const language = pptx.subtitleRecognitionLanguage(
13679
- pptx.subtitleSettingsFromOptions(chunkV3XADJ2O_js.useViewerOptionsContext()),
13679
+ pptx.subtitleSettingsFromOptions(chunkYJ4DAS4V_js.useViewerOptionsContext()),
13680
13680
  typeof navigator === "undefined" ? "en-US" : navigator.language
13681
13681
  );
13682
13682
  const [captionText, setCaptionText] = React108.useState("");
@@ -13870,7 +13870,7 @@ function ScaledSlidePreviewImpl({
13870
13870
  ...pptx.deviceStrokeStageStyle(scale)
13871
13871
  },
13872
13872
  children: previewElements.map((element, index) => /* @__PURE__ */ jsxRuntime.jsx(
13873
- chunkV3XADJ2O_js.StaticElementRenderer,
13873
+ chunkYJ4DAS4V_js.StaticElementRenderer,
13874
13874
  {
13875
13875
  element,
13876
13876
  activeSlide: slide,
@@ -15204,7 +15204,7 @@ function EffectSoundRow({
15204
15204
  }
15205
15205
  const asset = pptx.getEffectSoundAsset(soundState.catalogueId);
15206
15206
  if (asset) {
15207
- chunkV3XADJ2O_js.playAnimationSound(asset.dataUrl);
15207
+ chunkYJ4DAS4V_js.playAnimationSound(asset.dataUrl);
15208
15208
  }
15209
15209
  };
15210
15210
  return /* @__PURE__ */ jsxRuntime.jsxs("label", { className: "flex flex-col gap-1", children: [
@@ -15716,7 +15716,7 @@ function AnimationPanel({
15716
15716
  onUpdateSlide
15717
15717
  }) {
15718
15718
  const { t } = chunkZ22RD3E2_js.useTranslation();
15719
- const { viewportWidth } = chunkV3XADJ2O_js.useIsMobile();
15719
+ const { viewportWidth } = chunkYJ4DAS4V_js.useIsMobile();
15720
15720
  const directionBtnPx = Math.max(28, pptx.getDensePanelTouchTargetPx(viewportWidth));
15721
15721
  const fieldStyle = { minHeight: pptx.getDensePanelTouchTargetPx(viewportWidth) };
15722
15722
  const handlers = useAnimationHandlers({
@@ -17841,8 +17841,8 @@ function ChartUserShapeOptions({
17841
17841
  }
17842
17842
  function ChartDataPanel({ selectedElement, canEdit, onUpdateElement }) {
17843
17843
  const chartData = selectedElement.chartData;
17844
- const followDataPoint = chunkV3XADJ2O_js.useViewerOptionsContext().advanced.chartPropertiesFollowDataPoint;
17845
- const { selection: partSelection } = chunkV3XADJ2O_js.useChartPartSelection();
17844
+ const followDataPoint = chunkYJ4DAS4V_js.useViewerOptionsContext().advanced.chartPropertiesFollowDataPoint;
17845
+ const { selection: partSelection } = chunkYJ4DAS4V_js.useChartPartSelection();
17846
17846
  const canvasPart = partSelection?.elementId === selectedElement.id ? partSelection.part : null;
17847
17847
  const title = chartData?.title;
17848
17848
  const chartType = chartData?.chartType;
@@ -19043,7 +19043,7 @@ function DuotonePanel({
19043
19043
  ] }),
19044
19044
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-1", children: [
19045
19045
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-muted-foreground text-[10px]", children: t("pptx.image.duotonePresets") }),
19046
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-4 gap-1", children: chunkV3XADJ2O_js.DUOTONE_PRESETS.map((preset) => /* @__PURE__ */ jsxRuntime.jsxs(
19046
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-4 gap-1", children: chunkYJ4DAS4V_js.DUOTONE_PRESETS.map((preset) => /* @__PURE__ */ jsxRuntime.jsxs(
19047
19047
  "button",
19048
19048
  {
19049
19049
  type: "button",
@@ -22200,7 +22200,7 @@ function SmartArtPropertiesPanel({
22200
22200
  const reflowed = box ? pptx.rebuildDrawingShapesIfCleared(
22201
22201
  newData,
22202
22202
  newData.layout,
22203
- chunkV3XADJ2O_js.resolveSmartArtDataPalette(newData),
22203
+ chunkYJ4DAS4V_js.resolveSmartArtDataPalette(newData),
22204
22204
  newData.style ?? "flat",
22205
22205
  "inspector",
22206
22206
  box
@@ -22273,7 +22273,7 @@ function TableDataGrid({
22273
22273
  }) {
22274
22274
  const { t } = chunkZ22RD3E2_js.useTranslation();
22275
22275
  const grid = pptx.buildTableDataGrid(tableElement);
22276
- const { viewportWidth } = chunkV3XADJ2O_js.useIsMobile();
22276
+ const { viewportWidth } = chunkYJ4DAS4V_js.useIsMobile();
22277
22277
  const gridPlan = pptx.getDenseGridLayoutPlan(viewportWidth);
22278
22278
  const touchTargetPx = pptx.getDensePanelTouchTargetPx(viewportWidth);
22279
22279
  const stickyGutterClass = gridPlan.stickyFirstColumn ? "sticky left-0 z-10" : "";
@@ -24103,7 +24103,7 @@ function InspectorPaneHeader({
24103
24103
  onClose
24104
24104
  }) {
24105
24105
  const { t } = chunkZ22RD3E2_js.useTranslation();
24106
- const { viewportWidth } = chunkV3XADJ2O_js.useIsMobile();
24106
+ const { viewportWidth } = chunkYJ4DAS4V_js.useIsMobile();
24107
24107
  const touchTargetPx = pptx.getDensePanelTouchTargetPx(viewportWidth);
24108
24108
  const touchBtnStyle = { minWidth: touchTargetPx, minHeight: touchTargetPx };
24109
24109
  return /* @__PURE__ */ jsxRuntime.jsxs(
@@ -24804,7 +24804,7 @@ function TransitionPreview({
24804
24804
  const { t } = chunkZ22RD3E2_js.useTranslation();
24805
24805
  const durationMs = transition.durationMs ?? 500;
24806
24806
  const animations = React108.useMemo(
24807
- () => chunkV3XADJ2O_js.getSlideTransitionAnimations(
24807
+ () => chunkYJ4DAS4V_js.getSlideTransitionAnimations(
24808
24808
  transition.type,
24809
24809
  durationMs,
24810
24810
  transition.direction,
@@ -24873,7 +24873,7 @@ function TransitionPreview({
24873
24873
  ]
24874
24874
  }
24875
24875
  ),
24876
- /* @__PURE__ */ jsxRuntime.jsx("style", { children: chunkV3XADJ2O_js.SLIDE_TRANSITION_KEYFRAMES })
24876
+ /* @__PURE__ */ jsxRuntime.jsx("style", { children: chunkYJ4DAS4V_js.SLIDE_TRANSITION_KEYFRAMES })
24877
24877
  ] });
24878
24878
  }
24879
24879
  var DEFAULT_DURATION_MS = 320;
@@ -25536,7 +25536,7 @@ function InspectorPane(props) {
25536
25536
  } = props;
25537
25537
  const hasSelection = selectedElement !== null;
25538
25538
  const { t } = chunkZ22RD3E2_js.useTranslation();
25539
- const { dragY, handlers: dragHandlers } = chunkV3XADJ2O_js.useSheetDismissDrag(onClose);
25539
+ const { dragY, handlers: dragHandlers } = chunkYJ4DAS4V_js.useSheetDismissDrag(onClose);
25540
25540
  const {
25541
25541
  animationPanelHeight,
25542
25542
  effectiveThemeOptions,
@@ -25949,7 +25949,7 @@ function PresentationTouchControls({
25949
25949
  hideNavigation = false
25950
25950
  }) {
25951
25951
  const { t } = chunkZ22RD3E2_js.useTranslation();
25952
- const { isTouchDevice } = chunkV3XADJ2O_js.useIsMobile();
25952
+ const { isTouchDevice } = chunkYJ4DAS4V_js.useIsMobile();
25953
25953
  if (!isTouchDevice) {
25954
25954
  return null;
25955
25955
  }
@@ -26596,11 +26596,11 @@ function PrintDialog({
26596
26596
  }) {
26597
26597
  const { t } = chunkZ22RD3E2_js.useTranslation();
26598
26598
  const regionRenderer = useRegionRenderer("dialog.print");
26599
- const { panelStyle, handlers: dragHandlers } = chunkV3XADJ2O_js.useModalDismissDrag(onClose);
26600
- const { viewportWidth } = chunkV3XADJ2O_js.useIsMobile();
26599
+ const { panelStyle, handlers: dragHandlers } = chunkYJ4DAS4V_js.useModalDismissDrag(onClose);
26600
+ const { viewportWidth } = chunkYJ4DAS4V_js.useIsMobile();
26601
26601
  const touchTargetPx = pptx.getDensePanelTouchTargetPx(viewportWidth);
26602
26602
  const closeBtnStyle = { minWidth: touchTargetPx, minHeight: touchTargetPx };
26603
- const printOptionDefaults = pptx.resolveDefaultPrintSettings(chunkV3XADJ2O_js.useViewerOptionsContext());
26603
+ const printOptionDefaults = pptx.resolveDefaultPrintSettings(chunkYJ4DAS4V_js.useViewerOptionsContext());
26604
26604
  const [printWhat, setPrintWhat] = React108.useState(printOptionDefaults?.printWhat ?? "slides");
26605
26605
  const [orientation, setOrientation] = React108.useState("landscape");
26606
26606
  const [colorMode, setColorMode] = React108.useState(
@@ -27117,14 +27117,14 @@ function BroadcastDialog({
27117
27117
  }) {
27118
27118
  const { t } = chunkZ22RD3E2_js.useTranslation();
27119
27119
  const regionRenderer = useRegionRenderer("dialog.broadcast");
27120
- const collab = chunkV3XADJ2O_js.useCollaboration();
27120
+ const collab = chunkYJ4DAS4V_js.useCollaboration();
27121
27121
  const isBroadcasting = collab !== null && collab.status !== "disconnected" && collab.status !== "error" && collab.config.role === "owner";
27122
27122
  const [roomId, setRoomId] = React108.useState("");
27123
27123
  const [userName, setUserName] = React108.useState("");
27124
27124
  const [serverUrl, setServerUrl] = React108.useState("");
27125
27125
  const [copied, setCopied] = React108.useState(false);
27126
27126
  const dialogRef = React108.useRef(null);
27127
- const { panelStyle, handlers: dragHandlers } = chunkV3XADJ2O_js.useModalDismissDrag(onClose);
27127
+ const { panelStyle, handlers: dragHandlers } = chunkYJ4DAS4V_js.useModalDismissDrag(onClose);
27128
27128
  useModalFocus(open, dialogRef, onClose);
27129
27129
  React108.useEffect(() => {
27130
27130
  if (open && !isBroadcasting) {
@@ -27440,7 +27440,7 @@ function ActiveSessionView({
27440
27440
  onCopyRoomId,
27441
27441
  onStopCollaboration
27442
27442
  }) {
27443
- const { t } = chunkZ22RD3E2_js.useTranslation(), viewerOptions = chunkV3XADJ2O_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({
27443
+ const { t } = chunkZ22RD3E2_js.useTranslation(), viewerOptions = chunkYJ4DAS4V_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({
27444
27444
  localUserName: activeCollaboration?.userName ?? collab.config.userName,
27445
27445
  localUserInitials: viewerOptions.general.userInitials,
27446
27446
  localUserColor: collab.config.userColor,
@@ -27539,7 +27539,7 @@ function StartSessionForm({
27539
27539
  onRetry
27540
27540
  }) {
27541
27541
  const { t } = chunkZ22RD3E2_js.useTranslation();
27542
- const { viewportWidth } = chunkV3XADJ2O_js.useIsMobile();
27542
+ const { viewportWidth } = chunkYJ4DAS4V_js.useIsMobile();
27543
27543
  const tabBtnStyle = { minHeight: pptx.getDensePanelTouchTargetPx(viewportWidth) };
27544
27544
  const inputReadOnlyClass = preconfigured ? " opacity-70 cursor-not-allowed" : "";
27545
27545
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
@@ -27673,7 +27673,7 @@ function ShareDialog({
27673
27673
  defaultUserName,
27674
27674
  defaultServerUrl
27675
27675
  }) {
27676
- const collab = chunkV3XADJ2O_js.useCollaboration();
27676
+ const collab = chunkYJ4DAS4V_js.useCollaboration();
27677
27677
  const isActive = collab !== null && collab.status !== "disconnected" && collab.status !== "error";
27678
27678
  const { t } = chunkZ22RD3E2_js.useTranslation();
27679
27679
  const regionRenderer = useRegionRenderer("dialog.share");
@@ -27684,9 +27684,9 @@ function ShareDialog({
27684
27684
  const [invitation, setInvitation] = React108.useState("");
27685
27685
  const [copied, setCopied] = React108.useState(false);
27686
27686
  const dialogRef = React108.useRef(null);
27687
- const { panelStyle, handlers: dragHandlers } = chunkV3XADJ2O_js.useModalDismissDrag(onClose);
27687
+ const { panelStyle, handlers: dragHandlers } = chunkYJ4DAS4V_js.useModalDismissDrag(onClose);
27688
27688
  useModalFocus(open, dialogRef, onClose);
27689
- const { viewportWidth, viewportHeight } = chunkV3XADJ2O_js.useIsMobile();
27689
+ const { viewportWidth, viewportHeight } = chunkYJ4DAS4V_js.useIsMobile();
27690
27690
  const touchTargetPx = pptx.getDensePanelTouchTargetPx(viewportWidth);
27691
27691
  const touchBtnStyle = { minWidth: touchTargetPx, minHeight: touchTargetPx };
27692
27692
  const stickyFooterClass = pptx.shouldStickyActionRow(viewportWidth, viewportHeight) ? "sticky bottom-0 bg-popover" : "";
@@ -27985,12 +27985,12 @@ function HyperlinkEditDialog({
27985
27985
  onCancel
27986
27986
  }) {
27987
27987
  const { t } = chunkZ22RD3E2_js.useTranslation();
27988
- const { panelStyle, handlers: dragHandlers } = chunkV3XADJ2O_js.useModalDismissDrag(onCancel);
27988
+ const { panelStyle, handlers: dragHandlers } = chunkYJ4DAS4V_js.useModalDismissDrag(onCancel);
27989
27989
  const inputRef = React108.useRef(null);
27990
- const detectedType = chunkV3XADJ2O_js.detectTargetType(initialUrl, initialAction);
27991
- const emailParts = chunkV3XADJ2O_js.parseEmailUrl(initialUrl || "");
27992
- const detectedSlide = chunkV3XADJ2O_js.parseSlideFromUrl(initialUrl, initialAction);
27993
- const detectedVerb = initialAction ? chunkV3XADJ2O_js.ACTION_VERB_MAP[initialAction.toLowerCase()] || "nextSlide" : "nextSlide";
27990
+ const detectedType = chunkYJ4DAS4V_js.detectTargetType(initialUrl, initialAction);
27991
+ const emailParts = chunkYJ4DAS4V_js.parseEmailUrl(initialUrl || "");
27992
+ const detectedSlide = chunkYJ4DAS4V_js.parseSlideFromUrl(initialUrl, initialAction);
27993
+ const detectedVerb = initialAction ? chunkYJ4DAS4V_js.ACTION_VERB_MAP[initialAction.toLowerCase()] || "nextSlide" : "nextSlide";
27994
27994
  const [targetType, setTargetType] = React108.useState(detectedType);
27995
27995
  const [url, setUrl] = React108.useState(
27996
27996
  detectedType === "email" || detectedType === "slide" || detectedType === "action" ? "" : initialUrl || ""
@@ -28267,7 +28267,7 @@ function ViewerBottomPanels({
28267
28267
  notesStyle,
28268
28268
  onNotesHeightChange
28269
28269
  }) {
28270
- const { isHidden } = chunkV3XADJ2O_js.useToolbarVisibility(hiddenActions);
28270
+ const { isHidden } = chunkYJ4DAS4V_js.useToolbarVisibility(hiddenActions);
28271
28271
  const customization = useViewerCustomizationContext();
28272
28272
  const showNotes = pptx.isPanelVisible(customization, "notes");
28273
28273
  const notesRenderer = useRegionRenderer("notes");
@@ -28657,7 +28657,7 @@ function ViewerToolbarSection(props) {
28657
28657
  [activeSlide, propertyHandlers]
28658
28658
  );
28659
28659
  const scopedLayoutOptions = React108__default.default.useMemo(
28660
- () => chunkV3XADJ2O_js.scopeLayoutOptionsToActiveSlide(s.layoutOptions, activeSlide),
28660
+ () => chunkYJ4DAS4V_js.scopeLayoutOptionsToActiveSlide(s.layoutOptions, activeSlide),
28661
28661
  [s.layoutOptions, activeSlide]
28662
28662
  );
28663
28663
  const handleResetSlide = React108.useCallback(() => {
@@ -29064,7 +29064,7 @@ function ViewerToolbarSection(props) {
29064
29064
  isMobileInsertOpen: s.isMobileInsertOpen,
29065
29065
  onCloseMobileInsert: () => s.setIsMobileInsertOpen(false),
29066
29066
  slideCommentCount: activeSlide?.comments?.length ?? 0,
29067
- reviewComments: chunkV3XADJ2O_js.createReviewCommentsHost({
29067
+ reviewComments: chunkYJ4DAS4V_js.createReviewCommentsHost({
29068
29068
  state: s,
29069
29069
  activeSlideIndex,
29070
29070
  updateSlides: ops.updateSlides,
@@ -29158,7 +29158,7 @@ function EquationEditorDialog({
29158
29158
  existingOmml
29159
29159
  }) {
29160
29160
  const { t } = chunkZ22RD3E2_js.useTranslation();
29161
- const { panelStyle, handlers: dragHandlers } = chunkV3XADJ2O_js.useModalDismissDrag(onClose);
29161
+ const { panelStyle, handlers: dragHandlers } = chunkYJ4DAS4V_js.useModalDismissDrag(onClose);
29162
29162
  const initialLatex = React108.useMemo(() => {
29163
29163
  if (!existingOmml) {
29164
29164
  return "";
@@ -29857,11 +29857,11 @@ function PresentationStage({
29857
29857
  })
29858
29858
  },
29859
29859
  children: [
29860
- /* @__PURE__ */ jsxRuntime.jsx(chunkV3XADJ2O_js.SlideBackgroundImageLayer, { slide: activeSlide }),
29860
+ /* @__PURE__ */ jsxRuntime.jsx(chunkYJ4DAS4V_js.SlideBackgroundImageLayer, { slide: activeSlide }),
29861
29861
  /* @__PURE__ */ jsxRuntime.jsx("style", { children: pptx.PRESENTATION_HIT_TEST_CSS }),
29862
29862
  presentationKeyframesCss && /* @__PURE__ */ jsxRuntime.jsx("style", { children: presentationKeyframesCss }),
29863
29863
  templateElements.map((element, index) => /* @__PURE__ */ jsxRuntime.jsx(
29864
- chunkV3XADJ2O_js.ElementRenderer,
29864
+ chunkYJ4DAS4V_js.ElementRenderer,
29865
29865
  {
29866
29866
  element,
29867
29867
  activeSlide,
@@ -29898,7 +29898,7 @@ function PresentationStage({
29898
29898
  `tpl-${element.id}`
29899
29899
  )),
29900
29900
  activeSlide?.elements.map((element, index) => /* @__PURE__ */ jsxRuntime.jsx(
29901
- chunkV3XADJ2O_js.ElementRenderer,
29901
+ chunkYJ4DAS4V_js.ElementRenderer,
29902
29902
  {
29903
29903
  element,
29904
29904
  activeSlide,
@@ -30020,8 +30020,8 @@ function ViewerCanvasArea(props) {
30020
30020
  aiCanvasActive = false
30021
30021
  } = props;
30022
30022
  const { t } = chunkZ22RD3E2_js.useTranslation();
30023
- const { isHidden } = chunkV3XADJ2O_js.useToolbarVisibility(hiddenActions);
30024
- const viewerOptions = chunkV3XADJ2O_js.useViewerOptionsContext();
30023
+ const { isHidden } = chunkYJ4DAS4V_js.useToolbarVisibility(hiddenActions);
30024
+ const viewerOptions = chunkYJ4DAS4V_js.useViewerOptionsContext();
30025
30025
  const outlineAuthoring = useOutlineAuthoring({
30026
30026
  state: s,
30027
30027
  updateElement: canvasHandlers.handleUpdateSmartArtElement,
@@ -30159,7 +30159,7 @@ ${url}`)) {
30159
30159
  s.setActiveSlideIndex((i) => Math.max(0, i - 1));
30160
30160
  }
30161
30161
  }, [mode, presentation, s]);
30162
- const swipe = chunkV3XADJ2O_js.useSwipeNavigation({
30162
+ const swipe = chunkYJ4DAS4V_js.useSwipeNavigation({
30163
30163
  enabled: swipeEnabled,
30164
30164
  onNext: handleSwipeNext,
30165
30165
  onPrev: handleSwipePrev
@@ -30239,7 +30239,7 @@ ${url}`)) {
30239
30239
  ),
30240
30240
  children: (stageScale) => /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
30241
30241
  presentation.transitionOverlay && slides[presentation.transitionOverlay.outgoingSlideIndex] && /* @__PURE__ */ jsxRuntime.jsx(
30242
- chunkV3XADJ2O_js.PresentationTransitionOverlay,
30242
+ chunkYJ4DAS4V_js.PresentationTransitionOverlay,
30243
30243
  {
30244
30244
  outgoingSlide: slides[presentation.transitionOverlay.outgoingSlideIndex],
30245
30245
  templateElements: [
@@ -30356,14 +30356,14 @@ ${url}`)) {
30356
30356
  outlineAuthoring,
30357
30357
  collaborationOverlay: /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
30358
30358
  /* @__PURE__ */ jsxRuntime.jsx(
30359
- chunkV3XADJ2O_js.RemoteSelectionOverlay,
30359
+ chunkYJ4DAS4V_js.RemoteSelectionOverlay,
30360
30360
  {
30361
30361
  elements: effectiveSlide?.elements ?? [],
30362
30362
  activeSlideIndex
30363
30363
  }
30364
30364
  ),
30365
30365
  /* @__PURE__ */ jsxRuntime.jsx(
30366
- chunkV3XADJ2O_js.CollaborationCursorOverlay,
30366
+ chunkYJ4DAS4V_js.CollaborationCursorOverlay,
30367
30367
  {
30368
30368
  activeSlideIndex,
30369
30369
  canvasWidth: canvasSize.width,
@@ -30627,7 +30627,7 @@ function AiChangeOverlay({ batch, activeSlideIndex }) {
30627
30627
  }
30628
30628
  function ChartFormatPanel() {
30629
30629
  const { t } = chunkZ22RD3E2_js.useTranslation();
30630
- const commands = chunkV3XADJ2O_js.useChartFormatContext();
30630
+ const commands = chunkYJ4DAS4V_js.useChartFormatContext();
30631
30631
  const ref = React108.useRef(null);
30632
30632
  const chart = commands?.chart;
30633
30633
  const chartData = chart?.type === "chart" ? chart.chartData : void 0;
@@ -30700,7 +30700,7 @@ function MobileDismissSheet({
30700
30700
  children
30701
30701
  }) {
30702
30702
  const { t } = chunkZ22RD3E2_js.useTranslation();
30703
- const { dragY, handlers } = chunkV3XADJ2O_js.useSheetDismissDrag(onClose);
30703
+ const { dragY, handlers } = chunkYJ4DAS4V_js.useSheetDismissDrag(onClose);
30704
30704
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
30705
30705
  /* @__PURE__ */ jsxRuntime.jsx(
30706
30706
  "button",
@@ -31440,7 +31440,7 @@ function ViewerMainContent(props) {
31440
31440
  );
31441
31441
  const layoutGalleryAnchorRef = React108.useRef(null);
31442
31442
  const layoutGalleryPreviews = useLayoutPreviews(loadLayoutPreviews, layoutGalleryAnchor !== null);
31443
- return /* @__PURE__ */ jsxRuntime.jsx(chunkV3XADJ2O_js.ChartPartSelectionProvider, { children: /* @__PURE__ */ jsxRuntime.jsxs("div", { "data-pptx-chrome": "body", className: "relative z-10 flex flex-1 min-h-0", children: [
31443
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkYJ4DAS4V_js.ChartPartSelectionProvider, { children: /* @__PURE__ */ jsxRuntime.jsxs("div", { "data-pptx-chrome": "body", className: "relative z-10 flex flex-1 min-h-0", children: [
31444
31444
  showSlidesPane && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
31445
31445
  slidesPaneRenderer ? (
31446
31446
  // The rail's slot (width, collapse, resize handle) stays the viewer's.
@@ -31945,7 +31945,7 @@ function MobileChromeOverlay(props) {
31945
31945
  slideSectionGroups,
31946
31946
  canEdit,
31947
31947
  commentCount
31948
- } = props, { keyboardInset, isKeyboardOpen } = chunkV3XADJ2O_js.useKeyboardInsets(), activeSheet = s.isMobileInsertOpen ? "insert" : s.isSlidesPaneOpen ? "slides" : s.isInspectorPaneOpen ? s.sidebarPanelMode === "comments" ? "comments" : "inspector" : !s.isSlideNotesCollapsed ? "notes" : null, closeAllSheets = () => {
31948
+ } = props, { keyboardInset, isKeyboardOpen } = chunkYJ4DAS4V_js.useKeyboardInsets(), activeSheet = s.isMobileInsertOpen ? "insert" : s.isSlidesPaneOpen ? "slides" : s.isInspectorPaneOpen ? s.sidebarPanelMode === "comments" ? "comments" : "inspector" : !s.isSlideNotesCollapsed ? "notes" : null, closeAllSheets = () => {
31949
31949
  s.setIsSlidesPaneOpen(false);
31950
31950
  s.setIsMobileInsertOpen(false);
31951
31951
  s.setIsInspectorPaneOpen(false);
@@ -32422,7 +32422,7 @@ async function exportAiChatLogs(options) {
32422
32422
  chats,
32423
32423
  { format: options?.format, detailed: options?.detailed, now: options?.now },
32424
32424
  (filename, content, mime) => {
32425
- chunkV3XADJ2O_js.downloadBlob(new Blob([content], { type: mime }), filename);
32425
+ chunkYJ4DAS4V_js.downloadBlob(new Blob([content], { type: mime }), filename);
32426
32426
  }
32427
32427
  );
32428
32428
  }
@@ -32775,7 +32775,7 @@ function ViewerOptionsProvider({
32775
32775
  store,
32776
32776
  children
32777
32777
  }) {
32778
- return /* @__PURE__ */ jsxRuntime.jsx(chunkV3XADJ2O_js.ViewerOptionsStoreContext.Provider, { value: store, children: /* @__PURE__ */ jsxRuntime.jsx(chunkV3XADJ2O_js.ViewerOptionsContext.Provider, { value: options, children }) });
32778
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkYJ4DAS4V_js.ViewerOptionsStoreContext.Provider, { value: store, children: /* @__PURE__ */ jsxRuntime.jsx(chunkYJ4DAS4V_js.ViewerOptionsContext.Provider, { value: options, children }) });
32779
32779
  }
32780
32780
  function useAiBridge(input) {
32781
32781
  const ref = React108.useRef(input);
@@ -32856,7 +32856,7 @@ function useAiPanelController(input) {
32856
32856
  getSelectedElement: () => inputRef.current.selectedElement
32857
32857
  })
32858
32858
  );
32859
- const state = chunkV3XADJ2O_js.useController(controller);
32859
+ const state = chunkYJ4DAS4V_js.useController(controller);
32860
32860
  React108.useEffect(() => () => controller.dispose(), [controller]);
32861
32861
  const liveFocusTargets = React108.useMemo(
32862
32862
  () => ai.computeFocusTargets({ activeSlideIndex, selectedElementIds, selectedElementId }),
@@ -33108,7 +33108,7 @@ function useMasterViewCrud(input) {
33108
33108
  if (id === "renameLayout" || id === "renameMaster") {
33109
33109
  const master = slideMasters[target.masterIndex];
33110
33110
  const current = id === "renameLayout" ? master?.layouts?.[target.layoutIndex ?? -1]?.name ?? "" : master?.name ?? "";
33111
- const next = chunkV3XADJ2O_js.safePrompt(t("pptx.masterView.renamePrompt"), current)?.trim();
33111
+ const next = chunkYJ4DAS4V_js.safePrompt(t("pptx.masterView.renamePrompt"), current)?.trim();
33112
33112
  if (!next) {
33113
33113
  return;
33114
33114
  }
@@ -33689,7 +33689,7 @@ var PowerPointViewerBody = /* @__PURE__ */ React108.forwardRef(
33689
33689
  },
33690
33690
  [storage]
33691
33691
  );
33692
- const { optionsStore, options: viewerOptions } = chunkV3XADJ2O_js.useViewerOptions();
33692
+ const { optionsStore, options: viewerOptions } = chunkYJ4DAS4V_js.useViewerOptions();
33693
33693
  const custom = useViewerCustomization(customization, legacyHiddenActions, optionsStore);
33694
33694
  const { resolved: customizationResolved, hiddenActions } = custom;
33695
33695
  const aiEnabled = Boolean(ai) && pptx.isFeatureEnabled(customizationResolved, "ai");
@@ -33703,8 +33703,8 @@ var PowerPointViewerBody = /* @__PURE__ */ React108.forwardRef(
33703
33703
  const handleEnableEditing = React108.useCallback(() => {
33704
33704
  setProtectedViewOverridden(true);
33705
33705
  }, []);
33706
- const readOnlyRec = chunkV3XADJ2O_js.useReadOnlyRecommendationState(content);
33707
- const compatToastsState = chunkV3XADJ2O_js.useCompatibilityToastsState();
33706
+ const readOnlyRec = chunkYJ4DAS4V_js.useReadOnlyRecommendationState(content);
33707
+ const compatToastsState = chunkYJ4DAS4V_js.useCompatibilityToastsState();
33708
33708
  const [notesBarHeight, setNotesBarHeight] = React108.useState(0);
33709
33709
  const runProgramNoticesState = useRunProgramNoticesState();
33710
33710
  const [collaborationReadOnly, setCollaborationReadOnly] = React108.useState(Boolean(collaboration));
@@ -33727,8 +33727,8 @@ var PowerPointViewerBody = /* @__PURE__ */ React108.forwardRef(
33727
33727
  filePath
33728
33728
  });
33729
33729
  const [isShareDialogOpen, setIsShareDialogOpen] = React108.useState(false);
33730
- const { reducedMotion, toggleReducedMotion } = chunkV3XADJ2O_js.useReducedMotion();
33731
- const state = chunkV3XADJ2O_js.useViewerState({
33730
+ const { reducedMotion, toggleReducedMotion } = chunkYJ4DAS4V_js.useReducedMotion();
33731
+ const state = chunkYJ4DAS4V_js.useViewerState({
33732
33732
  content,
33733
33733
  canEdit,
33734
33734
  inspectorInitiallyOpen: props.inspectorInitiallyOpen
@@ -33855,16 +33855,16 @@ var PowerPointViewerBody = /* @__PURE__ */ React108.forwardRef(
33855
33855
  }
33856
33856
  }, [settings, optionsStore]);
33857
33857
  const handleClearOptionsCache = useAutosaveCacheMaintenance(viewerOptions, storage);
33858
- const mobile = chunkV3XADJ2O_js.useIsMobile();
33858
+ const mobile = chunkYJ4DAS4V_js.useIsMobile();
33859
33859
  const { isMobile, isTouchDevice, isVirtualKeyboardOpen } = mobile;
33860
- const resizablePanels = chunkV3XADJ2O_js.useResizablePanels();
33860
+ const resizablePanels = chunkYJ4DAS4V_js.useResizablePanels();
33861
33861
  const {
33862
33862
  gridSpacingPx,
33863
33863
  visibleSlideIndexes,
33864
33864
  slideSectionGroups,
33865
33865
  masterPseudoSlide,
33866
33866
  authoredRange
33867
- } = chunkV3XADJ2O_js.useDerivedSlideState({
33867
+ } = chunkYJ4DAS4V_js.useDerivedSlideState({
33868
33868
  slides,
33869
33869
  sections: state.sections,
33870
33870
  customShows: state.customShows,
@@ -33889,7 +33889,7 @@ var PowerPointViewerBody = /* @__PURE__ */ React108.forwardRef(
33889
33889
  state.cropSessionRef
33890
33890
  ]
33891
33891
  );
33892
- const zoom = chunkV3XADJ2O_js.useZoomViewport({
33892
+ const zoom = chunkYJ4DAS4V_js.useZoomViewport({
33893
33893
  canvasSize,
33894
33894
  selectedElements: state.selectedElements,
33895
33895
  fitPadding: props.fitPadding,
@@ -33904,7 +33904,7 @@ var PowerPointViewerBody = /* @__PURE__ */ React108.forwardRef(
33904
33904
  setIsDirty(true);
33905
33905
  onChangeCallback.current?.();
33906
33906
  }, [setIsDirty]);
33907
- const history = chunkV3XADJ2O_js.useEditorHistory({
33907
+ const history = chunkYJ4DAS4V_js.useEditorHistory({
33908
33908
  slides,
33909
33909
  canvasSize,
33910
33910
  activeSlideIndex,
@@ -33930,7 +33930,7 @@ var PowerPointViewerBody = /* @__PURE__ */ React108.forwardRef(
33930
33930
  setEditTemplateMode: state.setEditTemplateMode,
33931
33931
  setHeaderFooter: state.setHeaderFooter
33932
33932
  });
33933
- const { presentation, annotations, actionSoundHandlerRef, setExitModeHandler } = chunkV3XADJ2O_js.usePresentationSetup({
33933
+ const { presentation, annotations, actionSoundHandlerRef, setExitModeHandler } = chunkYJ4DAS4V_js.usePresentationSetup({
33934
33934
  mode,
33935
33935
  slides,
33936
33936
  visibleSlideIndexes,
@@ -34005,7 +34005,7 @@ ${url}`)
34005
34005
  loading,
34006
34006
  error
34007
34007
  ]);
34008
- chunkV3XADJ2O_js.useTouchGestures({
34008
+ chunkYJ4DAS4V_js.useTouchGestures({
34009
34009
  targetRef: zoom.canvasViewportRef,
34010
34010
  currentScale: zoom.scale,
34011
34011
  callbacks: {
@@ -34027,7 +34027,7 @@ ${url}`)
34027
34027
  },
34028
34028
  enabled: isTouchDevice
34029
34029
  });
34030
- const dialogs = chunkV3XADJ2O_js.useViewerDialogs({
34030
+ const dialogs = chunkYJ4DAS4V_js.useViewerDialogs({
34031
34031
  mode,
34032
34032
  slides,
34033
34033
  activeSlide,
@@ -34076,7 +34076,7 @@ ${url}`)
34076
34076
  zoom.handleZoomToFit();
34077
34077
  zoom.canvasViewportRef.current?.scrollTo({ left: 0, top: 0 });
34078
34078
  }, [mode]);
34079
- const editorOps = chunkV3XADJ2O_js.useEditorOperations({
34079
+ const editorOps = chunkYJ4DAS4V_js.useEditorOperations({
34080
34080
  state,
34081
34081
  history,
34082
34082
  zoom,
@@ -34119,7 +34119,7 @@ ${url}`)
34119
34119
  handlerRef,
34120
34120
  viewerApi,
34121
34121
  loadVersion
34122
- } = chunkV3XADJ2O_js.useViewerIntegration({
34122
+ } = chunkYJ4DAS4V_js.useViewerIntegration({
34123
34123
  transformCommittedText: (text) => pptx.applyAutoCorrect(text, viewerOptions.proofing),
34124
34124
  state,
34125
34125
  zoom,
@@ -34258,7 +34258,7 @@ ${url}`)
34258
34258
  updateElementById: editorOps.ops.updateElementById
34259
34259
  });
34260
34260
  const ribbonScope = useRibbonScopeToken();
34261
- const viewPreferencesSync = chunkV3XADJ2O_js.useViewPreferencesSync({
34261
+ const viewPreferencesSync = chunkYJ4DAS4V_js.useViewPreferencesSync({
34262
34262
  loadVersion,
34263
34263
  viewProperties: state.viewProperties,
34264
34264
  setViewProperties: state.setViewProperties,
@@ -34300,7 +34300,7 @@ ${url}`)
34300
34300
  },
34301
34301
  [state]
34302
34302
  );
34303
- const layoutSwitching = chunkV3XADJ2O_js.useLayoutSwitching({
34303
+ const layoutSwitching = chunkYJ4DAS4V_js.useLayoutSwitching({
34304
34304
  handler: handlerRef.current,
34305
34305
  slides,
34306
34306
  activeSlideIndex,
@@ -34813,8 +34813,8 @@ ${url}`)
34813
34813
  // Nothing previously provided it, so every one of those consumers was
34814
34814
  // silently reading `DEFAULT_VIEWER_OPTIONS` forever, no matter what
34815
34815
  // the user changed in the Options dialog.
34816
- /* @__PURE__ */ jsxRuntime.jsx(ViewerOptionsProvider, { options: viewerOptions, store: optionsStore, children: /* @__PURE__ */ jsxRuntime.jsx(ViewerCustomizationContext.Provider, { value: customizationResolved, children: /* @__PURE__ */ jsxRuntime.jsx(ViewerStorageContext.Provider, { value: storage, 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(chunkV3XADJ2O_js.Rendering3DFlagsContext.Provider, { value: effective3D, children: /* @__PURE__ */ jsxRuntime.jsx(ViewerThemeProvider, { theme: effectiveTheme, children: /* @__PURE__ */ jsxRuntime.jsxs(
34817
- chunkV3XADJ2O_js.CollaborationProvider,
34816
+ /* @__PURE__ */ jsxRuntime.jsx(ViewerOptionsProvider, { options: viewerOptions, store: optionsStore, children: /* @__PURE__ */ jsxRuntime.jsx(ViewerCustomizationContext.Provider, { value: customizationResolved, children: /* @__PURE__ */ jsxRuntime.jsx(ViewerStorageContext.Provider, { value: storage, 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(chunkYJ4DAS4V_js.Rendering3DFlagsContext.Provider, { value: effective3D, children: /* @__PURE__ */ jsxRuntime.jsx(ViewerThemeProvider, { theme: effectiveTheme, children: /* @__PURE__ */ jsxRuntime.jsxs(
34817
+ chunkYJ4DAS4V_js.CollaborationProvider,
34818
34818
  {
34819
34819
  config: collaboration,
34820
34820
  canvasWidth: canvasSize.width,
@@ -34870,19 +34870,19 @@ ${url}`)
34870
34870
  slideCount: slides.length
34871
34871
  }
34872
34872
  ),
34873
- /* @__PURE__ */ jsxRuntime.jsx(ShapeFormatContext.Provider, { value: shapeFormat, children: /* @__PURE__ */ jsxRuntime.jsx(RibbonGalleryCommandsContext.Provider, { value: ribbonGalleries, children: /* @__PURE__ */ jsxRuntime.jsx(chunkV3XADJ2O_js.ChartFormatContext.Provider, { value: chartFormat, children: viewerContent }) }) })
34873
+ /* @__PURE__ */ jsxRuntime.jsx(ShapeFormatContext.Provider, { value: shapeFormat, children: /* @__PURE__ */ jsxRuntime.jsx(RibbonGalleryCommandsContext.Provider, { value: ribbonGalleries, children: /* @__PURE__ */ jsxRuntime.jsx(chunkYJ4DAS4V_js.ChartFormatContext.Provider, { value: chartFormat, children: viewerContent }) }) })
34874
34874
  ]
34875
34875
  }
34876
34876
  ) }) }) }) }) }) }) }) })
34877
34877
  );
34878
34878
  }
34879
34879
  );
34880
- var PowerPointViewer2 = /* @__PURE__ */ chunkV3XADJ2O_js.withDisplayName(
34880
+ var PowerPointViewer2 = /* @__PURE__ */ chunkYJ4DAS4V_js.withDisplayName(
34881
34881
  PowerPointViewerComponent,
34882
34882
  "PowerPointViewer"
34883
34883
  );
34884
34884
  function CollaborationStatusStrip() {
34885
- const collab = chunkV3XADJ2O_js.useCollaboration();
34885
+ const collab = chunkYJ4DAS4V_js.useCollaboration();
34886
34886
  if (!collab) {
34887
34887
  return null;
34888
34888
  }
@@ -34899,9 +34899,9 @@ function CollaborationStateReporter({
34899
34899
  onChange,
34900
34900
  onStatus
34901
34901
  }) {
34902
- const collab = chunkV3XADJ2O_js.useCollaboration();
34902
+ const collab = chunkYJ4DAS4V_js.useCollaboration();
34903
34903
  useCollaborationStateReport(collab, onChange);
34904
- chunkV3XADJ2O_js.useReportOnChange(collab?.status ?? "disconnected", onStatus, "disconnected");
34904
+ chunkYJ4DAS4V_js.useReportOnChange(collab?.status ?? "disconnected", onStatus, "disconnected");
34905
34905
  return null;
34906
34906
  }
34907
34907
  function CollaborationDocumentSync({
@@ -34915,8 +34915,8 @@ function CollaborationDocumentSync({
34915
34915
  deckSaveState,
34916
34916
  onReadOnlyChange
34917
34917
  }) {
34918
- const collab = chunkV3XADJ2O_js.useCollaboration();
34919
- chunkV3XADJ2O_js.useCollaborationDocumentSync({
34918
+ const collab = chunkYJ4DAS4V_js.useCollaboration();
34919
+ chunkYJ4DAS4V_js.useCollaborationDocumentSync({
34920
34920
  collaboration: collab,
34921
34921
  slides,
34922
34922
  templateElementsBySlideId,
@@ -34935,14 +34935,14 @@ function CollaborationFollowLayer({
34935
34935
  setActiveSlideIndex,
34936
34936
  slideCount
34937
34937
  }) {
34938
- const collab = chunkV3XADJ2O_js.useCollaboration();
34939
- const { followedClientId, followUser } = chunkV3XADJ2O_js.useFollowMode({
34938
+ const collab = chunkYJ4DAS4V_js.useCollaboration();
34939
+ const { followedClientId, followUser } = chunkYJ4DAS4V_js.useFollowMode({
34940
34940
  collab,
34941
34941
  activeSlideIndex,
34942
34942
  setActiveSlideIndex,
34943
34943
  slideCount
34944
34944
  });
34945
- chunkV3XADJ2O_js.useBroadcastFollower({
34945
+ chunkYJ4DAS4V_js.useBroadcastFollower({
34946
34946
  collab,
34947
34947
  activeSlideIndex,
34948
34948
  setActiveSlideIndex,