@arbidocs/blocks 0.5.63 → 0.5.65

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 (177) hide show
  1. package/dist/{ConnectedDocumentViewer-7VKAM6KD.js → ConnectedDocumentViewer-HKIBNGGG.js} +10 -9
  2. package/dist/{ConnectedDocumentViewer-7VKAM6KD.js.map → ConnectedDocumentViewer-HKIBNGGG.js.map} +1 -1
  3. package/dist/{ConnectedDocumentViewer-FGQ27H4B.cjs → ConnectedDocumentViewer-YSZWOVGN.cjs} +11 -10
  4. package/dist/{ConnectedDocumentViewer-FGQ27H4B.cjs.map → ConnectedDocumentViewer-YSZWOVGN.cjs.map} +1 -1
  5. package/dist/{ConnectedNativeDocxComparison-HJ4FTVH6.cjs → ConnectedNativeDocxComparison-L3R3ROPZ.cjs} +7 -7
  6. package/dist/{ConnectedNativeDocxComparison-HJ4FTVH6.cjs.map → ConnectedNativeDocxComparison-L3R3ROPZ.cjs.map} +1 -1
  7. package/dist/{ConnectedNativeDocxComparison-FPW3BNBN.js → ConnectedNativeDocxComparison-PSAP3Q7D.js} +6 -6
  8. package/dist/{ConnectedNativeDocxComparison-FPW3BNBN.js.map → ConnectedNativeDocxComparison-PSAP3Q7D.js.map} +1 -1
  9. package/dist/{ConnectedNativeDocxEditor-S7NJMDSU.js → ConnectedNativeDocxEditor-PI6QTPXZ.js} +5 -5
  10. package/dist/{ConnectedNativeDocxEditor-S7NJMDSU.js.map → ConnectedNativeDocxEditor-PI6QTPXZ.js.map} +1 -1
  11. package/dist/{ConnectedNativeDocxEditor-PF46MU5H.cjs → ConnectedNativeDocxEditor-VDBC4XRT.cjs} +7 -7
  12. package/dist/{ConnectedNativeDocxEditor-PF46MU5H.cjs.map → ConnectedNativeDocxEditor-VDBC4XRT.cjs.map} +1 -1
  13. package/dist/{ConnectedStreamedWordArtifact-5MHLV24V.js → ConnectedStreamedWordArtifact-V4MTKVNE.js} +6 -6
  14. package/dist/ConnectedStreamedWordArtifact-V4MTKVNE.js.map +1 -0
  15. package/dist/{ConnectedStreamedWordArtifact-LNGW7YGV.cjs → ConnectedStreamedWordArtifact-YSW6D7AG.cjs} +7 -7
  16. package/dist/ConnectedStreamedWordArtifact-YSW6D7AG.cjs.map +1 -0
  17. package/dist/{DocumentReviewCard-VFNMJSK7.cjs → DocumentReviewCard-BQ6ZD5MD.cjs} +6 -6
  18. package/dist/{DocumentReviewCard-VFNMJSK7.cjs.map → DocumentReviewCard-BQ6ZD5MD.cjs.map} +1 -1
  19. package/dist/{DocumentReviewCard-5U3TGJZA.js → DocumentReviewCard-TQQADJ36.js} +6 -6
  20. package/dist/{DocumentReviewCard-5U3TGJZA.js.map → DocumentReviewCard-TQQADJ36.js.map} +1 -1
  21. package/dist/{WorkspaceTableView-DHMCJRC6.cjs → WorkspaceTableView-GKMVTECZ.cjs} +6 -6
  22. package/dist/{WorkspaceTableView-DHMCJRC6.cjs.map → WorkspaceTableView-GKMVTECZ.cjs.map} +1 -1
  23. package/dist/{WorkspaceTableView-EH5CEB44.js → WorkspaceTableView-YFLVFRJL.js} +4 -4
  24. package/dist/{WorkspaceTableView-EH5CEB44.js.map → WorkspaceTableView-YFLVFRJL.js.map} +1 -1
  25. package/dist/agents/index.cjs +345 -344
  26. package/dist/agents/index.js +6 -5
  27. package/dist/{chunk-NDVLCOWS.js → chunk-2LUA7UDE.js} +7 -7
  28. package/dist/{chunk-NDVLCOWS.js.map → chunk-2LUA7UDE.js.map} +1 -1
  29. package/dist/{chunk-77IAOKZO.js → chunk-2VH2PT3J.js} +5 -38
  30. package/dist/chunk-2VH2PT3J.js.map +1 -0
  31. package/dist/{chunk-IC6SBDYA.js → chunk-4CI42DCG.js} +3 -3
  32. package/dist/{chunk-IC6SBDYA.js.map → chunk-4CI42DCG.js.map} +1 -1
  33. package/dist/{chunk-IFLFLP4K.js → chunk-4Q7ON335.js} +6 -5
  34. package/dist/chunk-4Q7ON335.js.map +1 -0
  35. package/dist/{chunk-IUFS3AYQ.js → chunk-5EGTGHBW.js} +7 -7
  36. package/dist/{chunk-IUFS3AYQ.js.map → chunk-5EGTGHBW.js.map} +1 -1
  37. package/dist/{chunk-OLDGMBEF.cjs → chunk-67AFX23Y.cjs} +185 -91
  38. package/dist/chunk-67AFX23Y.cjs.map +1 -0
  39. package/dist/{chunk-5CWBAINB.js → chunk-6OMIIF76.js} +3 -3
  40. package/dist/{chunk-5CWBAINB.js.map → chunk-6OMIIF76.js.map} +1 -1
  41. package/dist/chunk-6QZ35CTZ.js +594 -0
  42. package/dist/chunk-6QZ35CTZ.js.map +1 -0
  43. package/dist/{chunk-4RJPTXUQ.cjs → chunk-7MOQO6NO.cjs} +5 -5
  44. package/dist/{chunk-4RJPTXUQ.cjs.map → chunk-7MOQO6NO.cjs.map} +1 -1
  45. package/dist/chunk-AESJLGMC.cjs +1228 -0
  46. package/dist/chunk-AESJLGMC.cjs.map +1 -0
  47. package/dist/{chunk-EOIJ5JYP.cjs → chunk-B3CRSCLK.cjs} +4 -4
  48. package/dist/{chunk-EOIJ5JYP.cjs.map → chunk-B3CRSCLK.cjs.map} +1 -1
  49. package/dist/{chunk-GRDLCRNL.js → chunk-BELZ2WD2.js} +5 -5
  50. package/dist/{chunk-GRDLCRNL.js.map → chunk-BELZ2WD2.js.map} +1 -1
  51. package/dist/chunk-C2S246BV.js +1225 -0
  52. package/dist/chunk-C2S246BV.js.map +1 -0
  53. package/dist/{chunk-TAI23FCY.js → chunk-CEKOZAGO.js} +3 -3
  54. package/dist/{chunk-TAI23FCY.js.map → chunk-CEKOZAGO.js.map} +1 -1
  55. package/dist/{chunk-HVOPUYAG.cjs → chunk-CJF7B5A7.cjs} +29 -28
  56. package/dist/chunk-CJF7B5A7.cjs.map +1 -0
  57. package/dist/{chunk-LBKTTQUR.cjs → chunk-CMYJEIZB.cjs} +12 -12
  58. package/dist/{chunk-LBKTTQUR.cjs.map → chunk-CMYJEIZB.cjs.map} +1 -1
  59. package/dist/{chunk-2SLDVFOZ.js → chunk-CRHY7DBO.js} +3 -3
  60. package/dist/{chunk-2SLDVFOZ.js.map → chunk-CRHY7DBO.js.map} +1 -1
  61. package/dist/{chunk-23ACBETH.cjs → chunk-D27BBGUF.cjs} +4 -4
  62. package/dist/{chunk-23ACBETH.cjs.map → chunk-D27BBGUF.cjs.map} +1 -1
  63. package/dist/{chunk-3X37I6QE.cjs → chunk-DJE2E7YH.cjs} +29 -29
  64. package/dist/{chunk-3X37I6QE.cjs.map → chunk-DJE2E7YH.cjs.map} +1 -1
  65. package/dist/{chunk-CCSF7RI4.cjs → chunk-EG3BB32W.cjs} +3 -3
  66. package/dist/{chunk-CCSF7RI4.cjs.map → chunk-EG3BB32W.cjs.map} +1 -1
  67. package/dist/{chunk-MAKTAR7H.cjs → chunk-F777MGVA.cjs} +18 -18
  68. package/dist/{chunk-MAKTAR7H.cjs.map → chunk-F777MGVA.cjs.map} +1 -1
  69. package/dist/{chunk-TFWCREOL.js → chunk-GPYLXEZO.js} +9 -506
  70. package/dist/chunk-GPYLXEZO.js.map +1 -0
  71. package/dist/{chunk-OY3I32ZS.js → chunk-GX37C5QT.js} +4 -4
  72. package/dist/{chunk-OY3I32ZS.js.map → chunk-GX37C5QT.js.map} +1 -1
  73. package/dist/chunk-I4IS6ST6.cjs +48 -0
  74. package/dist/chunk-I4IS6ST6.cjs.map +1 -0
  75. package/dist/{chunk-OZL5ABLF.js → chunk-IRXPUQFP.js} +3 -3
  76. package/dist/{chunk-OZL5ABLF.js.map → chunk-IRXPUQFP.js.map} +1 -1
  77. package/dist/chunk-J77BACGX.js +575 -0
  78. package/dist/chunk-J77BACGX.js.map +1 -0
  79. package/dist/{chunk-X3JJTHQ4.cjs → chunk-JSHBC47B.cjs} +55 -55
  80. package/dist/{chunk-X3JJTHQ4.cjs.map → chunk-JSHBC47B.cjs.map} +1 -1
  81. package/dist/{chunk-Y6ZNWC7E.cjs → chunk-K26RLK2Y.cjs} +3 -3
  82. package/dist/{chunk-Y6ZNWC7E.cjs.map → chunk-K26RLK2Y.cjs.map} +1 -1
  83. package/dist/{chunk-PKDPQS6Z.js → chunk-KNOSLLTC.js} +3 -3
  84. package/dist/{chunk-PKDPQS6Z.js.map → chunk-KNOSLLTC.js.map} +1 -1
  85. package/dist/chunk-LFS6UWSJ.cjs +602 -0
  86. package/dist/chunk-LFS6UWSJ.cjs.map +1 -0
  87. package/dist/{chunk-YQFEN7UJ.js → chunk-LNH6NYG4.js} +6 -90
  88. package/dist/chunk-LNH6NYG4.js.map +1 -0
  89. package/dist/chunk-LRPGXNMA.js +44 -0
  90. package/dist/chunk-LRPGXNMA.js.map +1 -0
  91. package/dist/chunk-NEGFHF3V.cjs +617 -0
  92. package/dist/chunk-NEGFHF3V.cjs.map +1 -0
  93. package/dist/{chunk-NHPBONMR.js → chunk-O4FBMC6S.js} +186 -71
  94. package/dist/chunk-O4FBMC6S.js.map +1 -0
  95. package/dist/{chunk-7P24MJQN.js → chunk-PBIFISDD.js} +3 -3
  96. package/dist/{chunk-7P24MJQN.js.map → chunk-PBIFISDD.js.map} +1 -1
  97. package/dist/{chunk-OWUNCJFO.cjs → chunk-PZOX4JF6.cjs} +30 -30
  98. package/dist/{chunk-OWUNCJFO.cjs.map → chunk-PZOX4JF6.cjs.map} +1 -1
  99. package/dist/{chunk-CKNUL4LM.cjs → chunk-QK546T4C.cjs} +3 -3
  100. package/dist/{chunk-CKNUL4LM.cjs.map → chunk-QK546T4C.cjs.map} +1 -1
  101. package/dist/{chunk-QAXIVZEJ.cjs → chunk-ROWJU4SK.cjs} +13 -513
  102. package/dist/chunk-ROWJU4SK.cjs.map +1 -0
  103. package/dist/{chunk-JWRTUYLC.js → chunk-SBAM3UZX.js} +3 -3
  104. package/dist/{chunk-JWRTUYLC.js.map → chunk-SBAM3UZX.js.map} +1 -1
  105. package/dist/{chunk-COZDIUG7.cjs → chunk-TJ7QEGVP.cjs} +18 -18
  106. package/dist/{chunk-COZDIUG7.cjs.map → chunk-TJ7QEGVP.cjs.map} +1 -1
  107. package/dist/{chunk-PVPGD6QR.js → chunk-VWM3J6ES.js} +3 -3
  108. package/dist/{chunk-PVPGD6QR.js.map → chunk-VWM3J6ES.js.map} +1 -1
  109. package/dist/{chunk-UDMII47W.cjs → chunk-WBLCPCWR.cjs} +7 -7
  110. package/dist/{chunk-UDMII47W.cjs.map → chunk-WBLCPCWR.cjs.map} +1 -1
  111. package/dist/{chunk-3T3IKNGF.cjs → chunk-ZXW6WFZG.cjs} +5 -41
  112. package/dist/chunk-ZXW6WFZG.cjs.map +1 -0
  113. package/dist/{chunk-ODQK3LX5.cjs → chunk-ZZHMJXM5.cjs} +4 -93
  114. package/dist/chunk-ZZHMJXM5.cjs.map +1 -0
  115. package/dist/connect/docx.cjs +11 -11
  116. package/dist/connect/docx.js +7 -7
  117. package/dist/connect/index.cjs +496 -493
  118. package/dist/connect/index.cjs.map +1 -1
  119. package/dist/connect/index.js +36 -33
  120. package/dist/connect/index.js.map +1 -1
  121. package/dist/connect/viewer.cjs +9 -8
  122. package/dist/connect/viewer.js +8 -7
  123. package/dist/dashboards/index.cjs +1 -1
  124. package/dist/dashboards/index.js +1 -1
  125. package/dist/document-tools/index.cjs +17 -17
  126. package/dist/document-tools/index.js +2 -2
  127. package/dist/embed/index.cjs +11 -10
  128. package/dist/embed/index.js +8 -7
  129. package/dist/facts/index.cjs +1 -1
  130. package/dist/facts/index.js +1 -1
  131. package/dist/files/index.cjs +1 -1
  132. package/dist/files/index.js +1 -1
  133. package/dist/index.cjs +653 -618
  134. package/dist/index.cjs.map +1 -1
  135. package/dist/index.d.ts +4 -0
  136. package/dist/index.js +19 -16
  137. package/dist/index.js.map +1 -1
  138. package/dist/shell/index.cjs +78 -77
  139. package/dist/shell/index.js +3 -2
  140. package/dist/site/index.cjs +105 -81
  141. package/dist/site/index.d.ts +3 -1
  142. package/dist/site/index.js +4 -4
  143. package/dist/studio/index.cjs +60 -55
  144. package/dist/studio/index.cjs.map +1 -1
  145. package/dist/studio/index.js +12 -7
  146. package/dist/studio/index.js.map +1 -1
  147. package/dist/theme/ThemeControls.d.ts +71 -0
  148. package/dist/theme/ThemeEditor.d.ts +5 -2
  149. package/dist/theme/ThemePreview.d.ts +20 -0
  150. package/dist/theme/color.d.ts +17 -1
  151. package/dist/theme/derive.d.ts +75 -0
  152. package/dist/theme/editorModel.d.ts +36 -0
  153. package/dist/theme/previewLabels.d.ts +38 -0
  154. package/dist/theme/store.d.ts +51 -13
  155. package/dist/theme/tokens.d.ts +2 -0
  156. package/dist/workflow-canvas/index.cjs +37 -36
  157. package/dist/workflow-canvas/index.cjs.map +1 -1
  158. package/dist/workflow-canvas/index.js +13 -12
  159. package/dist/workflow-canvas/index.js.map +1 -1
  160. package/node_modules/@arbidocs/coedit/package.json +1 -1
  161. package/package.json +5 -5
  162. package/dist/ConnectedStreamedWordArtifact-5MHLV24V.js.map +0 -1
  163. package/dist/ConnectedStreamedWordArtifact-LNGW7YGV.cjs.map +0 -1
  164. package/dist/chunk-3T3IKNGF.cjs.map +0 -1
  165. package/dist/chunk-77IAOKZO.js.map +0 -1
  166. package/dist/chunk-HVOPUYAG.cjs.map +0 -1
  167. package/dist/chunk-IFLFLP4K.js.map +0 -1
  168. package/dist/chunk-N5WJBQYF.cjs +0 -476
  169. package/dist/chunk-N5WJBQYF.cjs.map +0 -1
  170. package/dist/chunk-NHPBONMR.js.map +0 -1
  171. package/dist/chunk-ODQK3LX5.cjs.map +0 -1
  172. package/dist/chunk-OLDGMBEF.cjs.map +0 -1
  173. package/dist/chunk-QAXIVZEJ.cjs.map +0 -1
  174. package/dist/chunk-QCLYRNOC.js +0 -466
  175. package/dist/chunk-QCLYRNOC.js.map +0 -1
  176. package/dist/chunk-TFWCREOL.js.map +0 -1
  177. package/dist/chunk-YQFEN7UJ.js.map +0 -1
@@ -1,78 +1,81 @@
1
1
  "use client";
2
2
  'use strict';
3
3
 
4
- var chunkCCSF7RI4_cjs = require('../chunk-CCSF7RI4.cjs');
4
+ var chunkEG3BB32W_cjs = require('../chunk-EG3BB32W.cjs');
5
5
  var chunkZ7DJS6M3_cjs = require('../chunk-Z7DJS6M3.cjs');
6
6
  var chunkSEVFIBF3_cjs = require('../chunk-SEVFIBF3.cjs');
7
- var chunkX3JJTHQ4_cjs = require('../chunk-X3JJTHQ4.cjs');
7
+ var chunkJSHBC47B_cjs = require('../chunk-JSHBC47B.cjs');
8
8
  var chunkE5625KT2_cjs = require('../chunk-E5625KT2.cjs');
9
9
  var chunk2GSZG6KA_cjs = require('../chunk-2GSZG6KA.cjs');
10
10
  var chunkHYAYXLIZ_cjs = require('../chunk-HYAYXLIZ.cjs');
11
11
  var chunkKWJW5TMH_cjs = require('../chunk-KWJW5TMH.cjs');
12
12
  var chunkPSIKUQYM_cjs = require('../chunk-PSIKUQYM.cjs');
13
- var chunk3X37I6QE_cjs = require('../chunk-3X37I6QE.cjs');
14
- var chunkLBKTTQUR_cjs = require('../chunk-LBKTTQUR.cjs');
13
+ var chunkDJE2E7YH_cjs = require('../chunk-DJE2E7YH.cjs');
14
+ var chunkCMYJEIZB_cjs = require('../chunk-CMYJEIZB.cjs');
15
15
  var chunkEGJ7WJ6Q_cjs = require('../chunk-EGJ7WJ6Q.cjs');
16
+ var chunkJBL4PPEE_cjs = require('../chunk-JBL4PPEE.cjs');
16
17
  var chunkF73EZQT4_cjs = require('../chunk-F73EZQT4.cjs');
17
18
  var chunkXFL67STW_cjs = require('../chunk-XFL67STW.cjs');
18
19
  var chunkOM5IVNEW_cjs = require('../chunk-OM5IVNEW.cjs');
19
20
  var chunkOU3RGQFX_cjs = require('../chunk-OU3RGQFX.cjs');
20
21
  require('../chunk-REH7PX3N.cjs');
21
22
  require('../chunk-H32DV7XS.cjs');
22
- var chunkJBL4PPEE_cjs = require('../chunk-JBL4PPEE.cjs');
23
- var chunkUDMII47W_cjs = require('../chunk-UDMII47W.cjs');
23
+ var chunkWBLCPCWR_cjs = require('../chunk-WBLCPCWR.cjs');
24
24
  var chunk464YPRAE_cjs = require('../chunk-464YPRAE.cjs');
25
25
  var chunkPICGTGEB_cjs = require('../chunk-PICGTGEB.cjs');
26
26
  var chunkT35SGVB2_cjs = require('../chunk-T35SGVB2.cjs');
27
27
  var chunk5FYU7ZIU_cjs = require('../chunk-5FYU7ZIU.cjs');
28
28
  var chunk6JRRJSJN_cjs = require('../chunk-6JRRJSJN.cjs');
29
29
  var chunk2FRUMQLS_cjs = require('../chunk-2FRUMQLS.cjs');
30
- var chunkVGNCU5JJ_cjs = require('../chunk-VGNCU5JJ.cjs');
31
- var chunk2WLXQGWC_cjs = require('../chunk-2WLXQGWC.cjs');
32
30
  require('../chunk-324RBHCF.cjs');
31
+ var chunkVGNCU5JJ_cjs = require('../chunk-VGNCU5JJ.cjs');
33
32
  var chunk223D4727_cjs = require('../chunk-223D4727.cjs');
33
+ var chunk2WLXQGWC_cjs = require('../chunk-2WLXQGWC.cjs');
34
34
  var chunk2VJBIBPE_cjs = require('../chunk-2VJBIBPE.cjs');
35
35
  var chunkTQSU3I4C_cjs = require('../chunk-TQSU3I4C.cjs');
36
36
  var chunkMISPPQBP_cjs = require('../chunk-MISPPQBP.cjs');
37
37
  require('../chunk-JH6JTI76.cjs');
38
- require('../chunk-UWIILWDI.cjs');
39
38
  var chunkIRY63R4L_cjs = require('../chunk-IRY63R4L.cjs');
39
+ require('../chunk-UWIILWDI.cjs');
40
40
  require('../chunk-ZESMRGDV.cjs');
41
- var chunk4RJPTXUQ_cjs = require('../chunk-4RJPTXUQ.cjs');
42
- var chunkN5WJBQYF_cjs = require('../chunk-N5WJBQYF.cjs');
41
+ var chunk7MOQO6NO_cjs = require('../chunk-7MOQO6NO.cjs');
42
+ var chunkAESJLGMC_cjs = require('../chunk-AESJLGMC.cjs');
43
43
  var chunkZ3LFF3YT_cjs = require('../chunk-Z3LFF3YT.cjs');
44
44
  var chunkC2ECYOPP_cjs = require('../chunk-C2ECYOPP.cjs');
45
45
  var chunkTMX7YFVM_cjs = require('../chunk-TMX7YFVM.cjs');
46
46
  require('../chunk-QXNEXPUL.cjs');
47
- var chunkVPPX5XUF_cjs = require('../chunk-VPPX5XUF.cjs');
48
- require('../chunk-PCB2BPN3.cjs');
47
+ var chunkQZTNTP75_cjs = require('../chunk-QZTNTP75.cjs');
49
48
  var chunkGOWXP5KT_cjs = require('../chunk-GOWXP5KT.cjs');
50
49
  var chunkYCO4ZBBL_cjs = require('../chunk-YCO4ZBBL.cjs');
51
- var chunkQZTNTP75_cjs = require('../chunk-QZTNTP75.cjs');
50
+ require('../chunk-NEGFHF3V.cjs');
52
51
  require('../chunk-NWNVWO6L.cjs');
52
+ var chunkVPPX5XUF_cjs = require('../chunk-VPPX5XUF.cjs');
53
+ require('../chunk-PCB2BPN3.cjs');
53
54
  var chunkXDMIVPJP_cjs = require('../chunk-XDMIVPJP.cjs');
54
55
  require('../chunk-7G2LJMUG.cjs');
55
56
  var chunkJIOHDVWH_cjs = require('../chunk-JIOHDVWH.cjs');
56
57
  var chunkRC25WMVB_cjs = require('../chunk-RC25WMVB.cjs');
57
58
  var chunkMZZ3SBQL_cjs = require('../chunk-MZZ3SBQL.cjs');
58
59
  var chunk5Y6V7F6W_cjs = require('../chunk-5Y6V7F6W.cjs');
59
- var chunkODQK3LX5_cjs = require('../chunk-ODQK3LX5.cjs');
60
+ var chunkZZHMJXM5_cjs = require('../chunk-ZZHMJXM5.cjs');
61
+ var chunkLFS6UWSJ_cjs = require('../chunk-LFS6UWSJ.cjs');
60
62
  var chunkAXAHA4LL_cjs = require('../chunk-AXAHA4LL.cjs');
61
63
  var chunkY5WE72RB_cjs = require('../chunk-Y5WE72RB.cjs');
62
64
  var chunk4623VCCR_cjs = require('../chunk-4623VCCR.cjs');
63
65
  require('../chunk-VLCY46K6.cjs');
64
66
  var chunkI4NP577O_cjs = require('../chunk-I4NP577O.cjs');
65
- var chunkZU2B2RZK_cjs = require('../chunk-ZU2B2RZK.cjs');
66
67
  var chunkNSD37OF5_cjs = require('../chunk-NSD37OF5.cjs');
68
+ var chunkZU2B2RZK_cjs = require('../chunk-ZU2B2RZK.cjs');
67
69
  require('../chunk-72YEEUH7.cjs');
68
70
  require('../chunk-D54JXTPG.cjs');
69
- var chunkHVOPUYAG_cjs = require('../chunk-HVOPUYAG.cjs');
70
- var chunk3T3IKNGF_cjs = require('../chunk-3T3IKNGF.cjs');
71
+ var chunkCJF7B5A7_cjs = require('../chunk-CJF7B5A7.cjs');
72
+ var chunkZXW6WFZG_cjs = require('../chunk-ZXW6WFZG.cjs');
71
73
  var chunkRFIBUWLF_cjs = require('../chunk-RFIBUWLF.cjs');
72
- var chunkY6ZNWC7E_cjs = require('../chunk-Y6ZNWC7E.cjs');
74
+ require('../chunk-I4IS6ST6.cjs');
75
+ var chunkK26RLK2Y_cjs = require('../chunk-K26RLK2Y.cjs');
73
76
  require('../chunk-3YEXZX4H.cjs');
74
- var chunkZDZY6OPL_cjs = require('../chunk-ZDZY6OPL.cjs');
75
77
  var chunkAQPZ4QMV_cjs = require('../chunk-AQPZ4QMV.cjs');
78
+ var chunkZDZY6OPL_cjs = require('../chunk-ZDZY6OPL.cjs');
76
79
  require('../chunk-SIB6C7P7.cjs');
77
80
  require('../chunk-DVUZTGVL.cjs');
78
81
  var chunkV4ISCZJ7_cjs = require('../chunk-V4ISCZJ7.cjs');
@@ -230,7 +233,7 @@ function ConnectedWorkspaceActivity({
230
233
  [feed.data]
231
234
  );
232
235
  return /* @__PURE__ */ jsxRuntime.jsx(
233
- chunk4RJPTXUQ_cjs.WorkspaceActivityList,
236
+ chunk7MOQO6NO_cjs.WorkspaceActivityList,
234
237
  {
235
238
  ...listProps,
236
239
  items,
@@ -1367,7 +1370,7 @@ function ConnectedSkillUpload({ onDone, labels, className }) {
1367
1370
  onChange: (e) => {
1368
1371
  const file = e.target.files?.[0];
1369
1372
  e.target.value = "";
1370
- if (file) void add(() => chunkHVOPUYAG_cjs.importSkillFile(file));
1373
+ if (file) void add(() => chunkCJF7B5A7_cjs.importSkillFile(file));
1371
1374
  }
1372
1375
  }
1373
1376
  ),
@@ -1392,7 +1395,7 @@ function ConnectedSkillUpload({ onDone, labels, className }) {
1392
1395
  className: "space-y-2",
1393
1396
  onSubmit: (e) => {
1394
1397
  e.preventDefault();
1395
- if (url.trim()) void add(() => chunkHVOPUYAG_cjs.importSkillFromUrl(url));
1398
+ if (url.trim()) void add(() => chunkCJF7B5A7_cjs.importSkillFromUrl(url));
1396
1399
  },
1397
1400
  children: [
1398
1401
  /* @__PURE__ */ jsxRuntime.jsx(ui.Label, { htmlFor: "skills-add-url", children: l.fromLink }),
@@ -1455,9 +1458,9 @@ function ConnectedSkillsLibrary({
1455
1458
  const [type, setType] = react$1.useState("all");
1456
1459
  const [view, setView] = react$1.useState("gallery");
1457
1460
  const [isBusy, setIsBusy] = react$1.useState(false);
1458
- const all = react$1.useMemo(() => chunkHVOPUYAG_cjs.buildLibrarySkills(builtins, listings ?? []), [builtins, listings]);
1461
+ const all = react$1.useMemo(() => chunkCJF7B5A7_cjs.buildLibrarySkills(builtins, listings ?? []), [builtins, listings]);
1459
1462
  const shown = react$1.useMemo(
1460
- () => chunkHVOPUYAG_cjs.filterLibrarySkills(all, { query, source, type }),
1463
+ () => chunkCJF7B5A7_cjs.filterLibrarySkills(all, { query, source, type }),
1461
1464
  [all, query, source, type]
1462
1465
  );
1463
1466
  const current = all.find((s) => s.slug === selected) ?? null;
@@ -1468,21 +1471,21 @@ function ConnectedSkillsLibrary({
1468
1471
  const count2 = (s) => all.filter((x) => x.source === s).length;
1469
1472
  const sourceOptions = [
1470
1473
  { id: "all", label: "All", count: all.length },
1471
- { id: "builtin", label: chunkHVOPUYAG_cjs.SKILL_SOURCE_LABELS.builtin, count: count2("builtin") },
1472
- { id: "mine", label: chunkHVOPUYAG_cjs.SKILL_SOURCE_LABELS.mine, count: count2("mine") },
1473
- { id: "shared", label: chunkHVOPUYAG_cjs.SKILL_SOURCE_LABELS.shared, count: count2("shared") }
1474
+ { id: "builtin", label: chunkCJF7B5A7_cjs.SKILL_SOURCE_LABELS.builtin, count: count2("builtin") },
1475
+ { id: "mine", label: chunkCJF7B5A7_cjs.SKILL_SOURCE_LABELS.mine, count: count2("mine") },
1476
+ { id: "shared", label: chunkCJF7B5A7_cjs.SKILL_SOURCE_LABELS.shared, count: count2("shared") }
1474
1477
  ];
1475
1478
  const types = [...new Set(all.map((s) => s.type))];
1476
1479
  const typeOptions = [
1477
1480
  { id: "all", label: "Any kind" },
1478
- ...types.map((t) => ({ id: t, label: chunkHVOPUYAG_cjs.SKILL_TYPE_LABELS[t] ?? t }))
1481
+ ...types.map((t) => ({ id: t, label: chunkCJF7B5A7_cjs.SKILL_TYPE_LABELS[t] ?? t }))
1479
1482
  ];
1480
1483
  const pick = (slug) => {
1481
1484
  setSelected(slug);
1482
1485
  setMode("detail");
1483
1486
  };
1484
1487
  const markdownOf = async (skill) => {
1485
- if (!skill.docExtId) return chunkHVOPUYAG_cjs.workflowToSkillMarkdown(skill.workflow);
1488
+ if (!skill.docExtId) return chunkCJF7B5A7_cjs.workflowToSkillMarkdown(skill.workflow);
1486
1489
  const response = await arbi.documents.download(skill.docExtId);
1487
1490
  if (!response.ok) throw new Error(`Could not read the skill (${response.status})`);
1488
1491
  return response.text();
@@ -1546,7 +1549,7 @@ function ConnectedSkillsLibrary({
1546
1549
  try {
1547
1550
  documentTools.downloadBlob(
1548
1551
  new Blob([await markdownOf(skill)], { type: "text/markdown" }),
1549
- chunkHVOPUYAG_cjs.SKILL_MAIN_FILENAME
1552
+ chunkCJF7B5A7_cjs.SKILL_MAIN_FILENAME
1550
1553
  );
1551
1554
  } catch (error) {
1552
1555
  notify16(errorText(error, "Could not export the skill"), "error");
@@ -1587,10 +1590,10 @@ function ConnectedSkillsLibrary({
1587
1590
  }
1588
1591
  )
1589
1592
  ] }),
1590
- /* @__PURE__ */ jsxRuntime.jsx(chunkHVOPUYAG_cjs.SkillViewToggle, { value: view, onChange: setView })
1593
+ /* @__PURE__ */ jsxRuntime.jsx(chunkCJF7B5A7_cjs.SkillViewToggle, { value: view, onChange: setView })
1591
1594
  ] }),
1592
1595
  /* @__PURE__ */ jsxRuntime.jsx(
1593
- chunkHVOPUYAG_cjs.SkillFilterChips,
1596
+ chunkCJF7B5A7_cjs.SkillFilterChips,
1594
1597
  {
1595
1598
  label: "Show",
1596
1599
  value: source,
@@ -1599,7 +1602,7 @@ function ConnectedSkillsLibrary({
1599
1602
  }
1600
1603
  ),
1601
1604
  types.length > 1 && /* @__PURE__ */ jsxRuntime.jsx(
1602
- chunkHVOPUYAG_cjs.SkillFilterChips,
1605
+ chunkCJF7B5A7_cjs.SkillFilterChips,
1603
1606
  {
1604
1607
  label: "Kind",
1605
1608
  value: type,
@@ -1646,12 +1649,12 @@ function ConnectedSkillsLibrary({
1646
1649
  view === "gallery" ? "grid grid-cols-[repeat(auto-fill,minmax(9.5rem,1fr))]" : "flex flex-col"
1647
1650
  ),
1648
1651
  children: shown.map((skill) => /* @__PURE__ */ jsxRuntime.jsx(
1649
- chunkHVOPUYAG_cjs.SkillTile,
1652
+ chunkCJF7B5A7_cjs.SkillTile,
1650
1653
  {
1651
1654
  name: skill.title,
1652
1655
  testId: `skill-tile-${skill.slug}`,
1653
1656
  description: skill.description,
1654
- sourceLabel: skill.isShared ? `${chunkHVOPUYAG_cjs.SKILL_SOURCE_LABELS.mine}, shared` : chunkHVOPUYAG_cjs.SKILL_SOURCE_LABELS[skill.source],
1657
+ sourceLabel: skill.isShared ? `${chunkCJF7B5A7_cjs.SKILL_SOURCE_LABELS.mine}, shared` : chunkCJF7B5A7_cjs.SKILL_SOURCE_LABELS[skill.source],
1655
1658
  type: skill.type,
1656
1659
  icon,
1657
1660
  layout: view,
@@ -1686,7 +1689,7 @@ function ConnectedSkillsLibrary({
1686
1689
  }
1687
1690
  ),
1688
1691
  mode === "new" && /* @__PURE__ */ jsxRuntime.jsx(
1689
- chunkHVOPUYAG_cjs.SkillGenerateForm,
1692
+ chunkCJF7B5A7_cjs.SkillGenerateForm,
1690
1693
  {
1691
1694
  icon,
1692
1695
  onGenerate: (desc) => {
@@ -1713,11 +1716,11 @@ function ConnectedSkillsLibrary({
1713
1716
  ),
1714
1717
  mode === "add" && /* @__PURE__ */ jsxRuntime.jsx(ConnectedSkillUpload, { onDone: done }),
1715
1718
  mode === "detail" && current && /* @__PURE__ */ jsxRuntime.jsx(
1716
- chunkHVOPUYAG_cjs.SkillLibraryDetail,
1719
+ chunkCJF7B5A7_cjs.SkillLibraryDetail,
1717
1720
  {
1718
1721
  skill: current,
1719
1722
  icon,
1720
- instructions: current.docExtId ? currentText ? chunkHVOPUYAG_cjs.parseSkillFrontmatter(currentText, chunkHVOPUYAG_cjs.SKILL_MAIN_FILENAME).content : "" : current.workflow.run.kind === "prompt" ? current.workflow.run.promptTemplate : "",
1723
+ instructions: current.docExtId ? currentText ? chunkCJF7B5A7_cjs.parseSkillFrontmatter(currentText, chunkCJF7B5A7_cjs.SKILL_MAIN_FILENAME).content : "" : current.workflow.run.kind === "prompt" ? current.workflow.run.promptTemplate : "",
1721
1724
  isLoading: !!current.docExtId && textLoading,
1722
1725
  actions: {
1723
1726
  onRun: () => onRun(current.slug),
@@ -1752,7 +1755,7 @@ function SkillEditor({
1752
1755
  const [seeded, setSeeded] = react$1.useState(!isEditing);
1753
1756
  const [nameError, setNameError] = react$1.useState(null);
1754
1757
  if (isEditing && !seeded && text2 !== void 0) {
1755
- const parsed = chunkHVOPUYAG_cjs.parseSkillFrontmatter(text2, chunkHVOPUYAG_cjs.SKILL_MAIN_FILENAME);
1758
+ const parsed = chunkCJF7B5A7_cjs.parseSkillFrontmatter(text2, chunkCJF7B5A7_cjs.SKILL_MAIN_FILENAME);
1756
1759
  setDescription(parsed.description ?? "");
1757
1760
  setBody(parsed.content ?? "");
1758
1761
  setSeeded(true);
@@ -1766,15 +1769,15 @@ function SkillEditor({
1766
1769
  notify16("Add a short description.", "error");
1767
1770
  return;
1768
1771
  }
1769
- const slug = chunkHVOPUYAG_cjs.skillSlug(name);
1772
+ const slug = chunkCJF7B5A7_cjs.skillSlug(name);
1770
1773
  try {
1771
- await onSave(slug, chunkHVOPUYAG_cjs.serializeSkill({ name: slug, description, body }), isEditing);
1774
+ await onSave(slug, chunkCJF7B5A7_cjs.serializeSkill({ name: slug, description, body }), isEditing);
1772
1775
  } catch (err) {
1773
1776
  notify16(errorText(err, "Could not save the skill"), "error");
1774
1777
  }
1775
1778
  };
1776
1779
  return /* @__PURE__ */ jsxRuntime.jsx(
1777
- chunkHVOPUYAG_cjs.SkillEditForm,
1780
+ chunkCJF7B5A7_cjs.SkillEditForm,
1778
1781
  {
1779
1782
  name,
1780
1783
  onNameChange: setName,
@@ -1813,7 +1816,7 @@ var DEFAULT_CONNECTED_SKILLS_BROWSER_LABELS = {
1813
1816
  function ConnectedSkillsBrowser({
1814
1817
  props,
1815
1818
  onClose: close,
1816
- builtins = chunkHVOPUYAG_cjs.BUILTIN_SKILLS,
1819
+ builtins = chunkCJF7B5A7_cjs.BUILTIN_SKILLS,
1817
1820
  renderEditor,
1818
1821
  labels
1819
1822
  }) {
@@ -1866,7 +1869,7 @@ function ConnectedSkillsBrowser({
1866
1869
  }
1867
1870
  ) }),
1868
1871
  runSkillId && /* @__PURE__ */ jsxRuntime.jsx(
1869
- chunkX3JJTHQ4_cjs.ConnectedTaskComposer,
1872
+ chunkJSHBC47B_cjs.ConnectedTaskComposer,
1870
1873
  {
1871
1874
  kind: "workflow",
1872
1875
  open: true,
@@ -1890,9 +1893,9 @@ function ConnectedAgentCreator({
1890
1893
  agent,
1891
1894
  initialName,
1892
1895
  onSaved,
1893
- capabilities = chunkHVOPUYAG_cjs.DEFAULT_AGENT_CAPABILITIES,
1894
- templates = chunkHVOPUYAG_cjs.DEFAULT_AGENT_TEMPLATES,
1895
- types = chunkHVOPUYAG_cjs.DEFAULT_AGENT_TYPES,
1896
+ capabilities = chunkCJF7B5A7_cjs.DEFAULT_AGENT_CAPABILITIES,
1897
+ templates = chunkCJF7B5A7_cjs.DEFAULT_AGENT_TEMPLATES,
1898
+ types = chunkCJF7B5A7_cjs.DEFAULT_AGENT_TYPES,
1896
1899
  canRevokeWorkspaces = false,
1897
1900
  labels
1898
1901
  }) {
@@ -1934,7 +1937,7 @@ function ConnectedAgentCreator({
1934
1937
  const initialValues = react$1.useMemo(
1935
1938
  () => ({
1936
1939
  name: agent?.given_name ?? initialName ?? "",
1937
- persona: isEdit ? chunkHVOPUYAG_cjs.stripPersonaPreamble(String(agents.PERSONA ?? "")) : "",
1940
+ persona: isEdit ? chunkCJF7B5A7_cjs.stripPersonaPreamble(String(agents.PERSONA ?? "")) : "",
1938
1941
  modelName: String(agents.AGENT_MODEL_NAME ?? ""),
1939
1942
  capabilities: Object.fromEntries(capabilities.map(({ key }) => [key, Boolean(agents[key])])),
1940
1943
  type: "builtin",
@@ -1953,7 +1956,7 @@ function ConnectedAgentCreator({
1953
1956
  try {
1954
1957
  let agentExtId = agent?.external_id ?? early?.id ?? "";
1955
1958
  if (!agentExtId) {
1956
- if (!chunkHVOPUYAG_cjs.isValidAgentName(values.name)) {
1959
+ if (!chunkCJF7B5A7_cjs.isValidAgentName(values.name)) {
1957
1960
  notify16("Give the agent a name first.", "error");
1958
1961
  return;
1959
1962
  }
@@ -1989,7 +1992,7 @@ function ConnectedAgentCreator({
1989
1992
  title: `agent-${name}`,
1990
1993
  sections: {
1991
1994
  Agents: {
1992
- PERSONA: chunkHVOPUYAG_cjs.composePersona(name, values.persona),
1995
+ PERSONA: chunkCJF7B5A7_cjs.composePersona(name, values.persona),
1993
1996
  ...values.modelName ? { AGENT_MODEL_NAME: values.modelName } : {},
1994
1997
  ...Object.fromEntries(capabilities.map(({ key }) => [key, !!values.capabilities[key]])),
1995
1998
  ENABLED_SKILLS: values.capabilities.SKILLS_ENABLED && skills.length ? skills : null,
@@ -2012,7 +2015,7 @@ function ConnectedAgentCreator({
2012
2015
  };
2013
2016
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
2014
2017
  /* @__PURE__ */ jsxRuntime.jsx(
2015
- chunkHVOPUYAG_cjs.AgentCreator,
2018
+ chunkCJF7B5A7_cjs.AgentCreator,
2016
2019
  {
2017
2020
  open: ready,
2018
2021
  onOpenChange,
@@ -2028,11 +2031,11 @@ function ConnectedAgentCreator({
2028
2031
  ) : void 0,
2029
2032
  revokingWorkspaceId: revokeAccess.isPending ? revokeAccess.variables?.workspaceId : void 0,
2030
2033
  avatar: (values) => /* @__PURE__ */ jsxRuntime.jsx(
2031
- chunkHVOPUYAG_cjs.AgentAvatarField,
2034
+ chunkCJF7B5A7_cjs.AgentAvatarField,
2032
2035
  {
2033
2036
  picture,
2034
2037
  isBusy: avatarBusy,
2035
- canGenerate: isEdit || chunkHVOPUYAG_cjs.isValidAgentName(values.name),
2038
+ canGenerate: isEdit || chunkCJF7B5A7_cjs.isValidAgentName(values.name),
2036
2039
  onGenerate: () => handleGenerateAvatar(values)
2037
2040
  }
2038
2041
  ),
@@ -2084,7 +2087,7 @@ function ConnectedAgentCreator({
2084
2087
  /* @__PURE__ */ jsxRuntime.jsx(ui.DialogTitle, { children: "Connect your agent" }),
2085
2088
  /* @__PURE__ */ jsxRuntime.jsx(ui.DialogDescription, { children: "This key is shown once. Run the script on the machine that will host the agent." })
2086
2089
  ] }),
2087
- connect && /* @__PURE__ */ jsxRuntime.jsx(chunkHVOPUYAG_cjs.AgentConnectInstructions, { email: connect.email, signingKey: connect.signingKey })
2090
+ connect && /* @__PURE__ */ jsxRuntime.jsx(chunkCJF7B5A7_cjs.AgentConnectInstructions, { email: connect.email, signingKey: connect.signingKey })
2088
2091
  ]
2089
2092
  }
2090
2093
  ) })
@@ -2533,7 +2536,7 @@ function useMemoryCount(enabled) {
2533
2536
  }
2534
2537
  function AgentsTasks({ tasks, isLoading, agents, labels: l, onCompose }) {
2535
2538
  const { notify: notify16, openConversation, openDocument } = chunkT6GRWWRY_cjs.useBlocksEnvironment();
2536
- const people = chunkX3JJTHQ4_cjs.useTaskPeople();
2539
+ const people = chunkJSHBC47B_cjs.useTaskPeople();
2537
2540
  const canEditShared = react.useCanEditShared();
2538
2541
  const isWorkspaceOwner = react.useIsWorkspaceOwner();
2539
2542
  const { data: workflows = [] } = react.useWorkflows({ live: true });
@@ -2559,7 +2562,7 @@ function AgentsTasks({ tasks, isLoading, agents, labels: l, onCompose }) {
2559
2562
  }, [documents]);
2560
2563
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
2561
2564
  /* @__PURE__ */ jsxRuntime.jsx(
2562
- chunkHVOPUYAG_cjs.TaskTable,
2565
+ chunkCJF7B5A7_cjs.TaskTable,
2563
2566
  {
2564
2567
  tasks,
2565
2568
  isLoading,
@@ -2586,7 +2589,7 @@ function AgentsTasks({ tasks, isLoading, agents, labels: l, onCompose }) {
2586
2589
  }
2587
2590
  ),
2588
2591
  activityFor && /* @__PURE__ */ jsxRuntime.jsx(
2589
- chunkX3JJTHQ4_cjs.ConnectedTaskActivityDialog,
2592
+ chunkJSHBC47B_cjs.ConnectedTaskActivityDialog,
2590
2593
  {
2591
2594
  conversationId: activityFor.external_id,
2592
2595
  taskName: activityFor.title || l.untitledTask,
@@ -2608,7 +2611,7 @@ function AgentsLauncher({
2608
2611
  const { notify: notify16, openConversation } = chunkT6GRWWRY_cjs.useBlocksEnvironment();
2609
2612
  const { workspaceId, ensureWorkspaceOpen } = chunkKGAYUFXD_cjs.useConnectedWorkspace();
2610
2613
  const { data: skills = [] } = react.useSkills({ enabled: includeSkills && !!workspaceId, live: true });
2611
- const workflowTasks = chunkX3JJTHQ4_cjs.useWorkflowTasks();
2614
+ const workflowTasks = chunkJSHBC47B_cjs.useWorkflowTasks();
2612
2615
  const launchable = react$1.useMemo(
2613
2616
  () => [
2614
2617
  ...workflows,
@@ -2631,7 +2634,7 @@ function AgentsLauncher({
2631
2634
  [workflows, includeSkills, skills, l.skillFiles]
2632
2635
  );
2633
2636
  const launch = async ({ workflow, inputs, agentId }) => {
2634
- const values = chunkHVOPUYAG_cjs.defaultTaskComposerValues(launchable, {
2637
+ const values = chunkCJF7B5A7_cjs.defaultTaskComposerValues(launchable, {
2635
2638
  workflowId: workflow.id,
2636
2639
  assignee: "agent",
2637
2640
  inputs,
@@ -2652,7 +2655,7 @@ function AgentsLauncher({
2652
2655
  }
2653
2656
  };
2654
2657
  return /* @__PURE__ */ jsxRuntime.jsx(
2655
- chunkUDMII47W_cjs.ConnectedWorkflowLauncher,
2658
+ chunkWBLCPCWR_cjs.ConnectedWorkflowLauncher,
2656
2659
  {
2657
2660
  workflows: launchable,
2658
2661
  onLaunch: launch,
@@ -2755,7 +2758,7 @@ function ConnectedAgentsPage({
2755
2758
  labels: agentOptions.managementLabels
2756
2759
  });
2757
2760
  const { agents, isLoading: agentsLoading } = management;
2758
- const tasksByAgent = react$1.useMemo(() => chunkHVOPUYAG_cjs.groupAgentTasks(tasks), [tasks]);
2761
+ const tasksByAgent = react$1.useMemo(() => chunkCJF7B5A7_cjs.groupAgentTasks(tasks), [tasks]);
2759
2762
  const behaviour = useAgentBehaviour(
2760
2763
  l.defaultBehaviour,
2761
2764
  details.includes("behaviour") || sections.includes("stats")
@@ -2780,7 +2783,7 @@ function ConnectedAgentsPage({
2780
2783
  renderDetails?.(agent)
2781
2784
  ] });
2782
2785
  const gallery = /* @__PURE__ */ jsxRuntime.jsx(
2783
- chunkHVOPUYAG_cjs.AgentGallery,
2786
+ chunkCJF7B5A7_cjs.AgentGallery,
2784
2787
  {
2785
2788
  count: agents.length,
2786
2789
  onCreate: management.create,
@@ -2790,10 +2793,10 @@ function ConnectedAgentsPage({
2790
2793
  const agentTasks = tasksByAgent.get(agent.external_id) ?? [];
2791
2794
  const running = agentTasks.filter((t) => t.in_progress);
2792
2795
  const watchConversationId = running[0]?.external_id ?? null;
2793
- const progress = agentTasks[0] ? chunkHVOPUYAG_cjs.goalProgress(agentTasks[0]) : null;
2796
+ const progress = agentTasks[0] ? chunkCJF7B5A7_cjs.goalProgress(agentTasks[0]) : null;
2794
2797
  const name = displayName(agent);
2795
2798
  return /* @__PURE__ */ jsxRuntime.jsx(
2796
- chunkHVOPUYAG_cjs.AgentCard,
2799
+ chunkCJF7B5A7_cjs.AgentCard,
2797
2800
  {
2798
2801
  name,
2799
2802
  avatar: avatar === "icon" ? /* @__PURE__ */ jsxRuntime.jsx(AgentIconAvatar, {}) : /* @__PURE__ */ jsxRuntime.jsx(AgentInitialsAvatar, { agent }),
@@ -2892,7 +2895,7 @@ function ConnectedAgentsPage({
2892
2895
  ) });
2893
2896
  case "scheduled":
2894
2897
  return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex h-[min(32rem,70dvh)] min-h-64 flex-col", children: /* @__PURE__ */ jsxRuntime.jsx(
2895
- chunkUDMII47W_cjs.ConnectedWorkflowsTable,
2898
+ chunkWBLCPCWR_cjs.ConnectedWorkflowsTable,
2896
2899
  {
2897
2900
  filter: "scheduled",
2898
2901
  onEdit: (w) => openWorkflow?.(w.external_id),
@@ -2920,7 +2923,7 @@ function ConnectedAgentsPage({
2920
2923
  const dialogs = /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
2921
2924
  /* @__PURE__ */ jsxRuntime.jsx(ConnectedAgentCreator, { ...management.editorProps, ...agentOptions.creator }),
2922
2925
  taskDialog && /* @__PURE__ */ jsxRuntime.jsx(
2923
- chunkX3JJTHQ4_cjs.ConnectedTaskComposer,
2926
+ chunkJSHBC47B_cjs.ConnectedTaskComposer,
2924
2927
  {
2925
2928
  open: true,
2926
2929
  onOpenChange: (open) => !open && setTaskDialog(null),
@@ -3220,7 +3223,7 @@ function ConnectedTagTable({
3220
3223
  const fail2 = (fallback) => (e) => notify16(browser.refusalReason(e, fallback), "error");
3221
3224
  const snapshot2 = (data) => {
3222
3225
  const title = exportTitle ?? ui.tagKindTitle(kind, { plural: true });
3223
- const bytes = chunk4RJPTXUQ_cjs.tagTableDocx(data, {
3226
+ const bytes = chunk7MOQO6NO_cjs.tagTableDocx(data, {
3224
3227
  title,
3225
3228
  nameOf: (id) => people.find((p) => p.value === id)?.label
3226
3229
  });
@@ -3229,7 +3232,7 @@ function ConnectedTagTable({
3229
3232
  return { blob: new Blob([bytes], { type: chunkJIOHDVWH_cjs.DOCX_MIME_TYPE }), name };
3230
3233
  };
3231
3234
  return /* @__PURE__ */ jsxRuntime.jsx(
3232
- chunk4RJPTXUQ_cjs.TagTable,
3235
+ chunk7MOQO6NO_cjs.TagTable,
3233
3236
  {
3234
3237
  ...props,
3235
3238
  table,
@@ -3367,9 +3370,9 @@ function GlossaryExport({ labelId, nameOf }) {
3367
3370
  const narrowed = agreements.find((a) => a.id === narrowTo);
3368
3371
  const title = narrowed ? `Glossary - ${narrowed.name}` : "Glossary";
3369
3372
  const download = (format) => {
3370
- const entries = chunk4RJPTXUQ_cjs.glossaryEntries(sources, { labelId: narrowed?.id });
3371
- const blob = format === "docx" ? new Blob([chunk4RJPTXUQ_cjs.glossaryDocx(entries, { title })], { type: chunkJIOHDVWH_cjs.DOCX_MIME_TYPE }) : new Blob([chunk4RJPTXUQ_cjs.glossaryMarkdown(entries, { title })], { type: "text/markdown" });
3372
- documentTools.downloadBlob(blob, chunk4RJPTXUQ_cjs.glossaryFileName(title, format));
3373
+ const entries = chunk7MOQO6NO_cjs.glossaryEntries(sources, { labelId: narrowed?.id });
3374
+ const blob = format === "docx" ? new Blob([chunk7MOQO6NO_cjs.glossaryDocx(entries, { title })], { type: chunkJIOHDVWH_cjs.DOCX_MIME_TYPE }) : new Blob([chunk7MOQO6NO_cjs.glossaryMarkdown(entries, { title })], { type: "text/markdown" });
3375
+ documentTools.downloadBlob(blob, chunk7MOQO6NO_cjs.glossaryFileName(title, format));
3373
3376
  };
3374
3377
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", "data-testid": "tags-glossary", children: [
3375
3378
  agreements.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs(
@@ -3914,7 +3917,7 @@ function KindSection({
3914
3917
  {
3915
3918
  testId: `tags-kind-${kind}`,
3916
3919
  title: ui.tagKindTitle(kind, { plural: true }),
3917
- description: chunk4RJPTXUQ_cjs.tagKindDescription(kind),
3920
+ description: chunk7MOQO6NO_cjs.tagKindDescription(kind),
3918
3921
  actions: picker,
3919
3922
  children: [
3920
3923
  browser.isEntityTag({ kind }) && extractingCount > 0 && /* @__PURE__ */ jsxRuntime.jsxs(
@@ -3925,9 +3928,9 @@ function KindSection({
3925
3928
  children: [
3926
3929
  /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Loader2, { className: "size-4 animate-spin" }),
3927
3930
  "Extracting ",
3928
- chunk4RJPTXUQ_cjs.entitiesPhrase().toLowerCase(),
3931
+ chunk7MOQO6NO_cjs.entitiesPhrase().toLowerCase(),
3929
3932
  " from ",
3930
- chunk4RJPTXUQ_cjs.documentCount(extractingCount),
3933
+ chunk7MOQO6NO_cjs.documentCount(extractingCount),
3931
3934
  "\u2026"
3932
3935
  ]
3933
3936
  }
@@ -3945,7 +3948,7 @@ function KindSection({
3945
3948
  onOpenDocument: (id) => openDocument(id),
3946
3949
  onOpenFact: ctx.onOpenFact,
3947
3950
  onOpenThread: (id) => openConversation(id),
3948
- labels: chunk4RJPTXUQ_cjs.tagTableLabels(kind),
3951
+ labels: chunk7MOQO6NO_cjs.tagTableLabels(kind),
3949
3952
  testId: `tags-table-${kind}`
3950
3953
  }
3951
3954
  )
@@ -4047,12 +4050,12 @@ function TagSection({
4047
4050
  onOpenDocument: (id) => openDocument(id),
4048
4051
  onOpenFact: ctx.onOpenFact,
4049
4052
  onOpenThread: (id) => openConversation(id),
4050
- labels: chunk4RJPTXUQ_cjs.tagTableLabels(tag.kind),
4053
+ labels: chunk7MOQO6NO_cjs.tagTableLabels(tag.kind),
4051
4054
  testId: "tags-rows"
4052
4055
  }
4053
4056
  ),
4054
4057
  /* @__PURE__ */ jsxRuntime.jsx(
4055
- chunk4RJPTXUQ_cjs.TagDetail,
4058
+ chunk7MOQO6NO_cjs.TagDetail,
4056
4059
  {
4057
4060
  row: detailRow && narrowTagRow(detailRow, ctx.filter.matches),
4058
4061
  fields: schema.data?.fields ?? [],
@@ -4064,10 +4067,10 @@ function TagSection({
4064
4067
  onOpenDocument: (id) => openDocument(id),
4065
4068
  onOpenFact: ctx.onOpenFact,
4066
4069
  onOpenThread: (id) => openConversation(id),
4067
- noteLabel: chunk4RJPTXUQ_cjs.tagNoteLabel(tag.kind),
4070
+ noteLabel: chunk7MOQO6NO_cjs.tagNoteLabel(tag.kind),
4068
4071
  noteIsValue: tag.kind === "annotation",
4069
4072
  renderPassages: (d, label) => renderPassages(d.doc_ext_id, label),
4070
- labels: chunk4RJPTXUQ_cjs.tagDetailLabels(),
4073
+ labels: chunk7MOQO6NO_cjs.tagDetailLabels(),
4071
4074
  testId: "tags-detail"
4072
4075
  }
4073
4076
  )
@@ -4155,7 +4158,7 @@ function ConnectedTagsPage({
4155
4158
  const onDelete = async (t) => {
4156
4159
  const nested = browser.getChildTags([...tags], t.external_id);
4157
4160
  const uses = browser.tagUseCount(t);
4158
- const n2 = chunk4RJPTXUQ_cjs.tagsPageNouns();
4161
+ const n2 = chunk7MOQO6NO_cjs.tagsPageNouns();
4159
4162
  const tagNoun = (count2) => (count2 === 1 ? n2.tag : n2.tags).toLowerCase();
4160
4163
  const carriers = uses === 1 ? `${n2.document}, ${n2.fact} or ${n2.thread}` : `${n2.documents}, ${n2.facts} and ${n2.threads}`;
4161
4164
  const message = `Delete ${ui.tagKindNouns(t.kind).singular} "${t.name}"?` + (uses > 0 ? `
@@ -4176,16 +4179,16 @@ ${nested.length} nested ${tagNoun(nested.length)} ${nested.length === 1 ? "moves
4176
4179
  try {
4177
4180
  await extract.mutateAsync(docIds);
4178
4181
  notify16(
4179
- `Extracting ${chunk4RJPTXUQ_cjs.entitiesPhrase().toLowerCase()} from ${chunk4RJPTXUQ_cjs.documentCount(docIds.length)}. You will be notified when it is done.`,
4182
+ `Extracting ${chunk7MOQO6NO_cjs.entitiesPhrase().toLowerCase()} from ${chunk7MOQO6NO_cjs.documentCount(docIds.length)}. You will be notified when it is done.`,
4180
4183
  "info"
4181
4184
  );
4182
4185
  } catch (error) {
4183
- notify16(browser.refusalReason(error, `Could not extract ${chunk4RJPTXUQ_cjs.entitiesPhrase().toLowerCase()}`), "error");
4186
+ notify16(browser.refusalReason(error, `Could not extract ${chunk7MOQO6NO_cjs.entitiesPhrase().toLowerCase()}`), "error");
4184
4187
  throw error;
4185
4188
  }
4186
4189
  };
4187
4190
  const picker = /* @__PURE__ */ jsxRuntime.jsx(
4188
- chunk4RJPTXUQ_cjs.TagPicker,
4191
+ chunk7MOQO6NO_cjs.TagPicker,
4189
4192
  {
4190
4193
  tags: viewTags,
4191
4194
  selectedId: tag?.external_id,
@@ -4199,10 +4202,10 @@ ${nested.length} nested ${tagNoun(nested.length)} ${nested.length === 1 ? "moves
4199
4202
  onOpenTag: openTag,
4200
4203
  onOpenFact
4201
4204
  };
4202
- const n = chunk4RJPTXUQ_cjs.tagsPageNouns();
4205
+ const n = chunk7MOQO6NO_cjs.tagsPageNouns();
4203
4206
  const action = view === "person" || view === "organisation" ? {
4204
4207
  label: "Extract",
4205
- title: `Extract ${chunk4RJPTXUQ_cjs.entitiesPhrase().toLowerCase()} from ${n.documents.toLowerCase()}`,
4208
+ title: `Extract ${chunk7MOQO6NO_cjs.entitiesPhrase().toLowerCase()} from ${n.documents.toLowerCase()}`,
4206
4209
  icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Sparkles, { className: "h-4 w-4" }),
4207
4210
  run: () => setExtracting(true),
4208
4211
  testId: "tags-extract-entities"
@@ -4352,7 +4355,7 @@ ${nested.length} nested ${tagNoun(nested.length)} ${nested.length === 1 ? "moves
4352
4355
  }
4353
4356
  ),
4354
4357
  /* @__PURE__ */ jsxRuntime.jsx(
4355
- chunk4RJPTXUQ_cjs.ExtractEntitiesDialog,
4358
+ chunk7MOQO6NO_cjs.ExtractEntitiesDialog,
4356
4359
  {
4357
4360
  open: extracting,
4358
4361
  onOpenChange: setExtracting,
@@ -6355,7 +6358,7 @@ function ConnectedFactsPage({
6355
6358
  onNewFact: composing && !editingId ? () => void 0 : composer.startNewFact,
6356
6359
  navSlotRef: setNavSlot,
6357
6360
  navigator: view === "table" ? /* @__PURE__ */ jsxRuntime.jsx(
6358
- chunk4RJPTXUQ_cjs.GridRowNavigator,
6361
+ chunk7MOQO6NO_cjs.GridRowNavigator,
6359
6362
  {
6360
6363
  gridApi,
6361
6364
  selectedId: editingId,
@@ -6760,7 +6763,7 @@ function ConnectedPasswordChangeDialog({
6760
6763
  onRecoveryComplete
6761
6764
  }) {
6762
6765
  const { notify: notify16 } = chunkT6GRWWRY_cjs.useBlocksEnvironment();
6763
- const getUnmetRequirement = chunk3X37I6QE_cjs.useAuthPages().passwordRules.unmet;
6766
+ const getUnmetRequirement = chunkDJE2E7YH_cjs.useAuthPages().passwordRules.unmet;
6764
6767
  const change = react.usePasswordChange();
6765
6768
  const form = react.usePasswordChangeForm({
6766
6769
  recoveryMode,
@@ -6987,7 +6990,7 @@ function ConnectedDangerZone({ renderSubscriptionLink }) {
6987
6990
  function ConnectedSsoDisconnect() {
6988
6991
  const { client } = react.useAccountClient();
6989
6992
  const { data: profile } = react.useProfile();
6990
- const auth = chunk3X37I6QE_cjs.useAuthPages();
6993
+ const auth = chunkDJE2E7YH_cjs.useAuthPages();
6991
6994
  const { notify: notify16 } = chunkT6GRWWRY_cjs.useBlocksEnvironment();
6992
6995
  const [open, setOpen] = react$1.useState(false);
6993
6996
  const [step, setStep] = react$1.useState("email");
@@ -8825,7 +8828,7 @@ function AppearanceSection({
8825
8828
  description,
8826
8829
  testId: appearance ? "settings-appearance-theme" : "settings-appearance",
8827
8830
  children: /* @__PURE__ */ jsxRuntime.jsx(
8828
- chunkN5WJBQYF_cjs.ThemeEditor,
8831
+ chunkAESJLGMC_cjs.ThemeEditor,
8829
8832
  {
8830
8833
  bundle: theme,
8831
8834
  variant: "collapsed",
@@ -9793,7 +9796,7 @@ function ConnectedPeopleMultiSelect({
9793
9796
  identity: /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
9794
9797
  selected.user ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
9795
9798
  /* @__PURE__ */ jsxRuntime.jsx(
9796
- chunk3X37I6QE_cjs.ConnectedUserEntity,
9799
+ chunkDJE2E7YH_cjs.ConnectedUserEntity,
9797
9800
  {
9798
9801
  user: selected.user,
9799
9802
  size: "xs",
@@ -9821,7 +9824,7 @@ function ConnectedPeopleMultiSelect({
9821
9824
  }
9822
9825
  ),
9823
9826
  person.user ? /* @__PURE__ */ jsxRuntime.jsx(
9824
- chunk3X37I6QE_cjs.ConnectedUserEntity,
9827
+ chunkDJE2E7YH_cjs.ConnectedUserEntity,
9825
9828
  {
9826
9829
  user: person.user,
9827
9830
  size: "xs",
@@ -10094,13 +10097,13 @@ function ConnectedWorkspaceSettings({
10094
10097
  const [membersExpanded, setMembersExpanded] = react$1.useState(false);
10095
10098
  const [shareOpen, setShareOpen] = react$1.useState(false);
10096
10099
  if (!workspace) {
10097
- return /* @__PURE__ */ jsxRuntime.jsx(chunk2GSZG6KA_cjs.PageLoading, { children: /* @__PURE__ */ jsxRuntime.jsx(chunk4RJPTXUQ_cjs.LoadingIndicator, { message: "Loading workspace..." }) });
10100
+ return /* @__PURE__ */ jsxRuntime.jsx(chunk2GSZG6KA_cjs.PageLoading, { children: /* @__PURE__ */ jsxRuntime.jsx(chunk7MOQO6NO_cjs.LoadingIndicator, { message: "Loading workspace..." }) });
10098
10101
  }
10099
10102
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
10100
10103
  /* @__PURE__ */ jsxRuntime.jsxs(chunk2GSZG6KA_cjs.WorkspacePageFrame, { testId, children: [
10101
10104
  /* @__PURE__ */ jsxRuntime.jsxs(chunk2GSZG6KA_cjs.WorkspaceIdentityPanel, { children: [
10102
10105
  /* @__PURE__ */ jsxRuntime.jsx(
10103
- chunk4RJPTXUQ_cjs.EntityIdentityBar,
10106
+ chunk7MOQO6NO_cjs.EntityIdentityBar,
10104
10107
  {
10105
10108
  testId: "workspace-identity-bar",
10106
10109
  canEdit: isOwner,
@@ -10117,7 +10120,7 @@ function ConnectedWorkspaceSettings({
10117
10120
  label: "Name",
10118
10121
  value: workspace.name,
10119
10122
  placeholder: "Untitled",
10120
- maxLength: chunk4RJPTXUQ_cjs.IDENTITY_NAME_MAX_LENGTH,
10123
+ maxLength: chunk7MOQO6NO_cjs.IDENTITY_NAME_MAX_LENGTH,
10121
10124
  valueClassName: "truncate text-base font-semibold",
10122
10125
  testId: "workspace-home-title",
10123
10126
  hideLabel: true,
@@ -10971,7 +10974,7 @@ function StripeCheckoutModal({
10971
10974
  const [clientSecret, setClientSecret] = react$1.useState(null);
10972
10975
  const [isCreating, setIsCreating] = react$1.useState(false);
10973
10976
  const [stripe, setStripe] = react$1.useState(null);
10974
- const { stripeEnabled, checkout } = chunkCCSF7RI4_cjs.useBillingSupport();
10977
+ const { stripeEnabled, checkout } = chunkEG3BB32W_cjs.useBillingSupport();
10975
10978
  const createCheckout = react.useCreateProjectCheckout();
10976
10979
  const refreshProject = react.useRefreshProject();
10977
10980
  const invalidateProjects = react.useInvalidateProjects();
@@ -10998,7 +11001,7 @@ function StripeCheckoutModal({
10998
11001
  projectExtId,
10999
11002
  body: {
11000
11003
  interval,
11001
- packs: chunkCCSF7RI4_cjs.PRO_PACKS,
11004
+ packs: chunkEG3BB32W_cjs.PRO_PACKS,
11002
11005
  ai_blocks: aiBlocks,
11003
11006
  storage_blocks: storageBlocks,
11004
11007
  addon_budget_pence: addonBudgetPence,
@@ -11014,7 +11017,7 @@ function StripeCheckoutModal({
11014
11017
  },
11015
11018
  onError: (error) => {
11016
11019
  console.error("Failed to create checkout session:", error);
11017
- const reason = chunkCCSF7RI4_cjs.apiErrorDetail(error)?.message;
11020
+ const reason = chunkEG3BB32W_cjs.apiErrorDetail(error)?.message;
11018
11021
  shell.notify.error(
11019
11022
  reason ? `Checkout didn't start: ${reason}` : "Checkout didn't start. Try again."
11020
11023
  );
@@ -11047,7 +11050,7 @@ function StripeCheckoutModal({
11047
11050
  }
11048
11051
  }, [open]);
11049
11052
  const isStripeConfigured = stripeEnabled;
11050
- const vatNote = quote ? `${chunkCCSF7RI4_cjs.checkoutItemsLabel(aiBlocks, storageBlocks)} \xB7 ${chunkCCSF7RI4_cjs.quoteTotalLine(quote)}` : null;
11053
+ const vatNote = quote ? `${chunkEG3BB32W_cjs.checkoutItemsLabel(aiBlocks, storageBlocks)} \xB7 ${chunkEG3BB32W_cjs.quoteTotalLine(quote)}` : null;
11051
11054
  return /* @__PURE__ */ jsxRuntime.jsx(
11052
11055
  chunkJBL4PPEE_cjs.CheckoutDialogFrame,
11053
11056
  {
@@ -11101,31 +11104,31 @@ function defaultBillingCountry(languages = typeof navigator === "undefined" ? []
11101
11104
  }
11102
11105
  var choiceForPacks = (packs) => packs > 0 ? "pro" : "free";
11103
11106
  function proCard(selected, isAnnual, prices) {
11104
- const packs = chunkCCSF7RI4_cjs.PLAN_CHOICE_PACKS.pro;
11107
+ const packs = chunkEG3BB32W_cjs.PLAN_CHOICE_PACKS.pro;
11105
11108
  const currency = prices.monthly?.currency ?? prices.annual?.currency ?? "gbp";
11106
- const monthly = chunkCCSF7RI4_cjs.packPrice(prices.monthly, packs);
11107
- const annual = chunkCCSF7RI4_cjs.packPrice(prices.annual, packs);
11109
+ const monthly = chunkEG3BB32W_cjs.packPrice(prices.monthly, packs);
11110
+ const annual = chunkEG3BB32W_cjs.packPrice(prices.annual, packs);
11108
11111
  const current = isAnnual ? annual : monthly;
11109
11112
  const effectiveMonthly = current ? isAnnual ? current.amount_ex_vat / 12 : current.amount_ex_vat : null;
11110
11113
  return {
11111
11114
  id: packs,
11112
- name: chunkCCSF7RI4_cjs.planNameForPacks(packs),
11115
+ name: chunkEG3BB32W_cjs.planNameForPacks(packs),
11113
11116
  isSelected: selected === "pro",
11114
11117
  price: current && effectiveMonthly != null ? {
11115
11118
  annual: isAnnual,
11116
- yearlyStrike: isAnnual && monthly && monthly.amount_ex_vat * 12 > current.amount_ex_vat ? chunkCCSF7RI4_cjs.formatMoney(monthly.amount_ex_vat * 12, currency) : void 0,
11117
- yearlyTotal: isAnnual ? chunkCCSF7RI4_cjs.formatMoney(current.amount_ex_vat, currency) : void 0,
11119
+ yearlyStrike: isAnnual && monthly && monthly.amount_ex_vat * 12 > current.amount_ex_vat ? chunkEG3BB32W_cjs.formatMoney(monthly.amount_ex_vat * 12, currency) : void 0,
11120
+ yearlyTotal: isAnnual ? chunkEG3BB32W_cjs.formatMoney(current.amount_ex_vat, currency) : void 0,
11118
11121
  intervalLabel: isAnnual ? "/yr + VAT" : "/mo",
11119
- monthly: chunkCCSF7RI4_cjs.formatMoney(Math.round(effectiveMonthly), currency),
11122
+ monthly: chunkEG3BB32W_cjs.formatMoney(Math.round(effectiveMonthly), currency),
11120
11123
  taxLabel: "+ VAT",
11121
11124
  // The inclusive figure for a UK customer, right under the headline.
11122
- note: `${chunkCCSF7RI4_cjs.formatMoney(current.amount, currency)}${isAnnual ? "/yr" : "/mo"} incl. UK VAT`
11125
+ note: `${chunkEG3BB32W_cjs.formatMoney(current.amount, currency)}${isAnnual ? "/yr" : "/mo"} incl. UK VAT`
11123
11126
  } : void 0,
11124
11127
  features: [
11125
- `${react.formatGbp(chunkCCSF7RI4_cjs.PRO_AI_GBP)} of AI usage / month`,
11126
- `${chunkCCSF7RI4_cjs.PRO_STORAGE_GB} GB storage`,
11128
+ `${react.formatGbp(chunkEG3BB32W_cjs.PRO_AI_GBP)} of AI usage / month`,
11129
+ `${chunkEG3BB32W_cjs.PRO_STORAGE_GB} GB storage`,
11127
11130
  "Unlimited collaborators",
11128
- ...isAnnual ? [chunkCCSF7RI4_cjs.ANNUAL_PREMIUM_AI_NOTE] : []
11131
+ ...isAnnual ? [chunkEG3BB32W_cjs.ANNUAL_PREMIUM_AI_NOTE] : []
11129
11132
  ]
11130
11133
  };
11131
11134
  }
@@ -11137,9 +11140,9 @@ function buildPlanCards(selected, isAnnual, prices, isOnFree) {
11137
11140
  isCurrent: isOnFree,
11138
11141
  isSelected: selected === "free" && !isOnFree,
11139
11142
  features: [
11140
- `${react.formatGbp(chunkCCSF7RI4_cjs.FREE_AI_GBP)} of AI usage / month`,
11141
- `${chunkCCSF7RI4_cjs.FREE_STORAGE_MB.toLocaleString("en-US")} MB storage`,
11142
- chunkCCSF7RI4_cjs.FREE_COLLABORATORS === 0 ? "Just you" : `${chunkCCSF7RI4_cjs.FREE_COLLABORATORS} collaborators`
11143
+ `${react.formatGbp(chunkEG3BB32W_cjs.FREE_AI_GBP)} of AI usage / month`,
11144
+ `${chunkEG3BB32W_cjs.FREE_STORAGE_MB.toLocaleString("en-US")} MB storage`,
11145
+ chunkEG3BB32W_cjs.FREE_COLLABORATORS === 0 ? "Just you" : `${chunkEG3BB32W_cjs.FREE_COLLABORATORS} collaborators`
11143
11146
  ]
11144
11147
  };
11145
11148
  return [free, proCard(selected, isAnnual, prices)];
@@ -11167,7 +11170,7 @@ function CheckoutAddonBudget({
11167
11170
  value,
11168
11171
  onChange
11169
11172
  }) {
11170
- const budget = chunkCCSF7RI4_cjs.parseBudgetPounds(value);
11173
+ const budget = chunkEG3BB32W_cjs.parseBudgetPounds(value);
11171
11174
  return /* @__PURE__ */ jsxRuntime.jsxs(
11172
11175
  "div",
11173
11176
  {
@@ -11190,7 +11193,7 @@ function CheckoutAddonBudget({
11190
11193
  step: 25,
11191
11194
  className: "h-8 w-24",
11192
11195
  value,
11193
- placeholder: String(chunkCCSF7RI4_cjs.DEFAULT_SPEND_CAP_PENCE / 100),
11196
+ placeholder: String(chunkEG3BB32W_cjs.DEFAULT_SPEND_CAP_PENCE / 100),
11194
11197
  onChange: (e) => onChange(e.target.value),
11195
11198
  "aria-invalid": budget === void 0,
11196
11199
  "data-testid": "checkout-addon-budget-input"
@@ -11208,7 +11211,7 @@ function BlockStepper({
11208
11211
  onChange,
11209
11212
  testId
11210
11213
  }) {
11211
- const set = (n) => onChange(Math.max(0, Math.min(chunkCCSF7RI4_cjs.MAX_CHECKOUT_BLOCKS, n)));
11214
+ const set = (n) => onChange(Math.max(0, Math.min(chunkEG3BB32W_cjs.MAX_CHECKOUT_BLOCKS, n)));
11212
11215
  return /* @__PURE__ */ jsxRuntime.jsxs(
11213
11216
  "div",
11214
11217
  {
@@ -11252,7 +11255,7 @@ function BlockStepper({
11252
11255
  className: "size-8",
11253
11256
  "aria-label": `More: ${label}`,
11254
11257
  onClick: () => set(value + 1),
11255
- disabled: value >= chunkCCSF7RI4_cjs.MAX_CHECKOUT_BLOCKS,
11258
+ disabled: value >= chunkEG3BB32W_cjs.MAX_CHECKOUT_BLOCKS,
11256
11259
  "data-testid": `${testId}-increment`,
11257
11260
  children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Plus, { className: "size-4" })
11258
11261
  }
@@ -11269,8 +11272,8 @@ function CheckoutAddonBlocks({
11269
11272
  onStorageBlocksChange,
11270
11273
  price
11271
11274
  }) {
11272
- const ai = chunkCCSF7RI4_cjs.addonPrice(price, "ai_usage");
11273
- const storage = chunkCCSF7RI4_cjs.addonPrice(price, "storage");
11275
+ const ai = chunkEG3BB32W_cjs.addonPrice(price, "ai_usage");
11276
+ const storage = chunkEG3BB32W_cjs.addonPrice(price, "storage");
11274
11277
  return /* @__PURE__ */ jsxRuntime.jsxs(
11275
11278
  "div",
11276
11279
  {
@@ -11280,8 +11283,8 @@ function CheckoutAddonBlocks({
11280
11283
  /* @__PURE__ */ jsxRuntime.jsx(
11281
11284
  BlockStepper,
11282
11285
  {
11283
- label: `+${react.formatGbp(ai?.ai_gbp || chunkCCSF7RI4_cjs.ADDON_BLOCK_AI_GBP)} of AI usage`,
11284
- priceText: chunkCCSF7RI4_cjs.checkoutBlockPriceText(price, "ai_usage"),
11286
+ label: `+${react.formatGbp(ai?.ai_gbp || chunkEG3BB32W_cjs.ADDON_BLOCK_AI_GBP)} of AI usage`,
11287
+ priceText: chunkEG3BB32W_cjs.checkoutBlockPriceText(price, "ai_usage"),
11285
11288
  value: aiBlocks,
11286
11289
  onChange: onAiBlocksChange,
11287
11290
  testId: "checkout-ai-blocks"
@@ -11290,8 +11293,8 @@ function CheckoutAddonBlocks({
11290
11293
  /* @__PURE__ */ jsxRuntime.jsx(
11291
11294
  BlockStepper,
11292
11295
  {
11293
- label: `+${storage?.storage_gb || chunkCCSF7RI4_cjs.STORAGE_BLOCK_GB} GB storage`,
11294
- priceText: chunkCCSF7RI4_cjs.checkoutBlockPriceText(price, "storage"),
11296
+ label: `+${storage?.storage_gb || chunkEG3BB32W_cjs.STORAGE_BLOCK_GB} GB storage`,
11297
+ priceText: chunkEG3BB32W_cjs.checkoutBlockPriceText(price, "storage"),
11295
11298
  value: storageBlocks,
11296
11299
  onChange: onStorageBlocksChange,
11297
11300
  testId: "checkout-storage-blocks"
@@ -11353,7 +11356,7 @@ function CheckoutTotal({
11353
11356
  className: "text-sm font-medium text-foreground",
11354
11357
  "data-testid": "checkout-total",
11355
11358
  "aria-live": "polite",
11356
- children: state.quote && !state.isLoading ? chunkCCSF7RI4_cjs.quoteTotalLine(state.quote) : state.isLoading ? "Calculating total\u2026" : state.error
11359
+ children: state.quote && !state.isLoading ? chunkEG3BB32W_cjs.quoteTotalLine(state.quote) : state.isLoading ? "Calculating total\u2026" : state.error
11357
11360
  }
11358
11361
  )
11359
11362
  ] });
@@ -11386,13 +11389,13 @@ function useCheckoutQuote({
11386
11389
  ...aiBlocks || storageBlocks ? { addons: { ai_usage: aiBlocks, storage: storageBlocks } } : {}
11387
11390
  } : null
11388
11391
  );
11389
- const { code, message } = query.isError ? chunkCCSF7RI4_cjs.quoteError(query.error) : {};
11390
- const locationInvalid = code === chunkCCSF7RI4_cjs.TAX_LOCATION_INVALID;
11392
+ const { code, message } = query.isError ? chunkEG3BB32W_cjs.quoteError(query.error) : {};
11393
+ const locationInvalid = code === chunkEG3BB32W_cjs.TAX_LOCATION_INVALID;
11391
11394
  const isLoading = enabled && (query.isLoading || postal !== postalCode.trim());
11392
11395
  return {
11393
11396
  quote: query.data,
11394
11397
  isLoading,
11395
- showPostcode: chunkCCSF7RI4_cjs.POSTCODE_COUNTRIES.includes(country) || locationInvalid || postalCode !== "",
11398
+ showPostcode: chunkEG3BB32W_cjs.POSTCODE_COUNTRIES.includes(country) || locationInvalid || postalCode !== "",
11396
11399
  error: query.isError ? locationInvalid ? message ?? "Enter your ZIP / postal code to see the total." : message ?? "Couldn't calculate tax. Stripe shows the total next." : null,
11397
11400
  canContinue: !isLoading && (!!query.data || query.isError && !locationInvalid)
11398
11401
  };
@@ -11425,12 +11428,12 @@ function ConnectedReferralRewardSummary({
11425
11428
  return /* @__PURE__ */ jsxRuntime.jsx(
11426
11429
  chunkJBL4PPEE_cjs.ReferralRewardSummary,
11427
11430
  {
11428
- amountLabel: chunkCCSF7RI4_cjs.formatMoney(reward.amount, reward.currency),
11431
+ amountLabel: chunkEG3BB32W_cjs.formatMoney(reward.amount, reward.currency),
11429
11432
  breakdown: applied && totalCents != null && currency ? {
11430
- subtotal: chunkCCSF7RI4_cjs.formatMoney(totalCents, currency),
11431
- reward: chunkCCSF7RI4_cjs.formatMoney(applied.bonus, currency),
11432
- youPay: chunkCCSF7RI4_cjs.formatMoney(applied.youPay, currency),
11433
- rollover: applied.remaining > 0 ? chunkCCSF7RI4_cjs.formatMoney(applied.remaining, currency) : void 0
11433
+ subtotal: chunkEG3BB32W_cjs.formatMoney(totalCents, currency),
11434
+ reward: chunkEG3BB32W_cjs.formatMoney(applied.bonus, currency),
11435
+ youPay: chunkEG3BB32W_cjs.formatMoney(applied.youPay, currency),
11436
+ rollover: applied.remaining > 0 ? chunkEG3BB32W_cjs.formatMoney(applied.remaining, currency) : void 0
11434
11437
  } : void 0
11435
11438
  }
11436
11439
  );
@@ -11438,10 +11441,10 @@ function ConnectedReferralRewardSummary({
11438
11441
  function ConnectedReferralRewardNote() {
11439
11442
  const reward = useReferralReward();
11440
11443
  if (!reward) return null;
11441
- return /* @__PURE__ */ jsxRuntime.jsx(chunkJBL4PPEE_cjs.ReferralRewardNote, { amountLabel: chunkCCSF7RI4_cjs.formatMoney(reward.amount, reward.currency) });
11444
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkJBL4PPEE_cjs.ReferralRewardNote, { amountLabel: chunkEG3BB32W_cjs.formatMoney(reward.amount, reward.currency) });
11442
11445
  }
11443
11446
  function createProjectErrorMessage(error, fallback = `Failed to create ${ui.entityNoun("PROJECT")}`) {
11444
- const detail = chunkCCSF7RI4_cjs.apiErrorDetail(error);
11447
+ const detail = chunkEG3BB32W_cjs.apiErrorDetail(error);
11445
11448
  if (typeof detail === "string" && detail) return detail;
11446
11449
  const message = detail?.message;
11447
11450
  return typeof message === "string" && message ? message : fallback;
@@ -11451,7 +11454,7 @@ function NewProjectFlow({ open, onOpenChange, defaultName }) {
11451
11454
  const [plan, setPlan] = react$1.useState("pro");
11452
11455
  const [isAnnual, setIsAnnual] = react$1.useState(false);
11453
11456
  const [promoCode, setPromoCode] = react$1.useState("");
11454
- const [addonBudget, setAddonBudget] = react$1.useState(String(chunkCCSF7RI4_cjs.DEFAULT_SPEND_CAP_PENCE / 100));
11457
+ const [addonBudget, setAddonBudget] = react$1.useState(String(chunkEG3BB32W_cjs.DEFAULT_SPEND_CAP_PENCE / 100));
11455
11458
  const [checkoutBudget, setCheckoutBudget] = react$1.useState(null);
11456
11459
  const [aiBlocks, setAiBlocks] = react$1.useState(0);
11457
11460
  const [storageBlocks, setStorageBlocks] = react$1.useState(0);
@@ -11465,7 +11468,7 @@ function NewProjectFlow({ open, onOpenChange, defaultName }) {
11465
11468
  const [checkoutProjectName, setCheckoutProjectName] = react$1.useState("");
11466
11469
  const [checkoutInterval, setCheckoutInterval] = react$1.useState("month");
11467
11470
  const paymentCompletedRef = react$1.useRef(false);
11468
- const { stripeEnabled } = chunkCCSF7RI4_cjs.useBillingSupport();
11471
+ const { stripeEnabled } = chunkEG3BB32W_cjs.useBillingSupport();
11469
11472
  const { data: products, isLoading: productsLoading } = react.useProducts({
11470
11473
  enabled: stripeEnabled
11471
11474
  });
@@ -11494,18 +11497,18 @@ function NewProjectFlow({ open, onOpenChange, defaultName }) {
11494
11497
  setPlan("pro");
11495
11498
  setPromoCode("");
11496
11499
  setPostalCode("");
11497
- setAddonBudget(String(chunkCCSF7RI4_cjs.DEFAULT_SPEND_CAP_PENCE / 100));
11500
+ setAddonBudget(String(chunkEG3BB32W_cjs.DEFAULT_SPEND_CAP_PENCE / 100));
11498
11501
  setAiBlocks(0);
11499
11502
  setStorageBlocks(0);
11500
11503
  setIsCreating(false);
11501
11504
  }
11502
11505
  onOpenChange(newOpen);
11503
11506
  };
11504
- const prices = chunkCCSF7RI4_cjs.findProPrices(products);
11507
+ const prices = chunkEG3BB32W_cjs.findProPrices(products);
11505
11508
  const intervalPrice = isAnnual ? prices.annual : prices.monthly;
11506
- const selectedPrice = chunkCCSF7RI4_cjs.packPrice(intervalPrice);
11509
+ const selectedPrice = chunkEG3BB32W_cjs.packPrice(intervalPrice);
11507
11510
  const currency = intervalPrice?.currency ?? "gbp";
11508
- const savingsPercent = chunkCCSF7RI4_cjs.calcSavingsPercent(prices.monthly, prices.annual);
11511
+ const savingsPercent = chunkEG3BB32W_cjs.calcSavingsPercent(prices.monthly, prices.annual);
11509
11512
  const isPro = stripeEnabled && plan !== "free";
11510
11513
  const quote = useCheckoutQuote({
11511
11514
  interval: isAnnual ? "year" : "month",
@@ -11515,14 +11518,14 @@ function NewProjectFlow({ open, onOpenChange, defaultName }) {
11515
11518
  storageBlocks,
11516
11519
  enabled: open && isPro && !!selectedPrice
11517
11520
  });
11518
- const canSubmit = !!projectName.trim() && !isCreating && !createProject.isPending && (!isPro || !!selectedPrice && chunkCCSF7RI4_cjs.parseBudgetPounds(addonBudget) !== void 0 && quote.canContinue);
11521
+ const canSubmit = !!projectName.trim() && !isCreating && !createProject.isPending && (!isPro || !!selectedPrice && chunkEG3BB32W_cjs.parseBudgetPounds(addonBudget) !== void 0 && quote.canContinue);
11519
11522
  const handleCreateFree = () => {
11520
11523
  setIsCreating(true);
11521
11524
  createProject.mutate(
11522
11525
  {
11523
11526
  name: projectName.trim(),
11524
11527
  plan: "free",
11525
- daily_cap_per_user: chunkCCSF7RI4_cjs.SUGGESTED_DAILY_CAP_PER_USER
11528
+ daily_cap_per_user: chunkEG3BB32W_cjs.SUGGESTED_DAILY_CAP_PER_USER
11526
11529
  },
11527
11530
  {
11528
11531
  onSuccess: () => {
@@ -11539,14 +11542,14 @@ function NewProjectFlow({ open, onOpenChange, defaultName }) {
11539
11542
  };
11540
11543
  const handleSubscribe = () => {
11541
11544
  const interval = isAnnual ? "year" : "month";
11542
- const parsed = chunkCCSF7RI4_cjs.parseBudgetPounds(addonBudget);
11543
- const budgetToSend = parsed == null || parsed === chunkCCSF7RI4_cjs.DEFAULT_SPEND_CAP_PENCE ? null : parsed;
11545
+ const parsed = chunkEG3BB32W_cjs.parseBudgetPounds(addonBudget);
11546
+ const budgetToSend = parsed == null || parsed === chunkEG3BB32W_cjs.DEFAULT_SPEND_CAP_PENCE ? null : parsed;
11544
11547
  setIsCreating(true);
11545
11548
  createProject.mutate(
11546
11549
  {
11547
11550
  name: projectName.trim(),
11548
11551
  plan: "pro",
11549
- daily_cap_per_user: chunkCCSF7RI4_cjs.SUGGESTED_DAILY_CAP_PER_USER
11552
+ daily_cap_per_user: chunkEG3BB32W_cjs.SUGGESTED_DAILY_CAP_PER_USER
11550
11553
  },
11551
11554
  {
11552
11555
  onSuccess: (newProject) => {
@@ -11703,7 +11706,7 @@ function ConnectedProjectEntity({
11703
11706
  subscription = "none",
11704
11707
  ...props
11705
11708
  }) {
11706
- const { stripeEnabled } = chunkCCSF7RI4_cjs.useBillingSupport();
11709
+ const { stripeEnabled } = chunkEG3BB32W_cjs.useBillingSupport();
11707
11710
  return /* @__PURE__ */ jsxRuntime.jsx(
11708
11711
  ui.ProjectEntity,
11709
11712
  {
@@ -11728,7 +11731,7 @@ function ConnectedProjectSelector({
11728
11731
  readOnly,
11729
11732
  className
11730
11733
  }) {
11731
- const { stripeEnabled } = chunkCCSF7RI4_cjs.useBillingSupport();
11734
+ const { stripeEnabled } = chunkEG3BB32W_cjs.useBillingSupport();
11732
11735
  return /* @__PURE__ */ jsxRuntime.jsx(
11733
11736
  chunkHYAYXLIZ_cjs.ProjectPicker,
11734
11737
  {
@@ -12579,36 +12582,36 @@ function ConnectedSharePointAdminConsentPage({
12579
12582
  const result = givenResult === void 0 ? queryResult : givenResult;
12580
12583
  const { apiBaseUrl } = chunkT6GRWWRY_cjs.useBlocksEnvironment().runtimeConfig;
12581
12584
  const consentUrl = `${apiBaseUrl}/v1/connectors/microsoft_sharepoint/admin-consent`;
12582
- return /* @__PURE__ */ jsxRuntime.jsx(chunkHVOPUYAG_cjs.ConsentPage, { children: /* @__PURE__ */ jsxRuntime.jsxs(chunkHVOPUYAG_cjs.ConsentCard, { size: "md", children: [
12585
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkCJF7B5A7_cjs.ConsentPage, { children: /* @__PURE__ */ jsxRuntime.jsxs(chunkCJF7B5A7_cjs.ConsentCard, { size: "md", children: [
12583
12586
  /* @__PURE__ */ jsxRuntime.jsx(
12584
- chunkHVOPUYAG_cjs.ConsentHeader,
12587
+ chunkCJF7B5A7_cjs.ConsentHeader,
12585
12588
  {
12586
12589
  icon: /* @__PURE__ */ jsxRuntime.jsx(chunkVGNCU5JJ_cjs.VendorLogo, { vendorKey: "microsoft_sharepoint", product: "sharepoint" }),
12587
12590
  title: "Approve ARBI for SharePoint access",
12588
12591
  children: "A member of your organization uses ARBI and wants to sync documents from SharePoint. Your Microsoft 365 organization requires an administrator to approve this once for the whole organization."
12589
12592
  }
12590
12593
  ),
12591
- result === "granted" && /* @__PURE__ */ jsxRuntime.jsx(chunkHVOPUYAG_cjs.ConsentNotice, { tone: "success", title: "Access approved \u2014 you\u2019re all set.", className: "mt-4", children: "People in your organization can now connect SharePoint from their own ARBI account. Nothing is synced until each user connects and chooses what to import." }),
12592
- result === "declined" && /* @__PURE__ */ jsxRuntime.jsx(chunkHVOPUYAG_cjs.ConsentNotice, { tone: "warning", title: "The approval didn\u2019t complete.", className: "mt-4", children: "The request was declined or canceled on the Microsoft screen. You can try again below \u2014 you must sign in with a Microsoft 365 administrator account of your organization." }),
12593
- /* @__PURE__ */ jsxRuntime.jsxs(chunkHVOPUYAG_cjs.ConsentSection, { title: "What you are approving", children: [
12594
+ result === "granted" && /* @__PURE__ */ jsxRuntime.jsx(chunkCJF7B5A7_cjs.ConsentNotice, { tone: "success", title: "Access approved \u2014 you\u2019re all set.", className: "mt-4", children: "People in your organization can now connect SharePoint from their own ARBI account. Nothing is synced until each user connects and chooses what to import." }),
12595
+ result === "declined" && /* @__PURE__ */ jsxRuntime.jsx(chunkCJF7B5A7_cjs.ConsentNotice, { tone: "warning", title: "The approval didn\u2019t complete.", className: "mt-4", children: "The request was declined or canceled on the Microsoft screen. You can try again below \u2014 you must sign in with a Microsoft 365 administrator account of your organization." }),
12596
+ /* @__PURE__ */ jsxRuntime.jsxs(chunkCJF7B5A7_cjs.ConsentSection, { title: "What you are approving", children: [
12594
12597
  /* @__PURE__ */ jsxRuntime.jsx(
12595
- chunkHVOPUYAG_cjs.ConsentBulletList,
12598
+ chunkCJF7B5A7_cjs.ConsentBulletList,
12596
12599
  {
12597
12600
  items: [
12598
12601
  /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
12599
- /* @__PURE__ */ jsxRuntime.jsx(chunkHVOPUYAG_cjs.ConsentStrong, { children: "Read SharePoint sites and files" }),
12602
+ /* @__PURE__ */ jsxRuntime.jsx(chunkCJF7B5A7_cjs.ConsentStrong, { children: "Read SharePoint sites and files" }),
12600
12603
  " \u2014 lets each user who connects their own account import documents from sites they already have access to. ARBI never gets more access than the user has."
12601
12604
  ] }),
12602
12605
  /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
12603
- /* @__PURE__ */ jsxRuntime.jsx(chunkHVOPUYAG_cjs.ConsentStrong, { children: "Sign users in and keep access" }),
12606
+ /* @__PURE__ */ jsxRuntime.jsx(chunkCJF7B5A7_cjs.ConsentStrong, { children: "Sign users in and keep access" }),
12604
12607
  " \u2014 standard sign-in (openid, profile, email) and offline access so syncs keep working between sessions."
12605
12608
  ] })
12606
12609
  ]
12607
12610
  }
12608
12611
  ),
12609
- /* @__PURE__ */ jsxRuntime.jsx(chunkHVOPUYAG_cjs.ConsentText, { children: "Approving does not sync anything by itself and grants ARBI no standing access to your tenant. Each user still connects their own Microsoft account, and their tokens are end-to-end encrypted so ARBI\u2019s servers cannot read them at rest." }),
12612
+ /* @__PURE__ */ jsxRuntime.jsx(chunkCJF7B5A7_cjs.ConsentText, { children: "Approving does not sync anything by itself and grants ARBI no standing access to your tenant. Each user still connects their own Microsoft account, and their tokens are end-to-end encrypted so ARBI\u2019s servers cannot read them at rest." }),
12610
12613
  /* @__PURE__ */ jsxRuntime.jsx(ui.Button, { asChild: true, className: "w-full pointer-coarse:h-11", children: /* @__PURE__ */ jsxRuntime.jsx("a", { href: consentUrl, children: "Review and approve in Microsoft" }) }),
12611
- /* @__PURE__ */ jsxRuntime.jsx(chunkHVOPUYAG_cjs.ConsentText, { variant: "footnote", children: "You\u2019ll sign in at login.microsoftonline.com and see Microsoft\u2019s own summary of these permissions before anything is granted." })
12614
+ /* @__PURE__ */ jsxRuntime.jsx(chunkCJF7B5A7_cjs.ConsentText, { variant: "footnote", children: "You\u2019ll sign in at login.microsoftonline.com and see Microsoft\u2019s own summary of these permissions before anything is granted." })
12612
12615
  ] })
12613
12616
  ] }) });
12614
12617
  }
@@ -12630,7 +12633,7 @@ function BillingProjectEntity({
12630
12633
  subscription = "none",
12631
12634
  ...props
12632
12635
  }) {
12633
- const { stripeEnabled } = chunkCCSF7RI4_cjs.useBillingSupport();
12636
+ const { stripeEnabled } = chunkEG3BB32W_cjs.useBillingSupport();
12634
12637
  const isPaid2 = stripeEnabled && (subscription === "active" || subscription === "past_due" || subscription === "dev");
12635
12638
  return /* @__PURE__ */ jsxRuntime.jsx(ui.ProjectEntity, { ...props, subscription, isPaid: isPaid2 });
12636
12639
  }
@@ -12657,8 +12660,8 @@ function InvoicesModal({
12657
12660
  key: inv.number ?? String(i),
12658
12661
  date: formatInvoiceDate(inv.date),
12659
12662
  kind: KIND_LABELS2[inv.kind],
12660
- amount: chunkCCSF7RI4_cjs.formatMoney(inv.amount, inv.currency),
12661
- amountNote: inv.amount_ex_vat != null && inv.amount_ex_vat !== inv.amount ? `${chunkCCSF7RI4_cjs.formatMoney(inv.amount_ex_vat, inv.currency)} ex VAT` : void 0,
12663
+ amount: chunkEG3BB32W_cjs.formatMoney(inv.amount, inv.currency),
12664
+ amountNote: inv.amount_ex_vat != null && inv.amount_ex_vat !== inv.amount ? `${chunkEG3BB32W_cjs.formatMoney(inv.amount_ex_vat, inv.currency)} ex VAT` : void 0,
12662
12665
  status: inv.status,
12663
12666
  isPaid: isPaid2,
12664
12667
  href: inv.hosted_invoice_url ?? inv.url ?? inv.pdf_url ?? void 0,
@@ -12680,7 +12683,7 @@ function SubscriptionPlans({ projectExtId, onDismiss }) {
12680
12683
  const { data: products, isLoading, error } = react.useProducts();
12681
12684
  const [isAnnual, setIsAnnual] = react$1.useState(false);
12682
12685
  const [promoCode, setPromoCode] = react$1.useState("");
12683
- const [addonBudget, setAddonBudget] = react$1.useState(String(chunkCCSF7RI4_cjs.DEFAULT_SPEND_CAP_PENCE / 100));
12686
+ const [addonBudget, setAddonBudget] = react$1.useState(String(chunkEG3BB32W_cjs.DEFAULT_SPEND_CAP_PENCE / 100));
12684
12687
  const [checkoutBudget, setCheckoutBudget] = react$1.useState(null);
12685
12688
  const [aiBlocks, setAiBlocks] = react$1.useState(0);
12686
12689
  const [storageBlocks, setStorageBlocks] = react$1.useState(0);
@@ -12701,16 +12704,16 @@ function SubscriptionPlans({ projectExtId, onDismiss }) {
12701
12704
  if (isLoading) return /* @__PURE__ */ jsxRuntime.jsx(chunkJBL4PPEE_cjs.PlanNotice, { children: "Loading plans\u2026" });
12702
12705
  if (error) return /* @__PURE__ */ jsxRuntime.jsx(chunkJBL4PPEE_cjs.PlanNotice, { tone: "error", children: "Plans didn't load. Try again." });
12703
12706
  if (!products || products.length === 0) return /* @__PURE__ */ jsxRuntime.jsx(chunkJBL4PPEE_cjs.PlanNotice, { children: "No plans available." });
12704
- const prices = chunkCCSF7RI4_cjs.findProPrices(products);
12707
+ const prices = chunkEG3BB32W_cjs.findProPrices(products);
12705
12708
  const intervalPrice = isAnnual ? prices.annual : prices.monthly;
12706
- const selectedPrice = chunkCCSF7RI4_cjs.packPrice(intervalPrice);
12709
+ const selectedPrice = chunkEG3BB32W_cjs.packPrice(intervalPrice);
12707
12710
  if (!intervalPrice) return null;
12708
12711
  const interval = isAnnual ? "year" : "month";
12709
- const savingsPercent = chunkCCSF7RI4_cjs.calcSavingsPercent(prices.monthly, prices.annual);
12712
+ const savingsPercent = chunkEG3BB32W_cjs.calcSavingsPercent(prices.monthly, prices.annual);
12710
12713
  const handleSubscribe = () => {
12711
12714
  setCheckoutInterval(interval);
12712
- const parsed = chunkCCSF7RI4_cjs.parseBudgetPounds(addonBudget);
12713
- setCheckoutBudget(parsed == null || parsed === chunkCCSF7RI4_cjs.DEFAULT_SPEND_CAP_PENCE ? null : parsed);
12715
+ const parsed = chunkEG3BB32W_cjs.parseBudgetPounds(addonBudget);
12716
+ setCheckoutBudget(parsed == null || parsed === chunkEG3BB32W_cjs.DEFAULT_SPEND_CAP_PENCE ? null : parsed);
12714
12717
  setCheckoutQuote(quote.quote);
12715
12718
  setIsCheckoutModalOpen(true);
12716
12719
  };
@@ -12788,7 +12791,7 @@ function SubscriptionPlans({ projectExtId, onDismiss }) {
12788
12791
  {
12789
12792
  fill: true,
12790
12793
  onClick: handleSubscribe,
12791
- disabled: !selectedPrice || chunkCCSF7RI4_cjs.parseBudgetPounds(addonBudget) === void 0 || !quote.canContinue,
12794
+ disabled: !selectedPrice || chunkEG3BB32W_cjs.parseBudgetPounds(addonBudget) === void 0 || !quote.canContinue,
12792
12795
  size: "sm",
12793
12796
  "data-testid": "subscribe-button",
12794
12797
  children: "Continue to payment"
@@ -12840,7 +12843,7 @@ var FALLBACK_MESSAGES = {
12840
12843
  BILLING_ADDRESS_REQUIRED: "Add a billing address first."
12841
12844
  };
12842
12845
  function addonErrorMessage(error) {
12843
- const detail = chunkCCSF7RI4_cjs.apiErrorDetail(error);
12846
+ const detail = chunkEG3BB32W_cjs.apiErrorDetail(error);
12844
12847
  if (detail && typeof detail === "object") {
12845
12848
  const { code, message } = detail;
12846
12849
  if (message) return message;
@@ -12866,14 +12869,14 @@ function chargeRefusalMessage(error) {
12866
12869
  return code ? REFUSALS[code] : null;
12867
12870
  }
12868
12871
  function addonErrorCode(error) {
12869
- const detail = chunkCCSF7RI4_cjs.apiErrorDetail(error);
12872
+ const detail = chunkEG3BB32W_cjs.apiErrorDetail(error);
12870
12873
  if (detail && typeof detail === "object") {
12871
12874
  const code = detail.code;
12872
12875
  if (code && code in FALLBACK_MESSAGES) return code;
12873
12876
  }
12874
12877
  return null;
12875
12878
  }
12876
- var addedMessage = (kind, blockAiGbp, blockStorageGb) => kind === "ai_usage" ? `${react.formatGbp(blockAiGbp ?? chunkCCSF7RI4_cjs.ADDON_BLOCK_AI_GBP)} of AI usage added` : `${blockStorageGb ?? chunkCCSF7RI4_cjs.STORAGE_BLOCK_GB} GB added`;
12879
+ var addedMessage = (kind, blockAiGbp, blockStorageGb) => kind === "ai_usage" ? `${react.formatGbp(blockAiGbp ?? chunkEG3BB32W_cjs.ADDON_BLOCK_AI_GBP)} of AI usage added` : `${blockStorageGb ?? chunkEG3BB32W_cjs.STORAGE_BLOCK_GB} GB added`;
12877
12880
  function useAddonPurchase() {
12878
12881
  const addBlock = react.useAddProjectAddonBlock();
12879
12882
  const { mutate } = addBlock;
@@ -12925,7 +12928,7 @@ function PlanChangeLines({
12925
12928
  isError,
12926
12929
  className
12927
12930
  }) {
12928
- const lines = preview ? chunkCCSF7RI4_cjs.planPreviewLines(preview) : [{ id: "pay-today", text: isError ? chunkCCSF7RI4_cjs.PAY_TODAY_UNPRICED : "Checking price\u2026" }];
12931
+ const lines = preview ? chunkEG3BB32W_cjs.planPreviewLines(preview) : [{ id: "pay-today", text: isError ? chunkEG3BB32W_cjs.PAY_TODAY_UNPRICED : "Checking price\u2026" }];
12929
12932
  return /* @__PURE__ */ jsxRuntime.jsx("div", { className, "data-testid": "plan-change-lines", children: lines.map((line) => /* @__PURE__ */ jsxRuntime.jsx("p", { "data-testid": `plan-change-${line.id}`, children: line.text }, line.id)) });
12930
12933
  }
12931
12934
  var BANK_CONFIRM_PLAN_CHANGE = "Confirm with your bank. Nothing is charged until you do.";
@@ -12933,13 +12936,13 @@ function notifyPlanChange(data, fallback, planName2) {
12933
12936
  const outcome = data?.plan_change;
12934
12937
  switch (outcome?.result) {
12935
12938
  case "upgraded": {
12936
- const plan = chunkCCSF7RI4_cjs.planNameForPacks(data?.addons?.packs ?? data?.packs);
12937
- const charged = outcome.charged_pence > 0 ? ` \xB7 ${chunkCCSF7RI4_cjs.formatMoney(outcome.charged_pence, "gbp")} charged` : "";
12939
+ const plan = chunkEG3BB32W_cjs.planNameForPacks(data?.addons?.packs ?? data?.packs);
12940
+ const charged = outcome.charged_pence > 0 ? ` \xB7 ${chunkEG3BB32W_cjs.formatMoney(outcome.charged_pence, "gbp")} charged` : "";
12938
12941
  shell.notify.success(`Upgraded to ${plan}${charged}`);
12939
12942
  break;
12940
12943
  }
12941
12944
  case "scheduled": {
12942
- const when2 = chunkCCSF7RI4_cjs.formatPeriodEnd(data?.addons?.period_end ?? data?.current_period_end);
12945
+ const when2 = chunkEG3BB32W_cjs.formatPeriodEnd(data?.addons?.period_end ?? data?.current_period_end);
12943
12946
  shell.notify.success(when2 ? `Scheduled for ${when2}` : fallback);
12944
12947
  break;
12945
12948
  }
@@ -12972,23 +12975,23 @@ function ChangeProPlan({
12972
12975
  const { data: products } = react.useProducts();
12973
12976
  const changePlan = react.useChangeProjectPlan();
12974
12977
  const cancel = react.useCancelProjectSubscription();
12975
- const prices = chunkCCSF7RI4_cjs.findProPrices(products);
12978
+ const prices = chunkEG3BB32W_cjs.findProPrices(products);
12976
12979
  const addons = project.addons;
12977
12980
  const isCanceling = project.cancel_at_period_end === true || project.subscription === "canceled";
12978
- const currentPacks = Math.max(addons?.packs ?? project.packs ?? chunkCCSF7RI4_cjs.PRO_PACKS, chunkCCSF7RI4_cjs.PRO_PACKS);
12979
- const isLegacyMultiPack = currentPacks > chunkCCSF7RI4_cjs.PRO_PACKS;
12981
+ const currentPacks = Math.max(addons?.packs ?? project.packs ?? chunkEG3BB32W_cjs.PRO_PACKS, chunkEG3BB32W_cjs.PRO_PACKS);
12982
+ const isLegacyMultiPack = currentPacks > chunkEG3BB32W_cjs.PRO_PACKS;
12980
12983
  const currentInterval = project.plan_interval === "year" ? "year" : "month";
12981
12984
  const scheduledPacks = isCanceling ? 0 : addons?.packs_next ?? currentPacks;
12982
12985
  const scheduledInterval = addons?.pending_interval ?? currentInterval;
12983
12986
  const [targetPacks, setTargetPacks] = react$1.useState(scheduledPacks);
12984
12987
  const [chosenInterval, setChosenInterval] = react$1.useState(scheduledInterval);
12985
- const targetInterval = targetPacks > chunkCCSF7RI4_cjs.PRO_PACKS ? currentInterval : chosenInterval;
12988
+ const targetInterval = targetPacks > chunkEG3BB32W_cjs.PRO_PACKS ? currentInterval : chosenInterval;
12986
12989
  const periodEnd = formatDate(addons?.period_end ?? project.current_period_end);
12987
12990
  const when2 = periodEnd ?? "the end of the period";
12988
12991
  const shortWhen = periodEnd ? periodEnd.replace(/ \d{4}$/, "") : "period end";
12989
12992
  const isPending = changePlan.isPending || cancel.isPending;
12990
12993
  const sameAsScheduled = targetPacks === scheduledPacks && (targetPacks === 0 || targetInterval === scheduledInterval);
12991
- const packOptions = isLegacyMultiPack ? [currentPacks, chunkCCSF7RI4_cjs.PRO_PACKS, 0] : [chunkCCSF7RI4_cjs.PRO_PACKS, 0];
12994
+ const packOptions = isLegacyMultiPack ? [currentPacks, chunkEG3BB32W_cjs.PRO_PACKS, 0] : [chunkEG3BB32W_cjs.PRO_PACKS, 0];
12992
12995
  const intervalPrice = targetInterval === "year" ? prices.annual : prices.monthly;
12993
12996
  const currency = intervalPrice?.currency ?? project.currency ?? "gbp";
12994
12997
  const preview = react.usePreviewProjectPlanChange(
@@ -12996,7 +12999,7 @@ function ChangeProPlan({
12996
12999
  sameAsScheduled || targetPacks === 0 ? null : { packs: targetPacks, interval: targetInterval }
12997
13000
  );
12998
13001
  const noChange = sameAsScheduled || preview.data?.unchanged === true;
12999
- const nameFor = (packs) => packs === currentPacks && packs > 0 ? chunkCCSF7RI4_cjs.proTierName(project) : chunkCCSF7RI4_cjs.planNameForPacks(packs);
13002
+ const nameFor = (packs) => packs === currentPacks && packs > 0 ? chunkEG3BB32W_cjs.proTierName(project) : chunkEG3BB32W_cjs.planNameForPacks(packs);
13000
13003
  const effects = [];
13001
13004
  const target = nameFor(targetPacks);
13002
13005
  if (targetPacks === 0) {
@@ -13006,7 +13009,7 @@ function ChangeProPlan({
13006
13009
  if (targetPacks < currentPacks) {
13007
13010
  effects.push(`Changes to one Pro licence on ${when2}. No refund.`);
13008
13011
  } else if (!isCanceling && addons?.packs_next != null) {
13009
- effects.push(`Cancels the change to ${chunkCCSF7RI4_cjs.planNameForPacks(addons.packs_next)}.`);
13012
+ effects.push(`Cancels the change to ${chunkEG3BB32W_cjs.planNameForPacks(addons.packs_next)}.`);
13010
13013
  }
13011
13014
  if (targetInterval !== currentInterval) {
13012
13015
  effects.push(`${targetInterval === "year" ? "Annual" : "Monthly"} billing from ${when2}.`);
@@ -13045,26 +13048,26 @@ function ChangeProPlan({
13045
13048
  if (packs === 0) {
13046
13049
  return {
13047
13050
  total: "\xA30",
13048
- summary: `${react.formatGbp(chunkCCSF7RI4_cjs.FREE_AI_GBP)} of AI usage \xB7 ${chunkCCSF7RI4_cjs.FREE_STORAGE_MB} MB \xB7 just you`
13051
+ summary: `${react.formatGbp(chunkEG3BB32W_cjs.FREE_AI_GBP)} of AI usage \xB7 ${chunkEG3BB32W_cjs.FREE_STORAGE_MB} MB \xB7 just you`
13049
13052
  };
13050
13053
  }
13051
- const allowance = `${react.formatGbp(chunkCCSF7RI4_cjs.PRO_AI_GBP * packs)} of AI usage \xB7 ${chunkCCSF7RI4_cjs.PRO_STORAGE_GB * packs} GB`;
13052
- const legacy = packs > chunkCCSF7RI4_cjs.PRO_PACKS;
13053
- const exVat = legacy ? project.amount_ex_vat : chunkCCSF7RI4_cjs.packPrice(intervalPrice)?.amount_ex_vat;
13054
+ const allowance = `${react.formatGbp(chunkEG3BB32W_cjs.PRO_AI_GBP * packs)} of AI usage \xB7 ${chunkEG3BB32W_cjs.PRO_STORAGE_GB * packs} GB`;
13055
+ const legacy = packs > chunkEG3BB32W_cjs.PRO_PACKS;
13056
+ const exVat = legacy ? project.amount_ex_vat : chunkEG3BB32W_cjs.packPrice(intervalPrice)?.amount_ex_vat;
13054
13057
  return {
13055
- total: exVat != null ? chunkCCSF7RI4_cjs.plusVat(exVat, currency) : void 0,
13058
+ total: exVat != null ? chunkEG3BB32W_cjs.plusVat(exVat, currency) : void 0,
13056
13059
  summary: allowance
13057
13060
  };
13058
13061
  };
13059
13062
  return /* @__PURE__ */ jsxRuntime.jsxs(chunkJBL4PPEE_cjs.PlanStack, { gap: 4, testId: "change-pro-plan", children: [
13060
13063
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-wrap items-center justify-between gap-2", children: [
13061
13064
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm font-medium text-foreground", children: "Billing" }),
13062
- targetPacks > chunkCCSF7RI4_cjs.PRO_PACKS ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm text-muted-foreground", "data-testid": "change-plan-interval-fixed", children: currentInterval === "year" ? "Annual" : "Monthly" }) : /* @__PURE__ */ jsxRuntime.jsx(
13065
+ targetPacks > chunkEG3BB32W_cjs.PRO_PACKS ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm text-muted-foreground", "data-testid": "change-plan-interval-fixed", children: currentInterval === "year" ? "Annual" : "Monthly" }) : /* @__PURE__ */ jsxRuntime.jsx(
13063
13066
  chunkJBL4PPEE_cjs.PricingToggle,
13064
13067
  {
13065
13068
  isAnnual: targetInterval === "year",
13066
13069
  onToggle: () => setChosenInterval(targetInterval === "year" ? "month" : "year"),
13067
- savingsPercent: chunkCCSF7RI4_cjs.calcSavingsPercent(prices.monthly, prices.annual)
13070
+ savingsPercent: chunkEG3BB32W_cjs.calcSavingsPercent(prices.monthly, prices.annual)
13068
13071
  }
13069
13072
  )
13070
13073
  ] }),
@@ -13089,12 +13092,12 @@ function ChangeProPlan({
13089
13092
  }) }),
13090
13093
  isLegacyMultiPack && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-wrap items-center gap-x-3 gap-y-1", children: [
13091
13094
  /* @__PURE__ */ jsxRuntime.jsxs(chunkJBL4PPEE_cjs.PlanNotice, { className: "text-xs", testId: "change-plan-legacy-note", children: [
13092
- chunkCCSF7RI4_cjs.proTierName(project),
13095
+ chunkEG3BB32W_cjs.proTierName(project),
13093
13096
  " is no longer sold"
13094
13097
  ] }),
13095
13098
  /* @__PURE__ */ jsxRuntime.jsxs(chunkJBL4PPEE_cjs.MoreInfo, { title: "Legacy plan", testId: "change-plan-legacy-more-info", children: [
13096
13099
  /* @__PURE__ */ jsxRuntime.jsxs("p", { children: [
13097
- chunkCCSF7RI4_cjs.proTierName(project),
13100
+ chunkEG3BB32W_cjs.proTierName(project),
13098
13101
  " keeps renewing at its own price, with its allowance and add-ons, until you change it."
13099
13102
  ] }),
13100
13103
  /* @__PURE__ */ jsxRuntime.jsxs("p", { children: [
@@ -13126,7 +13129,7 @@ function ChangeProPlan({
13126
13129
  ] });
13127
13130
  }
13128
13131
  function ChangePlanDialog({ project, open, onOpenChange }) {
13129
- const isPro = !!project && chunkCCSF7RI4_cjs.isProProject(project);
13132
+ const isPro = !!project && chunkEG3BB32W_cjs.isProProject(project);
13130
13133
  return /* @__PURE__ */ jsxRuntime.jsx(
13131
13134
  chunkJBL4PPEE_cjs.PlanDialogFrame,
13132
13135
  {
@@ -13148,14 +13151,14 @@ function ChangePlanDialog({ project, open, onOpenChange }) {
13148
13151
  }
13149
13152
  function ProjectsTable() {
13150
13153
  const { data: projects, isLoading } = react.useProjects();
13151
- const currentUserExtId = chunkCCSF7RI4_cjs.useSelfExtId();
13154
+ const currentUserExtId = chunkEG3BB32W_cjs.useSelfExtId();
13152
13155
  const { openProject } = chunkT6GRWWRY_cjs.useBlocksEnvironment();
13153
13156
  const updateProject = react.useUpdateProjectFields();
13154
13157
  const [renameTarget, setRenameTarget] = react$1.useState(null);
13155
13158
  const [renameValue, setRenameValue] = react$1.useState("");
13156
13159
  const [invoicesTarget, setInvoicesTarget] = react$1.useState(null);
13157
13160
  const [upgradeTarget, setUpgradeTarget] = react$1.useState(null);
13158
- const { stripeEnabled } = chunkCCSF7RI4_cjs.useBillingSupport();
13161
+ const { stripeEnabled } = chunkEG3BB32W_cjs.useBillingSupport();
13159
13162
  const ownedProjects = react$1.useMemo(
13160
13163
  () => (projects ?? []).filter((p) => p.created_by === currentUserExtId),
13161
13164
  [projects, currentUserExtId]
@@ -13199,8 +13202,8 @@ function ProjectsTable() {
13199
13202
  testId: `project-row-${p.external_id}`,
13200
13203
  onOpen: () => openProject(p.external_id),
13201
13204
  identity: /* @__PURE__ */ jsxRuntime.jsx(BillingProjectEntity, { name: p.name, relation: "mine", subscription: p.subscription, size: "sm" }),
13202
- summary: stripeEnabled ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex items-center whitespace-nowrap", children: /* @__PURE__ */ jsxRuntime.jsx(chunkJBL4PPEE_cjs.PlanBadge, { ...chunkCCSF7RI4_cjs.planBadgeView(p) }) }) : void 0,
13203
- usage: p.quotas ? /* @__PURE__ */ jsxRuntime.jsx(chunkJBL4PPEE_cjs.QuotaMeter, { items: chunkCCSF7RI4_cjs.getQuotaItems(p.quotas), size: "lg" }) : void 0,
13205
+ summary: stripeEnabled ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex items-center whitespace-nowrap", children: /* @__PURE__ */ jsxRuntime.jsx(chunkJBL4PPEE_cjs.PlanBadge, { ...chunkEG3BB32W_cjs.planBadgeView(p) }) }) : void 0,
13206
+ usage: p.quotas ? /* @__PURE__ */ jsxRuntime.jsx(chunkJBL4PPEE_cjs.QuotaMeter, { items: chunkEG3BB32W_cjs.getQuotaItems(p.quotas), size: "lg" }) : void 0,
13204
13207
  actions: /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
13205
13208
  canUpgrade && /* @__PURE__ */ jsxRuntime.jsxs(
13206
13209
  ui.Button,
@@ -13267,7 +13270,7 @@ function ProjectsTable() {
13267
13270
  }
13268
13271
  function SharedProjects() {
13269
13272
  const { data: projects } = react.useProjects();
13270
- const currentUserExtId = chunkCCSF7RI4_cjs.useSelfExtId();
13273
+ const currentUserExtId = chunkEG3BB32W_cjs.useSelfExtId();
13271
13274
  const { data: usageToday } = react.useUserUsageToday();
13272
13275
  const shared = react$1.useMemo(
13273
13276
  () => (projects ?? []).filter((p) => p.created_by !== currentUserExtId),
@@ -13343,9 +13346,9 @@ function SubscriptionStatus({ project }) {
13343
13346
  return /* @__PURE__ */ jsxRuntime.jsx(
13344
13347
  chunkJBL4PPEE_cjs.SubscriptionStatusView,
13345
13348
  {
13346
- resetDate: chunkCCSF7RI4_cjs.formatResetDate(addons?.ai_usage_reset_at ?? current_period_end),
13349
+ resetDate: chunkEG3BB32W_cjs.formatResetDate(addons?.ai_usage_reset_at ?? current_period_end),
13347
13350
  isCanceling: subscription === "canceled" || cancel_at_period_end === true,
13348
- meters: chunkCCSF7RI4_cjs.getQuotaItems(quotas).map((q) => ({
13351
+ meters: chunkEG3BB32W_cjs.getQuotaItems(quotas).map((q) => ({
13349
13352
  key: q.key,
13350
13353
  icon: q.icon,
13351
13354
  label: q.label,
@@ -13409,7 +13412,7 @@ function PendingChange({
13409
13412
  }
13410
13413
  );
13411
13414
  }
13412
- var titleFor = (kind, blockAiGbp, blockStorageGb) => kind === "ai_usage" ? `Add ${react.formatGbp(blockAiGbp ?? chunkCCSF7RI4_cjs.ADDON_BLOCK_AI_GBP)} of AI usage` : `Add ${blockStorageGb ?? chunkCCSF7RI4_cjs.STORAGE_BLOCK_GB} GB storage`;
13415
+ var titleFor = (kind, blockAiGbp, blockStorageGb) => kind === "ai_usage" ? `Add ${react.formatGbp(blockAiGbp ?? chunkEG3BB32W_cjs.ADDON_BLOCK_AI_GBP)} of AI usage` : `Add ${blockStorageGb ?? chunkEG3BB32W_cjs.STORAGE_BLOCK_GB} GB storage`;
13413
13416
  var blocksOf = (kind, project) => (kind === "ai_usage" ? project.addons?.ai_blocks : project.addons?.storage_blocks) ?? 0;
13414
13417
  function Row({ label, children }) {
13415
13418
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-baseline justify-between gap-4", children: [
@@ -13430,11 +13433,11 @@ function AddAddonDialog({
13430
13433
  const addons = project.addons;
13431
13434
  if (!addons) return null;
13432
13435
  const isAnnual = project.plan_interval === "year";
13433
- const price = chunkCCSF7RI4_cjs.addonCharge(kind, addons, isAnnual, addons.period_end ?? project.current_period_end);
13434
- const nextCharge = chunkCCSF7RI4_cjs.formatPeriodEnd(addons.period_end ?? project.current_period_end);
13435
- const now = quote.data ? chunkCCSF7RI4_cjs.quoteParts(quote.data.now) : null;
13436
- const renewal = quote.data ? chunkCCSF7RI4_cjs.quoteParts(quote.data.renewal) : null;
13437
- const today = now ? { total: chunkCCSF7RI4_cjs.money2(now.total), detail: chunkCCSF7RI4_cjs.taxDetail(now) } : { total: price.now, detail: `incl. VAT (${price.nowExVat} + ${price.nowVat} VAT)` };
13436
+ const price = chunkEG3BB32W_cjs.addonCharge(kind, addons, isAnnual, addons.period_end ?? project.current_period_end);
13437
+ const nextCharge = chunkEG3BB32W_cjs.formatPeriodEnd(addons.period_end ?? project.current_period_end);
13438
+ const now = quote.data ? chunkEG3BB32W_cjs.quoteParts(quote.data.now) : null;
13439
+ const renewal = quote.data ? chunkEG3BB32W_cjs.quoteParts(quote.data.renewal) : null;
13440
+ const today = now ? { total: chunkEG3BB32W_cjs.money2(now.total), detail: chunkEG3BB32W_cjs.taxDetail(now) } : { total: price.now, detail: `incl. VAT (${price.nowExVat} + ${price.nowVat} VAT)` };
13438
13441
  const pricing = quote.isLoading;
13439
13442
  const confirm = () => {
13440
13443
  const before = blocksOf(kind, project);
@@ -13489,7 +13492,7 @@ function AddAddonDialog({
13489
13492
  term: "Usage cap",
13490
13493
  text: "Adding by hand is never blocked by the usage cap; the cap limits automatic top-ups only."
13491
13494
  },
13492
- ...isAnnual && kind === "ai_usage" ? [{ term: "Annual", text: `${chunkCCSF7RI4_cjs.ANNUAL_PREMIUM_AI_NOTE}.` }] : []
13495
+ ...isAnnual && kind === "ai_usage" ? [{ term: "Annual", text: `${chunkEG3BB32W_cjs.ANNUAL_PREMIUM_AI_NOTE}.` }] : []
13493
13496
  ]
13494
13497
  }
13495
13498
  ) })
@@ -13512,7 +13515,7 @@ function AddAddonDialog({
13512
13515
  )
13513
13516
  ] }) }),
13514
13517
  !pricing && /* @__PURE__ */ jsxRuntime.jsxs(Row, { label: "Next charge", children: [
13515
- renewal ? chunkCCSF7RI4_cjs.totalWithTaxWord(renewal) : price.then.replace(/\/(month|year)/, ""),
13518
+ renewal ? chunkEG3BB32W_cjs.totalWithTaxWord(renewal) : price.then.replace(/\/(month|year)/, ""),
13516
13519
  nextCharge ? ` on ${nextCharge}` : " at renewal"
13517
13520
  ] })
13518
13521
  ] }) }),
@@ -13543,11 +13546,11 @@ function ReduceAddonDialog({
13543
13546
  const update = react.useUpdateProjectNextPeriodAddons();
13544
13547
  const addons = project.addons;
13545
13548
  if (!addons) return null;
13546
- const { min, next } = chunkCCSF7RI4_cjs.reduceBounds(kind, addons);
13549
+ const { min, next } = chunkEG3BB32W_cjs.reduceBounds(kind, addons);
13547
13550
  const keep2 = Math.max(min, next - 1);
13548
- const size = chunkCCSF7RI4_cjs.nextRemovedBlockSize(kind, addons);
13549
- const what = chunkCCSF7RI4_cjs.stepLabel(kind, size);
13550
- const from = chunkCCSF7RI4_cjs.formatPeriodEnd(addons.period_end ?? project.current_period_end) ?? "your next renewal";
13551
+ const size = chunkEG3BB32W_cjs.nextRemovedBlockSize(kind, addons);
13552
+ const what = chunkEG3BB32W_cjs.stepLabel(kind, size);
13553
+ const from = chunkEG3BB32W_cjs.formatPeriodEnd(addons.period_end ?? project.current_period_end) ?? "your next renewal";
13551
13554
  const fromShort = from.replace(/ \d{4}$/, "");
13552
13555
  const allowanceNext = kind === "ai_usage" ? addons.ai_allowance_next_gbp - size : addons.storage_allowance_next_gb - size;
13553
13556
  const allowanceNow = kind === "ai_usage" ? addons.ai_allowance_gbp : addons.storage_allowance_gb;
@@ -13555,7 +13558,7 @@ function ReduceAddonDialog({
13555
13558
  const save = () => update.mutate(
13556
13559
  {
13557
13560
  projectExtId: project.external_id,
13558
- body: chunkCCSF7RI4_cjs.nextPeriodBody(kind, keep2)
13561
+ body: chunkEG3BB32W_cjs.nextPeriodBody(kind, keep2)
13559
13562
  },
13560
13563
  {
13561
13564
  onSuccess: () => {
@@ -13622,7 +13625,7 @@ function ReduceAddonDialog({
13622
13625
  }
13623
13626
  ) });
13624
13627
  }
13625
- var gbp = (pence) => chunkCCSF7RI4_cjs.formatMoney(pence, "gbp");
13628
+ var gbp = (pence) => chunkEG3BB32W_cjs.formatMoney(pence, "gbp");
13626
13629
  var gb2 = (n) => `${Math.round(n * 10) / 10} GB`;
13627
13630
  var pct = (used, limit) => limit > 0 ? Math.min(100, used / limit * 100) : 0;
13628
13631
  function formatShortDate(unix) {
@@ -13634,20 +13637,20 @@ function AutoTopupThreshold({
13634
13637
  addons
13635
13638
  }) {
13636
13639
  const updateSettings = react.useUpdateProjectAddonSettings();
13637
- const min = addons.min_auto_topup_threshold_gbp || chunkCCSF7RI4_cjs.MIN_AUTO_TOPUP_THRESHOLD_GBP;
13640
+ const min = addons.min_auto_topup_threshold_gbp || chunkEG3BB32W_cjs.MIN_AUTO_TOPUP_THRESHOLD_GBP;
13638
13641
  const saved = addons.auto_topup_threshold_gbp;
13639
13642
  const [value, setValue] = react$1.useState(String(saved));
13640
13643
  react$1.useEffect(() => setValue(String(saved)), [saved]);
13641
13644
  const parsed = Number(value);
13642
13645
  const valid = Number.isFinite(parsed) && parsed >= min;
13643
13646
  const dirty = valid && parsed !== saved;
13644
- const off = chunkCCSF7RI4_cjs.isAddonBudgetZero(addons);
13647
+ const off = chunkEG3BB32W_cjs.isAddonBudgetZero(addons);
13645
13648
  const save = () => {
13646
13649
  if (!dirty) return;
13647
13650
  updateSettings.mutate(
13648
13651
  {
13649
13652
  projectExtId: project.external_id,
13650
- body: chunkCCSF7RI4_cjs.addonSettingsBody(addons, { auto_topup_threshold_gbp: parsed })
13653
+ body: chunkEG3BB32W_cjs.addonSettingsBody(addons, { auto_topup_threshold_gbp: parsed })
13651
13654
  },
13652
13655
  {
13653
13656
  onSuccess: () => shell.notify.success(`Auto-add below ${react.formatGbp(parsed)} of AI usage left`),
@@ -13744,10 +13747,10 @@ function ResourceMeter({
13744
13747
  const update = react.useUpdateProjectNextPeriodAddons();
13745
13748
  const isAi = kind === "ai_usage";
13746
13749
  const slug = isAi ? "ai-usage" : "storage";
13747
- const periodEnd = chunkCCSF7RI4_cjs.formatPeriodEnd(addons.period_end ?? project.current_period_end);
13750
+ const periodEnd = chunkEG3BB32W_cjs.formatPeriodEnd(addons.period_end ?? project.current_period_end);
13748
13751
  const from = periodEnd ?? "your next renewal";
13749
13752
  const fromShort = formatShortDate(addons.period_end ?? project.current_period_end) ?? "renewal";
13750
- const { min, current, next } = chunkCCSF7RI4_cjs.reduceBounds(kind, addons);
13753
+ const { min, current, next } = chunkEG3BB32W_cjs.reduceBounds(kind, addons);
13751
13754
  const fmt = (n) => isAi ? react.formatGbp(n) : gb2(n);
13752
13755
  const used = isAi ? addons.ai_used_gbp : addons.storage_used_gb;
13753
13756
  const allowance = isAi ? addons.ai_allowance_gbp : addons.storage_allowance_gb;
@@ -13755,15 +13758,15 @@ function ResourceMeter({
13755
13758
  const plan = isAi ? addons.plan_ai_gbp : addons.plan_storage_gb;
13756
13759
  const topUps = Math.max(0, allowance - plan);
13757
13760
  const blocks = isAi ? addons.ai_blocks : addons.storage_blocks;
13758
- const hasLegacy = chunkCCSF7RI4_cjs.splitBlocks(kind, blocks, addons).legacy > 0;
13759
- const room = chunkCCSF7RI4_cjs.autoRoom(kind, addons);
13760
- const capZero = chunkCCSF7RI4_cjs.isAddonBudgetZero(addons);
13761
- const resets = isAi ? formatShortDate(chunkCCSF7RI4_cjs.aiUsageResetTimestamp(project)) : null;
13762
- const removeSize = chunkCCSF7RI4_cjs.nextRemovedBlockSize(kind, addons);
13761
+ const hasLegacy = chunkEG3BB32W_cjs.splitBlocks(kind, blocks, addons).legacy > 0;
13762
+ const room = chunkEG3BB32W_cjs.autoRoom(kind, addons);
13763
+ const capZero = chunkEG3BB32W_cjs.isAddonBudgetZero(addons);
13764
+ const resets = isAi ? formatShortDate(chunkEG3BB32W_cjs.aiUsageResetTimestamp(project)) : null;
13765
+ const removeSize = chunkEG3BB32W_cjs.nextRemovedBlockSize(kind, addons);
13763
13766
  const undo = () => update.mutate(
13764
13767
  {
13765
13768
  projectExtId: project.external_id,
13766
- body: chunkCCSF7RI4_cjs.nextPeriodBody(kind, current)
13769
+ body: chunkEG3BB32W_cjs.nextPeriodBody(kind, current)
13767
13770
  },
13768
13771
  {
13769
13772
  onSuccess: () => shell.notify.success("Kept"),
@@ -13780,7 +13783,7 @@ function ResourceMeter({
13780
13783
  allowance: { used, plan, topUps, autoRoom: capZero ? 0 : room },
13781
13784
  legend: {
13782
13785
  plan: `Plan ${fmt(plan)}`,
13783
- topUps: topUps > 0 ? `Top-ups ${fmt(topUps)}${hasLegacy ? ` (${chunkCCSF7RI4_cjs.blocksLabel(kind, blocks, addons)})` : ""}` : void 0,
13786
+ topUps: topUps > 0 ? `Top-ups ${fmt(topUps)}${hasLegacy ? ` (${chunkEG3BB32W_cjs.blocksLabel(kind, blocks, addons)})` : ""}` : void 0,
13784
13787
  autoRoom: room != null && room > 0 && !capZero ? `Automatic up to ${fmt(room)}` : void 0
13785
13788
  },
13786
13789
  testId: `usage-meter-${slug}`,
@@ -13809,9 +13812,9 @@ function ResourceMeter({
13809
13812
  {
13810
13813
  icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Plus, { className: "size-3.5" }),
13811
13814
  label: isAi ? react.formatGbp(addons.block_ai_gbp) : `${addons.block_storage_gb} GB`,
13812
- caption: chunkCCSF7RI4_cjs.addStepCaption(kind, addons),
13815
+ caption: chunkEG3BB32W_cjs.addStepCaption(kind, addons),
13813
13816
  onClick: onAdd,
13814
- ariaLabel: `Add ${chunkCCSF7RI4_cjs.stepLabel(kind, isAi ? addons.block_ai_gbp : addons.block_storage_gb)}`,
13817
+ ariaLabel: `Add ${chunkEG3BB32W_cjs.stepLabel(kind, isAi ? addons.block_ai_gbp : addons.block_storage_gb)}`,
13815
13818
  testId: isAi ? "add-ai-block-button" : "add-storage-block-button"
13816
13819
  }
13817
13820
  ),
@@ -13822,7 +13825,7 @@ function ResourceMeter({
13822
13825
  label: isAi ? react.formatGbp(removeSize) : `${removeSize} GB`,
13823
13826
  caption: `from ${fromShort}`,
13824
13827
  onClick: onReduce,
13825
- ariaLabel: `Remove ${chunkCCSF7RI4_cjs.stepLabel(kind, removeSize)} from ${from}`,
13828
+ ariaLabel: `Remove ${chunkEG3BB32W_cjs.stepLabel(kind, removeSize)} from ${from}`,
13826
13829
  testId: `reduce-${slug}-button`
13827
13830
  }
13828
13831
  )
@@ -13861,10 +13864,10 @@ function UsageCapEditor({ project, addons }) {
13861
13864
  updateSettings.mutate(
13862
13865
  {
13863
13866
  projectExtId: project.external_id,
13864
- body: chunkCCSF7RI4_cjs.addonSettingsBody(addons, { spend_cap_pence: nextCap })
13867
+ body: chunkEG3BB32W_cjs.addonSettingsBody(addons, { spend_cap_pence: nextCap })
13865
13868
  },
13866
13869
  {
13867
- onSuccess: () => shell.notify.success(chunkCCSF7RI4_cjs.budgetSavedMessage(nextCap)),
13870
+ onSuccess: () => shell.notify.success(chunkEG3BB32W_cjs.budgetSavedMessage(nextCap)),
13868
13871
  onError: (error) => shell.notify.error(addonErrorMessage(error))
13869
13872
  }
13870
13873
  );
@@ -13875,14 +13878,14 @@ function UsageCapEditor({ project, addons }) {
13875
13878
  /* @__PURE__ */ jsxRuntime.jsx(
13876
13879
  chunkQZTNTP75_cjs.UsageMeter,
13877
13880
  {
13878
- label: chunkCCSF7RI4_cjs.USAGE_CAP_LABEL,
13881
+ label: chunkEG3BB32W_cjs.USAGE_CAP_LABEL,
13879
13882
  hint: spendResets && savedCap !== 0 ? `resets ${spendResets}` : void 0,
13880
13883
  value: readout,
13881
13884
  pct: savedCap != null && savedCap > 0 ? pct(spent, savedCap) : 0,
13882
13885
  testId: "addon-spend"
13883
13886
  }
13884
13887
  ),
13885
- addons.cap_reached && savedCap != null && savedCap > 0 && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-muted-foreground", "data-testid": "addon-cap-reached", children: chunkCCSF7RI4_cjs.CAP_REACHED_MESSAGE }),
13888
+ addons.cap_reached && savedCap != null && savedCap > 0 && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-muted-foreground", "data-testid": "addon-cap-reached", children: chunkEG3BB32W_cjs.CAP_REACHED_MESSAGE }),
13886
13889
  addons.manual_spent_pence > 0 && /* @__PURE__ */ jsxRuntime.jsxs("p", { className: "text-xs text-muted-foreground", "data-testid": "addon-manual-spend", children: [
13887
13890
  "Added by hand this month: ",
13888
13891
  gbp(addons.manual_spent_pence),
@@ -13903,7 +13906,7 @@ function UsageCapEditor({ project, addons }) {
13903
13906
  step: 25,
13904
13907
  className: "h-9 w-28",
13905
13908
  value: noCap ? "" : value,
13906
- placeholder: noCap ? "No limit" : String(chunkCCSF7RI4_cjs.DEFAULT_SPEND_CAP_PENCE / 100),
13909
+ placeholder: noCap ? "No limit" : String(chunkEG3BB32W_cjs.DEFAULT_SPEND_CAP_PENCE / 100),
13907
13910
  disabled: noCap,
13908
13911
  onChange: (e) => setValue(e.target.value),
13909
13912
  onKeyDown: (e) => e.key === "Enter" && save(),
@@ -13929,7 +13932,7 @@ function UsageCapEditor({ project, addons }) {
13929
13932
  checked: noCap,
13930
13933
  onCheckedChange: (checked) => {
13931
13934
  setNoCap(checked);
13932
- if (!checked && value === "") setValue(String(chunkCCSF7RI4_cjs.DEFAULT_SPEND_CAP_PENCE / 100));
13935
+ if (!checked && value === "") setValue(String(chunkEG3BB32W_cjs.DEFAULT_SPEND_CAP_PENCE / 100));
13933
13936
  },
13934
13937
  "data-testid": "no-cap-switch"
13935
13938
  }
@@ -13958,7 +13961,7 @@ function UsageInfo({ addons, isAnnual }) {
13958
13961
  term: "Automatic top-ups",
13959
13962
  text: "One step is added when AI usage drops below your auto top-up level, or when an upload needs more storage."
13960
13963
  },
13961
- { term: "Usage cap", text: chunkCCSF7RI4_cjs.USAGE_CAP_HELP },
13964
+ { term: "Usage cap", text: chunkEG3BB32W_cjs.USAGE_CAP_HELP },
13962
13965
  {
13963
13966
  term: "Reducing",
13964
13967
  text: "\u2212 removes one step from your next renewal. You keep this period's allowance. No refunds."
@@ -13969,7 +13972,7 @@ function UsageInfo({ addons, isAnnual }) {
13969
13972
  text: "Top-ups bought on an earlier price keep their size and price until removed; they are removed last."
13970
13973
  }
13971
13974
  ] : [],
13972
- ...isAnnual ? [{ term: "Annual", text: `${chunkCCSF7RI4_cjs.ANNUAL_PREMIUM_AI_NOTE}.` }] : [],
13975
+ ...isAnnual ? [{ term: "Annual", text: `${chunkEG3BB32W_cjs.ANNUAL_PREMIUM_AI_NOTE}.` }] : [],
13973
13976
  {
13974
13977
  term: "Prices",
13975
13978
  text: "Shown ex VAT. The confirm step shows the total with VAT before you pay."
@@ -14061,7 +14064,7 @@ function formatShortDate2(unix) {
14061
14064
  if (!unix) return null;
14062
14065
  return new Date(unix * 1e3).toLocaleDateString("en-GB", { day: "numeric", month: "short" });
14063
14066
  }
14064
- var gbp2 = (pence) => chunkCCSF7RI4_cjs.formatMoney(pence, "gbp");
14067
+ var gbp2 = (pence) => chunkEG3BB32W_cjs.formatMoney(pence, "gbp");
14065
14068
  var gbNum = (n) => `${Math.round(n * 10) / 10}`;
14066
14069
  var pct2 = (used, limit) => limit > 0 ? Math.min(100, used / limit * 100) : 0;
14067
14070
  function Meter({
@@ -14079,15 +14082,15 @@ function Meter({
14079
14082
  ] });
14080
14083
  }
14081
14084
  function usePlanPrice(project) {
14082
- const { data: products } = react.useProducts({ enabled: chunkCCSF7RI4_cjs.isProProject(project) });
14083
- if (!chunkCCSF7RI4_cjs.isProProject(project)) return null;
14085
+ const { data: products } = react.useProducts({ enabled: chunkEG3BB32W_cjs.isProProject(project) });
14086
+ if (!chunkEG3BB32W_cjs.isProProject(project)) return null;
14084
14087
  const isAnnual = project.plan_interval === "year";
14085
14088
  if (project.amount != null) {
14086
14089
  return { incl: project.amount, ex: project.amount_ex_vat ?? null, isAnnual };
14087
14090
  }
14088
- if ((project.packs ?? chunkCCSF7RI4_cjs.PRO_PACKS) > chunkCCSF7RI4_cjs.PRO_PACKS) return null;
14089
- const prices = chunkCCSF7RI4_cjs.findProPrices(products);
14090
- const pp = chunkCCSF7RI4_cjs.packPrice(isAnnual ? prices.annual : prices.monthly);
14091
+ if ((project.packs ?? chunkEG3BB32W_cjs.PRO_PACKS) > chunkEG3BB32W_cjs.PRO_PACKS) return null;
14092
+ const prices = chunkEG3BB32W_cjs.findProPrices(products);
14093
+ const pp = chunkEG3BB32W_cjs.packPrice(isAnnual ? prices.annual : prices.monthly);
14091
14094
  return pp ? { incl: pp.amount, ex: pp.amount_ex_vat, isAnnual } : null;
14092
14095
  }
14093
14096
  function paidLine(payment, addons) {
@@ -14100,11 +14103,11 @@ function ProjectPlanCard({
14100
14103
  onChangePlan
14101
14104
  }) {
14102
14105
  const { quotas, addons } = project;
14103
- const isPro = chunkCCSF7RI4_cjs.isProProject(project);
14106
+ const isPro = chunkEG3BB32W_cjs.isProProject(project);
14104
14107
  const used = quotas?.ai_usage?.used ?? 0;
14105
14108
  const limit = quotas?.ai_usage?.limit ?? 0;
14106
- const resetDate = formatShortDate2(chunkCCSF7RI4_cjs.aiUsageResetTimestamp(project));
14107
- const periodEnd = chunkCCSF7RI4_cjs.formatPeriodEnd(addons?.period_end ?? project.current_period_end);
14109
+ const resetDate = formatShortDate2(chunkEG3BB32W_cjs.aiUsageResetTimestamp(project));
14110
+ const periodEnd = chunkEG3BB32W_cjs.formatPeriodEnd(addons?.period_end ?? project.current_period_end);
14108
14111
  const when2 = periodEnd ?? "the end of the period";
14109
14112
  const storageUsed = quotas?.storage_gb?.used ?? 0;
14110
14113
  const storageLimit = quotas?.storage_gb?.limit ?? 0;
@@ -14120,7 +14123,7 @@ function ProjectPlanCard({
14120
14123
  project.external_id,
14121
14124
  hasScheduledChange && addons ? { packs: packsNext ?? addons.packs, interval: pending ?? currentInterval } : null
14122
14125
  ).data;
14123
- const tier = isPro ? chunkCCSF7RI4_cjs.proTierName(project) : project.subscription === "dev" ? "Dev" : "Free";
14126
+ const tier = isPro ? chunkEG3BB32W_cjs.proTierName(project) : project.subscription === "dev" ? "Dev" : "Free";
14124
14127
  const pendingPayment = addons?.payment?.status === "pending" ? addons.payment : null;
14125
14128
  const confirmUrl = pendingPayment?.confirm_url ?? addons?.confirm_url;
14126
14129
  const paidPayment = addons?.payment?.status === "paid" ? addons.payment : null;
@@ -14154,7 +14157,7 @@ function ProjectPlanCard({
14154
14157
  isPro && " ",
14155
14158
  isPro && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ml-1 text-sm font-normal text-muted-foreground", children: currentInterval === "year" ? "Annual" : "Monthly" })
14156
14159
  ] }),
14157
- isPro && periodEnd && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-sm text-muted-foreground", "data-testid": "project-plan-renews", children: isCanceling ? `Ends ${periodEnd}` : hasScheduledChange && nextBill ? `Next bill ${chunkCCSF7RI4_cjs.totalWithTaxWord({
14160
+ isPro && periodEnd && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-sm text-muted-foreground", "data-testid": "project-plan-renews", children: isCanceling ? `Ends ${periodEnd}` : hasScheduledChange && nextBill ? `Next bill ${chunkEG3BB32W_cjs.totalWithTaxWord({
14158
14161
  subtotal: nextBill.next_renewal_ex_vat_pence,
14159
14162
  tax: nextBill.next_renewal_tax_pence,
14160
14163
  total: nextBill.next_renewal_pence,
@@ -14163,7 +14166,7 @@ function ProjectPlanCard({
14163
14166
  ] }),
14164
14167
  price && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ml-auto text-right", "data-testid": "project-plan-price", children: [
14165
14168
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-lg font-semibold tabular-nums text-foreground", children: [
14166
- price.ex != null ? chunkCCSF7RI4_cjs.plusVat(price.ex) : gbp2(price.incl),
14169
+ price.ex != null ? chunkEG3BB32W_cjs.plusVat(price.ex) : gbp2(price.incl),
14167
14170
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm font-normal text-muted-foreground", children: price.isAnnual ? "/year" : "/month" })
14168
14171
  ] }),
14169
14172
  price.ex != null && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-xs text-muted-foreground", children: [
@@ -14201,7 +14204,7 @@ function ProjectPlanCard({
14201
14204
  undoTestId: "undo-plan-change-button",
14202
14205
  children: [
14203
14206
  "Changes to ",
14204
- chunkCCSF7RI4_cjs.planNameForPacks(packsNext),
14207
+ chunkEG3BB32W_cjs.planNameForPacks(packsNext),
14205
14208
  " on ",
14206
14209
  when2,
14207
14210
  "."
@@ -14292,7 +14295,7 @@ function ProjectBilling({
14292
14295
  const { addons } = project;
14293
14296
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", "data-testid": "project-billing", children: [
14294
14297
  /* @__PURE__ */ jsxRuntime.jsx(ProjectPlanCard, { project, onChangePlan }),
14295
- addons && chunkCCSF7RI4_cjs.isProProject(project) && /* @__PURE__ */ jsxRuntime.jsx(ProjectUsageCard, { project, addons })
14298
+ addons && chunkEG3BB32W_cjs.isProProject(project) && /* @__PURE__ */ jsxRuntime.jsx(ProjectUsageCard, { project, addons })
14296
14299
  ] });
14297
14300
  }
14298
14301
  var BREAKDOWN_LABELS = {
@@ -14553,13 +14556,13 @@ function ProjectUsageContent({
14553
14556
  );
14554
14557
  }
14555
14558
  function ProjectDetail({ projectExtId, storage }) {
14556
- const { stripeEnabled } = chunkCCSF7RI4_cjs.useBillingSupport();
14559
+ const { stripeEnabled } = chunkEG3BB32W_cjs.useBillingSupport();
14557
14560
  const [planOpen, setPlanOpen] = react$1.useState(false);
14558
14561
  const [renameOpen, setRenameOpen] = react$1.useState(false);
14559
14562
  const [renameValue, setRenameValue] = react$1.useState("");
14560
14563
  const updateProject = react.useUpdateProjectFields();
14561
14564
  const { data: projects, isLoading } = react.useProjects();
14562
- const currentUserExtId = chunkCCSF7RI4_cjs.useSelfExtId();
14565
+ const currentUserExtId = chunkEG3BB32W_cjs.useSelfExtId();
14563
14566
  const project = projects?.find((p) => p.external_id === projectExtId);
14564
14567
  const handleSaveRename = react$1.useCallback(() => {
14565
14568
  const trimmed = renameValue.trim();
@@ -14605,7 +14608,7 @@ function ProjectDetail({ projectExtId, storage }) {
14605
14608
  setRenameValue(project.name);
14606
14609
  setRenameOpen(true);
14607
14610
  },
14608
- badge: stripeEnabled ? /* @__PURE__ */ jsxRuntime.jsx(chunkJBL4PPEE_cjs.PlanBadge, { ...chunkCCSF7RI4_cjs.planBadgeView(project), size: "md" }) : void 0
14611
+ badge: stripeEnabled ? /* @__PURE__ */ jsxRuntime.jsx(chunkJBL4PPEE_cjs.PlanBadge, { ...chunkEG3BB32W_cjs.planBadgeView(project), size: "md" }) : void 0
14609
14612
  }
14610
14613
  ),
14611
14614
  hasBilling && /* @__PURE__ */ jsxRuntime.jsx(ProjectBilling, { project, onChangePlan: () => setPlanOpen(true) }),
@@ -14652,7 +14655,7 @@ function ProjectDetail({ projectExtId, storage }) {
14652
14655
  function useAutoRefreshPendingProjects() {
14653
14656
  const { data: projects } = react.useProjects();
14654
14657
  const refreshProject = react.useRefreshProject();
14655
- const currentUserExtId = chunkCCSF7RI4_cjs.useSelfExtId();
14658
+ const currentUserExtId = chunkEG3BB32W_cjs.useSelfExtId();
14656
14659
  const refreshedRef = react$1.useRef(/* @__PURE__ */ new Set());
14657
14660
  react$1.useEffect(() => {
14658
14661
  if (!projects || !currentUserExtId) return;
@@ -14683,7 +14686,7 @@ function ConnectedQuotaDialog({ info, onClose: close }) {
14683
14686
  if (quotaProjectId) void refetchProjects();
14684
14687
  }, [quotaProjectId, refetchProjects]);
14685
14688
  const project = info?.projectExtId ? projects?.find((p) => p.external_id === info.projectExtId) : void 0;
14686
- const addons = project && chunkCCSF7RI4_cjs.isProProject(project) ? project.addons : null;
14689
+ const addons = project && chunkEG3BB32W_cjs.isProProject(project) ? project.addons : null;
14687
14690
  const handleUpgrade = () => {
14688
14691
  if (info?.projectExtId) {
14689
14692
  requestProjectBillingFocus({ projectExtId: info.projectExtId, openUpgrade: true });
@@ -14719,8 +14722,8 @@ function ConnectedQuotaDialog({ info, onClose: close }) {
14719
14722
  /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, {})
14720
14723
  );
14721
14724
  } else if (addons) {
14722
- const price = `${chunkCCSF7RI4_cjs.formatMoney(addons.ai_block_price_ex_vat_pence, "gbp")} + VAT`;
14723
- const capZero = chunkCCSF7RI4_cjs.isAddonBudgetZero(addons);
14725
+ const price = `${chunkEG3BB32W_cjs.formatMoney(addons.ai_block_price_ex_vat_pence, "gbp")} + VAT`;
14726
+ const capZero = chunkEG3BB32W_cjs.isAddonBudgetZero(addons);
14724
14727
  const addAiUsage = /* @__PURE__ */ jsxRuntime.jsxs(ui.Button, { onClick: handleAddAiUsage, "data-testid": "quota-add-ai-usage-button", children: [
14725
14728
  "Add ",
14726
14729
  react.formatGbp(addons.block_ai_gbp),
@@ -14728,7 +14731,7 @@ function ConnectedQuotaDialog({ info, onClose: close }) {
14728
14731
  price
14729
14732
  ] });
14730
14733
  if (capZero || addons.cap_reached) {
14731
- message = capZero ? chunkCCSF7RI4_cjs.ZERO_BUDGET_MESSAGE : chunkCCSF7RI4_cjs.CAP_REACHED_MESSAGE;
14734
+ message = capZero ? chunkEG3BB32W_cjs.ZERO_BUDGET_MESSAGE : chunkEG3BB32W_cjs.CAP_REACHED_MESSAGE;
14732
14735
  actions = /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
14733
14736
  addAiUsage,
14734
14737
  /* @__PURE__ */ jsxRuntime.jsx(ui.Button, { variant: "outline", onClick: handleRaiseCap, "data-testid": "quota-raise-cap-button", children: capZero ? "Set cap" : "Raise cap" })
@@ -14838,7 +14841,7 @@ function ConnectedWelcomeDialog({
14838
14841
  }) {
14839
14842
  const currentUser = react.useArbiSession().user;
14840
14843
  const { data: projects } = react.useProjects();
14841
- const balance = chunkCCSF7RI4_cjs.useRewardBalance();
14844
+ const balance = chunkEG3BB32W_cjs.useRewardBalance();
14842
14845
  const [showPlans, setShowPlans] = react$1.useState(false);
14843
14846
  const [showInvite, setShowInvite] = react$1.useState(false);
14844
14847
  const [selectedProjectId, setSelectedProjectId] = react$1.useState(null);
@@ -14863,15 +14866,15 @@ function ConnectedWelcomeDialog({
14863
14866
  ConnectedAddContacts,
14864
14867
  {
14865
14868
  onClose: () => handleOpenChange(false),
14866
- rewardAmount: chunkCCSF7RI4_cjs.formatMoney(REFERRAL_OFFER.amount, REFERRAL_OFFER.currency)
14869
+ rewardAmount: chunkEG3BB32W_cjs.formatMoney(REFERRAL_OFFER.amount, REFERRAL_OFFER.currency)
14867
14870
  }
14868
14871
  ) });
14869
14872
  }
14870
14873
  const firstName = currentUser?.given_name;
14871
14874
  const hasBalance = balance !== null;
14872
- const quotaItems = chunkCCSF7RI4_cjs.getQuotaItems(selectedProject.quotas);
14873
- const resetTs = chunkCCSF7RI4_cjs.aiUsageResetTimestamp(selectedProject);
14874
- const aiUsageHint = resetTs ? `resets ${chunkCCSF7RI4_cjs.formatResetDate(resetTs)}` : void 0;
14875
+ const quotaItems = chunkEG3BB32W_cjs.getQuotaItems(selectedProject.quotas);
14876
+ const resetTs = chunkEG3BB32W_cjs.aiUsageResetTimestamp(selectedProject);
14877
+ const aiUsageHint = resetTs ? `resets ${chunkEG3BB32W_cjs.formatResetDate(resetTs)}` : void 0;
14875
14878
  return /* @__PURE__ */ jsxRuntime.jsx(
14876
14879
  chunkJBL4PPEE_cjs.WelcomeDialog,
14877
14880
  {
@@ -14888,7 +14891,7 @@ function ConnectedWelcomeDialog({
14888
14891
  onChange: setSelectedProjectId
14889
14892
  }
14890
14893
  ),
14891
- planBadge: /* @__PURE__ */ jsxRuntime.jsx(chunkJBL4PPEE_cjs.PlanBadge, { ...chunkCCSF7RI4_cjs.planBadgeView(selectedProject), size: "md" }),
14894
+ planBadge: /* @__PURE__ */ jsxRuntime.jsx(chunkJBL4PPEE_cjs.PlanBadge, { ...chunkEG3BB32W_cjs.planBadgeView(selectedProject), size: "md" }),
14892
14895
  quotas: quotaItems.map((q) => ({
14893
14896
  key: q.key,
14894
14897
  icon: q.icon,
@@ -14898,9 +14901,9 @@ function ConnectedWelcomeDialog({
14898
14901
  hint: q.key === "ai-usage" ? aiUsageHint : void 0
14899
14902
  })),
14900
14903
  onSeePlans: () => setShowPlans(true),
14901
- referralOfferLabel: `${chunkCCSF7RI4_cjs.formatMoney(REFERRAL_OFFER.amount, REFERRAL_OFFER.currency)} off your plan`,
14904
+ referralOfferLabel: `${chunkEG3BB32W_cjs.formatMoney(REFERRAL_OFFER.amount, REFERRAL_OFFER.currency)} off your plan`,
14902
14905
  onInvite: () => setShowInvite(true),
14903
- rewardBalanceLabel: hasBalance ? chunkCCSF7RI4_cjs.formatMoney(balance.amount, balance.currency) : void 0
14906
+ rewardBalanceLabel: hasBalance ? chunkEG3BB32W_cjs.formatMoney(balance.amount, balance.currency) : void 0
14904
14907
  }
14905
14908
  );
14906
14909
  }
@@ -14937,7 +14940,7 @@ function WorkspaceCardsView({
14937
14940
  createDisabledReason,
14938
14941
  workspaceState
14939
14942
  }) {
14940
- const { stripeEnabled } = chunkCCSF7RI4_cjs.useBillingSupport();
14943
+ const { stripeEnabled } = chunkEG3BB32W_cjs.useBillingSupport();
14941
14944
  const { hrefFor } = chunkT6GRWWRY_cjs.useBlocksEnvironment();
14942
14945
  const workspaceLabel = ui.getEntityLabel("WORKSPACE");
14943
14946
  const projectLabel = ui.getEntityLabel("PROJECT").toLowerCase();
@@ -14957,7 +14960,7 @@ function WorkspaceCardsView({
14957
14960
  }
14958
14961
  return /* @__PURE__ */ jsxRuntime.jsx(chunk2GSZG6KA_cjs.WorkspaceList, { testId: "workspace-cards-list", children: groups.map((group) => {
14959
14962
  const project = projects.find((p) => p.external_id === group.projectExtId);
14960
- const { breakdown, readout } = chunkCCSF7RI4_cjs.projectGroupBilling(project, {
14963
+ const { breakdown, readout } = chunkEG3BB32W_cjs.projectGroupBilling(project, {
14961
14964
  isOwned: group.isOwned,
14962
14965
  stripeEnabled
14963
14966
  });
@@ -15186,7 +15189,7 @@ function useConnectedWorkspaceList({
15186
15189
  };
15187
15190
  }
15188
15191
  var WorkspaceTableView = react$1.lazy(
15189
- () => import('../WorkspaceTableView-DHMCJRC6.cjs').then((m) => ({ default: m.WorkspaceTableView }))
15192
+ () => import('../WorkspaceTableView-GKMVTECZ.cjs').then((m) => ({ default: m.WorkspaceTableView }))
15190
15193
  );
15191
15194
  var WORKSPACES_TAB_ID = "workspaces";
15192
15195
  var defaultRenderMember2 = (user, size) => {
@@ -15239,7 +15242,7 @@ function ConnectedWorkspaceList({
15239
15242
  else void openWorkspace(workspace.external_id, { name: workspace.name });
15240
15243
  };
15241
15244
  const createDisabledReason = list.canCreateProjects === false ? react.PROJECT_CREATION_DENIED_REASON : void 0;
15242
- if (list.isLoading) return /* @__PURE__ */ jsxRuntime.jsx(chunk4RJPTXUQ_cjs.LoadingIndicator, { message: "Loading workspaces..." });
15245
+ if (list.isLoading) return /* @__PURE__ */ jsxRuntime.jsx(chunk7MOQO6NO_cjs.LoadingIndicator, { message: "Loading workspaces..." });
15243
15246
  if (list.error) {
15244
15247
  return /* @__PURE__ */ jsxRuntime.jsx(
15245
15248
  chunkOM5IVNEW_cjs.HomeLoadError,
@@ -15312,7 +15315,7 @@ function ConnectedWorkspaceList({
15312
15315
  workspaceState
15313
15316
  }
15314
15317
  ) })
15315
- ) : /* @__PURE__ */ jsxRuntime.jsx(react$1.Suspense, { fallback: /* @__PURE__ */ jsxRuntime.jsx(chunk4RJPTXUQ_cjs.LoadingIndicator, { message: "Loading grid..." }), children: /* @__PURE__ */ jsxRuntime.jsx(chunkOM5IVNEW_cjs.HomeCenteredColumn, { children: /* @__PURE__ */ jsxRuntime.jsx(
15318
+ ) : /* @__PURE__ */ jsxRuntime.jsx(react$1.Suspense, { fallback: /* @__PURE__ */ jsxRuntime.jsx(chunk7MOQO6NO_cjs.LoadingIndicator, { message: "Loading grid..." }), children: /* @__PURE__ */ jsxRuntime.jsx(chunkOM5IVNEW_cjs.HomeCenteredColumn, { children: /* @__PURE__ */ jsxRuntime.jsx(
15316
15319
  WorkspaceTableView,
15317
15320
  {
15318
15321
  list,
@@ -15385,7 +15388,7 @@ function ProjectsListPage({
15385
15388
  };
15386
15389
  const { openProject } = chunkT6GRWWRY_cjs.useBlocksEnvironment();
15387
15390
  const [search, setSearch] = react$1.useState("");
15388
- const { projects, isLoading } = chunkX3JJTHQ4_cjs.useProjectSummaries();
15391
+ const { projects, isLoading } = chunkJSHBC47B_cjs.useProjectSummaries();
15389
15392
  const rows = react$1.useMemo(() => {
15390
15393
  const q = search.trim().toLowerCase();
15391
15394
  if (!q) return projects;
@@ -15456,7 +15459,7 @@ function ProjectsListPage({
15456
15459
  }
15457
15460
  ),
15458
15461
  /* @__PURE__ */ jsxRuntime.jsx(
15459
- chunk4RJPTXUQ_cjs.Toolbar,
15462
+ chunk7MOQO6NO_cjs.Toolbar,
15460
15463
  {
15461
15464
  search,
15462
15465
  onSearch: setSearch,
@@ -15518,7 +15521,7 @@ function ProjectsPanel({
15518
15521
  const { data: projects } = react.useProjects();
15519
15522
  const canCreateProjects = react.useCanCreateProjects();
15520
15523
  const { userId } = chunkKGAYUFXD_cjs.useConnectedWorkspace();
15521
- const { stripeEnabled } = chunkCCSF7RI4_cjs.useBillingSupport();
15524
+ const { stripeEnabled } = chunkEG3BB32W_cjs.useBillingSupport();
15522
15525
  const billingPortal = useOpenBillingPortal();
15523
15526
  const [newProjectOpen, setNewProjectOpen] = react$1.useState(false);
15524
15527
  useAutoRefreshPendingProjects();
@@ -15644,7 +15647,7 @@ function ProjectDetailsForm({
15644
15647
  const labels = { ...DEFAULT_PROJECT_DETAILS_LABELS, ...given };
15645
15648
  const { notify: notify16 } = chunkT6GRWWRY_cjs.useBlocksEnvironment();
15646
15649
  const update = react.useUpdateProjectFields();
15647
- const workspace = chunkX3JJTHQ4_cjs.primaryProjectWorkspace(project);
15650
+ const workspace = chunkJSHBC47B_cjs.primaryProjectWorkspace(project);
15648
15651
  const { data: members = [] } = react.useWorkspaceUsers(workspace?.id);
15649
15652
  const people = members.filter((m) => !m.user.external_id.startsWith("agt-"));
15650
15653
  const currency = project.budget?.currency ?? "GBP";
@@ -15769,7 +15772,7 @@ var COMPACT_BELOW = 132;
15769
15772
  var NO_DOCUMENTS = [];
15770
15773
  function useFilesWorkspace() {
15771
15774
  const { workspaceId, userId, live } = chunkKGAYUFXD_cjs.useConnectedWorkspace();
15772
- const { members, role } = chunkUDMII47W_cjs.useConnectedWorkspaceRole();
15775
+ const { members, role } = chunkWBLCPCWR_cjs.useConnectedWorkspaceRole();
15773
15776
  const { data: workspaces } = react.useWorkspaces({ enabled: live });
15774
15777
  const workspaceName = workspaces?.find((w) => w.external_id === workspaceId)?.name;
15775
15778
  return {
@@ -16703,11 +16706,11 @@ function ConnectedProjectPage({
16703
16706
  figures: { ...DEFAULT_PROJECT_PAGE_LABELS.figures, ...given?.figures },
16704
16707
  threads: { ...DEFAULT_PROJECT_PAGE_LABELS.threads, ...given?.threads }
16705
16708
  };
16706
- const { project, usage, isLoading } = chunkX3JJTHQ4_cjs.useProjectSummary(projectId);
16709
+ const { project, usage, isLoading } = chunkJSHBC47B_cjs.useProjectSummary(projectId);
16707
16710
  const { workspaceId } = chunkKGAYUFXD_cjs.useConnectedWorkspace();
16708
16711
  const { notify: notify16 } = chunkT6GRWWRY_cjs.useBlocksEnvironment();
16709
- const selectWorkspace = chunkLBKTTQUR_cjs.useSelectWorkspace();
16710
- const workspace = project ? chunkX3JJTHQ4_cjs.primaryProjectWorkspace(project) : void 0;
16712
+ const selectWorkspace = chunkCMYJEIZB_cjs.useSelectWorkspace();
16713
+ const workspace = project ? chunkJSHBC47B_cjs.primaryProjectWorkspace(project) : void 0;
16711
16714
  const open = !!workspace && workspace.id === workspaceId;
16712
16715
  react$1.useEffect(() => {
16713
16716
  if (!workspace || workspace.id === workspaceId) return;
@@ -17602,7 +17605,7 @@ function recentConversations(conversations) {
17602
17605
  return [...conversations].sort((a, b) => time(b.updated_at) - time(a.updated_at)).slice(0, RECENT_ROWS).map((c) => ({
17603
17606
  id: c.external_id,
17604
17607
  title: c.title?.trim() || "Untitled thread",
17605
- subtitle: c.status ? [chunkHVOPUYAG_cjs.STATUS_LABELS[chunkHVOPUYAG_cjs.asTaskStatus(c.status)], c.due_at ? `due ${shortDate(c.due_at)}` : null].filter(Boolean).join(" \xB7 ") : `${c.message_count} ${c.message_count === 1 ? "message" : "messages"}`,
17608
+ subtitle: c.status ? [chunkCJF7B5A7_cjs.STATUS_LABELS[chunkCJF7B5A7_cjs.asTaskStatus(c.status)], c.due_at ? `due ${shortDate(c.due_at)}` : null].filter(Boolean).join(" \xB7 ") : `${c.message_count} ${c.message_count === 1 ? "message" : "messages"}`,
17606
17609
  time: timeAndDate(c.updated_at)
17607
17610
  }));
17608
17611
  }
@@ -21360,7 +21363,7 @@ function EventEditorDialog({
21360
21363
  const { notify: notify16, runtimeConfig } = chunkT6GRWWRY_cjs.useBlocksEnvironment();
21361
21364
  const attachmentDocuments = documents.map((document2) => ({
21362
21365
  doc_id: document2.external_id,
21363
- title: chunkUDMII47W_cjs.toWorkflowFieldDocument(document2).title,
21366
+ title: chunkWBLCPCWR_cjs.toWorkflowFieldDocument(document2).title,
21364
21367
  url: chunk725OETK3_cjs.buildDeepLinkUrl(
21365
21368
  { workspaceId: workspaceId ?? void 0, documentId: document2.external_id },
21366
21369
  runtimeConfig.deploymentDomain
@@ -26324,7 +26327,7 @@ function useBatchCompleteToasts() {
26324
26327
  }
26325
26328
  }, AI_FIELDS_NOTICE_WINDOW_MS);
26326
26329
  } else if (message.batch_type === "entity_extract") {
26327
- say(`${chunk4RJPTXUQ_cjs.entitiesPhrase()} extracted from ${chunk4RJPTXUQ_cjs.documentCount(docIds.length)}`, "success", {
26330
+ say(`${chunk7MOQO6NO_cjs.entitiesPhrase()} extracted from ${chunk7MOQO6NO_cjs.documentCount(docIds.length)}`, "success", {
26328
26331
  ...openTags && { action: { label: "View", onClick: openTags } }
26329
26332
  });
26330
26333
  } else if (message.batch_type === "upload") {
@@ -27817,15 +27820,15 @@ var TABLET_TABLE_BELOW = 860;
27817
27820
  var TABLET_VIEWPORT_BELOW = 1100;
27818
27821
  var NO_CONVERSATION_DOCUMENTS = [];
27819
27822
  var DocumentReviewCard = react$1.lazy(
27820
- () => import('../DocumentReviewCard-VFNMJSK7.cjs').then((module) => ({ default: module.DocumentReviewCard }))
27823
+ () => import('../DocumentReviewCard-BQ6ZD5MD.cjs').then((module) => ({ default: module.DocumentReviewCard }))
27821
27824
  );
27822
27825
  var ConnectedDocumentViewer = react$1.lazy(
27823
- () => import('../ConnectedDocumentViewer-FGQ27H4B.cjs').then((module) => ({
27826
+ () => import('../ConnectedDocumentViewer-YSZWOVGN.cjs').then((module) => ({
27824
27827
  default: module.ConnectedDocumentViewer
27825
27828
  }))
27826
27829
  );
27827
27830
  function defaultReviewCard(props) {
27828
- return /* @__PURE__ */ jsxRuntime.jsx(react$1.Suspense, { fallback: /* @__PURE__ */ jsxRuntime.jsx(chunk4RJPTXUQ_cjs.LoadingIndicator, { message: "Loading document viewer..." }), children: /* @__PURE__ */ jsxRuntime.jsx(DocumentReviewCard, { ...props }, `navigator-${props.currentDocument.external_id}`) });
27831
+ return /* @__PURE__ */ jsxRuntime.jsx(react$1.Suspense, { fallback: /* @__PURE__ */ jsxRuntime.jsx(chunk7MOQO6NO_cjs.LoadingIndicator, { message: "Loading document viewer..." }), children: /* @__PURE__ */ jsxRuntime.jsx(DocumentReviewCard, { ...props }, `navigator-${props.currentDocument.external_id}`) });
27829
27832
  }
27830
27833
  function ConnectedFilesPage({
27831
27834
  isModal = false,
@@ -27871,7 +27874,7 @@ function ConnectedFilesPage({
27871
27874
  const deleteDocuments = react.useDeleteDocuments();
27872
27875
  const isDocumentsPending = isLoading && documents.length === 0;
27873
27876
  const { workspaceId, userId, live } = chunkKGAYUFXD_cjs.useConnectedWorkspace();
27874
- const { role, members } = chunkUDMII47W_cjs.useConnectedWorkspaceRole();
27877
+ const { role, members } = chunkWBLCPCWR_cjs.useConnectedWorkspaceRole();
27875
27878
  const { data: workspaces } = react.useWorkspaces({ enabled: live });
27876
27879
  const workspaceName = workspaces?.find((w) => w.external_id === workspaceId)?.name;
27877
27880
  const isMember = role != null;
@@ -28361,7 +28364,7 @@ function ConnectedFilesPage({
28361
28364
  viewMode === "grid" ? (
28362
28365
  // ‹ n / N › over the table's displayed rows; a step opens the document.
28363
28366
  /* @__PURE__ */ jsxRuntime.jsx(
28364
- chunk4RJPTXUQ_cjs.GridRowNavigator,
28367
+ chunk7MOQO6NO_cjs.GridRowNavigator,
28365
28368
  {
28366
28369
  gridApi,
28367
28370
  selectedId: viewingDocumentId ?? selectedDocumentIds[0] ?? null,
@@ -29505,7 +29508,7 @@ function ProcessingSection({
29505
29508
  onDelete
29506
29509
  }) {
29507
29510
  return /* @__PURE__ */ jsxRuntime.jsx(chunkVGNCU5JJ_cjs.TaskSection, { title, count: count2, status, tooltip: SECTION_TOOLTIPS[status], children: /* @__PURE__ */ jsxRuntime.jsx(
29508
- chunkHVOPUYAG_cjs.UploadTaskList,
29511
+ chunkCJF7B5A7_cjs.UploadTaskList,
29509
29512
  {
29510
29513
  tasks,
29511
29514
  title: "",
@@ -31145,7 +31148,7 @@ function ConnectedRecipientSelector({
31145
31148
  setSelectorOpen(false);
31146
31149
  setSearchValue("");
31147
31150
  };
31148
- const identity = (user) => /* @__PURE__ */ jsxRuntime.jsx(chunk3X37I6QE_cjs.ConnectedUserEntity, { user, size: "xs", variant: "pill", showPresence: true, interactive: false });
31151
+ const identity = (user) => /* @__PURE__ */ jsxRuntime.jsx(chunkDJE2E7YH_cjs.ConnectedUserEntity, { user, size: "xs", variant: "pill", showPresence: true, interactive: false });
31149
31152
  const selected = selectedRecipients.flatMap((id) => {
31150
31153
  const user = getUserById(id);
31151
31154
  if (!user) return [];
@@ -31389,7 +31392,7 @@ function renderMessengerUser(user, variant) {
31389
31392
  switch (variant) {
31390
31393
  case "avatar":
31391
31394
  return /* @__PURE__ */ jsxRuntime.jsx(
31392
- chunk3X37I6QE_cjs.ConnectedUserEntity,
31395
+ chunkDJE2E7YH_cjs.ConnectedUserEntity,
31393
31396
  {
31394
31397
  user,
31395
31398
  size: "lg",
@@ -31400,7 +31403,7 @@ function renderMessengerUser(user, variant) {
31400
31403
  );
31401
31404
  case "small-avatar":
31402
31405
  return /* @__PURE__ */ jsxRuntime.jsx(
31403
- chunk3X37I6QE_cjs.ConnectedUserEntity,
31406
+ chunkDJE2E7YH_cjs.ConnectedUserEntity,
31404
31407
  {
31405
31408
  user,
31406
31409
  size: "sm",
@@ -31410,9 +31413,9 @@ function renderMessengerUser(user, variant) {
31410
31413
  }
31411
31414
  );
31412
31415
  case "author":
31413
- return /* @__PURE__ */ jsxRuntime.jsx(chunk3X37I6QE_cjs.ConnectedUserEntity, { user, size: "sm", variant: "pill" });
31416
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkDJE2E7YH_cjs.ConnectedUserEntity, { user, size: "sm", variant: "pill" });
31414
31417
  case "member":
31415
- return /* @__PURE__ */ jsxRuntime.jsx(chunk3X37I6QE_cjs.ConnectedUserEntity, { user, size: "sm", variant: "pill", interactive: false });
31418
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkDJE2E7YH_cjs.ConnectedUserEntity, { user, size: "sm", variant: "pill", interactive: false });
31416
31419
  }
31417
31420
  }
31418
31421
  var renderMessageBody = (text2, context) => /* @__PURE__ */ jsxRuntime.jsx(ConnectedChatMessageBody, { text: text2, workspaceId: context.workspaceId });
@@ -32251,7 +32254,7 @@ function ConnectedConfigForm({ availableModels, ...rest }) {
32251
32254
  ({ value, onChange }) => /* @__PURE__ */ jsxRuntime.jsx(ConnectedModelSelector, { value, onValueChange: onChange, className: "w-full" }),
32252
32255
  []
32253
32256
  );
32254
- return /* @__PURE__ */ jsxRuntime.jsx(chunkHVOPUYAG_cjs.ConfigForm, { ...rest, renderModelSelect: hasModels ? renderModelSelect : void 0 });
32257
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkCJF7B5A7_cjs.ConfigForm, { ...rest, renderModelSelect: hasModels ? renderModelSelect : void 0 });
32255
32258
  }
32256
32259
  function ConnectedAgentConfigForm({ agentExtId, agentName, onSaved }) {
32257
32260
  const { notify: notify16 } = chunkT6GRWWRY_cjs.useBlocksEnvironment();
@@ -32368,7 +32371,7 @@ function ConnectedAuthorizeAgent({ onClose, editAgent }) {
32368
32371
  }, [name, selectedWorkspaces, role, createAgent, addWorkspaceUsers, arbi, notify16]);
32369
32372
  if (editAgent) {
32370
32373
  return /* @__PURE__ */ jsxRuntime.jsx(
32371
- chunkHVOPUYAG_cjs.AgentEditView,
32374
+ chunkCJF7B5A7_cjs.AgentEditView,
32372
32375
  {
32373
32376
  agentName: editAgent.name,
32374
32377
  config: /* @__PURE__ */ jsxRuntime.jsx(
@@ -32384,7 +32387,7 @@ function ConnectedAuthorizeAgent({ onClose, editAgent }) {
32384
32387
  }
32385
32388
  if (view === "main") {
32386
32389
  return /* @__PURE__ */ jsxRuntime.jsx(
32387
- chunkHVOPUYAG_cjs.AgentMainView,
32390
+ chunkCJF7B5A7_cjs.AgentMainView,
32388
32391
  {
32389
32392
  onConnectExternal: () => setView("connect"),
32390
32393
  config: mainAgent ? /* @__PURE__ */ jsxRuntime.jsx(
@@ -32400,11 +32403,11 @@ function ConnectedAuthorizeAgent({ onClose, editAgent }) {
32400
32403
  }
32401
32404
  if (result) {
32402
32405
  return /* @__PURE__ */ jsxRuntime.jsx(
32403
- chunkHVOPUYAG_cjs.AgentCreatedView,
32406
+ chunkCJF7B5A7_cjs.AgentCreatedView,
32404
32407
  {
32405
32408
  email: result.email,
32406
32409
  signingKey: result.signingKey,
32407
- instructions: /* @__PURE__ */ jsxRuntime.jsx(chunkHVOPUYAG_cjs.AgentConnectInstructions, { email: result.email, signingKey: result.signingKey }),
32410
+ instructions: /* @__PURE__ */ jsxRuntime.jsx(chunkCJF7B5A7_cjs.AgentConnectInstructions, { email: result.email, signingKey: result.signingKey }),
32408
32411
  config: /* @__PURE__ */ jsxRuntime.jsx(ConnectedAgentConfigForm, { agentExtId: result.extId, agentName: result.name }),
32409
32412
  isConfigOpen: configOpen,
32410
32413
  onToggleConfig: () => setConfigOpen((v) => !v),
@@ -32413,7 +32416,7 @@ function ConnectedAuthorizeAgent({ onClose, editAgent }) {
32413
32416
  );
32414
32417
  }
32415
32418
  return /* @__PURE__ */ jsxRuntime.jsx(
32416
- chunkHVOPUYAG_cjs.AgentCreateView,
32419
+ chunkCJF7B5A7_cjs.AgentCreateView,
32417
32420
  {
32418
32421
  name,
32419
32422
  onNameChange: setName,
@@ -33114,7 +33117,7 @@ function ConnectedAccountCluster({
33114
33117
  if (!open) return null;
33115
33118
  const current = activePage === page;
33116
33119
  return /* @__PURE__ */ jsxRuntime.jsx(
33117
- chunkODQK3LX5_cjs.SidebarBadgeRow,
33120
+ chunkLFS6UWSJ_cjs.SidebarBadgeRow,
33118
33121
  {
33119
33122
  icon: icon2,
33120
33123
  label,
@@ -33131,7 +33134,7 @@ function ConnectedAccountCluster({
33131
33134
  );
33132
33135
  };
33133
33136
  const bell = layout === "drawer" ? /* @__PURE__ */ jsxRuntime.jsx(
33134
- chunkODQK3LX5_cjs.SidebarBadgeRow,
33137
+ chunkLFS6UWSJ_cjs.SidebarBadgeRow,
33135
33138
  {
33136
33139
  icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Bell, { className: "size-5" }),
33137
33140
  label: "Notifications",
@@ -33165,7 +33168,7 @@ function ConnectedAccountCluster({
33165
33168
  side,
33166
33169
  align,
33167
33170
  renderTrigger: layout === "bar" ? void 0 : ({ unread, ariaLabel, testId }) => /* @__PURE__ */ jsxRuntime.jsx(
33168
- chunkODQK3LX5_cjs.SidebarBadgeRow,
33171
+ chunkLFS6UWSJ_cjs.SidebarBadgeRow,
33169
33172
  {
33170
33173
  icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Bell, { className: "size-5" }),
33171
33174
  label: "Notifications",
@@ -33178,7 +33181,7 @@ function ConnectedAccountCluster({
33178
33181
  }
33179
33182
  );
33180
33183
  const contacts = showContacts && openContacts ? /* @__PURE__ */ jsxRuntime.jsx(
33181
- chunkODQK3LX5_cjs.SidebarBadgeRow,
33184
+ chunkLFS6UWSJ_cjs.SidebarBadgeRow,
33182
33185
  {
33183
33186
  icon: /* @__PURE__ */ jsxRuntime.jsx(ContactIcon, { className: "size-5" }),
33184
33187
  label: "Contacts",
@@ -33215,7 +33218,7 @@ function ConnectedAccountCluster({
33215
33218
  layout
33216
33219
  );
33217
33220
  return /* @__PURE__ */ jsxRuntime.jsx(
33218
- chunkODQK3LX5_cjs.ActionCluster,
33221
+ chunkZZHMJXM5_cjs.ActionCluster,
33219
33222
  {
33220
33223
  layout,
33221
33224
  status: layout === "bar" ? status : null,
@@ -33230,7 +33233,7 @@ function ConnectedAccountCluster({
33230
33233
  }
33231
33234
  );
33232
33235
  }
33233
- var gbp3 = (pence) => chunkCCSF7RI4_cjs.formatMoney(pence, "gbp");
33236
+ var gbp3 = (pence) => chunkEG3BB32W_cjs.formatMoney(pence, "gbp");
33234
33237
  function addonArrivalMessage(addons, added) {
33235
33238
  const parts = [];
33236
33239
  if (added.ai > 0) parts.push(`${react.formatGbp(added.ai * addons.block_ai_gbp)} of AI usage`);
@@ -33512,7 +33515,7 @@ function usePrefetchChunks(loaders) {
33512
33515
  if (cancelled) return;
33513
33516
  const load = queue.shift();
33514
33517
  if (!load) return;
33515
- void chunkODQK3LX5_cjs.prefetchChunk(load).finally(() => {
33518
+ void chunkZZHMJXM5_cjs.prefetchChunk(load).finally(() => {
33516
33519
  handle = idle(next);
33517
33520
  });
33518
33521
  };
@@ -33577,7 +33580,7 @@ function ConnectedAppRuntime({
33577
33580
  prefetch
33578
33581
  }) {
33579
33582
  const on = (effect) => effects[effect] !== false;
33580
- const { stripeEnabled } = chunkCCSF7RI4_cjs.useBillingSupport();
33583
+ const { stripeEnabled } = chunkEG3BB32W_cjs.useBillingSupport();
33581
33584
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
33582
33585
  on("firstLoginRouting") && /* @__PURE__ */ jsxRuntime.jsx(FirstLoginRouting, { onResolve: onFirstLogin }),
33583
33586
  on("releaseStaleModals") && /* @__PURE__ */ jsxRuntime.jsx(ReleaseStaleModals, {}),
@@ -34150,7 +34153,7 @@ function ConnectedReportProblem({
34150
34153
  const bar = layout === "bar";
34151
34154
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
34152
34155
  /* @__PURE__ */ jsxRuntime.jsx(
34153
- chunkODQK3LX5_cjs.SidebarBadgeRow,
34156
+ chunkLFS6UWSJ_cjs.SidebarBadgeRow,
34154
34157
  {
34155
34158
  icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Bug, { className: "size-5" }),
34156
34159
  label: "Report a problem",
@@ -34172,14 +34175,14 @@ var referencesOf = (inputs) => {
34172
34175
  return value?.documents ?? [];
34173
34176
  };
34174
34177
  var PROMPT_BINDINGS = {
34175
- [chunkHVOPUYAG_cjs.GENERATE_IMAGE_ID]: {
34178
+ [chunkCJF7B5A7_cjs.GENERATE_IMAGE_ID]: {
34176
34179
  attachScope: false,
34177
34180
  tools: (inputs) => {
34178
34181
  const aspectRatio = typeof inputs.aspect_ratio === "string" ? inputs.aspect_ratio : "";
34179
34182
  return {
34180
34183
  retrieval_chunk: browser.buildRetrievalChunkTool([]),
34181
34184
  retrieval_full_context: browser.buildRetrievalFullContextTool(referencesOf(inputs)),
34182
- ...aspectRatio && aspectRatio !== chunkHVOPUYAG_cjs.IMAGE_ASPECT_AUTO ? {
34185
+ ...aspectRatio && aspectRatio !== chunkCJF7B5A7_cjs.IMAGE_ASPECT_AUTO ? {
34183
34186
  image_generation: {
34184
34187
  name: "image_generation",
34185
34188
  description: "image generation",
@@ -34200,19 +34203,19 @@ var text = (inputs, name) => {
34200
34203
  function useLaunchWorkflow({ landing: surfaceLanding } = {}) {
34201
34204
  const { data: documents = [] } = react.useDocuments();
34202
34205
  const { data: workspaceTags = [] } = react.useTags();
34203
- const tags = react$1.useMemo(() => chunkY6ZNWC7E_cjs.documentScopeLabels(workspaceTags), [workspaceTags]);
34206
+ const tags = react$1.useMemo(() => chunkK26RLK2Y_cjs.documentScopeLabels(workspaceTags), [workspaceTags]);
34204
34207
  const createTag = react.useCreateTag();
34205
34208
  const updateTag = react.useUpdateTag();
34206
34209
  const generate = react.useGenerateDocTags();
34207
- const { create: createTask } = chunkX3JJTHQ4_cjs.useWorkflowTasks();
34210
+ const { create: createTask } = chunkJSHBC47B_cjs.useWorkflowTasks();
34208
34211
  const applyModel = react.useApplyChatModel();
34209
34212
  const session = react.useArbiSessionStore();
34210
34213
  const { notify: notify16, openFiles, openNewConversation } = chunkT6GRWWRY_cjs.useBlocksEnvironment();
34211
34214
  const annotate = react$1.useCallback(
34212
34215
  async ({ inputs, scope }) => {
34213
34216
  const description = text(inputs, "description");
34214
- const name = text(inputs, "name") || chunkHVOPUYAG_cjs.deriveAnnotationName(description);
34215
- const matching = chunkY6ZNWC7E_cjs.matchWorkflowScope(documents, scope);
34217
+ const name = text(inputs, "name") || chunkCJF7B5A7_cjs.deriveAnnotationName(description);
34218
+ const matching = chunkK26RLK2Y_cjs.matchWorkflowScope(documents, scope);
34216
34219
  if (!name || !description || matching.length === 0) return;
34217
34220
  try {
34218
34221
  const existing = tags.find((t) => t.name.toLowerCase() === name.toLowerCase());
@@ -34255,9 +34258,9 @@ function useLaunchWorkflow({ landing: surfaceLanding } = {}) {
34255
34258
  async (launch) => {
34256
34259
  const { workflow, inputs, scope, agentId } = launch;
34257
34260
  if (workflow.run.kind === "operation") {
34258
- if (workflow.id === chunkHVOPUYAG_cjs.ANNOTATE_ID) {
34261
+ if (workflow.id === chunkCJF7B5A7_cjs.ANNOTATE_ID) {
34259
34262
  await annotate(launch);
34260
- chunkHVOPUYAG_cjs.recordWorkflowUse(workflow.id);
34263
+ chunkCJF7B5A7_cjs.recordWorkflowUse(workflow.id);
34261
34264
  return;
34262
34265
  }
34263
34266
  throw new Error(`No host handler for workflow "${workflow.id}"`);
@@ -34267,7 +34270,7 @@ function useLaunchWorkflow({ landing: surfaceLanding } = {}) {
34267
34270
  );
34268
34271
  const prompt = chunk555BS22J_cjs.composeWorkflowPrompt(workflow, inputs, { documentTitles });
34269
34272
  if (!prompt) return;
34270
- chunkHVOPUYAG_cjs.recordWorkflowUse(workflow.id);
34273
+ chunkCJF7B5A7_cjs.recordWorkflowUse(workflow.id);
34271
34274
  if (agentId) {
34272
34275
  try {
34273
34276
  const created = await createTask({
@@ -34312,7 +34315,7 @@ function useLaunchWorkflow({ landing: surfaceLanding } = {}) {
34312
34315
  const binding = PROMPT_BINDINGS[workflow.id];
34313
34316
  if (!inPlace) openNewConversation();
34314
34317
  if (binding?.attachScope !== false && !chunk555BS22J_cjs.isEmptyWorkflowScope(scope)) {
34315
- const ids = chunkY6ZNWC7E_cjs.matchWorkflowScope(documents, scope).map((d) => d.external_id);
34318
+ const ids = chunkK26RLK2Y_cjs.matchWorkflowScope(documents, scope).map((d) => d.external_id);
34316
34319
  if (ids.length > 0) {
34317
34320
  session.setConversationDocuments(
34318
34321
  inPlace ? session.getState().conversationId ?? "new" : "new",
@@ -34347,30 +34350,30 @@ function ConnectedWorkflowStart({
34347
34350
  const onLaunch = useLaunchWorkflow({ landing });
34348
34351
  const { openUpload } = chunkT6GRWWRY_cjs.useBlocksEnvironment();
34349
34352
  const { data: workspaceTags = [] } = react.useTags();
34350
- const tags = react$1.useMemo(() => chunkY6ZNWC7E_cjs.documentScopeLabels(workspaceTags), [workspaceTags]);
34353
+ const tags = react$1.useMemo(() => chunkK26RLK2Y_cjs.documentScopeLabels(workspaceTags), [workspaceTags]);
34351
34354
  const fieldPlaceholder = react$1.useCallback(
34352
34355
  (field, inputs, workflow) => {
34353
- if (workflow.id !== chunkHVOPUYAG_cjs.ANNOTATE_ID || field.name !== "name") return void 0;
34354
- const derived = chunkHVOPUYAG_cjs.deriveAnnotationName(String(inputs.description ?? ""));
34356
+ if (workflow.id !== chunkCJF7B5A7_cjs.ANNOTATE_ID || field.name !== "name") return void 0;
34357
+ const derived = chunkCJF7B5A7_cjs.deriveAnnotationName(String(inputs.description ?? ""));
34355
34358
  return derived ? `Otherwise \u201C${derived}\u201D` : "Taken from the description";
34356
34359
  },
34357
34360
  []
34358
34361
  );
34359
34362
  return /* @__PURE__ */ jsxRuntime.jsx(
34360
- chunkUDMII47W_cjs.ConnectedWorkflowLauncher,
34363
+ chunkWBLCPCWR_cjs.ConnectedWorkflowLauncher,
34361
34364
  {
34362
34365
  ...rest,
34363
34366
  workflows,
34364
34367
  onLaunch,
34365
- renderIcon: chunkHVOPUYAG_cjs.renderWorkflowIcon,
34368
+ renderIcon: chunkCJF7B5A7_cjs.renderWorkflowIcon,
34366
34369
  onAddFiles: openUpload,
34367
34370
  agentLabels: AGENT_LABELS,
34368
34371
  addFilesAction,
34369
34372
  fieldPlaceholder,
34370
- submitLabel: ({ workflow, matchedCount }) => workflow.id === chunkHVOPUYAG_cjs.ANNOTATE_ID && matchedCount !== null ? `Annotate ${matchedCount} document${matchedCount !== 1 ? "s" : ""}` : void 0,
34373
+ submitLabel: ({ workflow, matchedCount }) => workflow.id === chunkCJF7B5A7_cjs.ANNOTATE_ID && matchedCount !== null ? `Annotate ${matchedCount} document${matchedCount !== 1 ? "s" : ""}` : void 0,
34371
34374
  renderNotice: ({ workflow, inputs }) => {
34372
- if (workflow.id !== chunkHVOPUYAG_cjs.ANNOTATE_ID) return null;
34373
- const name = String(inputs.name ?? "").trim() || chunkHVOPUYAG_cjs.deriveAnnotationName(String(inputs.description ?? ""));
34375
+ if (workflow.id !== chunkCJF7B5A7_cjs.ANNOTATE_ID) return null;
34376
+ const name = String(inputs.name ?? "").trim() || chunkCJF7B5A7_cjs.deriveAnnotationName(String(inputs.description ?? ""));
34374
34377
  const existing = name ? tags.find((t) => t.name.toLowerCase() === name.toLowerCase()) : void 0;
34375
34378
  if (!existing) return null;
34376
34379
  return /* @__PURE__ */ jsxRuntime.jsxs(
@@ -34407,9 +34410,9 @@ function resolveLaunchInputs(workflow, request) {
34407
34410
  return { ...fromContext, ...fromScope, ...request.inputs };
34408
34411
  }
34409
34412
  function useWorkflowLaunch() {
34410
- const { skills } = chunkX3JJTHQ4_cjs.useWorkflowDefinitions();
34413
+ const { skills } = chunkJSHBC47B_cjs.useWorkflowDefinitions();
34411
34414
  const launch = react$1.useCallback(
34412
- (workflowId, options2 = {}) => chunkHVOPUYAG_cjs.openWorkflowLaunch({ workflowId, ...options2 }),
34415
+ (workflowId, options2 = {}) => chunkCJF7B5A7_cjs.openWorkflowLaunch({ workflowId, ...options2 }),
34413
34416
  []
34414
34417
  );
34415
34418
  const itemsFor = react$1.useCallback(
@@ -34438,9 +34441,9 @@ function useWorkflowLaunch() {
34438
34441
  return { launch, itemsFor, scopeItemsFor };
34439
34442
  }
34440
34443
  function Inner() {
34441
- const request = chunkHVOPUYAG_cjs.useWorkflowLaunchRequest();
34442
- const close = chunkHVOPUYAG_cjs.closeWorkflowLaunch;
34443
- const { skills } = chunkX3JJTHQ4_cjs.useWorkflowDefinitions();
34444
+ const request = chunkCJF7B5A7_cjs.useWorkflowLaunchRequest();
34445
+ const close = chunkCJF7B5A7_cjs.closeWorkflowLaunch;
34446
+ const { skills } = chunkJSHBC47B_cjs.useWorkflowDefinitions();
34444
34447
  const run = useLaunchWorkflow({ landing: request?.landing });
34445
34448
  const workflow = skills.find((w) => w.id === request?.workflowId);
34446
34449
  const inputs = react$1.useMemo(
@@ -34477,7 +34480,7 @@ function Inner() {
34477
34480
  );
34478
34481
  }
34479
34482
  function WorkflowLaunchHost() {
34480
- return chunkHVOPUYAG_cjs.useWorkflowLaunchRequest() ? /* @__PURE__ */ jsxRuntime.jsx(Inner, {}) : null;
34483
+ return chunkCJF7B5A7_cjs.useWorkflowLaunchRequest() ? /* @__PURE__ */ jsxRuntime.jsx(Inner, {}) : null;
34481
34484
  }
34482
34485
  function isNeedsConfirmationDetail(detail) {
34483
34486
  return typeof detail === "object" && detail !== null && detail.needs_confirmation === "resource_private";
@@ -34824,7 +34827,7 @@ var ConversationEntity = react$1.memo(function ConversationEntity2({
34824
34827
  );
34825
34828
  const icon2 = /* @__PURE__ */ jsxRuntime.jsx(ui.ThreadVisibilityIcon, { shared: isShared, className: `${iconSizeClass} shrink-0` });
34826
34829
  return /* @__PURE__ */ jsxRuntime.jsx(
34827
- chunk3T3IKNGF_cjs.EntityChip,
34830
+ chunkZXW6WFZG_cjs.EntityChip,
34828
34831
  {
34829
34832
  variant,
34830
34833
  icon: icon2,
@@ -34846,7 +34849,7 @@ function WorkflowRunStatusCell({ conversation }) {
34846
34849
  });
34847
34850
  const { data: members = [] } = react.useWorkspaceUsers();
34848
34851
  const me = react.useArbiSession().user?.external_id;
34849
- const steps = chunk3T3IKNGF_cjs.fromPlanSteps(conversation.plan?.steps ?? []);
34852
+ const steps = chunkZXW6WFZG_cjs.fromPlanSteps(conversation.plan?.steps ?? []);
34850
34853
  const states = chunk555BS22J_cjs.stepStatesFromActivity(activity.data ?? []);
34851
34854
  const nameOf = (id) => {
34852
34855
  if (id === me) return "you";
@@ -34854,7 +34857,7 @@ function WorkflowRunStatusCell({ conversation }) {
34854
34857
  return person ? ui.getUserDisplayName(person) : void 0;
34855
34858
  };
34856
34859
  return /* @__PURE__ */ jsxRuntime.jsx(
34857
- chunkHVOPUYAG_cjs.WorkflowRunStatus,
34860
+ chunkCJF7B5A7_cjs.WorkflowRunStatus,
34858
34861
  {
34859
34862
  steps,
34860
34863
  states,
@@ -34888,7 +34891,7 @@ function ConversationStatusCell({ conversation }) {
34888
34891
  if (conversation.plan?.steps?.length && !isLiveGenerating)
34889
34892
  return /* @__PURE__ */ jsxRuntime.jsx(WorkflowRunStatusCell, { conversation });
34890
34893
  return /* @__PURE__ */ jsxRuntime.jsx(
34891
- chunkHVOPUYAG_cjs.ThreadStatusLine,
34894
+ chunkCJF7B5A7_cjs.ThreadStatusLine,
34892
34895
  {
34893
34896
  state: threadStateOf(conversation, isLiveGenerating),
34894
34897
  className: "h-full",
@@ -34977,7 +34980,7 @@ var OPEN_THREAD_TAB_CLASS = "w-[28rem] max-w-[40cqw]";
34977
34980
  var OPEN_THREAD_LABEL_WIDTH = "max-w-[calc(min(28rem,40cqw)-4.5rem)]";
34978
34981
  function useThreadTabs() {
34979
34982
  const session = react.useArbiSessionStore();
34980
- const activeThreadTabId = react.useArbiSessionState((state) => state.activeThreadTabId);
34983
+ const activeThreadTabId = react.useArbiSessionState((state) => state.tabs.activeThread);
34981
34984
  const activeTab = activeThreadTabId || "history";
34982
34985
  const isInChat = activeThreadTabId !== null;
34983
34986
  const setActiveTab = react$1.useCallback(
@@ -34994,14 +34997,14 @@ function ConnectedThreadTabs({
34994
34997
  testId = "threads-tab-header"
34995
34998
  }) {
34996
34999
  const session = react.useArbiSessionStore();
34997
- const threadTabs = react.useArbiSessionState((state) => state.threadTabs);
34998
- const activeThreadTabId = react.useArbiSessionState((state) => state.activeThreadTabId);
35000
+ const threadTabs = react.useArbiSessionState((state) => state.tabs.threads);
35001
+ const activeThreadTabId = react.useArbiSessionState((state) => state.tabs.activeThread);
34999
35002
  const generatingConversations = react.useArbiSessionState((state) => state.generating);
35000
35003
  const { activeTab, isInChat, setActiveTab } = useThreadTabs();
35001
35004
  const { conversations } = react.useConversationItems();
35002
35005
  const openThread = react$1.useCallback(
35003
35006
  (conversationId) => {
35004
- const open = session.getState().threadTabs.some((t) => t.conversationId === conversationId);
35007
+ const open = session.getState().tabs.threads.some((t) => t.conversationId === conversationId);
35005
35008
  if (open) session.selectThreadTab(conversationId);
35006
35009
  else session.openThreadTab(conversationId);
35007
35010
  },
@@ -35375,7 +35378,7 @@ function ConnectedTaskStartDialog({
35375
35378
  };
35376
35379
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
35377
35380
  /* @__PURE__ */ jsxRuntime.jsx(
35378
- chunkHVOPUYAG_cjs.TaskStartDialog,
35381
+ chunkCJF7B5A7_cjs.TaskStartDialog,
35379
35382
  {
35380
35383
  open: open && !later,
35381
35384
  onOpenChange: (next) => {
@@ -35400,14 +35403,14 @@ function ConnectedTaskStartDialog({
35400
35403
  }
35401
35404
  ),
35402
35405
  later && /* @__PURE__ */ jsxRuntime.jsx(
35403
- chunkX3JJTHQ4_cjs.ConnectedTaskComposer,
35406
+ chunkJSHBC47B_cjs.ConnectedTaskComposer,
35404
35407
  {
35405
35408
  open: true,
35406
35409
  onOpenChange: (next) => !next && setLater(null),
35407
35410
  kind: "workflow",
35408
35411
  startLater: true,
35409
35412
  initialPrompt: later.prompt,
35410
- initialWorkflowId: later.todo ? chunkHVOPUYAG_cjs.REMIND_TASK_ID : void 0,
35413
+ initialWorkflowId: later.todo ? chunkCJF7B5A7_cjs.REMIND_TASK_ID : void 0,
35411
35414
  initialShared: later.shared,
35412
35415
  launchWorkflow: later.workflow
35413
35416
  }
@@ -35421,7 +35424,7 @@ function ConnectedThreadLauncher({ autoFocus }) {
35421
35424
  const [later, setLater] = react$1.useState(null);
35422
35425
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
35423
35426
  /* @__PURE__ */ jsxRuntime.jsx(
35424
- chunkHVOPUYAG_cjs.ThreadLauncher,
35427
+ chunkCJF7B5A7_cjs.ThreadLauncher,
35425
35428
  {
35426
35429
  workflows: task.workflows,
35427
35430
  people: task.people,
@@ -35451,14 +35454,14 @@ function ConnectedThreadLauncher({ autoFocus }) {
35451
35454
  }
35452
35455
  ),
35453
35456
  later && /* @__PURE__ */ jsxRuntime.jsx(
35454
- chunkX3JJTHQ4_cjs.ConnectedTaskComposer,
35457
+ chunkJSHBC47B_cjs.ConnectedTaskComposer,
35455
35458
  {
35456
35459
  open: true,
35457
35460
  onOpenChange: (next) => !next && setLater(null),
35458
35461
  kind: "workflow",
35459
35462
  startLater: true,
35460
35463
  initialPrompt: later.prompt,
35461
- initialWorkflowId: later.todo ? chunkHVOPUYAG_cjs.REMIND_TASK_ID : void 0,
35464
+ initialWorkflowId: later.todo ? chunkCJF7B5A7_cjs.REMIND_TASK_ID : void 0,
35462
35465
  initialShared: later.shared,
35463
35466
  launchWorkflow: later.workflow
35464
35467
  }
@@ -35487,13 +35490,13 @@ function ConnectedNewThreadDialog({
35487
35490
  });
35488
35491
  const parentOptions = react$1.useMemo(() => {
35489
35492
  const leaf = { external_id: "__new__" };
35490
- return chunkHVOPUYAG_cjs.moveTargets([...tasks, leaf], leaf).map((t) => ({
35493
+ return chunkCJF7B5A7_cjs.moveTargets([...tasks, leaf], leaf).map((t) => ({
35491
35494
  id: t.external_id,
35492
35495
  name: t.title?.trim() || "Untitled task"
35493
35496
  }));
35494
35497
  }, [tasks]);
35495
35498
  const submit = async (values) => {
35496
- const request = chunkHVOPUYAG_cjs.newThreadToRequest(values);
35499
+ const request = chunkCJF7B5A7_cjs.newThreadToRequest(values);
35497
35500
  try {
35498
35501
  if (!workspaceId) throw new Error("Open a workspace to add a task.");
35499
35502
  if (!request.startAssistant && request.todo) {
@@ -35534,7 +35537,7 @@ function ConnectedNewThreadDialog({
35534
35537
  }
35535
35538
  };
35536
35539
  return /* @__PURE__ */ jsxRuntime.jsx(
35537
- chunkHVOPUYAG_cjs.NewThreadDialog,
35540
+ chunkCJF7B5A7_cjs.NewThreadDialog,
35538
35541
  {
35539
35542
  open,
35540
35543
  onOpenChange,
@@ -35550,7 +35553,7 @@ function ConnectedNewThreadDialog({
35550
35553
  var START_VISIBLE = 8;
35551
35554
  var START_SEARCH_ABOVE = 8;
35552
35555
  function ConnectedConversationStart() {
35553
- const { start } = chunkX3JJTHQ4_cjs.useWorkflowDefinitions();
35556
+ const { start } = chunkJSHBC47B_cjs.useWorkflowDefinitions();
35554
35557
  const { openSkillsBrowser } = chunkT6GRWWRY_cjs.useBlocksEnvironment();
35555
35558
  const [query, setQuery] = react$1.useState("");
35556
35559
  const q = query.trim().toLowerCase();
@@ -35565,7 +35568,7 @@ function ConnectedConversationStart() {
35565
35568
  const browse = openSkillsBrowser ? [
35566
35569
  {
35567
35570
  id: "browse-all",
35568
- iconNode: chunkHVOPUYAG_cjs.renderWorkflowIcon("library"),
35571
+ iconNode: chunkCJF7B5A7_cjs.renderWorkflowIcon("library"),
35569
35572
  title: "Browse all",
35570
35573
  description: "See every skill, make a copy, add your own",
35571
35574
  onSelect: () => openSkillsBrowser(),
@@ -35609,7 +35612,7 @@ function parseTypedSkill(draft) {
35609
35612
  return m ? { slug: m[1].toLowerCase(), text: (m[2] ?? "").trim() } : null;
35610
35613
  }
35611
35614
  function useSlashSkillWorkflows({ landing }) {
35612
- const { skills, skillsEnabled } = chunkX3JJTHQ4_cjs.useWorkflowDefinitions();
35615
+ const { skills, skillsEnabled } = chunkJSHBC47B_cjs.useWorkflowDefinitions();
35613
35616
  const { commands } = react.useBuiltinCommands();
35614
35617
  const [active, setActive] = react$1.useState(null);
35615
35618
  const open = (workflow, text2) => {
@@ -35715,7 +35718,7 @@ function AgentBarShell({
35715
35718
  }, [isStepsExpanded, steps]);
35716
35719
  const visibleStepCount = react$1.useMemo(() => browser.topLevelAgentSteps(steps ?? []).length, [steps]);
35717
35720
  return /* @__PURE__ */ jsxRuntime.jsx(
35718
- chunkHVOPUYAG_cjs.AgentBar,
35721
+ chunkCJF7B5A7_cjs.AgentBar,
35719
35722
  {
35720
35723
  className,
35721
35724
  testId,
@@ -35727,7 +35730,7 @@ function AgentBarShell({
35727
35730
  drawerRef: scrollRef,
35728
35731
  onDrawerScroll: handleDrawerScroll,
35729
35732
  drawer: /* @__PURE__ */ jsxRuntime.jsx(
35730
- chunk3X37I6QE_cjs.AgentSteps,
35733
+ chunkDJE2E7YH_cjs.AgentSteps,
35731
35734
  {
35732
35735
  steps: stepList,
35733
35736
  isStreaming,
@@ -35771,7 +35774,7 @@ function AgentControlBar({
35771
35774
  const isPaused = controlState === "paused" || controlState === "resuming";
35772
35775
  const steps = agentSteps ?? [];
35773
35776
  const currentStep = browser.getCurrentStep(steps);
35774
- const currentPresentation = chunk3T3IKNGF_cjs.getCurrentAgentStepPresentation(steps);
35777
+ const currentPresentation = chunkZXW6WFZG_cjs.getCurrentAgentStepPresentation(steps);
35775
35778
  const CurrentStepIcon = currentPresentation?.Icon;
35776
35779
  const stepLabel2 = currentPresentation?.description ?? "Agent working\u2026";
35777
35780
  const runningLanes = browser.extractSubagentLanes(steps).filter((l) => l.status === "running");
@@ -35779,7 +35782,7 @@ function AgentControlBar({
35779
35782
  const waitingOnChildren = runningLanes.length > 0 && ["sub_agent", "spawn_subagent", "deep_research", "run_skill"].includes(currentTool ?? "");
35780
35783
  const waitingLabel = runningLanes.length === 1 ? `Waiting on ${runningLanes[0].job}` : `Waiting on ${runningLanes.length} sub-agents`;
35781
35784
  const liveTimerNode = liveTimer && /* @__PURE__ */ jsxRuntime.jsx(
35782
- chunk3X37I6QE_cjs.MessageLiveSeconds,
35785
+ chunkDJE2E7YH_cjs.MessageLiveSeconds,
35783
35786
  {
35784
35787
  ...liveTimer,
35785
35788
  offsetSeconds: currentStep?.t ?? 0,
@@ -35788,7 +35791,7 @@ function AgentControlBar({
35788
35791
  }
35789
35792
  );
35790
35793
  const status = /* @__PURE__ */ jsxRuntime.jsx(
35791
- chunkHVOPUYAG_cjs.AgentBarStatus,
35794
+ chunkCJF7B5A7_cjs.AgentBarStatus,
35792
35795
  {
35793
35796
  state: showState ? controlState : void 0,
35794
35797
  stateLabel: STATE_LABEL[controlState],
@@ -35830,7 +35833,7 @@ function AgentControlBar({
35830
35833
  ];
35831
35834
  const controls = /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
35832
35835
  onStop && /* @__PURE__ */ jsxRuntime.jsx(
35833
- chunkHVOPUYAG_cjs.AgentBarIconButton,
35836
+ chunkCJF7B5A7_cjs.AgentBarIconButton,
35834
35837
  {
35835
35838
  onClick: onStop,
35836
35839
  title: "Stop",
@@ -35839,22 +35842,22 @@ function AgentControlBar({
35839
35842
  children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Square, { className: "h-3 w-3", fill: "currentColor" })
35840
35843
  }
35841
35844
  ),
35842
- /* @__PURE__ */ jsxRuntime.jsx(chunkHVOPUYAG_cjs.AgentBarMenu, { items: menuItems })
35845
+ /* @__PURE__ */ jsxRuntime.jsx(chunkCJF7B5A7_cjs.AgentBarMenu, { items: menuItems })
35843
35846
  ] });
35844
35847
  const displayedQueuedMessages = (transientQueuedMessages ?? []).filter(
35845
35848
  (message) => !message.serverId || !queuedMessages.some((queued) => queued.external_id === message.serverId)
35846
35849
  );
35847
35850
  const queuedNotes = displayedQueuedMessages.filter((message) => message.content);
35848
- const below = probeAnswer || queuedNotes.length > 0 ? /* @__PURE__ */ jsxRuntime.jsxs(chunkHVOPUYAG_cjs.AgentBarNotes, { children: [
35851
+ const below = probeAnswer || queuedNotes.length > 0 ? /* @__PURE__ */ jsxRuntime.jsxs(chunkCJF7B5A7_cjs.AgentBarNotes, { children: [
35849
35852
  queuedNotes.map((message, index) => /* @__PURE__ */ jsxRuntime.jsx(
35850
- chunkHVOPUYAG_cjs.AgentBarQueuedNote,
35853
+ chunkCJF7B5A7_cjs.AgentBarQueuedNote,
35851
35854
  {
35852
35855
  text: message.content ?? "",
35853
35856
  isAcknowledged: message.acknowledged
35854
35857
  },
35855
35858
  index
35856
35859
  )),
35857
- probeAnswer && /* @__PURE__ */ jsxRuntime.jsx(chunkHVOPUYAG_cjs.AgentBarProbeAnswer, { answer: probeAnswer.answer })
35860
+ probeAnswer && /* @__PURE__ */ jsxRuntime.jsx(chunkCJF7B5A7_cjs.AgentBarProbeAnswer, { answer: probeAnswer.answer })
35858
35861
  ] }) : null;
35859
35862
  return /* @__PURE__ */ jsxRuntime.jsx(
35860
35863
  AgentBarShell,
@@ -36059,8 +36062,8 @@ function ConnectedThreadsPage({
36059
36062
  const tasks = useStableRecencyOrder(listed);
36060
36063
  const updateConversation = react.useUpdateConversation();
36061
36064
  const deleteConversation = react.useDeleteConversation();
36062
- const people = chunkX3JJTHQ4_cjs.useTaskPeople();
36063
- const renderPerson = chunkX3JJTHQ4_cjs.useRenderTaskPerson();
36065
+ const people = chunkJSHBC47B_cjs.useTaskPeople();
36066
+ const renderPerson = chunkJSHBC47B_cjs.useRenderTaskPerson();
36064
36067
  const canEditShared = react.useCanEditShared();
36065
36068
  const isWorkspaceOwner = react.useIsWorkspaceOwner();
36066
36069
  const { data: agents = [] } = react.useAgents();
@@ -36298,7 +36301,7 @@ function ConnectedThreadsPage({
36298
36301
  "data-testid": mode === "tasks" ? "tasks-page" : "threads-page",
36299
36302
  children: [
36300
36303
  /* @__PURE__ */ jsxRuntime.jsx("main", { className: "flex min-h-0 flex-1 flex-col bg-background", children: mode === "threads" ? /* @__PURE__ */ jsxRuntime.jsx(
36301
- chunkHVOPUYAG_cjs.ConversationListView,
36304
+ chunkCJF7B5A7_cjs.ConversationListView,
36302
36305
  {
36303
36306
  showHeader,
36304
36307
  conversations: tasks,
@@ -36318,7 +36321,7 @@ function ConnectedThreadsPage({
36318
36321
  renderLabels: threadLabels.renderLabels,
36319
36322
  labelText: threadLabels.labelText,
36320
36323
  renderBy: (row2) => /* @__PURE__ */ jsxRuntime.jsx(
36321
- chunkHVOPUYAG_cjs.ConversationTurnSpeaker,
36324
+ chunkCJF7B5A7_cjs.ConversationTurnSpeaker,
36322
36325
  {
36323
36326
  variant: "icon",
36324
36327
  role: row2.last_message_role,
@@ -36340,7 +36343,7 @@ function ConnectedThreadsPage({
36340
36343
  footer: /* @__PURE__ */ jsxRuntime.jsx(ConnectedThreadLauncher, { autoFocus: focusLauncher })
36341
36344
  }
36342
36345
  ) : /* @__PURE__ */ jsxRuntime.jsx(
36343
- chunkHVOPUYAG_cjs.TaskInbox,
36346
+ chunkCJF7B5A7_cjs.TaskInbox,
36344
36347
  {
36345
36348
  tasks,
36346
36349
  isLoading,
@@ -36384,7 +36387,7 @@ function ConnectedThreadsPage({
36384
36387
  initialParentId: parentForNew
36385
36388
  }
36386
36389
  ),
36387
- /* @__PURE__ */ jsxRuntime.jsx(chunkX3JJTHQ4_cjs.ConnectedTaskComposer, { open: editorOpen, onOpenChange: setEditorOpen, task: editing }),
36390
+ /* @__PURE__ */ jsxRuntime.jsx(chunkJSHBC47B_cjs.ConnectedTaskComposer, { open: editorOpen, onOpenChange: setEditorOpen, task: editing }),
36388
36391
  /* @__PURE__ */ jsxRuntime.jsx(
36389
36392
  ConnectedExportDialog,
36390
36393
  {
@@ -36620,7 +36623,7 @@ function ConnectedConversationPage({
36620
36623
  }
36621
36624
  );
36622
36625
  const { data: workspaceTags = [] } = react.useTags();
36623
- const historyCount = chunkHVOPUYAG_cjs.filterConversationRows(
36626
+ const historyCount = chunkCJF7B5A7_cjs.filterConversationRows(
36624
36627
  conversations,
36625
36628
  threadFilter,
36626
36629
  (row2) => workspaceTags.filter((tag) => row2.label_ext_ids?.includes(tag.external_id)).map((tag) => tag.name).join(" "),
@@ -36670,7 +36673,7 @@ function ConnectedConversationPage({
36670
36673
  ] })
36671
36674
  }
36672
36675
  ),
36673
- isInChat && /* @__PURE__ */ jsxRuntime.jsx(chunkX3JJTHQ4_cjs.ConnectedThreadTaskBar, { conversationId: currentConversationId })
36676
+ isInChat && /* @__PURE__ */ jsxRuntime.jsx(chunkJSHBC47B_cjs.ConnectedThreadTaskBar, { conversationId: currentConversationId })
36674
36677
  ] }),
36675
36678
  isInChat && /* @__PURE__ */ jsxRuntime.jsx(
36676
36679
  ConversationThread2,
@@ -37544,7 +37547,7 @@ function ConversationThread({
37544
37547
  }, [isGenerating]);
37545
37548
  const slashWorkflows = useSlashSkillWorkflows({ landing: "current-chat" });
37546
37549
  const composerSkills = react$1.useMemo(
37547
- () => ({ builtin: chunkHVOPUYAG_cjs.BUILTIN_SKILLS, openFor: slashWorkflows.openFor }),
37550
+ () => ({ builtin: chunkCJF7B5A7_cjs.BUILTIN_SKILLS, openFor: slashWorkflows.openFor }),
37548
37551
  [slashWorkflows.openFor]
37549
37552
  );
37550
37553
  const browseSkills = react$1.useMemo(
@@ -37593,7 +37596,7 @@ function ConversationThread({
37593
37596
  useStartRequestedDraft();
37594
37597
  const orphanedMessage = react.getOrphanedLastMessage(messageHistory, isGenerating, assistantMode);
37595
37598
  return /* @__PURE__ */ jsxRuntime.jsxs(chunkTVHTXO6V_cjs.ConversationBody, { children: [
37596
- /* @__PURE__ */ jsxRuntime.jsx(chunkTVHTXO6V_cjs.ConversationMain, { "data-testid": `conversation-${currentConversationId}`, children: threadsLoading ? /* @__PURE__ */ jsxRuntime.jsx(chunkTVHTXO6V_cjs.ConversationLoading, {}) : messageHistory.length > 0 || isBranching ? /* @__PURE__ */ jsxRuntime.jsx(chunk3X37I6QE_cjs.AskAgainContext.Provider, { value: handleAskAgain, children: /* @__PURE__ */ jsxRuntime.jsxs(chunkRGPKW6KQ_cjs.TranscriptRunsContext.Provider, { value: transcriptRunInfo, children: [
37599
+ /* @__PURE__ */ jsxRuntime.jsx(chunkTVHTXO6V_cjs.ConversationMain, { "data-testid": `conversation-${currentConversationId}`, children: threadsLoading ? /* @__PURE__ */ jsxRuntime.jsx(chunkTVHTXO6V_cjs.ConversationLoading, {}) : messageHistory.length > 0 || isBranching ? /* @__PURE__ */ jsxRuntime.jsx(chunkDJE2E7YH_cjs.AskAgainContext.Provider, { value: handleAskAgain, children: /* @__PURE__ */ jsxRuntime.jsxs(chunkRGPKW6KQ_cjs.TranscriptRunsContext.Provider, { value: transcriptRunInfo, children: [
37597
37600
  meetingCallExtId && transcriptLineCount > 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex justify-center py-2", children: /* @__PURE__ */ jsxRuntime.jsx(
37598
37601
  chunk3UGJCSTO_cjs.ConversationFilter,
37599
37602
  {
@@ -37611,7 +37614,7 @@ function ConversationThread({
37611
37614
  ]
37612
37615
  }
37613
37616
  ) }),
37614
- /* @__PURE__ */ jsxRuntime.jsx(chunk3X37I6QE_cjs.ConnectedMessageArea, { ref: containerRef, messages: visibleMessages }),
37617
+ /* @__PURE__ */ jsxRuntime.jsx(chunkDJE2E7YH_cjs.ConnectedMessageArea, { ref: containerRef, messages: visibleMessages }),
37615
37618
  showProvisional && /* @__PURE__ */ jsxRuntime.jsx(chunk33PWCTND_cjs.ProvisionalSpeakers, { ids: provisionalSpeakers })
37616
37619
  ] }) }) : meetingCallExtId ? (
37617
37620
  // A meeting thread with nothing yet: call-aware, not the upload prompt.
@@ -37619,7 +37622,7 @@ function ConversationThread({
37619
37622
  /* @__PURE__ */ jsxRuntime.jsx(chunk33PWCTND_cjs.CallConversationEmpty, { callExtId: meetingCallExtId }),
37620
37623
  /* @__PURE__ */ jsxRuntime.jsx(chunk33PWCTND_cjs.ProvisionalSpeakers, { ids: provisionalSpeakers })
37621
37624
  ] })
37622
- ) : currentTask && currentTask.status != null ? /* @__PURE__ */ jsxRuntime.jsx(chunkHVOPUYAG_cjs.TaskEmptyState, { task: currentTask }) : pendingFirstTurn && isGenerating ? /* @__PURE__ */ jsxRuntime.jsx(chunk3X37I6QE_cjs.ConnectedMessageArea, { ref: containerRef, messages: pendingFirstTurn }) : /* @__PURE__ */ jsxRuntime.jsx(
37625
+ ) : currentTask && currentTask.status != null ? /* @__PURE__ */ jsxRuntime.jsx(chunkCJF7B5A7_cjs.TaskEmptyState, { task: currentTask }) : pendingFirstTurn && isGenerating ? /* @__PURE__ */ jsxRuntime.jsx(chunkDJE2E7YH_cjs.ConnectedMessageArea, { ref: containerRef, messages: pendingFirstTurn }) : /* @__PURE__ */ jsxRuntime.jsx(
37623
37626
  ConnectedConversationEmpty,
37624
37627
  {
37625
37628
  hasDocuments: allWorkspaceDocuments.length > 0,
@@ -37690,7 +37693,7 @@ function ConversationThread({
37690
37693
  children: react.READ_ONLY_MEETING_TEXT
37691
37694
  }
37692
37695
  ) : /* @__PURE__ */ jsxRuntime.jsx(
37693
- chunk3X37I6QE_cjs.ConversationComposer,
37696
+ chunkDJE2E7YH_cjs.ConversationComposer,
37694
37697
  {
37695
37698
  handleSendMessage: handleUserSend,
37696
37699
  placeholder: pendingAnswer ? "Type your answer to ARBI \u2014 or pick an option above" : void 0,
@@ -37758,7 +37761,7 @@ function ConnectedConversation({
37758
37761
  if (conversationId === void 0) return;
37759
37762
  if (layout === "page") {
37760
37763
  const tabId = conversationId ?? "new";
37761
- if (session.getState().activeThreadTabId !== tabId) session.openThreadTab(conversationId);
37764
+ if (session.getState().tabs.activeThread !== tabId) session.openThreadTab(conversationId);
37762
37765
  } else if (session.getState().conversationId !== conversationId) {
37763
37766
  session.setConversationId(conversationId);
37764
37767
  }
@@ -37826,8 +37829,8 @@ function ConnectedForgotPassword({
37826
37829
  initialIsKeyEncrypted = false
37827
37830
  }) {
37828
37831
  const arbi = react.useArbi();
37829
- const sso = chunk3X37I6QE_cjs.useSsoSignIn();
37830
- const { onRecovered: onSiteRecovered } = chunk3X37I6QE_cjs.useAuthPages();
37832
+ const sso = chunkDJE2E7YH_cjs.useSsoSignIn();
37833
+ const { onRecovered: onSiteRecovered } = chunkDJE2E7YH_cjs.useAuthPages();
37831
37834
  const [showSsoPrompt, setShowSsoPrompt] = react$1.useState(false);
37832
37835
  const [email, setEmail] = react$1.useState(initialEmail ?? "");
37833
37836
  const [recoveryKey, setRecoveryKey] = react$1.useState(initialRecoveryKey ?? null);
@@ -37963,9 +37966,9 @@ function ConnectedForgotPassword({
37963
37966
  );
37964
37967
  }
37965
37968
  function useSsoVerificationRedirect() {
37966
- const sso = chunk3X37I6QE_cjs.useSsoSignIn();
37969
+ const sso = chunkDJE2E7YH_cjs.useSsoSignIn();
37967
37970
  const { notify: notify16 } = chunkT6GRWWRY_cjs.useBlocksEnvironment();
37968
- const { onVerificationFailed } = chunk3X37I6QE_cjs.useAuthPages();
37971
+ const { onVerificationFailed } = chunkDJE2E7YH_cjs.useAuthPages();
37969
37972
  react$1.useEffect(() => {
37970
37973
  const urlParams = new URLSearchParams(window.location.search);
37971
37974
  const success = urlParams.get("success") || null;
@@ -37994,7 +37997,7 @@ var sodiumWarmed = false;
37994
37997
  function warmSodium() {
37995
37998
  if (sodiumWarmed) return;
37996
37999
  sodiumWarmed = true;
37997
- const run = () => void chunkODQK3LX5_cjs.prefetchChunk(client.initSodium);
38000
+ const run = () => void chunkZZHMJXM5_cjs.prefetchChunk(client.initSodium);
37998
38001
  if (typeof window.requestIdleCallback === "function") window.requestIdleCallback(run);
37999
38002
  else window.setTimeout(run, 200);
38000
38003
  }
@@ -38002,18 +38005,18 @@ function ConnectedLoginPage({
38002
38005
  layout = "page",
38003
38006
  ...compact
38004
38007
  } = {}) {
38005
- return layout === "compact" ? /* @__PURE__ */ jsxRuntime.jsx(chunk3X37I6QE_cjs.CompactLogin, { ...compact }) : /* @__PURE__ */ jsxRuntime.jsx(LoginPage, {});
38008
+ return layout === "compact" ? /* @__PURE__ */ jsxRuntime.jsx(chunkDJE2E7YH_cjs.CompactLogin, { ...compact }) : /* @__PURE__ */ jsxRuntime.jsx(LoginPage, {});
38006
38009
  }
38007
38010
  function LoginPage() {
38008
- const sso = chunk3X37I6QE_cjs.useSsoSignIn();
38009
- const auth = chunk3X37I6QE_cjs.useAuthPages();
38011
+ const sso = chunkDJE2E7YH_cjs.useSsoSignIn();
38012
+ const auth = chunkDJE2E7YH_cjs.useAuthPages();
38010
38013
  const { notify: notify16 } = chunkT6GRWWRY_cjs.useBlocksEnvironment();
38011
38014
  const isSsoOnly = !!auth.ssoOnly;
38012
38015
  const allowRegistration = auth.allowRegistration ?? true;
38013
38016
  const isOnline = documentTools.useIsOnline();
38014
38017
  const passwordRules = auth.passwordRules;
38015
38018
  useSsoVerificationRedirect();
38016
- const formState = chunk3X37I6QE_cjs.useLoginForm();
38019
+ const formState = chunkDJE2E7YH_cjs.useLoginForm();
38017
38020
  const deploymentDomain = react.useArbi().getDeploymentDomain();
38018
38021
  const {
38019
38022
  email,
@@ -38050,11 +38053,11 @@ function LoginPage() {
38050
38053
  handleLocalLogin,
38051
38054
  handleRegister,
38052
38055
  handleRequestVerificationCode
38053
- } = chunk3X37I6QE_cjs.useLoginActions({
38056
+ } = chunkDJE2E7YH_cjs.useLoginActions({
38054
38057
  formState,
38055
38058
  formActions: formState
38056
38059
  });
38057
- const { isDisabled: isRegisterSubmitDisabled } = chunk3X37I6QE_cjs.useRegisterSubmitState(
38060
+ const { isDisabled: isRegisterSubmitDisabled } = chunkDJE2E7YH_cjs.useRegisterSubmitState(
38058
38061
  isRegistering,
38059
38062
  isAuthenticating,
38060
38063
  password,
@@ -38598,7 +38601,7 @@ function SsoResendVerificationButton({
38598
38601
  onClick: async () => handleResendEmailVerification(),
38599
38602
  disabled: loading || disabled,
38600
38603
  "aria-label": "Resend verification email",
38601
- children: loading ? /* @__PURE__ */ jsxRuntime.jsx(chunk4RJPTXUQ_cjs.LoadingIndicator, {}) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
38604
+ children: loading ? /* @__PURE__ */ jsxRuntime.jsx(chunk7MOQO6NO_cjs.LoadingIndicator, {}) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
38602
38605
  "Didn't get a verification email? ",
38603
38606
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-semibold", children: "Resend" })
38604
38607
  ] })
@@ -38609,16 +38612,16 @@ function SsoResendVerificationButton({
38609
38612
  }
38610
38613
  var NO_RECOVERY_KEY_WARNING2 = "Without your password or a recovery key, we cannot recover your account or data.";
38611
38614
  function ConnectedSsoCallback() {
38612
- const sso = chunk3X37I6QE_cjs.useSsoSignIn();
38615
+ const sso = chunkDJE2E7YH_cjs.useSsoSignIn();
38613
38616
  const { isAuthenticated: isAuthenticated2, isLoading, user } = sso;
38614
- const auth = chunk3X37I6QE_cjs.useAuthPages();
38617
+ const auth = chunkDJE2E7YH_cjs.useAuthPages();
38615
38618
  const { notify: notify16, navigate } = chunkT6GRWWRY_cjs.useBlocksEnvironment();
38616
38619
  const passwordRules = auth.passwordRules;
38617
38620
  const isProcessing = react$1.useRef(false);
38618
38621
  const hasCheckedStatus = react$1.useRef(false);
38619
38622
  const [accessToken, setAccessToken] = react$1.useState(null);
38620
38623
  const [ssoStatus, setSsoStatus] = react$1.useState(null);
38621
- const ssoName = react$1.useMemo(() => chunk3X37I6QE_cjs.resolveSsoName(user ?? {}, ssoStatus ?? {}), [user, ssoStatus]);
38624
+ const ssoName = react$1.useMemo(() => chunkDJE2E7YH_cjs.resolveSsoName(user ?? {}, ssoStatus ?? {}), [user, ssoStatus]);
38622
38625
  const [password, setPassword] = react$1.useState("");
38623
38626
  const [confirmPassword, setConfirmPassword] = react$1.useState("");
38624
38627
  const [error, setError] = react$1.useState(null);
@@ -38796,7 +38799,7 @@ function ConnectedSsoCallback() {
38796
38799
  setIsCheckingStatus(true);
38797
38800
  try {
38798
38801
  console.info("[SSO] Checking user status...");
38799
- const response = await chunk3X37I6QE_cjs.ssoAccountStatus(arbi, accessToken, user);
38802
+ const response = await chunkDJE2E7YH_cjs.ssoAccountStatus(arbi, accessToken, user);
38800
38803
  console.info("[SSO] User status:", response.status);
38801
38804
  setSsoStatus(response);
38802
38805
  } catch (error2) {
@@ -38840,7 +38843,7 @@ function ConnectedSsoCallback() {
38840
38843
  setIsSubmitting(true);
38841
38844
  setError(null);
38842
38845
  try {
38843
- const { login, registered, linked } = await chunk3X37I6QE_cjs.completeSsoSignIn(arbi, {
38846
+ const { login, registered, linked } = await chunkDJE2E7YH_cjs.completeSsoSignIn(arbi, {
38844
38847
  token: accessToken,
38845
38848
  user,
38846
38849
  status: ssoStatus,
@@ -39292,7 +39295,7 @@ function ConnectedRecoveryKeyDialog({
39292
39295
  const arbi = react.useArbi();
39293
39296
  const { user, isSso: isSsoMode } = react.useArbiSession();
39294
39297
  const userEmail = user?.email;
39295
- const sso = chunk3X37I6QE_cjs.useSsoSignIn();
39298
+ const sso = chunkDJE2E7YH_cjs.useSsoSignIn();
39296
39299
  const handleVerify = async () => {
39297
39300
  setError(null);
39298
39301
  if (!password) {
@@ -39492,27 +39495,27 @@ function ConnectedOAuthConsentPage({
39492
39495
  oauthErrorRedirect(params.redirectUri, params.state, "access_denied");
39493
39496
  }
39494
39497
  if (error && !params) {
39495
- return /* @__PURE__ */ jsxRuntime.jsx(chunkHVOPUYAG_cjs.ConsentPage, { children: /* @__PURE__ */ jsxRuntime.jsx(chunkHVOPUYAG_cjs.ConsentMessage, { tone: "error", title: "Invalid Request", children: error }) });
39498
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkCJF7B5A7_cjs.ConsentPage, { children: /* @__PURE__ */ jsxRuntime.jsx(chunkCJF7B5A7_cjs.ConsentMessage, { tone: "error", title: "Invalid Request", children: error }) });
39496
39499
  }
39497
39500
  if (!params) {
39498
39501
  return null;
39499
39502
  }
39500
39503
  if (clientInfo?.isLocalAgentFlow) {
39501
- return /* @__PURE__ */ jsxRuntime.jsx(chunkHVOPUYAG_cjs.ConsentPage, { children: /* @__PURE__ */ jsxRuntime.jsx(chunkHVOPUYAG_cjs.ConsentMessage, { tone: "warning", title: "Close this tab", children: "This tab opened alongside the correct authorization page. Please close this tab and complete the connection in the other tab that opened at the same time." }) });
39504
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkCJF7B5A7_cjs.ConsentPage, { children: /* @__PURE__ */ jsxRuntime.jsx(chunkCJF7B5A7_cjs.ConsentMessage, { tone: "warning", title: "Close this tab", children: "This tab opened alongside the correct authorization page. Please close this tab and complete the connection in the other tab that opened at the same time." }) });
39502
39505
  }
39503
39506
  if (!isAuthenticated2) {
39504
39507
  return null;
39505
39508
  }
39506
39509
  if (callbackUrl) {
39507
- return /* @__PURE__ */ jsxRuntime.jsx(chunkHVOPUYAG_cjs.ConsentPage, { children: /* @__PURE__ */ jsxRuntime.jsxs(chunkHVOPUYAG_cjs.ConsentCard, { size: "md", children: [
39508
- /* @__PURE__ */ jsxRuntime.jsxs(chunkHVOPUYAG_cjs.ConsentHeader, { icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ClipboardList, {}), title: "Almost there", children: [
39510
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkCJF7B5A7_cjs.ConsentPage, { children: /* @__PURE__ */ jsxRuntime.jsxs(chunkCJF7B5A7_cjs.ConsentCard, { size: "md", children: [
39511
+ /* @__PURE__ */ jsxRuntime.jsxs(chunkCJF7B5A7_cjs.ConsentHeader, { icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ClipboardList, {}), title: "Almost there", children: [
39509
39512
  "A new tab has opened to complete the connection. If it succeeded, you can close this page. If you see a connection error there, paste the URL below into Claude Cowork \u2014",
39510
39513
  " ",
39511
39514
  copied ? "it's already copied to your clipboard." : "copy it first."
39512
39515
  ] }),
39513
- /* @__PURE__ */ jsxRuntime.jsxs(chunkHVOPUYAG_cjs.ConsentSection, { title: "Callback URL", children: [
39514
- /* @__PURE__ */ jsxRuntime.jsx(chunkHVOPUYAG_cjs.CopyableUrl, { url: callbackUrl, copied, onCopy: handleCopy }),
39515
- /* @__PURE__ */ jsxRuntime.jsxs(chunkHVOPUYAG_cjs.ConsentText, { variant: "hint", children: [
39516
+ /* @__PURE__ */ jsxRuntime.jsxs(chunkCJF7B5A7_cjs.ConsentSection, { title: "Callback URL", children: [
39517
+ /* @__PURE__ */ jsxRuntime.jsx(chunkCJF7B5A7_cjs.CopyableUrl, { url: callbackUrl, copied, onCopy: handleCopy }),
39518
+ /* @__PURE__ */ jsxRuntime.jsxs(chunkCJF7B5A7_cjs.ConsentText, { variant: "hint", children: [
39516
39519
  "In Claude Code, paste the URL at the prompt that says",
39517
39520
  " ",
39518
39521
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-mono text-foreground", children: '"paste the full redirect URL here"' }),
@@ -39521,17 +39524,17 @@ function ConnectedOAuthConsentPage({
39521
39524
  ] })
39522
39525
  ] }) });
39523
39526
  }
39524
- return /* @__PURE__ */ jsxRuntime.jsx(chunkHVOPUYAG_cjs.ConsentPage, { children: /* @__PURE__ */ jsxRuntime.jsxs(chunkHVOPUYAG_cjs.ConsentCard, { children: [
39525
- /* @__PURE__ */ jsxRuntime.jsxs(chunkHVOPUYAG_cjs.ConsentHeader, { icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Link2, {}), title: `Connect to ${appName}`, children: [
39526
- /* @__PURE__ */ jsxRuntime.jsx(chunkHVOPUYAG_cjs.ConsentStrong, { children: clientInfo?.name ?? params.clientId }),
39527
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkCJF7B5A7_cjs.ConsentPage, { children: /* @__PURE__ */ jsxRuntime.jsxs(chunkCJF7B5A7_cjs.ConsentCard, { children: [
39528
+ /* @__PURE__ */ jsxRuntime.jsxs(chunkCJF7B5A7_cjs.ConsentHeader, { icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Link2, {}), title: `Connect to ${appName}`, children: [
39529
+ /* @__PURE__ */ jsxRuntime.jsx(chunkCJF7B5A7_cjs.ConsentStrong, { children: clientInfo?.name ?? params.clientId }),
39527
39530
  " is requesting access to your ",
39528
39531
  appName,
39529
39532
  " workspace."
39530
39533
  ] }),
39531
- /* @__PURE__ */ jsxRuntime.jsx(chunkHVOPUYAG_cjs.ConsentSection, { title: "This will allow", children: /* @__PURE__ */ jsxRuntime.jsx(chunkHVOPUYAG_cjs.ConsentPermissionList, { items: permissions }) }),
39532
- error && /* @__PURE__ */ jsxRuntime.jsx(chunkHVOPUYAG_cjs.ConsentNotice, { tone: "error", children: error }),
39533
- /* @__PURE__ */ jsxRuntime.jsx(chunkHVOPUYAG_cjs.ConsentActions, { isLoading: loading, onDeny: handleDeny, onAllow: handleAllow }),
39534
- /* @__PURE__ */ jsxRuntime.jsx(chunkHVOPUYAG_cjs.ConsentFootnote, { children: footnote })
39534
+ /* @__PURE__ */ jsxRuntime.jsx(chunkCJF7B5A7_cjs.ConsentSection, { title: "This will allow", children: /* @__PURE__ */ jsxRuntime.jsx(chunkCJF7B5A7_cjs.ConsentPermissionList, { items: permissions }) }),
39535
+ error && /* @__PURE__ */ jsxRuntime.jsx(chunkCJF7B5A7_cjs.ConsentNotice, { tone: "error", children: error }),
39536
+ /* @__PURE__ */ jsxRuntime.jsx(chunkCJF7B5A7_cjs.ConsentActions, { isLoading: loading, onDeny: handleDeny, onAllow: handleAllow }),
39537
+ /* @__PURE__ */ jsxRuntime.jsx(chunkCJF7B5A7_cjs.ConsentFootnote, { children: footnote })
39535
39538
  ] }) });
39536
39539
  }
39537
39540
  function ConnectedSharedFilesPage({
@@ -39709,7 +39712,7 @@ function ConnectedPanelHost({
39709
39712
  onClose();
39710
39713
  }, [onClose]);
39711
39714
  const setFocusedArea = react.useArbiSessionStore().setFocusedArea;
39712
- const { popoutTitle } = chunkODQK3LX5_cjs.usePanelHostSupport();
39715
+ const { popoutTitle } = chunkZZHMJXM5_cjs.usePanelHostSupport();
39713
39716
  const focusedArea = react.useArbiSessionState((s) => s.shell.focusedArea);
39714
39717
  const handlePanelFocus = react$1.useCallback(() => {
39715
39718
  setFocusedArea(panelId);
@@ -39742,7 +39745,7 @@ function ConnectedPanelHost({
39742
39745
  }, [isExiting]);
39743
39746
  if (!isOpen && !isExiting) return null;
39744
39747
  const modeSwitcher = /* @__PURE__ */ jsxRuntime.jsx(
39745
- chunkODQK3LX5_cjs.PanelModeSwitcher,
39748
+ chunkZZHMJXM5_cjs.PanelModeSwitcher,
39746
39749
  {
39747
39750
  mode,
39748
39751
  onModeChange: setPanelMode,
@@ -39768,7 +39771,7 @@ function ConnectedPanelHost({
39768
39771
  }
39769
39772
  );
39770
39773
  return /* @__PURE__ */ jsxRuntime.jsx(
39771
- chunkODQK3LX5_cjs.PanelPortal,
39774
+ chunkZZHMJXM5_cjs.PanelPortal,
39772
39775
  {
39773
39776
  defaultWidth,
39774
39777
  panelId,
@@ -39807,7 +39810,7 @@ function ConnectedAppShell({
39807
39810
  const session = react.useArbiSessionStore();
39808
39811
  const dockedPanel = react.useArbiSessionState((state) => state.shell.panels.docked);
39809
39812
  const dockSqueezed = chunkFX3K6LNZ_cjs.useMediaQuery(sidebarPolicy?.dockedRailQuery ?? "(max-width: 0px)");
39810
- const sidebar = chunkODQK3LX5_cjs.useSidebarController({
39813
+ const sidebar = chunkZZHMJXM5_cjs.useSidebarController({
39811
39814
  ...useSessionSidebar(),
39812
39815
  forceRail: !!sidebarPolicy?.dockedRailQuery && dockSqueezed && dockedPanel !== null,
39813
39816
  hoverExpansion: sidebarPolicy?.hoverExpansion
@@ -39837,7 +39840,7 @@ function ConnectedAppShell({
39837
39840
  if (focusMainOnClick) session.setFocusedArea("main");
39838
39841
  contentProps?.onClick?.(event);
39839
39842
  },
39840
- children: content.mode === "docked" ? /* @__PURE__ */ jsxRuntime.jsxs(chunkODQK3LX5_cjs.DockZone, { "data-testid": content.testId, children: [
39843
+ children: content.mode === "docked" ? /* @__PURE__ */ jsxRuntime.jsxs(chunkZZHMJXM5_cjs.DockZone, { "data-testid": content.testId, children: [
39841
39844
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: content.mainPanelVisible ? "hidden" : "h-full min-h-0", children: pageContent }),
39842
39845
  /* @__PURE__ */ jsxRuntime.jsx(
39843
39846
  "div",
@@ -39856,10 +39859,10 @@ function useContextualHints() {
39856
39859
  const session = react.useArbiSessionStore();
39857
39860
  const { data: userSettings } = react.useUserSettings();
39858
39861
  const updateUserSettings = react.useUpdateUserSettings();
39859
- const [sessionOverride] = react.useTransientView(chunk4RJPTXUQ_cjs.TIPS_VISIBILITY_OVERRIDE, null);
39860
- const setShowHints = (value) => chunk4RJPTXUQ_cjs.setHintsSessionOverride(session, value);
39862
+ const [sessionOverride] = react.useTransientView(chunk7MOQO6NO_cjs.TIPS_VISIBILITY_OVERRIDE, null);
39863
+ const setShowHints = (value) => chunk7MOQO6NO_cjs.setHintsSessionOverride(session, value);
39861
39864
  const setShowHintsPersisted = (value) => {
39862
- chunk4RJPTXUQ_cjs.setHintsSessionOverride(session, null);
39865
+ chunk7MOQO6NO_cjs.setHintsSessionOverride(session, null);
39863
39866
  updateUserSettings.mutate({ show_hints: value });
39864
39867
  };
39865
39868
  return {
@@ -39967,55 +39970,55 @@ function ChromeInstallDialog({
39967
39970
 
39968
39971
  Object.defineProperty(exports, "CAP_REACHED_MESSAGE", {
39969
39972
  enumerable: true,
39970
- get: function () { return chunkCCSF7RI4_cjs.CAP_REACHED_MESSAGE; }
39973
+ get: function () { return chunkEG3BB32W_cjs.CAP_REACHED_MESSAGE; }
39971
39974
  });
39972
39975
  Object.defineProperty(exports, "ZERO_BUDGET_MESSAGE", {
39973
39976
  enumerable: true,
39974
- get: function () { return chunkCCSF7RI4_cjs.ZERO_BUDGET_MESSAGE; }
39977
+ get: function () { return chunkEG3BB32W_cjs.ZERO_BUDGET_MESSAGE; }
39975
39978
  });
39976
39979
  Object.defineProperty(exports, "aiUsageResetTimestamp", {
39977
39980
  enumerable: true,
39978
- get: function () { return chunkCCSF7RI4_cjs.aiUsageResetTimestamp; }
39981
+ get: function () { return chunkEG3BB32W_cjs.aiUsageResetTimestamp; }
39979
39982
  });
39980
39983
  Object.defineProperty(exports, "formatMoney", {
39981
39984
  enumerable: true,
39982
- get: function () { return chunkCCSF7RI4_cjs.formatMoney; }
39985
+ get: function () { return chunkEG3BB32W_cjs.formatMoney; }
39983
39986
  });
39984
39987
  Object.defineProperty(exports, "formatResetDate", {
39985
39988
  enumerable: true,
39986
- get: function () { return chunkCCSF7RI4_cjs.formatResetDate; }
39989
+ get: function () { return chunkEG3BB32W_cjs.formatResetDate; }
39987
39990
  });
39988
39991
  Object.defineProperty(exports, "getQuotaItems", {
39989
39992
  enumerable: true,
39990
- get: function () { return chunkCCSF7RI4_cjs.getQuotaItems; }
39993
+ get: function () { return chunkEG3BB32W_cjs.getQuotaItems; }
39991
39994
  });
39992
39995
  Object.defineProperty(exports, "isAddonBudgetZero", {
39993
39996
  enumerable: true,
39994
- get: function () { return chunkCCSF7RI4_cjs.isAddonBudgetZero; }
39997
+ get: function () { return chunkEG3BB32W_cjs.isAddonBudgetZero; }
39995
39998
  });
39996
39999
  Object.defineProperty(exports, "isProProject", {
39997
40000
  enumerable: true,
39998
- get: function () { return chunkCCSF7RI4_cjs.isProProject; }
40001
+ get: function () { return chunkEG3BB32W_cjs.isProProject; }
39999
40002
  });
40000
40003
  Object.defineProperty(exports, "planBadgeView", {
40001
40004
  enumerable: true,
40002
- get: function () { return chunkCCSF7RI4_cjs.planBadgeView; }
40005
+ get: function () { return chunkEG3BB32W_cjs.planBadgeView; }
40003
40006
  });
40004
40007
  Object.defineProperty(exports, "planName", {
40005
40008
  enumerable: true,
40006
- get: function () { return chunkCCSF7RI4_cjs.planName; }
40009
+ get: function () { return chunkEG3BB32W_cjs.planName; }
40007
40010
  });
40008
40011
  Object.defineProperty(exports, "projectGroupBilling", {
40009
40012
  enumerable: true,
40010
- get: function () { return chunkCCSF7RI4_cjs.projectGroupBilling; }
40013
+ get: function () { return chunkEG3BB32W_cjs.projectGroupBilling; }
40011
40014
  });
40012
40015
  Object.defineProperty(exports, "useBillingSupport", {
40013
40016
  enumerable: true,
40014
- get: function () { return chunkCCSF7RI4_cjs.useBillingSupport; }
40017
+ get: function () { return chunkEG3BB32W_cjs.useBillingSupport; }
40015
40018
  });
40016
40019
  Object.defineProperty(exports, "useRewardBalance", {
40017
40020
  enumerable: true,
40018
- get: function () { return chunkCCSF7RI4_cjs.useRewardBalance; }
40021
+ get: function () { return chunkEG3BB32W_cjs.useRewardBalance; }
40019
40022
  });
40020
40023
  Object.defineProperty(exports, "ConnectedTagEntity", {
40021
40024
  enumerable: true,
@@ -40063,91 +40066,91 @@ Object.defineProperty(exports, "useWorkspaceDocs", {
40063
40066
  });
40064
40067
  Object.defineProperty(exports, "ConnectedTaskActivityDialog", {
40065
40068
  enumerable: true,
40066
- get: function () { return chunkX3JJTHQ4_cjs.ConnectedTaskActivityDialog; }
40069
+ get: function () { return chunkJSHBC47B_cjs.ConnectedTaskActivityDialog; }
40067
40070
  });
40068
40071
  Object.defineProperty(exports, "ConnectedTaskComposer", {
40069
40072
  enumerable: true,
40070
- get: function () { return chunkX3JJTHQ4_cjs.ConnectedTaskComposer; }
40073
+ get: function () { return chunkJSHBC47B_cjs.ConnectedTaskComposer; }
40071
40074
  });
40072
40075
  Object.defineProperty(exports, "ConnectedThreadTaskBar", {
40073
40076
  enumerable: true,
40074
- get: function () { return chunkX3JJTHQ4_cjs.ConnectedThreadTaskBar; }
40077
+ get: function () { return chunkJSHBC47B_cjs.ConnectedThreadTaskBar; }
40075
40078
  });
40076
40079
  Object.defineProperty(exports, "ConnectedWorkflowHistory", {
40077
40080
  enumerable: true,
40078
- get: function () { return chunkX3JJTHQ4_cjs.ConnectedWorkflowHistory; }
40081
+ get: function () { return chunkJSHBC47B_cjs.ConnectedWorkflowHistory; }
40079
40082
  });
40080
40083
  Object.defineProperty(exports, "ConnectedWorkflowRunner", {
40081
40084
  enumerable: true,
40082
- get: function () { return chunkX3JJTHQ4_cjs.ConnectedWorkflowRunner; }
40085
+ get: function () { return chunkJSHBC47B_cjs.ConnectedWorkflowRunner; }
40083
40086
  });
40084
40087
  Object.defineProperty(exports, "DEFAULT_CONNECTED_WORKFLOW_RUNNER_LABELS", {
40085
40088
  enumerable: true,
40086
- get: function () { return chunkX3JJTHQ4_cjs.DEFAULT_CONNECTED_WORKFLOW_RUNNER_LABELS; }
40089
+ get: function () { return chunkJSHBC47B_cjs.DEFAULT_CONNECTED_WORKFLOW_RUNNER_LABELS; }
40087
40090
  });
40088
40091
  Object.defineProperty(exports, "DEFAULT_WORKFLOW_RUN_PAGE_LABELS", {
40089
40092
  enumerable: true,
40090
- get: function () { return chunkX3JJTHQ4_cjs.DEFAULT_WORKFLOW_RUN_PAGE_LABELS; }
40093
+ get: function () { return chunkJSHBC47B_cjs.DEFAULT_WORKFLOW_RUN_PAGE_LABELS; }
40091
40094
  });
40092
40095
  Object.defineProperty(exports, "WorkflowRunThread", {
40093
40096
  enumerable: true,
40094
- get: function () { return chunkX3JJTHQ4_cjs.WorkflowRunThread; }
40097
+ get: function () { return chunkJSHBC47B_cjs.WorkflowRunThread; }
40095
40098
  });
40096
40099
  Object.defineProperty(exports, "WorkflowRunWorkspaceChangedError", {
40097
40100
  enumerable: true,
40098
- get: function () { return chunkX3JJTHQ4_cjs.WorkflowRunWorkspaceChangedError; }
40101
+ get: function () { return chunkJSHBC47B_cjs.WorkflowRunWorkspaceChangedError; }
40099
40102
  });
40100
40103
  Object.defineProperty(exports, "buildProjectSummaries", {
40101
40104
  enumerable: true,
40102
- get: function () { return chunkX3JJTHQ4_cjs.buildProjectSummaries; }
40105
+ get: function () { return chunkJSHBC47B_cjs.buildProjectSummaries; }
40103
40106
  });
40104
40107
  Object.defineProperty(exports, "primaryProjectWorkspace", {
40105
40108
  enumerable: true,
40106
- get: function () { return chunkX3JJTHQ4_cjs.primaryProjectWorkspace; }
40109
+ get: function () { return chunkJSHBC47B_cjs.primaryProjectWorkspace; }
40107
40110
  });
40108
40111
  Object.defineProperty(exports, "useEnsureRequiredLabels", {
40109
40112
  enumerable: true,
40110
- get: function () { return chunkX3JJTHQ4_cjs.useEnsureRequiredLabels; }
40113
+ get: function () { return chunkJSHBC47B_cjs.useEnsureRequiredLabels; }
40111
40114
  });
40112
40115
  Object.defineProperty(exports, "useProjectSummaries", {
40113
40116
  enumerable: true,
40114
- get: function () { return chunkX3JJTHQ4_cjs.useProjectSummaries; }
40117
+ get: function () { return chunkJSHBC47B_cjs.useProjectSummaries; }
40115
40118
  });
40116
40119
  Object.defineProperty(exports, "useProjectSummary", {
40117
40120
  enumerable: true,
40118
- get: function () { return chunkX3JJTHQ4_cjs.useProjectSummary; }
40121
+ get: function () { return chunkJSHBC47B_cjs.useProjectSummary; }
40119
40122
  });
40120
40123
  Object.defineProperty(exports, "useRenderTaskPerson", {
40121
40124
  enumerable: true,
40122
- get: function () { return chunkX3JJTHQ4_cjs.useRenderTaskPerson; }
40125
+ get: function () { return chunkJSHBC47B_cjs.useRenderTaskPerson; }
40123
40126
  });
40124
40127
  Object.defineProperty(exports, "useRequiredLabels", {
40125
40128
  enumerable: true,
40126
- get: function () { return chunkX3JJTHQ4_cjs.useRequiredLabels; }
40129
+ get: function () { return chunkJSHBC47B_cjs.useRequiredLabels; }
40127
40130
  });
40128
40131
  Object.defineProperty(exports, "useSkillsEnabled", {
40129
40132
  enumerable: true,
40130
- get: function () { return chunkX3JJTHQ4_cjs.useSkillsEnabled; }
40133
+ get: function () { return chunkJSHBC47B_cjs.useSkillsEnabled; }
40131
40134
  });
40132
40135
  Object.defineProperty(exports, "useTaskPeople", {
40133
40136
  enumerable: true,
40134
- get: function () { return chunkX3JJTHQ4_cjs.useTaskPeople; }
40137
+ get: function () { return chunkJSHBC47B_cjs.useTaskPeople; }
40135
40138
  });
40136
40139
  Object.defineProperty(exports, "useWorkflowDefinitions", {
40137
40140
  enumerable: true,
40138
- get: function () { return chunkX3JJTHQ4_cjs.useWorkflowDefinitions; }
40141
+ get: function () { return chunkJSHBC47B_cjs.useWorkflowDefinitions; }
40139
40142
  });
40140
40143
  Object.defineProperty(exports, "useWorkflowTasks", {
40141
40144
  enumerable: true,
40142
- get: function () { return chunkX3JJTHQ4_cjs.useWorkflowTasks; }
40145
+ get: function () { return chunkJSHBC47B_cjs.useWorkflowTasks; }
40143
40146
  });
40144
40147
  Object.defineProperty(exports, "useWorkflowsPageState", {
40145
40148
  enumerable: true,
40146
- get: function () { return chunkX3JJTHQ4_cjs.useWorkflowsPageState; }
40149
+ get: function () { return chunkJSHBC47B_cjs.useWorkflowsPageState; }
40147
40150
  });
40148
40151
  Object.defineProperty(exports, "workflowRunView", {
40149
40152
  enumerable: true,
40150
- get: function () { return chunkX3JJTHQ4_cjs.workflowRunView; }
40153
+ get: function () { return chunkJSHBC47B_cjs.workflowRunView; }
40151
40154
  });
40152
40155
  Object.defineProperty(exports, "FILES_PREFS_KEY", {
40153
40156
  enumerable: true,
@@ -40183,131 +40186,131 @@ Object.defineProperty(exports, "usePendingFolders", {
40183
40186
  });
40184
40187
  Object.defineProperty(exports, "AgentSteps", {
40185
40188
  enumerable: true,
40186
- get: function () { return chunk3X37I6QE_cjs.AgentSteps; }
40189
+ get: function () { return chunkDJE2E7YH_cjs.AgentSteps; }
40187
40190
  });
40188
40191
  Object.defineProperty(exports, "AnswerTable", {
40189
40192
  enumerable: true,
40190
- get: function () { return chunk3X37I6QE_cjs.AnswerTable; }
40193
+ get: function () { return chunkDJE2E7YH_cjs.AnswerTable; }
40191
40194
  });
40192
40195
  Object.defineProperty(exports, "ArbiChat", {
40193
40196
  enumerable: true,
40194
- get: function () { return chunk3X37I6QE_cjs.ArbiChat; }
40197
+ get: function () { return chunkDJE2E7YH_cjs.ArbiChat; }
40195
40198
  });
40196
40199
  Object.defineProperty(exports, "AskAgainContext", {
40197
40200
  enumerable: true,
40198
- get: function () { return chunk3X37I6QE_cjs.AskAgainContext; }
40201
+ get: function () { return chunkDJE2E7YH_cjs.AskAgainContext; }
40199
40202
  });
40200
40203
  Object.defineProperty(exports, "ConnectedBranchControls", {
40201
40204
  enumerable: true,
40202
- get: function () { return chunk3X37I6QE_cjs.ConnectedBranchControls; }
40205
+ get: function () { return chunkDJE2E7YH_cjs.ConnectedBranchControls; }
40203
40206
  });
40204
40207
  Object.defineProperty(exports, "ConnectedCitationRenderer", {
40205
40208
  enumerable: true,
40206
- get: function () { return chunk3X37I6QE_cjs.ConnectedCitationRenderer; }
40209
+ get: function () { return chunkDJE2E7YH_cjs.ConnectedCitationRenderer; }
40207
40210
  });
40208
40211
  Object.defineProperty(exports, "ConnectedCompactConversation", {
40209
40212
  enumerable: true,
40210
- get: function () { return chunk3X37I6QE_cjs.ConnectedCompactConversation; }
40213
+ get: function () { return chunkDJE2E7YH_cjs.ConnectedCompactConversation; }
40211
40214
  });
40212
40215
  Object.defineProperty(exports, "ConnectedConversationDocumentPicker", {
40213
40216
  enumerable: true,
40214
- get: function () { return chunk3X37I6QE_cjs.ConnectedConversationDocumentPicker; }
40217
+ get: function () { return chunkDJE2E7YH_cjs.ConnectedConversationDocumentPicker; }
40215
40218
  });
40216
40219
  Object.defineProperty(exports, "ConnectedEmbeddedChat", {
40217
40220
  enumerable: true,
40218
- get: function () { return chunk3X37I6QE_cjs.ConnectedEmbeddedChat; }
40221
+ get: function () { return chunkDJE2E7YH_cjs.ConnectedEmbeddedChat; }
40219
40222
  });
40220
40223
  Object.defineProperty(exports, "ConnectedMessage", {
40221
40224
  enumerable: true,
40222
- get: function () { return chunk3X37I6QE_cjs.ConnectedMessage; }
40225
+ get: function () { return chunkDJE2E7YH_cjs.ConnectedMessage; }
40223
40226
  });
40224
40227
  Object.defineProperty(exports, "ConnectedMessageArea", {
40225
40228
  enumerable: true,
40226
- get: function () { return chunk3X37I6QE_cjs.ConnectedMessageArea; }
40229
+ get: function () { return chunkDJE2E7YH_cjs.ConnectedMessageArea; }
40227
40230
  });
40228
40231
  Object.defineProperty(exports, "ConnectedMessageList", {
40229
40232
  enumerable: true,
40230
- get: function () { return chunk3X37I6QE_cjs.ConnectedMessageList; }
40233
+ get: function () { return chunkDJE2E7YH_cjs.ConnectedMessageList; }
40231
40234
  });
40232
40235
  Object.defineProperty(exports, "ConnectedThreadsPreview", {
40233
40236
  enumerable: true,
40234
- get: function () { return chunk3X37I6QE_cjs.ConnectedThreadsPreview; }
40237
+ get: function () { return chunkDJE2E7YH_cjs.ConnectedThreadsPreview; }
40235
40238
  });
40236
40239
  Object.defineProperty(exports, "ConnectedUserEntity", {
40237
40240
  enumerable: true,
40238
- get: function () { return chunk3X37I6QE_cjs.ConnectedUserEntity; }
40241
+ get: function () { return chunkDJE2E7YH_cjs.ConnectedUserEntity; }
40239
40242
  });
40240
40243
  Object.defineProperty(exports, "ConversationComposer", {
40241
40244
  enumerable: true,
40242
- get: function () { return chunk3X37I6QE_cjs.ConversationComposer; }
40245
+ get: function () { return chunkDJE2E7YH_cjs.ConversationComposer; }
40243
40246
  });
40244
40247
  Object.defineProperty(exports, "EmbeddedChatPanel", {
40245
40248
  enumerable: true,
40246
- get: function () { return chunk3X37I6QE_cjs.EmbeddedChatPanel; }
40249
+ get: function () { return chunkDJE2E7YH_cjs.EmbeddedChatPanel; }
40247
40250
  });
40248
40251
  Object.defineProperty(exports, "MessageDetailsModal", {
40249
40252
  enumerable: true,
40250
- get: function () { return chunk3X37I6QE_cjs.MessageDetailsModal; }
40253
+ get: function () { return chunkDJE2E7YH_cjs.MessageDetailsModal; }
40251
40254
  });
40252
40255
  Object.defineProperty(exports, "MessageLiveSeconds", {
40253
40256
  enumerable: true,
40254
- get: function () { return chunk3X37I6QE_cjs.MessageLiveSeconds; }
40257
+ get: function () { return chunkDJE2E7YH_cjs.MessageLiveSeconds; }
40255
40258
  });
40256
40259
  Object.defineProperty(exports, "RunningSubagents", {
40257
40260
  enumerable: true,
40258
- get: function () { return chunk3X37I6QE_cjs.RunningSubagents; }
40261
+ get: function () { return chunkDJE2E7YH_cjs.RunningSubagents; }
40259
40262
  });
40260
40263
  Object.defineProperty(exports, "SourceChips", {
40261
40264
  enumerable: true,
40262
- get: function () { return chunk3X37I6QE_cjs.SourceChips; }
40265
+ get: function () { return chunkDJE2E7YH_cjs.SourceChips; }
40263
40266
  });
40264
40267
  Object.defineProperty(exports, "WorkflowStepMessage", {
40265
40268
  enumerable: true,
40266
- get: function () { return chunk3X37I6QE_cjs.WorkflowStepMessage; }
40269
+ get: function () { return chunkDJE2E7YH_cjs.WorkflowStepMessage; }
40267
40270
  });
40268
40271
  Object.defineProperty(exports, "backUpOnSignup", {
40269
40272
  enumerable: true,
40270
- get: function () { return chunk3X37I6QE_cjs.backUpOnSignup; }
40273
+ get: function () { return chunkDJE2E7YH_cjs.backUpOnSignup; }
40271
40274
  });
40272
40275
  Object.defineProperty(exports, "defaultHost", {
40273
40276
  enumerable: true,
40274
- get: function () { return chunk3X37I6QE_cjs.defaultHost; }
40277
+ get: function () { return chunkDJE2E7YH_cjs.defaultHost; }
40275
40278
  });
40276
40279
  Object.defineProperty(exports, "renderConnectedUser", {
40277
40280
  enumerable: true,
40278
- get: function () { return chunk3X37I6QE_cjs.renderConnectedUser; }
40281
+ get: function () { return chunkDJE2E7YH_cjs.renderConnectedUser; }
40279
40282
  });
40280
40283
  Object.defineProperty(exports, "resolveSsoName", {
40281
40284
  enumerable: true,
40282
- get: function () { return chunk3X37I6QE_cjs.resolveSsoName; }
40285
+ get: function () { return chunkDJE2E7YH_cjs.resolveSsoName; }
40283
40286
  });
40284
40287
  Object.defineProperty(exports, "useAuthPages", {
40285
40288
  enumerable: true,
40286
- get: function () { return chunk3X37I6QE_cjs.useAuthPages; }
40289
+ get: function () { return chunkDJE2E7YH_cjs.useAuthPages; }
40287
40290
  });
40288
40291
  Object.defineProperty(exports, "useOpenChunk", {
40289
40292
  enumerable: true,
40290
- get: function () { return chunk3X37I6QE_cjs.useOpenChunk; }
40293
+ get: function () { return chunkDJE2E7YH_cjs.useOpenChunk; }
40291
40294
  });
40292
40295
  Object.defineProperty(exports, "useOpenWorkspaceIcon", {
40293
40296
  enumerable: true,
40294
- get: function () { return chunk3X37I6QE_cjs.useOpenWorkspaceIcon; }
40297
+ get: function () { return chunkDJE2E7YH_cjs.useOpenWorkspaceIcon; }
40295
40298
  });
40296
40299
  Object.defineProperty(exports, "useSlashItems", {
40297
40300
  enumerable: true,
40298
- get: function () { return chunk3X37I6QE_cjs.useSlashItems; }
40301
+ get: function () { return chunkDJE2E7YH_cjs.useSlashItems; }
40299
40302
  });
40300
40303
  Object.defineProperty(exports, "useSsoSignIn", {
40301
40304
  enumerable: true,
40302
- get: function () { return chunk3X37I6QE_cjs.useSsoSignIn; }
40305
+ get: function () { return chunkDJE2E7YH_cjs.useSsoSignIn; }
40303
40306
  });
40304
40307
  Object.defineProperty(exports, "useWorkspaceDocTitles", {
40305
40308
  enumerable: true,
40306
- get: function () { return chunk3X37I6QE_cjs.useWorkspaceDocTitles; }
40309
+ get: function () { return chunkDJE2E7YH_cjs.useWorkspaceDocTitles; }
40307
40310
  });
40308
40311
  Object.defineProperty(exports, "useConnectedThreadActivity", {
40309
40312
  enumerable: true,
40310
- get: function () { return chunkLBKTTQUR_cjs.useConnectedThreadActivity; }
40313
+ get: function () { return chunkCMYJEIZB_cjs.useConnectedThreadActivity; }
40311
40314
  });
40312
40315
  Object.defineProperty(exports, "ConnectedPendingSyncDialog", {
40313
40316
  enumerable: true,
@@ -40383,43 +40386,43 @@ Object.defineProperty(exports, "useResolvedDocStatus", {
40383
40386
  });
40384
40387
  Object.defineProperty(exports, "ConnectedWorkflowDocumentsField", {
40385
40388
  enumerable: true,
40386
- get: function () { return chunkUDMII47W_cjs.ConnectedWorkflowDocumentsField; }
40389
+ get: function () { return chunkWBLCPCWR_cjs.ConnectedWorkflowDocumentsField; }
40387
40390
  });
40388
40391
  Object.defineProperty(exports, "ConnectedWorkflowLauncher", {
40389
40392
  enumerable: true,
40390
- get: function () { return chunkUDMII47W_cjs.ConnectedWorkflowLauncher; }
40393
+ get: function () { return chunkWBLCPCWR_cjs.ConnectedWorkflowLauncher; }
40391
40394
  });
40392
40395
  Object.defineProperty(exports, "ConnectedWorkflowsTable", {
40393
40396
  enumerable: true,
40394
- get: function () { return chunkUDMII47W_cjs.ConnectedWorkflowsTable; }
40397
+ get: function () { return chunkWBLCPCWR_cjs.ConnectedWorkflowsTable; }
40395
40398
  });
40396
40399
  Object.defineProperty(exports, "DEFAULT_CONNECTED_WORKFLOWS_TABLE_LABELS", {
40397
40400
  enumerable: true,
40398
- get: function () { return chunkUDMII47W_cjs.DEFAULT_CONNECTED_WORKFLOWS_TABLE_LABELS; }
40401
+ get: function () { return chunkWBLCPCWR_cjs.DEFAULT_CONNECTED_WORKFLOWS_TABLE_LABELS; }
40399
40402
  });
40400
40403
  Object.defineProperty(exports, "toWorkflowFieldDocument", {
40401
40404
  enumerable: true,
40402
- get: function () { return chunkUDMII47W_cjs.toWorkflowFieldDocument; }
40405
+ get: function () { return chunkWBLCPCWR_cjs.toWorkflowFieldDocument; }
40403
40406
  });
40404
40407
  Object.defineProperty(exports, "useConnectedAgentOptions", {
40405
40408
  enumerable: true,
40406
- get: function () { return chunkUDMII47W_cjs.useConnectedAgentOptions; }
40409
+ get: function () { return chunkWBLCPCWR_cjs.useConnectedAgentOptions; }
40407
40410
  });
40408
40411
  Object.defineProperty(exports, "useConnectedWorkflowScopeSource", {
40409
40412
  enumerable: true,
40410
- get: function () { return chunkUDMII47W_cjs.useConnectedWorkflowScopeSource; }
40413
+ get: function () { return chunkWBLCPCWR_cjs.useConnectedWorkflowScopeSource; }
40411
40414
  });
40412
40415
  Object.defineProperty(exports, "useConnectedWorkspaceRole", {
40413
40416
  enumerable: true,
40414
- get: function () { return chunkUDMII47W_cjs.useConnectedWorkspaceRole; }
40417
+ get: function () { return chunkWBLCPCWR_cjs.useConnectedWorkspaceRole; }
40415
40418
  });
40416
40419
  Object.defineProperty(exports, "useDocxCommentTarget", {
40417
40420
  enumerable: true,
40418
- get: function () { return chunkUDMII47W_cjs.useDocxCommentTarget; }
40421
+ get: function () { return chunkWBLCPCWR_cjs.useDocxCommentTarget; }
40419
40422
  });
40420
40423
  Object.defineProperty(exports, "useNativeDocxSupport", {
40421
40424
  enumerable: true,
40422
- get: function () { return chunkUDMII47W_cjs.useNativeDocxSupport; }
40425
+ get: function () { return chunkWBLCPCWR_cjs.useNativeDocxSupport; }
40423
40426
  });
40424
40427
  Object.defineProperty(exports, "useOpenWorkflow", {
40425
40428
  enumerable: true,