pptx-react-viewer 2.19.5 → 2.19.7

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 (89) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/dist/{AiChatPanel-F4X3OZFG.js → AiChatPanel-MAC2Z5SK.js} +23 -23
  3. package/dist/AiChatPanel-MAC2Z5SK.js.br +0 -0
  4. package/dist/AiChatPanel-MAC2Z5SK.js.gz +0 -0
  5. package/dist/{AiChatPanel-P663354U.mjs → AiChatPanel-WVO66CKC.mjs} +3 -3
  6. package/dist/AiChatPanel-WVO66CKC.mjs.br +0 -0
  7. package/dist/AiChatPanel-WVO66CKC.mjs.gz +0 -0
  8. package/dist/{Model3DScene-TGGZF6XI.js → Model3DScene-CU4WGIMH.js} +2 -2
  9. package/dist/Model3DScene-CU4WGIMH.js.br +0 -0
  10. package/dist/Model3DScene-CU4WGIMH.js.gz +0 -0
  11. package/dist/{Model3DScene-F6FAHPW7.mjs → Model3DScene-PTCZUGIT.mjs} +1 -1
  12. package/dist/{Model3DScene-F6FAHPW7.mjs.br → Model3DScene-PTCZUGIT.mjs.br} +0 -0
  13. package/dist/Model3DScene-PTCZUGIT.mjs.gz +0 -0
  14. package/dist/{chunk-GNSYA6W3.mjs → chunk-5BG5BANR.mjs} +31 -50
  15. package/dist/chunk-5BG5BANR.mjs.br +0 -0
  16. package/dist/chunk-5BG5BANR.mjs.gz +0 -0
  17. package/dist/{chunk-FWX6HUVA.mjs → chunk-DZHCLAH3.mjs} +1 -1
  18. package/dist/chunk-DZHCLAH3.mjs.br +0 -0
  19. package/dist/chunk-DZHCLAH3.mjs.gz +0 -0
  20. package/dist/{chunk-PEGZP2W2.js → chunk-EVM5OFAD.js} +3 -3
  21. package/dist/chunk-EVM5OFAD.js.br +0 -0
  22. package/dist/chunk-EVM5OFAD.js.gz +0 -0
  23. package/dist/{chunk-IJY5WNZK.js → chunk-GUGHIQ4P.js} +169 -31
  24. package/dist/chunk-GUGHIQ4P.js.br +0 -0
  25. package/dist/chunk-GUGHIQ4P.js.gz +0 -0
  26. package/dist/{chunk-C4LQ7ZWL.js → chunk-JENKEQZP.js} +1045 -1064
  27. package/dist/chunk-JENKEQZP.js.br +0 -0
  28. package/dist/chunk-JENKEQZP.js.gz +0 -0
  29. package/dist/{chunk-3WR2D4AJ.mjs → chunk-LP3Y4NXE.mjs} +2 -2
  30. package/dist/chunk-LP3Y4NXE.mjs.br +0 -0
  31. package/dist/chunk-LP3Y4NXE.mjs.gz +0 -0
  32. package/dist/{chunk-2HNIYZ3O.mjs → chunk-QZV7XDQG.mjs} +1 -1
  33. package/dist/chunk-QZV7XDQG.mjs.br +0 -0
  34. package/dist/chunk-QZV7XDQG.mjs.gz +0 -0
  35. package/dist/{chunk-D4LINQVA.js → chunk-V5PW4QCE.js} +146 -146
  36. package/dist/chunk-V5PW4QCE.js.br +0 -0
  37. package/dist/chunk-V5PW4QCE.js.gz +0 -0
  38. package/dist/{chunk-FDZNVVQ7.js → chunk-XDF76VFA.js} +373 -373
  39. package/dist/chunk-XDF76VFA.js.br +0 -0
  40. package/dist/chunk-XDF76VFA.js.gz +0 -0
  41. package/dist/{chunk-J3JFXIDN.mjs → chunk-ZPNLWBED.mjs} +169 -32
  42. package/dist/chunk-ZPNLWBED.mjs.br +0 -0
  43. package/dist/chunk-ZPNLWBED.mjs.gz +0 -0
  44. package/dist/index.js +45 -45
  45. package/dist/index.js.br +0 -0
  46. package/dist/index.js.gz +0 -0
  47. package/dist/index.mjs +5 -5
  48. package/dist/index.mjs.br +0 -0
  49. package/dist/index.mjs.gz +0 -0
  50. package/dist/internals.js +78 -78
  51. package/dist/internals.js.br +0 -0
  52. package/dist/internals.js.gz +0 -0
  53. package/dist/internals.mjs +3 -3
  54. package/dist/internals.mjs.br +0 -0
  55. package/dist/internals.mjs.gz +0 -0
  56. package/dist/viewer/index.js +26 -26
  57. package/dist/viewer/index.js.br +0 -0
  58. package/dist/viewer/index.js.gz +0 -0
  59. package/dist/viewer/index.mjs +5 -5
  60. package/dist/viewer/index.mjs.br +0 -0
  61. package/dist/viewer/index.mjs.gz +0 -0
  62. package/package.json +1 -1
  63. package/dist/AiChatPanel-F4X3OZFG.js.br +0 -0
  64. package/dist/AiChatPanel-F4X3OZFG.js.gz +0 -0
  65. package/dist/AiChatPanel-P663354U.mjs.br +0 -0
  66. package/dist/AiChatPanel-P663354U.mjs.gz +0 -0
  67. package/dist/Model3DScene-F6FAHPW7.mjs.gz +0 -0
  68. package/dist/Model3DScene-TGGZF6XI.js.br +0 -0
  69. package/dist/Model3DScene-TGGZF6XI.js.gz +0 -0
  70. package/dist/chunk-2HNIYZ3O.mjs.br +0 -0
  71. package/dist/chunk-2HNIYZ3O.mjs.gz +0 -0
  72. package/dist/chunk-3WR2D4AJ.mjs.br +0 -0
  73. package/dist/chunk-3WR2D4AJ.mjs.gz +0 -0
  74. package/dist/chunk-C4LQ7ZWL.js.br +0 -0
  75. package/dist/chunk-C4LQ7ZWL.js.gz +0 -0
  76. package/dist/chunk-D4LINQVA.js.br +0 -0
  77. package/dist/chunk-D4LINQVA.js.gz +0 -0
  78. package/dist/chunk-FDZNVVQ7.js.br +0 -0
  79. package/dist/chunk-FDZNVVQ7.js.gz +0 -0
  80. package/dist/chunk-FWX6HUVA.mjs.br +0 -0
  81. package/dist/chunk-FWX6HUVA.mjs.gz +0 -0
  82. package/dist/chunk-GNSYA6W3.mjs.br +0 -0
  83. package/dist/chunk-GNSYA6W3.mjs.gz +0 -0
  84. package/dist/chunk-IJY5WNZK.js.br +0 -0
  85. package/dist/chunk-IJY5WNZK.js.gz +0 -0
  86. package/dist/chunk-J3JFXIDN.mjs.br +0 -0
  87. package/dist/chunk-J3JFXIDN.mjs.gz +0 -0
  88. package/dist/chunk-PEGZP2W2.js.br +0 -0
  89. package/dist/chunk-PEGZP2W2.js.gz +0 -0
package/CHANGELOG.md CHANGED
@@ -7,6 +7,26 @@ A release listed with no entries carried no Conventional Commit in this package'
7
7
  scope: scripts/release-plan.mjs re-releases a package whenever any of its files
8
8
  change, not only on conventional ones.
9
9
 
10
+ ## [2.19.6](https://github.com/ChristopherVR/pptx-viewer/releases/tag/pptx-react-viewer@2.19.6) - 2026-08-19
11
+
12
+ ### Bug Fixes
13
+
14
+ - **shared:** Add collaboration-active-session connected-users view-model (by @ChristopherVR) ([7add165](https://github.com/ChristopherVR/pptx-viewer/commit/7add165d14ae855889bd9aedac13e859b86d2274))
15
+
16
+ ### Refactor
17
+
18
+ - **react:** Source the Share dialog user list from shared (by @ChristopherVR) ([bd41a14](https://github.com/ChristopherVR/pptx-viewer/commit/bd41a1440b4f33b0d68616ae141e4c89bd5a4f50))
19
+
20
+ ## [2.19.5](https://github.com/ChristopherVR/pptx-viewer/releases/tag/pptx-react-viewer@2.19.5) - 2026-08-19
21
+
22
+ ### Dependencies
23
+
24
+ - **deps:** Update y-websocket requirement from ^3.0.0 to ^3.1.0 ([#169](https://github.com/ChristopherVR/pptx-viewer/issues/169)) (by @dependabot[bot]) ([7e9c5a5](https://github.com/ChristopherVR/pptx-viewer/commit/7e9c5a51a7cb46df36223df4f91f192200562871))
25
+
26
+ ### Chores
27
+
28
+ - **deps-dev:** Bump the minor-and-patch group with 2 updates ([#162](https://github.com/ChristopherVR/pptx-viewer/issues/162)) (by @dependabot[bot]) ([2645f25](https://github.com/ChristopherVR/pptx-viewer/commit/2645f258a35282b61960c30649f216e583879f12))
29
+
10
30
  ## [2.19.4](https://github.com/ChristopherVR/pptx-viewer/releases/tag/pptx-react-viewer@2.19.4) - 2026-08-14
11
31
 
12
32
  ### Bug Fixes
@@ -1,9 +1,9 @@
1
1
  'use strict';
2
2
 
3
- var chunkPEGZP2W2_js = require('./chunk-PEGZP2W2.js');
4
- var chunkD4LINQVA_js = require('./chunk-D4LINQVA.js');
3
+ var chunkEVM5OFAD_js = require('./chunk-EVM5OFAD.js');
4
+ var chunkV5PW4QCE_js = require('./chunk-V5PW4QCE.js');
5
5
  require('./chunk-MVKRI3CZ.js');
6
- require('./chunk-IJY5WNZK.js');
6
+ require('./chunk-GUGHIQ4P.js');
7
7
  require('./chunk-4VNS5WPM.js');
8
8
  var react = require('react');
9
9
  var reactI18next = require('react-i18next');
@@ -23,7 +23,7 @@ function useAiChat(bridge, config) {
23
23
  setInitError(void 0);
24
24
  void (async () => {
25
25
  try {
26
- const available = await chunkPEGZP2W2_js.isAiAvailable();
26
+ const available = await chunkEVM5OFAD_js.isAiAvailable();
27
27
  if (cancelled) {
28
28
  return;
29
29
  }
@@ -31,7 +31,7 @@ function useAiChat(bridge, config) {
31
31
  setState("unavailable");
32
32
  return;
33
33
  }
34
- const built = await chunkPEGZP2W2_js.createAiChatSession(bridge, configRef.current);
34
+ const built = await chunkEVM5OFAD_js.createAiChatSession(bridge, configRef.current);
35
35
  if (cancelled) {
36
36
  return;
37
37
  }
@@ -137,7 +137,7 @@ function withDeckContext(inner, bridge, strategy) {
137
137
  }
138
138
  let context = "";
139
139
  try {
140
- context = await chunkPEGZP2W2_js.buildDeckContext(bridge, { strategy, focus: {} });
140
+ context = await chunkEVM5OFAD_js.buildDeckContext(bridge, { strategy, focus: {} });
141
141
  } catch {
142
142
  context = "";
143
143
  }
@@ -200,7 +200,7 @@ function useAiConversation(useChat, session, config, bridge, options = {}) {
200
200
  continue;
201
201
  }
202
202
  seen.add(call.toolCallId);
203
- onToolTargetRef.current?.(chunkPEGZP2W2_js.toolCanvasTarget(call.toolName, call.input));
203
+ onToolTargetRef.current?.(chunkEVM5OFAD_js.toolCanvasTarget(call.toolName, call.input));
204
204
  }
205
205
  }, [chat.messages]);
206
206
  const send = react.useCallback(
@@ -276,7 +276,7 @@ function deriveTitle(messages) {
276
276
  }
277
277
  function useAiHistory(input) {
278
278
  const { deckId, messages, setMessages } = input;
279
- const store = react.useMemo(() => input.store ?? chunkPEGZP2W2_js.createChatHistoryStore(), [input.store]);
279
+ const store = react.useMemo(() => input.store ?? chunkEVM5OFAD_js.createChatHistoryStore(), [input.store]);
280
280
  const [activeChatId, setActiveChatId] = react.useState(newChatId);
281
281
  const [chats, setChats] = react.useState([]);
282
282
  const createdAtRef = react.useRef(Date.now());
@@ -419,7 +419,7 @@ function AiComposer({
419
419
  disabled: value.trim().length === 0,
420
420
  title: t("pptx.ai.send"),
421
421
  "aria-label": t("pptx.ai.send"),
422
- className: chunkD4LINQVA_js.cn(
422
+ className: chunkV5PW4QCE_js.cn(
423
423
  "shrink-0 rounded-sm p-1.5 transition-colors",
424
424
  value.trim().length === 0 ? "text-muted-foreground/50" : "bg-primary text-primary-foreground hover:bg-primary/90"
425
425
  ),
@@ -445,15 +445,15 @@ function AiFocusBar({
445
445
  onClearPicks
446
446
  }) {
447
447
  const { t } = reactI18next.useTranslation();
448
- const chips = chunkPEGZP2W2_js.focusTargetChips(targets, slides);
449
- const twoTables = chunkPEGZP2W2_js.isTwoTableFocus(targets, slides);
448
+ const chips = chunkEVM5OFAD_js.focusTargetChips(targets, slides);
449
+ const twoTables = chunkEVM5OFAD_js.isTwoTableFocus(targets, slides);
450
450
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "border-b border-border bg-secondary/30", children: [
451
451
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-wrap items-center gap-1 px-2.5 py-1.5", children: [
452
452
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[10px] font-semibold uppercase tracking-wide text-muted-foreground", children: t("pptx.ai.focusScope") }),
453
453
  chips.map((chip) => /* @__PURE__ */ jsxRuntime.jsx(
454
454
  "span",
455
455
  {
456
- className: chunkD4LINQVA_js.cn(
456
+ className: chunkV5PW4QCE_js.cn(
457
457
  "inline-flex max-w-[10rem] items-center rounded-full px-2 py-0.5 text-[11px]",
458
458
  hasPicks || isPinned ? "bg-primary/15 text-primary" : "bg-muted text-muted-foreground"
459
459
  ),
@@ -486,7 +486,7 @@ function AiFocusBar({
486
486
  title: t("pptx.ai.pickElement"),
487
487
  "aria-label": t("pptx.ai.pickAria"),
488
488
  "aria-pressed": pickMode,
489
- className: chunkD4LINQVA_js.cn(
489
+ className: chunkV5PW4QCE_js.cn(
490
490
  "rounded-sm p-1",
491
491
  pickMode ? "bg-primary text-primary-foreground" : "text-muted-foreground hover:bg-accent"
492
492
  ),
@@ -565,7 +565,7 @@ function AiHistoryList({ chats, activeChatId, onResume, onDelete }) {
565
565
  {
566
566
  type: "button",
567
567
  onClick: () => onResume(chat.id),
568
- className: chunkD4LINQVA_js.cn(
568
+ className: chunkV5PW4QCE_js.cn(
569
569
  "flex min-w-0 flex-1 items-start gap-2 rounded-sm px-2 py-1.5 text-left hover:bg-accent",
570
570
  chat.id === activeChatId && "bg-accent/60"
571
571
  ),
@@ -720,26 +720,26 @@ function AiToolCallCard({ part }) {
720
720
  const failed = part.state === "output-error";
721
721
  const done = part.state === "output-available";
722
722
  const running = !failed && !done;
723
- const activity = chunkPEGZP2W2_js.describeToolActivity(part.toolName, part.input, running ? "present" : "past");
723
+ const activity = chunkEVM5OFAD_js.describeToolActivity(part.toolName, part.input, running ? "present" : "past");
724
724
  const Icon = ICONS[activity.icon] ?? lu.LuWrench;
725
- const rawSummary = chunkPEGZP2W2_js.summarizeToolArgs(part.input);
725
+ const rawSummary = chunkEVM5OFAD_js.summarizeToolArgs(part.input);
726
726
  const statusLabel = failed ? t("pptx.ai.toolFailed") : done ? t("pptx.ai.toolDone") : t("pptx.ai.toolRunning");
727
727
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-[12px]", children: [
728
728
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-1.5", children: [
729
729
  /* @__PURE__ */ jsxRuntime.jsx(
730
730
  Icon,
731
731
  {
732
- className: chunkD4LINQVA_js.cn(
732
+ className: chunkV5PW4QCE_js.cn(
733
733
  "w-3.5 h-3.5 shrink-0",
734
734
  failed ? "text-destructive" : "text-muted-foreground"
735
735
  )
736
736
  }
737
737
  ),
738
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: chunkD4LINQVA_js.cn("truncate", failed ? "text-destructive" : "text-foreground"), children: activity.label }),
738
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: chunkV5PW4QCE_js.cn("truncate", failed ? "text-destructive" : "text-foreground"), children: activity.label }),
739
739
  /* @__PURE__ */ jsxRuntime.jsxs(
740
740
  "span",
741
741
  {
742
- className: chunkD4LINQVA_js.cn(
742
+ className: chunkV5PW4QCE_js.cn(
743
743
  "ml-auto inline-flex items-center gap-1 rounded-sm px-1.5 py-0.5 text-[10px]",
744
744
  failed ? "bg-destructive/15 text-destructive" : done ? "bg-primary/10 text-primary" : "bg-muted text-muted-foreground"
745
745
  ),
@@ -756,7 +756,7 @@ function AiToolCallCard({ part }) {
756
756
  rawSummary && /* @__PURE__ */ jsxRuntime.jsxs("details", { className: "group mt-0.5 pl-5", children: [
757
757
  /* @__PURE__ */ jsxRuntime.jsx("summary", { className: "cursor-pointer list-none text-[10px] text-muted-foreground/70 hover:text-muted-foreground", children: t("pptx.ai.toolDetails") }),
758
758
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-0.5 break-words font-mono text-[10px] text-muted-foreground/80", children: [
759
- chunkPEGZP2W2_js.toolLabel(part.toolName),
759
+ chunkEVM5OFAD_js.toolLabel(part.toolName),
760
760
  ": ",
761
761
  rawSummary
762
762
  ] })
@@ -787,7 +787,7 @@ function AiMessageList({ messages, isStreaming, bridge }) {
787
787
  /* @__PURE__ */ jsxRuntime.jsx(
788
788
  "div",
789
789
  {
790
- className: chunkD4LINQVA_js.cn(
790
+ className: chunkV5PW4QCE_js.cn(
791
791
  "mt-0.5 flex h-6 w-6 shrink-0 items-center justify-center rounded-full",
792
792
  isUser ? "bg-secondary text-muted-foreground" : "bg-primary/15 text-primary"
793
793
  ),
@@ -834,7 +834,7 @@ function AiMessageList({ messages, isStreaming, bridge }) {
834
834
  }
835
835
  function AiProposalCard({ proposal, onAccept, onReject }) {
836
836
  const { t } = reactI18next.useTranslation();
837
- const lines = proposal.summary.map(chunkPEGZP2W2_js.humanizeDiffLine);
837
+ const lines = proposal.summary.map(chunkEVM5OFAD_js.humanizeDiffLine);
838
838
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "rounded-md border border-primary/40 bg-primary/5 p-2.5", children: [
839
839
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-1.5 text-[11px] font-semibold uppercase tracking-wide text-primary", children: t("pptx.ai.proposedChange") }),
840
840
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-[12px] font-medium text-foreground", children: proposal.label }),
@@ -1042,7 +1042,7 @@ function AiChatPanel({
1042
1042
  }) {
1043
1043
  const { t } = reactI18next.useTranslation();
1044
1044
  const { state, session, initError } = useAiChat(bridge, config);
1045
- const deckId = react.useMemo(() => chunkPEGZP2W2_js.deckIdFromBridge(bridge), [bridge]);
1045
+ const deckId = react.useMemo(() => chunkEVM5OFAD_js.deckIdFromBridge(bridge), [bridge]);
1046
1046
  return /* @__PURE__ */ jsxRuntime.jsxs(
1047
1047
  "div",
1048
1048
  {
Binary file
Binary file
@@ -1,7 +1,7 @@
1
- import { deckIdFromBridge, isAiAvailable, createAiChatSession, toolCanvasTarget, createChatHistoryStore, focusTargetChips, isTwoTableFocus, humanizeDiffLine, buildDeckContext, describeToolActivity, summarizeToolArgs, toolLabel } from './chunk-FWX6HUVA.mjs';
2
- import { cn } from './chunk-2HNIYZ3O.mjs';
1
+ import { deckIdFromBridge, isAiAvailable, createAiChatSession, toolCanvasTarget, createChatHistoryStore, focusTargetChips, isTwoTableFocus, humanizeDiffLine, buildDeckContext, describeToolActivity, summarizeToolArgs, toolLabel } from './chunk-DZHCLAH3.mjs';
2
+ import { cn } from './chunk-QZV7XDQG.mjs';
3
3
  import './chunk-SQJBFMEX.mjs';
4
- import './chunk-J3JFXIDN.mjs';
4
+ import './chunk-ZPNLWBED.mjs';
5
5
  import './chunk-XGB3TDIC.mjs';
6
6
  import { useMemo, useRef, useState, useEffect, useReducer, useCallback } from 'react';
7
7
  import { useTranslation } from 'react-i18next';
Binary file
Binary file
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunkIJY5WNZK_js = require('./chunk-IJY5WNZK.js');
3
+ var chunkGUGHIQ4P_js = require('./chunk-GUGHIQ4P.js');
4
4
  require('./chunk-4VNS5WPM.js');
5
5
  var react = require('react');
6
6
  var jsxRuntime = require('react/jsx-runtime');
@@ -14,7 +14,7 @@ function Model3DScene({ modelUrl, interactive, width, height }) {
14
14
  return;
15
15
  }
16
16
  let disposed = false;
17
- void chunkIJY5WNZK_js.mountModel3D(container, modelUrl, { width, height, interactive }).then((handle) => {
17
+ void chunkGUGHIQ4P_js.mountModel3D(container, modelUrl, { width, height, interactive }).then((handle) => {
18
18
  if (disposed) {
19
19
  handle.dispose();
20
20
  } else {
Binary file
Binary file
@@ -1,4 +1,4 @@
1
- import { mountModel3D } from './chunk-J3JFXIDN.mjs';
1
+ import { mountModel3D } from './chunk-ZPNLWBED.mjs';
2
2
  import './chunk-XGB3TDIC.mjs';
3
3
  import { useRef, useEffect } from 'react';
4
4
  import { jsx } from 'react/jsx-runtime';
@@ -1,8 +1,8 @@
1
- import { computeFocusTargets, aiChangeAnimationCss, changeGhostStyle, createChatHistoryStore, toRenderableParts } from './chunk-FWX6HUVA.mjs';
2
- import { useReducedMotion, useViewerState, useViewerOptions, useIsMobile, useResizablePanels, useDerivedSlideState, useZoomViewport, useEditorHistory, usePresentationSetup, useTouchGestures, useViewerDialogs, useEditorOperations, useViewerIntegration, useLayoutSwitching, useYjsDocumentSync, useCollaborationLivePatch, useFollowMode, useBroadcastFollower, scopeLayoutOptionsToActiveSlide, useToolbarVisibility, useKeyboardInsets, useModalDismissDrag, useCollaborativeState, useVirtualizedSlides, useSwipeNavigation, useSheetDismissDrag, detectTargetType, parseEmailUrl, parseSlideFromUrl, ACTION_VERB_MAP, downloadBlob } from './chunk-3WR2D4AJ.mjs';
3
- import { MIN_ELEMENT_SIZE, DEFAULT_STROKE_COLOR, getConnectorPathGeometry, buildLineShadowCss, buildLineGlowFilter, renderConnectorMarker, getShapeVisualStyle, getTextStyleForElement, DEFAULT_TEXT_COLOR, renderVectorShape, isConnectorOrLineElement, build3DExtrusionData, getImageRenderStyle, cn, getTextLayoutStyle, renderTableElement, renderMediaElement, shouldRenderFallbackLabel, SHAPE_PRESETS, ANIMATION_PRESET_OPTIONS, DEFAULT_FILL_COLOR, hasDagDuotoneEffect, renderDagDuotoneSvgFilter, getCropShapeClipPath, getImageTilingStyle, getDuotoneColors, getTextWarpStyle, renderTextSegments, buildReactChartViewModel, renderChartElement, buildTextBody3DSceneStyle, SLIDE_NAV_THUMBNAIL_WIDTH, DEFAULT_TEXT_FONT_SIZE, DEFAULT_FONT_FAMILY, TOOLBAR_SECTIONS, DEFAULT_SECTION_GROUP_ID, SHORTCUT_REFERENCE_ITEMS as SHORTCUT_REFERENCE_ITEMS$1, HYPERLINK_COLOR, GRID_SIZE, CONNECTOR_ARROW_OPTIONS, ARROW_SIZE_OPTIONS, startMotionPathPreview, startPreviewAnimation, stopPreviewAnimation, THEME_COLOR_SWATCHES, STROKE_DASH_OPTIONS } from './chunk-2HNIYZ3O.mjs';
1
+ import { computeFocusTargets, aiChangeAnimationCss, changeGhostStyle, createChatHistoryStore, toRenderableParts } from './chunk-DZHCLAH3.mjs';
2
+ import { useReducedMotion, useViewerState, useViewerOptions, useIsMobile, useResizablePanels, useDerivedSlideState, useZoomViewport, useEditorHistory, usePresentationSetup, useTouchGestures, useViewerDialogs, useEditorOperations, useViewerIntegration, useLayoutSwitching, useYjsDocumentSync, useCollaborationLivePatch, useFollowMode, useBroadcastFollower, scopeLayoutOptionsToActiveSlide, useToolbarVisibility, useKeyboardInsets, useModalDismissDrag, useCollaborativeState, useVirtualizedSlides, useSwipeNavigation, useSheetDismissDrag, detectTargetType, parseEmailUrl, parseSlideFromUrl, ACTION_VERB_MAP, downloadBlob } from './chunk-LP3Y4NXE.mjs';
3
+ import { MIN_ELEMENT_SIZE, DEFAULT_STROKE_COLOR, getConnectorPathGeometry, buildLineShadowCss, buildLineGlowFilter, renderConnectorMarker, getShapeVisualStyle, getTextStyleForElement, DEFAULT_TEXT_COLOR, renderVectorShape, isConnectorOrLineElement, build3DExtrusionData, getImageRenderStyle, cn, getTextLayoutStyle, renderTableElement, renderMediaElement, shouldRenderFallbackLabel, SHAPE_PRESETS, ANIMATION_PRESET_OPTIONS, DEFAULT_FILL_COLOR, hasDagDuotoneEffect, renderDagDuotoneSvgFilter, getCropShapeClipPath, getImageTilingStyle, getDuotoneColors, getTextWarpStyle, renderTextSegments, buildReactChartViewModel, renderChartElement, buildTextBody3DSceneStyle, SLIDE_NAV_THUMBNAIL_WIDTH, DEFAULT_TEXT_FONT_SIZE, DEFAULT_FONT_FAMILY, TOOLBAR_SECTIONS, DEFAULT_SECTION_GROUP_ID, SHORTCUT_REFERENCE_ITEMS as SHORTCUT_REFERENCE_ITEMS$1, HYPERLINK_COLOR, GRID_SIZE, CONNECTOR_ARROW_OPTIONS, ARROW_SIZE_OPTIONS, startMotionPathPreview, startPreviewAnimation, stopPreviewAnimation, THEME_COLOR_SWATCHES, STROKE_DASH_OPTIONS } from './chunk-QZV7XDQG.mjs';
4
4
  import { LOCALE_CATALOG, translationsEn } from './chunk-SQJBFMEX.mjs';
5
- import { hasShapeProperties, normalizeHexColor, colorWithOpacity, normalizeStrokeDashType, getSvgStrokeDasharray, getCompoundLineOffsets, getCompoundLineWidths, svgLineCap, hasTextProperties, getElementTransform, getAriaRoleDescription, getAriaLabel, getAriaRole, resolveElementInteractivity, isEditableTextElement, isElementRendered, isElementActionable, getImageEffectsOpacity, getImageEffectsFilter, getElementTransformWithoutRotation, inlineElementPointerEvents, isHollowShapeElement, LINK_TOOLTIP_HOST_CLASS, ACTION_BUTTON_PRESETS, mediaTransportVisible, isInkElement, getGroupChildParentFill, getElementLabel, SWITCHABLE_LAYOUT_TYPES, DEFAULT_VIEWER_OPTIONS, compileEquationTemplateMathMl, buildUserFontFaceStyles, readStoredViewerPrefs, resolveThemeCatalogEntry, THEME_CATALOG, writeStoredViewerPrefs, openPptxFile, readBackstageRecentFile, resolveAutosaveActivation, viewerOptionsToPreferences, applyPreferenceToOptions, listAutosaveSnapshots, deleteAutosaveSnapshot, resolveAutosaveIntervalMs, resolveAutosaveIntervalSeconds, shouldShowAutosaveRecoveryPrompt, paintedStrokeWidth, buildCssGradientFromShapeStyle, ensureActionAffordanceStyles, resolveElementActionAffordance, actionAffordanceLabels, getComputedEffectStyle, getSoftEdgeSvgFilter, buildStrokeOutline, buildHollowHitOutline, strokeOutlineViewBox, revealedSmartArtNodeCount, buildSmartArtA11y, computeSmartArtLayout, flattenNodes, buildSummaryZoomView, isImageTiled, getImageColorWashStyle, isImageLikeElement, placeCaretAtEnd, getPendingSelectionRestore, restoreSegmentSelection, getTextCompensationTransform, ensureChartInteractionStyles, applyChartBuildReveal, formatAxisValue, hasPressureVariation, getInkReplayStyles, INK_REPLAY_KEYFRAMES, resolveInkColor, resolveInkWidth, resolveInkOpacity, pressuresToWidths, getContentPartReplayStyles, resolveOleType, getOleTypeColor, getOleTypeLabel, filterRenderedElements, resolveGroupChildFill, isLinkedTextBox, getOverflowSegments, shouldUseSvgWarp, getTextBodyRotationTransform, RULER_THICKNESS, RULER_FONT_SIZE, buildPreviewElements, deriveSlideFieldContext, SLIDE_TRANSITION_OPTIONS, hiddenSlideCue, HIDDEN_SLIDE_SLASH_GRADIENT, HIDDEN_SLIDE_LABEL_KEY, themeToCssVars, applyMotionPathPreset, resetSlideLayoutPath, DEFAULT_INSERT_CHART_KIND, hasCopyableFormat, templateSchemeFromTheme, createBackstagePresentation, setMasterViewBackgroundColor, printPropertiesFrameSlides, printPropertiesSlidesPerPage, VIEWER_OPTIONS_TABS, DEFAULT_QUICK_ACCESS_COMMAND_IDS, buildJoinCollaborationConfig, buildCreateCollaborationConfig, generateBroadcastRoomId, DEFAULT_BROADCAST_SERVER_URL, buildBroadcastViewerUrl, resolveTransportForServerUrl, ACTION_INDICATOR_CLASS, ACTION_INDICATOR_ICON_PATH, LINK_TOOLTIP_CLASS, LINK_TOOLTIP_PANEL_CLASS, LINK_TOOLTIP_LABEL_CLASS, LINK_TOOLTIP_HINT_CLASS, DEFAULT_PALETTE2, resolvePalette, computeDrawingViewBox, projectDrawingShapes, styleShadowFilter, resolveDrawingShapeNodeId, getImageSvgFilters, buildDuotoneCacheKey, getDuotoneCachedResult, applyDuotone, setDuotoneCachedResult, buildCacheKey, DEFAULT_COLOR_CHANGE_TOLERANCE, getCachedResult, applyColorChange, setCachedResult, findChartPartTarget, dragValueForPart, withChartPointValue, dragAnchorViewY, withChartTitle, buildSmartArt3DModel, extractPathPoints, generatePressureCircles, isBrowserOpenableMime, formatBytes, getOleBadgeLabel, openUrlInNewTab, getSubstituteFontFamily, getWarpPath, getSlideBackgroundStyle, filterCommands, resolveTitleBarStatusKey, TITLE_BAR_CLASSES, TITLE_BAR_DEFAULT_FILE_KEY, masterViewBackgroundColor, buildFieldSubstitutionContext, shouldConfirmExternalHyperlink, safeOpenUrl, isPpactionUrl, parsePpactionUrl, isPresentationAdvanceClick, toggleBlackboard, PRESENT_TOOLBAR_CLASSES, buildContextMenuEntries, themeColorSchemesEqual, EXPANDED_MAX_HEIGHT, STATUS_BAR_CLASSES, formatVersionTimestamp, formatRelativeTime, scanAvailableFontFamilies, PRESETS, CATEGORIES, convertOmmlToLatex, compileLatexEquation, convertLatexToOmml, EQUATION_TEMPLATES, clampPercent, HANDOUT_OPTIONS, TOOLBAR_TABS, SHORTCUT_REFERENCE_ITEMS, resolveViewerAddinRows, availableQuickAccessCommands, addQuickAccessCommand, removeQuickAccessCommand, moveQuickAccessCommand, CUSTOM_FONT_ACCEPT, activateModalFocus, buildCollaborationShareUrl, SORTER_MIN_ZOOM, SORTER_ZOOM_STEP, SORTER_MAX_ZOOM, canGoPrevious, formatSlideCounter, READING_VIEW_COUNTER_ATTR, canGoNext, READING_VIEW_ATTR, OUTLINE_LEVEL_ATTR, OUTLINE_SLIDE_ATTR, OUTLINE_ROW_ATTR, OUTLINE_VIEW_ATTR, mobileElapsedSince, nextPresentedSlide, presenterPrevDisabled, presenterNextDisabled, formatMobileElapsed, mobileSlideCounter, presenterPaneAdvancesOnClick, presenterTimerProgress, PRESENTER_CONSOLE_CLASSES, formatElapsed, centeredSvgTextLines, computeInlineEditorRect, findSmartArtNodeText, setSmartArtNodeStyle, rebuildDrawingShapesIfCleared, shouldCommitSmartArtNodeText, updateSmartArtNodeText, groupIntoParagraphs, substituteFieldText, extraQuickAccessCommands, TAB_ROW_ACTION_CLASSES, listBackstageRecentFiles, BACKSTAGE_NAV, INSERT_CHART_TYPES, CHARACTER_SPACING_OPTIONS, RIBBON_SHAPE_SWATCHES, shapeFillChange, shapeOutlineChange, readRibbonTransitionDraft, ribbonTransitionUpdates, playSlideTransitionPreview, RIBBON_TRANSITION_PRESETS, DEFAULT_MOTION_PATH_PRESET_ID, SLIDE_SHOW_OPTIONS, slideShowOptionChange, readSlideShowOption, SLIDE_VIRTUALIZATION_THRESHOLD, PRESENTATION_HIT_TEST_CSS, PRESENTATION_STAGE_ATTRIBUTE, getSlideTransitionAnimations, MORPH_CROSSFADE_GROUP_STYLE, MORPH_CROSSFADE_HALF_STYLE, SLIDE_TRANSITION_KEYFRAMES, annotationOverlayZIndex, presentationInkPath, motionPathFor, setMotionPath, getShapeAdjustmentHandleDescriptors, PRESENTER_NAVIGATOR_LABEL_KEYS, PEN_COLORS, HIGHLIGHTER_COLORS, isBlackboardActive, slideSizeToCanvasPx, resolveSelectionPaneRename, PRESET_THEMES, normalizeSegments, createPlainNotesSegments, segmentsToEditorHtml, DEBOUNCE_MS, parseSegmentsFromRichEditor, segmentsToPlainText, getCurrentParagraphIndex, segmentsToParagraphs, paragraphsToSegments, MAX_INDENT_LEVEL, INDENT_PX, isUrlSafe, escapeHtml2, sanitizeMathMl, computeHandoutLayout, getPrintableArea, generateNoteLineCount, computeAllNotesPages, getNotesPrintableArea, QUICK_ACCESS_COMMAND_CATALOG, registerCustomFont, openReadingView, applyReadingViewCommand, createPresentationKeyBuffer, readingViewFitScale, READING_VIEW_STAGE_ATTR, buildOutline, applyOutlineEdit, mapOutlineKey, notesSegmentsToSpans, erasePresentationInkAt, movePresenterPointer, appendPresentationInkPoint, PRESENTER_CONSOLE_CONTROLS, NOTES_FONT_SIZE_DEFAULT, formatTime, NOTES_FONT_SIZE_MIN, clampNotesFontSize, NOTES_FONT_SIZE_STEP, NOTES_FONT_SIZE_MAX, BACKSTAGE_TEMPLATES, formatBackstageDate, formatBackstageSize, backstageCardsFor, DEFAULT_VIEWER_PROFILE, resolveProfileInitial, AVATAR_COLOR_SWATCHES, resolveDefaultFontFamily, buildFontCatalog, ENTRANCE_PRESET_VALUES, EMPHASIS_PRESET_VALUES, EXIT_PRESET_VALUES, MOTION_PATH_FAMILIES, motionPathFamilyLabelKey, motionPathPresetsByFamily, motionPathPresetLabelKey, masterViewPseudoSlide, authorConnectorBetweenSites, generateTicks, rulerDragToGuidePosition, getCommentMarkerPosition, collectConnectorSiteCandidates, getConnectorEndpointHandles, findConnectorSiteNear, motionPathToSvgD, motionPathEndPixel, isEditableMotionPath, setMotionPathEnd, themeColorLabel, buildThemeColorGrid, THEME_COLOR_SCHEME_KEYS, COMMON_FONTS, buildSmartArtPresetData, handleReadingViewKey, getLocalStorageUsageSummary, saveViewerProfile, clearAllLocalViewerData, isCurrentLayout, SLIDE_TEMPLATES, CONNECTOR_SITE_SNAP_PX, resolveConnectorEndpointUpdate, withConnectorEndpointUpdate, getShapeConnectionSites, isElementLocked, mergeSlideTransition, mapSlideSorterKey, isEditorTextInputTarget, clampSorterZoom, buildLayoutPreviewGeometry, buildSlideTemplateContent, elementLockTogglePatch, buildTableDataGrid, appendTableElementRow, removeLastTableElementRow, appendTableElementColumn, removeLastTableElementColumn, removeTableElementColumn, removeTableElementRow, setTableElementCellText, TABLE_STYLE_PRESETS, chartDataChangeType, setChartCategoryLabel, setChartCellValue, addChartCategory, removeChartCategory, addChartSeries, removeChartSeries, setChartAxisLogScale, setChartAxisTitleStyle, setChartAxisGridlineStyle, setChartSeriesMarker, setChartSeriesChartType, setChartDataPointFill, setChartDataPointExplosion, setChartDataPointMarker, setChartDataPointLabel, getOleObjectTypeLabel, sanitizeGradientStops, pptxActionToElementAction, withFrameSlides, withSlidesPerPage, applyThemeOverrideToSlide, COLOR_MAP_ALIAS_KEYS, DEFAULT_COLOR_MAP, schemaLabel, THEME_COLOR_SLOT_LABEL_KEYS, resolveSlideSizeSelection, SLIDE_SIZE_PRESETS, TRANSITION_VALID_DIRECTIONS, TRANSITION_ORIENTATION_TYPES, clampTransitionNumber, flattenTagCollections, formatCommentTimestamp, clearMotionPath, DIRECTIONAL_PRESETS, motionPathPresetIdForPath, computeMergeCellRight, computeMergeCellDown, computeSplitCell, SMARTART_COLOR_SCHEME_LABEL_KEYS, SMARTART_STYLE_LABEL_KEYS, addSmartArtNodeAsChild, removeSmartArtNode, clampCropValue, DUOTONE_PRESETS, ARTISTIC_EFFECTS, resolveActionType, ELEMENT_ACTION_TYPE_OPTIONS, toSlideIndex, elementActionToPptxAction, canCommitActionType, slideSizeFromPreset, withSlideSizeOrientation, TRANSITION_DIR_ARROWS, buildDirectionGrid, updateTagInCollections, deleteTagFromCollections, addTagToCollections, commentTextSegments, COMMENT_MENTION_CLASS, COMMENT_MENTION_ATTRIBUTE, animationEffectLabel, LBL, SEL, FILL_MODE_OPTIONS, SECTION_HEADING, NUM, switchSmartArtLayout, addSmartArtNode, demoteSmartArtNode, promoteSmartArtNode, reorderSmartArtNode, SHAPE_QUICK_STYLES, quickStyleSwatchCss, getPatternSvg, TEXT_WARP_PRESETS, warpPreviewPath, text3dPtToEmu, text3dEmuToPt, MATERIAL_PRESETS, GRADIENT_TYPE_OPTIONS, PATTERN_OPTIONS, FILL_PATTERN_LABEL_KEYS, openNativeEyeDropper, toggleText3dExtrusion, BEVEL_PRESETS } from './chunk-J3JFXIDN.mjs';
5
+ import { hasShapeProperties, normalizeHexColor, colorWithOpacity, normalizeStrokeDashType, getSvgStrokeDasharray, getCompoundLineOffsets, getCompoundLineWidths, svgLineCap, hasTextProperties, getElementTransform, getAriaRoleDescription, getAriaLabel, getAriaRole, resolveElementInteractivity, isEditableTextElement, isElementRendered, isElementActionable, getImageEffectsOpacity, getImageEffectsFilter, getElementTransformWithoutRotation, inlineElementPointerEvents, isHollowShapeElement, LINK_TOOLTIP_HOST_CLASS, ACTION_BUTTON_PRESETS, mediaTransportVisible, isInkElement, getGroupChildParentFill, getElementLabel, SWITCHABLE_LAYOUT_TYPES, DEFAULT_VIEWER_OPTIONS, compileEquationTemplateMathMl, buildUserFontFaceStyles, readStoredViewerPrefs, resolveThemeCatalogEntry, THEME_CATALOG, writeStoredViewerPrefs, openPptxFile, readBackstageRecentFile, resolveAutosaveActivation, viewerOptionsToPreferences, applyPreferenceToOptions, listAutosaveSnapshots, deleteAutosaveSnapshot, resolveAutosaveIntervalMs, resolveAutosaveIntervalSeconds, shouldShowAutosaveRecoveryPrompt, paintedStrokeWidth, buildCssGradientFromShapeStyle, ensureActionAffordanceStyles, resolveElementActionAffordance, actionAffordanceLabels, getComputedEffectStyle, getSoftEdgeSvgFilter, buildStrokeOutline, buildHollowHitOutline, strokeOutlineViewBox, revealedSmartArtNodeCount, buildSmartArtA11y, computeSmartArtLayout, flattenNodes, buildSummaryZoomView, isImageTiled, getImageColorWashStyle, isImageLikeElement, placeCaretAtEnd, getPendingSelectionRestore, restoreSegmentSelection, getTextCompensationTransform, ensureChartInteractionStyles, applyChartBuildReveal, formatAxisValue, hasPressureVariation, getInkReplayStyles, INK_REPLAY_KEYFRAMES, resolveInkColor, resolveInkWidth, resolveInkOpacity, pressuresToWidths, getContentPartReplayStyles, resolveOleType, getOleTypeColor, getOleTypeLabel, filterRenderedElements, resolveGroupChildFill, isLinkedTextBox, getOverflowSegments, shouldUseSvgWarp, getTextBodyRotationTransform, RULER_THICKNESS, RULER_FONT_SIZE, buildPreviewElements, deriveSlideFieldContext, SLIDE_TRANSITION_OPTIONS, hiddenSlideCue, HIDDEN_SLIDE_SLASH_GRADIENT, HIDDEN_SLIDE_LABEL_KEY, themeToCssVars, applyMotionPathPreset, resetSlideLayoutPath, DEFAULT_INSERT_CHART_KIND, hasCopyableFormat, templateSchemeFromTheme, createBackstagePresentation, setMasterViewBackgroundColor, printPropertiesFrameSlides, printPropertiesSlidesPerPage, VIEWER_OPTIONS_TABS, DEFAULT_QUICK_ACCESS_COMMAND_IDS, buildJoinCollaborationConfig, buildCreateCollaborationConfig, generateBroadcastRoomId, DEFAULT_BROADCAST_SERVER_URL, buildBroadcastViewerUrl, resolveTransportForServerUrl, ACTION_INDICATOR_CLASS, ACTION_INDICATOR_ICON_PATH, LINK_TOOLTIP_CLASS, LINK_TOOLTIP_PANEL_CLASS, LINK_TOOLTIP_LABEL_CLASS, LINK_TOOLTIP_HINT_CLASS, DEFAULT_PALETTE2, resolvePalette, computeDrawingViewBox, projectDrawingShapes, styleShadowFilter, resolveDrawingShapeNodeId, getImageSvgFilters, buildDuotoneCacheKey, getDuotoneCachedResult, applyDuotone, setDuotoneCachedResult, buildCacheKey, DEFAULT_COLOR_CHANGE_TOLERANCE, getCachedResult, applyColorChange, setCachedResult, findChartPartTarget, dragValueForPart, withChartPointValue, dragAnchorViewY, withChartTitle, buildSmartArt3DModel, extractPathPoints, generatePressureCircles, isBrowserOpenableMime, formatBytes, getOleBadgeLabel, openUrlInNewTab, getSubstituteFontFamily, getWarpPath, getSlideBackgroundStyle, filterCommands, resolveTitleBarStatusKey, TITLE_BAR_CLASSES, TITLE_BAR_DEFAULT_FILE_KEY, masterViewBackgroundColor, buildFieldSubstitutionContext, shouldConfirmExternalHyperlink, safeOpenUrl, isPpactionUrl, parsePpactionUrl, isPresentationAdvanceClick, toggleBlackboard, PRESENT_TOOLBAR_CLASSES, buildContextMenuEntries, themeColorSchemesEqual, EXPANDED_MAX_HEIGHT, STATUS_BAR_CLASSES, formatVersionTimestamp, formatRelativeTime, scanAvailableFontFamilies, PRESETS, CATEGORIES, convertOmmlToLatex, compileLatexEquation, convertLatexToOmml, EQUATION_TEMPLATES, clampPercent, HANDOUT_OPTIONS, TOOLBAR_TABS, SHORTCUT_REFERENCE_ITEMS, resolveViewerAddinRows, availableQuickAccessCommands, addQuickAccessCommand, removeQuickAccessCommand, moveQuickAccessCommand, CUSTOM_FONT_ACCEPT, activateModalFocus, buildCollaborationShareUrl, buildActiveSessionUsers, SORTER_MIN_ZOOM, SORTER_ZOOM_STEP, SORTER_MAX_ZOOM, canGoPrevious, formatSlideCounter, READING_VIEW_COUNTER_ATTR, canGoNext, READING_VIEW_ATTR, OUTLINE_LEVEL_ATTR, OUTLINE_SLIDE_ATTR, OUTLINE_ROW_ATTR, OUTLINE_VIEW_ATTR, mobileElapsedSince, nextPresentedSlide, presenterPrevDisabled, presenterNextDisabled, formatMobileElapsed, mobileSlideCounter, presenterPaneAdvancesOnClick, presenterTimerProgress, PRESENTER_CONSOLE_CLASSES, formatElapsed, centeredSvgTextLines, computeInlineEditorRect, findSmartArtNodeText, setSmartArtNodeStyle, rebuildDrawingShapesIfCleared, shouldCommitSmartArtNodeText, updateSmartArtNodeText, groupIntoParagraphs, substituteFieldText, extraQuickAccessCommands, TAB_ROW_ACTION_CLASSES, listBackstageRecentFiles, BACKSTAGE_NAV, INSERT_CHART_TYPES, CHARACTER_SPACING_OPTIONS, RIBBON_SHAPE_SWATCHES, shapeFillChange, shapeOutlineChange, readRibbonTransitionDraft, ribbonTransitionUpdates, playSlideTransitionPreview, RIBBON_TRANSITION_PRESETS, DEFAULT_MOTION_PATH_PRESET_ID, SLIDE_SHOW_OPTIONS, slideShowOptionChange, readSlideShowOption, SLIDE_VIRTUALIZATION_THRESHOLD, PRESENTATION_HIT_TEST_CSS, PRESENTATION_STAGE_ATTRIBUTE, getSlideTransitionAnimations, MORPH_CROSSFADE_GROUP_STYLE, MORPH_CROSSFADE_HALF_STYLE, SLIDE_TRANSITION_KEYFRAMES, annotationOverlayZIndex, presentationInkPath, motionPathFor, setMotionPath, getShapeAdjustmentHandleDescriptors, PRESENTER_NAVIGATOR_LABEL_KEYS, PEN_COLORS, HIGHLIGHTER_COLORS, isBlackboardActive, slideSizeToCanvasPx, resolveSelectionPaneRename, PRESET_THEMES, normalizeSegments, createPlainNotesSegments, segmentsToEditorHtml, DEBOUNCE_MS, parseSegmentsFromRichEditor, segmentsToPlainText, getCurrentParagraphIndex, segmentsToParagraphs, paragraphsToSegments, MAX_INDENT_LEVEL, INDENT_PX, isUrlSafe, escapeHtml2, sanitizeMathMl, computeHandoutLayout, getPrintableArea, generateNoteLineCount, computeAllNotesPages, getNotesPrintableArea, QUICK_ACCESS_COMMAND_CATALOG, registerCustomFont, openReadingView, applyReadingViewCommand, createPresentationKeyBuffer, readingViewFitScale, READING_VIEW_STAGE_ATTR, buildOutline, applyOutlineEdit, mapOutlineKey, notesSegmentsToSpans, erasePresentationInkAt, movePresenterPointer, appendPresentationInkPoint, PRESENTER_CONSOLE_CONTROLS, NOTES_FONT_SIZE_DEFAULT, formatTime, NOTES_FONT_SIZE_MIN, clampNotesFontSize, NOTES_FONT_SIZE_STEP, NOTES_FONT_SIZE_MAX, BACKSTAGE_TEMPLATES, formatBackstageDate, formatBackstageSize, backstageCardsFor, DEFAULT_VIEWER_PROFILE, resolveProfileInitial, AVATAR_COLOR_SWATCHES, resolveDefaultFontFamily, buildFontCatalog, ENTRANCE_PRESET_VALUES, EMPHASIS_PRESET_VALUES, EXIT_PRESET_VALUES, MOTION_PATH_FAMILIES, motionPathFamilyLabelKey, motionPathPresetsByFamily, motionPathPresetLabelKey, masterViewPseudoSlide, authorConnectorBetweenSites, generateTicks, rulerDragToGuidePosition, getCommentMarkerPosition, collectConnectorSiteCandidates, getConnectorEndpointHandles, findConnectorSiteNear, motionPathToSvgD, motionPathEndPixel, isEditableMotionPath, setMotionPathEnd, themeColorLabel, buildThemeColorGrid, THEME_COLOR_SCHEME_KEYS, COMMON_FONTS, buildSmartArtPresetData, handleReadingViewKey, getLocalStorageUsageSummary, saveViewerProfile, clearAllLocalViewerData, isCurrentLayout, SLIDE_TEMPLATES, CONNECTOR_SITE_SNAP_PX, resolveConnectorEndpointUpdate, withConnectorEndpointUpdate, getShapeConnectionSites, isElementLocked, mergeSlideTransition, mapSlideSorterKey, isEditorTextInputTarget, clampSorterZoom, buildLayoutPreviewGeometry, buildSlideTemplateContent, elementLockTogglePatch, buildTableDataGrid, appendTableElementRow, removeLastTableElementRow, appendTableElementColumn, removeLastTableElementColumn, removeTableElementColumn, removeTableElementRow, setTableElementCellText, TABLE_STYLE_PRESETS, chartDataChangeType, setChartCategoryLabel, setChartCellValue, addChartCategory, removeChartCategory, addChartSeries, removeChartSeries, setChartAxisLogScale, setChartAxisTitleStyle, setChartAxisGridlineStyle, setChartSeriesMarker, setChartSeriesChartType, setChartDataPointFill, setChartDataPointExplosion, setChartDataPointMarker, setChartDataPointLabel, getOleObjectTypeLabel, sanitizeGradientStops, pptxActionToElementAction, withFrameSlides, withSlidesPerPage, applyThemeOverrideToSlide, COLOR_MAP_ALIAS_KEYS, DEFAULT_COLOR_MAP, schemaLabel, THEME_COLOR_SLOT_LABEL_KEYS, resolveSlideSizeSelection, SLIDE_SIZE_PRESETS, TRANSITION_VALID_DIRECTIONS, TRANSITION_ORIENTATION_TYPES, clampTransitionNumber, flattenTagCollections, formatCommentTimestamp, clearMotionPath, DIRECTIONAL_PRESETS, motionPathPresetIdForPath, computeMergeCellRight, computeMergeCellDown, computeSplitCell, SMARTART_COLOR_SCHEME_LABEL_KEYS, SMARTART_STYLE_LABEL_KEYS, addSmartArtNodeAsChild, removeSmartArtNode, clampCropValue, DUOTONE_PRESETS, ARTISTIC_EFFECTS, resolveActionType, ELEMENT_ACTION_TYPE_OPTIONS, toSlideIndex, elementActionToPptxAction, canCommitActionType, slideSizeFromPreset, withSlideSizeOrientation, TRANSITION_DIR_ARROWS, buildDirectionGrid, updateTagInCollections, deleteTagFromCollections, addTagToCollections, commentTextSegments, COMMENT_MENTION_CLASS, COMMENT_MENTION_ATTRIBUTE, animationEffectLabel, LBL, SEL, FILL_MODE_OPTIONS, SECTION_HEADING, NUM, switchSmartArtLayout, addSmartArtNode, demoteSmartArtNode, promoteSmartArtNode, reorderSmartArtNode, SHAPE_QUICK_STYLES, quickStyleSwatchCss, getPatternSvg, TEXT_WARP_PRESETS, warpPreviewPath, text3dPtToEmu, text3dEmuToPt, MATERIAL_PRESETS, GRADIENT_TYPE_OPTIONS, PATTERN_OPTIONS, FILL_PATTERN_LABEL_KEYS, openNativeEyeDropper, toggleText3dExtrusion, BEVEL_PRESETS } from './chunk-ZPNLWBED.mjs';
6
6
  import React14, { createContext, useMemo, useState, useCallback, lazy, forwardRef, useEffect, useRef, Suspense, useLayoutEffect, useContext, Fragment as Fragment$1, useDeferredValue } from 'react';
7
7
  import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
8
8
  import { useTranslation } from 'react-i18next';
@@ -2574,7 +2574,7 @@ function FailedToLoad() {
2574
2574
  var LazyModel3DScene = React14.lazy(
2575
2575
  async () => {
2576
2576
  try {
2577
- return await import('./Model3DScene-F6FAHPW7.mjs');
2577
+ return await import('./Model3DScene-PTCZUGIT.mjs');
2578
2578
  } catch {
2579
2579
  return { default: FailedToLoad };
2580
2580
  }
@@ -5775,7 +5775,7 @@ function AccountPage() {
5775
5775
  return void 0;
5776
5776
  });
5777
5777
  };
5778
- const version = "2.19.4" ;
5778
+ const version = "2.19.6" ;
5779
5779
  return /* @__PURE__ */ jsxs("div", { className: "mt-8 max-w-[700px] space-y-6", children: [
5780
5780
  /* @__PURE__ */ jsxs("section", { className: cardClass, children: [
5781
5781
  /* @__PURE__ */ jsxs("h2", { className: "flex items-center gap-2 text-sm font-semibold", children: [
@@ -31533,10 +31533,6 @@ function ActiveBroadcastView({
31533
31533
  )
31534
31534
  ] });
31535
31535
  }
31536
- function getInitials3(name) {
31537
- const parts = name.trim().split(/\s+/u);
31538
- return parts.length >= 2 ? (parts[0][0] + parts[parts.length - 1][0]).toUpperCase() : name.slice(0, 2).toUpperCase();
31539
- }
31540
31536
  function isP2P(config) {
31541
31537
  return config.transport === "webrtc" || !config.serverUrl?.trim();
31542
31538
  }
@@ -31553,9 +31549,11 @@ function ActiveSessionView({
31553
31549
  onCopyRoomId,
31554
31550
  onStopCollaboration
31555
31551
  }) {
31556
- const { t } = useTranslation();
31557
- const statusColor = collab.status === "connected" ? "text-green-400" : collab.status === "connecting" ? "text-yellow-400" : "text-red-400";
31558
- const statusIcon = collab.status === "connected" || collab.status === "connecting" ? /* @__PURE__ */ jsx(LuWifi, { className: "w-4 h-4" }) : /* @__PURE__ */ jsx(LuWifiOff, { className: "w-4 h-4" });
31552
+ const { t } = useTranslation(), statusColor = collab.status === "connected" ? "text-green-400" : collab.status === "connecting" ? "text-yellow-400" : "text-red-400", statusIcon = collab.status === "connected" || collab.status === "connecting" ? /* @__PURE__ */ jsx(LuWifi, { className: "w-4 h-4" }) : /* @__PURE__ */ jsx(LuWifiOff, { className: "w-4 h-4" }), sessionUsers = buildActiveSessionUsers({
31553
+ localUserName: activeCollaboration?.userName ?? collab.config.userName,
31554
+ localUserColor: collab.config.userColor,
31555
+ remoteUsers: collab.remoteUsers
31556
+ });
31559
31557
  return /* @__PURE__ */ jsxs("div", { className: "space-y-4", children: [
31560
31558
  /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
31561
31559
  /* @__PURE__ */ jsx("span", { className: statusColor, children: statusIcon }),
@@ -31602,42 +31600,25 @@ function ActiveSessionView({
31602
31600
  ] }),
31603
31601
  collab.remoteUsers.length > 0 && /* @__PURE__ */ jsxs("div", { className: "space-y-1.5", children: [
31604
31602
  /* @__PURE__ */ jsx("label", { className: "block text-[12px] font-medium text-foreground", children: t("pptx.share.connectedUsers") }),
31605
- /* @__PURE__ */ jsxs("div", { className: "rounded border border-border bg-background divide-y divide-border max-h-[140px] overflow-y-auto", children: [
31606
- /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 px-3 py-2", children: [
31607
- /* @__PURE__ */ jsx(
31608
- "div",
31609
- {
31610
- className: "w-6 h-6 rounded-full flex items-center justify-center text-[9px] font-semibold text-white shrink-0",
31611
- style: { backgroundColor: collab.config.userColor ?? "#6366f1" },
31612
- children: getInitials3(activeCollaboration?.userName ?? collab.config.userName)
31613
- }
31614
- ),
31615
- /* @__PURE__ */ jsx("span", { className: "text-[12px] text-foreground truncate", children: activeCollaboration?.userName ?? collab.config.userName }),
31616
- /* @__PURE__ */ jsx("span", { className: "text-[10px] text-muted-foreground ml-auto", children: t("pptx.share.you") })
31617
- ] }),
31618
- collab.remoteUsers.map((user) => /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 px-3 py-2", children: [
31619
- /* @__PURE__ */ jsx(
31620
- "div",
31621
- {
31622
- className: "w-6 h-6 rounded-full flex items-center justify-center text-[9px] font-semibold text-white shrink-0",
31623
- style: { backgroundColor: user.userColor },
31624
- children: user.userAvatar ? /* @__PURE__ */ jsx(
31625
- "img",
31626
- {
31627
- src: user.userAvatar,
31628
- alt: "",
31629
- className: "w-full h-full rounded-full object-cover"
31630
- }
31631
- ) : getInitials3(user.userName)
31632
- }
31633
- ),
31634
- /* @__PURE__ */ jsx("span", { className: "text-[12px] text-foreground truncate", children: user.userName }),
31635
- /* @__PURE__ */ jsxs("span", { className: "text-[10px] text-muted-foreground ml-auto", children: [
31636
- "Slide ",
31637
- user.activeSlideIndex + 1
31638
- ] })
31639
- ] }, user.clientId))
31640
- ] })
31603
+ /* @__PURE__ */ jsx("div", { className: "rounded border border-border bg-background divide-y divide-border max-h-[140px] overflow-y-auto", children: sessionUsers.map((user) => /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 px-3 py-2", children: [
31604
+ /* @__PURE__ */ jsx(
31605
+ "div",
31606
+ {
31607
+ className: "w-6 h-6 rounded-full flex items-center justify-center text-[9px] font-semibold text-white shrink-0",
31608
+ style: { backgroundColor: user.color },
31609
+ children: user.avatarUrl ? /* @__PURE__ */ jsx(
31610
+ "img",
31611
+ {
31612
+ src: user.avatarUrl,
31613
+ alt: "",
31614
+ className: "w-full h-full rounded-full object-cover"
31615
+ }
31616
+ ) : user.initials
31617
+ }
31618
+ ),
31619
+ /* @__PURE__ */ jsx("span", { className: "text-[12px] text-foreground truncate", children: user.name }),
31620
+ /* @__PURE__ */ jsx("span", { className: "text-[10px] text-muted-foreground ml-auto", children: user.isLocal ? t("pptx.share.you") : t("pptx.notes.slideN", { n: user.slideNumber }) })
31621
+ ] }, user.id)) })
31641
31622
  ] }),
31642
31623
  onStopCollaboration && /* @__PURE__ */ jsx(
31643
31624
  "button",
@@ -34709,7 +34690,7 @@ ${url}`)) {
34709
34690
  var AiChatPanel = lazy(async () => {
34710
34691
  const [{ useChat }, { default: Panel }] = await Promise.all([
34711
34692
  import('@ai-sdk/react'),
34712
- import('./AiChatPanel-P663354U.mjs')
34693
+ import('./AiChatPanel-WVO66CKC.mjs')
34713
34694
  ]);
34714
34695
  function BoundAiChatPanel(props) {
34715
34696
  return /* @__PURE__ */ jsx(Panel, { ...props, useChat });
Binary file
Binary file
@@ -1,4 +1,4 @@
1
- import { ThemePresets, PptxMarkdownConverter } from './chunk-J3JFXIDN.mjs';
1
+ import { ThemePresets, PptxMarkdownConverter } from './chunk-ZPNLWBED.mjs';
2
2
  import { __export } from './chunk-XGB3TDIC.mjs';
3
3
  import * as mcp from 'pptx-viewer-mcp';
4
4
  import * as mcpSchemas from 'pptx-viewer-mcp/schemas';
Binary file
Binary file
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunkIJY5WNZK_js = require('./chunk-IJY5WNZK.js');
3
+ var chunkGUGHIQ4P_js = require('./chunk-GUGHIQ4P.js');
4
4
  var chunk4VNS5WPM_js = require('./chunk-4VNS5WPM.js');
5
5
  var mcp = require('pptx-viewer-mcp');
6
6
  var mcpSchemas = require('pptx-viewer-mcp/schemas');
@@ -14879,7 +14879,7 @@ async function buildSlideMarkdown(slides, slideIndex2, meta3, options = {}) {
14879
14879
  };
14880
14880
  let markdown;
14881
14881
  try {
14882
- const converter = new chunkIJY5WNZK_js.PptxMarkdownConverter(
14882
+ const converter = new chunkGUGHIQ4P_js.PptxMarkdownConverter(
14883
14883
  "",
14884
14884
  {
14885
14885
  sourceName: meta3.title ?? "deck.pptx",
@@ -15471,7 +15471,7 @@ var getTheme = (ctx) => {
15471
15471
  name: theme?.name,
15472
15472
  colorScheme: theme?.colorScheme,
15473
15473
  fontScheme: theme?.fontScheme,
15474
- availablePresets: Object.keys(chunkIJY5WNZK_js.ThemePresets)
15474
+ availablePresets: Object.keys(chunkGUGHIQ4P_js.ThemePresets)
15475
15475
  };
15476
15476
  };
15477
15477
  var readExecutors = {
Binary file
Binary file