pptx-react-viewer 4.9.0 → 4.10.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +74 -0
- package/dist/{AiChatPanel-YRWC7C3B.mjs → AiChatPanel-AR2K2XN2.mjs} +3 -3
- package/dist/AiChatPanel-AR2K2XN2.mjs.br +0 -0
- package/dist/AiChatPanel-AR2K2XN2.mjs.gz +0 -0
- package/dist/{AiChatPanel-WJ64Q6KO.js → AiChatPanel-X6E22UAR.js} +27 -27
- package/dist/AiChatPanel-X6E22UAR.js.br +0 -0
- package/dist/AiChatPanel-X6E22UAR.js.gz +0 -0
- package/dist/{Model3DScene-DS6AQWFV.mjs → Model3DScene-FF4RCG4O.mjs} +1 -1
- package/dist/Model3DScene-FF4RCG4O.mjs.br +0 -0
- package/dist/Model3DScene-FF4RCG4O.mjs.gz +0 -0
- package/dist/{Model3DScene-VHDYCHO5.js → Model3DScene-ZSCVKXZE.js} +2 -2
- package/dist/Model3DScene-ZSCVKXZE.js.br +0 -0
- package/dist/Model3DScene-ZSCVKXZE.js.gz +0 -0
- package/dist/{chunk-M6KW27TZ.mjs → chunk-22ODJ4CT.mjs} +17 -13
- package/dist/chunk-22ODJ4CT.mjs.br +0 -0
- package/dist/chunk-22ODJ4CT.mjs.gz +0 -0
- package/dist/{chunk-7NTNFOPT.js → chunk-7EP22XCS.js} +187 -187
- package/dist/chunk-7EP22XCS.js.br +0 -0
- package/dist/chunk-7EP22XCS.js.gz +0 -0
- package/dist/{chunk-NMXIX7E4.js → chunk-ICOJBMRC.js} +1179 -1179
- package/dist/chunk-ICOJBMRC.js.br +0 -0
- package/dist/chunk-ICOJBMRC.js.gz +0 -0
- package/dist/{chunk-YWAFJZ23.js → chunk-JJE4AACM.js} +861 -346
- package/dist/chunk-JJE4AACM.js.br +0 -0
- package/dist/chunk-JJE4AACM.js.gz +0 -0
- package/dist/{chunk-PJT2DTOS.mjs → chunk-LDRA5LJT.mjs} +861 -346
- package/dist/chunk-LDRA5LJT.mjs.br +0 -0
- package/dist/chunk-LDRA5LJT.mjs.gz +0 -0
- package/dist/{chunk-Y7RTQOD6.mjs → chunk-NE4USMMB.mjs} +1 -1
- package/dist/chunk-NE4USMMB.mjs.br +0 -0
- package/dist/chunk-NE4USMMB.mjs.gz +0 -0
- package/dist/{chunk-K5HZD63F.mjs → chunk-QPWNFTU5.mjs} +6 -6
- package/dist/chunk-QPWNFTU5.mjs.br +0 -0
- package/dist/chunk-QPWNFTU5.mjs.gz +0 -0
- package/dist/{chunk-ZZY24BB7.mjs → chunk-VOD4C7OS.mjs} +1 -1
- package/dist/chunk-VOD4C7OS.mjs.br +0 -0
- package/dist/chunk-VOD4C7OS.mjs.gz +0 -0
- package/dist/{chunk-ZZ6IPWOP.js → chunk-VYJFYRT4.js} +820 -816
- package/dist/chunk-VYJFYRT4.js.br +0 -0
- package/dist/chunk-VYJFYRT4.js.gz +0 -0
- package/dist/{chunk-PSJTZIIK.js → chunk-WLEFW2F4.js} +5 -5
- package/dist/chunk-WLEFW2F4.js.br +0 -0
- package/dist/chunk-WLEFW2F4.js.gz +0 -0
- package/dist/index.d.ts +20 -4
- package/dist/index.js +61 -61
- package/dist/index.js.br +0 -0
- package/dist/index.js.gz +0 -0
- package/dist/index.mjs +5 -5
- package/dist/index.mjs.br +0 -0
- package/dist/index.mjs.gz +0 -0
- package/dist/internals.d.ts +22 -6
- package/dist/internals.js +104 -104
- package/dist/internals.js.br +0 -0
- package/dist/internals.js.gz +0 -0
- package/dist/internals.mjs +3 -3
- package/dist/internals.mjs.br +0 -0
- package/dist/internals.mjs.gz +0 -0
- package/dist/viewer/index.d.ts +20 -4
- package/dist/viewer/index.js +26 -26
- package/dist/viewer/index.js.br +0 -0
- package/dist/viewer/index.js.gz +0 -0
- package/dist/viewer/index.mjs +5 -5
- package/dist/viewer/index.mjs.br +0 -0
- package/dist/viewer/index.mjs.gz +0 -0
- package/package.json +2 -2
- package/dist/AiChatPanel-WJ64Q6KO.js.br +0 -0
- package/dist/AiChatPanel-WJ64Q6KO.js.gz +0 -0
- package/dist/AiChatPanel-YRWC7C3B.mjs.br +0 -0
- package/dist/AiChatPanel-YRWC7C3B.mjs.gz +0 -0
- package/dist/Model3DScene-DS6AQWFV.mjs.br +0 -0
- package/dist/Model3DScene-DS6AQWFV.mjs.gz +0 -0
- package/dist/Model3DScene-VHDYCHO5.js.br +0 -0
- package/dist/Model3DScene-VHDYCHO5.js.gz +0 -0
- package/dist/chunk-7NTNFOPT.js.br +0 -0
- package/dist/chunk-7NTNFOPT.js.gz +0 -0
- package/dist/chunk-K5HZD63F.mjs.br +0 -0
- package/dist/chunk-K5HZD63F.mjs.gz +0 -0
- package/dist/chunk-M6KW27TZ.mjs.br +0 -0
- package/dist/chunk-M6KW27TZ.mjs.gz +0 -0
- package/dist/chunk-NMXIX7E4.js.br +0 -0
- package/dist/chunk-NMXIX7E4.js.gz +0 -0
- package/dist/chunk-PJT2DTOS.mjs.br +0 -0
- package/dist/chunk-PJT2DTOS.mjs.gz +0 -0
- package/dist/chunk-PSJTZIIK.js.br +0 -0
- package/dist/chunk-PSJTZIIK.js.gz +0 -0
- package/dist/chunk-Y7RTQOD6.mjs.br +0 -0
- package/dist/chunk-Y7RTQOD6.mjs.gz +0 -0
- package/dist/chunk-YWAFJZ23.js.br +0 -0
- package/dist/chunk-YWAFJZ23.js.gz +0 -0
- package/dist/chunk-ZZ6IPWOP.js.br +0 -0
- package/dist/chunk-ZZ6IPWOP.js.gz +0 -0
- package/dist/chunk-ZZY24BB7.mjs.br +0 -0
- package/dist/chunk-ZZY24BB7.mjs.gz +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,80 @@ 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
|
+
## [4.10.0](https://github.com/ChristopherVR/pptx-viewer/releases/tag/pptx-react-viewer@4.10.0) - 2026-09-26
|
|
11
|
+
|
|
12
|
+
### Features
|
|
13
|
+
|
|
14
|
+
- **core:** Style regenerated SmartArt shapes by their own style label (by @claude) ([67ea2fb](https://github.com/ChristopherVR/pptx-viewer/commit/67ea2fbe0efdded17cb3cfce73921dcef8712d85))
|
|
15
|
+
|
|
16
|
+
### Bug Fixes
|
|
17
|
+
|
|
18
|
+
- **react:** Keep the slide rail's virtual window after the pane reopens (by @claude) ([fb9e101](https://github.com/ChristopherVR/pptx-viewer/commit/fb9e101bfb111d772cd218182403add205f7962f))
|
|
19
|
+
- **shared:** Page slides with Up, Down, PageUp and PageDown in the editor (by @claude) ([c0cc4dc](https://github.com/ChristopherVR/pptx-viewer/commit/c0cc4dcdff6525e06aac39f7091723aa3bb9d882))
|
|
20
|
+
- **core:** Draw a merged SmartArt text node's labels in its own colour (by @claude) ([7e6232d](https://github.com/ChristopherVR/pptx-viewer/commit/7e6232d6b8115f448c328db4a1a8478c2a934345))
|
|
21
|
+
- **shared:** Blend translucent SmartArt solids once and draw clear as glass (by @claude) ([52128d7](https://github.com/ChristopherVR/pptx-viewer/commit/52128d737ebf2b3b3c37ccd60edc4ccd5fa9ea20))
|
|
22
|
+
|
|
23
|
+
## [4.9.0](https://github.com/ChristopherVR/pptx-viewer/releases/tag/pptx-react-viewer@4.9.0) - 2026-09-25
|
|
24
|
+
|
|
25
|
+
### Features
|
|
26
|
+
|
|
27
|
+
- **shared:** Draw horizontal 3D bars without right-angle axes on the perspective box (by @claude) ([e0c1aad](https://github.com/ChristopherVR/pptx-viewer/commit/e0c1aad3797be9fe75e2b02cd225d19106d38eb0))
|
|
28
|
+
- **shared:** Draw right-angle-axes 3D line, area and surface charts obliquely (by @claude) ([e74306a](https://github.com/ChristopherVR/pptx-viewer/commit/e74306a1a2cf6a69cd3f9672c560cc80550cff16))
|
|
29
|
+
- **core:** Write the slide master's placeholders and theme into .ppt (by @ChristopherVR) ([95b2e26](https://github.com/ChristopherVR/pptx-viewer/commit/95b2e26e31a5f8a5da931394f19b460c38177981))
|
|
30
|
+
- **shared:** Ribbon group/control ids and the style gallery framework (by @ChristopherVR) ([adda887](https://github.com/ChristopherVR/pptx-viewer/commit/adda8870353bdb2f476ff63532fe8c726f9cab50))
|
|
31
|
+
- **locales:** Translate the ribbon gallery and contextual tab strings (by @ChristopherVR) ([dad9566](https://github.com/ChristopherVR/pptx-viewer/commit/dad95669edd0a8298f8b4f5a6c685e785312cdc1))
|
|
32
|
+
- **react:** Ribbon style galleries, contextual tabs and group customisation (by @ChristopherVR) ([4e67c19](https://github.com/ChristopherVR/pptx-viewer/commit/4e67c195b700dec326c20e839ed9221a89c29846))
|
|
33
|
+
- **core:** Keep a text reflection's end position and direction (by @ChristopherVR) ([afb807d](https://github.com/ChristopherVR/pptx-viewer/commit/afb807d81d18c017367d1af5bd01ddf5bb9a036e))
|
|
34
|
+
- **shared:** Fill the ribbon style galleries (by @ChristopherVR) ([2a743b9](https://github.com/ChristopherVR/pptx-viewer/commit/2a743b97996e32f2cef891329c9ea86b070e2a0f))
|
|
35
|
+
- **locales:** Translate the table, chart, SmartArt and theme gallery names (by @ChristopherVR) ([a80c0a8](https://github.com/ChristopherVR/pptx-viewer/commit/a80c0a875ab180f7804fd08fa1f7e9be71ac15a4))
|
|
36
|
+
- **locales:** Translate the Shape Effects, WordArt and list gallery tiles (by @ChristopherVR) ([7b665fe](https://github.com/ChristopherVR/pptx-viewer/commit/7b665fed8d6bfca94ab43721aaab597509f9c9f2))
|
|
37
|
+
- **shared:** Picture Styles gallery with PowerPoint's 28 styles (by @ChristopherVR) ([2d56881](https://github.com/ChristopherVR/pptx-viewer/commit/2d56881a23e1a49b631e8554d42a2bdc9366f527))
|
|
38
|
+
- **locales:** Translate the Picture Styles gallery names (by @ChristopherVR) ([0e1eab2](https://github.com/ChristopherVR/pptx-viewer/commit/0e1eab2bd66ed087cc71f75f66506b99cbc17d79))
|
|
39
|
+
- **shared:** Find the gallery theme preset a deck's theme matches (by @ChristopherVR) ([15d0e41](https://github.com/ChristopherVR/pptx-viewer/commit/15d0e41ad8b560325e366dbc36aa4303af2d9e36))
|
|
40
|
+
- **shared:** Play entrances and exits from the deck's behaviour tree (by @ChristopherVR) ([18c512e](https://github.com/ChristopherVR/pptx-viewer/commit/18c512ecf11aeaa19140124f2c85c66f525af010))
|
|
41
|
+
- **shared:** Offer only the directions PowerPoint has for a preset (by @ChristopherVR) ([999208d](https://github.com/ChristopherVR/pptx-viewer/commit/999208d9906bd26b6b7d1d36ce143acaf6630957))
|
|
42
|
+
- **shared:** Preview entrances and exits with PowerPoint's own tree (by @ChristopherVR) ([b3cc6c6](https://github.com/ChristopherVR/pptx-viewer/commit/b3cc6c67383c236c3d9ed386a20f8c7e478bd2a5))
|
|
43
|
+
- **react:** Offer PowerPoint's directions and preview from its tree (by @ChristopherVR) ([033c4c0](https://github.com/ChristopherVR/pptx-viewer/commit/033c4c034e51693bc1fb5264a07381e9e23af64d))
|
|
44
|
+
|
|
45
|
+
### Bug Fixes
|
|
46
|
+
|
|
47
|
+
- **shared:** Break East Asian text across runs like PowerPoint (by @ChristopherVR) ([56ea24e](https://github.com/ChristopherVR/pptx-viewer/commit/56ea24eb3afb76a32689ee917f3ccb2759d8039f))
|
|
48
|
+
- **react:** Hand East Asian breaks the text after each run (by @ChristopherVR) ([b59b51f](https://github.com/ChristopherVR/pptx-viewer/commit/b59b51f206a3704204cbcd3b5820b8557983d9b9))
|
|
49
|
+
- **shared:** Size data-label boxes from the measured text (by @ChristopherVR) ([328d0f0](https://github.com/ChristopherVR/pptx-viewer/commit/328d0f074b794a4a0e4c58815c7b4ccf3d9dce99))
|
|
50
|
+
- **shared:** Place bestFit pie labels where PowerPoint does (by @ChristopherVR) ([63e1dc3](https://github.com/ChristopherVR/pptx-viewer/commit/63e1dc35dbddc50fe2cf9337e55b4bdff0df1be7))
|
|
51
|
+
- **core:** Keep paragraph markup on a rewritten slide (by @ChristopherVR) ([ff79c00](https://github.com/ChristopherVR/pptx-viewer/commit/ff79c002df8e79eb4f9967c0261b7259fee44223))
|
|
52
|
+
- **core:** Recompute Words and Paragraphs in docProps/app.xml on save (by @ChristopherVR) ([85ef0d6](https://github.com/ChristopherVR/pptx-viewer/commit/85ef0d6c9879670b8fb85b3c072c8105397d3d55))
|
|
53
|
+
- **core:** Write .ppt group members the way PowerPoint reads them (by @ChristopherVR) ([8cf3852](https://github.com/ChristopherVR/pptx-viewer/commit/8cf3852a1cde14e089dbdbca8fcba50005c982c2))
|
|
54
|
+
- **core:** Write DIFAT sectors for compound files past 109 FAT sectors (by @ChristopherVR) ([9e26fe8](https://github.com/ChristopherVR/pptx-viewer/commit/9e26fe8775a14d7e3ae2b69fbc982167a76cadf3))
|
|
55
|
+
- **core:** Write a new p:style between spPr and txBody (by @ChristopherVR) ([c7a45b9](https://github.com/ChristopherVR/pptx-viewer/commit/c7a45b9c077c94355d62a2e1e6196d1c33598458))
|
|
56
|
+
- **shared:** Write Shape Styles presets with PowerPoint's zero references (by @ChristopherVR) ([fdea69d](https://github.com/ChristopherVR/pptx-viewer/commit/fdea69d93436881bf7038e1b32792d7fe8b87e89))
|
|
57
|
+
- **shared:** Name every Shape Effects, WordArt and list gallery tile (by @ChristopherVR) ([0e16dae](https://github.com/ChristopherVR/pptx-viewer/commit/0e16dae2cf34c1c611746b8ad1b4eaa2cd806d85))
|
|
58
|
+
- **react:** Stop ribbon controls in a group scope from shrinking (by @ChristopherVR) ([bb18a71](https://github.com/ChristopherVR/pptx-viewer/commit/bb18a717184a5a1405c93604af60be954aba40a5))
|
|
59
|
+
- **shared:** Stop 3D SmartArt and charts rotating while dragged (by @claude) ([1f4e09e](https://github.com/ChristopherVR/pptx-viewer/commit/1f4e09e3c797acf365cb4d34aaa9b5a9e72ed157))
|
|
60
|
+
- **core:** Parse every behaviour of an effect with its own timing (by @ChristopherVR) ([12ea267](https://github.com/ChristopherVR/pptx-viewer/commit/12ea26750633b1315e8b05cc78386fcc5c289151))
|
|
61
|
+
- **core:** Rebuild an edited effect's behaviour tree on save (by @ChristopherVR) ([d6e22c7](https://github.com/ChristopherVR/pptx-viewer/commit/d6e22c70e67126d38f7880de658b3258db3c66ad))
|
|
62
|
+
- **shared:** Reveal wipes, splits and mask reveals the way PowerPoint does (by @ChristopherVR) ([87ff378](https://github.com/ChristopherVR/pptx-viewer/commit/87ff378d591a3caf0d78a0b6f18d6312319fe559))
|
|
63
|
+
- **react:** Give the slide show the slide size and theme colours (by @ChristopherVR) ([6a94502](https://github.com/ChristopherVR/pptx-viewer/commit/6a94502acecc86b484828ea4ba11f03f4b33a9ff))
|
|
64
|
+
|
|
65
|
+
### Documentation
|
|
66
|
+
|
|
67
|
+
- Drop orbit wording from 3D view and chart flag docs (by @claude) ([a1fa63d](https://github.com/ChristopherVR/pptx-viewer/commit/a1fa63d34f0c61a16f10c1e2c3c53f178dcec947))
|
|
68
|
+
|
|
69
|
+
### Testing
|
|
70
|
+
|
|
71
|
+
- **e2e:** Pin East Asian breaks to PowerPoint's own lines (by @ChristopherVR) ([a358b4f](https://github.com/ChristopherVR/pptx-viewer/commit/a358b4fdd5beeccdf81be9eb50166138430e292d))
|
|
72
|
+
- **e2e:** Pin pie bestFit labels and label boxes to PowerPoint (by @ChristopherVR) ([3480d42](https://github.com/ChristopherVR/pptx-viewer/commit/3480d429183f8b44ae8427a17f6823fb596aceb7))
|
|
73
|
+
- **e2e:** Pick a Picture Styles tile from Picture Format in every binding (by @ChristopherVR) ([27c37ad](https://github.com/ChristopherVR/pptx-viewer/commit/27c37adffae73f7901af3230cc0aa127c8012277))
|
|
74
|
+
- **e2e:** Pin behaviour-tree playback and PowerPoint's wipe edge (by @ChristopherVR) ([4cbb061](https://github.com/ChristopherVR/pptx-viewer/commit/4cbb061eaca3042229cd601b4cacffa8d97f076e))
|
|
75
|
+
|
|
76
|
+
### Styling
|
|
77
|
+
|
|
78
|
+
- **shared:** Clear the lint warnings in the ribbon gallery modules (by @ChristopherVR) ([f178627](https://github.com/ChristopherVR/pptx-viewer/commit/f1786274cfe55be4189724b10e3e2b3c8c1e75f2))
|
|
79
|
+
|
|
80
|
+
### Chores
|
|
81
|
+
|
|
82
|
+
- **npm:** Surface every package in an npm search for pptx-viewer (by @ChristopherVR) ([ac67fda](https://github.com/ChristopherVR/pptx-viewer/commit/ac67fdafcfaf664412f59eee9a0627182340782f))
|
|
83
|
+
|
|
10
84
|
## [4.8.0](https://github.com/ChristopherVR/pptx-viewer/releases/tag/pptx-react-viewer@4.8.0) - 2026-09-25
|
|
11
85
|
|
|
12
86
|
### Features
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { deckIdFromBridge, isAiAvailable, createAiChatSession, extractReadyToolCalls, toolCanvasTarget, createChatHistoryStore, focusTargetChips, isTwoTableFocus, mergeTablesDirective, toRenderableParts, humanizeDiffLine, buildDeckContext, describeToolActivity, summarizeToolArgs, toolLabel } from './chunk-
|
|
2
|
-
import { cn } from './chunk-
|
|
3
|
-
import './chunk-
|
|
1
|
+
import { deckIdFromBridge, isAiAvailable, createAiChatSession, extractReadyToolCalls, toolCanvasTarget, createChatHistoryStore, focusTargetChips, isTwoTableFocus, mergeTablesDirective, toRenderableParts, humanizeDiffLine, buildDeckContext, describeToolActivity, summarizeToolArgs, toolLabel } from './chunk-VOD4C7OS.mjs';
|
|
2
|
+
import { cn } from './chunk-NE4USMMB.mjs';
|
|
3
|
+
import './chunk-LDRA5LJT.mjs';
|
|
4
4
|
import './chunk-HDH4KFDK.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
|
|
4
|
-
var
|
|
5
|
-
require('./chunk-
|
|
3
|
+
var chunkWLEFW2F4_js = require('./chunk-WLEFW2F4.js');
|
|
4
|
+
var chunk7EP22XCS_js = require('./chunk-7EP22XCS.js');
|
|
5
|
+
require('./chunk-JJE4AACM.js');
|
|
6
6
|
require('./chunk-KPKO2ELT.js');
|
|
7
7
|
require('./chunk-4VNS5WPM.js');
|
|
8
8
|
var react = require('react');
|
|
@@ -22,7 +22,7 @@ function useAiChat(bridge, config) {
|
|
|
22
22
|
setInitError(void 0);
|
|
23
23
|
void (async () => {
|
|
24
24
|
try {
|
|
25
|
-
const available = await
|
|
25
|
+
const available = await chunkWLEFW2F4_js.isAiAvailable();
|
|
26
26
|
if (cancelled) {
|
|
27
27
|
return;
|
|
28
28
|
}
|
|
@@ -30,7 +30,7 @@ function useAiChat(bridge, config) {
|
|
|
30
30
|
setState("unavailable");
|
|
31
31
|
return;
|
|
32
32
|
}
|
|
33
|
-
const built = await
|
|
33
|
+
const built = await chunkWLEFW2F4_js.createAiChatSession(bridge, configRef.current);
|
|
34
34
|
if (cancelled) {
|
|
35
35
|
return;
|
|
36
36
|
}
|
|
@@ -87,7 +87,7 @@ function withDeckContext(inner, bridge, strategy) {
|
|
|
87
87
|
}
|
|
88
88
|
let context = "";
|
|
89
89
|
try {
|
|
90
|
-
context = await
|
|
90
|
+
context = await chunkWLEFW2F4_js.buildDeckContext(bridge, { strategy, focus: {} });
|
|
91
91
|
} catch {
|
|
92
92
|
context = "";
|
|
93
93
|
}
|
|
@@ -145,12 +145,12 @@ function useAiConversation(useChat, session, config, bridge, options = {}) {
|
|
|
145
145
|
chatRef.current = chat;
|
|
146
146
|
react.useEffect(() => {
|
|
147
147
|
const seen = seenToolCallsRef.current;
|
|
148
|
-
for (const call of
|
|
148
|
+
for (const call of chunkWLEFW2F4_js.extractReadyToolCalls(chat.messages)) {
|
|
149
149
|
if (seen.has(call.toolCallId)) {
|
|
150
150
|
continue;
|
|
151
151
|
}
|
|
152
152
|
seen.add(call.toolCallId);
|
|
153
|
-
onToolTargetRef.current?.(
|
|
153
|
+
onToolTargetRef.current?.(chunkWLEFW2F4_js.toolCanvasTarget(call.toolName, call.input));
|
|
154
154
|
}
|
|
155
155
|
}, [chat.messages]);
|
|
156
156
|
const send = react.useCallback(
|
|
@@ -184,7 +184,7 @@ function useAiConversation(useChat, session, config, bridge, options = {}) {
|
|
|
184
184
|
const setMessages = react.useCallback(
|
|
185
185
|
(next) => {
|
|
186
186
|
chat.setMessages(next);
|
|
187
|
-
for (const call of
|
|
187
|
+
for (const call of chunkWLEFW2F4_js.extractReadyToolCalls(next)) {
|
|
188
188
|
seenToolCallsRef.current.add(call.toolCallId);
|
|
189
189
|
}
|
|
190
190
|
session.proposals.clear();
|
|
@@ -226,7 +226,7 @@ function deriveTitle(messages) {
|
|
|
226
226
|
}
|
|
227
227
|
function useAiHistory(input) {
|
|
228
228
|
const { deckId, messages, setMessages } = input;
|
|
229
|
-
const store = react.useMemo(() => input.store ??
|
|
229
|
+
const store = react.useMemo(() => input.store ?? chunkWLEFW2F4_js.createChatHistoryStore(), [input.store]);
|
|
230
230
|
const [activeChatId, setActiveChatId] = react.useState(newChatId);
|
|
231
231
|
const [chats, setChats] = react.useState([]);
|
|
232
232
|
const createdAtRef = react.useRef(Date.now());
|
|
@@ -369,7 +369,7 @@ function AiComposer({
|
|
|
369
369
|
disabled: value.trim().length === 0,
|
|
370
370
|
title: t("pptx.ai.send"),
|
|
371
371
|
"aria-label": t("pptx.ai.send"),
|
|
372
|
-
className:
|
|
372
|
+
className: chunk7EP22XCS_js.cn(
|
|
373
373
|
"shrink-0 rounded-sm p-1.5 transition-colors",
|
|
374
374
|
value.trim().length === 0 ? "text-muted-foreground/50" : "bg-primary text-primary-foreground hover:bg-primary/90"
|
|
375
375
|
),
|
|
@@ -392,15 +392,15 @@ function AiFocusBar({
|
|
|
392
392
|
onClearPicks
|
|
393
393
|
}) {
|
|
394
394
|
const { t } = reactI18next.useTranslation();
|
|
395
|
-
const chips =
|
|
396
|
-
const twoTables =
|
|
395
|
+
const chips = chunkWLEFW2F4_js.focusTargetChips(targets, slides);
|
|
396
|
+
const twoTables = chunkWLEFW2F4_js.isTwoTableFocus(targets, slides);
|
|
397
397
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "border-b border-border bg-secondary/30", children: [
|
|
398
398
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-wrap items-center gap-1 px-2.5 py-1.5", children: [
|
|
399
399
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[10px] font-semibold uppercase tracking-wide text-muted-foreground", children: t("pptx.ai.focusScope") }),
|
|
400
400
|
chips.map((chip) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
401
401
|
"span",
|
|
402
402
|
{
|
|
403
|
-
className:
|
|
403
|
+
className: chunk7EP22XCS_js.cn(
|
|
404
404
|
"inline-flex max-w-[10rem] items-center rounded-full px-2 py-0.5 text-[11px]",
|
|
405
405
|
hasPicks || isPinned ? "bg-primary/15 text-primary" : "bg-muted text-muted-foreground"
|
|
406
406
|
),
|
|
@@ -416,7 +416,7 @@ function AiFocusBar({
|
|
|
416
416
|
{
|
|
417
417
|
type: "button",
|
|
418
418
|
onClick: () => onSendDirective(
|
|
419
|
-
|
|
419
|
+
chunkWLEFW2F4_js.mergeTablesDirective(
|
|
420
420
|
twoTables.slideIndex,
|
|
421
421
|
twoTables.elementIdA,
|
|
422
422
|
twoTables.elementIdB
|
|
@@ -437,7 +437,7 @@ function AiFocusBar({
|
|
|
437
437
|
title: t("pptx.ai.pickElement"),
|
|
438
438
|
"aria-label": t("pptx.ai.pickAria"),
|
|
439
439
|
"aria-pressed": pickMode,
|
|
440
|
-
className:
|
|
440
|
+
className: chunk7EP22XCS_js.cn(
|
|
441
441
|
"rounded-sm p-1 max-md:min-w-[44px]! max-md:min-h-[44px]! flex items-center justify-center",
|
|
442
442
|
pickMode ? "bg-primary text-primary-foreground" : "text-muted-foreground hover:bg-accent"
|
|
443
443
|
),
|
|
@@ -516,7 +516,7 @@ function AiHistoryList({ chats, activeChatId, onResume, onDelete }) {
|
|
|
516
516
|
{
|
|
517
517
|
type: "button",
|
|
518
518
|
onClick: () => onResume(chat.id),
|
|
519
|
-
className:
|
|
519
|
+
className: chunk7EP22XCS_js.cn(
|
|
520
520
|
"flex min-w-0 flex-1 items-start gap-2 rounded-sm px-2 py-1.5 text-left hover:bg-accent",
|
|
521
521
|
chat.id === activeChatId && "bg-accent/60"
|
|
522
522
|
),
|
|
@@ -671,26 +671,26 @@ function AiToolCallCard({ part }) {
|
|
|
671
671
|
const failed = part.state === "output-error";
|
|
672
672
|
const done = part.state === "output-available";
|
|
673
673
|
const running = !failed && !done;
|
|
674
|
-
const activity =
|
|
674
|
+
const activity = chunkWLEFW2F4_js.describeToolActivity(part.toolName, part.input, running ? "present" : "past");
|
|
675
675
|
const Icon = ICONS[activity.icon] ?? lu.LuWrench;
|
|
676
|
-
const rawSummary =
|
|
676
|
+
const rawSummary = chunkWLEFW2F4_js.summarizeToolArgs(part.input);
|
|
677
677
|
const statusLabel = failed ? t("pptx.ai.toolFailed") : done ? t("pptx.ai.toolDone") : t("pptx.ai.toolRunning");
|
|
678
678
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-[12px]", children: [
|
|
679
679
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-1.5", children: [
|
|
680
680
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
681
681
|
Icon,
|
|
682
682
|
{
|
|
683
|
-
className:
|
|
683
|
+
className: chunk7EP22XCS_js.cn(
|
|
684
684
|
"w-3.5 h-3.5 shrink-0",
|
|
685
685
|
failed ? "text-destructive" : "text-muted-foreground"
|
|
686
686
|
)
|
|
687
687
|
}
|
|
688
688
|
),
|
|
689
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className:
|
|
689
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: chunk7EP22XCS_js.cn("truncate", failed ? "text-destructive" : "text-foreground"), children: activity.label }),
|
|
690
690
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
691
691
|
"span",
|
|
692
692
|
{
|
|
693
|
-
className:
|
|
693
|
+
className: chunk7EP22XCS_js.cn(
|
|
694
694
|
"ml-auto inline-flex items-center gap-1 rounded-sm px-1.5 py-0.5 text-[10px]",
|
|
695
695
|
failed ? "bg-destructive/15 text-destructive" : done ? "bg-primary/10 text-primary" : "bg-muted text-muted-foreground"
|
|
696
696
|
),
|
|
@@ -707,7 +707,7 @@ function AiToolCallCard({ part }) {
|
|
|
707
707
|
rawSummary && /* @__PURE__ */ jsxRuntime.jsxs("details", { className: "group mt-0.5 pl-5", children: [
|
|
708
708
|
/* @__PURE__ */ jsxRuntime.jsx("summary", { className: "cursor-pointer list-none text-[10px] text-muted-foreground/70 hover:text-muted-foreground", children: t("pptx.ai.toolDetails") }),
|
|
709
709
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-0.5 break-words font-mono text-[10px] text-muted-foreground/80", children: [
|
|
710
|
-
|
|
710
|
+
chunkWLEFW2F4_js.toolLabel(part.toolName),
|
|
711
711
|
": ",
|
|
712
712
|
rawSummary
|
|
713
713
|
] })
|
|
@@ -730,7 +730,7 @@ function AiMessageList({ messages, isStreaming, bridge }) {
|
|
|
730
730
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex-1 space-y-3 overflow-y-auto px-3 py-3", children: [
|
|
731
731
|
messages.map((message) => {
|
|
732
732
|
const isUser = message.role === "user";
|
|
733
|
-
const parts =
|
|
733
|
+
const parts = chunkWLEFW2F4_js.toRenderableParts(message);
|
|
734
734
|
if (parts.length === 0 && !isUser) {
|
|
735
735
|
return null;
|
|
736
736
|
}
|
|
@@ -738,7 +738,7 @@ function AiMessageList({ messages, isStreaming, bridge }) {
|
|
|
738
738
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
739
739
|
"div",
|
|
740
740
|
{
|
|
741
|
-
className:
|
|
741
|
+
className: chunk7EP22XCS_js.cn(
|
|
742
742
|
"mt-0.5 flex h-6 w-6 shrink-0 items-center justify-center rounded-full",
|
|
743
743
|
isUser ? "bg-secondary text-muted-foreground" : "bg-primary/15 text-primary"
|
|
744
744
|
),
|
|
@@ -785,7 +785,7 @@ function AiMessageList({ messages, isStreaming, bridge }) {
|
|
|
785
785
|
}
|
|
786
786
|
function AiProposalCard({ proposal, onAccept, onReject }) {
|
|
787
787
|
const { t } = reactI18next.useTranslation();
|
|
788
|
-
const lines = proposal.summary.map(
|
|
788
|
+
const lines = proposal.summary.map(chunkWLEFW2F4_js.humanizeDiffLine);
|
|
789
789
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "rounded-md border border-primary/40 bg-primary/5 p-2.5", children: [
|
|
790
790
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-1.5 text-[11px] font-semibold uppercase tracking-wide text-primary", children: t("pptx.ai.proposedChange") }),
|
|
791
791
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-[12px] font-medium text-foreground", children: proposal.label }),
|
|
@@ -993,7 +993,7 @@ function AiChatPanel({
|
|
|
993
993
|
}) {
|
|
994
994
|
const { t } = reactI18next.useTranslation();
|
|
995
995
|
const { state, session, initError } = useAiChat(bridge, config);
|
|
996
|
-
const deckId = react.useMemo(() =>
|
|
996
|
+
const deckId = react.useMemo(() => chunkWLEFW2F4_js.deckIdFromBridge(bridge), [bridge]);
|
|
997
997
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
998
998
|
"div",
|
|
999
999
|
{
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkJJE4AACM_js = require('./chunk-JJE4AACM.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
|
|
17
|
+
void chunkJJE4AACM_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,5 +1,5 @@
|
|
|
1
|
-
import { DEFAULT_STROKE_COLOR, getConnectorPathGeometry, buildLineShadowCss, buildLineGlowFilter, renderConnectorMarker, getShapeVisualStyle, getTextStyleForElement, DEFAULT_TEXT_COLOR, renderVectorShape, isConnectorOrLineElement, build3DExtrusionData, getImageRenderStyle, cn, getImageSurfaceStyle, getTextLayoutStyle, renderTableElement, renderMediaElement, shouldRenderFallbackLabel, DEFAULT_FILL_COLOR, getCropShapeClipPath, hasDagDuotoneEffect, renderDagDuotoneSvgFilter, getImageSurfaceMaskStyle, getDuotoneColors, getTextWarpStyle, renderTextSegments, buildReactChartViewModel, renderChartElement, MIN_ELEMENT_SIZE, buildTextBody3DSceneStyle, getImageTilingStyle, DEFAULT_TEXT_FONT_SIZE, DEFAULT_FONT_FAMILY, HYPERLINK_COLOR, cloneHistorySnapshot, ZOOM_TO_SELECTION_PADDING, DEFAULT_CANVAS_HEIGHT, DEFAULT_CANVAS_WIDTH, UNGROUPED_SECTION_ID, DEFAULT_SECTION_GROUP_ID, DEFAULT_TABLE_ROWS, DEFAULT_TABLE_COLUMNS, buildPdfFromTiledImageData, GRID_SIZE, buildNotesPdf } from './chunk-
|
|
2
|
-
import { GlyphOutlineFontCache, createGlyphOutlineLookup, DEFAULT_VIEWER_OPTIONS, TOOLBAR_TABS, defineThreeViewElement, getSelectionControlArtworkStyle, hasShapeProperties, normalizeHexColor, colorWithOpacity, normalizeStrokeDashType, getSvgStrokeDasharray, getCompoundLineOffsets, getCompoundLineWidths, svgLineCap, hasTextProperties, getSelectionOutlineColor, connectorWrapperTransform, getAriaRoleDescription, getAriaLabel, getAriaRole, resolveElementInteractivity, isEditableTextElement, buildTextStyleOverrideCss, isElementRendered, resolveElementAriaAttributes, isMediaFullscreenActive, shouldRenderHitTarget, elementHitTargetStyle, getImageEffectsOpacity, getImageEffectsFilter, inlineElementPointerEvents, isHollowShapeElement, LINK_TOOLTIP_HOST_CLASS, ACTION_BUTTON_PRESETS, mediaTransportVisible, isInkElement, oleActionsVisible, getGroupChildParentFill, getElementLabel, getResizeHandleHitAreaStyle, paintedStrokeWidth, buildCssGradientFromShapeStyle, ensureActionAffordanceStyles, resolveElementActionAffordance, actionAffordanceLabels, paintedElementSize, MEDIA_FULLSCREEN_OVERLAY_STYLE, elementContainerHeightStyle, getElementTransform, resolveElementHighlightClick, applyHighlightClickStyle, getComputedEffectStyle, getSoftEdgeSvgFilter, getEffectStyleSource, getBevelLightingSvgFilter, buildStrokeOutline, buildHollowHitOutline, buildSubpathFillOverlay, isImageLikeElement, strokeOutlineViewBox, resolveRevealedSmartArtNodes, resolveRevealedDrawingShapes, buildSmartArtA11y, canDrillDown, computeSmartArtElementLayout, flattenNodes, buildSummaryZoomView, isImageTiled, getImageColorWashStyle, readEditableText, placeCaretAtEnd, getPendingSelectionRestore, restoreSegmentSelection, getTextCompensationTransform, mapInlineTextFormatKey, subscribeBarFacePicturePixelSamples, getBarFacePicturePixelSampleVersion, ensureChartInteractionStyles, applyChartPartHighlight, resolveRevealedChartData, formatAxisValue, buildInkGroupStrokes, getInkReplayStyles, INK_REPLAY_KEYFRAMES, buildContentPartStrokes, getContentPartReplayStyles, resolveOleType, getOleAriaLabel, getOleTypeColor, getOleTypeLabel, filterRenderedElements, resolveGroupChildFill, isLinkedTextBox, getOverflowSegments, shouldUseSvgWarp, getTextBodyRotationTransform, placeholderPromptDescriptor, attachRotateHandlePlacement, elementIdSelector, createRotationDrag, 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, resolveRevealedDrawingShapeNodeIds, styleShadowFilter, buildChromeStyle, measureSvgViewportRect, modelDataToBlobUrl, resolveZoomNavigationTarget, getImageSvgFilters, getCachedNativeImageSize, probeNativeImageSize, buildDuotoneCacheKey, getDuotoneCachedResult, applyDuotone, setDuotoneCachedResult, buildCacheKey, DEFAULT_COLOR_CHANGE_TOLERANCE, getCachedResult, applyColorChange, setCachedResult, inlineListBodyText, createInlineListSeed, readListActivationSelection, createInlineListModelObserver, attachCollaborationInlineEditor, bindInlineListParagraph, bindInlineListRun, attachInlineListController, restoreInlineListBodySelection, getInlineEditorSelectionResult, isBulletMarkerSegment, resolveChartThreeViewSpec, applyChart3DDrag, applyChart3DSelect, findChartPartTarget, withChartTitle, resolveSmartArtThreeViewSpec, isBrowserOpenableMime, formatBytes, getOleDisplayName, getOleBadgeLabel, openUrlInNewTab, getSubstituteFontFamily, hasGlyphEnvelope, buildGlyphEnvelopeBlock, getWarpPath, isWedgeCalloutPresetShape, isElementActionable, centeredSvgTextLines, findSmartArtNodeText, setSmartArtNodeStyle, rebuildDrawingShapesIfCleared, shouldCommitSmartArtNodeText, updateSmartArtNodeText, advanceChartMarkDrag, advanceChartValueDrag, resolveChartKind, buildChartMarkDragGeometry, beginChartMarkDrag, beginChartValueDrag, groupIntoParagraphs, substituteFieldText, computeInlineEditorRect, MIN_TOUCH_TARGET_PX, computeVirtualRange, DEFAULT_VIRTUAL_OVERSCAN, createSyncGate, clearLocalAwareness, validateRoomId, createDepartureChannel, resolveTransportForServerUrl, isMixedContentBlocked, CONNECTION_TIMEOUT_MS, registerCollaborationTeardown, createPresenceProjector, BROADCAST_THROTTLE_MS, sanitizeColor, cloneTemplateElementsBySlideId, cloneSlide, createWheelStepBuffer, createViewerZoomStore, clampZoomScale, mapEditingWheel, createActiveAnimationGroup, cancelBuildReveal, clearPlaybackTimers, PresentationAnimationController, resolveMediaTimeNodeElementIds, resolveMediaBookmarkTimesMs, advanceMainSequence, playGroup, PRESENTATION_HASH, PRESENTATION_NONCE_KEY, PRESENTATION_CHANNEL_NAME, swapPresentationWindows, PRESENTATION_MESSAGE_ORIGIN, clearAudienceContent, buildPresentationAudienceUrl, resolveAudienceScreenPlacement, placeAudienceWindow, storeAudienceContent, isPresentationSessionMessage, endAudienceDisplay, createPresentationKeyBuffer, acceptsPresentationInput, resolveAutoAdvanceDelayMs, resolveForwardSlideWithZoomReturn, buildZoomTransitionOverride, hasShowSlideAfter, nextShowSlideIndex, previousShowSlideIndex, beginZoomExcursion, createPresenterShowGuard, firstShowSlideIndex, attachPresentationVisibilityPause, presentationEntrySlideIndex, buildMorphTransitionPlan, morphOptionToMode, buildMorphAnimationRules, findInSlides, applyFindReplacements, visibleTemplateElements, createCollaborationLivePatcher, publishLiveInlineText, PptxHandler, createPresentationLoadResources, collectMediaElements, resolveMediaElementSource, collectImagePaths, applyImagePathPatches, resolveTableCellImageUrls, resolveTableStyleImageUrls, resolveTextFillBlipUrls, partitionTemplateElements, seedRecentColors, resolveAuthoredCustomShowId, buildInitialGuides, readOnlyRecommendation, compatibilityWarningToasts, EncryptedFileError, resolveAutosaveIntervalMs, shouldWriteAutosaveSnapshot, saveAutosaveSnapshot, autosaveSnapshotMark, updateMasterViewElement, isTemplateElementId, updateElement, masterViewElements, replaceMasterViewElements, addSection, renameSection, deleteSection, moveSectionUp, moveSectionDown, moveSlidesToSection, canMergeShapes, canInteractWithElement, prepareHtml2CanvasClone, slideProgressPercent, slideStatusLabel, EXPORT_ASSEMBLING_PERCENT, EXPORT_DONE_PERCENT, isExportAbortError, resolveImageResolutionScale, applyThemeToData, THEME_PRESETS, themeColorSchemesEqual, comparePresentation, applyAcceptSlide, applyAcceptAllSlides, collectUsedFonts, describeFontEmbedding, isMobileViewport, resolveAuthoredSlideRange, mayLeaveSlideShow, stopAllPersistentAudio, guidePxToEmu, buildSaveSlides, buildDeckSaveOptions, resolveSlideSizeSelection, saveDeckWithPassword, shouldProbeAutosaveRecovery, probeAutosaveRecovery, acceptAutosaveRecovery, acknowledgeAutosaveRecovery, discardAutosaveRecovery, shouldLoopContinuously, applyRehearsalTimings, rasterResultToPngBlob, downloadBlob, elementPictureFilename, canEditElementPoints, collectReferencedFontFamilies, resolveGoogleWebfontHref, syncGoogleWebfontStylesheet, selectGoogleWebfontFamilies, fetchGoogleWebfontOutlineBytes, isFeatureEnabled, mapSlideShowStartKey, mapCustomizedEditorKey, isEditorControlTarget, isEditorTextInputTarget, textFontSizePtToPx, stepFontSizePt, textFontSizePxToPt, cycleSelectableElement, createCustomizationController, prepareElementForInsertion, createViewerOptionsStore, observeYDocSlides, LOCAL_SYNC_ORIGIN, readSlidesFromYDoc, shouldRoomSlidesReplaceLoad, reconcileSlidesInYDoc, shouldAutoFollowBroadcaster, detectTouchDevice, detectOrientation, deriveViewportBreakpoints, createTouchGestureRecognizer, MAX_ZOOM_SCALE, MIN_ZOOM_SCALE, isKeyboardOpen, scopeLayoutOptionsToSlide, checkModifyPassword, viewerPreferencesFromViewProperties, DEFAULT_VIEWER_PREFERENCES, viewPropertiesPatchFromPreferences, openPptxFile, readBackstageRecentFile, resolveCollaborationShellEditability, resolveCollaborationShellState, MORPH_CROSSFADE_GROUP_STYLE, MORPH_CROSSFADE_HALF_STYLE, getSlideTransitionAnimations, getFragmentedTransitionDescriptor, SLIDE_TRANSITION_KEYFRAMES, isActionHidden, buildInlineTextCommitPatch, resolveInlineEditAutoFitHeight, resolveInlineEditNormAutofitShrink, filterInteractableIds, beginShapeAdjustment, buildElementClipboardPayload, contextMenuInspectorAnchor, savedPresentationFileName, exportDeckJson, groupElements, generateElementId, makeCloneId, ungroupElements, alignElements, distributeElements, newTableElement, createDefaultChartElement, readViewportMetrics, computeKeyboardInset, planMergeShapes, applyMergeShapesPlan, mapPresentationKey, lastShowSlideIndex, mapPresentationWheel, openPendingPrintWindow, computeColorFilter, filterHiddenSlideIndices, computeSlideIndices, buildPrintDocument, finishPrintWindow, buildPrintHtmlDocument, buildOutlineHtml, buildSlidesHtml, buildNotesHtml, buildHandoutsHtml, createBlankSlide, makeSlideId, buildSlideTemplateSlide, templateSchemeFromTheme, buildThemeColorMap, reResolveSlideColors, reResolveElementColors, resolveViewportFitOptions, calculateViewportFit, scheduleAutoAdvanceChain, computeEntranceAnimationDelay, createPresentationSessionId, resolveTransitionDurationMs, resolveTransitionSoundAction, runPresentationAction, safeOpenUrl, buildRunProgramNotice, toggleStageElementMedia, resolveOleVerbTarget, downloadDataUrl, createPresenterTimer, createInitialPresentationSnapshot, mergePresentationSnapshot, resetPresenterTimer, presenterElapsed, stepPresenterZoom, togglePresenterTimer, addCommentToList, removeCommentFromList, editCommentInList, toggleCommentResolvedInList, remapTextToSegments, buildInlineListStylePatch, applyActiveInlineListFormatting, applyListStyleUpdate, setPendingSelectionRestore, applyTextStyleUpdate, toggleSelectionBullets, transformInlineListCase, applyCaseTransformToSegments, transformTextCase, resolveExportCaptureDecision, recordProgressPercent, computeGridSpacingPx, resolveShowSlideIndexes, groupSlidesBySection, masterViewPseudoSlide, overlayMasterViewInlineSnapshot, overlayInlineTextSnapshot, rasterizeElement, cloneElementForPaste, applyPasteSpecialFormat, buildRasterPictureElement, copyFormatFromElement, cloneElementUpdates, assertElementUpdateTarget, prepareElementUpdateBatch, createWriteBackScheduler, observeExternalCollaborationReadiness, resolveHistoryDepth, hasCopyableFormat, createBackstagePresentation, buildFieldSubstitutionContext, scrollInspectorSectionIntoView, computeScrollDelta, rerouteConnectorsForMovedElements, applyReroutedConnectors, SvgExporter, replyToCommentInList, removeTableElementColumn, insertTableElementColumn, removeTableElementRow, insertTableElementRow, updateCellTextStyleInRawXml, setCellText, updateCellTextInRawXml, splitCell, updateMergeAttrsInRawXml, mergeCells, pickSupportedMimeType, WEBM_MIME_CANDIDATES, fpsToFrameIntervalMs, segmentFrameCount, stopCaptureStream, GIF_POST_CAPTURE_MAX_SIDE, encodeGif, rasterizeElementTiles, placeTileOnPage, PDF_SLIDES_PAGE_WIDTH_PT, PDF_SLIDES_PAGE_HEIGHT_PT, canvasToJpegData, applyFormatToElement, createSnapshotTextPositions, isPpactionUrl, parsePpactionUrl, resolvePresentationAction, elementActionToPptxAction, isUrlSafe, buildSmartArtPresetData, classifyMediaType, computeSnapToShape, publishLiveGeometry, getDraggedShapeAdjustments, computeMarqueeHitIds, mergeAdditiveSelection, rasterizeElementTiledToCanvas, borrowExternalCollaborationAwareness, observeExternalCollaborationSession, clampGifDimensions, rasterResultToPngDataUrl, shouldConfirmExternalHyperlink, applyResize, lockResizeAspect, snapBoxToGrid, applyMotionPathPreset, bringForward, sendBackward, bringToFront, sendToBack } from './chunk-PJT2DTOS.mjs';
|
|
1
|
+
import { DEFAULT_STROKE_COLOR, getConnectorPathGeometry, buildLineShadowCss, buildLineGlowFilter, renderConnectorMarker, getShapeVisualStyle, getTextStyleForElement, DEFAULT_TEXT_COLOR, renderVectorShape, isConnectorOrLineElement, build3DExtrusionData, getImageRenderStyle, cn, getImageSurfaceStyle, getTextLayoutStyle, renderTableElement, renderMediaElement, shouldRenderFallbackLabel, DEFAULT_FILL_COLOR, getCropShapeClipPath, hasDagDuotoneEffect, renderDagDuotoneSvgFilter, getImageSurfaceMaskStyle, getDuotoneColors, getTextWarpStyle, renderTextSegments, buildReactChartViewModel, renderChartElement, MIN_ELEMENT_SIZE, buildTextBody3DSceneStyle, getImageTilingStyle, DEFAULT_TEXT_FONT_SIZE, DEFAULT_FONT_FAMILY, HYPERLINK_COLOR, cloneHistorySnapshot, ZOOM_TO_SELECTION_PADDING, DEFAULT_CANVAS_HEIGHT, DEFAULT_CANVAS_WIDTH, UNGROUPED_SECTION_ID, DEFAULT_SECTION_GROUP_ID, DEFAULT_TABLE_ROWS, DEFAULT_TABLE_COLUMNS, buildPdfFromTiledImageData, GRID_SIZE, buildNotesPdf } from './chunk-NE4USMMB.mjs';
|
|
2
|
+
import { GlyphOutlineFontCache, createGlyphOutlineLookup, DEFAULT_VIEWER_OPTIONS, TOOLBAR_TABS, defineThreeViewElement, getSelectionControlArtworkStyle, hasShapeProperties, normalizeHexColor, colorWithOpacity, normalizeStrokeDashType, getSvgStrokeDasharray, getCompoundLineOffsets, getCompoundLineWidths, svgLineCap, hasTextProperties, getSelectionOutlineColor, connectorWrapperTransform, getAriaRoleDescription, getAriaLabel, getAriaRole, resolveElementInteractivity, isEditableTextElement, buildTextStyleOverrideCss, isElementRendered, resolveElementAriaAttributes, isMediaFullscreenActive, shouldRenderHitTarget, elementHitTargetStyle, getImageEffectsOpacity, getImageEffectsFilter, inlineElementPointerEvents, isHollowShapeElement, LINK_TOOLTIP_HOST_CLASS, ACTION_BUTTON_PRESETS, mediaTransportVisible, isInkElement, oleActionsVisible, getGroupChildParentFill, getElementLabel, getResizeHandleHitAreaStyle, paintedStrokeWidth, buildCssGradientFromShapeStyle, ensureActionAffordanceStyles, resolveElementActionAffordance, actionAffordanceLabels, paintedElementSize, MEDIA_FULLSCREEN_OVERLAY_STYLE, elementContainerHeightStyle, getElementTransform, resolveElementHighlightClick, applyHighlightClickStyle, getComputedEffectStyle, getSoftEdgeSvgFilter, getEffectStyleSource, getBevelLightingSvgFilter, buildStrokeOutline, buildHollowHitOutline, buildSubpathFillOverlay, isImageLikeElement, strokeOutlineViewBox, resolveRevealedSmartArtNodes, resolveRevealedDrawingShapes, buildSmartArtA11y, canDrillDown, computeSmartArtElementLayout, flattenNodes, buildSummaryZoomView, isImageTiled, getImageColorWashStyle, readEditableText, placeCaretAtEnd, getPendingSelectionRestore, restoreSegmentSelection, getTextCompensationTransform, mapInlineTextFormatKey, subscribeBarFacePicturePixelSamples, getBarFacePicturePixelSampleVersion, ensureChartInteractionStyles, applyChartPartHighlight, resolveRevealedChartData, formatAxisValue, buildInkGroupStrokes, getInkReplayStyles, INK_REPLAY_KEYFRAMES, buildContentPartStrokes, getContentPartReplayStyles, resolveOleType, getOleAriaLabel, getOleTypeColor, getOleTypeLabel, filterRenderedElements, resolveGroupChildFill, isLinkedTextBox, getOverflowSegments, shouldUseSvgWarp, getTextBodyRotationTransform, placeholderPromptDescriptor, attachRotateHandlePlacement, elementIdSelector, createRotationDrag, 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, resolveRevealedDrawingShapeNodeIds, styleShadowFilter, buildChromeStyle, measureSvgViewportRect, modelDataToBlobUrl, resolveZoomNavigationTarget, getImageSvgFilters, getCachedNativeImageSize, probeNativeImageSize, buildDuotoneCacheKey, getDuotoneCachedResult, applyDuotone, setDuotoneCachedResult, buildCacheKey, DEFAULT_COLOR_CHANGE_TOLERANCE, getCachedResult, applyColorChange, setCachedResult, inlineListBodyText, createInlineListSeed, readListActivationSelection, createInlineListModelObserver, attachCollaborationInlineEditor, bindInlineListParagraph, bindInlineListRun, attachInlineListController, restoreInlineListBodySelection, getInlineEditorSelectionResult, isBulletMarkerSegment, resolveChartThreeViewSpec, applyChart3DDrag, applyChart3DSelect, findChartPartTarget, withChartTitle, resolveSmartArtThreeViewSpec, isBrowserOpenableMime, formatBytes, getOleDisplayName, getOleBadgeLabel, openUrlInNewTab, getSubstituteFontFamily, hasGlyphEnvelope, buildGlyphEnvelopeBlock, getWarpPath, isWedgeCalloutPresetShape, isElementActionable, centeredSvgTextLines, findSmartArtNodeText, setSmartArtNodeStyle, rebuildDrawingShapesIfCleared, shouldCommitSmartArtNodeText, updateSmartArtNodeText, advanceChartMarkDrag, advanceChartValueDrag, resolveChartKind, buildChartMarkDragGeometry, beginChartMarkDrag, beginChartValueDrag, groupIntoParagraphs, substituteFieldText, computeInlineEditorRect, MIN_TOUCH_TARGET_PX, computeVirtualRange, DEFAULT_VIRTUAL_OVERSCAN, createSyncGate, clearLocalAwareness, validateRoomId, createDepartureChannel, resolveTransportForServerUrl, isMixedContentBlocked, CONNECTION_TIMEOUT_MS, registerCollaborationTeardown, createPresenceProjector, BROADCAST_THROTTLE_MS, sanitizeColor, cloneTemplateElementsBySlideId, cloneSlide, createWheelStepBuffer, createViewerZoomStore, clampZoomScale, mapEditingWheel, createActiveAnimationGroup, cancelBuildReveal, clearPlaybackTimers, PresentationAnimationController, resolveMediaTimeNodeElementIds, resolveMediaBookmarkTimesMs, advanceMainSequence, playGroup, PRESENTATION_HASH, PRESENTATION_NONCE_KEY, PRESENTATION_CHANNEL_NAME, swapPresentationWindows, PRESENTATION_MESSAGE_ORIGIN, clearAudienceContent, buildPresentationAudienceUrl, resolveAudienceScreenPlacement, placeAudienceWindow, storeAudienceContent, isPresentationSessionMessage, endAudienceDisplay, createPresentationKeyBuffer, acceptsPresentationInput, resolveAutoAdvanceDelayMs, resolveForwardSlideWithZoomReturn, buildZoomTransitionOverride, hasShowSlideAfter, nextShowSlideIndex, previousShowSlideIndex, beginZoomExcursion, createPresenterShowGuard, firstShowSlideIndex, attachPresentationVisibilityPause, presentationEntrySlideIndex, buildMorphTransitionPlan, morphOptionToMode, buildMorphAnimationRules, findInSlides, applyFindReplacements, visibleTemplateElements, createCollaborationLivePatcher, publishLiveInlineText, PptxHandler, createPresentationLoadResources, collectMediaElements, resolveMediaElementSource, collectImagePaths, applyImagePathPatches, resolveTableCellImageUrls, resolveTableStyleImageUrls, resolveTextFillBlipUrls, partitionTemplateElements, seedRecentColors, resolveAuthoredCustomShowId, buildInitialGuides, readOnlyRecommendation, compatibilityWarningToasts, EncryptedFileError, resolveAutosaveIntervalMs, shouldWriteAutosaveSnapshot, saveAutosaveSnapshot, autosaveSnapshotMark, updateMasterViewElement, isTemplateElementId, updateElement, masterViewElements, replaceMasterViewElements, addSection, renameSection, deleteSection, moveSectionUp, moveSectionDown, moveSlidesToSection, canMergeShapes, canInteractWithElement, prepareHtml2CanvasClone, slideProgressPercent, slideStatusLabel, EXPORT_ASSEMBLING_PERCENT, EXPORT_DONE_PERCENT, isExportAbortError, resolveImageResolutionScale, applyThemeToData, THEME_PRESETS, themeColorSchemesEqual, comparePresentation, applyAcceptSlide, applyAcceptAllSlides, collectUsedFonts, describeFontEmbedding, isMobileViewport, resolveAuthoredSlideRange, mayLeaveSlideShow, stopAllPersistentAudio, guidePxToEmu, buildSaveSlides, buildDeckSaveOptions, resolveSlideSizeSelection, saveDeckWithPassword, shouldProbeAutosaveRecovery, probeAutosaveRecovery, acceptAutosaveRecovery, acknowledgeAutosaveRecovery, discardAutosaveRecovery, shouldLoopContinuously, applyRehearsalTimings, rasterResultToPngBlob, downloadBlob, elementPictureFilename, canEditElementPoints, collectReferencedFontFamilies, resolveGoogleWebfontHref, syncGoogleWebfontStylesheet, selectGoogleWebfontFamilies, fetchGoogleWebfontOutlineBytes, isFeatureEnabled, mapSlideShowStartKey, mapCustomizedEditorKey, isEditorControlTarget, isEditorTextInputTarget, textFontSizePtToPx, stepFontSizePt, textFontSizePxToPt, cycleSelectableElement, createCustomizationController, prepareElementForInsertion, createViewerOptionsStore, observeYDocSlides, LOCAL_SYNC_ORIGIN, readSlidesFromYDoc, shouldRoomSlidesReplaceLoad, reconcileSlidesInYDoc, shouldAutoFollowBroadcaster, detectTouchDevice, detectOrientation, deriveViewportBreakpoints, createTouchGestureRecognizer, MAX_ZOOM_SCALE, MIN_ZOOM_SCALE, isKeyboardOpen, scopeLayoutOptionsToSlide, checkModifyPassword, viewerPreferencesFromViewProperties, DEFAULT_VIEWER_PREFERENCES, viewPropertiesPatchFromPreferences, openPptxFile, readBackstageRecentFile, resolveCollaborationShellEditability, resolveCollaborationShellState, MORPH_CROSSFADE_GROUP_STYLE, MORPH_CROSSFADE_HALF_STYLE, getSlideTransitionAnimations, getFragmentedTransitionDescriptor, SLIDE_TRANSITION_KEYFRAMES, isActionHidden, buildInlineTextCommitPatch, resolveInlineEditAutoFitHeight, resolveInlineEditNormAutofitShrink, filterInteractableIds, beginShapeAdjustment, buildElementClipboardPayload, contextMenuInspectorAnchor, savedPresentationFileName, exportDeckJson, groupElements, generateElementId, makeCloneId, ungroupElements, alignElements, distributeElements, newTableElement, createDefaultChartElement, readViewportMetrics, computeKeyboardInset, planMergeShapes, applyMergeShapesPlan, mapPresentationKey, lastShowSlideIndex, mapPresentationWheel, openPendingPrintWindow, computeColorFilter, filterHiddenSlideIndices, computeSlideIndices, buildPrintDocument, finishPrintWindow, buildPrintHtmlDocument, buildOutlineHtml, buildSlidesHtml, buildNotesHtml, buildHandoutsHtml, createBlankSlide, makeSlideId, buildSlideTemplateSlide, templateSchemeFromTheme, buildThemeColorMap, reResolveSlideColors, reResolveElementColors, resolveViewportFitOptions, calculateViewportFit, scheduleAutoAdvanceChain, computeEntranceAnimationDelay, createPresentationSessionId, resolveTransitionDurationMs, resolveTransitionSoundAction, runPresentationAction, safeOpenUrl, buildRunProgramNotice, toggleStageElementMedia, resolveOleVerbTarget, downloadDataUrl, createPresenterTimer, createInitialPresentationSnapshot, mergePresentationSnapshot, resetPresenterTimer, presenterElapsed, stepPresenterZoom, togglePresenterTimer, addCommentToList, removeCommentFromList, editCommentInList, toggleCommentResolvedInList, remapTextToSegments, buildInlineListStylePatch, applyActiveInlineListFormatting, applyListStyleUpdate, setPendingSelectionRestore, applyTextStyleUpdate, toggleSelectionBullets, transformInlineListCase, applyCaseTransformToSegments, transformTextCase, resolveExportCaptureDecision, recordProgressPercent, computeGridSpacingPx, resolveShowSlideIndexes, groupSlidesBySection, masterViewPseudoSlide, overlayMasterViewInlineSnapshot, overlayInlineTextSnapshot, rasterizeElement, cloneElementForPaste, applyPasteSpecialFormat, buildRasterPictureElement, copyFormatFromElement, cloneElementUpdates, assertElementUpdateTarget, prepareElementUpdateBatch, createWriteBackScheduler, observeExternalCollaborationReadiness, resolveHistoryDepth, hasCopyableFormat, createBackstagePresentation, buildFieldSubstitutionContext, scrollInspectorSectionIntoView, computeScrollDelta, rerouteConnectorsForMovedElements, applyReroutedConnectors, SvgExporter, replyToCommentInList, removeTableElementColumn, insertTableElementColumn, removeTableElementRow, insertTableElementRow, updateCellTextStyleInRawXml, setCellText, updateCellTextInRawXml, splitCell, updateMergeAttrsInRawXml, mergeCells, pickSupportedMimeType, WEBM_MIME_CANDIDATES, fpsToFrameIntervalMs, segmentFrameCount, stopCaptureStream, GIF_POST_CAPTURE_MAX_SIDE, encodeGif, rasterizeElementTiles, placeTileOnPage, PDF_SLIDES_PAGE_WIDTH_PT, PDF_SLIDES_PAGE_HEIGHT_PT, canvasToJpegData, applyFormatToElement, createSnapshotTextPositions, isPpactionUrl, parsePpactionUrl, resolvePresentationAction, elementActionToPptxAction, isUrlSafe, buildSmartArtPresetData, classifyMediaType, computeSnapToShape, publishLiveGeometry, getDraggedShapeAdjustments, computeMarqueeHitIds, mergeAdditiveSelection, rasterizeElementTiledToCanvas, borrowExternalCollaborationAwareness, observeExternalCollaborationSession, clampGifDimensions, rasterResultToPngDataUrl, shouldConfirmExternalHyperlink, applyResize, lockResizeAspect, snapBoxToGrid, applyMotionPathPreset, bringForward, sendBackward, bringToFront, sendToBack } from './chunk-LDRA5LJT.mjs';
|
|
3
3
|
import { translationsEn } from './chunk-HDH4KFDK.mjs';
|
|
4
4
|
import React17, { createContext, useMemo, useState, useCallback, useEffect, Suspense, useRef, useLayoutEffect, useContext, useSyncExternalStore, useImperativeHandle } from 'react';
|
|
5
5
|
import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
|
|
@@ -12,11 +12,15 @@ function useVirtualizedSlides({
|
|
|
12
12
|
itemHeight,
|
|
13
13
|
overscan = DEFAULT_VIRTUAL_OVERSCAN
|
|
14
14
|
}) {
|
|
15
|
-
const
|
|
15
|
+
const containerElRef = useRef(null);
|
|
16
|
+
const [container, setContainer] = useState(null);
|
|
17
|
+
const scrollContainerRef = useCallback((el) => {
|
|
18
|
+
containerElRef.current = el;
|
|
19
|
+
setContainer(el);
|
|
20
|
+
}, []);
|
|
16
21
|
const [scrollTop, setScrollTop] = useState(0);
|
|
17
22
|
const [viewportHeight, setViewportHeight] = useState(0);
|
|
18
23
|
useEffect(() => {
|
|
19
|
-
const container = scrollContainerRef.current;
|
|
20
24
|
if (!container) {
|
|
21
25
|
return;
|
|
22
26
|
}
|
|
@@ -39,24 +43,24 @@ function useVirtualizedSlides({
|
|
|
39
43
|
container.removeEventListener("scroll", handleScroll);
|
|
40
44
|
resizeObserver?.disconnect();
|
|
41
45
|
};
|
|
42
|
-
}, []);
|
|
46
|
+
}, [container]);
|
|
43
47
|
const range = computeVirtualRange(totalItems, itemHeight, scrollTop, viewportHeight, overscan);
|
|
44
48
|
const safeItemHeight = Math.max(itemHeight, 1);
|
|
45
49
|
const scrollToIndex = useCallback(
|
|
46
50
|
(index, behavior = "smooth") => {
|
|
47
|
-
const
|
|
48
|
-
if (!
|
|
51
|
+
const el = containerElRef.current;
|
|
52
|
+
if (!el) {
|
|
49
53
|
return;
|
|
50
54
|
}
|
|
51
55
|
const targetTop = index * safeItemHeight;
|
|
52
56
|
const targetBottom = targetTop + safeItemHeight;
|
|
53
|
-
const containerTop =
|
|
54
|
-
const containerBottom = containerTop +
|
|
57
|
+
const containerTop = el.scrollTop;
|
|
58
|
+
const containerBottom = containerTop + el.clientHeight;
|
|
55
59
|
if (targetTop < containerTop) {
|
|
56
|
-
|
|
60
|
+
el.scrollTo({ top: targetTop, behavior });
|
|
57
61
|
} else if (targetBottom > containerBottom) {
|
|
58
|
-
|
|
59
|
-
top: targetBottom -
|
|
62
|
+
el.scrollTo({
|
|
63
|
+
top: targetBottom - el.clientHeight,
|
|
60
64
|
behavior
|
|
61
65
|
});
|
|
62
66
|
}
|
|
@@ -16130,7 +16134,7 @@ function FailedToLoad() {
|
|
|
16130
16134
|
var LazyModel3DScene = React17.lazy(
|
|
16131
16135
|
async () => {
|
|
16132
16136
|
try {
|
|
16133
|
-
return await import('./Model3DScene-
|
|
16137
|
+
return await import('./Model3DScene-FF4RCG4O.mjs');
|
|
16134
16138
|
} catch {
|
|
16135
16139
|
return { default: FailedToLoad };
|
|
16136
16140
|
}
|
|
Binary file
|
|
Binary file
|