pptx-react-viewer 2.20.2 → 2.20.3

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 (40) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/dist/{chunk-GKOJO67G.js → chunk-463BMH5Q.js} +10 -0
  3. package/dist/chunk-463BMH5Q.js.br +0 -0
  4. package/dist/chunk-463BMH5Q.js.gz +0 -0
  5. package/dist/{chunk-GUKUV7D4.js → chunk-4JENQPJ3.js} +145 -131
  6. package/dist/chunk-4JENQPJ3.js.br +0 -0
  7. package/dist/chunk-4JENQPJ3.js.gz +0 -0
  8. package/dist/{chunk-EDJ4TZML.mjs → chunk-AD4LAXDJ.mjs} +93 -79
  9. package/dist/chunk-AD4LAXDJ.mjs.br +0 -0
  10. package/dist/chunk-AD4LAXDJ.mjs.gz +0 -0
  11. package/dist/{chunk-SZJLZWEX.mjs → chunk-YAKDNRU7.mjs} +10 -0
  12. package/dist/chunk-YAKDNRU7.mjs.br +0 -0
  13. package/dist/chunk-YAKDNRU7.mjs.gz +0 -0
  14. package/dist/index.js +11 -11
  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 +73 -73
  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 +14 -14
  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 +2 -2
  33. package/dist/chunk-EDJ4TZML.mjs.br +0 -0
  34. package/dist/chunk-EDJ4TZML.mjs.gz +0 -0
  35. package/dist/chunk-GKOJO67G.js.br +0 -0
  36. package/dist/chunk-GKOJO67G.js.gz +0 -0
  37. package/dist/chunk-GUKUV7D4.js.br +0 -0
  38. package/dist/chunk-GUKUV7D4.js.gz +0 -0
  39. package/dist/chunk-SZJLZWEX.mjs.br +0 -0
  40. package/dist/chunk-SZJLZWEX.mjs.gz +0 -0
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var chunkQJJX2E6I_js = require('./chunk-QJJX2E6I.js');
4
- var chunkGKOJO67G_js = require('./chunk-GKOJO67G.js');
4
+ var chunk463BMH5Q_js = require('./chunk-463BMH5Q.js');
5
5
  var chunkLLZ25OVR_js = require('./chunk-LLZ25OVR.js');
6
6
  var chunk6CPUGAK7_js = require('./chunk-6CPUGAK7.js');
7
7
  var chunk4Z4HEIP5_js = require('./chunk-4Z4HEIP5.js');
@@ -43,7 +43,7 @@ function CollaborationProvider({
43
43
  canvasHeight,
44
44
  children
45
45
  }) {
46
- const value = chunkGKOJO67G_js.useCollaborativeState({
46
+ const value = chunk463BMH5Q_js.useCollaborativeState({
47
47
  config,
48
48
  canvasWidth,
49
49
  canvasHeight
@@ -1541,38 +1541,41 @@ function shapeParams(element) {
1541
1541
  const hasFill = style?.fillColor !== void 0 && style.fillColor !== "transparent" || Boolean(chunk4Z4HEIP5_js.buildCssGradientFromShapeStyle(style) || style?.fillGradient) || style?.fillMode === "pattern" && Boolean(style.fillPatternPreset);
1542
1542
  return { hf: hasFill, fc: fillColor, sw: strokeWidth, sc: strokeColor };
1543
1543
  }
1544
- var Extrusion3DOverlay = React14__default.default.memo(({ data }) => {
1545
- if (!data.hasExtrusion || data.panels.length === 0) {
1546
- return null;
1547
- }
1548
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "extrusion-3d-wrapper", style: data.wrapperStyle, "aria-hidden": "true", children: [
1549
- data.panels.map((panel) => /* @__PURE__ */ jsxRuntime.jsx(
1550
- "div",
1551
- {
1552
- className: `extrusion-3d-panel extrusion-3d-panel--${panel.side}`,
1553
- style: panel.style
1554
- },
1555
- panel.side
1556
- )),
1557
- data.materialOverlay && /* @__PURE__ */ jsxRuntime.jsx(
1558
- "div",
1559
- {
1560
- className: "extrusion-3d-material-overlay",
1561
- style: {
1562
- position: "absolute",
1563
- inset: 0,
1564
- backgroundImage: data.materialOverlay,
1565
- pointerEvents: "none",
1566
- borderRadius: "inherit",
1567
- transform: data.frontFaceStyle.transform,
1568
- transformStyle: "preserve-3d",
1569
- backfaceVisibility: "hidden",
1570
- mixBlendMode: "normal"
1544
+ var Extrusion3DOverlay = React14__default.default.memo(
1545
+ // oxlint-disable-next-line prefer-arrow-callback -- named fn gives the memo component its displayName
1546
+ function Extrusion3DOverlayInner({ data }) {
1547
+ if (!data.hasExtrusion || data.panels.length === 0) {
1548
+ return null;
1549
+ }
1550
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "extrusion-3d-wrapper", style: data.wrapperStyle, "aria-hidden": "true", children: [
1551
+ data.panels.map((panel) => /* @__PURE__ */ jsxRuntime.jsx(
1552
+ "div",
1553
+ {
1554
+ className: `extrusion-3d-panel extrusion-3d-panel--${panel.side}`,
1555
+ style: panel.style
1556
+ },
1557
+ panel.side
1558
+ )),
1559
+ data.materialOverlay && /* @__PURE__ */ jsxRuntime.jsx(
1560
+ "div",
1561
+ {
1562
+ className: "extrusion-3d-material-overlay",
1563
+ style: {
1564
+ position: "absolute",
1565
+ inset: 0,
1566
+ backgroundImage: data.materialOverlay,
1567
+ pointerEvents: "none",
1568
+ borderRadius: "inherit",
1569
+ transform: data.frontFaceStyle.transform,
1570
+ transformStyle: "preserve-3d",
1571
+ backfaceVisibility: "hidden",
1572
+ mixBlendMode: "normal"
1573
+ }
1571
1574
  }
1572
- }
1573
- )
1574
- ] });
1575
- });
1575
+ )
1576
+ ] });
1577
+ }
1578
+ );
1576
1579
  Extrusion3DOverlay.displayName = "Extrusion3DOverlay";
1577
1580
 
1578
1581
  // src/viewer/components/elements/scoped-element-handlers.ts
@@ -4597,7 +4600,7 @@ function SlideTemplateGalleryDialog({
4597
4600
  scheme
4598
4601
  }) {
4599
4602
  const { t } = reactI18next.useTranslation();
4600
- const { panelStyle, handlers: dragHandlers } = chunkGKOJO67G_js.useModalDismissDrag(onClose);
4603
+ const { panelStyle, handlers: dragHandlers } = chunk463BMH5Q_js.useModalDismissDrag(onClose);
4601
4604
  const [selected, setSelected] = React14.useState(null);
4602
4605
  const dialogRef = React14.useRef(null);
4603
4606
  useModalFocus(isOpen, dialogRef, onClose);
@@ -5748,7 +5751,7 @@ function AccountPage() {
5748
5751
  return void 0;
5749
5752
  });
5750
5753
  };
5751
- const version = "2.20.1" ;
5754
+ const version = "2.20.2" ;
5752
5755
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-8 max-w-[700px] space-y-6", children: [
5753
5756
  /* @__PURE__ */ jsxRuntime.jsxs("section", { className: cardClass, children: [
5754
5757
  /* @__PURE__ */ jsxRuntime.jsxs("h2", { className: "flex items-center gap-2 text-sm font-semibold", children: [
@@ -6008,7 +6011,7 @@ function FileSection(p) {
6008
6011
  const [page, setPage] = React14.useState("home");
6009
6012
  const [query, setQuery] = React14.useState("");
6010
6013
  const [recent, setRecent] = React14.useState([]);
6011
- const { isHidden } = chunkGKOJO67G_js.useToolbarVisibility(p.hiddenActions);
6014
+ const { isHidden } = chunk463BMH5Q_js.useToolbarVisibility(p.hiddenActions);
6012
6015
  const exportHidden = isHidden("export");
6013
6016
  React14.useEffect(() => {
6014
6017
  void chunk4Z4HEIP5_js.listBackstageRecentFiles(t).then(setRecent);
@@ -7431,7 +7434,7 @@ function CustomShowsControls({
7431
7434
  }
7432
7435
  function SlideShowSection(p) {
7433
7436
  const { t } = reactI18next.useTranslation();
7434
- const { isHidden } = chunkGKOJO67G_js.useToolbarVisibility(p.hiddenActions);
7437
+ const { isHidden } = chunk463BMH5Q_js.useToolbarVisibility(p.hiddenActions);
7435
7438
  const [showsOpen, setShowsOpen] = React14.useState(false);
7436
7439
  const showsRef = React14.useRef(null);
7437
7440
  React14.useEffect(() => {
@@ -8571,7 +8574,7 @@ function MobileSheet({
8571
8574
  headerRight
8572
8575
  }) {
8573
8576
  const sheetRef = React14.useRef(null);
8574
- const { dragY, dragging, handlers } = chunkGKOJO67G_js.useSheetDismissDrag(onClose);
8577
+ const { dragY, dragging, handlers } = chunk463BMH5Q_js.useSheetDismissDrag(onClose);
8575
8578
  useModalFocus(open, sheetRef, onClose);
8576
8579
  if (!open) {
8577
8580
  return null;
@@ -8658,7 +8661,7 @@ function MobileMenuSheet(props) {
8658
8661
  const { t } = reactI18next.useTranslation();
8659
8662
  const { open, onClose } = props;
8660
8663
  const [active, setActive] = React14.useState("home");
8661
- const { isTabVisible } = chunkGKOJO67G_js.useToolbarVisibility(props.hiddenActions);
8664
+ const { isTabVisible } = chunk463BMH5Q_js.useToolbarVisibility(props.hiddenActions);
8662
8665
  return /* @__PURE__ */ jsxRuntime.jsx(MobileSheet, { open, onClose, autoHeight: true, title: t("pptx.mobileToolbar.menu"), children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col", children: [
8663
8666
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "sticky top-0 z-10 bg-background border-b border-border", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-wrap gap-1.5 px-3 py-2", children: MENU_ITEMS.filter(({ key }) => isTabVisible(key)).map(({ key, label, icon: Icon }) => /* @__PURE__ */ jsxRuntime.jsxs(
8664
8667
  "button",
@@ -8920,7 +8923,7 @@ function MobileToolbar(props) {
8920
8923
  const { t } = reactI18next.useTranslation();
8921
8924
  const { mode, canUndo, canRedo, onUndo, onRedo, onSetMode, onSaveAsPptx } = props;
8922
8925
  const [menuOpen, setMenuOpen] = React14.useState(false);
8923
- const { isHidden } = chunkGKOJO67G_js.useToolbarVisibility(props.hiddenActions);
8926
+ const { isHidden } = chunk463BMH5Q_js.useToolbarVisibility(props.hiddenActions);
8924
8927
  const showEdit = mode === "edit" || mode === "master";
8925
8928
  const btn = "inline-flex items-center justify-center min-w-[44px] min-h-[44px] rounded-md text-foreground/80 hover:bg-accent/60 disabled:opacity-40 disabled:cursor-not-allowed active:scale-95 transition-transform";
8926
8929
  return /* @__PURE__ */ jsxRuntime.jsxs(
@@ -9384,7 +9387,7 @@ function TabRowActions(p) {
9384
9387
  const { t } = reactI18next.useTranslation();
9385
9388
  const collab = useCollaboration();
9386
9389
  const isCollaborating = collab && collab.status === "connected";
9387
- const { isHidden } = chunkGKOJO67G_js.useToolbarVisibility(p.hiddenActions);
9390
+ const { isHidden } = chunk463BMH5Q_js.useToolbarVisibility(p.hiddenActions);
9388
9391
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-1 pr-1", children: [
9389
9392
  p.onEnterRehearsalMode && !isHidden("record") && /* @__PURE__ */ jsxRuntime.jsxs(
9390
9393
  "button",
@@ -9808,7 +9811,7 @@ function ToolbarPrimaryRow(p) {
9808
9811
  function Toolbar(p) {
9809
9812
  const { mode, isNarrowViewport, isCompactToolbarOpen, toolbarSection, onSetToolbarSection } = p;
9810
9813
  const { t } = reactI18next.useTranslation();
9811
- const { isTabVisible } = chunkGKOJO67G_js.useToolbarVisibility(p.hiddenActions);
9814
+ const { isTabVisible } = chunk463BMH5Q_js.useToolbarVisibility(p.hiddenActions);
9812
9815
  if (isNarrowViewport && mode !== "present") {
9813
9816
  return /* @__PURE__ */ jsxRuntime.jsx(MobileToolbar, { ...p });
9814
9817
  }
@@ -10323,13 +10326,13 @@ function ConnectorEndpointOverlay({
10323
10326
  return;
10324
10327
  }
10325
10328
  const onMove = (event) => {
10326
- const point = toSlidePoint(event.clientX, event.clientY);
10327
- setDrag((prev) => prev ? { ...prev, ...point } : prev);
10329
+ const point2 = toSlidePoint(event.clientX, event.clientY);
10330
+ setDrag((prev) => prev ? { ...prev, ...point2 } : prev);
10328
10331
  };
10329
10332
  const onUp = (event) => {
10330
- const point = toSlidePoint(event.clientX, event.clientY);
10331
- const target = chunk4Z4HEIP5_js.findConnectorSiteNear(candidates, point.x, point.y, chunk4Z4HEIP5_js.CONNECTOR_SITE_SNAP_PX);
10332
- const update = chunk4Z4HEIP5_js.resolveConnectorEndpointUpdate(connector, elements, drag.kind, point, target);
10333
+ const point2 = toSlidePoint(event.clientX, event.clientY);
10334
+ const target = chunk4Z4HEIP5_js.findConnectorSiteNear(candidates, point2.x, point2.y, chunk4Z4HEIP5_js.CONNECTOR_SITE_SNAP_PX);
10335
+ const update = chunk4Z4HEIP5_js.resolveConnectorEndpointUpdate(connector, elements, drag.kind, point2, target);
10333
10336
  const next = chunk4Z4HEIP5_js.withConnectorEndpointUpdate(connector, update);
10334
10337
  onUpdateElement(connector.id, {
10335
10338
  x: next.x,
@@ -10396,8 +10399,8 @@ function ConnectorEndpointOverlay({
10396
10399
  onPointerDown: (event) => {
10397
10400
  event.stopPropagation();
10398
10401
  event.preventDefault();
10399
- const point = toSlidePoint(event.clientX, event.clientY);
10400
- setDrag({ kind: handle.kind, ...point });
10402
+ const point2 = toSlidePoint(event.clientX, event.clientY);
10403
+ setDrag({ kind: handle.kind, ...point2 });
10401
10404
  }
10402
10405
  },
10403
10406
  handle.kind
@@ -13409,7 +13412,7 @@ function SlidesPaneSidebar({
13409
13412
  [sectionGroups, showSectionHeaders, effectiveCollapsed]
13410
13413
  );
13411
13414
  const shouldVirtualize = slides.length >= VIRTUALIZATION_THRESHOLD;
13412
- const { startIndex, endIndex, totalHeight, offsetY, scrollContainerRef, scrollToIndex } = chunkGKOJO67G_js.useVirtualizedSlides({
13415
+ const { startIndex, endIndex, totalHeight, offsetY, scrollContainerRef, scrollToIndex } = chunk463BMH5Q_js.useVirtualizedSlides({
13413
13416
  totalItems: shouldVirtualize ? flatItems.length : 0,
13414
13417
  itemHeight: estimatedItemHeight
13415
13418
  });
@@ -16154,7 +16157,7 @@ function SlideNotesPanel({
16154
16157
  });
16155
16158
  const hasNotes = draft.trim().length > 0;
16156
16159
  const slideLabel = activeSlide ? t("pptx.notes.slideN", { n: activeSlide.slideNumber }) : t("pptx.notes.noSlide");
16157
- const { dragY, handlers: dragHandlers } = chunkGKOJO67G_js.useSheetDismissDrag(onToggle);
16160
+ const { dragY, handlers: dragHandlers } = chunk463BMH5Q_js.useSheetDismissDrag(onToggle);
16158
16161
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
16159
16162
  isExpanded && /* @__PURE__ */ jsxRuntime.jsx(
16160
16163
  "button",
@@ -16384,6 +16387,10 @@ function VersionHistoryPanel({
16384
16387
  setRestoringKey(null);
16385
16388
  }
16386
16389
  },
16390
+ // `onRestore`/`onClose` ARE read above (inside the `try`), but the analyzer
16391
+ // doesn't see through a try/finally block and flags them as unused;
16392
+ // verified as a false positive with a minimal repro (see useLayoutSwitching.ts).
16393
+ // oxlint-disable-next-line react/memo-dependencies -- see comment above
16387
16394
  [onRestore, onClose]
16388
16395
  );
16389
16396
  const handleDelete = React14.useCallback(
@@ -16396,6 +16403,11 @@ function VersionHistoryPanel({
16396
16403
  setDeletingKey(null);
16397
16404
  }
16398
16405
  },
16406
+ // `fetchVersions` IS read above (inside the `try`), but the analyzer
16407
+ // doesn't see through an `await` call wrapped in try/finally and flags it
16408
+ // as unused; verified as a false positive with a minimal repro (see
16409
+ // useLayoutSwitching.ts).
16410
+ // oxlint-disable-next-line react/memo-dependencies -- see comment above
16399
16411
  [fetchVersions]
16400
16412
  );
16401
16413
  if (!isOpen) {
@@ -17283,7 +17295,7 @@ function DocumentPropertiesDialog({
17283
17295
  const handleClose = React14.useCallback(() => {
17284
17296
  onClose();
17285
17297
  }, [onClose]);
17286
- const { panelStyle, handlers: dragHandlers } = chunkGKOJO67G_js.useModalDismissDrag(handleClose);
17298
+ const { panelStyle, handlers: dragHandlers } = chunk463BMH5Q_js.useModalDismissDrag(handleClose);
17287
17299
  if (!isOpen) {
17288
17300
  return null;
17289
17301
  }
@@ -18396,15 +18408,15 @@ function PresenterSlideNavigator(props) {
18396
18408
  )) })
18397
18409
  ] });
18398
18410
  }
18411
+ function point(event) {
18412
+ const rect = event.currentTarget.getBoundingClientRect();
18413
+ return {
18414
+ x: (event.clientX - rect.left) / rect.width,
18415
+ y: (event.clientY - rect.top) / rect.height
18416
+ };
18417
+ }
18399
18418
  function usePresenterInk(snapshot, onUpdate) {
18400
18419
  const drawingId = React14.useRef(null);
18401
- const point = (event) => {
18402
- const rect = event.currentTarget.getBoundingClientRect();
18403
- return {
18404
- x: (event.clientX - rect.left) / rect.width,
18405
- y: (event.clientY - rect.top) / rect.height
18406
- };
18407
- };
18408
18420
  const onPointerDown = React14.useCallback(
18409
18421
  (event) => {
18410
18422
  const pointer = snapshot.pointer;
@@ -20796,8 +20808,8 @@ function ChartDataPointMarkerOptions({
20796
20808
  )
20797
20809
  ] }),
20798
20810
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-2", children: categories.map((cat, idx) => {
20799
- const point = pointFor(idx);
20800
- const hasOverride = point?.marker !== void 0;
20811
+ const point2 = pointFor(idx);
20812
+ const hasOverride = point2?.marker !== void 0;
20801
20813
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-1", children: [
20802
20814
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2 text-[11px]", children: [
20803
20815
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex-1 truncate", title: cat, children: cat }),
@@ -20820,13 +20832,13 @@ function ChartDataPointMarkerOptions({
20820
20832
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-muted-foreground", children: t("pptx.chart.markerOverride") })
20821
20833
  ] })
20822
20834
  ] }),
20823
- hasOverride && point?.marker && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2 ml-2 flex-wrap", children: [
20835
+ hasOverride && point2?.marker && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2 ml-2 flex-wrap", children: [
20824
20836
  /* @__PURE__ */ jsxRuntime.jsx(
20825
20837
  "select",
20826
20838
  {
20827
20839
  disabled: !canEdit,
20828
20840
  className: "bg-muted border border-border rounded px-1.5 py-0.5 text-[11px]",
20829
- value: point.marker.symbol,
20841
+ value: point2.marker.symbol,
20830
20842
  onChange: (e) => onSetPointMarker(seriesIndex, idx, {
20831
20843
  symbol: e.target.value
20832
20844
  }),
@@ -20842,7 +20854,7 @@ function ChartDataPointMarkerOptions({
20842
20854
  disabled: !canEdit,
20843
20855
  title: t("pptx.chart.markerSize"),
20844
20856
  className: "w-14 bg-muted border border-border rounded px-1.5 py-0.5 text-[11px]",
20845
- value: point.marker.size ?? "",
20857
+ value: point2.marker.size ?? "",
20846
20858
  placeholder: t("pptx.chart.auto"),
20847
20859
  onChange: (e) => {
20848
20860
  const num = Number.parseInt(e.target.value, 10);
@@ -20859,7 +20871,7 @@ function ChartDataPointMarkerOptions({
20859
20871
  disabled: !canEdit,
20860
20872
  title: t("pptx.chart.markerFill"),
20861
20873
  className: "h-6 w-8 cursor-pointer rounded border border-border bg-transparent",
20862
- value: point.marker.spPr?.fillColor ?? "#4472c4",
20874
+ value: point2.marker.spPr?.fillColor ?? "#4472c4",
20863
20875
  onChange: (e) => onSetPointMarker(seriesIndex, idx, { fillColor: e.target.value })
20864
20876
  }
20865
20877
  )
@@ -20902,7 +20914,7 @@ function ChartDataPointOptions({
20902
20914
  )
20903
20915
  ] }),
20904
20916
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-1.5", children: categories.map((cat, idx) => {
20905
- const point = pointFor(idx);
20917
+ const point2 = pointFor(idx);
20906
20918
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2 text-[11px]", children: [
20907
20919
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex-1 truncate", title: cat, children: cat }),
20908
20920
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -20927,11 +20939,11 @@ function ChartDataPointOptions({
20927
20939
  disabled: !canEdit,
20928
20940
  title: t("pptx.chart.pointFill"),
20929
20941
  className: "h-6 w-8 cursor-pointer rounded border border-border bg-transparent",
20930
- value: point?.spPr?.fillColor ?? activeSeries.color ?? "#4472c4",
20942
+ value: point2?.spPr?.fillColor ?? activeSeries.color ?? "#4472c4",
20931
20943
  onChange: (e) => onSetPointFill(seriesIndex, idx, e.target.value)
20932
20944
  }
20933
20945
  ),
20934
- point?.spPr?.fillColor && /* @__PURE__ */ jsxRuntime.jsx(
20946
+ point2?.spPr?.fillColor && /* @__PURE__ */ jsxRuntime.jsx(
20935
20947
  "button",
20936
20948
  {
20937
20949
  type: "button",
@@ -20951,7 +20963,7 @@ function ChartDataPointOptions({
20951
20963
  disabled: !canEdit,
20952
20964
  title: t("pptx.chart.pointExplosion"),
20953
20965
  className: "w-14 bg-muted border border-border rounded px-1.5 py-0.5",
20954
- value: point?.explosion ?? "",
20966
+ value: point2?.explosion ?? "",
20955
20967
  placeholder: "0",
20956
20968
  onChange: (e) => {
20957
20969
  const raw = e.target.value;
@@ -29001,7 +29013,7 @@ function InspectorPane(props) {
29001
29013
  } = props;
29002
29014
  const hasSelection = selectedElement !== null;
29003
29015
  const { t } = reactI18next.useTranslation();
29004
- const { dragY, handlers: dragHandlers } = chunkGKOJO67G_js.useSheetDismissDrag(onClose);
29016
+ const { dragY, handlers: dragHandlers } = chunk463BMH5Q_js.useSheetDismissDrag(onClose);
29005
29017
  const {
29006
29018
  animationPanelHeight,
29007
29019
  effectiveThemeOptions,
@@ -29689,7 +29701,7 @@ function PresentationTouchControls({
29689
29701
  hideNavigation = false
29690
29702
  }) {
29691
29703
  const { t } = reactI18next.useTranslation();
29692
- const { isTouchDevice } = chunkGKOJO67G_js.useIsMobile();
29704
+ const { isTouchDevice } = chunk463BMH5Q_js.useIsMobile();
29693
29705
  if (!isTouchDevice) {
29694
29706
  return null;
29695
29707
  }
@@ -30527,7 +30539,7 @@ function PrintDialog({
30527
30539
  defaultFrameSlides
30528
30540
  }) {
30529
30541
  const { t } = reactI18next.useTranslation();
30530
- const { panelStyle, handlers: dragHandlers } = chunkGKOJO67G_js.useModalDismissDrag(onClose);
30542
+ const { panelStyle, handlers: dragHandlers } = chunk463BMH5Q_js.useModalDismissDrag(onClose);
30531
30543
  const [printWhat, setPrintWhat] = React14.useState("slides");
30532
30544
  const [orientation, setOrientation] = React14.useState("landscape");
30533
30545
  const [colorMode, setColorMode] = React14.useState("color");
@@ -31056,7 +31068,7 @@ function BroadcastDialog({
31056
31068
  const [serverUrl, setServerUrl] = React14.useState("");
31057
31069
  const [copied, setCopied] = React14.useState(false);
31058
31070
  const dialogRef = React14.useRef(null);
31059
- const { panelStyle, handlers: dragHandlers } = chunkGKOJO67G_js.useModalDismissDrag(onClose);
31071
+ const { panelStyle, handlers: dragHandlers } = chunk463BMH5Q_js.useModalDismissDrag(onClose);
31060
31072
  useModalFocus(open, dialogRef, onClose);
31061
31073
  React14.useEffect(() => {
31062
31074
  if (open && !isBroadcasting) {
@@ -31600,7 +31612,7 @@ function ShareDialog({
31600
31612
  const [invitation, setInvitation] = React14.useState("");
31601
31613
  const [copied, setCopied] = React14.useState(false);
31602
31614
  const dialogRef = React14.useRef(null);
31603
- const { panelStyle, handlers: dragHandlers } = chunkGKOJO67G_js.useModalDismissDrag(onClose);
31615
+ const { panelStyle, handlers: dragHandlers } = chunk463BMH5Q_js.useModalDismissDrag(onClose);
31604
31616
  useModalFocus(open, dialogRef, onClose);
31605
31617
  React14.useEffect(() => {
31606
31618
  if (activeCollaboration) {
@@ -31875,12 +31887,12 @@ function HyperlinkEditDialog({
31875
31887
  onCancel
31876
31888
  }) {
31877
31889
  const { t } = reactI18next.useTranslation();
31878
- const { panelStyle, handlers: dragHandlers } = chunkGKOJO67G_js.useModalDismissDrag(onCancel);
31890
+ const { panelStyle, handlers: dragHandlers } = chunk463BMH5Q_js.useModalDismissDrag(onCancel);
31879
31891
  const inputRef = React14.useRef(null);
31880
- const detectedType = chunkGKOJO67G_js.detectTargetType(initialUrl, initialAction);
31881
- const emailParts = chunkGKOJO67G_js.parseEmailUrl(initialUrl || "");
31882
- const detectedSlide = chunkGKOJO67G_js.parseSlideFromUrl(initialUrl, initialAction);
31883
- const detectedVerb = initialAction ? chunkGKOJO67G_js.ACTION_VERB_MAP[initialAction.toLowerCase()] || "nextSlide" : "nextSlide";
31892
+ const detectedType = chunk463BMH5Q_js.detectTargetType(initialUrl, initialAction);
31893
+ const emailParts = chunk463BMH5Q_js.parseEmailUrl(initialUrl || "");
31894
+ const detectedSlide = chunk463BMH5Q_js.parseSlideFromUrl(initialUrl, initialAction);
31895
+ const detectedVerb = initialAction ? chunk463BMH5Q_js.ACTION_VERB_MAP[initialAction.toLowerCase()] || "nextSlide" : "nextSlide";
31884
31896
  const [targetType, setTargetType] = React14.useState(detectedType);
31885
31897
  const [url, setUrl] = React14.useState(
31886
31898
  detectedType === "email" || detectedType === "slide" || detectedType === "action" ? "" : initialUrl || ""
@@ -32156,7 +32168,7 @@ function ViewerBottomPanels({
32156
32168
  hideStatusBar = false,
32157
32169
  hiddenActions
32158
32170
  }) {
32159
- const { isHidden } = chunkGKOJO67G_js.useToolbarVisibility(hiddenActions);
32171
+ const { isHidden } = chunk463BMH5Q_js.useToolbarVisibility(hiddenActions);
32160
32172
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
32161
32173
  onResizeBottom && !isSlideNotesCollapsed && /* @__PURE__ */ jsxRuntime.jsx(ResizeHandle, { direction: "vertical", onResize: onResizeBottom }),
32162
32174
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -32378,7 +32390,7 @@ function TitleBarQuickExtras(p) {
32378
32390
  function TitleBar(p) {
32379
32391
  const { t } = reactI18next.useTranslation();
32380
32392
  const editing = (p.mode === "edit" || p.mode === "master") && p.canEdit;
32381
- const { isHidden } = chunkGKOJO67G_js.useToolbarVisibility(p.hiddenActions);
32393
+ const { isHidden } = chunk463BMH5Q_js.useToolbarVisibility(p.hiddenActions);
32382
32394
  const quickAccess = useViewerOptionsContext().quickAccess;
32383
32395
  const [searchQuery, setSearchQuery] = React14.useState("");
32384
32396
  const [searchFocused, setSearchFocused] = React14.useState(false);
@@ -32672,7 +32684,7 @@ function ViewerToolbarSection(props) {
32672
32684
  [activeSlide, propertyHandlers]
32673
32685
  );
32674
32686
  const scopedLayoutOptions = React14__default.default.useMemo(
32675
- () => chunkGKOJO67G_js.scopeLayoutOptionsToActiveSlide(s.layoutOptions, activeSlide),
32687
+ () => chunk463BMH5Q_js.scopeLayoutOptionsToActiveSlide(s.layoutOptions, activeSlide),
32676
32688
  [s.layoutOptions, activeSlide]
32677
32689
  );
32678
32690
  const handleResetSlide = React14.useCallback(() => {
@@ -33146,7 +33158,7 @@ function EquationEditorDialog({
33146
33158
  existingOmml
33147
33159
  }) {
33148
33160
  const { t } = reactI18next.useTranslation();
33149
- const { panelStyle, handlers: dragHandlers } = chunkGKOJO67G_js.useModalDismissDrag(onClose);
33161
+ const { panelStyle, handlers: dragHandlers } = chunk463BMH5Q_js.useModalDismissDrag(onClose);
33150
33162
  const initialLatex = React14.useMemo(() => {
33151
33163
  if (!existingOmml) {
33152
33164
  return "";
@@ -33367,7 +33379,7 @@ function InsertSmartArtDialog({
33367
33379
  onInsert
33368
33380
  }) {
33369
33381
  const { t } = reactI18next.useTranslation();
33370
- const { panelStyle, handlers: dragHandlers } = chunkGKOJO67G_js.useModalDismissDrag(onClose);
33382
+ const { panelStyle, handlers: dragHandlers } = chunk463BMH5Q_js.useModalDismissDrag(onClose);
33371
33383
  const [activeCategory, setActiveCategory] = React14.useState("list");
33372
33384
  const [selectedLayout, setSelectedLayout] = React14.useState(null);
33373
33385
  const dialogRef = React14.useRef(null);
@@ -34070,7 +34082,7 @@ function ViewerCanvasArea(props) {
34070
34082
  aiCanvasActive = false
34071
34083
  } = props;
34072
34084
  const { t } = reactI18next.useTranslation();
34073
- const { isHidden } = chunkGKOJO67G_js.useToolbarVisibility(hiddenActions);
34085
+ const { isHidden } = chunk463BMH5Q_js.useToolbarVisibility(hiddenActions);
34074
34086
  const viewerOptions = useViewerOptionsContext();
34075
34087
  const effectiveSlide = mode === "master" ? masterPseudoSlide : activeSlide;
34076
34088
  const effectiveTemplateElements = mode === "master" ? [] : templateElements;
@@ -34198,7 +34210,7 @@ ${url}`)) {
34198
34210
  s.setActiveSlideIndex((i) => Math.max(0, i - 1));
34199
34211
  }
34200
34212
  }, [mode, presentation, s]);
34201
- const swipe = chunkGKOJO67G_js.useSwipeNavigation({
34213
+ const swipe = chunk463BMH5Q_js.useSwipeNavigation({
34202
34214
  enabled: swipeEnabled,
34203
34215
  onNext: handleSwipeNext,
34204
34216
  onPrev: handleSwipePrev
@@ -34976,7 +34988,7 @@ function MobileDismissSheet({
34976
34988
  className,
34977
34989
  children
34978
34990
  }) {
34979
- const { dragY, handlers } = chunkGKOJO67G_js.useSheetDismissDrag(onClose);
34991
+ const { dragY, handlers } = chunk463BMH5Q_js.useSheetDismissDrag(onClose);
34980
34992
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
34981
34993
  /* @__PURE__ */ jsxRuntime.jsx(
34982
34994
  "button",
@@ -35856,26 +35868,28 @@ function AutosaveRecoveryDialog({
35856
35868
  }
35857
35869
  );
35858
35870
  }
35859
- var ToggleRow = ({ checked, onChange, icon, label }) => /* @__PURE__ */ jsxRuntime.jsxs("label", { className: "flex items-center gap-2.5 cursor-pointer group select-none", children: [
35860
- /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "relative flex items-center justify-center w-4 h-4", children: [
35861
- /* @__PURE__ */ jsxRuntime.jsx(
35862
- "input",
35863
- {
35864
- type: "checkbox",
35865
- checked,
35866
- onChange: (e) => onChange(e.target.checked),
35867
- className: "peer sr-only"
35868
- }
35869
- ),
35870
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "absolute inset-0 rounded border border-border bg-muted transition-colors peer-checked:border-primary peer-checked:bg-primary peer-focus-visible:ring-2 peer-focus-visible:ring-primary/50" }),
35871
- checked && /* @__PURE__ */ jsxRuntime.jsx(lu.LuCheck, { className: "relative z-10 w-3 h-3 text-white" })
35872
- ] }),
35873
- /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "flex items-center gap-1.5 text-xs text-foreground group-hover:text-foreground transition-colors", children: [
35874
- icon,
35875
- label
35876
- ] })
35877
- ] });
35878
- var HeaderFooterPanel = ({
35871
+ function ToggleRow({ checked, onChange, icon, label }) {
35872
+ return /* @__PURE__ */ jsxRuntime.jsxs("label", { className: "flex items-center gap-2.5 cursor-pointer group select-none", children: [
35873
+ /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "relative flex items-center justify-center w-4 h-4", children: [
35874
+ /* @__PURE__ */ jsxRuntime.jsx(
35875
+ "input",
35876
+ {
35877
+ type: "checkbox",
35878
+ checked,
35879
+ onChange: (e) => onChange(e.target.checked),
35880
+ className: "peer sr-only"
35881
+ }
35882
+ ),
35883
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "absolute inset-0 rounded border border-border bg-muted transition-colors peer-checked:border-primary peer-checked:bg-primary peer-focus-visible:ring-2 peer-focus-visible:ring-primary/50" }),
35884
+ checked && /* @__PURE__ */ jsxRuntime.jsx(lu.LuCheck, { className: "relative z-10 w-3 h-3 text-white" })
35885
+ ] }),
35886
+ /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "flex items-center gap-1.5 text-xs text-foreground group-hover:text-foreground transition-colors", children: [
35887
+ icon,
35888
+ label
35889
+ ] })
35890
+ ] });
35891
+ }
35892
+ function HeaderFooterPanel({
35879
35893
  showDateTime,
35880
35894
  showSlideNumber,
35881
35895
  showFooter,
@@ -35887,7 +35901,7 @@ var HeaderFooterPanel = ({
35887
35901
  onApplyToAll,
35888
35902
  onApplyToCurrent,
35889
35903
  onClose
35890
- }) => {
35904
+ }) {
35891
35905
  const handleFooterTextChange = React14.useCallback(
35892
35906
  (e) => {
35893
35907
  onSetFooterText(e.target.value);
@@ -35969,7 +35983,7 @@ var HeaderFooterPanel = ({
35969
35983
  )
35970
35984
  ] })
35971
35985
  ] }) });
35972
- };
35986
+ }
35973
35987
  function isActionKey(key) {
35974
35988
  return key === "slides" || key === "insert" || key === "inspector" || key === "comments" || key === "notes";
35975
35989
  }
@@ -36078,7 +36092,7 @@ function MobileChromeOverlay(props) {
36078
36092
  slideSectionGroups,
36079
36093
  canEdit,
36080
36094
  commentCount
36081
- } = props, { keyboardInset, isKeyboardOpen } = chunkGKOJO67G_js.useKeyboardInsets(), activeSheet = s.isSlidesPaneOpen ? "slides" : s.isInspectorPaneOpen ? s.sidebarPanelMode === "comments" ? "comments" : "inspector" : !s.isSlideNotesCollapsed ? "notes" : null, closeAllSheets = () => {
36095
+ } = props, { keyboardInset, isKeyboardOpen } = chunk463BMH5Q_js.useKeyboardInsets(), activeSheet = s.isSlidesPaneOpen ? "slides" : s.isInspectorPaneOpen ? s.sidebarPanelMode === "comments" ? "comments" : "inspector" : !s.isSlideNotesCollapsed ? "notes" : null, closeAllSheets = () => {
36082
36096
  s.setIsSlidesPaneOpen(false);
36083
36097
  s.setIsInspectorPaneOpen(false);
36084
36098
  s.setIsSlideNotesCollapsed(true);
@@ -36714,10 +36728,10 @@ async function exportAiChatLogs(options) {
36714
36728
  const slug = timestampSlug(now);
36715
36729
  if (format === "markdown") {
36716
36730
  const blob = new Blob([buildChatLogMarkdown(doc)], { type: "text/markdown" });
36717
- chunkGKOJO67G_js.downloadBlob(blob, `pptx-ai-chats-${slug}.md`);
36731
+ chunk463BMH5Q_js.downloadBlob(blob, `pptx-ai-chats-${slug}.md`);
36718
36732
  } else {
36719
36733
  const blob = new Blob([JSON.stringify(doc, null, 2)], { type: "application/json" });
36720
- chunkGKOJO67G_js.downloadBlob(blob, `pptx-ai-chats-${slug}.json`);
36734
+ chunk463BMH5Q_js.downloadBlob(blob, `pptx-ai-chats-${slug}.json`);
36721
36735
  }
36722
36736
  return chats.length;
36723
36737
  }
@@ -36962,7 +36976,7 @@ function SettingsDialog({
36962
36976
  }) {
36963
36977
  const [activeTabId, setActiveTabId] = React14.useState("general");
36964
36978
  const { t } = reactI18next.useTranslation();
36965
- const { panelStyle, handlers: dragHandlers } = chunkGKOJO67G_js.useModalDismissDrag(onClose);
36979
+ const { panelStyle, handlers: dragHandlers } = chunk463BMH5Q_js.useModalDismissDrag(onClose);
36966
36980
  const snapshotRef = React14.useRef(null);
36967
36981
  const wasOpenRef = React14.useRef(false);
36968
36982
  React14.useEffect(() => {
@@ -37682,8 +37696,8 @@ var PowerPointViewer = React14.forwardRef(
37682
37696
  filePath
37683
37697
  });
37684
37698
  const [isShareDialogOpen, setIsShareDialogOpen] = React14.useState(false);
37685
- const { reducedMotion, toggleReducedMotion } = chunkGKOJO67G_js.useReducedMotion();
37686
- const state = chunkGKOJO67G_js.useViewerState({ content, canEdit });
37699
+ const { reducedMotion, toggleReducedMotion } = chunk463BMH5Q_js.useReducedMotion();
37700
+ const state = chunk463BMH5Q_js.useViewerState({ content, canEdit });
37687
37701
  const {
37688
37702
  containerRef,
37689
37703
  mode,
@@ -37743,7 +37757,7 @@ var PowerPointViewer = React14.forwardRef(
37743
37757
  },
37744
37758
  [state, reducedMotion, toggleReducedMotion]
37745
37759
  );
37746
- const { optionsStore, options: viewerOptions } = chunkGKOJO67G_js.useViewerOptions();
37760
+ const { optionsStore, options: viewerOptions } = chunk463BMH5Q_js.useViewerOptions();
37747
37761
  const settingsRef = React14.useRef(settings);
37748
37762
  settingsRef.current = settings;
37749
37763
  const handleSettingsChangeRef = React14.useRef(handleSettingsChange);
@@ -37788,10 +37802,10 @@ var PowerPointViewer = React14.forwardRef(
37788
37802
  await Promise.all(snapshots.map((entry) => chunk4Z4HEIP5_js.deleteAutosaveSnapshot(entry.key)));
37789
37803
  })();
37790
37804
  }, []);
37791
- const mobile = chunkGKOJO67G_js.useIsMobile({ containerRef });
37805
+ const mobile = chunk463BMH5Q_js.useIsMobile({ containerRef });
37792
37806
  const { isMobile, isTouchDevice, isVirtualKeyboardOpen } = mobile;
37793
- const resizablePanels = chunkGKOJO67G_js.useResizablePanels();
37794
- const { gridSpacingPx, visibleSlideIndexes, slideSectionGroups, masterPseudoSlide } = chunkGKOJO67G_js.useDerivedSlideState({
37807
+ const resizablePanels = chunk463BMH5Q_js.useResizablePanels();
37808
+ const { gridSpacingPx, visibleSlideIndexes, slideSectionGroups, masterPseudoSlide } = chunk463BMH5Q_js.useDerivedSlideState({
37795
37809
  slides,
37796
37810
  sections: state.sections,
37797
37811
  customShows: state.customShows,
@@ -37814,7 +37828,7 @@ var PowerPointViewer = React14.forwardRef(
37814
37828
  state.isDrawingRef
37815
37829
  ]
37816
37830
  );
37817
- const zoom = chunkGKOJO67G_js.useZoomViewport({
37831
+ const zoom = chunk463BMH5Q_js.useZoomViewport({
37818
37832
  canvasSize,
37819
37833
  selectedElements: state.selectedElements
37820
37834
  });
@@ -37822,7 +37836,7 @@ var PowerPointViewer = React14.forwardRef(
37822
37836
  const markDocumentDirty = React14.useCallback(() => {
37823
37837
  setIsDirty(true);
37824
37838
  }, [setIsDirty]);
37825
- const history = chunkGKOJO67G_js.useEditorHistory({
37839
+ const history = chunk463BMH5Q_js.useEditorHistory({
37826
37840
  slides,
37827
37841
  canvasSize,
37828
37842
  activeSlideIndex,
@@ -37845,7 +37859,7 @@ var PowerPointViewer = React14.forwardRef(
37845
37859
  setEditTemplateMode: state.setEditTemplateMode,
37846
37860
  setHeaderFooter: state.setHeaderFooter
37847
37861
  });
37848
- const { presentation, annotations, actionSoundHandlerRef } = chunkGKOJO67G_js.usePresentationSetup({
37862
+ const { presentation, annotations, actionSoundHandlerRef } = chunk463BMH5Q_js.usePresentationSetup({
37849
37863
  mode,
37850
37864
  slides,
37851
37865
  visibleSlideIndexes,
@@ -37868,7 +37882,7 @@ var PowerPointViewer = React14.forwardRef(
37868
37882
  showSubtitles: !prev.showSubtitles
37869
37883
  }))
37870
37884
  });
37871
- chunkGKOJO67G_js.useTouchGestures({
37885
+ chunk463BMH5Q_js.useTouchGestures({
37872
37886
  targetRef: zoom.canvasViewportRef,
37873
37887
  currentScale: zoom.scale,
37874
37888
  callbacks: {
@@ -37890,7 +37904,7 @@ var PowerPointViewer = React14.forwardRef(
37890
37904
  },
37891
37905
  enabled: isTouchDevice
37892
37906
  });
37893
- const dialogs = chunkGKOJO67G_js.useViewerDialogs({
37907
+ const dialogs = chunk463BMH5Q_js.useViewerDialogs({
37894
37908
  mode,
37895
37909
  slides,
37896
37910
  activeSlide,
@@ -37932,7 +37946,7 @@ var PowerPointViewer = React14.forwardRef(
37932
37946
  zoom.handleZoomToFit();
37933
37947
  zoom.canvasViewportRef.current?.scrollTo({ left: 0, top: 0 });
37934
37948
  }, [mode]);
37935
- const editorOps = chunkGKOJO67G_js.useEditorOperations({
37949
+ const editorOps = chunk463BMH5Q_js.useEditorOperations({
37936
37950
  state,
37937
37951
  history,
37938
37952
  zoom,
@@ -37967,7 +37981,7 @@ var PowerPointViewer = React14.forwardRef(
37967
37981
  setIsEncryptedDialogOpen,
37968
37982
  handlerRef,
37969
37983
  loadVersion
37970
- } = chunkGKOJO67G_js.useViewerIntegration({
37984
+ } = chunk463BMH5Q_js.useViewerIntegration({
37971
37985
  state,
37972
37986
  zoom,
37973
37987
  history,
@@ -38011,7 +38025,7 @@ var PowerPointViewer = React14.forwardRef(
38011
38025
  },
38012
38026
  [state]
38013
38027
  );
38014
- const layoutSwitching = chunkGKOJO67G_js.useLayoutSwitching({
38028
+ const layoutSwitching = chunk463BMH5Q_js.useLayoutSwitching({
38015
38029
  handler: handlerRef.current,
38016
38030
  slides,
38017
38031
  activeSlideIndex,
@@ -38449,7 +38463,7 @@ function CollaborationDocumentSync({
38449
38463
  }
38450
38464
  return bytes instanceof Uint8Array ? bytes : new Uint8Array(bytes);
38451
38465
  }, []);
38452
- chunkGKOJO67G_js.useYjsDocumentSync({
38466
+ chunk463BMH5Q_js.useYjsDocumentSync({
38453
38467
  doc: collab?.doc ?? null,
38454
38468
  slides,
38455
38469
  templateElementsBySlideId,
@@ -38461,7 +38475,7 @@ function CollaborationDocumentSync({
38461
38475
  loadVersion,
38462
38476
  loadOrigin
38463
38477
  });
38464
- chunkGKOJO67G_js.useCollaborationLivePatch({
38478
+ chunk463BMH5Q_js.useCollaborationLivePatch({
38465
38479
  patcher: livePatcher,
38466
38480
  doc: collab?.doc ?? null,
38467
38481
  isConnected: collab?.status === "connected",
@@ -38475,13 +38489,13 @@ function CollaborationFollowLayer({
38475
38489
  slideCount
38476
38490
  }) {
38477
38491
  const collab = useCollaboration();
38478
- const { followedClientId, followUser } = chunkGKOJO67G_js.useFollowMode({
38492
+ const { followedClientId, followUser } = chunk463BMH5Q_js.useFollowMode({
38479
38493
  collab,
38480
38494
  activeSlideIndex,
38481
38495
  setActiveSlideIndex,
38482
38496
  slideCount
38483
38497
  });
38484
- chunkGKOJO67G_js.useBroadcastFollower({
38498
+ chunk463BMH5Q_js.useBroadcastFollower({
38485
38499
  collab,
38486
38500
  activeSlideIndex,
38487
38501
  setActiveSlideIndex,