pptx-react-viewer 2.0.0 → 2.2.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 (112) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/README.md +1 -1
  3. package/dist/{AiChatPanel-BRGQCYZM.mjs → AiChatPanel-JFCJCR3O.mjs} +3 -3
  4. package/dist/AiChatPanel-JFCJCR3O.mjs.br +0 -0
  5. package/dist/AiChatPanel-JFCJCR3O.mjs.gz +0 -0
  6. package/dist/{AiChatPanel-PW5OT25Z.js → AiChatPanel-S3FWARWG.js} +11 -11
  7. package/dist/AiChatPanel-S3FWARWG.js.br +0 -0
  8. package/dist/AiChatPanel-S3FWARWG.js.gz +0 -0
  9. package/dist/{Model3DScene-JCGYRKXM.js → Model3DScene-BZK4UHL4.js} +2 -2
  10. package/dist/Model3DScene-BZK4UHL4.js.br +0 -0
  11. package/dist/Model3DScene-BZK4UHL4.js.gz +0 -0
  12. package/dist/{Model3DScene-TEF362W2.mjs → Model3DScene-RCZCBW52.mjs} +1 -1
  13. package/dist/{Model3DScene-TEF362W2.mjs.br → Model3DScene-RCZCBW52.mjs.br} +0 -0
  14. package/dist/Model3DScene-RCZCBW52.mjs.gz +0 -0
  15. package/dist/PowerPointViewer-gmU5rc7K.d.ts.map +1 -1
  16. package/dist/{SurfaceChart3DScene-2SHCYZVC.js → SurfaceChart3DScene-EGPAMPX4.js} +2 -2
  17. package/dist/SurfaceChart3DScene-EGPAMPX4.js.br +0 -0
  18. package/dist/SurfaceChart3DScene-EGPAMPX4.js.gz +0 -0
  19. package/dist/{SurfaceChart3DScene-UPDCIMJM.mjs → SurfaceChart3DScene-IRLH4ADG.mjs} +1 -1
  20. package/dist/{SurfaceChart3DScene-UPDCIMJM.mjs.br → SurfaceChart3DScene-IRLH4ADG.mjs.br} +0 -0
  21. package/dist/SurfaceChart3DScene-IRLH4ADG.mjs.gz +0 -0
  22. package/dist/{chunk-LFXG7SGG.js → chunk-3KD6S6VM.js} +1111 -830
  23. package/dist/chunk-3KD6S6VM.js.br +0 -0
  24. package/dist/chunk-3KD6S6VM.js.gz +0 -0
  25. package/dist/{chunk-L63RAVM7.mjs → chunk-6BUR4MJO.mjs} +358 -77
  26. package/dist/chunk-6BUR4MJO.mjs.br +0 -0
  27. package/dist/chunk-6BUR4MJO.mjs.gz +0 -0
  28. package/dist/{chunk-ZB4NZRCI.js → chunk-JPJBOVU7.js} +423 -332
  29. package/dist/chunk-JPJBOVU7.js.br +0 -0
  30. package/dist/chunk-JPJBOVU7.js.gz +0 -0
  31. package/dist/{chunk-5XLLRPMV.mjs → chunk-L4ETDT4F.mjs} +174 -84
  32. package/dist/chunk-L4ETDT4F.mjs.br +0 -0
  33. package/dist/chunk-L4ETDT4F.mjs.gz +0 -0
  34. package/dist/{chunk-2X72MOPZ.mjs → chunk-PZTPX3HK.mjs} +10 -1
  35. package/dist/chunk-PZTPX3HK.mjs.br +0 -0
  36. package/dist/chunk-PZTPX3HK.mjs.gz +0 -0
  37. package/dist/{chunk-R2N2UYT7.mjs → chunk-RLK72AOU.mjs} +403 -3
  38. package/dist/chunk-RLK72AOU.mjs.br +0 -0
  39. package/dist/{chunk-R2N2UYT7.mjs.gz → chunk-RLK72AOU.mjs.gz} +0 -0
  40. package/dist/{chunk-ZKDE3HJI.js → chunk-RNZJKGA7.js} +219 -219
  41. package/dist/chunk-RNZJKGA7.js.br +0 -0
  42. package/dist/chunk-RNZJKGA7.js.gz +0 -0
  43. package/dist/{chunk-B6NRDUHJ.mjs → chunk-SOHIKHL4.mjs} +3 -3
  44. package/dist/chunk-SOHIKHL4.mjs.br +0 -0
  45. package/dist/chunk-SOHIKHL4.mjs.gz +0 -0
  46. package/dist/{chunk-OKOJVSKJ.js → chunk-UTTXH3GH.js} +410 -2
  47. package/dist/chunk-UTTXH3GH.js.br +0 -0
  48. package/dist/{chunk-OKOJVSKJ.js.gz → chunk-UTTXH3GH.js.gz} +0 -0
  49. package/dist/{chunk-CUUYYYC5.js → chunk-YIFO3WQO.js} +10 -1
  50. package/dist/chunk-YIFO3WQO.js.br +0 -0
  51. package/dist/chunk-YIFO3WQO.js.gz +0 -0
  52. package/dist/i18n.js +4 -4
  53. package/dist/i18n.js.br +0 -0
  54. package/dist/i18n.js.gz +0 -0
  55. package/dist/i18n.mjs +1 -1
  56. package/dist/i18n.mjs.br +0 -0
  57. package/dist/i18n.mjs.gz +0 -0
  58. package/dist/{index-a8wcFjRJ.d.ts → index-CDCSXtK3.d.ts} +32 -16
  59. package/dist/index-CDCSXtK3.d.ts.map +1 -0
  60. package/dist/index.js +35 -35
  61. package/dist/index.js.br +0 -0
  62. package/dist/index.js.gz +0 -0
  63. package/dist/index.mjs +5 -5
  64. package/dist/index.mjs.br +0 -0
  65. package/dist/index.mjs.gz +0 -0
  66. package/dist/internals.d.ts +142 -14
  67. package/dist/internals.d.ts.map +1 -1
  68. package/dist/internals.js +79 -79
  69. package/dist/internals.js.br +0 -0
  70. package/dist/internals.js.gz +0 -0
  71. package/dist/internals.mjs +4 -4
  72. package/dist/internals.mjs.br +0 -0
  73. package/dist/internals.mjs.gz +0 -0
  74. package/dist/pptx-viewer.css +1 -1
  75. package/dist/pptx-viewer.css.br +0 -0
  76. package/dist/pptx-viewer.css.gz +0 -0
  77. package/dist/viewer/index.js +21 -21
  78. package/dist/viewer/index.js.br +0 -0
  79. package/dist/viewer/index.js.gz +0 -0
  80. package/dist/viewer/index.mjs +5 -5
  81. package/dist/viewer/index.mjs.br +0 -0
  82. package/dist/viewer/index.mjs.gz +0 -0
  83. package/package.json +5 -3
  84. package/dist/AiChatPanel-BRGQCYZM.mjs.br +0 -0
  85. package/dist/AiChatPanel-BRGQCYZM.mjs.gz +0 -0
  86. package/dist/AiChatPanel-PW5OT25Z.js.br +0 -0
  87. package/dist/AiChatPanel-PW5OT25Z.js.gz +0 -0
  88. package/dist/Model3DScene-JCGYRKXM.js.br +0 -0
  89. package/dist/Model3DScene-JCGYRKXM.js.gz +0 -0
  90. package/dist/Model3DScene-TEF362W2.mjs.gz +0 -0
  91. package/dist/SurfaceChart3DScene-2SHCYZVC.js.br +0 -0
  92. package/dist/SurfaceChart3DScene-2SHCYZVC.js.gz +0 -0
  93. package/dist/SurfaceChart3DScene-UPDCIMJM.mjs.gz +0 -0
  94. package/dist/chunk-2X72MOPZ.mjs.br +0 -0
  95. package/dist/chunk-2X72MOPZ.mjs.gz +0 -0
  96. package/dist/chunk-5XLLRPMV.mjs.br +0 -0
  97. package/dist/chunk-5XLLRPMV.mjs.gz +0 -0
  98. package/dist/chunk-B6NRDUHJ.mjs.br +0 -0
  99. package/dist/chunk-B6NRDUHJ.mjs.gz +0 -0
  100. package/dist/chunk-CUUYYYC5.js.br +0 -0
  101. package/dist/chunk-CUUYYYC5.js.gz +0 -0
  102. package/dist/chunk-L63RAVM7.mjs.br +0 -0
  103. package/dist/chunk-L63RAVM7.mjs.gz +0 -0
  104. package/dist/chunk-LFXG7SGG.js.br +0 -0
  105. package/dist/chunk-LFXG7SGG.js.gz +0 -0
  106. package/dist/chunk-OKOJVSKJ.js.br +0 -0
  107. package/dist/chunk-R2N2UYT7.mjs.br +0 -0
  108. package/dist/chunk-ZB4NZRCI.js.br +0 -0
  109. package/dist/chunk-ZB4NZRCI.js.gz +0 -0
  110. package/dist/chunk-ZKDE3HJI.js.br +0 -0
  111. package/dist/chunk-ZKDE3HJI.js.gz +0 -0
  112. package/dist/index-a8wcFjRJ.d.ts.map +0 -1
package/CHANGELOG.md CHANGED
@@ -4,6 +4,36 @@ All notable changes to this project are documented here.
4
4
  This file is generated from [Conventional Commits](https://www.conventionalcommits.org)
5
5
  by [git-cliff](https://git-cliff.org); do not edit it by hand.
6
6
 
7
+ ## [2.1.0](https://github.com/ChristopherVR/pptx-viewer/releases/tag/pptx-react-viewer@2.1.0) - 2026-07-23
8
+
9
+ ### Features
10
+
11
+ - **react:** Support React 18 alongside React 19 (by @ChristopherVR) ([21bc383](https://github.com/ChristopherVR/pptx-viewer/commit/21bc383f1d7b57541eb1b844cba1e5dfc5d8280c))
12
+
13
+ ## [2.0.0](https://github.com/ChristopherVR/pptx-viewer/releases/tag/pptx-react-viewer@2.0.0) - 2026-07-23
14
+
15
+ ### Features
16
+
17
+ - **react:** Rename hooks-unstable subpath to internals (by @ChristopherVR) ([03fc39c](https://github.com/ChristopherVR/pptx-viewer/commit/03fc39c574a3a411f9b28b62d3a79f2699ad839e))
18
+ - **shared:** Ai config, loader and bridge contracts (by @ChristopherVR) ([1c40e28](https://github.com/ChristopherVR/pptx-viewer/commit/1c40e28b1661895e2993b01c11bea6262459cb88))
19
+ - **react:** Add ai bridge and chat session hooks (by @ChristopherVR) ([9a153a7](https://github.com/ChristopherVR/pptx-viewer/commit/9a153a752c47c5e2c140bf58de2984682bcc39ee))
20
+ - **shared:** Indexeddb-first ai chat history store (by @ChristopherVR) ([88920f2](https://github.com/ChristopherVR/pptx-viewer/commit/88920f20eb00e72b84efa9ef2cb500dfd6d20db4))
21
+ - **shared:** Rebuild AI assistant tools on pptx-viewer-mcp (by @ChristopherVR) ([da1c31e](https://github.com/ChristopherVR/pptx-viewer/commit/da1c31ee88c0b60a82628003c8a1b16245f028ed))
22
+ - **core:** Upgrade emf-converter to 2.0.0 (breaking) (by @ChristopherVR) ([effa4e5](https://github.com/ChristopherVR/pptx-viewer/commit/effa4e5338b2b01796a3671f505bcb4563de74cc))
23
+
24
+ ### Documentation
25
+
26
+ - Friendly 2.0.0 changelog for root and packages (by @ChristopherVR) ([f56564d](https://github.com/ChristopherVR/pptx-viewer/commit/f56564de0dea3f3aa6f0bdf5ad5ed1bf6e9d4823))
27
+
28
+ ### Testing
29
+
30
+ - **react:** Ai panel gating and proposals (by @ChristopherVR) ([59e35e0](https://github.com/ChristopherVR/pptx-viewer/commit/59e35e082cfed944f756a5d2fb74c593e0592da4))
31
+ - **shared:** Opt-in live gpt-4o-mini ai integration test (by @ChristopherVR) ([48622f1](https://github.com/ChristopherVR/pptx-viewer/commit/48622f135a5f2ee4c28d97d08478d3c203745f47))
32
+
33
+ ### Build & CI
34
+
35
+ - **shared:** Keep the ai SDK external across bindings (by @ChristopherVR) ([fa5e6b7](https://github.com/ChristopherVR/pptx-viewer/commit/fa5e6b77e6586764d9e7717439f574291810e93b))
36
+
7
37
  ## [1.25.5](https://github.com/ChristopherVR/pptx-viewer/releases/tag/pptx-react-viewer@1.25.5) - 2026-07-19
8
38
 
9
39
  ## [1.25.4](https://github.com/ChristopherVR/pptx-viewer/releases/tag/pptx-react-viewer@1.25.4) - 2026-07-19
package/README.md CHANGED
@@ -20,7 +20,7 @@ Slides render with real **HTML/CSS** (not `<canvas>`), so text stays crisp at an
20
20
  npm install pptx-react-viewer
21
21
  ```
22
22
 
23
- Then add the React peer dependencies your app uses:
23
+ Then add the React peer dependencies your app uses (`react` / `react-dom` may be ^18.2 or ^19; both majors run the full test suite in CI):
24
24
 
25
25
  ```bash
26
26
  npm install react react-dom framer-motion lucide-react react-icons jspdf jszip fast-xml-parser i18next react-i18next
@@ -1,7 +1,7 @@
1
1
  import { isAiAvailable, createAiChatSession, toolCanvasTarget, createChatHistoryStore, focusTargetChips, isTwoTableFocus, humanizeDiffLine, buildDeckContext, describeToolActivity, summarizeToolArgs, toolLabel } from './chunk-BHVCED34.mjs';
2
- import { cn } from './chunk-B6NRDUHJ.mjs';
3
- import './chunk-R2N2UYT7.mjs';
4
- import './chunk-2X72MOPZ.mjs';
2
+ import { cn } from './chunk-SOHIKHL4.mjs';
3
+ import './chunk-RLK72AOU.mjs';
4
+ import './chunk-PZTPX3HK.mjs';
5
5
  import './chunk-6YXLGMTN.mjs';
6
6
  import './chunk-XGB3TDIC.mjs';
7
7
  import { useMemo, useRef, useState, useEffect, useReducer, useCallback } from 'react';
Binary file
Binary file
@@ -1,9 +1,9 @@
1
1
  'use strict';
2
2
 
3
3
  var chunkSYPHGLIB_js = require('./chunk-SYPHGLIB.js');
4
- var chunkZKDE3HJI_js = require('./chunk-ZKDE3HJI.js');
5
- require('./chunk-OKOJVSKJ.js');
6
- require('./chunk-CUUYYYC5.js');
4
+ var chunkRNZJKGA7_js = require('./chunk-RNZJKGA7.js');
5
+ require('./chunk-UTTXH3GH.js');
6
+ require('./chunk-YIFO3WQO.js');
7
7
  require('./chunk-CLNGAVNH.js');
8
8
  require('./chunk-4VNS5WPM.js');
9
9
  var react = require('react');
@@ -427,7 +427,7 @@ function AiComposer({
427
427
  disabled: value.trim().length === 0,
428
428
  title: t("pptx.ai.send"),
429
429
  "aria-label": t("pptx.ai.send"),
430
- className: chunkZKDE3HJI_js.cn(
430
+ className: chunkRNZJKGA7_js.cn(
431
431
  "shrink-0 rounded-sm p-1.5 transition-colors",
432
432
  value.trim().length === 0 ? "text-muted-foreground/50" : "bg-primary text-primary-foreground hover:bg-primary/90"
433
433
  ),
@@ -461,7 +461,7 @@ function AiFocusBar({
461
461
  chips.map((chip) => /* @__PURE__ */ jsxRuntime.jsx(
462
462
  "span",
463
463
  {
464
- className: chunkZKDE3HJI_js.cn(
464
+ className: chunkRNZJKGA7_js.cn(
465
465
  "inline-flex max-w-[10rem] items-center rounded-full px-2 py-0.5 text-[11px]",
466
466
  hasPicks || isPinned ? "bg-primary/15 text-primary" : "bg-muted text-muted-foreground"
467
467
  ),
@@ -494,7 +494,7 @@ function AiFocusBar({
494
494
  title: t("pptx.ai.pickElement"),
495
495
  "aria-label": t("pptx.ai.pickAria"),
496
496
  "aria-pressed": pickMode,
497
- className: chunkZKDE3HJI_js.cn(
497
+ className: chunkRNZJKGA7_js.cn(
498
498
  "rounded-sm p-1",
499
499
  pickMode ? "bg-primary text-primary-foreground" : "text-muted-foreground hover:bg-accent"
500
500
  ),
@@ -573,7 +573,7 @@ function AiHistoryList({ chats, activeChatId, onResume, onDelete }) {
573
573
  {
574
574
  type: "button",
575
575
  onClick: () => onResume(chat.id),
576
- className: chunkZKDE3HJI_js.cn(
576
+ className: chunkRNZJKGA7_js.cn(
577
577
  "flex min-w-0 flex-1 items-start gap-2 rounded-sm px-2 py-1.5 text-left hover:bg-accent",
578
578
  chat.id === activeChatId && "bg-accent/60"
579
579
  ),
@@ -737,17 +737,17 @@ function AiToolCallCard({ part }) {
737
737
  /* @__PURE__ */ jsxRuntime.jsx(
738
738
  Icon,
739
739
  {
740
- className: chunkZKDE3HJI_js.cn(
740
+ className: chunkRNZJKGA7_js.cn(
741
741
  "w-3.5 h-3.5 shrink-0",
742
742
  failed ? "text-destructive" : "text-muted-foreground"
743
743
  )
744
744
  }
745
745
  ),
746
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: chunkZKDE3HJI_js.cn("truncate", failed ? "text-destructive" : "text-foreground"), children: activity.label }),
746
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: chunkRNZJKGA7_js.cn("truncate", failed ? "text-destructive" : "text-foreground"), children: activity.label }),
747
747
  /* @__PURE__ */ jsxRuntime.jsxs(
748
748
  "span",
749
749
  {
750
- className: chunkZKDE3HJI_js.cn(
750
+ className: chunkRNZJKGA7_js.cn(
751
751
  "ml-auto inline-flex items-center gap-1 rounded-sm px-1.5 py-0.5 text-[10px]",
752
752
  failed ? "bg-destructive/15 text-destructive" : done ? "bg-primary/10 text-primary" : "bg-muted text-muted-foreground"
753
753
  ),
@@ -795,7 +795,7 @@ function AiMessageList({ messages, isStreaming, bridge }) {
795
795
  /* @__PURE__ */ jsxRuntime.jsx(
796
796
  "div",
797
797
  {
798
- className: chunkZKDE3HJI_js.cn(
798
+ className: chunkRNZJKGA7_js.cn(
799
799
  "mt-0.5 flex h-6 w-6 shrink-0 items-center justify-center rounded-full",
800
800
  isUser ? "bg-secondary text-muted-foreground" : "bg-primary/15 text-primary"
801
801
  ),
Binary file
Binary file
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunkOKOJVSKJ_js = require('./chunk-OKOJVSKJ.js');
3
+ var chunkUTTXH3GH_js = require('./chunk-UTTXH3GH.js');
4
4
  require('./chunk-CLNGAVNH.js');
5
5
  require('./chunk-4VNS5WPM.js');
6
6
  var react = require('react');
@@ -15,7 +15,7 @@ function Model3DScene({ modelUrl, interactive, width, height }) {
15
15
  return;
16
16
  }
17
17
  let disposed = false;
18
- void chunkOKOJVSKJ_js.mountModel3D(container, modelUrl, { width, height, interactive }).then((handle) => {
18
+ void chunkUTTXH3GH_js.mountModel3D(container, modelUrl, { width, height, interactive }).then((handle) => {
19
19
  if (disposed) {
20
20
  handle.dispose();
21
21
  } else {
Binary file
Binary file
@@ -1,4 +1,4 @@
1
- import { mountModel3D } from './chunk-R2N2UYT7.mjs';
1
+ import { mountModel3D } from './chunk-RLK72AOU.mjs';
2
2
  import './chunk-6YXLGMTN.mjs';
3
3
  import './chunk-XGB3TDIC.mjs';
4
4
  import { useRef, useEffect } from 'react';
@@ -1 +1 @@
1
- {"version":3,"file":"PowerPointViewer-gmU5rc7K.d.ts","names":[],"sources":["../src/viewer/utils/animation-effects.ts","../src/viewer/PowerPointViewer.tsx"],"mappings":";;;;;iBAmBgB,yBACf,QAAQ,iCACR,kBAAkB,sBAChB,MAAM;;;;;;;;;;;;cCmFI,kCAAgB,0BAAA,wCAAA,cAAA"}
1
+ {"version":3,"file":"PowerPointViewer-gmU5rc7K.d.ts","names":[],"sources":["../src/viewer/utils/animation-effects.ts","../src/viewer/PowerPointViewer.tsx"],"mappings":";;;;;iBAmBgB,yBACf,QAAQ,iCACR,kBAAkB,sBAChB,MAAM;;;;;;;;;;;;cCwFI,kCAAgB,0BAAA,wCAAA,cAAA"}
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunkOKOJVSKJ_js = require('./chunk-OKOJVSKJ.js');
3
+ var chunkUTTXH3GH_js = require('./chunk-UTTXH3GH.js');
4
4
  require('./chunk-CLNGAVNH.js');
5
5
  require('./chunk-4VNS5WPM.js');
6
6
  var react = require('react');
@@ -26,7 +26,7 @@ function SurfaceChart3DScene({
26
26
  return;
27
27
  }
28
28
  let disposed = false;
29
- void chunkOKOJVSKJ_js.mountSurfaceChart3D(container, {
29
+ void chunkUTTXH3GH_js.mountSurfaceChart3D(container, {
30
30
  cols,
31
31
  rows,
32
32
  heightMap,
@@ -1,4 +1,4 @@
1
- import { mountSurfaceChart3D } from './chunk-R2N2UYT7.mjs';
1
+ import { mountSurfaceChart3D } from './chunk-RLK72AOU.mjs';
2
2
  import './chunk-6YXLGMTN.mjs';
3
3
  import './chunk-XGB3TDIC.mjs';
4
4
  import { useRef, useEffect } from 'react';