@arbidocs/blocks 0.5.2 → 0.5.4

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 (161) hide show
  1. package/dist/{ConnectedCallDock-NNX5PEPK.cjs → ConnectedCallDock-Q7GSQICC.cjs} +6 -6
  2. package/dist/{ConnectedCallDock-NNX5PEPK.cjs.map → ConnectedCallDock-Q7GSQICC.cjs.map} +1 -1
  3. package/dist/{ConnectedCallDock-UGGY6YUK.js → ConnectedCallDock-XCTBUJOT.js} +5 -5
  4. package/dist/{ConnectedCallDock-UGGY6YUK.js.map → ConnectedCallDock-XCTBUJOT.js.map} +1 -1
  5. package/dist/{ConnectedCallRoom-B7SZHQNV.cjs → ConnectedCallRoom-T6PGW6VC.cjs} +6 -6
  6. package/dist/{ConnectedCallRoom-B7SZHQNV.cjs.map → ConnectedCallRoom-T6PGW6VC.cjs.map} +1 -1
  7. package/dist/{ConnectedCallRoom-I4HPWMK2.js → ConnectedCallRoom-W2AHTPYR.js} +5 -5
  8. package/dist/{ConnectedCallRoom-I4HPWMK2.js.map → ConnectedCallRoom-W2AHTPYR.js.map} +1 -1
  9. package/dist/{ConnectedNativeDocxComparison-CWEW7GV3.js → ConnectedNativeDocxComparison-4MI22H2R.js} +10 -10
  10. package/dist/{ConnectedNativeDocxComparison-CWEW7GV3.js.map → ConnectedNativeDocxComparison-4MI22H2R.js.map} +1 -1
  11. package/dist/{ConnectedNativeDocxComparison-A7PMTYD7.cjs → ConnectedNativeDocxComparison-VZLB7WWW.cjs} +11 -11
  12. package/dist/{ConnectedNativeDocxComparison-A7PMTYD7.cjs.map → ConnectedNativeDocxComparison-VZLB7WWW.cjs.map} +1 -1
  13. package/dist/{ConnectedNativeDocxEditor-IWXEOAIF.cjs → ConnectedNativeDocxEditor-74PFGTMR.cjs} +11 -11
  14. package/dist/{ConnectedNativeDocxEditor-IWXEOAIF.cjs.map → ConnectedNativeDocxEditor-74PFGTMR.cjs.map} +1 -1
  15. package/dist/{ConnectedNativeDocxEditor-6EBF7U4E.js → ConnectedNativeDocxEditor-YBHAQQSY.js} +9 -9
  16. package/dist/{ConnectedNativeDocxEditor-6EBF7U4E.js.map → ConnectedNativeDocxEditor-YBHAQQSY.js.map} +1 -1
  17. package/dist/{ConnectedStreamedWordArtifact-WRGCCU5H.cjs → ConnectedStreamedWordArtifact-63ME4QD5.cjs} +11 -11
  18. package/dist/ConnectedStreamedWordArtifact-63ME4QD5.cjs.map +1 -0
  19. package/dist/{ConnectedStreamedWordArtifact-27ISQYHI.js → ConnectedStreamedWordArtifact-ELHQ2VYL.js} +10 -10
  20. package/dist/ConnectedStreamedWordArtifact-ELHQ2VYL.js.map +1 -0
  21. package/dist/agents/index.cjs +328 -328
  22. package/dist/agents/index.js +6 -6
  23. package/dist/calls/index.cjs +39 -39
  24. package/dist/calls/index.js +7 -7
  25. package/dist/chat/DraftingDocChip.d.ts +23 -7
  26. package/dist/chat/index.cjs +63 -63
  27. package/dist/chat/index.js +1 -1
  28. package/dist/{chunk-QK2HR3LC.js → chunk-2A2QX3MS.js} +3 -3
  29. package/dist/{chunk-QK2HR3LC.js.map → chunk-2A2QX3MS.js.map} +1 -1
  30. package/dist/{chunk-JBG5MFVX.cjs → chunk-2CTG4DHL.cjs} +5 -5
  31. package/dist/{chunk-JBG5MFVX.cjs.map → chunk-2CTG4DHL.cjs.map} +1 -1
  32. package/dist/{chunk-PSBZ65VU.cjs → chunk-2ETLLFQV.cjs} +4 -4
  33. package/dist/{chunk-PSBZ65VU.cjs.map → chunk-2ETLLFQV.cjs.map} +1 -1
  34. package/dist/{chunk-ULQV2NJT.js → chunk-3FKM4G2T.js} +46 -9
  35. package/dist/chunk-3FKM4G2T.js.map +1 -0
  36. package/dist/{chunk-VMXLNBHF.js → chunk-3IQUMSJI.js} +3 -3
  37. package/dist/{chunk-VMXLNBHF.js.map → chunk-3IQUMSJI.js.map} +1 -1
  38. package/dist/{chunk-LMXMUWPA.cjs → chunk-3LDVSHRD.cjs} +4 -4
  39. package/dist/{chunk-LMXMUWPA.cjs.map → chunk-3LDVSHRD.cjs.map} +1 -1
  40. package/dist/{chunk-5D32XL3E.cjs → chunk-54RSCDE6.cjs} +7 -7
  41. package/dist/{chunk-5D32XL3E.cjs.map → chunk-54RSCDE6.cjs.map} +1 -1
  42. package/dist/{chunk-ID2EVM5M.cjs → chunk-67L2XS3P.cjs} +4 -4
  43. package/dist/{chunk-ID2EVM5M.cjs.map → chunk-67L2XS3P.cjs.map} +1 -1
  44. package/dist/{chunk-2BNWISLH.cjs → chunk-6HPBSKXG.cjs} +4 -4
  45. package/dist/{chunk-2BNWISLH.cjs.map → chunk-6HPBSKXG.cjs.map} +1 -1
  46. package/dist/{chunk-25YFJLFP.cjs → chunk-6TJQTDQI.cjs} +2 -2
  47. package/dist/{chunk-25YFJLFP.cjs.map → chunk-6TJQTDQI.cjs.map} +1 -1
  48. package/dist/{chunk-ZC5MJIRC.js → chunk-7KAJKYA7.js} +3 -3
  49. package/dist/{chunk-ZC5MJIRC.js.map → chunk-7KAJKYA7.js.map} +1 -1
  50. package/dist/{chunk-2RSUVU5V.js → chunk-AQ2XKOQ7.js} +3 -3
  51. package/dist/{chunk-2RSUVU5V.js.map → chunk-AQ2XKOQ7.js.map} +1 -1
  52. package/dist/{chunk-QEE4DOEU.cjs → chunk-AY66THUZ.cjs} +18 -18
  53. package/dist/{chunk-QEE4DOEU.cjs.map → chunk-AY66THUZ.cjs.map} +1 -1
  54. package/dist/{chunk-UIZZFZ5Z.cjs → chunk-BYCGAAV5.cjs} +5 -5
  55. package/dist/{chunk-UIZZFZ5Z.cjs.map → chunk-BYCGAAV5.cjs.map} +1 -1
  56. package/dist/{chunk-YBB3KRTU.cjs → chunk-CIJUKCZI.cjs} +7 -7
  57. package/dist/{chunk-YBB3KRTU.cjs.map → chunk-CIJUKCZI.cjs.map} +1 -1
  58. package/dist/{chunk-P2ZB2WTE.js → chunk-D7YJY3JW.js} +3 -3
  59. package/dist/{chunk-P2ZB2WTE.js.map → chunk-D7YJY3JW.js.map} +1 -1
  60. package/dist/{chunk-DRLRR44Q.js → chunk-FEYRHZYB.js} +6 -6
  61. package/dist/{chunk-DRLRR44Q.js.map → chunk-FEYRHZYB.js.map} +1 -1
  62. package/dist/{chunk-CNHLPFFK.cjs → chunk-HSAEIBRA.cjs} +4 -4
  63. package/dist/{chunk-CNHLPFFK.cjs.map → chunk-HSAEIBRA.cjs.map} +1 -1
  64. package/dist/{chunk-MQIUL32N.cjs → chunk-IFEQSARV.cjs} +5 -5
  65. package/dist/{chunk-MQIUL32N.cjs.map → chunk-IFEQSARV.cjs.map} +1 -1
  66. package/dist/{chunk-OD3UJ7XR.js → chunk-IK4AWPDW.js} +3 -3
  67. package/dist/{chunk-OD3UJ7XR.js.map → chunk-IK4AWPDW.js.map} +1 -1
  68. package/dist/{chunk-JANBEB7P.js → chunk-K35QAFR7.js} +3 -3
  69. package/dist/{chunk-JANBEB7P.js.map → chunk-K35QAFR7.js.map} +1 -1
  70. package/dist/{chunk-PAW2PC2M.cjs → chunk-L22BJYHL.cjs} +11 -11
  71. package/dist/{chunk-PAW2PC2M.cjs.map → chunk-L22BJYHL.cjs.map} +1 -1
  72. package/dist/{chunk-PY5D6HBD.js → chunk-LSKTOCKN.js} +5 -5
  73. package/dist/{chunk-PY5D6HBD.js.map → chunk-LSKTOCKN.js.map} +1 -1
  74. package/dist/{chunk-ZSW6FZG5.cjs → chunk-M6Z7HTJ2.cjs} +8 -8
  75. package/dist/{chunk-ZSW6FZG5.cjs.map → chunk-M6Z7HTJ2.cjs.map} +1 -1
  76. package/dist/{chunk-LDD7NXIQ.js → chunk-M7EI5V6H.js} +3 -3
  77. package/dist/{chunk-LDD7NXIQ.js.map → chunk-M7EI5V6H.js.map} +1 -1
  78. package/dist/{chunk-J6JED6TA.cjs → chunk-M7LMEVXY.cjs} +52 -52
  79. package/dist/{chunk-J6JED6TA.cjs.map → chunk-M7LMEVXY.cjs.map} +1 -1
  80. package/dist/{chunk-BMFXDDJG.cjs → chunk-NJ72FUE2.cjs} +9 -9
  81. package/dist/{chunk-BMFXDDJG.cjs.map → chunk-NJ72FUE2.cjs.map} +1 -1
  82. package/dist/{chunk-KRNX2PVC.js → chunk-PG5A6DJY.js} +3 -3
  83. package/dist/{chunk-KRNX2PVC.js.map → chunk-PG5A6DJY.js.map} +1 -1
  84. package/dist/{chunk-YSNQWUQQ.js → chunk-PISYMKGS.js} +5 -5
  85. package/dist/{chunk-YSNQWUQQ.js.map → chunk-PISYMKGS.js.map} +1 -1
  86. package/dist/{chunk-GKM4EOH7.js → chunk-PKB4LBPC.js} +2 -2
  87. package/dist/{chunk-GKM4EOH7.js.map → chunk-PKB4LBPC.js.map} +1 -1
  88. package/dist/{chunk-MDFXGRLY.cjs → chunk-PSTA227J.cjs} +26 -26
  89. package/dist/{chunk-MDFXGRLY.cjs.map → chunk-PSTA227J.cjs.map} +1 -1
  90. package/dist/{chunk-F66OH26L.cjs → chunk-PU7CEHTL.cjs} +45 -8
  91. package/dist/chunk-PU7CEHTL.cjs.map +1 -0
  92. package/dist/{chunk-5DXTO7CE.cjs → chunk-QGSVHWXR.cjs} +6 -6
  93. package/dist/{chunk-5DXTO7CE.cjs.map → chunk-QGSVHWXR.cjs.map} +1 -1
  94. package/dist/{chunk-QE7MS7NA.js → chunk-QH4OY5GP.js} +3 -3
  95. package/dist/{chunk-QE7MS7NA.js.map → chunk-QH4OY5GP.js.map} +1 -1
  96. package/dist/{chunk-IFAIUKQQ.cjs → chunk-QIY3ZHD2.cjs} +4 -4
  97. package/dist/{chunk-IFAIUKQQ.cjs.map → chunk-QIY3ZHD2.cjs.map} +1 -1
  98. package/dist/{chunk-7GAS4N7L.js → chunk-RC2REIM4.js} +3 -3
  99. package/dist/{chunk-7GAS4N7L.js.map → chunk-RC2REIM4.js.map} +1 -1
  100. package/dist/{chunk-BWKBLCWC.js → chunk-S4KPVLHO.js} +3 -3
  101. package/dist/{chunk-BWKBLCWC.js.map → chunk-S4KPVLHO.js.map} +1 -1
  102. package/dist/{chunk-RMLU363Q.cjs → chunk-TUODUKDK.cjs} +4 -4
  103. package/dist/{chunk-RMLU363Q.cjs.map → chunk-TUODUKDK.cjs.map} +1 -1
  104. package/dist/{chunk-CSUKLEQH.js → chunk-TYOZWK4G.js} +4 -4
  105. package/dist/{chunk-CSUKLEQH.js.map → chunk-TYOZWK4G.js.map} +1 -1
  106. package/dist/{chunk-WYQKDE6S.js → chunk-TZHPRK4H.js} +3 -3
  107. package/dist/{chunk-WYQKDE6S.js.map → chunk-TZHPRK4H.js.map} +1 -1
  108. package/dist/{chunk-IMTJFBDC.cjs → chunk-VBMNPJDD.cjs} +4 -4
  109. package/dist/{chunk-IMTJFBDC.cjs.map → chunk-VBMNPJDD.cjs.map} +1 -1
  110. package/dist/{chunk-6YI6BC6L.js → chunk-VDWZL5WT.js} +3 -3
  111. package/dist/{chunk-6YI6BC6L.js.map → chunk-VDWZL5WT.js.map} +1 -1
  112. package/dist/{chunk-AU6ZSYW6.js → chunk-VX5I35HZ.js} +3 -3
  113. package/dist/{chunk-AU6ZSYW6.js.map → chunk-VX5I35HZ.js.map} +1 -1
  114. package/dist/{chunk-EBRYYVNH.cjs → chunk-WB4B6TSW.cjs} +14 -14
  115. package/dist/{chunk-EBRYYVNH.cjs.map → chunk-WB4B6TSW.cjs.map} +1 -1
  116. package/dist/{chunk-34LBKTII.js → chunk-X5FS27BM.js} +6 -6
  117. package/dist/{chunk-34LBKTII.js.map → chunk-X5FS27BM.js.map} +1 -1
  118. package/dist/{chunk-HTOYFP3D.js → chunk-Z7KGBVKI.js} +5 -5
  119. package/dist/{chunk-HTOYFP3D.js.map → chunk-Z7KGBVKI.js.map} +1 -1
  120. package/dist/{chunk-TXPOODAY.js → chunk-Z7PVDIUN.js} +3 -3
  121. package/dist/{chunk-TXPOODAY.js.map → chunk-Z7PVDIUN.js.map} +1 -1
  122. package/dist/{chunk-3XA7EDPS.cjs → chunk-ZOUVLJLV.cjs} +12 -12
  123. package/dist/{chunk-3XA7EDPS.cjs.map → chunk-ZOUVLJLV.cjs.map} +1 -1
  124. package/dist/citations/index.cjs +10 -10
  125. package/dist/citations/index.js +2 -2
  126. package/dist/connect/docx.cjs +13 -13
  127. package/dist/connect/docx.js +9 -9
  128. package/dist/connect/index.cjs +740 -719
  129. package/dist/connect/index.cjs.map +1 -1
  130. package/dist/connect/index.js +50 -29
  131. package/dist/connect/index.js.map +1 -1
  132. package/dist/connect/viewer.cjs +107 -78
  133. package/dist/connect/viewer.cjs.map +1 -1
  134. package/dist/connect/viewer.js +45 -16
  135. package/dist/connect/viewer.js.map +1 -1
  136. package/dist/facts/index.cjs +3 -3
  137. package/dist/facts/index.js +2 -2
  138. package/dist/files/index.cjs +223 -223
  139. package/dist/files/index.js +3 -3
  140. package/dist/home/index.cjs +30 -30
  141. package/dist/home/index.js +5 -5
  142. package/dist/index.cjs +512 -512
  143. package/dist/index.js +12 -12
  144. package/dist/provider/environment.d.ts +10 -3
  145. package/dist/retrieval/index.cjs +4 -4
  146. package/dist/retrieval/index.js +2 -2
  147. package/dist/shell/index.cjs +46 -46
  148. package/dist/shell/index.js +3 -3
  149. package/dist/studio/index.cjs +13 -13
  150. package/dist/studio/index.js +5 -5
  151. package/dist/workflow-canvas/index.cjs +26 -26
  152. package/dist/workflow-canvas/index.js +8 -8
  153. package/dist/workspaces/index.cjs +20 -20
  154. package/dist/workspaces/index.js +4 -4
  155. package/node_modules/@arbidocs/coedit/package.json +1 -1
  156. package/package.json +5 -5
  157. package/src/docx/README.md +10 -6
  158. package/dist/ConnectedStreamedWordArtifact-27ISQYHI.js.map +0 -1
  159. package/dist/ConnectedStreamedWordArtifact-WRGCCU5H.cjs.map +0 -1
  160. package/dist/chunk-F66OH26L.cjs.map +0 -1
  161. package/dist/chunk-ULQV2NJT.js.map +0 -1
@@ -1,8 +1,8 @@
1
1
  "use client";
2
2
  'use strict';
3
3
 
4
- var chunkEBRYYVNH_cjs = require('../chunk-EBRYYVNH.cjs');
5
- var chunkIFAIUKQQ_cjs = require('../chunk-IFAIUKQQ.cjs');
4
+ var chunkWB4B6TSW_cjs = require('../chunk-WB4B6TSW.cjs');
5
+ var chunkQIY3ZHD2_cjs = require('../chunk-QIY3ZHD2.cjs');
6
6
  require('../chunk-2WLXQGWC.cjs');
7
7
  require('../chunk-223D4727.cjs');
8
8
  var chunkLPUQHIVP_cjs = require('../chunk-LPUQHIVP.cjs');
@@ -10,29 +10,29 @@ var chunkJH6JTI76_cjs = require('../chunk-JH6JTI76.cjs');
10
10
  var chunkUWIILWDI_cjs = require('../chunk-UWIILWDI.cjs');
11
11
  require('../chunk-NMZI3K6R.cjs');
12
12
  require('../chunk-JPWPR6QU.cjs');
13
- require('../chunk-YBB3KRTU.cjs');
13
+ require('../chunk-CIJUKCZI.cjs');
14
14
  var chunkTM2D4XT4_cjs = require('../chunk-TM2D4XT4.cjs');
15
15
  require('../chunk-5Y6V7F6W.cjs');
16
16
  require('../chunk-V46W7YLI.cjs');
17
- var chunkMQIUL32N_cjs = require('../chunk-MQIUL32N.cjs');
17
+ var chunkIFEQSARV_cjs = require('../chunk-IFEQSARV.cjs');
18
18
  var chunkVLCY46K6_cjs = require('../chunk-VLCY46K6.cjs');
19
19
  require('../chunk-SIB6C7P7.cjs');
20
20
  require('../chunk-DVUZTGVL.cjs');
21
21
  require('../chunk-V4ISCZJ7.cjs');
22
22
  require('../chunk-AHDJXIUB.cjs');
23
23
  require('../chunk-2EI7NCUA.cjs');
24
- require('../chunk-CNHLPFFK.cjs');
24
+ require('../chunk-HSAEIBRA.cjs');
25
25
  require('../chunk-C2CWWEHO.cjs');
26
26
  var chunk2YV7FBLO_cjs = require('../chunk-2YV7FBLO.cjs');
27
27
  require('../chunk-VG24E4JJ.cjs');
28
28
  require('../chunk-QVBZESYQ.cjs');
29
- var chunk5DXTO7CE_cjs = require('../chunk-5DXTO7CE.cjs');
30
- var chunkLMXMUWPA_cjs = require('../chunk-LMXMUWPA.cjs');
29
+ var chunkQGSVHWXR_cjs = require('../chunk-QGSVHWXR.cjs');
30
+ var chunk3LDVSHRD_cjs = require('../chunk-3LDVSHRD.cjs');
31
31
  require('../chunk-ZAVEMQ37.cjs');
32
32
  require('../chunk-MB3S2ETI.cjs');
33
33
  var chunkMEMWZ72Y_cjs = require('../chunk-MEMWZ72Y.cjs');
34
34
  require('../chunk-ZW6FPIFC.cjs');
35
- var chunk25YFJLFP_cjs = require('../chunk-25YFJLFP.cjs');
35
+ var chunk6TJQTDQI_cjs = require('../chunk-6TJQTDQI.cjs');
36
36
  require('../chunk-ULWRNGGE.cjs');
37
37
  require('../chunk-5UHAWSEX.cjs');
38
38
  require('../chunk-Z2XZ2D4N.cjs');
@@ -66,7 +66,7 @@ function FinaliseTranslationButton({
66
66
  }) {
67
67
  const finalise = react.useFinaliseTranslation();
68
68
  const { openDocument } = documentTools.useDocumentTools();
69
- const { notify } = chunk25YFJLFP_cjs.useBlocksEnvironment();
69
+ const { notify } = chunk6TJQTDQI_cjs.useBlocksEnvironment();
70
70
  if (!document2 || !isTranslationDraft(document2)) return null;
71
71
  const pending = finalise.isPending;
72
72
  const onClick = async () => {
@@ -103,7 +103,7 @@ function FinaliseTranslationButton({
103
103
  }
104
104
  function useImageCrop(documentId, fileName, imageBlob) {
105
105
  const { uploadDocument, onDocumentsChanged, openDocument } = documentTools.useDocumentTools();
106
- const { notify } = chunk25YFJLFP_cjs.useBlocksEnvironment();
106
+ const { notify } = chunk6TJQTDQI_cjs.useBlocksEnvironment();
107
107
  const [cropImageUrl, setCropImageUrl] = React.useState(null);
108
108
  const handleOpenCrop = React.useCallback(() => {
109
109
  if (!imageBlob) return;
@@ -150,13 +150,13 @@ function fileExtension(fileName) {
150
150
  function useViewedDocument(documentId) {
151
151
  const [webmHasVideoTrack, setWebmHasVideoTrack] = React.useState(null);
152
152
  React.useEffect(() => setWebmHasVideoTrack(null), [documentId]);
153
- const streamingDoc = chunkEBRYYVNH_cjs.useViewerStreamingDocument(documentId);
153
+ const streamingDoc = chunkWB4B6TSW_cjs.useViewerStreamingDocument(documentId);
154
154
  const isStreaming = !!streamingDoc && !streamingDoc.isComplete;
155
- const draftDoc = chunkEBRYYVNH_cjs.useViewerDraftDocument(documentId);
155
+ const draftDoc = chunkWB4B6TSW_cjs.useViewerDraftDocument(documentId);
156
156
  const isDraft = !!draftDoc;
157
157
  const isCaptureDraft = draftDoc?.kind === "audio" || draftDoc?.kind === "photo" || draftDoc?.kind === "video";
158
158
  const isTextDraft = draftDoc?.kind === "text";
159
- const { workspaceId, live } = chunkLMXMUWPA_cjs.useConnectedWorkspace();
159
+ const { workspaceId, live } = chunk3LDVSHRD_cjs.useConnectedWorkspace();
160
160
  const { data: record } = react.useDocument(documentId, {
161
161
  enabled: live && !!workspaceId && !isStreaming && !isDraft,
162
162
  // A new version (Save version, a signed copy) is processed before its PDF exists: keep
@@ -164,9 +164,9 @@ function useViewedDocument(documentId) {
164
164
  pollWhileProcessing: true
165
165
  });
166
166
  const documentData = record?.external_id === documentId ? record : void 0;
167
- const { data: tags } = chunk5DXTO7CE_cjs.useConnectedTags();
167
+ const { data: tags } = chunkQGSVHWXR_cjs.useConnectedTags();
168
168
  const labelSummaries = React.useMemo(
169
- () => chunkIFAIUKQQ_cjs.summariseDocTags(documentData?.doctags ?? [], tags.filter(chunkIFAIUKQQ_cjs.isDocumentLabel)),
169
+ () => chunkQIY3ZHD2_cjs.summariseDocTags(documentData?.doctags ?? [], tags.filter(chunkQIY3ZHD2_cjs.isDocumentLabel)),
170
170
  [documentData, tags]
171
171
  );
172
172
  const fileName = documentData?.file_name;
@@ -232,8 +232,8 @@ function useViewerBlobs(documentId, doc) {
232
232
  const { documentData, isArtifact, isDocx, isXlsx, isDownloadOnly, isWebmFile } = doc;
233
233
  const { setWebmHasVideoTrack } = doc;
234
234
  const { client, saveFile } = documentTools.useDocumentTools();
235
- const { notify } = chunk25YFJLFP_cjs.useBlocksEnvironment();
236
- const { loadOfflineCopy } = chunkEBRYYVNH_cjs.useDocumentViewerSupport();
235
+ const { notify } = chunk6TJQTDQI_cjs.useBlocksEnvironment();
236
+ const { loadOfflineCopy } = chunkWB4B6TSW_cjs.useDocumentViewerSupport();
237
237
  const currentVersion = documentData?.current_version ?? 1;
238
238
  const name = documentData?.file_name;
239
239
  const original = ui.isImageFile(name) || ui.isVideoFile(name) || ui.isAudioFile(name);
@@ -422,7 +422,7 @@ function useViewerTabs(doc, isCompact, hasHistory = false) {
422
422
  }
423
423
  function useViewerVersions(docId) {
424
424
  const plainId = docId ? artifacts.parseVersionRef(docId).docId : "";
425
- const { data: documents } = chunk5DXTO7CE_cjs.useConnectedDocuments();
425
+ const { data: documents } = chunkQGSVHWXR_cjs.useConnectedDocuments();
426
426
  const listed = React.useMemo(
427
427
  () => plainId ? documents.find((d) => d.external_id === plainId) : void 0,
428
428
  [documents, plainId]
@@ -593,10 +593,10 @@ function PassageTagPanel({
593
593
  onClose,
594
594
  onViewTaggedChunks
595
595
  }) {
596
- const { createTag } = chunkEBRYYVNH_cjs.useDocumentViewerSupport();
596
+ const { createTag } = chunkWB4B6TSW_cjs.useDocumentViewerSupport();
597
597
  const [editingNoteTagId, setEditingNoteTagId] = React.useState(null);
598
598
  const [noteValue, setNoteValue] = React.useState("");
599
- const { data: allTags } = chunk5DXTO7CE_cjs.useConnectedTags();
599
+ const { data: allTags } = chunkQGSVHWXR_cjs.useConnectedTags();
600
600
  const workspaceTags = React.useMemo(() => allTags.filter(isDocumentTag), [allTags]);
601
601
  const { getChunkTagState, toggleChunkTag, updateChunkTagNote, isLoading } = useChunkTagging({
602
602
  documentId,
@@ -672,7 +672,7 @@ function PassageTagPanel({
672
672
  [workspaceTags]
673
673
  );
674
674
  return /* @__PURE__ */ jsxRuntime.jsx(
675
- chunkIFAIUKQQ_cjs.TagPassagePanel,
675
+ chunkQIY3ZHD2_cjs.TagPassagePanel,
676
676
  {
677
677
  pageNumber,
678
678
  preview,
@@ -797,7 +797,7 @@ var ParsedPassage = React.memo(function ParsedPassage2({
797
797
  ];
798
798
  }) : [];
799
799
  return /* @__PURE__ */ jsxRuntime.jsx(
800
- chunkIFAIUKQQ_cjs.HtmlPassage,
800
+ chunkQIY3ZHD2_cjs.HtmlPassage,
801
801
  {
802
802
  chunkId,
803
803
  highlight: isStrong ? "strong" : isLight ? "light" : void 0,
@@ -810,7 +810,7 @@ var ParsedPassage = React.memo(function ParsedPassage2({
810
810
  isTagged: labels.length > 0,
811
811
  activeTagColor,
812
812
  tagMark: labels.length > 0 ? /* @__PURE__ */ jsxRuntime.jsx(
813
- chunkMQIUL32N_cjs.LabelMark,
813
+ chunkIFEQSARV_cjs.LabelMark,
814
814
  {
815
815
  colors: labels.map((l) => l.color),
816
816
  name: `Labels: ${labels.map((l) => l.name).join(", ")}`,
@@ -821,7 +821,7 @@ var ParsedPassage = React.memo(function ParsedPassage2({
821
821
  }
822
822
  ) : void 0,
823
823
  runMarker: isSelected && runIsStart ? /* @__PURE__ */ jsxRuntime.jsx(
824
- chunkMQIUL32N_cjs.NoteMark,
824
+ chunkIFEQSARV_cjs.NoteMark,
825
825
  {
826
826
  label: runLabel,
827
827
  title: "Cited by this note \u2014 click a passage to add, shift-click for a range",
@@ -829,7 +829,7 @@ var ParsedPassage = React.memo(function ParsedPassage2({
829
829
  }
830
830
  ) : void 0,
831
831
  mark: showLabel && chunkId ? /* @__PURE__ */ jsxRuntime.jsx(
832
- chunkMQIUL32N_cjs.PassageMark,
832
+ chunkIFEQSARV_cjs.PassageMark,
833
833
  {
834
834
  label: runLabel,
835
835
  menuLabel: "Passage actions",
@@ -837,7 +837,7 @@ var ParsedPassage = React.memo(function ParsedPassage2({
837
837
  items: passageItems
838
838
  }
839
839
  ) : void 0,
840
- children: /* @__PURE__ */ jsxRuntime.jsx(chunkEBRYYVNH_cjs.ConnectedMarkdown, { children: chunk.content })
840
+ children: /* @__PURE__ */ jsxRuntime.jsx(chunkWB4B6TSW_cjs.ConnectedMarkdown, { children: chunk.content })
841
841
  }
842
842
  );
843
843
  });
@@ -864,7 +864,7 @@ function usePassageCopy({
864
864
  documentData,
865
865
  selectedWorkspaceId
866
866
  }) {
867
- const { notify, runtimeConfig } = chunk25YFJLFP_cjs.useBlocksEnvironment();
867
+ const { notify, runtimeConfig } = chunk6TJQTDQI_cjs.useBlocksEnvironment();
868
868
  const deploymentDomain = runtimeConfig.deploymentDomain;
869
869
  const formatChunkWithCitation = React.useCallback(
870
870
  (chunkContent, pageNumber, chunkExtId) => {
@@ -937,7 +937,7 @@ ${text}
937
937
  "span",
938
938
  { className: "inline-flex items-center gap-2" },
939
939
  prefix,
940
- React__default.default.createElement(chunkMQIUL32N_cjs.PassagePill, {
940
+ React__default.default.createElement(chunkIFEQSARV_cjs.PassagePill, {
941
941
  icon: React__default.default.createElement(react.HtmlIcon, { size: 16, className: "flex-shrink-0" }),
942
942
  documentTitle: passageInfo.documentTitle,
943
943
  pageNumber: passageInfo.pageNumber,
@@ -970,15 +970,15 @@ ${text}
970
970
  };
971
971
  }
972
972
  function useDocumentLabels(documentId, doctags, orderedChunkIds) {
973
- const { data: allTags } = chunk5DXTO7CE_cjs.useConnectedTags();
973
+ const { data: allTags } = chunkQGSVHWXR_cjs.useConnectedTags();
974
974
  const workspaceTags = React.useMemo(() => allTags.filter(isDocumentTag), [allTags]);
975
975
  const documentDoctags = React.useMemo(() => doctags ?? [], [doctags]);
976
976
  const tagSummaries = React.useMemo(
977
- () => chunkIFAIUKQQ_cjs.summariseDocTags(documentDoctags, workspaceTags),
977
+ () => chunkQIY3ZHD2_cjs.summariseDocTags(documentDoctags, workspaceTags),
978
978
  [documentDoctags, workspaceTags]
979
979
  );
980
980
  const labelSummaries = React.useMemo(
981
- () => chunkIFAIUKQQ_cjs.summariseDocTags(documentDoctags, workspaceTags.filter(chunkIFAIUKQQ_cjs.isDocumentLabel)),
981
+ () => chunkQIY3ZHD2_cjs.summariseDocTags(documentDoctags, workspaceTags.filter(chunkQIY3ZHD2_cjs.isDocumentLabel)),
982
982
  [documentDoctags, workspaceTags]
983
983
  );
984
984
  const labelsByChunk = React.useMemo(() => {
@@ -1065,7 +1065,7 @@ function useCitationSelection({
1065
1065
  orderedChunkIds,
1066
1066
  pageOf
1067
1067
  }) {
1068
- const passageCitation = chunkEBRYYVNH_cjs.useViewerPassageCitation();
1068
+ const passageCitation = chunkWB4B6TSW_cjs.useViewerPassageCitation();
1069
1069
  const activeCitationContext = passageCitation?.active ?? null;
1070
1070
  const setPendingPassagesForCitation = passageCitation?.pick ?? noop;
1071
1071
  const setUnselectedPassagesForCitation = passageCitation?.unpick ?? noop;
@@ -1421,8 +1421,8 @@ function ParsedTextView({
1421
1421
  zoom = 1,
1422
1422
  onZoomChange
1423
1423
  }) {
1424
- const { workspaceId } = chunkLMXMUWPA_cjs.useConnectedWorkspace();
1425
- const { openInNavigator } = chunkEBRYYVNH_cjs.useDocumentViewerSupport();
1424
+ const { workspaceId } = chunk3LDVSHRD_cjs.useConnectedWorkspace();
1425
+ const { openInNavigator } = chunkWB4B6TSW_cjs.useDocumentViewerSupport();
1426
1426
  const containerRef = React.useRef(null);
1427
1427
  const { data: documentRecord } = react.useDocument(artifacts.parseVersionRef(documentId).docId, {
1428
1428
  enabled: !!documentId && !!workspaceId
@@ -1486,14 +1486,14 @@ function ParsedTextView({
1486
1486
  }
1487
1487
  }
1488
1488
  }, [maxPageNumber, onLoadSuccess]);
1489
- if (isLoading) return /* @__PURE__ */ jsxRuntime.jsx(chunkIFAIUKQQ_cjs.ViewerMessage, { children: "Loading parsed document..." });
1489
+ if (isLoading) return /* @__PURE__ */ jsxRuntime.jsx(chunkQIY3ZHD2_cjs.ViewerMessage, { children: "Loading parsed document..." });
1490
1490
  if (error) {
1491
- return /* @__PURE__ */ jsxRuntime.jsx(chunkIFAIUKQQ_cjs.ViewerMessage, { children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-red-text", children: "Failed to load parsed document" }) });
1491
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkQIY3ZHD2_cjs.ViewerMessage, { children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-red-text", children: "Failed to load parsed document" }) });
1492
1492
  }
1493
1493
  const taggingChunk = labels.taggingChunkId ? processedChunks.flatMap((page) => page.chunks).find((c) => c.chunkExtId === labels.taggingChunkId) : void 0;
1494
- return /* @__PURE__ */ jsxRuntime.jsxs(chunkIFAIUKQQ_cjs.HtmlViewerRoot, { children: [
1494
+ return /* @__PURE__ */ jsxRuntime.jsxs(chunkQIY3ZHD2_cjs.HtmlViewerRoot, { children: [
1495
1495
  /* @__PURE__ */ jsxRuntime.jsx(
1496
- chunkIFAIUKQQ_cjs.DocumentLabelBar,
1496
+ chunkQIY3ZHD2_cjs.DocumentLabelBar,
1497
1497
  {
1498
1498
  summaries: labels.labelSummaries,
1499
1499
  activeTagExtId: labels.activeTagExtId,
@@ -1518,15 +1518,15 @@ function ParsedTextView({
1518
1518
  }
1519
1519
  ),
1520
1520
  !citation.factCitationActive && citation.runStartIds.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(
1521
- chunkIFAIUKQQ_cjs.CitedRunNav,
1521
+ chunkQIY3ZHD2_cjs.CitedRunNav,
1522
1522
  {
1523
1523
  position: citation.runCursor + 1,
1524
1524
  total: citation.runStartIds.length,
1525
1525
  onStep: citation.gotoRun
1526
1526
  }
1527
1527
  ),
1528
- /* @__PURE__ */ jsxRuntime.jsx(chunkIFAIUKQQ_cjs.HtmlViewerSurface, { surfaceRef: containerRef, onMouseUp: citation.handleSelectionEnd, children: processedChunks.length > 0 ? processedChunks.map((page, pageIndex) => /* @__PURE__ */ jsxRuntime.jsx(
1529
- chunkIFAIUKQQ_cjs.HtmlPage,
1528
+ /* @__PURE__ */ jsxRuntime.jsx(chunkQIY3ZHD2_cjs.HtmlViewerSurface, { surfaceRef: containerRef, onMouseUp: citation.handleSelectionEnd, children: processedChunks.length > 0 ? processedChunks.map((page, pageIndex) => /* @__PURE__ */ jsxRuntime.jsx(
1529
+ chunkQIY3ZHD2_cjs.HtmlPage,
1530
1530
  {
1531
1531
  pageNumber: page.pageNumber,
1532
1532
  totalPages,
@@ -1567,7 +1567,7 @@ function ParsedTextView({
1567
1567
  })
1568
1568
  },
1569
1569
  pageIndex
1570
- )) : /* @__PURE__ */ jsxRuntime.jsx(chunkIFAIUKQQ_cjs.HtmlViewerEmpty, {}) })
1570
+ )) : /* @__PURE__ */ jsxRuntime.jsx(chunkQIY3ZHD2_cjs.HtmlViewerEmpty, {}) })
1571
1571
  ] });
1572
1572
  }
1573
1573
  var AnnotatedPdfViewer = React.lazy(
@@ -1585,7 +1585,7 @@ var GuidedSigningViewer = React.lazy(
1585
1585
  function SessionPdfViewer(props) {
1586
1586
  const session = react.useArbiSessionStore();
1587
1587
  const viewingId = react.useArbiSessionState((s) => s.viewingDocument?.id);
1588
- const isDetached = chunkEBRYYVNH_cjs.useViewerIsDetached();
1588
+ const isDetached = chunkWB4B6TSW_cjs.useViewerIsDetached();
1589
1589
  const onPageChange = React.useCallback(
1590
1590
  (page) => {
1591
1591
  if (viewingId) session.setViewingDocument({ id: viewingId, page });
@@ -1617,7 +1617,7 @@ function ViewerPdfPane({
1617
1617
  const showMarkup = markup.hasMarkup && !markup.showOriginal;
1618
1618
  if (isDownloadOnly) {
1619
1619
  return /* @__PURE__ */ jsxRuntime.jsx(
1620
- chunkIFAIUKQQ_cjs.ViewerPreviewUnavailable,
1620
+ chunkQIY3ZHD2_cjs.ViewerPreviewUnavailable,
1621
1621
  {
1622
1622
  extension: fileExtension(documentData?.file_name),
1623
1623
  onDownload
@@ -1627,26 +1627,26 @@ function ViewerPdfPane({
1627
1627
  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...";
1628
1628
  const errorLabel = isVideo ? "Failed to load video" : isAudio ? "Failed to load audio" : isImage ? "Failed to load image" : "Failed to load PDF";
1629
1629
  if (isDocx && documentData && !["completed", "low-content", "failed"].includes(documentData.status || "")) {
1630
- return /* @__PURE__ */ jsxRuntime.jsx(chunkIFAIUKQQ_cjs.ViewerMessage, { children: "PDF and search indexing are processing. Open the DOCX tab to edit now." });
1630
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkQIY3ZHD2_cjs.ViewerMessage, { children: "PDF and search indexing are processing. Open the DOCX tab to edit now." });
1631
1631
  }
1632
- if (isPdfLoading) return /* @__PURE__ */ jsxRuntime.jsx(chunkIFAIUKQQ_cjs.ViewerMessage, { children: loadingLabel });
1632
+ if (isPdfLoading) return /* @__PURE__ */ jsxRuntime.jsx(chunkQIY3ZHD2_cjs.ViewerMessage, { children: loadingLabel });
1633
1633
  if (pdfError) {
1634
1634
  return /* @__PURE__ */ jsxRuntime.jsx(
1635
- chunkIFAIUKQQ_cjs.ViewerLoadError,
1635
+ chunkQIY3ZHD2_cjs.ViewerLoadError,
1636
1636
  {
1637
1637
  message: isVideo || isAudio || isImage ? `${errorLabel} \u2014 download it instead.` : "Couldn't display the PDF \u2014 download it instead.",
1638
1638
  onDownload
1639
1639
  }
1640
1640
  );
1641
1641
  }
1642
- if (!pdfBlob) return /* @__PURE__ */ jsxRuntime.jsx(chunkIFAIUKQQ_cjs.ViewerMessage, { children: loadingLabel });
1642
+ if (!pdfBlob) return /* @__PURE__ */ jsxRuntime.jsx(chunkQIY3ZHD2_cjs.ViewerMessage, { children: loadingLabel });
1643
1643
  if (isVideo) return /* @__PURE__ */ jsxRuntime.jsx(viewers.VideoViewer, { blob: pdfBlob, title: documentData?.file_name || "Video" });
1644
1644
  if (isAudio) return /* @__PURE__ */ jsxRuntime.jsx(viewers.AudioViewer, { blob: pdfBlob, title: documentData?.file_name || "Audio" });
1645
1645
  if (isImage) {
1646
1646
  return /* @__PURE__ */ jsxRuntime.jsx(viewers.ImageViewer, { blob: pdfBlob, alt: documentData?.file_name || "Document image" });
1647
1647
  }
1648
1648
  if (signatureFlow?.kind === "prepare") {
1649
- return /* @__PURE__ */ jsxRuntime.jsx(React.Suspense, { fallback: /* @__PURE__ */ jsxRuntime.jsx(chunkIFAIUKQQ_cjs.ViewerMessage, { children: "Loading\u2026" }), children: /* @__PURE__ */ jsxRuntime.jsx(
1649
+ return /* @__PURE__ */ jsxRuntime.jsx(React.Suspense, { fallback: /* @__PURE__ */ jsxRuntime.jsx(chunkQIY3ZHD2_cjs.ViewerMessage, { children: "Loading\u2026" }), children: /* @__PURE__ */ jsxRuntime.jsx(
1650
1650
  SignatureRequestEditor,
1651
1651
  {
1652
1652
  ...viewerProps,
@@ -1662,7 +1662,7 @@ function ViewerPdfPane({
1662
1662
  }
1663
1663
  if (signatureFlow?.kind === "sign" && currentUserId) {
1664
1664
  const { currentPage: _page, scrollTrigger: _trigger, ...guidedProps } = viewerProps;
1665
- return /* @__PURE__ */ jsxRuntime.jsx(React.Suspense, { fallback: /* @__PURE__ */ jsxRuntime.jsx(chunkIFAIUKQQ_cjs.ViewerMessage, { children: "Loading\u2026" }), children: /* @__PURE__ */ jsxRuntime.jsx(
1665
+ return /* @__PURE__ */ jsxRuntime.jsx(React.Suspense, { fallback: /* @__PURE__ */ jsxRuntime.jsx(chunkQIY3ZHD2_cjs.ViewerMessage, { children: "Loading\u2026" }), children: /* @__PURE__ */ jsxRuntime.jsx(
1666
1666
  GuidedSigningViewer,
1667
1667
  {
1668
1668
  ...guidedProps,
@@ -1676,7 +1676,7 @@ function ViewerPdfPane({
1676
1676
  ) });
1677
1677
  }
1678
1678
  if (placingSignature) {
1679
- return /* @__PURE__ */ jsxRuntime.jsx(React.Suspense, { fallback: /* @__PURE__ */ jsxRuntime.jsx(chunkIFAIUKQQ_cjs.ViewerMessage, { children: "Loading\u2026" }), children: /* @__PURE__ */ jsxRuntime.jsx(
1679
+ return /* @__PURE__ */ jsxRuntime.jsx(React.Suspense, { fallback: /* @__PURE__ */ jsxRuntime.jsx(chunkQIY3ZHD2_cjs.ViewerMessage, { children: "Loading\u2026" }), children: /* @__PURE__ */ jsxRuntime.jsx(
1680
1680
  SignaturePlacementViewer,
1681
1681
  {
1682
1682
  ...viewerProps,
@@ -1692,7 +1692,7 @@ function ViewerPdfPane({
1692
1692
  return /* @__PURE__ */ jsxRuntime.jsx(
1693
1693
  React.Suspense,
1694
1694
  {
1695
- fallback: /* @__PURE__ */ jsxRuntime.jsx(chunkIFAIUKQQ_cjs.ViewerMessage, { children: annotating ? "Loading annotation tools\u2026" : "Loading markup\u2026" }),
1695
+ fallback: /* @__PURE__ */ jsxRuntime.jsx(chunkQIY3ZHD2_cjs.ViewerMessage, { children: annotating ? "Loading annotation tools\u2026" : "Loading markup\u2026" }),
1696
1696
  children: /* @__PURE__ */ jsxRuntime.jsx(
1697
1697
  AnnotatedPdfViewer,
1698
1698
  {
@@ -1717,17 +1717,17 @@ function ViewerPdfPane({
1717
1717
  return /* @__PURE__ */ jsxRuntime.jsx(SessionPdfViewer, { ...viewerProps, file: pdfBlob });
1718
1718
  }
1719
1719
  var NativeDocxEditor = React.lazy(
1720
- () => import('../ConnectedNativeDocxEditor-IWXEOAIF.cjs').then((m) => ({
1720
+ () => import('../ConnectedNativeDocxEditor-74PFGTMR.cjs').then((m) => ({
1721
1721
  default: m.ConnectedNativeDocxEditor
1722
1722
  }))
1723
1723
  );
1724
1724
  var StreamedWordArtifact = React.lazy(
1725
- () => import('../ConnectedStreamedWordArtifact-WRGCCU5H.cjs').then((m) => ({
1725
+ () => import('../ConnectedStreamedWordArtifact-63ME4QD5.cjs').then((m) => ({
1726
1726
  default: m.ConnectedStreamedWordArtifact
1727
1727
  }))
1728
1728
  );
1729
1729
  var NativeDocxComparison = React.lazy(
1730
- () => import('../ConnectedNativeDocxComparison-A7PMTYD7.cjs').then((m) => ({
1730
+ () => import('../ConnectedNativeDocxComparison-VZLB7WWW.cjs').then((m) => ({
1731
1731
  default: m.ConnectedNativeDocxComparison
1732
1732
  }))
1733
1733
  );
@@ -1742,7 +1742,7 @@ function ConnectedDocumentViewer(props) {
1742
1742
  resetKey: openedId,
1743
1743
  labels: { title: "This document couldn't be displayed" },
1744
1744
  testId: "document-viewer-error",
1745
- children: /* @__PURE__ */ jsxRuntime.jsx(chunkEBRYYVNH_cjs.ConnectedDocumentToolsProvider, { children: /* @__PURE__ */ jsxRuntime.jsx(DocumentViewerContent, { ...props, openedId }) })
1745
+ children: /* @__PURE__ */ jsxRuntime.jsx(chunkWB4B6TSW_cjs.ConnectedDocumentToolsProvider, { children: /* @__PURE__ */ jsxRuntime.jsx(DocumentViewerContent, { ...props, openedId }) })
1746
1746
  }
1747
1747
  );
1748
1748
  }
@@ -1753,11 +1753,11 @@ function DocumentViewerContent({
1753
1753
  }) {
1754
1754
  const arbi = react.useArbi();
1755
1755
  const session = react.useArbiSessionStore();
1756
- const support = chunkEBRYYVNH_cjs.useDocumentViewerSupport();
1756
+ const support = chunkWB4B6TSW_cjs.useDocumentViewerSupport();
1757
1757
  const formatDate = support.formatDate ?? chunkKDG6FER6_cjs.fmtDate;
1758
1758
  const tools = documentTools.useDocumentTools();
1759
- const { openConversation, notify } = chunk25YFJLFP_cjs.useBlocksEnvironment();
1760
- const { userId: currentUserId } = chunkLMXMUWPA_cjs.useConnectedWorkspace();
1759
+ const { openConversation, openNewConversation, notify } = chunk6TJQTDQI_cjs.useBlocksEnvironment();
1760
+ const { userId: currentUserId } = chunk3LDVSHRD_cjs.useConnectedWorkspace();
1761
1761
  const documentId = artifacts.parseVersionRef(openedId).docId;
1762
1762
  const [totalPages, setTotalPages] = React.useState(0);
1763
1763
  const [isCompact, setIsCompact] = React.useState(false);
@@ -1783,7 +1783,7 @@ function DocumentViewerContent({
1783
1783
  const setViewingDocumentId = (id) => session.setViewingDocument({ id });
1784
1784
  const setActiveTab = (tab) => session.setDocumentViewer({ tab });
1785
1785
  const setCompareDocumentId = (id) => session.setDocumentViewer({ compareId: id });
1786
- const { data: conversations } = chunk5DXTO7CE_cjs.useConnectedConversations();
1786
+ const { data: conversations } = chunkQGSVHWXR_cjs.useConnectedConversations();
1787
1787
  const snapshotRef = artifacts.parseVersionRef(openedId).version ? openedId : null;
1788
1788
  const { versions, translations } = useViewerVersions(documentId);
1789
1789
  const currentVersionId = versions.find((v) => v.isCurrent)?.id ?? documentId;
@@ -1794,7 +1794,8 @@ function DocumentViewerContent({
1794
1794
  documentId: doc.savedDocumentId,
1795
1795
  shownId: openedId,
1796
1796
  showLive: () => setViewingDocumentId(documentId),
1797
- workspaceId: doc.workspaceId
1797
+ workspaceId: doc.workspaceId,
1798
+ conversationId: doc.documentData?.conversation_ext_id ?? null
1798
1799
  });
1799
1800
  const {
1800
1801
  documentData,
@@ -1815,6 +1816,17 @@ function DocumentViewerContent({
1815
1816
  isXlsx,
1816
1817
  isDownloadOnly
1817
1818
  } = doc;
1819
+ const chatAboutDocument = () => {
1820
+ const savedId = doc.savedDocumentId;
1821
+ if (!savedId) return;
1822
+ const latest = shell.latestThreadOfDocument(savedId);
1823
+ if (latest && conversations.some((c) => c.external_id === latest)) {
1824
+ openConversation(latest, { keepDocumentOpen: true });
1825
+ return;
1826
+ }
1827
+ openNewConversation({ keepDocumentOpen: true });
1828
+ session.setNewChatDocumentId(savedId);
1829
+ };
1818
1830
  const threadTitle = (id) => conversations.find((c) => c.external_id === id)?.title?.trim() || "Its thread";
1819
1831
  const madeInId = documentData?.conversation_ext_id ?? null;
1820
1832
  const madeIn = madeInId ? { id: madeInId, title: threadTitle(madeInId) } : null;
@@ -1864,15 +1876,15 @@ function DocumentViewerContent({
1864
1876
  };
1865
1877
  const documentTitle = streamingDoc?.title || draftDoc?.title || documentData?.doc_metadata?.title || documentData?.file_name || "Document";
1866
1878
  const pageNav = totalPages > 0 && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
1867
- /* @__PURE__ */ jsxRuntime.jsx(chunkIFAIUKQQ_cjs.ViewerZoomControl, { zoom, onCycle: () => setZoom(viewers.cycleZoom(zoom)) }),
1879
+ /* @__PURE__ */ jsxRuntime.jsx(chunkQIY3ZHD2_cjs.ViewerZoomControl, { zoom, onCycle: () => setZoom(viewers.cycleZoom(zoom)) }),
1868
1880
  /* @__PURE__ */ jsxRuntime.jsx(
1869
- chunkIFAIUKQQ_cjs.PdfPageNav,
1881
+ chunkQIY3ZHD2_cjs.PdfPageNav,
1870
1882
  {
1871
1883
  canPrev: (viewingDocumentPage || 1) > 1,
1872
1884
  canNext: (viewingDocumentPage || 1) < totalPages,
1873
1885
  onPrev: () => stepPage(-1),
1874
1886
  onNext: () => stepPage(1),
1875
- counter: /* @__PURE__ */ jsxRuntime.jsx(chunkIFAIUKQQ_cjs.ViewerPageCounter, { page: viewingDocumentPage || 1, total: totalPages, onGoTo: goToPage })
1887
+ counter: /* @__PURE__ */ jsxRuntime.jsx(chunkQIY3ZHD2_cjs.ViewerPageCounter, { page: viewingDocumentPage || 1, total: totalPages, onGoTo: goToPage })
1876
1888
  }
1877
1889
  )
1878
1890
  ] });
@@ -1896,7 +1908,7 @@ function DocumentViewerContent({
1896
1908
  );
1897
1909
  const titleBlock = /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
1898
1910
  isDraft ? support.renderDraftTitle?.(documentId) : /* @__PURE__ */ jsxRuntime.jsx(
1899
- chunkIFAIUKQQ_cjs.ViewerTitle,
1911
+ chunkQIY3ZHD2_cjs.ViewerTitle,
1900
1912
  {
1901
1913
  title: documentTitle,
1902
1914
  versionLabel: currentVersionLabel,
@@ -1921,7 +1933,7 @@ function DocumentViewerContent({
1921
1933
  // A draft's kind replaces the tabs: neither Versions nor the text view means anything
1922
1934
  // before the first save.
1923
1935
  support.renderDraftKind?.(documentId)
1924
- ) : /* @__PURE__ */ jsxRuntime.jsx(chunkIFAIUKQQ_cjs.ViewerTabBar, { tabs: viewerTabs, activeId: activeTab, onChange: handleTabChange }),
1936
+ ) : /* @__PURE__ */ jsxRuntime.jsx(chunkQIY3ZHD2_cjs.ViewerTabBar, { tabs: viewerTabs, activeId: activeTab, onChange: handleTabChange }),
1925
1937
  !isCompact && titleBlock
1926
1938
  ] });
1927
1939
  const annotatable = documentTools.canAnnotate({
@@ -1994,7 +2006,7 @@ function DocumentViewerContent({
1994
2006
  }
1995
2007
  ),
1996
2008
  activeTab === "pdf" && isImage && pdfBlob && /* @__PURE__ */ jsxRuntime.jsx(
1997
- chunkIFAIUKQQ_cjs.ViewerImageActions,
2009
+ chunkQIY3ZHD2_cjs.ViewerImageActions,
1998
2010
  {
1999
2011
  compact: isCompact,
2000
2012
  onUseAsReference: support.useImageAsReference ? () => support.useImageAsReference(documentId) : void 0,
@@ -2019,12 +2031,29 @@ function DocumentViewerContent({
2019
2031
  ]
2020
2032
  }
2021
2033
  ),
2034
+ doc.savedDocumentId && !snapshotDocumentId && /* @__PURE__ */ jsxRuntime.jsxs(
2035
+ ui.Button,
2036
+ {
2037
+ type: "button",
2038
+ variant: "outline",
2039
+ size: isCompact ? "icon" : "sm",
2040
+ onClick: chatAboutDocument,
2041
+ title: "Chat about this document: a thread that works in it, with edits as tracked changes",
2042
+ "aria-label": "Chat about this document",
2043
+ "data-testid": "document-chat-about",
2044
+ className: "pointer-coarse:min-h-11",
2045
+ children: [
2046
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.MessageSquarePlus, { className: "size-4" }),
2047
+ !isCompact && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ml-1", children: "Chat" })
2048
+ ]
2049
+ }
2050
+ ),
2022
2051
  documentId && doc.workspaceId && /* @__PURE__ */ jsxRuntime.jsx(
2023
2052
  chunkVLCY46K6_cjs.ShareControl,
2024
2053
  {
2025
2054
  state: documentData?.shared ? "shared" : "private",
2026
2055
  onToggle: share,
2027
- disabled: !chunkIFAIUKQQ_cjs.canChangeVisibility(documentData, currentUserId),
2056
+ disabled: !chunkQIY3ZHD2_cjs.canChangeVisibility(documentData, currentUserId),
2028
2057
  disabledTooltip: "Only the owner can change visibility",
2029
2058
  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",
2030
2059
  variant: "outline",
@@ -2135,7 +2164,7 @@ function DocumentViewerContent({
2135
2164
  onZoomChange: setZoom
2136
2165
  };
2137
2166
  return /* @__PURE__ */ jsxRuntime.jsxs(
2138
- chunkIFAIUKQQ_cjs.ViewerFrame,
2167
+ chunkQIY3ZHD2_cjs.ViewerFrame,
2139
2168
  {
2140
2169
  frameRef: containerRef,
2141
2170
  contentId: documentId,
@@ -2180,7 +2209,7 @@ function DocumentViewerContent({
2180
2209
  )
2181
2210
  ),
2182
2211
  children: [
2183
- isComparing && /* @__PURE__ */ jsxRuntime.jsx(React.Suspense, { fallback: /* @__PURE__ */ jsxRuntime.jsx(chunkIFAIUKQQ_cjs.ViewerMessage, { children: "Loading comparison\u2026" }), children: /* @__PURE__ */ jsxRuntime.jsx(
2212
+ isComparing && /* @__PURE__ */ jsxRuntime.jsx(React.Suspense, { fallback: /* @__PURE__ */ jsxRuntime.jsx(chunkQIY3ZHD2_cjs.ViewerMessage, { children: "Loading comparison\u2026" }), children: /* @__PURE__ */ jsxRuntime.jsx(
2184
2213
  NativeDocxComparison,
2185
2214
  {
2186
2215
  baseId: compareDocumentId,
@@ -2190,7 +2219,7 @@ function DocumentViewerContent({
2190
2219
  ) }),
2191
2220
  isCaptureDraft && support.renderCaptureDraft?.(documentId),
2192
2221
  !isCaptureDraft && (activeTab === "pdf" || isMedia && activeTab === "html") && !isArtifact && !isComparing && /* @__PURE__ */ jsxRuntime.jsxs(chunkUWIILWDI_cjs.ViewerPane, { hidden: activeTab !== "pdf", children: [
2193
- /* @__PURE__ */ jsxRuntime.jsx(chunkIFAIUKQQ_cjs.DocumentLabelBar, { summaries: labelSummaries }),
2222
+ /* @__PURE__ */ jsxRuntime.jsx(chunkQIY3ZHD2_cjs.DocumentLabelBar, { summaries: labelSummaries }),
2194
2223
  !isMedia && !isImage && signatureBanner,
2195
2224
  activeTab === "pdf" && !isMedia && !isImage && /* @__PURE__ */ jsxRuntime.jsx(
2196
2225
  chunkLPUQHIVP_cjs.MarkupNotices,
@@ -2200,7 +2229,7 @@ function DocumentViewerContent({
2200
2229
  onOpenVersion: (n) => setSnapshotDocumentId(`${documentId}@v${n}`)
2201
2230
  }
2202
2231
  ),
2203
- /* @__PURE__ */ jsxRuntime.jsx(chunkIFAIUKQQ_cjs.ViewerControlBar, { controls: activeTab === "pdf" && pageNav, children: /* @__PURE__ */ jsxRuntime.jsx(
2232
+ /* @__PURE__ */ jsxRuntime.jsx(chunkQIY3ZHD2_cjs.ViewerControlBar, { controls: activeTab === "pdf" && pageNav, children: /* @__PURE__ */ jsxRuntime.jsx(
2204
2233
  ViewerPdfPane,
2205
2234
  {
2206
2235
  documentId,
@@ -2239,7 +2268,7 @@ function DocumentViewerContent({
2239
2268
  }
2240
2269
  ),
2241
2270
  activeTab === "edit" && isArtifact && liveKind && /* @__PURE__ */ jsxRuntime.jsx(chunk2YV7FBLO_cjs.ArtifactCodeView, { source: liveSource, fileName: documentData?.file_name ?? void 0 }),
2242
- activeTab === "edit" && isArtifact && !liveKind && !isStreaming && !isComparing && /* @__PURE__ */ jsxRuntime.jsxs(React.Suspense, { fallback: /* @__PURE__ */ jsxRuntime.jsx(chunkIFAIUKQQ_cjs.ViewerMessage, { children: "Loading editor\u2026" }), children: [
2271
+ activeTab === "edit" && isArtifact && !liveKind && !isStreaming && !isComparing && /* @__PURE__ */ jsxRuntime.jsxs(React.Suspense, { fallback: /* @__PURE__ */ jsxRuntime.jsx(chunkQIY3ZHD2_cjs.ViewerMessage, { children: "Loading editor\u2026" }), children: [
2243
2272
  isSigned && !snapshotDocumentId && /* @__PURE__ */ jsxRuntime.jsx(chunkLPUQHIVP_cjs.SignedEditNote, {}),
2244
2273
  /* @__PURE__ */ jsxRuntime.jsx(
2245
2274
  NativeDocxEditor,
@@ -2282,8 +2311,8 @@ function DocumentViewerContent({
2282
2311
  onOpenTranslation: (id) => setViewingDocumentId(id)
2283
2312
  }
2284
2313
  ),
2285
- activeTab === "xlsx" && isXlsx && (xlsxBlob ? /* @__PURE__ */ jsxRuntime.jsx(viewers.XlsxViewer, { blob: xlsxBlob }) : /* @__PURE__ */ jsxRuntime.jsx(chunkIFAIUKQQ_cjs.ViewerMessage, { children: xlsxError ? "Failed to load spreadsheet" : "Loading spreadsheet..." })),
2286
- activeTab === "docx" && isDocx && !isComparing && /* @__PURE__ */ jsxRuntime.jsxs(React.Suspense, { fallback: /* @__PURE__ */ jsxRuntime.jsx(chunkIFAIUKQQ_cjs.ViewerMessage, { children: "Loading editor\u2026" }), children: [
2314
+ activeTab === "xlsx" && isXlsx && (xlsxBlob ? /* @__PURE__ */ jsxRuntime.jsx(viewers.XlsxViewer, { blob: xlsxBlob }) : /* @__PURE__ */ jsxRuntime.jsx(chunkQIY3ZHD2_cjs.ViewerMessage, { children: xlsxError ? "Failed to load spreadsheet" : "Loading spreadsheet..." })),
2315
+ activeTab === "docx" && isDocx && !isComparing && /* @__PURE__ */ jsxRuntime.jsxs(React.Suspense, { fallback: /* @__PURE__ */ jsxRuntime.jsx(chunkQIY3ZHD2_cjs.ViewerMessage, { children: "Loading editor\u2026" }), children: [
2287
2316
  signatureBanner,
2288
2317
  isSigned && !snapshotDocumentId && /* @__PURE__ */ jsxRuntime.jsx(chunkLPUQHIVP_cjs.SignedEditNote, {}),
2289
2318
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -2296,7 +2325,7 @@ function DocumentViewerContent({
2296
2325
  `${snapshotDocumentId || documentId}-${snapshotDocumentId ? "snapshot" : "live"}`
2297
2326
  )
2298
2327
  ] }),
2299
- streamingDoc && isStreaming && isArtifact && !liveKind && !isComparing && (activeTab === "html" || activeTab === "edit") && /* @__PURE__ */ jsxRuntime.jsx(React.Suspense, { fallback: /* @__PURE__ */ jsxRuntime.jsx(chunkIFAIUKQQ_cjs.ViewerMessage, { children: "Opening draft\u2026" }), children: /* @__PURE__ */ jsxRuntime.jsx(
2328
+ streamingDoc && isStreaming && isArtifact && !liveKind && !isComparing && (activeTab === "html" || activeTab === "edit") && /* @__PURE__ */ jsxRuntime.jsx(React.Suspense, { fallback: /* @__PURE__ */ jsxRuntime.jsx(chunkQIY3ZHD2_cjs.ViewerMessage, { children: "Opening draft\u2026" }), children: /* @__PURE__ */ jsxRuntime.jsx(
2300
2329
  StreamedWordArtifact,
2301
2330
  {
2302
2331
  documentId: documentId.startsWith("doc-") ? documentId : void 0,
@@ -2306,7 +2335,7 @@ function DocumentViewerContent({
2306
2335
  },
2307
2336
  documentId
2308
2337
  ) }),
2309
- !isCaptureDraft && !isComparing && activeTab === "html" && !(isStreaming && isArtifact && !liveKind) && /* @__PURE__ */ jsxRuntime.jsx(chunkUWIILWDI_cjs.ViewerPane, { children: /* @__PURE__ */ jsxRuntime.jsx(chunkIFAIUKQQ_cjs.ViewerControlBar, { controls: pageNav, children: /* @__PURE__ */ jsxRuntime.jsx(
2338
+ !isCaptureDraft && !isComparing && activeTab === "html" && !(isStreaming && isArtifact && !liveKind) && /* @__PURE__ */ jsxRuntime.jsx(chunkUWIILWDI_cjs.ViewerPane, { children: /* @__PURE__ */ jsxRuntime.jsx(chunkQIY3ZHD2_cjs.ViewerControlBar, { controls: pageNav, children: /* @__PURE__ */ jsxRuntime.jsx(
2310
2339
  ParsedTextView,
2311
2340
  {
2312
2341
  documentId: pdfSnapshotId || documentId,
@@ -2323,7 +2352,7 @@ function DocumentViewerContent({
2323
2352
 
2324
2353
  Object.defineProperty(exports, "ConnectedDocumentToolsProvider", {
2325
2354
  enumerable: true,
2326
- get: function () { return chunkEBRYYVNH_cjs.ConnectedDocumentToolsProvider; }
2355
+ get: function () { return chunkWB4B6TSW_cjs.ConnectedDocumentToolsProvider; }
2327
2356
  });
2328
2357
  exports.ConnectedDocumentViewer = ConnectedDocumentViewer;
2329
2358
  //# sourceMappingURL=viewer.cjs.map