@arbidocs/blocks 0.5.124 → 0.5.126

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 (152) hide show
  1. package/dist/{ClippingMediaViewer-ZFEX5A3U.cjs → ClippingMediaViewer-47BAXNLO.cjs} +10 -11
  2. package/dist/ClippingMediaViewer-47BAXNLO.cjs.map +1 -0
  3. package/dist/{ClippingPdfViewer-3LRTEPHV.cjs → ClippingPdfViewer-D5BYHEAH.cjs} +16 -14
  4. package/dist/ClippingPdfViewer-D5BYHEAH.cjs.map +1 -0
  5. package/dist/{ConnectedCallDock-XJOYVVAH.cjs → ConnectedCallDock-733O5M36.cjs} +5 -5
  6. package/dist/{ConnectedCallDock-XJOYVVAH.cjs.map → ConnectedCallDock-733O5M36.cjs.map} +1 -1
  7. package/dist/{ConnectedCallRoom-CUDYAPQK.cjs → ConnectedCallRoom-TAUGSRGV.cjs} +5 -5
  8. package/dist/{ConnectedCallRoom-CUDYAPQK.cjs.map → ConnectedCallRoom-TAUGSRGV.cjs.map} +1 -1
  9. package/dist/{ConnectedNativeDocxComparison-QKHCYD6W.cjs → ConnectedNativeDocxComparison-HDE522YC.cjs} +9 -9
  10. package/dist/{ConnectedNativeDocxComparison-QKHCYD6W.cjs.map → ConnectedNativeDocxComparison-HDE522YC.cjs.map} +1 -1
  11. package/dist/{ConnectedPresentation-OV2KBOLK.cjs → ConnectedPresentation-SI3L77J4.cjs} +33 -34
  12. package/dist/ConnectedPresentation-SI3L77J4.cjs.map +1 -0
  13. package/dist/{ConnectedSlidesTab-LUAGZ6FD.cjs → ConnectedSlidesTab-JSPU6EY5.cjs} +37 -43
  14. package/dist/ConnectedSlidesTab-JSPU6EY5.cjs.map +1 -0
  15. package/dist/{ConnectedStreamedWordArtifact-AG62232A.cjs → ConnectedStreamedWordArtifact-4FHPOAFZ.cjs} +9 -9
  16. package/dist/{ConnectedStreamedWordArtifact-AG62232A.cjs.map → ConnectedStreamedWordArtifact-4FHPOAFZ.cjs.map} +1 -1
  17. package/dist/{DocumentReviewCard-M53XFLI2.cjs → DocumentReviewCard-BDNXP3D4.cjs} +4 -4
  18. package/dist/{DocumentReviewCard-M53XFLI2.cjs.map → DocumentReviewCard-BDNXP3D4.cjs.map} +1 -1
  19. package/dist/{FilesViewerDialog-JWKNJLWG.cjs → FilesViewerDialog-WQRNSKWM.cjs} +10 -11
  20. package/dist/FilesViewerDialog-WQRNSKWM.cjs.map +1 -0
  21. package/dist/{NativeDocxEditor-2LQY2CTV.cjs → NativeDocxEditor-SUDULUN3.cjs} +6 -6
  22. package/dist/{NativeDocxEditor-2LQY2CTV.cjs.map → NativeDocxEditor-SUDULUN3.cjs.map} +1 -1
  23. package/dist/{SpotlightStrip-ED22UYTM.cjs → SpotlightStrip-QQ2WUI32.cjs} +28 -29
  24. package/dist/SpotlightStrip-QQ2WUI32.cjs.map +1 -0
  25. package/dist/WorkspaceTableView-3XYAV4BV.cjs +1 -1
  26. package/dist/agents/index.cjs +1 -1
  27. package/dist/ai-IEIR7SC2.cjs +1 -1
  28. package/dist/calls/index.cjs +2 -2
  29. package/dist/{chunk-ZZZITHGK.cjs → chunk-26SFI2BH.cjs} +16 -3
  30. package/dist/chunk-26SFI2BH.cjs.map +1 -0
  31. package/dist/{chunk-NG2EE7HR.cjs → chunk-463QM764.cjs} +3 -3
  32. package/dist/{chunk-NG2EE7HR.cjs.map → chunk-463QM764.cjs.map} +1 -1
  33. package/dist/{chunk-XGM4VVNV.cjs → chunk-4KEQ62SL.cjs} +6 -6
  34. package/dist/{chunk-XGM4VVNV.cjs.map → chunk-4KEQ62SL.cjs.map} +1 -1
  35. package/dist/{chunk-YGBHY67W.cjs → chunk-6B4CCDDB.cjs} +5 -5
  36. package/dist/{chunk-YGBHY67W.cjs.map → chunk-6B4CCDDB.cjs.map} +1 -1
  37. package/dist/{chunk-JY7UUZQG.cjs → chunk-7Q46YAX4.cjs} +74 -71
  38. package/dist/chunk-7Q46YAX4.cjs.map +1 -0
  39. package/dist/{chunk-3ZZZO4F7.cjs → chunk-BY3QA3S5.cjs} +9 -9
  40. package/dist/{chunk-3ZZZO4F7.cjs.map → chunk-BY3QA3S5.cjs.map} +1 -1
  41. package/dist/{chunk-VKH3BEZE.cjs → chunk-CMPHJRVV.cjs} +3 -3
  42. package/dist/{chunk-VKH3BEZE.cjs.map → chunk-CMPHJRVV.cjs.map} +1 -1
  43. package/dist/{chunk-BX6G2ZCI.cjs → chunk-FB3JXSQT.cjs} +71 -43
  44. package/dist/chunk-FB3JXSQT.cjs.map +1 -0
  45. package/dist/{chunk-EMRY62HS.cjs → chunk-FGOJBOZX.cjs} +4 -4
  46. package/dist/{chunk-EMRY62HS.cjs.map → chunk-FGOJBOZX.cjs.map} +1 -1
  47. package/dist/{chunk-V6MW7B4B.cjs → chunk-I4X72WUT.cjs} +6 -6
  48. package/dist/{chunk-V6MW7B4B.cjs.map → chunk-I4X72WUT.cjs.map} +1 -1
  49. package/dist/{chunk-ORNLCBNE.cjs → chunk-JVEDKKNO.cjs} +43 -4
  50. package/dist/chunk-JVEDKKNO.cjs.map +1 -0
  51. package/dist/{chunk-7557LDAN.cjs → chunk-LOB2ATS5.cjs} +23 -10
  52. package/dist/chunk-LOB2ATS5.cjs.map +1 -0
  53. package/dist/{chunk-MXBXZXXQ.cjs → chunk-LXM5QXII.cjs} +3 -3
  54. package/dist/{chunk-MXBXZXXQ.cjs.map → chunk-LXM5QXII.cjs.map} +1 -1
  55. package/dist/chunk-OALQGO5C.cjs +18 -0
  56. package/dist/{chunk-SDRYSLOX.cjs.map → chunk-OALQGO5C.cjs.map} +1 -1
  57. package/dist/{chunk-2CSLFAGF.cjs → chunk-Q6N5D3R5.cjs} +34 -8
  58. package/dist/chunk-Q6N5D3R5.cjs.map +1 -0
  59. package/dist/{chunk-MVXHTAJ4.cjs → chunk-QWVUBTW3.cjs} +9 -9
  60. package/dist/{chunk-MVXHTAJ4.cjs.map → chunk-QWVUBTW3.cjs.map} +1 -1
  61. package/dist/{chunk-ADPRIBSH.cjs → chunk-X7ALF4MP.cjs} +7 -7
  62. package/dist/{chunk-ADPRIBSH.cjs.map → chunk-X7ALF4MP.cjs.map} +1 -1
  63. package/dist/{chunk-COD5ENHK.cjs → chunk-XNB27POJ.cjs} +4 -4
  64. package/dist/{chunk-COD5ENHK.cjs.map → chunk-XNB27POJ.cjs.map} +1 -1
  65. package/dist/{chunk-H236SNEV.cjs → chunk-ZCU72Q76.cjs} +191 -165
  66. package/dist/chunk-ZCU72Q76.cjs.map +1 -0
  67. package/dist/connect/docx.cjs +13 -13
  68. package/dist/connect/index.cjs +198 -163
  69. package/dist/connect/index.cjs.map +1 -1
  70. package/dist/connect/viewer.cjs +8 -9
  71. package/dist/connection/ai.d.ts +1 -0
  72. package/dist/connection/docx/ConnectedNativeDocxEditor.js +4 -5
  73. package/dist/connection/docx/ConnectedNativeDocxEditor.js.map +2 -2
  74. package/dist/connection/docx/save-native-version.d.ts +3 -0
  75. package/dist/connection/docx/save-native-version.js +19 -0
  76. package/dist/connection/docx/save-native-version.js.map +7 -0
  77. package/dist/connection/presentation/ClippingPdfViewer.js +8 -5
  78. package/dist/connection/presentation/ClippingPdfViewer.js.map +2 -2
  79. package/dist/connection/presentation/ConnectedSlidesTab.js +8 -13
  80. package/dist/connection/presentation/ConnectedSlidesTab.js.map +2 -2
  81. package/dist/connection/presentation/usePresentationController.js +24 -15
  82. package/dist/connection/presentation/usePresentationController.js.map +2 -2
  83. package/dist/connection/presentation/usePresentationFiles.d.ts +2 -1
  84. package/dist/connection/presentation/usePresentationFiles.js +15 -6
  85. package/dist/connection/presentation/usePresentationFiles.js.map +2 -2
  86. package/dist/connection/search/ConnectedSearchPage.d.ts +0 -11
  87. package/dist/connection/search/ConnectedSearchPage.js +3 -0
  88. package/dist/connection/search/ConnectedSearchPage.js.map +2 -2
  89. package/dist/connection/search/SearchResultRows.js +75 -43
  90. package/dist/connection/search/SearchResultRows.js.map +2 -2
  91. package/dist/connection/viewer/CleanViewControl.d.ts +3 -1
  92. package/dist/connection/viewer/CleanViewControl.js +5 -1
  93. package/dist/connection/viewer/CleanViewControl.js.map +2 -2
  94. package/dist/connection/viewer/ConnectedDocumentViewer.js +1 -1
  95. package/dist/connection/viewer/ConnectedDocumentViewer.js.map +2 -2
  96. package/dist/connection/viewer/VersionDropdown.js +1 -1
  97. package/dist/connection/viewer/VersionDropdown.js.map +1 -1
  98. package/dist/connection/viewer/ViewerPdfPane.js +2 -0
  99. package/dist/connection/viewer/ViewerPdfPane.js.map +2 -2
  100. package/dist/connection/viewer/pdf/usePassageTextFallback.d.ts +12 -0
  101. package/dist/connection/viewer/pdf/usePassageTextFallback.js +30 -0
  102. package/dist/connection/viewer/pdf/usePassageTextFallback.js.map +7 -0
  103. package/dist/connection/viewer/pdf/usePdfPassageHighlights.js +2 -11
  104. package/dist/connection/viewer/pdf/usePdfPassageHighlights.js.map +2 -2
  105. package/dist/connection/viewer/useCleanView.d.ts +1 -1
  106. package/dist/connection/viewer/useCleanView.js +2 -2
  107. package/dist/connection/viewer/useCleanView.js.map +2 -2
  108. package/dist/connection/viewer/useViewedDocument.d.ts +1 -0
  109. package/dist/connection/viewer/useViewerTabs.js +13 -1
  110. package/dist/connection/viewer/useViewerTabs.js.map +2 -2
  111. package/dist/docx/DocxCommandMenu.js +2 -1
  112. package/dist/docx/DocxCommandMenu.js.map +2 -2
  113. package/dist/docx/NativeDocxEditor.d.ts +2 -1
  114. package/dist/docx/NativeDocxEditor.js +30 -5
  115. package/dist/docx/NativeDocxEditor.js.map +2 -2
  116. package/dist/docx/index.cjs +38 -38
  117. package/dist/embed/index.cjs +2 -2
  118. package/dist/facts/index.cjs +43 -43
  119. package/dist/index.cjs +73 -73
  120. package/dist/presentation/ClipCaptureOverlay.js +14 -1
  121. package/dist/presentation/ClipCaptureOverlay.js.map +2 -2
  122. package/dist/presentation/ClipImage.js +7 -4
  123. package/dist/presentation/ClipImage.js.map +2 -2
  124. package/dist/presentation/ClipTray.js +11 -7
  125. package/dist/presentation/ClipTray.js.map +2 -2
  126. package/dist/presentation/SlidesEditor.js +6 -2
  127. package/dist/presentation/SlidesEditor.js.map +2 -2
  128. package/dist/presentation/store.d.ts +2 -0
  129. package/dist/presentation/store.js +15 -0
  130. package/dist/presentation/store.js.map +3 -3
  131. package/dist/settings/index.cjs +1 -1
  132. package/dist/studio/index.cjs +1 -1
  133. package/dist/styles.css +1 -1
  134. package/dist/workflow-canvas/index.cjs +12 -12
  135. package/node_modules/@arbidocs/coedit/package.json +1 -1
  136. package/package.json +5 -5
  137. package/dist/ClippingMediaViewer-ZFEX5A3U.cjs.map +0 -1
  138. package/dist/ClippingPdfViewer-3LRTEPHV.cjs.map +0 -1
  139. package/dist/ConnectedPresentation-OV2KBOLK.cjs.map +0 -1
  140. package/dist/ConnectedSlidesTab-LUAGZ6FD.cjs.map +0 -1
  141. package/dist/FilesViewerDialog-JWKNJLWG.cjs.map +0 -1
  142. package/dist/SpotlightStrip-ED22UYTM.cjs.map +0 -1
  143. package/dist/chunk-2CSLFAGF.cjs.map +0 -1
  144. package/dist/chunk-7557LDAN.cjs.map +0 -1
  145. package/dist/chunk-BX6G2ZCI.cjs.map +0 -1
  146. package/dist/chunk-GFUOCGY6.cjs +0 -32
  147. package/dist/chunk-GFUOCGY6.cjs.map +0 -1
  148. package/dist/chunk-H236SNEV.cjs.map +0 -1
  149. package/dist/chunk-JY7UUZQG.cjs.map +0 -1
  150. package/dist/chunk-ORNLCBNE.cjs.map +0 -1
  151. package/dist/chunk-SDRYSLOX.cjs +0 -18
  152. package/dist/chunk-ZZZITHGK.cjs.map +0 -1
@@ -3,17 +3,16 @@
3
3
 
4
4
  var chunkJITYC4OS_cjs = require('./chunk-JITYC4OS.cjs');
5
5
  var chunkWVZLAAIZ_cjs = require('./chunk-WVZLAAIZ.cjs');
6
- var chunkMVXHTAJ4_cjs = require('./chunk-MVXHTAJ4.cjs');
7
- var chunkADPRIBSH_cjs = require('./chunk-ADPRIBSH.cjs');
8
- var chunkORNLCBNE_cjs = require('./chunk-ORNLCBNE.cjs');
6
+ var chunkX7ALF4MP_cjs = require('./chunk-X7ALF4MP.cjs');
9
7
  var chunk4CIVQWAX_cjs = require('./chunk-4CIVQWAX.cjs');
10
8
  var chunkPL7HUTM3_cjs = require('./chunk-PL7HUTM3.cjs');
11
- var chunkGFUOCGY6_cjs = require('./chunk-GFUOCGY6.cjs');
9
+ var chunkQWVUBTW3_cjs = require('./chunk-QWVUBTW3.cjs');
10
+ var chunkJVEDKKNO_cjs = require('./chunk-JVEDKKNO.cjs');
12
11
  var chunkADDQKZ5I_cjs = require('./chunk-ADDQKZ5I.cjs');
13
12
  var chunkKXIRVKCJ_cjs = require('./chunk-KXIRVKCJ.cjs');
14
13
  var chunk5QERK4PK_cjs = require('./chunk-5QERK4PK.cjs');
15
14
  var chunkALK3PUUB_cjs = require('./chunk-ALK3PUUB.cjs');
16
- var chunk7557LDAN_cjs = require('./chunk-7557LDAN.cjs');
15
+ var chunkLOB2ATS5_cjs = require('./chunk-LOB2ATS5.cjs');
17
16
  var chunk3IH55CDE_cjs = require('./chunk-3IH55CDE.cjs');
18
17
  var chunkGNZAH6UI_cjs = require('./chunk-GNZAH6UI.cjs');
19
18
  var chunkJH6JTI76_cjs = require('./chunk-JH6JTI76.cjs');
@@ -216,9 +215,9 @@ function ViewerRelatedDocuments({ document: document2 }) {
216
215
  }
217
216
  function PresentationPill({ compact }) {
218
217
  const session = react.useArbiSessionStore();
219
- const boundTo = chunkORNLCBNE_cjs.usePresentation((s) => s.boundTo);
220
- const clips = chunkORNLCBNE_cjs.usePresentation((s) => s.clips.length);
221
- const title = chunkORNLCBNE_cjs.usePresentation((s) => s.title);
218
+ const boundTo = chunkJVEDKKNO_cjs.usePresentation((s) => s.boundTo);
219
+ const clips = chunkJVEDKKNO_cjs.usePresentation((s) => s.clips.length);
220
+ const title = chunkJVEDKKNO_cjs.usePresentation((s) => s.title);
222
221
  const onIt = react.useArbiSessionState(
223
222
  (s) => s.viewingDocument?.id === boundTo && s.documentViewer.tab === "slides"
224
223
  );
@@ -243,18 +242,18 @@ function PresentationPill({ compact }) {
243
242
  );
244
243
  }
245
244
  var SpotlightStrip = React.lazy(
246
- () => import('./SpotlightStrip-ED22UYTM.cjs').then((m) => ({ default: m.SpotlightStrip }))
245
+ () => import('./SpotlightStrip-QQ2WUI32.cjs').then((m) => ({ default: m.SpotlightStrip }))
247
246
  );
248
247
  function SpotlightLayer() {
249
248
  const { userId } = chunkJR2YSBD5_cjs.useConnectedWorkspace();
250
- const gathered = chunkMVXHTAJ4_cjs.useSpotlight((s) => s.clips.length > 0);
251
- React.useEffect(() => chunkMVXHTAJ4_cjs.useSpotlight.getState().own(userId ?? null), [userId]);
249
+ const gathered = chunkQWVUBTW3_cjs.useSpotlight((s) => s.clips.length > 0);
250
+ React.useEffect(() => chunkQWVUBTW3_cjs.useSpotlight.getState().own(userId ?? null), [userId]);
252
251
  if (!gathered) return null;
253
252
  return /* @__PURE__ */ jsxRuntime.jsx(React.Suspense, { fallback: null, children: /* @__PURE__ */ jsxRuntime.jsx(SpotlightStrip, {}) });
254
253
  }
255
254
  function useViewerClipping(clippable, compact) {
256
- const on = chunkMVXHTAJ4_cjs.useSpotlight((s) => s.clipping);
257
- const setOn = chunkMVXHTAJ4_cjs.useSpotlight((s) => s.setClipping);
255
+ const on = chunkQWVUBTW3_cjs.useSpotlight((s) => s.clipping);
256
+ const setOn = chunkQWVUBTW3_cjs.useSpotlight((s) => s.setClipping);
258
257
  const stop = React.useCallback(() => setOn(false), [setOn]);
259
258
  const button = /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
260
259
  /* @__PURE__ */ jsxRuntime.jsx(PresentationPill, { compact }),
@@ -264,7 +263,10 @@ function useViewerClipping(clippable, compact) {
264
263
  return { clipping: on && clippable, stop, button, layer };
265
264
  }
266
265
  var IDLE_MS = 2e3;
267
- function CleanViewControl({ onExit }) {
266
+ function CleanViewControl({
267
+ onExit,
268
+ children
269
+ }) {
268
270
  const [view, setView] = React.useState(null);
269
271
  const [shown, setShown] = React.useState(true);
270
272
  const ref = React.useCallback((node) => {
@@ -296,6 +298,7 @@ function CleanViewControl({ onExit }) {
296
298
  ),
297
299
  "data-testid": "viewer-clean-control",
298
300
  children: [
301
+ children,
299
302
  /* @__PURE__ */ jsxRuntime.jsxs(
300
303
  ui.Button,
301
304
  {
@@ -303,7 +306,7 @@ function CleanViewControl({ onExit }) {
303
306
  size: "sm",
304
307
  variant: "ghost",
305
308
  className: "h-7",
306
- onClick: () => view && chunkADPRIBSH_cjs.toggleFullscreen(view),
309
+ onClick: () => view && chunkX7ALF4MP_cjs.toggleFullscreen(view),
307
310
  children: [
308
311
  /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Maximize, { className: "size-3.5" }),
309
312
  "Full screen"
@@ -329,7 +332,7 @@ function CleanViewControl({ onExit }) {
329
332
  }
330
333
  );
331
334
  }
332
- function useCleanView(extra) {
335
+ function useCleanView(extra, controls) {
333
336
  const session = react.useArbiSessionStore();
334
337
  const detached = react.useArbiSessionState((s) => s.documentViewer.detached);
335
338
  const presenting = react.useArbiSessionState((s) => s.documentViewer.presenting);
@@ -346,7 +349,7 @@ function useCleanView(extra) {
346
349
  frame: {
347
350
  bare: on,
348
351
  overlay: /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
349
- on && /* @__PURE__ */ jsxRuntime.jsx(CleanViewControl, { onExit: () => session.setDocumentViewer({ presenting: false }) }),
352
+ on && /* @__PURE__ */ jsxRuntime.jsx(CleanViewControl, { onExit: () => session.setDocumentViewer({ presenting: false }), children: controls }),
350
353
  extra
351
354
  ] })
352
355
  }
@@ -666,6 +669,7 @@ function useViewerTabs(doc, isCompact, hasHistory = false) {
666
669
  phonePdfChosen
667
670
  } = react.useArbiSessionState((s) => s.documentViewer);
668
671
  const setActiveTab = (tab) => session.setDocumentViewer({ tab });
672
+ const passageId = react.useArbiSessionState((s) => s.viewingDocument?.passageId ?? null);
669
673
  const isTextFile = ui.friendlyFileType(documentData?.file_type, documentData?.file_name) === "Text";
670
674
  const isPhone = chunkFX3K6LNZ_cjs.useIsPhone();
671
675
  const phoneDefaultDecidedFor = React.useRef(null);
@@ -676,6 +680,8 @@ function useViewerTabs(doc, isCompact, hasHistory = false) {
676
680
  setActiveTab("slides");
677
681
  } else if (!isPresentation && documentData && activeTab === "slides") {
678
682
  setActiveTab(isDocx ? "docx" : isXlsx ? "xlsx" : "pdf");
683
+ } else if (passageId && activeTab === "pdf" && (isArtifact || isDocx)) {
684
+ setActiveTab("html");
679
685
  } else if (isArtifact && (activeTab === "pdf" || !liveKind && activeTab === "docx")) {
680
686
  setActiveTab(liveKind ? "preview" : "edit");
681
687
  } else if (isDocx && activeTab === "pdf") {
@@ -687,7 +693,16 @@ function useViewerTabs(doc, isCompact, hasHistory = false) {
687
693
  } else if (!isArtifact && !isDocx && !isXlsx && documentData && (activeTab === "docx" || activeTab === "xlsx")) {
688
694
  setActiveTab("pdf");
689
695
  }
690
- }, [hasDocumentData, documentKey, isArtifact, isDocx, isXlsx, liveKind, isPresentation]);
696
+ }, [
697
+ hasDocumentData,
698
+ documentKey,
699
+ isArtifact,
700
+ isDocx,
701
+ isXlsx,
702
+ liveKind,
703
+ isPresentation,
704
+ passageId
705
+ ]);
691
706
  React.useEffect(() => {
692
707
  if (!tabRequest || !documentKey || tabRequest.documentId !== documentKey) return;
693
708
  phoneDefaultDecidedFor.current = documentKey;
@@ -850,7 +865,7 @@ function VersionDropdown({
850
865
  {
851
866
  "aria-label": "Active document version",
852
867
  "data-testid": "document-version-dropdown",
853
- className: "max-w-44 rounded border border-input bg-background px-2 py-1 text-sm",
868
+ className: "max-w-44 rounded border border-input bg-background px-2 py-1 text-sm pointer-coarse:min-h-11",
854
869
  value: active?.id ?? "",
855
870
  onChange: (event) => {
856
871
  const id = event.currentTarget.value;
@@ -2045,15 +2060,15 @@ function clipOutlinesByPage(viewingId, clips, slides) {
2045
2060
  }
2046
2061
  function usePdfClipOutlines(viewingId) {
2047
2062
  const session = react.useArbiSessionStore();
2048
- const clips = chunkORNLCBNE_cjs.usePresentation((s) => s.clips);
2049
- const slides = chunkORNLCBNE_cjs.usePresentation((s) => s.slides);
2063
+ const clips = chunkJVEDKKNO_cjs.usePresentation((s) => s.clips);
2064
+ const slides = chunkJVEDKKNO_cjs.usePresentation((s) => s.slides);
2050
2065
  const byPage = React.useMemo(
2051
2066
  () => clipOutlinesByPage(viewingId, clips, slides),
2052
2067
  [viewingId, clips, slides]
2053
2068
  );
2054
2069
  const show = React.useCallback(
2055
2070
  (outline) => {
2056
- const state = chunkORNLCBNE_cjs.usePresentation.getState();
2071
+ const state = chunkJVEDKKNO_cjs.usePresentation.getState();
2057
2072
  if (outline.slides.length) state.goTo(outline.slides[0]);
2058
2073
  chunkWVZLAAIZ_cjs.showPresentation(session, state.boundTo);
2059
2074
  },
@@ -2111,15 +2126,6 @@ function usePdfPassageHighlights(documentId) {
2111
2126
  () => chunkJITYC4OS_cjs.passageBoxesByPage(processedChunks, { cited, active }),
2112
2127
  [processedChunks, cited, active]
2113
2128
  );
2114
- const session = react.useArbiSessionStore();
2115
- const fellBackFor = React.useRef(null);
2116
- React.useEffect(() => {
2117
- if (!active || !parsed || !documentId) return;
2118
- const key = `${documentId}:${active}`;
2119
- if (fellBackFor.current === key || chunkJITYC4OS_cjs.passagePlaced(processedChunks, active)) return;
2120
- fellBackFor.current = key;
2121
- session.setDocumentViewer({ tab: "html" });
2122
- }, [active, parsed, processedChunks, documentId, session]);
2123
2129
  const centredFor = React.useRef(null);
2124
2130
  const activeKey = active ? `${documentId}:${active}` : null;
2125
2131
  React.useEffect(() => {
@@ -2141,13 +2147,34 @@ function usePdfPassageHighlights(documentId) {
2141
2147
  [boxesByPage, active, centre]
2142
2148
  );
2143
2149
  }
2150
+ var NO_FOOTNOTES2 = {};
2151
+ var fellBackFor = /* @__PURE__ */ new WeakMap();
2152
+ function usePassageTextFallback(pdfFailed) {
2153
+ const session = react.useArbiSessionStore();
2154
+ const documentId = react.useArbiSessionState((s) => s.viewingDocument?.id);
2155
+ const onPdf = react.useArbiSessionState((s) => s.documentViewer.tab === "pdf");
2156
+ const active = react.useArbiSessionState((s) => s.viewingDocument?.passageId ?? null);
2157
+ const { data: parsed } = react.useParsedDocument(documentId, "final", {
2158
+ enabled: onPdf && !!active
2159
+ });
2160
+ const { processedChunks } = viewers.useProcessedChunks(parsed?.chunks, NO_FOOTNOTES2);
2161
+ React.useEffect(() => {
2162
+ if (!onPdf || !active || !documentId) return;
2163
+ const key = `${documentId}:${active}`;
2164
+ if (fellBackFor.get(session) === key) return;
2165
+ const unplaced = !!parsed && !chunkJITYC4OS_cjs.passagePlaced(processedChunks, active);
2166
+ if (!pdfFailed && !unplaced) return;
2167
+ fellBackFor.set(session, key);
2168
+ session.setDocumentViewer({ tab: "html" });
2169
+ }, [onPdf, pdfFailed, active, parsed, processedChunks, documentId, session]);
2170
+ }
2144
2171
  function PresentationFileCard({ documentId, fileName }) {
2145
2172
  const session = react.useArbiSessionStore();
2146
2173
  return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex h-full items-center justify-center p-6", "data-testid": "presentation-file", children: /* @__PURE__ */ jsxRuntime.jsx(
2147
2174
  chunkZW6FPIFC_cjs.EmptyState,
2148
2175
  {
2149
2176
  icon: lucideReact.Presentation,
2150
- title: chunkORNLCBNE_cjs.presentationTitle(fileName),
2177
+ title: chunkJVEDKKNO_cjs.presentationTitle(fileName),
2151
2178
  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.",
2152
2179
  action: /* @__PURE__ */ jsxRuntime.jsxs(
2153
2180
  ui.Button,
@@ -2174,10 +2201,10 @@ var SignatureRequestEditor = React.lazy(
2174
2201
  () => import('./document-tools/viewer/index.cjs').then((m) => ({ default: m.SignatureRequestEditor }))
2175
2202
  );
2176
2203
  var ClippingPdfViewer = React.lazy(
2177
- () => import('./ClippingPdfViewer-3LRTEPHV.cjs').then((m) => ({ default: m.ClippingPdfViewer }))
2204
+ () => import('./ClippingPdfViewer-D5BYHEAH.cjs').then((m) => ({ default: m.ClippingPdfViewer }))
2178
2205
  );
2179
2206
  var ClippingMediaViewer = React.lazy(
2180
- () => import('./ClippingMediaViewer-ZFEX5A3U.cjs').then((m) => ({ default: m.ClippingMediaViewer }))
2207
+ () => import('./ClippingMediaViewer-47BAXNLO.cjs').then((m) => ({ default: m.ClippingMediaViewer }))
2181
2208
  );
2182
2209
  var GuidedSigningViewer = React.lazy(
2183
2210
  () => import('./document-tools/viewer/index.cjs').then((m) => ({ default: m.GuidedSigningViewer }))
@@ -2234,8 +2261,9 @@ function ViewerPdfPane({
2234
2261
  placeMark = null
2235
2262
  }) {
2236
2263
  const { documentData, isDownloadOnly, isVideo, isAudio, isImage, isDocx } = doc;
2264
+ usePassageTextFallback(!!pdfError);
2237
2265
  const showMarkup = markup.hasMarkup && !markup.showOriginal;
2238
- if (chunkGFUOCGY6_cjs.isLegacyPresentationFile(documentData?.file_name)) {
2266
+ if (chunkJVEDKKNO_cjs.isLegacyPresentationFile(documentData?.file_name)) {
2239
2267
  return /* @__PURE__ */ jsxRuntime.jsx(PresentationFileCard, { documentId, fileName: documentData?.file_name ?? "" });
2240
2268
  }
2241
2269
  if (isDownloadOnly) {
@@ -2371,15 +2399,15 @@ function ViewerPdfPane({
2371
2399
  return /* @__PURE__ */ jsxRuntime.jsx(SessionPdfViewer, { ...viewerProps, file: pdfBlob });
2372
2400
  }
2373
2401
  var SlidesTab = React.lazy(
2374
- () => import('./ConnectedSlidesTab-LUAGZ6FD.cjs').then((m) => ({ default: m.ConnectedSlidesTab }))
2402
+ () => import('./ConnectedSlidesTab-JSPU6EY5.cjs').then((m) => ({ default: m.ConnectedSlidesTab }))
2375
2403
  );
2376
2404
  var StreamedWordArtifact = React.lazy(
2377
- () => import('./ConnectedStreamedWordArtifact-AG62232A.cjs').then((m) => ({
2405
+ () => import('./ConnectedStreamedWordArtifact-4FHPOAFZ.cjs').then((m) => ({
2378
2406
  default: m.ConnectedStreamedWordArtifact
2379
2407
  }))
2380
2408
  );
2381
2409
  var NativeDocxComparison = React.lazy(
2382
- () => import('./ConnectedNativeDocxComparison-QKHCYD6W.cjs').then((m) => ({
2410
+ () => import('./ConnectedNativeDocxComparison-HDE522YC.cjs').then((m) => ({
2383
2411
  default: m.ConnectedNativeDocxComparison
2384
2412
  }))
2385
2413
  );
@@ -2699,7 +2727,7 @@ function DocumentViewerContent({
2699
2727
  isComparing
2700
2728
  });
2701
2729
  const clip = useViewerClipping(annotatable || !!pdfBlob && (isImage || isVideo), isCompact);
2702
- const clean = useCleanView(clip.layer);
2730
+ const clean = useCleanView(clip.layer, clip.button);
2703
2731
  const signatureBanner = !isDraft && !liveKind && !snapshotDocumentId && /* @__PURE__ */ jsxRuntime.jsx(
2704
2732
  chunk3IH55CDE_cjs.SignatureRequestBanner,
2705
2733
  {
@@ -3064,7 +3092,7 @@ function DocumentViewerContent({
3064
3092
  activeTab === "edit" && isArtifact && !liveKind && !isStreaming && !isComparing && /* @__PURE__ */ jsxRuntime.jsxs(React.Suspense, { fallback: /* @__PURE__ */ jsxRuntime.jsx(chunkALK3PUUB_cjs.ViewerMessage, { children: "Loading editor\u2026" }), children: [
3065
3093
  isSigned && !snapshotDocumentId && /* @__PURE__ */ jsxRuntime.jsx(chunk3IH55CDE_cjs.SignedEditNote, {}),
3066
3094
  /* @__PURE__ */ jsxRuntime.jsx(
3067
- chunk7557LDAN_cjs.ConnectedNativeDocxEditor,
3095
+ chunkLOB2ATS5_cjs.ConnectedNativeDocxEditor,
3068
3096
  {
3069
3097
  documentId: snapshotDocumentId || documentId,
3070
3098
  title: documentTitle,
@@ -3119,7 +3147,7 @@ function DocumentViewerContent({
3119
3147
  signatureBanner,
3120
3148
  isSigned && !snapshotDocumentId && /* @__PURE__ */ jsxRuntime.jsx(chunk3IH55CDE_cjs.SignedEditNote, {}),
3121
3149
  /* @__PURE__ */ jsxRuntime.jsx(
3122
- chunk7557LDAN_cjs.ConnectedNativeDocxEditor,
3150
+ chunkLOB2ATS5_cjs.ConnectedNativeDocxEditor,
3123
3151
  {
3124
3152
  documentId: snapshotDocumentId || documentId,
3125
3153
  title: documentTitle,
@@ -3155,5 +3183,5 @@ function DocumentViewerContent({
3155
3183
  }
3156
3184
 
3157
3185
  exports.ConnectedDocumentViewer = ConnectedDocumentViewer;
3158
- //# sourceMappingURL=chunk-BX6G2ZCI.cjs.map
3159
- //# sourceMappingURL=chunk-BX6G2ZCI.cjs.map
3186
+ //# sourceMappingURL=chunk-FB3JXSQT.cjs.map
3187
+ //# sourceMappingURL=chunk-FB3JXSQT.cjs.map