pptx-react-viewer 2.12.1 → 2.13.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 (103) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/dist/{AiChatPanel-UEFYTUJN.js → AiChatPanel-FXPGFU6H.js} +35 -27
  3. package/dist/AiChatPanel-FXPGFU6H.js.br +0 -0
  4. package/dist/AiChatPanel-FXPGFU6H.js.gz +0 -0
  5. package/dist/{AiChatPanel-CGGUPVQX.mjs → AiChatPanel-WMGS5TNX.mjs} +15 -7
  6. package/dist/AiChatPanel-WMGS5TNX.mjs.br +0 -0
  7. package/dist/AiChatPanel-WMGS5TNX.mjs.gz +0 -0
  8. package/dist/{Model3DScene-TU4NTHRM.mjs → Model3DScene-E2XRQAMR.mjs} +1 -1
  9. package/dist/Model3DScene-E2XRQAMR.mjs.br +0 -0
  10. package/dist/Model3DScene-E2XRQAMR.mjs.gz +0 -0
  11. package/dist/{Model3DScene-QYXJNALP.js → Model3DScene-K5FPZTRG.js} +2 -2
  12. package/dist/Model3DScene-K5FPZTRG.js.br +0 -0
  13. package/dist/Model3DScene-K5FPZTRG.js.gz +0 -0
  14. package/dist/{SurfaceChart3DScene-VTJBKUQY.mjs → SurfaceChart3DScene-2W2IFPLE.mjs} +1 -1
  15. package/dist/{SurfaceChart3DScene-VTJBKUQY.mjs.br → SurfaceChart3DScene-2W2IFPLE.mjs.br} +0 -0
  16. package/dist/SurfaceChart3DScene-2W2IFPLE.mjs.gz +0 -0
  17. package/dist/{SurfaceChart3DScene-4VCO3DRP.js → SurfaceChart3DScene-JDCFTXYT.js} +2 -2
  18. package/dist/SurfaceChart3DScene-JDCFTXYT.js.br +0 -0
  19. package/dist/SurfaceChart3DScene-JDCFTXYT.js.gz +0 -0
  20. package/dist/{chunk-4SGXEGVL.mjs → chunk-3OV4FR6S.mjs} +26 -14
  21. package/dist/chunk-3OV4FR6S.mjs.br +0 -0
  22. package/dist/chunk-3OV4FR6S.mjs.gz +0 -0
  23. package/dist/{chunk-LE6YA5WB.js → chunk-66ZHD7Y4.js} +282 -299
  24. package/dist/chunk-66ZHD7Y4.js.br +0 -0
  25. package/dist/chunk-66ZHD7Y4.js.gz +0 -0
  26. package/dist/{chunk-N3NKU7SC.mjs → chunk-CQ2CKMG4.mjs} +1 -1
  27. package/dist/chunk-CQ2CKMG4.mjs.br +0 -0
  28. package/dist/chunk-CQ2CKMG4.mjs.gz +0 -0
  29. package/dist/{chunk-TDUDH7S4.js → chunk-DD2YRS6Z.js} +1328 -660
  30. package/dist/chunk-DD2YRS6Z.js.br +0 -0
  31. package/dist/chunk-DD2YRS6Z.js.gz +0 -0
  32. package/dist/{chunk-YIPR3GKG.mjs → chunk-GJEH27GD.mjs} +53 -69
  33. package/dist/chunk-GJEH27GD.mjs.br +0 -0
  34. package/dist/chunk-GJEH27GD.mjs.gz +0 -0
  35. package/dist/{chunk-4GYNTY2G.mjs → chunk-H5H57XMH.mjs} +16 -2
  36. package/dist/chunk-H5H57XMH.mjs.br +0 -0
  37. package/dist/chunk-H5H57XMH.mjs.gz +0 -0
  38. package/dist/{chunk-CABQXGPI.mjs → chunk-OWGPRVRK.mjs} +1322 -661
  39. package/dist/chunk-OWGPRVRK.mjs.br +0 -0
  40. package/dist/chunk-OWGPRVRK.mjs.gz +0 -0
  41. package/dist/{chunk-UIWY4XJT.js → chunk-PTFCMG3A.js} +3 -3
  42. package/dist/chunk-PTFCMG3A.js.br +0 -0
  43. package/dist/chunk-PTFCMG3A.js.gz +0 -0
  44. package/dist/{chunk-NUDH7TI2.js → chunk-QFNJCEMS.js} +340 -326
  45. package/dist/chunk-QFNJCEMS.js.br +0 -0
  46. package/dist/chunk-QFNJCEMS.js.gz +0 -0
  47. package/dist/{chunk-GBKIWNW6.js → chunk-ZMIFFURL.js} +1054 -1042
  48. package/dist/chunk-ZMIFFURL.js.br +0 -0
  49. package/dist/chunk-ZMIFFURL.js.gz +0 -0
  50. package/dist/index.d.ts +32 -0
  51. package/dist/index.js +34 -34
  52. package/dist/index.js.br +0 -0
  53. package/dist/index.js.gz +0 -0
  54. package/dist/index.mjs +5 -5
  55. package/dist/index.mjs.br +0 -0
  56. package/dist/index.mjs.gz +0 -0
  57. package/dist/internals.d.ts +32 -0
  58. package/dist/internals.d.ts.map +1 -1
  59. package/dist/internals.js +78 -78
  60. package/dist/internals.js.br +0 -0
  61. package/dist/internals.js.gz +0 -0
  62. package/dist/internals.mjs +3 -3
  63. package/dist/internals.mjs.br +0 -0
  64. package/dist/internals.mjs.gz +0 -0
  65. package/dist/viewer/index.d.ts +32 -0
  66. package/dist/viewer/index.js +21 -21
  67. package/dist/viewer/index.js.br +0 -0
  68. package/dist/viewer/index.js.gz +0 -0
  69. package/dist/viewer/index.mjs +5 -5
  70. package/dist/viewer/index.mjs.br +0 -0
  71. package/dist/viewer/index.mjs.gz +0 -0
  72. package/package.json +1 -1
  73. package/dist/AiChatPanel-CGGUPVQX.mjs.br +0 -0
  74. package/dist/AiChatPanel-CGGUPVQX.mjs.gz +0 -0
  75. package/dist/AiChatPanel-UEFYTUJN.js.br +0 -0
  76. package/dist/AiChatPanel-UEFYTUJN.js.gz +0 -0
  77. package/dist/Model3DScene-QYXJNALP.js.br +0 -0
  78. package/dist/Model3DScene-QYXJNALP.js.gz +0 -0
  79. package/dist/Model3DScene-TU4NTHRM.mjs.br +0 -0
  80. package/dist/Model3DScene-TU4NTHRM.mjs.gz +0 -0
  81. package/dist/SurfaceChart3DScene-4VCO3DRP.js.br +0 -0
  82. package/dist/SurfaceChart3DScene-4VCO3DRP.js.gz +0 -0
  83. package/dist/SurfaceChart3DScene-VTJBKUQY.mjs.gz +0 -0
  84. package/dist/chunk-4GYNTY2G.mjs.br +0 -0
  85. package/dist/chunk-4GYNTY2G.mjs.gz +0 -0
  86. package/dist/chunk-4SGXEGVL.mjs.br +0 -0
  87. package/dist/chunk-4SGXEGVL.mjs.gz +0 -0
  88. package/dist/chunk-CABQXGPI.mjs.br +0 -0
  89. package/dist/chunk-CABQXGPI.mjs.gz +0 -0
  90. package/dist/chunk-GBKIWNW6.js.br +0 -0
  91. package/dist/chunk-GBKIWNW6.js.gz +0 -0
  92. package/dist/chunk-LE6YA5WB.js.br +0 -0
  93. package/dist/chunk-LE6YA5WB.js.gz +0 -0
  94. package/dist/chunk-N3NKU7SC.mjs.br +0 -0
  95. package/dist/chunk-N3NKU7SC.mjs.gz +0 -0
  96. package/dist/chunk-NUDH7TI2.js.br +0 -0
  97. package/dist/chunk-NUDH7TI2.js.gz +0 -0
  98. package/dist/chunk-TDUDH7S4.js.br +0 -0
  99. package/dist/chunk-TDUDH7S4.js.gz +0 -0
  100. package/dist/chunk-UIWY4XJT.js.br +0 -0
  101. package/dist/chunk-UIWY4XJT.js.gz +0 -0
  102. package/dist/chunk-YIPR3GKG.mjs.br +0 -0
  103. package/dist/chunk-YIPR3GKG.mjs.gz +0 -0
package/CHANGELOG.md CHANGED
@@ -4,6 +4,10 @@ All notable changes to this project are documented here.
4
4
  This file is generated from [Conventional Commits](https://www.conventionalcommits.org)
5
5
  by [git-cliff](https://git-cliff.org); do not edit it by hand.
6
6
 
7
+ ## [2.13.0](https://github.com/ChristopherVR/pptx-viewer/releases/tag/pptx-react-viewer@2.13.0) - 2026-08-01
8
+
9
+ ## [2.12.1](https://github.com/ChristopherVR/pptx-viewer/releases/tag/pptx-react-viewer@2.12.1) - 2026-08-01
10
+
7
11
  ## [2.12.0](https://github.com/ChristopherVR/pptx-viewer/releases/tag/pptx-react-viewer@2.12.0) - 2026-08-01
8
12
 
9
13
  ## [2.11.1](https://github.com/ChristopherVR/pptx-viewer/releases/tag/pptx-react-viewer@2.11.1) - 2026-07-31
@@ -1,14 +1,13 @@
1
1
  'use strict';
2
2
 
3
- var chunkUIWY4XJT_js = require('./chunk-UIWY4XJT.js');
4
- var chunkLE6YA5WB_js = require('./chunk-LE6YA5WB.js');
3
+ var chunkPTFCMG3A_js = require('./chunk-PTFCMG3A.js');
4
+ var chunk66ZHD7Y4_js = require('./chunk-66ZHD7Y4.js');
5
5
  require('./chunk-BXAK3JFM.js');
6
- require('./chunk-TDUDH7S4.js');
6
+ require('./chunk-DD2YRS6Z.js');
7
7
  require('./chunk-4VNS5WPM.js');
8
8
  var react = require('react');
9
9
  var reactI18next = require('react-i18next');
10
10
  var lu = require('react-icons/lu');
11
- var react$1 = require('@ai-sdk/react');
12
11
  var ai = require('ai');
13
12
  var jsxRuntime = require('react/jsx-runtime');
14
13
 
@@ -30,7 +29,7 @@ function useAiChat(bridge, config) {
30
29
  setInitError(void 0);
31
30
  void (async () => {
32
31
  try {
33
- const available = await chunkUIWY4XJT_js.isAiAvailable();
32
+ const available = await chunkPTFCMG3A_js.isAiAvailable();
34
33
  if (cancelled) {
35
34
  return;
36
35
  }
@@ -38,7 +37,7 @@ function useAiChat(bridge, config) {
38
37
  setState("unavailable");
39
38
  return;
40
39
  }
41
- const built = await chunkUIWY4XJT_js.createAiChatSession(bridge, configRef.current);
40
+ const built = await chunkPTFCMG3A_js.createAiChatSession(bridge, configRef.current);
42
41
  if (cancelled) {
43
42
  return;
44
43
  }
@@ -144,7 +143,7 @@ function withDeckContext(inner, bridge, strategy) {
144
143
  }
145
144
  let context = "";
146
145
  try {
147
- context = await chunkUIWY4XJT_js.buildDeckContext(bridge, { strategy, focus: {} });
146
+ context = await chunkPTFCMG3A_js.buildDeckContext(bridge, { strategy, focus: {} });
148
147
  } catch {
149
148
  context = "";
150
149
  }
@@ -163,7 +162,7 @@ function withDeckContext(inner, bridge, strategy) {
163
162
  }
164
163
 
165
164
  // src/viewer/hooks/ai/useAiConversation.ts
166
- function useAiConversation(session, config, bridge, options = {}) {
165
+ function useAiConversation(useChat, session, config, bridge, options = {}) {
167
166
  const [, forceRefresh] = react.useReducer((n) => n + 1, 0);
168
167
  const chatRef = react.useRef(null);
169
168
  const onToolTargetRef = react.useRef(options.onToolTarget);
@@ -174,7 +173,7 @@ function useAiConversation(session, config, bridge, options = {}) {
174
173
  () => withDeckContext(session.transport, bridge, config.contextStrategy ?? "outline"),
175
174
  [session, bridge, config.contextStrategy]
176
175
  );
177
- const chat = react$1.useChat({
176
+ const chat = useChat({
178
177
  transport,
179
178
  sendAutomaticallyWhen: clientExecutes ? session.sendAutomaticallyWhen : void 0,
180
179
  onError: (err) => config.onError?.(err),
@@ -207,7 +206,7 @@ function useAiConversation(session, config, bridge, options = {}) {
207
206
  continue;
208
207
  }
209
208
  seen.add(call.toolCallId);
210
- onToolTargetRef.current?.(chunkUIWY4XJT_js.toolCanvasTarget(call.toolName, call.input));
209
+ onToolTargetRef.current?.(chunkPTFCMG3A_js.toolCanvasTarget(call.toolName, call.input));
211
210
  }
212
211
  }, [chat.messages]);
213
212
  const send = react.useCallback(
@@ -283,7 +282,7 @@ function deriveTitle(messages) {
283
282
  }
284
283
  function useAiHistory(input) {
285
284
  const { deckId, messages, setMessages } = input;
286
- const store = react.useMemo(() => input.store ?? chunkUIWY4XJT_js.createChatHistoryStore(), [input.store]);
285
+ const store = react.useMemo(() => input.store ?? chunkPTFCMG3A_js.createChatHistoryStore(), [input.store]);
287
286
  const [activeChatId, setActiveChatId] = react.useState(newChatId);
288
287
  const [chats, setChats] = react.useState([]);
289
288
  const createdAtRef = react.useRef(Date.now());
@@ -426,7 +425,7 @@ function AiComposer({
426
425
  disabled: value.trim().length === 0,
427
426
  title: t("pptx.ai.send"),
428
427
  "aria-label": t("pptx.ai.send"),
429
- className: chunkLE6YA5WB_js.cn(
428
+ className: chunk66ZHD7Y4_js.cn(
430
429
  "shrink-0 rounded-sm p-1.5 transition-colors",
431
430
  value.trim().length === 0 ? "text-muted-foreground/50" : "bg-primary text-primary-foreground hover:bg-primary/90"
432
431
  ),
@@ -452,15 +451,15 @@ function AiFocusBar({
452
451
  onClearPicks
453
452
  }) {
454
453
  const { t } = reactI18next.useTranslation();
455
- const chips = chunkUIWY4XJT_js.focusTargetChips(targets, slides);
456
- const twoTables = chunkUIWY4XJT_js.isTwoTableFocus(targets, slides);
454
+ const chips = chunkPTFCMG3A_js.focusTargetChips(targets, slides);
455
+ const twoTables = chunkPTFCMG3A_js.isTwoTableFocus(targets, slides);
457
456
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "border-b border-border bg-secondary/30", children: [
458
457
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-wrap items-center gap-1 px-2.5 py-1.5", children: [
459
458
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[10px] font-semibold uppercase tracking-wide text-muted-foreground", children: t("pptx.ai.focusScope") }),
460
459
  chips.map((chip) => /* @__PURE__ */ jsxRuntime.jsx(
461
460
  "span",
462
461
  {
463
- className: chunkLE6YA5WB_js.cn(
462
+ className: chunk66ZHD7Y4_js.cn(
464
463
  "inline-flex max-w-[10rem] items-center rounded-full px-2 py-0.5 text-[11px]",
465
464
  hasPicks || isPinned ? "bg-primary/15 text-primary" : "bg-muted text-muted-foreground"
466
465
  ),
@@ -493,7 +492,7 @@ function AiFocusBar({
493
492
  title: t("pptx.ai.pickElement"),
494
493
  "aria-label": t("pptx.ai.pickAria"),
495
494
  "aria-pressed": pickMode,
496
- className: chunkLE6YA5WB_js.cn(
495
+ className: chunk66ZHD7Y4_js.cn(
497
496
  "rounded-sm p-1",
498
497
  pickMode ? "bg-primary text-primary-foreground" : "text-muted-foreground hover:bg-accent"
499
498
  ),
@@ -572,7 +571,7 @@ function AiHistoryList({ chats, activeChatId, onResume, onDelete }) {
572
571
  {
573
572
  type: "button",
574
573
  onClick: () => onResume(chat.id),
575
- className: chunkLE6YA5WB_js.cn(
574
+ className: chunk66ZHD7Y4_js.cn(
576
575
  "flex min-w-0 flex-1 items-start gap-2 rounded-sm px-2 py-1.5 text-left hover:bg-accent",
577
576
  chat.id === activeChatId && "bg-accent/60"
578
577
  ),
@@ -727,26 +726,26 @@ function AiToolCallCard({ part }) {
727
726
  const failed = part.state === "output-error";
728
727
  const done = part.state === "output-available";
729
728
  const running = !failed && !done;
730
- const activity = chunkUIWY4XJT_js.describeToolActivity(part.toolName, part.input, running ? "present" : "past");
729
+ const activity = chunkPTFCMG3A_js.describeToolActivity(part.toolName, part.input, running ? "present" : "past");
731
730
  const Icon = ICONS[activity.icon] ?? lu.LuWrench;
732
- const rawSummary = chunkUIWY4XJT_js.summarizeToolArgs(part.input);
731
+ const rawSummary = chunkPTFCMG3A_js.summarizeToolArgs(part.input);
733
732
  const statusLabel = failed ? t("pptx.ai.toolFailed") : done ? t("pptx.ai.toolDone") : t("pptx.ai.toolRunning");
734
733
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-[12px]", children: [
735
734
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-1.5", children: [
736
735
  /* @__PURE__ */ jsxRuntime.jsx(
737
736
  Icon,
738
737
  {
739
- className: chunkLE6YA5WB_js.cn(
738
+ className: chunk66ZHD7Y4_js.cn(
740
739
  "w-3.5 h-3.5 shrink-0",
741
740
  failed ? "text-destructive" : "text-muted-foreground"
742
741
  )
743
742
  }
744
743
  ),
745
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: chunkLE6YA5WB_js.cn("truncate", failed ? "text-destructive" : "text-foreground"), children: activity.label }),
744
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: chunk66ZHD7Y4_js.cn("truncate", failed ? "text-destructive" : "text-foreground"), children: activity.label }),
746
745
  /* @__PURE__ */ jsxRuntime.jsxs(
747
746
  "span",
748
747
  {
749
- className: chunkLE6YA5WB_js.cn(
748
+ className: chunk66ZHD7Y4_js.cn(
750
749
  "ml-auto inline-flex items-center gap-1 rounded-sm px-1.5 py-0.5 text-[10px]",
751
750
  failed ? "bg-destructive/15 text-destructive" : done ? "bg-primary/10 text-primary" : "bg-muted text-muted-foreground"
752
751
  ),
@@ -763,7 +762,7 @@ function AiToolCallCard({ part }) {
763
762
  rawSummary && /* @__PURE__ */ jsxRuntime.jsxs("details", { className: "group mt-0.5 pl-5", children: [
764
763
  /* @__PURE__ */ jsxRuntime.jsx("summary", { className: "cursor-pointer list-none text-[10px] text-muted-foreground/70 hover:text-muted-foreground", children: t("pptx.ai.toolDetails") }),
765
764
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-0.5 break-words font-mono text-[10px] text-muted-foreground/80", children: [
766
- chunkUIWY4XJT_js.toolLabel(part.toolName),
765
+ chunkPTFCMG3A_js.toolLabel(part.toolName),
767
766
  ": ",
768
767
  rawSummary
769
768
  ] })
@@ -794,7 +793,7 @@ function AiMessageList({ messages, isStreaming, bridge }) {
794
793
  /* @__PURE__ */ jsxRuntime.jsx(
795
794
  "div",
796
795
  {
797
- className: chunkLE6YA5WB_js.cn(
796
+ className: chunk66ZHD7Y4_js.cn(
798
797
  "mt-0.5 flex h-6 w-6 shrink-0 items-center justify-center rounded-full",
799
798
  isUser ? "bg-secondary text-muted-foreground" : "bg-primary/15 text-primary"
800
799
  ),
@@ -841,7 +840,7 @@ function AiMessageList({ messages, isStreaming, bridge }) {
841
840
  }
842
841
  function AiProposalCard({ proposal, onAccept, onReject }) {
843
842
  const { t } = reactI18next.useTranslation();
844
- const lines = proposal.summary.map(chunkUIWY4XJT_js.humanizeDiffLine);
843
+ const lines = proposal.summary.map(chunkPTFCMG3A_js.humanizeDiffLine);
845
844
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "rounded-md border border-primary/40 bg-primary/5 p-2.5", children: [
846
845
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-1.5 text-[11px] font-semibold uppercase tracking-wide text-primary", children: t("pptx.ai.proposedChange") }),
847
846
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-[12px] font-medium text-foreground", children: proposal.label }),
@@ -874,9 +873,16 @@ function AiProposalCard({ proposal, onAccept, onReject }) {
874
873
  ] })
875
874
  ] });
876
875
  }
877
- function AiConversation({ session, config, bridge, aiPanel, deckId }) {
876
+ function AiConversation({
877
+ useChat,
878
+ session,
879
+ config,
880
+ bridge,
881
+ aiPanel,
882
+ deckId
883
+ }) {
878
884
  const { t } = reactI18next.useTranslation();
879
- const chat = useAiConversation(session, config, bridge, {
885
+ const chat = useAiConversation(useChat, session, config, bridge, {
880
886
  // Live "AI as a collaborator" focus: as each tool runs, navigate to and
881
887
  // highlight the slide / element(s) it touches so the canvas mirrors the
882
888
  // assistant in real time (and colour edits tween while it is active).
@@ -1033,6 +1039,7 @@ function AiConversation({ session, config, bridge, aiPanel, deckId }) {
1033
1039
  ] });
1034
1040
  }
1035
1041
  function AiChatPanel({
1042
+ useChat,
1036
1043
  bridge,
1037
1044
  config,
1038
1045
  aiPanel,
@@ -1073,6 +1080,7 @@ function AiChatPanel({
1073
1080
  state === "ready" && session && /* @__PURE__ */ jsxRuntime.jsx(
1074
1081
  AiConversation,
1075
1082
  {
1083
+ useChat,
1076
1084
  session,
1077
1085
  config,
1078
1086
  bridge,
Binary file
Binary file
@@ -1,12 +1,11 @@
1
- import { isAiAvailable, createAiChatSession, toolCanvasTarget, createChatHistoryStore, focusTargetChips, isTwoTableFocus, humanizeDiffLine, buildDeckContext, describeToolActivity, summarizeToolArgs, toolLabel } from './chunk-N3NKU7SC.mjs';
2
- import { cn } from './chunk-YIPR3GKG.mjs';
1
+ import { isAiAvailable, createAiChatSession, toolCanvasTarget, createChatHistoryStore, focusTargetChips, isTwoTableFocus, humanizeDiffLine, buildDeckContext, describeToolActivity, summarizeToolArgs, toolLabel } from './chunk-CQ2CKMG4.mjs';
2
+ import { cn } from './chunk-GJEH27GD.mjs';
3
3
  import './chunk-TEXIGSA6.mjs';
4
- import './chunk-CABQXGPI.mjs';
4
+ import './chunk-OWGPRVRK.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';
8
8
  import { LuSparkles, LuX, LuLoaderCircle, LuTriangleAlert, LuHistory, LuMessageSquarePlus, LuTrash2, LuPlus, LuGitMerge, LuCrosshair, LuPinOff, LuPin, LuUser, LuBot, LuCheck, LuSquare, LuSend, LuMessageSquare, LuPalette, LuUndo2, LuWrench, LuStickyNote, LuFilm, LuNavigation, LuSearch, LuMove, LuChartColumn, LuLayoutTemplate, LuTable, LuShapes, LuType, LuEye } from 'react-icons/lu';
9
- import { useChat } from '@ai-sdk/react';
10
9
  import { isToolUIPart, isDynamicToolUIPart, getToolOrDynamicToolName, isTextUIPart } from 'ai';
11
10
  import { jsxs, jsx } from 'react/jsx-runtime';
12
11
 
@@ -161,7 +160,7 @@ function withDeckContext(inner, bridge, strategy) {
161
160
  }
162
161
 
163
162
  // src/viewer/hooks/ai/useAiConversation.ts
164
- function useAiConversation(session, config, bridge, options = {}) {
163
+ function useAiConversation(useChat, session, config, bridge, options = {}) {
165
164
  const [, forceRefresh] = useReducer((n) => n + 1, 0);
166
165
  const chatRef = useRef(null);
167
166
  const onToolTargetRef = useRef(options.onToolTarget);
@@ -872,9 +871,16 @@ function AiProposalCard({ proposal, onAccept, onReject }) {
872
871
  ] })
873
872
  ] });
874
873
  }
875
- function AiConversation({ session, config, bridge, aiPanel, deckId }) {
874
+ function AiConversation({
875
+ useChat,
876
+ session,
877
+ config,
878
+ bridge,
879
+ aiPanel,
880
+ deckId
881
+ }) {
876
882
  const { t } = useTranslation();
877
- const chat = useAiConversation(session, config, bridge, {
883
+ const chat = useAiConversation(useChat, session, config, bridge, {
878
884
  // Live "AI as a collaborator" focus: as each tool runs, navigate to and
879
885
  // highlight the slide / element(s) it touches so the canvas mirrors the
880
886
  // assistant in real time (and colour edits tween while it is active).
@@ -1031,6 +1037,7 @@ function AiConversation({ session, config, bridge, aiPanel, deckId }) {
1031
1037
  ] });
1032
1038
  }
1033
1039
  function AiChatPanel({
1040
+ useChat,
1034
1041
  bridge,
1035
1042
  config,
1036
1043
  aiPanel,
@@ -1071,6 +1078,7 @@ function AiChatPanel({
1071
1078
  state === "ready" && session && /* @__PURE__ */ jsx(
1072
1079
  AiConversation,
1073
1080
  {
1081
+ useChat,
1074
1082
  session,
1075
1083
  config,
1076
1084
  bridge,
Binary file
Binary file
@@ -1,4 +1,4 @@
1
- import { mountModel3D } from './chunk-CABQXGPI.mjs';
1
+ import { mountModel3D } from './chunk-OWGPRVRK.mjs';
2
2
  import './chunk-XGB3TDIC.mjs';
3
3
  import { useRef, useEffect } from 'react';
4
4
  import { jsx } from 'react/jsx-runtime';
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunkTDUDH7S4_js = require('./chunk-TDUDH7S4.js');
3
+ var chunkDD2YRS6Z_js = require('./chunk-DD2YRS6Z.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 chunkTDUDH7S4_js.mountModel3D(container, modelUrl, { width, height, interactive }).then((handle) => {
17
+ void chunkDD2YRS6Z_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 { mountSurfaceChart3D } from './chunk-CABQXGPI.mjs';
1
+ import { mountSurfaceChart3D } from './chunk-OWGPRVRK.mjs';
2
2
  import './chunk-XGB3TDIC.mjs';
3
3
  import { useRef, useEffect } from 'react';
4
4
  import { jsxs, jsx } from 'react/jsx-runtime';
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunkTDUDH7S4_js = require('./chunk-TDUDH7S4.js');
3
+ var chunkDD2YRS6Z_js = require('./chunk-DD2YRS6Z.js');
4
4
  require('./chunk-4VNS5WPM.js');
5
5
  var react = require('react');
6
6
  var jsxRuntime = require('react/jsx-runtime');
@@ -25,7 +25,7 @@ function SurfaceChart3DScene({
25
25
  return;
26
26
  }
27
27
  let disposed = false;
28
- void chunkTDUDH7S4_js.mountSurfaceChart3D(container, {
28
+ void chunkDD2YRS6Z_js.mountSurfaceChart3D(container, {
29
29
  cols,
30
30
  rows,
31
31
  heightMap,
@@ -1,8 +1,8 @@
1
- import { computeFocusTargets, aiChangeAnimationCss, changeGhostStyle, createChatHistoryStore, toRenderableParts } from './chunk-N3NKU7SC.mjs';
2
- import { useReducedMotion, useViewerState, useViewerOptions, useIsMobile, useResizablePanels, useDerivedSlideState, useZoomViewport, useEditorHistory, usePresentationSetup, useTouchGestures, useViewerDialogs, useEditorOperations, useViewerIntegration, useYjsDocumentSync, useCollaborationLivePatch, useFollowMode, useBroadcastFollower, scopeLayoutOptionsToActiveSlide, useToolbarVisibility, useKeyboardInsets, useModalDismissDrag, useCollaborativeState, useVirtualizedSlides, useSwipeNavigation, useSheetDismissDrag, detectTargetType, parseEmailUrl, parseSlideFromUrl, ACTION_VERB_MAP, downloadBlob } from './chunk-4GYNTY2G.mjs';
3
- import { SHAPE_PRESETS, DEFAULT_STROKE_COLOR, getConnectorPathGeometry, buildLineShadowCss, buildLineGlowFilter, renderConnectorMarker, MIN_ELEMENT_SIZE, getShapeVisualStyle, getTextStyleForElement, DEFAULT_TEXT_COLOR, renderVectorShape, isConnectorOrLineElement, build3DExtrusionData, getImageRenderStyle, cn, ANIMATION_PRESET_OPTIONS, resolvePalette, resolveStyle, layoutToCategory, wrapChrome, DEFAULT_FILL_COLOR, hasDagDuotoneEffect, renderDagDuotoneSvgFilter, getTextLayoutStyle, renderTableElement, renderMediaElement, shouldRenderFallbackLabel, getCropShapeClipPath, SLIDE_NAV_THUMBNAIL_WIDTH, styleShadow, styleStroke, colour, fitFontSize, smartArtNodeGroupProps, chevronPoints, SmartArtNodeText, truncate, renderStepDownProcess, renderAlternatingFlow, renderDescendingProcess, renderPictureAccentList, renderVerticalBlockList, renderGroupedList, renderPyramidList, renderHorizontalPictureList, renderAccentProcess, renderVerticalChevronList, isImageTiled, getImageTilingStyle, getDuotoneColors, getTextWarpStyle, renderTextSegments, buildReactChartViewModel, renderChartElement, buildTextBody3DSceneStyle, TOOLBAR_SECTIONS, SHORTCUT_REFERENCE_ITEMS as SHORTCUT_REFERENCE_ITEMS$1, buildTree, treeWidth, treeDepth, nodeOpacity, gearPath, resolveSmartArtDataPalette, DEFAULT_TEXT_FONT_SIZE, DEFAULT_FONT_FAMILY, HYPERLINK_COLOR, GRID_SIZE, CONNECTOR_ARROW_OPTIONS, ARROW_SIZE_OPTIONS, startMotionPathPreview, startPreviewAnimation, stopPreviewAnimation, THEME_COLOR_SWATCHES, STROKE_DASH_OPTIONS } from './chunk-YIPR3GKG.mjs';
1
+ import { computeFocusTargets, aiChangeAnimationCss, changeGhostStyle, createChatHistoryStore, toRenderableParts } from './chunk-CQ2CKMG4.mjs';
2
+ import { useReducedMotion, useViewerState, useViewerOptions, useIsMobile, useResizablePanels, useDerivedSlideState, useZoomViewport, useEditorHistory, usePresentationSetup, useTouchGestures, useViewerDialogs, useEditorOperations, useViewerIntegration, useYjsDocumentSync, useCollaborationLivePatch, useFollowMode, useBroadcastFollower, scopeLayoutOptionsToActiveSlide, useToolbarVisibility, useKeyboardInsets, useModalDismissDrag, useCollaborativeState, useVirtualizedSlides, useSwipeNavigation, useSheetDismissDrag, detectTargetType, parseEmailUrl, parseSlideFromUrl, ACTION_VERB_MAP, downloadBlob } from './chunk-H5H57XMH.mjs';
3
+ import { SHAPE_PRESETS, MIN_ELEMENT_SIZE, DEFAULT_STROKE_COLOR, getConnectorPathGeometry, buildLineShadowCss, buildLineGlowFilter, renderConnectorMarker, getShapeVisualStyle, getTextStyleForElement, DEFAULT_TEXT_COLOR, renderVectorShape, isConnectorOrLineElement, build3DExtrusionData, getImageRenderStyle, cn, ANIMATION_PRESET_OPTIONS, resolvePalette, resolveStyle, layoutToCategory, wrapChrome, DEFAULT_FILL_COLOR, hasDagDuotoneEffect, renderDagDuotoneSvgFilter, getTextLayoutStyle, renderTableElement, renderMediaElement, shouldRenderFallbackLabel, getCropShapeClipPath, SLIDE_NAV_THUMBNAIL_WIDTH, styleShadow, styleStroke, colour, fitFontSize, smartArtNodeGroupProps, chevronPoints, SmartArtNodeText, truncate, renderStepDownProcess, renderAlternatingFlow, renderDescendingProcess, renderPictureAccentList, renderVerticalBlockList, renderGroupedList, renderPyramidList, renderHorizontalPictureList, renderAccentProcess, renderVerticalChevronList, isImageTiled, getImageTilingStyle, getDuotoneColors, getTextWarpStyle, renderTextSegments, buildReactChartViewModel, renderChartElement, buildTextBody3DSceneStyle, TOOLBAR_SECTIONS, SHORTCUT_REFERENCE_ITEMS as SHORTCUT_REFERENCE_ITEMS$1, buildTree, treeWidth, treeDepth, nodeOpacity, gearPath, resolveSmartArtDataPalette, DEFAULT_TEXT_FONT_SIZE, DEFAULT_FONT_FAMILY, HYPERLINK_COLOR, GRID_SIZE, CONNECTOR_ARROW_OPTIONS, ARROW_SIZE_OPTIONS, startMotionPathPreview, startPreviewAnimation, stopPreviewAnimation, THEME_COLOR_SWATCHES, STROKE_DASH_OPTIONS } from './chunk-GJEH27GD.mjs';
4
4
  import { LOCALE_CATALOG, translationsEn } from './chunk-TEXIGSA6.mjs';
5
- import { hasShapeProperties, normalizeHexColor, colorWithOpacity, normalizeStrokeDashType, getSvgStrokeDasharray, getCompoundLineOffsets, getCompoundLineWidths, svgLineCap, hasTextProperties, getElementTransform, ACTION_BUTTON_PRESETS, isEditableTextElement, isElementRendered, isElementActionable, getAriaRole, getAriaLabel, getAriaRoleDescription, getImageEffectsOpacity, getImageEffectsFilter, getElementTransformWithoutRotation, LINK_TOOLTIP_HOST_CLASS, SWITCHABLE_LAYOUT_TYPES, DEFAULT_VIEWER_OPTIONS, compileEquationTemplateMathMl, buildUserFontFaceStyles, readStoredViewerPrefs, resolveThemeCatalogEntry, THEME_CATALOG, writeStoredViewerPrefs, openPptxFile, readBackstageRecentFile, viewerOptionsToPreferences, applyPreferenceToOptions, listAutosaveSnapshots, deleteAutosaveSnapshot, RULER_THICKNESS, RULER_FONT_SIZE, revealedSmartArtNodeCount, buildSmartArtA11y, buildCssGradientFromShapeStyle, resolveGroupChildFill, getGroupChildParentFill, ensureActionAffordanceStyles, resolveElementActionAffordance, actionAffordanceLabels, getComputedEffectStyle, getSoftEdgeSvgFilter, buildStrokeOutline, svgGradientFillRef, mediaTransportVisible, isInkElement, getElementLabel, buildPreviewElements, deriveSlideFieldContext, SLIDE_TRANSITION_OPTIONS, hiddenSlideCue, HIDDEN_SLIDE_SLASH_GRADIENT, HIDDEN_SLIDE_LABEL_KEY, themeToCssVars, applyMotionPathPreset, DEFAULT_INSERT_CHART_TYPE, hasCopyableFormat, createBackstagePresentation, printPropertiesFrameSlides, printPropertiesSlidesPerPage, VIEWER_OPTIONS_TABS, DEFAULT_QUICK_ACCESS_COMMAND_IDS, buildJoinCollaborationConfig, buildCreateCollaborationConfig, generateBroadcastRoomId, DEFAULT_BROADCAST_SERVER_URL, buildBroadcastViewerUrl, resolveTransportForServerUrl, resolveDrawingShapeNodeId, buildSummaryZoomView, getImageColorWashStyle, isImageLikeElement, getPendingSelectionRestore, restoreSegmentSelection, getTextCompensationTransform, applyChartBuildReveal, formatAxisValue, hasPressureVariation, getInkReplayStyles, INK_REPLAY_KEYFRAMES, resolveInkColor, resolveInkWidth, resolveInkOpacity, pressuresToWidths, getContentPartReplayStyles, resolveOleType, getOleTypeColor, getOleTypeLabel, filterRenderedElements, isLinkedTextBox, getOverflowSegments, shouldUseSvgWarp, ACTION_INDICATOR_CLASS, ACTION_INDICATOR_ICON_PATH, LINK_TOOLTIP_CLASS, LINK_TOOLTIP_PANEL_CLASS, LINK_TOOLTIP_LABEL_CLASS, LINK_TOOLTIP_HINT_CLASS, getSlideBackgroundStyle, filterCommands, resolveTitleBarStatusKey, TITLE_BAR_CLASSES, TITLE_BAR_DEFAULT_FILE_KEY, buildFieldSubstitutionContext, shouldConfirmExternalHyperlink, safeOpenUrl, isPpactionUrl, parsePpactionUrl, isPresentationAdvanceClick, PRESENT_TOOLBAR_CLASSES, buildContextMenuEntries, themeColorSchemesEqual, 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, activateModalFocus, buildCollaborationShareUrl, 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, computeInlineEditorRect, findSmartArtNodeText, setSmartArtNodeStyle, rebuildDrawingShapesIfCleared, shouldCommitSmartArtNodeText, updateSmartArtNodeText, getImageSvgFilters, buildDuotoneCacheKey, getDuotoneCachedResult, applyDuotone, setDuotoneCachedResult, buildCacheKey, DEFAULT_COLOR_CHANGE_TOLERANCE, getCachedResult, applyColorChange, setCachedResult, findChartPartTarget, dragValueForPart, withChartPointValue, dragAnchorViewY, withChartTitle, computeSmartArtLayout, buildSmartArt3DModel, extractPathPoints, generatePressureCircles, isBrowserOpenableMime, formatBytes, getOleBadgeLabel, openUrlInNewTab, getSubstituteFontFamily, getWarpPath, extraQuickAccessCommands, TAB_ROW_ACTION_CLASSES, listBackstageRecentFiles, BACKSTAGE_NAV, INSERT_CHART_TYPES, DEFAULT_MOTION_PATH_PRESET_ID, SLIDE_VIRTUALIZATION_THRESHOLD, getSlideTransitionAnimations, SLIDE_TRANSITION_KEYFRAMES, presentationInkPath, motionPathFor, setMotionPath, getShapeAdjustmentHandleDescriptor, PRESENTER_NAVIGATOR_LABEL_KEYS, PEN_COLORS, HIGHLIGHTER_COLORS, PRESET_THEMES, isUrlSafe, sanitizeMathMl, computeHandoutLayout, getPrintableArea, generateNoteLineCount, computeAllNotesPages, getNotesPrintableArea, QUICK_ACCESS_COMMAND_CATALOG, 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, groupIntoParagraphs, substituteFieldText, BACKSTAGE_TEMPLATES, formatBackstageDate, formatBackstageSize, backstageCardsFor, DEFAULT_VIEWER_PROFILE, resolveProfileInitial, AVATAR_COLOR_SWATCHES, ENTRANCE_PRESET_VALUES, EMPHASIS_PRESET_VALUES, EXIT_PRESET_VALUES, MOTION_PATH_FAMILIES, motionPathFamilyLabelKey, motionPathPresetsByFamily, motionPathPresetLabelKey, getConnectionSites, generateTicks, rulerDragToGuidePosition, getCommentMarkerPosition, motionPathToSvgD, motionPathEndPixel, isEditableMotionPath, setMotionPathEnd, buildThemeColorGrid, THEME_COLOR_SCHEME_KEYS, THEME_COLOR_LABELS, COMMON_FONTS, buildSmartArtPresetData, handleReadingViewKey, getLocalStorageUsageSummary, saveViewerProfile, clearAllLocalViewerData, mergeSlideTransition, 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, 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, TRANSITION_DIR_ARROWS, buildDirectionGrid, updateTagInCollections, deleteTagFromCollections, addTagToCollections, 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-CABQXGPI.mjs';
5
+ import { hasShapeProperties, normalizeHexColor, colorWithOpacity, normalizeStrokeDashType, getSvgStrokeDasharray, getCompoundLineOffsets, getCompoundLineWidths, svgLineCap, hasTextProperties, getElementTransform, ACTION_BUTTON_PRESETS, isEditableTextElement, isElementRendered, isElementActionable, getAriaRole, getAriaLabel, getAriaRoleDescription, getImageEffectsOpacity, getImageEffectsFilter, getElementTransformWithoutRotation, LINK_TOOLTIP_HOST_CLASS, SWITCHABLE_LAYOUT_TYPES, DEFAULT_VIEWER_OPTIONS, compileEquationTemplateMathMl, buildUserFontFaceStyles, readStoredViewerPrefs, resolveThemeCatalogEntry, THEME_CATALOG, writeStoredViewerPrefs, openPptxFile, readBackstageRecentFile, viewerOptionsToPreferences, applyPreferenceToOptions, listAutosaveSnapshots, deleteAutosaveSnapshot, RULER_THICKNESS, RULER_FONT_SIZE, revealedSmartArtNodeCount, buildSmartArtA11y, buildCssGradientFromShapeStyle, resolveGroupChildFill, getGroupChildParentFill, ensureActionAffordanceStyles, resolveElementActionAffordance, actionAffordanceLabels, getComputedEffectStyle, getSoftEdgeSvgFilter, buildStrokeOutline, svgGradientFillRef, mediaTransportVisible, isInkElement, getElementLabel, buildPreviewElements, deriveSlideFieldContext, SLIDE_TRANSITION_OPTIONS, hiddenSlideCue, HIDDEN_SLIDE_SLASH_GRADIENT, HIDDEN_SLIDE_LABEL_KEY, themeToCssVars, applyMotionPathPreset, DEFAULT_INSERT_CHART_TYPE, hasCopyableFormat, createBackstagePresentation, printPropertiesFrameSlides, printPropertiesSlidesPerPage, VIEWER_OPTIONS_TABS, DEFAULT_QUICK_ACCESS_COMMAND_IDS, buildJoinCollaborationConfig, buildCreateCollaborationConfig, generateBroadcastRoomId, DEFAULT_BROADCAST_SERVER_URL, buildBroadcastViewerUrl, resolveTransportForServerUrl, resolveDrawingShapeNodeId, buildSummaryZoomView, getImageColorWashStyle, isImageLikeElement, getPendingSelectionRestore, restoreSegmentSelection, getTextCompensationTransform, applyChartBuildReveal, formatAxisValue, hasPressureVariation, getInkReplayStyles, INK_REPLAY_KEYFRAMES, resolveInkColor, resolveInkWidth, resolveInkOpacity, pressuresToWidths, getContentPartReplayStyles, resolveOleType, getOleTypeColor, getOleTypeLabel, filterRenderedElements, isLinkedTextBox, getOverflowSegments, shouldUseSvgWarp, ACTION_INDICATOR_CLASS, ACTION_INDICATOR_ICON_PATH, LINK_TOOLTIP_CLASS, LINK_TOOLTIP_PANEL_CLASS, LINK_TOOLTIP_LABEL_CLASS, LINK_TOOLTIP_HINT_CLASS, getSlideBackgroundStyle, filterCommands, resolveTitleBarStatusKey, TITLE_BAR_CLASSES, TITLE_BAR_DEFAULT_FILE_KEY, buildFieldSubstitutionContext, shouldConfirmExternalHyperlink, safeOpenUrl, isPpactionUrl, parsePpactionUrl, isPresentationAdvanceClick, PRESENT_TOOLBAR_CLASSES, buildContextMenuEntries, themeColorSchemesEqual, 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, activateModalFocus, buildCollaborationShareUrl, 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, computeInlineEditorRect, findSmartArtNodeText, setSmartArtNodeStyle, rebuildDrawingShapesIfCleared, shouldCommitSmartArtNodeText, updateSmartArtNodeText, getImageSvgFilters, buildDuotoneCacheKey, getDuotoneCachedResult, applyDuotone, setDuotoneCachedResult, buildCacheKey, DEFAULT_COLOR_CHANGE_TOLERANCE, getCachedResult, applyColorChange, setCachedResult, findChartPartTarget, dragValueForPart, withChartPointValue, dragAnchorViewY, withChartTitle, computeSmartArtLayout, buildSmartArt3DModel, extractPathPoints, generatePressureCircles, isBrowserOpenableMime, formatBytes, getOleBadgeLabel, openUrlInNewTab, getSubstituteFontFamily, getWarpPath, extraQuickAccessCommands, TAB_ROW_ACTION_CLASSES, listBackstageRecentFiles, BACKSTAGE_NAV, INSERT_CHART_TYPES, DEFAULT_MOTION_PATH_PRESET_ID, SLIDE_VIRTUALIZATION_THRESHOLD, getSlideTransitionAnimations, SLIDE_TRANSITION_KEYFRAMES, presentationInkPath, motionPathFor, setMotionPath, getShapeAdjustmentHandleDescriptor, PRESENTER_NAVIGATOR_LABEL_KEYS, PEN_COLORS, HIGHLIGHTER_COLORS, PRESET_THEMES, isUrlSafe, sanitizeMathMl, computeHandoutLayout, getPrintableArea, generateNoteLineCount, computeAllNotesPages, getNotesPrintableArea, QUICK_ACCESS_COMMAND_CATALOG, 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, groupIntoParagraphs, substituteFieldText, BACKSTAGE_TEMPLATES, formatBackstageDate, formatBackstageSize, backstageCardsFor, DEFAULT_VIEWER_PROFILE, resolveProfileInitial, AVATAR_COLOR_SWATCHES, ENTRANCE_PRESET_VALUES, EMPHASIS_PRESET_VALUES, EXIT_PRESET_VALUES, MOTION_PATH_FAMILIES, motionPathFamilyLabelKey, motionPathPresetsByFamily, motionPathPresetLabelKey, getConnectionSites, generateTicks, rulerDragToGuidePosition, getCommentMarkerPosition, motionPathToSvgD, motionPathEndPixel, isEditableMotionPath, setMotionPathEnd, buildThemeColorGrid, THEME_COLOR_SCHEME_KEYS, THEME_COLOR_LABELS, COMMON_FONTS, buildSmartArtPresetData, handleReadingViewKey, getLocalStorageUsageSummary, saveViewerProfile, clearAllLocalViewerData, mergeSlideTransition, 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, 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, TRANSITION_DIR_ARROWS, buildDirectionGrid, updateTagInCollections, deleteTagFromCollections, addTagToCollections, 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-OWGPRVRK.mjs';
6
6
  import React35, { createContext, useMemo, useState, useCallback, lazy, forwardRef, useEffect, useRef, useContext, Suspense, useLayoutEffect, Fragment as Fragment$1, useDeferredValue } from 'react';
7
7
  import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
8
8
  import { useTranslation } from 'react-i18next';
@@ -1452,7 +1452,7 @@ function AccountPage() {
1452
1452
  return void 0;
1453
1453
  });
1454
1454
  };
1455
- const version = "2.12.0" ;
1455
+ const version = "2.13.0" ;
1456
1456
  return /* @__PURE__ */ jsxs("div", { className: "mt-8 max-w-[700px] space-y-6", children: [
1457
1457
  /* @__PURE__ */ jsxs("section", { className: cardClass, children: [
1458
1458
  /* @__PURE__ */ jsxs("h2", { className: "flex items-center gap-2 text-sm font-semibold", children: [
@@ -7233,7 +7233,8 @@ function ResizeHandles({
7233
7233
  ] });
7234
7234
  }
7235
7235
  var ConnectorElementRenderer = React35.memo(
7236
- ({
7236
+ // oxlint-disable-next-line prefer-arrow-callback -- named fn gives the memo component its displayName
7237
+ function ConnectorElementRendererInner({
7237
7238
  el,
7238
7239
  isSelected,
7239
7240
  canInteract,
@@ -7246,10 +7247,12 @@ var ConnectorElementRenderer = React35.memo(
7246
7247
  onResizePointerDown,
7247
7248
  onAdjustmentPointerDown,
7248
7249
  animationState
7249
- }) => {
7250
+ }) {
7250
7251
  const shapeEl = hasShapeProperties(el) ? el : void 0;
7251
- const viewWidth = Math.max(el.width, 1);
7252
- const viewHeight = Math.max(el.height, 1);
7252
+ const boxWidth = Math.max(el.width, MIN_ELEMENT_SIZE);
7253
+ const boxHeight = Math.max(el.height, MIN_ELEMENT_SIZE);
7254
+ const viewWidth = Math.max(el.width, 0);
7255
+ const viewHeight = Math.max(el.height, 0);
7253
7256
  const ss = shapeEl?.shapeStyle;
7254
7257
  const strokeWidth = Math.max(0, ss?.strokeWidth ?? 2);
7255
7258
  const strokeColor = normalizeHexColor(ss?.strokeColor, DEFAULT_STROKE_COLOR);
@@ -7293,8 +7296,8 @@ var ConnectorElementRenderer = React35.memo(
7293
7296
  style: {
7294
7297
  left: el.x,
7295
7298
  top: el.y,
7296
- width: Math.max(el.width, MIN_ELEMENT_SIZE),
7297
- height: Math.max(el.height, MIN_ELEMENT_SIZE),
7299
+ width: boxWidth,
7300
+ height: boxHeight,
7298
7301
  transform: getElementTransform(el),
7299
7302
  transformOrigin: "center",
7300
7303
  background: "transparent",
@@ -7310,7 +7313,7 @@ var ConnectorElementRenderer = React35.memo(
7310
7313
  /* @__PURE__ */ jsxs(
7311
7314
  "svg",
7312
7315
  {
7313
- viewBox: `0 0 ${viewWidth} ${viewHeight}`,
7316
+ viewBox: `0 0 ${boxWidth} ${boxHeight}`,
7314
7317
  className: "w-full h-full",
7315
7318
  preserveAspectRatio: "none",
7316
7319
  style: { overflow: "visible", pointerEvents: "none" },
@@ -8730,7 +8733,7 @@ function FailedToLoad() {
8730
8733
  var LazyModel3DScene = React35.lazy(
8731
8734
  async () => {
8732
8735
  try {
8733
- return await import('./Model3DScene-TU4NTHRM.mjs');
8736
+ return await import('./Model3DScene-E2XRQAMR.mjs');
8734
8737
  } catch {
8735
8738
  return { default: FailedToLoad };
8736
8739
  }
@@ -35053,7 +35056,16 @@ ${url}`)) {
35053
35056
  )
35054
35057
  );
35055
35058
  }
35056
- var AiChatPanel = lazy(() => import('./AiChatPanel-CGGUPVQX.mjs'));
35059
+ var AiChatPanel = lazy(async () => {
35060
+ const [{ useChat }, { default: Panel }] = await Promise.all([
35061
+ import('@ai-sdk/react'),
35062
+ import('./AiChatPanel-WMGS5TNX.mjs')
35063
+ ]);
35064
+ function BoundAiChatPanel(props) {
35065
+ return /* @__PURE__ */ jsx(Panel, { ...props, useChat });
35066
+ }
35067
+ return { default: BoundAiChatPanel };
35068
+ });
35057
35069
  function AiChatPanelLazy(props) {
35058
35070
  return /* @__PURE__ */ jsx(
35059
35071
  Suspense,
Binary file
Binary file