pptx-react-viewer 4.2.0 → 4.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.
Files changed (136) hide show
  1. package/CHANGELOG.md +138 -0
  2. package/dist/{AiChatPanel-SEIRQ3XP.mjs → AiChatPanel-QJHUDIWT.mjs} +4 -4
  3. package/dist/AiChatPanel-QJHUDIWT.mjs.br +0 -0
  4. package/dist/AiChatPanel-QJHUDIWT.mjs.gz +0 -0
  5. package/dist/{AiChatPanel-VVTLQXQ5.js → AiChatPanel-UFMSTNCB.js} +28 -28
  6. package/dist/AiChatPanel-UFMSTNCB.js.br +0 -0
  7. package/dist/AiChatPanel-UFMSTNCB.js.gz +0 -0
  8. package/dist/{Model3DScene-DCTVSK2F.mjs → Model3DScene-3GOC5HUS.mjs} +1 -1
  9. package/dist/Model3DScene-3GOC5HUS.mjs.br +0 -0
  10. package/dist/Model3DScene-3GOC5HUS.mjs.gz +0 -0
  11. package/dist/{Model3DScene-SCWQXMEA.js → Model3DScene-KXNJBAQD.js} +2 -2
  12. package/dist/Model3DScene-KXNJBAQD.js.br +0 -0
  13. package/dist/Model3DScene-KXNJBAQD.js.gz +0 -0
  14. package/dist/{chunk-S65QSO6T.js → chunk-7WWINBGF.js} +17172 -8075
  15. package/dist/chunk-7WWINBGF.js.br +0 -0
  16. package/dist/chunk-7WWINBGF.js.gz +0 -0
  17. package/dist/{chunk-KTSDPBQZ.js → chunk-AI6K5EAE.js} +1270 -1079
  18. package/dist/chunk-AI6K5EAE.js.br +0 -0
  19. package/dist/chunk-AI6K5EAE.js.gz +0 -0
  20. package/dist/{chunk-3WYNGYB6.js → chunk-CSY422LU.js} +5 -5
  21. package/dist/chunk-CSY422LU.js.br +0 -0
  22. package/dist/chunk-CSY422LU.js.gz +0 -0
  23. package/dist/{chunk-VPJOJJ36.mjs → chunk-D3TZOCQP.mjs} +17139 -8067
  24. package/dist/chunk-D3TZOCQP.mjs.br +0 -0
  25. package/dist/chunk-D3TZOCQP.mjs.gz +0 -0
  26. package/dist/{chunk-NXGUR2DO.js → chunk-I4D6JQOI.js} +27 -2
  27. package/dist/chunk-I4D6JQOI.js.br +0 -0
  28. package/dist/chunk-I4D6JQOI.js.gz +0 -0
  29. package/dist/{chunk-PC7H3C5W.mjs → chunk-JQXN6PO7.mjs} +27 -2
  30. package/dist/chunk-JQXN6PO7.mjs.br +0 -0
  31. package/dist/chunk-JQXN6PO7.mjs.gz +0 -0
  32. package/dist/{chunk-ZYIJODUR.mjs → chunk-LUHUYBGW.mjs} +211 -20
  33. package/dist/chunk-LUHUYBGW.mjs.br +0 -0
  34. package/dist/chunk-LUHUYBGW.mjs.gz +0 -0
  35. package/dist/{chunk-5MRNT4V6.js → chunk-OWTHF5N4.js} +209 -187
  36. package/dist/chunk-OWTHF5N4.js.br +0 -0
  37. package/dist/chunk-OWTHF5N4.js.gz +0 -0
  38. package/dist/{chunk-4GTDG2FH.mjs → chunk-WCHKDZP6.mjs} +660 -197
  39. package/dist/chunk-WCHKDZP6.mjs.br +0 -0
  40. package/dist/chunk-WCHKDZP6.mjs.gz +0 -0
  41. package/dist/{chunk-B5YZABYX.mjs → chunk-WNFHFFYE.mjs} +32 -10
  42. package/dist/chunk-WNFHFFYE.mjs.br +0 -0
  43. package/dist/chunk-WNFHFFYE.mjs.gz +0 -0
  44. package/dist/{chunk-L4XBWL7J.mjs → chunk-XMKLY2SE.mjs} +1 -1
  45. package/dist/chunk-XMKLY2SE.mjs.br +0 -0
  46. package/dist/chunk-XMKLY2SE.mjs.gz +0 -0
  47. package/dist/{chunk-P2SBIMYF.js → chunk-YJKR7Z3X.js} +2161 -1698
  48. package/dist/chunk-YJKR7Z3X.js.br +0 -0
  49. package/dist/chunk-YJKR7Z3X.js.gz +0 -0
  50. package/dist/i18n/de.cjs +25 -2
  51. package/dist/i18n/de.cjs.br +0 -0
  52. package/dist/i18n/de.cjs.gz +0 -0
  53. package/dist/i18n/de.mjs +25 -2
  54. package/dist/i18n/de.mjs.br +0 -0
  55. package/dist/i18n/de.mjs.gz +0 -0
  56. package/dist/i18n/es.cjs +25 -2
  57. package/dist/i18n/es.cjs.br +0 -0
  58. package/dist/i18n/es.cjs.gz +0 -0
  59. package/dist/i18n/es.mjs +25 -2
  60. package/dist/i18n/es.mjs.br +0 -0
  61. package/dist/i18n/es.mjs.gz +0 -0
  62. package/dist/i18n/fr.cjs +25 -2
  63. package/dist/i18n/fr.cjs.br +0 -0
  64. package/dist/i18n/fr.cjs.gz +0 -0
  65. package/dist/i18n/fr.mjs +25 -2
  66. package/dist/i18n/fr.mjs.br +0 -0
  67. package/dist/i18n/fr.mjs.gz +0 -0
  68. package/dist/i18n/zh-CN.cjs +25 -2
  69. package/dist/i18n/zh-CN.cjs.br +0 -0
  70. package/dist/i18n/zh-CN.cjs.gz +0 -0
  71. package/dist/i18n/zh-CN.mjs +25 -2
  72. package/dist/i18n/zh-CN.mjs.br +0 -0
  73. package/dist/i18n/zh-CN.mjs.gz +0 -0
  74. package/dist/i18n.js +4 -4
  75. package/dist/i18n.js.br +0 -0
  76. package/dist/i18n.js.gz +0 -0
  77. package/dist/i18n.mjs +1 -1
  78. package/dist/i18n.mjs.br +0 -0
  79. package/dist/i18n.mjs.gz +0 -0
  80. package/dist/index.d.ts +311 -6
  81. package/dist/index.js +49 -49
  82. package/dist/index.js.br +0 -0
  83. package/dist/index.js.gz +0 -0
  84. package/dist/index.mjs +6 -6
  85. package/dist/index.mjs.br +0 -0
  86. package/dist/index.mjs.gz +0 -0
  87. package/dist/internals.d.ts +461 -42
  88. package/dist/internals.js +105 -105
  89. package/dist/internals.js.br +0 -0
  90. package/dist/internals.js.gz +0 -0
  91. package/dist/internals.mjs +4 -4
  92. package/dist/internals.mjs.br +0 -0
  93. package/dist/internals.mjs.gz +0 -0
  94. package/dist/pptx-viewer.css +1 -1
  95. package/dist/pptx-viewer.css.br +0 -0
  96. package/dist/pptx-viewer.css.gz +0 -0
  97. package/dist/viewer/index.d.ts +274 -4
  98. package/dist/viewer/index.js +27 -27
  99. package/dist/viewer/index.js.br +0 -0
  100. package/dist/viewer/index.js.gz +0 -0
  101. package/dist/viewer/index.mjs +6 -6
  102. package/dist/viewer/index.mjs.br +0 -0
  103. package/dist/viewer/index.mjs.gz +0 -0
  104. package/package.json +1 -1
  105. package/dist/AiChatPanel-SEIRQ3XP.mjs.br +0 -0
  106. package/dist/AiChatPanel-SEIRQ3XP.mjs.gz +0 -0
  107. package/dist/AiChatPanel-VVTLQXQ5.js.br +0 -0
  108. package/dist/AiChatPanel-VVTLQXQ5.js.gz +0 -0
  109. package/dist/Model3DScene-DCTVSK2F.mjs.br +0 -0
  110. package/dist/Model3DScene-DCTVSK2F.mjs.gz +0 -0
  111. package/dist/Model3DScene-SCWQXMEA.js.br +0 -0
  112. package/dist/Model3DScene-SCWQXMEA.js.gz +0 -0
  113. package/dist/chunk-3WYNGYB6.js.br +0 -0
  114. package/dist/chunk-3WYNGYB6.js.gz +0 -0
  115. package/dist/chunk-4GTDG2FH.mjs.br +0 -0
  116. package/dist/chunk-4GTDG2FH.mjs.gz +0 -0
  117. package/dist/chunk-5MRNT4V6.js.br +0 -0
  118. package/dist/chunk-5MRNT4V6.js.gz +0 -0
  119. package/dist/chunk-B5YZABYX.mjs.br +0 -0
  120. package/dist/chunk-B5YZABYX.mjs.gz +0 -0
  121. package/dist/chunk-KTSDPBQZ.js.br +0 -0
  122. package/dist/chunk-KTSDPBQZ.js.gz +0 -0
  123. package/dist/chunk-L4XBWL7J.mjs.br +0 -0
  124. package/dist/chunk-L4XBWL7J.mjs.gz +0 -0
  125. package/dist/chunk-NXGUR2DO.js.br +0 -0
  126. package/dist/chunk-NXGUR2DO.js.gz +0 -0
  127. package/dist/chunk-P2SBIMYF.js.br +0 -0
  128. package/dist/chunk-P2SBIMYF.js.gz +0 -0
  129. package/dist/chunk-PC7H3C5W.mjs.br +0 -0
  130. package/dist/chunk-PC7H3C5W.mjs.gz +0 -0
  131. package/dist/chunk-S65QSO6T.js.br +0 -0
  132. package/dist/chunk-S65QSO6T.js.gz +0 -0
  133. package/dist/chunk-VPJOJJ36.mjs.br +0 -0
  134. package/dist/chunk-VPJOJJ36.mjs.gz +0 -0
  135. package/dist/chunk-ZYIJODUR.mjs.br +0 -0
  136. package/dist/chunk-ZYIJODUR.mjs.gz +0 -0
package/CHANGELOG.md CHANGED
@@ -7,6 +7,144 @@ 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.3.0](https://github.com/ChristopherVR/pptx-viewer/releases/tag/pptx-react-viewer@4.3.0) - 2026-09-24
11
+
12
+ ### Features
13
+
14
+ - **shared:** Trace glyph outlines for exact wordart envelope warps (work in progress) (by @ChristopherVR) ([c91f1cf](https://github.com/ChristopherVR/pptx-viewer/commit/c91f1cf2e7c089acf79f706ba49f887179a97499))
15
+ - **core:** Embed round-trip ooxml blobs for rich objects in .ppt export (work in progress) (by @ChristopherVR) ([2f9aea3](https://github.com/ChristopherVR/pptx-viewer/commit/2f9aea35b3887dfb5d3593ecad67a1605889ef00))
16
+ - **core:** Start a per-point diagramml layout engine for smartart (work in progress) (by @ChristopherVR) ([11c956f](https://github.com/ChristopherVR/pptx-viewer/commit/11c956f2c125c1572003129b0d9cd8d2b5ce5f28))
17
+ - **shared:** Add media fullScrn full-slide overlay decision function (by @ChristopherVR) ([8ae8ee1](https://github.com/ChristopherVR/pptx-viewer/commit/8ae8ee150518d89cb5328d98b775eb49983214a2))
18
+ - **core:** Route un-cached SmartArt through the per-point layout engine (by @ChristopherVR) ([e020656](https://github.com/ChristopherVR/pptx-viewer/commit/e020656b042dc9c86efb6588bfe22770870c4280))
19
+ - **core:** Parse InkML per-point T (time) channel into pointTimestamps (by @ChristopherVR) ([af3b954](https://github.com/ChristopherVR/pptx-viewer/commit/af3b9546cec6fc319ab579d035f22fc203de4059))
20
+ - **react:** Drive fullScrn overlay from the shared media-fullscreen trigger (by @ChristopherVR) ([37a9791](https://github.com/ChristopherVR/pptx-viewer/commit/37a9791f9a599000dba57709f631b41eb8c4bace))
21
+ - **core:** Parse zoom return-to-parent and transition duration (work in progress) (by @ChristopherVR) ([5b0c9fb](https://github.com/ChristopherVR/pptx-viewer/commit/5b0c9fbf5bab3b599101b63f7782ebe88411cf79))
22
+ - **core:** Route measurably-better SmartArt layouts through the engine first (by @ChristopherVR) ([59e78c9](https://github.com/ChristopherVR/pptx-viewer/commit/59e78c99c7b9130ca00bb956654cadde2547b575))
23
+ - **core:** Implement the snake algorithm in the SmartArt layout engine (by @ChristopherVR) ([4b27704](https://github.com/ChristopherVR/pptx-viewer/commit/4b27704163ac689f5720de9d0ae1c481eea78fd6))
24
+ - **core:** Implement the cycle algorithm in the SmartArt layout engine (by @ChristopherVR) ([ad971a3](https://github.com/ChristopherVR/pptx-viewer/commit/ad971a3534392a595cb973c0b90609dd3a548921))
25
+ - **shared:** Add PowerPoint editor shortcuts to the shared keymap (by @ChristopherVR) ([9afcb56](https://github.com/ChristopherVR/pptx-viewer/commit/9afcb56d9d71d820d19dfbb78b4c4e7d00cd991e))
26
+ - **shared:** Add a shared PowerPoint font-size ladder stepper (by @ChristopherVR) ([8c86424](https://github.com/ChristopherVR/pptx-viewer/commit/8c864248a3a832996d8b0c0807c47a802d89a776))
27
+ - **react:** Wire PowerPoint editor shortcuts via the shared keymap (by @ChristopherVR) ([978970a](https://github.com/ChristopherVR/pptx-viewer/commit/978970a7ef2cf061ae2553dec84b4f0e14b206a9))
28
+ - **core:** Parse p14:bounceEnd and play a Fly In bounce settle curve (by @ChristopherVR) ([2c44f37](https://github.com/ChristopherVR/pptx-viewer/commit/2c44f372b5a44ca8a9c87d2d86f84c0d1c49720a))
29
+ - **core:** Model onMediaBookmark triggers and fire them on playback (by @ChristopherVR) ([b153932](https://github.com/ChristopherVR/pptx-viewer/commit/b1539323ae4c063abe869f97c310506161973b10))
30
+ - **core:** Implement the pyra algorithm in the SmartArt layout engine (by @ChristopherVR) ([8dfb1d0](https://github.com/ChristopherVR/pptx-viewer/commit/8dfb1d0a58f75c98d6e24b5470dd82db54d0df76))
31
+ - **shared:** Add the 12 p15 preset transitions to the picker catalogue (by @ChristopherVR) ([9d4cd08](https://github.com/ChristopherVR/pptx-viewer/commit/9d4cd083326627015f290f110035594b547b839d))
32
+
33
+ ### Bug Fixes
34
+
35
+ - **core:** Declare every namespace prefix a saved part uses (by @ChristopherVR) ([bd0a7fc](https://github.com/ChristopherVR/pptx-viewer/commit/bd0a7fca02bbbc4ea8d71f5c2b2970411ab6e971))
36
+ - **core:** Keep run-level slide jumps as slide relationships on save (by @ChristopherVR) ([d2f6924](https://github.com/ChristopherVR/pptx-viewer/commit/d2f6924aeee390a40d11579e9ee6a1d8033ecf1a))
37
+ - **core:** Stop showing chart data labels PowerPoint hides (work in progress) (by @ChristopherVR) ([a8de727](https://github.com/ChristopherVR/pptx-viewer/commit/a8de727868334f822a032b5c11370199dafd6020))
38
+ - **core:** Write valid build lists and effect behaviours for animations (work in progress) (by @ChristopherVR) ([09af92c](https://github.com/ChristopherVR/pptx-viewer/commit/09af92c1085764a49b18b7dfca3d71207c46ec91))
39
+ - **shared:** Halve-width bug in clustered bar/column gap sizing (by @ChristopherVR) ([bfd1953](https://github.com/ChristopherVR/pptx-viewer/commit/bfd19533effd6393d802cd8cbd598cd45d420e19))
40
+ - **core:** Prune custom-show/section refs on slide delete without opts (by @ChristopherVR) ([4046345](https://github.com/ChristopherVR/pptx-viewer/commit/40463456981eae2128d5a18dd0d1b34993d50af4))
41
+ - **shared:** Recover per-paragraph rtl lost to the shape-level default (by @ChristopherVR) ([cc046bf](https://github.com/ChristopherVR/pptx-viewer/commit/cc046bffe37c8445bb99de188636eaacbe4b2c9e))
42
+ - **core:** Stop a bulleted paragraph's marker from shadowing its own algn (by @ChristopherVR) ([3a4307b](https://github.com/ChristopherVR/pptx-viewer/commit/3a4307b1c058b38d21c2518726417c6a72f881f2))
43
+ - **shared:** Combo per-series chart types and stray "-0" axis labels (by @ChristopherVR) ([06f2b41](https://github.com/ChristopherVR/pptx-viewer/commit/06f2b4173c1feb849284f67a3711e28ec9288f3e))
44
+ - **core:** Stop dropping empty self-closing image effect elements (by @ChristopherVR) ([2ee225e](https://github.com/ChristopherVR/pptx-viewer/commit/2ee225e43c93c69f7633f214b1c4e175227ebf8a))
45
+ - **core:** Stop untouched SmartArt colours corrupting on save (by @ChristopherVR) ([fc06842](https://github.com/ChristopherVR/pptx-viewer/commit/fc068425b770c251db1701b604e5ff7b81598b03))
46
+ - **shared:** Use sample (not population) variance for stdDev/stdErr error bars (by @ChristopherVR) ([982c16c](https://github.com/ChristopherVR/pptx-viewer/commit/982c16cb583354001e0455c1247a1bfd15154240))
47
+ - **core:** Fix TS18048 possibly-undefined scope in namespace declarations (by @ChristopherVR) ([a55c718](https://github.com/ChristopherVR/pptx-viewer/commit/a55c718d1738feb360caaf4594018b37faedcfe7))
48
+ - **core:** Resolve spcPct paragraph spacing against 1.2x font size (by @ChristopherVR) ([bca61b4](https://github.com/ChristopherVR/pptx-viewer/commit/bca61b44a1fd2d23505e457de53edb30cadb1e6c))
49
+ - **shared:** Render area-typed combo series as filled areas (by @ChristopherVR) ([54aa4be](https://github.com/ChristopherVR/pptx-viewer/commit/54aa4be9d599cf8413780aee7a0b4cf8672076fe))
50
+ - **core:** Reconcile animation write tests with valid build-list output (by @ChristopherVR) ([ef4e294](https://github.com/ChristopherVR/pptx-viewer/commit/ef4e294c64c58a64e00bdf40c6e582ab79977f9c))
51
+ - **core:** Read back .ppt gradient fills and stop dropping pattern fills (by @ChristopherVR) ([42ded86](https://github.com/ChristopherVR/pptx-viewer/commit/42ded865efef2e040771749f528386e485d0bb99))
52
+ - **shared:** Correct washout/lum brightness-contrast formula (by @ChristopherVR) ([dd28449](https://github.com/ChristopherVR/pptx-viewer/commit/dd2844911ea0c620e749683740580cd33fc10620))
53
+ - **shared:** Decouple metal bevel specular elevation from diffuse (by @ChristopherVR) ([981ef88](https://github.com/ChristopherVR/pptx-viewer/commit/981ef880aa529e759220c828ed7bf7fcd1a8e6de))
54
+ - **shared:** Drive ink replay timing from real InkML timestamps (by @ChristopherVR) ([ab67076](https://github.com/ChristopherVR/pptx-viewer/commit/ab67076f8e794aa4a5fbdece16f5d41a809660da))
55
+ - **shared:** Derive the WordArt can-preset glyph-spacing law from COM (by @ChristopherVR) ([440356d](https://github.com/ChristopherVR/pptx-viewer/commit/440356d62d17fae40ccf0394110161589b6d5e1e))
56
+ - **core:** Resolve a:tblBg fillRef against the theme format scheme (by @ChristopherVR) ([0174572](https://github.com/ChristopherVR/pptx-viewer/commit/01745725a8506b79b5dd812bd0ed46e2ecfd39ce))
57
+ - **core:** Resolve legacy VML-only OLE preview images (by @ChristopherVR) ([98ae67c](https://github.com/ChristopherVR/pptx-viewer/commit/98ae67cbbd3383e529894bd6ea0e93461488f5f4))
58
+ - **react:** Apply highlighter mix-blend-mode per stroke, not per element (by @ChristopherVR) ([21d6d1e](https://github.com/ChristopherVR/pptx-viewer/commit/21d6d1e89b5c1dacd83d66d5f998f4ff7fd2b5ac))
59
+ - **shared:** Render the table style tblBg background beneath noFill layers (by @ChristopherVR) ([9e4f1e7](https://github.com/ChristopherVR/pptx-viewer/commit/9e4f1e7aea07a487b3052dad1d5628357bdfef46))
60
+ - **shared:** Scale tiled picture fills from the image's native size (work in progress) (by @ChristopherVR) ([92375c4](https://github.com/ChristopherVR/pptx-viewer/commit/92375c470c9c3995f48afc2f22871ffa9609c76c))
61
+ - **core:** Size table cell text from the master other-text style (work in progress) (by @ChristopherVR) ([481c564](https://github.com/ChristopherVR/pptx-viewer/commit/481c5645a5a0e3f930899217308177bea36a5bfa))
62
+ - **core:** Update the OLE in-place-editing compatibility warning (by @ChristopherVR) ([9dd216e](https://github.com/ChristopherVR/pptx-viewer/commit/9dd216edc58e29358e187f62c8ad742d523e578a))
63
+ - **core:** Stop the SmartArt engine dropping hideGeom item-role shapes (by @ChristopherVR) ([9c8c2dc](https://github.com/ChristopherVR/pptx-viewer/commit/9c8c2dce96e7fc1f6faf7ef813deb9095a15ba6b))
64
+ - **core:** Preserve untouched equation XML on save (by @ChristopherVR) ([640bd17](https://github.com/ChristopherVR/pptx-viewer/commit/640bd176246ef43dc510d301017da71d7b5b44ae))
65
+ - **core:** Keep a soft line break from becoming a paragraph break (by @ChristopherVR) ([fbdb209](https://github.com/ChristopherVR/pptx-viewer/commit/fbdb2094f61eadd60fd50656a61d13081d923c07))
66
+ - **core:** Stop reformatting and mutating untouched comment timestamps (by @ChristopherVR) ([bfc92de](https://github.com/ChristopherVR/pptx-viewer/commit/bfc92de9fff54052b9f71f1a72e1a5c4eb83d536))
67
+ - **core:** Write PowerPoint's real behaviour tree for entrance/exit presets (by @ChristopherVR) ([d510300](https://github.com/ChristopherVR/pptx-viewer/commit/d510300729453c1344232efa1cb786790aeeeeae))
68
+ - **core:** Write PowerPoint's real behaviour tree for emphasis presets (by @ChristopherVR) ([0662453](https://github.com/ChristopherVR/pptx-viewer/commit/0662453b747fb4d6099ccdf75531c296b39c055a))
69
+ - **shared:** Render real dates for datetime fields, not the field type (by @ChristopherVR) ([f3653c2](https://github.com/ChristopherVR/pptx-viewer/commit/f3653c2665b0675ad4a50bfee5dc2e8eae7ba3af))
70
+ - **shared:** Apply theme per-script fonts over a run's cascaded font (by @ChristopherVR) ([0a00208](https://github.com/ChristopherVR/pptx-viewer/commit/0a00208cc553eb91b2f96292b1690fdb252f743d))
71
+ - **shared:** Keep gradient/pattern text fills continuous, not per-word (by @ChristopherVR) ([cf05400](https://github.com/ChristopherVR/pptx-viewer/commit/cf054000044540c233e49e6aaae590ff059f15f9))
72
+ - **core:** Resolve buBlip picture-bullet images after slide parsing (by @ChristopherVR) ([beb20b5](https://github.com/ChristopherVR/pptx-viewer/commit/beb20b59eaa3ec93d7f8c164d5fea58bd32aaceb))
73
+ - **shared:** Apply brightness scaled by contrast in a:lum luminance (by @ChristopherVR) ([e55b28a](https://github.com/ChristopherVR/pptx-viewer/commit/e55b28a2042b506562f8edb9759210f2f15a8097))
74
+ - **core:** Parse and render table-style band fill alpha (by @ChristopherVR) ([69f124a](https://github.com/ChristopherVR/pptx-viewer/commit/69f124a84fb962b346718c75dac99f7708a30c06))
75
+ - **shared:** Stop clipping a table whose rows auto-grow past its frame (by @ChristopherVR) ([ad4ebb2](https://github.com/ChristopherVR/pptx-viewer/commit/ad4ebb2e91bd9c4c4adfe5c2bcc6fc9aa1aa3d9c))
76
+ - **core,shared:** Settle table-style fill alpha on one unit (by @ChristopherVR) ([afa50de](https://github.com/ChristopherVR/pptx-viewer/commit/afa50de2a7e5f314fed908a196244c886e67641a))
77
+ - **shared:** Stop a "repeat until next click" loop on the next click (by @ChristopherVR) ([c92d667](https://github.com/ChristopherVR/pptx-viewer/commit/c92d66751c94388a0aac9d0dd172fe880db89d54))
78
+ - **shared:** Honour presetSubtype for Blinds, Checkerboard, Wheel, Random Bars (by @ChristopherVR) ([000efbe](https://github.com/ChristopherVR/pptx-viewer/commit/000efbea966863276d6275ac3ca68ccae3b5e6f9))
79
+ - **shared:** Draw stock HLC/OHLC candles per PowerPoint semantics (by @ChristopherVR) ([7ecb42b](https://github.com/ChristopherVR/pptx-viewer/commit/7ecb42b628b32622f98780f6e18b9e9881bbf68a))
80
+ - **shared:** Correct trendline math, formatting and legend (by @ChristopherVR) ([91cc3c8](https://github.com/ChristopherVR/pptx-viewer/commit/91cc3c8a4c2008726f03f598984133882736f643))
81
+ - **shared:** Scale a scatter/bubble chart's X axis like Excel (by @ChristopherVR) ([16a3e4d](https://github.com/ChristopherVR/pptx-viewer/commit/16a3e4df35b97e2983e4ee394257a280a50b4bf9))
82
+ - **shared,core:** Map animation preset 30 to Float, not Spinner (by @ChristopherVR) ([e98152e](https://github.com/ChristopherVR/pptx-viewer/commit/e98152eee7a756ec205ee370525baec146f1dedb))
83
+ - **core:** Read the pyramid composite ctrX/w fill idiom as a fraction (by @ChristopherVR) ([9cf9fd9](https://github.com/ChristopherVR/pptx-viewer/commit/9cf9fd9aad6f856862fa431236d3697f42f87886))
84
+ - **core:** Stop pinning inherited bodyPr onto untouched shapes on save (by @ChristopherVR) ([7f35589](https://github.com/ChristopherVR/pptx-viewer/commit/7f35589094588355579da4b21c2e2ff654eaf847))
85
+ - **core:** Stop pinning master bullets and dropping bullet inherit markers (by @ChristopherVR) ([c406fa9](https://github.com/ChristopherVR/pptx-viewer/commit/c406fa986723ba69b5c29006fa509c90ee7cbbdd))
86
+ - **core:** Stop flattening master text-style aliases on every save (by @ChristopherVR) ([1cdd778](https://github.com/ChristopherVR/pptx-viewer/commit/1cdd778ec42288d548b442a89e5b3bcd4cfcec0b))
87
+ - **core:** Mirror the master/layout p:bgRef guard onto slide rewrite (by @ChristopherVR) ([670d106](https://github.com/ChristopherVR/pptx-viewer/commit/670d10694a18089a383084dbc00127f5c03d78d4))
88
+ - **shared:** Correct CSS mapping for vert/vert270/wordArt vertical text (by @ChristopherVR) ([fce308c](https://github.com/ChristopherVR/pptx-viewer/commit/fce308c093640f49adb05efb4e9aa6bb9f2cb1cd))
89
+ - **shared:** Honour numCol column-fill, @anchor and @rtlCol (by @ChristopherVR) ([f380f53](https://github.com/ChristopherVR/pptx-viewer/commit/f380f531f976c3769db27d45181c9aff1173e6e3))
90
+ - **shared:** Distribute the last line and single lines for algn="dist" (by @ChristopherVR) ([730ced1](https://github.com/ChristopherVR/pptx-viewer/commit/730ced1fff583a222f89d8ee28f775aa5eb2ff6e))
91
+ - **shared:** Size a paragraph's line-height strut on its smallest run (by @ChristopherVR) ([940137d](https://github.com/ChristopherVR/pptx-viewer/commit/940137d6cc16d468c8fcaeb154c97eb69384e6ca))
92
+ - **shared:** Centre anchorCtr as one shared box, not per-paragraph (by @ChristopherVR) ([5982d91](https://github.com/ChristopherVR/pptx-viewer/commit/5982d917abb062676596ac6976b7df9b70b26222))
93
+ - **core,shared:** Stop empty auto-numbered paragraphs consuming a number and marR being dropped (by @ChristopherVR) ([b163cad](https://github.com/ChristopherVR/pptx-viewer/commit/b163cad85630772903e01954d05987c9e6dbaa5d))
94
+ - **core:** Stretch SVG picture fills instead of squashing srcRect crops (by @ChristopherVR) ([096794f](https://github.com/ChristopherVR/pptx-viewer/commit/096794fbca013f1a1cc5432c8dec82ccc0f9a419))
95
+ - **shared:** Play exit preset 30 (Float Out) with the existing fade-out approximation (by @ChristopherVR) ([c128d23](https://github.com/ChristopherVR/pptx-viewer/commit/c128d230d2ab28bb63f3d7f15e688199721291f9))
96
+ - **angular,core,shared:** Finish View > Normal and zoom field wiring after rebase (by @ChristopherVR) ([df6bddf](https://github.com/ChristopherVR/pptx-viewer/commit/df6bddf25bcde10b0153ffb3f0bd33491b065291))
97
+
98
+ ### Documentation
99
+
100
+ - **core:** Restate the SmartArt interpreter gate with measured numbers (by @ChristopherVR) ([8d706b9](https://github.com/ChristopherVR/pptx-viewer/commit/8d706b99802292414adc9a9da663d9320b08bf81))
101
+
102
+ ### Testing
103
+
104
+ - **core:** Re-anchor coverage evidence to the renamed build-list tests (by @ChristopherVR) ([a1b26e5](https://github.com/ChristopherVR/pptx-viewer/commit/a1b26e592d7059e2bcf9384f97ec37b031338778))
105
+ - **core:** Cover attribute-less grayscl parsing in image colour effects (by @ChristopherVR) ([5588bec](https://github.com/ChristopherVR/pptx-viewer/commit/5588bec9a354bc54360c6f352ddb4fe8a5cb2ee1))
106
+ - **core:** Register the new table-row-autogrow.pptx fixture (by @ChristopherVR) ([e1cebe9](https://github.com/ChristopherVR/pptx-viewer/commit/e1cebe93462cf4e6e351824c931a80fdda3480f4))
107
+ - **core:** Cover the notes master save path for text-less anchor loss (by @ChristopherVR) ([8bed413](https://github.com/ChristopherVR/pptx-viewer/commit/8bed413605f9408ab28864659ca5e81da035c0e0))
108
+ - **core:** Add extractOwnBackgroundRefNode to mocked loader params (by @ChristopherVR) ([8056d5a](https://github.com/ChristopherVR/pptx-viewer/commit/8056d5a7a19e4aa198e1726cfce01719bfe67473))
109
+
110
+ ### Dependencies
111
+
112
+ - **deps:** Update emf-converter to 3.1.0 (by @ChristopherVR) ([5eac42f](https://github.com/ChristopherVR/pptx-viewer/commit/5eac42f20a2d783574ab5f40640238c0e42bf744))
113
+ - **deps:** Update emf-converter to 3.2.0 (by @ChristopherVR) ([bc37b25](https://github.com/ChristopherVR/pptx-viewer/commit/bc37b256dd8c0b93e03c451144562c6e466c25c9))
114
+ - **deps:** Update emf-converter to 3.3.0 (by @ChristopherVR) ([9c83a17](https://github.com/ChristopherVR/pptx-viewer/commit/9c83a17478fbc634e2da9c8cdcbadc956a8dd2eb))
115
+
116
+ ## [4.2.0](https://github.com/ChristopherVR/pptx-viewer/releases/tag/pptx-react-viewer@4.2.0) - 2026-09-24
117
+
118
+ ### Features
119
+
120
+ - **shared:** Add pptx-three-view host with one shared WebGL context (by @ChristopherVR) ([aaaf21d](https://github.com/ChristopherVR/pptx-viewer/commit/aaaf21d56e5baad79f9e7327029811e95c55d781))
121
+ - **shared:** Wire chart-events, view-spec, and export snapshot for pptx-three-view (by @ChristopherVR) ([089738a](https://github.com/ChristopherVR/pptx-viewer/commit/089738a19e443bc08c3c7576b81f28bef236ec0c))
122
+ - **core:** Parse 3D scene/extrusion for cached SmartArt drawing shapes (by @ChristopherVR) ([e80b086](https://github.com/ChristopherVR/pptx-viewer/commit/e80b086ada646f9786510e43f7e11f705eebe77c))
123
+ - **shared:** Add pure chart-3d projection + flat-shading resolvers (by @ChristopherVR) ([117cfc5](https://github.com/ChristopherVR/pptx-viewer/commit/117cfc5d4e355394565a8ca935c6d970a460cc1a))
124
+ - **shared:** Build a real Chart3DSpec for bar3D (clustered/stacked) (by @ChristopherVR) ([7df9a11](https://github.com/ChristopherVR/pptx-viewer/commit/7df9a1137e5b75333dcb376147af04c0dcb6082d))
125
+ - **shared:** Add the 3D chart's SVG chrome overlay renderer (by @ChristopherVR) ([635aea0](https://github.com/ChristopherVR/pptx-viewer/commit/635aea0e896d4fb5c2592627d62147a37ff54313))
126
+ - **shared:** Render flat SmartArt quick styles from the cached drawing (by @ChristopherVR) ([bb89b9b](https://github.com/ChristopherVR/pptx-viewer/commit/bb89b9bddd6b3f696143164665f9539257cc057c))
127
+ - **react:** Replace per-kind 3D chart/SmartArt wrappers with <pptx-three-view> (by @ChristopherVR) ([7abc7f3](https://github.com/ChristopherVR/pptx-viewer/commit/7abc7f326223b064bc902933bdeaa8aa17802175))
128
+ - **shared:** Implement mountChart3DView for oblique bar3D boxes (by @ChristopherVR) ([4cbb870](https://github.com/ChristopherVR/pptx-viewer/commit/4cbb8700cb579510177591cd0b16697ecdf6c2ab))
129
+ - **shared:** Host every 3D chart kind in pptx-three-view (by @claude) ([d8a3019](https://github.com/ChristopherVR/pptx-viewer/commit/d8a3019259327557b331bf9ff456909573eda552))
130
+ - **vue:** Render 3D charts and SmartArt through <pptx-three-view> (by @claude) ([5a35348](https://github.com/ChristopherVR/pptx-viewer/commit/5a35348748e78b49c4e5150843b3bd2797bae0d7))
131
+ - **shared:** Use web components for search, select, and checkbox controls ([#352](https://github.com/ChristopherVR/pptx-viewer/issues/352)) (by @yunfeizhu) ([e09b47a](https://github.com/ChristopherVR/pptx-viewer/commit/e09b47a6e7c94e170d4fe9c87774d11619da776d))
132
+
133
+ ### Bug Fixes
134
+
135
+ - **shared:** Draw PowerPoint's auto title for a c:title without text (by @claude) ([dd3c6f0](https://github.com/ChristopherVR/pptx-viewer/commit/dd3c6f0165a6d60305ac0e93ec6548707d351ee5))
136
+ - **shared:** Keep surfaceChart3D covering 2D surface charts (by @claude) ([b208414](https://github.com/ChristopherVR/pptx-viewer/commit/b2084147636006d0791d3dc43e98ed1a52d00a74))
137
+
138
+ ### Refactor
139
+
140
+ - **shared:** Move the extracted chart DOM renderer into shared (by @ChristopherVR) ([0d850d4](https://github.com/ChristopherVR/pptx-viewer/commit/0d850d4015b30bf2d7f92ca8bfd093839d18c5dd))
141
+ - **shared:** Remove the pre-element SmartArt scene runtime (by @claude) ([a2bd6c1](https://github.com/ChristopherVR/pptx-viewer/commit/a2bd6c18beba4ad8e3769a71e04f3cb08fee3d99))
142
+
143
+ ### Testing
144
+
145
+ - **shared:** Cover the three-view host, controller and sizing (by @ChristopherVR) ([ad42c24](https://github.com/ChristopherVR/pptx-viewer/commit/ad42c248a07e7f297a5e47076c325bbd456417b6))
146
+ - **react:** Give the surface 3D gating fixture a c:view3D (by @ChristopherVR) ([f559b0d](https://github.com/ChristopherVR/pptx-viewer/commit/f559b0decbf7761b4bf22a736ff2e775571b2bfa))
147
+
10
148
  ## [4.1.6](https://github.com/ChristopherVR/pptx-viewer/releases/tag/pptx-react-viewer@4.1.6) - 2026-09-23
11
149
 
12
150
  ### Bug Fixes
@@ -1,7 +1,7 @@
1
- import { deckIdFromBridge, isAiAvailable, createAiChatSession, extractReadyToolCalls, toolCanvasTarget, createChatHistoryStore, focusTargetChips, isTwoTableFocus, mergeTablesDirective, toRenderableParts, humanizeDiffLine, buildDeckContext, describeToolActivity, summarizeToolArgs, toolLabel } from './chunk-L4XBWL7J.mjs';
2
- import { cn } from './chunk-B5YZABYX.mjs';
3
- import './chunk-VPJOJJ36.mjs';
4
- import './chunk-PC7H3C5W.mjs';
1
+ import { deckIdFromBridge, isAiAvailable, createAiChatSession, extractReadyToolCalls, toolCanvasTarget, createChatHistoryStore, focusTargetChips, isTwoTableFocus, mergeTablesDirective, toRenderableParts, humanizeDiffLine, buildDeckContext, describeToolActivity, summarizeToolArgs, toolLabel } from './chunk-XMKLY2SE.mjs';
2
+ import { cn } from './chunk-WNFHFFYE.mjs';
3
+ import './chunk-D3TZOCQP.mjs';
4
+ import './chunk-JQXN6PO7.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';
Binary file
Binary file
@@ -1,9 +1,9 @@
1
1
  'use strict';
2
2
 
3
- var chunk3WYNGYB6_js = require('./chunk-3WYNGYB6.js');
4
- var chunk5MRNT4V6_js = require('./chunk-5MRNT4V6.js');
5
- require('./chunk-S65QSO6T.js');
6
- require('./chunk-NXGUR2DO.js');
3
+ var chunkCSY422LU_js = require('./chunk-CSY422LU.js');
4
+ var chunkOWTHF5N4_js = require('./chunk-OWTHF5N4.js');
5
+ require('./chunk-7WWINBGF.js');
6
+ require('./chunk-I4D6JQOI.js');
7
7
  require('./chunk-4VNS5WPM.js');
8
8
  var react = require('react');
9
9
  var reactI18next = require('react-i18next');
@@ -22,7 +22,7 @@ function useAiChat(bridge, config) {
22
22
  setInitError(void 0);
23
23
  void (async () => {
24
24
  try {
25
- const available = await chunk3WYNGYB6_js.isAiAvailable();
25
+ const available = await chunkCSY422LU_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 chunk3WYNGYB6_js.createAiChatSession(bridge, configRef.current);
33
+ const built = await chunkCSY422LU_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 chunk3WYNGYB6_js.buildDeckContext(bridge, { strategy, focus: {} });
90
+ context = await chunkCSY422LU_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 chunk3WYNGYB6_js.extractReadyToolCalls(chat.messages)) {
148
+ for (const call of chunkCSY422LU_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?.(chunk3WYNGYB6_js.toolCanvasTarget(call.toolName, call.input));
153
+ onToolTargetRef.current?.(chunkCSY422LU_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 chunk3WYNGYB6_js.extractReadyToolCalls(next)) {
187
+ for (const call of chunkCSY422LU_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 ?? chunk3WYNGYB6_js.createChatHistoryStore(), [input.store]);
229
+ const store = react.useMemo(() => input.store ?? chunkCSY422LU_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: chunk5MRNT4V6_js.cn(
372
+ className: chunkOWTHF5N4_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 = chunk3WYNGYB6_js.focusTargetChips(targets, slides);
396
- const twoTables = chunk3WYNGYB6_js.isTwoTableFocus(targets, slides);
395
+ const chips = chunkCSY422LU_js.focusTargetChips(targets, slides);
396
+ const twoTables = chunkCSY422LU_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: chunk5MRNT4V6_js.cn(
403
+ className: chunkOWTHF5N4_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
- chunk3WYNGYB6_js.mergeTablesDirective(
419
+ chunkCSY422LU_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: chunk5MRNT4V6_js.cn(
440
+ className: chunkOWTHF5N4_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: chunk5MRNT4V6_js.cn(
519
+ className: chunkOWTHF5N4_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 = chunk3WYNGYB6_js.describeToolActivity(part.toolName, part.input, running ? "present" : "past");
674
+ const activity = chunkCSY422LU_js.describeToolActivity(part.toolName, part.input, running ? "present" : "past");
675
675
  const Icon = ICONS[activity.icon] ?? lu.LuWrench;
676
- const rawSummary = chunk3WYNGYB6_js.summarizeToolArgs(part.input);
676
+ const rawSummary = chunkCSY422LU_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: chunk5MRNT4V6_js.cn(
683
+ className: chunkOWTHF5N4_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: chunk5MRNT4V6_js.cn("truncate", failed ? "text-destructive" : "text-foreground"), children: activity.label }),
689
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: chunkOWTHF5N4_js.cn("truncate", failed ? "text-destructive" : "text-foreground"), children: activity.label }),
690
690
  /* @__PURE__ */ jsxRuntime.jsxs(
691
691
  "span",
692
692
  {
693
- className: chunk5MRNT4V6_js.cn(
693
+ className: chunkOWTHF5N4_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
- chunk3WYNGYB6_js.toolLabel(part.toolName),
710
+ chunkCSY422LU_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 = chunk3WYNGYB6_js.toRenderableParts(message);
733
+ const parts = chunkCSY422LU_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: chunk5MRNT4V6_js.cn(
741
+ className: chunkOWTHF5N4_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(chunk3WYNGYB6_js.humanizeDiffLine);
788
+ const lines = proposal.summary.map(chunkCSY422LU_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(() => chunk3WYNGYB6_js.deckIdFromBridge(bridge), [bridge]);
996
+ const deckId = react.useMemo(() => chunkCSY422LU_js.deckIdFromBridge(bridge), [bridge]);
997
997
  return /* @__PURE__ */ jsxRuntime.jsxs(
998
998
  "div",
999
999
  {
Binary file
Binary file
@@ -1,4 +1,4 @@
1
- import { mountModel3D } from './chunk-VPJOJJ36.mjs';
1
+ import { mountModel3D } from './chunk-D3TZOCQP.mjs';
2
2
  import './chunk-XGB3TDIC.mjs';
3
3
  import { useRef, useEffect } from 'react';
4
4
  import { jsx } from 'react/jsx-runtime';
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunkS65QSO6T_js = require('./chunk-S65QSO6T.js');
3
+ var chunk7WWINBGF_js = require('./chunk-7WWINBGF.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 chunkS65QSO6T_js.mountModel3D(container, modelUrl, { width, height, interactive }).then((handle) => {
17
+ void chunk7WWINBGF_js.mountModel3D(container, modelUrl, { width, height, interactive }).then((handle) => {
18
18
  if (disposed) {
19
19
  handle.dispose();
20
20
  } else {
Binary file
Binary file