@arbidocs/blocks 0.5.106 → 0.5.107

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 (249) hide show
  1. package/README.md +60 -6
  2. package/dist/{ConnectedCallDock-P7LK2HYF.cjs → ConnectedCallDock-H3WWFGXF.cjs} +8 -8
  3. package/dist/{ConnectedCallDock-P7LK2HYF.cjs.map → ConnectedCallDock-H3WWFGXF.cjs.map} +1 -1
  4. package/dist/{ConnectedCallDock-NEZJNTKH.js → ConnectedCallDock-TDYRHPAK.js} +6 -6
  5. package/dist/{ConnectedCallDock-NEZJNTKH.js.map → ConnectedCallDock-TDYRHPAK.js.map} +1 -1
  6. package/dist/{ConnectedCallRoom-FXTR4YFI.cjs → ConnectedCallRoom-55O5OUN7.cjs} +7 -7
  7. package/dist/{ConnectedCallRoom-FXTR4YFI.cjs.map → ConnectedCallRoom-55O5OUN7.cjs.map} +1 -1
  8. package/dist/{ConnectedCallRoom-K3X6ICCG.js → ConnectedCallRoom-Z6F6WCLH.js} +6 -6
  9. package/dist/{ConnectedCallRoom-K3X6ICCG.js.map → ConnectedCallRoom-Z6F6WCLH.js.map} +1 -1
  10. package/dist/{ConnectedNativeDocxComparison-7VJKOKYU.cjs → ConnectedNativeDocxComparison-DGBZJ4XA.cjs} +10 -10
  11. package/dist/{ConnectedNativeDocxComparison-7VJKOKYU.cjs.map → ConnectedNativeDocxComparison-DGBZJ4XA.cjs.map} +1 -1
  12. package/dist/{ConnectedNativeDocxComparison-FENZYWDH.js → ConnectedNativeDocxComparison-NVZRVNOS.js} +9 -9
  13. package/dist/{ConnectedNativeDocxComparison-FENZYWDH.js.map → ConnectedNativeDocxComparison-NVZRVNOS.js.map} +1 -1
  14. package/dist/{ConnectedNativeDocxEditor-HB5BHGZ2.cjs → ConnectedNativeDocxEditor-R4WINUUB.cjs} +10 -10
  15. package/dist/{ConnectedNativeDocxEditor-HB5BHGZ2.cjs.map → ConnectedNativeDocxEditor-R4WINUUB.cjs.map} +1 -1
  16. package/dist/{ConnectedNativeDocxEditor-CNQAMO2N.js → ConnectedNativeDocxEditor-RSVBN7DY.js} +8 -8
  17. package/dist/{ConnectedNativeDocxEditor-CNQAMO2N.js.map → ConnectedNativeDocxEditor-RSVBN7DY.js.map} +1 -1
  18. package/dist/{ConnectedProductionSetDialog-O4FWTZNF.js → ConnectedProductionSetDialog-2DFBXE2X.js} +5 -5
  19. package/dist/{ConnectedProductionSetDialog-O4FWTZNF.js.map → ConnectedProductionSetDialog-2DFBXE2X.js.map} +1 -1
  20. package/dist/{ConnectedProductionSetDialog-ENAIZWPK.cjs → ConnectedProductionSetDialog-KYDPQ7SG.cjs} +6 -6
  21. package/dist/{ConnectedProductionSetDialog-ENAIZWPK.cjs.map → ConnectedProductionSetDialog-KYDPQ7SG.cjs.map} +1 -1
  22. package/dist/{ConnectedStreamedWordArtifact-ILMKFCDC.js → ConnectedStreamedWordArtifact-HLJ5IIOU.js} +9 -9
  23. package/dist/ConnectedStreamedWordArtifact-HLJ5IIOU.js.map +1 -0
  24. package/dist/{ConnectedStreamedWordArtifact-BF6JET2D.cjs → ConnectedStreamedWordArtifact-JQ34AOUU.cjs} +10 -10
  25. package/dist/ConnectedStreamedWordArtifact-JQ34AOUU.cjs.map +1 -0
  26. package/dist/{DocumentReviewCard-UOLXZKZE.js → DocumentReviewCard-7JSXRJZ2.js} +6 -6
  27. package/dist/{DocumentReviewCard-UOLXZKZE.js.map → DocumentReviewCard-7JSXRJZ2.js.map} +1 -1
  28. package/dist/{DocumentReviewCard-QVQ2LGFH.cjs → DocumentReviewCard-C4HVT3WM.cjs} +8 -8
  29. package/dist/{DocumentReviewCard-QVQ2LGFH.cjs.map → DocumentReviewCard-C4HVT3WM.cjs.map} +1 -1
  30. package/dist/{FilesViewerDialog-5ELQYWAZ.js → FilesViewerDialog-IMQTZWKD.js} +16 -16
  31. package/dist/{FilesViewerDialog-5ELQYWAZ.js.map → FilesViewerDialog-IMQTZWKD.js.map} +1 -1
  32. package/dist/{FilesViewerDialog-XNGHHWYS.cjs → FilesViewerDialog-UP7GFHYN.cjs} +23 -23
  33. package/dist/{FilesViewerDialog-XNGHHWYS.cjs.map → FilesViewerDialog-UP7GFHYN.cjs.map} +1 -1
  34. package/dist/{RechartsRenderer-EJRIFAAP.js → RechartsRenderer-23OF4H6X.js} +3 -3
  35. package/dist/{RechartsRenderer-EJRIFAAP.js.map → RechartsRenderer-23OF4H6X.js.map} +1 -1
  36. package/dist/{RechartsRenderer-CNFQ5EHF.cjs → RechartsRenderer-GIRCW7DB.cjs} +4 -4
  37. package/dist/{RechartsRenderer-CNFQ5EHF.cjs.map → RechartsRenderer-GIRCW7DB.cjs.map} +1 -1
  38. package/dist/{WorkspaceTableView-HRCV6WR7.cjs → WorkspaceTableView-PJM47B5F.cjs} +8 -8
  39. package/dist/{WorkspaceTableView-HRCV6WR7.cjs.map → WorkspaceTableView-PJM47B5F.cjs.map} +1 -1
  40. package/dist/{WorkspaceTableView-DIMTW5P5.js → WorkspaceTableView-YDA7A4UJ.js} +6 -6
  41. package/dist/{WorkspaceTableView-DIMTW5P5.js.map → WorkspaceTableView-YDA7A4UJ.js.map} +1 -1
  42. package/dist/{ai-E6FA4Y4J.cjs → ai-ADS6YSS2.cjs} +17 -17
  43. package/dist/ai-ADS6YSS2.cjs.map +1 -0
  44. package/dist/{ai-WASSGEMI.js → ai-KHWTGBT5.js} +9 -9
  45. package/dist/ai-KHWTGBT5.js.map +1 -0
  46. package/dist/auth/index.cjs +32 -32
  47. package/dist/auth/index.js +1 -1
  48. package/dist/calls/index.cjs +49 -49
  49. package/dist/calls/index.js +10 -10
  50. package/dist/{chunk-VJAMDAR6.cjs → chunk-22KAKJ3W.cjs} +4 -4
  51. package/dist/{chunk-VJAMDAR6.cjs.map → chunk-22KAKJ3W.cjs.map} +1 -1
  52. package/dist/{chunk-DEIF2VAA.js → chunk-3GFQNJYE.js} +3 -3
  53. package/dist/{chunk-DEIF2VAA.js.map → chunk-3GFQNJYE.js.map} +1 -1
  54. package/dist/{chunk-LUO46ELJ.cjs → chunk-3YZKDCWY.cjs} +2 -2
  55. package/dist/chunk-3YZKDCWY.cjs.map +1 -0
  56. package/dist/{chunk-5OUOPKGE.cjs → chunk-45OU2UAA.cjs} +18 -18
  57. package/dist/{chunk-5OUOPKGE.cjs.map → chunk-45OU2UAA.cjs.map} +1 -1
  58. package/dist/{chunk-JXKNPKU6.cjs → chunk-4CIVQWAX.cjs} +4 -4
  59. package/dist/{chunk-JXKNPKU6.cjs.map → chunk-4CIVQWAX.cjs.map} +1 -1
  60. package/dist/{chunk-VOI26MXJ.cjs → chunk-5AC52BHL.cjs} +16 -16
  61. package/dist/{chunk-VOI26MXJ.cjs.map → chunk-5AC52BHL.cjs.map} +1 -1
  62. package/dist/{chunk-OG3TI5GX.js → chunk-6M5NAAWX.js} +47 -5
  63. package/dist/chunk-6M5NAAWX.js.map +1 -0
  64. package/dist/{chunk-IIUEDF3F.js → chunk-6ZYOUT73.js} +7 -7
  65. package/dist/{chunk-IIUEDF3F.js.map → chunk-6ZYOUT73.js.map} +1 -1
  66. package/dist/{chunk-TRI3LQVR.js → chunk-7S7YVBFK.js} +5 -5
  67. package/dist/{chunk-TRI3LQVR.js.map → chunk-7S7YVBFK.js.map} +1 -1
  68. package/dist/{chunk-QN5GTCPB.cjs → chunk-7V4OCZS6.cjs} +8 -8
  69. package/dist/{chunk-QN5GTCPB.cjs.map → chunk-7V4OCZS6.cjs.map} +1 -1
  70. package/dist/{chunk-S7NJVJJX.cjs → chunk-AHMRYY7J.cjs} +25 -25
  71. package/dist/{chunk-S7NJVJJX.cjs.map → chunk-AHMRYY7J.cjs.map} +1 -1
  72. package/dist/{chunk-GK5BMDS6.js → chunk-AVGHTUPE.js} +4 -4
  73. package/dist/{chunk-GK5BMDS6.js.map → chunk-AVGHTUPE.js.map} +1 -1
  74. package/dist/{chunk-RAYNCZ7O.js → chunk-AZCMKGDG.js} +3 -3
  75. package/dist/{chunk-RAYNCZ7O.js.map → chunk-AZCMKGDG.js.map} +1 -1
  76. package/dist/{chunk-IJVU5MZA.js → chunk-BAUZUIHB.js} +5 -5
  77. package/dist/{chunk-IJVU5MZA.js.map → chunk-BAUZUIHB.js.map} +1 -1
  78. package/dist/{chunk-2VHZUSFW.js → chunk-BBWLFK3C.js} +3 -3
  79. package/dist/{chunk-2VHZUSFW.js.map → chunk-BBWLFK3C.js.map} +1 -1
  80. package/dist/{chunk-MW7FGIF4.cjs → chunk-BFVCYBND.cjs} +9 -9
  81. package/dist/{chunk-MW7FGIF4.cjs.map → chunk-BFVCYBND.cjs.map} +1 -1
  82. package/dist/{chunk-7ONU7EWY.js → chunk-BH6IKGZ3.js} +5 -5
  83. package/dist/{chunk-7ONU7EWY.js.map → chunk-BH6IKGZ3.js.map} +1 -1
  84. package/dist/{chunk-RNX5LAQK.cjs → chunk-C42WBPH4.cjs} +7 -7
  85. package/dist/{chunk-RNX5LAQK.cjs.map → chunk-C42WBPH4.cjs.map} +1 -1
  86. package/dist/{chunk-LM5CPXJO.cjs → chunk-CRLFLMTK.cjs} +19 -13
  87. package/dist/chunk-CRLFLMTK.cjs.map +1 -0
  88. package/dist/{chunk-CWC6W2NE.cjs → chunk-D35EHOK5.cjs} +11 -11
  89. package/dist/{chunk-CWC6W2NE.cjs.map → chunk-D35EHOK5.cjs.map} +1 -1
  90. package/dist/{chunk-BMHW7WTF.js → chunk-DBKZANTC.js} +4 -4
  91. package/dist/{chunk-BMHW7WTF.js.map → chunk-DBKZANTC.js.map} +1 -1
  92. package/dist/{chunk-Q5U6Y2NO.js → chunk-E2P4JJLJ.js} +4 -45
  93. package/dist/chunk-E2P4JJLJ.js.map +1 -0
  94. package/dist/{chunk-D3GZWKHW.cjs → chunk-EKSHUNJI.cjs} +9 -9
  95. package/dist/{chunk-D3GZWKHW.cjs.map → chunk-EKSHUNJI.cjs.map} +1 -1
  96. package/dist/{chunk-5XQNXDST.js → chunk-FPOKWML2.js} +18 -5
  97. package/dist/chunk-FPOKWML2.js.map +1 -0
  98. package/dist/{chunk-M4TM3K52.cjs → chunk-FSXQHEFQ.cjs} +16 -16
  99. package/dist/{chunk-M4TM3K52.cjs.map → chunk-FSXQHEFQ.cjs.map} +1 -1
  100. package/dist/{chunk-35BADIIF.cjs → chunk-GX75YCWJ.cjs} +23 -23
  101. package/dist/{chunk-35BADIIF.cjs.map → chunk-GX75YCWJ.cjs.map} +1 -1
  102. package/dist/{chunk-7IF3E3I2.cjs → chunk-I7CJDF3V.cjs} +4 -4
  103. package/dist/{chunk-7IF3E3I2.cjs.map → chunk-I7CJDF3V.cjs.map} +1 -1
  104. package/dist/{chunk-KYLQRS3O.js → chunk-IHOV6OTA.js} +4 -4
  105. package/dist/{chunk-KYLQRS3O.js.map → chunk-IHOV6OTA.js.map} +1 -1
  106. package/dist/{chunk-OXHAZN43.cjs → chunk-IXL2KJOZ.cjs} +26 -26
  107. package/dist/{chunk-OXHAZN43.cjs.map → chunk-IXL2KJOZ.cjs.map} +1 -1
  108. package/dist/{chunk-632JXVXY.js → chunk-KIXFXCHL.js} +15 -9
  109. package/dist/chunk-KIXFXCHL.js.map +1 -0
  110. package/dist/{chunk-PIWT2GCY.cjs → chunk-LFYKB7KF.cjs} +15 -15
  111. package/dist/{chunk-PIWT2GCY.cjs.map → chunk-LFYKB7KF.cjs.map} +1 -1
  112. package/dist/{chunk-7Q6EVFMT.js → chunk-LYW5A35J.js} +9 -9
  113. package/dist/{chunk-7Q6EVFMT.js.map → chunk-LYW5A35J.js.map} +1 -1
  114. package/dist/chunk-NFK2SEUD.js +577 -0
  115. package/dist/chunk-NFK2SEUD.js.map +1 -0
  116. package/dist/{chunk-TJQMC7GJ.cjs → chunk-NNBL3HPG.cjs} +4 -4
  117. package/dist/{chunk-TJQMC7GJ.cjs.map → chunk-NNBL3HPG.cjs.map} +1 -1
  118. package/dist/{chunk-Y5P5ZMHQ.js → chunk-NWBCZ4PA.js} +4 -4
  119. package/dist/{chunk-Y5P5ZMHQ.js.map → chunk-NWBCZ4PA.js.map} +1 -1
  120. package/dist/{chunk-5UMZXDGL.cjs → chunk-O27K7KTZ.cjs} +161 -7
  121. package/dist/chunk-O27K7KTZ.cjs.map +1 -0
  122. package/dist/{chunk-GARDQALH.js → chunk-OLAYDOPC.js} +5 -5
  123. package/dist/{chunk-GARDQALH.js.map → chunk-OLAYDOPC.js.map} +1 -1
  124. package/dist/chunk-ORELHENJ.cjs +594 -0
  125. package/dist/chunk-ORELHENJ.cjs.map +1 -0
  126. package/dist/{chunk-NUOMPVKQ.js → chunk-OWHO2TO3.js} +3 -3
  127. package/dist/{chunk-NUOMPVKQ.js.map → chunk-OWHO2TO3.js.map} +1 -1
  128. package/dist/{chunk-6XNWGOS3.cjs → chunk-PHDUN4SG.cjs} +187 -80
  129. package/dist/chunk-PHDUN4SG.cjs.map +1 -0
  130. package/dist/{chunk-KGUBKE3V.cjs → chunk-PL7O3RJJ.cjs} +48 -4
  131. package/dist/chunk-PL7O3RJJ.cjs.map +1 -0
  132. package/dist/{chunk-BH4MK2J5.js → chunk-QG6MRLZG.js} +2 -2
  133. package/dist/chunk-QG6MRLZG.js.map +1 -0
  134. package/dist/{chunk-YPTZNQPJ.cjs → chunk-RCZRI72J.cjs} +4 -4
  135. package/dist/{chunk-YPTZNQPJ.cjs.map → chunk-RCZRI72J.cjs.map} +1 -1
  136. package/dist/{chunk-E7STRFBT.cjs → chunk-SCLGUHLU.cjs} +4 -4
  137. package/dist/{chunk-E7STRFBT.cjs.map → chunk-SCLGUHLU.cjs.map} +1 -1
  138. package/dist/{chunk-EOTJX536.js → chunk-T5ZMG6MC.js} +3 -3
  139. package/dist/{chunk-EOTJX536.js.map → chunk-T5ZMG6MC.js.map} +1 -1
  140. package/dist/{chunk-LWEX3AOZ.js → chunk-TG4IICWO.js} +4 -4
  141. package/dist/{chunk-LWEX3AOZ.js.map → chunk-TG4IICWO.js.map} +1 -1
  142. package/dist/{chunk-ET3W24JV.js → chunk-TNKPQ3EF.js} +9 -9
  143. package/dist/{chunk-ET3W24JV.js.map → chunk-TNKPQ3EF.js.map} +1 -1
  144. package/dist/{chunk-QFKL4HV2.js → chunk-U5F5P4YU.js} +118 -15
  145. package/dist/chunk-U5F5P4YU.js.map +1 -0
  146. package/dist/{chunk-N52PBUAP.cjs → chunk-U6LQ6Z3P.cjs} +10 -10
  147. package/dist/{chunk-N52PBUAP.cjs.map → chunk-U6LQ6Z3P.cjs.map} +1 -1
  148. package/dist/{chunk-JNVJQCGF.cjs → chunk-UCA4JLLJ.cjs} +4 -4
  149. package/dist/{chunk-JNVJQCGF.cjs.map → chunk-UCA4JLLJ.cjs.map} +1 -1
  150. package/dist/{chunk-3RUQHIDC.js → chunk-UQ2OBHMV.js} +7 -7
  151. package/dist/{chunk-3RUQHIDC.js.map → chunk-UQ2OBHMV.js.map} +1 -1
  152. package/dist/{chunk-VYJF4ZQY.cjs → chunk-V6C2MBFY.cjs} +3 -2
  153. package/dist/chunk-V6C2MBFY.cjs.map +1 -0
  154. package/dist/{chunk-O4X7HXLF.cjs → chunk-VCEX7COE.cjs} +2 -45
  155. package/dist/chunk-VCEX7COE.cjs.map +1 -0
  156. package/dist/{chunk-QTSNHGSI.js → chunk-WFM6E7DD.js} +3 -3
  157. package/dist/{chunk-QTSNHGSI.js.map → chunk-WFM6E7DD.js.map} +1 -1
  158. package/dist/{chunk-SY2WD6VA.cjs → chunk-WI3BVKEC.cjs} +5 -5
  159. package/dist/{chunk-SY2WD6VA.cjs.map → chunk-WI3BVKEC.cjs.map} +1 -1
  160. package/dist/{chunk-LWCLAAEX.js → chunk-WJHRWXWJ.js} +3 -3
  161. package/dist/{chunk-LWCLAAEX.js.map → chunk-WJHRWXWJ.js.map} +1 -1
  162. package/dist/{chunk-FVZ2CN4A.js → chunk-WQH2WWZE.js} +3 -2
  163. package/dist/chunk-WQH2WWZE.js.map +1 -0
  164. package/dist/{chunk-V2CKYM4B.cjs → chunk-XHN5KOI2.cjs} +9 -9
  165. package/dist/{chunk-V2CKYM4B.cjs.map → chunk-XHN5KOI2.cjs.map} +1 -1
  166. package/dist/{chunk-DBHBJIF4.js → chunk-YJWAGXYM.js} +3 -3
  167. package/dist/{chunk-DBHBJIF4.js.map → chunk-YJWAGXYM.js.map} +1 -1
  168. package/dist/{chunk-KUI2IC7W.js → chunk-YLKHTBYA.js} +3 -3
  169. package/dist/{chunk-KUI2IC7W.js.map → chunk-YLKHTBYA.js.map} +1 -1
  170. package/dist/{chunk-73FJ6L6I.cjs → chunk-ZMVF7EYJ.cjs} +18 -5
  171. package/dist/chunk-ZMVF7EYJ.cjs.map +1 -0
  172. package/dist/{chunk-CEVVGJQX.js → chunk-ZNY5W3VX.js} +162 -9
  173. package/dist/chunk-ZNY5W3VX.js.map +1 -0
  174. package/dist/connect/docx.cjs +13 -13
  175. package/dist/connect/docx.js +9 -9
  176. package/dist/connect/index.cjs +1100 -884
  177. package/dist/connect/index.cjs.map +1 -1
  178. package/dist/connect/index.d.ts +1 -0
  179. package/dist/connect/index.js +475 -274
  180. package/dist/connect/index.js.map +1 -1
  181. package/dist/connect/viewer.cjs +12 -12
  182. package/dist/connect/viewer.js +10 -10
  183. package/dist/connection/account-cluster/ConnectedAccountCluster.d.ts +1 -1
  184. package/dist/connection/dashboards/ConnectedDashboardsPage.d.ts +13 -2
  185. package/dist/connection/dashboards/index.d.ts +1 -1
  186. package/dist/connection/dashboards/templates.d.ts +14 -3
  187. package/dist/connection/remote-control/ConnectedRemoteControlConsent.d.ts +17 -0
  188. package/dist/connection/remote-control/ConnectedRemoteControlIndicator.d.ts +8 -0
  189. package/dist/connection/remote-control/ConnectedRemoteControlSwitch.d.ts +1 -0
  190. package/dist/connection/remote-control/index.d.ts +4 -0
  191. package/dist/connection/remote-control/remoteControl.d.ts +40 -0
  192. package/dist/connection/routes/useDeepLinkSync.d.ts +4 -1
  193. package/dist/connection/runtime/ConnectedAppRuntime.d.ts +1 -1
  194. package/dist/connection/settings-page/settingsSections.d.ts +1 -1
  195. package/dist/connection/tags/ConnectedTagTable.d.ts +1 -1
  196. package/dist/dashboards/index.cjs +327 -116
  197. package/dist/dashboards/index.cjs.map +1 -1
  198. package/dist/dashboards/index.js +311 -101
  199. package/dist/dashboards/index.js.map +1 -1
  200. package/dist/embed/index.cjs +21 -21
  201. package/dist/embed/index.js +14 -14
  202. package/dist/guided/GuidedCursor.d.ts +21 -0
  203. package/dist/guided/cursor.d.ts +56 -0
  204. package/dist/guided/index.d.ts +5 -0
  205. package/dist/guided/runner.d.ts +30 -0
  206. package/dist/guided/sequences.d.ts +80 -0
  207. package/dist/guided/surfaces.d.ts +13 -0
  208. package/dist/guided/useGuidedRuns.d.ts +3 -0
  209. package/dist/index.cjs +171 -135
  210. package/dist/index.d.ts +1 -0
  211. package/dist/index.js +7 -7
  212. package/dist/provider/host.d.ts +6 -0
  213. package/dist/settings/PlanBadge.d.ts +1 -1
  214. package/dist/settings/TipsEditor.d.ts +6 -3
  215. package/dist/settings/index.cjs +152 -151
  216. package/dist/settings/index.js +3 -2
  217. package/dist/shell/index.cjs +46 -46
  218. package/dist/shell/index.js +3 -3
  219. package/dist/studio/index.cjs +15 -15
  220. package/dist/studio/index.js +9 -9
  221. package/dist/styles.css +1 -1
  222. package/dist/workflow-canvas/index.cjs +25 -25
  223. package/dist/workflow-canvas/index.js +13 -13
  224. package/node_modules/@arbidocs/coedit/package.json +1 -1
  225. package/package.json +5 -5
  226. package/dist/ConnectedStreamedWordArtifact-BF6JET2D.cjs.map +0 -1
  227. package/dist/ConnectedStreamedWordArtifact-ILMKFCDC.js.map +0 -1
  228. package/dist/ai-E6FA4Y4J.cjs.map +0 -1
  229. package/dist/ai-WASSGEMI.js.map +0 -1
  230. package/dist/chunk-5UMZXDGL.cjs.map +0 -1
  231. package/dist/chunk-5XQNXDST.js.map +0 -1
  232. package/dist/chunk-632JXVXY.js.map +0 -1
  233. package/dist/chunk-6XNWGOS3.cjs.map +0 -1
  234. package/dist/chunk-73FJ6L6I.cjs.map +0 -1
  235. package/dist/chunk-BH4MK2J5.js.map +0 -1
  236. package/dist/chunk-C4TGESIB.cjs +0 -260
  237. package/dist/chunk-C4TGESIB.cjs.map +0 -1
  238. package/dist/chunk-CEVVGJQX.js.map +0 -1
  239. package/dist/chunk-FVZ2CN4A.js.map +0 -1
  240. package/dist/chunk-KGUBKE3V.cjs.map +0 -1
  241. package/dist/chunk-LM5CPXJO.cjs.map +0 -1
  242. package/dist/chunk-LUO46ELJ.cjs.map +0 -1
  243. package/dist/chunk-MHFWGIF4.js +0 -254
  244. package/dist/chunk-MHFWGIF4.js.map +0 -1
  245. package/dist/chunk-O4X7HXLF.cjs.map +0 -1
  246. package/dist/chunk-OG3TI5GX.js.map +0 -1
  247. package/dist/chunk-Q5U6Y2NO.js.map +0 -1
  248. package/dist/chunk-QFKL4HV2.js.map +0 -1
  249. package/dist/chunk-VYJF4ZQY.cjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/calls/recording-labels.ts","../src/calls/call-cards.ts","../src/calls/HeaderAction.tsx","../src/connection/entities/ConnectedUserEntity.tsx","../src/calls/connected/CallUserPill.tsx"],"names":["jsxs","Button","jsx","Tooltip","TooltipTrigger","TooltipContent","useArbiWsStatus","useArbiWsStore","useUserSettings","memo","ConnectedUserEntity","useConnectedWorkspace","useBlocksEnvironment","useWorkspaces","useMemo","isAgent","UserEntity","getUserInitials","getUserDisplayName","getUserAvatarColor","agentAvatarColors","EntityTooltip","EntityTooltipHeader","Avatar","cn","AvatarImage","AvatarFallback","ArbiBotIcon","EntityTooltipSection","EntityTooltipHint","Users","ShieldIcon","getWorkspaceColor","MessageCircleMore","useArbiSession","usePeople","CallUserPill"],"mappings":"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","file":"chunk-7IF3E3I2.cjs","sourcesContent":["import type { calls } from '@arbidocs/sdk/browser'\n\n/** Shared by the recording UI (kept out of the component files for fast refresh). */\n\n/** How a recording mode is named in the UI. */\nexport const MODE_LABEL: Record<calls.RecordingMode, string> = {\n audio: 'Audio',\n audio_video: 'Audio + video',\n}\n\n/** Expiry choices (days; null = kept). */\nexport const EXPIRY_DAYS = [null, 7, 30, 90] as const\n\n/** `expires_at` for a choice, from now. */\nexport function expiryFor(days: number | null, now = Date.now()): string | null {\n return days ? new Date(now + days * 86_400_000).toISOString() : null\n}\n\n/** Which expiry choice an `expires_at` is closest to (for the select). */\nexport function expiryChoiceOf(expiresAt: string | null, now = Date.now()): string {\n if (!expiresAt) return 'none'\n const days = (Date.parse(expiresAt) - now) / 86_400_000\n const nearest = [7, 30, 90].reduce((best, d) =>\n Math.abs(d - days) < Math.abs(best - days) ? d : best\n )\n return String(nearest)\n}\n","/** Pure helpers for the call cards and call titles (kept apart from the components). */\n\nimport type { calls } from '@arbidocs/sdk/browser'\n\nexport interface CallLogDetail {\n call_ext_id: string\n started_by: string | null\n invited: string[]\n started_at: string | null\n ended_at: string | null\n duration_s: number | null\n joined: string[]\n meeting_conversation_ext_id: string | null\n}\n\nconst ids = (v: unknown): string[] =>\n Array.isArray(v) ? v.filter((x): x is string => typeof x === 'string') : []\nconst str = (v: unknown): string | null => (typeof v === 'string' && v ? v : null)\n\n/** The card's detail from an activity event's `detail`, or null when it is not a call card. */\nexport function parseCallLogDetail(\n detail: Record<string, unknown> | null | undefined\n): CallLogDetail | null {\n const callExtId = str(detail?.call_ext_id)\n if (!detail || !callExtId) return null\n return {\n call_ext_id: callExtId,\n started_by: str(detail.started_by),\n invited: ids(detail.invited),\n started_at: str(detail.started_at),\n ended_at: str(detail.ended_at),\n duration_s: typeof detail.duration_s === 'number' ? detail.duration_s : null,\n joined: ids(detail.joined),\n meeting_conversation_ext_id: str(detail.meeting_conversation_ext_id),\n }\n}\n\n/** \"45 s\", \"12 min\", \"1 h 5 min\". */\nexport function formatCallDuration(seconds: number | null | undefined): string | null {\n if (seconds == null || seconds < 0) return null\n if (seconds < 60) return `${Math.round(seconds)} s`\n const minutes = Math.round(seconds / 60)\n if (minutes < 60) return `${minutes} min`\n const h = Math.floor(minutes / 60)\n const m = minutes % 60\n return m ? `${h} h ${m} min` : `${h} h`\n}\n\n/** Whether the call's current session is running (the server's view, or `call.started`). */\nexport function isCallLive(\n call: Pick<calls.CallResponse, 'started_at' | 'ended_at' | 'cancelled'> | undefined,\n liveNow: boolean\n): boolean {\n if (liveNow) return true\n if (!call?.started_at || call.cancelled) return false\n return !call.ended_at || Date.parse(call.started_at) > Date.parse(call.ended_at)\n}\n\n/** \"Call with Ada, Bob\" (the title is encrypted under the call key). */\nexport function contactsCallTitle(names: string[]): string | null {\n if (!names.length) return null\n const shown = names.slice(0, 3).join(', ')\n return `Call with ${shown}${names.length > 3 ? ` +${names.length - 3}` : ''}`\n}\n","/**\n * A secondary action of a conversation header (Save transcript, Recordings): labelled where there\n * is room, or icon-only with the label in a tooltip (and for screen readers) where the header is\n * crowded — the thread's title keeps priority.\n */\n\nimport type { ReactElement, ReactNode } from 'react'\nimport { Button, Tooltip, TooltipContent, TooltipTrigger } from '@arbidocs/react/ui'\n\nexport function HeaderAction({\n label,\n icon,\n iconOnly = false,\n onClick,\n testId,\n className,\n}: {\n label: string\n icon: ReactNode\n iconOnly?: boolean\n onClick(): void\n testId?: string\n className?: string\n}): ReactElement {\n if (!iconOnly) {\n return (\n <Button\n type=\"button\"\n size=\"sm\"\n variant=\"outline\"\n className={className}\n onClick={onClick}\n data-testid={testId}\n >\n <span className=\"mr-1 inline-flex\">{icon}</span>\n {label}\n </Button>\n )\n }\n return (\n <Tooltip>\n <TooltipTrigger asChild>\n <Button\n type=\"button\"\n size=\"icon\"\n variant=\"ghost\"\n className={className}\n aria-label={label}\n onClick={onClick}\n data-testid={testId}\n >\n {icon}\n <span className=\"sr-only\">{label}</span>\n </Button>\n </TooltipTrigger>\n <TooltipContent side=\"bottom\">{label}</TooltipContent>\n </Tooltip>\n )\n}\n","/**\n * A person, connected: the shared avatar / pill (`UserEntity` in `@arbidocs/react/ui`) with what\n * the session knows about them. \"You\" for the signed-in user, their live presence (and, on your own\n * avatar, the live connection's status unless you hide your online status), the workspaces you\n * share and an agent's owner in the hover card. A click on someone else opens your direct chat\n * with them (`openDirectChat`); on yourself, your settings.\n */\nimport { memo, useMemo, type MouseEvent } from 'react'\nimport { MessageCircleMore, Users } from 'lucide-react'\nimport {\n ArbiBotHeadIcon as ArbiBotIcon,\n useArbiWsStatus,\n useArbiWsStore,\n useUserSettings,\n useWorkspaces,\n} from '@arbidocs/react'\nimport {\n Avatar,\n AvatarFallback,\n AvatarImage,\n ShieldIcon,\n UserEntity,\n agentAvatarColors,\n cn,\n getWorkspaceColor,\n type PresenceDisplayStatus,\n getUserAvatarColor,\n getUserDisplayName,\n getUserInitials,\n isAgent,\n} from '@arbidocs/react/ui'\nimport type { components } from '@arbidocs/client'\nimport {\n EntityTooltip,\n EntityTooltipHeader,\n EntityTooltipHint,\n EntityTooltipSection,\n} from '../../components/EntityTooltip'\nimport { useBlocksEnvironment } from '../../provider/environment'\nimport { useConnectedWorkspace } from '../ConnectionProvider'\n\ntype UserResponse = components['schemas']['UserResponse']\n\nexport interface ConnectedUserEntityProps {\n user?: UserResponse | null\n size?: 'xs' | 'sm' | 'md' | 'lg'\n variant?: 'icon' | 'pill'\n className?: string\n /** Hovering shows their card (default true). */\n showTooltip?: boolean\n /** The presence dot (default true). */\n showPresence?: boolean\n /** A click opens the chat with them, or your settings (default true). */\n interactive?: boolean\n /** Your own label in place of \"You\" (e.g. \"Ada Lovelace (me)\" in a call). */\n selfLabel?: string\n}\n\n/** The presence dot: your own live connection, or the person's presence. */\nfunction useDisplayStatus(\n user: UserResponse | null | undefined,\n isMe: boolean,\n showPresence: boolean\n): PresenceDisplayStatus | undefined {\n const wsStatus = useArbiWsStatus()\n const presence = useArbiWsStore((s) =>\n showPresence && user ? s.presence[user.external_id] : undefined\n )\n const { data: settings } = useUserSettings()\n if (!showPresence) return undefined\n if (isMe) {\n // Hiding your online status hides only \"connected\": connection trouble always shows.\n if (wsStatus === 'connected') return settings?.hide_online_status ? 'hidden' : 'connected'\n return wsStatus === 'reconnecting' ? 'connecting' : wsStatus\n }\n // `unknown` (removed from contacts, or hidden) and no news show grey.\n return presence === 'online' ? 'connected' : 'hidden'\n}\n\nexport const ConnectedUserEntity = memo(function ConnectedUserEntity({\n user,\n size = 'md',\n variant = 'pill',\n className,\n showTooltip = true,\n showPresence = true,\n interactive = true,\n selfLabel,\n}: ConnectedUserEntityProps) {\n const { userId: currentUserId } = useConnectedWorkspace()\n const { openDirectChat, openSettings } = useBlocksEnvironment()\n const isMe = !!(user && currentUserId && user.external_id === currentUserId)\n const displayStatus = useDisplayStatus(user, isMe, showPresence)\n\n // The workspaces you share with them, and an agent's human owner (the hover card only).\n const { data: workspaces = [] } = useWorkspaces()\n const sharedWorkspaces = useMemo(() => {\n if (!user || isMe) return []\n return workspaces.filter((ws) =>\n ws.users?.some((member) => member.user.external_id === user.external_id)\n )\n }, [workspaces, user, isMe])\n const agentOwner = useMemo(() => {\n if (!user || !isAgent(user) || !user.parent_ext_id) return null\n for (const ws of workspaces) {\n const found = ws.users?.find((member) => member.user.external_id === user.parent_ext_id)\n if (found) return found.user\n }\n return null\n }, [user, workspaces])\n\n if (!user) return <UserEntity empty size={size} className={className} />\n\n const initials = getUserInitials(user)\n const userIsAgent = isAgent(user)\n const fullName = getUserDisplayName(user)\n const colorClass = getUserAvatarColor(user.external_id)\n const agentStyle = userIsAgent ? agentAvatarColors(colorClass) : undefined\n const canChat = !isMe && !!openDirectChat\n\n const onClick = (e: MouseEvent) => {\n e.stopPropagation()\n if (isMe) openSettings()\n else openDirectChat?.(user.external_id)\n }\n\n const tooltipContent = (\n <EntityTooltip>\n <EntityTooltipHeader\n lead={\n <Avatar\n className={cn(\n 'h-8 w-8',\n userIsAgent ? 'rounded-full border-2 border-dashed' : 'border border-white'\n )}\n style={agentStyle}\n >\n {user.picture && <AvatarImage src={user.picture} alt={initials} />}\n <AvatarFallback\n className={cn(\n 'text-xs font-semibold leading-none',\n userIsAgent ? 'rounded-full bg-transparent' : `text-white ${colorClass}`\n )}\n style={agentStyle}\n >\n {initials}\n </AvatarFallback>\n </Avatar>\n }\n title={fullName}\n titleAccessory={\n userIsAgent ? <ArbiBotIcon className=\"w-3.5 h-3.5 text-primary\" /> : undefined\n }\n subtitle={user.email}\n />\n\n {userIsAgent && agentOwner && (\n <EntityTooltipSection>\n <EntityTooltipHint icon={<ArbiBotIcon className=\"w-3.5 h-3.5 flex-shrink-0\" />}>\n Agent of{' '}\n <span className=\"font-medium text-foreground\">{getUserDisplayName(agentOwner)}</span>\n </EntityTooltipHint>\n </EntityTooltipSection>\n )}\n\n {sharedWorkspaces.length > 0 && (\n <EntityTooltipSection\n icon={<Users className=\"w-3.5 h-3.5 flex-shrink-0\" />}\n heading=\"Shared Workspaces\"\n >\n <div className=\"flex flex-wrap gap-1 pl-5\">\n {sharedWorkspaces.slice(0, 3).map((ws) => (\n <div\n key={ws.external_id}\n className=\"inline-flex items-center gap-1 px-1.5 py-0.5 bg-muted rounded text-xs\"\n >\n <ShieldIcon\n char={ws.name.charAt(0)}\n workspaceColor={getWorkspaceColor(ws.external_id)}\n size={14}\n />\n <span className=\"truncate max-w-[80px]\">{ws.name}</span>\n </div>\n ))}\n {sharedWorkspaces.length > 3 && (\n <span className=\"text-xs text-muted-foreground\">\n +{sharedWorkspaces.length - 3} more\n </span>\n )}\n </div>\n </EntityTooltipSection>\n )}\n\n {interactive && variant === 'pill' && canChat && (\n <EntityTooltipHint isRuled icon={<MessageCircleMore className=\"w-3 h-3\" />}>\n Click to send message\n </EntityTooltipHint>\n )}\n </EntityTooltip>\n )\n\n return (\n <UserEntity\n size={size}\n variant={variant}\n className={className}\n showTooltip={showTooltip}\n interactive={interactive && (isMe || canChat)}\n initials={initials}\n displayName={isMe ? (selfLabel ?? 'You') : fullName}\n picture={user.picture}\n colorClass={colorClass}\n isAgent={userIsAgent}\n isVerified={user.is_identity_verified === true}\n agentStyle={agentStyle}\n isMe={isMe}\n displayStatus={displayStatus}\n onClick={onClick}\n tooltipContent={tooltipContent}\n />\n )\n})\n","/**\n * A person in the call UI, shown the way people are shown everywhere: the `ConnectedUserEntity`\n * pill (avatar with initials or picture, name, verified tick), without presence. My own reads\n * \"Name (me)\". The user is one the session already knows (me, contacts, workspace members); a\n * participant it does not know yet gets a pill built from the call's own name for them.\n */\n\nimport { memo, useMemo, type ReactElement } from 'react'\nimport { useArbiSession, usePeople, type UserResponse } from '@arbidocs/react'\nimport { getUserDisplayName, type EntitySize } from '@arbidocs/react/ui'\nimport { ConnectedUserEntity } from '../../connection/entities/ConnectedUserEntity'\n\n/** A person in the call UI (a participant, a speaker, a host). */\nexport interface CallUserPillProps {\n /** Their LiveKit identity: the user ext id. */\n identity: string\n /** The call's name for them, for someone the session does not know. */\n name?: string | null\n size?: EntitySize\n variant?: 'pill' | 'icon'\n /** Click opens a chat with them (off by default inside the call). */\n interactive?: boolean\n className?: string\n}\n\n/** The known user for an identity (user ext id), else a stand-in from the call's name. */\nfunction useCallUser(identity: string, fallbackName?: string | null): UserResponse {\n const me = useArbiSession().user\n const { byId } = usePeople()\n return useMemo(() => {\n if (me && me.external_id === identity) return me as UserResponse\n const user = byId(identity)\n if (user) return user\n const [given = '', ...rest] = (fallbackName || identity).trim().split(/\\s+/)\n return {\n external_id: identity,\n given_name: given,\n family_name: rest.join(' '),\n email: '',\n } as UserResponse\n }, [me, byId, identity, fallbackName])\n}\n\nexport const CallUserPill = memo(function CallUserPill({\n identity,\n name,\n size = 'xs',\n variant = 'pill',\n interactive = false,\n className,\n}: CallUserPillProps): ReactElement {\n const user = useCallUser(identity, name)\n return (\n <ConnectedUserEntity\n user={user}\n size={size}\n variant={variant}\n interactive={interactive}\n showPresence={false}\n selfLabel={`${getUserDisplayName(user)} (me)`}\n className={className}\n />\n )\n})\n"]}
1
+ {"version":3,"sources":["../src/calls/recording-labels.ts","../src/calls/call-cards.ts","../src/calls/HeaderAction.tsx","../src/connection/entities/ConnectedUserEntity.tsx","../src/calls/connected/CallUserPill.tsx"],"names":["jsxs","Button","jsx","Tooltip","TooltipTrigger","TooltipContent","useArbiWsStatus","useArbiWsStore","useUserSettings","memo","ConnectedUserEntity","useConnectedWorkspace","useBlocksEnvironment","useWorkspaces","useMemo","isAgent","UserEntity","getUserInitials","getUserDisplayName","getUserAvatarColor","agentAvatarColors","EntityTooltip","EntityTooltipHeader","Avatar","cn","AvatarImage","AvatarFallback","ArbiBotIcon","EntityTooltipSection","EntityTooltipHint","Users","ShieldIcon","getWorkspaceColor","MessageCircleMore","useArbiSession","usePeople","CallUserPill"],"mappings":";;;;;;;;;;;;AAKO,IAAM,UAAA,GAAkD;AAAA,EAC7D,KAAA,EAAO,OAAA;AAAA,EACP,WAAA,EAAa;AACf;AAGO,IAAM,WAAA,GAAc,CAAC,IAAA,EAAM,CAAA,EAAG,IAAI,EAAE;AAGpC,SAAS,SAAA,CAAU,IAAA,EAAqB,GAAA,GAAM,IAAA,CAAK,KAAI,EAAkB;AAC9E,EAAA,OAAO,IAAA,GAAO,IAAI,IAAA,CAAK,GAAA,GAAM,OAAO,KAAU,CAAA,CAAE,aAAY,GAAI,IAAA;AAClE;AAGO,SAAS,cAAA,CAAe,SAAA,EAA0B,GAAA,GAAM,IAAA,CAAK,KAAI,EAAW;AACjF,EAAA,IAAI,CAAC,WAAW,OAAO,MAAA;AACvB,EAAA,MAAM,IAAA,GAAA,CAAQ,IAAA,CAAK,KAAA,CAAM,SAAS,IAAI,GAAA,IAAO,KAAA;AAC7C,EAAA,MAAM,OAAA,GAAU,CAAC,CAAA,EAAG,EAAA,EAAI,EAAE,CAAA,CAAE,MAAA;AAAA,IAAO,CAAC,IAAA,EAAM,CAAA,KACxC,IAAA,CAAK,GAAA,CAAI,CAAA,GAAI,IAAI,CAAA,GAAI,IAAA,CAAK,GAAA,CAAI,IAAA,GAAO,IAAI,IAAI,CAAA,GAAI;AAAA,GACnD;AACA,EAAA,OAAO,OAAO,OAAO,CAAA;AACvB;;;ACXA,IAAM,GAAA,GAAM,CAAC,CAAA,KACX,KAAA,CAAM,QAAQ,CAAC,CAAA,GAAI,CAAA,CAAE,MAAA,CAAO,CAAC,CAAA,KAAmB,OAAO,CAAA,KAAM,QAAQ,IAAI,EAAC;AAC5E,IAAM,MAAM,CAAC,CAAA,KAA+B,OAAO,CAAA,KAAM,QAAA,IAAY,IAAI,CAAA,GAAI,IAAA;AAGtE,SAAS,mBACd,MAAA,EACsB;AACtB,EAAA,MAAM,SAAA,GAAY,GAAA,CAAI,MAAA,EAAQ,WAAW,CAAA;AACzC,EAAA,IAAI,CAAC,MAAA,IAAU,CAAC,SAAA,EAAW,OAAO,IAAA;AAClC,EAAA,OAAO;AAAA,IACL,WAAA,EAAa,SAAA;AAAA,IACb,UAAA,EAAY,GAAA,CAAI,MAAA,CAAO,UAAU,CAAA;AAAA,IACjC,OAAA,EAAS,GAAA,CAAI,MAAA,CAAO,OAAO,CAAA;AAAA,IAC3B,UAAA,EAAY,GAAA,CAAI,MAAA,CAAO,UAAU,CAAA;AAAA,IACjC,QAAA,EAAU,GAAA,CAAI,MAAA,CAAO,QAAQ,CAAA;AAAA,IAC7B,YAAY,OAAO,MAAA,CAAO,UAAA,KAAe,QAAA,GAAW,OAAO,UAAA,GAAa,IAAA;AAAA,IACxE,MAAA,EAAQ,GAAA,CAAI,MAAA,CAAO,MAAM,CAAA;AAAA,IACzB,2BAAA,EAA6B,GAAA,CAAI,MAAA,CAAO,2BAA2B;AAAA,GACrE;AACF;AAGO,SAAS,mBAAmB,OAAA,EAAmD;AACpF,EAAA,IAAI,OAAA,IAAW,IAAA,IAAQ,OAAA,GAAU,CAAA,EAAG,OAAO,IAAA;AAC3C,EAAA,IAAI,UAAU,EAAA,EAAI,OAAO,GAAG,IAAA,CAAK,KAAA,CAAM,OAAO,CAAC,CAAA,EAAA,CAAA;AAC/C,EAAA,MAAM,OAAA,GAAU,IAAA,CAAK,KAAA,CAAM,OAAA,GAAU,EAAE,CAAA;AACvC,EAAA,IAAI,OAAA,GAAU,EAAA,EAAI,OAAO,CAAA,EAAG,OAAO,CAAA,IAAA,CAAA;AACnC,EAAA,MAAM,CAAA,GAAI,IAAA,CAAK,KAAA,CAAM,OAAA,GAAU,EAAE,CAAA;AACjC,EAAA,MAAM,IAAI,OAAA,GAAU,EAAA;AACpB,EAAA,OAAO,IAAI,CAAA,EAAG,CAAC,MAAM,CAAC,CAAA,IAAA,CAAA,GAAS,GAAG,CAAC,CAAA,EAAA,CAAA;AACrC;AAGO,SAAS,UAAA,CACd,MACA,OAAA,EACS;AACT,EAAA,IAAI,SAAS,OAAO,IAAA;AACpB,EAAA,IAAI,CAAC,IAAA,EAAM,UAAA,IAAc,IAAA,CAAK,WAAW,OAAO,KAAA;AAChD,EAAA,OAAO,CAAC,IAAA,CAAK,QAAA,IAAY,IAAA,CAAK,KAAA,CAAM,IAAA,CAAK,UAAU,CAAA,GAAI,IAAA,CAAK,KAAA,CAAM,IAAA,CAAK,QAAQ,CAAA;AACjF;AAGO,SAAS,kBAAkB,KAAA,EAAgC;AAChE,EAAA,IAAI,CAAC,KAAA,CAAM,MAAA,EAAQ,OAAO,IAAA;AAC1B,EAAA,MAAM,QAAQ,KAAA,CAAM,KAAA,CAAM,GAAG,CAAC,CAAA,CAAE,KAAK,IAAI,CAAA;AACzC,EAAA,OAAO,CAAA,UAAA,EAAa,KAAK,CAAA,EAAG,KAAA,CAAM,MAAA,GAAS,CAAA,GAAI,CAAA,EAAA,EAAK,KAAA,CAAM,MAAA,GAAS,CAAC,CAAA,CAAA,GAAK,EAAE,CAAA,CAAA;AAC7E;ACtDO,SAAS,YAAA,CAAa;AAAA,EAC3B,KAAA;AAAA,EACA,IAAA;AAAA,EACA,QAAA,GAAW,KAAA;AAAA,EACX,OAAA;AAAA,EACA,MAAA;AAAA,EACA;AACF,CAAA,EAOiB;AACf,EAAA,IAAI,CAAC,QAAA,EAAU;AACb,IAAA,uBACEA,eAAA;AAAA,MAACC,SAAA;AAAA,MAAA;AAAA,QACC,IAAA,EAAK,QAAA;AAAA,QACL,IAAA,EAAK,IAAA;AAAA,QACL,OAAA,EAAQ,SAAA;AAAA,QACR,SAAA;AAAA,QACA,OAAA;AAAA,QACA,aAAA,EAAa,MAAA;AAAA,QAEb,QAAA,EAAA;AAAA,0BAAAC,cAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,kBAAA,EAAoB,QAAA,EAAA,IAAA,EAAK,CAAA;AAAA,UACxC;AAAA;AAAA;AAAA,KACH;AAAA,EAEJ;AACA,EAAA,uCACGC,UAAA,EAAA,EACC,QAAA,EAAA;AAAA,oBAAAD,cAAA,CAACE,iBAAA,EAAA,EAAe,SAAO,IAAA,EACrB,QAAA,kBAAAJ,eAAA;AAAA,MAACC,SAAA;AAAA,MAAA;AAAA,QACC,IAAA,EAAK,QAAA;AAAA,QACL,IAAA,EAAK,MAAA;AAAA,QACL,OAAA,EAAQ,OAAA;AAAA,QACR,SAAA;AAAA,QACA,YAAA,EAAY,KAAA;AAAA,QACZ,OAAA;AAAA,QACA,aAAA,EAAa,MAAA;AAAA,QAEZ,QAAA,EAAA;AAAA,UAAA,IAAA;AAAA,0BACDC,cAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,SAAA,EAAW,QAAA,EAAA,KAAA,EAAM;AAAA;AAAA;AAAA,KACnC,EACF,CAAA;AAAA,oBACAA,cAAA,CAACG,iBAAA,EAAA,EAAe,IAAA,EAAK,QAAA,EAAU,QAAA,EAAA,KAAA,EAAM;AAAA,GAAA,EACvC,CAAA;AAEJ;ACCA,SAAS,gBAAA,CACP,IAAA,EACA,IAAA,EACA,YAAA,EACmC;AACnC,EAAA,MAAM,WAAWC,uBAAA,EAAgB;AACjC,EAAA,MAAM,QAAA,GAAWC,sBAAA;AAAA,IAAe,CAAC,MAC/B,YAAA,IAAgB,IAAA,GAAO,EAAE,QAAA,CAAS,IAAA,CAAK,WAAW,CAAA,GAAI;AAAA,GACxD;AACA,EAAA,MAAM,EAAE,IAAA,EAAM,QAAA,EAAS,GAAIC,uBAAA,EAAgB;AAC3C,EAAA,IAAI,CAAC,cAAc,OAAO,MAAA;AAC1B,EAAA,IAAI,IAAA,EAAM;AAER,IAAA,IAAI,QAAA,KAAa,WAAA,EAAa,OAAO,QAAA,EAAU,qBAAqB,QAAA,GAAW,WAAA;AAC/E,IAAA,OAAO,QAAA,KAAa,iBAAiB,YAAA,GAAe,QAAA;AAAA,EACtD;AAEA,EAAA,OAAO,QAAA,KAAa,WAAW,WAAA,GAAc,QAAA;AAC/C;AAEO,IAAM,mBAAA,GAAsBC,UAAA,CAAK,SAASC,oBAAAA,CAAoB;AAAA,EACnE,IAAA;AAAA,EACA,IAAA,GAAO,IAAA;AAAA,EACP,OAAA,GAAU,MAAA;AAAA,EACV,SAAA;AAAA,EACA,WAAA,GAAc,IAAA;AAAA,EACd,YAAA,GAAe,IAAA;AAAA,EACf,WAAA,GAAc,IAAA;AAAA,EACd;AACF,CAAA,EAA6B;AAC3B,EAAA,MAAM,EAAE,MAAA,EAAQ,aAAA,EAAc,GAAIC,uCAAA,EAAsB;AACxD,EAAA,MAAM,EAAE,cAAA,EAAgB,YAAA,EAAa,GAAIC,sCAAA,EAAqB;AAC9D,EAAA,MAAM,OAAO,CAAC,EAAE,IAAA,IAAQ,aAAA,IAAiB,KAAK,WAAA,KAAgB,aAAA,CAAA;AAC9D,EAAA,MAAM,aAAA,GAAgB,gBAAA,CAAiB,IAAA,EAAM,IAAA,EAAM,YAAY,CAAA;AAG/D,EAAA,MAAM,EAAE,IAAA,EAAM,UAAA,GAAa,EAAC,KAAMC,qBAAA,EAAc;AAChD,EAAA,MAAM,gBAAA,GAAmBC,cAAQ,MAAM;AACrC,IAAA,IAAI,CAAC,IAAA,IAAQ,IAAA,EAAM,OAAO,EAAC;AAC3B,IAAA,OAAO,UAAA,CAAW,MAAA;AAAA,MAAO,CAAC,EAAA,KACxB,EAAA,CAAG,KAAA,EAAO,IAAA,CAAK,CAAC,MAAA,KAAW,MAAA,CAAO,IAAA,CAAK,WAAA,KAAgB,IAAA,CAAK,WAAW;AAAA,KACzE;AAAA,EACF,CAAA,EAAG,CAAC,UAAA,EAAY,IAAA,EAAM,IAAI,CAAC,CAAA;AAC3B,EAAA,MAAM,UAAA,GAAaA,cAAQ,MAAM;AAC/B,IAAA,IAAI,CAAC,QAAQ,CAACC,UAAA,CAAQ,IAAI,CAAA,IAAK,CAAC,IAAA,CAAK,aAAA,EAAe,OAAO,IAAA;AAC3D,IAAA,KAAA,MAAW,MAAM,UAAA,EAAY;AAC3B,MAAA,MAAM,KAAA,GAAQ,EAAA,CAAG,KAAA,EAAO,IAAA,CAAK,CAAC,WAAW,MAAA,CAAO,IAAA,CAAK,WAAA,KAAgB,IAAA,CAAK,aAAa,CAAA;AACvF,MAAA,IAAI,KAAA,SAAc,KAAA,CAAM,IAAA;AAAA,IAC1B;AACA,IAAA,OAAO,IAAA;AAAA,EACT,CAAA,EAAG,CAAC,IAAA,EAAM,UAAU,CAAC,CAAA;AAErB,EAAA,IAAI,CAAC,MAAM,uBAAOb,eAACc,aAAA,EAAA,EAAW,KAAA,EAAK,IAAA,EAAC,IAAA,EAAY,SAAA,EAAsB,CAAA;AAEtE,EAAA,MAAM,QAAA,GAAWC,mBAAgB,IAAI,CAAA;AACrC,EAAA,MAAM,WAAA,GAAcF,WAAQ,IAAI,CAAA;AAChC,EAAA,MAAM,QAAA,GAAWG,sBAAmB,IAAI,CAAA;AACxC,EAAA,MAAM,UAAA,GAAaC,qBAAA,CAAmB,IAAA,CAAK,WAAW,CAAA;AACtD,EAAA,MAAM,UAAA,GAAa,WAAA,GAAcC,oBAAA,CAAkB,UAAU,CAAA,GAAI,MAAA;AACjE,EAAA,MAAM,OAAA,GAAU,CAAC,IAAA,IAAQ,CAAC,CAAC,cAAA;AAE3B,EAAA,MAAM,OAAA,GAAU,CAAC,CAAA,KAAkB;AACjC,IAAA,CAAA,CAAE,eAAA,EAAgB;AAClB,IAAA,IAAI,MAAM,YAAA,EAAa;AAAA,SAClB,cAAA,GAAiB,KAAK,WAAW,CAAA;AAAA,EACxC,CAAA;AAEA,EAAA,MAAM,cAAA,mBACJpB,eAAAA,CAACqB,+BAAA,EAAA,EACC,QAAA,EAAA;AAAA,oBAAAnB,cAAAA;AAAA,MAACoB,qCAAA;AAAA,MAAA;AAAA,QACC,sBACEtB,eAAAA;AAAA,UAACuB,SAAA;AAAA,UAAA;AAAA,YACC,SAAA,EAAWC,KAAA;AAAA,cACT,SAAA;AAAA,cACA,cAAc,qCAAA,GAAwC;AAAA,aACxD;AAAA,YACA,KAAA,EAAO,UAAA;AAAA,YAEN,QAAA,EAAA;AAAA,cAAA,IAAA,CAAK,OAAA,oBAAWtB,cAAAA,CAACuB,cAAA,EAAA,EAAY,KAAK,IAAA,CAAK,OAAA,EAAS,KAAK,QAAA,EAAU,CAAA;AAAA,8BAChEvB,cAAAA;AAAA,gBAACwB,iBAAA;AAAA,gBAAA;AAAA,kBACC,SAAA,EAAWF,KAAA;AAAA,oBACT,oCAAA;AAAA,oBACA,WAAA,GAAc,6BAAA,GAAgC,CAAA,WAAA,EAAc,UAAU,CAAA;AAAA,mBACxE;AAAA,kBACA,KAAA,EAAO,UAAA;AAAA,kBAEN,QAAA,EAAA;AAAA;AAAA;AACH;AAAA;AAAA,SACF;AAAA,QAEF,KAAA,EAAO,QAAA;AAAA,QACP,gBACE,WAAA,mBAActB,eAACyB,uBAAA,EAAA,EAAY,SAAA,EAAU,4BAA2B,CAAA,GAAK,MAAA;AAAA,QAEvE,UAAU,IAAA,CAAK;AAAA;AAAA,KACjB;AAAA,IAEC,WAAA,IAAe,UAAA,oBACdzB,cAAAA,CAAC0B,0CACC,QAAA,kBAAA5B,eAAAA,CAAC6B,mCAAA,EAAA,EAAkB,IAAA,kBAAM3B,cAAAA,CAACyB,uBAAA,EAAA,EAAY,SAAA,EAAU,6BAA4B,CAAA,EAAI,QAAA,EAAA;AAAA,MAAA,UAAA;AAAA,MACrE,GAAA;AAAA,sBACTzB,cAAAA,CAAC,MAAA,EAAA,EAAK,WAAU,6BAAA,EAA+B,QAAA,EAAAgB,qBAAA,CAAmB,UAAU,CAAA,EAAE;AAAA,KAAA,EAChF,CAAA,EACF,CAAA;AAAA,IAGD,gBAAA,CAAiB,MAAA,GAAS,CAAA,oBACzBhB,cAAAA;AAAA,MAAC0B,sCAAA;AAAA,MAAA;AAAA,QACC,IAAA,kBAAM1B,cAAAA,CAAC4B,iBAAA,EAAA,EAAM,WAAU,2BAAA,EAA4B,CAAA;AAAA,QACnD,OAAA,EAAQ,mBAAA;AAAA,QAER,QAAA,kBAAA9B,eAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,2BAAA,EACZ,QAAA,EAAA;AAAA,UAAA,gBAAA,CAAiB,MAAM,CAAA,EAAG,CAAC,EAAE,GAAA,CAAI,CAAC,uBACjCA,eAAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cAEC,SAAA,EAAU,uEAAA;AAAA,cAEV,QAAA,EAAA;AAAA,gCAAAE,cAAAA;AAAA,kBAAC6B,aAAA;AAAA,kBAAA;AAAA,oBACC,IAAA,EAAM,EAAA,CAAG,IAAA,CAAK,MAAA,CAAO,CAAC,CAAA;AAAA,oBACtB,cAAA,EAAgBC,oBAAA,CAAkB,EAAA,CAAG,WAAW,CAAA;AAAA,oBAChD,IAAA,EAAM;AAAA;AAAA,iBACR;AAAA,gCACA9B,cAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,uBAAA,EAAyB,aAAG,IAAA,EAAK;AAAA;AAAA,aAAA;AAAA,YAR5C,EAAA,CAAG;AAAA,WAUX,CAAA;AAAA,UACA,iBAAiB,MAAA,GAAS,CAAA,oBACzBF,eAAAA,CAAC,MAAA,EAAA,EAAK,WAAU,+BAAA,EAAgC,QAAA,EAAA;AAAA,YAAA,GAAA;AAAA,YAC5C,iBAAiB,MAAA,GAAS,CAAA;AAAA,YAAE;AAAA,WAAA,EAChC;AAAA,SAAA,EAEJ;AAAA;AAAA,KACF;AAAA,IAGD,eAAe,OAAA,KAAY,MAAA,IAAU,OAAA,oBACpCE,eAAC2B,mCAAA,EAAA,EAAkB,OAAA,EAAO,IAAA,EAAC,IAAA,kBAAM3B,cAAAA,CAAC+B,6BAAA,EAAA,EAAkB,SAAA,EAAU,SAAA,EAAU,GAAI,QAAA,EAAA,uBAAA,EAE5E;AAAA,GAAA,EAEJ,CAAA;AAGF,EAAA,uBACE/B,cAAAA;AAAA,IAACc,aAAA;AAAA,IAAA;AAAA,MACC,IAAA;AAAA,MACA,OAAA;AAAA,MACA,SAAA;AAAA,MACA,WAAA;AAAA,MACA,WAAA,EAAa,gBAAgB,IAAA,IAAQ,OAAA,CAAA;AAAA,MACrC,QAAA;AAAA,MACA,WAAA,EAAa,IAAA,GAAQ,SAAA,IAAa,KAAA,GAAS,QAAA;AAAA,MAC3C,SAAS,IAAA,CAAK,OAAA;AAAA,MACd,UAAA;AAAA,MACA,OAAA,EAAS,WAAA;AAAA,MACT,UAAA,EAAY,KAAK,oBAAA,KAAyB,IAAA;AAAA,MAC1C,UAAA;AAAA,MACA,IAAA;AAAA,MACA,aAAA;AAAA,MACA,OAAA;AAAA,MACA;AAAA;AAAA,GACF;AAEJ,CAAC;ACnMD,SAAS,WAAA,CAAY,UAAkB,YAAA,EAA4C;AACjF,EAAA,MAAM,EAAA,GAAKkB,wBAAe,CAAE,IAAA;AAC5B,EAAA,MAAM,EAAE,IAAA,EAAK,GAAIC,iBAAA,EAAU;AAC3B,EAAA,OAAOrB,cAAQ,MAAM;AACnB,IAAA,IAAI,EAAA,IAAM,EAAA,CAAG,WAAA,KAAgB,QAAA,EAAU,OAAO,EAAA;AAC9C,IAAA,MAAM,IAAA,GAAO,KAAK,QAAQ,CAAA;AAC1B,IAAA,IAAI,MAAM,OAAO,IAAA;AACjB,IAAA,MAAM,CAAC,KAAA,GAAQ,EAAA,EAAI,GAAG,IAAI,CAAA,GAAA,CAAK,YAAA,IAAgB,QAAA,EAAU,IAAA,EAAK,CAAE,KAAA,CAAM,KAAK,CAAA;AAC3E,IAAA,OAAO;AAAA,MACL,WAAA,EAAa,QAAA;AAAA,MACb,UAAA,EAAY,KAAA;AAAA,MACZ,WAAA,EAAa,IAAA,CAAK,IAAA,CAAK,GAAG,CAAA;AAAA,MAC1B,KAAA,EAAO;AAAA,KACT;AAAA,EACF,GAAG,CAAC,EAAA,EAAI,IAAA,EAAM,QAAA,EAAU,YAAY,CAAC,CAAA;AACvC;AAEO,IAAM,YAAA,GAAeL,UAAAA,CAAK,SAAS2B,aAAAA,CAAa;AAAA,EACrD,QAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA,GAAO,IAAA;AAAA,EACP,OAAA,GAAU,MAAA;AAAA,EACV,WAAA,GAAc,KAAA;AAAA,EACd;AACF,CAAA,EAAoC;AAClC,EAAA,MAAM,IAAA,GAAO,WAAA,CAAY,QAAA,EAAU,IAAI,CAAA;AACvC,EAAA,uBACElC,cAAAA;AAAA,IAAC,mBAAA;AAAA,IAAA;AAAA,MACC,IAAA;AAAA,MACA,IAAA;AAAA,MACA,OAAA;AAAA,MACA,WAAA;AAAA,MACA,YAAA,EAAc,KAAA;AAAA,MACd,SAAA,EAAW,CAAA,EAAGgB,qBAAAA,CAAmB,IAAI,CAAC,CAAA,KAAA,CAAA;AAAA,MACtC;AAAA;AAAA,GACF;AAEJ,CAAC","file":"chunk-I7CJDF3V.cjs","sourcesContent":["import type { calls } from '@arbidocs/sdk/browser'\n\n/** Shared by the recording UI (kept out of the component files for fast refresh). */\n\n/** How a recording mode is named in the UI. */\nexport const MODE_LABEL: Record<calls.RecordingMode, string> = {\n audio: 'Audio',\n audio_video: 'Audio + video',\n}\n\n/** Expiry choices (days; null = kept). */\nexport const EXPIRY_DAYS = [null, 7, 30, 90] as const\n\n/** `expires_at` for a choice, from now. */\nexport function expiryFor(days: number | null, now = Date.now()): string | null {\n return days ? new Date(now + days * 86_400_000).toISOString() : null\n}\n\n/** Which expiry choice an `expires_at` is closest to (for the select). */\nexport function expiryChoiceOf(expiresAt: string | null, now = Date.now()): string {\n if (!expiresAt) return 'none'\n const days = (Date.parse(expiresAt) - now) / 86_400_000\n const nearest = [7, 30, 90].reduce((best, d) =>\n Math.abs(d - days) < Math.abs(best - days) ? d : best\n )\n return String(nearest)\n}\n","/** Pure helpers for the call cards and call titles (kept apart from the components). */\n\nimport type { calls } from '@arbidocs/sdk/browser'\n\nexport interface CallLogDetail {\n call_ext_id: string\n started_by: string | null\n invited: string[]\n started_at: string | null\n ended_at: string | null\n duration_s: number | null\n joined: string[]\n meeting_conversation_ext_id: string | null\n}\n\nconst ids = (v: unknown): string[] =>\n Array.isArray(v) ? v.filter((x): x is string => typeof x === 'string') : []\nconst str = (v: unknown): string | null => (typeof v === 'string' && v ? v : null)\n\n/** The card's detail from an activity event's `detail`, or null when it is not a call card. */\nexport function parseCallLogDetail(\n detail: Record<string, unknown> | null | undefined\n): CallLogDetail | null {\n const callExtId = str(detail?.call_ext_id)\n if (!detail || !callExtId) return null\n return {\n call_ext_id: callExtId,\n started_by: str(detail.started_by),\n invited: ids(detail.invited),\n started_at: str(detail.started_at),\n ended_at: str(detail.ended_at),\n duration_s: typeof detail.duration_s === 'number' ? detail.duration_s : null,\n joined: ids(detail.joined),\n meeting_conversation_ext_id: str(detail.meeting_conversation_ext_id),\n }\n}\n\n/** \"45 s\", \"12 min\", \"1 h 5 min\". */\nexport function formatCallDuration(seconds: number | null | undefined): string | null {\n if (seconds == null || seconds < 0) return null\n if (seconds < 60) return `${Math.round(seconds)} s`\n const minutes = Math.round(seconds / 60)\n if (minutes < 60) return `${minutes} min`\n const h = Math.floor(minutes / 60)\n const m = minutes % 60\n return m ? `${h} h ${m} min` : `${h} h`\n}\n\n/** Whether the call's current session is running (the server's view, or `call.started`). */\nexport function isCallLive(\n call: Pick<calls.CallResponse, 'started_at' | 'ended_at' | 'cancelled'> | undefined,\n liveNow: boolean\n): boolean {\n if (liveNow) return true\n if (!call?.started_at || call.cancelled) return false\n return !call.ended_at || Date.parse(call.started_at) > Date.parse(call.ended_at)\n}\n\n/** \"Call with Ada, Bob\" (the title is encrypted under the call key). */\nexport function contactsCallTitle(names: string[]): string | null {\n if (!names.length) return null\n const shown = names.slice(0, 3).join(', ')\n return `Call with ${shown}${names.length > 3 ? ` +${names.length - 3}` : ''}`\n}\n","/**\n * A secondary action of a conversation header (Save transcript, Recordings): labelled where there\n * is room, or icon-only with the label in a tooltip (and for screen readers) where the header is\n * crowded — the thread's title keeps priority.\n */\n\nimport type { ReactElement, ReactNode } from 'react'\nimport { Button, Tooltip, TooltipContent, TooltipTrigger } from '@arbidocs/react/ui'\n\nexport function HeaderAction({\n label,\n icon,\n iconOnly = false,\n onClick,\n testId,\n className,\n}: {\n label: string\n icon: ReactNode\n iconOnly?: boolean\n onClick(): void\n testId?: string\n className?: string\n}): ReactElement {\n if (!iconOnly) {\n return (\n <Button\n type=\"button\"\n size=\"sm\"\n variant=\"outline\"\n className={className}\n onClick={onClick}\n data-testid={testId}\n >\n <span className=\"mr-1 inline-flex\">{icon}</span>\n {label}\n </Button>\n )\n }\n return (\n <Tooltip>\n <TooltipTrigger asChild>\n <Button\n type=\"button\"\n size=\"icon\"\n variant=\"ghost\"\n className={className}\n aria-label={label}\n onClick={onClick}\n data-testid={testId}\n >\n {icon}\n <span className=\"sr-only\">{label}</span>\n </Button>\n </TooltipTrigger>\n <TooltipContent side=\"bottom\">{label}</TooltipContent>\n </Tooltip>\n )\n}\n","/**\n * A person, connected: the shared avatar / pill (`UserEntity` in `@arbidocs/react/ui`) with what\n * the session knows about them. \"You\" for the signed-in user, their live presence (and, on your own\n * avatar, the live connection's status unless you hide your online status), the workspaces you\n * share and an agent's owner in the hover card. A click on someone else opens your direct chat\n * with them (`openDirectChat`); on yourself, your settings.\n */\nimport { memo, useMemo, type MouseEvent } from 'react'\nimport { MessageCircleMore, Users } from 'lucide-react'\nimport {\n ArbiBotHeadIcon as ArbiBotIcon,\n useArbiWsStatus,\n useArbiWsStore,\n useUserSettings,\n useWorkspaces,\n} from '@arbidocs/react'\nimport {\n Avatar,\n AvatarFallback,\n AvatarImage,\n ShieldIcon,\n UserEntity,\n agentAvatarColors,\n cn,\n getWorkspaceColor,\n type PresenceDisplayStatus,\n getUserAvatarColor,\n getUserDisplayName,\n getUserInitials,\n isAgent,\n} from '@arbidocs/react/ui'\nimport type { components } from '@arbidocs/client'\nimport {\n EntityTooltip,\n EntityTooltipHeader,\n EntityTooltipHint,\n EntityTooltipSection,\n} from '../../components/EntityTooltip'\nimport { useBlocksEnvironment } from '../../provider/environment'\nimport { useConnectedWorkspace } from '../ConnectionProvider'\n\ntype UserResponse = components['schemas']['UserResponse']\n\nexport interface ConnectedUserEntityProps {\n user?: UserResponse | null\n size?: 'xs' | 'sm' | 'md' | 'lg'\n variant?: 'icon' | 'pill'\n className?: string\n /** Hovering shows their card (default true). */\n showTooltip?: boolean\n /** The presence dot (default true). */\n showPresence?: boolean\n /** A click opens the chat with them, or your settings (default true). */\n interactive?: boolean\n /** Your own label in place of \"You\" (e.g. \"Ada Lovelace (me)\" in a call). */\n selfLabel?: string\n}\n\n/** The presence dot: your own live connection, or the person's presence. */\nfunction useDisplayStatus(\n user: UserResponse | null | undefined,\n isMe: boolean,\n showPresence: boolean\n): PresenceDisplayStatus | undefined {\n const wsStatus = useArbiWsStatus()\n const presence = useArbiWsStore((s) =>\n showPresence && user ? s.presence[user.external_id] : undefined\n )\n const { data: settings } = useUserSettings()\n if (!showPresence) return undefined\n if (isMe) {\n // Hiding your online status hides only \"connected\": connection trouble always shows.\n if (wsStatus === 'connected') return settings?.hide_online_status ? 'hidden' : 'connected'\n return wsStatus === 'reconnecting' ? 'connecting' : wsStatus\n }\n // `unknown` (removed from contacts, or hidden) and no news show grey.\n return presence === 'online' ? 'connected' : 'hidden'\n}\n\nexport const ConnectedUserEntity = memo(function ConnectedUserEntity({\n user,\n size = 'md',\n variant = 'pill',\n className,\n showTooltip = true,\n showPresence = true,\n interactive = true,\n selfLabel,\n}: ConnectedUserEntityProps) {\n const { userId: currentUserId } = useConnectedWorkspace()\n const { openDirectChat, openSettings } = useBlocksEnvironment()\n const isMe = !!(user && currentUserId && user.external_id === currentUserId)\n const displayStatus = useDisplayStatus(user, isMe, showPresence)\n\n // The workspaces you share with them, and an agent's human owner (the hover card only).\n const { data: workspaces = [] } = useWorkspaces()\n const sharedWorkspaces = useMemo(() => {\n if (!user || isMe) return []\n return workspaces.filter((ws) =>\n ws.users?.some((member) => member.user.external_id === user.external_id)\n )\n }, [workspaces, user, isMe])\n const agentOwner = useMemo(() => {\n if (!user || !isAgent(user) || !user.parent_ext_id) return null\n for (const ws of workspaces) {\n const found = ws.users?.find((member) => member.user.external_id === user.parent_ext_id)\n if (found) return found.user\n }\n return null\n }, [user, workspaces])\n\n if (!user) return <UserEntity empty size={size} className={className} />\n\n const initials = getUserInitials(user)\n const userIsAgent = isAgent(user)\n const fullName = getUserDisplayName(user)\n const colorClass = getUserAvatarColor(user.external_id)\n const agentStyle = userIsAgent ? agentAvatarColors(colorClass) : undefined\n const canChat = !isMe && !!openDirectChat\n\n const onClick = (e: MouseEvent) => {\n e.stopPropagation()\n if (isMe) openSettings()\n else openDirectChat?.(user.external_id)\n }\n\n const tooltipContent = (\n <EntityTooltip>\n <EntityTooltipHeader\n lead={\n <Avatar\n className={cn(\n 'h-8 w-8',\n userIsAgent ? 'rounded-full border-2 border-dashed' : 'border border-white'\n )}\n style={agentStyle}\n >\n {user.picture && <AvatarImage src={user.picture} alt={initials} />}\n <AvatarFallback\n className={cn(\n 'text-xs font-semibold leading-none',\n userIsAgent ? 'rounded-full bg-transparent' : `text-white ${colorClass}`\n )}\n style={agentStyle}\n >\n {initials}\n </AvatarFallback>\n </Avatar>\n }\n title={fullName}\n titleAccessory={\n userIsAgent ? <ArbiBotIcon className=\"w-3.5 h-3.5 text-primary\" /> : undefined\n }\n subtitle={user.email}\n />\n\n {userIsAgent && agentOwner && (\n <EntityTooltipSection>\n <EntityTooltipHint icon={<ArbiBotIcon className=\"w-3.5 h-3.5 flex-shrink-0\" />}>\n Agent of{' '}\n <span className=\"font-medium text-foreground\">{getUserDisplayName(agentOwner)}</span>\n </EntityTooltipHint>\n </EntityTooltipSection>\n )}\n\n {sharedWorkspaces.length > 0 && (\n <EntityTooltipSection\n icon={<Users className=\"w-3.5 h-3.5 flex-shrink-0\" />}\n heading=\"Shared Workspaces\"\n >\n <div className=\"flex flex-wrap gap-1 pl-5\">\n {sharedWorkspaces.slice(0, 3).map((ws) => (\n <div\n key={ws.external_id}\n className=\"inline-flex items-center gap-1 px-1.5 py-0.5 bg-muted rounded text-xs\"\n >\n <ShieldIcon\n char={ws.name.charAt(0)}\n workspaceColor={getWorkspaceColor(ws.external_id)}\n size={14}\n />\n <span className=\"truncate max-w-[80px]\">{ws.name}</span>\n </div>\n ))}\n {sharedWorkspaces.length > 3 && (\n <span className=\"text-xs text-muted-foreground\">\n +{sharedWorkspaces.length - 3} more\n </span>\n )}\n </div>\n </EntityTooltipSection>\n )}\n\n {interactive && variant === 'pill' && canChat && (\n <EntityTooltipHint isRuled icon={<MessageCircleMore className=\"w-3 h-3\" />}>\n Click to send message\n </EntityTooltipHint>\n )}\n </EntityTooltip>\n )\n\n return (\n <UserEntity\n size={size}\n variant={variant}\n className={className}\n showTooltip={showTooltip}\n interactive={interactive && (isMe || canChat)}\n initials={initials}\n displayName={isMe ? (selfLabel ?? 'You') : fullName}\n picture={user.picture}\n colorClass={colorClass}\n isAgent={userIsAgent}\n isVerified={user.is_identity_verified === true}\n agentStyle={agentStyle}\n isMe={isMe}\n displayStatus={displayStatus}\n onClick={onClick}\n tooltipContent={tooltipContent}\n />\n )\n})\n","/**\n * A person in the call UI, shown the way people are shown everywhere: the `ConnectedUserEntity`\n * pill (avatar with initials or picture, name, verified tick), without presence. My own reads\n * \"Name (me)\". The user is one the session already knows (me, contacts, workspace members); a\n * participant it does not know yet gets a pill built from the call's own name for them.\n */\n\nimport { memo, useMemo, type ReactElement } from 'react'\nimport { useArbiSession, usePeople, type UserResponse } from '@arbidocs/react'\nimport { getUserDisplayName, type EntitySize } from '@arbidocs/react/ui'\nimport { ConnectedUserEntity } from '../../connection/entities/ConnectedUserEntity'\n\n/** A person in the call UI (a participant, a speaker, a host). */\nexport interface CallUserPillProps {\n /** Their LiveKit identity: the user ext id. */\n identity: string\n /** The call's name for them, for someone the session does not know. */\n name?: string | null\n size?: EntitySize\n variant?: 'pill' | 'icon'\n /** Click opens a chat with them (off by default inside the call). */\n interactive?: boolean\n className?: string\n}\n\n/** The known user for an identity (user ext id), else a stand-in from the call's name. */\nfunction useCallUser(identity: string, fallbackName?: string | null): UserResponse {\n const me = useArbiSession().user\n const { byId } = usePeople()\n return useMemo(() => {\n if (me && me.external_id === identity) return me as UserResponse\n const user = byId(identity)\n if (user) return user\n const [given = '', ...rest] = (fallbackName || identity).trim().split(/\\s+/)\n return {\n external_id: identity,\n given_name: given,\n family_name: rest.join(' '),\n email: '',\n } as UserResponse\n }, [me, byId, identity, fallbackName])\n}\n\nexport const CallUserPill = memo(function CallUserPill({\n identity,\n name,\n size = 'xs',\n variant = 'pill',\n interactive = false,\n className,\n}: CallUserPillProps): ReactElement {\n const user = useCallUser(identity, name)\n return (\n <ConnectedUserEntity\n user={user}\n size={size}\n variant={variant}\n interactive={interactive}\n showPresence={false}\n selfLabel={`${getUserDisplayName(user)} (me)`}\n className={className}\n />\n )\n})\n"]}
@@ -1,6 +1,6 @@
1
1
  "use client";
2
- import { useConnectedWorkspace } from './chunk-NUOMPVKQ.js';
3
- import { useHost } from './chunk-BH4MK2J5.js';
2
+ import { useConnectedWorkspace } from './chunk-OWHO2TO3.js';
3
+ import { useHost } from './chunk-QG6MRLZG.js';
4
4
  import { useBlocksEnvironment } from './chunk-YUHSDOPW.js';
5
5
  import { useMemo, useCallback } from 'react';
6
6
  import { useQueryClient } from '@tanstack/react-query';
@@ -104,5 +104,5 @@ function OwnDocumentTools({ children }) {
104
104
  }
105
105
 
106
106
  export { ConnectedDocumentToolsProvider };
107
- //# sourceMappingURL=chunk-KYLQRS3O.js.map
108
- //# sourceMappingURL=chunk-KYLQRS3O.js.map
107
+ //# sourceMappingURL=chunk-IHOV6OTA.js.map
108
+ //# sourceMappingURL=chunk-IHOV6OTA.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/connection/viewer/ConnectedDocumentToolsProvider.tsx"],"names":[],"mappings":"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","file":"chunk-KYLQRS3O.js","sourcesContent":["/**\n * The PDF document tools (markup, Freeze, signing, signature requests, productions) on the\n * signed-in session, for any host: the API client, the signed-in user, the host's notices and\n * document opening (`BlocksEnvironment`), the shared caches a change refreshes, and emailing a\n * document through the host's mail composer (`DocumentHostActions.emailDocument`) while Mail is on.\n * A host with its own binding (its own lists to refresh, an XHR upload with progress) gives it as\n * the host configuration's `documentTools`, field by field. An enclosing `DocumentToolsProvider` (a\n * dialog with its own client) wins.\n */\n\nimport { useCallback, useMemo, type ReactNode } from 'react'\nimport { useQueryClient } from '@tanstack/react-query'\nimport {\n arbiQueryKeys,\n refreshDocuments,\n useArbi,\n getCachedDocuments,\n useDocumentHostActions,\n useFeature,\n useIsEntitled,\n useMailPolicy,\n type WorkspaceDocument,\n} from '@arbidocs/react'\nimport { parseVersionRef } from '@arbidocs/react/artifacts'\nimport {\n DocumentToolsProvider,\n clientUpload,\n documentBytesKey,\n useOptionalDocumentTools,\n type DocumentChange,\n type DocumentToolsClient,\n type DocumentToolsEnvironment,\n type DocumentToolsNotify,\n type DocumentUploadRequest,\n} from '@arbidocs/react/document-tools'\nimport { useBlocksEnvironment } from '../../provider/environment'\nimport { useHost } from '../../provider/host'\nimport { useConnectedWorkspace } from '../ConnectionProvider'\n\n/** What a host binds of the document tools itself; each absent field is the kit's own. */\nexport interface DocumentToolsHost {\n /** The API client the tools call. Default: the host `arbi`'s. */\n client?: DocumentToolsClient\n /** The deployment domain keys are derived for (signing). Default: the host `arbi`'s. */\n deploymentDomain?: string\n /**\n * Open a document or a version the tools made. Default: the environment's `openDocument`, on\n * the PDF (`tab: 'pdf'`).\n */\n openDocument?: (documentRef: string) => void\n /** Refresh the host's lists after a change. Default: the shared document caches. */\n onDocumentsChanged?: DocumentToolsEnvironment['onDocumentsChanged']\n /** Upload a derived copy. Default: through the API client, into the open workspace. */\n uploadDocument?: DocumentToolsEnvironment['uploadDocument']\n /**\n * Where \"View certificate\" goes for a signature `reference` (e.g. the site's own verify page).\n * Default: the certificate link the API returns (on the deployment domain).\n */\n certificateUrl?: (reference: string) => string\n}\n\n/**\n * Email a document (a version reference `doc-…@v2` attaches that version) through the host's mail\n * composer. Offered only where Mail is: the deployment's mail policy on, the user's Mail feature on\n * and the mail entitlement; and only when the host hands documents to its composer.\n */\nfunction useEmailDocument(): ((documentRef: string) => void) | undefined {\n const arbi = useArbi()\n const queryClient = useQueryClient()\n const { workspaceId } = useConnectedWorkspace()\n const { notify } = useBlocksEnvironment()\n const { emailDocument } = useDocumentHostActions()\n const { data: mailPolicy } = useMailPolicy()\n const mailOn = useFeature('mail')\n const entitled = useIsEntitled('mail')\n const email = useCallback(\n (documentRef: string) => {\n if (!emailDocument) return\n const { docId, version } = parseVersionRef(documentRef)\n void (async () => {\n try {\n // From the list, or fetched: a copy saved a moment ago is not listed yet.\n const listed = workspaceId ? getCachedDocuments(queryClient, workspaceId) : undefined\n const doc =\n listed?.find((d) => d.external_id === docId) ??\n ((await arbi.documents.get([docId])) as WorkspaceDocument[])[0]\n if (!doc) throw new Error('The document could not be found')\n await emailDocument(doc, { version })\n } catch (error) {\n notify(error instanceof Error ? error.message : 'Could not attach the document', 'error')\n }\n })()\n },\n [arbi, queryClient, workspaceId, emailDocument, notify]\n )\n return mailPolicy?.enabled && mailOn && entitled && emailDocument ? email : undefined\n}\n\nexport function ConnectedDocumentToolsProvider({ children }: { children: ReactNode }) {\n const enclosing = useOptionalDocumentTools()\n return enclosing ? <>{children}</> : <OwnDocumentTools>{children}</OwnDocumentTools>\n}\n\nfunction OwnDocumentTools({ children }: { children: ReactNode }) {\n const arbi = useArbi()\n const queryClient = useQueryClient()\n const host = useHost().documentTools\n const { user, ensureWorkspaceOpen } = useConnectedWorkspace()\n const { notify: environmentNotify, openDocument: openInHost } = useBlocksEnvironment()\n const emailDocument = useEmailDocument()\n const client = host?.client ?? (arbi.isLoggedIn ? arbi.getClient().fetch : null)\n const signer = useMemo(\n () => (user ? { name: user.name, email: user.email, externalId: user.externalId } : null),\n [user]\n )\n const notify = useCallback<DocumentToolsNotify>(\n (message, kind, options) =>\n environmentNotify(message, kind, {\n description: options?.description,\n action: options?.action,\n }),\n [environmentNotify]\n )\n const ownDocumentsChanged = useCallback(\n async (ids: string[], change: DocumentChange) => {\n // The list carries each version's markup count and the copies; a signature or a saved\n // version is a new current version, with new versions and a new rendered PDF.\n const refresh: Promise<unknown>[] = [refreshDocuments(queryClient, arbi, ids)]\n if (change === 'signed' || change === 'version')\n for (const id of ids)\n refresh.push(\n queryClient.invalidateQueries({ queryKey: arbiQueryKeys.documentVersions(id) }),\n queryClient.invalidateQueries({ queryKey: documentBytesKey(id) })\n )\n await Promise.all(refresh)\n },\n [queryClient, arbi]\n )\n // The server files an upload in the session's open workspace: re-assert it first.\n const ownUpload = useCallback(\n async (request: DocumentUploadRequest) => {\n if (!client) throw new Error('Sign in to save a copy.')\n await ensureWorkspaceOpen()\n return clientUpload(client)(request)\n },\n [client, ensureWorkspaceOpen]\n )\n // What the tools open is a PDF they just made (a frozen copy, a signed copy, a production), seen\n // where it was made: on the PDF, not the text view, which a copy still processing does not have.\n const ownOpenDocument = useCallback(\n (ref: string) => openInHost(ref, { tab: 'pdf' }),\n [openInHost]\n )\n if (!client) return <>{children}</>\n return (\n <DocumentToolsProvider\n client={client}\n deploymentDomain={host?.deploymentDomain}\n user={signer}\n notify={notify}\n openDocument={host?.openDocument ?? ownOpenDocument}\n onDocumentsChanged={host?.onDocumentsChanged ?? ownDocumentsChanged}\n uploadDocument={host?.uploadDocument ?? ownUpload}\n emailDocument={emailDocument}\n certificateUrl={host?.certificateUrl}\n >\n {children}\n </DocumentToolsProvider>\n )\n}\n"]}
1
+ {"version":3,"sources":["../src/connection/viewer/ConnectedDocumentToolsProvider.tsx"],"names":[],"mappings":"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","file":"chunk-IHOV6OTA.js","sourcesContent":["/**\n * The PDF document tools (markup, Freeze, signing, signature requests, productions) on the\n * signed-in session, for any host: the API client, the signed-in user, the host's notices and\n * document opening (`BlocksEnvironment`), the shared caches a change refreshes, and emailing a\n * document through the host's mail composer (`DocumentHostActions.emailDocument`) while Mail is on.\n * A host with its own binding (its own lists to refresh, an XHR upload with progress) gives it as\n * the host configuration's `documentTools`, field by field. An enclosing `DocumentToolsProvider` (a\n * dialog with its own client) wins.\n */\n\nimport { useCallback, useMemo, type ReactNode } from 'react'\nimport { useQueryClient } from '@tanstack/react-query'\nimport {\n arbiQueryKeys,\n refreshDocuments,\n useArbi,\n getCachedDocuments,\n useDocumentHostActions,\n useFeature,\n useIsEntitled,\n useMailPolicy,\n type WorkspaceDocument,\n} from '@arbidocs/react'\nimport { parseVersionRef } from '@arbidocs/react/artifacts'\nimport {\n DocumentToolsProvider,\n clientUpload,\n documentBytesKey,\n useOptionalDocumentTools,\n type DocumentChange,\n type DocumentToolsClient,\n type DocumentToolsEnvironment,\n type DocumentToolsNotify,\n type DocumentUploadRequest,\n} from '@arbidocs/react/document-tools'\nimport { useBlocksEnvironment } from '../../provider/environment'\nimport { useHost } from '../../provider/host'\nimport { useConnectedWorkspace } from '../ConnectionProvider'\n\n/** What a host binds of the document tools itself; each absent field is the kit's own. */\nexport interface DocumentToolsHost {\n /** The API client the tools call. Default: the host `arbi`'s. */\n client?: DocumentToolsClient\n /** The deployment domain keys are derived for (signing). Default: the host `arbi`'s. */\n deploymentDomain?: string\n /**\n * Open a document or a version the tools made. Default: the environment's `openDocument`, on\n * the PDF (`tab: 'pdf'`).\n */\n openDocument?: (documentRef: string) => void\n /** Refresh the host's lists after a change. Default: the shared document caches. */\n onDocumentsChanged?: DocumentToolsEnvironment['onDocumentsChanged']\n /** Upload a derived copy. Default: through the API client, into the open workspace. */\n uploadDocument?: DocumentToolsEnvironment['uploadDocument']\n /**\n * Where \"View certificate\" goes for a signature `reference` (e.g. the site's own verify page).\n * Default: the certificate link the API returns (on the deployment domain).\n */\n certificateUrl?: (reference: string) => string\n}\n\n/**\n * Email a document (a version reference `doc-…@v2` attaches that version) through the host's mail\n * composer. Offered only where Mail is: the deployment's mail policy on, the user's Mail feature on\n * and the mail entitlement; and only when the host hands documents to its composer.\n */\nfunction useEmailDocument(): ((documentRef: string) => void) | undefined {\n const arbi = useArbi()\n const queryClient = useQueryClient()\n const { workspaceId } = useConnectedWorkspace()\n const { notify } = useBlocksEnvironment()\n const { emailDocument } = useDocumentHostActions()\n const { data: mailPolicy } = useMailPolicy()\n const mailOn = useFeature('mail')\n const entitled = useIsEntitled('mail')\n const email = useCallback(\n (documentRef: string) => {\n if (!emailDocument) return\n const { docId, version } = parseVersionRef(documentRef)\n void (async () => {\n try {\n // From the list, or fetched: a copy saved a moment ago is not listed yet.\n const listed = workspaceId ? getCachedDocuments(queryClient, workspaceId) : undefined\n const doc =\n listed?.find((d) => d.external_id === docId) ??\n ((await arbi.documents.get([docId])) as WorkspaceDocument[])[0]\n if (!doc) throw new Error('The document could not be found')\n await emailDocument(doc, { version })\n } catch (error) {\n notify(error instanceof Error ? error.message : 'Could not attach the document', 'error')\n }\n })()\n },\n [arbi, queryClient, workspaceId, emailDocument, notify]\n )\n return mailPolicy?.enabled && mailOn && entitled && emailDocument ? email : undefined\n}\n\nexport function ConnectedDocumentToolsProvider({ children }: { children: ReactNode }) {\n const enclosing = useOptionalDocumentTools()\n return enclosing ? <>{children}</> : <OwnDocumentTools>{children}</OwnDocumentTools>\n}\n\nfunction OwnDocumentTools({ children }: { children: ReactNode }) {\n const arbi = useArbi()\n const queryClient = useQueryClient()\n const host = useHost().documentTools\n const { user, ensureWorkspaceOpen } = useConnectedWorkspace()\n const { notify: environmentNotify, openDocument: openInHost } = useBlocksEnvironment()\n const emailDocument = useEmailDocument()\n const client = host?.client ?? (arbi.isLoggedIn ? arbi.getClient().fetch : null)\n const signer = useMemo(\n () => (user ? { name: user.name, email: user.email, externalId: user.externalId } : null),\n [user]\n )\n const notify = useCallback<DocumentToolsNotify>(\n (message, kind, options) =>\n environmentNotify(message, kind, {\n description: options?.description,\n action: options?.action,\n }),\n [environmentNotify]\n )\n const ownDocumentsChanged = useCallback(\n async (ids: string[], change: DocumentChange) => {\n // The list carries each version's markup count and the copies; a signature or a saved\n // version is a new current version, with new versions and a new rendered PDF.\n const refresh: Promise<unknown>[] = [refreshDocuments(queryClient, arbi, ids)]\n if (change === 'signed' || change === 'version')\n for (const id of ids)\n refresh.push(\n queryClient.invalidateQueries({ queryKey: arbiQueryKeys.documentVersions(id) }),\n queryClient.invalidateQueries({ queryKey: documentBytesKey(id) })\n )\n await Promise.all(refresh)\n },\n [queryClient, arbi]\n )\n // The server files an upload in the session's open workspace: re-assert it first.\n const ownUpload = useCallback(\n async (request: DocumentUploadRequest) => {\n if (!client) throw new Error('Sign in to save a copy.')\n await ensureWorkspaceOpen()\n return clientUpload(client)(request)\n },\n [client, ensureWorkspaceOpen]\n )\n // What the tools open is a PDF they just made (a frozen copy, a signed copy, a production), seen\n // where it was made: on the PDF, not the text view, which a copy still processing does not have.\n const ownOpenDocument = useCallback(\n (ref: string) => openInHost(ref, { tab: 'pdf' }),\n [openInHost]\n )\n if (!client) return <>{children}</>\n return (\n <DocumentToolsProvider\n client={client}\n deploymentDomain={host?.deploymentDomain}\n user={signer}\n notify={notify}\n openDocument={host?.openDocument ?? ownOpenDocument}\n onDocumentsChanged={host?.onDocumentsChanged ?? ownDocumentsChanged}\n uploadDocument={host?.uploadDocument ?? ownUpload}\n emailDocument={emailDocument}\n certificateUrl={host?.certificateUrl}\n >\n {children}\n </DocumentToolsProvider>\n )\n}\n"]}
@@ -3,13 +3,13 @@
3
3
 
4
4
  var chunkYZ6YOOTF_cjs = require('./chunk-YZ6YOOTF.cjs');
5
5
  var chunkKWJW5TMH_cjs = require('./chunk-KWJW5TMH.cjs');
6
- var chunkV2CKYM4B_cjs = require('./chunk-V2CKYM4B.cjs');
6
+ var chunkXHN5KOI2_cjs = require('./chunk-XHN5KOI2.cjs');
7
7
  var chunkRBI7WVEP_cjs = require('./chunk-RBI7WVEP.cjs');
8
- var chunkJNVJQCGF_cjs = require('./chunk-JNVJQCGF.cjs');
9
- var chunk5OUOPKGE_cjs = require('./chunk-5OUOPKGE.cjs');
8
+ var chunkUCA4JLLJ_cjs = require('./chunk-UCA4JLLJ.cjs');
9
+ var chunk45OU2UAA_cjs = require('./chunk-45OU2UAA.cjs');
10
10
  var chunk53RXGFJ6_cjs = require('./chunk-53RXGFJ6.cjs');
11
- var chunkQN5GTCPB_cjs = require('./chunk-QN5GTCPB.cjs');
12
- var chunkLM5CPXJO_cjs = require('./chunk-LM5CPXJO.cjs');
11
+ var chunk7V4OCZS6_cjs = require('./chunk-7V4OCZS6.cjs');
12
+ var chunkCRLFLMTK_cjs = require('./chunk-CRLFLMTK.cjs');
13
13
  var chunkJH6JTI76_cjs = require('./chunk-JH6JTI76.cjs');
14
14
  var chunkZ3LFF3YT_cjs = require('./chunk-Z3LFF3YT.cjs');
15
15
  var chunkNSD37OF5_cjs = require('./chunk-NSD37OF5.cjs');
@@ -19,8 +19,8 @@ var chunk7JLJH5CW_cjs = require('./chunk-7JLJH5CW.cjs');
19
19
  var chunkKCP42W67_cjs = require('./chunk-KCP42W67.cjs');
20
20
  var chunkFDNIK5YS_cjs = require('./chunk-FDNIK5YS.cjs');
21
21
  var chunkQUMUAJ2P_cjs = require('./chunk-QUMUAJ2P.cjs');
22
- var chunkD3GZWKHW_cjs = require('./chunk-D3GZWKHW.cjs');
23
- var chunkTJQMC7GJ_cjs = require('./chunk-TJQMC7GJ.cjs');
22
+ var chunkEKSHUNJI_cjs = require('./chunk-EKSHUNJI.cjs');
23
+ var chunkNNBL3HPG_cjs = require('./chunk-NNBL3HPG.cjs');
24
24
  var chunkARHZNNLV_cjs = require('./chunk-ARHZNNLV.cjs');
25
25
  var chunkQFVIWWWD_cjs = require('./chunk-QFVIWWWD.cjs');
26
26
  var chunkHSLPFBK2_cjs = require('./chunk-HSLPFBK2.cjs');
@@ -70,7 +70,7 @@ function ConnectedTaskComposer({
70
70
  const startLater = startLaterProp && automationsEnabled;
71
71
  const isWorkflow = kind === "workflow";
72
72
  const isEdit = isWorkflow ? !!editingWorkflow : !!task;
73
- const { forTasks: baseSkills, skills } = chunkJNVJQCGF_cjs.useWorkflowDefinitions();
73
+ const { forTasks: baseSkills, skills } = chunkUCA4JLLJ_cjs.useWorkflowDefinitions();
74
74
  const { data: reviewFields = [] } = react.useTags();
75
75
  const scheduledSkills = react$1.useMemo(
76
76
  () => [
@@ -129,8 +129,8 @@ function ConnectedTaskComposer({
129
129
  const { data: workspaces = [] } = react.useWorkspaces();
130
130
  const { tasks: allTasks } = react.useWorkItems();
131
131
  const { data: documents = [] } = react.useDocuments();
132
- const { create, update, updateWorkflow, isPending } = chunkJNVJQCGF_cjs.useWorkflowTasks();
133
- const scopeSource = chunkQN5GTCPB_cjs.useConnectedWorkflowScopeSource();
132
+ const { create, update, updateWorkflow, isPending } = chunkUCA4JLLJ_cjs.useWorkflowTasks();
133
+ const scopeSource = chunk7V4OCZS6_cjs.useConnectedWorkflowScopeSource();
134
134
  const activeWorkspaceId = react.useArbiSessionState((s) => s.workspaceId);
135
135
  const planWork = react.usePlanWork(activeWorkspaceId);
136
136
  const activeWorkspace = react$1.useMemo(
@@ -308,7 +308,7 @@ function ConnectedTaskComposer({
308
308
  renderIcon: chunk7JLJH5CW_cjs.renderWorkflowIcon,
309
309
  scopeSource,
310
310
  renderDocuments: (field, value, onChange) => /* @__PURE__ */ jsxRuntime.jsx(
311
- chunkQN5GTCPB_cjs.ConnectedWorkflowDocumentsField,
311
+ chunk7V4OCZS6_cjs.ConnectedWorkflowDocumentsField,
312
312
  {
313
313
  field,
314
314
  value,
@@ -420,8 +420,8 @@ function ConnectedTaskActivityDialog({
420
420
  }) {
421
421
  const activity = react.useConversationActivity(conversationId, { live });
422
422
  const { data: agents = [] } = react.useAgents();
423
- const { userId } = chunkTJQMC7GJ_cjs.useConnectedWorkspace();
424
- const { members } = chunk5OUOPKGE_cjs.useConnectedWorkspaceRole();
423
+ const { userId } = chunkNNBL3HPG_cjs.useConnectedWorkspace();
424
+ const { members } = chunk45OU2UAA_cjs.useConnectedWorkspaceRole();
425
425
  const renderPerson = react$1.useCallback(
426
426
  (id) => {
427
427
  const isMe = !!id && id === userId;
@@ -487,7 +487,7 @@ function ConnectedThreadTaskBar({
487
487
  renderIcon
488
488
  }) {
489
489
  const { conversations } = react.useConversationItems();
490
- const { activity, items, related, signals, startedBy } = chunkV2CKYM4B_cjs.useConnectedThreadActivity(conversationId);
490
+ const { activity, items, related, signals, startedBy } = chunkXHN5KOI2_cjs.useConnectedThreadActivity(conversationId);
491
491
  const canEditShared = react.useCanEditShared();
492
492
  const update = react.useUpdateConversation();
493
493
  const actOnStep = react.useActOnStep();
@@ -688,7 +688,7 @@ function ConnectedThreadTaskBar({
688
688
  ] }),
689
689
  error && /* @__PURE__ */ jsxRuntime.jsx("span", { role: "alert", className: "text-xs text-destructive", children: error }),
690
690
  /* @__PURE__ */ jsxRuntime.jsx(
691
- chunkLM5CPXJO_cjs.RenameDialog,
691
+ chunkCRLFLMTK_cjs.RenameDialog,
692
692
  {
693
693
  open: renameOpen,
694
694
  onClose: () => setRenameOpen(false),
@@ -971,9 +971,9 @@ function useWorkflowRunTarget({
971
971
  workspaceId: fixedWorkspace,
972
972
  onProjectCreated
973
973
  }) {
974
- const { workspaceId: open } = chunkTJQMC7GJ_cjs.useConnectedWorkspace();
974
+ const { workspaceId: open } = chunkNNBL3HPG_cjs.useConnectedWorkspace();
975
975
  const session = react.useArbiSessionStore();
976
- const selectWorkspace = chunkV2CKYM4B_cjs.useSelectWorkspace();
976
+ const selectWorkspace = chunkXHN5KOI2_cjs.useSelectWorkspace();
977
977
  const createProject = react.useCreateProject();
978
978
  const { mutateAsync: updateProject } = react.useUpdateProjectFields();
979
979
  const { mutateAsync: updateWorkspace } = react.useUpdateWorkspace();
@@ -1404,7 +1404,7 @@ function useAnswerRetry(missing, refetch) {
1404
1404
  }
1405
1405
  function useWorkflowThread(workflow, options = {}) {
1406
1406
  const arbi = react.useArbi();
1407
- const { ensureWorkspaceOpen, live, workspaceId } = chunkTJQMC7GJ_cjs.useConnectedWorkspace();
1407
+ const { ensureWorkspaceOpen, live, workspaceId } = chunkNNBL3HPG_cjs.useConnectedWorkspace();
1408
1408
  const wsId = workspaceId ?? void 0;
1409
1409
  const [threadId, setThreadId] = react$1.useState(options.conversationId);
1410
1410
  const [localInputs, setLocalInputs] = react$1.useState(
@@ -1623,7 +1623,7 @@ function WorkflowSignDialog({
1623
1623
  labels
1624
1624
  }) {
1625
1625
  const arbi = react.useArbi();
1626
- const { user, ensureWorkspaceOpen } = chunkTJQMC7GJ_cjs.useConnectedWorkspace();
1626
+ const { user, ensureWorkspaceOpen } = chunkNNBL3HPG_cjs.useConnectedWorkspace();
1627
1627
  const tools = documentTools.useOptionalDocumentTools();
1628
1628
  const { id, version: stepVersion } = chunkQGVOT7E4_cjs.splitDocRef(docRef);
1629
1629
  const [version, setVersion] = react$1.useState(stepVersion);
@@ -1712,7 +1712,7 @@ function WorkflowWordDialog({
1712
1712
  title: title ?? labels.wordTitle,
1713
1713
  size: "xl",
1714
1714
  testId: "workflow-word-dialog",
1715
- children: /* @__PURE__ */ jsxRuntime.jsx(chunkULWRNGGE_cjs.ModalScaffold.Body, { className: "h-[70dvh] p-0", children: /* @__PURE__ */ jsxRuntime.jsx(chunk5OUOPKGE_cjs.ConnectedNativeDocxEditor, { documentId: id, title: title ?? labels.wordTitle }) })
1715
+ children: /* @__PURE__ */ jsxRuntime.jsx(chunkULWRNGGE_cjs.ModalScaffold.Body, { className: "h-[70dvh] p-0", children: /* @__PURE__ */ jsxRuntime.jsx(chunk45OU2UAA_cjs.ConnectedNativeDocxEditor, { documentId: id, title: title ?? labels.wordTitle }) })
1716
1716
  }
1717
1717
  );
1718
1718
  }
@@ -1723,7 +1723,7 @@ function WorkflowReviewGridDialog({
1723
1723
  onOpenDocument,
1724
1724
  labels
1725
1725
  }) {
1726
- const { workspaceId } = chunkTJQMC7GJ_cjs.useConnectedWorkspace();
1726
+ const { workspaceId } = chunkNNBL3HPG_cjs.useConnectedWorkspace();
1727
1727
  const allTags = react.useTags(workspaceId ?? void 0);
1728
1728
  const all = react.useDocuments(workspaceId ?? void 0);
1729
1729
  const isLoading = allTags.isLoading || all.isLoading || all.isFetching && !all.isFetchedAfterMount;
@@ -1863,7 +1863,7 @@ function WorkflowRunBody({
1863
1863
  const citationInEnvironment = chunkARHZNNLV_cjs.useOpenCitation();
1864
1864
  const dl = { ...DEFAULT_WORKFLOW_RUNNER_DIALOG_LABELS, ...dialogLabels };
1865
1865
  const arbi = react.useArbi();
1866
- const { ensureWorkspaceOpen, userId, workspaceId } = chunkTJQMC7GJ_cjs.useConnectedWorkspace();
1866
+ const { ensureWorkspaceOpen, userId, workspaceId } = chunkNNBL3HPG_cjs.useConnectedWorkspace();
1867
1867
  const wsId = workspaceId ?? void 0;
1868
1868
  const session = react.useArbiSessionStore();
1869
1869
  const openRef = react$1.useRef(workspaceId);
@@ -1928,7 +1928,7 @@ function WorkflowRunBody({
1928
1928
  [project, inputsFromProject, createdInputs, hostInitial]
1929
1929
  );
1930
1930
  const { data: docs = [], refetch } = react.useDocuments(wsId);
1931
- const documentFilter = chunkD3GZWKHW_cjs.useDocumentFilter();
1931
+ const documentFilter = chunkEKSHUNJI_cjs.useDocumentFilter();
1932
1932
  const [sending, setSending] = react$1.useState([]);
1933
1933
  const [added, setAdded] = react$1.useState({});
1934
1934
  const [addedNames, setAddedNames] = react$1.useState({});
@@ -2244,7 +2244,7 @@ function ReviewNotify({
2244
2244
  testId
2245
2245
  }) {
2246
2246
  const arbi = react.useArbi();
2247
- const { live, userId, ensureWorkspaceOpen } = chunkTJQMC7GJ_cjs.useConnectedWorkspace();
2247
+ const { live, userId, ensureWorkspaceOpen } = chunkNNBL3HPG_cjs.useConnectedWorkspace();
2248
2248
  const { data: members = [] } = react.useWorkspaceUsers(workspaceId, {
2249
2249
  enabled: live && !!workspaceId,
2250
2250
  beforeFetch: ensureWorkspaceOpen
@@ -2502,5 +2502,5 @@ exports.useRequiredLabels = useRequiredLabels;
2502
2502
  exports.useTaskPeople = useTaskPeople;
2503
2503
  exports.useWorkflowsPageState = useWorkflowsPageState;
2504
2504
  exports.workflowRunView = workflowRunView;
2505
- //# sourceMappingURL=chunk-OXHAZN43.cjs.map
2506
- //# sourceMappingURL=chunk-OXHAZN43.cjs.map
2505
+ //# sourceMappingURL=chunk-IXL2KJOZ.cjs.map
2506
+ //# sourceMappingURL=chunk-IXL2KJOZ.cjs.map