pptx-react-viewer 3.2.0 → 3.4.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.
- package/CHANGELOG.md +53 -0
- package/dist/{AiChatPanel-TKBVSYD2.js → AiChatPanel-3Q4STA5E.js} +29 -28
- package/dist/AiChatPanel-3Q4STA5E.js.br +0 -0
- package/dist/AiChatPanel-3Q4STA5E.js.gz +0 -0
- package/dist/{AiChatPanel-C3E7NLX3.mjs → AiChatPanel-NQZBZIRM.mjs} +9 -8
- package/dist/AiChatPanel-NQZBZIRM.mjs.br +0 -0
- package/dist/AiChatPanel-NQZBZIRM.mjs.gz +0 -0
- package/dist/{Area3DChartScene-7YCFWEGX.mjs → Area3DChartScene-7PARQDOZ.mjs} +1 -1
- package/dist/Area3DChartScene-7PARQDOZ.mjs.br +3 -0
- package/dist/Area3DChartScene-7PARQDOZ.mjs.gz +0 -0
- package/dist/{Area3DChartScene-3A3CXKN3.js → Area3DChartScene-THLG74CM.js} +2 -2
- package/dist/Area3DChartScene-THLG74CM.js.br +0 -0
- package/dist/Area3DChartScene-THLG74CM.js.gz +0 -0
- package/dist/{Bar3DChartScene-BDUENAWJ.js → Bar3DChartScene-OLZ2V56I.js} +2 -2
- package/dist/Bar3DChartScene-OLZ2V56I.js.br +2 -0
- package/dist/Bar3DChartScene-OLZ2V56I.js.gz +0 -0
- package/dist/{Bar3DChartScene-7CNSJ35X.mjs → Bar3DChartScene-QUU6RUXM.mjs} +1 -1
- package/dist/Bar3DChartScene-QUU6RUXM.mjs.br +0 -0
- package/dist/Bar3DChartScene-QUU6RUXM.mjs.gz +0 -0
- package/dist/{Line3DChartScene-R352CZ5U.js → Line3DChartScene-2VZS52IB.js} +2 -2
- package/dist/Line3DChartScene-2VZS52IB.js.br +0 -0
- package/dist/Line3DChartScene-2VZS52IB.js.gz +0 -0
- package/dist/{Line3DChartScene-SMTHK6MD.mjs → Line3DChartScene-D77ORA4K.mjs} +1 -1
- package/dist/Line3DChartScene-D77ORA4K.mjs.br +3 -0
- package/dist/Line3DChartScene-D77ORA4K.mjs.gz +0 -0
- package/dist/{Model3DScene-Y4SGFQYW.js → Model3DScene-3WCALTXO.js} +2 -2
- package/dist/Model3DScene-3WCALTXO.js.br +0 -0
- package/dist/Model3DScene-3WCALTXO.js.gz +0 -0
- package/dist/{Model3DScene-AUVJXXPV.mjs → Model3DScene-ZEGWNILH.mjs} +1 -1
- package/dist/Model3DScene-ZEGWNILH.mjs.br +0 -0
- package/dist/Model3DScene-ZEGWNILH.mjs.gz +0 -0
- package/dist/{PieChart3DScene-TK2VT4RS.js → PieChart3DScene-7C3ACGKN.js} +2 -2
- package/dist/PieChart3DScene-7C3ACGKN.js.br +0 -0
- package/dist/PieChart3DScene-7C3ACGKN.js.gz +0 -0
- package/dist/{PieChart3DScene-UD7GRH55.mjs → PieChart3DScene-DGD4PZVV.mjs} +1 -1
- package/dist/PieChart3DScene-DGD4PZVV.mjs.br +0 -0
- package/dist/PieChart3DScene-DGD4PZVV.mjs.gz +0 -0
- package/dist/PowerPointViewer-Cl6jBPNw.d.ts.map +1 -1
- package/dist/{SurfaceChart3DScene-TXY6UZSW.mjs → SurfaceChart3DScene-QGH3OLJV.mjs} +1 -1
- package/dist/SurfaceChart3DScene-QGH3OLJV.mjs.br +0 -0
- package/dist/SurfaceChart3DScene-QGH3OLJV.mjs.gz +0 -0
- package/dist/{SurfaceChart3DScene-ERFXZW2O.js → SurfaceChart3DScene-SJPQGGGE.js} +2 -2
- package/dist/SurfaceChart3DScene-SJPQGGGE.js.br +0 -0
- package/dist/SurfaceChart3DScene-SJPQGGGE.js.gz +0 -0
- package/dist/{chunk-RRAL4Y7V.js → chunk-7E6SM42A.js} +2604 -2024
- package/dist/chunk-7E6SM42A.js.br +0 -0
- package/dist/chunk-7E6SM42A.js.gz +0 -0
- package/dist/{chunk-G7UBIKAG.mjs → chunk-B7WAGQW4.mjs} +5383 -873
- package/dist/chunk-B7WAGQW4.mjs.br +0 -0
- package/dist/chunk-B7WAGQW4.mjs.gz +0 -0
- package/dist/{chunk-RX6FE24O.mjs → chunk-C4WTQIC6.mjs} +302 -61
- package/dist/chunk-C4WTQIC6.mjs.br +0 -0
- package/dist/chunk-C4WTQIC6.mjs.gz +0 -0
- package/dist/{chunk-Q52HT4EZ.js → chunk-KY6JQJXK.js} +307 -63
- package/dist/chunk-KY6JQJXK.js.br +0 -0
- package/dist/chunk-KY6JQJXK.js.gz +0 -0
- package/dist/{chunk-PPNXPEEZ.mjs → chunk-L5MRKDRM.mjs} +1514 -934
- package/dist/chunk-L5MRKDRM.mjs.br +0 -0
- package/dist/chunk-L5MRKDRM.mjs.gz +0 -0
- package/dist/{chunk-UHR7EYFM.mjs → chunk-MSUUPLQ7.mjs} +718 -435
- package/dist/chunk-MSUUPLQ7.mjs.br +0 -0
- package/dist/chunk-MSUUPLQ7.mjs.gz +0 -0
- package/dist/{chunk-FJDZ7AEE.js → chunk-PCW2KT7Z.js} +5446 -879
- package/dist/chunk-PCW2KT7Z.js.br +0 -0
- package/dist/chunk-PCW2KT7Z.js.gz +0 -0
- package/dist/{chunk-FMEEIS6L.mjs → chunk-SFMATKNJ.mjs} +13 -114
- package/dist/chunk-SFMATKNJ.mjs.br +0 -0
- package/dist/chunk-SFMATKNJ.mjs.gz +0 -0
- package/dist/{chunk-ARQGUUYU.js → chunk-TJNG5VEK.js} +1114 -826
- package/dist/chunk-TJNG5VEK.js.br +0 -0
- package/dist/chunk-TJNG5VEK.js.gz +0 -0
- package/dist/{chunk-ALO4ZOHQ.js → chunk-UNIJUD5C.js} +45 -1
- package/dist/chunk-UNIJUD5C.js.br +0 -0
- package/dist/chunk-UNIJUD5C.js.gz +0 -0
- package/dist/{chunk-B6UIVRFA.js → chunk-XBTHWXNO.js} +177 -279
- package/dist/chunk-XBTHWXNO.js.br +0 -0
- package/dist/chunk-XBTHWXNO.js.gz +0 -0
- package/dist/{chunk-RHSA5BW5.mjs → chunk-XWUMM2TX.mjs} +45 -1
- package/dist/chunk-XWUMM2TX.mjs.br +0 -0
- package/dist/chunk-XWUMM2TX.mjs.gz +0 -0
- package/dist/i18n.js +4 -4
- package/dist/i18n.js.br +0 -0
- package/dist/i18n.js.gz +0 -0
- package/dist/i18n.mjs +1 -1
- package/dist/i18n.mjs.br +0 -0
- package/dist/i18n.mjs.gz +0 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.js +47 -47
- package/dist/index.js.br +0 -0
- package/dist/index.js.gz +0 -0
- package/dist/index.mjs +6 -6
- package/dist/index.mjs.br +0 -0
- package/dist/index.mjs.gz +0 -0
- package/dist/internals.d.ts +176 -5
- package/dist/internals.d.ts.map +1 -1
- package/dist/internals.js +79 -79
- package/dist/internals.js.br +0 -0
- package/dist/internals.js.gz +0 -0
- package/dist/internals.mjs +4 -4
- package/dist/internals.mjs.br +0 -0
- package/dist/internals.mjs.gz +0 -0
- package/dist/pptx-viewer.css +1 -1
- package/dist/pptx-viewer.css.br +0 -0
- package/dist/pptx-viewer.css.gz +0 -0
- package/dist/{useViewerBuildingBlocks-X1L8BjsQ.d.ts → useViewerBuildingBlocks-f6oNGKMX.d.ts} +8 -1
- package/dist/useViewerBuildingBlocks-f6oNGKMX.d.ts.map +1 -0
- package/dist/viewer/index.js +27 -27
- package/dist/viewer/index.js.br +0 -0
- package/dist/viewer/index.js.gz +0 -0
- package/dist/viewer/index.mjs +6 -6
- package/dist/viewer/index.mjs.br +0 -0
- package/dist/viewer/index.mjs.gz +0 -0
- package/package.json +1 -1
- package/dist/AiChatPanel-C3E7NLX3.mjs.br +0 -0
- package/dist/AiChatPanel-C3E7NLX3.mjs.gz +0 -0
- package/dist/AiChatPanel-TKBVSYD2.js.br +0 -0
- package/dist/AiChatPanel-TKBVSYD2.js.gz +0 -0
- package/dist/Area3DChartScene-3A3CXKN3.js.br +0 -0
- package/dist/Area3DChartScene-3A3CXKN3.js.gz +0 -0
- package/dist/Area3DChartScene-7YCFWEGX.mjs.br +0 -3
- package/dist/Area3DChartScene-7YCFWEGX.mjs.gz +0 -0
- package/dist/Bar3DChartScene-7CNSJ35X.mjs.br +0 -0
- package/dist/Bar3DChartScene-7CNSJ35X.mjs.gz +0 -0
- package/dist/Bar3DChartScene-BDUENAWJ.js.br +0 -0
- package/dist/Bar3DChartScene-BDUENAWJ.js.gz +0 -0
- package/dist/Line3DChartScene-R352CZ5U.js.br +0 -0
- package/dist/Line3DChartScene-R352CZ5U.js.gz +0 -0
- package/dist/Line3DChartScene-SMTHK6MD.mjs.br +0 -3
- package/dist/Line3DChartScene-SMTHK6MD.mjs.gz +0 -0
- package/dist/Model3DScene-AUVJXXPV.mjs.br +0 -0
- package/dist/Model3DScene-AUVJXXPV.mjs.gz +0 -0
- package/dist/Model3DScene-Y4SGFQYW.js.br +0 -0
- package/dist/Model3DScene-Y4SGFQYW.js.gz +0 -0
- package/dist/PieChart3DScene-TK2VT4RS.js.br +0 -0
- package/dist/PieChart3DScene-TK2VT4RS.js.gz +0 -0
- package/dist/PieChart3DScene-UD7GRH55.mjs.br +0 -0
- package/dist/PieChart3DScene-UD7GRH55.mjs.gz +0 -0
- package/dist/SurfaceChart3DScene-ERFXZW2O.js.br +0 -0
- package/dist/SurfaceChart3DScene-ERFXZW2O.js.gz +0 -0
- package/dist/SurfaceChart3DScene-TXY6UZSW.mjs.br +0 -0
- package/dist/SurfaceChart3DScene-TXY6UZSW.mjs.gz +0 -0
- package/dist/chunk-ALO4ZOHQ.js.br +0 -0
- package/dist/chunk-ALO4ZOHQ.js.gz +0 -0
- package/dist/chunk-ARQGUUYU.js.br +0 -0
- package/dist/chunk-ARQGUUYU.js.gz +0 -0
- package/dist/chunk-B6UIVRFA.js.br +0 -0
- package/dist/chunk-B6UIVRFA.js.gz +0 -0
- package/dist/chunk-FJDZ7AEE.js.br +0 -0
- package/dist/chunk-FJDZ7AEE.js.gz +0 -0
- package/dist/chunk-FMEEIS6L.mjs.br +0 -0
- package/dist/chunk-FMEEIS6L.mjs.gz +0 -0
- package/dist/chunk-G7UBIKAG.mjs.br +0 -0
- package/dist/chunk-G7UBIKAG.mjs.gz +0 -0
- package/dist/chunk-PPNXPEEZ.mjs.br +0 -0
- package/dist/chunk-PPNXPEEZ.mjs.gz +0 -0
- package/dist/chunk-Q52HT4EZ.js.br +0 -0
- package/dist/chunk-Q52HT4EZ.js.gz +0 -0
- package/dist/chunk-RHSA5BW5.mjs.br +0 -0
- package/dist/chunk-RHSA5BW5.mjs.gz +0 -0
- package/dist/chunk-RRAL4Y7V.js.br +0 -0
- package/dist/chunk-RRAL4Y7V.js.gz +0 -0
- package/dist/chunk-RX6FE24O.mjs.br +0 -0
- package/dist/chunk-RX6FE24O.mjs.gz +0 -0
- package/dist/chunk-UHR7EYFM.mjs.br +0 -0
- package/dist/chunk-UHR7EYFM.mjs.gz +0 -0
- package/dist/useViewerBuildingBlocks-X1L8BjsQ.d.ts.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,59 @@ 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.3.0](https://github.com/ChristopherVR/pptx-viewer/releases/tag/pptx-react-viewer@3.3.0) - 2026-09-02
|
|
11
|
+
|
|
12
|
+
### Features
|
|
13
|
+
|
|
14
|
+
- **react:** Per-series secondary axis toggle and shift-locked corner resize (by @ChristopherVR) ([ae7d13b](https://github.com/ChristopherVR/pptx-viewer/commit/ae7d13bab96dedfcbf07aa3be3c11fea6b5e64b2))
|
|
15
|
+
- **shared:** Add the pptx.effects.rotateWithShape key and export DEFAULT_FONT_SIZE (by @ChristopherVR) ([2021a28](https://github.com/ChristopherVR/pptx-viewer/commit/2021a28c4442b5769f3faaed1cb7abc27b7316a3))
|
|
16
|
+
|
|
17
|
+
### Bug Fixes
|
|
18
|
+
|
|
19
|
+
- **react:** Make the chart gridlines checkbox change the canvas and keep 3D model MIME types (by @ChristopherVR) ([77381a1](https://github.com/ChristopherVR/pptx-viewer/commit/77381a16dd051978ae965b0d461a35916ef59d8d))
|
|
20
|
+
- **react:** Localise the outer-shadow "Rotate with Shape" label (by @ChristopherVR) ([181ca8d](https://github.com/ChristopherVR/pptx-viewer/commit/181ca8d0f189d8d9832489042d19a00ed0123ef7))
|
|
21
|
+
- **shared:** Stop eaLnBrk splitting Latin words mid-word (by @ChristopherVR) ([c3eedb9](https://github.com/ChristopherVR/pptx-viewer/commit/c3eedb9e7adaccfcd5fc954518d554218f1050e2))
|
|
22
|
+
- **react:** Keep the placeholder prompt off show, viewer and still surfaces (by @ChristopherVR) ([58474f7](https://github.com/ChristopherVR/pptx-viewer/commit/58474f7b127d06beb2f9c034d52c6a21c7551053))
|
|
23
|
+
- **shared:** Resolve Google webfonts from a bundled catalogue instead of probing the API (by @ChristopherVR) ([43bda70](https://github.com/ChristopherVR/pptx-viewer/commit/43bda70309f0e9b2cd80dc3ae2ec5cdecda41548))
|
|
24
|
+
|
|
25
|
+
### Refactor
|
|
26
|
+
|
|
27
|
+
- **react:** Repoint onto the wave-2 shared modules (by @ChristopherVR) ([52e7011](https://github.com/ChristopherVR/pptx-viewer/commit/52e701140d82c29e82e7604608cbef122dd1c874))
|
|
28
|
+
- **shared:** Make editor-geometry nudge helpers alias editor-keymap (by @ChristopherVR) ([87cf256](https://github.com/ChristopherVR/pptx-viewer/commit/87cf256d9bf0565dd6b70e264c6a558416d31ef5))
|
|
29
|
+
|
|
30
|
+
### Testing
|
|
31
|
+
|
|
32
|
+
- **react:** Stub the network in the webfont tests, not probe responses (by @ChristopherVR) ([b5e5275](https://github.com/ChristopherVR/pptx-viewer/commit/b5e527599b7937027f6bd772db0790ec9b72ca3a))
|
|
33
|
+
|
|
34
|
+
## [3.2.0](https://github.com/ChristopherVR/pptx-viewer/releases/tag/pptx-react-viewer@3.2.0) - 2026-09-02
|
|
35
|
+
|
|
36
|
+
### Features
|
|
37
|
+
|
|
38
|
+
- **core:** Parse and save bar3D shape, radar style and surface wireframe (by @ChristopherVR) ([1f46205](https://github.com/ChristopherVR/pptx-viewer/commit/1f46205a1f1280df55baf990a3ed496e308233a2))
|
|
39
|
+
- **shared:** Google fonts webfont fallback for referenced families (by @nikko82) ([49571a5](https://github.com/ChristopherVR/pptx-viewer/commit/49571a5d192d54f992dd34cfdf3b60d8780c79ad))
|
|
40
|
+
- **react:** Load google-hosted webfonts for missing families (by @nikko82) ([ca1024f](https://github.com/ChristopherVR/pptx-viewer/commit/ca1024f2bd745fe4a1afc24366613592d28afb97))
|
|
41
|
+
- **shared:** Morph matching heuristics for media, twins, and group twins (by @nikko82) ([d5ba90b](https://github.com/ChristopherVR/pptx-viewer/commit/d5ba90b2bbc4ed8866e2367bb7751c00a3cc9f8f))
|
|
42
|
+
|
|
43
|
+
### Bug Fixes
|
|
44
|
+
|
|
45
|
+
- **core:** Close OpenXML round-trip gaps in charts, pictures, tables, text and structure (by @ChristopherVR) ([9780265](https://github.com/ChristopherVR/pptx-viewer/commit/9780265ead99aba7f9e3fde80c0527eaed4f8d17))
|
|
46
|
+
- **shared:** Equation reverse conversion, chart manual layout and editor decision helpers (by @ChristopherVR) ([bffc2b3](https://github.com/ChristopherVR/pptx-viewer/commit/bffc2b380f125787cd39b20096127ab4eb9d6bbf))
|
|
47
|
+
- **shared:** Stop the webfont resolver dropping families the injected stylesheet satisfied (by @ChristopherVR) ([25a9a78](https://github.com/ChristopherVR/pptx-viewer/commit/25a9a781ade7bb3f2dc79847f2ade3284237b7c5))
|
|
48
|
+
- **react:** Resolve google webfonts through the shared resolver (by @ChristopherVR) ([7a359d7](https://github.com/ChristopherVR/pptx-viewer/commit/7a359d734a7b36c696e104d23078f1f9294b785b))
|
|
49
|
+
- **core:** Write gridline elements on generated chart axes (by @ChristopherVR) ([0d03c1a](https://github.com/ChristopherVR/pptx-viewer/commit/0d03c1a17c29499e234cc7e836a55e2d29bd2716))
|
|
50
|
+
- **shared:** Honour c:majorGridlines when drawing value-axis gridlines (by @ChristopherVR) ([8b9dd88](https://github.com/ChristopherVR/pptx-viewer/commit/8b9dd88cbe32f873ed8246903105aba0a7ad7e3b))
|
|
51
|
+
- **core:** Snapshot baked-in a14 corrections next to the live values (by @ChristopherVR) ([9e6cc01](https://github.com/ChristopherVR/pptx-viewer/commit/9e6cc01181e481d6e3132cc086c6f85c1c80fd44))
|
|
52
|
+
- **shared:** Stop re-applying a14 corrections PowerPoint already baked in (by @ChristopherVR) ([52766e7](https://github.com/ChristopherVR/pptx-viewer/commit/52766e78250805a4a03353dc22b1ed637f0c750f))
|
|
53
|
+
- **react:** Autoplay every media element in presentation mode (by @ChristopherVR) ([2f8e760](https://github.com/ChristopherVR/pptx-viewer/commit/2f8e76058e9669d5ce0a8d0620d1aa239f206ff0))
|
|
54
|
+
|
|
55
|
+
### Refactor
|
|
56
|
+
|
|
57
|
+
- **shared:** Extract binding-duplicated engines, option lists and parity descriptors (by @ChristopherVR) ([b0acb02](https://github.com/ChristopherVR/pptx-viewer/commit/b0acb02210b17266f44eed013c2d801d3992257e))
|
|
58
|
+
|
|
59
|
+
### Testing
|
|
60
|
+
|
|
61
|
+
- **e2e:** Pin the webfont fallback probe across the five bindings (by @nikko82) ([aabb9dd](https://github.com/ChristopherVR/pptx-viewer/commit/aabb9dd226fc08df63f270aef080936d9f602268))
|
|
62
|
+
|
|
10
63
|
## [3.1.5](https://github.com/ChristopherVR/pptx-viewer/releases/tag/pptx-react-viewer@3.1.5) - 2026-09-01
|
|
11
64
|
|
|
12
65
|
### Chores
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
var
|
|
5
|
-
require('./chunk-
|
|
6
|
-
require('./chunk-
|
|
3
|
+
var chunkKY6JQJXK_js = require('./chunk-KY6JQJXK.js');
|
|
4
|
+
var chunkXBTHWXNO_js = require('./chunk-XBTHWXNO.js');
|
|
5
|
+
require('./chunk-PCW2KT7Z.js');
|
|
6
|
+
require('./chunk-UNIJUD5C.js');
|
|
7
7
|
require('./chunk-4VNS5WPM.js');
|
|
8
8
|
var react = require('react');
|
|
9
9
|
var reactI18next = require('react-i18next');
|
|
@@ -23,7 +23,7 @@ function useAiChat(bridge, config) {
|
|
|
23
23
|
setInitError(void 0);
|
|
24
24
|
void (async () => {
|
|
25
25
|
try {
|
|
26
|
-
const available = await
|
|
26
|
+
const available = await chunkKY6JQJXK_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
|
|
34
|
+
const built = await chunkKY6JQJXK_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
|
|
140
|
+
context = await chunkKY6JQJXK_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?.(
|
|
203
|
+
onToolTargetRef.current?.(chunkKY6JQJXK_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 ??
|
|
279
|
+
const store = react.useMemo(() => input.store ?? chunkKY6JQJXK_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:
|
|
422
|
+
className: chunkXBTHWXNO_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
|
),
|
|
@@ -428,9 +428,6 @@ function AiComposer({
|
|
|
428
428
|
)
|
|
429
429
|
] }) });
|
|
430
430
|
}
|
|
431
|
-
function mergeDirective(slideIndex, elementIdA, elementIdB) {
|
|
432
|
-
return `Merge the two selected tables (elementIdA=${elementIdA}, elementIdB=${elementIdB}) on slide ${slideIndex + 1} using merge_tables; stage it now, do not ask me to confirm.`;
|
|
433
|
-
}
|
|
434
431
|
function AiFocusBar({
|
|
435
432
|
targets,
|
|
436
433
|
slides,
|
|
@@ -445,15 +442,15 @@ function AiFocusBar({
|
|
|
445
442
|
onClearPicks
|
|
446
443
|
}) {
|
|
447
444
|
const { t } = reactI18next.useTranslation();
|
|
448
|
-
const chips =
|
|
449
|
-
const twoTables =
|
|
445
|
+
const chips = chunkKY6JQJXK_js.focusTargetChips(targets, slides);
|
|
446
|
+
const twoTables = chunkKY6JQJXK_js.isTwoTableFocus(targets, slides);
|
|
450
447
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "border-b border-border bg-secondary/30", children: [
|
|
451
448
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-wrap items-center gap-1 px-2.5 py-1.5", children: [
|
|
452
449
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[10px] font-semibold uppercase tracking-wide text-muted-foreground", children: t("pptx.ai.focusScope") }),
|
|
453
450
|
chips.map((chip) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
454
451
|
"span",
|
|
455
452
|
{
|
|
456
|
-
className:
|
|
453
|
+
className: chunkXBTHWXNO_js.cn(
|
|
457
454
|
"inline-flex max-w-[10rem] items-center rounded-full px-2 py-0.5 text-[11px]",
|
|
458
455
|
hasPicks || isPinned ? "bg-primary/15 text-primary" : "bg-muted text-muted-foreground"
|
|
459
456
|
),
|
|
@@ -469,7 +466,11 @@ function AiFocusBar({
|
|
|
469
466
|
{
|
|
470
467
|
type: "button",
|
|
471
468
|
onClick: () => onSendDirective(
|
|
472
|
-
|
|
469
|
+
chunkKY6JQJXK_js.mergeTablesDirective(
|
|
470
|
+
twoTables.slideIndex,
|
|
471
|
+
twoTables.elementIdA,
|
|
472
|
+
twoTables.elementIdB
|
|
473
|
+
)
|
|
473
474
|
),
|
|
474
475
|
className: "inline-flex items-center gap-1 rounded-sm bg-primary/90 px-1.5 py-0.5 text-[11px] font-medium text-primary-foreground hover:bg-primary",
|
|
475
476
|
children: [
|
|
@@ -486,7 +487,7 @@ function AiFocusBar({
|
|
|
486
487
|
title: t("pptx.ai.pickElement"),
|
|
487
488
|
"aria-label": t("pptx.ai.pickAria"),
|
|
488
489
|
"aria-pressed": pickMode,
|
|
489
|
-
className:
|
|
490
|
+
className: chunkXBTHWXNO_js.cn(
|
|
490
491
|
"rounded-sm p-1",
|
|
491
492
|
pickMode ? "bg-primary text-primary-foreground" : "text-muted-foreground hover:bg-accent"
|
|
492
493
|
),
|
|
@@ -565,7 +566,7 @@ function AiHistoryList({ chats, activeChatId, onResume, onDelete }) {
|
|
|
565
566
|
{
|
|
566
567
|
type: "button",
|
|
567
568
|
onClick: () => onResume(chat.id),
|
|
568
|
-
className:
|
|
569
|
+
className: chunkXBTHWXNO_js.cn(
|
|
569
570
|
"flex min-w-0 flex-1 items-start gap-2 rounded-sm px-2 py-1.5 text-left hover:bg-accent",
|
|
570
571
|
chat.id === activeChatId && "bg-accent/60"
|
|
571
572
|
),
|
|
@@ -720,26 +721,26 @@ function AiToolCallCard({ part }) {
|
|
|
720
721
|
const failed = part.state === "output-error";
|
|
721
722
|
const done = part.state === "output-available";
|
|
722
723
|
const running = !failed && !done;
|
|
723
|
-
const activity =
|
|
724
|
+
const activity = chunkKY6JQJXK_js.describeToolActivity(part.toolName, part.input, running ? "present" : "past");
|
|
724
725
|
const Icon = ICONS[activity.icon] ?? lu.LuWrench;
|
|
725
|
-
const rawSummary =
|
|
726
|
+
const rawSummary = chunkKY6JQJXK_js.summarizeToolArgs(part.input);
|
|
726
727
|
const statusLabel = failed ? t("pptx.ai.toolFailed") : done ? t("pptx.ai.toolDone") : t("pptx.ai.toolRunning");
|
|
727
728
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-[12px]", children: [
|
|
728
729
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-1.5", children: [
|
|
729
730
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
730
731
|
Icon,
|
|
731
732
|
{
|
|
732
|
-
className:
|
|
733
|
+
className: chunkXBTHWXNO_js.cn(
|
|
733
734
|
"w-3.5 h-3.5 shrink-0",
|
|
734
735
|
failed ? "text-destructive" : "text-muted-foreground"
|
|
735
736
|
)
|
|
736
737
|
}
|
|
737
738
|
),
|
|
738
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className:
|
|
739
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: chunkXBTHWXNO_js.cn("truncate", failed ? "text-destructive" : "text-foreground"), children: activity.label }),
|
|
739
740
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
740
741
|
"span",
|
|
741
742
|
{
|
|
742
|
-
className:
|
|
743
|
+
className: chunkXBTHWXNO_js.cn(
|
|
743
744
|
"ml-auto inline-flex items-center gap-1 rounded-sm px-1.5 py-0.5 text-[10px]",
|
|
744
745
|
failed ? "bg-destructive/15 text-destructive" : done ? "bg-primary/10 text-primary" : "bg-muted text-muted-foreground"
|
|
745
746
|
),
|
|
@@ -756,7 +757,7 @@ function AiToolCallCard({ part }) {
|
|
|
756
757
|
rawSummary && /* @__PURE__ */ jsxRuntime.jsxs("details", { className: "group mt-0.5 pl-5", children: [
|
|
757
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") }),
|
|
758
759
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-0.5 break-words font-mono text-[10px] text-muted-foreground/80", children: [
|
|
759
|
-
|
|
760
|
+
chunkKY6JQJXK_js.toolLabel(part.toolName),
|
|
760
761
|
": ",
|
|
761
762
|
rawSummary
|
|
762
763
|
] })
|
|
@@ -787,7 +788,7 @@ function AiMessageList({ messages, isStreaming, bridge }) {
|
|
|
787
788
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
788
789
|
"div",
|
|
789
790
|
{
|
|
790
|
-
className:
|
|
791
|
+
className: chunkXBTHWXNO_js.cn(
|
|
791
792
|
"mt-0.5 flex h-6 w-6 shrink-0 items-center justify-center rounded-full",
|
|
792
793
|
isUser ? "bg-secondary text-muted-foreground" : "bg-primary/15 text-primary"
|
|
793
794
|
),
|
|
@@ -834,7 +835,7 @@ function AiMessageList({ messages, isStreaming, bridge }) {
|
|
|
834
835
|
}
|
|
835
836
|
function AiProposalCard({ proposal, onAccept, onReject }) {
|
|
836
837
|
const { t } = reactI18next.useTranslation();
|
|
837
|
-
const lines = proposal.summary.map(
|
|
838
|
+
const lines = proposal.summary.map(chunkKY6JQJXK_js.humanizeDiffLine);
|
|
838
839
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "rounded-md border border-primary/40 bg-primary/5 p-2.5", children: [
|
|
839
840
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-1.5 text-[11px] font-semibold uppercase tracking-wide text-primary", children: t("pptx.ai.proposedChange") }),
|
|
840
841
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-[12px] font-medium text-foreground", children: proposal.label }),
|
|
@@ -1042,7 +1043,7 @@ function AiChatPanel({
|
|
|
1042
1043
|
}) {
|
|
1043
1044
|
const { t } = reactI18next.useTranslation();
|
|
1044
1045
|
const { state, session, initError } = useAiChat(bridge, config);
|
|
1045
|
-
const deckId = react.useMemo(() =>
|
|
1046
|
+
const deckId = react.useMemo(() => chunkKY6JQJXK_js.deckIdFromBridge(bridge), [bridge]);
|
|
1046
1047
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1047
1048
|
"div",
|
|
1048
1049
|
{
|
|
Binary file
|
|
Binary file
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { deckIdFromBridge, isAiAvailable, createAiChatSession, toolCanvasTarget, createChatHistoryStore, focusTargetChips, isTwoTableFocus, humanizeDiffLine, buildDeckContext, describeToolActivity, summarizeToolArgs, toolLabel } from './chunk-
|
|
2
|
-
import { cn } from './chunk-
|
|
3
|
-
import './chunk-
|
|
4
|
-
import './chunk-
|
|
1
|
+
import { deckIdFromBridge, isAiAvailable, createAiChatSession, toolCanvasTarget, createChatHistoryStore, focusTargetChips, isTwoTableFocus, mergeTablesDirective, humanizeDiffLine, buildDeckContext, describeToolActivity, summarizeToolArgs, toolLabel } from './chunk-C4WTQIC6.mjs';
|
|
2
|
+
import { cn } from './chunk-SFMATKNJ.mjs';
|
|
3
|
+
import './chunk-B7WAGQW4.mjs';
|
|
4
|
+
import './chunk-XWUMM2TX.mjs';
|
|
5
5
|
import './chunk-XGB3TDIC.mjs';
|
|
6
6
|
import { useMemo, useRef, useState, useEffect, useReducer, useCallback } from 'react';
|
|
7
7
|
import { useTranslation } from 'react-i18next';
|
|
@@ -426,9 +426,6 @@ function AiComposer({
|
|
|
426
426
|
)
|
|
427
427
|
] }) });
|
|
428
428
|
}
|
|
429
|
-
function mergeDirective(slideIndex, elementIdA, elementIdB) {
|
|
430
|
-
return `Merge the two selected tables (elementIdA=${elementIdA}, elementIdB=${elementIdB}) on slide ${slideIndex + 1} using merge_tables; stage it now, do not ask me to confirm.`;
|
|
431
|
-
}
|
|
432
429
|
function AiFocusBar({
|
|
433
430
|
targets,
|
|
434
431
|
slides,
|
|
@@ -467,7 +464,11 @@ function AiFocusBar({
|
|
|
467
464
|
{
|
|
468
465
|
type: "button",
|
|
469
466
|
onClick: () => onSendDirective(
|
|
470
|
-
|
|
467
|
+
mergeTablesDirective(
|
|
468
|
+
twoTables.slideIndex,
|
|
469
|
+
twoTables.elementIdA,
|
|
470
|
+
twoTables.elementIdB
|
|
471
|
+
)
|
|
471
472
|
),
|
|
472
473
|
className: "inline-flex items-center gap-1 rounded-sm bg-primary/90 px-1.5 py-0.5 text-[11px] font-medium text-primary-foreground hover:bg-primary",
|
|
473
474
|
children: [
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
[ "���_SM�%�@~��B�$����:p��n&�n�hK�d�ڨ-��1�ը�KM:���:��|;$~�8]��n�ȆڙR��wnWgKL+�:��������\���tfb�GL[/�=�6�-�|וxp��;A-l�\$�З��1'�A߿���������tFBO||�b8xQ�7�"�H$����$x�� ~N���?��o�c3��琛�?��2���m �Ю��RG J��ZM?�Z��kQ�;{R
|
|
2
|
+
6��D2��Tr�[GE�s"]Bmr^ܳx��͖��g3���k��?y���M6��}�,�:͚Pq�$ެ���Jz<��k3���r��E��/oz��Iwu/ ��[?
|
|
3
|
+
U
|
|
Binary file
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkPCW2KT7Z_js = require('./chunk-PCW2KT7Z.js');
|
|
4
4
|
require('./chunk-4VNS5WPM.js');
|
|
5
5
|
var react = require('react');
|
|
6
6
|
var jsxRuntime = require('react/jsx-runtime');
|
|
@@ -14,7 +14,7 @@ function Area3DChartScene({ options }) {
|
|
|
14
14
|
return;
|
|
15
15
|
}
|
|
16
16
|
let disposed = false;
|
|
17
|
-
void
|
|
17
|
+
void chunkPCW2KT7Z_js.mountAreaChart3D(container, options).then((handle) => {
|
|
18
18
|
if (disposed) {
|
|
19
19
|
handle.dispose();
|
|
20
20
|
} else {
|
|
Binary file
|
|
Binary file
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkPCW2KT7Z_js = require('./chunk-PCW2KT7Z.js');
|
|
4
4
|
require('./chunk-4VNS5WPM.js');
|
|
5
5
|
var react = require('react');
|
|
6
6
|
var jsxRuntime = require('react/jsx-runtime');
|
|
@@ -14,7 +14,7 @@ function Bar3DChartScene({ options }) {
|
|
|
14
14
|
return;
|
|
15
15
|
}
|
|
16
16
|
let disposed = false;
|
|
17
|
-
void
|
|
17
|
+
void chunkPCW2KT7Z_js.mountBarChart3D(container, options).then((handle) => {
|
|
18
18
|
if (disposed) {
|
|
19
19
|
handle.dispose();
|
|
20
20
|
} else {
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkPCW2KT7Z_js = require('./chunk-PCW2KT7Z.js');
|
|
4
4
|
require('./chunk-4VNS5WPM.js');
|
|
5
5
|
var react = require('react');
|
|
6
6
|
var jsxRuntime = require('react/jsx-runtime');
|
|
@@ -14,7 +14,7 @@ function Line3DChartScene({ options }) {
|
|
|
14
14
|
return;
|
|
15
15
|
}
|
|
16
16
|
let disposed = false;
|
|
17
|
-
void
|
|
17
|
+
void chunkPCW2KT7Z_js.mountLineChart3D(container, options).then((handle) => {
|
|
18
18
|
if (disposed) {
|
|
19
19
|
handle.dispose();
|
|
20
20
|
} else {
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
[ "���_SM�%�@~��B�$����:p��n&�n�hK�d�ڨ-��1�ը�KM*���:��|;$~�8]��n�ȆڙR��wnWgKL+�:��������\���tfb�GL[/�=�6�-�|וxp��;A-l�\$�З��1'�A߿���������tFBO||�b8xQ�7�"�H$����$x�� ~N���?��o�c3��琛�?��2���m �Ю��RG J��ZM?�Z��kQ�;{R
|
|
2
|
+
6��D2��Tr�[GE�s"]Bmr^ܳx��͖��g3���k��?����M6��}�,�:͚Pq�$ެ���Jz<��k3���r��E��/oz��Iwu/ ��[?
|
|
3
|
+
U
|
|
Binary file
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkPCW2KT7Z_js = require('./chunk-PCW2KT7Z.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 chunkPCW2KT7Z_js.mountModel3D(container, modelUrl, { width, height, interactive }).then((handle) => {
|
|
18
18
|
if (disposed) {
|
|
19
19
|
handle.dispose();
|
|
20
20
|
} else {
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkPCW2KT7Z_js = require('./chunk-PCW2KT7Z.js');
|
|
4
4
|
require('./chunk-4VNS5WPM.js');
|
|
5
5
|
var react = require('react');
|
|
6
6
|
var jsxRuntime = require('react/jsx-runtime');
|
|
@@ -14,7 +14,7 @@ function PieChart3DScene({ options }) {
|
|
|
14
14
|
return;
|
|
15
15
|
}
|
|
16
16
|
let disposed = false;
|
|
17
|
-
void
|
|
17
|
+
void chunkPCW2KT7Z_js.mountPieChart3D(container, options).then((handle) => {
|
|
18
18
|
if (disposed) {
|
|
19
19
|
handle.dispose();
|
|
20
20
|
} else {
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -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;;;;;;;;;;;;
|
|
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;;;;;;;;;;;;cC2HI,kCAAgB,0BAAA,wCAAA,cAAA"}
|
|
Binary file
|
|
Binary file
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkPCW2KT7Z_js = require('./chunk-PCW2KT7Z.js');
|
|
4
4
|
require('./chunk-4VNS5WPM.js');
|
|
5
5
|
var react = require('react');
|
|
6
6
|
var jsxRuntime = require('react/jsx-runtime');
|
|
@@ -16,7 +16,7 @@ function SurfaceChart3DScene({
|
|
|
16
16
|
return;
|
|
17
17
|
}
|
|
18
18
|
let disposed = false;
|
|
19
|
-
void
|
|
19
|
+
void chunkPCW2KT7Z_js.mountSurfaceChart3D(container, options).then((handle) => {
|
|
20
20
|
if (disposed) {
|
|
21
21
|
handle.dispose();
|
|
22
22
|
} else {
|
|
Binary file
|
|
Binary file
|