pptx-react-viewer 4.24.3 → 4.25.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 (177) hide show
  1. package/CHANGELOG.md +55 -0
  2. package/README.md +12 -12
  3. package/dist/{AiChatPanel-B7LBWZ46.mjs → AiChatPanel-2OWWIKF5.mjs} +3 -3
  4. package/dist/AiChatPanel-2OWWIKF5.mjs.br +0 -0
  5. package/dist/AiChatPanel-2OWWIKF5.mjs.gz +0 -0
  6. package/dist/{AiChatPanel-XFP4F344.js → AiChatPanel-3NUGL5VN.js} +27 -27
  7. package/dist/AiChatPanel-3NUGL5VN.js.br +0 -0
  8. package/dist/AiChatPanel-3NUGL5VN.js.gz +0 -0
  9. package/dist/{GLTFLoader-QWUPTGI5.mjs → GLTFLoader-O7FNKCHG.mjs} +4 -4
  10. package/dist/GLTFLoader-O7FNKCHG.mjs.br +0 -0
  11. package/dist/GLTFLoader-O7FNKCHG.mjs.gz +0 -0
  12. package/dist/{GLTFLoader-GO2CQTAO.js → GLTFLoader-UM56GMCK.js} +133 -133
  13. package/dist/GLTFLoader-UM56GMCK.js.br +0 -0
  14. package/dist/GLTFLoader-UM56GMCK.js.gz +0 -0
  15. package/dist/{Model3DScene-FLE6KYYG.mjs → Model3DScene-SKCDIM2U.mjs} +1 -1
  16. package/dist/Model3DScene-SKCDIM2U.mjs.br +0 -0
  17. package/dist/Model3DScene-SKCDIM2U.mjs.gz +0 -0
  18. package/dist/{Model3DScene-XCWVVQRN.js → Model3DScene-TXD4IOMU.js} +2 -2
  19. package/dist/Model3DScene-TXD4IOMU.js.br +0 -0
  20. package/dist/Model3DScene-TXD4IOMU.js.gz +0 -0
  21. package/dist/{OrbitControls-KHUJI7AC.js → OrbitControls-EXEHIXFI.js} +39 -39
  22. package/dist/OrbitControls-EXEHIXFI.js.br +0 -0
  23. package/dist/OrbitControls-EXEHIXFI.js.gz +0 -0
  24. package/dist/{OrbitControls-QYTXPPOG.mjs → OrbitControls-PZQ4CBVS.mjs} +2 -2
  25. package/dist/OrbitControls-PZQ4CBVS.mjs.br +0 -0
  26. package/dist/OrbitControls-PZQ4CBVS.mjs.gz +0 -0
  27. package/dist/{UTIF-POYWAAGO.js → UTIF-6SHLXCNF.js} +36 -36
  28. package/dist/UTIF-6SHLXCNF.js.br +0 -0
  29. package/dist/UTIF-6SHLXCNF.js.gz +0 -0
  30. package/dist/{UTIF-LAD5QYGQ.mjs → UTIF-CNNXS5Z5.mjs} +36 -36
  31. package/dist/UTIF-CNNXS5Z5.mjs.br +0 -0
  32. package/dist/UTIF-CNNXS5Z5.mjs.gz +0 -0
  33. package/dist/{chunk-5W2GW4XX.mjs → chunk-3VVZGHHY.mjs} +35 -27
  34. package/dist/chunk-3VVZGHHY.mjs.br +0 -0
  35. package/dist/chunk-3VVZGHHY.mjs.gz +0 -0
  36. package/dist/{chunk-TJG3I5L4.mjs → chunk-5FEQK3MW.mjs} +4266 -3038
  37. package/dist/chunk-5FEQK3MW.mjs.br +0 -0
  38. package/dist/chunk-5FEQK3MW.mjs.gz +0 -0
  39. package/dist/{chunk-MDVRIMCW.js → chunk-7E6EF4GQ.js} +187 -187
  40. package/dist/chunk-7E6EF4GQ.js.br +0 -0
  41. package/dist/chunk-7E6EF4GQ.js.gz +0 -0
  42. package/dist/{chunk-HF2JXYZT.mjs → chunk-BP7NMPQE.mjs} +7 -15
  43. package/dist/chunk-BP7NMPQE.mjs.br +0 -0
  44. package/dist/chunk-BP7NMPQE.mjs.gz +0 -0
  45. package/dist/{chunk-SDSL4ZDQ.mjs → chunk-C7SS65W2.mjs} +96 -96
  46. package/dist/chunk-C7SS65W2.mjs.br +0 -0
  47. package/dist/chunk-C7SS65W2.mjs.gz +0 -0
  48. package/dist/{chunk-C7SKC34H.mjs → chunk-DC67MV5I.mjs} +1 -1
  49. package/dist/chunk-DC67MV5I.mjs.br +0 -0
  50. package/dist/chunk-DC67MV5I.mjs.gz +0 -0
  51. package/dist/{chunk-HB5Z3SSC.mjs → chunk-M6FVQI5G.mjs} +15 -13
  52. package/dist/chunk-M6FVQI5G.mjs.br +0 -0
  53. package/dist/chunk-M6FVQI5G.mjs.gz +0 -0
  54. package/dist/{chunk-XEESKNA6.js → chunk-MRJZIBPQ.js} +4267 -3038
  55. package/dist/chunk-MRJZIBPQ.js.br +0 -0
  56. package/dist/chunk-MRJZIBPQ.js.gz +0 -0
  57. package/dist/{chunk-7MPBJ5S4.js → chunk-MT33XQSF.js} +1115 -1123
  58. package/dist/chunk-MT33XQSF.js.br +0 -0
  59. package/dist/chunk-MT33XQSF.js.gz +0 -0
  60. package/dist/{chunk-6L3VDF2A.mjs → chunk-NJYF5KTY.mjs} +2 -2
  61. package/dist/chunk-NJYF5KTY.mjs.br +0 -0
  62. package/dist/chunk-NJYF5KTY.mjs.gz +0 -0
  63. package/dist/{chunk-XONAKVNH.js → chunk-NUNDT6EL.js} +35 -27
  64. package/dist/chunk-NUNDT6EL.js.br +0 -0
  65. package/dist/chunk-NUNDT6EL.js.gz +0 -0
  66. package/dist/{chunk-CBDUFZ77.js → chunk-QS3GAPPA.js} +2 -2
  67. package/dist/chunk-QS3GAPPA.js.br +0 -0
  68. package/dist/chunk-QS3GAPPA.js.gz +0 -0
  69. package/dist/{chunk-HNUSASYH.js → chunk-QTASICXP.js} +100 -100
  70. package/dist/chunk-QTASICXP.js.br +0 -0
  71. package/dist/chunk-QTASICXP.js.gz +0 -0
  72. package/dist/{chunk-7YRLWWRY.js → chunk-XDWL6LNV.js} +835 -833
  73. package/dist/chunk-XDWL6LNV.js.br +0 -0
  74. package/dist/chunk-XDWL6LNV.js.gz +0 -0
  75. package/dist/index.d.ts +1 -1
  76. package/dist/index.js +61 -61
  77. package/dist/index.js.br +0 -0
  78. package/dist/index.js.gz +0 -0
  79. package/dist/index.mjs +5 -5
  80. package/dist/index.mjs.br +0 -0
  81. package/dist/index.mjs.gz +0 -0
  82. package/dist/internals.d.ts +2 -2
  83. package/dist/internals.js +104 -104
  84. package/dist/internals.js.br +0 -0
  85. package/dist/internals.js.gz +0 -0
  86. package/dist/internals.mjs +3 -3
  87. package/dist/internals.mjs.br +0 -0
  88. package/dist/internals.mjs.gz +0 -0
  89. package/dist/pptx-viewer.css +1 -1
  90. package/dist/pptx-viewer.css.br +0 -0
  91. package/dist/pptx-viewer.css.gz +0 -0
  92. package/dist/{three.module-BNAKYYCP.js → three.module-BLHG4FHZ.js} +445 -445
  93. package/dist/three.module-BLHG4FHZ.js.br +0 -0
  94. package/dist/three.module-BLHG4FHZ.js.gz +0 -0
  95. package/dist/{three.module-AUSRQGHJ.mjs → three.module-ZSSMKKHW.mjs} +1 -1
  96. package/dist/three.module-ZSSMKKHW.mjs.br +0 -0
  97. package/dist/three.module-ZSSMKKHW.mjs.gz +0 -0
  98. package/dist/viewer/index.d.ts +2 -2
  99. package/dist/viewer/index.js +26 -26
  100. package/dist/viewer/index.js.br +0 -0
  101. package/dist/viewer/index.js.gz +0 -0
  102. package/dist/viewer/index.mjs +5 -5
  103. package/dist/viewer/index.mjs.br +0 -0
  104. package/dist/viewer/index.mjs.gz +0 -0
  105. package/dist/{y-webrtc-TRVZ75W3.js → y-webrtc-F2H7BRUK.js} +141 -141
  106. package/dist/y-webrtc-F2H7BRUK.js.br +0 -0
  107. package/dist/y-webrtc-F2H7BRUK.js.gz +0 -0
  108. package/dist/{y-webrtc-ETJMZ5LO.mjs → y-webrtc-GAHCEZSS.mjs} +18 -18
  109. package/dist/y-webrtc-GAHCEZSS.mjs.br +0 -0
  110. package/dist/y-webrtc-GAHCEZSS.mjs.gz +0 -0
  111. package/dist/{y-websocket-EHPOLGCR.js → y-websocket-FBMB63F4.js} +80 -80
  112. package/dist/y-websocket-FBMB63F4.js.br +0 -0
  113. package/dist/y-websocket-FBMB63F4.js.gz +0 -0
  114. package/dist/{y-websocket-FLUSL2B2.mjs → y-websocket-MAGDFVLN.mjs} +3 -3
  115. package/dist/y-websocket-MAGDFVLN.mjs.br +0 -0
  116. package/dist/y-websocket-MAGDFVLN.mjs.gz +0 -0
  117. package/package.json +8 -7
  118. package/dist/AiChatPanel-B7LBWZ46.mjs.br +0 -0
  119. package/dist/AiChatPanel-B7LBWZ46.mjs.gz +0 -0
  120. package/dist/AiChatPanel-XFP4F344.js.br +0 -0
  121. package/dist/AiChatPanel-XFP4F344.js.gz +0 -0
  122. package/dist/GLTFLoader-GO2CQTAO.js.br +0 -0
  123. package/dist/GLTFLoader-GO2CQTAO.js.gz +0 -0
  124. package/dist/GLTFLoader-QWUPTGI5.mjs.br +0 -0
  125. package/dist/GLTFLoader-QWUPTGI5.mjs.gz +0 -0
  126. package/dist/Model3DScene-FLE6KYYG.mjs.br +0 -0
  127. package/dist/Model3DScene-FLE6KYYG.mjs.gz +0 -0
  128. package/dist/Model3DScene-XCWVVQRN.js.br +0 -0
  129. package/dist/Model3DScene-XCWVVQRN.js.gz +0 -0
  130. package/dist/OrbitControls-KHUJI7AC.js.br +0 -0
  131. package/dist/OrbitControls-KHUJI7AC.js.gz +0 -0
  132. package/dist/OrbitControls-QYTXPPOG.mjs.br +0 -0
  133. package/dist/OrbitControls-QYTXPPOG.mjs.gz +0 -0
  134. package/dist/UTIF-LAD5QYGQ.mjs.br +0 -0
  135. package/dist/UTIF-LAD5QYGQ.mjs.gz +0 -0
  136. package/dist/UTIF-POYWAAGO.js.br +0 -0
  137. package/dist/UTIF-POYWAAGO.js.gz +0 -0
  138. package/dist/chunk-5W2GW4XX.mjs.br +0 -0
  139. package/dist/chunk-5W2GW4XX.mjs.gz +0 -0
  140. package/dist/chunk-6L3VDF2A.mjs.br +0 -0
  141. package/dist/chunk-6L3VDF2A.mjs.gz +0 -0
  142. package/dist/chunk-7MPBJ5S4.js.br +0 -0
  143. package/dist/chunk-7MPBJ5S4.js.gz +0 -0
  144. package/dist/chunk-7YRLWWRY.js.br +0 -0
  145. package/dist/chunk-7YRLWWRY.js.gz +0 -0
  146. package/dist/chunk-C7SKC34H.mjs.br +0 -0
  147. package/dist/chunk-C7SKC34H.mjs.gz +0 -0
  148. package/dist/chunk-CBDUFZ77.js.br +0 -0
  149. package/dist/chunk-CBDUFZ77.js.gz +0 -0
  150. package/dist/chunk-HB5Z3SSC.mjs.br +0 -0
  151. package/dist/chunk-HB5Z3SSC.mjs.gz +0 -0
  152. package/dist/chunk-HF2JXYZT.mjs.br +0 -0
  153. package/dist/chunk-HF2JXYZT.mjs.gz +0 -0
  154. package/dist/chunk-HNUSASYH.js.br +0 -0
  155. package/dist/chunk-HNUSASYH.js.gz +0 -0
  156. package/dist/chunk-MDVRIMCW.js.br +0 -0
  157. package/dist/chunk-MDVRIMCW.js.gz +0 -0
  158. package/dist/chunk-SDSL4ZDQ.mjs.br +0 -0
  159. package/dist/chunk-SDSL4ZDQ.mjs.gz +0 -0
  160. package/dist/chunk-TJG3I5L4.mjs.br +0 -0
  161. package/dist/chunk-TJG3I5L4.mjs.gz +0 -0
  162. package/dist/chunk-XEESKNA6.js.br +0 -0
  163. package/dist/chunk-XEESKNA6.js.gz +0 -0
  164. package/dist/chunk-XONAKVNH.js.br +0 -0
  165. package/dist/chunk-XONAKVNH.js.gz +0 -0
  166. package/dist/three.module-AUSRQGHJ.mjs.br +0 -0
  167. package/dist/three.module-AUSRQGHJ.mjs.gz +0 -0
  168. package/dist/three.module-BNAKYYCP.js.br +0 -0
  169. package/dist/three.module-BNAKYYCP.js.gz +0 -0
  170. package/dist/y-webrtc-ETJMZ5LO.mjs.br +0 -0
  171. package/dist/y-webrtc-ETJMZ5LO.mjs.gz +0 -0
  172. package/dist/y-webrtc-TRVZ75W3.js.br +0 -0
  173. package/dist/y-webrtc-TRVZ75W3.js.gz +0 -0
  174. package/dist/y-websocket-EHPOLGCR.js.br +0 -0
  175. package/dist/y-websocket-EHPOLGCR.js.gz +0 -0
  176. package/dist/y-websocket-FLUSL2B2.mjs.br +0 -0
  177. package/dist/y-websocket-FLUSL2B2.mjs.gz +0 -0
package/CHANGELOG.md CHANGED
@@ -1,5 +1,52 @@
1
1
  # Changelog
2
2
 
3
+ All notable changes to this project are documented here.
4
+ This file is generated from [Conventional Commits](https://www.conventionalcommits.org)
5
+ by [git-cliff](https://git-cliff.org); do not edit it by hand.
6
+ A release listed with no entries carried no Conventional Commit in this package's
7
+ scope: scripts/release-plan.mjs releases whenever any published file changes, not only on
8
+ conventional commits.
9
+
10
+ ## [4.25.0](https://github.com/ChristopherVR/ooxml/releases/tag/pptx-react-viewer@4.25.0) - 2026-10-06
11
+
12
+ ### Features
13
+
14
+ - **pptx:** Parse chart legend overlay from c:overlay ([dce36c6](https://github.com/ChristopherVR/ooxml/commit/dce36c6134cdaded271b73f541091b37223b6da2))
15
+ - **chart:** Move pie, radar, treemap and trendline helpers from pptx viewer ([c08a02b](https://github.com/ChristopherVR/ooxml/commit/c08a02b91b210c0f99c8c2dfbde02c2e1329fc57))
16
+ - **color:** Move text contrast and unit rgb helpers from pptx viewer ([2dcc341](https://github.com/ChristopherVR/ooxml/commit/2dcc341bd931610a9e9a8f4e8d53483cffbed8ec))
17
+ - **text:** Move tab leader and decimal tab helpers from pptx viewer ([3a5bcf0](https://github.com/ChristopherVR/ooxml/commit/3a5bcf0f4675db3d6831430c37db0c66c6814ef3))
18
+ - **geometry:** Move snap guides and align/distribute from pptx viewer ([3400e87](https://github.com/ChristopherVR/ooxml/commit/3400e8776661df9e2148e1be78819b1c12564b79))
19
+ - **pptx:** Forward the viewer's duplicated chart and theme helpers ([c22b276](https://github.com/ChristopherVR/ooxml/commit/c22b2766272ec08218ea14fadfc3cafd3c2b9ff6))
20
+
21
+ ### Bug Fixes
22
+
23
+ - **pptx:** Clear the old layout definition on a SmartArt layout switch ([086e06c](https://github.com/ChristopherVR/ooxml/commit/086e06cc28b0389da820f35b5fd4f482f2312de8))
24
+ - **shared:** Make 3D SmartArt editing and layout switching reliable in every binding ([43e3e07](https://github.com/ChristopherVR/ooxml/commit/43e3e07e6f4996c9777d175ffd3536a341dadc86))
25
+ - **shared:** Hide the fill swatches when the pointer leaves a 3D SmartArt node ([c718e77](https://github.com/ChristopherVR/ooxml/commit/c718e77bb15f7d74721c252189bf99b1f77a9d0d))
26
+ - **ci:** Resolve pptx-viewer-core/ui in the binding test and demo configs ([dfffe69](https://github.com/ChristopherVR/ooxml/commit/dfffe6988b58d3765cf748df5adbd4c3b86b5fbe))
27
+ - **xlsx:** Harden code-scanning findings across areas ([90ee4b3](https://github.com/ChristopherVR/ooxml/commit/90ee4b33e1253f21cd0df299af468d550f85eddc))
28
+ - **xlsx:** Use Reflect for dynamic property writes and tighten sanitizers ([b663413](https://github.com/ChristopherVR/ooxml/commit/b66341384d972d73182b06c6b4c706c0462f9364))
29
+
30
+ ### Refactor
31
+
32
+ - Move the library into src/core, next to src/ui ([3933a88](https://github.com/ChristopherVR/ooxml/commit/3933a88e36784ce5f4bfab0af1ca12eb65d3cd0c))
33
+
34
+ ### Documentation
35
+
36
+ - Bring the pptx docs and agent guide up to date with the move ([8cc3f5e](https://github.com/ChristopherVR/ooxml/commit/8cc3f5e364232d39d2a2286e25056fd67b594108))
37
+
38
+ ### Build & CI
39
+
40
+ - **deps:** Adopt ooxml-ui 0.29.1 and ooxml-core 0.21.1 ([56e1979](https://github.com/ChristopherVR/ooxml/commit/56e197912df02e3d6ce674025115dab206338138))
41
+ - **pptx:** Move the pptx demos and browser tests to the repository root ([a23994d](https://github.com/ChristopherVR/ooxml/commit/a23994d534fc34721f182d5eba9cd4abb97e44f8))
42
+ - **release:** Publish the pptx viewer packages from this repository ([21e790f](https://github.com/ChristopherVR/ooxml/commit/21e790f582b3d7072f3770d7a1bd9fc2ad035e53))
43
+
44
+ ### Chores
45
+
46
+ - **viewers:** Import the pptx-viewer repository with its history ([dde62be](https://github.com/ChristopherVR/ooxml/commit/dde62beb12d38f53fcddf016a4de243fe7151712))
47
+
48
+ # Changelog
49
+
3
50
  All notable changes to this project are documented here.
4
51
  This file is generated from [Conventional Commits](https://www.conventionalcommits.org)
5
52
  by [git-cliff](https://git-cliff.org); do not edit it by hand.
@@ -7,6 +54,14 @@ A release listed with no entries carried no Conventional Commit in this package'
7
54
  scope: scripts/release-plan.mjs re-releases a package whenever any of its files
8
55
  change, not only on conventional ones.
9
56
 
57
+ ## [4.24.3](https://github.com/ChristopherVR/pptx-viewer/releases/tag/pptx-react-viewer@4.24.3) - 2026-10-06
58
+
59
+ ### Bug Fixes
60
+
61
+ - **react,vue:** Keep chart quick-action buttons from overlapping when zoomed out (by @ChristopherVR) ([3bf1bfc](https://github.com/ChristopherVR/pptx-viewer/commit/3bf1bfcaa37876a2da97b75793ea982b13d16289))
62
+ - **shared:** Make 3D SmartArt rotate, edit and recolour like the 2D diagram (by @ChristopherVR) ([29473d4](https://github.com/ChristopherVR/pptx-viewer/commit/29473d42fdfd8a1b5dff4f2259ecad68ecbd57bc))
63
+ - Draw no default table cell border, and let the ooxml sync push to main ([#408](https://github.com/ChristopherVR/pptx-viewer/issues/408)) (by @ChristopherVR) ([11914db](https://github.com/ChristopherVR/pptx-viewer/commit/11914db10cd8f65504e1e5a777848731d88a949a))
64
+
10
65
  ## [4.24.2](https://github.com/ChristopherVR/pptx-viewer/releases/tag/pptx-react-viewer@4.24.2) - 2026-10-05
11
66
 
12
67
  ### Bug Fixes
package/README.md CHANGED
@@ -1,16 +1,16 @@
1
1
  # pptx-react-viewer
2
2
 
3
3
  [![npm version](https://img.shields.io/npm/v/pptx-react-viewer.svg)](https://www.npmjs.com/package/pptx-react-viewer)
4
- [![license](https://img.shields.io/npm/l/pptx-react-viewer.svg)](https://github.com/ChristopherVR/pptx-viewer/blob/main/LICENSE)
4
+ [![license](https://img.shields.io/npm/l/pptx-react-viewer.svg)](https://github.com/ChristopherVR/ooxml/blob/main/viewers/pptx/LICENSE)
5
5
  [![types](https://img.shields.io/npm/types/pptx-react-viewer.svg)](https://www.npmjs.com/package/pptx-react-viewer)
6
6
 
7
7
  > A drop-in **React** component that turns a `.pptx` file into a fully interactive PowerPoint: **view, edit, present, collaborate, and export**, entirely in the browser.
8
8
 
9
- ![Selecting, dragging, and resizing a slide element in the React demo](https://raw.githubusercontent.com/ChristopherVR/pptx-viewer/main/.github/assets/packages/react-demo.gif)
9
+ ![Selecting, dragging, and resizing a slide element in the React demo](https://raw.githubusercontent.com/ChristopherVR/ooxml/main/viewers/pptx/.github/assets/packages/react-demo.gif)
10
10
 
11
11
  Slides render with real **HTML/CSS** (not `<canvas>`), so text stays crisp at any zoom, is selectable and screen-reader accessible, and every element is directly editable. The parsing/editing engine ([`pptx-viewer-core`](https://www.npmjs.com/package/pptx-viewer-core)) is **bundled in**, so you install just one package.
12
12
 
13
- <samp>**[▶️ Try the live demo](https://christophervr.github.io/pptx-viewer/demo/)** · **[📦 npm](https://www.npmjs.com/package/pptx-react-viewer)** · **[📖 Full docs](https://christophervr.github.io/pptx-viewer/)** · **[🧩 Core SDK](https://www.npmjs.com/package/pptx-viewer-core)**</samp>
13
+ <samp>**[▶️ Try the live demo](https://christophervr.github.io/ooxml/pptx/demo/)** · **[📦 npm](https://www.npmjs.com/package/pptx-react-viewer)** · **[📖 Full docs](https://christophervr.github.io/ooxml/pptx/)** · **[🧩 Core SDK](https://www.npmjs.com/package/pptx-viewer-core)**</samp>
14
14
 
15
15
  ---
16
16
 
@@ -117,7 +117,7 @@ const bytes = await viewerRef.current?.getContent(); // Uint8Array of a valid .p
117
117
  | `onStopCollaboration` | `() => void` | n/a | Called when the collaboration session stops |
118
118
  | `theme` | `ViewerTheme` | n/a | Theme configuration for customising colours, radius, and CSS vars |
119
119
  | `hiddenActions` | `ToolbarActionId[]` | n/a | Hide individual toolbar buttons and/or ribbon tabs (e.g. `['share', 'broadcast']`) instead of the whole toolbar; omitted hides nothing |
120
- | `customization` | `ViewerCustomization` | - | Hide, lock or remap any part of the UI (ribbon tabs/buttons, File > Options pages/sections/settings, File tab, context menus, shortcuts, panels, AI/collaboration, dialogs); the same helpers (`hideRibbonTab`, `lockSetting`, ...) are on the `ref` handle. See the [UI Customization guide](https://christophervr.github.io/pptx-viewer/guide/customization). |
120
+ | `customization` | `ViewerCustomization` | - | Hide, lock or remap any part of the UI (ribbon tabs/buttons, File > Options pages/sections/settings, File tab, context menus, shortcuts, panels, AI/collaboration, dialogs); the same helpers (`hideRibbonTab`, `lockSetting`, ...) are on the `ref` handle. See the [UI Customization guide](https://christophervr.github.io/ooxml/pptx/guide/customization). |
121
121
  | `defaultThemeKey` | `string` | n/a | Initial File > Options > Appearance selection when no persisted preference exists |
122
122
  | `availableThemes` | `ThemeCatalogEntry[]` | n/a | Theme choices offered by File > Options > Appearance (defaults to the built-in catalog) |
123
123
  | `onThemeChange` | `(key: string) => void` | n/a | Host hook for the appearance picker; when set, the host owns persisting the choice |
@@ -161,7 +161,7 @@ slide/element manipulation methods are also available:
161
161
  `addElement(element)`, `updateElement(id, patch)`, `deleteElements(ids)`, and
162
162
  `duplicateElement(id)`.
163
163
 
164
- See [element insertion](https://christophervr.github.io/pptx-viewer/react/handle#add-element)
164
+ See [element insertion](https://christophervr.github.io/ooxml/pptx/react/handle#add-element)
165
165
  for the `addElement` contract, including the headless handle, and a core-factory example.
166
166
 
167
167
  ### `renderToCanvas`
@@ -243,9 +243,9 @@ Override specific values with the `theme` prop:
243
243
  />
244
244
  ```
245
245
 
246
- All `ViewerTheme.colors` keys are optional; override only what you need. Helpers `defaultThemeColors`, `defaultRadius`, `themeToCssVars`, `defaultCssVars`, `ViewerThemeProvider`, and `useViewerTheme` are exported for advanced use. See the [full docs](https://christophervr.github.io/pptx-viewer/) for the complete token list.
246
+ All `ViewerTheme.colors` keys are optional; override only what you need. Helpers `defaultThemeColors`, `defaultRadius`, `themeToCssVars`, `defaultCssVars`, `ViewerThemeProvider`, and `useViewerTheme` are exported for advanced use. See the [full docs](https://christophervr.github.io/ooxml/pptx/) for the complete token list.
247
247
 
248
- Two ready-made presets ship with the package: `vermilionLightTheme` (warm paper canvas) and `vermilionDarkTheme` (dimmed presenter room), the same vermilion brand look as the [documentation site](https://christophervr.github.io/pptx-viewer/):
248
+ Two ready-made presets ship with the package: `vermilionLightTheme` (warm paper canvas) and `vermilionDarkTheme` (dimmed presenter room), the same vermilion brand look as the [documentation site](https://christophervr.github.io/ooxml/pptx/):
249
249
 
250
250
  ```tsx
251
251
  import { PowerPointViewer, vermilionLightTheme } from 'pptx-react-viewer';
@@ -257,13 +257,13 @@ The underlying palettes (`vermilionLightColors`, `vermilionDarkColors`) and radi
257
257
 
258
258
  ## Localization (i18n)
259
259
 
260
- UI labels go through [i18next](https://www.i18next.com/) / [react-i18next](https://react.i18next.com/) with dotted keys such as `pptx.statusBar.allSaved`. Initialise an i18next instance and wrap your app in `I18nextProvider` (the demo's `demo/i18n.ts` shows a minimal config, including a `parseMissingKeyHandler` that derives Title Case labels for any key you don't explicitly translate). `pptx-react-viewer/i18n` exports `translationsEn` (the English dictionary), `keyToLabel` (the fallback), and a `TranslationKey` type you can use to type-check a new locale dictionary (`Record<TranslationKey, string>`) at compile time. Add a new language by supplying a resource bundle under its language code. See the [Localization guide](https://christophervr.github.io/pptx-viewer/guide/localization) for full wiring examples and how to contribute a translation upstream; the live demo's language picker is a working reference.
260
+ UI labels go through [i18next](https://www.i18next.com/) / [react-i18next](https://react.i18next.com/) with dotted keys such as `pptx.statusBar.allSaved`. Initialise an i18next instance and wrap your app in `I18nextProvider` (the demo's `demo/i18n.ts` shows a minimal config, including a `parseMissingKeyHandler` that derives Title Case labels for any key you don't explicitly translate). `pptx-react-viewer/i18n` exports `translationsEn` (the English dictionary), `keyToLabel` (the fallback), and a `TranslationKey` type you can use to type-check a new locale dictionary (`Record<TranslationKey, string>`) at compile time. Add a new language by supplying a resource bundle under its language code. See the [Localization guide](https://christophervr.github.io/ooxml/pptx/guide/localization) for full wiring examples and how to contribute a translation upstream; the live demo's language picker is a working reference.
261
261
 
262
262
  ## How it's built
263
263
 
264
- You only need the `<PowerPointViewer>` component; everything else is internal. Behind it, the logic lives in many small, focused React hooks, and the components themselves just draw what those hooks produce. Slides are rendered as ordinary HTML and CSS (charts as inline SVG, tables as real `<table>` elements), which is why text stays sharp, selectable, and accessible. For the full component tree, the rendering pipeline, the animation and transition engine, connector routing, collaboration, and a file-by-file map, see the [full documentation](https://christophervr.github.io/pptx-viewer/).
264
+ You only need the `<PowerPointViewer>` component; everything else is internal. Behind it, the logic lives in many small, focused React hooks, and the components themselves just draw what those hooks produce. Slides are rendered as ordinary HTML and CSS (charts as inline SVG, tables as real `<table>` elements), which is why text stays sharp, selectable, and accessible. For the full component tree, the rendering pipeline, the animation and transition engine, connector routing, collaboration, and a file-by-file map, see the [full documentation](https://christophervr.github.io/ooxml/pptx/).
265
265
 
266
- A small curated set of those hooks is exported from `pptx-react-viewer/viewer` with a stable API; the complete set (80+) is also importable from `pptx-react-viewer/internals` for advanced integrations. The `internals` subpath is **not covered by semver**: prefer the stable root exports. See the [Hooks reference](https://christophervr.github.io/pptx-viewer/react/hooks-reference) for the full list.
266
+ A small curated set of those hooks is exported from `pptx-react-viewer/viewer` with a stable API; the complete set (80+) is also importable from `pptx-react-viewer/internals` for advanced integrations. The `internals` subpath is **not covered by semver**: prefer the stable root exports. See the [Hooks reference](https://christophervr.github.io/ooxml/pptx/react/hooks-reference) for the full list.
267
267
 
268
268
  The bulk of that cross-framework logic (colour/geometry/connector/animation/chart math, slide
269
269
  transitions, and more) actually lives in `pptx-viewer-shared`, an internal package that is
@@ -275,7 +275,7 @@ so you never need `pptx-viewer-shared` yourself.
275
275
 
276
276
  ## Limitations
277
277
 
278
- CSS-based rendering trades a few visual effects for crisp text, accessibility, and DOM interactivity: `backdrop-filter` becomes semi-transparent backgrounds and path gradients approximate as elliptical radials, while `mix-blend-mode` and CSS 3D transforms render natively on screen but flatten in raster export. Text uses fonts available in the browser (embedded fonts are injected when present). Media playback depends on browser codec support. SmartArt is decomposed into editable shapes with a live reflow engine for structural edits. Charts are editable directly on the canvas (hover a mark for its tooltip, click to select, drag it to a new value, double-click the title to rename), except for stacked/percent-stacked, pie, radar, surface and map kinds, which are click-to-select and edited in the inspector data grid. 3D models need the optional Three.js peer. See the [full docs](https://christophervr.github.io/pptx-viewer/) for the complete list.
278
+ CSS-based rendering trades a few visual effects for crisp text, accessibility, and DOM interactivity: `backdrop-filter` becomes semi-transparent backgrounds and path gradients approximate as elliptical radials, while `mix-blend-mode` and CSS 3D transforms render natively on screen but flatten in raster export. Text uses fonts available in the browser (embedded fonts are injected when present). Media playback depends on browser codec support. SmartArt is decomposed into editable shapes with a live reflow engine for structural edits. Charts are editable directly on the canvas (hover a mark for its tooltip, click to select, drag it to a new value, double-click the title to rename), except for stacked/percent-stacked, pie, radar, surface and map kinds, which are click-to-select and edited in the inspector data grid. 3D models need the optional Three.js peer. See the [full docs](https://christophervr.github.io/ooxml/pptx/) for the complete list.
279
279
 
280
280
  ## Reference translations
281
281
 
@@ -288,7 +288,7 @@ import { translationsZhCN } from 'pptx-react-viewer/i18n/zh-CN';
288
288
 
289
289
  The other subpaths are `i18n/fr` (`translationsFr`), `i18n/es`
290
290
  (`translationsEs`), and `i18n/de` (`translationsDe`). See the
291
- [localization guide](https://christophervr.github.io/pptx-viewer/guide/localization)
291
+ [localization guide](https://christophervr.github.io/ooxml/pptx/guide/localization)
292
292
  for registration and runtime switching. Existing English imports are unchanged.
293
293
 
294
294
  ## License
@@ -1,6 +1,6 @@
1
- import { deckIdFromBridge, isAiAvailable, createAiChatSession, extractReadyToolCalls, toolCanvasTarget, createChatHistoryStore, focusTargetChips, isTwoTableFocus, mergeTablesDirective, toRenderableParts, humanizeDiffLine, buildDeckContext, describeToolActivity, summarizeToolArgs, toolLabel } from './chunk-SDSL4ZDQ.mjs';
2
- import { cn } from './chunk-C7SKC34H.mjs';
3
- import './chunk-TJG3I5L4.mjs';
1
+ import { deckIdFromBridge, isAiAvailable, createAiChatSession, extractReadyToolCalls, toolCanvasTarget, createChatHistoryStore, focusTargetChips, isTwoTableFocus, mergeTablesDirective, toRenderableParts, humanizeDiffLine, buildDeckContext, describeToolActivity, summarizeToolArgs, toolLabel } from './chunk-C7SS65W2.mjs';
2
+ import { cn } from './chunk-DC67MV5I.mjs';
3
+ import './chunk-5FEQK3MW.mjs';
4
4
  import './chunk-Q4HRYUEP.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 chunkHNUSASYH_js = require('./chunk-HNUSASYH.js');
4
- var chunkMDVRIMCW_js = require('./chunk-MDVRIMCW.js');
5
- require('./chunk-XEESKNA6.js');
3
+ var chunkQTASICXP_js = require('./chunk-QTASICXP.js');
4
+ var chunk7E6EF4GQ_js = require('./chunk-7E6EF4GQ.js');
5
+ require('./chunk-MRJZIBPQ.js');
6
6
  require('./chunk-LKL6DQ55.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 chunkHNUSASYH_js.isAiAvailable();
25
+ const available = await chunkQTASICXP_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 chunkHNUSASYH_js.createAiChatSession(bridge, configRef.current);
33
+ const built = await chunkQTASICXP_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 chunkHNUSASYH_js.buildDeckContext(bridge, { strategy, focus: {} });
90
+ context = await chunkQTASICXP_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 chunkHNUSASYH_js.extractReadyToolCalls(chat.messages)) {
148
+ for (const call of chunkQTASICXP_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?.(chunkHNUSASYH_js.toolCanvasTarget(call.toolName, call.input));
153
+ onToolTargetRef.current?.(chunkQTASICXP_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 chunkHNUSASYH_js.extractReadyToolCalls(next)) {
187
+ for (const call of chunkQTASICXP_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 ?? chunkHNUSASYH_js.createChatHistoryStore(), [input.store]);
229
+ const store = react.useMemo(() => input.store ?? chunkQTASICXP_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: chunkMDVRIMCW_js.cn(
372
+ className: chunk7E6EF4GQ_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 = chunkHNUSASYH_js.focusTargetChips(targets, slides);
396
- const twoTables = chunkHNUSASYH_js.isTwoTableFocus(targets, slides);
395
+ const chips = chunkQTASICXP_js.focusTargetChips(targets, slides);
396
+ const twoTables = chunkQTASICXP_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: chunkMDVRIMCW_js.cn(
403
+ className: chunk7E6EF4GQ_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
- chunkHNUSASYH_js.mergeTablesDirective(
419
+ chunkQTASICXP_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: chunkMDVRIMCW_js.cn(
440
+ className: chunk7E6EF4GQ_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: chunkMDVRIMCW_js.cn(
519
+ className: chunk7E6EF4GQ_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 = chunkHNUSASYH_js.describeToolActivity(part.toolName, part.input, running ? "present" : "past");
674
+ const activity = chunkQTASICXP_js.describeToolActivity(part.toolName, part.input, running ? "present" : "past");
675
675
  const Icon = ICONS[activity.icon] ?? lu.LuWrench;
676
- const rawSummary = chunkHNUSASYH_js.summarizeToolArgs(part.input);
676
+ const rawSummary = chunkQTASICXP_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: chunkMDVRIMCW_js.cn(
683
+ className: chunk7E6EF4GQ_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: chunkMDVRIMCW_js.cn("truncate", failed ? "text-destructive" : "text-foreground"), children: activity.label }),
689
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: chunk7E6EF4GQ_js.cn("truncate", failed ? "text-destructive" : "text-foreground"), children: activity.label }),
690
690
  /* @__PURE__ */ jsxRuntime.jsxs(
691
691
  "span",
692
692
  {
693
- className: chunkMDVRIMCW_js.cn(
693
+ className: chunk7E6EF4GQ_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
- chunkHNUSASYH_js.toolLabel(part.toolName),
710
+ chunkQTASICXP_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 = chunkHNUSASYH_js.toRenderableParts(message);
733
+ const parts = chunkQTASICXP_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: chunkMDVRIMCW_js.cn(
741
+ className: chunk7E6EF4GQ_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(chunkHNUSASYH_js.humanizeDiffLine);
788
+ const lines = proposal.summary.map(chunkQTASICXP_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(() => chunkHNUSASYH_js.deckIdFromBridge(bridge), [bridge]);
996
+ const deckId = react.useMemo(() => chunkQTASICXP_js.deckIdFromBridge(bridge), [bridge]);
997
997
  return /* @__PURE__ */ jsxRuntime.jsxs(
998
998
  "div",
999
999
  {
Binary file
Binary file
@@ -1,7 +1,7 @@
1
- import { Quaternion, Matrix4, Loader, LoaderUtils, FileLoader, Color, LinearSRGBColorSpace, SpotLight, PointLight, DirectionalLight, MeshBasicMaterial, SRGBColorSpace, MeshPhysicalMaterial, Vector2, Vector3, InstancedMesh, InstancedBufferAttribute, BufferGeometry, Object3D, TextureLoader, ImageBitmapLoader, BufferAttribute, InterleavedBuffer, InterleavedBufferAttribute, LinearMipmapLinearFilter, NearestMipmapLinearFilter, LinearMipmapNearestFilter, NearestMipmapNearestFilter, LinearFilter, NearestFilter, RepeatWrapping, MirroredRepeatWrapping, ClampToEdgeWrapping, PointsMaterial, Material, LineBasicMaterial, MeshStandardMaterial, DoubleSide, PropertyBinding, SkinnedMesh, Mesh, LineSegments, Line, LineLoop, Points, Group, PerspectiveCamera, MathUtils, OrthographicCamera, Skeleton, AnimationClip, Bone, InterpolateDiscrete, InterpolateLinear, ColorManagement, Texture, VectorKeyframeTrack, NumberKeyframeTrack, QuaternionKeyframeTrack, TrianglesDrawMode, TriangleFanDrawMode, TriangleStripDrawMode, FrontSide, Interpolant, Box3, Sphere } from './chunk-6L3VDF2A.mjs';
1
+ import { Quaternion, Matrix4, Loader, LoaderUtils, FileLoader, Color, LinearSRGBColorSpace, SpotLight, PointLight, DirectionalLight, MeshBasicMaterial, SRGBColorSpace, MeshPhysicalMaterial, Vector2, Vector3, InstancedMesh, InstancedBufferAttribute, BufferGeometry, Object3D, TextureLoader, ImageBitmapLoader, BufferAttribute, InterleavedBuffer, InterleavedBufferAttribute, LinearMipmapLinearFilter, NearestMipmapLinearFilter, LinearMipmapNearestFilter, NearestMipmapNearestFilter, LinearFilter, NearestFilter, RepeatWrapping, MirroredRepeatWrapping, ClampToEdgeWrapping, PointsMaterial, Material, LineBasicMaterial, MeshStandardMaterial, DoubleSide, PropertyBinding, SkinnedMesh, Mesh, LineSegments, Line, LineLoop, Points, Group, PerspectiveCamera, MathUtils, OrthographicCamera, Skeleton, AnimationClip, Bone, InterpolateDiscrete, InterpolateLinear, ColorManagement, Texture, VectorKeyframeTrack, NumberKeyframeTrack, QuaternionKeyframeTrack, TrianglesDrawMode, TriangleFanDrawMode, TriangleStripDrawMode, FrontSide, Interpolant, Box3, Sphere } from './chunk-NJYF5KTY.mjs';
2
2
  import './chunk-XGB3TDIC.mjs';
3
3
 
4
- // ../../node_modules/.bun/three@0.186.1/node_modules/three/examples/jsm/utils/BufferGeometryUtils.js
4
+ // ../../../../node_modules/.bun/three@0.186.1/node_modules/three/examples/jsm/utils/BufferGeometryUtils.js
5
5
  function toTrianglesDrawMode(geometry, drawMode) {
6
6
  if (drawMode === TrianglesDrawMode) {
7
7
  console.warn("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Geometry already defined as triangles.");
@@ -56,7 +56,7 @@ function toTrianglesDrawMode(geometry, drawMode) {
56
56
  }
57
57
  }
58
58
 
59
- // ../../node_modules/.bun/three@0.186.1/node_modules/three/examples/jsm/utils/SkeletonUtils.js
59
+ // ../../../../node_modules/.bun/three@0.186.1/node_modules/three/examples/jsm/utils/SkeletonUtils.js
60
60
  function clone(source) {
61
61
  const sourceLookup = /* @__PURE__ */ new Map();
62
62
  const cloneLookup = /* @__PURE__ */ new Map();
@@ -86,7 +86,7 @@ function parallelTraverse(a, b, callback) {
86
86
  }
87
87
  }
88
88
 
89
- // ../../node_modules/.bun/three@0.186.1/node_modules/three/examples/jsm/loaders/GLTFLoader.js
89
+ // ../../../../node_modules/.bun/three@0.186.1/node_modules/three/examples/jsm/loaders/GLTFLoader.js
90
90
  var GLTFLoader = class extends Loader {
91
91
  /**
92
92
  * Constructs a new glTF loader.
Binary file
Binary file