@arbidocs/blocks 0.5.119 → 0.5.121

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 (463) hide show
  1. package/dist/ClippingMediaViewer-B6WG7Q64.cjs +156 -0
  2. package/dist/ClippingMediaViewer-B6WG7Q64.cjs.map +1 -0
  3. package/dist/ClippingPdfViewer-6GCVTV3V.cjs +79 -0
  4. package/dist/ClippingPdfViewer-6GCVTV3V.cjs.map +1 -0
  5. package/dist/{ConnectedCallDock-WER7R222.cjs → ConnectedCallDock-DC5V5OUJ.cjs} +25 -23
  6. package/dist/ConnectedCallDock-DC5V5OUJ.cjs.map +1 -0
  7. package/dist/{ConnectedCallRoom-T7OBQTYP.cjs → ConnectedCallRoom-FQLXWTFB.cjs} +18 -16
  8. package/dist/{ConnectedCallRoom-T7OBQTYP.cjs.map → ConnectedCallRoom-FQLXWTFB.cjs.map} +1 -1
  9. package/dist/{ConnectedNativeDocxComparison-546ILGLW.cjs → ConnectedNativeDocxComparison-4Q5S7VLD.cjs} +17 -17
  10. package/dist/{ConnectedNativeDocxComparison-546ILGLW.cjs.map → ConnectedNativeDocxComparison-4Q5S7VLD.cjs.map} +1 -1
  11. package/dist/ConnectedPresentation-4HLDZDWV.cjs +183 -0
  12. package/dist/ConnectedPresentation-4HLDZDWV.cjs.map +1 -0
  13. package/dist/{ConnectedProductionSetDialog-LHB4VQWC.cjs → ConnectedProductionSetDialog-4EAY6KAZ.cjs} +3 -3
  14. package/dist/{ConnectedProductionSetDialog-LHB4VQWC.cjs.map → ConnectedProductionSetDialog-4EAY6KAZ.cjs.map} +1 -1
  15. package/dist/ConnectedSlidesTab-7QDE2CZD.cjs +234 -0
  16. package/dist/ConnectedSlidesTab-7QDE2CZD.cjs.map +1 -0
  17. package/dist/{ConnectedStreamedWordArtifact-S2ZFZLZQ.cjs → ConnectedStreamedWordArtifact-FFOQJBOI.cjs} +17 -17
  18. package/dist/{ConnectedStreamedWordArtifact-S2ZFZLZQ.cjs.map → ConnectedStreamedWordArtifact-FFOQJBOI.cjs.map} +1 -1
  19. package/dist/{DocumentReviewCard-ZSBZBGFK.cjs → DocumentReviewCard-SNWVEZ7S.cjs} +19 -18
  20. package/dist/DocumentReviewCard-SNWVEZ7S.cjs.map +1 -0
  21. package/dist/{FilesViewerDialog-6UKR5WEF.cjs → FilesViewerDialog-IZI63FOV.cjs} +54 -47
  22. package/dist/FilesViewerDialog-IZI63FOV.cjs.map +1 -0
  23. package/dist/{GridViewImpl-ZMJJWTOM.cjs → GridViewImpl-LTYET77Q.cjs} +3 -3
  24. package/dist/GridViewImpl-LTYET77Q.cjs.map +1 -0
  25. package/dist/{WorkspaceTableView-J3C6VH4T.cjs → WorkspaceTableView-TEIRB6VJ.cjs} +11 -10
  26. package/dist/WorkspaceTableView-TEIRB6VJ.cjs.map +1 -0
  27. package/dist/agents/index.cjs +297 -297
  28. package/dist/agents/tasks/ConversationListView.js +10 -2
  29. package/dist/agents/tasks/ConversationListView.js.map +2 -2
  30. package/dist/agents/tasks/TaskTable.js +5 -4
  31. package/dist/agents/tasks/TaskTable.js.map +2 -2
  32. package/dist/agents/tasks/WorkflowsTable.js +4 -5
  33. package/dist/agents/tasks/WorkflowsTable.js.map +2 -2
  34. package/dist/agents/tasks/taskColumns.js +1 -1
  35. package/dist/agents/tasks/taskColumns.js.map +1 -1
  36. package/dist/agents/tasks/taskTableLabels.js +1 -1
  37. package/dist/agents/tasks/taskTableLabels.js.map +1 -1
  38. package/dist/agents/tasks/workflowTableLabels.js +1 -1
  39. package/dist/agents/tasks/workflowTableLabels.js.map +1 -1
  40. package/dist/{ai-IM4A23YT.cjs → ai-KBYNRNZ6.cjs} +28 -26
  41. package/dist/ai-KBYNRNZ6.cjs.map +1 -0
  42. package/dist/calls/connected/CallControls.d.ts +2 -0
  43. package/dist/calls/connected/CallControls.js +71 -9
  44. package/dist/calls/connected/CallControls.js.map +2 -2
  45. package/dist/calls/connected/ShareDocumentDialog.d.ts +14 -0
  46. package/dist/calls/connected/ShareDocumentDialog.js +77 -0
  47. package/dist/calls/connected/ShareDocumentDialog.js.map +7 -0
  48. package/dist/calls/index.cjs +121 -121
  49. package/dist/chat/index.cjs +9 -8
  50. package/dist/{chunk-T23UTIRI.cjs → chunk-2PZT3J34.cjs} +6 -6
  51. package/dist/{chunk-T23UTIRI.cjs.map → chunk-2PZT3J34.cjs.map} +1 -1
  52. package/dist/{chunk-SGYSDABK.cjs → chunk-2W5E62EY.cjs} +6 -6
  53. package/dist/{chunk-SGYSDABK.cjs.map → chunk-2W5E62EY.cjs.map} +1 -1
  54. package/dist/{chunk-TDO5UWXF.cjs → chunk-3SCNXNHI.cjs} +5 -5
  55. package/dist/{chunk-TDO5UWXF.cjs.map → chunk-3SCNXNHI.cjs.map} +1 -1
  56. package/dist/{chunk-KTQOGT2L.cjs → chunk-474GPLCM.cjs} +7 -7
  57. package/dist/{chunk-KTQOGT2L.cjs.map → chunk-474GPLCM.cjs.map} +1 -1
  58. package/dist/{chunk-TP5PGWIO.cjs → chunk-4IOYQLKG.cjs} +3 -3
  59. package/dist/{chunk-TP5PGWIO.cjs.map → chunk-4IOYQLKG.cjs.map} +1 -1
  60. package/dist/{chunk-NY3YUCOW.cjs → chunk-4NPCDS2X.cjs} +3 -3
  61. package/dist/{chunk-NY3YUCOW.cjs.map → chunk-4NPCDS2X.cjs.map} +1 -1
  62. package/dist/{chunk-CPG7II4E.cjs → chunk-4RBQ44RY.cjs} +28 -28
  63. package/dist/chunk-4RBQ44RY.cjs.map +1 -0
  64. package/dist/{chunk-BQ5RIWWT.cjs → chunk-4VZZWYEC.cjs} +3 -3
  65. package/dist/{chunk-BQ5RIWWT.cjs.map → chunk-4VZZWYEC.cjs.map} +1 -1
  66. package/dist/{chunk-Y24V6HPR.cjs → chunk-52KGMAO5.cjs} +15 -15
  67. package/dist/{chunk-Y24V6HPR.cjs.map → chunk-52KGMAO5.cjs.map} +1 -1
  68. package/dist/{chunk-HB2O4THB.cjs → chunk-5534FYXP.cjs} +4 -4
  69. package/dist/{chunk-HB2O4THB.cjs.map → chunk-5534FYXP.cjs.map} +1 -1
  70. package/dist/chunk-5GCCUXMT.cjs +63 -0
  71. package/dist/chunk-5GCCUXMT.cjs.map +1 -0
  72. package/dist/chunk-5LTIZ44D.cjs +95 -0
  73. package/dist/chunk-5LTIZ44D.cjs.map +1 -0
  74. package/dist/{chunk-YGXOKB5Z.cjs → chunk-734NPQNR.cjs} +4 -4
  75. package/dist/{chunk-YGXOKB5Z.cjs.map → chunk-734NPQNR.cjs.map} +1 -1
  76. package/dist/{chunk-SB4M3ITT.cjs → chunk-7VUJGHMY.cjs} +444 -100
  77. package/dist/chunk-7VUJGHMY.cjs.map +1 -0
  78. package/dist/chunk-AFQTQC7A.cjs +35 -0
  79. package/dist/chunk-AFQTQC7A.cjs.map +1 -0
  80. package/dist/{chunk-XKVPSOKP.cjs → chunk-AY6EZSZB.cjs} +4 -4
  81. package/dist/{chunk-XKVPSOKP.cjs.map → chunk-AY6EZSZB.cjs.map} +1 -1
  82. package/dist/{chunk-TT4IF52H.cjs → chunk-BVAT4EVC.cjs} +40 -41
  83. package/dist/chunk-BVAT4EVC.cjs.map +1 -0
  84. package/dist/{chunk-VGCTYTEW.cjs → chunk-C2OICDMI.cjs} +10 -10
  85. package/dist/{chunk-VGCTYTEW.cjs.map → chunk-C2OICDMI.cjs.map} +1 -1
  86. package/dist/{chunk-CPR6EHG7.cjs → chunk-DR2AH7JL.cjs} +179 -55
  87. package/dist/chunk-DR2AH7JL.cjs.map +1 -0
  88. package/dist/{chunk-NJCK6V6U.cjs → chunk-EATIFPKP.cjs} +4 -60
  89. package/dist/chunk-EATIFPKP.cjs.map +1 -0
  90. package/dist/{chunk-B3LZITVF.cjs → chunk-EHP6OH5D.cjs} +11 -451
  91. package/dist/chunk-EHP6OH5D.cjs.map +1 -0
  92. package/dist/{chunk-DDIW4HLU.cjs → chunk-ENGL7P3I.cjs} +46 -37
  93. package/dist/chunk-ENGL7P3I.cjs.map +1 -0
  94. package/dist/{chunk-QHOHDNBU.cjs → chunk-FKFQCK3C.cjs} +4 -4
  95. package/dist/{chunk-QHOHDNBU.cjs.map → chunk-FKFQCK3C.cjs.map} +1 -1
  96. package/dist/{chunk-6UTKM5AB.cjs → chunk-GKVE5JGB.cjs} +76 -76
  97. package/dist/chunk-GKVE5JGB.cjs.map +1 -0
  98. package/dist/{chunk-B2HNNG25.cjs → chunk-GPX5VC57.cjs} +50 -50
  99. package/dist/{chunk-B2HNNG25.cjs.map → chunk-GPX5VC57.cjs.map} +1 -1
  100. package/dist/{chunk-WAV762GP.cjs → chunk-GQXPNIRE.cjs} +6 -6
  101. package/dist/{chunk-WAV762GP.cjs.map → chunk-GQXPNIRE.cjs.map} +1 -1
  102. package/dist/chunk-GX2EBMJW.cjs +133 -0
  103. package/dist/chunk-GX2EBMJW.cjs.map +1 -0
  104. package/dist/{chunk-7OPOPYV6.cjs → chunk-H5OLHP2U.cjs} +3 -3
  105. package/dist/{chunk-7OPOPYV6.cjs.map → chunk-H5OLHP2U.cjs.map} +1 -1
  106. package/dist/chunk-HYUKPHCT.cjs +66 -0
  107. package/dist/chunk-HYUKPHCT.cjs.map +1 -0
  108. package/dist/{chunk-NNUK5ZM7.cjs → chunk-JQLWKNJO.cjs} +29 -27
  109. package/dist/chunk-JQLWKNJO.cjs.map +1 -0
  110. package/dist/{chunk-OEREKAAP.cjs → chunk-JZEYHDWJ.cjs} +75 -75
  111. package/dist/{chunk-OEREKAAP.cjs.map → chunk-JZEYHDWJ.cjs.map} +1 -1
  112. package/dist/{chunk-PGJYD67F.cjs → chunk-KNGZZC4O.cjs} +7 -6
  113. package/dist/chunk-KNGZZC4O.cjs.map +1 -0
  114. package/dist/{chunk-NIE3N6OM.cjs → chunk-KP5AITQ4.cjs} +10 -10
  115. package/dist/{chunk-NIE3N6OM.cjs.map → chunk-KP5AITQ4.cjs.map} +1 -1
  116. package/dist/{chunk-YYPZOEED.cjs → chunk-LHWOKOMP.cjs} +23 -2
  117. package/dist/chunk-LHWOKOMP.cjs.map +1 -0
  118. package/dist/{chunk-57NHXEU2.cjs → chunk-MXBXZXXQ.cjs} +5 -5
  119. package/dist/{chunk-57NHXEU2.cjs.map → chunk-MXBXZXXQ.cjs.map} +1 -1
  120. package/dist/{chunk-WXUU3COI.cjs → chunk-MZ2KZXNU.cjs} +3 -3
  121. package/dist/{chunk-WXUU3COI.cjs.map → chunk-MZ2KZXNU.cjs.map} +1 -1
  122. package/dist/chunk-NAJN32MF.cjs +154 -0
  123. package/dist/chunk-NAJN32MF.cjs.map +1 -0
  124. package/dist/{chunk-557MJ4IH.cjs → chunk-NLOETJCB.cjs} +17 -154
  125. package/dist/chunk-NLOETJCB.cjs.map +1 -0
  126. package/dist/{chunk-4XJEHKVZ.cjs → chunk-PIYYBPHH.cjs} +4 -4
  127. package/dist/{chunk-4XJEHKVZ.cjs.map → chunk-PIYYBPHH.cjs.map} +1 -1
  128. package/dist/chunk-Q3XJUXID.cjs +4774 -0
  129. package/dist/chunk-Q3XJUXID.cjs.map +1 -0
  130. package/dist/{chunk-325GVZE6.cjs → chunk-Q6DQGGP4.cjs} +3 -3
  131. package/dist/{chunk-325GVZE6.cjs.map → chunk-Q6DQGGP4.cjs.map} +1 -1
  132. package/dist/chunk-QFXILJMJ.cjs +458 -0
  133. package/dist/chunk-QFXILJMJ.cjs.map +1 -0
  134. package/dist/{chunk-R7CJEIA5.cjs → chunk-RYVZDFVO.cjs} +8 -9
  135. package/dist/chunk-RYVZDFVO.cjs.map +1 -0
  136. package/dist/{chunk-VLCY46K6.cjs → chunk-TG2GM7WJ.cjs} +4 -3
  137. package/dist/chunk-TG2GM7WJ.cjs.map +1 -0
  138. package/dist/{chunk-EOG6OT5I.cjs → chunk-TXP2N3DC.cjs} +4 -4
  139. package/dist/{chunk-EOG6OT5I.cjs.map → chunk-TXP2N3DC.cjs.map} +1 -1
  140. package/dist/{chunk-KXIRVKCJ.cjs → chunk-UUENH4BJ.cjs} +3 -3
  141. package/dist/{chunk-KXIRVKCJ.cjs.map → chunk-UUENH4BJ.cjs.map} +1 -1
  142. package/dist/chunk-VJ5ZLRBD.cjs +27 -0
  143. package/dist/chunk-VJ5ZLRBD.cjs.map +1 -0
  144. package/dist/{chunk-P77YTTJ3.cjs → chunk-W6B3RYTX.cjs} +4 -4
  145. package/dist/{chunk-P77YTTJ3.cjs.map → chunk-W6B3RYTX.cjs.map} +1 -1
  146. package/dist/chunk-WOOOMTTA.cjs +19 -0
  147. package/dist/chunk-WOOOMTTA.cjs.map +1 -0
  148. package/dist/{chunk-ZPPMAL5P.cjs → chunk-WQMR3O2D.cjs} +6 -10
  149. package/dist/chunk-WQMR3O2D.cjs.map +1 -0
  150. package/dist/{chunk-CJYWHUZR.cjs → chunk-XCKHOXRP.cjs} +4 -4
  151. package/dist/{chunk-CJYWHUZR.cjs.map → chunk-XCKHOXRP.cjs.map} +1 -1
  152. package/dist/{chunk-6WMMZLEV.cjs → chunk-XJEXFEWG.cjs} +2 -27
  153. package/dist/chunk-XJEXFEWG.cjs.map +1 -0
  154. package/dist/chunk-XK4TVJKD.cjs +73 -0
  155. package/dist/chunk-XK4TVJKD.cjs.map +1 -0
  156. package/dist/chunk-XTR26TNE.cjs +1358 -0
  157. package/dist/chunk-XTR26TNE.cjs.map +1 -0
  158. package/dist/{chunk-E7TE2WVT.cjs → chunk-ZVEW3JBT.cjs} +3 -3
  159. package/dist/{chunk-E7TE2WVT.cjs.map → chunk-ZVEW3JBT.cjs.map} +1 -1
  160. package/dist/collaboration/index.cjs +73 -73
  161. package/dist/collaboration/sharing/ShareControl.js +10 -2
  162. package/dist/collaboration/sharing/ShareControl.js.map +2 -2
  163. package/dist/components/SharedCell.d.ts +2 -4
  164. package/dist/components/SharedCell.js +4 -8
  165. package/dist/components/SharedCell.js.map +2 -2
  166. package/dist/components/ZoomSlider.d.ts +25 -0
  167. package/dist/components/ZoomSlider.js +59 -0
  168. package/dist/components/ZoomSlider.js.map +7 -0
  169. package/dist/connect/docx.cjs +20 -20
  170. package/dist/connect/index.cjs +1210 -1264
  171. package/dist/connect/index.cjs.map +1 -1
  172. package/dist/connect/viewer.cjs +42 -36
  173. package/dist/connection/ai.d.ts +1 -1
  174. package/dist/connection/facts/factPageColumns.js +3 -9
  175. package/dist/connection/facts/factPageColumns.js.map +2 -2
  176. package/dist/connection/files/ConnectedNewFileMenu.d.ts +2 -1
  177. package/dist/connection/files/ConnectedNewFileMenu.js +9 -3
  178. package/dist/connection/files/ConnectedNewFileMenu.js.map +2 -2
  179. package/dist/connection/files/explorer/ConnectedFilesExplorer.js +1 -1
  180. package/dist/connection/files/explorer/ConnectedFilesExplorer.js.map +2 -2
  181. package/dist/connection/files/explorer/FileTiles.js +1 -1
  182. package/dist/connection/files/explorer/FileTiles.js.map +2 -2
  183. package/dist/connection/files/fields/documentField.js +1 -1
  184. package/dist/connection/files/fields/documentField.js.map +2 -2
  185. package/dist/connection/files/grid/cells.js +1 -3
  186. package/dist/connection/files/grid/cells.js.map +2 -2
  187. package/dist/connection/files/grid/documentColumns.js +4 -3
  188. package/dist/connection/files/grid/documentColumns.js.map +2 -2
  189. package/dist/connection/files/page/DocumentsFilterBarActions.js +17 -28
  190. package/dist/connection/files/page/DocumentsFilterBarActions.js.map +2 -2
  191. package/dist/connection/mail/useMailboxDefaults.js +1 -1
  192. package/dist/connection/mail/useMailboxDefaults.js.map +2 -2
  193. package/dist/connection/panels/useSessionPanelMode.js +3 -2
  194. package/dist/connection/panels/useSessionPanelMode.js.map +2 -2
  195. package/dist/connection/presentation/ClippingMediaViewer.d.ts +12 -0
  196. package/dist/connection/presentation/ClippingMediaViewer.js +153 -0
  197. package/dist/connection/presentation/ClippingMediaViewer.js.map +7 -0
  198. package/dist/connection/presentation/ClippingPdfViewer.d.ts +22 -0
  199. package/dist/connection/presentation/ClippingPdfViewer.js +75 -0
  200. package/dist/connection/presentation/ClippingPdfViewer.js.map +7 -0
  201. package/dist/connection/presentation/ConnectedPresentation.d.ts +12 -0
  202. package/dist/connection/presentation/ConnectedPresentation.js +100 -0
  203. package/dist/connection/presentation/ConnectedPresentation.js.map +7 -0
  204. package/dist/connection/presentation/ConnectedSlidesTab.d.ts +20 -0
  205. package/dist/connection/presentation/ConnectedSlidesTab.js +220 -0
  206. package/dist/connection/presentation/ConnectedSlidesTab.js.map +7 -0
  207. package/dist/connection/presentation/CropClipDialog.d.ts +11 -0
  208. package/dist/connection/presentation/CropClipDialog.js +86 -0
  209. package/dist/connection/presentation/CropClipDialog.js.map +7 -0
  210. package/dist/connection/presentation/GenerateTile.d.ts +4 -0
  211. package/dist/connection/presentation/GenerateTile.js +24 -0
  212. package/dist/connection/presentation/GenerateTile.js.map +7 -0
  213. package/dist/connection/presentation/LabelColumnMenu.d.ts +8 -0
  214. package/dist/connection/presentation/LabelColumnMenu.js +38 -0
  215. package/dist/connection/presentation/LabelColumnMenu.js.map +7 -0
  216. package/dist/connection/presentation/PresentationDialogs.d.ts +39 -0
  217. package/dist/connection/presentation/PresentationDialogs.js +295 -0
  218. package/dist/connection/presentation/PresentationDialogs.js.map +7 -0
  219. package/dist/connection/presentation/PresentationFileCard.d.ts +10 -0
  220. package/dist/connection/presentation/PresentationFileCard.js +35 -0
  221. package/dist/connection/presentation/PresentationFileCard.js.map +7 -0
  222. package/dist/connection/presentation/PresentationPill.d.ts +8 -0
  223. package/dist/connection/presentation/PresentationPill.js +44 -0
  224. package/dist/connection/presentation/PresentationPill.js.map +7 -0
  225. package/dist/connection/presentation/PresentationSlot.d.ts +7 -0
  226. package/dist/connection/presentation/PresentationSlot.js +35 -0
  227. package/dist/connection/presentation/PresentationSlot.js.map +7 -0
  228. package/dist/connection/presentation/requests.d.ts +16 -0
  229. package/dist/connection/presentation/requests.js +20 -0
  230. package/dist/connection/presentation/requests.js.map +7 -0
  231. package/dist/connection/presentation/useImageGeneration.d.ts +11 -0
  232. package/dist/connection/presentation/useImageGeneration.js +66 -0
  233. package/dist/connection/presentation/useImageGeneration.js.map +7 -0
  234. package/dist/connection/presentation/useLabelColumns.d.ts +15 -0
  235. package/dist/connection/presentation/useLabelColumns.js +33 -0
  236. package/dist/connection/presentation/useLabelColumns.js.map +7 -0
  237. package/dist/connection/presentation/usePresentationController.d.ts +15 -0
  238. package/dist/connection/presentation/usePresentationController.js +118 -0
  239. package/dist/connection/presentation/usePresentationController.js.map +7 -0
  240. package/dist/connection/presentation/usePresentationFiles.d.ts +44 -0
  241. package/dist/connection/presentation/usePresentationFiles.js +307 -0
  242. package/dist/connection/presentation/usePresentationFiles.js.map +7 -0
  243. package/dist/connection/presentation/useViewerClipping.d.ts +14 -0
  244. package/dist/connection/presentation/useViewerClipping.js +18 -0
  245. package/dist/connection/presentation/useViewerClipping.js.map +7 -0
  246. package/dist/connection/sharing/WorkspaceMembersList.d.ts +4 -0
  247. package/dist/connection/sharing/WorkspaceMembersList.js +34 -0
  248. package/dist/connection/sharing/WorkspaceMembersList.js.map +7 -0
  249. package/dist/connection/shell/ConnectedAppShell.js +9 -1
  250. package/dist/connection/shell/ConnectedAppShell.js.map +2 -2
  251. package/dist/connection/viewer/CleanViewControl.d.ts +8 -0
  252. package/dist/connection/viewer/CleanViewControl.js +76 -0
  253. package/dist/connection/viewer/CleanViewControl.js.map +7 -0
  254. package/dist/connection/viewer/ConnectedDocumentViewer.js +31 -31
  255. package/dist/connection/viewer/ConnectedDocumentViewer.js.map +2 -2
  256. package/dist/connection/viewer/ViewerCropModal.d.ts +5 -0
  257. package/dist/connection/viewer/ViewerCropModal.js +22 -0
  258. package/dist/connection/viewer/ViewerCropModal.js.map +7 -0
  259. package/dist/connection/viewer/ViewerPdfPane.d.ts +3 -1
  260. package/dist/connection/viewer/ViewerPdfPane.js +57 -2
  261. package/dist/connection/viewer/ViewerPdfPane.js.map +2 -2
  262. package/dist/connection/viewer/drafts.js +6 -4
  263. package/dist/connection/viewer/drafts.js.map +2 -2
  264. package/dist/connection/viewer/pdf/PdfPassageHighlights.d.ts +12 -0
  265. package/dist/connection/viewer/pdf/PdfPassageHighlights.js +36 -0
  266. package/dist/connection/viewer/pdf/PdfPassageHighlights.js.map +7 -0
  267. package/dist/connection/viewer/pdf/passageHighlights.d.ts +26 -0
  268. package/dist/connection/viewer/pdf/passageHighlights.js +40 -0
  269. package/dist/connection/viewer/pdf/passageHighlights.js.map +7 -0
  270. package/dist/connection/viewer/pdf/usePdfPassageHighlights.d.ts +9 -0
  271. package/dist/connection/viewer/pdf/usePdfPassageHighlights.js +47 -0
  272. package/dist/connection/viewer/pdf/usePdfPassageHighlights.js.map +7 -0
  273. package/dist/connection/viewer/shareDocument.d.ts +11 -0
  274. package/dist/connection/viewer/shareDocument.js +11 -0
  275. package/dist/connection/viewer/shareDocument.js.map +7 -0
  276. package/dist/connection/viewer/slidesTabChunk.d.ts +2 -0
  277. package/dist/connection/viewer/slidesTabChunk.js +9 -0
  278. package/dist/connection/viewer/slidesTabChunk.js.map +7 -0
  279. package/dist/connection/viewer/useCleanView.d.ts +14 -0
  280. package/dist/connection/viewer/useCleanView.js +29 -0
  281. package/dist/connection/viewer/useCleanView.js.map +7 -0
  282. package/dist/connection/viewer/useViewedDocument.d.ts +1 -0
  283. package/dist/connection/viewer/useViewedDocument.js +9 -1
  284. package/dist/connection/viewer/useViewedDocument.js.map +2 -2
  285. package/dist/connection/viewer/useViewerTabs.js +18 -4
  286. package/dist/connection/viewer/useViewerTabs.js.map +2 -2
  287. package/dist/connection/workflows/ConnectedWorkflowStart.d.ts +14 -2
  288. package/dist/connection/workflows/ConnectedWorkflowStart.js +5 -2
  289. package/dist/connection/workflows/ConnectedWorkflowStart.js.map +2 -2
  290. package/dist/connection/workflows/workflowsPageLabels.js +1 -1
  291. package/dist/connection/workflows/workflowsPageLabels.js.map +1 -1
  292. package/dist/dashboards/index.cjs +1 -1
  293. package/dist/databases/index.cjs +49 -49
  294. package/dist/document-tools/DocumentToolButtons.d.ts +2 -0
  295. package/dist/document-tools/DocumentToolButtons.js +22 -1
  296. package/dist/document-tools/DocumentToolButtons.js.map +2 -2
  297. package/dist/document-tools/index.cjs +16 -12
  298. package/dist/document-tools/index.d.ts +1 -1
  299. package/dist/document-tools/index.js +2 -0
  300. package/dist/document-tools/index.js.map +2 -2
  301. package/dist/embed/index.cjs +43 -41
  302. package/dist/facts/factColumns.js +3 -3
  303. package/dist/facts/factColumns.js.map +1 -1
  304. package/dist/facts/index.cjs +42 -42
  305. package/dist/files/GridViewImpl.js +1 -1
  306. package/dist/files/GridViewImpl.js.map +2 -2
  307. package/dist/files/HtmlViewerParts.js +7 -15
  308. package/dist/files/HtmlViewerParts.js.map +2 -2
  309. package/dist/files/ViewerChrome.d.ts +5 -1
  310. package/dist/files/ViewerChrome.js +16 -6
  311. package/dist/files/ViewerChrome.js.map +2 -2
  312. package/dist/files/index.cjs +226 -226
  313. package/dist/files/navigator/DocumentSearchList.js +1 -1
  314. package/dist/files/navigator/DocumentSearchList.js.map +2 -2
  315. package/dist/index.cjs +1668 -1666
  316. package/dist/index.cjs.map +1 -1
  317. package/dist/presentation/BoxActionBar.d.ts +11 -0
  318. package/dist/presentation/BoxActionBar.js +182 -0
  319. package/dist/presentation/BoxActionBar.js.map +7 -0
  320. package/dist/presentation/ClipActionBar.d.ts +26 -0
  321. package/dist/presentation/ClipActionBar.js +103 -0
  322. package/dist/presentation/ClipActionBar.js.map +7 -0
  323. package/dist/presentation/ClipCaptureOverlay.d.ts +14 -0
  324. package/dist/presentation/ClipCaptureOverlay.js +69 -0
  325. package/dist/presentation/ClipCaptureOverlay.js.map +7 -0
  326. package/dist/presentation/ClipImage.d.ts +21 -0
  327. package/dist/presentation/ClipImage.js +119 -0
  328. package/dist/presentation/ClipImage.js.map +7 -0
  329. package/dist/presentation/ClipTray.d.ts +11 -0
  330. package/dist/presentation/ClipTray.js +152 -0
  331. package/dist/presentation/ClipTray.js.map +7 -0
  332. package/dist/presentation/ClipViewControls.d.ts +11 -0
  333. package/dist/presentation/ClipViewControls.js +142 -0
  334. package/dist/presentation/ClipViewControls.js.map +7 -0
  335. package/dist/presentation/DesignMenu.d.ts +8 -0
  336. package/dist/presentation/DesignMenu.js +199 -0
  337. package/dist/presentation/DesignMenu.js.map +7 -0
  338. package/dist/presentation/LayoutMenu.d.ts +17 -0
  339. package/dist/presentation/LayoutMenu.js +122 -0
  340. package/dist/presentation/LayoutMenu.js.map +7 -0
  341. package/dist/presentation/MediaClip.d.ts +15 -0
  342. package/dist/presentation/MediaClip.js +67 -0
  343. package/dist/presentation/MediaClip.js.map +7 -0
  344. package/dist/presentation/Notice.d.ts +6 -0
  345. package/dist/presentation/Notice.js +43 -0
  346. package/dist/presentation/Notice.js.map +7 -0
  347. package/dist/presentation/PresentationStage.d.ts +32 -0
  348. package/dist/presentation/PresentationStage.js +232 -0
  349. package/dist/presentation/PresentationStage.js.map +7 -0
  350. package/dist/presentation/PresenterView.d.ts +16 -0
  351. package/dist/presentation/PresenterView.js +69 -0
  352. package/dist/presentation/PresenterView.js.map +7 -0
  353. package/dist/presentation/SlideDecor.d.ts +25 -0
  354. package/dist/presentation/SlideDecor.js +189 -0
  355. package/dist/presentation/SlideDecor.js.map +7 -0
  356. package/dist/presentation/SlidesEditor.d.ts +25 -0
  357. package/dist/presentation/SlidesEditor.js +359 -0
  358. package/dist/presentation/SlidesEditor.js.map +7 -0
  359. package/dist/presentation/StageBox.d.ts +30 -0
  360. package/dist/presentation/StageBox.js +281 -0
  361. package/dist/presentation/StageBox.js.map +7 -0
  362. package/dist/presentation/StageItem.d.ts +37 -0
  363. package/dist/presentation/StageItem.js +211 -0
  364. package/dist/presentation/StageItem.js.map +7 -0
  365. package/dist/presentation/box-style.d.ts +6 -0
  366. package/dist/presentation/box-style.js +19 -0
  367. package/dist/presentation/box-style.js.map +7 -0
  368. package/dist/presentation/boxes.d.ts +105 -0
  369. package/dist/presentation/boxes.js +103 -0
  370. package/dist/presentation/boxes.js.map +7 -0
  371. package/dist/presentation/draw-boxes.d.ts +8 -0
  372. package/dist/presentation/draw-boxes.js +130 -0
  373. package/dist/presentation/draw-boxes.js.map +7 -0
  374. package/dist/presentation/export-boxes.d.ts +10 -0
  375. package/dist/presentation/export-boxes.js +74 -0
  376. package/dist/presentation/export-boxes.js.map +7 -0
  377. package/dist/presentation/export-pptx.d.ts +16 -0
  378. package/dist/presentation/export-pptx.js +194 -0
  379. package/dist/presentation/export-pptx.js.map +7 -0
  380. package/dist/presentation/import-pptx.d.ts +35 -0
  381. package/dist/presentation/import-pptx.js +659 -0
  382. package/dist/presentation/import-pptx.js.map +7 -0
  383. package/dist/presentation/merge-outside-edits.d.ts +12 -0
  384. package/dist/presentation/merge-outside-edits.js +35 -0
  385. package/dist/presentation/merge-outside-edits.js.map +7 -0
  386. package/dist/presentation/model.d.ts +201 -0
  387. package/dist/presentation/model.js +271 -0
  388. package/dist/presentation/model.js.map +7 -0
  389. package/dist/presentation/panel-id.d.ts +34 -0
  390. package/dist/presentation/panel-id.js +24 -0
  391. package/dist/presentation/panel-id.js.map +7 -0
  392. package/dist/presentation/persistence.d.ts +121 -0
  393. package/dist/presentation/persistence.js +141 -0
  394. package/dist/presentation/persistence.js.map +7 -0
  395. package/dist/presentation/pptx-data.d.ts +22 -0
  396. package/dist/presentation/pptx-data.js +83 -0
  397. package/dist/presentation/pptx-data.js.map +7 -0
  398. package/dist/presentation/pptx-xml.d.ts +90 -0
  399. package/dist/presentation/pptx-xml.js +333 -0
  400. package/dist/presentation/pptx-xml.js.map +7 -0
  401. package/dist/presentation/render-slides.d.ts +58 -0
  402. package/dist/presentation/render-slides.js +309 -0
  403. package/dist/presentation/render-slides.js.map +7 -0
  404. package/dist/presentation/saved-boxes.d.ts +11 -0
  405. package/dist/presentation/saved-boxes.js +80 -0
  406. package/dist/presentation/saved-boxes.js.map +7 -0
  407. package/dist/presentation/slide-layout.d.ts +54 -0
  408. package/dist/presentation/slide-layout.js +117 -0
  409. package/dist/presentation/slide-layout.js.map +7 -0
  410. package/dist/presentation/stage-videos.d.ts +5 -0
  411. package/dist/presentation/stage-videos.js +19 -0
  412. package/dist/presentation/stage-videos.js.map +7 -0
  413. package/dist/presentation/store.d.ts +203 -0
  414. package/dist/presentation/store.js +429 -0
  415. package/dist/presentation/store.js.map +7 -0
  416. package/dist/presentation/theme.d.ts +102 -0
  417. package/dist/presentation/theme.js +276 -0
  418. package/dist/presentation/theme.js.map +7 -0
  419. package/dist/presentation/useClipDrag.d.ts +26 -0
  420. package/dist/presentation/useClipDrag.js +65 -0
  421. package/dist/presentation/useClipDrag.js.map +7 -0
  422. package/dist/presentation/useObjectUrl.d.ts +6 -0
  423. package/dist/presentation/useObjectUrl.js +15 -0
  424. package/dist/presentation/useObjectUrl.js.map +7 -0
  425. package/dist/presentation/usePresenterKeys.d.ts +13 -0
  426. package/dist/presentation/usePresenterKeys.js +62 -0
  427. package/dist/presentation/usePresenterKeys.js.map +7 -0
  428. package/dist/settings/index.cjs +151 -150
  429. package/dist/shell/PanelPortal.js +1 -0
  430. package/dist/shell/PanelPortal.js.map +2 -2
  431. package/dist/shell/index.cjs +112 -110
  432. package/dist/shell/panel-windows.d.ts +2 -0
  433. package/dist/shell/panel-windows.js +7 -2
  434. package/dist/shell/panel-windows.js.map +2 -2
  435. package/dist/studio/index.cjs +28 -26
  436. package/dist/studio/index.cjs.map +1 -1
  437. package/dist/styles.css +1 -1
  438. package/dist/workflow-canvas/index.cjs +58 -57
  439. package/dist/workflow-canvas/index.cjs.map +1 -1
  440. package/node_modules/@arbidocs/coedit/package.json +1 -1
  441. package/package.json +6 -5
  442. package/dist/ConnectedCallDock-WER7R222.cjs.map +0 -1
  443. package/dist/DocumentReviewCard-ZSBZBGFK.cjs.map +0 -1
  444. package/dist/FilesViewerDialog-6UKR5WEF.cjs.map +0 -1
  445. package/dist/GridViewImpl-ZMJJWTOM.cjs.map +0 -1
  446. package/dist/WorkspaceTableView-J3C6VH4T.cjs.map +0 -1
  447. package/dist/ai-IM4A23YT.cjs.map +0 -1
  448. package/dist/chunk-557MJ4IH.cjs.map +0 -1
  449. package/dist/chunk-6UTKM5AB.cjs.map +0 -1
  450. package/dist/chunk-6WMMZLEV.cjs.map +0 -1
  451. package/dist/chunk-B3LZITVF.cjs.map +0 -1
  452. package/dist/chunk-CPG7II4E.cjs.map +0 -1
  453. package/dist/chunk-CPR6EHG7.cjs.map +0 -1
  454. package/dist/chunk-DDIW4HLU.cjs.map +0 -1
  455. package/dist/chunk-NJCK6V6U.cjs.map +0 -1
  456. package/dist/chunk-NNUK5ZM7.cjs.map +0 -1
  457. package/dist/chunk-PGJYD67F.cjs.map +0 -1
  458. package/dist/chunk-R7CJEIA5.cjs.map +0 -1
  459. package/dist/chunk-SB4M3ITT.cjs.map +0 -1
  460. package/dist/chunk-TT4IF52H.cjs.map +0 -1
  461. package/dist/chunk-VLCY46K6.cjs.map +0 -1
  462. package/dist/chunk-YYPZOEED.cjs.map +0 -1
  463. package/dist/chunk-ZPPMAL5P.cjs.map +0 -1
@@ -1,29 +1,33 @@
1
1
  "use client";
2
2
  'use strict';
3
3
 
4
+ var chunk5LTIZ44D_cjs = require('./chunk-5LTIZ44D.cjs');
5
+ var chunkXTR26TNE_cjs = require('./chunk-XTR26TNE.cjs');
4
6
  var chunk4CIVQWAX_cjs = require('./chunk-4CIVQWAX.cjs');
5
7
  var chunkPL7HUTM3_cjs = require('./chunk-PL7HUTM3.cjs');
6
- var chunkYGXOKB5Z_cjs = require('./chunk-YGXOKB5Z.cjs');
7
- var chunkKXIRVKCJ_cjs = require('./chunk-KXIRVKCJ.cjs');
8
- var chunkTT4IF52H_cjs = require('./chunk-TT4IF52H.cjs');
9
- var chunkNNUK5ZM7_cjs = require('./chunk-NNUK5ZM7.cjs');
10
- var chunkVGCTYTEW_cjs = require('./chunk-VGCTYTEW.cjs');
11
- var chunkYYPZOEED_cjs = require('./chunk-YYPZOEED.cjs');
8
+ var chunkVJ5ZLRBD_cjs = require('./chunk-VJ5ZLRBD.cjs');
9
+ var chunk734NPQNR_cjs = require('./chunk-734NPQNR.cjs');
10
+ var chunkUUENH4BJ_cjs = require('./chunk-UUENH4BJ.cjs');
11
+ var chunkBVAT4EVC_cjs = require('./chunk-BVAT4EVC.cjs');
12
+ var chunkJQLWKNJO_cjs = require('./chunk-JQLWKNJO.cjs');
13
+ var chunkC2OICDMI_cjs = require('./chunk-C2OICDMI.cjs');
14
+ var chunkLHWOKOMP_cjs = require('./chunk-LHWOKOMP.cjs');
12
15
  var chunkGNZAH6UI_cjs = require('./chunk-GNZAH6UI.cjs');
13
16
  var chunkJH6JTI76_cjs = require('./chunk-JH6JTI76.cjs');
14
17
  var chunkDTMBAFIL_cjs = require('./chunk-DTMBAFIL.cjs');
15
18
  var chunkMZZ3SBQL_cjs = require('./chunk-MZZ3SBQL.cjs');
16
- var chunkMNIQDXM6_cjs = require('./chunk-MNIQDXM6.cjs');
17
- var chunkE3Y7RI3J_cjs = require('./chunk-E3Y7RI3J.cjs');
18
- var chunkVLCY46K6_cjs = require('./chunk-VLCY46K6.cjs');
19
+ var chunkTG2GM7WJ_cjs = require('./chunk-TG2GM7WJ.cjs');
20
+ var chunkFX3K6LNZ_cjs = require('./chunk-FX3K6LNZ.cjs');
21
+ var chunkIPSHAMO2_cjs = require('./chunk-IPSHAMO2.cjs');
19
22
  var chunkEG7EJFUE_cjs = require('./chunk-EG7EJFUE.cjs');
20
23
  var chunkHQDR43JC_cjs = require('./chunk-HQDR43JC.cjs');
21
24
  var chunkJR2YSBD5_cjs = require('./chunk-JR2YSBD5.cjs');
22
25
  var chunkSJSGSHIT_cjs = require('./chunk-SJSGSHIT.cjs');
23
- var chunkFX3K6LNZ_cjs = require('./chunk-FX3K6LNZ.cjs');
24
- var chunkIPSHAMO2_cjs = require('./chunk-IPSHAMO2.cjs');
25
- var chunkTKHCIHE2_cjs = require('./chunk-TKHCIHE2.cjs');
26
+ var chunkZW6FPIFC_cjs = require('./chunk-ZW6FPIFC.cjs');
26
27
  var chunkLJJJ6CYH_cjs = require('./chunk-LJJJ6CYH.cjs');
28
+ var chunkMNIQDXM6_cjs = require('./chunk-MNIQDXM6.cjs');
29
+ var chunkE3Y7RI3J_cjs = require('./chunk-E3Y7RI3J.cjs');
30
+ var chunkTKHCIHE2_cjs = require('./chunk-TKHCIHE2.cjs');
27
31
  var React = require('react');
28
32
  var lucideReact = require('lucide-react');
29
33
  var react = require('@arbidocs/react');
@@ -43,7 +47,8 @@ var KIND_OPTIONS = [
43
47
  { value: "text", icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.FileText, { className: "w-4 h-4" }), label: "Doc" },
44
48
  { value: "audio", icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Mic, { className: "w-4 h-4" }), label: "Voice" },
45
49
  { value: "video", icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Video, { className: "w-4 h-4" }), label: "Video" },
46
- { value: "photo", icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Camera, { className: "w-4 h-4" }), label: "Photo" }
50
+ { value: "photo", icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Camera, { className: "w-4 h-4" }), label: "Photo" },
51
+ { value: "presentation", icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Presentation, { className: "w-4 h-4" }), label: "Presentation" }
47
52
  ];
48
53
  var useDraft = (documentId) => react.useArbiSessionState((state) => state.draftDocuments[documentId]);
49
54
  function ViewerDraftKind({ documentId }) {
@@ -82,7 +87,8 @@ var TITLE_PLACEHOLDER = {
82
87
  text: "New Doc",
83
88
  audio: "New Audio",
84
89
  photo: "New Photo",
85
- video: "New Video"
90
+ video: "New Video",
91
+ presentation: "New Presentation"
86
92
  };
87
93
  function selectTitleOnFocus(event) {
88
94
  if (event.target instanceof HTMLInputElement) event.target.select();
@@ -125,7 +131,7 @@ function ViewerCaptureDraft({ documentId }) {
125
131
  const { notify } = chunkTKHCIHE2_cjs.useBlocksEnvironment();
126
132
  const upload = react.useUploadDocuments();
127
133
  const { data: userSettings } = react.useUserSettings();
128
- if (!draft || draft.kind === "text") return null;
134
+ if (!draft || draft.kind === "text" || draft.kind === "presentation") return null;
129
135
  const kind = draft.kind;
130
136
  const file = CAPTURE_FILE[kind];
131
137
  const discard = () => {
@@ -194,17 +200,145 @@ function ViewerRelatedDocuments({ document: document2 }) {
194
200
  );
195
201
  if (!related) return null;
196
202
  return /* @__PURE__ */ jsxRuntime.jsx(
197
- chunkTT4IF52H_cjs.RelatedDocumentsCell,
203
+ chunkBVAT4EVC_cjs.RelatedDocumentsCell,
198
204
  {
199
205
  currentDoc: document2,
200
206
  related,
201
207
  viewingDocumentId: viewerOpen ? viewingId : null,
202
208
  onDocumentClick: (id) => session.setViewingDocument({ id, page: null }),
203
- onDelete: (doc) => chunkYGXOKB5Z_cjs.useFilesDialogs.getState().requestDelete(doc),
209
+ onDelete: (doc) => chunk734NPQNR_cjs.useFilesDialogs.getState().requestDelete(doc),
204
210
  onCompare
205
211
  }
206
212
  );
207
213
  }
214
+ function PresentationPill({ compact }) {
215
+ const session = react.useArbiSessionStore();
216
+ const boundTo = chunkXTR26TNE_cjs.usePresentation((s) => s.boundTo);
217
+ const clips = chunkXTR26TNE_cjs.usePresentation((s) => s.clips.length);
218
+ const title = chunkXTR26TNE_cjs.usePresentation((s) => s.title);
219
+ const onIt = react.useArbiSessionState(
220
+ (s) => s.viewingDocument?.id === boundTo && s.documentViewer.tab === "slides"
221
+ );
222
+ if (onIt || boundTo === null && clips === 0) return null;
223
+ const back = () => {
224
+ if (boundTo === null) return chunk5LTIZ44D_cjs.editPresentation(session, { kind: "new" });
225
+ session.setViewingDocument({ id: boundTo, page: null });
226
+ session.setDocumentViewer({ tab: "slides" });
227
+ session.openPanel(react.DOCUMENT_VIEWER_PANEL, "docked");
228
+ };
229
+ return /* @__PURE__ */ jsxRuntime.jsxs(
230
+ ui.Button,
231
+ {
232
+ type: "button",
233
+ variant: "outline",
234
+ size: "sm",
235
+ className: "h-7 max-w-56 gap-1.5 rounded-full px-2.5 text-xs",
236
+ onClick: back,
237
+ title: `Back to the presentation "${title}": ${clips} clip${clips === 1 ? "" : "s"} to arrange`,
238
+ "data-testid": "presentation-pill",
239
+ children: [
240
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Presentation, { className: "size-3.5 shrink-0" }),
241
+ !compact && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "min-w-0 truncate", children: title }),
242
+ clips > 0 && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "rounded-full bg-primary px-1.5 text-[10px] font-semibold leading-4 text-primary-foreground", children: clips })
243
+ ]
244
+ }
245
+ );
246
+ }
247
+ function useViewerClipping(clippable, compact) {
248
+ const [on, setOn] = React.useState(false);
249
+ const stop = React.useCallback(() => setOn(false), []);
250
+ const button = /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
251
+ /* @__PURE__ */ jsxRuntime.jsx(PresentationPill, { compact }),
252
+ clippable && /* @__PURE__ */ jsxRuntime.jsx(chunkLHWOKOMP_cjs.ClipButton, { active: on, compact, onClick: () => setOn(!on) })
253
+ ] });
254
+ return { clipping: on && clippable, stop, button };
255
+ }
256
+ var IDLE_MS = 2e3;
257
+ function CleanViewControl({ onExit }) {
258
+ const [view, setView] = React.useState(null);
259
+ const [shown, setShown] = React.useState(true);
260
+ const ref = React.useCallback((node) => {
261
+ setView(node?.ownerDocument.defaultView ?? null);
262
+ }, []);
263
+ React.useEffect(() => {
264
+ if (!view) return;
265
+ let timer = view.setTimeout(() => setShown(false), IDLE_MS);
266
+ const wake = () => {
267
+ setShown(true);
268
+ view.clearTimeout(timer);
269
+ timer = view.setTimeout(() => setShown(false), IDLE_MS);
270
+ };
271
+ view.addEventListener("pointermove", wake);
272
+ view.addEventListener("keydown", wake);
273
+ return () => {
274
+ view.clearTimeout(timer);
275
+ view.removeEventListener("pointermove", wake);
276
+ view.removeEventListener("keydown", wake);
277
+ };
278
+ }, [view]);
279
+ return /* @__PURE__ */ jsxRuntime.jsxs(
280
+ "div",
281
+ {
282
+ ref,
283
+ className: ui.cn(
284
+ "absolute right-3 top-3 z-20 flex gap-1 rounded-md bg-background/90 p-1 shadow-md transition-opacity",
285
+ shown ? "opacity-100" : "pointer-events-none opacity-0"
286
+ ),
287
+ "data-testid": "viewer-clean-control",
288
+ children: [
289
+ /* @__PURE__ */ jsxRuntime.jsxs(
290
+ ui.Button,
291
+ {
292
+ type: "button",
293
+ size: "sm",
294
+ variant: "ghost",
295
+ className: "h-7",
296
+ onClick: () => view && chunk5LTIZ44D_cjs.toggleFullscreen(view),
297
+ children: [
298
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Maximize, { className: "size-3.5" }),
299
+ "Full screen"
300
+ ]
301
+ }
302
+ ),
303
+ /* @__PURE__ */ jsxRuntime.jsxs(
304
+ ui.Button,
305
+ {
306
+ type: "button",
307
+ size: "sm",
308
+ variant: "ghost",
309
+ className: "h-7",
310
+ onClick: onExit,
311
+ "data-testid": "viewer-clean-exit",
312
+ children: [
313
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.PanelTop, { className: "size-3.5" }),
314
+ "Show controls"
315
+ ]
316
+ }
317
+ )
318
+ ]
319
+ }
320
+ );
321
+ }
322
+ function useCleanView() {
323
+ const session = react.useArbiSessionStore();
324
+ const detached = react.useArbiSessionState((s) => s.documentViewer.detached);
325
+ const presenting = react.useArbiSessionState((s) => s.documentViewer.presenting);
326
+ const on = detached && presenting;
327
+ const wasDetached = React.useRef(detached);
328
+ React.useEffect(() => {
329
+ if (wasDetached.current && !detached && presenting) {
330
+ session.setDocumentViewer({ presenting: false });
331
+ }
332
+ wasDetached.current = detached;
333
+ }, [detached, presenting, session]);
334
+ return {
335
+ on,
336
+ frame: {
337
+ bare: on,
338
+ overlay: on ? /* @__PURE__ */ jsxRuntime.jsx(CleanViewControl, { onExit: () => session.setDocumentViewer({ presenting: false }) }) : null
339
+ }
340
+ };
341
+ }
208
342
  var isTranslationDraft = (doc) => !!doc?.derived_from?.some((d) => d.role === "translation") && !doc.derived_from.some((d) => d.role === "final");
209
343
  function FinaliseTranslationButton({
210
344
  document: document2,
@@ -299,6 +433,21 @@ function useImageCrop(documentId, fileName, imageBlob, workspaceId) {
299
433
  );
300
434
  return { cropImageUrl, handleOpenCrop, closeCrop, handleCropComplete };
301
435
  }
436
+ function ViewerCropModal({ crop }) {
437
+ return /* @__PURE__ */ jsxRuntime.jsx(
438
+ react.ImageCropModal,
439
+ {
440
+ open: crop.cropImageUrl !== null,
441
+ image: crop.cropImageUrl,
442
+ title: "Crop image",
443
+ saveLabel: "Save as a copy",
444
+ aspectOptions: react.DEFAULT_ASPECT_OPTIONS,
445
+ output: { mimeType: "image/png" },
446
+ onComplete: crop.handleCropComplete,
447
+ onCancel: crop.closeCrop
448
+ }
449
+ );
450
+ }
302
451
  var DOCX_EXTENSIONS = /* @__PURE__ */ new Set([".docx", ".doc"]);
303
452
  var XLSX_EXTENSIONS = /* @__PURE__ */ new Set([".xlsx", ".xls"]);
304
453
  var EMAIL_EXTENSIONS = /* @__PURE__ */ new Set([".eml", ".msg"]);
@@ -327,7 +476,7 @@ function useViewedDocument(documentId) {
327
476
  const documentData = record?.external_id === documentId ? record : void 0;
328
477
  const { data: tags } = chunkHQDR43JC_cjs.useConnectedTags();
329
478
  const labelSummaries = React.useMemo(
330
- () => chunkNNUK5ZM7_cjs.summariseDocTags(documentData?.doctags ?? [], tags.filter(chunkNNUK5ZM7_cjs.isDocumentLabel)),
479
+ () => chunkJQLWKNJO_cjs.summariseDocTags(documentData?.doctags ?? [], tags.filter(chunkJQLWKNJO_cjs.isDocumentLabel)),
331
480
  [documentData, tags]
332
481
  );
333
482
  const fileName = documentData?.file_name;
@@ -338,6 +487,7 @@ function useViewedDocument(documentId) {
338
487
  const isAudio = isWebmFile && webmHasVideoTrack === false ? true : ui.isAudioFile(fileName);
339
488
  const isBlobArtifact = streamingDoc?.mode === "image" || documentData?.wp_type === "artifact" && (isImage || isVideo || isAudio);
340
489
  const isArtifact = (!!streamingDoc || isTextDraft || documentData?.wp_type === "artifact" || isMarkdown) && !isBlobArtifact;
490
+ const isPresentation = draftDoc?.kind === "presentation" || ui.isPresentationFileName(documentData?.file_name, documentData?.folder);
341
491
  const liveKind = isArtifact ? artifacts.artifactKindFromMode(streamingDoc?.mode ?? void 0) ?? artifacts.artifactKindFromFileName(fileName) : null;
342
492
  const savedDocumentId = shell.savedDocumentIdFor({
343
493
  documentId,
@@ -379,6 +529,7 @@ function useViewedDocument(documentId) {
379
529
  isBlobArtifact,
380
530
  savedDocumentId,
381
531
  isArtifact,
532
+ isPresentation,
382
533
  liveKind,
383
534
  liveSource,
384
535
  isDocx: DOCX_EXTENSIONS.has(fileExtension(fileName)),
@@ -450,6 +601,7 @@ function useViewerTabs(doc, isCompact, hasHistory = false) {
450
601
  const {
451
602
  documentData,
452
603
  isArtifact,
604
+ isPresentation,
453
605
  isDraft,
454
606
  isStreaming,
455
607
  isDocx,
@@ -476,7 +628,11 @@ function useViewerTabs(doc, isCompact, hasHistory = false) {
476
628
  const hasDocumentData = !!documentData;
477
629
  const documentKey = documentData?.external_id;
478
630
  React.useEffect(() => {
479
- if (isArtifact && (activeTab === "pdf" || !liveKind && activeTab === "docx")) {
631
+ if (isPresentation && hasDocumentData && activeTab === "pdf") {
632
+ setActiveTab("slides");
633
+ } else if (!isPresentation && documentData && activeTab === "slides") {
634
+ setActiveTab(isDocx ? "docx" : isXlsx ? "xlsx" : "pdf");
635
+ } else if (isArtifact && (activeTab === "pdf" || !liveKind && activeTab === "docx")) {
480
636
  setActiveTab(liveKind ? "preview" : "edit");
481
637
  } else if (isDocx && activeTab === "pdf") {
482
638
  setActiveTab("docx");
@@ -487,7 +643,7 @@ function useViewerTabs(doc, isCompact, hasHistory = false) {
487
643
  } else if (!isArtifact && !isDocx && !isXlsx && documentData && (activeTab === "docx" || activeTab === "xlsx")) {
488
644
  setActiveTab("pdf");
489
645
  }
490
- }, [hasDocumentData, documentKey, isArtifact, isDocx, isXlsx, liveKind]);
646
+ }, [hasDocumentData, documentKey, isArtifact, isDocx, isXlsx, liveKind, isPresentation]);
491
647
  React.useEffect(() => {
492
648
  if (!tabRequest || !documentKey || tabRequest.documentId !== documentKey) return;
493
649
  phoneDefaultDecidedFor.current = documentKey;
@@ -541,6 +697,15 @@ function useViewerTabs(doc, isCompact, hasHistory = false) {
541
697
  label: tabLabel("versions", "Versions")
542
698
  };
543
699
  const viewerTabs = [
700
+ // A presentation's slides, edited; then its PDF (the slides as saved), once it has one.
701
+ ...isPresentation ? [
702
+ {
703
+ id: "slides",
704
+ icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Presentation, { className: "size-5" }),
705
+ tooltip: "Slides",
706
+ label: tabLabel("slides", "Slides")
707
+ }
708
+ ] : [],
544
709
  ...isArtifact ? [
545
710
  ...liveKind ? [
546
711
  {
@@ -582,7 +747,7 @@ function useViewerTabs(doc, isCompact, hasHistory = false) {
582
747
  label: tabLabel("xlsx", "Sheet")
583
748
  }
584
749
  ] : [],
585
- { id: "pdf", ...mediaTab, label: tabLabel("pdf", mediaTab.tooltip) },
750
+ ...isPresentation && isDraft ? [] : [{ id: "pdf", ...mediaTab, label: tabLabel("pdf", mediaTab.tooltip) }],
586
751
  ...hasVersionsTab ? [versionsTab] : []
587
752
  ],
588
753
  ...(hasParsedContent || compareId) && !liveKind ? [
@@ -881,7 +1046,7 @@ function PassageTagPanel({
881
1046
  [workspaceTags]
882
1047
  );
883
1048
  return /* @__PURE__ */ jsxRuntime.jsx(
884
- chunkNNUK5ZM7_cjs.TagPassagePanel,
1049
+ chunkJQLWKNJO_cjs.TagPassagePanel,
885
1050
  {
886
1051
  pageNumber,
887
1052
  preview,
@@ -1006,7 +1171,7 @@ var ParsedPassage = React.memo(function ParsedPassage2({
1006
1171
  ];
1007
1172
  }) : [];
1008
1173
  return /* @__PURE__ */ jsxRuntime.jsx(
1009
- chunkNNUK5ZM7_cjs.HtmlPassage,
1174
+ chunkJQLWKNJO_cjs.HtmlPassage,
1010
1175
  {
1011
1176
  chunkId,
1012
1177
  highlight: isStrong ? "strong" : isLight ? "light" : void 0,
@@ -1046,7 +1211,7 @@ var ParsedPassage = React.memo(function ParsedPassage2({
1046
1211
  items: passageItems
1047
1212
  }
1048
1213
  ) : void 0,
1049
- children: /* @__PURE__ */ jsxRuntime.jsx(chunkKXIRVKCJ_cjs.ConnectedMarkdown, { children: chunk.content })
1214
+ children: /* @__PURE__ */ jsxRuntime.jsx(chunkUUENH4BJ_cjs.ConnectedMarkdown, { children: chunk.content })
1050
1215
  }
1051
1216
  );
1052
1217
  });
@@ -1182,11 +1347,11 @@ function useDocumentLabels(documentId, doctags, orderedChunkIds) {
1182
1347
  const workspaceTags = React.useMemo(() => allTags.filter(isDocumentTag), [allTags]);
1183
1348
  const documentDoctags = React.useMemo(() => doctags ?? [], [doctags]);
1184
1349
  const tagSummaries = React.useMemo(
1185
- () => chunkNNUK5ZM7_cjs.summariseDocTags(documentDoctags, workspaceTags),
1350
+ () => chunkJQLWKNJO_cjs.summariseDocTags(documentDoctags, workspaceTags),
1186
1351
  [documentDoctags, workspaceTags]
1187
1352
  );
1188
1353
  const labelSummaries = React.useMemo(
1189
- () => chunkNNUK5ZM7_cjs.summariseDocTags(documentDoctags, workspaceTags.filter(chunkNNUK5ZM7_cjs.isDocumentLabel)),
1354
+ () => chunkJQLWKNJO_cjs.summariseDocTags(documentDoctags, workspaceTags.filter(chunkJQLWKNJO_cjs.isDocumentLabel)),
1190
1355
  [documentDoctags, workspaceTags]
1191
1356
  );
1192
1357
  const labelsByChunk = React.useMemo(() => {
@@ -1694,14 +1859,14 @@ function ParsedTextView({
1694
1859
  }
1695
1860
  }
1696
1861
  }, [maxPageNumber, onLoadSuccess]);
1697
- if (isLoading) return /* @__PURE__ */ jsxRuntime.jsx(chunkNNUK5ZM7_cjs.ViewerMessage, { children: "Loading parsed document..." });
1862
+ if (isLoading) return /* @__PURE__ */ jsxRuntime.jsx(chunkJQLWKNJO_cjs.ViewerMessage, { children: "Loading parsed document..." });
1698
1863
  if (error) {
1699
- return /* @__PURE__ */ jsxRuntime.jsx(chunkNNUK5ZM7_cjs.ViewerMessage, { children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-red-text", children: "Failed to load parsed document" }) });
1864
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkJQLWKNJO_cjs.ViewerMessage, { children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-red-text", children: "Failed to load parsed document" }) });
1700
1865
  }
1701
1866
  const taggingChunk = labels.taggingChunkId ? processedChunks.flatMap((page) => page.chunks).find((c) => c.chunkExtId === labels.taggingChunkId) : void 0;
1702
- return /* @__PURE__ */ jsxRuntime.jsxs(chunkNNUK5ZM7_cjs.HtmlViewerRoot, { children: [
1867
+ return /* @__PURE__ */ jsxRuntime.jsxs(chunkJQLWKNJO_cjs.HtmlViewerRoot, { children: [
1703
1868
  /* @__PURE__ */ jsxRuntime.jsx(
1704
- chunkNNUK5ZM7_cjs.DocumentLabelBar,
1869
+ chunkJQLWKNJO_cjs.DocumentLabelBar,
1705
1870
  {
1706
1871
  summaries: labels.labelSummaries,
1707
1872
  activeTagExtId: labels.activeTagExtId,
@@ -1726,15 +1891,15 @@ function ParsedTextView({
1726
1891
  }
1727
1892
  ),
1728
1893
  !citation.factCitationActive && citation.runStartIds.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(
1729
- chunkNNUK5ZM7_cjs.CitedRunNav,
1894
+ chunkJQLWKNJO_cjs.CitedRunNav,
1730
1895
  {
1731
1896
  position: citation.runCursor + 1,
1732
1897
  total: citation.runStartIds.length,
1733
1898
  onStep: citation.gotoRun
1734
1899
  }
1735
1900
  ),
1736
- /* @__PURE__ */ jsxRuntime.jsx(chunkNNUK5ZM7_cjs.HtmlViewerSurface, { surfaceRef: containerRef, onMouseUp: citation.handleSelectionEnd, children: processedChunks.length > 0 ? processedChunks.map((page, pageIndex) => /* @__PURE__ */ jsxRuntime.jsx(
1737
- chunkNNUK5ZM7_cjs.HtmlPage,
1901
+ /* @__PURE__ */ jsxRuntime.jsx(chunkJQLWKNJO_cjs.HtmlViewerSurface, { surfaceRef: containerRef, onMouseUp: citation.handleSelectionEnd, children: processedChunks.length > 0 ? processedChunks.map((page, pageIndex) => /* @__PURE__ */ jsxRuntime.jsx(
1902
+ chunkJQLWKNJO_cjs.HtmlPage,
1738
1903
  {
1739
1904
  pageNumber: page.pageNumber,
1740
1905
  totalPages,
@@ -1775,9 +1940,132 @@ function ParsedTextView({
1775
1940
  })
1776
1941
  },
1777
1942
  pageIndex
1778
- )) : /* @__PURE__ */ jsxRuntime.jsx(chunkNNUK5ZM7_cjs.HtmlViewerEmpty, {}) })
1943
+ )) : /* @__PURE__ */ jsxRuntime.jsx(chunkJQLWKNJO_cjs.HtmlViewerEmpty, {}) })
1779
1944
  ] });
1780
1945
  }
1946
+ function PdfPassageHighlights({
1947
+ boxes,
1948
+ activeId,
1949
+ onActiveDrawn
1950
+ }) {
1951
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "pointer-events-none absolute inset-0", "data-testid": "pdf-passage-highlights", children: boxes.map(({ chunkId, box: [x0, y0, x1, y1], highlight }) => /* @__PURE__ */ jsxRuntime.jsx(
1952
+ "div",
1953
+ {
1954
+ ref: chunkId === activeId ? (element) => {
1955
+ if (element) onActiveDrawn(element);
1956
+ } : void 0,
1957
+ "data-testid": "pdf-passage-highlight",
1958
+ "data-chunk-id": chunkId,
1959
+ "data-highlight": highlight,
1960
+ className: ui.cn(
1961
+ // multiplied, so the page's text stays as dark as it was under the wash
1962
+ "absolute rounded-sm mix-blend-multiply",
1963
+ highlight === "strong" ? "bg-ai-soft ring-1 ring-ai-accent/50" : "bg-ai-soft/60"
1964
+ ),
1965
+ style: {
1966
+ left: `${x0 * 100}%`,
1967
+ top: `${y0 * 100}%`,
1968
+ width: `${(x1 - x0) * 100}%`,
1969
+ height: `${(y1 - y0) * 100}%`
1970
+ }
1971
+ },
1972
+ chunkId
1973
+ )) });
1974
+ }
1975
+
1976
+ // src/connection/viewer/pdf/passageHighlights.ts
1977
+ function passageHighlight(chunkId, { cited, active }) {
1978
+ if (cited.size > 0) {
1979
+ if (!cited.has(chunkId)) return null;
1980
+ return chunkId === active ? "strong" : "light";
1981
+ }
1982
+ return chunkId === active ? "light" : null;
1983
+ }
1984
+ function asBox(bbox) {
1985
+ if (!bbox || bbox.length !== 4 || !bbox.every(Number.isFinite)) return null;
1986
+ const [x0, y0, x1, y1] = bbox;
1987
+ if (x1 <= x0 || y1 <= y0) return null;
1988
+ return [x0, y0, x1, y1];
1989
+ }
1990
+ function isWholePage([x0, y0, x1, y1]) {
1991
+ return x0 <= 0 && y0 <= 0 && x1 >= 1 && y1 >= 1;
1992
+ }
1993
+ function passageBoxesByPage(pages, state) {
1994
+ const byPage = /* @__PURE__ */ new Map();
1995
+ if (state.cited.size === 0 && !state.active) return byPage;
1996
+ for (const page of pages) {
1997
+ if (page.pageNumber === null) continue;
1998
+ for (const chunk of page.chunks) {
1999
+ const chunkId = chunk.chunkExtId;
2000
+ if (!chunkId) continue;
2001
+ const highlight = passageHighlight(chunkId, state);
2002
+ const box = highlight && asBox(chunk.pageBbox);
2003
+ if (!highlight || !box || isWholePage(box)) continue;
2004
+ const boxes = byPage.get(page.pageNumber) ?? [];
2005
+ boxes.push({ chunkId, box, highlight });
2006
+ byPage.set(page.pageNumber, boxes);
2007
+ }
2008
+ }
2009
+ return byPage;
2010
+ }
2011
+ var NONE2 = [];
2012
+ var NO_FOOTNOTES = {};
2013
+ function usePdfPassageHighlights(documentId) {
2014
+ const citedIds = chunk4CIVQWAX_cjs.useViewerPassageCitation()?.highlighted ?? NONE2;
2015
+ const cited = React.useMemo(() => new Set(citedIds), [citedIds]);
2016
+ const active = react.useArbiSessionState((s) => s.viewingDocument?.passageId ?? null);
2017
+ const { data: parsed } = react.useParsedDocument(documentId, "final", {
2018
+ enabled: cited.size > 0 || !!active
2019
+ });
2020
+ const { processedChunks } = viewers.useProcessedChunks(parsed?.chunks, NO_FOOTNOTES);
2021
+ const boxesByPage = React.useMemo(
2022
+ () => passageBoxesByPage(processedChunks, { cited, active }),
2023
+ [processedChunks, cited, active]
2024
+ );
2025
+ const centredFor = React.useRef(null);
2026
+ const activeKey = active ? `${documentId}:${active}` : null;
2027
+ React.useEffect(() => {
2028
+ if (!activeKey) centredFor.current = null;
2029
+ }, [activeKey]);
2030
+ const centre = React.useCallback(
2031
+ (element) => {
2032
+ if (!activeKey || centredFor.current === activeKey) return;
2033
+ centredFor.current = activeKey;
2034
+ element.scrollIntoView?.({ block: "center", behavior: "smooth" });
2035
+ },
2036
+ [activeKey]
2037
+ );
2038
+ return React.useCallback(
2039
+ (pageNumber) => {
2040
+ const boxes = boxesByPage.get(pageNumber);
2041
+ return boxes ? /* @__PURE__ */ jsxRuntime.jsx(PdfPassageHighlights, { boxes, activeId: active, onActiveDrawn: centre }) : null;
2042
+ },
2043
+ [boxesByPage, active, centre]
2044
+ );
2045
+ }
2046
+ function PresentationFileCard({ documentId, fileName }) {
2047
+ const session = react.useArbiSessionStore();
2048
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex h-full items-center justify-center p-6", "data-testid": "presentation-file", children: /* @__PURE__ */ jsxRuntime.jsx(
2049
+ chunkZW6FPIFC_cjs.EmptyState,
2050
+ {
2051
+ icon: lucideReact.Presentation,
2052
+ title: chunkXTR26TNE_cjs.presentationTitle(fileName),
2053
+ description: "A presentation saved in an earlier format, without its slides. Open it and save it to keep it as a presentation PDF; this file can then be deleted.",
2054
+ action: /* @__PURE__ */ jsxRuntime.jsxs(
2055
+ ui.Button,
2056
+ {
2057
+ type: "button",
2058
+ onClick: () => chunk5LTIZ44D_cjs.editPresentation(session, { kind: "open", documentId }),
2059
+ "data-testid": "presentation-file-edit",
2060
+ children: [
2061
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Pencil, { className: "size-4" }),
2062
+ "Open the slides"
2063
+ ]
2064
+ }
2065
+ )
2066
+ }
2067
+ ) });
2068
+ }
1781
2069
  var AnnotatedPdfViewer = React.lazy(
1782
2070
  () => import('./document-tools/viewer/index.cjs').then((m) => ({ default: m.AnnotatedPdfViewer }))
1783
2071
  );
@@ -1787,6 +2075,12 @@ var SignaturePlacementViewer = React.lazy(
1787
2075
  var SignatureRequestEditor = React.lazy(
1788
2076
  () => import('./document-tools/viewer/index.cjs').then((m) => ({ default: m.SignatureRequestEditor }))
1789
2077
  );
2078
+ var ClippingPdfViewer = React.lazy(
2079
+ () => import('./ClippingPdfViewer-6GCVTV3V.cjs').then((m) => ({ default: m.ClippingPdfViewer }))
2080
+ );
2081
+ var ClippingMediaViewer = React.lazy(
2082
+ () => import('./ClippingMediaViewer-B6WG7Q64.cjs').then((m) => ({ default: m.ClippingMediaViewer }))
2083
+ );
1790
2084
  var GuidedSigningViewer = React.lazy(
1791
2085
  () => import('./document-tools/viewer/index.cjs').then((m) => ({ default: m.GuidedSigningViewer }))
1792
2086
  );
@@ -1800,7 +2094,24 @@ function SessionPdfViewer(props) {
1800
2094
  },
1801
2095
  [session, viewingId]
1802
2096
  );
1803
- return /* @__PURE__ */ jsxRuntime.jsx(viewers.PdfViewer, { ...props, onPageChange, disableFontFace: !!isDetached });
2097
+ const passageHighlights = usePdfPassageHighlights(viewingId);
2098
+ const { renderPageOverlay: modeOverlay } = props;
2099
+ const renderPageOverlay = React.useCallback(
2100
+ (page) => /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
2101
+ passageHighlights(page.pageNumber),
2102
+ modeOverlay?.(page)
2103
+ ] }),
2104
+ [passageHighlights, modeOverlay]
2105
+ );
2106
+ return /* @__PURE__ */ jsxRuntime.jsx(
2107
+ viewers.PdfViewer,
2108
+ {
2109
+ ...props,
2110
+ renderPageOverlay,
2111
+ onPageChange,
2112
+ disableFontFace: !!isDetached
2113
+ }
2114
+ );
1804
2115
  }
1805
2116
  function ViewerPdfPane({
1806
2117
  documentId,
@@ -1816,6 +2127,7 @@ function ViewerPdfPane({
1816
2127
  placingSignature,
1817
2128
  onPlacingDone,
1818
2129
  annotating,
2130
+ clipping = false,
1819
2131
  markup,
1820
2132
  pdfSnapshotNumber,
1821
2133
  isSigned,
@@ -1823,9 +2135,12 @@ function ViewerPdfPane({
1823
2135
  }) {
1824
2136
  const { documentData, isDownloadOnly, isVideo, isAudio, isImage, isDocx } = doc;
1825
2137
  const showMarkup = markup.hasMarkup && !markup.showOriginal;
2138
+ if (chunkVJ5ZLRBD_cjs.isLegacyPresentationFile(documentData?.file_name)) {
2139
+ return /* @__PURE__ */ jsxRuntime.jsx(PresentationFileCard, { documentId, fileName: documentData?.file_name ?? "" });
2140
+ }
1826
2141
  if (isDownloadOnly) {
1827
2142
  return /* @__PURE__ */ jsxRuntime.jsx(
1828
- chunkNNUK5ZM7_cjs.ViewerPreviewUnavailable,
2143
+ chunkJQLWKNJO_cjs.ViewerPreviewUnavailable,
1829
2144
  {
1830
2145
  extension: fileExtension(documentData?.file_name),
1831
2146
  onDownload
@@ -1835,29 +2150,40 @@ function ViewerPdfPane({
1835
2150
  const loadingLabel = isVideo ? "Loading video..." : isAudio ? "Loading audio..." : isImage ? "Loading image..." : !documentData ? "Loading document..." : ui.friendlyFileType(documentData.file_type, documentData.file_name) === "Text" ? "Loading text..." : "Loading PDF...";
1836
2151
  const errorLabel = isVideo ? "Failed to load video" : isAudio ? "Failed to load audio" : isImage ? "Failed to load image" : "Failed to load PDF";
1837
2152
  if (isDocx && !pdfSnapshotNumber && documentData && !["completed", "low-content", "failed"].includes(documentData.status || "")) {
1838
- return /* @__PURE__ */ jsxRuntime.jsx(chunkNNUK5ZM7_cjs.ViewerMessage, { children: "PDF and search indexing are processing. Open the DOCX tab to edit now." });
2153
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkJQLWKNJO_cjs.ViewerMessage, { children: "PDF and search indexing are processing. Open the DOCX tab to edit now." });
1839
2154
  }
1840
2155
  if (isDocx && !pdfSnapshotNumber && documentData?.status === "failed") {
1841
- return /* @__PURE__ */ jsxRuntime.jsx(chunkNNUK5ZM7_cjs.ViewerMessage, { children: "PDF conversion failed. Open the Word editor or download the document." });
2156
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkJQLWKNJO_cjs.ViewerMessage, { children: "PDF conversion failed. Open the Word editor or download the document." });
1842
2157
  }
1843
- if (isPdfLoading) return /* @__PURE__ */ jsxRuntime.jsx(chunkNNUK5ZM7_cjs.ViewerMessage, { children: loadingLabel });
2158
+ if (isPdfLoading) return /* @__PURE__ */ jsxRuntime.jsx(chunkJQLWKNJO_cjs.ViewerMessage, { children: loadingLabel });
1844
2159
  if (pdfError) {
1845
2160
  return /* @__PURE__ */ jsxRuntime.jsx(
1846
- chunkNNUK5ZM7_cjs.ViewerLoadError,
2161
+ chunkJQLWKNJO_cjs.ViewerLoadError,
1847
2162
  {
1848
2163
  message: isVideo || isAudio || isImage ? `${errorLabel} \u2014 download it instead.` : "Couldn't display the PDF \u2014 download it instead.",
1849
2164
  onDownload
1850
2165
  }
1851
2166
  );
1852
2167
  }
1853
- if (!pdfBlob) return /* @__PURE__ */ jsxRuntime.jsx(chunkNNUK5ZM7_cjs.ViewerMessage, { children: loadingLabel });
2168
+ if (!pdfBlob) return /* @__PURE__ */ jsxRuntime.jsx(chunkJQLWKNJO_cjs.ViewerMessage, { children: loadingLabel });
2169
+ if (clipping && (isImage || isVideo)) {
2170
+ return /* @__PURE__ */ jsxRuntime.jsx(React.Suspense, { fallback: /* @__PURE__ */ jsxRuntime.jsx(chunkJQLWKNJO_cjs.ViewerMessage, { children: "Loading\u2026" }), children: /* @__PURE__ */ jsxRuntime.jsx(
2171
+ ClippingMediaViewer,
2172
+ {
2173
+ file: pdfBlob,
2174
+ kind: isVideo ? "video" : "image",
2175
+ documentId,
2176
+ fileName: documentData?.file_name || (isVideo ? "Video" : "Image")
2177
+ }
2178
+ ) });
2179
+ }
1854
2180
  if (isVideo) return /* @__PURE__ */ jsxRuntime.jsx(viewers.VideoViewer, { blob: pdfBlob, title: documentData?.file_name || "Video" });
1855
2181
  if (isAudio) return /* @__PURE__ */ jsxRuntime.jsx(viewers.AudioViewer, { blob: pdfBlob, title: documentData?.file_name || "Audio" });
1856
2182
  if (isImage) {
1857
2183
  return /* @__PURE__ */ jsxRuntime.jsx(viewers.ImageViewer, { blob: pdfBlob, alt: documentData?.file_name || "Document image" });
1858
2184
  }
1859
2185
  if (signatureFlow?.kind === "prepare") {
1860
- return /* @__PURE__ */ jsxRuntime.jsx(React.Suspense, { fallback: /* @__PURE__ */ jsxRuntime.jsx(chunkNNUK5ZM7_cjs.ViewerMessage, { children: "Loading\u2026" }), children: /* @__PURE__ */ jsxRuntime.jsx(
2186
+ return /* @__PURE__ */ jsxRuntime.jsx(React.Suspense, { fallback: /* @__PURE__ */ jsxRuntime.jsx(chunkJQLWKNJO_cjs.ViewerMessage, { children: "Loading\u2026" }), children: /* @__PURE__ */ jsxRuntime.jsx(
1861
2187
  SignatureRequestEditor,
1862
2188
  {
1863
2189
  ...viewerProps,
@@ -1875,7 +2201,7 @@ function ViewerPdfPane({
1875
2201
  }
1876
2202
  if (signatureFlow?.kind === "sign" && currentUserId) {
1877
2203
  const { currentPage: _page, scrollTrigger: _trigger, ...guidedProps } = viewerProps;
1878
- return /* @__PURE__ */ jsxRuntime.jsx(React.Suspense, { fallback: /* @__PURE__ */ jsxRuntime.jsx(chunkNNUK5ZM7_cjs.ViewerMessage, { children: "Loading\u2026" }), children: /* @__PURE__ */ jsxRuntime.jsx(
2204
+ return /* @__PURE__ */ jsxRuntime.jsx(React.Suspense, { fallback: /* @__PURE__ */ jsxRuntime.jsx(chunkJQLWKNJO_cjs.ViewerMessage, { children: "Loading\u2026" }), children: /* @__PURE__ */ jsxRuntime.jsx(
1879
2205
  GuidedSigningViewer,
1880
2206
  {
1881
2207
  ...guidedProps,
@@ -1889,7 +2215,7 @@ function ViewerPdfPane({
1889
2215
  ) });
1890
2216
  }
1891
2217
  if (placingSignature) {
1892
- return /* @__PURE__ */ jsxRuntime.jsx(React.Suspense, { fallback: /* @__PURE__ */ jsxRuntime.jsx(chunkNNUK5ZM7_cjs.ViewerMessage, { children: "Loading\u2026" }), children: /* @__PURE__ */ jsxRuntime.jsx(
2218
+ return /* @__PURE__ */ jsxRuntime.jsx(React.Suspense, { fallback: /* @__PURE__ */ jsxRuntime.jsx(chunkJQLWKNJO_cjs.ViewerMessage, { children: "Loading\u2026" }), children: /* @__PURE__ */ jsxRuntime.jsx(
1893
2219
  SignaturePlacementViewer,
1894
2220
  {
1895
2221
  ...viewerProps,
@@ -1901,11 +2227,25 @@ function ViewerPdfPane({
1901
2227
  }
1902
2228
  ) });
1903
2229
  }
2230
+ if (clipping) {
2231
+ return /* @__PURE__ */ jsxRuntime.jsx(React.Suspense, { fallback: /* @__PURE__ */ jsxRuntime.jsx(chunkJQLWKNJO_cjs.ViewerMessage, { children: "Loading\u2026" }), children: /* @__PURE__ */ jsxRuntime.jsx(
2232
+ ClippingPdfViewer,
2233
+ {
2234
+ ...viewerProps,
2235
+ file: pdfBlob,
2236
+ documentId,
2237
+ version: pdfSnapshotNumber,
2238
+ fileName: documentData?.file_name || "Document",
2239
+ hasMarkup: markup.hasMarkup,
2240
+ viewer: SessionPdfViewer
2241
+ }
2242
+ ) });
2243
+ }
1904
2244
  if (annotating || showMarkup) {
1905
2245
  return /* @__PURE__ */ jsxRuntime.jsx(
1906
2246
  React.Suspense,
1907
2247
  {
1908
- fallback: /* @__PURE__ */ jsxRuntime.jsx(chunkNNUK5ZM7_cjs.ViewerMessage, { children: annotating ? "Loading annotation tools\u2026" : "Loading markup\u2026" }),
2248
+ fallback: /* @__PURE__ */ jsxRuntime.jsx(chunkJQLWKNJO_cjs.ViewerMessage, { children: annotating ? "Loading annotation tools\u2026" : "Loading markup\u2026" }),
1909
2249
  children: /* @__PURE__ */ jsxRuntime.jsx(
1910
2250
  AnnotatedPdfViewer,
1911
2251
  {
@@ -1930,13 +2270,16 @@ function ViewerPdfPane({
1930
2270
  }
1931
2271
  return /* @__PURE__ */ jsxRuntime.jsx(SessionPdfViewer, { ...viewerProps, file: pdfBlob });
1932
2272
  }
2273
+ var SlidesTab = React.lazy(
2274
+ () => import('./ConnectedSlidesTab-7QDE2CZD.cjs').then((m) => ({ default: m.ConnectedSlidesTab }))
2275
+ );
1933
2276
  var StreamedWordArtifact = React.lazy(
1934
- () => import('./ConnectedStreamedWordArtifact-S2ZFZLZQ.cjs').then((m) => ({
2277
+ () => import('./ConnectedStreamedWordArtifact-FFOQJBOI.cjs').then((m) => ({
1935
2278
  default: m.ConnectedStreamedWordArtifact
1936
2279
  }))
1937
2280
  );
1938
2281
  var NativeDocxComparison = React.lazy(
1939
- () => import('./ConnectedNativeDocxComparison-546ILGLW.cjs').then((m) => ({
2282
+ () => import('./ConnectedNativeDocxComparison-4Q5S7VLD.cjs').then((m) => ({
1940
2283
  default: m.ConnectedNativeDocxComparison
1941
2284
  }))
1942
2285
  );
@@ -2011,6 +2354,7 @@ function DocumentViewerContent({
2011
2354
  streamingDoc,
2012
2355
  isStreaming,
2013
2356
  draftDoc,
2357
+ isPresentation,
2014
2358
  isDraft,
2015
2359
  isCaptureDraft,
2016
2360
  labelSummaries,
@@ -2130,7 +2474,7 @@ function DocumentViewerContent({
2130
2474
  signatureDocumentId,
2131
2475
  !isDraft && !liveKind
2132
2476
  );
2133
- const isCoEditing = !snapshotDocumentId && !compareDocumentId && !isDraft && (activeTab === "docx" && isDocx || activeTab === "edit" && isArtifact && !liveKind && !isStreaming);
2477
+ const isCoEditing = !snapshotDocumentId && !compareDocumentId && !isDraft && (activeTab === "docx" && isDocx || activeTab === "slides" && isPresentation || activeTab === "edit" && isArtifact && !liveKind && !isStreaming);
2134
2478
  const currentVersionLabel = isCoEditing ? void 0 : !snapshotDocumentId && !compareDocumentId && (isDocx || isArtifact && !liveKind) ? "Live" : artifacts.versionLabel(versions, snapshotDocumentId || documentId);
2135
2479
  const compareVersionLabel = artifacts.versionLabel(versions, compareDocumentId);
2136
2480
  const snapshotNumber = artifacts.findVersion(versions, snapshotDocumentId)?.number;
@@ -2157,15 +2501,15 @@ function DocumentViewerContent({
2157
2501
  };
2158
2502
  const documentTitle = streamingDoc?.title || draftDoc?.title || documentData?.doc_metadata?.title || documentData?.file_name || "Document";
2159
2503
  const pageNav = totalPages > 0 && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
2160
- /* @__PURE__ */ jsxRuntime.jsx(chunkNNUK5ZM7_cjs.ViewerZoomControl, { zoom, onCycle: () => setZoom(viewers.cycleZoom(zoom)) }),
2504
+ /* @__PURE__ */ jsxRuntime.jsx(chunkJQLWKNJO_cjs.ViewerZoomControl, { zoom, onCycle: () => setZoom(viewers.cycleZoom(zoom)) }),
2161
2505
  /* @__PURE__ */ jsxRuntime.jsx(
2162
- chunkNNUK5ZM7_cjs.PdfPageNav,
2506
+ chunkJQLWKNJO_cjs.PdfPageNav,
2163
2507
  {
2164
2508
  canPrev: (viewingDocumentPage || 1) > 1,
2165
2509
  canNext: (viewingDocumentPage || 1) < totalPages,
2166
2510
  onPrev: () => stepPage(-1),
2167
2511
  onNext: () => stepPage(1),
2168
- counter: /* @__PURE__ */ jsxRuntime.jsx(chunkNNUK5ZM7_cjs.ViewerPageCounter, { page: viewingDocumentPage || 1, total: totalPages, onGoTo: goToPage })
2512
+ counter: /* @__PURE__ */ jsxRuntime.jsx(chunkJQLWKNJO_cjs.ViewerPageCounter, { page: viewingDocumentPage || 1, total: totalPages, onGoTo: goToPage })
2169
2513
  }
2170
2514
  )
2171
2515
  ] });
@@ -2189,16 +2533,16 @@ function DocumentViewerContent({
2189
2533
  );
2190
2534
  const titleBlock = /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
2191
2535
  isDraft ? /* @__PURE__ */ jsxRuntime.jsx(ViewerDraftTitle, { documentId }) : /* @__PURE__ */ jsxRuntime.jsx(
2192
- chunkNNUK5ZM7_cjs.ViewerTitle,
2536
+ chunkJQLWKNJO_cjs.ViewerTitle,
2193
2537
  {
2194
2538
  title: documentTitle,
2195
2539
  versionLabel: currentVersionLabel,
2196
2540
  shrink: !!liveKind || isCompact
2197
2541
  }
2198
2542
  ),
2199
- isCompact && !isDraft && documentData?.shared && /* @__PURE__ */ jsxRuntime.jsx(chunkDTMBAFIL_cjs.ViewerStatusNote, { testId: "document-shared-status", children: "Shared with the workspace" }),
2543
+ isCompact && !isDraft && documentData?.shared && /* @__PURE__ */ jsxRuntime.jsx(ui.SharingEntity, { shared: true, variant: "icon", "data-testid": "document-shared-status" }),
2200
2544
  isCompact && activeTab === "pdf" && pdfBlob && markup.hasMarkup && !annotating && !placingSignature && /* @__PURE__ */ jsxRuntime.jsx(
2201
- chunkYYPZOEED_cjs.MarkupViewNote,
2545
+ chunkLHWOKOMP_cjs.MarkupViewNote,
2202
2546
  {
2203
2547
  showOriginal: markup.showOriginal,
2204
2548
  onToggle: () => markup.setShowOriginal((on) => !on)
@@ -2216,7 +2560,7 @@ function DocumentViewerContent({
2216
2560
  /* @__PURE__ */ jsxRuntime.jsx(ViewerDraftKind, { documentId })
2217
2561
  ) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
2218
2562
  /* @__PURE__ */ jsxRuntime.jsx(
2219
- chunkNNUK5ZM7_cjs.ViewerTabBar,
2563
+ chunkJQLWKNJO_cjs.ViewerTabBar,
2220
2564
  {
2221
2565
  tabs: viewerTabs.filter((tab) => tab.id !== "versions"),
2222
2566
  activeId: activeTab,
@@ -2254,8 +2598,10 @@ function DocumentViewerContent({
2254
2598
  isSnapshot: !!snapshotDocumentId,
2255
2599
  isComparing
2256
2600
  });
2601
+ const clip = useViewerClipping(annotatable || !!pdfBlob && (isImage || isVideo), isCompact);
2602
+ const clean = useCleanView();
2257
2603
  const signatureBanner = !isDraft && !liveKind && !snapshotDocumentId && /* @__PURE__ */ jsxRuntime.jsx(
2258
- chunkYYPZOEED_cjs.SignatureRequestBanner,
2604
+ chunkLHWOKOMP_cjs.SignatureRequestBanner,
2259
2605
  {
2260
2606
  documentId,
2261
2607
  hidden: !!signatureFlow,
@@ -2286,19 +2632,21 @@ function DocumentViewerContent({
2286
2632
  const shownRef = snapshotDocumentId || documentId;
2287
2633
  const rightContent = /* @__PURE__ */ jsxRuntime.jsxs(chunkDTMBAFIL_cjs.ViewerHeaderEnd, { isCompact, children: [
2288
2634
  annotatable && /* @__PURE__ */ jsxRuntime.jsx(
2289
- chunkYYPZOEED_cjs.AnnotateButton,
2635
+ chunkLHWOKOMP_cjs.AnnotateButton,
2290
2636
  {
2291
2637
  active: annotating,
2292
2638
  compact: isCompact,
2293
2639
  onClick: () => {
2294
2640
  setPlacingSignature(false);
2641
+ clip.stop();
2295
2642
  markup.setShowOriginal(false);
2296
2643
  setAnnotating((on) => !on);
2297
2644
  }
2298
2645
  }
2299
2646
  ),
2647
+ clip.button,
2300
2648
  activeTab === "pdf" && pdfBlob && !placingSignature && (markup.hasMarkup || annotating) && /* @__PURE__ */ jsxRuntime.jsx(
2301
- chunkYYPZOEED_cjs.ShowOriginalButton,
2649
+ chunkLHWOKOMP_cjs.ShowOriginalButton,
2302
2650
  {
2303
2651
  active: markup.showOriginal,
2304
2652
  compact: isCompact,
@@ -2309,14 +2657,14 @@ function DocumentViewerContent({
2309
2657
  }
2310
2658
  ),
2311
2659
  activeTab === "pdf" && markup.hasMarkup && !annotating && /* @__PURE__ */ jsxRuntime.jsx(
2312
- chunkYYPZOEED_cjs.DownloadMarkupButton,
2660
+ chunkLHWOKOMP_cjs.DownloadMarkupButton,
2313
2661
  {
2314
2662
  onClick: () => void markup.downloadMarkup(),
2315
2663
  disabledReason: isSigned ? documentTools.SIGNED_LOCKED_REASON : void 0
2316
2664
  }
2317
2665
  ),
2318
2666
  activeTab === "pdf" && isImage && pdfBlob && /* @__PURE__ */ jsxRuntime.jsx(
2319
- chunkNNUK5ZM7_cjs.ViewerImageActions,
2667
+ chunkJQLWKNJO_cjs.ViewerImageActions,
2320
2668
  {
2321
2669
  compact: isCompact,
2322
2670
  onUseAsReference: support.useImageAsReference ? () => support.useImageAsReference(documentId) : void 0,
@@ -2354,7 +2702,7 @@ function DocumentViewerContent({
2354
2702
  }
2355
2703
  ),
2356
2704
  /* @__PURE__ */ jsxRuntime.jsx(
2357
- chunkYYPZOEED_cjs.FileShareDialog,
2705
+ chunkLHWOKOMP_cjs.FileShareDialog,
2358
2706
  {
2359
2707
  open: sharingFile,
2360
2708
  onOpenChange: setSharingFile,
@@ -2381,11 +2729,11 @@ function DocumentViewerContent({
2381
2729
  }
2382
2730
  ),
2383
2731
  documentId && doc.workspaceId && /* @__PURE__ */ jsxRuntime.jsx(
2384
- chunkVLCY46K6_cjs.ShareControl,
2732
+ chunkTG2GM7WJ_cjs.ShareControl,
2385
2733
  {
2386
2734
  state: documentData?.shared ? "shared" : "private",
2387
2735
  onToggle: share,
2388
- disabled: !chunkNNUK5ZM7_cjs.canChangeVisibility(documentData, currentUserId),
2736
+ disabled: !chunkJQLWKNJO_cjs.canChangeVisibility(documentData, currentUserId),
2389
2737
  disabledTooltip: "Only the owner can change visibility",
2390
2738
  tooltip: documentData?.shared ? "Shared with the workspace \u2014 click to share with specific people" : "Share with the workspace, then optionally notify specific people by email",
2391
2739
  variant: "outline",
@@ -2479,7 +2827,7 @@ function DocumentViewerContent({
2479
2827
  ),
2480
2828
  !isSigned && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
2481
2829
  /* @__PURE__ */ jsxRuntime.jsx(
2482
- chunkYYPZOEED_cjs.PlaceMySignatureMenuItems,
2830
+ chunkLHWOKOMP_cjs.PlaceMySignatureMenuItems,
2483
2831
  {
2484
2832
  onPlace: (mark) => {
2485
2833
  setPlacingSignature(false);
@@ -2529,7 +2877,7 @@ function DocumentViewerContent({
2529
2877
  onZoomChange: setZoom
2530
2878
  };
2531
2879
  return /* @__PURE__ */ jsxRuntime.jsxs(
2532
- chunkNNUK5ZM7_cjs.ViewerFrame,
2880
+ chunkJQLWKNJO_cjs.ViewerFrame,
2533
2881
  {
2534
2882
  frameRef: containerRef,
2535
2883
  contentId: documentId,
@@ -2547,7 +2895,7 @@ function DocumentViewerContent({
2547
2895
  ),
2548
2896
  isCompact && !isCoEditing && /* @__PURE__ */ jsxRuntime.jsx("div", { "data-slot": "viewer-title-row", className: "flex min-w-0 items-center gap-2 px-3 pb-2", children: titleBlock }),
2549
2897
  snapshotDocumentId && /* @__PURE__ */ jsxRuntime.jsx(
2550
- chunkYYPZOEED_cjs.VersionSnapshotBar,
2898
+ chunkLHWOKOMP_cjs.VersionSnapshotBar,
2551
2899
  {
2552
2900
  versionNumber: snapshotNumber,
2553
2901
  live: isDocx || isArtifact,
@@ -2557,24 +2905,10 @@ function DocumentViewerContent({
2557
2905
  )
2558
2906
  ] }),
2559
2907
  compareRow: isComparing ? compareIndicator || void 0 : void 0,
2560
- footer: (
2561
- // Crop to a new document. Full resolution (no maxSize): a crop frames, it never downscales.
2562
- /* @__PURE__ */ jsxRuntime.jsx(
2563
- react.ImageCropModal,
2564
- {
2565
- open: crop.cropImageUrl !== null,
2566
- image: crop.cropImageUrl,
2567
- title: "Crop image",
2568
- saveLabel: "Save as a copy",
2569
- aspectOptions: react.DEFAULT_ASPECT_OPTIONS,
2570
- output: { mimeType: "image/png" },
2571
- onComplete: crop.handleCropComplete,
2572
- onCancel: crop.closeCrop
2573
- }
2574
- )
2575
- ),
2908
+ ...clean.frame,
2909
+ footer: /* @__PURE__ */ jsxRuntime.jsx(ViewerCropModal, { crop }),
2576
2910
  children: [
2577
- isComparing && /* @__PURE__ */ jsxRuntime.jsx(React.Suspense, { fallback: /* @__PURE__ */ jsxRuntime.jsx(chunkNNUK5ZM7_cjs.ViewerMessage, { children: "Loading comparison\u2026" }), children: /* @__PURE__ */ jsxRuntime.jsx(
2911
+ isComparing && /* @__PURE__ */ jsxRuntime.jsx(React.Suspense, { fallback: /* @__PURE__ */ jsxRuntime.jsx(chunkJQLWKNJO_cjs.ViewerMessage, { children: "Loading comparison\u2026" }), children: /* @__PURE__ */ jsxRuntime.jsx(
2578
2912
  NativeDocxComparison,
2579
2913
  {
2580
2914
  baseId: compareDocumentId,
@@ -2584,22 +2918,22 @@ function DocumentViewerContent({
2584
2918
  ) }),
2585
2919
  isCaptureDraft && /* @__PURE__ */ jsxRuntime.jsx(ViewerCaptureDraft, { documentId }),
2586
2920
  !isCaptureDraft && (activeTab === "pdf" || isMedia && activeTab === "html") && (!isArtifact || isDocx && !isDraft && !isStreaming && !liveKind) && !isComparing && /* @__PURE__ */ jsxRuntime.jsxs(chunkDTMBAFIL_cjs.ViewerPane, { hidden: activeTab !== "pdf", children: [
2587
- /* @__PURE__ */ jsxRuntime.jsx(chunkNNUK5ZM7_cjs.DocumentLabelBar, { summaries: labelSummaries }),
2588
- !isMedia && !isImage && signatureBanner,
2589
- activeTab === "pdf" && pdfBlob && !pdfVerified && /* @__PURE__ */ jsxRuntime.jsxs(chunkNNUK5ZM7_cjs.ViewerMessage, { children: [
2921
+ !clean.on && /* @__PURE__ */ jsxRuntime.jsx(chunkJQLWKNJO_cjs.DocumentLabelBar, { summaries: labelSummaries }),
2922
+ !clean.on && !isMedia && !isImage && signatureBanner,
2923
+ !clean.on && activeTab === "pdf" && pdfBlob && !pdfVerified && /* @__PURE__ */ jsxRuntime.jsxs(chunkJQLWKNJO_cjs.ViewerMessage, { children: [
2590
2924
  "Offline copy: its version cannot be verified. Reconnect before signing.",
2591
2925
  " ",
2592
2926
  /* @__PURE__ */ jsxRuntime.jsx("button", { type: "button", onClick: () => void blobs.retryPdf(), className: "underline", children: "Retry loading the current PDF" })
2593
2927
  ] }),
2594
- activeTab === "pdf" && !isMedia && !isImage && /* @__PURE__ */ jsxRuntime.jsx(
2595
- chunkYYPZOEED_cjs.MarkupNotices,
2928
+ !clean.on && activeTab === "pdf" && !isMedia && !isImage && /* @__PURE__ */ jsxRuntime.jsx(
2929
+ chunkLHWOKOMP_cjs.MarkupNotices,
2596
2930
  {
2597
2931
  legacyPrompt: markup.legacyPrompt,
2598
2932
  olderNote: markup.olderNote,
2599
2933
  onOpenVersion: (n) => setSnapshotDocumentId(`${documentId}@v${n}`)
2600
2934
  }
2601
2935
  ),
2602
- /* @__PURE__ */ jsxRuntime.jsx(chunkNNUK5ZM7_cjs.ViewerControlBar, { controls: activeTab === "pdf" && pageNav, children: /* @__PURE__ */ jsxRuntime.jsx(
2936
+ /* @__PURE__ */ jsxRuntime.jsx(chunkJQLWKNJO_cjs.ViewerControlBar, { controls: !clean.on && activeTab === "pdf" && pageNav, children: /* @__PURE__ */ jsxRuntime.jsx(
2603
2937
  ViewerPdfPane,
2604
2938
  {
2605
2939
  documentId,
@@ -2620,6 +2954,7 @@ function DocumentViewerContent({
2620
2954
  setIsSignOpen(true);
2621
2955
  },
2622
2956
  annotating,
2957
+ clipping: clip.clipping,
2623
2958
  markup,
2624
2959
  pdfSnapshotNumber,
2625
2960
  isSigned,
@@ -2638,10 +2973,10 @@ function DocumentViewerContent({
2638
2973
  }
2639
2974
  ),
2640
2975
  activeTab === "edit" && isArtifact && liveKind && /* @__PURE__ */ jsxRuntime.jsx(chunkEG7EJFUE_cjs.ArtifactCodeView, { source: liveSource, fileName: documentData?.file_name ?? void 0 }),
2641
- activeTab === "edit" && isArtifact && !liveKind && !isStreaming && !isComparing && /* @__PURE__ */ jsxRuntime.jsxs(React.Suspense, { fallback: /* @__PURE__ */ jsxRuntime.jsx(chunkNNUK5ZM7_cjs.ViewerMessage, { children: "Loading editor\u2026" }), children: [
2642
- isSigned && !snapshotDocumentId && /* @__PURE__ */ jsxRuntime.jsx(chunkYYPZOEED_cjs.SignedEditNote, {}),
2976
+ activeTab === "edit" && isArtifact && !liveKind && !isStreaming && !isComparing && /* @__PURE__ */ jsxRuntime.jsxs(React.Suspense, { fallback: /* @__PURE__ */ jsxRuntime.jsx(chunkJQLWKNJO_cjs.ViewerMessage, { children: "Loading editor\u2026" }), children: [
2977
+ isSigned && !snapshotDocumentId && /* @__PURE__ */ jsxRuntime.jsx(chunkLHWOKOMP_cjs.SignedEditNote, {}),
2643
2978
  /* @__PURE__ */ jsxRuntime.jsx(
2644
- chunkVGCTYTEW_cjs.ConnectedNativeDocxEditor,
2979
+ chunkC2OICDMI_cjs.ConnectedNativeDocxEditor,
2645
2980
  {
2646
2981
  documentId: snapshotDocumentId || documentId,
2647
2982
  title: documentTitle,
@@ -2682,12 +3017,21 @@ function DocumentViewerContent({
2682
3017
  onOpenTranslation: (id) => setViewingDocumentId(id)
2683
3018
  }
2684
3019
  ),
2685
- activeTab === "xlsx" && isXlsx && (xlsxBlob ? /* @__PURE__ */ jsxRuntime.jsx(viewers.XlsxViewer, { blob: xlsxBlob }) : /* @__PURE__ */ jsxRuntime.jsx(chunkNNUK5ZM7_cjs.ViewerMessage, { children: xlsxError ? "Failed to load spreadsheet" : "Loading spreadsheet..." })),
2686
- activeTab === "docx" && isDocx && !isComparing && /* @__PURE__ */ jsxRuntime.jsxs(React.Suspense, { fallback: /* @__PURE__ */ jsxRuntime.jsx(chunkNNUK5ZM7_cjs.ViewerMessage, { children: "Loading editor\u2026" }), children: [
3020
+ activeTab === "xlsx" && isXlsx && (xlsxBlob ? /* @__PURE__ */ jsxRuntime.jsx(viewers.XlsxViewer, { blob: xlsxBlob }) : /* @__PURE__ */ jsxRuntime.jsx(chunkJQLWKNJO_cjs.ViewerMessage, { children: xlsxError ? "Failed to load spreadsheet" : "Loading spreadsheet..." })),
3021
+ activeTab === "slides" && isPresentation && /* @__PURE__ */ jsxRuntime.jsx(React.Suspense, { fallback: /* @__PURE__ */ jsxRuntime.jsx(chunkJQLWKNJO_cjs.ViewerMessage, { children: "Loading slides\u2026" }), children: /* @__PURE__ */ jsxRuntime.jsx(
3022
+ SlidesTab,
3023
+ {
3024
+ documentId,
3025
+ version: snapshotDocumentId ? snapshotNumber : void 0,
3026
+ currentVersion: documentData?.current_version ?? void 0,
3027
+ draftTitle: isDraft ? draftDoc?.title ?? "" : void 0
3028
+ }
3029
+ ) }),
3030
+ activeTab === "docx" && isDocx && !isComparing && /* @__PURE__ */ jsxRuntime.jsxs(React.Suspense, { fallback: /* @__PURE__ */ jsxRuntime.jsx(chunkJQLWKNJO_cjs.ViewerMessage, { children: "Loading editor\u2026" }), children: [
2687
3031
  signatureBanner,
2688
- isSigned && !snapshotDocumentId && /* @__PURE__ */ jsxRuntime.jsx(chunkYYPZOEED_cjs.SignedEditNote, {}),
3032
+ isSigned && !snapshotDocumentId && /* @__PURE__ */ jsxRuntime.jsx(chunkLHWOKOMP_cjs.SignedEditNote, {}),
2689
3033
  /* @__PURE__ */ jsxRuntime.jsx(
2690
- chunkVGCTYTEW_cjs.ConnectedNativeDocxEditor,
3034
+ chunkC2OICDMI_cjs.ConnectedNativeDocxEditor,
2691
3035
  {
2692
3036
  documentId: snapshotDocumentId || documentId,
2693
3037
  title: documentTitle,
@@ -2697,7 +3041,7 @@ function DocumentViewerContent({
2697
3041
  `${snapshotDocumentId || documentId}-${snapshotDocumentId ? "snapshot" : "live"}`
2698
3042
  )
2699
3043
  ] }),
2700
- streamingDoc && isStreaming && isArtifact && !liveKind && !isComparing && (activeTab === "html" || activeTab === "edit") && /* @__PURE__ */ jsxRuntime.jsx(React.Suspense, { fallback: /* @__PURE__ */ jsxRuntime.jsx(chunkNNUK5ZM7_cjs.ViewerMessage, { children: "Opening draft\u2026" }), children: /* @__PURE__ */ jsxRuntime.jsx(
3044
+ streamingDoc && isStreaming && isArtifact && !liveKind && !isComparing && (activeTab === "html" || activeTab === "edit") && /* @__PURE__ */ jsxRuntime.jsx(React.Suspense, { fallback: /* @__PURE__ */ jsxRuntime.jsx(chunkJQLWKNJO_cjs.ViewerMessage, { children: "Opening draft\u2026" }), children: /* @__PURE__ */ jsxRuntime.jsx(
2701
3045
  StreamedWordArtifact,
2702
3046
  {
2703
3047
  documentId: documentId.startsWith("doc-") ? documentId : void 0,
@@ -2707,7 +3051,7 @@ function DocumentViewerContent({
2707
3051
  },
2708
3052
  documentId
2709
3053
  ) }),
2710
- !isCaptureDraft && !isComparing && activeTab === "html" && !(isStreaming && isArtifact && !liveKind) && /* @__PURE__ */ jsxRuntime.jsx(chunkDTMBAFIL_cjs.ViewerPane, { children: /* @__PURE__ */ jsxRuntime.jsx(chunkNNUK5ZM7_cjs.ViewerControlBar, { controls: pageNav, children: /* @__PURE__ */ jsxRuntime.jsx(
3054
+ !isCaptureDraft && !isComparing && activeTab === "html" && !(isStreaming && isArtifact && !liveKind) && /* @__PURE__ */ jsxRuntime.jsx(chunkDTMBAFIL_cjs.ViewerPane, { children: /* @__PURE__ */ jsxRuntime.jsx(chunkJQLWKNJO_cjs.ViewerControlBar, { controls: pageNav, children: /* @__PURE__ */ jsxRuntime.jsx(
2711
3055
  ParsedTextView,
2712
3056
  {
2713
3057
  documentId: pdfSnapshotId || documentId,
@@ -2723,5 +3067,5 @@ function DocumentViewerContent({
2723
3067
  }
2724
3068
 
2725
3069
  exports.ConnectedDocumentViewer = ConnectedDocumentViewer;
2726
- //# sourceMappingURL=chunk-SB4M3ITT.cjs.map
2727
- //# sourceMappingURL=chunk-SB4M3ITT.cjs.map
3070
+ //# sourceMappingURL=chunk-7VUJGHMY.cjs.map
3071
+ //# sourceMappingURL=chunk-7VUJGHMY.cjs.map