pptx-react-viewer 3.16.7 → 3.17.0

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 (155) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/README.md +25 -3
  3. package/dist/{AiChatPanel-GLDW5OK4.mjs → AiChatPanel-4LKH44IE.mjs} +3 -3
  4. package/dist/AiChatPanel-4LKH44IE.mjs.br +0 -0
  5. package/dist/AiChatPanel-4LKH44IE.mjs.gz +0 -0
  6. package/dist/{AiChatPanel-N25STHYW.js → AiChatPanel-VWVGQ5DD.js} +24 -24
  7. package/dist/AiChatPanel-VWVGQ5DD.js.br +0 -0
  8. package/dist/AiChatPanel-VWVGQ5DD.js.gz +0 -0
  9. package/dist/{Area3DChartScene-5POI5LF7.js → Area3DChartScene-D7GSJGPQ.js} +2 -2
  10. package/dist/Area3DChartScene-D7GSJGPQ.js.br +0 -0
  11. package/dist/Area3DChartScene-D7GSJGPQ.js.gz +0 -0
  12. package/dist/{Area3DChartScene-FCHO4SK6.mjs → Area3DChartScene-X5SM67PZ.mjs} +1 -1
  13. package/dist/Area3DChartScene-X5SM67PZ.mjs.br +0 -0
  14. package/dist/Area3DChartScene-X5SM67PZ.mjs.gz +0 -0
  15. package/dist/{Bar3DChartScene-M3LLHXAL.mjs → Bar3DChartScene-HWIFFGI3.mjs} +1 -1
  16. package/dist/Bar3DChartScene-HWIFFGI3.mjs.br +0 -0
  17. package/dist/Bar3DChartScene-HWIFFGI3.mjs.gz +0 -0
  18. package/dist/{Bar3DChartScene-5CY5GRV5.js → Bar3DChartScene-M72WQW5Y.js} +2 -2
  19. package/dist/Bar3DChartScene-M72WQW5Y.js.br +0 -0
  20. package/dist/Bar3DChartScene-M72WQW5Y.js.gz +0 -0
  21. package/dist/{Line3DChartScene-77TZRLJY.mjs → Line3DChartScene-7MPZWVF3.mjs} +1 -1
  22. package/dist/Line3DChartScene-7MPZWVF3.mjs.br +0 -0
  23. package/dist/Line3DChartScene-7MPZWVF3.mjs.gz +0 -0
  24. package/dist/{Line3DChartScene-3TP7OUIP.js → Line3DChartScene-YOZEEQZ3.js} +2 -2
  25. package/dist/Line3DChartScene-YOZEEQZ3.js.br +0 -0
  26. package/dist/Line3DChartScene-YOZEEQZ3.js.gz +0 -0
  27. package/dist/{Model3DScene-QINKUHM2.mjs → Model3DScene-57LVY5QW.mjs} +1 -1
  28. package/dist/Model3DScene-57LVY5QW.mjs.br +0 -0
  29. package/dist/Model3DScene-57LVY5QW.mjs.gz +0 -0
  30. package/dist/{Model3DScene-CBETCFMI.js → Model3DScene-5IJSNGDZ.js} +2 -2
  31. package/dist/Model3DScene-5IJSNGDZ.js.br +0 -0
  32. package/dist/Model3DScene-5IJSNGDZ.js.gz +0 -0
  33. package/dist/{PieChart3DScene-NFXFVG7R.js → PieChart3DScene-UBI6X66Q.js} +2 -2
  34. package/dist/PieChart3DScene-UBI6X66Q.js.br +0 -0
  35. package/dist/PieChart3DScene-UBI6X66Q.js.gz +0 -0
  36. package/dist/{PieChart3DScene-H2DJSHW7.mjs → PieChart3DScene-WD5B6NP3.mjs} +1 -1
  37. package/dist/PieChart3DScene-WD5B6NP3.mjs.br +0 -0
  38. package/dist/PieChart3DScene-WD5B6NP3.mjs.gz +0 -0
  39. package/dist/{PowerPointViewer-Cl6jBPNw.d.ts → PowerPointViewer-Cde_wzd0.d.ts} +2 -2
  40. package/dist/{PowerPointViewer-Cl6jBPNw.d.ts.map → PowerPointViewer-Cde_wzd0.d.ts.map} +1 -1
  41. package/dist/{SurfaceChart3DScene-2IN5YKKE.js → SurfaceChart3DScene-JGNPYQ32.js} +2 -2
  42. package/dist/SurfaceChart3DScene-JGNPYQ32.js.br +0 -0
  43. package/dist/SurfaceChart3DScene-JGNPYQ32.js.gz +0 -0
  44. package/dist/{SurfaceChart3DScene-4AGI4O3L.mjs → SurfaceChart3DScene-JZGU6BBD.mjs} +1 -1
  45. package/dist/SurfaceChart3DScene-JZGU6BBD.mjs.br +0 -0
  46. package/dist/SurfaceChart3DScene-JZGU6BBD.mjs.gz +0 -0
  47. package/dist/{audience-content-store-CB2WVM1K.d.ts → audience-content-store-A8Km8rBo.d.ts} +2 -2
  48. package/dist/{audience-content-store-CB2WVM1K.d.ts.map → audience-content-store-A8Km8rBo.d.ts.map} +1 -1
  49. package/dist/{chunk-B3YVURJB.mjs → chunk-23PW4Y4R.mjs} +1 -1
  50. package/dist/chunk-23PW4Y4R.mjs.br +0 -0
  51. package/dist/chunk-23PW4Y4R.mjs.gz +0 -0
  52. package/dist/{chunk-4Q6VIX6M.js → chunk-3UGVURWU.js} +551 -498
  53. package/dist/chunk-3UGVURWU.js.br +0 -0
  54. package/dist/chunk-3UGVURWU.js.gz +0 -0
  55. package/dist/{chunk-3FVOKV4E.js → chunk-4SPZ5IZN.js} +1110 -470
  56. package/dist/chunk-4SPZ5IZN.js.br +0 -0
  57. package/dist/chunk-4SPZ5IZN.js.gz +0 -0
  58. package/dist/{chunk-SQNEE6AM.js → chunk-72LYFUGL.js} +1323 -1310
  59. package/dist/chunk-72LYFUGL.js.br +0 -0
  60. package/dist/chunk-72LYFUGL.js.gz +0 -0
  61. package/dist/{chunk-7ELFYC6K.mjs → chunk-7YJBRPCT.mjs} +9 -5
  62. package/dist/chunk-7YJBRPCT.mjs.br +0 -0
  63. package/dist/chunk-7YJBRPCT.mjs.gz +0 -0
  64. package/dist/{chunk-3PUFHKXW.mjs → chunk-7YOA4HNP.mjs} +102 -49
  65. package/dist/chunk-7YOA4HNP.mjs.br +0 -0
  66. package/dist/chunk-7YOA4HNP.mjs.gz +0 -0
  67. package/dist/{chunk-I5YSAIL5.mjs → chunk-EDMJYVCS.mjs} +44 -31
  68. package/dist/chunk-EDMJYVCS.mjs.br +0 -0
  69. package/dist/chunk-EDMJYVCS.mjs.gz +0 -0
  70. package/dist/{chunk-TYVSLRC7.js → chunk-KVXB22D3.js} +13 -9
  71. package/dist/chunk-KVXB22D3.js.br +0 -0
  72. package/dist/{chunk-TYVSLRC7.js.gz → chunk-KVXB22D3.js.gz} +0 -0
  73. package/dist/{chunk-4NSDMKFE.js → chunk-NJ3WCYYG.js} +169 -169
  74. package/dist/chunk-NJ3WCYYG.js.br +0 -0
  75. package/dist/chunk-NJ3WCYYG.js.gz +0 -0
  76. package/dist/{chunk-XMD6ZWUO.mjs → chunk-QTGCOL5H.mjs} +1104 -471
  77. package/dist/chunk-QTGCOL5H.mjs.br +0 -0
  78. package/dist/chunk-QTGCOL5H.mjs.gz +0 -0
  79. package/dist/index.d.ts +33 -3
  80. package/dist/index.js +45 -45
  81. package/dist/index.js.br +0 -0
  82. package/dist/index.js.gz +0 -0
  83. package/dist/index.mjs +5 -5
  84. package/dist/index.mjs.br +0 -0
  85. package/dist/index.mjs.gz +0 -0
  86. package/dist/internals.d.ts +38 -3
  87. package/dist/internals.d.ts.map +1 -1
  88. package/dist/internals.js +78 -78
  89. package/dist/internals.js.br +0 -0
  90. package/dist/internals.js.gz +0 -0
  91. package/dist/internals.mjs +3 -3
  92. package/dist/internals.mjs.br +0 -0
  93. package/dist/internals.mjs.gz +0 -0
  94. package/dist/pptx-viewer.css +1 -1
  95. package/dist/pptx-viewer.css.br +0 -0
  96. package/dist/pptx-viewer.css.gz +0 -0
  97. package/dist/{types-Bzdkiakq.d.ts → types-BqB2ZCwS.d.ts} +3 -3
  98. package/dist/{types-Bzdkiakq.d.ts.map → types-BqB2ZCwS.d.ts.map} +1 -1
  99. package/dist/{useViewerBuildingBlocks-FbK-4ORi.d.ts → useViewerBuildingBlocks-DkUGmlkP.d.ts} +4 -4
  100. package/dist/{useViewerBuildingBlocks-FbK-4ORi.d.ts.map → useViewerBuildingBlocks-DkUGmlkP.d.ts.map} +1 -1
  101. package/dist/viewer/index.d.ts +31 -1
  102. package/dist/viewer/index.js +26 -26
  103. package/dist/viewer/index.js.br +0 -0
  104. package/dist/viewer/index.js.gz +0 -0
  105. package/dist/viewer/index.mjs +5 -5
  106. package/dist/viewer/index.mjs.br +0 -0
  107. package/dist/viewer/index.mjs.gz +0 -0
  108. package/package.json +1 -1
  109. package/dist/AiChatPanel-GLDW5OK4.mjs.br +0 -0
  110. package/dist/AiChatPanel-GLDW5OK4.mjs.gz +0 -0
  111. package/dist/AiChatPanel-N25STHYW.js.br +0 -0
  112. package/dist/AiChatPanel-N25STHYW.js.gz +0 -0
  113. package/dist/Area3DChartScene-5POI5LF7.js.br +0 -0
  114. package/dist/Area3DChartScene-5POI5LF7.js.gz +0 -0
  115. package/dist/Area3DChartScene-FCHO4SK6.mjs.br +0 -0
  116. package/dist/Area3DChartScene-FCHO4SK6.mjs.gz +0 -0
  117. package/dist/Bar3DChartScene-5CY5GRV5.js.br +0 -0
  118. package/dist/Bar3DChartScene-5CY5GRV5.js.gz +0 -0
  119. package/dist/Bar3DChartScene-M3LLHXAL.mjs.br +0 -0
  120. package/dist/Bar3DChartScene-M3LLHXAL.mjs.gz +0 -0
  121. package/dist/Line3DChartScene-3TP7OUIP.js.br +0 -0
  122. package/dist/Line3DChartScene-3TP7OUIP.js.gz +0 -0
  123. package/dist/Line3DChartScene-77TZRLJY.mjs.br +0 -0
  124. package/dist/Line3DChartScene-77TZRLJY.mjs.gz +0 -0
  125. package/dist/Model3DScene-CBETCFMI.js.br +0 -0
  126. package/dist/Model3DScene-CBETCFMI.js.gz +0 -0
  127. package/dist/Model3DScene-QINKUHM2.mjs.br +0 -0
  128. package/dist/Model3DScene-QINKUHM2.mjs.gz +0 -0
  129. package/dist/PieChart3DScene-H2DJSHW7.mjs.br +0 -0
  130. package/dist/PieChart3DScene-H2DJSHW7.mjs.gz +0 -0
  131. package/dist/PieChart3DScene-NFXFVG7R.js.br +0 -0
  132. package/dist/PieChart3DScene-NFXFVG7R.js.gz +0 -0
  133. package/dist/SurfaceChart3DScene-2IN5YKKE.js.br +0 -0
  134. package/dist/SurfaceChart3DScene-2IN5YKKE.js.gz +0 -0
  135. package/dist/SurfaceChart3DScene-4AGI4O3L.mjs.br +0 -0
  136. package/dist/SurfaceChart3DScene-4AGI4O3L.mjs.gz +0 -0
  137. package/dist/chunk-3FVOKV4E.js.br +0 -0
  138. package/dist/chunk-3FVOKV4E.js.gz +0 -0
  139. package/dist/chunk-3PUFHKXW.mjs.br +0 -0
  140. package/dist/chunk-3PUFHKXW.mjs.gz +0 -0
  141. package/dist/chunk-4NSDMKFE.js.br +0 -0
  142. package/dist/chunk-4NSDMKFE.js.gz +0 -0
  143. package/dist/chunk-4Q6VIX6M.js.br +0 -0
  144. package/dist/chunk-4Q6VIX6M.js.gz +0 -0
  145. package/dist/chunk-7ELFYC6K.mjs.br +0 -0
  146. package/dist/chunk-7ELFYC6K.mjs.gz +0 -0
  147. package/dist/chunk-B3YVURJB.mjs.br +0 -0
  148. package/dist/chunk-B3YVURJB.mjs.gz +0 -0
  149. package/dist/chunk-I5YSAIL5.mjs.br +0 -0
  150. package/dist/chunk-I5YSAIL5.mjs.gz +0 -0
  151. package/dist/chunk-SQNEE6AM.js.br +0 -0
  152. package/dist/chunk-SQNEE6AM.js.gz +0 -0
  153. package/dist/chunk-TYVSLRC7.js.br +0 -0
  154. package/dist/chunk-XMD6ZWUO.mjs.br +0 -0
  155. package/dist/chunk-XMD6ZWUO.mjs.gz +0 -0
package/CHANGELOG.md CHANGED
@@ -7,6 +7,29 @@ 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.16.7](https://github.com/ChristopherVR/pptx-viewer/releases/tag/pptx-react-viewer@3.16.7) - 2026-09-13
11
+
12
+ ### Bug Fixes
13
+
14
+ - **react:** Preserve embedded fonts in headless saves (by @Sudhansh6) ([f1d2ac6](https://github.com/ChristopherVR/pptx-viewer/commit/f1d2ac6357f698605bac7ff7a4d6a6db4c68d68d))
15
+ - **shared:** Preserve paragraph properties across text insertion (by @Sudhansh6) ([624c880](https://github.com/ChristopherVR/pptx-viewer/commit/624c880ed0a1396b91a4203334bb59a409b9eec0))
16
+ - **react:** Record click-away text edits in history (by @Sudhansh6) ([3bc665f](https://github.com/ChristopherVR/pptx-viewer/commit/3bc665f5f10ef8dc4b0b6718ce81ce7b10263c37))
17
+ - **core:** Preserve run styles after text-only edits (by @Sudhansh6) ([3cb843c](https://github.com/ChristopherVR/pptx-viewer/commit/3cb843c0a3bf609da00007036ec601274214890c))
18
+ - **core:** Size percentage bullets from the first text run (by @Sudhansh6) ([51e26e1](https://github.com/ChristopherVR/pptx-viewer/commit/51e26e1ace134a48ae7eb74207ac12a11ee44ea1))
19
+
20
+ ### Refactor
21
+
22
+ - **core:** Expose numbering sequence for paragraph edits (by @Sudhansh6) ([a27fb46](https://github.com/ChristopherVR/pptx-viewer/commit/a27fb465f8b7bbb9b373106fbc3051709329a5bf))
23
+
24
+ ### Testing
25
+
26
+ - **react:** Cover paragraph insertion and pending text edits (by @Sudhansh6) ([a8b21a0](https://github.com/ChristopherVR/pptx-viewer/commit/a8b21a0ed984e31d053f8d7985d54bd8a006b071))
27
+
28
+ ### Chores
29
+
30
+ - Merge updated SmartArt geometry coverage (by @Sudhansh6) ([d0364a9](https://github.com/ChristopherVR/pptx-viewer/commit/d0364a9169fc8520b91ccd73ac30962cbbf520d2))
31
+ - Merge main before SmartArt cancellation contribution (by @Sudhansh6) ([4581de6](https://github.com/ChristopherVR/pptx-viewer/commit/4581de613b294edc07534bd4721c0e1e1afe2ebb))
32
+
10
33
  ## [3.16.6](https://github.com/ChristopherVR/pptx-viewer/releases/tag/pptx-react-viewer@3.16.6) - 2026-09-12
11
34
 
12
35
  ### Bug Fixes
package/README.md CHANGED
@@ -155,9 +155,12 @@ slide/element manipulation methods are also available:
155
155
  `getActiveSlide()`, `addSlide(afterIndex?)`, `deleteSlides(indexes)`,
156
156
  `duplicateSlides(indexes)`, `moveSlide(from, to)`, `toggleHideSlides(indexes)`,
157
157
  `getElements(slideIndex?)`, `getElementById(id, slideIndex?)`,
158
- `updateElement(id, patch)`, `deleteElements(ids)`, and
158
+ `addElement(element)`, `updateElement(id, patch)`, `deleteElements(ids)`, and
159
159
  `duplicateElement(id)`.
160
160
 
161
+ See [element insertion](https://christophervr.github.io/pptx-viewer/react/handle#add-element)
162
+ for the `addElement` contract, including the headless handle, and a core-factory example.
163
+
161
164
  ### `renderToCanvas`
162
165
 
163
166
  Standalone utility for rendering a DOM element to a Canvas (with an oklch colour-space workaround):
@@ -168,6 +171,18 @@ import { renderToCanvas } from 'pptx-react-viewer';
168
171
  const canvas = await renderToCanvas(element, options); // => HTMLCanvasElement
169
172
  ```
170
173
 
174
+ ### Viewport fit options
175
+
176
+ ```tsx
177
+ <PowerPointViewer content={content} fitPadding={0} maxFitScale={null} />
178
+ ```
179
+
180
+ `fitPadding` accepts a per-side CSS-pixel number or `{ horizontal, vertical }`.
181
+ `maxFitScale` accepts a positive ceiling or `null` for unlimited enlargement.
182
+ Omission preserves React's 4 px horizontal / 16 px vertical padding and fit
183
+ ceiling of 1. These host options do not change the document or user zoom; ruler
184
+ space and surrounding chrome remain separate. See the [cross-binding defaults](../../docs/guide/viewport-fit.md).
185
+
171
186
  ### Composing a custom viewer shell
172
187
 
173
188
  `<PowerPointViewer>` bundles a full editor chrome (toolbar, canvas, side panels, dialogs, presentation mode). If you only need the toolbar and slide canvas, with your own layout around them, `Toolbar` and `SlideCanvas` are exported as standalone components, and `useViewerBuildingBlocks` wires up the same state and hooks `PowerPointViewer` uses internally, mapped into the flat props those two components expect:
@@ -180,20 +195,27 @@ function MyCustomViewer({ content }: { content: Uint8Array }) {
180
195
  const { toolbarProps, canvasProps, loading, error } = useViewerBuildingBlocks({
181
196
  content,
182
197
  canEdit: true,
198
+ fitPadding: 0,
199
+ maxFitScale: null,
183
200
  });
184
201
 
185
202
  if (loading) return <p>Loading…</p>;
186
203
  if (error) return <p>Failed to load: {error}</p>;
187
204
 
188
205
  return (
189
- <div className='my-custom-layout'>
206
+ <div style={{ display: 'flex', flexDirection: 'column', height: 540, minHeight: 0 }}>
190
207
  <Toolbar {...toolbarProps} />
191
- <SlideCanvas {...canvasProps} />
208
+ <SlideCanvas {...canvasProps} showRulers={false} />
192
209
  </div>
193
210
  );
194
211
  }
195
212
  ```
196
213
 
214
+ The example disables rulers for edge-aligned fitting. Existing ruler offsets are
215
+ unchanged when rulers are enabled; `fitPadding: 0` does not remove those offsets.
216
+ The toolbar also uses part of the host height, so the canvas fits its remaining
217
+ viewport rather than the whole 540 px host.
218
+
197
219
  `useViewerBuildingBlocks` accepts the same `content` / `canEdit` / `filePath` / `hiddenActions` / `onDirtyChange`-style inputs as `PowerPointViewer`, plus `onOpenSettings` / `onOpenHeaderFooter` / `onOpenShareDialog` callbacks (fired by the corresponding toolbar buttons) since this composition doesn't render those dialogs itself. It's an additive alternative, not a replacement: dialogs, presentation-mode overlays, mobile chrome, resizable side panels, and real-time collaboration are all part of `PowerPointViewer` and are out of scope for these building blocks. Reach for `PowerPointViewer` when you need the full editor; reach for `useViewerBuildingBlocks` when you're assembling your own chrome around just the toolbar and canvas.
198
220
 
199
221
  ---
@@ -1,6 +1,6 @@
1
- import { deckIdFromBridge, isAiAvailable, createAiChatSession, toolCanvasTarget, createChatHistoryStore, focusTargetChips, isTwoTableFocus, mergeTablesDirective, humanizeDiffLine, buildDeckContext, describeToolActivity, summarizeToolArgs, toolLabel } from './chunk-7ELFYC6K.mjs';
2
- import { cn } from './chunk-B3YVURJB.mjs';
3
- import './chunk-XMD6ZWUO.mjs';
1
+ import { deckIdFromBridge, isAiAvailable, createAiChatSession, toolCanvasTarget, createChatHistoryStore, focusTargetChips, isTwoTableFocus, mergeTablesDirective, humanizeDiffLine, buildDeckContext, describeToolActivity, summarizeToolArgs, toolLabel } from './chunk-7YJBRPCT.mjs';
2
+ import { cn } from './chunk-23PW4Y4R.mjs';
3
+ import './chunk-QTGCOL5H.mjs';
4
4
  import './chunk-HMX3MQR7.mjs';
5
5
  import './chunk-XGB3TDIC.mjs';
6
6
  import { useMemo, useRef, useState, useEffect, useReducer, useCallback } from 'react';
Binary file
Binary file
@@ -1,8 +1,8 @@
1
1
  'use strict';
2
2
 
3
- var chunkTYVSLRC7_js = require('./chunk-TYVSLRC7.js');
4
- var chunk4NSDMKFE_js = require('./chunk-4NSDMKFE.js');
5
- require('./chunk-3FVOKV4E.js');
3
+ var chunkKVXB22D3_js = require('./chunk-KVXB22D3.js');
4
+ var chunkNJ3WCYYG_js = require('./chunk-NJ3WCYYG.js');
5
+ require('./chunk-4SPZ5IZN.js');
6
6
  require('./chunk-3AJ54EAB.js');
7
7
  require('./chunk-4VNS5WPM.js');
8
8
  var react = require('react');
@@ -23,7 +23,7 @@ function useAiChat(bridge, config) {
23
23
  setInitError(void 0);
24
24
  void (async () => {
25
25
  try {
26
- const available = await chunkTYVSLRC7_js.isAiAvailable();
26
+ const available = await chunkKVXB22D3_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 chunkTYVSLRC7_js.createAiChatSession(bridge, configRef.current);
34
+ const built = await chunkKVXB22D3_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 chunkTYVSLRC7_js.buildDeckContext(bridge, { strategy, focus: {} });
140
+ context = await chunkKVXB22D3_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?.(chunkTYVSLRC7_js.toolCanvasTarget(call.toolName, call.input));
203
+ onToolTargetRef.current?.(chunkKVXB22D3_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 ?? chunkTYVSLRC7_js.createChatHistoryStore(), [input.store]);
279
+ const store = react.useMemo(() => input.store ?? chunkKVXB22D3_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: chunk4NSDMKFE_js.cn(
422
+ className: chunkNJ3WCYYG_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
  ),
@@ -442,15 +442,15 @@ function AiFocusBar({
442
442
  onClearPicks
443
443
  }) {
444
444
  const { t } = reactI18next.useTranslation();
445
- const chips = chunkTYVSLRC7_js.focusTargetChips(targets, slides);
446
- const twoTables = chunkTYVSLRC7_js.isTwoTableFocus(targets, slides);
445
+ const chips = chunkKVXB22D3_js.focusTargetChips(targets, slides);
446
+ const twoTables = chunkKVXB22D3_js.isTwoTableFocus(targets, slides);
447
447
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "border-b border-border bg-secondary/30", children: [
448
448
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-wrap items-center gap-1 px-2.5 py-1.5", children: [
449
449
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[10px] font-semibold uppercase tracking-wide text-muted-foreground", children: t("pptx.ai.focusScope") }),
450
450
  chips.map((chip) => /* @__PURE__ */ jsxRuntime.jsx(
451
451
  "span",
452
452
  {
453
- className: chunk4NSDMKFE_js.cn(
453
+ className: chunkNJ3WCYYG_js.cn(
454
454
  "inline-flex max-w-[10rem] items-center rounded-full px-2 py-0.5 text-[11px]",
455
455
  hasPicks || isPinned ? "bg-primary/15 text-primary" : "bg-muted text-muted-foreground"
456
456
  ),
@@ -466,7 +466,7 @@ function AiFocusBar({
466
466
  {
467
467
  type: "button",
468
468
  onClick: () => onSendDirective(
469
- chunkTYVSLRC7_js.mergeTablesDirective(
469
+ chunkKVXB22D3_js.mergeTablesDirective(
470
470
  twoTables.slideIndex,
471
471
  twoTables.elementIdA,
472
472
  twoTables.elementIdB
@@ -487,7 +487,7 @@ function AiFocusBar({
487
487
  title: t("pptx.ai.pickElement"),
488
488
  "aria-label": t("pptx.ai.pickAria"),
489
489
  "aria-pressed": pickMode,
490
- className: chunk4NSDMKFE_js.cn(
490
+ className: chunkNJ3WCYYG_js.cn(
491
491
  "rounded-sm p-1 max-md:min-w-[44px]! max-md:min-h-[44px]! flex items-center justify-center",
492
492
  pickMode ? "bg-primary text-primary-foreground" : "text-muted-foreground hover:bg-accent"
493
493
  ),
@@ -566,7 +566,7 @@ function AiHistoryList({ chats, activeChatId, onResume, onDelete }) {
566
566
  {
567
567
  type: "button",
568
568
  onClick: () => onResume(chat.id),
569
- className: chunk4NSDMKFE_js.cn(
569
+ className: chunkNJ3WCYYG_js.cn(
570
570
  "flex min-w-0 flex-1 items-start gap-2 rounded-sm px-2 py-1.5 text-left hover:bg-accent",
571
571
  chat.id === activeChatId && "bg-accent/60"
572
572
  ),
@@ -721,26 +721,26 @@ function AiToolCallCard({ part }) {
721
721
  const failed = part.state === "output-error";
722
722
  const done = part.state === "output-available";
723
723
  const running = !failed && !done;
724
- const activity = chunkTYVSLRC7_js.describeToolActivity(part.toolName, part.input, running ? "present" : "past");
724
+ const activity = chunkKVXB22D3_js.describeToolActivity(part.toolName, part.input, running ? "present" : "past");
725
725
  const Icon = ICONS[activity.icon] ?? lu.LuWrench;
726
- const rawSummary = chunkTYVSLRC7_js.summarizeToolArgs(part.input);
726
+ const rawSummary = chunkKVXB22D3_js.summarizeToolArgs(part.input);
727
727
  const statusLabel = failed ? t("pptx.ai.toolFailed") : done ? t("pptx.ai.toolDone") : t("pptx.ai.toolRunning");
728
728
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-[12px]", children: [
729
729
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-1.5", children: [
730
730
  /* @__PURE__ */ jsxRuntime.jsx(
731
731
  Icon,
732
732
  {
733
- className: chunk4NSDMKFE_js.cn(
733
+ className: chunkNJ3WCYYG_js.cn(
734
734
  "w-3.5 h-3.5 shrink-0",
735
735
  failed ? "text-destructive" : "text-muted-foreground"
736
736
  )
737
737
  }
738
738
  ),
739
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: chunk4NSDMKFE_js.cn("truncate", failed ? "text-destructive" : "text-foreground"), children: activity.label }),
739
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: chunkNJ3WCYYG_js.cn("truncate", failed ? "text-destructive" : "text-foreground"), children: activity.label }),
740
740
  /* @__PURE__ */ jsxRuntime.jsxs(
741
741
  "span",
742
742
  {
743
- className: chunk4NSDMKFE_js.cn(
743
+ className: chunkNJ3WCYYG_js.cn(
744
744
  "ml-auto inline-flex items-center gap-1 rounded-sm px-1.5 py-0.5 text-[10px]",
745
745
  failed ? "bg-destructive/15 text-destructive" : done ? "bg-primary/10 text-primary" : "bg-muted text-muted-foreground"
746
746
  ),
@@ -757,7 +757,7 @@ function AiToolCallCard({ part }) {
757
757
  rawSummary && /* @__PURE__ */ jsxRuntime.jsxs("details", { className: "group mt-0.5 pl-5", children: [
758
758
  /* @__PURE__ */ jsxRuntime.jsx("summary", { className: "cursor-pointer list-none text-[10px] text-muted-foreground/70 hover:text-muted-foreground", children: t("pptx.ai.toolDetails") }),
759
759
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-0.5 break-words font-mono text-[10px] text-muted-foreground/80", children: [
760
- chunkTYVSLRC7_js.toolLabel(part.toolName),
760
+ chunkKVXB22D3_js.toolLabel(part.toolName),
761
761
  ": ",
762
762
  rawSummary
763
763
  ] })
@@ -788,7 +788,7 @@ function AiMessageList({ messages, isStreaming, bridge }) {
788
788
  /* @__PURE__ */ jsxRuntime.jsx(
789
789
  "div",
790
790
  {
791
- className: chunk4NSDMKFE_js.cn(
791
+ className: chunkNJ3WCYYG_js.cn(
792
792
  "mt-0.5 flex h-6 w-6 shrink-0 items-center justify-center rounded-full",
793
793
  isUser ? "bg-secondary text-muted-foreground" : "bg-primary/15 text-primary"
794
794
  ),
@@ -835,7 +835,7 @@ function AiMessageList({ messages, isStreaming, bridge }) {
835
835
  }
836
836
  function AiProposalCard({ proposal, onAccept, onReject }) {
837
837
  const { t } = reactI18next.useTranslation();
838
- const lines = proposal.summary.map(chunkTYVSLRC7_js.humanizeDiffLine);
838
+ const lines = proposal.summary.map(chunkKVXB22D3_js.humanizeDiffLine);
839
839
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "rounded-md border border-primary/40 bg-primary/5 p-2.5", children: [
840
840
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-1.5 text-[11px] font-semibold uppercase tracking-wide text-primary", children: t("pptx.ai.proposedChange") }),
841
841
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-[12px] font-medium text-foreground", children: proposal.label }),
@@ -1043,7 +1043,7 @@ function AiChatPanel({
1043
1043
  }) {
1044
1044
  const { t } = reactI18next.useTranslation();
1045
1045
  const { state, session, initError } = useAiChat(bridge, config);
1046
- const deckId = react.useMemo(() => chunkTYVSLRC7_js.deckIdFromBridge(bridge), [bridge]);
1046
+ const deckId = react.useMemo(() => chunkKVXB22D3_js.deckIdFromBridge(bridge), [bridge]);
1047
1047
  return /* @__PURE__ */ jsxRuntime.jsxs(
1048
1048
  "div",
1049
1049
  {
Binary file
Binary file
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var chunkDNR6CH6I_js = require('./chunk-DNR6CH6I.js');
4
- var chunk3FVOKV4E_js = require('./chunk-3FVOKV4E.js');
4
+ var chunk4SPZ5IZN_js = require('./chunk-4SPZ5IZN.js');
5
5
  require('./chunk-4VNS5WPM.js');
6
6
  var react = require('react');
7
7
  var jsxRuntime = require('react/jsx-runtime');
@@ -23,7 +23,7 @@ function Area3DChartScene({
23
23
  return;
24
24
  }
25
25
  let disposed = false;
26
- void chunk3FVOKV4E_js.mountAreaChart3D(container, options, stableInteraction).then((handle) => {
26
+ void chunk4SPZ5IZN_js.mountAreaChart3D(container, options, stableInteraction).then((handle) => {
27
27
  if (disposed) {
28
28
  handle.dispose();
29
29
  } else {
@@ -1,5 +1,5 @@
1
1
  import { useStableChart3DInteraction, useLatestRef } from './chunk-T6GFCLSM.mjs';
2
- import { mountAreaChart3D } from './chunk-XMD6ZWUO.mjs';
2
+ import { mountAreaChart3D } from './chunk-QTGCOL5H.mjs';
3
3
  import './chunk-XGB3TDIC.mjs';
4
4
  import { useRef, useEffect } from 'react';
5
5
  import { jsx } from 'react/jsx-runtime';
@@ -1,5 +1,5 @@
1
1
  import { useStableChart3DInteraction, useLatestRef } from './chunk-T6GFCLSM.mjs';
2
- import { mountBarChart3D } from './chunk-XMD6ZWUO.mjs';
2
+ import { mountBarChart3D } from './chunk-QTGCOL5H.mjs';
3
3
  import './chunk-XGB3TDIC.mjs';
4
4
  import { useRef, useEffect } from 'react';
5
5
  import { jsx } from 'react/jsx-runtime';
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var chunkDNR6CH6I_js = require('./chunk-DNR6CH6I.js');
4
- var chunk3FVOKV4E_js = require('./chunk-3FVOKV4E.js');
4
+ var chunk4SPZ5IZN_js = require('./chunk-4SPZ5IZN.js');
5
5
  require('./chunk-4VNS5WPM.js');
6
6
  var react = require('react');
7
7
  var jsxRuntime = require('react/jsx-runtime');
@@ -23,7 +23,7 @@ function Bar3DChartScene({
23
23
  return;
24
24
  }
25
25
  let disposed = false;
26
- void chunk3FVOKV4E_js.mountBarChart3D(container, options, stableInteraction).then((handle) => {
26
+ void chunk4SPZ5IZN_js.mountBarChart3D(container, options, stableInteraction).then((handle) => {
27
27
  if (disposed) {
28
28
  handle.dispose();
29
29
  } else {
@@ -1,5 +1,5 @@
1
1
  import { useStableChart3DInteraction, useLatestRef } from './chunk-T6GFCLSM.mjs';
2
- import { mountLineChart3D } from './chunk-XMD6ZWUO.mjs';
2
+ import { mountLineChart3D } from './chunk-QTGCOL5H.mjs';
3
3
  import './chunk-XGB3TDIC.mjs';
4
4
  import { useRef, useEffect } from 'react';
5
5
  import { jsx } from 'react/jsx-runtime';
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var chunkDNR6CH6I_js = require('./chunk-DNR6CH6I.js');
4
- var chunk3FVOKV4E_js = require('./chunk-3FVOKV4E.js');
4
+ var chunk4SPZ5IZN_js = require('./chunk-4SPZ5IZN.js');
5
5
  require('./chunk-4VNS5WPM.js');
6
6
  var react = require('react');
7
7
  var jsxRuntime = require('react/jsx-runtime');
@@ -23,7 +23,7 @@ function Line3DChartScene({
23
23
  return;
24
24
  }
25
25
  let disposed = false;
26
- void chunk3FVOKV4E_js.mountLineChart3D(container, options, stableInteraction).then((handle) => {
26
+ void chunk4SPZ5IZN_js.mountLineChart3D(container, options, stableInteraction).then((handle) => {
27
27
  if (disposed) {
28
28
  handle.dispose();
29
29
  } else {
@@ -1,4 +1,4 @@
1
- import { mountModel3D } from './chunk-XMD6ZWUO.mjs';
1
+ import { mountModel3D } from './chunk-QTGCOL5H.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 chunk3FVOKV4E_js = require('./chunk-3FVOKV4E.js');
3
+ var chunk4SPZ5IZN_js = require('./chunk-4SPZ5IZN.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 chunk3FVOKV4E_js.mountModel3D(container, modelUrl, { width, height, interactive }).then((handle) => {
17
+ void chunk4SPZ5IZN_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,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var chunkDNR6CH6I_js = require('./chunk-DNR6CH6I.js');
4
- var chunk3FVOKV4E_js = require('./chunk-3FVOKV4E.js');
4
+ var chunk4SPZ5IZN_js = require('./chunk-4SPZ5IZN.js');
5
5
  require('./chunk-4VNS5WPM.js');
6
6
  var react = require('react');
7
7
  var jsxRuntime = require('react/jsx-runtime');
@@ -21,7 +21,7 @@ function PieChart3DScene({
21
21
  return;
22
22
  }
23
23
  let disposed = false;
24
- void chunk3FVOKV4E_js.mountPieChart3D(container, options, stableInteraction).then((handle) => {
24
+ void chunk4SPZ5IZN_js.mountPieChart3D(container, options, stableInteraction).then((handle) => {
25
25
  if (disposed) {
26
26
  handle.dispose();
27
27
  } else {
@@ -1,5 +1,5 @@
1
1
  import { useStableChart3DInteraction, useLatestRef } from './chunk-T6GFCLSM.mjs';
2
- import { mountPieChart3D } from './chunk-XMD6ZWUO.mjs';
2
+ import { mountPieChart3D } from './chunk-QTGCOL5H.mjs';
3
3
  import './chunk-XGB3TDIC.mjs';
4
4
  import { useRef, useEffect } from 'react';
5
5
  import { jsx } from 'react/jsx-runtime';
@@ -1,4 +1,4 @@
1
- import { f as PowerPointViewerHandle, p as PowerPointViewerProps } from "./types-Bzdkiakq.js";
1
+ import { f as PowerPointViewerHandle, p as PowerPointViewerProps } from "./types-BqB2ZCwS.js";
2
2
  import { PptxAnimationPreset, PptxNativeAnimation } from "pptx-viewer-core";
3
3
  import "pptx-viewer-shared";
4
4
  import React from "react";
@@ -18,4 +18,4 @@ declare function getAnimationInitialStyle(preset: PptxAnimationPreset | undefine
18
18
  declare const PowerPointViewer: import("react").ForwardRefExoticComponent<PowerPointViewerProps & import("react").RefAttributes<PowerPointViewerHandle>>;
19
19
  //#endregion
20
20
  export { getAnimationInitialStyle as n, PowerPointViewer as t };
21
- //# sourceMappingURL=PowerPointViewer-Cl6jBPNw.d.ts.map
21
+ //# sourceMappingURL=PowerPointViewer-Cde_wzd0.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PowerPointViewer-Cl6jBPNw.d.ts","names":[],"sources":["../src/viewer/utils/animation-effects.ts","../src/viewer/PowerPointViewer.tsx"],"mappings":";;;;;iBAmBgB,yBACf,QAAQ,iCACR,kBAAkB,sBAChB,MAAM;;;;;;;;;;;;cCkII,kCAAgB,0BAAA,wCAAA,cAAA"}
1
+ {"version":3,"file":"PowerPointViewer-Cde_wzd0.d.ts","names":[],"sources":["../src/viewer/utils/animation-effects.ts","../src/viewer/PowerPointViewer.tsx"],"mappings":";;;;;iBAmBgB,yBACf,QAAQ,iCACR,kBAAkB,sBAChB,MAAM;;;;;;;;;;;;cCkII,kCAAgB,0BAAA,wCAAA,cAAA"}
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var chunkDNR6CH6I_js = require('./chunk-DNR6CH6I.js');
4
- var chunk3FVOKV4E_js = require('./chunk-3FVOKV4E.js');
4
+ var chunk4SPZ5IZN_js = require('./chunk-4SPZ5IZN.js');
5
5
  require('./chunk-4VNS5WPM.js');
6
6
  var react = require('react');
7
7
  var jsxRuntime = require('react/jsx-runtime');
@@ -23,7 +23,7 @@ function SurfaceChart3DScene({
23
23
  return;
24
24
  }
25
25
  let disposed = false;
26
- void chunk3FVOKV4E_js.mountSurfaceChart3D(container, options, stableInteraction).then((handle) => {
26
+ void chunk4SPZ5IZN_js.mountSurfaceChart3D(container, options, stableInteraction).then((handle) => {
27
27
  if (disposed) {
28
28
  handle.dispose();
29
29
  } else {
@@ -1,5 +1,5 @@
1
1
  import { useStableChart3DInteraction, useLatestRef } from './chunk-T6GFCLSM.mjs';
2
- import { mountSurfaceChart3D } from './chunk-XMD6ZWUO.mjs';
2
+ import { mountSurfaceChart3D } from './chunk-QTGCOL5H.mjs';
3
3
  import './chunk-XGB3TDIC.mjs';
4
4
  import { useRef, useEffect } from 'react';
5
5
  import { jsx } from 'react/jsx-runtime';
@@ -1,4 +1,4 @@
1
- import { C as CollaborationConfig$1, D as UserPresence, E as ConnectionStatus, w as CollaborationContextValue } from "./types-Bzdkiakq.js";
1
+ import { C as CollaborationConfig$1, D as UserPresence, E as ConnectionStatus, w as CollaborationContextValue } from "./types-BqB2ZCwS.js";
2
2
  import { PptxData, PptxElement, PptxHandler, PptxHandlerSaveOptions, PptxSlide, PptxThemeColorScheme, PptxThemeFontScheme, PptxThemePreset } from "pptx-viewer-core";
3
3
  import { CollabLoadOrigin, CollaborationConfig, CollaborationLivePatcher, PresentationSnapshot, clearAudienceContent, loadAudienceContent, storeAudienceContent } from "pptx-viewer-shared";
4
4
  import { RefObject } from "react";
@@ -399,4 +399,4 @@ interface UsePresenterWindowResult {
399
399
  declare function usePresenterWindow(input: UsePresenterWindowInput): UsePresenterWindowResult;
400
400
  //#endregion
401
401
  export { usePresenceTracking as C, ThemeSwitchingResult as D, useYjsProvider as E, UseThemeSwitchingInput as O, UsePresenceTrackingResult as S, UseYjsProviderResult as T, UseCollaborativeHistoryResult as _, UsePresenterWindowResult as a, useCollaborativeState as b, usePresenterWindow as c, useFollowMode as d, UseBroadcastFollowerInput as f, UseCollaborativeHistoryInput as g, useYjsDocumentSync as h, UsePresenterWindowInput as i, useThemeSwitching as k, UseFollowModeInput as l, UseYjsDocumentSyncInput as m, loadAudienceContent as n, isAudienceTab as o, useBroadcastFollower as p, storeAudienceContent as r, parseAudienceNonce as s, clearAudienceContent as t, UseFollowModeResult as u, useCollaborativeHistory as v, UseYjsProviderInput as w, UsePresenceTrackingInput as x, UseCollaborativeStateInput as y };
402
- //# sourceMappingURL=audience-content-store-CB2WVM1K.d.ts.map
402
+ //# sourceMappingURL=audience-content-store-A8Km8rBo.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"audience-content-store-CB2WVM1K.d.ts","names":[],"sources":["../src/viewer/hooks/useThemeSwitching.ts","../../../node_modules/.bun/lib0@0.2.117/node_modules/lib0/observable.d.ts","../../../node_modules/.bun/y-protocols@1.0.7+48ebd0cf55a3d4ab/node_modules/y-protocols/awareness.d.ts","../src/viewer/hooks/collaboration/useYjsProvider.ts","../src/viewer/hooks/collaboration/usePresenceTracking.ts","../src/viewer/hooks/collaboration/useCollaborativeState.ts","../src/viewer/hooks/collaboration/useCollaborativeHistory.ts","../src/viewer/hooks/collaboration/useYjsDocumentSync.ts","../src/viewer/hooks/collaboration/useBroadcastFollower.ts","../src/viewer/hooks/collaboration/useFollowMode.ts","../src/viewer/hooks/presentation-mode/usePresenterWindow.ts"],"x_google_ignoreList":[1,2],"mappings":";;;;;;;UAqBiB;;EAEhB,YAAY,UAAU;;EAEtB,MAAM;;EAEN,eAAe,SAAS;;EAExB,kBAAkB,QAAQ;;UAGV;;EAEhB,kBAAkB;;;;;EAMlB,iBAAiB,QAAQ,oBAAoB;;;;;EAM7C,iBACC,aAAa,sBACb,aAAa,qBACb,uBACI;;;;;EAML,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAiCA,kBAAkB,OAAO,yBAAyB;;;;;;;;;cCrCrD,WAAW;;;;;EAKpB,YAAY,IAAI;;;;;EAKhB,GAAG,MAAM,GAAG,GAAG;;;;;EAKf,KAAK,MAAM,GAAG,GAAG;;;;;EAKjB,IAAI,MAAM,GAAG,GAAG;;;;;;;;;;EAUhB,KAAK,MAAM,GAAG,MAAM;EACpB;;;;;;;;;;;;;;;;;;;;;;;;;;;cC3DS,kBAAkB;;;;EAI3B,YAAY,KAAK,EAAE;EACnB,KAAK,EAAE;;;;EAIP;;;;;EAKA,QAAQ;KACH;;;;;EAKL,MAAM,YAAY;EAClB;;;;EAIA;KACK;;;;;EAKL,cAAc;KACT;;;;;;EAML,mBAAmB,eAAe;;;;EAIlC,aAAa;KACR;;;KASG;EACR;;;;EAIA;;;;UC9Ba;;;;;;EAMhB,SAAS;;UAGO;;EAEhB,QAAQ;;EAER,WAAW;;EAEX,KAAK;;EAEL;;;;;;;;;EASA;;EAEA;;;;;;;;;;;;;iBAkBe,iBAAiB,UAAU,sBAAsB;;;UChFhD;EAChB,WAAW;EACX;EACA;EACA;EACA;;EAEA;EACA;EACA;;UAGgB;;EAEhB,aAAa;;EAEb,oBAAoB,QAAQ,QAAQ,KAAK;;iBAO1B,sBACf,WACA,eACA,UACA,WACA,YACA,MACA,aACA,gBACE,2BAA2B;;;UC3Bb;;;;;;;EAOhB,SAAS;EACT;EACA;;iBAOe,wBACf,QACA,aACA,gBACE,6BAA6B;;;UCvBf;;EAEhB;;EAEA;;EAEA;;EAEA;;EAEA;;UAGgB;;EAEhB;;EAEA;;EAEA;;EAEA;;iBAOe,0BACf,eAAe,gBACf,YACA,YACA,SACA,WACE,+BAA+B;;;UCpBjB;;EAEhB,KAAK;;EAEL,QAAQ;;EAER,2BAA2B,eAAe;;EAE1C,WAAW,MAAM,SAAS,MAAM,eAAe;;EAE/C;;;;;;;EAOA;;EAEA,SAAS,KAAK;;;;;EAKd,uBAAuB;;;;;;;;;EASvB,uBAAuB;;;;;;;;EAQvB;;;;;;;EAOA,aAAa;;iBAGE,qBACf,KACA,QACA,2BACA,WACA,aACA,UACA,QACA,gBACA,gBACA,aACA,cACE;;;UC9Ec;;EAEhB,QAAQ;;EAER;;EAEA,sBAAsB;;EAEtB;;;;;EAKA;;iBAOe,uBACf,QACA,kBACA,qBACA,YACA,UACE;;;UCzBc;;EAEhB,QAAQ;;EAER;;EAEA,sBAAsB;;EAEtB;;UAGgB;;EAEhB;;EAEA,aAAa;;iBAOE,gBACf,QACA,kBACA,qBACA,cACE,qBAAqB;;;;;;;iBCgBR;;iBAkDA;UAQC;EAChB;EACA;;EAEA,UAAU,cAAc;EACxB,UAAU;;UAGM;EAChB;EACA;EACA;EACA,sBAAsB;EACtB,sBAAsB,UAAU;EAChC,oBAAoB;;iBAOL,mBAAmB,OAAO,0BAA0B"}
1
+ {"version":3,"file":"audience-content-store-A8Km8rBo.d.ts","names":[],"sources":["../src/viewer/hooks/useThemeSwitching.ts","../../../node_modules/.bun/lib0@0.2.117/node_modules/lib0/observable.d.ts","../../../node_modules/.bun/y-protocols@1.0.7+48ebd0cf55a3d4ab/node_modules/y-protocols/awareness.d.ts","../src/viewer/hooks/collaboration/useYjsProvider.ts","../src/viewer/hooks/collaboration/usePresenceTracking.ts","../src/viewer/hooks/collaboration/useCollaborativeState.ts","../src/viewer/hooks/collaboration/useCollaborativeHistory.ts","../src/viewer/hooks/collaboration/useYjsDocumentSync.ts","../src/viewer/hooks/collaboration/useBroadcastFollower.ts","../src/viewer/hooks/collaboration/useFollowMode.ts","../src/viewer/hooks/presentation-mode/usePresenterWindow.ts"],"x_google_ignoreList":[1,2],"mappings":";;;;;;;UAqBiB;;EAEhB,YAAY,UAAU;;EAEtB,MAAM;;EAEN,eAAe,SAAS;;EAExB,kBAAkB,QAAQ;;UAGV;;EAEhB,kBAAkB;;;;;EAMlB,iBAAiB,QAAQ,oBAAoB;;;;;EAM7C,iBACC,aAAa,sBACb,aAAa,qBACb,uBACI;;;;;EAML,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAiCA,kBAAkB,OAAO,yBAAyB;;;;;;;;;cCrCrD,WAAW;;;;;EAKpB,YAAY,IAAI;;;;;EAKhB,GAAG,MAAM,GAAG,GAAG;;;;;EAKf,KAAK,MAAM,GAAG,GAAG;;;;;EAKjB,IAAI,MAAM,GAAG,GAAG;;;;;;;;;;EAUhB,KAAK,MAAM,GAAG,MAAM;EACpB;;;;;;;;;;;;;;;;;;;;;;;;;;;cC3DS,kBAAkB;;;;EAI3B,YAAY,KAAK,EAAE;EACnB,KAAK,EAAE;;;;EAIP;;;;;EAKA,QAAQ;KACH;;;;;EAKL,MAAM,YAAY;EAClB;;;;EAIA;KACK;;;;;EAKL,cAAc;KACT;;;;;;EAML,mBAAmB,eAAe;;;;EAIlC,aAAa;KACR;;;KASG;EACR;;;;EAIA;;;;UC9Ba;;;;;;EAMhB,SAAS;;UAGO;;EAEhB,QAAQ;;EAER,WAAW;;EAEX,KAAK;;EAEL;;;;;;;;;EASA;;EAEA;;;;;;;;;;;;;iBAkBe,iBAAiB,UAAU,sBAAsB;;;UChFhD;EAChB,WAAW;EACX;EACA;EACA;EACA;;EAEA;EACA;EACA;;UAGgB;;EAEhB,aAAa;;EAEb,oBAAoB,QAAQ,QAAQ,KAAK;;iBAO1B,sBACf,WACA,eACA,UACA,WACA,YACA,MACA,aACA,gBACE,2BAA2B;;;UC3Bb;;;;;;;EAOhB,SAAS;EACT;EACA;;iBAOe,wBACf,QACA,aACA,gBACE,6BAA6B;;;UCvBf;;EAEhB;;EAEA;;EAEA;;EAEA;;EAEA;;UAGgB;;EAEhB;;EAEA;;EAEA;;EAEA;;iBAOe,0BACf,eAAe,gBACf,YACA,YACA,SACA,WACE,+BAA+B;;;UCpBjB;;EAEhB,KAAK;;EAEL,QAAQ;;EAER,2BAA2B,eAAe;;EAE1C,WAAW,MAAM,SAAS,MAAM,eAAe;;EAE/C;;;;;;;EAOA;;EAEA,SAAS,KAAK;;;;;EAKd,uBAAuB;;;;;;;;;EASvB,uBAAuB;;;;;;;;EAQvB;;;;;;;EAOA,aAAa;;iBAGE,qBACf,KACA,QACA,2BACA,WACA,aACA,UACA,QACA,gBACA,gBACA,aACA,cACE;;;UC9Ec;;EAEhB,QAAQ;;EAER;;EAEA,sBAAsB;;EAEtB;;;;;EAKA;;iBAOe,uBACf,QACA,kBACA,qBACA,YACA,UACE;;;UCzBc;;EAEhB,QAAQ;;EAER;;EAEA,sBAAsB;;EAEtB;;UAGgB;;EAEhB;;EAEA,aAAa;;iBAOE,gBACf,QACA,kBACA,qBACA,cACE,qBAAqB;;;;;;;iBCgBR;;iBAkDA;UAQC;EAChB;EACA;;EAEA,UAAU,cAAc;EACxB,UAAU;;UAGM;EAChB;EACA;EACA;EACA,sBAAsB;EACtB,sBAAsB,UAAU;EAChC,oBAAoB;;iBAOL,mBAAmB,OAAO,0BAA0B"}
@@ -1,4 +1,4 @@
1
- import { SHAPE_PRESET_DEFS, VIEWER_SHORTCUT_REFERENCE, STROKE_DASH_OPTIONS, getAnimationInitialStyle, cloneHistorySnapshot, hasShapeProperties, getImageFitStyle, getComputedFillStyle, isImageLikeElement, getCropShapeClipPath, getImageTilingStyle, mediaPlaybackAttributes, buildTextBlockStyle, hasTextProperties, toCssWritingMode, toCssTextOrientation, toCssVerticalDirection, buildTextBodyLayoutStyle, buildTextBody3DSceneStyle, buildParagraphs, colorWithOpacity, normalizeHexColor, hexToRgbUnit, build3DExtrusionData, getComputedEffectStyle, getComputedStrokeStyle, getAnimationColorBaseStyle, isStrokeOnlyPresetElement, resolveShapeGeometry, normalizeStrokeDashType, getSvgStrokeDasharray, buildSvgGradientDef, buildStrokeOutline, getPresetShapeVectorGeometry, isWedgeCalloutPresetShape, svgGradientFillRef, isCalloutShape, getCalloutLeaderLineGeometry, buildCalloutLeaderLineSvgPath, getCalloutViewBoxBounds, svgLineCap, getCompoundLineOffsets, getCompoundLineWidths, canDrillDown, computeSelectionRect, DEFAULT_FONT_FAMILY, cellStyleToCss, rectToCells, isCellInRect, tableContainerCss, buildChartViewModel, resolveChartKind, chartPreserveAspectRatio, buildNotesPdfBytes, buildTiledSlidesPdfBytes, buildPreviewAnimation, buildMotionPathPreview, mediaFallbackVisual, scheduleMediaTrimAndFade, registerCrossSlideAudio, resolveAutoFitFontScale, resolveFontKerning, getSubstituteFontFamily, parsePanoseString, resolveScriptFontSet, hasDistinctScriptFonts, nestedTextDecorationStyle, pieceLetterSpacing, resolveMetricTrackingPx, hollowTextFillStyle, stripUnderlineDecoration, buildTabContext, TEXT_BUILD_ID_SEP, buildTextBuildSpec, textBuildSpanStyle, apply3dEffects, clampUnitInterval, customGeometryPathsToSvgSubpaths, buildSubpathPaints, computeColumnBoundaries, getTableCellBandStyle, parseDrawingColor, parseDrawingColorOpacity, getCellDiagonalBorders, xmlText, cellRunStyle, getChartStylePalette, computeChartLegendLayout, mediaFallbackIcon, mediaFallbackLabelKey, MEDIA_CHROME_ATTRIBUTE, convertOmmlToMathMl, sanitizeMathMl, tableCellCss, computeResizedColumnWidths, computeResizedRowHeight, DEFAULT_ROW_HEIGHT, ooxmlGradientAngleToCssDegrees, buildRectPathGradient, buildRunTabLines, chartPartToAttrs, splitWordsForUnderline, splitRunForMetrics, splitRunByScriptFont } from './chunk-XMD6ZWUO.mjs';
1
+ import { SHAPE_PRESET_DEFS, VIEWER_SHORTCUT_REFERENCE, STROKE_DASH_OPTIONS, getAnimationInitialStyle, cloneHistorySnapshot, hasShapeProperties, getImageFitStyle, getComputedFillStyle, isImageLikeElement, getCropShapeClipPath, getImageTilingStyle, mediaPlaybackAttributes, buildTextBlockStyle, hasTextProperties, toCssWritingMode, toCssTextOrientation, toCssVerticalDirection, buildTextBodyLayoutStyle, buildTextBody3DSceneStyle, buildParagraphs, colorWithOpacity, normalizeHexColor, hexToRgbUnit, build3DExtrusionData, getComputedEffectStyle, getComputedStrokeStyle, getAnimationColorBaseStyle, isStrokeOnlyPresetElement, resolveShapeGeometry, normalizeStrokeDashType, getSvgStrokeDasharray, buildSvgGradientDef, buildStrokeOutline, getPresetShapeVectorGeometry, isWedgeCalloutPresetShape, svgGradientFillRef, isCalloutShape, getCalloutLeaderLineGeometry, buildCalloutLeaderLineSvgPath, getCalloutViewBoxBounds, svgLineCap, getCompoundLineOffsets, getCompoundLineWidths, canDrillDown, computeSelectionRect, DEFAULT_FONT_FAMILY, cellStyleToCss, rectToCells, isCellInRect, tableContainerCss, buildChartViewModel, resolveChartKind, chartPreserveAspectRatio, buildNotesPdfBytes, buildTiledSlidesPdfBytes, buildPreviewAnimation, buildMotionPathPreview, mediaFallbackVisual, scheduleMediaTrimAndFade, registerCrossSlideAudio, resolveAutoFitFontScale, resolveFontKerning, getSubstituteFontFamily, parsePanoseString, resolveScriptFontSet, hasDistinctScriptFonts, nestedTextDecorationStyle, pieceLetterSpacing, resolveMetricTrackingPx, hollowTextFillStyle, stripUnderlineDecoration, buildTabContext, TEXT_BUILD_ID_SEP, buildTextBuildSpec, textBuildSpanStyle, apply3dEffects, clampUnitInterval, customGeometryPathsToSvgSubpaths, buildSubpathPaints, computeColumnBoundaries, getTableCellBandStyle, parseDrawingColor, parseDrawingColorOpacity, getCellDiagonalBorders, xmlText, cellRunStyle, getChartStylePalette, computeChartLegendLayout, mediaFallbackIcon, mediaFallbackLabelKey, MEDIA_CHROME_ATTRIBUTE, convertOmmlToMathMl, sanitizeMathMl, tableCellCss, computeResizedColumnWidths, computeResizedRowHeight, DEFAULT_ROW_HEIGHT, ooxmlGradientAngleToCssDegrees, buildRectPathGradient, buildRunTabLines, chartPartToAttrs, splitWordsForUnderline, splitRunForMetrics, splitRunByScriptFont } from './chunk-QTGCOL5H.mjs';
2
2
  import { translationsEn } from './chunk-HMX3MQR7.mjs';
3
3
  import { clsx } from 'clsx';
4
4
  import { twMerge } from 'tailwind-merge';
Binary file
Binary file