pptx-react-viewer 3.1.2 → 3.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (141) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/dist/{AiChatPanel-UCFQIWOQ.mjs → AiChatPanel-5JAQBLTU.mjs} +3 -3
  3. package/dist/AiChatPanel-5JAQBLTU.mjs.br +0 -0
  4. package/dist/AiChatPanel-5JAQBLTU.mjs.gz +0 -0
  5. package/dist/{AiChatPanel-4EYZDQXM.js → AiChatPanel-C3E7UV7T.js} +23 -23
  6. package/dist/AiChatPanel-C3E7UV7T.js.br +0 -0
  7. package/dist/AiChatPanel-C3E7UV7T.js.gz +0 -0
  8. package/dist/{Area3DChartScene-PMYXO4MR.mjs → Area3DChartScene-KE434ERF.mjs} +1 -1
  9. package/dist/Area3DChartScene-KE434ERF.mjs.br +0 -0
  10. package/dist/Area3DChartScene-KE434ERF.mjs.gz +0 -0
  11. package/dist/{Area3DChartScene-YBMC6NKY.js → Area3DChartScene-XY2PKRMA.js} +2 -2
  12. package/dist/Area3DChartScene-XY2PKRMA.js.br +0 -0
  13. package/dist/Area3DChartScene-XY2PKRMA.js.gz +0 -0
  14. package/dist/{Bar3DChartScene-CEOI6SU6.mjs → Bar3DChartScene-2KQABQZM.mjs} +1 -1
  15. package/dist/Bar3DChartScene-2KQABQZM.mjs.br +0 -0
  16. package/dist/Bar3DChartScene-2KQABQZM.mjs.gz +0 -0
  17. package/dist/{Bar3DChartScene-75DCA2ZA.js → Bar3DChartScene-YMADUUZN.js} +2 -2
  18. package/dist/Bar3DChartScene-YMADUUZN.js.br +0 -0
  19. package/dist/Bar3DChartScene-YMADUUZN.js.gz +0 -0
  20. package/dist/{Line3DChartScene-STGX6N6V.js → Line3DChartScene-AB7N6ORX.js} +2 -2
  21. package/dist/Line3DChartScene-AB7N6ORX.js.br +0 -0
  22. package/dist/Line3DChartScene-AB7N6ORX.js.gz +0 -0
  23. package/dist/{Line3DChartScene-EZZKWUZR.mjs → Line3DChartScene-K3BSK6BB.mjs} +1 -1
  24. package/dist/Line3DChartScene-K3BSK6BB.mjs.br +0 -0
  25. package/dist/Line3DChartScene-K3BSK6BB.mjs.gz +0 -0
  26. package/dist/{Model3DScene-FGQJKWL6.mjs → Model3DScene-NT5RRIB5.mjs} +1 -1
  27. package/dist/Model3DScene-NT5RRIB5.mjs.br +0 -0
  28. package/dist/Model3DScene-NT5RRIB5.mjs.gz +0 -0
  29. package/dist/{Model3DScene-DWRD63FH.js → Model3DScene-VSLGUWC7.js} +2 -2
  30. package/dist/Model3DScene-VSLGUWC7.js.br +0 -0
  31. package/dist/Model3DScene-VSLGUWC7.js.gz +0 -0
  32. package/dist/{PieChart3DScene-R3Y7OVVO.js → PieChart3DScene-6MUFRFYJ.js} +2 -2
  33. package/dist/PieChart3DScene-6MUFRFYJ.js.br +0 -0
  34. package/dist/PieChart3DScene-6MUFRFYJ.js.gz +0 -0
  35. package/dist/{PieChart3DScene-DH6RSJO6.mjs → PieChart3DScene-NFRBKII7.mjs} +1 -1
  36. package/dist/PieChart3DScene-NFRBKII7.mjs.br +0 -0
  37. package/dist/PieChart3DScene-NFRBKII7.mjs.gz +0 -0
  38. package/dist/{SurfaceChart3DScene-UM5HA3VO.js → SurfaceChart3DScene-2UQOKVFB.js} +2 -2
  39. package/dist/SurfaceChart3DScene-2UQOKVFB.js.br +0 -0
  40. package/dist/SurfaceChart3DScene-2UQOKVFB.js.gz +0 -0
  41. package/dist/{SurfaceChart3DScene-BMBU5RKI.mjs → SurfaceChart3DScene-UKIOTKJC.mjs} +1 -1
  42. package/dist/SurfaceChart3DScene-UKIOTKJC.mjs.br +0 -0
  43. package/dist/SurfaceChart3DScene-UKIOTKJC.mjs.gz +0 -0
  44. package/dist/{chunk-VLLZ3QL2.mjs → chunk-5WH6UVWC.mjs} +43 -16
  45. package/dist/chunk-5WH6UVWC.mjs.br +0 -0
  46. package/dist/chunk-5WH6UVWC.mjs.gz +0 -0
  47. package/dist/{chunk-W3J6SNVE.mjs → chunk-ACVLIDUS.mjs} +1 -1
  48. package/dist/chunk-ACVLIDUS.mjs.br +0 -0
  49. package/dist/chunk-ACVLIDUS.mjs.gz +0 -0
  50. package/dist/{chunk-4VVOTEQ4.mjs → chunk-BZ6OM3H5.mjs} +3 -4
  51. package/dist/chunk-BZ6OM3H5.mjs.br +0 -0
  52. package/dist/chunk-BZ6OM3H5.mjs.gz +0 -0
  53. package/dist/{chunk-MQEG5GOV.js → chunk-GCOGKBK3.js} +1144 -1117
  54. package/dist/chunk-GCOGKBK3.js.br +0 -0
  55. package/dist/chunk-GCOGKBK3.js.gz +0 -0
  56. package/dist/{chunk-7ZQ2FZXE.js → chunk-HMZA25W2.js} +1 -1
  57. package/dist/chunk-HMZA25W2.js.br +0 -0
  58. package/dist/{chunk-7ZQ2FZXE.js.gz → chunk-HMZA25W2.js.gz} +0 -0
  59. package/dist/{chunk-YNUYFR2T.js → chunk-K4DUVYZ7.js} +3 -3
  60. package/dist/chunk-K4DUVYZ7.js.br +0 -0
  61. package/dist/chunk-K4DUVYZ7.js.gz +0 -0
  62. package/dist/{chunk-2HLDBQH7.js → chunk-OABOL32L.js} +148 -148
  63. package/dist/chunk-OABOL32L.js.br +0 -0
  64. package/dist/chunk-OABOL32L.js.gz +0 -0
  65. package/dist/{chunk-S546O4W2.mjs → chunk-SRAXNEJX.mjs} +1 -1
  66. package/dist/chunk-SRAXNEJX.mjs.br +0 -0
  67. package/dist/{chunk-S546O4W2.mjs.gz → chunk-SRAXNEJX.mjs.gz} +0 -0
  68. package/dist/{chunk-WVIKFMNS.js → chunk-XBR7W47W.js} +400 -401
  69. package/dist/chunk-XBR7W47W.js.br +0 -0
  70. package/dist/chunk-XBR7W47W.js.gz +0 -0
  71. package/dist/{chunk-O5DKWJDK.mjs → chunk-Z3DEULRJ.mjs} +1 -1
  72. package/dist/chunk-Z3DEULRJ.mjs.br +0 -0
  73. package/dist/chunk-Z3DEULRJ.mjs.gz +0 -0
  74. package/dist/index.js +45 -45
  75. package/dist/index.js.br +0 -0
  76. package/dist/index.js.gz +0 -0
  77. package/dist/index.mjs +5 -5
  78. package/dist/index.mjs.br +0 -0
  79. package/dist/index.mjs.gz +0 -0
  80. package/dist/internals.js +78 -78
  81. package/dist/internals.js.br +0 -0
  82. package/dist/internals.js.gz +0 -0
  83. package/dist/internals.mjs +3 -3
  84. package/dist/internals.mjs.br +0 -0
  85. package/dist/internals.mjs.gz +0 -0
  86. package/dist/pptx-viewer.css +1 -1
  87. package/dist/pptx-viewer.css.br +0 -0
  88. package/dist/pptx-viewer.css.gz +0 -0
  89. package/dist/viewer/index.js +26 -26
  90. package/dist/viewer/index.js.br +0 -0
  91. package/dist/viewer/index.js.gz +0 -0
  92. package/dist/viewer/index.mjs +5 -5
  93. package/dist/viewer/index.mjs.br +0 -0
  94. package/dist/viewer/index.mjs.gz +0 -0
  95. package/package.json +1 -1
  96. package/dist/AiChatPanel-4EYZDQXM.js.br +0 -0
  97. package/dist/AiChatPanel-4EYZDQXM.js.gz +0 -0
  98. package/dist/AiChatPanel-UCFQIWOQ.mjs.br +0 -0
  99. package/dist/AiChatPanel-UCFQIWOQ.mjs.gz +0 -0
  100. package/dist/Area3DChartScene-PMYXO4MR.mjs.br +0 -0
  101. package/dist/Area3DChartScene-PMYXO4MR.mjs.gz +0 -0
  102. package/dist/Area3DChartScene-YBMC6NKY.js.br +0 -0
  103. package/dist/Area3DChartScene-YBMC6NKY.js.gz +0 -0
  104. package/dist/Bar3DChartScene-75DCA2ZA.js.br +0 -0
  105. package/dist/Bar3DChartScene-75DCA2ZA.js.gz +0 -0
  106. package/dist/Bar3DChartScene-CEOI6SU6.mjs.br +0 -0
  107. package/dist/Bar3DChartScene-CEOI6SU6.mjs.gz +0 -0
  108. package/dist/Line3DChartScene-EZZKWUZR.mjs.br +0 -0
  109. package/dist/Line3DChartScene-EZZKWUZR.mjs.gz +0 -0
  110. package/dist/Line3DChartScene-STGX6N6V.js.br +0 -0
  111. package/dist/Line3DChartScene-STGX6N6V.js.gz +0 -0
  112. package/dist/Model3DScene-DWRD63FH.js.br +0 -0
  113. package/dist/Model3DScene-DWRD63FH.js.gz +0 -0
  114. package/dist/Model3DScene-FGQJKWL6.mjs.br +0 -0
  115. package/dist/Model3DScene-FGQJKWL6.mjs.gz +0 -0
  116. package/dist/PieChart3DScene-DH6RSJO6.mjs.br +0 -0
  117. package/dist/PieChart3DScene-DH6RSJO6.mjs.gz +0 -0
  118. package/dist/PieChart3DScene-R3Y7OVVO.js.br +0 -0
  119. package/dist/PieChart3DScene-R3Y7OVVO.js.gz +0 -0
  120. package/dist/SurfaceChart3DScene-BMBU5RKI.mjs.br +0 -0
  121. package/dist/SurfaceChart3DScene-BMBU5RKI.mjs.gz +0 -0
  122. package/dist/SurfaceChart3DScene-UM5HA3VO.js.br +0 -0
  123. package/dist/SurfaceChart3DScene-UM5HA3VO.js.gz +0 -0
  124. package/dist/chunk-2HLDBQH7.js.br +0 -0
  125. package/dist/chunk-2HLDBQH7.js.gz +0 -0
  126. package/dist/chunk-4VVOTEQ4.mjs.br +0 -0
  127. package/dist/chunk-4VVOTEQ4.mjs.gz +0 -0
  128. package/dist/chunk-7ZQ2FZXE.js.br +0 -0
  129. package/dist/chunk-MQEG5GOV.js.br +0 -0
  130. package/dist/chunk-MQEG5GOV.js.gz +0 -0
  131. package/dist/chunk-O5DKWJDK.mjs.br +0 -0
  132. package/dist/chunk-O5DKWJDK.mjs.gz +0 -0
  133. package/dist/chunk-S546O4W2.mjs.br +0 -0
  134. package/dist/chunk-VLLZ3QL2.mjs.br +0 -0
  135. package/dist/chunk-VLLZ3QL2.mjs.gz +0 -0
  136. package/dist/chunk-W3J6SNVE.mjs.br +0 -0
  137. package/dist/chunk-W3J6SNVE.mjs.gz +0 -0
  138. package/dist/chunk-WVIKFMNS.js.br +0 -0
  139. package/dist/chunk-WVIKFMNS.js.gz +0 -0
  140. package/dist/chunk-YNUYFR2T.js.br +0 -0
  141. package/dist/chunk-YNUYFR2T.js.gz +0 -0
package/CHANGELOG.md CHANGED
@@ -7,6 +7,20 @@ 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
+ ## [3.1.2](https://github.com/ChristopherVR/pptx-viewer/releases/tag/pptx-react-viewer@3.1.2) - 2026-08-28
11
+
12
+ ### Bug Fixes
13
+
14
+ - **react:** Resolve rotate-handle live preview to the real element (by @ChristopherVR) ([f896b61](https://github.com/ChristopherVR/pptx-viewer/commit/f896b619431222916ff5f9e0edb9aa435cb2adf9))
15
+ - **ui:** Stop ribbon action buttons from stretching to fill the row height (by @ChristopherVR) ([d53ce5b](https://github.com/ChristopherVR/pptx-viewer/commit/d53ce5b4b00e5cfaab70d8a230f37d3f0c241a96))
16
+ - **core:** Reindex chart data-point overrides after removing a category (by @ChristopherVR) ([7bd64f8](https://github.com/ChristopherVR/pptx-viewer/commit/7bd64f821d66d1bc7b3f91f46a3e262eda1072ee))
17
+ - **shared:** Repair print, drop Package for Sharing, wire Options behavior (by @ChristopherVR) ([bcc2ac7](https://github.com/ChristopherVR/pptx-viewer/commit/bcc2ac7420b50f69d7217f3b9915f0b3e0698640))
18
+ - **react:** Repair print, drop Package for Sharing, wire Options behavior (by @ChristopherVR) ([30822ae](https://github.com/ChristopherVR/pptx-viewer/commit/30822ae70806ba81702e4cd1b662ba038965c460))
19
+
20
+ ### Security
21
+
22
+ - **shared:** Drop duplicate Protected View banner strings (by @ChristopherVR) ([1c35863](https://github.com/ChristopherVR/pptx-viewer/commit/1c358639246cc7fe058e2afe6f95cf52893dfff7))
23
+
10
24
  ## [3.1.1](https://github.com/ChristopherVR/pptx-viewer/releases/tag/pptx-react-viewer@3.1.1) - 2026-08-28
11
25
 
12
26
  ### Bug Fixes
@@ -1,7 +1,7 @@
1
- import { deckIdFromBridge, isAiAvailable, createAiChatSession, toolCanvasTarget, createChatHistoryStore, focusTargetChips, isTwoTableFocus, humanizeDiffLine, buildDeckContext, describeToolActivity, summarizeToolArgs, toolLabel } from './chunk-O5DKWJDK.mjs';
2
- import { cn } from './chunk-W3J6SNVE.mjs';
1
+ import { deckIdFromBridge, isAiAvailable, createAiChatSession, toolCanvasTarget, createChatHistoryStore, focusTargetChips, isTwoTableFocus, humanizeDiffLine, buildDeckContext, describeToolActivity, summarizeToolArgs, toolLabel } from './chunk-Z3DEULRJ.mjs';
2
+ import { cn } from './chunk-ACVLIDUS.mjs';
3
3
  import './chunk-ARJE3V6V.mjs';
4
- import './chunk-S546O4W2.mjs';
4
+ import './chunk-SRAXNEJX.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,9 +1,9 @@
1
1
  'use strict';
2
2
 
3
- var chunkYNUYFR2T_js = require('./chunk-YNUYFR2T.js');
4
- var chunk2HLDBQH7_js = require('./chunk-2HLDBQH7.js');
3
+ var chunkK4DUVYZ7_js = require('./chunk-K4DUVYZ7.js');
4
+ var chunkOABOL32L_js = require('./chunk-OABOL32L.js');
5
5
  require('./chunk-SWRY3SI5.js');
6
- require('./chunk-7ZQ2FZXE.js');
6
+ require('./chunk-HMZA25W2.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 chunkYNUYFR2T_js.isAiAvailable();
26
+ const available = await chunkK4DUVYZ7_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 chunkYNUYFR2T_js.createAiChatSession(bridge, configRef.current);
34
+ const built = await chunkK4DUVYZ7_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 chunkYNUYFR2T_js.buildDeckContext(bridge, { strategy, focus: {} });
140
+ context = await chunkK4DUVYZ7_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?.(chunkYNUYFR2T_js.toolCanvasTarget(call.toolName, call.input));
203
+ onToolTargetRef.current?.(chunkK4DUVYZ7_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 ?? chunkYNUYFR2T_js.createChatHistoryStore(), [input.store]);
279
+ const store = react.useMemo(() => input.store ?? chunkK4DUVYZ7_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: chunk2HLDBQH7_js.cn(
422
+ className: chunkOABOL32L_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 = chunkYNUYFR2T_js.focusTargetChips(targets, slides);
449
- const twoTables = chunkYNUYFR2T_js.isTwoTableFocus(targets, slides);
448
+ const chips = chunkK4DUVYZ7_js.focusTargetChips(targets, slides);
449
+ const twoTables = chunkK4DUVYZ7_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: chunk2HLDBQH7_js.cn(
456
+ className: chunkOABOL32L_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: chunk2HLDBQH7_js.cn(
489
+ className: chunkOABOL32L_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: chunk2HLDBQH7_js.cn(
568
+ className: chunkOABOL32L_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 = chunkYNUYFR2T_js.describeToolActivity(part.toolName, part.input, running ? "present" : "past");
723
+ const activity = chunkK4DUVYZ7_js.describeToolActivity(part.toolName, part.input, running ? "present" : "past");
724
724
  const Icon = ICONS[activity.icon] ?? lu.LuWrench;
725
- const rawSummary = chunkYNUYFR2T_js.summarizeToolArgs(part.input);
725
+ const rawSummary = chunkK4DUVYZ7_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: chunk2HLDBQH7_js.cn(
732
+ className: chunkOABOL32L_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: chunk2HLDBQH7_js.cn("truncate", failed ? "text-destructive" : "text-foreground"), children: activity.label }),
738
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: chunkOABOL32L_js.cn("truncate", failed ? "text-destructive" : "text-foreground"), children: activity.label }),
739
739
  /* @__PURE__ */ jsxRuntime.jsxs(
740
740
  "span",
741
741
  {
742
- className: chunk2HLDBQH7_js.cn(
742
+ className: chunkOABOL32L_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
- chunkYNUYFR2T_js.toolLabel(part.toolName),
759
+ chunkK4DUVYZ7_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: chunk2HLDBQH7_js.cn(
790
+ className: chunkOABOL32L_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(chunkYNUYFR2T_js.humanizeDiffLine);
837
+ const lines = proposal.summary.map(chunkK4DUVYZ7_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(() => chunkYNUYFR2T_js.deckIdFromBridge(bridge), [bridge]);
1045
+ const deckId = react.useMemo(() => chunkK4DUVYZ7_js.deckIdFromBridge(bridge), [bridge]);
1046
1046
  return /* @__PURE__ */ jsxRuntime.jsxs(
1047
1047
  "div",
1048
1048
  {
Binary file
Binary file
@@ -1,4 +1,4 @@
1
- import { mountAreaChart3D } from './chunk-S546O4W2.mjs';
1
+ import { mountAreaChart3D } from './chunk-SRAXNEJX.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 chunk7ZQ2FZXE_js = require('./chunk-7ZQ2FZXE.js');
3
+ var chunkHMZA25W2_js = require('./chunk-HMZA25W2.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 Area3DChartScene({ options }) {
14
14
  return;
15
15
  }
16
16
  let disposed = false;
17
- void chunk7ZQ2FZXE_js.mountAreaChart3D(container, options).then((handle) => {
17
+ void chunkHMZA25W2_js.mountAreaChart3D(container, options).then((handle) => {
18
18
  if (disposed) {
19
19
  handle.dispose();
20
20
  } else {
@@ -1,4 +1,4 @@
1
- import { mountBarChart3D } from './chunk-S546O4W2.mjs';
1
+ import { mountBarChart3D } from './chunk-SRAXNEJX.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 chunk7ZQ2FZXE_js = require('./chunk-7ZQ2FZXE.js');
3
+ var chunkHMZA25W2_js = require('./chunk-HMZA25W2.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 Bar3DChartScene({ options }) {
14
14
  return;
15
15
  }
16
16
  let disposed = false;
17
- void chunk7ZQ2FZXE_js.mountBarChart3D(container, options).then((handle) => {
17
+ void chunkHMZA25W2_js.mountBarChart3D(container, options).then((handle) => {
18
18
  if (disposed) {
19
19
  handle.dispose();
20
20
  } else {
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunk7ZQ2FZXE_js = require('./chunk-7ZQ2FZXE.js');
3
+ var chunkHMZA25W2_js = require('./chunk-HMZA25W2.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 Line3DChartScene({ options }) {
14
14
  return;
15
15
  }
16
16
  let disposed = false;
17
- void chunk7ZQ2FZXE_js.mountLineChart3D(container, options).then((handle) => {
17
+ void chunkHMZA25W2_js.mountLineChart3D(container, options).then((handle) => {
18
18
  if (disposed) {
19
19
  handle.dispose();
20
20
  } else {
@@ -1,4 +1,4 @@
1
- import { mountLineChart3D } from './chunk-S546O4W2.mjs';
1
+ import { mountLineChart3D } from './chunk-SRAXNEJX.mjs';
2
2
  import './chunk-XGB3TDIC.mjs';
3
3
  import { useRef, useEffect } from 'react';
4
4
  import { jsx } from 'react/jsx-runtime';
@@ -1,4 +1,4 @@
1
- import { mountModel3D } from './chunk-S546O4W2.mjs';
1
+ import { mountModel3D } from './chunk-SRAXNEJX.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 chunk7ZQ2FZXE_js = require('./chunk-7ZQ2FZXE.js');
3
+ var chunkHMZA25W2_js = require('./chunk-HMZA25W2.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 chunk7ZQ2FZXE_js.mountModel3D(container, modelUrl, { width, height, interactive }).then((handle) => {
17
+ void chunkHMZA25W2_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,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunk7ZQ2FZXE_js = require('./chunk-7ZQ2FZXE.js');
3
+ var chunkHMZA25W2_js = require('./chunk-HMZA25W2.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 PieChart3DScene({ options }) {
14
14
  return;
15
15
  }
16
16
  let disposed = false;
17
- void chunk7ZQ2FZXE_js.mountPieChart3D(container, options).then((handle) => {
17
+ void chunkHMZA25W2_js.mountPieChart3D(container, options).then((handle) => {
18
18
  if (disposed) {
19
19
  handle.dispose();
20
20
  } else {
@@ -1,4 +1,4 @@
1
- import { mountPieChart3D } from './chunk-S546O4W2.mjs';
1
+ import { mountPieChart3D } from './chunk-SRAXNEJX.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 chunk7ZQ2FZXE_js = require('./chunk-7ZQ2FZXE.js');
3
+ var chunkHMZA25W2_js = require('./chunk-HMZA25W2.js');
4
4
  require('./chunk-4VNS5WPM.js');
5
5
  var react = require('react');
6
6
  var jsxRuntime = require('react/jsx-runtime');
@@ -16,7 +16,7 @@ function SurfaceChart3DScene({
16
16
  return;
17
17
  }
18
18
  let disposed = false;
19
- void chunk7ZQ2FZXE_js.mountSurfaceChart3D(container, options).then((handle) => {
19
+ void chunkHMZA25W2_js.mountSurfaceChart3D(container, options).then((handle) => {
20
20
  if (disposed) {
21
21
  handle.dispose();
22
22
  } else {
@@ -1,4 +1,4 @@
1
- import { mountSurfaceChart3D } from './chunk-S546O4W2.mjs';
1
+ import { mountSurfaceChart3D } from './chunk-SRAXNEJX.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-O5DKWJDK.mjs';
2
- import { useViewerOptions, useReducedMotion, useViewerState, useIsMobile, useResizablePanels, useDerivedSlideState, useZoomViewport, useEditorHistory, usePresentationSetup, useTouchGestures, useViewerDialogs, useEditorOperations, useViewerIntegration, useLayoutSwitching, ViewerOptionsContext, useYjsDocumentSync, useCollaborationLivePatch, useFollowMode, useBroadcastFollower, scopeLayoutOptionsToActiveSlide, useToolbarVisibility, useKeyboardInsets, useModalDismissDrag, useCollaborativeState, useViewerOptionsContext, useVirtualizedSlides, useSwipeNavigation, useSheetDismissDrag, detectTargetType, parseEmailUrl, parseSlideFromUrl, ACTION_VERB_MAP } from './chunk-4VVOTEQ4.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-W3J6SNVE.mjs';
1
+ import { computeFocusTargets, aiChangeAnimationCss, changeGhostStyle, createChatHistoryStore, toRenderableParts } from './chunk-Z3DEULRJ.mjs';
2
+ import { useViewerOptions, useReducedMotion, useViewerState, useIsMobile, useResizablePanels, useDerivedSlideState, useZoomViewport, useEditorHistory, usePresentationSetup, useTouchGestures, useViewerDialogs, useEditorOperations, useViewerIntegration, useLayoutSwitching, ViewerOptionsContext, useYjsDocumentSync, useCollaborationLivePatch, useFollowMode, useBroadcastFollower, scopeLayoutOptionsToActiveSlide, useToolbarVisibility, useKeyboardInsets, useModalDismissDrag, useCollaborativeState, useViewerOptionsContext, useVirtualizedSlides, useSwipeNavigation, useSheetDismissDrag, detectTargetType, parseEmailUrl, parseSlideFromUrl, ACTION_VERB_MAP } from './chunk-BZ6OM3H5.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-ACVLIDUS.mjs';
4
4
  import { LOCALE_CATALOG, translationsEn } from './chunk-ARJE3V6V.mjs';
5
- import { hasShapeProperties, normalizeHexColor, colorWithOpacity, normalizeStrokeDashType, getSvgStrokeDasharray, getCompoundLineOffsets, getCompoundLineWidths, svgLineCap, hasTextProperties, getElementTransform, getAriaRoleDescription, getAriaLabel, getAriaRole, resolveElementInteractivity, isEditableTextElement, isElementRendered, isElementActionable, getImageEffectsOpacity, getImageEffectsFilter, inlineElementPointerEvents, isHollowShapeElement, LINK_TOOLTIP_HOST_CLASS, ACTION_BUTTON_PRESETS, mediaTransportVisible, isInkElement, getGroupChildParentFill, getElementLabel, SWITCHABLE_LAYOUT_TYPES, compileEquationTemplateMathMl, buildUserFontFaceStyles, readStoredViewerPrefs, resolveThemeCatalogEntry, THEME_CATALOG, writeStoredViewerPrefs, openPptxFile, readBackstageRecentFile, resolveAutosaveActivation, viewerOptionsToPreferences, applyPreferenceToOptions, listAutosaveSnapshots, deleteAutosaveSnapshot, resolveExpiredAutosaveSnapshots, resolveHistoryDepth, applyAutoCorrect, resolveImageResolutionScale, resolveAutosaveIntervalMs, resolveAutosaveIntervalSeconds, shouldShowAutosaveRecoveryPrompt, resolveOptionRootClasses, resolve3DRenderingFlags, paintedStrokeWidth, buildCssGradientFromShapeStyle, ensureActionAffordanceStyles, resolveElementActionAffordance, actionAffordanceLabels, getComputedEffectStyle, getSoftEdgeSvgFilter, buildStrokeOutline, buildHollowHitOutline, buildSubpathFillOverlay, isImageLikeElement, getComputedFillStyle, strokeOutlineViewBox, revealedSmartArtNodeCount, buildSmartArtA11y, computeSmartArtElementLayout, flattenNodes, buildSummaryZoomView, isImageTiled, getImageColorWashStyle, placeCaretAtEnd, getPendingSelectionRestore, restoreSegmentSelection, getTextCompensationTransform, resolveChartKind, ensureChartInteractionStyles, applyChartPartHighlight, applyChartBuildReveal, formatAxisValue, hasPressureVariation, getInkReplayStyles, INK_REPLAY_KEYFRAMES, resolveInkColor, resolveInkWidth, resolveInkOpacity, pressuresToWidths, getContentPartReplayStyles, resolveOleType, getOleAriaLabel, 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, shouldClearAutosaveCacheOnClose, applyMotionPathPreset, resetSlideLayoutPath, DEFAULT_INSERT_CHART_KIND, hasCopyableFormat, templateSchemeFromTheme, createBackstagePresentation, playFeedbackSound, shouldDiscardAutosaveOnSuccessfulSave, 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, buildChromeStyle, getImageSvgFilters, buildDuotoneCacheKey, getDuotoneCachedResult, applyDuotone, setDuotoneCachedResult, buildCacheKey, DEFAULT_COLOR_CHANGE_TOLERANCE, getCachedResult, applyColorChange, setCachedResult, findChartPartTarget, advanceChartValueDrag, beginChartValueDrag, buildSurfaceChart3DDataForElement, buildBarChart3DDataForElement, buildLineChart3DDataForElement, buildAreaChart3DDataForElement, buildPieChart3DDataForElement, withChartTitle, buildSmartArt3DModel, extractPathPoints, generatePressureCircles, generateNibMarks, isBrowserOpenableMime, formatBytes, getOleDisplayName, getOleBadgeLabel, openUrlInNewTab, getSubstituteFontFamily, getWarpPath, getSlideBackgroundStyle, filterCommands, resolveTitleBarStatusKey, TITLE_BAR_CLASSES, TITLE_BAR_DEFAULT_FILE_KEY, resolveScreenTip, masterViewBackgroundColor, buildFieldSubstitutionContext, shouldConfirmExternalHyperlink, safeOpenUrl, resolvePresentationAction, isPpactionUrl, parsePpactionUrl, isPresentationAdvanceClick, toggleBlackboard, PRESENT_TOOLBAR_CLASSES, buildContextMenuEntries, themeColorSchemesEqual, EXPANDED_MAX_HEIGHT, STATUS_BAR_CLASSES, buildBarActions, formatVersionTimestamp, formatRelativeTime, scanAvailableFontFamilies, PRESETS, CATEGORIES, convertOmmlToLatex, compileLatexEquation, convertLatexToOmml, EQUATION_TEMPLATES, clampPercent, resolveDefaultPrintSettings, 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, readSoundFileAsDataUrl, applyTransitionSoundFile, playSlideTransitionPreview, RIBBON_TRANSITION_PRESETS, transitionSoundOptions, transitionSoundSelectedValue, 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, resolveNotesSchematicBodyFontSizePx, motionPathFor, setMotionPath, getShapeAdjustmentHandleDescriptors, PRESENTER_NAVIGATOR_LABEL_KEYS, PEN_COLORS, HIGHLIGHTER_COLORS, isBlackboardActive, slideSizeToCanvasPx, resolveSelectionPaneRename, PRESET_THEMES, resolveNotesSegments, segmentsToEditorHtml, DEBOUNCE_MS, createPlainNotesSegments, parseSegmentsFromRichEditor, segmentsToPlainText, getCurrentParagraphIndex, segmentsToParagraphs, paragraphsToSegments, MAX_INDENT_LEVEL, INDENT_PX, isUrlSafe, buildNotesPrintHtml, toggleSheet, sanitizeMathMl, computeHandoutLayout, getPrintableArea, generateNoteLineCount, computeAllNotesPages, getNotesPrintableArea, downloadBlob, clampOptionNumber, 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, TRANSITION_SOUND_OTHER_VALUE, TRANSITION_SOUND_NONE_VALUE, clearTransitionSound, ENTRANCE_PRESET_VALUES, EMPHASIS_PRESET_VALUES, EXIT_PRESET_VALUES, MOTION_PATH_FAMILIES, motionPathFamilyLabelKey, motionPathPresetsByFamily, motionPathPresetLabelKey, masterViewPseudoSlide, authorConnectorBetweenSites, findEraserHitElementId, generateTicks, rulerDragToGuidePosition, getElementTransformWithoutRotation, buildCommentMarkers, COMMENT_MARKER_SIZE, collectConnectorSiteCandidates, getConnectorEndpointHandles, findConnectorSiteNear, motionPathToSvgD, motionPathEndPixel, isEditableMotionPath, setMotionPathEnd, themeColorLabel, buildThemeColorGrid, THEME_COLOR_SCHEME_KEYS, COMMON_FONTS, buildSmartArtPresetData, handleReadingViewKey, getLocalStorageUsageSummary, saveViewerProfile, clearAllLocalViewerData, isCurrentLayout, SLIDE_TEMPLATES, computeAnchoredPopupPosition, 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, applyTableStylePreset, evenColumnWidths, redistributeColumnWidth, evenRowHeights, patchChartData, setChartCategoryLabel, setChartCellValue, addChartCategory, removeChartCategory, addChartSeries, removeChartSeries, setChartAxisLogScale, setChartAxisTitleStyle, setChartAxisGridlineStyle, setChartSeriesMarker, setChartSeriesChartType, setChartDataPointFill, setChartDataPointExplosion, setChartDataPointMarker, setChartDataPointLabel, describeSmartArtBounds, canAddTopLevelNode, classifyExtraConnections, siblingIndex, siblingCount, canRemoveTopLevelNode, buildOleObjectNamePatch, 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, TRANSITION_SPEED_OPTIONS, TRANSITION_MORPH_OPTIONS, flattenTagCollections, resolveTemplateBackgroundRows, formatCommentTimestamp, buildAnimationTimelineRows, clearMotionPath, getEffectSoundState, setEffectSound, setAfterAnimation, setAfterAnimationColor, DIRECTIONAL_PRESETS, buildAnimationTimelineBars, motionPathPresetIdForPath, computeMergeCellRight, computeMergeCellDown, computeSplitCell, CHART_TYPE_OPTIONS, SMARTART_COLOR_SCHEME_LABEL_KEYS, SMARTART_STYLE_LABEL_KEYS, addSmartArtNodeAsChild, removeSmartArtNode, addSiblingAfter, removeEmptyNode, demote, promote, reorder, 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, reorderAnimationTimelineRows, applyAnimationTimelineOrder, animationEffectLabel, LBL, SEL, FILL_MODE_OPTIONS, SECTION_HEADING, NUM, switchSmartArtLayout, 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-S546O4W2.mjs';
5
+ import { hasShapeProperties, normalizeHexColor, colorWithOpacity, normalizeStrokeDashType, getSvgStrokeDasharray, getCompoundLineOffsets, getCompoundLineWidths, svgLineCap, hasTextProperties, getElementTransform, getAriaRoleDescription, getAriaLabel, getAriaRole, resolveElementInteractivity, isEditableTextElement, isElementRendered, isElementActionable, getImageEffectsOpacity, getImageEffectsFilter, inlineElementPointerEvents, isHollowShapeElement, LINK_TOOLTIP_HOST_CLASS, ACTION_BUTTON_PRESETS, mediaTransportVisible, isInkElement, getGroupChildParentFill, getElementLabel, SWITCHABLE_LAYOUT_TYPES, compileEquationTemplateMathMl, buildUserFontFaceStyles, readStoredViewerPrefs, resolveThemeCatalogEntry, THEME_CATALOG, writeStoredViewerPrefs, openPptxFile, readBackstageRecentFile, resolveAutosaveActivation, viewerOptionsToPreferences, applyPreferenceToOptions, listAutosaveSnapshots, deleteAutosaveSnapshot, resolveExpiredAutosaveSnapshots, resolveHistoryDepth, applyAutoCorrect, resolveImageResolutionScale, resolveAutosaveIntervalMs, resolveAutosaveIntervalSeconds, shouldShowAutosaveRecoveryPrompt, resolveOptionRootClasses, resolve3DRenderingFlags, paintedStrokeWidth, buildCssGradientFromShapeStyle, ensureActionAffordanceStyles, resolveElementActionAffordance, actionAffordanceLabels, getComputedEffectStyle, getSoftEdgeSvgFilter, buildStrokeOutline, buildHollowHitOutline, buildSubpathFillOverlay, isImageLikeElement, getComputedFillStyle, strokeOutlineViewBox, revealedSmartArtNodeCount, buildSmartArtA11y, computeSmartArtElementLayout, flattenNodes, buildSummaryZoomView, isImageTiled, getImageColorWashStyle, placeCaretAtEnd, getPendingSelectionRestore, restoreSegmentSelection, getTextCompensationTransform, resolveChartKind, ensureChartInteractionStyles, applyChartPartHighlight, applyChartBuildReveal, formatAxisValue, hasPressureVariation, getInkReplayStyles, INK_REPLAY_KEYFRAMES, resolveInkColor, resolveInkWidth, resolveInkOpacity, pressuresToWidths, getContentPartReplayStyles, resolveOleType, getOleAriaLabel, 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, shouldClearAutosaveCacheOnClose, applyMotionPathPreset, resetSlideLayoutPath, DEFAULT_INSERT_CHART_KIND, hasCopyableFormat, templateSchemeFromTheme, createBackstagePresentation, playFeedbackSound, shouldDiscardAutosaveOnSuccessfulSave, 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, buildChromeStyle, getImageSvgFilters, buildDuotoneCacheKey, getDuotoneCachedResult, applyDuotone, setDuotoneCachedResult, buildCacheKey, DEFAULT_COLOR_CHANGE_TOLERANCE, getCachedResult, applyColorChange, setCachedResult, findChartPartTarget, advanceChartValueDrag, beginChartValueDrag, buildSurfaceChart3DDataForElement, buildBarChart3DDataForElement, buildLineChart3DDataForElement, buildAreaChart3DDataForElement, buildPieChart3DDataForElement, withChartTitle, buildSmartArt3DModel, extractPathPoints, generatePressureCircles, generateNibMarks, isBrowserOpenableMime, formatBytes, getOleDisplayName, getOleBadgeLabel, openUrlInNewTab, getSubstituteFontFamily, getWarpPath, getSlideBackgroundStyle, filterCommands, resolveTitleBarStatusKey, TITLE_BAR_CLASSES, TITLE_BAR_DEFAULT_FILE_KEY, resolveScreenTip, masterViewBackgroundColor, buildFieldSubstitutionContext, shouldConfirmExternalHyperlink, safeOpenUrl, resolvePresentationAction, isPpactionUrl, parsePpactionUrl, isPresentationAdvanceClick, toggleBlackboard, PRESENT_TOOLBAR_CLASSES, buildContextMenuEntries, themeColorSchemesEqual, EXPANDED_MAX_HEIGHT, STATUS_BAR_CLASSES, buildBarActions, formatVersionTimestamp, formatRelativeTime, scanAvailableFontFamilies, PRESETS, CATEGORIES, convertOmmlToLatex, compileLatexEquation, convertLatexToOmml, EQUATION_TEMPLATES, clampPercent, resolveDefaultPrintSettings, 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, readSoundFileAsDataUrl, applyTransitionSoundFile, playSlideTransitionPreview, RIBBON_TRANSITION_PRESETS, transitionSoundOptions, transitionSoundSelectedValue, 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, resolveNotesSchematicBodyFontSizePx, motionPathFor, setMotionPath, getShapeAdjustmentHandleDescriptors, PRESENTER_NAVIGATOR_LABEL_KEYS, PEN_COLORS, HIGHLIGHTER_COLORS, isBlackboardActive, slideSizeToCanvasPx, resolveSelectionPaneRename, PRESET_THEMES, resolveNotesSegments, segmentsToEditorHtml, DEBOUNCE_MS, createPlainNotesSegments, parseSegmentsFromRichEditor, segmentsToPlainText, getCurrentParagraphIndex, segmentsToParagraphs, paragraphsToSegments, MAX_INDENT_LEVEL, INDENT_PX, isUrlSafe, buildNotesPrintHtml, toggleSheet, sanitizeMathMl, computeHandoutLayout, getPrintableArea, generateNoteLineCount, computeAllNotesPages, getNotesPrintableArea, downloadBlob, clampOptionNumber, 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, TRANSITION_SOUND_OTHER_VALUE, TRANSITION_SOUND_NONE_VALUE, clearTransitionSound, ENTRANCE_PRESET_VALUES, EMPHASIS_PRESET_VALUES, EXIT_PRESET_VALUES, MOTION_PATH_FAMILIES, motionPathFamilyLabelKey, motionPathPresetsByFamily, motionPathPresetLabelKey, masterViewPseudoSlide, authorConnectorBetweenSites, findEraserHitElementId, generateTicks, rulerDragToGuidePosition, getElementTransformWithoutRotation, buildCommentMarkers, COMMENT_MARKER_SIZE, collectConnectorSiteCandidates, getConnectorEndpointHandles, findConnectorSiteNear, motionPathToSvgD, motionPathEndPixel, isEditableMotionPath, setMotionPathEnd, themeColorLabel, buildThemeColorGrid, THEME_COLOR_SCHEME_KEYS, COMMON_FONTS, buildSmartArtPresetData, handleReadingViewKey, getLocalStorageUsageSummary, saveViewerProfile, clearAllLocalViewerData, isCurrentLayout, SLIDE_TEMPLATES, computeAnchoredPopupPosition, 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, applyTableStylePreset, evenColumnWidths, redistributeColumnWidth, evenRowHeights, patchChartData, setChartCategoryLabel, setChartCellValue, addChartCategory, removeChartCategory, addChartSeries, removeChartSeries, setChartAxisLogScale, setChartAxisTitleStyle, setChartAxisGridlineStyle, setChartSeriesMarker, setChartSeriesChartType, setChartDataPointFill, setChartDataPointExplosion, setChartDataPointMarker, setChartDataPointLabel, describeSmartArtBounds, canAddTopLevelNode, classifyExtraConnections, siblingIndex, siblingCount, canRemoveTopLevelNode, buildOleObjectNamePatch, 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, TRANSITION_SPEED_OPTIONS, TRANSITION_MORPH_OPTIONS, flattenTagCollections, resolveTemplateBackgroundRows, formatCommentTimestamp, buildAnimationTimelineRows, clearMotionPath, getEffectSoundState, setEffectSound, setAfterAnimation, setAfterAnimationColor, DIRECTIONAL_PRESETS, buildAnimationTimelineBars, motionPathPresetIdForPath, computeMergeCellRight, computeMergeCellDown, computeSplitCell, CHART_TYPE_OPTIONS, SMARTART_COLOR_SCHEME_LABEL_KEYS, SMARTART_STYLE_LABEL_KEYS, addSmartArtNodeAsChild, removeSmartArtNode, addSiblingAfter, removeEmptyNode, demote, promote, reorder, 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, reorderAnimationTimelineRows, applyAnimationTimelineOrder, animationEffectLabel, LBL, SEL, FILL_MODE_OPTIONS, SECTION_HEADING, NUM, switchSmartArtLayout, 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-SRAXNEJX.mjs';
6
6
  import React19, { 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';
@@ -68,7 +68,11 @@ function RemoteUserCursors({
68
68
  children: visibleUsers.map((user) => /* @__PURE__ */ jsxs(
69
69
  "g",
70
70
  {
71
- transform: `translate(${user.cursorX}, ${user.cursorY})`,
71
+ style: {
72
+ transform: `translate(${user.cursorX}px, ${user.cursorY}px)`,
73
+ transition: "transform 90ms linear",
74
+ willChange: "transform"
75
+ },
72
76
  "data-testid": `remote-cursor-${user.clientId}`,
73
77
  "data-pptx-remote-cursor": user.clientId,
74
78
  children: [
@@ -510,7 +514,7 @@ function FailedToLoad() {
510
514
  var LazyArea3DChartScene = React19.lazy(
511
515
  async () => {
512
516
  try {
513
- return await import('./Area3DChartScene-PMYXO4MR.mjs');
517
+ return await import('./Area3DChartScene-KE434ERF.mjs');
514
518
  } catch {
515
519
  return { default: FailedToLoad };
516
520
  }
@@ -566,7 +570,7 @@ function FailedToLoad2() {
566
570
  var LazyBar3DChartScene = React19.lazy(
567
571
  async () => {
568
572
  try {
569
- return await import('./Bar3DChartScene-CEOI6SU6.mjs');
573
+ return await import('./Bar3DChartScene-2KQABQZM.mjs');
570
574
  } catch {
571
575
  return { default: FailedToLoad2 };
572
576
  }
@@ -622,7 +626,7 @@ function FailedToLoad3() {
622
626
  var LazyLine3DChartScene = React19.lazy(
623
627
  async () => {
624
628
  try {
625
- return await import('./Line3DChartScene-EZZKWUZR.mjs');
629
+ return await import('./Line3DChartScene-K3BSK6BB.mjs');
626
630
  } catch {
627
631
  return { default: FailedToLoad3 };
628
632
  }
@@ -678,7 +682,7 @@ function FailedToLoad4() {
678
682
  var LazyPieChart3DScene = React19.lazy(
679
683
  async () => {
680
684
  try {
681
- return await import('./PieChart3DScene-DH6RSJO6.mjs');
685
+ return await import('./PieChart3DScene-NFRBKII7.mjs');
682
686
  } catch {
683
687
  return { default: FailedToLoad4 };
684
688
  }
@@ -734,7 +738,7 @@ function FailedToLoad5() {
734
738
  var LazySurfaceChart3DScene = React19.lazy(
735
739
  async () => {
736
740
  try {
737
- return await import('./SurfaceChart3DScene-BMBU5RKI.mjs');
741
+ return await import('./SurfaceChart3DScene-UKIOTKJC.mjs');
738
742
  } catch {
739
743
  return { default: FailedToLoad5 };
740
744
  }
@@ -2923,7 +2927,7 @@ function FailedToLoad6() {
2923
2927
  var LazyModel3DScene = React19.lazy(
2924
2928
  async () => {
2925
2929
  try {
2926
- return await import('./Model3DScene-FGQJKWL6.mjs');
2930
+ return await import('./Model3DScene-NT5RRIB5.mjs');
2927
2931
  } catch {
2928
2932
  return { default: FailedToLoad6 };
2929
2933
  }
@@ -6153,7 +6157,7 @@ function AccountPage() {
6153
6157
  return void 0;
6154
6158
  });
6155
6159
  };
6156
- const version = "3.1.1" ;
6160
+ const version = "3.1.2" ;
6157
6161
  return /* @__PURE__ */ jsxs("div", { className: "mt-8 max-w-[700px] space-y-6", children: [
6158
6162
  /* @__PURE__ */ jsxs("section", { className: cardClass, children: [
6159
6163
  /* @__PURE__ */ jsxs("h2", { className: "flex items-center gap-2 text-sm font-semibold", children: [
@@ -10343,7 +10347,19 @@ function Toolbar(p) {
10343
10347
  "div",
10344
10348
  {
10345
10349
  className: cn(
10346
- "flex min-h-[82px] items-center gap-0 overflow-x-auto px-1 py-0.5 max-md:min-h-0 max-md:px-1 max-md:py-0.5 flex-nowrap [&>*]:shrink-0",
10350
+ /*
10351
+ * `items-stretch` (not `items-center`): `RibbonGroup` pins its
10352
+ * caption to `bottom-0.5` of ITS OWN box (`position: relative`), so
10353
+ * a group left at its un-stretched intrinsic height sits centered in
10354
+ * the row with its caption floating well above the row's true bottom
10355
+ * edge whenever a taller sibling sets the row's height (e.g. View's
10356
+ * five-row "Show" group next to its two-row "Zoom" group). Stretching
10357
+ * every direct child to the row's full height lines up every group's
10358
+ * caption and right-hand divider at the same baseline. File's
10359
+ * backstage is unaffected: it renders `position: fixed`, outside this
10360
+ * row's flex layout entirely.
10361
+ */
10362
+ "flex min-h-[82px] items-stretch gap-0 overflow-x-auto px-1 py-0.5 max-md:min-h-0 max-md:px-1 max-md:py-0.5 flex-nowrap [&>*]:shrink-0",
10347
10363
  isNarrowViewport && !isCompactToolbarOpen && "hidden"
10348
10364
  ),
10349
10365
  children: [
@@ -11438,6 +11454,17 @@ function SelectionHandleOverlay({
11438
11454
  top: element.y,
11439
11455
  width: Math.max(element.width, MIN_ELEMENT_SIZE),
11440
11456
  height: Math.max(element.height, MIN_ELEMENT_SIZE),
11457
+ // Every slide element carries an explicit numeric `zIndex` (see
11458
+ // `getContainerStyle`), so a sibling with no z-index at all paints
11459
+ // at the CSS "z-index: 0" level regardless of DOM order: any
11460
+ // element other than the very bottom one (index 0) then renders
11461
+ // ABOVE this host, hiding its own resize/rotate handles behind its
11462
+ // own fill (worst on a rotated shape, where the rotate knob
11463
+ // deliberately overlaps the box) and stealing their clicks. Pinned
11464
+ // above the stage's other interaction overlays
11465
+ // (marquee z-50, connector overlay z-55/56) to match, well clear of
11466
+ // any realistic per-slide element count.
11467
+ zIndex: 58,
11441
11468
  transform: getElementTransform(element),
11442
11469
  transformOrigin: "center",
11443
11470
  // Transparent everywhere a handle button is not, so a click that
@@ -12242,14 +12269,14 @@ function SlideCanvas({
12242
12269
  {
12243
12270
  ref: zoom.canvasViewportRef,
12244
12271
  "data-pptx-viewport": true,
12245
- className: "flex-1 overflow-auto relative",
12272
+ className: "flex-1 flex overflow-auto relative",
12246
12273
  style: { touchAction: "pan-x pan-y" },
12247
12274
  onMouseDown: handleViewportMouseDown,
12248
12275
  children: /* @__PURE__ */ jsxs(
12249
12276
  "div",
12250
12277
  {
12251
12278
  ref: zoom.editWrapperRef,
12252
- className: "relative mx-auto my-4",
12279
+ className: "relative m-auto",
12253
12280
  style: {
12254
12281
  width: canvasSize.width * zoom.editorScale + rulerOffset,
12255
12282
  height: canvasSize.height * zoom.editorScale + rulerOffset
@@ -35193,7 +35220,7 @@ ${url}`)) {
35193
35220
  var AiChatPanel = lazy(async () => {
35194
35221
  const [{ useChat }, { default: Panel }] = await Promise.all([
35195
35222
  import('@ai-sdk/react'),
35196
- import('./AiChatPanel-UCFQIWOQ.mjs')
35223
+ import('./AiChatPanel-5JAQBLTU.mjs')
35197
35224
  ]);
35198
35225
  function BoundAiChatPanel(props) {
35199
35226
  return /* @__PURE__ */ jsx(Panel, { ...props, useChat });