@arbidocs/blocks 0.5.62 → 0.5.63

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 (168) hide show
  1. package/README.md +7 -0
  2. package/dist/{ConnectedCallDock-CRECGH7K.js → ConnectedCallDock-DEAEFUUD.js} +5 -5
  3. package/dist/{ConnectedCallDock-CRECGH7K.js.map → ConnectedCallDock-DEAEFUUD.js.map} +1 -1
  4. package/dist/{ConnectedCallDock-RGDNX76B.cjs → ConnectedCallDock-GJAGY75U.cjs} +14 -14
  5. package/dist/{ConnectedCallDock-RGDNX76B.cjs.map → ConnectedCallDock-GJAGY75U.cjs.map} +1 -1
  6. package/dist/{ConnectedCallRoom-Z2M6QRJJ.js → ConnectedCallRoom-DI7UYRHE.js} +5 -5
  7. package/dist/{ConnectedCallRoom-Z2M6QRJJ.js.map → ConnectedCallRoom-DI7UYRHE.js.map} +1 -1
  8. package/dist/{ConnectedCallRoom-LM7UNH34.cjs → ConnectedCallRoom-KLE2PCMQ.cjs} +6 -6
  9. package/dist/{ConnectedCallRoom-LM7UNH34.cjs.map → ConnectedCallRoom-KLE2PCMQ.cjs.map} +1 -1
  10. package/dist/{ConnectedDocumentViewer-ELA7R4RJ.js → ConnectedDocumentViewer-7VKAM6KD.js} +8 -8
  11. package/dist/{ConnectedDocumentViewer-ELA7R4RJ.js.map → ConnectedDocumentViewer-7VKAM6KD.js.map} +1 -1
  12. package/dist/{ConnectedDocumentViewer-6SFJWKXN.cjs → ConnectedDocumentViewer-FGQ27H4B.cjs} +9 -9
  13. package/dist/{ConnectedDocumentViewer-6SFJWKXN.cjs.map → ConnectedDocumentViewer-FGQ27H4B.cjs.map} +1 -1
  14. package/dist/{ConnectedNativeDocxComparison-3MCCETF5.js → ConnectedNativeDocxComparison-FPW3BNBN.js} +8 -8
  15. package/dist/ConnectedNativeDocxComparison-FPW3BNBN.js.map +1 -0
  16. package/dist/{ConnectedNativeDocxComparison-XZIRCESL.cjs → ConnectedNativeDocxComparison-HJ4FTVH6.cjs} +9 -9
  17. package/dist/ConnectedNativeDocxComparison-HJ4FTVH6.cjs.map +1 -0
  18. package/dist/{ConnectedNativeDocxEditor-YE6KA53Q.cjs → ConnectedNativeDocxEditor-PF46MU5H.cjs} +9 -9
  19. package/dist/ConnectedNativeDocxEditor-PF46MU5H.cjs.map +1 -0
  20. package/dist/{ConnectedNativeDocxEditor-FGW35PIL.js → ConnectedNativeDocxEditor-S7NJMDSU.js} +7 -7
  21. package/dist/ConnectedNativeDocxEditor-S7NJMDSU.js.map +1 -0
  22. package/dist/{ConnectedStreamedWordArtifact-N6YRKWDH.js → ConnectedStreamedWordArtifact-5MHLV24V.js} +8 -8
  23. package/dist/ConnectedStreamedWordArtifact-5MHLV24V.js.map +1 -0
  24. package/dist/{ConnectedStreamedWordArtifact-ROPYU3LE.cjs → ConnectedStreamedWordArtifact-LNGW7YGV.cjs} +9 -9
  25. package/dist/ConnectedStreamedWordArtifact-LNGW7YGV.cjs.map +1 -0
  26. package/dist/{DocumentReviewCard-SYBCU7NL.js → DocumentReviewCard-5U3TGJZA.js} +7 -7
  27. package/dist/{DocumentReviewCard-SYBCU7NL.js.map → DocumentReviewCard-5U3TGJZA.js.map} +1 -1
  28. package/dist/{DocumentReviewCard-YOZMWE33.cjs → DocumentReviewCard-VFNMJSK7.cjs} +7 -7
  29. package/dist/{DocumentReviewCard-YOZMWE33.cjs.map → DocumentReviewCard-VFNMJSK7.cjs.map} +1 -1
  30. package/dist/{WorkspaceTableView-4DGONK5A.cjs → WorkspaceTableView-DHMCJRC6.cjs} +7 -7
  31. package/dist/{WorkspaceTableView-4DGONK5A.cjs.map → WorkspaceTableView-DHMCJRC6.cjs.map} +1 -1
  32. package/dist/{WorkspaceTableView-ZCUYOMSL.js → WorkspaceTableView-EH5CEB44.js} +5 -5
  33. package/dist/{WorkspaceTableView-ZCUYOMSL.js.map → WorkspaceTableView-EH5CEB44.js.map} +1 -1
  34. package/dist/agents/index.cjs +283 -283
  35. package/dist/agents/index.js +5 -5
  36. package/dist/agents/tasks/WorkflowsTable.d.ts +2 -1
  37. package/dist/calls/index.cjs +132 -132
  38. package/dist/calls/index.js +8 -8
  39. package/dist/{chunk-57FBBWU2.cjs → chunk-23ACBETH.cjs} +4 -4
  40. package/dist/{chunk-57FBBWU2.cjs.map → chunk-23ACBETH.cjs.map} +1 -1
  41. package/dist/{chunk-D34YIJGE.js → chunk-2SLDVFOZ.js} +4 -4
  42. package/dist/{chunk-D34YIJGE.js.map → chunk-2SLDVFOZ.js.map} +1 -1
  43. package/dist/{chunk-6SWK5QCT.cjs → chunk-33PWCTND.cjs} +21 -21
  44. package/dist/{chunk-6SWK5QCT.cjs.map → chunk-33PWCTND.cjs.map} +1 -1
  45. package/dist/{chunk-LZROSRGK.cjs → chunk-3X37I6QE.cjs} +10 -10
  46. package/dist/{chunk-LZROSRGK.cjs.map → chunk-3X37I6QE.cjs.map} +1 -1
  47. package/dist/{chunk-3VCVMW5X.cjs → chunk-4RJPTXUQ.cjs} +5 -5
  48. package/dist/{chunk-3VCVMW5X.cjs.map → chunk-4RJPTXUQ.cjs.map} +1 -1
  49. package/dist/{chunk-GWTKLPBJ.js → chunk-5CWBAINB.js} +3 -3
  50. package/dist/{chunk-GWTKLPBJ.js.map → chunk-5CWBAINB.js.map} +1 -1
  51. package/dist/{chunk-X5GO56JN.js → chunk-64DMXUYS.js} +3 -3
  52. package/dist/{chunk-X5GO56JN.js.map → chunk-64DMXUYS.js.map} +1 -1
  53. package/dist/{chunk-PBIFISDD.js → chunk-7P24MJQN.js} +3 -3
  54. package/dist/{chunk-PBIFISDD.js.map → chunk-7P24MJQN.js.map} +1 -1
  55. package/dist/{chunk-CLOYC6QG.cjs → chunk-7YHGLYRJ.cjs} +67 -67
  56. package/dist/{chunk-CLOYC6QG.cjs.map → chunk-7YHGLYRJ.cjs.map} +1 -1
  57. package/dist/{chunk-2CH22I7M.js → chunk-AMP7KX7F.js} +3 -3
  58. package/dist/{chunk-2CH22I7M.js.map → chunk-AMP7KX7F.js.map} +1 -1
  59. package/dist/{chunk-UQAHDGYH.cjs → chunk-CCSF7RI4.cjs} +5 -5
  60. package/dist/{chunk-UQAHDGYH.cjs.map → chunk-CCSF7RI4.cjs.map} +1 -1
  61. package/dist/{chunk-QK546T4C.cjs → chunk-CKNUL4LM.cjs} +3 -3
  62. package/dist/{chunk-QK546T4C.cjs.map → chunk-CKNUL4LM.cjs.map} +1 -1
  63. package/dist/{chunk-6USEJFPC.cjs → chunk-COZDIUG7.cjs} +24 -24
  64. package/dist/chunk-COZDIUG7.cjs.map +1 -0
  65. package/dist/{chunk-SLX2YIUA.cjs → chunk-EOIJ5JYP.cjs} +4 -4
  66. package/dist/{chunk-SLX2YIUA.cjs.map → chunk-EOIJ5JYP.cjs.map} +1 -1
  67. package/dist/{chunk-LMKEDVEB.cjs → chunk-F73EZQT4.cjs} +4 -4
  68. package/dist/{chunk-LMKEDVEB.cjs.map → chunk-F73EZQT4.cjs.map} +1 -1
  69. package/dist/{chunk-J55WDXIR.js → chunk-G4OZQFES.js} +3 -3
  70. package/dist/{chunk-J55WDXIR.js.map → chunk-G4OZQFES.js.map} +1 -1
  71. package/dist/{chunk-JHLIVEJI.js → chunk-GRDLCRNL.js} +5 -5
  72. package/dist/{chunk-JHLIVEJI.js.map → chunk-GRDLCRNL.js.map} +1 -1
  73. package/dist/{chunk-XPB6KMPY.cjs → chunk-HVOPUYAG.cjs} +19 -19
  74. package/dist/{chunk-XPB6KMPY.cjs.map → chunk-HVOPUYAG.cjs.map} +1 -1
  75. package/dist/{chunk-TL7SHXBN.js → chunk-IC6SBDYA.js} +3 -3
  76. package/dist/{chunk-TL7SHXBN.js.map → chunk-IC6SBDYA.js.map} +1 -1
  77. package/dist/{chunk-QTZ25F5G.js → chunk-IFLFLP4K.js} +5 -5
  78. package/dist/{chunk-QTZ25F5G.js.map → chunk-IFLFLP4K.js.map} +1 -1
  79. package/dist/{chunk-C3SLFANS.js → chunk-ITS3USZ3.js} +5 -5
  80. package/dist/{chunk-C3SLFANS.js.map → chunk-ITS3USZ3.js.map} +1 -1
  81. package/dist/{chunk-SEH4ZDN5.js → chunk-IUFS3AYQ.js} +7 -7
  82. package/dist/{chunk-SEH4ZDN5.js.map → chunk-IUFS3AYQ.js.map} +1 -1
  83. package/dist/{chunk-3IRJ4MTF.cjs → chunk-J25NN3XJ.cjs} +14 -14
  84. package/dist/{chunk-3IRJ4MTF.cjs.map → chunk-J25NN3XJ.cjs.map} +1 -1
  85. package/dist/{chunk-TX4CIWH5.cjs → chunk-JBL4PPEE.cjs} +6 -6
  86. package/dist/{chunk-TX4CIWH5.cjs.map → chunk-JBL4PPEE.cjs.map} +1 -1
  87. package/dist/{chunk-QUSDMOSF.js → chunk-JWRTUYLC.js} +3 -3
  88. package/dist/{chunk-QUSDMOSF.js.map → chunk-JWRTUYLC.js.map} +1 -1
  89. package/dist/{chunk-XGJU2Y5N.cjs → chunk-LBKTTQUR.cjs} +7 -7
  90. package/dist/{chunk-XGJU2Y5N.cjs.map → chunk-LBKTTQUR.cjs.map} +1 -1
  91. package/dist/{chunk-SMM32PL6.cjs → chunk-M42XWNS6.cjs} +4 -4
  92. package/dist/{chunk-SMM32PL6.cjs.map → chunk-M42XWNS6.cjs.map} +1 -1
  93. package/dist/{chunk-F3VIBHH2.cjs → chunk-MAKTAR7H.cjs} +18 -18
  94. package/dist/{chunk-F3VIBHH2.cjs.map → chunk-MAKTAR7H.cjs.map} +1 -1
  95. package/dist/{chunk-2TOM5FT5.js → chunk-NDVLCOWS.js} +12 -12
  96. package/dist/chunk-NDVLCOWS.js.map +1 -0
  97. package/dist/{chunk-UJI52BUA.js → chunk-OI4DL2DX.js} +3 -3
  98. package/dist/{chunk-UJI52BUA.js.map → chunk-OI4DL2DX.js.map} +1 -1
  99. package/dist/{chunk-7BH55CGS.js → chunk-OZL5ABLF.js} +4 -4
  100. package/dist/{chunk-7BH55CGS.js.map → chunk-OZL5ABLF.js.map} +1 -1
  101. package/dist/{chunk-7S3CTSF7.js → chunk-PKDPQS6Z.js} +3 -3
  102. package/dist/{chunk-7S3CTSF7.js.map → chunk-PKDPQS6Z.js.map} +1 -1
  103. package/dist/{chunk-LIOT6WLN.js → chunk-PVPGD6QR.js} +3 -3
  104. package/dist/{chunk-LIOT6WLN.js.map → chunk-PVPGD6QR.js.map} +1 -1
  105. package/dist/{chunk-HISU5HLW.js → chunk-QUZPQWPX.js} +3 -3
  106. package/dist/{chunk-HISU5HLW.js.map → chunk-QUZPQWPX.js.map} +1 -1
  107. package/dist/{chunk-RCBGX4IC.cjs → chunk-RGPKW6KQ.cjs} +4 -4
  108. package/dist/{chunk-RCBGX4IC.cjs.map → chunk-RGPKW6KQ.cjs.map} +1 -1
  109. package/dist/{chunk-VFBQBWZI.js → chunk-TAI23FCY.js} +46 -43
  110. package/dist/chunk-TAI23FCY.js.map +1 -0
  111. package/dist/{chunk-ONML6J5O.cjs → chunk-UDMII47W.cjs} +8 -8
  112. package/dist/{chunk-ONML6J5O.cjs.map → chunk-UDMII47W.cjs.map} +1 -1
  113. package/dist/{chunk-ABEKUV6L.js → chunk-VDXKB4WK.js} +82 -77
  114. package/dist/chunk-VDXKB4WK.js.map +1 -0
  115. package/dist/{chunk-MEMWZ72Y.cjs → chunk-WVEFRQSW.cjs} +81 -76
  116. package/dist/chunk-WVEFRQSW.cjs.map +1 -0
  117. package/dist/{chunk-PJW2IOPZ.cjs → chunk-X3JJTHQ4.cjs} +51 -51
  118. package/dist/{chunk-PJW2IOPZ.cjs.map → chunk-X3JJTHQ4.cjs.map} +1 -1
  119. package/dist/{chunk-4OJGFYB5.cjs → chunk-Y6ZNWC7E.cjs} +47 -44
  120. package/dist/chunk-Y6ZNWC7E.cjs.map +1 -0
  121. package/dist/{chunk-B63TSC3W.js → chunk-ZZTH27G7.js} +3 -3
  122. package/dist/{chunk-B63TSC3W.js.map → chunk-ZZTH27G7.js.map} +1 -1
  123. package/dist/connect/docx.cjs +13 -13
  124. package/dist/connect/docx.js +9 -9
  125. package/dist/connect/index.cjs +694 -694
  126. package/dist/connect/index.js +36 -36
  127. package/dist/connect/viewer.cjs +7 -7
  128. package/dist/connect/viewer.js +6 -6
  129. package/dist/connection/workflows/ConnectedWorkflowsPage.d.ts +7 -1
  130. package/dist/dashboards/index.cjs +1 -1
  131. package/dist/dashboards/index.js +1 -1
  132. package/dist/document-tools/index.cjs +17 -17
  133. package/dist/document-tools/index.js +2 -2
  134. package/dist/embed/index.cjs +13 -13
  135. package/dist/embed/index.js +10 -10
  136. package/dist/facts/index.cjs +40 -40
  137. package/dist/facts/index.js +4 -4
  138. package/dist/files/index.cjs +1 -1
  139. package/dist/files/index.js +1 -1
  140. package/dist/index.cjs +434 -434
  141. package/dist/index.js +13 -13
  142. package/dist/settings/index.cjs +156 -156
  143. package/dist/settings/index.js +2 -2
  144. package/dist/shell/TabHeader.d.ts +6 -1
  145. package/dist/shell/index.cjs +3 -3
  146. package/dist/shell/index.js +1 -1
  147. package/dist/site/index.cjs +22 -22
  148. package/dist/site/index.js +2 -2
  149. package/dist/studio/index.cjs +3 -3
  150. package/dist/studio/index.js +3 -3
  151. package/dist/workflow-canvas/index.cjs +64 -40
  152. package/dist/workflow-canvas/index.cjs.map +1 -1
  153. package/dist/workflow-canvas/index.js +49 -25
  154. package/dist/workflow-canvas/index.js.map +1 -1
  155. package/node_modules/@arbidocs/coedit/package.json +1 -1
  156. package/package.json +5 -5
  157. package/dist/ConnectedNativeDocxComparison-3MCCETF5.js.map +0 -1
  158. package/dist/ConnectedNativeDocxComparison-XZIRCESL.cjs.map +0 -1
  159. package/dist/ConnectedNativeDocxEditor-FGW35PIL.js.map +0 -1
  160. package/dist/ConnectedNativeDocxEditor-YE6KA53Q.cjs.map +0 -1
  161. package/dist/ConnectedStreamedWordArtifact-N6YRKWDH.js.map +0 -1
  162. package/dist/ConnectedStreamedWordArtifact-ROPYU3LE.cjs.map +0 -1
  163. package/dist/chunk-2TOM5FT5.js.map +0 -1
  164. package/dist/chunk-4OJGFYB5.cjs.map +0 -1
  165. package/dist/chunk-6USEJFPC.cjs.map +0 -1
  166. package/dist/chunk-ABEKUV6L.js.map +0 -1
  167. package/dist/chunk-MEMWZ72Y.cjs.map +0 -1
  168. package/dist/chunk-VFBQBWZI.js.map +0 -1
@@ -1,55 +1,55 @@
1
1
  "use client";
2
2
  'use strict';
3
3
 
4
- var chunkUQAHDGYH_cjs = require('../chunk-UQAHDGYH.cjs');
4
+ var chunkCCSF7RI4_cjs = require('../chunk-CCSF7RI4.cjs');
5
5
  var chunkZ7DJS6M3_cjs = require('../chunk-Z7DJS6M3.cjs');
6
6
  var chunkSEVFIBF3_cjs = require('../chunk-SEVFIBF3.cjs');
7
- var chunkPJW2IOPZ_cjs = require('../chunk-PJW2IOPZ.cjs');
7
+ var chunkX3JJTHQ4_cjs = require('../chunk-X3JJTHQ4.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 chunkLZROSRGK_cjs = require('../chunk-LZROSRGK.cjs');
14
- var chunkXGJU2Y5N_cjs = require('../chunk-XGJU2Y5N.cjs');
13
+ var chunk3X37I6QE_cjs = require('../chunk-3X37I6QE.cjs');
14
+ var chunkLBKTTQUR_cjs = require('../chunk-LBKTTQUR.cjs');
15
15
  var chunkEGJ7WJ6Q_cjs = require('../chunk-EGJ7WJ6Q.cjs');
16
- var chunkTX4CIWH5_cjs = require('../chunk-TX4CIWH5.cjs');
16
+ var chunkF73EZQT4_cjs = require('../chunk-F73EZQT4.cjs');
17
+ var chunkXFL67STW_cjs = require('../chunk-XFL67STW.cjs');
17
18
  var chunkOM5IVNEW_cjs = require('../chunk-OM5IVNEW.cjs');
18
19
  var chunkOU3RGQFX_cjs = require('../chunk-OU3RGQFX.cjs');
19
20
  require('../chunk-REH7PX3N.cjs');
20
21
  require('../chunk-H32DV7XS.cjs');
21
- var chunkLMKEDVEB_cjs = require('../chunk-LMKEDVEB.cjs');
22
- var chunkXFL67STW_cjs = require('../chunk-XFL67STW.cjs');
23
- var chunkONML6J5O_cjs = require('../chunk-ONML6J5O.cjs');
24
- var chunkT35SGVB2_cjs = require('../chunk-T35SGVB2.cjs');
22
+ var chunkJBL4PPEE_cjs = require('../chunk-JBL4PPEE.cjs');
23
+ var chunkUDMII47W_cjs = require('../chunk-UDMII47W.cjs');
25
24
  var chunk464YPRAE_cjs = require('../chunk-464YPRAE.cjs');
26
25
  var chunkPICGTGEB_cjs = require('../chunk-PICGTGEB.cjs');
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
- require('../chunk-324RBHCF.cjs');
31
30
  var chunkVGNCU5JJ_cjs = require('../chunk-VGNCU5JJ.cjs');
32
- var chunk223D4727_cjs = require('../chunk-223D4727.cjs');
33
31
  var chunk2WLXQGWC_cjs = require('../chunk-2WLXQGWC.cjs');
32
+ require('../chunk-324RBHCF.cjs');
33
+ var chunk223D4727_cjs = require('../chunk-223D4727.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
- var chunkIRY63R4L_cjs = require('../chunk-IRY63R4L.cjs');
39
38
  require('../chunk-UWIILWDI.cjs');
39
+ var chunkIRY63R4L_cjs = require('../chunk-IRY63R4L.cjs');
40
40
  require('../chunk-ZESMRGDV.cjs');
41
- var chunk3VCVMW5X_cjs = require('../chunk-3VCVMW5X.cjs');
41
+ var chunk4RJPTXUQ_cjs = require('../chunk-4RJPTXUQ.cjs');
42
+ var chunkN5WJBQYF_cjs = require('../chunk-N5WJBQYF.cjs');
42
43
  var chunkZ3LFF3YT_cjs = require('../chunk-Z3LFF3YT.cjs');
43
44
  var chunkC2ECYOPP_cjs = require('../chunk-C2ECYOPP.cjs');
44
45
  var chunkTMX7YFVM_cjs = require('../chunk-TMX7YFVM.cjs');
45
46
  require('../chunk-QXNEXPUL.cjs');
46
- var chunkQZTNTP75_cjs = require('../chunk-QZTNTP75.cjs');
47
+ var chunkVPPX5XUF_cjs = require('../chunk-VPPX5XUF.cjs');
48
+ require('../chunk-PCB2BPN3.cjs');
47
49
  var chunkGOWXP5KT_cjs = require('../chunk-GOWXP5KT.cjs');
48
50
  var chunkYCO4ZBBL_cjs = require('../chunk-YCO4ZBBL.cjs');
49
- var chunkN5WJBQYF_cjs = require('../chunk-N5WJBQYF.cjs');
51
+ var chunkQZTNTP75_cjs = require('../chunk-QZTNTP75.cjs');
50
52
  require('../chunk-NWNVWO6L.cjs');
51
- require('../chunk-PCB2BPN3.cjs');
52
- var chunkVPPX5XUF_cjs = require('../chunk-VPPX5XUF.cjs');
53
53
  var chunkXDMIVPJP_cjs = require('../chunk-XDMIVPJP.cjs');
54
54
  require('../chunk-7G2LJMUG.cjs');
55
55
  var chunkJIOHDVWH_cjs = require('../chunk-JIOHDVWH.cjs');
@@ -62,17 +62,17 @@ var chunkY5WE72RB_cjs = require('../chunk-Y5WE72RB.cjs');
62
62
  var chunk4623VCCR_cjs = require('../chunk-4623VCCR.cjs');
63
63
  require('../chunk-VLCY46K6.cjs');
64
64
  var chunkI4NP577O_cjs = require('../chunk-I4NP577O.cjs');
65
- var chunkNSD37OF5_cjs = require('../chunk-NSD37OF5.cjs');
66
65
  var chunkZU2B2RZK_cjs = require('../chunk-ZU2B2RZK.cjs');
66
+ var chunkNSD37OF5_cjs = require('../chunk-NSD37OF5.cjs');
67
67
  require('../chunk-72YEEUH7.cjs');
68
68
  require('../chunk-D54JXTPG.cjs');
69
- var chunkXPB6KMPY_cjs = require('../chunk-XPB6KMPY.cjs');
69
+ var chunkHVOPUYAG_cjs = require('../chunk-HVOPUYAG.cjs');
70
70
  var chunk3T3IKNGF_cjs = require('../chunk-3T3IKNGF.cjs');
71
71
  var chunkRFIBUWLF_cjs = require('../chunk-RFIBUWLF.cjs');
72
- var chunk4OJGFYB5_cjs = require('../chunk-4OJGFYB5.cjs');
72
+ var chunkY6ZNWC7E_cjs = require('../chunk-Y6ZNWC7E.cjs');
73
73
  require('../chunk-3YEXZX4H.cjs');
74
- var chunkAQPZ4QMV_cjs = require('../chunk-AQPZ4QMV.cjs');
75
74
  var chunkZDZY6OPL_cjs = require('../chunk-ZDZY6OPL.cjs');
75
+ var chunkAQPZ4QMV_cjs = require('../chunk-AQPZ4QMV.cjs');
76
76
  require('../chunk-SIB6C7P7.cjs');
77
77
  require('../chunk-DVUZTGVL.cjs');
78
78
  var chunkV4ISCZJ7_cjs = require('../chunk-V4ISCZJ7.cjs');
@@ -87,15 +87,15 @@ var chunkCG757WKY_cjs = require('../chunk-CG757WKY.cjs');
87
87
  var chunkW3PSIIMN_cjs = require('../chunk-W3PSIIMN.cjs');
88
88
  var chunkQUMUAJ2P_cjs = require('../chunk-QUMUAJ2P.cjs');
89
89
  var chunkVZOOGA47_cjs = require('../chunk-VZOOGA47.cjs');
90
- var chunk6SWK5QCT_cjs = require('../chunk-6SWK5QCT.cjs');
91
- var chunkRCBGX4IC_cjs = require('../chunk-RCBGX4IC.cjs');
92
- require('../chunk-3IRJ4MTF.cjs');
93
- require('../chunk-SMM32PL6.cjs');
90
+ var chunk33PWCTND_cjs = require('../chunk-33PWCTND.cjs');
91
+ var chunkRGPKW6KQ_cjs = require('../chunk-RGPKW6KQ.cjs');
92
+ require('../chunk-J25NN3XJ.cjs');
93
+ require('../chunk-M42XWNS6.cjs');
94
94
  var chunk7JVP3LS6_cjs = require('../chunk-7JVP3LS6.cjs');
95
95
  var chunkKGAYUFXD_cjs = require('../chunk-KGAYUFXD.cjs');
96
96
  var chunkMOIZ2R5X_cjs = require('../chunk-MOIZ2R5X.cjs');
97
97
  var chunkEFS3XXZS_cjs = require('../chunk-EFS3XXZS.cjs');
98
- var chunkMEMWZ72Y_cjs = require('../chunk-MEMWZ72Y.cjs');
98
+ var chunkWVEFRQSW_cjs = require('../chunk-WVEFRQSW.cjs');
99
99
  var chunkZW6FPIFC_cjs = require('../chunk-ZW6FPIFC.cjs');
100
100
  var chunkTVHTXO6V_cjs = require('../chunk-TVHTXO6V.cjs');
101
101
  require('../chunk-PNZVUH46.cjs');
@@ -230,7 +230,7 @@ function ConnectedWorkspaceActivity({
230
230
  [feed.data]
231
231
  );
232
232
  return /* @__PURE__ */ jsxRuntime.jsx(
233
- chunk3VCVMW5X_cjs.WorkspaceActivityList,
233
+ chunk4RJPTXUQ_cjs.WorkspaceActivityList,
234
234
  {
235
235
  ...listProps,
236
236
  items,
@@ -941,8 +941,8 @@ function NotificationCenter({
941
941
  }
942
942
  ];
943
943
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col h-full bg-background", "data-testid": "notifications-page", children: [
944
- /* @__PURE__ */ jsxRuntime.jsx(chunkTX4CIWH5_cjs.DraggableHeader, { children: /* @__PURE__ */ jsxRuntime.jsx(
945
- chunkMEMWZ72Y_cjs.TabHeader,
944
+ /* @__PURE__ */ jsxRuntime.jsx(chunkJBL4PPEE_cjs.DraggableHeader, { children: /* @__PURE__ */ jsxRuntime.jsx(
945
+ chunkWVEFRQSW_cjs.TabHeader,
946
946
  {
947
947
  tabs,
948
948
  activeTabId: "notifications",
@@ -1367,7 +1367,7 @@ function ConnectedSkillUpload({ onDone, labels, className }) {
1367
1367
  onChange: (e) => {
1368
1368
  const file = e.target.files?.[0];
1369
1369
  e.target.value = "";
1370
- if (file) void add(() => chunkXPB6KMPY_cjs.importSkillFile(file));
1370
+ if (file) void add(() => chunkHVOPUYAG_cjs.importSkillFile(file));
1371
1371
  }
1372
1372
  }
1373
1373
  ),
@@ -1392,7 +1392,7 @@ function ConnectedSkillUpload({ onDone, labels, className }) {
1392
1392
  className: "space-y-2",
1393
1393
  onSubmit: (e) => {
1394
1394
  e.preventDefault();
1395
- if (url.trim()) void add(() => chunkXPB6KMPY_cjs.importSkillFromUrl(url));
1395
+ if (url.trim()) void add(() => chunkHVOPUYAG_cjs.importSkillFromUrl(url));
1396
1396
  },
1397
1397
  children: [
1398
1398
  /* @__PURE__ */ jsxRuntime.jsx(ui.Label, { htmlFor: "skills-add-url", children: l.fromLink }),
@@ -1455,9 +1455,9 @@ function ConnectedSkillsLibrary({
1455
1455
  const [type, setType] = react$1.useState("all");
1456
1456
  const [view, setView] = react$1.useState("gallery");
1457
1457
  const [isBusy, setIsBusy] = react$1.useState(false);
1458
- const all = react$1.useMemo(() => chunkXPB6KMPY_cjs.buildLibrarySkills(builtins, listings ?? []), [builtins, listings]);
1458
+ const all = react$1.useMemo(() => chunkHVOPUYAG_cjs.buildLibrarySkills(builtins, listings ?? []), [builtins, listings]);
1459
1459
  const shown = react$1.useMemo(
1460
- () => chunkXPB6KMPY_cjs.filterLibrarySkills(all, { query, source, type }),
1460
+ () => chunkHVOPUYAG_cjs.filterLibrarySkills(all, { query, source, type }),
1461
1461
  [all, query, source, type]
1462
1462
  );
1463
1463
  const current = all.find((s) => s.slug === selected) ?? null;
@@ -1468,21 +1468,21 @@ function ConnectedSkillsLibrary({
1468
1468
  const count2 = (s) => all.filter((x) => x.source === s).length;
1469
1469
  const sourceOptions = [
1470
1470
  { id: "all", label: "All", count: all.length },
1471
- { id: "builtin", label: chunkXPB6KMPY_cjs.SKILL_SOURCE_LABELS.builtin, count: count2("builtin") },
1472
- { id: "mine", label: chunkXPB6KMPY_cjs.SKILL_SOURCE_LABELS.mine, count: count2("mine") },
1473
- { id: "shared", label: chunkXPB6KMPY_cjs.SKILL_SOURCE_LABELS.shared, count: count2("shared") }
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
1474
  ];
1475
1475
  const types = [...new Set(all.map((s) => s.type))];
1476
1476
  const typeOptions = [
1477
1477
  { id: "all", label: "Any kind" },
1478
- ...types.map((t) => ({ id: t, label: chunkXPB6KMPY_cjs.SKILL_TYPE_LABELS[t] ?? t }))
1478
+ ...types.map((t) => ({ id: t, label: chunkHVOPUYAG_cjs.SKILL_TYPE_LABELS[t] ?? t }))
1479
1479
  ];
1480
1480
  const pick = (slug) => {
1481
1481
  setSelected(slug);
1482
1482
  setMode("detail");
1483
1483
  };
1484
1484
  const markdownOf = async (skill) => {
1485
- if (!skill.docExtId) return chunkXPB6KMPY_cjs.workflowToSkillMarkdown(skill.workflow);
1485
+ if (!skill.docExtId) return chunkHVOPUYAG_cjs.workflowToSkillMarkdown(skill.workflow);
1486
1486
  const response = await arbi.documents.download(skill.docExtId);
1487
1487
  if (!response.ok) throw new Error(`Could not read the skill (${response.status})`);
1488
1488
  return response.text();
@@ -1546,7 +1546,7 @@ function ConnectedSkillsLibrary({
1546
1546
  try {
1547
1547
  documentTools.downloadBlob(
1548
1548
  new Blob([await markdownOf(skill)], { type: "text/markdown" }),
1549
- chunkXPB6KMPY_cjs.SKILL_MAIN_FILENAME
1549
+ chunkHVOPUYAG_cjs.SKILL_MAIN_FILENAME
1550
1550
  );
1551
1551
  } catch (error) {
1552
1552
  notify16(errorText(error, "Could not export the skill"), "error");
@@ -1587,10 +1587,10 @@ function ConnectedSkillsLibrary({
1587
1587
  }
1588
1588
  )
1589
1589
  ] }),
1590
- /* @__PURE__ */ jsxRuntime.jsx(chunkXPB6KMPY_cjs.SkillViewToggle, { value: view, onChange: setView })
1590
+ /* @__PURE__ */ jsxRuntime.jsx(chunkHVOPUYAG_cjs.SkillViewToggle, { value: view, onChange: setView })
1591
1591
  ] }),
1592
1592
  /* @__PURE__ */ jsxRuntime.jsx(
1593
- chunkXPB6KMPY_cjs.SkillFilterChips,
1593
+ chunkHVOPUYAG_cjs.SkillFilterChips,
1594
1594
  {
1595
1595
  label: "Show",
1596
1596
  value: source,
@@ -1599,7 +1599,7 @@ function ConnectedSkillsLibrary({
1599
1599
  }
1600
1600
  ),
1601
1601
  types.length > 1 && /* @__PURE__ */ jsxRuntime.jsx(
1602
- chunkXPB6KMPY_cjs.SkillFilterChips,
1602
+ chunkHVOPUYAG_cjs.SkillFilterChips,
1603
1603
  {
1604
1604
  label: "Kind",
1605
1605
  value: type,
@@ -1646,12 +1646,12 @@ function ConnectedSkillsLibrary({
1646
1646
  view === "gallery" ? "grid grid-cols-[repeat(auto-fill,minmax(9.5rem,1fr))]" : "flex flex-col"
1647
1647
  ),
1648
1648
  children: shown.map((skill) => /* @__PURE__ */ jsxRuntime.jsx(
1649
- chunkXPB6KMPY_cjs.SkillTile,
1649
+ chunkHVOPUYAG_cjs.SkillTile,
1650
1650
  {
1651
1651
  name: skill.title,
1652
1652
  testId: `skill-tile-${skill.slug}`,
1653
1653
  description: skill.description,
1654
- sourceLabel: skill.isShared ? `${chunkXPB6KMPY_cjs.SKILL_SOURCE_LABELS.mine}, shared` : chunkXPB6KMPY_cjs.SKILL_SOURCE_LABELS[skill.source],
1654
+ sourceLabel: skill.isShared ? `${chunkHVOPUYAG_cjs.SKILL_SOURCE_LABELS.mine}, shared` : chunkHVOPUYAG_cjs.SKILL_SOURCE_LABELS[skill.source],
1655
1655
  type: skill.type,
1656
1656
  icon,
1657
1657
  layout: view,
@@ -1686,7 +1686,7 @@ function ConnectedSkillsLibrary({
1686
1686
  }
1687
1687
  ),
1688
1688
  mode === "new" && /* @__PURE__ */ jsxRuntime.jsx(
1689
- chunkXPB6KMPY_cjs.SkillGenerateForm,
1689
+ chunkHVOPUYAG_cjs.SkillGenerateForm,
1690
1690
  {
1691
1691
  icon,
1692
1692
  onGenerate: (desc) => {
@@ -1713,11 +1713,11 @@ function ConnectedSkillsLibrary({
1713
1713
  ),
1714
1714
  mode === "add" && /* @__PURE__ */ jsxRuntime.jsx(ConnectedSkillUpload, { onDone: done }),
1715
1715
  mode === "detail" && current && /* @__PURE__ */ jsxRuntime.jsx(
1716
- chunkXPB6KMPY_cjs.SkillLibraryDetail,
1716
+ chunkHVOPUYAG_cjs.SkillLibraryDetail,
1717
1717
  {
1718
1718
  skill: current,
1719
1719
  icon,
1720
- instructions: current.docExtId ? currentText ? chunkXPB6KMPY_cjs.parseSkillFrontmatter(currentText, chunkXPB6KMPY_cjs.SKILL_MAIN_FILENAME).content : "" : current.workflow.run.kind === "prompt" ? current.workflow.run.promptTemplate : "",
1720
+ instructions: current.docExtId ? currentText ? chunkHVOPUYAG_cjs.parseSkillFrontmatter(currentText, chunkHVOPUYAG_cjs.SKILL_MAIN_FILENAME).content : "" : current.workflow.run.kind === "prompt" ? current.workflow.run.promptTemplate : "",
1721
1721
  isLoading: !!current.docExtId && textLoading,
1722
1722
  actions: {
1723
1723
  onRun: () => onRun(current.slug),
@@ -1752,7 +1752,7 @@ function SkillEditor({
1752
1752
  const [seeded, setSeeded] = react$1.useState(!isEditing);
1753
1753
  const [nameError, setNameError] = react$1.useState(null);
1754
1754
  if (isEditing && !seeded && text2 !== void 0) {
1755
- const parsed = chunkXPB6KMPY_cjs.parseSkillFrontmatter(text2, chunkXPB6KMPY_cjs.SKILL_MAIN_FILENAME);
1755
+ const parsed = chunkHVOPUYAG_cjs.parseSkillFrontmatter(text2, chunkHVOPUYAG_cjs.SKILL_MAIN_FILENAME);
1756
1756
  setDescription(parsed.description ?? "");
1757
1757
  setBody(parsed.content ?? "");
1758
1758
  setSeeded(true);
@@ -1766,15 +1766,15 @@ function SkillEditor({
1766
1766
  notify16("Add a short description.", "error");
1767
1767
  return;
1768
1768
  }
1769
- const slug = chunkXPB6KMPY_cjs.skillSlug(name);
1769
+ const slug = chunkHVOPUYAG_cjs.skillSlug(name);
1770
1770
  try {
1771
- await onSave(slug, chunkXPB6KMPY_cjs.serializeSkill({ name: slug, description, body }), isEditing);
1771
+ await onSave(slug, chunkHVOPUYAG_cjs.serializeSkill({ name: slug, description, body }), isEditing);
1772
1772
  } catch (err) {
1773
1773
  notify16(errorText(err, "Could not save the skill"), "error");
1774
1774
  }
1775
1775
  };
1776
1776
  return /* @__PURE__ */ jsxRuntime.jsx(
1777
- chunkXPB6KMPY_cjs.SkillEditForm,
1777
+ chunkHVOPUYAG_cjs.SkillEditForm,
1778
1778
  {
1779
1779
  name,
1780
1780
  onNameChange: setName,
@@ -1813,7 +1813,7 @@ var DEFAULT_CONNECTED_SKILLS_BROWSER_LABELS = {
1813
1813
  function ConnectedSkillsBrowser({
1814
1814
  props,
1815
1815
  onClose: close,
1816
- builtins = chunkXPB6KMPY_cjs.BUILTIN_SKILLS,
1816
+ builtins = chunkHVOPUYAG_cjs.BUILTIN_SKILLS,
1817
1817
  renderEditor,
1818
1818
  labels
1819
1819
  }) {
@@ -1866,7 +1866,7 @@ function ConnectedSkillsBrowser({
1866
1866
  }
1867
1867
  ) }),
1868
1868
  runSkillId && /* @__PURE__ */ jsxRuntime.jsx(
1869
- chunkPJW2IOPZ_cjs.ConnectedTaskComposer,
1869
+ chunkX3JJTHQ4_cjs.ConnectedTaskComposer,
1870
1870
  {
1871
1871
  kind: "workflow",
1872
1872
  open: true,
@@ -1890,9 +1890,9 @@ function ConnectedAgentCreator({
1890
1890
  agent,
1891
1891
  initialName,
1892
1892
  onSaved,
1893
- capabilities = chunkXPB6KMPY_cjs.DEFAULT_AGENT_CAPABILITIES,
1894
- templates = chunkXPB6KMPY_cjs.DEFAULT_AGENT_TEMPLATES,
1895
- types = chunkXPB6KMPY_cjs.DEFAULT_AGENT_TYPES,
1893
+ capabilities = chunkHVOPUYAG_cjs.DEFAULT_AGENT_CAPABILITIES,
1894
+ templates = chunkHVOPUYAG_cjs.DEFAULT_AGENT_TEMPLATES,
1895
+ types = chunkHVOPUYAG_cjs.DEFAULT_AGENT_TYPES,
1896
1896
  canRevokeWorkspaces = false,
1897
1897
  labels
1898
1898
  }) {
@@ -1934,7 +1934,7 @@ function ConnectedAgentCreator({
1934
1934
  const initialValues = react$1.useMemo(
1935
1935
  () => ({
1936
1936
  name: agent?.given_name ?? initialName ?? "",
1937
- persona: isEdit ? chunkXPB6KMPY_cjs.stripPersonaPreamble(String(agents.PERSONA ?? "")) : "",
1937
+ persona: isEdit ? chunkHVOPUYAG_cjs.stripPersonaPreamble(String(agents.PERSONA ?? "")) : "",
1938
1938
  modelName: String(agents.AGENT_MODEL_NAME ?? ""),
1939
1939
  capabilities: Object.fromEntries(capabilities.map(({ key }) => [key, Boolean(agents[key])])),
1940
1940
  type: "builtin",
@@ -1953,7 +1953,7 @@ function ConnectedAgentCreator({
1953
1953
  try {
1954
1954
  let agentExtId = agent?.external_id ?? early?.id ?? "";
1955
1955
  if (!agentExtId) {
1956
- if (!chunkXPB6KMPY_cjs.isValidAgentName(values.name)) {
1956
+ if (!chunkHVOPUYAG_cjs.isValidAgentName(values.name)) {
1957
1957
  notify16("Give the agent a name first.", "error");
1958
1958
  return;
1959
1959
  }
@@ -1989,7 +1989,7 @@ function ConnectedAgentCreator({
1989
1989
  title: `agent-${name}`,
1990
1990
  sections: {
1991
1991
  Agents: {
1992
- PERSONA: chunkXPB6KMPY_cjs.composePersona(name, values.persona),
1992
+ PERSONA: chunkHVOPUYAG_cjs.composePersona(name, values.persona),
1993
1993
  ...values.modelName ? { AGENT_MODEL_NAME: values.modelName } : {},
1994
1994
  ...Object.fromEntries(capabilities.map(({ key }) => [key, !!values.capabilities[key]])),
1995
1995
  ENABLED_SKILLS: values.capabilities.SKILLS_ENABLED && skills.length ? skills : null,
@@ -2012,7 +2012,7 @@ function ConnectedAgentCreator({
2012
2012
  };
2013
2013
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
2014
2014
  /* @__PURE__ */ jsxRuntime.jsx(
2015
- chunkXPB6KMPY_cjs.AgentCreator,
2015
+ chunkHVOPUYAG_cjs.AgentCreator,
2016
2016
  {
2017
2017
  open: ready,
2018
2018
  onOpenChange,
@@ -2028,11 +2028,11 @@ function ConnectedAgentCreator({
2028
2028
  ) : void 0,
2029
2029
  revokingWorkspaceId: revokeAccess.isPending ? revokeAccess.variables?.workspaceId : void 0,
2030
2030
  avatar: (values) => /* @__PURE__ */ jsxRuntime.jsx(
2031
- chunkXPB6KMPY_cjs.AgentAvatarField,
2031
+ chunkHVOPUYAG_cjs.AgentAvatarField,
2032
2032
  {
2033
2033
  picture,
2034
2034
  isBusy: avatarBusy,
2035
- canGenerate: isEdit || chunkXPB6KMPY_cjs.isValidAgentName(values.name),
2035
+ canGenerate: isEdit || chunkHVOPUYAG_cjs.isValidAgentName(values.name),
2036
2036
  onGenerate: () => handleGenerateAvatar(values)
2037
2037
  }
2038
2038
  ),
@@ -2084,7 +2084,7 @@ function ConnectedAgentCreator({
2084
2084
  /* @__PURE__ */ jsxRuntime.jsx(ui.DialogTitle, { children: "Connect your agent" }),
2085
2085
  /* @__PURE__ */ jsxRuntime.jsx(ui.DialogDescription, { children: "This key is shown once. Run the script on the machine that will host the agent." })
2086
2086
  ] }),
2087
- connect && /* @__PURE__ */ jsxRuntime.jsx(chunkXPB6KMPY_cjs.AgentConnectInstructions, { email: connect.email, signingKey: connect.signingKey })
2087
+ connect && /* @__PURE__ */ jsxRuntime.jsx(chunkHVOPUYAG_cjs.AgentConnectInstructions, { email: connect.email, signingKey: connect.signingKey })
2088
2088
  ]
2089
2089
  }
2090
2090
  ) })
@@ -2533,7 +2533,7 @@ function useMemoryCount(enabled) {
2533
2533
  }
2534
2534
  function AgentsTasks({ tasks, isLoading, agents, labels: l, onCompose }) {
2535
2535
  const { notify: notify16, openConversation, openDocument } = chunkT6GRWWRY_cjs.useBlocksEnvironment();
2536
- const people = chunkPJW2IOPZ_cjs.useTaskPeople();
2536
+ const people = chunkX3JJTHQ4_cjs.useTaskPeople();
2537
2537
  const canEditShared = react.useCanEditShared();
2538
2538
  const isWorkspaceOwner = react.useIsWorkspaceOwner();
2539
2539
  const { data: workflows = [] } = react.useWorkflows({ live: true });
@@ -2559,7 +2559,7 @@ function AgentsTasks({ tasks, isLoading, agents, labels: l, onCompose }) {
2559
2559
  }, [documents]);
2560
2560
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
2561
2561
  /* @__PURE__ */ jsxRuntime.jsx(
2562
- chunkXPB6KMPY_cjs.TaskTable,
2562
+ chunkHVOPUYAG_cjs.TaskTable,
2563
2563
  {
2564
2564
  tasks,
2565
2565
  isLoading,
@@ -2586,7 +2586,7 @@ function AgentsTasks({ tasks, isLoading, agents, labels: l, onCompose }) {
2586
2586
  }
2587
2587
  ),
2588
2588
  activityFor && /* @__PURE__ */ jsxRuntime.jsx(
2589
- chunkPJW2IOPZ_cjs.ConnectedTaskActivityDialog,
2589
+ chunkX3JJTHQ4_cjs.ConnectedTaskActivityDialog,
2590
2590
  {
2591
2591
  conversationId: activityFor.external_id,
2592
2592
  taskName: activityFor.title || l.untitledTask,
@@ -2608,7 +2608,7 @@ function AgentsLauncher({
2608
2608
  const { notify: notify16, openConversation } = chunkT6GRWWRY_cjs.useBlocksEnvironment();
2609
2609
  const { workspaceId, ensureWorkspaceOpen } = chunkKGAYUFXD_cjs.useConnectedWorkspace();
2610
2610
  const { data: skills = [] } = react.useSkills({ enabled: includeSkills && !!workspaceId, live: true });
2611
- const workflowTasks = chunkPJW2IOPZ_cjs.useWorkflowTasks();
2611
+ const workflowTasks = chunkX3JJTHQ4_cjs.useWorkflowTasks();
2612
2612
  const launchable = react$1.useMemo(
2613
2613
  () => [
2614
2614
  ...workflows,
@@ -2631,7 +2631,7 @@ function AgentsLauncher({
2631
2631
  [workflows, includeSkills, skills, l.skillFiles]
2632
2632
  );
2633
2633
  const launch = async ({ workflow, inputs, agentId }) => {
2634
- const values = chunkXPB6KMPY_cjs.defaultTaskComposerValues(launchable, {
2634
+ const values = chunkHVOPUYAG_cjs.defaultTaskComposerValues(launchable, {
2635
2635
  workflowId: workflow.id,
2636
2636
  assignee: "agent",
2637
2637
  inputs,
@@ -2652,7 +2652,7 @@ function AgentsLauncher({
2652
2652
  }
2653
2653
  };
2654
2654
  return /* @__PURE__ */ jsxRuntime.jsx(
2655
- chunkONML6J5O_cjs.ConnectedWorkflowLauncher,
2655
+ chunkUDMII47W_cjs.ConnectedWorkflowLauncher,
2656
2656
  {
2657
2657
  workflows: launchable,
2658
2658
  onLaunch: launch,
@@ -2755,7 +2755,7 @@ function ConnectedAgentsPage({
2755
2755
  labels: agentOptions.managementLabels
2756
2756
  });
2757
2757
  const { agents, isLoading: agentsLoading } = management;
2758
- const tasksByAgent = react$1.useMemo(() => chunkXPB6KMPY_cjs.groupAgentTasks(tasks), [tasks]);
2758
+ const tasksByAgent = react$1.useMemo(() => chunkHVOPUYAG_cjs.groupAgentTasks(tasks), [tasks]);
2759
2759
  const behaviour = useAgentBehaviour(
2760
2760
  l.defaultBehaviour,
2761
2761
  details.includes("behaviour") || sections.includes("stats")
@@ -2780,7 +2780,7 @@ function ConnectedAgentsPage({
2780
2780
  renderDetails?.(agent)
2781
2781
  ] });
2782
2782
  const gallery = /* @__PURE__ */ jsxRuntime.jsx(
2783
- chunkXPB6KMPY_cjs.AgentGallery,
2783
+ chunkHVOPUYAG_cjs.AgentGallery,
2784
2784
  {
2785
2785
  count: agents.length,
2786
2786
  onCreate: management.create,
@@ -2790,10 +2790,10 @@ function ConnectedAgentsPage({
2790
2790
  const agentTasks = tasksByAgent.get(agent.external_id) ?? [];
2791
2791
  const running = agentTasks.filter((t) => t.in_progress);
2792
2792
  const watchConversationId = running[0]?.external_id ?? null;
2793
- const progress = agentTasks[0] ? chunkXPB6KMPY_cjs.goalProgress(agentTasks[0]) : null;
2793
+ const progress = agentTasks[0] ? chunkHVOPUYAG_cjs.goalProgress(agentTasks[0]) : null;
2794
2794
  const name = displayName(agent);
2795
2795
  return /* @__PURE__ */ jsxRuntime.jsx(
2796
- chunkXPB6KMPY_cjs.AgentCard,
2796
+ chunkHVOPUYAG_cjs.AgentCard,
2797
2797
  {
2798
2798
  name,
2799
2799
  avatar: avatar === "icon" ? /* @__PURE__ */ jsxRuntime.jsx(AgentIconAvatar, {}) : /* @__PURE__ */ jsxRuntime.jsx(AgentInitialsAvatar, { agent }),
@@ -2892,7 +2892,7 @@ function ConnectedAgentsPage({
2892
2892
  ) });
2893
2893
  case "scheduled":
2894
2894
  return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex h-[min(32rem,70dvh)] min-h-64 flex-col", children: /* @__PURE__ */ jsxRuntime.jsx(
2895
- chunkONML6J5O_cjs.ConnectedWorkflowsTable,
2895
+ chunkUDMII47W_cjs.ConnectedWorkflowsTable,
2896
2896
  {
2897
2897
  filter: "scheduled",
2898
2898
  onEdit: (w) => openWorkflow?.(w.external_id),
@@ -2920,7 +2920,7 @@ function ConnectedAgentsPage({
2920
2920
  const dialogs = /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
2921
2921
  /* @__PURE__ */ jsxRuntime.jsx(ConnectedAgentCreator, { ...management.editorProps, ...agentOptions.creator }),
2922
2922
  taskDialog && /* @__PURE__ */ jsxRuntime.jsx(
2923
- chunkPJW2IOPZ_cjs.ConnectedTaskComposer,
2923
+ chunkX3JJTHQ4_cjs.ConnectedTaskComposer,
2924
2924
  {
2925
2925
  open: true,
2926
2926
  onOpenChange: (open) => !open && setTaskDialog(null),
@@ -2989,8 +2989,8 @@ function ConnectedAgentsPage({
2989
2989
  ] });
2990
2990
  }
2991
2991
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex h-full flex-col", "data-testid": ids.root, children: [
2992
- /* @__PURE__ */ jsxRuntime.jsx(chunkTX4CIWH5_cjs.DraggableHeader, { children: /* @__PURE__ */ jsxRuntime.jsx(
2993
- chunkMEMWZ72Y_cjs.TabHeader,
2992
+ /* @__PURE__ */ jsxRuntime.jsx(chunkJBL4PPEE_cjs.DraggableHeader, { children: /* @__PURE__ */ jsxRuntime.jsx(
2993
+ chunkWVEFRQSW_cjs.TabHeader,
2994
2994
  {
2995
2995
  tabs: [
2996
2996
  {
@@ -3100,10 +3100,10 @@ function cascadeTagCombination(tags, previous, next) {
3100
3100
  function tagCombinationMatches(combination, items) {
3101
3101
  if (!isCombining(combination)) return void 0;
3102
3102
  const pass = (list) => new Set(
3103
- chunkTX4CIWH5_cjs.applyInvertedIndexFilter(
3103
+ chunkJBL4PPEE_cjs.applyInvertedIndexFilter(
3104
3104
  [...list],
3105
3105
  combination,
3106
- chunkTX4CIWH5_cjs.buildInvertedIndex(
3106
+ chunkJBL4PPEE_cjs.buildInvertedIndex(
3107
3107
  [...list],
3108
3108
  (item) => item.id,
3109
3109
  (item) => item.tagIds
@@ -3220,7 +3220,7 @@ function ConnectedTagTable({
3220
3220
  const fail2 = (fallback) => (e) => notify16(browser.refusalReason(e, fallback), "error");
3221
3221
  const snapshot2 = (data) => {
3222
3222
  const title = exportTitle ?? ui.tagKindTitle(kind, { plural: true });
3223
- const bytes = chunk3VCVMW5X_cjs.tagTableDocx(data, {
3223
+ const bytes = chunk4RJPTXUQ_cjs.tagTableDocx(data, {
3224
3224
  title,
3225
3225
  nameOf: (id) => people.find((p) => p.value === id)?.label
3226
3226
  });
@@ -3229,7 +3229,7 @@ function ConnectedTagTable({
3229
3229
  return { blob: new Blob([bytes], { type: chunkJIOHDVWH_cjs.DOCX_MIME_TYPE }), name };
3230
3230
  };
3231
3231
  return /* @__PURE__ */ jsxRuntime.jsx(
3232
- chunk3VCVMW5X_cjs.TagTable,
3232
+ chunk4RJPTXUQ_cjs.TagTable,
3233
3233
  {
3234
3234
  ...props,
3235
3235
  table,
@@ -3310,7 +3310,7 @@ function DocTagPassages({ docId, tagId, label, docOf, testId }) {
3310
3310
  const doc = docOf(cited.doc_ext_id);
3311
3311
  const passages = ordered(cited);
3312
3312
  return /* @__PURE__ */ jsxRuntime.jsx(
3313
- chunkLMKEDVEB_cjs.FactSourceGroup,
3313
+ chunkF73EZQT4_cjs.FactSourceGroup,
3314
3314
  {
3315
3315
  docId: cited.doc_ext_id,
3316
3316
  hasPassages: passages.length > 0,
@@ -3367,9 +3367,9 @@ function GlossaryExport({ labelId, nameOf }) {
3367
3367
  const narrowed = agreements.find((a) => a.id === narrowTo);
3368
3368
  const title = narrowed ? `Glossary - ${narrowed.name}` : "Glossary";
3369
3369
  const download = (format) => {
3370
- const entries = chunk3VCVMW5X_cjs.glossaryEntries(sources, { labelId: narrowed?.id });
3371
- const blob = format === "docx" ? new Blob([chunk3VCVMW5X_cjs.glossaryDocx(entries, { title })], { type: chunkJIOHDVWH_cjs.DOCX_MIME_TYPE }) : new Blob([chunk3VCVMW5X_cjs.glossaryMarkdown(entries, { title })], { type: "text/markdown" });
3372
- documentTools.downloadBlob(blob, chunk3VCVMW5X_cjs.glossaryFileName(title, 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
3373
  };
3374
3374
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", "data-testid": "tags-glossary", children: [
3375
3375
  agreements.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs(
@@ -3786,7 +3786,7 @@ function TagFilterChips({
3786
3786
  const name = (id) => tags.find((t) => t.external_id === id)?.name ?? id;
3787
3787
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-wrap items-center gap-1.5", "data-testid": "tags-filter-chips", children: [
3788
3788
  set.map(([id, state]) => /* @__PURE__ */ jsxRuntime.jsx(
3789
- chunkTX4CIWH5_cjs.FilterChip,
3789
+ chunkJBL4PPEE_cjs.FilterChip,
3790
3790
  {
3791
3791
  label: name(id),
3792
3792
  state,
@@ -3914,7 +3914,7 @@ function KindSection({
3914
3914
  {
3915
3915
  testId: `tags-kind-${kind}`,
3916
3916
  title: ui.tagKindTitle(kind, { plural: true }),
3917
- description: chunk3VCVMW5X_cjs.tagKindDescription(kind),
3917
+ description: chunk4RJPTXUQ_cjs.tagKindDescription(kind),
3918
3918
  actions: picker,
3919
3919
  children: [
3920
3920
  browser.isEntityTag({ kind }) && extractingCount > 0 && /* @__PURE__ */ jsxRuntime.jsxs(
@@ -3925,9 +3925,9 @@ function KindSection({
3925
3925
  children: [
3926
3926
  /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Loader2, { className: "size-4 animate-spin" }),
3927
3927
  "Extracting ",
3928
- chunk3VCVMW5X_cjs.entitiesPhrase().toLowerCase(),
3928
+ chunk4RJPTXUQ_cjs.entitiesPhrase().toLowerCase(),
3929
3929
  " from ",
3930
- chunk3VCVMW5X_cjs.documentCount(extractingCount),
3930
+ chunk4RJPTXUQ_cjs.documentCount(extractingCount),
3931
3931
  "\u2026"
3932
3932
  ]
3933
3933
  }
@@ -3945,7 +3945,7 @@ function KindSection({
3945
3945
  onOpenDocument: (id) => openDocument(id),
3946
3946
  onOpenFact: ctx.onOpenFact,
3947
3947
  onOpenThread: (id) => openConversation(id),
3948
- labels: chunk3VCVMW5X_cjs.tagTableLabels(kind),
3948
+ labels: chunk4RJPTXUQ_cjs.tagTableLabels(kind),
3949
3949
  testId: `tags-table-${kind}`
3950
3950
  }
3951
3951
  )
@@ -4047,12 +4047,12 @@ function TagSection({
4047
4047
  onOpenDocument: (id) => openDocument(id),
4048
4048
  onOpenFact: ctx.onOpenFact,
4049
4049
  onOpenThread: (id) => openConversation(id),
4050
- labels: chunk3VCVMW5X_cjs.tagTableLabels(tag.kind),
4050
+ labels: chunk4RJPTXUQ_cjs.tagTableLabels(tag.kind),
4051
4051
  testId: "tags-rows"
4052
4052
  }
4053
4053
  ),
4054
4054
  /* @__PURE__ */ jsxRuntime.jsx(
4055
- chunk3VCVMW5X_cjs.TagDetail,
4055
+ chunk4RJPTXUQ_cjs.TagDetail,
4056
4056
  {
4057
4057
  row: detailRow && narrowTagRow(detailRow, ctx.filter.matches),
4058
4058
  fields: schema.data?.fields ?? [],
@@ -4064,10 +4064,10 @@ function TagSection({
4064
4064
  onOpenDocument: (id) => openDocument(id),
4065
4065
  onOpenFact: ctx.onOpenFact,
4066
4066
  onOpenThread: (id) => openConversation(id),
4067
- noteLabel: chunk3VCVMW5X_cjs.tagNoteLabel(tag.kind),
4067
+ noteLabel: chunk4RJPTXUQ_cjs.tagNoteLabel(tag.kind),
4068
4068
  noteIsValue: tag.kind === "annotation",
4069
4069
  renderPassages: (d, label) => renderPassages(d.doc_ext_id, label),
4070
- labels: chunk3VCVMW5X_cjs.tagDetailLabels(),
4070
+ labels: chunk4RJPTXUQ_cjs.tagDetailLabels(),
4071
4071
  testId: "tags-detail"
4072
4072
  }
4073
4073
  )
@@ -4155,7 +4155,7 @@ function ConnectedTagsPage({
4155
4155
  const onDelete = async (t) => {
4156
4156
  const nested = browser.getChildTags([...tags], t.external_id);
4157
4157
  const uses = browser.tagUseCount(t);
4158
- const n2 = chunk3VCVMW5X_cjs.tagsPageNouns();
4158
+ const n2 = chunk4RJPTXUQ_cjs.tagsPageNouns();
4159
4159
  const tagNoun = (count2) => (count2 === 1 ? n2.tag : n2.tags).toLowerCase();
4160
4160
  const carriers = uses === 1 ? `${n2.document}, ${n2.fact} or ${n2.thread}` : `${n2.documents}, ${n2.facts} and ${n2.threads}`;
4161
4161
  const message = `Delete ${ui.tagKindNouns(t.kind).singular} "${t.name}"?` + (uses > 0 ? `
@@ -4176,16 +4176,16 @@ ${nested.length} nested ${tagNoun(nested.length)} ${nested.length === 1 ? "moves
4176
4176
  try {
4177
4177
  await extract.mutateAsync(docIds);
4178
4178
  notify16(
4179
- `Extracting ${chunk3VCVMW5X_cjs.entitiesPhrase().toLowerCase()} from ${chunk3VCVMW5X_cjs.documentCount(docIds.length)}. You will be notified when it is done.`,
4179
+ `Extracting ${chunk4RJPTXUQ_cjs.entitiesPhrase().toLowerCase()} from ${chunk4RJPTXUQ_cjs.documentCount(docIds.length)}. You will be notified when it is done.`,
4180
4180
  "info"
4181
4181
  );
4182
4182
  } catch (error) {
4183
- notify16(browser.refusalReason(error, `Could not extract ${chunk3VCVMW5X_cjs.entitiesPhrase().toLowerCase()}`), "error");
4183
+ notify16(browser.refusalReason(error, `Could not extract ${chunk4RJPTXUQ_cjs.entitiesPhrase().toLowerCase()}`), "error");
4184
4184
  throw error;
4185
4185
  }
4186
4186
  };
4187
4187
  const picker = /* @__PURE__ */ jsxRuntime.jsx(
4188
- chunk3VCVMW5X_cjs.TagPicker,
4188
+ chunk4RJPTXUQ_cjs.TagPicker,
4189
4189
  {
4190
4190
  tags: viewTags,
4191
4191
  selectedId: tag?.external_id,
@@ -4199,10 +4199,10 @@ ${nested.length} nested ${tagNoun(nested.length)} ${nested.length === 1 ? "moves
4199
4199
  onOpenTag: openTag,
4200
4200
  onOpenFact
4201
4201
  };
4202
- const n = chunk3VCVMW5X_cjs.tagsPageNouns();
4202
+ const n = chunk4RJPTXUQ_cjs.tagsPageNouns();
4203
4203
  const action = view === "person" || view === "organisation" ? {
4204
4204
  label: "Extract",
4205
- title: `Extract ${chunk3VCVMW5X_cjs.entitiesPhrase().toLowerCase()} from ${n.documents.toLowerCase()}`,
4205
+ title: `Extract ${chunk4RJPTXUQ_cjs.entitiesPhrase().toLowerCase()} from ${n.documents.toLowerCase()}`,
4206
4206
  icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Sparkles, { className: "h-4 w-4" }),
4207
4207
  run: () => setExtracting(true),
4208
4208
  testId: "tags-extract-entities"
@@ -4226,7 +4226,7 @@ ${nested.length} nested ${tagNoun(nested.length)} ${nested.length === 1 ? "moves
4226
4226
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-6 p-2 sm:p-4", children: [
4227
4227
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "sticky top-0 z-10 -mx-2 -mt-2 bg-background sm:-mx-4 sm:-mt-4", children: [
4228
4228
  /* @__PURE__ */ jsxRuntime.jsx(
4229
- chunkMEMWZ72Y_cjs.TabHeader,
4229
+ chunkWVEFRQSW_cjs.TabHeader,
4230
4230
  {
4231
4231
  testId: "tags-tab-header",
4232
4232
  tabs: [
@@ -4352,7 +4352,7 @@ ${nested.length} nested ${tagNoun(nested.length)} ${nested.length === 1 ? "moves
4352
4352
  }
4353
4353
  ),
4354
4354
  /* @__PURE__ */ jsxRuntime.jsx(
4355
- chunk3VCVMW5X_cjs.ExtractEntitiesDialog,
4355
+ chunk4RJPTXUQ_cjs.ExtractEntitiesDialog,
4356
4356
  {
4357
4357
  open: extracting,
4358
4358
  onOpenChange: setExtracting,
@@ -4443,7 +4443,7 @@ function FactSourcesPopover({
4443
4443
  const olderVersion = refOf(docId) !== docId ? refOf(docId).split("@v")[1] : null;
4444
4444
  const cited = passagesOf(docId);
4445
4445
  return /* @__PURE__ */ jsxRuntime.jsx(
4446
- chunkLMKEDVEB_cjs.FactSourceGroup,
4446
+ chunkF73EZQT4_cjs.FactSourceGroup,
4447
4447
  {
4448
4448
  docId,
4449
4449
  isViewing,
@@ -4532,7 +4532,7 @@ function FactMarkdownEditor({
4532
4532
  const editorRef = react$1.useRef(null);
4533
4533
  react$1.useEffect(() => {
4534
4534
  if (!editorRef.current) return;
4535
- return chunkLMKEDVEB_cjs.enableFactTableColumnResize(editorRef.current);
4535
+ return chunkF73EZQT4_cjs.enableFactTableColumnResize(editorRef.current);
4536
4536
  }, []);
4537
4537
  react$1.useEffect(() => {
4538
4538
  if (!editing) return;
@@ -5049,10 +5049,10 @@ function useFactFilters(notes, view, chat) {
5049
5049
  const factFilters = view.filters;
5050
5050
  const setFactFilters = view.setFilters;
5051
5051
  const quickFilteredNotes = react$1.useMemo(
5052
- () => chunkTX4CIWH5_cjs.applyInvertedIndexFilter(
5052
+ () => chunkJBL4PPEE_cjs.applyInvertedIndexFilter(
5053
5053
  notes,
5054
5054
  factFilters,
5055
- chunkTX4CIWH5_cjs.buildInvertedIndex(
5055
+ chunkJBL4PPEE_cjs.buildInvertedIndex(
5056
5056
  notes,
5057
5057
  (f) => f.external_id,
5058
5058
  (f) => Object.entries(getFactFilterAttributes(f)).filter(([id, on]) => on && factFilterIds.includes(id)).map(([id]) => id)
@@ -5130,7 +5130,7 @@ function useFactFilters(notes, view, chat) {
5130
5130
  const makeTagPicker = react$1.useCallback(
5131
5131
  (selected, setSelected, opts) => {
5132
5132
  const applied = new Set(selected);
5133
- return /* @__PURE__ */ jsxRuntime.jsx(chunkLMKEDVEB_cjs.FactFieldRow, { label: "Labels", children: /* @__PURE__ */ jsxRuntime.jsx(
5133
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkF73EZQT4_cjs.FactFieldRow, { label: "Labels", children: /* @__PURE__ */ jsxRuntime.jsx(
5134
5134
  chunkVGNCU5JJ_cjs.FieldLabelsSelect,
5135
5135
  {
5136
5136
  options: labelOptions,
@@ -5321,14 +5321,14 @@ function useFactSelection(notes, gridApiRef, setFactTags, chat) {
5321
5321
  }
5322
5322
  function renderSourcesCell(params) {
5323
5323
  const fact = params.data;
5324
- const count2 = chunkLMKEDVEB_cjs.sourceDocCount(fact);
5324
+ const count2 = chunkF73EZQT4_cjs.sourceDocCount(fact);
5325
5325
  if (!fact || count2 === 0) return /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-muted-foreground/40", children: "\u2014" });
5326
5326
  return /* @__PURE__ */ jsxRuntime.jsxs(
5327
5327
  "button",
5328
5328
  {
5329
5329
  type: "button",
5330
5330
  onClick: () => params.context?.openEdit?.(fact),
5331
- title: chunkLMKEDVEB_cjs.DEFAULT_FACT_COLUMN_LABELS.sourcedFrom(count2),
5331
+ title: chunkF73EZQT4_cjs.DEFAULT_FACT_COLUMN_LABELS.sourcedFrom(count2),
5332
5332
  "data-testid": `facts-grid-sources-${fact.external_id}`,
5333
5333
  className: "inline-flex items-center gap-1 text-xs text-muted-foreground hover:text-foreground",
5334
5334
  children: [
@@ -5385,14 +5385,14 @@ function createFactPageColumns({
5385
5385
  onToggleConfirmed,
5386
5386
  onToggleShared
5387
5387
  }) {
5388
- const columns = chunkLMKEDVEB_cjs.createFactColumns({
5388
+ const columns = chunkF73EZQT4_cjs.createFactColumns({
5389
5389
  onToggleInChat,
5390
5390
  isInChat,
5391
5391
  renderHeader: (params, colId) => /* @__PURE__ */ jsxRuntime.jsx(FactHeader, { params, colId }),
5392
5392
  renderRowActions: (fact, params) => {
5393
5393
  const ctx = params.context;
5394
5394
  return /* @__PURE__ */ jsxRuntime.jsx(
5395
- chunkLMKEDVEB_cjs.FactRowActions,
5395
+ chunkF73EZQT4_cjs.FactRowActions,
5396
5396
  {
5397
5397
  onEdit: () => ctx?.openEdit?.(fact),
5398
5398
  canEdit: ctx?.canRewrite?.(fact) !== false,
@@ -5522,7 +5522,7 @@ function useFactsGrid({
5522
5522
  );
5523
5523
  const renderFactTags = react$1.useCallback(
5524
5524
  (fact, rowHeight) => /* @__PURE__ */ jsxRuntime.jsx(
5525
- chunkLMKEDVEB_cjs.FactLabelsCell,
5525
+ chunkF73EZQT4_cjs.FactLabelsCell,
5526
5526
  {
5527
5527
  options: labelOptions,
5528
5528
  selectedIds: fact.tags.map((t) => t.tag_ext_id),
@@ -6326,7 +6326,7 @@ function ConnectedFactsPage({
6326
6326
  };
6327
6327
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { ref: setFactSection, className: "relative flex h-full flex-col", "data-testid": "facts-page", children: [
6328
6328
  /* @__PURE__ */ jsxRuntime.jsx(
6329
- chunkLMKEDVEB_cjs.FactsToolbar,
6329
+ chunkF73EZQT4_cjs.FactsToolbar,
6330
6330
  {
6331
6331
  count: filteredNotes.length,
6332
6332
  hasActiveFilters: filters.hasActiveFilters,
@@ -6355,7 +6355,7 @@ function ConnectedFactsPage({
6355
6355
  onNewFact: composing && !editingId ? () => void 0 : composer.startNewFact,
6356
6356
  navSlotRef: setNavSlot,
6357
6357
  navigator: view === "table" ? /* @__PURE__ */ jsxRuntime.jsx(
6358
- chunk3VCVMW5X_cjs.GridRowNavigator,
6358
+ chunk4RJPTXUQ_cjs.GridRowNavigator,
6359
6359
  {
6360
6360
  gridApi,
6361
6361
  selectedId: editingId,
@@ -6366,7 +6366,7 @@ function ConnectedFactsPage({
6366
6366
  ) : null,
6367
6367
  showToolbarRow: view !== "smart_search",
6368
6368
  tools: /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
6369
- view === "table" && /* @__PURE__ */ jsxRuntime.jsx(chunkLMKEDVEB_cjs.FactsFieldsButton, { getGridApi: () => gridApiRef.current }),
6369
+ view === "table" && /* @__PURE__ */ jsxRuntime.jsx(chunkF73EZQT4_cjs.FactsFieldsButton, { getGridApi: () => gridApiRef.current }),
6370
6370
  view === "table" && /* @__PURE__ */ jsxRuntime.jsx(
6371
6371
  chunkVGNCU5JJ_cjs.RowDensityControl,
6372
6372
  {
@@ -6387,7 +6387,7 @@ function ConnectedFactsPage({
6387
6387
  }
6388
6388
  ),
6389
6389
  /* @__PURE__ */ jsxRuntime.jsx(
6390
- chunkLMKEDVEB_cjs.FactComposer,
6390
+ chunkF73EZQT4_cjs.FactComposer,
6391
6391
  {
6392
6392
  isOpen: composing,
6393
6393
  isEditing: !!editingId,
@@ -6420,7 +6420,7 @@ function ConnectedFactsPage({
6420
6420
  reserveSourcesSpace: view === "gantt" || view === "calendar",
6421
6421
  citationContainer: factSection,
6422
6422
  renderDocumentPicker: (onSelect, selectedIds, onOpen, sourcesToggle, sourcesOpen) => /* @__PURE__ */ jsxRuntime.jsx(
6423
- chunkLMKEDVEB_cjs.FactSourcesRow,
6423
+ chunkF73EZQT4_cjs.FactSourcesRow,
6424
6424
  {
6425
6425
  toggle: sourcesToggle,
6426
6426
  picker: /* @__PURE__ */ jsxRuntime.jsx(
@@ -6466,7 +6466,7 @@ function ConnectedFactsPage({
6466
6466
  }
6467
6467
  ),
6468
6468
  dateInput: /* @__PURE__ */ jsxRuntime.jsx(
6469
- chunkLMKEDVEB_cjs.FactDateInput,
6469
+ chunkF73EZQT4_cjs.FactDateInput,
6470
6470
  {
6471
6471
  value: composer.draftDateFields,
6472
6472
  onChange: composer.setDraftDateFields,
@@ -6476,13 +6476,13 @@ function ConnectedFactsPage({
6476
6476
  }
6477
6477
  ),
6478
6478
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "scrollbar-subtle flex-1 overflow-y-auto pb-2", children: [
6479
- isLoading ? /* @__PURE__ */ jsxRuntime.jsx(chunkLMKEDVEB_cjs.FactsLoading, {}) : isError ? /* @__PURE__ */ jsxRuntime.jsx(chunkLMKEDVEB_cjs.FactsLoadError, { onRetry: () => refetch() }) : smartSearch ? (
6479
+ isLoading ? /* @__PURE__ */ jsxRuntime.jsx(chunkF73EZQT4_cjs.FactsLoading, {}) : isError ? /* @__PURE__ */ jsxRuntime.jsx(chunkF73EZQT4_cjs.FactsLoadError, { onRetry: () => refetch() }) : smartSearch ? (
6480
6480
  // Searches facts only (never documents). Kept before the empty-state guard so the
6481
6481
  // search UI is reachable even in an empty workspace.
6482
6482
  smartSearch({ selectedFactId: editingId, onOpenFact: openFactById })
6483
6483
  ) : notes.length === 0 ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex min-h-full flex-col items-center justify-center", children: [
6484
6484
  /* @__PURE__ */ jsxRuntime.jsx(
6485
- chunkLMKEDVEB_cjs.FactsEmptyState,
6485
+ chunkF73EZQT4_cjs.FactsEmptyState,
6486
6486
  {
6487
6487
  onUseExample: (text2) => {
6488
6488
  composer.setDraft(text2);
@@ -6493,7 +6493,7 @@ function ConnectedFactsPage({
6493
6493
  ),
6494
6494
  emptyStateExtra
6495
6495
  ] }) : view === "calendar" ? /* @__PURE__ */ jsxRuntime.jsx(
6496
- chunkLMKEDVEB_cjs.FactsCalendar,
6496
+ chunkF73EZQT4_cjs.FactsCalendar,
6497
6497
  {
6498
6498
  facts: filteredNotes,
6499
6499
  onSelect: (n) => openEditIfAllowed(n),
@@ -6502,7 +6502,7 @@ function ConnectedFactsPage({
6502
6502
  navigatorTotal: filteredNotes.length
6503
6503
  }
6504
6504
  ) : view === "gantt" ? /* @__PURE__ */ jsxRuntime.jsx(
6505
- chunkLMKEDVEB_cjs.FactsGanttPane,
6505
+ chunkF73EZQT4_cjs.FactsGanttPane,
6506
6506
  {
6507
6507
  items: ganttItems,
6508
6508
  labelWidth: pageView.labelWidth,
@@ -6552,7 +6552,7 @@ function ConnectedFactsPage({
6552
6552
  )
6553
6553
  ] }),
6554
6554
  selectable && notes.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(
6555
- chunkLMKEDVEB_cjs.FactsBulkBar,
6555
+ chunkF73EZQT4_cjs.FactsBulkBar,
6556
6556
  {
6557
6557
  count: selection.selectedFacts.length,
6558
6558
  onClear: selection.clearSelection,
@@ -6675,11 +6675,11 @@ function ConnectedProfileCard({
6675
6675
  const display = profile?.fullName || "Unnamed";
6676
6676
  return /* @__PURE__ */ jsxRuntime.jsxs(chunkIRY63R4L_cjs.SettingsSection, { icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.UserCircle, {}), title, children: [
6677
6677
  /* @__PURE__ */ jsxRuntime.jsx(
6678
- chunkTX4CIWH5_cjs.ProfileCard,
6678
+ chunkJBL4PPEE_cjs.ProfileCard,
6679
6679
  {
6680
6680
  avatar: /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
6681
6681
  /* @__PURE__ */ jsxRuntime.jsx(
6682
- chunkTX4CIWH5_cjs.AvatarPicker,
6682
+ chunkJBL4PPEE_cjs.AvatarPicker,
6683
6683
  {
6684
6684
  pictureUrl: profile?.picture,
6685
6685
  initials: chunkUFEXJIEY_cjs.initials(display),
@@ -6729,7 +6729,7 @@ function ConnectedIdentityVerification({
6729
6729
  });
6730
6730
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
6731
6731
  /* @__PURE__ */ jsxRuntime.jsx(
6732
- chunkTX4CIWH5_cjs.IdentityVerificationCard,
6732
+ chunkJBL4PPEE_cjs.IdentityVerificationCard,
6733
6733
  {
6734
6734
  flow,
6735
6735
  labels,
@@ -6738,7 +6738,7 @@ function ConnectedIdentityVerification({
6738
6738
  }
6739
6739
  ),
6740
6740
  /* @__PURE__ */ jsxRuntime.jsx(
6741
- chunkTX4CIWH5_cjs.IdentityVerificationDialog,
6741
+ chunkJBL4PPEE_cjs.IdentityVerificationDialog,
6742
6742
  {
6743
6743
  flow,
6744
6744
  accountName: profile?.fullName ?? "",
@@ -6751,7 +6751,7 @@ function ConnectedIdentityVerification({
6751
6751
  function ConnectedRequireVerified({ children, labels }) {
6752
6752
  const { data: profile } = react.useProfile();
6753
6753
  const flow = react.useIdentityVerification();
6754
- return /* @__PURE__ */ jsxRuntime.jsx(chunkTX4CIWH5_cjs.RequireVerified, { flow, accountName: profile?.fullName ?? "", labels, children });
6754
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkJBL4PPEE_cjs.RequireVerified, { flow, accountName: profile?.fullName ?? "", labels, children });
6755
6755
  }
6756
6756
  function ConnectedPasswordChangeDialog({
6757
6757
  open,
@@ -6760,7 +6760,7 @@ function ConnectedPasswordChangeDialog({
6760
6760
  onRecoveryComplete
6761
6761
  }) {
6762
6762
  const { notify: notify16 } = chunkT6GRWWRY_cjs.useBlocksEnvironment();
6763
- const getUnmetRequirement = chunkLZROSRGK_cjs.useAuthPages().passwordRules.unmet;
6763
+ const getUnmetRequirement = chunk3X37I6QE_cjs.useAuthPages().passwordRules.unmet;
6764
6764
  const change = react.usePasswordChange();
6765
6765
  const form = react.usePasswordChangeForm({
6766
6766
  recoveryMode,
@@ -6776,7 +6776,7 @@ function ConnectedPasswordChangeDialog({
6776
6776
  onRecoveryComplete
6777
6777
  });
6778
6778
  return /* @__PURE__ */ jsxRuntime.jsx(
6779
- chunkTX4CIWH5_cjs.PasswordChangeDialog,
6779
+ chunkJBL4PPEE_cjs.PasswordChangeDialog,
6780
6780
  {
6781
6781
  open,
6782
6782
  onClose: form.onCancel,
@@ -6816,23 +6816,23 @@ function ConnectedSecuritySection({ children }) {
6816
6816
  ] });
6817
6817
  }
6818
6818
  function ConnectedNotificationPreferences({
6819
- categories = chunkTX4CIWH5_cjs.EMAIL_NOTIFICATION_CATEGORIES,
6819
+ categories = chunkJBL4PPEE_cjs.EMAIL_NOTIFICATION_CATEGORIES,
6820
6820
  title = "Notifications"
6821
6821
  }) {
6822
6822
  const keys = react$1.useMemo(
6823
- () => categories === chunkTX4CIWH5_cjs.EMAIL_NOTIFICATION_CATEGORIES ? chunkTX4CIWH5_cjs.EMAIL_NOTIFICATION_KEYS : categories.map((c) => c.key),
6823
+ () => categories === chunkJBL4PPEE_cjs.EMAIL_NOTIFICATION_CATEGORIES ? chunkJBL4PPEE_cjs.EMAIL_NOTIFICATION_KEYS : categories.map((c) => c.key),
6824
6824
  [categories]
6825
6825
  );
6826
6826
  const prefs = react.useNotificationPreferences(keys);
6827
6827
  return /* @__PURE__ */ jsxRuntime.jsx(chunkIRY63R4L_cjs.SettingsSection, { title, children: /* @__PURE__ */ jsxRuntime.jsx(chunkIRY63R4L_cjs.SettingsCard, { className: "space-y-0", children: /* @__PURE__ */ jsxRuntime.jsx(
6828
- chunkTX4CIWH5_cjs.NotificationCategoryList,
6828
+ chunkJBL4PPEE_cjs.NotificationCategoryList,
6829
6829
  {
6830
6830
  masterId: "emailNotifications",
6831
6831
  masterTitle: "Email Notifications",
6832
6832
  masterDescription: "Email me about activity when I\u2019m away",
6833
6833
  masterChecked: prefs.masterChecked,
6834
6834
  onMasterChange: prefs.setAll,
6835
- categories: chunkTX4CIWH5_cjs.toNotificationCategories(prefs.checked, categories),
6835
+ categories: chunkJBL4PPEE_cjs.toNotificationCategories(prefs.checked, categories),
6836
6836
  onCategoryChange: prefs.setCategory
6837
6837
  }
6838
6838
  ) }) });
@@ -6845,7 +6845,7 @@ function ConnectedSessionsRow({
6845
6845
  const sessions = react.useSessions({ enabled: open });
6846
6846
  const currentSessionId = react.useCurrentSessionId();
6847
6847
  const terminate = react.useTerminateSession();
6848
- const views = chunkTX4CIWH5_cjs.toActiveSessionViews(sessions.data ?? [], {
6848
+ const views = chunkJBL4PPEE_cjs.toActiveSessionViews(sessions.data ?? [], {
6849
6849
  currentSessionId,
6850
6850
  terminatingId: terminate.isPending ? terminate.variables : null,
6851
6851
  renderIcon: renderSessionIcon
@@ -6874,7 +6874,7 @@ function ConnectedSessionsRow({
6874
6874
  }
6875
6875
  ),
6876
6876
  /* @__PURE__ */ jsxRuntime.jsx(
6877
- chunkTX4CIWH5_cjs.ActiveSessionsDialog,
6877
+ chunkJBL4PPEE_cjs.ActiveSessionsDialog,
6878
6878
  {
6879
6879
  open,
6880
6880
  onOpenChange: setOpen,
@@ -6917,7 +6917,7 @@ function ConnectedLogoutDialog({
6917
6917
  signOut.mutate({ everywhere, reason: "manual" });
6918
6918
  };
6919
6919
  return /* @__PURE__ */ jsxRuntime.jsx(
6920
- chunkTX4CIWH5_cjs.LogoutDialog,
6920
+ chunkJBL4PPEE_cjs.LogoutDialog,
6921
6921
  {
6922
6922
  open,
6923
6923
  onClose,
@@ -6925,7 +6925,7 @@ function ConnectedLogoutDialog({
6925
6925
  onLogoutAll: () => void run(true),
6926
6926
  canLogoutAll: canLogoutAll ?? !(user && ui.isAgent(user)),
6927
6927
  isOnline,
6928
- sessions: chunkTX4CIWH5_cjs.toLogoutSessionViews(sessions.data ?? []),
6928
+ sessions: chunkJBL4PPEE_cjs.toLogoutSessionViews(sessions.data ?? []),
6929
6929
  renderSessionIcon
6930
6930
  }
6931
6931
  );
@@ -6967,12 +6967,12 @@ function ConnectedDangerZone({ renderSubscriptionLink }) {
6967
6967
  }
6968
6968
  ),
6969
6969
  /* @__PURE__ */ jsxRuntime.jsx(
6970
- chunkTX4CIWH5_cjs.DeleteAccountDialog,
6970
+ chunkJBL4PPEE_cjs.DeleteAccountDialog,
6971
6971
  {
6972
6972
  open: dialogOpen,
6973
6973
  onClose: flow.onClose,
6974
6974
  step: flow.step,
6975
- blockers: chunkTX4CIWH5_cjs.toDeleteBlockerViews(flow.blockers, renderSubscriptionLink),
6975
+ blockers: chunkJBL4PPEE_cjs.toDeleteBlockerViews(flow.blockers, renderSubscriptionLink),
6976
6976
  onContinue: flow.onContinue,
6977
6977
  onBack: flow.onBack,
6978
6978
  userEmail,
@@ -6987,7 +6987,7 @@ function ConnectedDangerZone({ renderSubscriptionLink }) {
6987
6987
  function ConnectedSsoDisconnect() {
6988
6988
  const { client } = react.useAccountClient();
6989
6989
  const { data: profile } = react.useProfile();
6990
- const auth = chunkLZROSRGK_cjs.useAuthPages();
6990
+ const auth = chunk3X37I6QE_cjs.useAuthPages();
6991
6991
  const { notify: notify16 } = chunkT6GRWWRY_cjs.useBlocksEnvironment();
6992
6992
  const [open, setOpen] = react$1.useState(false);
6993
6993
  const [step, setStep] = react$1.useState("email");
@@ -7132,7 +7132,7 @@ function ConnectedBoxPortalSection() {
7132
7132
  function ServerConnectionRow({ onRefresh, ...status }) {
7133
7133
  const { runtimeConfig } = chunkT6GRWWRY_cjs.useBlocksEnvironment();
7134
7134
  const [isRefreshing, setIsRefreshing] = react$1.useState(false);
7135
- const view = chunkTX4CIWH5_cjs.serverConnectionView(status, runtimeConfig.deploymentDomain || "server");
7135
+ const view = chunkJBL4PPEE_cjs.serverConnectionView(status, runtimeConfig.deploymentDomain || "server");
7136
7136
  const refresh = async () => {
7137
7137
  setIsRefreshing(true);
7138
7138
  try {
@@ -7142,7 +7142,7 @@ function ServerConnectionRow({ onRefresh, ...status }) {
7142
7142
  }
7143
7143
  };
7144
7144
  return /* @__PURE__ */ jsxRuntime.jsx(chunkIRY63R4L_cjs.SettingsRow, { label: "Server connection", description: view.description, children: /* @__PURE__ */ jsxRuntime.jsx(
7145
- chunkTX4CIWH5_cjs.ServerConnectionButton,
7145
+ chunkJBL4PPEE_cjs.ServerConnectionButton,
7146
7146
  {
7147
7147
  state: view.state,
7148
7148
  label: view.label,
@@ -7552,13 +7552,13 @@ var COLUMNS = [
7552
7552
  flex: 1,
7553
7553
  minWidth: 120,
7554
7554
  cellRenderer: (params) => isStandard(params.data) ? /* @__PURE__ */ jsxRuntime.jsx(
7555
- chunkTX4CIWH5_cjs.ModelProviderLabel,
7555
+ chunkJBL4PPEE_cjs.ModelProviderLabel,
7556
7556
  {
7557
7557
  logo: /* @__PURE__ */ jsxRuntime.jsx(ui.ArbiIcon, { size: 14, "aria-label": "ARBI", className: "flex-shrink-0 rounded-sm" }),
7558
7558
  children: "ARBI CITY"
7559
7559
  }
7560
7560
  ) : /* @__PURE__ */ jsxRuntime.jsx(
7561
- chunkTX4CIWH5_cjs.ModelProviderLabel,
7561
+ chunkJBL4PPEE_cjs.ModelProviderLabel,
7562
7562
  {
7563
7563
  logo: /* @__PURE__ */ jsxRuntime.jsx(ui.ProviderIcon, { modelName: params.data?.model_name, provider: params.value, size: 14 }),
7564
7564
  children: PROVIDER_NAMES[params.value ?? ""] || params.value || "\u2014"
@@ -7635,7 +7635,7 @@ function ConnectedPremiumModels() {
7635
7635
  );
7636
7636
  if (premiumModels.length === 0) return null;
7637
7637
  return /* @__PURE__ */ jsxRuntime.jsx(chunkIRY63R4L_cjs.SettingsPanel, { className: "max-w-2xl space-y-4", children: /* @__PURE__ */ jsxRuntime.jsx(chunkIRY63R4L_cjs.SettingsSection, { title: "Premium models", children: /* @__PURE__ */ jsxRuntime.jsx(chunkIRY63R4L_cjs.SettingsCard, { className: "space-y-0", children: /* @__PURE__ */ jsxRuntime.jsx(
7638
- chunkTX4CIWH5_cjs.PremiumModelsFrame,
7638
+ chunkJBL4PPEE_cjs.PremiumModelsFrame,
7639
7639
  {
7640
7640
  enabled: premiumModel !== "",
7641
7641
  onEnabledChange: (enabled) => {
@@ -7764,10 +7764,10 @@ function ConnectedAppsSettings({
7764
7764
  }
7765
7765
  };
7766
7766
  if (isLoading) {
7767
- return /* @__PURE__ */ jsxRuntime.jsx(chunkTX4CIWH5_cjs.ConnectionsLoading, { message: "Loading connected apps\u2026" });
7767
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkJBL4PPEE_cjs.ConnectionsLoading, { message: "Loading connected apps\u2026" });
7768
7768
  }
7769
7769
  if (catalogError) {
7770
- return /* @__PURE__ */ jsxRuntime.jsx(chunkTX4CIWH5_cjs.ConnectionsError, { message: "Failed to load connector catalog. Please refresh and try again." });
7770
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkJBL4PPEE_cjs.ConnectionsError, { message: "Failed to load connector catalog. Please refresh and try again." });
7771
7771
  }
7772
7772
  const visibleCatalog = catalog.filter((c) => isVendorVisible(c.vendor_key));
7773
7773
  const sharePointVisible = isVendorVisible("microsoft_sharepoint");
@@ -7776,7 +7776,7 @@ function ConnectedAppsSettings({
7776
7776
  (c) => !react.isMailboxSyncVendor(c.vendor_key) && !react.isSharePointVendor(c.vendor_key)
7777
7777
  );
7778
7778
  const renderCard = (entry) => /* @__PURE__ */ jsxRuntime.jsx(
7779
- chunkTX4CIWH5_cjs.ConnectionCard,
7779
+ chunkJBL4PPEE_cjs.ConnectionCard,
7780
7780
  {
7781
7781
  connection: toConnectionCardView(entry, connectedByVendor[entry.vendor_key], {
7782
7782
  isDisconnecting: disconnect.isPending && disconnect.variables?.vendorKey === entry.vendor_key,
@@ -7904,7 +7904,7 @@ function ConnectedAppsSettings({
7904
7904
  }
7905
7905
  )
7906
7906
  ] }),
7907
- catalog.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx(chunkIRY63R4L_cjs.SettingsCard, { children: /* @__PURE__ */ jsxRuntime.jsx(chunkTX4CIWH5_cjs.ConnectionsEmpty, { message: "No connectors available yet." }) }) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
7907
+ catalog.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx(chunkIRY63R4L_cjs.SettingsCard, { children: /* @__PURE__ */ jsxRuntime.jsx(chunkJBL4PPEE_cjs.ConnectionsEmpty, { message: "No connectors available yet." }) }) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
7908
7908
  renderGroup("Email & Drive", EMAIL_AND_DRIVE_SUBTITLE, /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Mail, {}), emailCatalog),
7909
7909
  renderGroup(
7910
7910
  "Apps & Integrations (MCP)",
@@ -8357,7 +8357,7 @@ function ConnectedStorageProjectCard({
8357
8357
  project.personal && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-0.5 text-sm text-muted-foreground", children: "Mail, recordings of calls you host, chat attachments and everything not in a project." })
8358
8358
  ] }),
8359
8359
  /* @__PURE__ */ jsxRuntime.jsx(
8360
- chunkTX4CIWH5_cjs.UsageToggle,
8360
+ chunkJBL4PPEE_cjs.UsageToggle,
8361
8361
  {
8362
8362
  value: view,
8363
8363
  onChange: setView,
@@ -8442,7 +8442,7 @@ function ConnectedStorageProjectCard({
8442
8442
  ] })
8443
8443
  ] }),
8444
8444
  view === "largest" && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-3", children: [
8445
- /* @__PURE__ */ jsxRuntime.jsx(chunkTX4CIWH5_cjs.UsageToggle, { value: kind, onChange: setKind, options: KIND_FILTERS, ariaLabel: "Kind" }),
8445
+ /* @__PURE__ */ jsxRuntime.jsx(chunkJBL4PPEE_cjs.UsageToggle, { value: kind, onChange: setKind, options: KIND_FILTERS, ariaLabel: "Kind" }),
8446
8446
  largest.isLoading ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-muted-foreground", children: "Loading\u2026" }) : /* @__PURE__ */ jsxRuntime.jsx(
8447
8447
  StorageItemsTable,
8448
8448
  {
@@ -8692,7 +8692,7 @@ function ConnectedSettingsPage({
8692
8692
  }, [requested]);
8693
8693
  const controlled = section !== void 0;
8694
8694
  return /* @__PURE__ */ jsxRuntime.jsx(
8695
- chunkTX4CIWH5_cjs.SettingsPage,
8695
+ chunkJBL4PPEE_cjs.SettingsPage,
8696
8696
  {
8697
8697
  ...page,
8698
8698
  sections,
@@ -8724,7 +8724,7 @@ function UsageSettings({ icon: icon2 }) {
8724
8724
  description: "AI usage today, in \xA3 (ex VAT).",
8725
8725
  testId: "settings-usage",
8726
8726
  children: /* @__PURE__ */ jsxRuntime.jsx(
8727
- chunkTX4CIWH5_cjs.UsageSummary,
8727
+ chunkJBL4PPEE_cjs.UsageSummary,
8728
8728
  {
8729
8729
  stats: [
8730
8730
  {
@@ -8842,7 +8842,7 @@ function ReaderAppearance({ bundle }) {
8842
8842
  const { defaults } = bundle;
8843
8843
  const isDefault = state.pairingId === defaults.pairingId && state.colorScheme === defaults.colorScheme && state.textSize === defaults.textSize;
8844
8844
  return /* @__PURE__ */ jsxRuntime.jsx(
8845
- chunkTX4CIWH5_cjs.AppearanceSettings,
8845
+ chunkJBL4PPEE_cjs.AppearanceSettings,
8846
8846
  {
8847
8847
  colorScheme: state.colorScheme,
8848
8848
  onColorSchemeChange: state.setColorScheme,
@@ -8903,7 +8903,7 @@ function SwitchRow({ row: row2 }) {
8903
8903
  const { on, set } = react.useFeatureSwitch(row2.feature);
8904
8904
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
8905
8905
  /* @__PURE__ */ jsxRuntime.jsx(
8906
- chunkTX4CIWH5_cjs.SettingsSwitchRow,
8906
+ chunkJBL4PPEE_cjs.SettingsSwitchRow,
8907
8907
  {
8908
8908
  id: row2.id ?? row2.feature,
8909
8909
  testId: row2.testId ?? `toggle-${row2.feature}`,
@@ -8914,14 +8914,14 @@ function SwitchRow({ row: row2 }) {
8914
8914
  onCheckedChange: set
8915
8915
  }
8916
8916
  ),
8917
- on && row2.rows && row2.rows.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(chunkTX4CIWH5_cjs.SettingsSwitchGroup, { children: row2.rows.map((sub) => /* @__PURE__ */ jsxRuntime.jsx(FeatureRow, { row: sub }, sub.feature)) })
8917
+ on && row2.rows && row2.rows.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(chunkJBL4PPEE_cjs.SettingsSwitchGroup, { children: row2.rows.map((sub) => /* @__PURE__ */ jsxRuntime.jsx(FeatureRow, { row: sub }, sub.feature)) })
8918
8918
  ] });
8919
8919
  }
8920
8920
  function CallsRow({ row: row2 }) {
8921
8921
  const { on, set } = react.useFeatureSwitch(row2.feature);
8922
- const state = chunkTX4CIWH5_cjs.callsSwitchState(react.useCallsConfig(), on);
8922
+ const state = chunkJBL4PPEE_cjs.callsSwitchState(react.useCallsConfig(), on);
8923
8923
  return /* @__PURE__ */ jsxRuntime.jsx(
8924
- chunkTX4CIWH5_cjs.SettingsSwitchRow,
8924
+ chunkJBL4PPEE_cjs.SettingsSwitchRow,
8925
8925
  {
8926
8926
  id: row2.id ?? row2.feature,
8927
8927
  testId: row2.testId ?? `toggle-${row2.feature}`,
@@ -9052,7 +9052,7 @@ function ConnectedDeploymentStorage() {
9052
9052
  deployment.unattributed_bytes > 0 && ` \xB7 ${chunk2VJBIBPE_cjs.formatBytes(deployment.unattributed_bytes)} not owned by any ${ui.entityNoun("PROJECT")}`
9053
9053
  ] }),
9054
9054
  trend.dates.length > 1 && /* @__PURE__ */ jsxRuntime.jsx(
9055
- chunkTX4CIWH5_cjs.UsageLineChart,
9055
+ chunkJBL4PPEE_cjs.UsageLineChart,
9056
9056
  {
9057
9057
  dates: trend.dates,
9058
9058
  series: trend.series,
@@ -9061,7 +9061,7 @@ function ConnectedDeploymentStorage() {
9061
9061
  }
9062
9062
  ),
9063
9063
  /* @__PURE__ */ jsxRuntime.jsx(
9064
- chunkTX4CIWH5_cjs.UsageToggle,
9064
+ chunkJBL4PPEE_cjs.UsageToggle,
9065
9065
  {
9066
9066
  value: view,
9067
9067
  onChange: setView,
@@ -9793,7 +9793,7 @@ function ConnectedPeopleMultiSelect({
9793
9793
  identity: /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
9794
9794
  selected.user ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
9795
9795
  /* @__PURE__ */ jsxRuntime.jsx(
9796
- chunkLZROSRGK_cjs.ConnectedUserEntity,
9796
+ chunk3X37I6QE_cjs.ConnectedUserEntity,
9797
9797
  {
9798
9798
  user: selected.user,
9799
9799
  size: "xs",
@@ -9821,7 +9821,7 @@ function ConnectedPeopleMultiSelect({
9821
9821
  }
9822
9822
  ),
9823
9823
  person.user ? /* @__PURE__ */ jsxRuntime.jsx(
9824
- chunkLZROSRGK_cjs.ConnectedUserEntity,
9824
+ chunk3X37I6QE_cjs.ConnectedUserEntity,
9825
9825
  {
9826
9826
  user: person.user,
9827
9827
  size: "xs",
@@ -10094,13 +10094,13 @@ function ConnectedWorkspaceSettings({
10094
10094
  const [membersExpanded, setMembersExpanded] = react$1.useState(false);
10095
10095
  const [shareOpen, setShareOpen] = react$1.useState(false);
10096
10096
  if (!workspace) {
10097
- return /* @__PURE__ */ jsxRuntime.jsx(chunk2GSZG6KA_cjs.PageLoading, { children: /* @__PURE__ */ jsxRuntime.jsx(chunk3VCVMW5X_cjs.LoadingIndicator, { message: "Loading workspace..." }) });
10097
+ return /* @__PURE__ */ jsxRuntime.jsx(chunk2GSZG6KA_cjs.PageLoading, { children: /* @__PURE__ */ jsxRuntime.jsx(chunk4RJPTXUQ_cjs.LoadingIndicator, { message: "Loading workspace..." }) });
10098
10098
  }
10099
10099
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
10100
10100
  /* @__PURE__ */ jsxRuntime.jsxs(chunk2GSZG6KA_cjs.WorkspacePageFrame, { testId, children: [
10101
10101
  /* @__PURE__ */ jsxRuntime.jsxs(chunk2GSZG6KA_cjs.WorkspaceIdentityPanel, { children: [
10102
10102
  /* @__PURE__ */ jsxRuntime.jsx(
10103
- chunk3VCVMW5X_cjs.EntityIdentityBar,
10103
+ chunk4RJPTXUQ_cjs.EntityIdentityBar,
10104
10104
  {
10105
10105
  testId: "workspace-identity-bar",
10106
10106
  canEdit: isOwner,
@@ -10117,7 +10117,7 @@ function ConnectedWorkspaceSettings({
10117
10117
  label: "Name",
10118
10118
  value: workspace.name,
10119
10119
  placeholder: "Untitled",
10120
- maxLength: chunk3VCVMW5X_cjs.IDENTITY_NAME_MAX_LENGTH,
10120
+ maxLength: chunk4RJPTXUQ_cjs.IDENTITY_NAME_MAX_LENGTH,
10121
10121
  valueClassName: "truncate text-base font-semibold",
10122
10122
  testId: "workspace-home-title",
10123
10123
  hideLabel: true,
@@ -10408,20 +10408,20 @@ function ConnectedEmailWorkspaceDialog({
10408
10408
  else if (activeSession)
10409
10409
  access = {
10410
10410
  kind: "session",
10411
- expiresIn: chunkTX4CIWH5_cjs.formatSessionTtl(activeSession.ttl),
10411
+ expiresIn: chunkJBL4PPEE_cjs.formatSessionTtl(activeSession.ttl),
10412
10412
  isEnding: terminateSession.isPending,
10413
10413
  onEnd: handleEndSession
10414
10414
  };
10415
10415
  else
10416
10416
  access = {
10417
10417
  kind: "idle",
10418
- defaultTtl: limits ? chunkTX4CIWH5_cjs.formatSessionTtl(limits.default_ttl_seconds) : void 0,
10418
+ defaultTtl: limits ? chunkJBL4PPEE_cjs.formatSessionTtl(limits.default_ttl_seconds) : void 0,
10419
10419
  isAuthorizing: grantAgentAccess.isPending && grantAgentAccess.variables?.mode?.kind === "temporary",
10420
10420
  onAuthorize: handleAuthorize
10421
10421
  };
10422
10422
  }
10423
10423
  return /* @__PURE__ */ jsxRuntime.jsx(
10424
- chunkTX4CIWH5_cjs.EmailWorkspaceDialogView,
10424
+ chunkJBL4PPEE_cjs.EmailWorkspaceDialogView,
10425
10425
  {
10426
10426
  open,
10427
10427
  onOpenChange,
@@ -10971,7 +10971,7 @@ function StripeCheckoutModal({
10971
10971
  const [clientSecret, setClientSecret] = react$1.useState(null);
10972
10972
  const [isCreating, setIsCreating] = react$1.useState(false);
10973
10973
  const [stripe, setStripe] = react$1.useState(null);
10974
- const { stripeEnabled, checkout } = chunkUQAHDGYH_cjs.useBillingSupport();
10974
+ const { stripeEnabled, checkout } = chunkCCSF7RI4_cjs.useBillingSupport();
10975
10975
  const createCheckout = react.useCreateProjectCheckout();
10976
10976
  const refreshProject = react.useRefreshProject();
10977
10977
  const invalidateProjects = react.useInvalidateProjects();
@@ -10998,7 +10998,7 @@ function StripeCheckoutModal({
10998
10998
  projectExtId,
10999
10999
  body: {
11000
11000
  interval,
11001
- packs: chunkUQAHDGYH_cjs.PRO_PACKS,
11001
+ packs: chunkCCSF7RI4_cjs.PRO_PACKS,
11002
11002
  ai_blocks: aiBlocks,
11003
11003
  storage_blocks: storageBlocks,
11004
11004
  addon_budget_pence: addonBudgetPence,
@@ -11014,7 +11014,7 @@ function StripeCheckoutModal({
11014
11014
  },
11015
11015
  onError: (error) => {
11016
11016
  console.error("Failed to create checkout session:", error);
11017
- const reason = chunkUQAHDGYH_cjs.apiErrorDetail(error)?.message;
11017
+ const reason = chunkCCSF7RI4_cjs.apiErrorDetail(error)?.message;
11018
11018
  shell.notify.error(
11019
11019
  reason ? `Checkout didn't start: ${reason}` : "Checkout didn't start. Try again."
11020
11020
  );
@@ -11047,9 +11047,9 @@ function StripeCheckoutModal({
11047
11047
  }
11048
11048
  }, [open]);
11049
11049
  const isStripeConfigured = stripeEnabled;
11050
- const vatNote = quote ? `${chunkUQAHDGYH_cjs.checkoutItemsLabel(aiBlocks, storageBlocks)} \xB7 ${chunkUQAHDGYH_cjs.quoteTotalLine(quote)}` : null;
11050
+ const vatNote = quote ? `${chunkCCSF7RI4_cjs.checkoutItemsLabel(aiBlocks, storageBlocks)} \xB7 ${chunkCCSF7RI4_cjs.quoteTotalLine(quote)}` : null;
11051
11051
  return /* @__PURE__ */ jsxRuntime.jsx(
11052
- chunkTX4CIWH5_cjs.CheckoutDialogFrame,
11052
+ chunkJBL4PPEE_cjs.CheckoutDialogFrame,
11053
11053
  {
11054
11054
  open,
11055
11055
  onOpenChange,
@@ -11059,7 +11059,7 @@ function StripeCheckoutModal({
11059
11059
  children: clientSecret && !!stripe && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
11060
11060
  vatNote && /* @__PURE__ */ jsxRuntime.jsx("p", { "data-testid": "checkout-vat-note", className: "mb-4 text-sm text-muted-foreground", children: vatNote }),
11061
11061
  checkout?.render(stripe, { clientSecret, onComplete: handleComplete }),
11062
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-3", children: /* @__PURE__ */ jsxRuntime.jsxs(chunkTX4CIWH5_cjs.MoreInfo, { title: "Paying", label: "Payment help", testId: "checkout-payment-help", children: [
11062
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-3", children: /* @__PURE__ */ jsxRuntime.jsxs(chunkJBL4PPEE_cjs.MoreInfo, { title: "Paying", label: "Payment help", testId: "checkout-payment-help", children: [
11063
11063
  /* @__PURE__ */ jsxRuntime.jsx("p", { "data-testid": "checkout-decline-note", children: "Card declined? Nothing was charged. Try again or use another card." }),
11064
11064
  /* @__PURE__ */ jsxRuntime.jsx("p", { "data-testid": "checkout-vat-id-note", children: "No VAT number? Leave \u2018purchasing as a business\u2019 unticked." }),
11065
11065
  /* @__PURE__ */ jsxRuntime.jsx("p", { children: "Add-ons chosen here are on the first invoice with the plan and renew with it until you reduce them." })
@@ -11101,31 +11101,31 @@ function defaultBillingCountry(languages = typeof navigator === "undefined" ? []
11101
11101
  }
11102
11102
  var choiceForPacks = (packs) => packs > 0 ? "pro" : "free";
11103
11103
  function proCard(selected, isAnnual, prices) {
11104
- const packs = chunkUQAHDGYH_cjs.PLAN_CHOICE_PACKS.pro;
11104
+ const packs = chunkCCSF7RI4_cjs.PLAN_CHOICE_PACKS.pro;
11105
11105
  const currency = prices.monthly?.currency ?? prices.annual?.currency ?? "gbp";
11106
- const monthly = chunkUQAHDGYH_cjs.packPrice(prices.monthly, packs);
11107
- const annual = chunkUQAHDGYH_cjs.packPrice(prices.annual, packs);
11106
+ const monthly = chunkCCSF7RI4_cjs.packPrice(prices.monthly, packs);
11107
+ const annual = chunkCCSF7RI4_cjs.packPrice(prices.annual, packs);
11108
11108
  const current = isAnnual ? annual : monthly;
11109
11109
  const effectiveMonthly = current ? isAnnual ? current.amount_ex_vat / 12 : current.amount_ex_vat : null;
11110
11110
  return {
11111
11111
  id: packs,
11112
- name: chunkUQAHDGYH_cjs.planNameForPacks(packs),
11112
+ name: chunkCCSF7RI4_cjs.planNameForPacks(packs),
11113
11113
  isSelected: selected === "pro",
11114
11114
  price: current && effectiveMonthly != null ? {
11115
11115
  annual: isAnnual,
11116
- yearlyStrike: isAnnual && monthly && monthly.amount_ex_vat * 12 > current.amount_ex_vat ? chunkUQAHDGYH_cjs.formatMoney(monthly.amount_ex_vat * 12, currency) : void 0,
11117
- yearlyTotal: isAnnual ? chunkUQAHDGYH_cjs.formatMoney(current.amount_ex_vat, currency) : void 0,
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,
11118
11118
  intervalLabel: isAnnual ? "/yr + VAT" : "/mo",
11119
- monthly: chunkUQAHDGYH_cjs.formatMoney(Math.round(effectiveMonthly), currency),
11119
+ monthly: chunkCCSF7RI4_cjs.formatMoney(Math.round(effectiveMonthly), currency),
11120
11120
  taxLabel: "+ VAT",
11121
11121
  // The inclusive figure for a UK customer, right under the headline.
11122
- note: `${chunkUQAHDGYH_cjs.formatMoney(current.amount, currency)}${isAnnual ? "/yr" : "/mo"} incl. UK VAT`
11122
+ note: `${chunkCCSF7RI4_cjs.formatMoney(current.amount, currency)}${isAnnual ? "/yr" : "/mo"} incl. UK VAT`
11123
11123
  } : void 0,
11124
11124
  features: [
11125
- `${react.formatGbp(chunkUQAHDGYH_cjs.PRO_AI_GBP)} of AI usage / month`,
11126
- `${chunkUQAHDGYH_cjs.PRO_STORAGE_GB} GB storage`,
11125
+ `${react.formatGbp(chunkCCSF7RI4_cjs.PRO_AI_GBP)} of AI usage / month`,
11126
+ `${chunkCCSF7RI4_cjs.PRO_STORAGE_GB} GB storage`,
11127
11127
  "Unlimited collaborators",
11128
- ...isAnnual ? [chunkUQAHDGYH_cjs.ANNUAL_PREMIUM_AI_NOTE] : []
11128
+ ...isAnnual ? [chunkCCSF7RI4_cjs.ANNUAL_PREMIUM_AI_NOTE] : []
11129
11129
  ]
11130
11130
  };
11131
11131
  }
@@ -11137,9 +11137,9 @@ function buildPlanCards(selected, isAnnual, prices, isOnFree) {
11137
11137
  isCurrent: isOnFree,
11138
11138
  isSelected: selected === "free" && !isOnFree,
11139
11139
  features: [
11140
- `${react.formatGbp(chunkUQAHDGYH_cjs.FREE_AI_GBP)} of AI usage / month`,
11141
- `${chunkUQAHDGYH_cjs.FREE_STORAGE_MB.toLocaleString("en-US")} MB storage`,
11142
- chunkUQAHDGYH_cjs.FREE_COLLABORATORS === 0 ? "Just you" : `${chunkUQAHDGYH_cjs.FREE_COLLABORATORS} collaborators`
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
11143
  ]
11144
11144
  };
11145
11145
  return [free, proCard(selected, isAnnual, prices)];
@@ -11152,7 +11152,7 @@ function PlanChoiceCards({
11152
11152
  isOnFree = false
11153
11153
  }) {
11154
11154
  return /* @__PURE__ */ jsxRuntime.jsx(
11155
- chunkTX4CIWH5_cjs.PlanCardGrid,
11155
+ chunkJBL4PPEE_cjs.PlanCardGrid,
11156
11156
  {
11157
11157
  plans: buildPlanCards(selected, isAnnual, prices, isOnFree),
11158
11158
  onSelect: (id) => onSelect(choiceForPacks(id))
@@ -11161,13 +11161,13 @@ function PlanChoiceCards({
11161
11161
  }
11162
11162
  function PlanInfoPopover2() {
11163
11163
  const { openSettings } = chunkT6GRWWRY_cjs.useBlocksEnvironment();
11164
- return /* @__PURE__ */ jsxRuntime.jsx(chunkTX4CIWH5_cjs.PlanInfoPopover, { onOpenModelList: () => openSettings("chat") });
11164
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkJBL4PPEE_cjs.PlanInfoPopover, { onOpenModelList: () => openSettings("chat") });
11165
11165
  }
11166
11166
  function CheckoutAddonBudget({
11167
11167
  value,
11168
11168
  onChange
11169
11169
  }) {
11170
- const budget = chunkUQAHDGYH_cjs.parseBudgetPounds(value);
11170
+ const budget = chunkCCSF7RI4_cjs.parseBudgetPounds(value);
11171
11171
  return /* @__PURE__ */ jsxRuntime.jsxs(
11172
11172
  "div",
11173
11173
  {
@@ -11190,7 +11190,7 @@ function CheckoutAddonBudget({
11190
11190
  step: 25,
11191
11191
  className: "h-8 w-24",
11192
11192
  value,
11193
- placeholder: String(chunkUQAHDGYH_cjs.DEFAULT_SPEND_CAP_PENCE / 100),
11193
+ placeholder: String(chunkCCSF7RI4_cjs.DEFAULT_SPEND_CAP_PENCE / 100),
11194
11194
  onChange: (e) => onChange(e.target.value),
11195
11195
  "aria-invalid": budget === void 0,
11196
11196
  "data-testid": "checkout-addon-budget-input"
@@ -11208,7 +11208,7 @@ function BlockStepper({
11208
11208
  onChange,
11209
11209
  testId
11210
11210
  }) {
11211
- const set = (n) => onChange(Math.max(0, Math.min(chunkUQAHDGYH_cjs.MAX_CHECKOUT_BLOCKS, n)));
11211
+ const set = (n) => onChange(Math.max(0, Math.min(chunkCCSF7RI4_cjs.MAX_CHECKOUT_BLOCKS, n)));
11212
11212
  return /* @__PURE__ */ jsxRuntime.jsxs(
11213
11213
  "div",
11214
11214
  {
@@ -11252,7 +11252,7 @@ function BlockStepper({
11252
11252
  className: "size-8",
11253
11253
  "aria-label": `More: ${label}`,
11254
11254
  onClick: () => set(value + 1),
11255
- disabled: value >= chunkUQAHDGYH_cjs.MAX_CHECKOUT_BLOCKS,
11255
+ disabled: value >= chunkCCSF7RI4_cjs.MAX_CHECKOUT_BLOCKS,
11256
11256
  "data-testid": `${testId}-increment`,
11257
11257
  children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Plus, { className: "size-4" })
11258
11258
  }
@@ -11269,8 +11269,8 @@ function CheckoutAddonBlocks({
11269
11269
  onStorageBlocksChange,
11270
11270
  price
11271
11271
  }) {
11272
- const ai = chunkUQAHDGYH_cjs.addonPrice(price, "ai_usage");
11273
- const storage = chunkUQAHDGYH_cjs.addonPrice(price, "storage");
11272
+ const ai = chunkCCSF7RI4_cjs.addonPrice(price, "ai_usage");
11273
+ const storage = chunkCCSF7RI4_cjs.addonPrice(price, "storage");
11274
11274
  return /* @__PURE__ */ jsxRuntime.jsxs(
11275
11275
  "div",
11276
11276
  {
@@ -11280,8 +11280,8 @@ function CheckoutAddonBlocks({
11280
11280
  /* @__PURE__ */ jsxRuntime.jsx(
11281
11281
  BlockStepper,
11282
11282
  {
11283
- label: `+${react.formatGbp(ai?.ai_gbp || chunkUQAHDGYH_cjs.ADDON_BLOCK_AI_GBP)} of AI usage`,
11284
- priceText: chunkUQAHDGYH_cjs.checkoutBlockPriceText(price, "ai_usage"),
11283
+ label: `+${react.formatGbp(ai?.ai_gbp || chunkCCSF7RI4_cjs.ADDON_BLOCK_AI_GBP)} of AI usage`,
11284
+ priceText: chunkCCSF7RI4_cjs.checkoutBlockPriceText(price, "ai_usage"),
11285
11285
  value: aiBlocks,
11286
11286
  onChange: onAiBlocksChange,
11287
11287
  testId: "checkout-ai-blocks"
@@ -11290,8 +11290,8 @@ function CheckoutAddonBlocks({
11290
11290
  /* @__PURE__ */ jsxRuntime.jsx(
11291
11291
  BlockStepper,
11292
11292
  {
11293
- label: `+${storage?.storage_gb || chunkUQAHDGYH_cjs.STORAGE_BLOCK_GB} GB storage`,
11294
- priceText: chunkUQAHDGYH_cjs.checkoutBlockPriceText(price, "storage"),
11293
+ label: `+${storage?.storage_gb || chunkCCSF7RI4_cjs.STORAGE_BLOCK_GB} GB storage`,
11294
+ priceText: chunkCCSF7RI4_cjs.checkoutBlockPriceText(price, "storage"),
11295
11295
  value: storageBlocks,
11296
11296
  onChange: onStorageBlocksChange,
11297
11297
  testId: "checkout-storage-blocks"
@@ -11353,7 +11353,7 @@ function CheckoutTotal({
11353
11353
  className: "text-sm font-medium text-foreground",
11354
11354
  "data-testid": "checkout-total",
11355
11355
  "aria-live": "polite",
11356
- children: state.quote && !state.isLoading ? chunkUQAHDGYH_cjs.quoteTotalLine(state.quote) : state.isLoading ? "Calculating total\u2026" : state.error
11356
+ children: state.quote && !state.isLoading ? chunkCCSF7RI4_cjs.quoteTotalLine(state.quote) : state.isLoading ? "Calculating total\u2026" : state.error
11357
11357
  }
11358
11358
  )
11359
11359
  ] });
@@ -11386,13 +11386,13 @@ function useCheckoutQuote({
11386
11386
  ...aiBlocks || storageBlocks ? { addons: { ai_usage: aiBlocks, storage: storageBlocks } } : {}
11387
11387
  } : null
11388
11388
  );
11389
- const { code, message } = query.isError ? chunkUQAHDGYH_cjs.quoteError(query.error) : {};
11390
- const locationInvalid = code === chunkUQAHDGYH_cjs.TAX_LOCATION_INVALID;
11389
+ const { code, message } = query.isError ? chunkCCSF7RI4_cjs.quoteError(query.error) : {};
11390
+ const locationInvalid = code === chunkCCSF7RI4_cjs.TAX_LOCATION_INVALID;
11391
11391
  const isLoading = enabled && (query.isLoading || postal !== postalCode.trim());
11392
11392
  return {
11393
11393
  quote: query.data,
11394
11394
  isLoading,
11395
- showPostcode: chunkUQAHDGYH_cjs.POSTCODE_COUNTRIES.includes(country) || locationInvalid || postalCode !== "",
11395
+ showPostcode: chunkCCSF7RI4_cjs.POSTCODE_COUNTRIES.includes(country) || locationInvalid || postalCode !== "",
11396
11396
  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
11397
  canContinue: !isLoading && (!!query.data || query.isError && !locationInvalid)
11398
11398
  };
@@ -11423,14 +11423,14 @@ function ConnectedReferralRewardSummary({
11423
11423
  if (!reward) return null;
11424
11424
  const applied = totalCents != null && currency ? applyReferralReward(totalCents, reward, currency) : null;
11425
11425
  return /* @__PURE__ */ jsxRuntime.jsx(
11426
- chunkTX4CIWH5_cjs.ReferralRewardSummary,
11426
+ chunkJBL4PPEE_cjs.ReferralRewardSummary,
11427
11427
  {
11428
- amountLabel: chunkUQAHDGYH_cjs.formatMoney(reward.amount, reward.currency),
11428
+ amountLabel: chunkCCSF7RI4_cjs.formatMoney(reward.amount, reward.currency),
11429
11429
  breakdown: applied && totalCents != null && currency ? {
11430
- subtotal: chunkUQAHDGYH_cjs.formatMoney(totalCents, currency),
11431
- reward: chunkUQAHDGYH_cjs.formatMoney(applied.bonus, currency),
11432
- youPay: chunkUQAHDGYH_cjs.formatMoney(applied.youPay, currency),
11433
- rollover: applied.remaining > 0 ? chunkUQAHDGYH_cjs.formatMoney(applied.remaining, currency) : void 0
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
11434
11434
  } : void 0
11435
11435
  }
11436
11436
  );
@@ -11438,10 +11438,10 @@ function ConnectedReferralRewardSummary({
11438
11438
  function ConnectedReferralRewardNote() {
11439
11439
  const reward = useReferralReward();
11440
11440
  if (!reward) return null;
11441
- return /* @__PURE__ */ jsxRuntime.jsx(chunkTX4CIWH5_cjs.ReferralRewardNote, { amountLabel: chunkUQAHDGYH_cjs.formatMoney(reward.amount, reward.currency) });
11441
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkJBL4PPEE_cjs.ReferralRewardNote, { amountLabel: chunkCCSF7RI4_cjs.formatMoney(reward.amount, reward.currency) });
11442
11442
  }
11443
11443
  function createProjectErrorMessage(error, fallback = `Failed to create ${ui.entityNoun("PROJECT")}`) {
11444
- const detail = chunkUQAHDGYH_cjs.apiErrorDetail(error);
11444
+ const detail = chunkCCSF7RI4_cjs.apiErrorDetail(error);
11445
11445
  if (typeof detail === "string" && detail) return detail;
11446
11446
  const message = detail?.message;
11447
11447
  return typeof message === "string" && message ? message : fallback;
@@ -11451,7 +11451,7 @@ function NewProjectFlow({ open, onOpenChange, defaultName }) {
11451
11451
  const [plan, setPlan] = react$1.useState("pro");
11452
11452
  const [isAnnual, setIsAnnual] = react$1.useState(false);
11453
11453
  const [promoCode, setPromoCode] = react$1.useState("");
11454
- const [addonBudget, setAddonBudget] = react$1.useState(String(chunkUQAHDGYH_cjs.DEFAULT_SPEND_CAP_PENCE / 100));
11454
+ const [addonBudget, setAddonBudget] = react$1.useState(String(chunkCCSF7RI4_cjs.DEFAULT_SPEND_CAP_PENCE / 100));
11455
11455
  const [checkoutBudget, setCheckoutBudget] = react$1.useState(null);
11456
11456
  const [aiBlocks, setAiBlocks] = react$1.useState(0);
11457
11457
  const [storageBlocks, setStorageBlocks] = react$1.useState(0);
@@ -11465,7 +11465,7 @@ function NewProjectFlow({ open, onOpenChange, defaultName }) {
11465
11465
  const [checkoutProjectName, setCheckoutProjectName] = react$1.useState("");
11466
11466
  const [checkoutInterval, setCheckoutInterval] = react$1.useState("month");
11467
11467
  const paymentCompletedRef = react$1.useRef(false);
11468
- const { stripeEnabled } = chunkUQAHDGYH_cjs.useBillingSupport();
11468
+ const { stripeEnabled } = chunkCCSF7RI4_cjs.useBillingSupport();
11469
11469
  const { data: products, isLoading: productsLoading } = react.useProducts({
11470
11470
  enabled: stripeEnabled
11471
11471
  });
@@ -11494,18 +11494,18 @@ function NewProjectFlow({ open, onOpenChange, defaultName }) {
11494
11494
  setPlan("pro");
11495
11495
  setPromoCode("");
11496
11496
  setPostalCode("");
11497
- setAddonBudget(String(chunkUQAHDGYH_cjs.DEFAULT_SPEND_CAP_PENCE / 100));
11497
+ setAddonBudget(String(chunkCCSF7RI4_cjs.DEFAULT_SPEND_CAP_PENCE / 100));
11498
11498
  setAiBlocks(0);
11499
11499
  setStorageBlocks(0);
11500
11500
  setIsCreating(false);
11501
11501
  }
11502
11502
  onOpenChange(newOpen);
11503
11503
  };
11504
- const prices = chunkUQAHDGYH_cjs.findProPrices(products);
11504
+ const prices = chunkCCSF7RI4_cjs.findProPrices(products);
11505
11505
  const intervalPrice = isAnnual ? prices.annual : prices.monthly;
11506
- const selectedPrice = chunkUQAHDGYH_cjs.packPrice(intervalPrice);
11506
+ const selectedPrice = chunkCCSF7RI4_cjs.packPrice(intervalPrice);
11507
11507
  const currency = intervalPrice?.currency ?? "gbp";
11508
- const savingsPercent = chunkUQAHDGYH_cjs.calcSavingsPercent(prices.monthly, prices.annual);
11508
+ const savingsPercent = chunkCCSF7RI4_cjs.calcSavingsPercent(prices.monthly, prices.annual);
11509
11509
  const isPro = stripeEnabled && plan !== "free";
11510
11510
  const quote = useCheckoutQuote({
11511
11511
  interval: isAnnual ? "year" : "month",
@@ -11515,14 +11515,14 @@ function NewProjectFlow({ open, onOpenChange, defaultName }) {
11515
11515
  storageBlocks,
11516
11516
  enabled: open && isPro && !!selectedPrice
11517
11517
  });
11518
- const canSubmit = !!projectName.trim() && !isCreating && !createProject.isPending && (!isPro || !!selectedPrice && chunkUQAHDGYH_cjs.parseBudgetPounds(addonBudget) !== void 0 && quote.canContinue);
11518
+ const canSubmit = !!projectName.trim() && !isCreating && !createProject.isPending && (!isPro || !!selectedPrice && chunkCCSF7RI4_cjs.parseBudgetPounds(addonBudget) !== void 0 && quote.canContinue);
11519
11519
  const handleCreateFree = () => {
11520
11520
  setIsCreating(true);
11521
11521
  createProject.mutate(
11522
11522
  {
11523
11523
  name: projectName.trim(),
11524
11524
  plan: "free",
11525
- daily_cap_per_user: chunkUQAHDGYH_cjs.SUGGESTED_DAILY_CAP_PER_USER
11525
+ daily_cap_per_user: chunkCCSF7RI4_cjs.SUGGESTED_DAILY_CAP_PER_USER
11526
11526
  },
11527
11527
  {
11528
11528
  onSuccess: () => {
@@ -11539,14 +11539,14 @@ function NewProjectFlow({ open, onOpenChange, defaultName }) {
11539
11539
  };
11540
11540
  const handleSubscribe = () => {
11541
11541
  const interval = isAnnual ? "year" : "month";
11542
- const parsed = chunkUQAHDGYH_cjs.parseBudgetPounds(addonBudget);
11543
- const budgetToSend = parsed == null || parsed === chunkUQAHDGYH_cjs.DEFAULT_SPEND_CAP_PENCE ? null : parsed;
11542
+ const parsed = chunkCCSF7RI4_cjs.parseBudgetPounds(addonBudget);
11543
+ const budgetToSend = parsed == null || parsed === chunkCCSF7RI4_cjs.DEFAULT_SPEND_CAP_PENCE ? null : parsed;
11544
11544
  setIsCreating(true);
11545
11545
  createProject.mutate(
11546
11546
  {
11547
11547
  name: projectName.trim(),
11548
11548
  plan: "pro",
11549
- daily_cap_per_user: chunkUQAHDGYH_cjs.SUGGESTED_DAILY_CAP_PER_USER
11549
+ daily_cap_per_user: chunkCCSF7RI4_cjs.SUGGESTED_DAILY_CAP_PER_USER
11550
11550
  },
11551
11551
  {
11552
11552
  onSuccess: (newProject) => {
@@ -11587,8 +11587,8 @@ function NewProjectFlow({ open, onOpenChange, defaultName }) {
11587
11587
  description: stripeEnabled ? "Name it and pick a plan." : `${ui.getEntityLabel("PROJECT", "PLURAL")} group your ${ui.entityNoun("WORKSPACE", "PLURAL")}.`,
11588
11588
  showDescription: true,
11589
11589
  size: "xl",
11590
- children: /* @__PURE__ */ jsxRuntime.jsxs(chunkTX4CIWH5_cjs.PlanStack, { gap: 5, children: [
11591
- /* @__PURE__ */ jsxRuntime.jsxs(chunkTX4CIWH5_cjs.PlanStack, { gap: 2, children: [
11590
+ children: /* @__PURE__ */ jsxRuntime.jsxs(chunkJBL4PPEE_cjs.PlanStack, { gap: 5, children: [
11591
+ /* @__PURE__ */ jsxRuntime.jsxs(chunkJBL4PPEE_cjs.PlanStack, { gap: 2, children: [
11592
11592
  /* @__PURE__ */ jsxRuntime.jsx(ui.Label, { htmlFor: "new-project-name", children: "Name" }),
11593
11593
  /* @__PURE__ */ jsxRuntime.jsx(
11594
11594
  ui.Input,
@@ -11604,16 +11604,16 @@ function NewProjectFlow({ open, onOpenChange, defaultName }) {
11604
11604
  }
11605
11605
  )
11606
11606
  ] }),
11607
- stripeEnabled && (productsLoading ? /* @__PURE__ */ jsxRuntime.jsx(chunkTX4CIWH5_cjs.PlanNotice, { children: "Loading plans\u2026" }) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
11608
- /* @__PURE__ */ jsxRuntime.jsxs(chunkTX4CIWH5_cjs.PlanPickerCard, { children: [
11607
+ stripeEnabled && (productsLoading ? /* @__PURE__ */ jsxRuntime.jsx(chunkJBL4PPEE_cjs.PlanNotice, { children: "Loading plans\u2026" }) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
11608
+ /* @__PURE__ */ jsxRuntime.jsxs(chunkJBL4PPEE_cjs.PlanPickerCard, { children: [
11609
11609
  /* @__PURE__ */ jsxRuntime.jsx(
11610
- chunkTX4CIWH5_cjs.PlanPickerHeader,
11610
+ chunkJBL4PPEE_cjs.PlanPickerHeader,
11611
11611
  {
11612
11612
  title: "Plan",
11613
11613
  info: /* @__PURE__ */ jsxRuntime.jsx(PlanInfoPopover2, {}),
11614
11614
  infoPlacement: "toggle",
11615
11615
  toggle: plan !== "free" ? /* @__PURE__ */ jsxRuntime.jsx(
11616
- chunkTX4CIWH5_cjs.PricingToggle,
11616
+ chunkJBL4PPEE_cjs.PricingToggle,
11617
11617
  {
11618
11618
  isAnnual,
11619
11619
  onToggle: () => setIsAnnual(!isAnnual),
@@ -11651,7 +11651,7 @@ function NewProjectFlow({ open, onOpenChange, defaultName }) {
11651
11651
  currency
11652
11652
  }
11653
11653
  ),
11654
- /* @__PURE__ */ jsxRuntime.jsx(chunkTX4CIWH5_cjs.PromoCodeInput, { value: promoCode, onChange: setPromoCode }),
11654
+ /* @__PURE__ */ jsxRuntime.jsx(chunkJBL4PPEE_cjs.PromoCodeInput, { value: promoCode, onChange: setPromoCode }),
11655
11655
  /* @__PURE__ */ jsxRuntime.jsx(
11656
11656
  CheckoutCountrySelect,
11657
11657
  {
@@ -11670,10 +11670,10 @@ function NewProjectFlow({ open, onOpenChange, defaultName }) {
11670
11670
  onPostalCodeChange: setPostalCode
11671
11671
  }
11672
11672
  )
11673
- ] }) : /* @__PURE__ */ jsxRuntime.jsx(chunkTX4CIWH5_cjs.PlanNotice, { children: "Pro isn't available right now." }))
11673
+ ] }) : /* @__PURE__ */ jsxRuntime.jsx(chunkJBL4PPEE_cjs.PlanNotice, { children: "Pro isn't available right now." }))
11674
11674
  ] })),
11675
- /* @__PURE__ */ jsxRuntime.jsx(chunkTX4CIWH5_cjs.PlanActionButton, { onClick: submit, disabled: !canSubmit, children: isCreating ? "Creating\u2026" : isPro ? "Continue to payment" : `Create ${ui.entityNoun("PROJECT")}` }),
11676
- isSlow && /* @__PURE__ */ jsxRuntime.jsx(chunkTX4CIWH5_cjs.PlanNotice, { className: "text-xs", testId: "new-project-still-working", children: "Still working. We'll update here." })
11675
+ /* @__PURE__ */ jsxRuntime.jsx(chunkJBL4PPEE_cjs.PlanActionButton, { onClick: submit, disabled: !canSubmit, children: isCreating ? "Creating\u2026" : isPro ? "Continue to payment" : `Create ${ui.entityNoun("PROJECT")}` }),
11676
+ isSlow && /* @__PURE__ */ jsxRuntime.jsx(chunkJBL4PPEE_cjs.PlanNotice, { className: "text-xs", testId: "new-project-still-working", children: "Still working. We'll update here." })
11677
11677
  ] })
11678
11678
  }
11679
11679
  ),
@@ -11703,7 +11703,7 @@ function ConnectedProjectEntity({
11703
11703
  subscription = "none",
11704
11704
  ...props
11705
11705
  }) {
11706
- const { stripeEnabled } = chunkUQAHDGYH_cjs.useBillingSupport();
11706
+ const { stripeEnabled } = chunkCCSF7RI4_cjs.useBillingSupport();
11707
11707
  return /* @__PURE__ */ jsxRuntime.jsx(
11708
11708
  ui.ProjectEntity,
11709
11709
  {
@@ -11728,7 +11728,7 @@ function ConnectedProjectSelector({
11728
11728
  readOnly,
11729
11729
  className
11730
11730
  }) {
11731
- const { stripeEnabled } = chunkUQAHDGYH_cjs.useBillingSupport();
11731
+ const { stripeEnabled } = chunkCCSF7RI4_cjs.useBillingSupport();
11732
11732
  return /* @__PURE__ */ jsxRuntime.jsx(
11733
11733
  chunkHYAYXLIZ_cjs.ProjectPicker,
11734
11734
  {
@@ -12104,9 +12104,9 @@ function ConnectedMailboxSyncDialog({
12104
12104
  showDescription: true,
12105
12105
  className: "w-[92vw] sm:max-w-lg",
12106
12106
  children: [
12107
- /* @__PURE__ */ jsxRuntime.jsxs(chunkTX4CIWH5_cjs.SyncDialogBody, { children: [
12108
- !lockedWorkspaceExtId && /* @__PURE__ */ jsxRuntime.jsx(chunkTX4CIWH5_cjs.SyncField, { label: "Target workspace", htmlFor: "sync-workspace", children: /* @__PURE__ */ jsxRuntime.jsx(
12109
- chunkTX4CIWH5_cjs.SyncSelect,
12107
+ /* @__PURE__ */ jsxRuntime.jsxs(chunkJBL4PPEE_cjs.SyncDialogBody, { children: [
12108
+ !lockedWorkspaceExtId && /* @__PURE__ */ jsxRuntime.jsx(chunkJBL4PPEE_cjs.SyncField, { label: "Target workspace", htmlFor: "sync-workspace", children: /* @__PURE__ */ jsxRuntime.jsx(
12109
+ chunkJBL4PPEE_cjs.SyncSelect,
12110
12110
  {
12111
12111
  id: "sync-workspace",
12112
12112
  value: workspaceExtId,
@@ -12115,9 +12115,9 @@ function ConnectedMailboxSyncDialog({
12115
12115
  options: memberWorkspaces.map((w) => ({ value: w.external_id, label: w.name }))
12116
12116
  }
12117
12117
  ) }),
12118
- /* @__PURE__ */ jsxRuntime.jsxs(chunkTX4CIWH5_cjs.SyncField, { label: "Backfill window", htmlFor: "sync-backfill", children: [
12118
+ /* @__PURE__ */ jsxRuntime.jsxs(chunkJBL4PPEE_cjs.SyncField, { label: "Backfill window", htmlFor: "sync-backfill", children: [
12119
12119
  /* @__PURE__ */ jsxRuntime.jsx(
12120
- chunkTX4CIWH5_cjs.SyncSelect,
12120
+ chunkJBL4PPEE_cjs.SyncSelect,
12121
12121
  {
12122
12122
  id: "sync-backfill",
12123
12123
  value: backfill,
@@ -12137,17 +12137,17 @@ function ConnectedMailboxSyncDialog({
12137
12137
  "aria-label": "Import emails since date"
12138
12138
  }
12139
12139
  ),
12140
- /* @__PURE__ */ jsxRuntime.jsx(chunkTX4CIWH5_cjs.SyncSmallNote, { children: "Emails are always imported from this date onward \u2014 the start point never moves." })
12140
+ /* @__PURE__ */ jsxRuntime.jsx(chunkJBL4PPEE_cjs.SyncSmallNote, { children: "Emails are always imported from this date onward \u2014 the start point never moves." })
12141
12141
  ] })
12142
12142
  ] }),
12143
12143
  /* @__PURE__ */ jsxRuntime.jsx(
12144
- chunkTX4CIWH5_cjs.SyncField,
12144
+ chunkJBL4PPEE_cjs.SyncField,
12145
12145
  {
12146
12146
  label: `Folders to import${selectedFolders.length > 0 ? ` (${selectedFolders.length})` : ""}`,
12147
12147
  hint: "Select at least one folder to import.",
12148
- actions: folders.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs(chunkTX4CIWH5_cjs.SyncLinkRow, { children: [
12148
+ actions: folders.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs(chunkJBL4PPEE_cjs.SyncLinkRow, { children: [
12149
12149
  /* @__PURE__ */ jsxRuntime.jsx(
12150
- chunkTX4CIWH5_cjs.SyncLinkButton,
12150
+ chunkJBL4PPEE_cjs.SyncLinkButton,
12151
12151
  {
12152
12152
  onClick: () => setExpandAllNonce((n) => n + 1),
12153
12153
  testId: "mail-folders-expand-all",
@@ -12155,20 +12155,20 @@ function ConnectedMailboxSyncDialog({
12155
12155
  }
12156
12156
  ),
12157
12157
  /* @__PURE__ */ jsxRuntime.jsx(
12158
- chunkTX4CIWH5_cjs.SyncLinkButton,
12158
+ chunkJBL4PPEE_cjs.SyncLinkButton,
12159
12159
  {
12160
12160
  onClick: () => setCollapseAllNonce((n) => n + 1),
12161
12161
  testId: "mail-folders-collapse-all",
12162
12162
  children: "Collapse all"
12163
12163
  }
12164
12164
  ),
12165
- /* @__PURE__ */ jsxRuntime.jsx(chunkTX4CIWH5_cjs.SyncLinkButton, { onClick: toggleAllFolders, children: allSelected ? "Clear all" : "Select all" })
12165
+ /* @__PURE__ */ jsxRuntime.jsx(chunkJBL4PPEE_cjs.SyncLinkButton, { onClick: toggleAllFolders, children: allSelected ? "Clear all" : "Select all" })
12166
12166
  ] }),
12167
- children: foldersLoading ? /* @__PURE__ */ jsxRuntime.jsx(chunkTX4CIWH5_cjs.SyncLoading, { children: "Loading folders\u2026" }) : foldersError ? (
12167
+ children: foldersLoading ? /* @__PURE__ */ jsxRuntime.jsx(chunkJBL4PPEE_cjs.SyncLoading, { children: "Loading folders\u2026" }) : foldersError ? (
12168
12168
  // A failed fetch is not an empty mailbox: it hides auth/scope errors (e.g. a Gmail
12169
12169
  // account needing reconnect).
12170
12170
  /* @__PURE__ */ jsxRuntime.jsx(
12171
- chunkTX4CIWH5_cjs.SyncReconnectNotice,
12171
+ chunkJBL4PPEE_cjs.SyncReconnectNotice,
12172
12172
  {
12173
12173
  message: `Couldn\u2019t load folders from ${catalog.display_name}. Reconnect the account and try again.`,
12174
12174
  onReconnect: () => void reconnect(),
@@ -12176,7 +12176,7 @@ function ConnectedMailboxSyncDialog({
12176
12176
  testId: "folders-reconnect"
12177
12177
  }
12178
12178
  )
12179
- ) : folders.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx(chunkTX4CIWH5_cjs.SyncNote, { children: "No folders found." }) : /* @__PURE__ */ jsxRuntime.jsx(chunkTX4CIWH5_cjs.SyncTreeFrame, { children: /* @__PURE__ */ jsxRuntime.jsx(
12179
+ ) : folders.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx(chunkJBL4PPEE_cjs.SyncNote, { children: "No folders found." }) : /* @__PURE__ */ jsxRuntime.jsx(chunkJBL4PPEE_cjs.SyncTreeFrame, { children: /* @__PURE__ */ jsxRuntime.jsx(
12180
12180
  chunkXDMIVPJP_cjs.MailFolderTree,
12181
12181
  {
12182
12182
  nodes: folderTree,
@@ -12188,9 +12188,9 @@ function ConnectedMailboxSyncDialog({
12188
12188
  ) })
12189
12189
  }
12190
12190
  ),
12191
- /* @__PURE__ */ jsxRuntime.jsxs(chunkTX4CIWH5_cjs.SyncOptions, { children: [
12191
+ /* @__PURE__ */ jsxRuntime.jsxs(chunkJBL4PPEE_cjs.SyncOptions, { children: [
12192
12192
  /* @__PURE__ */ jsxRuntime.jsx(
12193
- chunkTX4CIWH5_cjs.SyncOptionToggle,
12193
+ chunkJBL4PPEE_cjs.SyncOptionToggle,
12194
12194
  {
12195
12195
  checked: skipDuplicates,
12196
12196
  onCheckedChange: setSkipDuplicates,
@@ -12200,7 +12200,7 @@ function ConnectedMailboxSyncDialog({
12200
12200
  }
12201
12201
  ),
12202
12202
  /* @__PURE__ */ jsxRuntime.jsx(
12203
- chunkTX4CIWH5_cjs.SyncOptionToggle,
12203
+ chunkJBL4PPEE_cjs.SyncOptionToggle,
12204
12204
  {
12205
12205
  checked: autoRename,
12206
12206
  onCheckedChange: setAutoRename,
@@ -12210,7 +12210,7 @@ function ConnectedMailboxSyncDialog({
12210
12210
  }
12211
12211
  ),
12212
12212
  /* @__PURE__ */ jsxRuntime.jsx(
12213
- chunkTX4CIWH5_cjs.SyncOptionToggle,
12213
+ chunkJBL4PPEE_cjs.SyncOptionToggle,
12214
12214
  {
12215
12215
  checked: shared,
12216
12216
  onCheckedChange: setShared,
@@ -12220,7 +12220,7 @@ function ConnectedMailboxSyncDialog({
12220
12220
  }
12221
12221
  ),
12222
12222
  /* @__PURE__ */ jsxRuntime.jsx(
12223
- chunkTX4CIWH5_cjs.SyncOptionToggle,
12223
+ chunkJBL4PPEE_cjs.SyncOptionToggle,
12224
12224
  {
12225
12225
  checked: autoSync,
12226
12226
  onCheckedChange: setAutoSync,
@@ -12232,7 +12232,7 @@ function ConnectedMailboxSyncDialog({
12232
12232
  ] })
12233
12233
  ] }),
12234
12234
  /* @__PURE__ */ jsxRuntime.jsx(
12235
- chunkTX4CIWH5_cjs.SyncDialogFooter,
12235
+ chunkJBL4PPEE_cjs.SyncDialogFooter,
12236
12236
  {
12237
12237
  onCancel: () => onOpenChange(false),
12238
12238
  onSave: handleEnableSubmit,
@@ -12294,7 +12294,7 @@ function DriveFolderNode({
12294
12294
  const mightHaveChildren = docCount == null || docCount > 0;
12295
12295
  const orderedChildren = [...children].sort((a, b) => a.name.localeCompare(b.name));
12296
12296
  return /* @__PURE__ */ jsxRuntime.jsx(
12297
- chunkTX4CIWH5_cjs.SyncFolderRow,
12297
+ chunkJBL4PPEE_cjs.SyncFolderRow,
12298
12298
  {
12299
12299
  id: folder.id,
12300
12300
  name: folder.name,
@@ -12308,7 +12308,7 @@ function DriveFolderNode({
12308
12308
  onCheckedChange: () => onToggle(folder.id),
12309
12309
  count: typeof docCount === "number" ? docCount : void 0,
12310
12310
  isCountLoading: isSelectable && countLoading,
12311
- children: isLoading ? /* @__PURE__ */ jsxRuntime.jsx(chunkTX4CIWH5_cjs.SyncFolderStatus, { depth, kind: "loading" }) : orderedChildren.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx(chunkTX4CIWH5_cjs.SyncFolderStatus, { depth, kind: "empty" }) : orderedChildren.map((child) => /* @__PURE__ */ jsxRuntime.jsx(
12311
+ children: isLoading ? /* @__PURE__ */ jsxRuntime.jsx(chunkJBL4PPEE_cjs.SyncFolderStatus, { depth, kind: "loading" }) : orderedChildren.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx(chunkJBL4PPEE_cjs.SyncFolderStatus, { depth, kind: "empty" }) : orderedChildren.map((child) => /* @__PURE__ */ jsxRuntime.jsx(
12312
12312
  DriveFolderNode,
12313
12313
  {
12314
12314
  vendorKey,
@@ -12454,9 +12454,9 @@ function ConnectedDriveSyncDialog({
12454
12454
  showDescription: true,
12455
12455
  className: "w-[92vw] sm:max-w-lg",
12456
12456
  children: [
12457
- /* @__PURE__ */ jsxRuntime.jsxs(chunkTX4CIWH5_cjs.SyncDialogBody, { children: [
12458
- !lockedWorkspaceExtId && /* @__PURE__ */ jsxRuntime.jsx(chunkTX4CIWH5_cjs.SyncField, { label: "Target workspace", htmlFor: "drive-sync-workspace", children: /* @__PURE__ */ jsxRuntime.jsx(
12459
- chunkTX4CIWH5_cjs.SyncSelect,
12457
+ /* @__PURE__ */ jsxRuntime.jsxs(chunkJBL4PPEE_cjs.SyncDialogBody, { children: [
12458
+ !lockedWorkspaceExtId && /* @__PURE__ */ jsxRuntime.jsx(chunkJBL4PPEE_cjs.SyncField, { label: "Target workspace", htmlFor: "drive-sync-workspace", children: /* @__PURE__ */ jsxRuntime.jsx(
12459
+ chunkJBL4PPEE_cjs.SyncSelect,
12460
12460
  {
12461
12461
  id: "drive-sync-workspace",
12462
12462
  value: workspaceExtId,
@@ -12466,13 +12466,13 @@ function ConnectedDriveSyncDialog({
12466
12466
  }
12467
12467
  ) }),
12468
12468
  /* @__PURE__ */ jsxRuntime.jsx(
12469
- chunkTX4CIWH5_cjs.SyncField,
12469
+ chunkJBL4PPEE_cjs.SyncField,
12470
12470
  {
12471
12471
  label: `Folders to import${selectedFolders.length > 0 ? ` (${selectedFolders.length})` : ""}`,
12472
12472
  hint: "Select at least one folder. Importing a folder includes everything inside it.",
12473
- actions: orderedFolders.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs(chunkTX4CIWH5_cjs.SyncLinkRow, { children: [
12473
+ actions: orderedFolders.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs(chunkJBL4PPEE_cjs.SyncLinkRow, { children: [
12474
12474
  /* @__PURE__ */ jsxRuntime.jsx(
12475
- chunkTX4CIWH5_cjs.SyncLinkButton,
12475
+ chunkJBL4PPEE_cjs.SyncLinkButton,
12476
12476
  {
12477
12477
  onClick: () => setExpandAllNonce((n) => n + 1),
12478
12478
  testId: "drive-folders-expand-all",
@@ -12480,7 +12480,7 @@ function ConnectedDriveSyncDialog({
12480
12480
  }
12481
12481
  ),
12482
12482
  /* @__PURE__ */ jsxRuntime.jsx(
12483
- chunkTX4CIWH5_cjs.SyncLinkButton,
12483
+ chunkJBL4PPEE_cjs.SyncLinkButton,
12484
12484
  {
12485
12485
  onClick: () => setCollapseAllNonce((n) => n + 1),
12486
12486
  testId: "drive-folders-collapse-all",
@@ -12488,19 +12488,19 @@ function ConnectedDriveSyncDialog({
12488
12488
  }
12489
12489
  )
12490
12490
  ] }),
12491
- children: foldersLoading ? /* @__PURE__ */ jsxRuntime.jsx(chunkTX4CIWH5_cjs.SyncLoading, { children: "Loading folders\u2026" }) : needsReconnect ? /* @__PURE__ */ jsxRuntime.jsx(
12492
- chunkTX4CIWH5_cjs.SyncReconnectNotice,
12491
+ children: foldersLoading ? /* @__PURE__ */ jsxRuntime.jsx(chunkJBL4PPEE_cjs.SyncLoading, { children: "Loading folders\u2026" }) : needsReconnect ? /* @__PURE__ */ jsxRuntime.jsx(
12492
+ chunkJBL4PPEE_cjs.SyncReconnectNotice,
12493
12493
  {
12494
12494
  ...reconnectButtonProps,
12495
12495
  message: `Reconnect ${catalog.display_name} to enable ${productName} \u2014 your account needs to grant file access.`
12496
12496
  }
12497
12497
  ) : foldersError ? /* @__PURE__ */ jsxRuntime.jsx(
12498
- chunkTX4CIWH5_cjs.SyncReconnectNotice,
12498
+ chunkJBL4PPEE_cjs.SyncReconnectNotice,
12499
12499
  {
12500
12500
  ...reconnectButtonProps,
12501
12501
  message: `Couldn\u2019t load folders from ${productName}. Reconnect the account and try again.`
12502
12502
  }
12503
- ) : orderedFolders.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx(chunkTX4CIWH5_cjs.SyncNote, { children: "No folders found." }) : /* @__PURE__ */ jsxRuntime.jsx(chunkTX4CIWH5_cjs.SyncTreeFrame, { children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-0.5", "data-testid": "drive-folder-tree", children: orderedFolders.map((f) => /* @__PURE__ */ jsxRuntime.jsx(
12503
+ ) : orderedFolders.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx(chunkJBL4PPEE_cjs.SyncNote, { children: "No folders found." }) : /* @__PURE__ */ jsxRuntime.jsx(chunkJBL4PPEE_cjs.SyncTreeFrame, { children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-0.5", "data-testid": "drive-folder-tree", children: orderedFolders.map((f) => /* @__PURE__ */ jsxRuntime.jsx(
12504
12504
  DriveFolderNode,
12505
12505
  {
12506
12506
  vendorKey: catalog.vendor_key,
@@ -12517,9 +12517,9 @@ function ConnectedDriveSyncDialog({
12517
12517
  )) }) })
12518
12518
  }
12519
12519
  ),
12520
- /* @__PURE__ */ jsxRuntime.jsxs(chunkTX4CIWH5_cjs.SyncOptions, { children: [
12520
+ /* @__PURE__ */ jsxRuntime.jsxs(chunkJBL4PPEE_cjs.SyncOptions, { children: [
12521
12521
  /* @__PURE__ */ jsxRuntime.jsx(
12522
- chunkTX4CIWH5_cjs.SyncOptionToggle,
12522
+ chunkJBL4PPEE_cjs.SyncOptionToggle,
12523
12523
  {
12524
12524
  checked: skipDuplicates,
12525
12525
  onCheckedChange: setSkipDuplicates,
@@ -12528,7 +12528,7 @@ function ConnectedDriveSyncDialog({
12528
12528
  }
12529
12529
  ),
12530
12530
  /* @__PURE__ */ jsxRuntime.jsx(
12531
- chunkTX4CIWH5_cjs.SyncOptionToggle,
12531
+ chunkJBL4PPEE_cjs.SyncOptionToggle,
12532
12532
  {
12533
12533
  checked: autoRename,
12534
12534
  onCheckedChange: setAutoRename,
@@ -12537,7 +12537,7 @@ function ConnectedDriveSyncDialog({
12537
12537
  }
12538
12538
  ),
12539
12539
  /* @__PURE__ */ jsxRuntime.jsx(
12540
- chunkTX4CIWH5_cjs.SyncOptionToggle,
12540
+ chunkJBL4PPEE_cjs.SyncOptionToggle,
12541
12541
  {
12542
12542
  checked: shared,
12543
12543
  onCheckedChange: setShared,
@@ -12546,7 +12546,7 @@ function ConnectedDriveSyncDialog({
12546
12546
  }
12547
12547
  ),
12548
12548
  /* @__PURE__ */ jsxRuntime.jsx(
12549
- chunkTX4CIWH5_cjs.SyncOptionToggle,
12549
+ chunkJBL4PPEE_cjs.SyncOptionToggle,
12550
12550
  {
12551
12551
  checked: autoSync,
12552
12552
  onCheckedChange: setAutoSync,
@@ -12558,7 +12558,7 @@ function ConnectedDriveSyncDialog({
12558
12558
  ] })
12559
12559
  ] }),
12560
12560
  /* @__PURE__ */ jsxRuntime.jsx(
12561
- chunkTX4CIWH5_cjs.SyncDialogFooter,
12561
+ chunkJBL4PPEE_cjs.SyncDialogFooter,
12562
12562
  {
12563
12563
  onCancel: () => onOpenChange(false),
12564
12564
  onSave: handleEnableSubmit,
@@ -12579,36 +12579,36 @@ function ConnectedSharePointAdminConsentPage({
12579
12579
  const result = givenResult === void 0 ? queryResult : givenResult;
12580
12580
  const { apiBaseUrl } = chunkT6GRWWRY_cjs.useBlocksEnvironment().runtimeConfig;
12581
12581
  const consentUrl = `${apiBaseUrl}/v1/connectors/microsoft_sharepoint/admin-consent`;
12582
- return /* @__PURE__ */ jsxRuntime.jsx(chunkXPB6KMPY_cjs.ConsentPage, { children: /* @__PURE__ */ jsxRuntime.jsxs(chunkXPB6KMPY_cjs.ConsentCard, { size: "md", children: [
12582
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkHVOPUYAG_cjs.ConsentPage, { children: /* @__PURE__ */ jsxRuntime.jsxs(chunkHVOPUYAG_cjs.ConsentCard, { size: "md", children: [
12583
12583
  /* @__PURE__ */ jsxRuntime.jsx(
12584
- chunkXPB6KMPY_cjs.ConsentHeader,
12584
+ chunkHVOPUYAG_cjs.ConsentHeader,
12585
12585
  {
12586
12586
  icon: /* @__PURE__ */ jsxRuntime.jsx(chunkVGNCU5JJ_cjs.VendorLogo, { vendorKey: "microsoft_sharepoint", product: "sharepoint" }),
12587
12587
  title: "Approve ARBI for SharePoint access",
12588
12588
  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
12589
  }
12590
12590
  ),
12591
- result === "granted" && /* @__PURE__ */ jsxRuntime.jsx(chunkXPB6KMPY_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(chunkXPB6KMPY_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(chunkXPB6KMPY_cjs.ConsentSection, { title: "What you are approving", children: [
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
12594
  /* @__PURE__ */ jsxRuntime.jsx(
12595
- chunkXPB6KMPY_cjs.ConsentBulletList,
12595
+ chunkHVOPUYAG_cjs.ConsentBulletList,
12596
12596
  {
12597
12597
  items: [
12598
12598
  /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
12599
- /* @__PURE__ */ jsxRuntime.jsx(chunkXPB6KMPY_cjs.ConsentStrong, { children: "Read SharePoint sites and files" }),
12599
+ /* @__PURE__ */ jsxRuntime.jsx(chunkHVOPUYAG_cjs.ConsentStrong, { children: "Read SharePoint sites and files" }),
12600
12600
  " \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
12601
  ] }),
12602
12602
  /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
12603
- /* @__PURE__ */ jsxRuntime.jsx(chunkXPB6KMPY_cjs.ConsentStrong, { children: "Sign users in and keep access" }),
12603
+ /* @__PURE__ */ jsxRuntime.jsx(chunkHVOPUYAG_cjs.ConsentStrong, { children: "Sign users in and keep access" }),
12604
12604
  " \u2014 standard sign-in (openid, profile, email) and offline access so syncs keep working between sessions."
12605
12605
  ] })
12606
12606
  ]
12607
12607
  }
12608
12608
  ),
12609
- /* @__PURE__ */ jsxRuntime.jsx(chunkXPB6KMPY_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." }),
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." }),
12610
12610
  /* @__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(chunkXPB6KMPY_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." })
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." })
12612
12612
  ] })
12613
12613
  ] }) });
12614
12614
  }
@@ -12630,7 +12630,7 @@ function BillingProjectEntity({
12630
12630
  subscription = "none",
12631
12631
  ...props
12632
12632
  }) {
12633
- const { stripeEnabled } = chunkUQAHDGYH_cjs.useBillingSupport();
12633
+ const { stripeEnabled } = chunkCCSF7RI4_cjs.useBillingSupport();
12634
12634
  const isPaid2 = stripeEnabled && (subscription === "active" || subscription === "past_due" || subscription === "dev");
12635
12635
  return /* @__PURE__ */ jsxRuntime.jsx(ui.ProjectEntity, { ...props, subscription, isPaid: isPaid2 });
12636
12636
  }
@@ -12657,8 +12657,8 @@ function InvoicesModal({
12657
12657
  key: inv.number ?? String(i),
12658
12658
  date: formatInvoiceDate(inv.date),
12659
12659
  kind: KIND_LABELS2[inv.kind],
12660
- amount: chunkUQAHDGYH_cjs.formatMoney(inv.amount, inv.currency),
12661
- amountNote: inv.amount_ex_vat != null && inv.amount_ex_vat !== inv.amount ? `${chunkUQAHDGYH_cjs.formatMoney(inv.amount_ex_vat, inv.currency)} ex VAT` : void 0,
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,
12662
12662
  status: inv.status,
12663
12663
  isPaid: isPaid2,
12664
12664
  href: inv.hosted_invoice_url ?? inv.url ?? inv.pdf_url ?? void 0,
@@ -12666,7 +12666,7 @@ function InvoicesModal({
12666
12666
  };
12667
12667
  });
12668
12668
  return /* @__PURE__ */ jsxRuntime.jsx(
12669
- chunkTX4CIWH5_cjs.InvoicesDialog,
12669
+ chunkJBL4PPEE_cjs.InvoicesDialog,
12670
12670
  {
12671
12671
  open,
12672
12672
  onOpenChange,
@@ -12680,7 +12680,7 @@ function SubscriptionPlans({ projectExtId, onDismiss }) {
12680
12680
  const { data: products, isLoading, error } = react.useProducts();
12681
12681
  const [isAnnual, setIsAnnual] = react$1.useState(false);
12682
12682
  const [promoCode, setPromoCode] = react$1.useState("");
12683
- const [addonBudget, setAddonBudget] = react$1.useState(String(chunkUQAHDGYH_cjs.DEFAULT_SPEND_CAP_PENCE / 100));
12683
+ const [addonBudget, setAddonBudget] = react$1.useState(String(chunkCCSF7RI4_cjs.DEFAULT_SPEND_CAP_PENCE / 100));
12684
12684
  const [checkoutBudget, setCheckoutBudget] = react$1.useState(null);
12685
12685
  const [aiBlocks, setAiBlocks] = react$1.useState(0);
12686
12686
  const [storageBlocks, setStorageBlocks] = react$1.useState(0);
@@ -12698,31 +12698,31 @@ function SubscriptionPlans({ projectExtId, onDismiss }) {
12698
12698
  storageBlocks,
12699
12699
  enabled: !!products?.length
12700
12700
  });
12701
- if (isLoading) return /* @__PURE__ */ jsxRuntime.jsx(chunkTX4CIWH5_cjs.PlanNotice, { children: "Loading plans\u2026" });
12702
- if (error) return /* @__PURE__ */ jsxRuntime.jsx(chunkTX4CIWH5_cjs.PlanNotice, { tone: "error", children: "Plans didn't load. Try again." });
12703
- if (!products || products.length === 0) return /* @__PURE__ */ jsxRuntime.jsx(chunkTX4CIWH5_cjs.PlanNotice, { children: "No plans available." });
12704
- const prices = chunkUQAHDGYH_cjs.findProPrices(products);
12701
+ if (isLoading) return /* @__PURE__ */ jsxRuntime.jsx(chunkJBL4PPEE_cjs.PlanNotice, { children: "Loading plans\u2026" });
12702
+ if (error) return /* @__PURE__ */ jsxRuntime.jsx(chunkJBL4PPEE_cjs.PlanNotice, { tone: "error", children: "Plans didn't load. Try again." });
12703
+ if (!products || products.length === 0) return /* @__PURE__ */ jsxRuntime.jsx(chunkJBL4PPEE_cjs.PlanNotice, { children: "No plans available." });
12704
+ const prices = chunkCCSF7RI4_cjs.findProPrices(products);
12705
12705
  const intervalPrice = isAnnual ? prices.annual : prices.monthly;
12706
- const selectedPrice = chunkUQAHDGYH_cjs.packPrice(intervalPrice);
12706
+ const selectedPrice = chunkCCSF7RI4_cjs.packPrice(intervalPrice);
12707
12707
  if (!intervalPrice) return null;
12708
12708
  const interval = isAnnual ? "year" : "month";
12709
- const savingsPercent = chunkUQAHDGYH_cjs.calcSavingsPercent(prices.monthly, prices.annual);
12709
+ const savingsPercent = chunkCCSF7RI4_cjs.calcSavingsPercent(prices.monthly, prices.annual);
12710
12710
  const handleSubscribe = () => {
12711
12711
  setCheckoutInterval(interval);
12712
- const parsed = chunkUQAHDGYH_cjs.parseBudgetPounds(addonBudget);
12713
- setCheckoutBudget(parsed == null || parsed === chunkUQAHDGYH_cjs.DEFAULT_SPEND_CAP_PENCE ? null : parsed);
12712
+ const parsed = chunkCCSF7RI4_cjs.parseBudgetPounds(addonBudget);
12713
+ setCheckoutBudget(parsed == null || parsed === chunkCCSF7RI4_cjs.DEFAULT_SPEND_CAP_PENCE ? null : parsed);
12714
12714
  setCheckoutQuote(quote.quote);
12715
12715
  setIsCheckoutModalOpen(true);
12716
12716
  };
12717
12717
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
12718
- /* @__PURE__ */ jsxRuntime.jsxs(chunkTX4CIWH5_cjs.PlanStack, { children: [
12718
+ /* @__PURE__ */ jsxRuntime.jsxs(chunkJBL4PPEE_cjs.PlanStack, { children: [
12719
12719
  /* @__PURE__ */ jsxRuntime.jsx(
12720
- chunkTX4CIWH5_cjs.PlanPickerHeader,
12720
+ chunkJBL4PPEE_cjs.PlanPickerHeader,
12721
12721
  {
12722
12722
  title: "Plan",
12723
12723
  info: /* @__PURE__ */ jsxRuntime.jsx(PlanInfoPopover2, {}),
12724
12724
  toggle: /* @__PURE__ */ jsxRuntime.jsx(
12725
- chunkTX4CIWH5_cjs.PricingToggle,
12725
+ chunkJBL4PPEE_cjs.PricingToggle,
12726
12726
  {
12727
12727
  isAnnual,
12728
12728
  onToggle: () => setIsAnnual(!isAnnual),
@@ -12759,7 +12759,7 @@ function SubscriptionPlans({ projectExtId, onDismiss }) {
12759
12759
  currency: intervalPrice.currency
12760
12760
  }
12761
12761
  ),
12762
- /* @__PURE__ */ jsxRuntime.jsx(chunkTX4CIWH5_cjs.PromoCodeInput, { value: promoCode, onChange: setPromoCode }),
12762
+ /* @__PURE__ */ jsxRuntime.jsx(chunkJBL4PPEE_cjs.PromoCodeInput, { value: promoCode, onChange: setPromoCode }),
12763
12763
  /* @__PURE__ */ jsxRuntime.jsx(
12764
12764
  CheckoutCountrySelect,
12765
12765
  {
@@ -12771,9 +12771,9 @@ function SubscriptionPlans({ projectExtId, onDismiss }) {
12771
12771
  }
12772
12772
  ),
12773
12773
  /* @__PURE__ */ jsxRuntime.jsx(CheckoutTotal, { state: quote, postalCode, onPostalCodeChange: setPostalCode }),
12774
- /* @__PURE__ */ jsxRuntime.jsxs(chunkTX4CIWH5_cjs.PlanActionRow, { children: [
12774
+ /* @__PURE__ */ jsxRuntime.jsxs(chunkJBL4PPEE_cjs.PlanActionRow, { children: [
12775
12775
  onDismiss && /* @__PURE__ */ jsxRuntime.jsx(
12776
- chunkTX4CIWH5_cjs.PlanActionButton,
12776
+ chunkJBL4PPEE_cjs.PlanActionButton,
12777
12777
  {
12778
12778
  tone: "muted",
12779
12779
  fill: true,
@@ -12784,11 +12784,11 @@ function SubscriptionPlans({ projectExtId, onDismiss }) {
12784
12784
  }
12785
12785
  ),
12786
12786
  /* @__PURE__ */ jsxRuntime.jsx(
12787
- chunkTX4CIWH5_cjs.PlanActionButton,
12787
+ chunkJBL4PPEE_cjs.PlanActionButton,
12788
12788
  {
12789
12789
  fill: true,
12790
12790
  onClick: handleSubscribe,
12791
- disabled: !selectedPrice || chunkUQAHDGYH_cjs.parseBudgetPounds(addonBudget) === void 0 || !quote.canContinue,
12791
+ disabled: !selectedPrice || chunkCCSF7RI4_cjs.parseBudgetPounds(addonBudget) === void 0 || !quote.canContinue,
12792
12792
  size: "sm",
12793
12793
  "data-testid": "subscribe-button",
12794
12794
  children: "Continue to payment"
@@ -12840,7 +12840,7 @@ var FALLBACK_MESSAGES = {
12840
12840
  BILLING_ADDRESS_REQUIRED: "Add a billing address first."
12841
12841
  };
12842
12842
  function addonErrorMessage(error) {
12843
- const detail = chunkUQAHDGYH_cjs.apiErrorDetail(error);
12843
+ const detail = chunkCCSF7RI4_cjs.apiErrorDetail(error);
12844
12844
  if (detail && typeof detail === "object") {
12845
12845
  const { code, message } = detail;
12846
12846
  if (message) return message;
@@ -12866,14 +12866,14 @@ function chargeRefusalMessage(error) {
12866
12866
  return code ? REFUSALS[code] : null;
12867
12867
  }
12868
12868
  function addonErrorCode(error) {
12869
- const detail = chunkUQAHDGYH_cjs.apiErrorDetail(error);
12869
+ const detail = chunkCCSF7RI4_cjs.apiErrorDetail(error);
12870
12870
  if (detail && typeof detail === "object") {
12871
12871
  const code = detail.code;
12872
12872
  if (code && code in FALLBACK_MESSAGES) return code;
12873
12873
  }
12874
12874
  return null;
12875
12875
  }
12876
- var addedMessage = (kind, blockAiGbp, blockStorageGb) => kind === "ai_usage" ? `${react.formatGbp(blockAiGbp ?? chunkUQAHDGYH_cjs.ADDON_BLOCK_AI_GBP)} of AI usage added` : `${blockStorageGb ?? chunkUQAHDGYH_cjs.STORAGE_BLOCK_GB} GB added`;
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`;
12877
12877
  function useAddonPurchase() {
12878
12878
  const addBlock = react.useAddProjectAddonBlock();
12879
12879
  const { mutate } = addBlock;
@@ -12925,7 +12925,7 @@ function PlanChangeLines({
12925
12925
  isError,
12926
12926
  className
12927
12927
  }) {
12928
- const lines = preview ? chunkUQAHDGYH_cjs.planPreviewLines(preview) : [{ id: "pay-today", text: isError ? chunkUQAHDGYH_cjs.PAY_TODAY_UNPRICED : "Checking price\u2026" }];
12928
+ const lines = preview ? chunkCCSF7RI4_cjs.planPreviewLines(preview) : [{ id: "pay-today", text: isError ? chunkCCSF7RI4_cjs.PAY_TODAY_UNPRICED : "Checking price\u2026" }];
12929
12929
  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
12930
  }
12931
12931
  var BANK_CONFIRM_PLAN_CHANGE = "Confirm with your bank. Nothing is charged until you do.";
@@ -12933,13 +12933,13 @@ function notifyPlanChange(data, fallback, planName2) {
12933
12933
  const outcome = data?.plan_change;
12934
12934
  switch (outcome?.result) {
12935
12935
  case "upgraded": {
12936
- const plan = chunkUQAHDGYH_cjs.planNameForPacks(data?.addons?.packs ?? data?.packs);
12937
- const charged = outcome.charged_pence > 0 ? ` \xB7 ${chunkUQAHDGYH_cjs.formatMoney(outcome.charged_pence, "gbp")} charged` : "";
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` : "";
12938
12938
  shell.notify.success(`Upgraded to ${plan}${charged}`);
12939
12939
  break;
12940
12940
  }
12941
12941
  case "scheduled": {
12942
- const when2 = chunkUQAHDGYH_cjs.formatPeriodEnd(data?.addons?.period_end ?? data?.current_period_end);
12942
+ const when2 = chunkCCSF7RI4_cjs.formatPeriodEnd(data?.addons?.period_end ?? data?.current_period_end);
12943
12943
  shell.notify.success(when2 ? `Scheduled for ${when2}` : fallback);
12944
12944
  break;
12945
12945
  }
@@ -12972,23 +12972,23 @@ function ChangeProPlan({
12972
12972
  const { data: products } = react.useProducts();
12973
12973
  const changePlan = react.useChangeProjectPlan();
12974
12974
  const cancel = react.useCancelProjectSubscription();
12975
- const prices = chunkUQAHDGYH_cjs.findProPrices(products);
12975
+ const prices = chunkCCSF7RI4_cjs.findProPrices(products);
12976
12976
  const addons = project.addons;
12977
12977
  const isCanceling = project.cancel_at_period_end === true || project.subscription === "canceled";
12978
- const currentPacks = Math.max(addons?.packs ?? project.packs ?? chunkUQAHDGYH_cjs.PRO_PACKS, chunkUQAHDGYH_cjs.PRO_PACKS);
12979
- const isLegacyMultiPack = currentPacks > chunkUQAHDGYH_cjs.PRO_PACKS;
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;
12980
12980
  const currentInterval = project.plan_interval === "year" ? "year" : "month";
12981
12981
  const scheduledPacks = isCanceling ? 0 : addons?.packs_next ?? currentPacks;
12982
12982
  const scheduledInterval = addons?.pending_interval ?? currentInterval;
12983
12983
  const [targetPacks, setTargetPacks] = react$1.useState(scheduledPacks);
12984
12984
  const [chosenInterval, setChosenInterval] = react$1.useState(scheduledInterval);
12985
- const targetInterval = targetPacks > chunkUQAHDGYH_cjs.PRO_PACKS ? currentInterval : chosenInterval;
12985
+ const targetInterval = targetPacks > chunkCCSF7RI4_cjs.PRO_PACKS ? currentInterval : chosenInterval;
12986
12986
  const periodEnd = formatDate(addons?.period_end ?? project.current_period_end);
12987
12987
  const when2 = periodEnd ?? "the end of the period";
12988
12988
  const shortWhen = periodEnd ? periodEnd.replace(/ \d{4}$/, "") : "period end";
12989
12989
  const isPending = changePlan.isPending || cancel.isPending;
12990
12990
  const sameAsScheduled = targetPacks === scheduledPacks && (targetPacks === 0 || targetInterval === scheduledInterval);
12991
- const packOptions = isLegacyMultiPack ? [currentPacks, chunkUQAHDGYH_cjs.PRO_PACKS, 0] : [chunkUQAHDGYH_cjs.PRO_PACKS, 0];
12991
+ const packOptions = isLegacyMultiPack ? [currentPacks, chunkCCSF7RI4_cjs.PRO_PACKS, 0] : [chunkCCSF7RI4_cjs.PRO_PACKS, 0];
12992
12992
  const intervalPrice = targetInterval === "year" ? prices.annual : prices.monthly;
12993
12993
  const currency = intervalPrice?.currency ?? project.currency ?? "gbp";
12994
12994
  const preview = react.usePreviewProjectPlanChange(
@@ -12996,7 +12996,7 @@ function ChangeProPlan({
12996
12996
  sameAsScheduled || targetPacks === 0 ? null : { packs: targetPacks, interval: targetInterval }
12997
12997
  );
12998
12998
  const noChange = sameAsScheduled || preview.data?.unchanged === true;
12999
- const nameFor = (packs) => packs === currentPacks && packs > 0 ? chunkUQAHDGYH_cjs.proTierName(project) : chunkUQAHDGYH_cjs.planNameForPacks(packs);
12999
+ const nameFor = (packs) => packs === currentPacks && packs > 0 ? chunkCCSF7RI4_cjs.proTierName(project) : chunkCCSF7RI4_cjs.planNameForPacks(packs);
13000
13000
  const effects = [];
13001
13001
  const target = nameFor(targetPacks);
13002
13002
  if (targetPacks === 0) {
@@ -13006,7 +13006,7 @@ function ChangeProPlan({
13006
13006
  if (targetPacks < currentPacks) {
13007
13007
  effects.push(`Changes to one Pro licence on ${when2}. No refund.`);
13008
13008
  } else if (!isCanceling && addons?.packs_next != null) {
13009
- effects.push(`Cancels the change to ${chunkUQAHDGYH_cjs.planNameForPacks(addons.packs_next)}.`);
13009
+ effects.push(`Cancels the change to ${chunkCCSF7RI4_cjs.planNameForPacks(addons.packs_next)}.`);
13010
13010
  }
13011
13011
  if (targetInterval !== currentInterval) {
13012
13012
  effects.push(`${targetInterval === "year" ? "Annual" : "Monthly"} billing from ${when2}.`);
@@ -13045,33 +13045,33 @@ function ChangeProPlan({
13045
13045
  if (packs === 0) {
13046
13046
  return {
13047
13047
  total: "\xA30",
13048
- summary: `${react.formatGbp(chunkUQAHDGYH_cjs.FREE_AI_GBP)} of AI usage \xB7 ${chunkUQAHDGYH_cjs.FREE_STORAGE_MB} MB \xB7 just you`
13048
+ summary: `${react.formatGbp(chunkCCSF7RI4_cjs.FREE_AI_GBP)} of AI usage \xB7 ${chunkCCSF7RI4_cjs.FREE_STORAGE_MB} MB \xB7 just you`
13049
13049
  };
13050
13050
  }
13051
- const allowance = `${react.formatGbp(chunkUQAHDGYH_cjs.PRO_AI_GBP * packs)} of AI usage \xB7 ${chunkUQAHDGYH_cjs.PRO_STORAGE_GB * packs} GB`;
13052
- const legacy = packs > chunkUQAHDGYH_cjs.PRO_PACKS;
13053
- const exVat = legacy ? project.amount_ex_vat : chunkUQAHDGYH_cjs.packPrice(intervalPrice)?.amount_ex_vat;
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
13054
  return {
13055
- total: exVat != null ? chunkUQAHDGYH_cjs.plusVat(exVat, currency) : void 0,
13055
+ total: exVat != null ? chunkCCSF7RI4_cjs.plusVat(exVat, currency) : void 0,
13056
13056
  summary: allowance
13057
13057
  };
13058
13058
  };
13059
- return /* @__PURE__ */ jsxRuntime.jsxs(chunkTX4CIWH5_cjs.PlanStack, { gap: 4, testId: "change-pro-plan", children: [
13059
+ return /* @__PURE__ */ jsxRuntime.jsxs(chunkJBL4PPEE_cjs.PlanStack, { gap: 4, testId: "change-pro-plan", children: [
13060
13060
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-wrap items-center justify-between gap-2", children: [
13061
13061
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm font-medium text-foreground", children: "Billing" }),
13062
- targetPacks > chunkUQAHDGYH_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
- chunkTX4CIWH5_cjs.PricingToggle,
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(
13063
+ chunkJBL4PPEE_cjs.PricingToggle,
13064
13064
  {
13065
13065
  isAnnual: targetInterval === "year",
13066
13066
  onToggle: () => setChosenInterval(targetInterval === "year" ? "month" : "year"),
13067
- savingsPercent: chunkUQAHDGYH_cjs.calcSavingsPercent(prices.monthly, prices.annual)
13067
+ savingsPercent: chunkCCSF7RI4_cjs.calcSavingsPercent(prices.monthly, prices.annual)
13068
13068
  }
13069
13069
  )
13070
13070
  ] }),
13071
- /* @__PURE__ */ jsxRuntime.jsx(chunkTX4CIWH5_cjs.PlanStack, { gap: 2, children: packOptions.map((packs) => {
13071
+ /* @__PURE__ */ jsxRuntime.jsx(chunkJBL4PPEE_cjs.PlanStack, { gap: 2, children: packOptions.map((packs) => {
13072
13072
  const { total, summary } = optionFor(packs);
13073
13073
  return /* @__PURE__ */ jsxRuntime.jsx(
13074
- chunkTX4CIWH5_cjs.PlanTierOption,
13074
+ chunkJBL4PPEE_cjs.PlanTierOption,
13075
13075
  {
13076
13076
  onSelect: setTargetPacks,
13077
13077
  option: {
@@ -13088,13 +13088,13 @@ function ChangeProPlan({
13088
13088
  );
13089
13089
  }) }),
13090
13090
  isLegacyMultiPack && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-wrap items-center gap-x-3 gap-y-1", children: [
13091
- /* @__PURE__ */ jsxRuntime.jsxs(chunkTX4CIWH5_cjs.PlanNotice, { className: "text-xs", testId: "change-plan-legacy-note", children: [
13092
- chunkUQAHDGYH_cjs.proTierName(project),
13091
+ /* @__PURE__ */ jsxRuntime.jsxs(chunkJBL4PPEE_cjs.PlanNotice, { className: "text-xs", testId: "change-plan-legacy-note", children: [
13092
+ chunkCCSF7RI4_cjs.proTierName(project),
13093
13093
  " is no longer sold"
13094
13094
  ] }),
13095
- /* @__PURE__ */ jsxRuntime.jsxs(chunkTX4CIWH5_cjs.MoreInfo, { title: "Legacy plan", testId: "change-plan-legacy-more-info", children: [
13095
+ /* @__PURE__ */ jsxRuntime.jsxs(chunkJBL4PPEE_cjs.MoreInfo, { title: "Legacy plan", testId: "change-plan-legacy-more-info", children: [
13096
13096
  /* @__PURE__ */ jsxRuntime.jsxs("p", { children: [
13097
- chunkUQAHDGYH_cjs.proTierName(project),
13097
+ chunkCCSF7RI4_cjs.proTierName(project),
13098
13098
  " keeps renewing at its own price, with its allowance and add-ons, until you change it."
13099
13099
  ] }),
13100
13100
  /* @__PURE__ */ jsxRuntime.jsxs("p", { children: [
@@ -13115,7 +13115,7 @@ function ChangeProPlan({
13115
13115
  ),
13116
13116
  targetPacks > 0 && /* @__PURE__ */ jsxRuntime.jsx(ConnectedReferralRewardNote, {}),
13117
13117
  /* @__PURE__ */ jsxRuntime.jsx(
13118
- chunkTX4CIWH5_cjs.PlanActionButton,
13118
+ chunkJBL4PPEE_cjs.PlanActionButton,
13119
13119
  {
13120
13120
  onClick: apply,
13121
13121
  disabled: noChange || isPending,
@@ -13126,9 +13126,9 @@ function ChangeProPlan({
13126
13126
  ] });
13127
13127
  }
13128
13128
  function ChangePlanDialog({ project, open, onOpenChange }) {
13129
- const isPro = !!project && chunkUQAHDGYH_cjs.isProProject(project);
13129
+ const isPro = !!project && chunkCCSF7RI4_cjs.isProProject(project);
13130
13130
  return /* @__PURE__ */ jsxRuntime.jsx(
13131
- chunkTX4CIWH5_cjs.PlanDialogFrame,
13131
+ chunkJBL4PPEE_cjs.PlanDialogFrame,
13132
13132
  {
13133
13133
  open,
13134
13134
  onOpenChange,
@@ -13148,14 +13148,14 @@ function ChangePlanDialog({ project, open, onOpenChange }) {
13148
13148
  }
13149
13149
  function ProjectsTable() {
13150
13150
  const { data: projects, isLoading } = react.useProjects();
13151
- const currentUserExtId = chunkUQAHDGYH_cjs.useSelfExtId();
13151
+ const currentUserExtId = chunkCCSF7RI4_cjs.useSelfExtId();
13152
13152
  const { openProject } = chunkT6GRWWRY_cjs.useBlocksEnvironment();
13153
13153
  const updateProject = react.useUpdateProjectFields();
13154
13154
  const [renameTarget, setRenameTarget] = react$1.useState(null);
13155
13155
  const [renameValue, setRenameValue] = react$1.useState("");
13156
13156
  const [invoicesTarget, setInvoicesTarget] = react$1.useState(null);
13157
13157
  const [upgradeTarget, setUpgradeTarget] = react$1.useState(null);
13158
- const { stripeEnabled } = chunkUQAHDGYH_cjs.useBillingSupport();
13158
+ const { stripeEnabled } = chunkCCSF7RI4_cjs.useBillingSupport();
13159
13159
  const ownedProjects = react$1.useMemo(
13160
13160
  () => (projects ?? []).filter((p) => p.created_by === currentUserExtId),
13161
13161
  [projects, currentUserExtId]
@@ -13194,13 +13194,13 @@ function ProjectsTable() {
13194
13194
  const hasPaid = p.subscription === "active" || p.subscription === "past_due";
13195
13195
  const canUpgrade = stripeEnabled && !hasPaid && p.subscription !== "canceled" && p.subscription !== "dev";
13196
13196
  return /* @__PURE__ */ jsxRuntime.jsx(
13197
- chunkTX4CIWH5_cjs.ProjectRow,
13197
+ chunkJBL4PPEE_cjs.ProjectRow,
13198
13198
  {
13199
13199
  testId: `project-row-${p.external_id}`,
13200
13200
  onOpen: () => openProject(p.external_id),
13201
13201
  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(chunkTX4CIWH5_cjs.PlanBadge, { ...chunkUQAHDGYH_cjs.planBadgeView(p) }) }) : void 0,
13203
- usage: p.quotas ? /* @__PURE__ */ jsxRuntime.jsx(chunkTX4CIWH5_cjs.QuotaMeter, { items: chunkUQAHDGYH_cjs.getQuotaItems(p.quotas), size: "lg" }) : void 0,
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,
13204
13204
  actions: /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
13205
13205
  canUpgrade && /* @__PURE__ */ jsxRuntime.jsxs(
13206
13206
  ui.Button,
@@ -13234,9 +13234,9 @@ function ProjectsTable() {
13234
13234
  );
13235
13235
  };
13236
13236
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
13237
- /* @__PURE__ */ jsxRuntime.jsx(chunkTX4CIWH5_cjs.ProjectList, { isLoading, isEmpty: ownedProjects.length === 0, isFilteredOut: false, children: ownedProjects.map(renderRow) }),
13237
+ /* @__PURE__ */ jsxRuntime.jsx(chunkJBL4PPEE_cjs.ProjectList, { isLoading, isEmpty: ownedProjects.length === 0, isFilteredOut: false, children: ownedProjects.map(renderRow) }),
13238
13238
  /* @__PURE__ */ jsxRuntime.jsx(
13239
- chunkTX4CIWH5_cjs.RenameDialog,
13239
+ chunkJBL4PPEE_cjs.RenameDialog,
13240
13240
  {
13241
13241
  open: !!renameTarget,
13242
13242
  onClose: () => setRenameTarget(null),
@@ -13267,7 +13267,7 @@ function ProjectsTable() {
13267
13267
  }
13268
13268
  function SharedProjects() {
13269
13269
  const { data: projects } = react.useProjects();
13270
- const currentUserExtId = chunkUQAHDGYH_cjs.useSelfExtId();
13270
+ const currentUserExtId = chunkCCSF7RI4_cjs.useSelfExtId();
13271
13271
  const { data: usageToday } = react.useUserUsageToday();
13272
13272
  const shared = react$1.useMemo(
13273
13273
  () => (projects ?? []).filter((p) => p.created_by !== currentUserExtId),
@@ -13276,13 +13276,13 @@ function SharedProjects() {
13276
13276
  if (shared.length === 0) return null;
13277
13277
  const usedToday = usageToday?.used_gbp ?? 0;
13278
13278
  return /* @__PURE__ */ jsxRuntime.jsx(
13279
- chunkTX4CIWH5_cjs.SharedProjectsSection,
13279
+ chunkJBL4PPEE_cjs.SharedProjectsSection,
13280
13280
  {
13281
13281
  footnote: `Your daily AI usage allowance in ${ui.entityNoun("PROJECT", "PLURAL")} other people run \u2014 their plan and billing are theirs.`,
13282
13282
  children: shared.map((p) => {
13283
13283
  const cap = p.daily_cap_per_user;
13284
13284
  return /* @__PURE__ */ jsxRuntime.jsx(
13285
- chunkTX4CIWH5_cjs.SharedProjectRow,
13285
+ chunkJBL4PPEE_cjs.SharedProjectRow,
13286
13286
  {
13287
13287
  testId: `shared-project-${p.external_id}`,
13288
13288
  identity: /* @__PURE__ */ jsxRuntime.jsx(BillingProjectEntity, { name: p.name, relation: "other", size: "sm" }),
@@ -13328,7 +13328,7 @@ function DailyCapEditor({ project }) {
13328
13328
  );
13329
13329
  };
13330
13330
  return /* @__PURE__ */ jsxRuntime.jsx(
13331
- chunkTX4CIWH5_cjs.DailyCapField,
13331
+ chunkJBL4PPEE_cjs.DailyCapField,
13332
13332
  {
13333
13333
  value,
13334
13334
  onChange: setValue,
@@ -13341,11 +13341,11 @@ function DailyCapEditor({ project }) {
13341
13341
  function SubscriptionStatus({ project }) {
13342
13342
  const { quotas, cancel_at_period_end, subscription, current_period_end, addons } = project;
13343
13343
  return /* @__PURE__ */ jsxRuntime.jsx(
13344
- chunkTX4CIWH5_cjs.SubscriptionStatusView,
13344
+ chunkJBL4PPEE_cjs.SubscriptionStatusView,
13345
13345
  {
13346
- resetDate: chunkUQAHDGYH_cjs.formatResetDate(addons?.ai_usage_reset_at ?? current_period_end),
13346
+ resetDate: chunkCCSF7RI4_cjs.formatResetDate(addons?.ai_usage_reset_at ?? current_period_end),
13347
13347
  isCanceling: subscription === "canceled" || cancel_at_period_end === true,
13348
- meters: chunkUQAHDGYH_cjs.getQuotaItems(quotas).map((q) => ({
13348
+ meters: chunkCCSF7RI4_cjs.getQuotaItems(quotas).map((q) => ({
13349
13349
  key: q.key,
13350
13350
  icon: q.icon,
13351
13351
  label: q.label,
@@ -13409,7 +13409,7 @@ function PendingChange({
13409
13409
  }
13410
13410
  );
13411
13411
  }
13412
- var titleFor = (kind, blockAiGbp, blockStorageGb) => kind === "ai_usage" ? `Add ${react.formatGbp(blockAiGbp ?? chunkUQAHDGYH_cjs.ADDON_BLOCK_AI_GBP)} of AI usage` : `Add ${blockStorageGb ?? chunkUQAHDGYH_cjs.STORAGE_BLOCK_GB} GB storage`;
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`;
13413
13413
  var blocksOf = (kind, project) => (kind === "ai_usage" ? project.addons?.ai_blocks : project.addons?.storage_blocks) ?? 0;
13414
13414
  function Row({ label, children }) {
13415
13415
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-baseline justify-between gap-4", children: [
@@ -13430,11 +13430,11 @@ function AddAddonDialog({
13430
13430
  const addons = project.addons;
13431
13431
  if (!addons) return null;
13432
13432
  const isAnnual = project.plan_interval === "year";
13433
- const price = chunkUQAHDGYH_cjs.addonCharge(kind, addons, isAnnual, addons.period_end ?? project.current_period_end);
13434
- const nextCharge = chunkUQAHDGYH_cjs.formatPeriodEnd(addons.period_end ?? project.current_period_end);
13435
- const now = quote.data ? chunkUQAHDGYH_cjs.quoteParts(quote.data.now) : null;
13436
- const renewal = quote.data ? chunkUQAHDGYH_cjs.quoteParts(quote.data.renewal) : null;
13437
- const today = now ? { total: chunkUQAHDGYH_cjs.money2(now.total), detail: chunkUQAHDGYH_cjs.taxDetail(now) } : { total: price.now, detail: `incl. VAT (${price.nowExVat} + ${price.nowVat} VAT)` };
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)` };
13438
13438
  const pricing = quote.isLoading;
13439
13439
  const confirm = () => {
13440
13440
  const before = blocksOf(kind, project);
@@ -13473,8 +13473,8 @@ function AddAddonDialog({
13473
13473
  isAnnual ? "yearly" : "monthly",
13474
13474
  " \xB7 no refund"
13475
13475
  ] }),
13476
- /* @__PURE__ */ jsxRuntime.jsx(chunkTX4CIWH5_cjs.MoreInfo, { title: "Adding a top-up", testId: "add-addon-more-info", children: /* @__PURE__ */ jsxRuntime.jsx(
13477
- chunkTX4CIWH5_cjs.MoreInfoList,
13476
+ /* @__PURE__ */ jsxRuntime.jsx(chunkJBL4PPEE_cjs.MoreInfo, { title: "Adding a top-up", testId: "add-addon-more-info", children: /* @__PURE__ */ jsxRuntime.jsx(
13477
+ chunkJBL4PPEE_cjs.MoreInfoList,
13478
13478
  {
13479
13479
  items: [
13480
13480
  {
@@ -13489,7 +13489,7 @@ function AddAddonDialog({
13489
13489
  term: "Usage cap",
13490
13490
  text: "Adding by hand is never blocked by the usage cap; the cap limits automatic top-ups only."
13491
13491
  },
13492
- ...isAnnual && kind === "ai_usage" ? [{ term: "Annual", text: `${chunkUQAHDGYH_cjs.ANNUAL_PREMIUM_AI_NOTE}.` }] : []
13492
+ ...isAnnual && kind === "ai_usage" ? [{ term: "Annual", text: `${chunkCCSF7RI4_cjs.ANNUAL_PREMIUM_AI_NOTE}.` }] : []
13493
13493
  ]
13494
13494
  }
13495
13495
  ) })
@@ -13512,7 +13512,7 @@ function AddAddonDialog({
13512
13512
  )
13513
13513
  ] }) }),
13514
13514
  !pricing && /* @__PURE__ */ jsxRuntime.jsxs(Row, { label: "Next charge", children: [
13515
- renewal ? chunkUQAHDGYH_cjs.totalWithTaxWord(renewal) : price.then.replace(/\/(month|year)/, ""),
13515
+ renewal ? chunkCCSF7RI4_cjs.totalWithTaxWord(renewal) : price.then.replace(/\/(month|year)/, ""),
13516
13516
  nextCharge ? ` on ${nextCharge}` : " at renewal"
13517
13517
  ] })
13518
13518
  ] }) }),
@@ -13543,11 +13543,11 @@ function ReduceAddonDialog({
13543
13543
  const update = react.useUpdateProjectNextPeriodAddons();
13544
13544
  const addons = project.addons;
13545
13545
  if (!addons) return null;
13546
- const { min, next } = chunkUQAHDGYH_cjs.reduceBounds(kind, addons);
13546
+ const { min, next } = chunkCCSF7RI4_cjs.reduceBounds(kind, addons);
13547
13547
  const keep2 = Math.max(min, next - 1);
13548
- const size = chunkUQAHDGYH_cjs.nextRemovedBlockSize(kind, addons);
13549
- const what = chunkUQAHDGYH_cjs.stepLabel(kind, size);
13550
- const from = chunkUQAHDGYH_cjs.formatPeriodEnd(addons.period_end ?? project.current_period_end) ?? "your next renewal";
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
13551
  const fromShort = from.replace(/ \d{4}$/, "");
13552
13552
  const allowanceNext = kind === "ai_usage" ? addons.ai_allowance_next_gbp - size : addons.storage_allowance_next_gb - size;
13553
13553
  const allowanceNow = kind === "ai_usage" ? addons.ai_allowance_gbp : addons.storage_allowance_gb;
@@ -13555,7 +13555,7 @@ function ReduceAddonDialog({
13555
13555
  const save = () => update.mutate(
13556
13556
  {
13557
13557
  projectExtId: project.external_id,
13558
- body: chunkUQAHDGYH_cjs.nextPeriodBody(kind, keep2)
13558
+ body: chunkCCSF7RI4_cjs.nextPeriodBody(kind, keep2)
13559
13559
  },
13560
13560
  {
13561
13561
  onSuccess: () => {
@@ -13583,7 +13583,7 @@ function ReduceAddonDialog({
13583
13583
  fromShort,
13584
13584
  " \xB7 no refund"
13585
13585
  ] }),
13586
- /* @__PURE__ */ jsxRuntime.jsxs(chunkTX4CIWH5_cjs.MoreInfo, { title: "Reducing a top-up", testId: "reduce-addon-more-info", children: [
13586
+ /* @__PURE__ */ jsxRuntime.jsxs(chunkJBL4PPEE_cjs.MoreInfo, { title: "Reducing a top-up", testId: "reduce-addon-more-info", children: [
13587
13587
  /* @__PURE__ */ jsxRuntime.jsxs("p", { children: [
13588
13588
  "The reduction applies from your next renewal (",
13589
13589
  from,
@@ -13622,7 +13622,7 @@ function ReduceAddonDialog({
13622
13622
  }
13623
13623
  ) });
13624
13624
  }
13625
- var gbp = (pence) => chunkUQAHDGYH_cjs.formatMoney(pence, "gbp");
13625
+ var gbp = (pence) => chunkCCSF7RI4_cjs.formatMoney(pence, "gbp");
13626
13626
  var gb2 = (n) => `${Math.round(n * 10) / 10} GB`;
13627
13627
  var pct = (used, limit) => limit > 0 ? Math.min(100, used / limit * 100) : 0;
13628
13628
  function formatShortDate(unix) {
@@ -13634,20 +13634,20 @@ function AutoTopupThreshold({
13634
13634
  addons
13635
13635
  }) {
13636
13636
  const updateSettings = react.useUpdateProjectAddonSettings();
13637
- const min = addons.min_auto_topup_threshold_gbp || chunkUQAHDGYH_cjs.MIN_AUTO_TOPUP_THRESHOLD_GBP;
13637
+ const min = addons.min_auto_topup_threshold_gbp || chunkCCSF7RI4_cjs.MIN_AUTO_TOPUP_THRESHOLD_GBP;
13638
13638
  const saved = addons.auto_topup_threshold_gbp;
13639
13639
  const [value, setValue] = react$1.useState(String(saved));
13640
13640
  react$1.useEffect(() => setValue(String(saved)), [saved]);
13641
13641
  const parsed = Number(value);
13642
13642
  const valid = Number.isFinite(parsed) && parsed >= min;
13643
13643
  const dirty = valid && parsed !== saved;
13644
- const off = chunkUQAHDGYH_cjs.isAddonBudgetZero(addons);
13644
+ const off = chunkCCSF7RI4_cjs.isAddonBudgetZero(addons);
13645
13645
  const save = () => {
13646
13646
  if (!dirty) return;
13647
13647
  updateSettings.mutate(
13648
13648
  {
13649
13649
  projectExtId: project.external_id,
13650
- body: chunkUQAHDGYH_cjs.addonSettingsBody(addons, { auto_topup_threshold_gbp: parsed })
13650
+ body: chunkCCSF7RI4_cjs.addonSettingsBody(addons, { auto_topup_threshold_gbp: parsed })
13651
13651
  },
13652
13652
  {
13653
13653
  onSuccess: () => shell.notify.success(`Auto-add below ${react.formatGbp(parsed)} of AI usage left`),
@@ -13744,10 +13744,10 @@ function ResourceMeter({
13744
13744
  const update = react.useUpdateProjectNextPeriodAddons();
13745
13745
  const isAi = kind === "ai_usage";
13746
13746
  const slug = isAi ? "ai-usage" : "storage";
13747
- const periodEnd = chunkUQAHDGYH_cjs.formatPeriodEnd(addons.period_end ?? project.current_period_end);
13747
+ const periodEnd = chunkCCSF7RI4_cjs.formatPeriodEnd(addons.period_end ?? project.current_period_end);
13748
13748
  const from = periodEnd ?? "your next renewal";
13749
13749
  const fromShort = formatShortDate(addons.period_end ?? project.current_period_end) ?? "renewal";
13750
- const { min, current, next } = chunkUQAHDGYH_cjs.reduceBounds(kind, addons);
13750
+ const { min, current, next } = chunkCCSF7RI4_cjs.reduceBounds(kind, addons);
13751
13751
  const fmt = (n) => isAi ? react.formatGbp(n) : gb2(n);
13752
13752
  const used = isAi ? addons.ai_used_gbp : addons.storage_used_gb;
13753
13753
  const allowance = isAi ? addons.ai_allowance_gbp : addons.storage_allowance_gb;
@@ -13755,15 +13755,15 @@ function ResourceMeter({
13755
13755
  const plan = isAi ? addons.plan_ai_gbp : addons.plan_storage_gb;
13756
13756
  const topUps = Math.max(0, allowance - plan);
13757
13757
  const blocks = isAi ? addons.ai_blocks : addons.storage_blocks;
13758
- const hasLegacy = chunkUQAHDGYH_cjs.splitBlocks(kind, blocks, addons).legacy > 0;
13759
- const room = chunkUQAHDGYH_cjs.autoRoom(kind, addons);
13760
- const capZero = chunkUQAHDGYH_cjs.isAddonBudgetZero(addons);
13761
- const resets = isAi ? formatShortDate(chunkUQAHDGYH_cjs.aiUsageResetTimestamp(project)) : null;
13762
- const removeSize = chunkUQAHDGYH_cjs.nextRemovedBlockSize(kind, addons);
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);
13763
13763
  const undo = () => update.mutate(
13764
13764
  {
13765
13765
  projectExtId: project.external_id,
13766
- body: chunkUQAHDGYH_cjs.nextPeriodBody(kind, current)
13766
+ body: chunkCCSF7RI4_cjs.nextPeriodBody(kind, current)
13767
13767
  },
13768
13768
  {
13769
13769
  onSuccess: () => shell.notify.success("Kept"),
@@ -13780,7 +13780,7 @@ function ResourceMeter({
13780
13780
  allowance: { used, plan, topUps, autoRoom: capZero ? 0 : room },
13781
13781
  legend: {
13782
13782
  plan: `Plan ${fmt(plan)}`,
13783
- topUps: topUps > 0 ? `Top-ups ${fmt(topUps)}${hasLegacy ? ` (${chunkUQAHDGYH_cjs.blocksLabel(kind, blocks, addons)})` : ""}` : void 0,
13783
+ topUps: topUps > 0 ? `Top-ups ${fmt(topUps)}${hasLegacy ? ` (${chunkCCSF7RI4_cjs.blocksLabel(kind, blocks, addons)})` : ""}` : void 0,
13784
13784
  autoRoom: room != null && room > 0 && !capZero ? `Automatic up to ${fmt(room)}` : void 0
13785
13785
  },
13786
13786
  testId: `usage-meter-${slug}`,
@@ -13809,9 +13809,9 @@ function ResourceMeter({
13809
13809
  {
13810
13810
  icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Plus, { className: "size-3.5" }),
13811
13811
  label: isAi ? react.formatGbp(addons.block_ai_gbp) : `${addons.block_storage_gb} GB`,
13812
- caption: chunkUQAHDGYH_cjs.addStepCaption(kind, addons),
13812
+ caption: chunkCCSF7RI4_cjs.addStepCaption(kind, addons),
13813
13813
  onClick: onAdd,
13814
- ariaLabel: `Add ${chunkUQAHDGYH_cjs.stepLabel(kind, isAi ? addons.block_ai_gbp : addons.block_storage_gb)}`,
13814
+ ariaLabel: `Add ${chunkCCSF7RI4_cjs.stepLabel(kind, isAi ? addons.block_ai_gbp : addons.block_storage_gb)}`,
13815
13815
  testId: isAi ? "add-ai-block-button" : "add-storage-block-button"
13816
13816
  }
13817
13817
  ),
@@ -13822,7 +13822,7 @@ function ResourceMeter({
13822
13822
  label: isAi ? react.formatGbp(removeSize) : `${removeSize} GB`,
13823
13823
  caption: `from ${fromShort}`,
13824
13824
  onClick: onReduce,
13825
- ariaLabel: `Remove ${chunkUQAHDGYH_cjs.stepLabel(kind, removeSize)} from ${from}`,
13825
+ ariaLabel: `Remove ${chunkCCSF7RI4_cjs.stepLabel(kind, removeSize)} from ${from}`,
13826
13826
  testId: `reduce-${slug}-button`
13827
13827
  }
13828
13828
  )
@@ -13861,10 +13861,10 @@ function UsageCapEditor({ project, addons }) {
13861
13861
  updateSettings.mutate(
13862
13862
  {
13863
13863
  projectExtId: project.external_id,
13864
- body: chunkUQAHDGYH_cjs.addonSettingsBody(addons, { spend_cap_pence: nextCap })
13864
+ body: chunkCCSF7RI4_cjs.addonSettingsBody(addons, { spend_cap_pence: nextCap })
13865
13865
  },
13866
13866
  {
13867
- onSuccess: () => shell.notify.success(chunkUQAHDGYH_cjs.budgetSavedMessage(nextCap)),
13867
+ onSuccess: () => shell.notify.success(chunkCCSF7RI4_cjs.budgetSavedMessage(nextCap)),
13868
13868
  onError: (error) => shell.notify.error(addonErrorMessage(error))
13869
13869
  }
13870
13870
  );
@@ -13875,14 +13875,14 @@ function UsageCapEditor({ project, addons }) {
13875
13875
  /* @__PURE__ */ jsxRuntime.jsx(
13876
13876
  chunkQZTNTP75_cjs.UsageMeter,
13877
13877
  {
13878
- label: chunkUQAHDGYH_cjs.USAGE_CAP_LABEL,
13878
+ label: chunkCCSF7RI4_cjs.USAGE_CAP_LABEL,
13879
13879
  hint: spendResets && savedCap !== 0 ? `resets ${spendResets}` : void 0,
13880
13880
  value: readout,
13881
13881
  pct: savedCap != null && savedCap > 0 ? pct(spent, savedCap) : 0,
13882
13882
  testId: "addon-spend"
13883
13883
  }
13884
13884
  ),
13885
- addons.cap_reached && savedCap != null && savedCap > 0 && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-muted-foreground", "data-testid": "addon-cap-reached", children: chunkUQAHDGYH_cjs.CAP_REACHED_MESSAGE }),
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 }),
13886
13886
  addons.manual_spent_pence > 0 && /* @__PURE__ */ jsxRuntime.jsxs("p", { className: "text-xs text-muted-foreground", "data-testid": "addon-manual-spend", children: [
13887
13887
  "Added by hand this month: ",
13888
13888
  gbp(addons.manual_spent_pence),
@@ -13903,7 +13903,7 @@ function UsageCapEditor({ project, addons }) {
13903
13903
  step: 25,
13904
13904
  className: "h-9 w-28",
13905
13905
  value: noCap ? "" : value,
13906
- placeholder: noCap ? "No limit" : String(chunkUQAHDGYH_cjs.DEFAULT_SPEND_CAP_PENCE / 100),
13906
+ placeholder: noCap ? "No limit" : String(chunkCCSF7RI4_cjs.DEFAULT_SPEND_CAP_PENCE / 100),
13907
13907
  disabled: noCap,
13908
13908
  onChange: (e) => setValue(e.target.value),
13909
13909
  onKeyDown: (e) => e.key === "Enter" && save(),
@@ -13929,7 +13929,7 @@ function UsageCapEditor({ project, addons }) {
13929
13929
  checked: noCap,
13930
13930
  onCheckedChange: (checked) => {
13931
13931
  setNoCap(checked);
13932
- if (!checked && value === "") setValue(String(chunkUQAHDGYH_cjs.DEFAULT_SPEND_CAP_PENCE / 100));
13932
+ if (!checked && value === "") setValue(String(chunkCCSF7RI4_cjs.DEFAULT_SPEND_CAP_PENCE / 100));
13933
13933
  },
13934
13934
  "data-testid": "no-cap-switch"
13935
13935
  }
@@ -13942,8 +13942,8 @@ function UsageCapEditor({ project, addons }) {
13942
13942
  function UsageInfo({ addons, isAnnual }) {
13943
13943
  const period = isAnnual ? "year" : "month";
13944
13944
  const legacy = (addons.legacy_ai_blocks ?? 0) > 0 || (addons.legacy_storage_blocks ?? 0) > 0;
13945
- return /* @__PURE__ */ jsxRuntime.jsx(chunkTX4CIWH5_cjs.MoreInfo, { title: "Usage and top-ups", testId: "usage-more-info", children: /* @__PURE__ */ jsxRuntime.jsx(
13946
- chunkTX4CIWH5_cjs.MoreInfoList,
13945
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkJBL4PPEE_cjs.MoreInfo, { title: "Usage and top-ups", testId: "usage-more-info", children: /* @__PURE__ */ jsxRuntime.jsx(
13946
+ chunkJBL4PPEE_cjs.MoreInfoList,
13947
13947
  {
13948
13948
  items: [
13949
13949
  {
@@ -13958,7 +13958,7 @@ function UsageInfo({ addons, isAnnual }) {
13958
13958
  term: "Automatic top-ups",
13959
13959
  text: "One step is added when AI usage drops below your auto top-up level, or when an upload needs more storage."
13960
13960
  },
13961
- { term: "Usage cap", text: chunkUQAHDGYH_cjs.USAGE_CAP_HELP },
13961
+ { term: "Usage cap", text: chunkCCSF7RI4_cjs.USAGE_CAP_HELP },
13962
13962
  {
13963
13963
  term: "Reducing",
13964
13964
  text: "\u2212 removes one step from your next renewal. You keep this period's allowance. No refunds."
@@ -13969,7 +13969,7 @@ function UsageInfo({ addons, isAnnual }) {
13969
13969
  text: "Top-ups bought on an earlier price keep their size and price until removed; they are removed last."
13970
13970
  }
13971
13971
  ] : [],
13972
- ...isAnnual ? [{ term: "Annual", text: `${chunkUQAHDGYH_cjs.ANNUAL_PREMIUM_AI_NOTE}.` }] : [],
13972
+ ...isAnnual ? [{ term: "Annual", text: `${chunkCCSF7RI4_cjs.ANNUAL_PREMIUM_AI_NOTE}.` }] : [],
13973
13973
  {
13974
13974
  term: "Prices",
13975
13975
  text: "Shown ex VAT. The confirm step shows the total with VAT before you pay."
@@ -14061,7 +14061,7 @@ function formatShortDate2(unix) {
14061
14061
  if (!unix) return null;
14062
14062
  return new Date(unix * 1e3).toLocaleDateString("en-GB", { day: "numeric", month: "short" });
14063
14063
  }
14064
- var gbp2 = (pence) => chunkUQAHDGYH_cjs.formatMoney(pence, "gbp");
14064
+ var gbp2 = (pence) => chunkCCSF7RI4_cjs.formatMoney(pence, "gbp");
14065
14065
  var gbNum = (n) => `${Math.round(n * 10) / 10}`;
14066
14066
  var pct2 = (used, limit) => limit > 0 ? Math.min(100, used / limit * 100) : 0;
14067
14067
  function Meter({
@@ -14079,15 +14079,15 @@ function Meter({
14079
14079
  ] });
14080
14080
  }
14081
14081
  function usePlanPrice(project) {
14082
- const { data: products } = react.useProducts({ enabled: chunkUQAHDGYH_cjs.isProProject(project) });
14083
- if (!chunkUQAHDGYH_cjs.isProProject(project)) return null;
14082
+ const { data: products } = react.useProducts({ enabled: chunkCCSF7RI4_cjs.isProProject(project) });
14083
+ if (!chunkCCSF7RI4_cjs.isProProject(project)) return null;
14084
14084
  const isAnnual = project.plan_interval === "year";
14085
14085
  if (project.amount != null) {
14086
14086
  return { incl: project.amount, ex: project.amount_ex_vat ?? null, isAnnual };
14087
14087
  }
14088
- if ((project.packs ?? chunkUQAHDGYH_cjs.PRO_PACKS) > chunkUQAHDGYH_cjs.PRO_PACKS) return null;
14089
- const prices = chunkUQAHDGYH_cjs.findProPrices(products);
14090
- const pp = chunkUQAHDGYH_cjs.packPrice(isAnnual ? prices.annual : prices.monthly);
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
14091
  return pp ? { incl: pp.amount, ex: pp.amount_ex_vat, isAnnual } : null;
14092
14092
  }
14093
14093
  function paidLine(payment, addons) {
@@ -14100,11 +14100,11 @@ function ProjectPlanCard({
14100
14100
  onChangePlan
14101
14101
  }) {
14102
14102
  const { quotas, addons } = project;
14103
- const isPro = chunkUQAHDGYH_cjs.isProProject(project);
14103
+ const isPro = chunkCCSF7RI4_cjs.isProProject(project);
14104
14104
  const used = quotas?.ai_usage?.used ?? 0;
14105
14105
  const limit = quotas?.ai_usage?.limit ?? 0;
14106
- const resetDate = formatShortDate2(chunkUQAHDGYH_cjs.aiUsageResetTimestamp(project));
14107
- const periodEnd = chunkUQAHDGYH_cjs.formatPeriodEnd(addons?.period_end ?? project.current_period_end);
14106
+ const resetDate = formatShortDate2(chunkCCSF7RI4_cjs.aiUsageResetTimestamp(project));
14107
+ const periodEnd = chunkCCSF7RI4_cjs.formatPeriodEnd(addons?.period_end ?? project.current_period_end);
14108
14108
  const when2 = periodEnd ?? "the end of the period";
14109
14109
  const storageUsed = quotas?.storage_gb?.used ?? 0;
14110
14110
  const storageLimit = quotas?.storage_gb?.limit ?? 0;
@@ -14120,7 +14120,7 @@ function ProjectPlanCard({
14120
14120
  project.external_id,
14121
14121
  hasScheduledChange && addons ? { packs: packsNext ?? addons.packs, interval: pending ?? currentInterval } : null
14122
14122
  ).data;
14123
- const tier = isPro ? chunkUQAHDGYH_cjs.proTierName(project) : project.subscription === "dev" ? "Dev" : "Free";
14123
+ const tier = isPro ? chunkCCSF7RI4_cjs.proTierName(project) : project.subscription === "dev" ? "Dev" : "Free";
14124
14124
  const pendingPayment = addons?.payment?.status === "pending" ? addons.payment : null;
14125
14125
  const confirmUrl = pendingPayment?.confirm_url ?? addons?.confirm_url;
14126
14126
  const paidPayment = addons?.payment?.status === "paid" ? addons.payment : null;
@@ -14154,7 +14154,7 @@ function ProjectPlanCard({
14154
14154
  isPro && " ",
14155
14155
  isPro && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ml-1 text-sm font-normal text-muted-foreground", children: currentInterval === "year" ? "Annual" : "Monthly" })
14156
14156
  ] }),
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 ${chunkUQAHDGYH_cjs.totalWithTaxWord({
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({
14158
14158
  subtotal: nextBill.next_renewal_ex_vat_pence,
14159
14159
  tax: nextBill.next_renewal_tax_pence,
14160
14160
  total: nextBill.next_renewal_pence,
@@ -14163,7 +14163,7 @@ function ProjectPlanCard({
14163
14163
  ] }),
14164
14164
  price && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ml-auto text-right", "data-testid": "project-plan-price", children: [
14165
14165
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-lg font-semibold tabular-nums text-foreground", children: [
14166
- price.ex != null ? chunkUQAHDGYH_cjs.plusVat(price.ex) : gbp2(price.incl),
14166
+ price.ex != null ? chunkCCSF7RI4_cjs.plusVat(price.ex) : gbp2(price.incl),
14167
14167
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm font-normal text-muted-foreground", children: price.isAnnual ? "/year" : "/month" })
14168
14168
  ] }),
14169
14169
  price.ex != null && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-xs text-muted-foreground", children: [
@@ -14201,7 +14201,7 @@ function ProjectPlanCard({
14201
14201
  undoTestId: "undo-plan-change-button",
14202
14202
  children: [
14203
14203
  "Changes to ",
14204
- chunkUQAHDGYH_cjs.planNameForPacks(packsNext),
14204
+ chunkCCSF7RI4_cjs.planNameForPacks(packsNext),
14205
14205
  " on ",
14206
14206
  when2,
14207
14207
  "."
@@ -14246,8 +14246,8 @@ function ProjectPlanCard({
14246
14246
  }
14247
14247
  )
14248
14248
  ] }),
14249
- addons?.billing_error && /* @__PURE__ */ jsxRuntime.jsx(chunkTX4CIWH5_cjs.PlanNotice, { tone: "error", testId: "plan-billing-error", children: addons.billing_error }),
14250
- confirmUrl ? /* @__PURE__ */ jsxRuntime.jsxs(chunkTX4CIWH5_cjs.PlanNotice, { testId: "plan-payment-state", children: [
14249
+ addons?.billing_error && /* @__PURE__ */ jsxRuntime.jsx(chunkJBL4PPEE_cjs.PlanNotice, { tone: "error", testId: "plan-billing-error", children: addons.billing_error }),
14250
+ confirmUrl ? /* @__PURE__ */ jsxRuntime.jsxs(chunkJBL4PPEE_cjs.PlanNotice, { testId: "plan-payment-state", children: [
14251
14251
  "Waiting for your bank",
14252
14252
  pendingPayment?.amount_pence ? ` \xB7 ${gbp2(pendingPayment.amount_pence)}` : "",
14253
14253
  " \xB7",
@@ -14265,7 +14265,7 @@ function ProjectPlanCard({
14265
14265
  ]
14266
14266
  }
14267
14267
  )
14268
- ] }) : paidPayment && addons && /* @__PURE__ */ jsxRuntime.jsx(chunkTX4CIWH5_cjs.PlanNotice, { testId: "plan-payment-state", children: paidLine(paidPayment, addons) }),
14268
+ ] }) : paidPayment && addons && /* @__PURE__ */ jsxRuntime.jsx(chunkJBL4PPEE_cjs.PlanNotice, { testId: "plan-payment-state", children: paidLine(paidPayment, addons) }),
14269
14269
  isPro && /* @__PURE__ */ jsxRuntime.jsxs(
14270
14270
  "button",
14271
14271
  {
@@ -14292,7 +14292,7 @@ function ProjectBilling({
14292
14292
  const { addons } = project;
14293
14293
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", "data-testid": "project-billing", children: [
14294
14294
  /* @__PURE__ */ jsxRuntime.jsx(ProjectPlanCard, { project, onChangePlan }),
14295
- addons && chunkUQAHDGYH_cjs.isProProject(project) && /* @__PURE__ */ jsxRuntime.jsx(ProjectUsageCard, { project, addons })
14295
+ addons && chunkCCSF7RI4_cjs.isProProject(project) && /* @__PURE__ */ jsxRuntime.jsx(ProjectUsageCard, { project, addons })
14296
14296
  ] });
14297
14297
  }
14298
14298
  var BREAKDOWN_LABELS = {
@@ -14423,13 +14423,13 @@ function ProjectUsageContent({
14423
14423
  };
14424
14424
  const quotaPct = effectiveUsage && aiUsageLimit ? Math.round(effectiveUsage.total_spend / aiUsageLimit * 100) : 0;
14425
14425
  return /* @__PURE__ */ jsxRuntime.jsx(
14426
- chunkTX4CIWH5_cjs.UsagePanel,
14426
+ chunkJBL4PPEE_cjs.UsagePanel,
14427
14427
  {
14428
14428
  state,
14429
14429
  dateRange,
14430
14430
  emptyMessage: `No usage ${period === "current" ? "yet this month" : "last month"}.`,
14431
14431
  period: /* @__PURE__ */ jsxRuntime.jsx(
14432
- chunkTX4CIWH5_cjs.UsageToggle,
14432
+ chunkJBL4PPEE_cjs.UsageToggle,
14433
14433
  {
14434
14434
  ariaLabel: "Period",
14435
14435
  value: period,
@@ -14442,7 +14442,7 @@ function ProjectUsageContent({
14442
14442
  ),
14443
14443
  actions: /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
14444
14444
  effectiveUsage?.invoice_pdf && /* @__PURE__ */ jsxRuntime.jsx(
14445
- chunkTX4CIWH5_cjs.UsageActionButton,
14445
+ chunkJBL4PPEE_cjs.UsageActionButton,
14446
14446
  {
14447
14447
  label: "Download Stripe invoice PDF",
14448
14448
  icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Download, { className: "size-3.5" }),
@@ -14450,7 +14450,7 @@ function ProjectUsageContent({
14450
14450
  }
14451
14451
  ),
14452
14452
  /* @__PURE__ */ jsxRuntime.jsx(
14453
- chunkTX4CIWH5_cjs.UsageActionButton,
14453
+ chunkJBL4PPEE_cjs.UsageActionButton,
14454
14454
  {
14455
14455
  label: "Print usage summary",
14456
14456
  icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Printer, { className: "size-3.5" }),
@@ -14460,7 +14460,7 @@ function ProjectUsageContent({
14460
14460
  ] }),
14461
14461
  children: effectiveUsage && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
14462
14462
  /* @__PURE__ */ jsxRuntime.jsx(
14463
- chunkTX4CIWH5_cjs.UsageSummary,
14463
+ chunkJBL4PPEE_cjs.UsageSummary,
14464
14464
  {
14465
14465
  stats: [
14466
14466
  {
@@ -14468,7 +14468,7 @@ function ProjectUsageContent({
14468
14468
  value: /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: react.formatGbp(effectiveUsage.total_spend) }),
14469
14469
  label: /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
14470
14470
  "AI usage",
14471
- quotaPct > 0 ? /* @__PURE__ */ jsxRuntime.jsxs(chunkTX4CIWH5_cjs.UsageQuotaHint, { children: [
14471
+ quotaPct > 0 ? /* @__PURE__ */ jsxRuntime.jsxs(chunkJBL4PPEE_cjs.UsageQuotaHint, { children: [
14472
14472
  "(",
14473
14473
  quotaPct,
14474
14474
  "% of quota)"
@@ -14489,7 +14489,7 @@ function ProjectUsageContent({
14489
14489
  }
14490
14490
  ),
14491
14491
  /* @__PURE__ */ jsxRuntime.jsx(
14492
- chunkTX4CIWH5_cjs.UsageToggle,
14492
+ chunkJBL4PPEE_cjs.UsageToggle,
14493
14493
  {
14494
14494
  ariaLabel: "Breakdown by",
14495
14495
  size: "fill",
@@ -14502,12 +14502,12 @@ function ProjectUsageContent({
14502
14502
  }
14503
14503
  ),
14504
14504
  /* @__PURE__ */ jsxRuntime.jsx(
14505
- chunkTX4CIWH5_cjs.UsageSection,
14505
+ chunkJBL4PPEE_cjs.UsageSection,
14506
14506
  {
14507
- footer: /* @__PURE__ */ jsxRuntime.jsx(chunkTX4CIWH5_cjs.UsageLegend, { series }),
14507
+ footer: /* @__PURE__ */ jsxRuntime.jsx(chunkJBL4PPEE_cjs.UsageLegend, { series }),
14508
14508
  title: `Daily AI usage${breakdown === "model" ? ` by ${BREAKDOWN_LABELS[breakdown]}` : ""}`,
14509
14509
  children: /* @__PURE__ */ jsxRuntime.jsx(
14510
- chunkTX4CIWH5_cjs.UsageLineChart,
14510
+ chunkJBL4PPEE_cjs.UsageLineChart,
14511
14511
  {
14512
14512
  dates,
14513
14513
  series,
@@ -14518,12 +14518,12 @@ function ProjectUsageContent({
14518
14518
  }
14519
14519
  ),
14520
14520
  /* @__PURE__ */ jsxRuntime.jsx(
14521
- chunkTX4CIWH5_cjs.UsageSection,
14521
+ chunkJBL4PPEE_cjs.UsageSection,
14522
14522
  {
14523
14523
  title: "Breakdown",
14524
14524
  gap: "md",
14525
14525
  action: /* @__PURE__ */ jsxRuntime.jsx(
14526
- chunkTX4CIWH5_cjs.UsageToggle,
14526
+ chunkJBL4PPEE_cjs.UsageToggle,
14527
14527
  {
14528
14528
  ariaLabel: "Breakdown metric",
14529
14529
  value: metric,
@@ -14535,7 +14535,7 @@ function ProjectUsageContent({
14535
14535
  }
14536
14536
  ),
14537
14537
  children: /* @__PURE__ */ jsxRuntime.jsx(
14538
- chunkTX4CIWH5_cjs.UsageProportionBar,
14538
+ chunkJBL4PPEE_cjs.UsageProportionBar,
14539
14539
  {
14540
14540
  metric,
14541
14541
  items: breakdownItems.map((item) => ({
@@ -14553,13 +14553,13 @@ function ProjectUsageContent({
14553
14553
  );
14554
14554
  }
14555
14555
  function ProjectDetail({ projectExtId, storage }) {
14556
- const { stripeEnabled } = chunkUQAHDGYH_cjs.useBillingSupport();
14556
+ const { stripeEnabled } = chunkCCSF7RI4_cjs.useBillingSupport();
14557
14557
  const [planOpen, setPlanOpen] = react$1.useState(false);
14558
14558
  const [renameOpen, setRenameOpen] = react$1.useState(false);
14559
14559
  const [renameValue, setRenameValue] = react$1.useState("");
14560
14560
  const updateProject = react.useUpdateProjectFields();
14561
14561
  const { data: projects, isLoading } = react.useProjects();
14562
- const currentUserExtId = chunkUQAHDGYH_cjs.useSelfExtId();
14562
+ const currentUserExtId = chunkCCSF7RI4_cjs.useSelfExtId();
14563
14563
  const project = projects?.find((p) => p.external_id === projectExtId);
14564
14564
  const handleSaveRename = react$1.useCallback(() => {
14565
14565
  const trimmed = renameValue.trim();
@@ -14597,7 +14597,7 @@ function ProjectDetail({ projectExtId, storage }) {
14597
14597
  }
14598
14598
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "p-6 space-y-6 max-w-4xl", "data-testid": `project-detail-${project.external_id}`, children: [
14599
14599
  /* @__PURE__ */ jsxRuntime.jsx(
14600
- chunkTX4CIWH5_cjs.ProjectDetailHeader,
14600
+ chunkJBL4PPEE_cjs.ProjectDetailHeader,
14601
14601
  {
14602
14602
  icon: /* @__PURE__ */ jsxRuntime.jsx(ui.EntityIcon, { entityType: "PROJECT" }),
14603
14603
  name: project.name,
@@ -14605,11 +14605,11 @@ function ProjectDetail({ projectExtId, storage }) {
14605
14605
  setRenameValue(project.name);
14606
14606
  setRenameOpen(true);
14607
14607
  },
14608
- badge: stripeEnabled ? /* @__PURE__ */ jsxRuntime.jsx(chunkTX4CIWH5_cjs.PlanBadge, { ...chunkUQAHDGYH_cjs.planBadgeView(project), size: "md" }) : void 0
14608
+ badge: stripeEnabled ? /* @__PURE__ */ jsxRuntime.jsx(chunkJBL4PPEE_cjs.PlanBadge, { ...chunkCCSF7RI4_cjs.planBadgeView(project), size: "md" }) : void 0
14609
14609
  }
14610
14610
  ),
14611
14611
  hasBilling && /* @__PURE__ */ jsxRuntime.jsx(ProjectBilling, { project, onChangePlan: () => setPlanOpen(true) }),
14612
- /* @__PURE__ */ jsxRuntime.jsxs(chunkTX4CIWH5_cjs.ProjectDetailSection, { title: hasBilling ? "Collaborator limits" : "Plan limits", children: [
14612
+ /* @__PURE__ */ jsxRuntime.jsxs(chunkJBL4PPEE_cjs.ProjectDetailSection, { title: hasBilling ? "Collaborator limits" : "Plan limits", children: [
14613
14613
  !hasBilling && /* @__PURE__ */ jsxRuntime.jsx(SubscriptionStatus, { project }),
14614
14614
  /* @__PURE__ */ jsxRuntime.jsxs(
14615
14615
  "div",
@@ -14625,7 +14625,7 @@ function ProjectDetail({ projectExtId, storage }) {
14625
14625
  }
14626
14626
  )
14627
14627
  ] }),
14628
- /* @__PURE__ */ jsxRuntime.jsx(chunkTX4CIWH5_cjs.ProjectDetailSection, { title: "Usage", children: /* @__PURE__ */ jsxRuntime.jsx(
14628
+ /* @__PURE__ */ jsxRuntime.jsx(chunkJBL4PPEE_cjs.ProjectDetailSection, { title: "Usage", children: /* @__PURE__ */ jsxRuntime.jsx(
14629
14629
  ProjectUsageContent,
14630
14630
  {
14631
14631
  projectExtId: project.external_id,
@@ -14635,7 +14635,7 @@ function ProjectDetail({ projectExtId, storage }) {
14635
14635
  ) }),
14636
14636
  storage,
14637
14637
  /* @__PURE__ */ jsxRuntime.jsx(
14638
- chunkTX4CIWH5_cjs.RenameDialog,
14638
+ chunkJBL4PPEE_cjs.RenameDialog,
14639
14639
  {
14640
14640
  open: renameOpen,
14641
14641
  onClose: () => setRenameOpen(false),
@@ -14652,7 +14652,7 @@ function ProjectDetail({ projectExtId, storage }) {
14652
14652
  function useAutoRefreshPendingProjects() {
14653
14653
  const { data: projects } = react.useProjects();
14654
14654
  const refreshProject = react.useRefreshProject();
14655
- const currentUserExtId = chunkUQAHDGYH_cjs.useSelfExtId();
14655
+ const currentUserExtId = chunkCCSF7RI4_cjs.useSelfExtId();
14656
14656
  const refreshedRef = react$1.useRef(/* @__PURE__ */ new Set());
14657
14657
  react$1.useEffect(() => {
14658
14658
  if (!projects || !currentUserExtId) return;
@@ -14683,7 +14683,7 @@ function ConnectedQuotaDialog({ info, onClose: close }) {
14683
14683
  if (quotaProjectId) void refetchProjects();
14684
14684
  }, [quotaProjectId, refetchProjects]);
14685
14685
  const project = info?.projectExtId ? projects?.find((p) => p.external_id === info.projectExtId) : void 0;
14686
- const addons = project && chunkUQAHDGYH_cjs.isProProject(project) ? project.addons : null;
14686
+ const addons = project && chunkCCSF7RI4_cjs.isProProject(project) ? project.addons : null;
14687
14687
  const handleUpgrade = () => {
14688
14688
  if (info?.projectExtId) {
14689
14689
  requestProjectBillingFocus({ projectExtId: info.projectExtId, openUpgrade: true });
@@ -14719,8 +14719,8 @@ function ConnectedQuotaDialog({ info, onClose: close }) {
14719
14719
  /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, {})
14720
14720
  );
14721
14721
  } else if (addons) {
14722
- const price = `${chunkUQAHDGYH_cjs.formatMoney(addons.ai_block_price_ex_vat_pence, "gbp")} + VAT`;
14723
- const capZero = chunkUQAHDGYH_cjs.isAddonBudgetZero(addons);
14722
+ const price = `${chunkCCSF7RI4_cjs.formatMoney(addons.ai_block_price_ex_vat_pence, "gbp")} + VAT`;
14723
+ const capZero = chunkCCSF7RI4_cjs.isAddonBudgetZero(addons);
14724
14724
  const addAiUsage = /* @__PURE__ */ jsxRuntime.jsxs(ui.Button, { onClick: handleAddAiUsage, "data-testid": "quota-add-ai-usage-button", children: [
14725
14725
  "Add ",
14726
14726
  react.formatGbp(addons.block_ai_gbp),
@@ -14728,7 +14728,7 @@ function ConnectedQuotaDialog({ info, onClose: close }) {
14728
14728
  price
14729
14729
  ] });
14730
14730
  if (capZero || addons.cap_reached) {
14731
- message = capZero ? chunkUQAHDGYH_cjs.ZERO_BUDGET_MESSAGE : chunkUQAHDGYH_cjs.CAP_REACHED_MESSAGE;
14731
+ message = capZero ? chunkCCSF7RI4_cjs.ZERO_BUDGET_MESSAGE : chunkCCSF7RI4_cjs.CAP_REACHED_MESSAGE;
14732
14732
  actions = /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
14733
14733
  addAiUsage,
14734
14734
  /* @__PURE__ */ jsxRuntime.jsx(ui.Button, { variant: "outline", onClick: handleRaiseCap, "data-testid": "quota-raise-cap-button", children: capZero ? "Set cap" : "Raise cap" })
@@ -14741,7 +14741,7 @@ function ConnectedQuotaDialog({ info, onClose: close }) {
14741
14741
  const addAiUsageProject = addAiUsageFor ? projects?.find((p) => p.external_id === addAiUsageFor) : void 0;
14742
14742
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
14743
14743
  /* @__PURE__ */ jsxRuntime.jsx(
14744
- chunkTX4CIWH5_cjs.QuotaExceededDialogView,
14744
+ chunkJBL4PPEE_cjs.QuotaExceededDialogView,
14745
14745
  {
14746
14746
  open,
14747
14747
  onClose: close,
@@ -14838,7 +14838,7 @@ function ConnectedWelcomeDialog({
14838
14838
  }) {
14839
14839
  const currentUser = react.useArbiSession().user;
14840
14840
  const { data: projects } = react.useProjects();
14841
- const balance = chunkUQAHDGYH_cjs.useRewardBalance();
14841
+ const balance = chunkCCSF7RI4_cjs.useRewardBalance();
14842
14842
  const [showPlans, setShowPlans] = react$1.useState(false);
14843
14843
  const [showInvite, setShowInvite] = react$1.useState(false);
14844
14844
  const [selectedProjectId, setSelectedProjectId] = react$1.useState(null);
@@ -14859,21 +14859,21 @@ function ConnectedWelcomeDialog({
14859
14859
  return /* @__PURE__ */ jsxRuntime.jsx(ChangePlanDialog, { project: selectedProject, open, onOpenChange: handleOpenChange });
14860
14860
  }
14861
14861
  if (showInvite) {
14862
- return /* @__PURE__ */ jsxRuntime.jsx(chunkTX4CIWH5_cjs.InviteContactsDialog, { open, onClose: () => handleOpenChange(false), children: /* @__PURE__ */ jsxRuntime.jsx(
14862
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkJBL4PPEE_cjs.InviteContactsDialog, { open, onClose: () => handleOpenChange(false), children: /* @__PURE__ */ jsxRuntime.jsx(
14863
14863
  ConnectedAddContacts,
14864
14864
  {
14865
14865
  onClose: () => handleOpenChange(false),
14866
- rewardAmount: chunkUQAHDGYH_cjs.formatMoney(REFERRAL_OFFER.amount, REFERRAL_OFFER.currency)
14866
+ rewardAmount: chunkCCSF7RI4_cjs.formatMoney(REFERRAL_OFFER.amount, REFERRAL_OFFER.currency)
14867
14867
  }
14868
14868
  ) });
14869
14869
  }
14870
14870
  const firstName = currentUser?.given_name;
14871
14871
  const hasBalance = balance !== null;
14872
- const quotaItems = chunkUQAHDGYH_cjs.getQuotaItems(selectedProject.quotas);
14873
- const resetTs = chunkUQAHDGYH_cjs.aiUsageResetTimestamp(selectedProject);
14874
- const aiUsageHint = resetTs ? `resets ${chunkUQAHDGYH_cjs.formatResetDate(resetTs)}` : void 0;
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
14875
  return /* @__PURE__ */ jsxRuntime.jsx(
14876
- chunkTX4CIWH5_cjs.WelcomeDialog,
14876
+ chunkJBL4PPEE_cjs.WelcomeDialog,
14877
14877
  {
14878
14878
  open,
14879
14879
  onClose: () => handleOpenChange(false),
@@ -14888,7 +14888,7 @@ function ConnectedWelcomeDialog({
14888
14888
  onChange: setSelectedProjectId
14889
14889
  }
14890
14890
  ),
14891
- planBadge: /* @__PURE__ */ jsxRuntime.jsx(chunkTX4CIWH5_cjs.PlanBadge, { ...chunkUQAHDGYH_cjs.planBadgeView(selectedProject), size: "md" }),
14891
+ planBadge: /* @__PURE__ */ jsxRuntime.jsx(chunkJBL4PPEE_cjs.PlanBadge, { ...chunkCCSF7RI4_cjs.planBadgeView(selectedProject), size: "md" }),
14892
14892
  quotas: quotaItems.map((q) => ({
14893
14893
  key: q.key,
14894
14894
  icon: q.icon,
@@ -14898,9 +14898,9 @@ function ConnectedWelcomeDialog({
14898
14898
  hint: q.key === "ai-usage" ? aiUsageHint : void 0
14899
14899
  })),
14900
14900
  onSeePlans: () => setShowPlans(true),
14901
- referralOfferLabel: `${chunkUQAHDGYH_cjs.formatMoney(REFERRAL_OFFER.amount, REFERRAL_OFFER.currency)} off your plan`,
14901
+ referralOfferLabel: `${chunkCCSF7RI4_cjs.formatMoney(REFERRAL_OFFER.amount, REFERRAL_OFFER.currency)} off your plan`,
14902
14902
  onInvite: () => setShowInvite(true),
14903
- rewardBalanceLabel: hasBalance ? chunkUQAHDGYH_cjs.formatMoney(balance.amount, balance.currency) : void 0
14903
+ rewardBalanceLabel: hasBalance ? chunkCCSF7RI4_cjs.formatMoney(balance.amount, balance.currency) : void 0
14904
14904
  }
14905
14905
  );
14906
14906
  }
@@ -14937,7 +14937,7 @@ function WorkspaceCardsView({
14937
14937
  createDisabledReason,
14938
14938
  workspaceState
14939
14939
  }) {
14940
- const { stripeEnabled } = chunkUQAHDGYH_cjs.useBillingSupport();
14940
+ const { stripeEnabled } = chunkCCSF7RI4_cjs.useBillingSupport();
14941
14941
  const { hrefFor } = chunkT6GRWWRY_cjs.useBlocksEnvironment();
14942
14942
  const workspaceLabel = ui.getEntityLabel("WORKSPACE");
14943
14943
  const projectLabel = ui.getEntityLabel("PROJECT").toLowerCase();
@@ -14957,7 +14957,7 @@ function WorkspaceCardsView({
14957
14957
  }
14958
14958
  return /* @__PURE__ */ jsxRuntime.jsx(chunk2GSZG6KA_cjs.WorkspaceList, { testId: "workspace-cards-list", children: groups.map((group) => {
14959
14959
  const project = projects.find((p) => p.external_id === group.projectExtId);
14960
- const { breakdown, readout } = chunkUQAHDGYH_cjs.projectGroupBilling(project, {
14960
+ const { breakdown, readout } = chunkCCSF7RI4_cjs.projectGroupBilling(project, {
14961
14961
  isOwned: group.isOwned,
14962
14962
  stripeEnabled
14963
14963
  });
@@ -15120,7 +15120,7 @@ function useConnectedWorkspaceList({
15120
15120
  [selfId, pinned]
15121
15121
  );
15122
15122
  const filtered = react$1.useMemo(
15123
- () => chunkTX4CIWH5_cjs.applyTriStateFilters(workspaces, filterMap, attributesOf),
15123
+ () => chunkJBL4PPEE_cjs.applyTriStateFilters(workspaces, filterMap, attributesOf),
15124
15124
  [workspaces, filterMap, attributesOf]
15125
15125
  );
15126
15126
  const groups = react$1.useMemo(
@@ -15186,7 +15186,7 @@ function useConnectedWorkspaceList({
15186
15186
  };
15187
15187
  }
15188
15188
  var WorkspaceTableView = react$1.lazy(
15189
- () => import('../WorkspaceTableView-4DGONK5A.cjs').then((m) => ({ default: m.WorkspaceTableView }))
15189
+ () => import('../WorkspaceTableView-DHMCJRC6.cjs').then((m) => ({ default: m.WorkspaceTableView }))
15190
15190
  );
15191
15191
  var WORKSPACES_TAB_ID = "workspaces";
15192
15192
  var defaultRenderMember2 = (user, size) => {
@@ -15239,7 +15239,7 @@ function ConnectedWorkspaceList({
15239
15239
  else void openWorkspace(workspace.external_id, { name: workspace.name });
15240
15240
  };
15241
15241
  const createDisabledReason = list.canCreateProjects === false ? react.PROJECT_CREATION_DENIED_REASON : void 0;
15242
- if (list.isLoading) return /* @__PURE__ */ jsxRuntime.jsx(chunk3VCVMW5X_cjs.LoadingIndicator, { message: "Loading workspaces..." });
15242
+ if (list.isLoading) return /* @__PURE__ */ jsxRuntime.jsx(chunk4RJPTXUQ_cjs.LoadingIndicator, { message: "Loading workspaces..." });
15243
15243
  if (list.error) {
15244
15244
  return /* @__PURE__ */ jsxRuntime.jsx(
15245
15245
  chunkOM5IVNEW_cjs.HomeLoadError,
@@ -15264,7 +15264,7 @@ function ConnectedWorkspaceList({
15264
15264
  ] });
15265
15265
  return /* @__PURE__ */ jsxRuntime.jsxs(chunkOM5IVNEW_cjs.HomeFrame, { children: [
15266
15266
  /* @__PURE__ */ jsxRuntime.jsx(
15267
- chunkMEMWZ72Y_cjs.TabHeader,
15267
+ chunkWVEFRQSW_cjs.TabHeader,
15268
15268
  {
15269
15269
  testId: "home-header",
15270
15270
  tabs: [
@@ -15312,7 +15312,7 @@ function ConnectedWorkspaceList({
15312
15312
  workspaceState
15313
15313
  }
15314
15314
  ) })
15315
- ) : /* @__PURE__ */ jsxRuntime.jsx(react$1.Suspense, { fallback: /* @__PURE__ */ jsxRuntime.jsx(chunk3VCVMW5X_cjs.LoadingIndicator, { message: "Loading grid..." }), children: /* @__PURE__ */ jsxRuntime.jsx(chunkOM5IVNEW_cjs.HomeCenteredColumn, { children: /* @__PURE__ */ jsxRuntime.jsx(
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(
15316
15316
  WorkspaceTableView,
15317
15317
  {
15318
15318
  list,
@@ -15385,7 +15385,7 @@ function ProjectsListPage({
15385
15385
  };
15386
15386
  const { openProject } = chunkT6GRWWRY_cjs.useBlocksEnvironment();
15387
15387
  const [search, setSearch] = react$1.useState("");
15388
- const { projects, isLoading } = chunkPJW2IOPZ_cjs.useProjectSummaries();
15388
+ const { projects, isLoading } = chunkX3JJTHQ4_cjs.useProjectSummaries();
15389
15389
  const rows = react$1.useMemo(() => {
15390
15390
  const q = search.trim().toLowerCase();
15391
15391
  if (!q) return projects;
@@ -15456,7 +15456,7 @@ function ProjectsListPage({
15456
15456
  }
15457
15457
  ),
15458
15458
  /* @__PURE__ */ jsxRuntime.jsx(
15459
- chunk3VCVMW5X_cjs.Toolbar,
15459
+ chunk4RJPTXUQ_cjs.Toolbar,
15460
15460
  {
15461
15461
  search,
15462
15462
  onSearch: setSearch,
@@ -15518,7 +15518,7 @@ function ProjectsPanel({
15518
15518
  const { data: projects } = react.useProjects();
15519
15519
  const canCreateProjects = react.useCanCreateProjects();
15520
15520
  const { userId } = chunkKGAYUFXD_cjs.useConnectedWorkspace();
15521
- const { stripeEnabled } = chunkUQAHDGYH_cjs.useBillingSupport();
15521
+ const { stripeEnabled } = chunkCCSF7RI4_cjs.useBillingSupport();
15522
15522
  const billingPortal = useOpenBillingPortal();
15523
15523
  const [newProjectOpen, setNewProjectOpen] = react$1.useState(false);
15524
15524
  useAutoRefreshPendingProjects();
@@ -15545,15 +15545,15 @@ function ProjectsPanel({
15545
15545
  [ownedCount, tabs, projects]
15546
15546
  );
15547
15547
  const paidProject = projects?.find(isPaid);
15548
- const panel = /* @__PURE__ */ jsxRuntime.jsxs(chunkTX4CIWH5_cjs.PanelFrame, { className, testId: "projects-panel", children: [
15549
- /* @__PURE__ */ jsxRuntime.jsx(chunkTX4CIWH5_cjs.DraggableHeader, { children: /* @__PURE__ */ jsxRuntime.jsx(
15550
- chunkMEMWZ72Y_cjs.TabHeader,
15548
+ const panel = /* @__PURE__ */ jsxRuntime.jsxs(chunkJBL4PPEE_cjs.PanelFrame, { className, testId: "projects-panel", children: [
15549
+ /* @__PURE__ */ jsxRuntime.jsx(chunkJBL4PPEE_cjs.DraggableHeader, { children: /* @__PURE__ */ jsxRuntime.jsx(
15550
+ chunkWVEFRQSW_cjs.TabHeader,
15551
15551
  {
15552
15552
  tabs: headerTabs,
15553
15553
  activeTabId: activeProjectId ?? PROJECTS_BASE_TAB_ID,
15554
15554
  onTabChange: (id) => tabs.onSelect(id === PROJECTS_BASE_TAB_ID ? null : id),
15555
15555
  afterTabs: (isCompact) => /* @__PURE__ */ jsxRuntime.jsx(
15556
- chunkTX4CIWH5_cjs.PanelAddButton,
15556
+ chunkJBL4PPEE_cjs.PanelAddButton,
15557
15557
  {
15558
15558
  label: `New ${ui.entityNoun("PROJECT")}`,
15559
15559
  onClick: () => setNewProjectOpen(true),
@@ -15568,15 +15568,15 @@ function ProjectsPanel({
15568
15568
  compactBreakpoint: 360
15569
15569
  }
15570
15570
  ) }),
15571
- /* @__PURE__ */ jsxRuntime.jsx(chunkTX4CIWH5_cjs.PanelFrameBody, { children: activeProjectId ? /* @__PURE__ */ jsxRuntime.jsx(chunkTX4CIWH5_cjs.PanelScroll, { children: /* @__PURE__ */ jsxRuntime.jsx(
15571
+ /* @__PURE__ */ jsxRuntime.jsx(chunkJBL4PPEE_cjs.PanelFrameBody, { children: activeProjectId ? /* @__PURE__ */ jsxRuntime.jsx(chunkJBL4PPEE_cjs.PanelScroll, { children: /* @__PURE__ */ jsxRuntime.jsx(
15572
15572
  ProjectDetail,
15573
15573
  {
15574
15574
  projectExtId: activeProjectId,
15575
15575
  storage: projectStorage?.(activeProjectId)
15576
15576
  }
15577
- ) }) : /* @__PURE__ */ jsxRuntime.jsxs(chunkTX4CIWH5_cjs.PanelScroll, { variant: "padded", children: [
15577
+ ) }) : /* @__PURE__ */ jsxRuntime.jsxs(chunkJBL4PPEE_cjs.PanelScroll, { variant: "padded", children: [
15578
15578
  /* @__PURE__ */ jsxRuntime.jsx(ProjectsTable, {}),
15579
- stripeEnabled && paidProject && /* @__PURE__ */ jsxRuntime.jsx(chunkTX4CIWH5_cjs.PanelActionsRow, { children: /* @__PURE__ */ jsxRuntime.jsxs(
15579
+ stripeEnabled && paidProject && /* @__PURE__ */ jsxRuntime.jsx(chunkJBL4PPEE_cjs.PanelActionsRow, { children: /* @__PURE__ */ jsxRuntime.jsxs(
15580
15580
  ui.Button,
15581
15581
  {
15582
15582
  onClick: () => billingPortal.open(paidProject.external_id),
@@ -15644,7 +15644,7 @@ function ProjectDetailsForm({
15644
15644
  const labels = { ...DEFAULT_PROJECT_DETAILS_LABELS, ...given };
15645
15645
  const { notify: notify16 } = chunkT6GRWWRY_cjs.useBlocksEnvironment();
15646
15646
  const update = react.useUpdateProjectFields();
15647
- const workspace = chunkPJW2IOPZ_cjs.primaryProjectWorkspace(project);
15647
+ const workspace = chunkX3JJTHQ4_cjs.primaryProjectWorkspace(project);
15648
15648
  const { data: members = [] } = react.useWorkspaceUsers(workspace?.id);
15649
15649
  const people = members.filter((m) => !m.user.external_id.startsWith("agt-"));
15650
15650
  const currency = project.budget?.currency ?? "GBP";
@@ -15769,7 +15769,7 @@ var COMPACT_BELOW = 132;
15769
15769
  var NO_DOCUMENTS = [];
15770
15770
  function useFilesWorkspace() {
15771
15771
  const { workspaceId, userId, live } = chunkKGAYUFXD_cjs.useConnectedWorkspace();
15772
- const { members, role } = chunkONML6J5O_cjs.useConnectedWorkspaceRole();
15772
+ const { members, role } = chunkUDMII47W_cjs.useConnectedWorkspaceRole();
15773
15773
  const { data: workspaces } = react.useWorkspaces({ enabled: live });
15774
15774
  const workspaceName = workspaces?.find((w) => w.external_id === workspaceId)?.name;
15775
15775
  return {
@@ -16529,7 +16529,7 @@ function ProjectChronology({
16529
16529
  })),
16530
16530
  [facts]
16531
16531
  );
16532
- return /* @__PURE__ */ jsxRuntime.jsx(ui.Card, { className: "h-[min(70dvh,640px)] overflow-hidden", "data-testid": testId, children: isLoading ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "p-4 text-sm text-muted-foreground", children: loading }) : /* @__PURE__ */ jsxRuntime.jsx(chunkLMKEDVEB_cjs.FactsGanttPane, { items, testId: `${testId}-gantt`, labels: { ganttEmpty: empty } }) });
16532
+ return /* @__PURE__ */ jsxRuntime.jsx(ui.Card, { className: "h-[min(70dvh,640px)] overflow-hidden", "data-testid": testId, children: isLoading ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "p-4 text-sm text-muted-foreground", children: loading }) : /* @__PURE__ */ jsxRuntime.jsx(chunkF73EZQT4_cjs.FactsGanttPane, { items, testId: `${testId}-gantt`, labels: { ganttEmpty: empty } }) });
16533
16533
  }
16534
16534
  function ProjectThreads({
16535
16535
  projectId,
@@ -16703,11 +16703,11 @@ function ConnectedProjectPage({
16703
16703
  figures: { ...DEFAULT_PROJECT_PAGE_LABELS.figures, ...given?.figures },
16704
16704
  threads: { ...DEFAULT_PROJECT_PAGE_LABELS.threads, ...given?.threads }
16705
16705
  };
16706
- const { project, usage, isLoading } = chunkPJW2IOPZ_cjs.useProjectSummary(projectId);
16706
+ const { project, usage, isLoading } = chunkX3JJTHQ4_cjs.useProjectSummary(projectId);
16707
16707
  const { workspaceId } = chunkKGAYUFXD_cjs.useConnectedWorkspace();
16708
16708
  const { notify: notify16 } = chunkT6GRWWRY_cjs.useBlocksEnvironment();
16709
- const selectWorkspace = chunkXGJU2Y5N_cjs.useSelectWorkspace();
16710
- const workspace = project ? chunkPJW2IOPZ_cjs.primaryProjectWorkspace(project) : void 0;
16709
+ const selectWorkspace = chunkLBKTTQUR_cjs.useSelectWorkspace();
16710
+ const workspace = project ? chunkX3JJTHQ4_cjs.primaryProjectWorkspace(project) : void 0;
16711
16711
  const open = !!workspace && workspace.id === workspaceId;
16712
16712
  react$1.useEffect(() => {
16713
16713
  if (!workspace || workspace.id === workspaceId) return;
@@ -17602,7 +17602,7 @@ function recentConversations(conversations) {
17602
17602
  return [...conversations].sort((a, b) => time(b.updated_at) - time(a.updated_at)).slice(0, RECENT_ROWS).map((c) => ({
17603
17603
  id: c.external_id,
17604
17604
  title: c.title?.trim() || "Untitled thread",
17605
- subtitle: c.status ? [chunkXPB6KMPY_cjs.STATUS_LABELS[chunkXPB6KMPY_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"}`,
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"}`,
17606
17606
  time: timeAndDate(c.updated_at)
17607
17607
  }));
17608
17608
  }
@@ -18097,7 +18097,7 @@ function ConnectedSearchPage({
18097
18097
  );
18098
18098
  const hasResults = searched && results.length > 0;
18099
18099
  return /* @__PURE__ */ jsxRuntime.jsxs(chunkGOWXP5KT_cjs.SearchPageFrame, { isEmbedded: embedded, children: [
18100
- !embedded && /* @__PURE__ */ jsxRuntime.jsx(chunkGOWXP5KT_cjs.SearchPageHeader, { children: /* @__PURE__ */ jsxRuntime.jsx(chunkMEMWZ72Y_cjs.TabHeader, { tabs, activeTabId: "search", onTabChange: () => {
18100
+ !embedded && /* @__PURE__ */ jsxRuntime.jsx(chunkGOWXP5KT_cjs.SearchPageHeader, { children: /* @__PURE__ */ jsxRuntime.jsx(chunkWVEFRQSW_cjs.TabHeader, { tabs, activeTabId: "search", onTabChange: () => {
18101
18101
  }, variant: "underline" }) }),
18102
18102
  /* @__PURE__ */ jsxRuntime.jsx(
18103
18103
  chunkGOWXP5KT_cjs.ApplyLabelDialog,
@@ -19563,7 +19563,7 @@ function ConnectedMailbox({
19563
19563
  return /* @__PURE__ */ jsxRuntime.jsxs("section", { className: "flex h-full min-h-0 flex-col bg-background", "aria-label": "Mail", children: [
19564
19564
  /* @__PURE__ */ jsxRuntime.jsxs("header", { className: "sticky top-0 z-10 bg-background", children: [
19565
19565
  /* @__PURE__ */ jsxRuntime.jsx(
19566
- chunkMEMWZ72Y_cjs.TabHeader,
19566
+ chunkWVEFRQSW_cjs.TabHeader,
19567
19567
  {
19568
19568
  testId: "mail-tab-header",
19569
19569
  tabs: [
@@ -21360,7 +21360,7 @@ function EventEditorDialog({
21360
21360
  const { notify: notify16, runtimeConfig } = chunkT6GRWWRY_cjs.useBlocksEnvironment();
21361
21361
  const attachmentDocuments = documents.map((document2) => ({
21362
21362
  doc_id: document2.external_id,
21363
- title: chunkONML6J5O_cjs.toWorkflowFieldDocument(document2).title,
21363
+ title: chunkUDMII47W_cjs.toWorkflowFieldDocument(document2).title,
21364
21364
  url: chunk725OETK3_cjs.buildDeepLinkUrl(
21365
21365
  { workspaceId: workspaceId ?? void 0, documentId: document2.external_id },
21366
21366
  runtimeConfig.deploymentDomain
@@ -25739,7 +25739,7 @@ function useDocumentFilters({
25739
25739
  [documentFilters]
25740
25740
  );
25741
25741
  const baseFilteredDocuments = react$1.useMemo(
25742
- () => chunkTX4CIWH5_cjs.applyInvertedIndexFilter(documents, documentFilters, invertedIndex, getDocId),
25742
+ () => chunkJBL4PPEE_cjs.applyInvertedIndexFilter(documents, documentFilters, invertedIndex, getDocId),
25743
25743
  [documents, documentFilters, invertedIndex]
25744
25744
  );
25745
25745
  const filteredDocuments = react$1.useMemo(() => {
@@ -26324,7 +26324,7 @@ function useBatchCompleteToasts() {
26324
26324
  }
26325
26325
  }, AI_FIELDS_NOTICE_WINDOW_MS);
26326
26326
  } else if (message.batch_type === "entity_extract") {
26327
- say(`${chunk3VCVMW5X_cjs.entitiesPhrase()} extracted from ${chunk3VCVMW5X_cjs.documentCount(docIds.length)}`, "success", {
26327
+ say(`${chunk4RJPTXUQ_cjs.entitiesPhrase()} extracted from ${chunk4RJPTXUQ_cjs.documentCount(docIds.length)}`, "success", {
26328
26328
  ...openTags && { action: { label: "View", onClick: openTags } }
26329
26329
  });
26330
26330
  } else if (message.batch_type === "upload") {
@@ -26987,7 +26987,7 @@ function ConnectedFieldsManager({
26987
26987
  ]
26988
26988
  ];
26989
26989
  const tabHeader = /* @__PURE__ */ jsxRuntime.jsx(
26990
- chunkMEMWZ72Y_cjs.TabHeader,
26990
+ chunkWVEFRQSW_cjs.TabHeader,
26991
26991
  {
26992
26992
  tabs,
26993
26993
  activeTabId: activeKind,
@@ -27027,7 +27027,7 @@ function ConnectedFieldsManager({
27027
27027
  ) });
27028
27028
  }
27029
27029
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col h-full", children: [
27030
- /* @__PURE__ */ jsxRuntime.jsxs(chunkTX4CIWH5_cjs.DraggableHeader, { children: [
27030
+ /* @__PURE__ */ jsxRuntime.jsxs(chunkJBL4PPEE_cjs.DraggableHeader, { children: [
27031
27031
  /* @__PURE__ */ jsxRuntime.jsx(chunkVGNCU5JJ_cjs.FieldsManagerTitle, { title, className: "px-4 pt-3.5 pb-2" }),
27032
27032
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "px-3", children: tabHeader })
27033
27033
  ] }),
@@ -27817,15 +27817,15 @@ var TABLET_TABLE_BELOW = 860;
27817
27817
  var TABLET_VIEWPORT_BELOW = 1100;
27818
27818
  var NO_CONVERSATION_DOCUMENTS = [];
27819
27819
  var DocumentReviewCard = react$1.lazy(
27820
- () => import('../DocumentReviewCard-YOZMWE33.cjs').then((module) => ({ default: module.DocumentReviewCard }))
27820
+ () => import('../DocumentReviewCard-VFNMJSK7.cjs').then((module) => ({ default: module.DocumentReviewCard }))
27821
27821
  );
27822
27822
  var ConnectedDocumentViewer = react$1.lazy(
27823
- () => import('../ConnectedDocumentViewer-6SFJWKXN.cjs').then((module) => ({
27823
+ () => import('../ConnectedDocumentViewer-FGQ27H4B.cjs').then((module) => ({
27824
27824
  default: module.ConnectedDocumentViewer
27825
27825
  }))
27826
27826
  );
27827
27827
  function defaultReviewCard(props) {
27828
- return /* @__PURE__ */ jsxRuntime.jsx(react$1.Suspense, { fallback: /* @__PURE__ */ jsxRuntime.jsx(chunk3VCVMW5X_cjs.LoadingIndicator, { message: "Loading document viewer..." }), children: /* @__PURE__ */ jsxRuntime.jsx(DocumentReviewCard, { ...props }, `navigator-${props.currentDocument.external_id}`) });
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}`) });
27829
27829
  }
27830
27830
  function ConnectedFilesPage({
27831
27831
  isModal = false,
@@ -27871,7 +27871,7 @@ function ConnectedFilesPage({
27871
27871
  const deleteDocuments = react.useDeleteDocuments();
27872
27872
  const isDocumentsPending = isLoading && documents.length === 0;
27873
27873
  const { workspaceId, userId, live } = chunkKGAYUFXD_cjs.useConnectedWorkspace();
27874
- const { role, members } = chunkONML6J5O_cjs.useConnectedWorkspaceRole();
27874
+ const { role, members } = chunkUDMII47W_cjs.useConnectedWorkspaceRole();
27875
27875
  const { data: workspaces } = react.useWorkspaces({ enabled: live });
27876
27876
  const workspaceName = workspaces?.find((w) => w.external_id === workspaceId)?.name;
27877
27877
  const isMember = role != null;
@@ -28305,7 +28305,7 @@ function ConnectedFilesPage({
28305
28305
  ),
28306
28306
  /* @__PURE__ */ jsxRuntime.jsxs(chunkVGNCU5JJ_cjs.FilesPageHeader, { children: [
28307
28307
  /* @__PURE__ */ jsxRuntime.jsx(
28308
- chunkMEMWZ72Y_cjs.TabHeader,
28308
+ chunkWVEFRQSW_cjs.TabHeader,
28309
28309
  {
28310
28310
  testId: "documents-tab-header",
28311
28311
  tabs: [
@@ -28361,7 +28361,7 @@ function ConnectedFilesPage({
28361
28361
  viewMode === "grid" ? (
28362
28362
  // ‹ n / N › over the table's displayed rows; a step opens the document.
28363
28363
  /* @__PURE__ */ jsxRuntime.jsx(
28364
- chunk3VCVMW5X_cjs.GridRowNavigator,
28364
+ chunk4RJPTXUQ_cjs.GridRowNavigator,
28365
28365
  {
28366
28366
  gridApi,
28367
28367
  selectedId: viewingDocumentId ?? selectedDocumentIds[0] ?? null,
@@ -29505,7 +29505,7 @@ function ProcessingSection({
29505
29505
  onDelete
29506
29506
  }) {
29507
29507
  return /* @__PURE__ */ jsxRuntime.jsx(chunkVGNCU5JJ_cjs.TaskSection, { title, count: count2, status, tooltip: SECTION_TOOLTIPS[status], children: /* @__PURE__ */ jsxRuntime.jsx(
29508
- chunkXPB6KMPY_cjs.UploadTaskList,
29508
+ chunkHVOPUYAG_cjs.UploadTaskList,
29509
29509
  {
29510
29510
  tasks,
29511
29511
  title: "",
@@ -31145,7 +31145,7 @@ function ConnectedRecipientSelector({
31145
31145
  setSelectorOpen(false);
31146
31146
  setSearchValue("");
31147
31147
  };
31148
- const identity = (user) => /* @__PURE__ */ jsxRuntime.jsx(chunkLZROSRGK_cjs.ConnectedUserEntity, { user, size: "xs", variant: "pill", showPresence: true, interactive: false });
31148
+ const identity = (user) => /* @__PURE__ */ jsxRuntime.jsx(chunk3X37I6QE_cjs.ConnectedUserEntity, { user, size: "xs", variant: "pill", showPresence: true, interactive: false });
31149
31149
  const selected = selectedRecipients.flatMap((id) => {
31150
31150
  const user = getUserById(id);
31151
31151
  if (!user) return [];
@@ -31389,7 +31389,7 @@ function renderMessengerUser(user, variant) {
31389
31389
  switch (variant) {
31390
31390
  case "avatar":
31391
31391
  return /* @__PURE__ */ jsxRuntime.jsx(
31392
- chunkLZROSRGK_cjs.ConnectedUserEntity,
31392
+ chunk3X37I6QE_cjs.ConnectedUserEntity,
31393
31393
  {
31394
31394
  user,
31395
31395
  size: "lg",
@@ -31400,7 +31400,7 @@ function renderMessengerUser(user, variant) {
31400
31400
  );
31401
31401
  case "small-avatar":
31402
31402
  return /* @__PURE__ */ jsxRuntime.jsx(
31403
- chunkLZROSRGK_cjs.ConnectedUserEntity,
31403
+ chunk3X37I6QE_cjs.ConnectedUserEntity,
31404
31404
  {
31405
31405
  user,
31406
31406
  size: "sm",
@@ -31410,13 +31410,13 @@ function renderMessengerUser(user, variant) {
31410
31410
  }
31411
31411
  );
31412
31412
  case "author":
31413
- return /* @__PURE__ */ jsxRuntime.jsx(chunkLZROSRGK_cjs.ConnectedUserEntity, { user, size: "sm", variant: "pill" });
31413
+ return /* @__PURE__ */ jsxRuntime.jsx(chunk3X37I6QE_cjs.ConnectedUserEntity, { user, size: "sm", variant: "pill" });
31414
31414
  case "member":
31415
- return /* @__PURE__ */ jsxRuntime.jsx(chunkLZROSRGK_cjs.ConnectedUserEntity, { user, size: "sm", variant: "pill", interactive: false });
31415
+ return /* @__PURE__ */ jsxRuntime.jsx(chunk3X37I6QE_cjs.ConnectedUserEntity, { user, size: "sm", variant: "pill", interactive: false });
31416
31416
  }
31417
31417
  }
31418
31418
  var renderMessageBody = (text2, context) => /* @__PURE__ */ jsxRuntime.jsx(ConnectedChatMessageBody, { text: text2, workspaceId: context.workspaceId });
31419
- var ThreadHistory = (props) => /* @__PURE__ */ jsxRuntime.jsx(chunk6SWK5QCT_cjs.ConnectedCallChatHistory, { ...props });
31419
+ var ThreadHistory = (props) => /* @__PURE__ */ jsxRuntime.jsx(chunk33PWCTND_cjs.ConnectedCallChatHistory, { ...props });
31420
31420
  function ConnectedPeerActions({ peer, addPeople }) {
31421
31421
  const [accessOpen, setAccessOpen] = react$1.useState(false);
31422
31422
  const [grantOpen, setGrantOpen] = react$1.useState(false);
@@ -31430,8 +31430,8 @@ function ConnectedPeerActions({ peer, addPeople }) {
31430
31430
  )
31431
31431
  ];
31432
31432
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
31433
- !ui.isAgent(peer) && /* @__PURE__ */ jsxRuntime.jsx(chunk6SWK5QCT_cjs.DmCallButton, { peer }),
31434
- !ui.isAgent(peer) && /* @__PURE__ */ jsxRuntime.jsx(chunk6SWK5QCT_cjs.ScheduleCallButton, { peer }),
31433
+ !ui.isAgent(peer) && /* @__PURE__ */ jsxRuntime.jsx(chunk33PWCTND_cjs.DmCallButton, { peer }),
31434
+ !ui.isAgent(peer) && /* @__PURE__ */ jsxRuntime.jsx(chunk33PWCTND_cjs.ScheduleCallButton, { peer }),
31435
31435
  /* @__PURE__ */ jsxRuntime.jsx(
31436
31436
  ConnectedContactMenu,
31437
31437
  {
@@ -31456,14 +31456,14 @@ function ConnectedPeerActions({ peer, addPeople }) {
31456
31456
  }
31457
31457
  var fullDirectActions = (peer, { addPeople }) => /* @__PURE__ */ jsxRuntime.jsx(ConnectedPeerActions, { peer, addPeople });
31458
31458
  var fullGroupActions = (chat, title) => /* @__PURE__ */ jsxRuntime.jsx(
31459
- chunk6SWK5QCT_cjs.GroupCallButton,
31459
+ chunk33PWCTND_cjs.GroupCallButton,
31460
31460
  {
31461
31461
  chatExtId: chat.external_id,
31462
31462
  title,
31463
31463
  members: chat.members.map((m) => m.user)
31464
31464
  }
31465
31465
  );
31466
- var fullListActions = /* @__PURE__ */ jsxRuntime.jsx(chunk6SWK5QCT_cjs.NewCallChip, {});
31466
+ var fullListActions = /* @__PURE__ */ jsxRuntime.jsx(chunk33PWCTND_cjs.NewCallChip, {});
31467
31467
  function fullMessengerHost(arbi, presence) {
31468
31468
  return {
31469
31469
  renderUser: renderMessengerUser,
@@ -31779,7 +31779,7 @@ function MessengerView({
31779
31779
  }
31780
31780
  );
31781
31781
  if (!activeId && layout === "panel") {
31782
- return /* @__PURE__ */ jsxRuntime.jsxs(chunkTX4CIWH5_cjs.PanelFrame, { testId: "dm-messenger", children: [
31782
+ return /* @__PURE__ */ jsxRuntime.jsxs(chunkJBL4PPEE_cjs.PanelFrame, { testId: "dm-messenger", children: [
31783
31783
  list,
31784
31784
  peoplePicker
31785
31785
  ] });
@@ -31789,7 +31789,7 @@ function MessengerView({
31789
31789
  const presence = activePeer ? host.presenceOf?.(activePeer.external_id) : void 0;
31790
31790
  const threadName = active?.title ?? (activePeer ? react.userDisplayName(activePeer) : null);
31791
31791
  const thread = activeId ? /* @__PURE__ */ jsxRuntime.jsxs(
31792
- chunkTX4CIWH5_cjs.PanelFrame,
31792
+ chunkJBL4PPEE_cjs.PanelFrame,
31793
31793
  {
31794
31794
  testId: isSplit ? "dm-messenger-thread" : "dm-messenger",
31795
31795
  className: isSplit ? "min-w-0 flex-1 bg-card" : void 0,
@@ -31856,7 +31856,7 @@ function MessengerView({
31856
31856
  groupChat.external_id
31857
31857
  ) : null,
31858
31858
  peoplePicker,
31859
- /* @__PURE__ */ jsxRuntime.jsx(chunkTX4CIWH5_cjs.PanelFrameBody, { className: "flex flex-col overflow-visible", children: active ? /* @__PURE__ */ jsxRuntime.jsx(
31859
+ /* @__PURE__ */ jsxRuntime.jsx(chunkJBL4PPEE_cjs.PanelFrameBody, { className: "flex flex-col overflow-visible", children: active ? /* @__PURE__ */ jsxRuntime.jsx(
31860
31860
  ConnectedChatThread,
31861
31861
  {
31862
31862
  chat: active.chat,
@@ -32251,7 +32251,7 @@ function ConnectedConfigForm({ availableModels, ...rest }) {
32251
32251
  ({ value, onChange }) => /* @__PURE__ */ jsxRuntime.jsx(ConnectedModelSelector, { value, onValueChange: onChange, className: "w-full" }),
32252
32252
  []
32253
32253
  );
32254
- return /* @__PURE__ */ jsxRuntime.jsx(chunkXPB6KMPY_cjs.ConfigForm, { ...rest, renderModelSelect: hasModels ? renderModelSelect : void 0 });
32254
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkHVOPUYAG_cjs.ConfigForm, { ...rest, renderModelSelect: hasModels ? renderModelSelect : void 0 });
32255
32255
  }
32256
32256
  function ConnectedAgentConfigForm({ agentExtId, agentName, onSaved }) {
32257
32257
  const { notify: notify16 } = chunkT6GRWWRY_cjs.useBlocksEnvironment();
@@ -32368,7 +32368,7 @@ function ConnectedAuthorizeAgent({ onClose, editAgent }) {
32368
32368
  }, [name, selectedWorkspaces, role, createAgent, addWorkspaceUsers, arbi, notify16]);
32369
32369
  if (editAgent) {
32370
32370
  return /* @__PURE__ */ jsxRuntime.jsx(
32371
- chunkXPB6KMPY_cjs.AgentEditView,
32371
+ chunkHVOPUYAG_cjs.AgentEditView,
32372
32372
  {
32373
32373
  agentName: editAgent.name,
32374
32374
  config: /* @__PURE__ */ jsxRuntime.jsx(
@@ -32384,7 +32384,7 @@ function ConnectedAuthorizeAgent({ onClose, editAgent }) {
32384
32384
  }
32385
32385
  if (view === "main") {
32386
32386
  return /* @__PURE__ */ jsxRuntime.jsx(
32387
- chunkXPB6KMPY_cjs.AgentMainView,
32387
+ chunkHVOPUYAG_cjs.AgentMainView,
32388
32388
  {
32389
32389
  onConnectExternal: () => setView("connect"),
32390
32390
  config: mainAgent ? /* @__PURE__ */ jsxRuntime.jsx(
@@ -32400,11 +32400,11 @@ function ConnectedAuthorizeAgent({ onClose, editAgent }) {
32400
32400
  }
32401
32401
  if (result) {
32402
32402
  return /* @__PURE__ */ jsxRuntime.jsx(
32403
- chunkXPB6KMPY_cjs.AgentCreatedView,
32403
+ chunkHVOPUYAG_cjs.AgentCreatedView,
32404
32404
  {
32405
32405
  email: result.email,
32406
32406
  signingKey: result.signingKey,
32407
- instructions: /* @__PURE__ */ jsxRuntime.jsx(chunkXPB6KMPY_cjs.AgentConnectInstructions, { email: result.email, signingKey: result.signingKey }),
32407
+ instructions: /* @__PURE__ */ jsxRuntime.jsx(chunkHVOPUYAG_cjs.AgentConnectInstructions, { email: result.email, signingKey: result.signingKey }),
32408
32408
  config: /* @__PURE__ */ jsxRuntime.jsx(ConnectedAgentConfigForm, { agentExtId: result.extId, agentName: result.name }),
32409
32409
  isConfigOpen: configOpen,
32410
32410
  onToggleConfig: () => setConfigOpen((v) => !v),
@@ -32413,7 +32413,7 @@ function ConnectedAuthorizeAgent({ onClose, editAgent }) {
32413
32413
  );
32414
32414
  }
32415
32415
  return /* @__PURE__ */ jsxRuntime.jsx(
32416
- chunkXPB6KMPY_cjs.AgentCreateView,
32416
+ chunkHVOPUYAG_cjs.AgentCreateView,
32417
32417
  {
32418
32418
  name,
32419
32419
  onNameChange: setName,
@@ -32469,7 +32469,7 @@ function DeveloperFooter({
32469
32469
  }, [configVersions, configToLoad, parentMessage?.config_ext_id]);
32470
32470
  const hasLoadedConfig = !!loadedConfigId && loadedConfigId !== "default";
32471
32471
  return /* @__PURE__ */ jsxRuntime.jsx(
32472
- chunkTX4CIWH5_cjs.ConfigSwitcherBar,
32472
+ chunkJBL4PPEE_cjs.ConfigSwitcherBar,
32473
32473
  {
32474
32474
  options: options2,
32475
32475
  value: loadedConfigId || "default",
@@ -32738,9 +32738,9 @@ function ConnectedDeveloperConfig({ modeSwitcher } = {}) {
32738
32738
  handleDeleteConfig,
32739
32739
  handleLoadConfig
32740
32740
  } = useDeveloperConfig();
32741
- return /* @__PURE__ */ jsxRuntime.jsxs(chunkTX4CIWH5_cjs.PanelFrame, { testId: "developer-config", children: [
32742
- /* @__PURE__ */ jsxRuntime.jsx(chunkTX4CIWH5_cjs.DraggableHeader, { children: /* @__PURE__ */ jsxRuntime.jsx(
32743
- chunkMEMWZ72Y_cjs.TabHeader,
32741
+ return /* @__PURE__ */ jsxRuntime.jsxs(chunkJBL4PPEE_cjs.PanelFrame, { testId: "developer-config", children: [
32742
+ /* @__PURE__ */ jsxRuntime.jsx(chunkJBL4PPEE_cjs.DraggableHeader, { children: /* @__PURE__ */ jsxRuntime.jsx(
32743
+ chunkWVEFRQSW_cjs.TabHeader,
32744
32744
  {
32745
32745
  tabs: [{ id: "config", label: "Developer Config", icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Code2, { className: "size-4" }) }],
32746
32746
  activeTabId: "config",
@@ -32749,7 +32749,7 @@ function ConnectedDeveloperConfig({ modeSwitcher } = {}) {
32749
32749
  rightContent: modeSwitcher
32750
32750
  }
32751
32751
  ) }),
32752
- /* @__PURE__ */ jsxRuntime.jsx(chunkTX4CIWH5_cjs.PanelFrameBody, { className: "overflow-auto p-4", children: configSchema ? /* @__PURE__ */ jsxRuntime.jsx(
32752
+ /* @__PURE__ */ jsxRuntime.jsx(chunkJBL4PPEE_cjs.PanelFrameBody, { className: "overflow-auto p-4", children: configSchema ? /* @__PURE__ */ jsxRuntime.jsx(
32753
32753
  ConnectedConfigForm,
32754
32754
  {
32755
32755
  schema: configSchema,
@@ -32757,7 +32757,7 @@ function ConnectedDeveloperConfig({ modeSwitcher } = {}) {
32757
32757
  onChange: handleConfigChange,
32758
32758
  availableModels: availableModels?.models
32759
32759
  }
32760
- ) : /* @__PURE__ */ jsxRuntime.jsx(chunkTX4CIWH5_cjs.PanelNote, { children: "Loading configuration schema..." }) }),
32760
+ ) : /* @__PURE__ */ jsxRuntime.jsx(chunkJBL4PPEE_cjs.PanelNote, { children: "Loading configuration schema..." }) }),
32761
32761
  /* @__PURE__ */ jsxRuntime.jsx(
32762
32762
  DeveloperFooter,
32763
32763
  {
@@ -33230,7 +33230,7 @@ function ConnectedAccountCluster({
33230
33230
  }
33231
33231
  );
33232
33232
  }
33233
- var gbp3 = (pence) => chunkUQAHDGYH_cjs.formatMoney(pence, "gbp");
33233
+ var gbp3 = (pence) => chunkCCSF7RI4_cjs.formatMoney(pence, "gbp");
33234
33234
  function addonArrivalMessage(addons, added) {
33235
33235
  const parts = [];
33236
33236
  if (added.ai > 0) parts.push(`${react.formatGbp(added.ai * addons.block_ai_gbp)} of AI usage`);
@@ -33577,7 +33577,7 @@ function ConnectedAppRuntime({
33577
33577
  prefetch
33578
33578
  }) {
33579
33579
  const on = (effect) => effects[effect] !== false;
33580
- const { stripeEnabled } = chunkUQAHDGYH_cjs.useBillingSupport();
33580
+ const { stripeEnabled } = chunkCCSF7RI4_cjs.useBillingSupport();
33581
33581
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
33582
33582
  on("firstLoginRouting") && /* @__PURE__ */ jsxRuntime.jsx(FirstLoginRouting, { onResolve: onFirstLogin }),
33583
33583
  on("releaseStaleModals") && /* @__PURE__ */ jsxRuntime.jsx(ReleaseStaleModals, {}),
@@ -34172,14 +34172,14 @@ var referencesOf = (inputs) => {
34172
34172
  return value?.documents ?? [];
34173
34173
  };
34174
34174
  var PROMPT_BINDINGS = {
34175
- [chunkXPB6KMPY_cjs.GENERATE_IMAGE_ID]: {
34175
+ [chunkHVOPUYAG_cjs.GENERATE_IMAGE_ID]: {
34176
34176
  attachScope: false,
34177
34177
  tools: (inputs) => {
34178
34178
  const aspectRatio = typeof inputs.aspect_ratio === "string" ? inputs.aspect_ratio : "";
34179
34179
  return {
34180
34180
  retrieval_chunk: browser.buildRetrievalChunkTool([]),
34181
34181
  retrieval_full_context: browser.buildRetrievalFullContextTool(referencesOf(inputs)),
34182
- ...aspectRatio && aspectRatio !== chunkXPB6KMPY_cjs.IMAGE_ASPECT_AUTO ? {
34182
+ ...aspectRatio && aspectRatio !== chunkHVOPUYAG_cjs.IMAGE_ASPECT_AUTO ? {
34183
34183
  image_generation: {
34184
34184
  name: "image_generation",
34185
34185
  description: "image generation",
@@ -34200,19 +34200,19 @@ var text = (inputs, name) => {
34200
34200
  function useLaunchWorkflow({ landing: surfaceLanding } = {}) {
34201
34201
  const { data: documents = [] } = react.useDocuments();
34202
34202
  const { data: workspaceTags = [] } = react.useTags();
34203
- const tags = react$1.useMemo(() => chunk4OJGFYB5_cjs.documentScopeLabels(workspaceTags), [workspaceTags]);
34203
+ const tags = react$1.useMemo(() => chunkY6ZNWC7E_cjs.documentScopeLabels(workspaceTags), [workspaceTags]);
34204
34204
  const createTag = react.useCreateTag();
34205
34205
  const updateTag = react.useUpdateTag();
34206
34206
  const generate = react.useGenerateDocTags();
34207
- const { create: createTask } = chunkPJW2IOPZ_cjs.useWorkflowTasks();
34207
+ const { create: createTask } = chunkX3JJTHQ4_cjs.useWorkflowTasks();
34208
34208
  const applyModel = react.useApplyChatModel();
34209
34209
  const session = react.useArbiSessionStore();
34210
34210
  const { notify: notify16, openFiles, openNewConversation } = chunkT6GRWWRY_cjs.useBlocksEnvironment();
34211
34211
  const annotate = react$1.useCallback(
34212
34212
  async ({ inputs, scope }) => {
34213
34213
  const description = text(inputs, "description");
34214
- const name = text(inputs, "name") || chunkXPB6KMPY_cjs.deriveAnnotationName(description);
34215
- const matching = chunk4OJGFYB5_cjs.matchWorkflowScope(documents, scope);
34214
+ const name = text(inputs, "name") || chunkHVOPUYAG_cjs.deriveAnnotationName(description);
34215
+ const matching = chunkY6ZNWC7E_cjs.matchWorkflowScope(documents, scope);
34216
34216
  if (!name || !description || matching.length === 0) return;
34217
34217
  try {
34218
34218
  const existing = tags.find((t) => t.name.toLowerCase() === name.toLowerCase());
@@ -34255,9 +34255,9 @@ function useLaunchWorkflow({ landing: surfaceLanding } = {}) {
34255
34255
  async (launch) => {
34256
34256
  const { workflow, inputs, scope, agentId } = launch;
34257
34257
  if (workflow.run.kind === "operation") {
34258
- if (workflow.id === chunkXPB6KMPY_cjs.ANNOTATE_ID) {
34258
+ if (workflow.id === chunkHVOPUYAG_cjs.ANNOTATE_ID) {
34259
34259
  await annotate(launch);
34260
- chunkXPB6KMPY_cjs.recordWorkflowUse(workflow.id);
34260
+ chunkHVOPUYAG_cjs.recordWorkflowUse(workflow.id);
34261
34261
  return;
34262
34262
  }
34263
34263
  throw new Error(`No host handler for workflow "${workflow.id}"`);
@@ -34267,7 +34267,7 @@ function useLaunchWorkflow({ landing: surfaceLanding } = {}) {
34267
34267
  );
34268
34268
  const prompt = chunk555BS22J_cjs.composeWorkflowPrompt(workflow, inputs, { documentTitles });
34269
34269
  if (!prompt) return;
34270
- chunkXPB6KMPY_cjs.recordWorkflowUse(workflow.id);
34270
+ chunkHVOPUYAG_cjs.recordWorkflowUse(workflow.id);
34271
34271
  if (agentId) {
34272
34272
  try {
34273
34273
  const created = await createTask({
@@ -34312,7 +34312,7 @@ function useLaunchWorkflow({ landing: surfaceLanding } = {}) {
34312
34312
  const binding = PROMPT_BINDINGS[workflow.id];
34313
34313
  if (!inPlace) openNewConversation();
34314
34314
  if (binding?.attachScope !== false && !chunk555BS22J_cjs.isEmptyWorkflowScope(scope)) {
34315
- const ids = chunk4OJGFYB5_cjs.matchWorkflowScope(documents, scope).map((d) => d.external_id);
34315
+ const ids = chunkY6ZNWC7E_cjs.matchWorkflowScope(documents, scope).map((d) => d.external_id);
34316
34316
  if (ids.length > 0) {
34317
34317
  session.setConversationDocuments(
34318
34318
  inPlace ? session.getState().conversationId ?? "new" : "new",
@@ -34347,30 +34347,30 @@ function ConnectedWorkflowStart({
34347
34347
  const onLaunch = useLaunchWorkflow({ landing });
34348
34348
  const { openUpload } = chunkT6GRWWRY_cjs.useBlocksEnvironment();
34349
34349
  const { data: workspaceTags = [] } = react.useTags();
34350
- const tags = react$1.useMemo(() => chunk4OJGFYB5_cjs.documentScopeLabels(workspaceTags), [workspaceTags]);
34350
+ const tags = react$1.useMemo(() => chunkY6ZNWC7E_cjs.documentScopeLabels(workspaceTags), [workspaceTags]);
34351
34351
  const fieldPlaceholder = react$1.useCallback(
34352
34352
  (field, inputs, workflow) => {
34353
- if (workflow.id !== chunkXPB6KMPY_cjs.ANNOTATE_ID || field.name !== "name") return void 0;
34354
- const derived = chunkXPB6KMPY_cjs.deriveAnnotationName(String(inputs.description ?? ""));
34353
+ if (workflow.id !== chunkHVOPUYAG_cjs.ANNOTATE_ID || field.name !== "name") return void 0;
34354
+ const derived = chunkHVOPUYAG_cjs.deriveAnnotationName(String(inputs.description ?? ""));
34355
34355
  return derived ? `Otherwise \u201C${derived}\u201D` : "Taken from the description";
34356
34356
  },
34357
34357
  []
34358
34358
  );
34359
34359
  return /* @__PURE__ */ jsxRuntime.jsx(
34360
- chunkONML6J5O_cjs.ConnectedWorkflowLauncher,
34360
+ chunkUDMII47W_cjs.ConnectedWorkflowLauncher,
34361
34361
  {
34362
34362
  ...rest,
34363
34363
  workflows,
34364
34364
  onLaunch,
34365
- renderIcon: chunkXPB6KMPY_cjs.renderWorkflowIcon,
34365
+ renderIcon: chunkHVOPUYAG_cjs.renderWorkflowIcon,
34366
34366
  onAddFiles: openUpload,
34367
34367
  agentLabels: AGENT_LABELS,
34368
34368
  addFilesAction,
34369
34369
  fieldPlaceholder,
34370
- submitLabel: ({ workflow, matchedCount }) => workflow.id === chunkXPB6KMPY_cjs.ANNOTATE_ID && matchedCount !== null ? `Annotate ${matchedCount} document${matchedCount !== 1 ? "s" : ""}` : void 0,
34370
+ submitLabel: ({ workflow, matchedCount }) => workflow.id === chunkHVOPUYAG_cjs.ANNOTATE_ID && matchedCount !== null ? `Annotate ${matchedCount} document${matchedCount !== 1 ? "s" : ""}` : void 0,
34371
34371
  renderNotice: ({ workflow, inputs }) => {
34372
- if (workflow.id !== chunkXPB6KMPY_cjs.ANNOTATE_ID) return null;
34373
- const name = String(inputs.name ?? "").trim() || chunkXPB6KMPY_cjs.deriveAnnotationName(String(inputs.description ?? ""));
34372
+ if (workflow.id !== chunkHVOPUYAG_cjs.ANNOTATE_ID) return null;
34373
+ const name = String(inputs.name ?? "").trim() || chunkHVOPUYAG_cjs.deriveAnnotationName(String(inputs.description ?? ""));
34374
34374
  const existing = name ? tags.find((t) => t.name.toLowerCase() === name.toLowerCase()) : void 0;
34375
34375
  if (!existing) return null;
34376
34376
  return /* @__PURE__ */ jsxRuntime.jsxs(
@@ -34407,9 +34407,9 @@ function resolveLaunchInputs(workflow, request) {
34407
34407
  return { ...fromContext, ...fromScope, ...request.inputs };
34408
34408
  }
34409
34409
  function useWorkflowLaunch() {
34410
- const { skills } = chunkPJW2IOPZ_cjs.useWorkflowDefinitions();
34410
+ const { skills } = chunkX3JJTHQ4_cjs.useWorkflowDefinitions();
34411
34411
  const launch = react$1.useCallback(
34412
- (workflowId, options2 = {}) => chunkXPB6KMPY_cjs.openWorkflowLaunch({ workflowId, ...options2 }),
34412
+ (workflowId, options2 = {}) => chunkHVOPUYAG_cjs.openWorkflowLaunch({ workflowId, ...options2 }),
34413
34413
  []
34414
34414
  );
34415
34415
  const itemsFor = react$1.useCallback(
@@ -34438,9 +34438,9 @@ function useWorkflowLaunch() {
34438
34438
  return { launch, itemsFor, scopeItemsFor };
34439
34439
  }
34440
34440
  function Inner() {
34441
- const request = chunkXPB6KMPY_cjs.useWorkflowLaunchRequest();
34442
- const close = chunkXPB6KMPY_cjs.closeWorkflowLaunch;
34443
- const { skills } = chunkPJW2IOPZ_cjs.useWorkflowDefinitions();
34441
+ const request = chunkHVOPUYAG_cjs.useWorkflowLaunchRequest();
34442
+ const close = chunkHVOPUYAG_cjs.closeWorkflowLaunch;
34443
+ const { skills } = chunkX3JJTHQ4_cjs.useWorkflowDefinitions();
34444
34444
  const run = useLaunchWorkflow({ landing: request?.landing });
34445
34445
  const workflow = skills.find((w) => w.id === request?.workflowId);
34446
34446
  const inputs = react$1.useMemo(
@@ -34477,7 +34477,7 @@ function Inner() {
34477
34477
  );
34478
34478
  }
34479
34479
  function WorkflowLaunchHost() {
34480
- return chunkXPB6KMPY_cjs.useWorkflowLaunchRequest() ? /* @__PURE__ */ jsxRuntime.jsx(Inner, {}) : null;
34480
+ return chunkHVOPUYAG_cjs.useWorkflowLaunchRequest() ? /* @__PURE__ */ jsxRuntime.jsx(Inner, {}) : null;
34481
34481
  }
34482
34482
  function isNeedsConfirmationDetail(detail) {
34483
34483
  return typeof detail === "object" && detail !== null && detail.needs_confirmation === "resource_private";
@@ -34854,7 +34854,7 @@ function WorkflowRunStatusCell({ conversation }) {
34854
34854
  return person ? ui.getUserDisplayName(person) : void 0;
34855
34855
  };
34856
34856
  return /* @__PURE__ */ jsxRuntime.jsx(
34857
- chunkXPB6KMPY_cjs.WorkflowRunStatus,
34857
+ chunkHVOPUYAG_cjs.WorkflowRunStatus,
34858
34858
  {
34859
34859
  steps,
34860
34860
  states,
@@ -34888,7 +34888,7 @@ function ConversationStatusCell({ conversation }) {
34888
34888
  if (conversation.plan?.steps?.length && !isLiveGenerating)
34889
34889
  return /* @__PURE__ */ jsxRuntime.jsx(WorkflowRunStatusCell, { conversation });
34890
34890
  return /* @__PURE__ */ jsxRuntime.jsx(
34891
- chunkXPB6KMPY_cjs.ThreadStatusLine,
34891
+ chunkHVOPUYAG_cjs.ThreadStatusLine,
34892
34892
  {
34893
34893
  state: threadStateOf(conversation, isLiveGenerating),
34894
34894
  className: "h-full",
@@ -35096,7 +35096,7 @@ function ConnectedThreadTabs({
35096
35096
  generatingConversations
35097
35097
  ]);
35098
35098
  return /* @__PURE__ */ jsxRuntime.jsx(
35099
- chunkMEMWZ72Y_cjs.TabHeader,
35099
+ chunkWVEFRQSW_cjs.TabHeader,
35100
35100
  {
35101
35101
  testId,
35102
35102
  tabs,
@@ -35375,7 +35375,7 @@ function ConnectedTaskStartDialog({
35375
35375
  };
35376
35376
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
35377
35377
  /* @__PURE__ */ jsxRuntime.jsx(
35378
- chunkXPB6KMPY_cjs.TaskStartDialog,
35378
+ chunkHVOPUYAG_cjs.TaskStartDialog,
35379
35379
  {
35380
35380
  open: open && !later,
35381
35381
  onOpenChange: (next) => {
@@ -35400,14 +35400,14 @@ function ConnectedTaskStartDialog({
35400
35400
  }
35401
35401
  ),
35402
35402
  later && /* @__PURE__ */ jsxRuntime.jsx(
35403
- chunkPJW2IOPZ_cjs.ConnectedTaskComposer,
35403
+ chunkX3JJTHQ4_cjs.ConnectedTaskComposer,
35404
35404
  {
35405
35405
  open: true,
35406
35406
  onOpenChange: (next) => !next && setLater(null),
35407
35407
  kind: "workflow",
35408
35408
  startLater: true,
35409
35409
  initialPrompt: later.prompt,
35410
- initialWorkflowId: later.todo ? chunkXPB6KMPY_cjs.REMIND_TASK_ID : void 0,
35410
+ initialWorkflowId: later.todo ? chunkHVOPUYAG_cjs.REMIND_TASK_ID : void 0,
35411
35411
  initialShared: later.shared,
35412
35412
  launchWorkflow: later.workflow
35413
35413
  }
@@ -35421,7 +35421,7 @@ function ConnectedThreadLauncher({ autoFocus }) {
35421
35421
  const [later, setLater] = react$1.useState(null);
35422
35422
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
35423
35423
  /* @__PURE__ */ jsxRuntime.jsx(
35424
- chunkXPB6KMPY_cjs.ThreadLauncher,
35424
+ chunkHVOPUYAG_cjs.ThreadLauncher,
35425
35425
  {
35426
35426
  workflows: task.workflows,
35427
35427
  people: task.people,
@@ -35451,14 +35451,14 @@ function ConnectedThreadLauncher({ autoFocus }) {
35451
35451
  }
35452
35452
  ),
35453
35453
  later && /* @__PURE__ */ jsxRuntime.jsx(
35454
- chunkPJW2IOPZ_cjs.ConnectedTaskComposer,
35454
+ chunkX3JJTHQ4_cjs.ConnectedTaskComposer,
35455
35455
  {
35456
35456
  open: true,
35457
35457
  onOpenChange: (next) => !next && setLater(null),
35458
35458
  kind: "workflow",
35459
35459
  startLater: true,
35460
35460
  initialPrompt: later.prompt,
35461
- initialWorkflowId: later.todo ? chunkXPB6KMPY_cjs.REMIND_TASK_ID : void 0,
35461
+ initialWorkflowId: later.todo ? chunkHVOPUYAG_cjs.REMIND_TASK_ID : void 0,
35462
35462
  initialShared: later.shared,
35463
35463
  launchWorkflow: later.workflow
35464
35464
  }
@@ -35487,13 +35487,13 @@ function ConnectedNewThreadDialog({
35487
35487
  });
35488
35488
  const parentOptions = react$1.useMemo(() => {
35489
35489
  const leaf = { external_id: "__new__" };
35490
- return chunkXPB6KMPY_cjs.moveTargets([...tasks, leaf], leaf).map((t) => ({
35490
+ return chunkHVOPUYAG_cjs.moveTargets([...tasks, leaf], leaf).map((t) => ({
35491
35491
  id: t.external_id,
35492
35492
  name: t.title?.trim() || "Untitled task"
35493
35493
  }));
35494
35494
  }, [tasks]);
35495
35495
  const submit = async (values) => {
35496
- const request = chunkXPB6KMPY_cjs.newThreadToRequest(values);
35496
+ const request = chunkHVOPUYAG_cjs.newThreadToRequest(values);
35497
35497
  try {
35498
35498
  if (!workspaceId) throw new Error("Open a workspace to add a task.");
35499
35499
  if (!request.startAssistant && request.todo) {
@@ -35534,7 +35534,7 @@ function ConnectedNewThreadDialog({
35534
35534
  }
35535
35535
  };
35536
35536
  return /* @__PURE__ */ jsxRuntime.jsx(
35537
- chunkXPB6KMPY_cjs.NewThreadDialog,
35537
+ chunkHVOPUYAG_cjs.NewThreadDialog,
35538
35538
  {
35539
35539
  open,
35540
35540
  onOpenChange,
@@ -35550,7 +35550,7 @@ function ConnectedNewThreadDialog({
35550
35550
  var START_VISIBLE = 8;
35551
35551
  var START_SEARCH_ABOVE = 8;
35552
35552
  function ConnectedConversationStart() {
35553
- const { start } = chunkPJW2IOPZ_cjs.useWorkflowDefinitions();
35553
+ const { start } = chunkX3JJTHQ4_cjs.useWorkflowDefinitions();
35554
35554
  const { openSkillsBrowser } = chunkT6GRWWRY_cjs.useBlocksEnvironment();
35555
35555
  const [query, setQuery] = react$1.useState("");
35556
35556
  const q = query.trim().toLowerCase();
@@ -35565,7 +35565,7 @@ function ConnectedConversationStart() {
35565
35565
  const browse = openSkillsBrowser ? [
35566
35566
  {
35567
35567
  id: "browse-all",
35568
- iconNode: chunkXPB6KMPY_cjs.renderWorkflowIcon("library"),
35568
+ iconNode: chunkHVOPUYAG_cjs.renderWorkflowIcon("library"),
35569
35569
  title: "Browse all",
35570
35570
  description: "See every skill, make a copy, add your own",
35571
35571
  onSelect: () => openSkillsBrowser(),
@@ -35609,7 +35609,7 @@ function parseTypedSkill(draft) {
35609
35609
  return m ? { slug: m[1].toLowerCase(), text: (m[2] ?? "").trim() } : null;
35610
35610
  }
35611
35611
  function useSlashSkillWorkflows({ landing }) {
35612
- const { skills, skillsEnabled } = chunkPJW2IOPZ_cjs.useWorkflowDefinitions();
35612
+ const { skills, skillsEnabled } = chunkX3JJTHQ4_cjs.useWorkflowDefinitions();
35613
35613
  const { commands } = react.useBuiltinCommands();
35614
35614
  const [active, setActive] = react$1.useState(null);
35615
35615
  const open = (workflow, text2) => {
@@ -35715,7 +35715,7 @@ function AgentBarShell({
35715
35715
  }, [isStepsExpanded, steps]);
35716
35716
  const visibleStepCount = react$1.useMemo(() => browser.topLevelAgentSteps(steps ?? []).length, [steps]);
35717
35717
  return /* @__PURE__ */ jsxRuntime.jsx(
35718
- chunkXPB6KMPY_cjs.AgentBar,
35718
+ chunkHVOPUYAG_cjs.AgentBar,
35719
35719
  {
35720
35720
  className,
35721
35721
  testId,
@@ -35727,7 +35727,7 @@ function AgentBarShell({
35727
35727
  drawerRef: scrollRef,
35728
35728
  onDrawerScroll: handleDrawerScroll,
35729
35729
  drawer: /* @__PURE__ */ jsxRuntime.jsx(
35730
- chunkLZROSRGK_cjs.AgentSteps,
35730
+ chunk3X37I6QE_cjs.AgentSteps,
35731
35731
  {
35732
35732
  steps: stepList,
35733
35733
  isStreaming,
@@ -35779,7 +35779,7 @@ function AgentControlBar({
35779
35779
  const waitingOnChildren = runningLanes.length > 0 && ["sub_agent", "spawn_subagent", "deep_research", "run_skill"].includes(currentTool ?? "");
35780
35780
  const waitingLabel = runningLanes.length === 1 ? `Waiting on ${runningLanes[0].job}` : `Waiting on ${runningLanes.length} sub-agents`;
35781
35781
  const liveTimerNode = liveTimer && /* @__PURE__ */ jsxRuntime.jsx(
35782
- chunkLZROSRGK_cjs.MessageLiveSeconds,
35782
+ chunk3X37I6QE_cjs.MessageLiveSeconds,
35783
35783
  {
35784
35784
  ...liveTimer,
35785
35785
  offsetSeconds: currentStep?.t ?? 0,
@@ -35788,7 +35788,7 @@ function AgentControlBar({
35788
35788
  }
35789
35789
  );
35790
35790
  const status = /* @__PURE__ */ jsxRuntime.jsx(
35791
- chunkXPB6KMPY_cjs.AgentBarStatus,
35791
+ chunkHVOPUYAG_cjs.AgentBarStatus,
35792
35792
  {
35793
35793
  state: showState ? controlState : void 0,
35794
35794
  stateLabel: STATE_LABEL[controlState],
@@ -35830,7 +35830,7 @@ function AgentControlBar({
35830
35830
  ];
35831
35831
  const controls = /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
35832
35832
  onStop && /* @__PURE__ */ jsxRuntime.jsx(
35833
- chunkXPB6KMPY_cjs.AgentBarIconButton,
35833
+ chunkHVOPUYAG_cjs.AgentBarIconButton,
35834
35834
  {
35835
35835
  onClick: onStop,
35836
35836
  title: "Stop",
@@ -35839,22 +35839,22 @@ function AgentControlBar({
35839
35839
  children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Square, { className: "h-3 w-3", fill: "currentColor" })
35840
35840
  }
35841
35841
  ),
35842
- /* @__PURE__ */ jsxRuntime.jsx(chunkXPB6KMPY_cjs.AgentBarMenu, { items: menuItems })
35842
+ /* @__PURE__ */ jsxRuntime.jsx(chunkHVOPUYAG_cjs.AgentBarMenu, { items: menuItems })
35843
35843
  ] });
35844
35844
  const displayedQueuedMessages = (transientQueuedMessages ?? []).filter(
35845
35845
  (message) => !message.serverId || !queuedMessages.some((queued) => queued.external_id === message.serverId)
35846
35846
  );
35847
35847
  const queuedNotes = displayedQueuedMessages.filter((message) => message.content);
35848
- const below = probeAnswer || queuedNotes.length > 0 ? /* @__PURE__ */ jsxRuntime.jsxs(chunkXPB6KMPY_cjs.AgentBarNotes, { children: [
35848
+ const below = probeAnswer || queuedNotes.length > 0 ? /* @__PURE__ */ jsxRuntime.jsxs(chunkHVOPUYAG_cjs.AgentBarNotes, { children: [
35849
35849
  queuedNotes.map((message, index) => /* @__PURE__ */ jsxRuntime.jsx(
35850
- chunkXPB6KMPY_cjs.AgentBarQueuedNote,
35850
+ chunkHVOPUYAG_cjs.AgentBarQueuedNote,
35851
35851
  {
35852
35852
  text: message.content ?? "",
35853
35853
  isAcknowledged: message.acknowledged
35854
35854
  },
35855
35855
  index
35856
35856
  )),
35857
- probeAnswer && /* @__PURE__ */ jsxRuntime.jsx(chunkXPB6KMPY_cjs.AgentBarProbeAnswer, { answer: probeAnswer.answer })
35857
+ probeAnswer && /* @__PURE__ */ jsxRuntime.jsx(chunkHVOPUYAG_cjs.AgentBarProbeAnswer, { answer: probeAnswer.answer })
35858
35858
  ] }) : null;
35859
35859
  return /* @__PURE__ */ jsxRuntime.jsx(
35860
35860
  AgentBarShell,
@@ -36059,8 +36059,8 @@ function ConnectedThreadsPage({
36059
36059
  const tasks = useStableRecencyOrder(listed);
36060
36060
  const updateConversation = react.useUpdateConversation();
36061
36061
  const deleteConversation = react.useDeleteConversation();
36062
- const people = chunkPJW2IOPZ_cjs.useTaskPeople();
36063
- const renderPerson = chunkPJW2IOPZ_cjs.useRenderTaskPerson();
36062
+ const people = chunkX3JJTHQ4_cjs.useTaskPeople();
36063
+ const renderPerson = chunkX3JJTHQ4_cjs.useRenderTaskPerson();
36064
36064
  const canEditShared = react.useCanEditShared();
36065
36065
  const isWorkspaceOwner = react.useIsWorkspaceOwner();
36066
36066
  const { data: agents = [] } = react.useAgents();
@@ -36298,7 +36298,7 @@ function ConnectedThreadsPage({
36298
36298
  "data-testid": mode === "tasks" ? "tasks-page" : "threads-page",
36299
36299
  children: [
36300
36300
  /* @__PURE__ */ jsxRuntime.jsx("main", { className: "flex min-h-0 flex-1 flex-col bg-background", children: mode === "threads" ? /* @__PURE__ */ jsxRuntime.jsx(
36301
- chunkXPB6KMPY_cjs.ConversationListView,
36301
+ chunkHVOPUYAG_cjs.ConversationListView,
36302
36302
  {
36303
36303
  showHeader,
36304
36304
  conversations: tasks,
@@ -36318,7 +36318,7 @@ function ConnectedThreadsPage({
36318
36318
  renderLabels: threadLabels.renderLabels,
36319
36319
  labelText: threadLabels.labelText,
36320
36320
  renderBy: (row2) => /* @__PURE__ */ jsxRuntime.jsx(
36321
- chunkXPB6KMPY_cjs.ConversationTurnSpeaker,
36321
+ chunkHVOPUYAG_cjs.ConversationTurnSpeaker,
36322
36322
  {
36323
36323
  variant: "icon",
36324
36324
  role: row2.last_message_role,
@@ -36340,7 +36340,7 @@ function ConnectedThreadsPage({
36340
36340
  footer: /* @__PURE__ */ jsxRuntime.jsx(ConnectedThreadLauncher, { autoFocus: focusLauncher })
36341
36341
  }
36342
36342
  ) : /* @__PURE__ */ jsxRuntime.jsx(
36343
- chunkXPB6KMPY_cjs.TaskInbox,
36343
+ chunkHVOPUYAG_cjs.TaskInbox,
36344
36344
  {
36345
36345
  tasks,
36346
36346
  isLoading,
@@ -36384,7 +36384,7 @@ function ConnectedThreadsPage({
36384
36384
  initialParentId: parentForNew
36385
36385
  }
36386
36386
  ),
36387
- /* @__PURE__ */ jsxRuntime.jsx(chunkPJW2IOPZ_cjs.ConnectedTaskComposer, { open: editorOpen, onOpenChange: setEditorOpen, task: editing }),
36387
+ /* @__PURE__ */ jsxRuntime.jsx(chunkX3JJTHQ4_cjs.ConnectedTaskComposer, { open: editorOpen, onOpenChange: setEditorOpen, task: editing }),
36388
36388
  /* @__PURE__ */ jsxRuntime.jsx(
36389
36389
  ConnectedExportDialog,
36390
36390
  {
@@ -36396,7 +36396,7 @@ function ConnectedThreadsPage({
36396
36396
  }
36397
36397
  ),
36398
36398
  /* @__PURE__ */ jsxRuntime.jsx(
36399
- chunkTX4CIWH5_cjs.RenameDialog,
36399
+ chunkJBL4PPEE_cjs.RenameDialog,
36400
36400
  {
36401
36401
  open: !!renaming,
36402
36402
  onClose: () => {
@@ -36620,7 +36620,7 @@ function ConnectedConversationPage({
36620
36620
  }
36621
36621
  );
36622
36622
  const { data: workspaceTags = [] } = react.useTags();
36623
- const historyCount = chunkXPB6KMPY_cjs.filterConversationRows(
36623
+ const historyCount = chunkHVOPUYAG_cjs.filterConversationRows(
36624
36624
  conversations,
36625
36625
  threadFilter,
36626
36626
  (row2) => workspaceTags.filter((tag) => row2.label_ext_ids?.includes(tag.external_id)).map((tag) => tag.name).join(" "),
@@ -36653,7 +36653,7 @@ function ConnectedConversationPage({
36653
36653
  }
36654
36654
  }
36655
36655
  ),
36656
- isInChat && /* @__PURE__ */ jsxRuntime.jsx(chunk6SWK5QCT_cjs.ConnectedConversationCallActions, {}),
36656
+ isInChat && /* @__PURE__ */ jsxRuntime.jsx(chunk33PWCTND_cjs.ConnectedConversationCallActions, {}),
36657
36657
  isInChat && /* @__PURE__ */ jsxRuntime.jsx(
36658
36658
  chunkTVHTXO6V_cjs.NewChatButton,
36659
36659
  {
@@ -36670,7 +36670,7 @@ function ConnectedConversationPage({
36670
36670
  ] })
36671
36671
  }
36672
36672
  ),
36673
- isInChat && /* @__PURE__ */ jsxRuntime.jsx(chunkPJW2IOPZ_cjs.ConnectedThreadTaskBar, { conversationId: currentConversationId })
36673
+ isInChat && /* @__PURE__ */ jsxRuntime.jsx(chunkX3JJTHQ4_cjs.ConnectedThreadTaskBar, { conversationId: currentConversationId })
36674
36674
  ] }),
36675
36675
  isInChat && /* @__PURE__ */ jsxRuntime.jsx(
36676
36676
  ConversationThread2,
@@ -37391,7 +37391,7 @@ function ConversationThread({
37391
37391
  const isGuest = react.useWorkspaceRole() === "guest";
37392
37392
  const meetingReadOnly = isGuest && !!currentTask?.meeting_call_ext_id;
37393
37393
  const meetingCallExtId = currentTask?.meeting_call_ext_id ?? null;
37394
- const threadMessages = chunk6SWK5QCT_cjs.useMeetingThreadMessages(meetingCallExtId, messageHistory);
37394
+ const threadMessages = chunk33PWCTND_cjs.useMeetingThreadMessages(meetingCallExtId, messageHistory);
37395
37395
  const [firstTurnPrompt, setFirstTurnPrompt] = react$1.useState(null);
37396
37396
  const currentUserExtId = react.useArbiSession().user?.external_id ?? "";
37397
37397
  const pendingFirstTurn = react$1.useMemo(
@@ -37439,7 +37439,7 @@ function ConversationThread({
37439
37439
  return shownThreadMessages.slice(0, editIndex);
37440
37440
  }, [shownThreadMessages, editingMessageId]);
37441
37441
  const transcriptRunInfo = react$1.useMemo(
37442
- () => chunkRCBGX4IC_cjs.threadTranscriptRuns(meetingCallExtId ? visibleMessages : []),
37442
+ () => chunkRGPKW6KQ_cjs.threadTranscriptRuns(meetingCallExtId ? visibleMessages : []),
37443
37443
  [meetingCallExtId, visibleMessages]
37444
37444
  );
37445
37445
  const threadLines = react$1.useMemo(
@@ -37454,7 +37454,7 @@ function ConversationThread({
37454
37454
  }),
37455
37455
  [threadMessages]
37456
37456
  );
37457
- const provisionalSpeakers = chunk6SWK5QCT_cjs.useProvisionalSpeakers(meetingCallExtId, threadLines);
37457
+ const provisionalSpeakers = chunk33PWCTND_cjs.useProvisionalSpeakers(meetingCallExtId, threadLines);
37458
37458
  const showProvisional = !!meetingCallExtId && meetingView !== "chat";
37459
37459
  const latestContextUsage = react$1.useMemo(() => {
37460
37460
  const messages = messageHistory;
@@ -37544,7 +37544,7 @@ function ConversationThread({
37544
37544
  }, [isGenerating]);
37545
37545
  const slashWorkflows = useSlashSkillWorkflows({ landing: "current-chat" });
37546
37546
  const composerSkills = react$1.useMemo(
37547
- () => ({ builtin: chunkXPB6KMPY_cjs.BUILTIN_SKILLS, openFor: slashWorkflows.openFor }),
37547
+ () => ({ builtin: chunkHVOPUYAG_cjs.BUILTIN_SKILLS, openFor: slashWorkflows.openFor }),
37548
37548
  [slashWorkflows.openFor]
37549
37549
  );
37550
37550
  const browseSkills = react$1.useMemo(
@@ -37593,7 +37593,7 @@ function ConversationThread({
37593
37593
  useStartRequestedDraft();
37594
37594
  const orphanedMessage = react.getOrphanedLastMessage(messageHistory, isGenerating, assistantMode);
37595
37595
  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(chunkLZROSRGK_cjs.AskAgainContext.Provider, { value: handleAskAgain, children: /* @__PURE__ */ jsxRuntime.jsxs(chunkRCBGX4IC_cjs.TranscriptRunsContext.Provider, { value: transcriptRunInfo, 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: [
37597
37597
  meetingCallExtId && transcriptLineCount > 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex justify-center py-2", children: /* @__PURE__ */ jsxRuntime.jsx(
37598
37598
  chunk3UGJCSTO_cjs.ConversationFilter,
37599
37599
  {
@@ -37611,15 +37611,15 @@ function ConversationThread({
37611
37611
  ]
37612
37612
  }
37613
37613
  ) }),
37614
- /* @__PURE__ */ jsxRuntime.jsx(chunkLZROSRGK_cjs.ConnectedMessageArea, { ref: containerRef, messages: visibleMessages }),
37615
- showProvisional && /* @__PURE__ */ jsxRuntime.jsx(chunk6SWK5QCT_cjs.ProvisionalSpeakers, { ids: provisionalSpeakers })
37614
+ /* @__PURE__ */ jsxRuntime.jsx(chunk3X37I6QE_cjs.ConnectedMessageArea, { ref: containerRef, messages: visibleMessages }),
37615
+ showProvisional && /* @__PURE__ */ jsxRuntime.jsx(chunk33PWCTND_cjs.ProvisionalSpeakers, { ids: provisionalSpeakers })
37616
37616
  ] }) }) : meetingCallExtId ? (
37617
37617
  // A meeting thread with nothing yet: call-aware, not the upload prompt.
37618
37618
  /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
37619
- /* @__PURE__ */ jsxRuntime.jsx(chunk6SWK5QCT_cjs.CallConversationEmpty, { callExtId: meetingCallExtId }),
37620
- /* @__PURE__ */ jsxRuntime.jsx(chunk6SWK5QCT_cjs.ProvisionalSpeakers, { ids: provisionalSpeakers })
37619
+ /* @__PURE__ */ jsxRuntime.jsx(chunk33PWCTND_cjs.CallConversationEmpty, { callExtId: meetingCallExtId }),
37620
+ /* @__PURE__ */ jsxRuntime.jsx(chunk33PWCTND_cjs.ProvisionalSpeakers, { ids: provisionalSpeakers })
37621
37621
  ] })
37622
- ) : currentTask && currentTask.status != null ? /* @__PURE__ */ jsxRuntime.jsx(chunkXPB6KMPY_cjs.TaskEmptyState, { task: currentTask }) : pendingFirstTurn && isGenerating ? /* @__PURE__ */ jsxRuntime.jsx(chunkLZROSRGK_cjs.ConnectedMessageArea, { ref: containerRef, messages: pendingFirstTurn }) : /* @__PURE__ */ jsxRuntime.jsx(
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(
37623
37623
  ConnectedConversationEmpty,
37624
37624
  {
37625
37625
  hasDocuments: allWorkspaceDocuments.length > 0,
@@ -37690,7 +37690,7 @@ function ConversationThread({
37690
37690
  children: react.READ_ONLY_MEETING_TEXT
37691
37691
  }
37692
37692
  ) : /* @__PURE__ */ jsxRuntime.jsx(
37693
- chunkLZROSRGK_cjs.ConversationComposer,
37693
+ chunk3X37I6QE_cjs.ConversationComposer,
37694
37694
  {
37695
37695
  handleSendMessage: handleUserSend,
37696
37696
  placeholder: pendingAnswer ? "Type your answer to ARBI \u2014 or pick an option above" : void 0,
@@ -37826,8 +37826,8 @@ function ConnectedForgotPassword({
37826
37826
  initialIsKeyEncrypted = false
37827
37827
  }) {
37828
37828
  const arbi = react.useArbi();
37829
- const sso = chunkLZROSRGK_cjs.useSsoSignIn();
37830
- const { onRecovered: onSiteRecovered } = chunkLZROSRGK_cjs.useAuthPages();
37829
+ const sso = chunk3X37I6QE_cjs.useSsoSignIn();
37830
+ const { onRecovered: onSiteRecovered } = chunk3X37I6QE_cjs.useAuthPages();
37831
37831
  const [showSsoPrompt, setShowSsoPrompt] = react$1.useState(false);
37832
37832
  const [email, setEmail] = react$1.useState(initialEmail ?? "");
37833
37833
  const [recoveryKey, setRecoveryKey] = react$1.useState(initialRecoveryKey ?? null);
@@ -37963,9 +37963,9 @@ function ConnectedForgotPassword({
37963
37963
  );
37964
37964
  }
37965
37965
  function useSsoVerificationRedirect() {
37966
- const sso = chunkLZROSRGK_cjs.useSsoSignIn();
37966
+ const sso = chunk3X37I6QE_cjs.useSsoSignIn();
37967
37967
  const { notify: notify16 } = chunkT6GRWWRY_cjs.useBlocksEnvironment();
37968
- const { onVerificationFailed } = chunkLZROSRGK_cjs.useAuthPages();
37968
+ const { onVerificationFailed } = chunk3X37I6QE_cjs.useAuthPages();
37969
37969
  react$1.useEffect(() => {
37970
37970
  const urlParams = new URLSearchParams(window.location.search);
37971
37971
  const success = urlParams.get("success") || null;
@@ -38002,18 +38002,18 @@ function ConnectedLoginPage({
38002
38002
  layout = "page",
38003
38003
  ...compact
38004
38004
  } = {}) {
38005
- return layout === "compact" ? /* @__PURE__ */ jsxRuntime.jsx(chunkLZROSRGK_cjs.CompactLogin, { ...compact }) : /* @__PURE__ */ jsxRuntime.jsx(LoginPage, {});
38005
+ return layout === "compact" ? /* @__PURE__ */ jsxRuntime.jsx(chunk3X37I6QE_cjs.CompactLogin, { ...compact }) : /* @__PURE__ */ jsxRuntime.jsx(LoginPage, {});
38006
38006
  }
38007
38007
  function LoginPage() {
38008
- const sso = chunkLZROSRGK_cjs.useSsoSignIn();
38009
- const auth = chunkLZROSRGK_cjs.useAuthPages();
38008
+ const sso = chunk3X37I6QE_cjs.useSsoSignIn();
38009
+ const auth = chunk3X37I6QE_cjs.useAuthPages();
38010
38010
  const { notify: notify16 } = chunkT6GRWWRY_cjs.useBlocksEnvironment();
38011
38011
  const isSsoOnly = !!auth.ssoOnly;
38012
38012
  const allowRegistration = auth.allowRegistration ?? true;
38013
38013
  const isOnline = documentTools.useIsOnline();
38014
38014
  const passwordRules = auth.passwordRules;
38015
38015
  useSsoVerificationRedirect();
38016
- const formState = chunkLZROSRGK_cjs.useLoginForm();
38016
+ const formState = chunk3X37I6QE_cjs.useLoginForm();
38017
38017
  const deploymentDomain = react.useArbi().getDeploymentDomain();
38018
38018
  const {
38019
38019
  email,
@@ -38050,11 +38050,11 @@ function LoginPage() {
38050
38050
  handleLocalLogin,
38051
38051
  handleRegister,
38052
38052
  handleRequestVerificationCode
38053
- } = chunkLZROSRGK_cjs.useLoginActions({
38053
+ } = chunk3X37I6QE_cjs.useLoginActions({
38054
38054
  formState,
38055
38055
  formActions: formState
38056
38056
  });
38057
- const { isDisabled: isRegisterSubmitDisabled } = chunkLZROSRGK_cjs.useRegisterSubmitState(
38057
+ const { isDisabled: isRegisterSubmitDisabled } = chunk3X37I6QE_cjs.useRegisterSubmitState(
38058
38058
  isRegistering,
38059
38059
  isAuthenticating,
38060
38060
  password,
@@ -38598,7 +38598,7 @@ function SsoResendVerificationButton({
38598
38598
  onClick: async () => handleResendEmailVerification(),
38599
38599
  disabled: loading || disabled,
38600
38600
  "aria-label": "Resend verification email",
38601
- children: loading ? /* @__PURE__ */ jsxRuntime.jsx(chunk3VCVMW5X_cjs.LoadingIndicator, {}) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
38601
+ children: loading ? /* @__PURE__ */ jsxRuntime.jsx(chunk4RJPTXUQ_cjs.LoadingIndicator, {}) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
38602
38602
  "Didn't get a verification email? ",
38603
38603
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-semibold", children: "Resend" })
38604
38604
  ] })
@@ -38609,16 +38609,16 @@ function SsoResendVerificationButton({
38609
38609
  }
38610
38610
  var NO_RECOVERY_KEY_WARNING2 = "Without your password or a recovery key, we cannot recover your account or data.";
38611
38611
  function ConnectedSsoCallback() {
38612
- const sso = chunkLZROSRGK_cjs.useSsoSignIn();
38612
+ const sso = chunk3X37I6QE_cjs.useSsoSignIn();
38613
38613
  const { isAuthenticated: isAuthenticated2, isLoading, user } = sso;
38614
- const auth = chunkLZROSRGK_cjs.useAuthPages();
38614
+ const auth = chunk3X37I6QE_cjs.useAuthPages();
38615
38615
  const { notify: notify16, navigate } = chunkT6GRWWRY_cjs.useBlocksEnvironment();
38616
38616
  const passwordRules = auth.passwordRules;
38617
38617
  const isProcessing = react$1.useRef(false);
38618
38618
  const hasCheckedStatus = react$1.useRef(false);
38619
38619
  const [accessToken, setAccessToken] = react$1.useState(null);
38620
38620
  const [ssoStatus, setSsoStatus] = react$1.useState(null);
38621
- const ssoName = react$1.useMemo(() => chunkLZROSRGK_cjs.resolveSsoName(user ?? {}, ssoStatus ?? {}), [user, ssoStatus]);
38621
+ const ssoName = react$1.useMemo(() => chunk3X37I6QE_cjs.resolveSsoName(user ?? {}, ssoStatus ?? {}), [user, ssoStatus]);
38622
38622
  const [password, setPassword] = react$1.useState("");
38623
38623
  const [confirmPassword, setConfirmPassword] = react$1.useState("");
38624
38624
  const [error, setError] = react$1.useState(null);
@@ -38796,7 +38796,7 @@ function ConnectedSsoCallback() {
38796
38796
  setIsCheckingStatus(true);
38797
38797
  try {
38798
38798
  console.info("[SSO] Checking user status...");
38799
- const response = await chunkLZROSRGK_cjs.ssoAccountStatus(arbi, accessToken, user);
38799
+ const response = await chunk3X37I6QE_cjs.ssoAccountStatus(arbi, accessToken, user);
38800
38800
  console.info("[SSO] User status:", response.status);
38801
38801
  setSsoStatus(response);
38802
38802
  } catch (error2) {
@@ -38840,7 +38840,7 @@ function ConnectedSsoCallback() {
38840
38840
  setIsSubmitting(true);
38841
38841
  setError(null);
38842
38842
  try {
38843
- const { login, registered, linked } = await chunkLZROSRGK_cjs.completeSsoSignIn(arbi, {
38843
+ const { login, registered, linked } = await chunk3X37I6QE_cjs.completeSsoSignIn(arbi, {
38844
38844
  token: accessToken,
38845
38845
  user,
38846
38846
  status: ssoStatus,
@@ -39292,7 +39292,7 @@ function ConnectedRecoveryKeyDialog({
39292
39292
  const arbi = react.useArbi();
39293
39293
  const { user, isSso: isSsoMode } = react.useArbiSession();
39294
39294
  const userEmail = user?.email;
39295
- const sso = chunkLZROSRGK_cjs.useSsoSignIn();
39295
+ const sso = chunk3X37I6QE_cjs.useSsoSignIn();
39296
39296
  const handleVerify = async () => {
39297
39297
  setError(null);
39298
39298
  if (!password) {
@@ -39492,27 +39492,27 @@ function ConnectedOAuthConsentPage({
39492
39492
  oauthErrorRedirect(params.redirectUri, params.state, "access_denied");
39493
39493
  }
39494
39494
  if (error && !params) {
39495
- return /* @__PURE__ */ jsxRuntime.jsx(chunkXPB6KMPY_cjs.ConsentPage, { children: /* @__PURE__ */ jsxRuntime.jsx(chunkXPB6KMPY_cjs.ConsentMessage, { tone: "error", title: "Invalid Request", children: error }) });
39495
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkHVOPUYAG_cjs.ConsentPage, { children: /* @__PURE__ */ jsxRuntime.jsx(chunkHVOPUYAG_cjs.ConsentMessage, { tone: "error", title: "Invalid Request", children: error }) });
39496
39496
  }
39497
39497
  if (!params) {
39498
39498
  return null;
39499
39499
  }
39500
39500
  if (clientInfo?.isLocalAgentFlow) {
39501
- return /* @__PURE__ */ jsxRuntime.jsx(chunkXPB6KMPY_cjs.ConsentPage, { children: /* @__PURE__ */ jsxRuntime.jsx(chunkXPB6KMPY_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." }) });
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." }) });
39502
39502
  }
39503
39503
  if (!isAuthenticated2) {
39504
39504
  return null;
39505
39505
  }
39506
39506
  if (callbackUrl) {
39507
- return /* @__PURE__ */ jsxRuntime.jsx(chunkXPB6KMPY_cjs.ConsentPage, { children: /* @__PURE__ */ jsxRuntime.jsxs(chunkXPB6KMPY_cjs.ConsentCard, { size: "md", children: [
39508
- /* @__PURE__ */ jsxRuntime.jsxs(chunkXPB6KMPY_cjs.ConsentHeader, { icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ClipboardList, {}), title: "Almost there", children: [
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: [
39509
39509
  "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
39510
  " ",
39511
39511
  copied ? "it's already copied to your clipboard." : "copy it first."
39512
39512
  ] }),
39513
- /* @__PURE__ */ jsxRuntime.jsxs(chunkXPB6KMPY_cjs.ConsentSection, { title: "Callback URL", children: [
39514
- /* @__PURE__ */ jsxRuntime.jsx(chunkXPB6KMPY_cjs.CopyableUrl, { url: callbackUrl, copied, onCopy: handleCopy }),
39515
- /* @__PURE__ */ jsxRuntime.jsxs(chunkXPB6KMPY_cjs.ConsentText, { variant: "hint", children: [
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
39516
  "In Claude Code, paste the URL at the prompt that says",
39517
39517
  " ",
39518
39518
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-mono text-foreground", children: '"paste the full redirect URL here"' }),
@@ -39521,17 +39521,17 @@ function ConnectedOAuthConsentPage({
39521
39521
  ] })
39522
39522
  ] }) });
39523
39523
  }
39524
- return /* @__PURE__ */ jsxRuntime.jsx(chunkXPB6KMPY_cjs.ConsentPage, { children: /* @__PURE__ */ jsxRuntime.jsxs(chunkXPB6KMPY_cjs.ConsentCard, { children: [
39525
- /* @__PURE__ */ jsxRuntime.jsxs(chunkXPB6KMPY_cjs.ConsentHeader, { icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Link2, {}), title: `Connect to ${appName}`, children: [
39526
- /* @__PURE__ */ jsxRuntime.jsx(chunkXPB6KMPY_cjs.ConsentStrong, { children: clientInfo?.name ?? params.clientId }),
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
39527
  " is requesting access to your ",
39528
39528
  appName,
39529
39529
  " workspace."
39530
39530
  ] }),
39531
- /* @__PURE__ */ jsxRuntime.jsx(chunkXPB6KMPY_cjs.ConsentSection, { title: "This will allow", children: /* @__PURE__ */ jsxRuntime.jsx(chunkXPB6KMPY_cjs.ConsentPermissionList, { items: permissions }) }),
39532
- error && /* @__PURE__ */ jsxRuntime.jsx(chunkXPB6KMPY_cjs.ConsentNotice, { tone: "error", children: error }),
39533
- /* @__PURE__ */ jsxRuntime.jsx(chunkXPB6KMPY_cjs.ConsentActions, { isLoading: loading, onDeny: handleDeny, onAllow: handleAllow }),
39534
- /* @__PURE__ */ jsxRuntime.jsx(chunkXPB6KMPY_cjs.ConsentFootnote, { children: footnote })
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 })
39535
39535
  ] }) });
39536
39536
  }
39537
39537
  function ConnectedSharedFilesPage({
@@ -39752,7 +39752,7 @@ function ConnectedPanelHost({
39752
39752
  }
39753
39753
  );
39754
39754
  const panelElement = /* @__PURE__ */ jsxRuntime.jsx(
39755
- chunkTX4CIWH5_cjs.FloatingPanel,
39755
+ chunkJBL4PPEE_cjs.FloatingPanel,
39756
39756
  {
39757
39757
  panelId,
39758
39758
  mode,
@@ -39856,10 +39856,10 @@ function useContextualHints() {
39856
39856
  const session = react.useArbiSessionStore();
39857
39857
  const { data: userSettings } = react.useUserSettings();
39858
39858
  const updateUserSettings = react.useUpdateUserSettings();
39859
- const [sessionOverride] = react.useTransientView(chunk3VCVMW5X_cjs.TIPS_VISIBILITY_OVERRIDE, null);
39860
- const setShowHints = (value) => chunk3VCVMW5X_cjs.setHintsSessionOverride(session, value);
39859
+ const [sessionOverride] = react.useTransientView(chunk4RJPTXUQ_cjs.TIPS_VISIBILITY_OVERRIDE, null);
39860
+ const setShowHints = (value) => chunk4RJPTXUQ_cjs.setHintsSessionOverride(session, value);
39861
39861
  const setShowHintsPersisted = (value) => {
39862
- chunk3VCVMW5X_cjs.setHintsSessionOverride(session, null);
39862
+ chunk4RJPTXUQ_cjs.setHintsSessionOverride(session, null);
39863
39863
  updateUserSettings.mutate({ show_hints: value });
39864
39864
  };
39865
39865
  return {
@@ -39967,55 +39967,55 @@ function ChromeInstallDialog({
39967
39967
 
39968
39968
  Object.defineProperty(exports, "CAP_REACHED_MESSAGE", {
39969
39969
  enumerable: true,
39970
- get: function () { return chunkUQAHDGYH_cjs.CAP_REACHED_MESSAGE; }
39970
+ get: function () { return chunkCCSF7RI4_cjs.CAP_REACHED_MESSAGE; }
39971
39971
  });
39972
39972
  Object.defineProperty(exports, "ZERO_BUDGET_MESSAGE", {
39973
39973
  enumerable: true,
39974
- get: function () { return chunkUQAHDGYH_cjs.ZERO_BUDGET_MESSAGE; }
39974
+ get: function () { return chunkCCSF7RI4_cjs.ZERO_BUDGET_MESSAGE; }
39975
39975
  });
39976
39976
  Object.defineProperty(exports, "aiUsageResetTimestamp", {
39977
39977
  enumerable: true,
39978
- get: function () { return chunkUQAHDGYH_cjs.aiUsageResetTimestamp; }
39978
+ get: function () { return chunkCCSF7RI4_cjs.aiUsageResetTimestamp; }
39979
39979
  });
39980
39980
  Object.defineProperty(exports, "formatMoney", {
39981
39981
  enumerable: true,
39982
- get: function () { return chunkUQAHDGYH_cjs.formatMoney; }
39982
+ get: function () { return chunkCCSF7RI4_cjs.formatMoney; }
39983
39983
  });
39984
39984
  Object.defineProperty(exports, "formatResetDate", {
39985
39985
  enumerable: true,
39986
- get: function () { return chunkUQAHDGYH_cjs.formatResetDate; }
39986
+ get: function () { return chunkCCSF7RI4_cjs.formatResetDate; }
39987
39987
  });
39988
39988
  Object.defineProperty(exports, "getQuotaItems", {
39989
39989
  enumerable: true,
39990
- get: function () { return chunkUQAHDGYH_cjs.getQuotaItems; }
39990
+ get: function () { return chunkCCSF7RI4_cjs.getQuotaItems; }
39991
39991
  });
39992
39992
  Object.defineProperty(exports, "isAddonBudgetZero", {
39993
39993
  enumerable: true,
39994
- get: function () { return chunkUQAHDGYH_cjs.isAddonBudgetZero; }
39994
+ get: function () { return chunkCCSF7RI4_cjs.isAddonBudgetZero; }
39995
39995
  });
39996
39996
  Object.defineProperty(exports, "isProProject", {
39997
39997
  enumerable: true,
39998
- get: function () { return chunkUQAHDGYH_cjs.isProProject; }
39998
+ get: function () { return chunkCCSF7RI4_cjs.isProProject; }
39999
39999
  });
40000
40000
  Object.defineProperty(exports, "planBadgeView", {
40001
40001
  enumerable: true,
40002
- get: function () { return chunkUQAHDGYH_cjs.planBadgeView; }
40002
+ get: function () { return chunkCCSF7RI4_cjs.planBadgeView; }
40003
40003
  });
40004
40004
  Object.defineProperty(exports, "planName", {
40005
40005
  enumerable: true,
40006
- get: function () { return chunkUQAHDGYH_cjs.planName; }
40006
+ get: function () { return chunkCCSF7RI4_cjs.planName; }
40007
40007
  });
40008
40008
  Object.defineProperty(exports, "projectGroupBilling", {
40009
40009
  enumerable: true,
40010
- get: function () { return chunkUQAHDGYH_cjs.projectGroupBilling; }
40010
+ get: function () { return chunkCCSF7RI4_cjs.projectGroupBilling; }
40011
40011
  });
40012
40012
  Object.defineProperty(exports, "useBillingSupport", {
40013
40013
  enumerable: true,
40014
- get: function () { return chunkUQAHDGYH_cjs.useBillingSupport; }
40014
+ get: function () { return chunkCCSF7RI4_cjs.useBillingSupport; }
40015
40015
  });
40016
40016
  Object.defineProperty(exports, "useRewardBalance", {
40017
40017
  enumerable: true,
40018
- get: function () { return chunkUQAHDGYH_cjs.useRewardBalance; }
40018
+ get: function () { return chunkCCSF7RI4_cjs.useRewardBalance; }
40019
40019
  });
40020
40020
  Object.defineProperty(exports, "ConnectedTagEntity", {
40021
40021
  enumerable: true,
@@ -40063,91 +40063,91 @@ Object.defineProperty(exports, "useWorkspaceDocs", {
40063
40063
  });
40064
40064
  Object.defineProperty(exports, "ConnectedTaskActivityDialog", {
40065
40065
  enumerable: true,
40066
- get: function () { return chunkPJW2IOPZ_cjs.ConnectedTaskActivityDialog; }
40066
+ get: function () { return chunkX3JJTHQ4_cjs.ConnectedTaskActivityDialog; }
40067
40067
  });
40068
40068
  Object.defineProperty(exports, "ConnectedTaskComposer", {
40069
40069
  enumerable: true,
40070
- get: function () { return chunkPJW2IOPZ_cjs.ConnectedTaskComposer; }
40070
+ get: function () { return chunkX3JJTHQ4_cjs.ConnectedTaskComposer; }
40071
40071
  });
40072
40072
  Object.defineProperty(exports, "ConnectedThreadTaskBar", {
40073
40073
  enumerable: true,
40074
- get: function () { return chunkPJW2IOPZ_cjs.ConnectedThreadTaskBar; }
40074
+ get: function () { return chunkX3JJTHQ4_cjs.ConnectedThreadTaskBar; }
40075
40075
  });
40076
40076
  Object.defineProperty(exports, "ConnectedWorkflowHistory", {
40077
40077
  enumerable: true,
40078
- get: function () { return chunkPJW2IOPZ_cjs.ConnectedWorkflowHistory; }
40078
+ get: function () { return chunkX3JJTHQ4_cjs.ConnectedWorkflowHistory; }
40079
40079
  });
40080
40080
  Object.defineProperty(exports, "ConnectedWorkflowRunner", {
40081
40081
  enumerable: true,
40082
- get: function () { return chunkPJW2IOPZ_cjs.ConnectedWorkflowRunner; }
40082
+ get: function () { return chunkX3JJTHQ4_cjs.ConnectedWorkflowRunner; }
40083
40083
  });
40084
40084
  Object.defineProperty(exports, "DEFAULT_CONNECTED_WORKFLOW_RUNNER_LABELS", {
40085
40085
  enumerable: true,
40086
- get: function () { return chunkPJW2IOPZ_cjs.DEFAULT_CONNECTED_WORKFLOW_RUNNER_LABELS; }
40086
+ get: function () { return chunkX3JJTHQ4_cjs.DEFAULT_CONNECTED_WORKFLOW_RUNNER_LABELS; }
40087
40087
  });
40088
40088
  Object.defineProperty(exports, "DEFAULT_WORKFLOW_RUN_PAGE_LABELS", {
40089
40089
  enumerable: true,
40090
- get: function () { return chunkPJW2IOPZ_cjs.DEFAULT_WORKFLOW_RUN_PAGE_LABELS; }
40090
+ get: function () { return chunkX3JJTHQ4_cjs.DEFAULT_WORKFLOW_RUN_PAGE_LABELS; }
40091
40091
  });
40092
40092
  Object.defineProperty(exports, "WorkflowRunThread", {
40093
40093
  enumerable: true,
40094
- get: function () { return chunkPJW2IOPZ_cjs.WorkflowRunThread; }
40094
+ get: function () { return chunkX3JJTHQ4_cjs.WorkflowRunThread; }
40095
40095
  });
40096
40096
  Object.defineProperty(exports, "WorkflowRunWorkspaceChangedError", {
40097
40097
  enumerable: true,
40098
- get: function () { return chunkPJW2IOPZ_cjs.WorkflowRunWorkspaceChangedError; }
40098
+ get: function () { return chunkX3JJTHQ4_cjs.WorkflowRunWorkspaceChangedError; }
40099
40099
  });
40100
40100
  Object.defineProperty(exports, "buildProjectSummaries", {
40101
40101
  enumerable: true,
40102
- get: function () { return chunkPJW2IOPZ_cjs.buildProjectSummaries; }
40102
+ get: function () { return chunkX3JJTHQ4_cjs.buildProjectSummaries; }
40103
40103
  });
40104
40104
  Object.defineProperty(exports, "primaryProjectWorkspace", {
40105
40105
  enumerable: true,
40106
- get: function () { return chunkPJW2IOPZ_cjs.primaryProjectWorkspace; }
40106
+ get: function () { return chunkX3JJTHQ4_cjs.primaryProjectWorkspace; }
40107
40107
  });
40108
40108
  Object.defineProperty(exports, "useEnsureRequiredLabels", {
40109
40109
  enumerable: true,
40110
- get: function () { return chunkPJW2IOPZ_cjs.useEnsureRequiredLabels; }
40110
+ get: function () { return chunkX3JJTHQ4_cjs.useEnsureRequiredLabels; }
40111
40111
  });
40112
40112
  Object.defineProperty(exports, "useProjectSummaries", {
40113
40113
  enumerable: true,
40114
- get: function () { return chunkPJW2IOPZ_cjs.useProjectSummaries; }
40114
+ get: function () { return chunkX3JJTHQ4_cjs.useProjectSummaries; }
40115
40115
  });
40116
40116
  Object.defineProperty(exports, "useProjectSummary", {
40117
40117
  enumerable: true,
40118
- get: function () { return chunkPJW2IOPZ_cjs.useProjectSummary; }
40118
+ get: function () { return chunkX3JJTHQ4_cjs.useProjectSummary; }
40119
40119
  });
40120
40120
  Object.defineProperty(exports, "useRenderTaskPerson", {
40121
40121
  enumerable: true,
40122
- get: function () { return chunkPJW2IOPZ_cjs.useRenderTaskPerson; }
40122
+ get: function () { return chunkX3JJTHQ4_cjs.useRenderTaskPerson; }
40123
40123
  });
40124
40124
  Object.defineProperty(exports, "useRequiredLabels", {
40125
40125
  enumerable: true,
40126
- get: function () { return chunkPJW2IOPZ_cjs.useRequiredLabels; }
40126
+ get: function () { return chunkX3JJTHQ4_cjs.useRequiredLabels; }
40127
40127
  });
40128
40128
  Object.defineProperty(exports, "useSkillsEnabled", {
40129
40129
  enumerable: true,
40130
- get: function () { return chunkPJW2IOPZ_cjs.useSkillsEnabled; }
40130
+ get: function () { return chunkX3JJTHQ4_cjs.useSkillsEnabled; }
40131
40131
  });
40132
40132
  Object.defineProperty(exports, "useTaskPeople", {
40133
40133
  enumerable: true,
40134
- get: function () { return chunkPJW2IOPZ_cjs.useTaskPeople; }
40134
+ get: function () { return chunkX3JJTHQ4_cjs.useTaskPeople; }
40135
40135
  });
40136
40136
  Object.defineProperty(exports, "useWorkflowDefinitions", {
40137
40137
  enumerable: true,
40138
- get: function () { return chunkPJW2IOPZ_cjs.useWorkflowDefinitions; }
40138
+ get: function () { return chunkX3JJTHQ4_cjs.useWorkflowDefinitions; }
40139
40139
  });
40140
40140
  Object.defineProperty(exports, "useWorkflowTasks", {
40141
40141
  enumerable: true,
40142
- get: function () { return chunkPJW2IOPZ_cjs.useWorkflowTasks; }
40142
+ get: function () { return chunkX3JJTHQ4_cjs.useWorkflowTasks; }
40143
40143
  });
40144
40144
  Object.defineProperty(exports, "useWorkflowsPageState", {
40145
40145
  enumerable: true,
40146
- get: function () { return chunkPJW2IOPZ_cjs.useWorkflowsPageState; }
40146
+ get: function () { return chunkX3JJTHQ4_cjs.useWorkflowsPageState; }
40147
40147
  });
40148
40148
  Object.defineProperty(exports, "workflowRunView", {
40149
40149
  enumerable: true,
40150
- get: function () { return chunkPJW2IOPZ_cjs.workflowRunView; }
40150
+ get: function () { return chunkX3JJTHQ4_cjs.workflowRunView; }
40151
40151
  });
40152
40152
  Object.defineProperty(exports, "FILES_PREFS_KEY", {
40153
40153
  enumerable: true,
@@ -40183,131 +40183,131 @@ Object.defineProperty(exports, "usePendingFolders", {
40183
40183
  });
40184
40184
  Object.defineProperty(exports, "AgentSteps", {
40185
40185
  enumerable: true,
40186
- get: function () { return chunkLZROSRGK_cjs.AgentSteps; }
40186
+ get: function () { return chunk3X37I6QE_cjs.AgentSteps; }
40187
40187
  });
40188
40188
  Object.defineProperty(exports, "AnswerTable", {
40189
40189
  enumerable: true,
40190
- get: function () { return chunkLZROSRGK_cjs.AnswerTable; }
40190
+ get: function () { return chunk3X37I6QE_cjs.AnswerTable; }
40191
40191
  });
40192
40192
  Object.defineProperty(exports, "ArbiChat", {
40193
40193
  enumerable: true,
40194
- get: function () { return chunkLZROSRGK_cjs.ArbiChat; }
40194
+ get: function () { return chunk3X37I6QE_cjs.ArbiChat; }
40195
40195
  });
40196
40196
  Object.defineProperty(exports, "AskAgainContext", {
40197
40197
  enumerable: true,
40198
- get: function () { return chunkLZROSRGK_cjs.AskAgainContext; }
40198
+ get: function () { return chunk3X37I6QE_cjs.AskAgainContext; }
40199
40199
  });
40200
40200
  Object.defineProperty(exports, "ConnectedBranchControls", {
40201
40201
  enumerable: true,
40202
- get: function () { return chunkLZROSRGK_cjs.ConnectedBranchControls; }
40202
+ get: function () { return chunk3X37I6QE_cjs.ConnectedBranchControls; }
40203
40203
  });
40204
40204
  Object.defineProperty(exports, "ConnectedCitationRenderer", {
40205
40205
  enumerable: true,
40206
- get: function () { return chunkLZROSRGK_cjs.ConnectedCitationRenderer; }
40206
+ get: function () { return chunk3X37I6QE_cjs.ConnectedCitationRenderer; }
40207
40207
  });
40208
40208
  Object.defineProperty(exports, "ConnectedCompactConversation", {
40209
40209
  enumerable: true,
40210
- get: function () { return chunkLZROSRGK_cjs.ConnectedCompactConversation; }
40210
+ get: function () { return chunk3X37I6QE_cjs.ConnectedCompactConversation; }
40211
40211
  });
40212
40212
  Object.defineProperty(exports, "ConnectedConversationDocumentPicker", {
40213
40213
  enumerable: true,
40214
- get: function () { return chunkLZROSRGK_cjs.ConnectedConversationDocumentPicker; }
40214
+ get: function () { return chunk3X37I6QE_cjs.ConnectedConversationDocumentPicker; }
40215
40215
  });
40216
40216
  Object.defineProperty(exports, "ConnectedEmbeddedChat", {
40217
40217
  enumerable: true,
40218
- get: function () { return chunkLZROSRGK_cjs.ConnectedEmbeddedChat; }
40218
+ get: function () { return chunk3X37I6QE_cjs.ConnectedEmbeddedChat; }
40219
40219
  });
40220
40220
  Object.defineProperty(exports, "ConnectedMessage", {
40221
40221
  enumerable: true,
40222
- get: function () { return chunkLZROSRGK_cjs.ConnectedMessage; }
40222
+ get: function () { return chunk3X37I6QE_cjs.ConnectedMessage; }
40223
40223
  });
40224
40224
  Object.defineProperty(exports, "ConnectedMessageArea", {
40225
40225
  enumerable: true,
40226
- get: function () { return chunkLZROSRGK_cjs.ConnectedMessageArea; }
40226
+ get: function () { return chunk3X37I6QE_cjs.ConnectedMessageArea; }
40227
40227
  });
40228
40228
  Object.defineProperty(exports, "ConnectedMessageList", {
40229
40229
  enumerable: true,
40230
- get: function () { return chunkLZROSRGK_cjs.ConnectedMessageList; }
40230
+ get: function () { return chunk3X37I6QE_cjs.ConnectedMessageList; }
40231
40231
  });
40232
40232
  Object.defineProperty(exports, "ConnectedThreadsPreview", {
40233
40233
  enumerable: true,
40234
- get: function () { return chunkLZROSRGK_cjs.ConnectedThreadsPreview; }
40234
+ get: function () { return chunk3X37I6QE_cjs.ConnectedThreadsPreview; }
40235
40235
  });
40236
40236
  Object.defineProperty(exports, "ConnectedUserEntity", {
40237
40237
  enumerable: true,
40238
- get: function () { return chunkLZROSRGK_cjs.ConnectedUserEntity; }
40238
+ get: function () { return chunk3X37I6QE_cjs.ConnectedUserEntity; }
40239
40239
  });
40240
40240
  Object.defineProperty(exports, "ConversationComposer", {
40241
40241
  enumerable: true,
40242
- get: function () { return chunkLZROSRGK_cjs.ConversationComposer; }
40242
+ get: function () { return chunk3X37I6QE_cjs.ConversationComposer; }
40243
40243
  });
40244
40244
  Object.defineProperty(exports, "EmbeddedChatPanel", {
40245
40245
  enumerable: true,
40246
- get: function () { return chunkLZROSRGK_cjs.EmbeddedChatPanel; }
40246
+ get: function () { return chunk3X37I6QE_cjs.EmbeddedChatPanel; }
40247
40247
  });
40248
40248
  Object.defineProperty(exports, "MessageDetailsModal", {
40249
40249
  enumerable: true,
40250
- get: function () { return chunkLZROSRGK_cjs.MessageDetailsModal; }
40250
+ get: function () { return chunk3X37I6QE_cjs.MessageDetailsModal; }
40251
40251
  });
40252
40252
  Object.defineProperty(exports, "MessageLiveSeconds", {
40253
40253
  enumerable: true,
40254
- get: function () { return chunkLZROSRGK_cjs.MessageLiveSeconds; }
40254
+ get: function () { return chunk3X37I6QE_cjs.MessageLiveSeconds; }
40255
40255
  });
40256
40256
  Object.defineProperty(exports, "RunningSubagents", {
40257
40257
  enumerable: true,
40258
- get: function () { return chunkLZROSRGK_cjs.RunningSubagents; }
40258
+ get: function () { return chunk3X37I6QE_cjs.RunningSubagents; }
40259
40259
  });
40260
40260
  Object.defineProperty(exports, "SourceChips", {
40261
40261
  enumerable: true,
40262
- get: function () { return chunkLZROSRGK_cjs.SourceChips; }
40262
+ get: function () { return chunk3X37I6QE_cjs.SourceChips; }
40263
40263
  });
40264
40264
  Object.defineProperty(exports, "WorkflowStepMessage", {
40265
40265
  enumerable: true,
40266
- get: function () { return chunkLZROSRGK_cjs.WorkflowStepMessage; }
40266
+ get: function () { return chunk3X37I6QE_cjs.WorkflowStepMessage; }
40267
40267
  });
40268
40268
  Object.defineProperty(exports, "backUpOnSignup", {
40269
40269
  enumerable: true,
40270
- get: function () { return chunkLZROSRGK_cjs.backUpOnSignup; }
40270
+ get: function () { return chunk3X37I6QE_cjs.backUpOnSignup; }
40271
40271
  });
40272
40272
  Object.defineProperty(exports, "defaultHost", {
40273
40273
  enumerable: true,
40274
- get: function () { return chunkLZROSRGK_cjs.defaultHost; }
40274
+ get: function () { return chunk3X37I6QE_cjs.defaultHost; }
40275
40275
  });
40276
40276
  Object.defineProperty(exports, "renderConnectedUser", {
40277
40277
  enumerable: true,
40278
- get: function () { return chunkLZROSRGK_cjs.renderConnectedUser; }
40278
+ get: function () { return chunk3X37I6QE_cjs.renderConnectedUser; }
40279
40279
  });
40280
40280
  Object.defineProperty(exports, "resolveSsoName", {
40281
40281
  enumerable: true,
40282
- get: function () { return chunkLZROSRGK_cjs.resolveSsoName; }
40282
+ get: function () { return chunk3X37I6QE_cjs.resolveSsoName; }
40283
40283
  });
40284
40284
  Object.defineProperty(exports, "useAuthPages", {
40285
40285
  enumerable: true,
40286
- get: function () { return chunkLZROSRGK_cjs.useAuthPages; }
40286
+ get: function () { return chunk3X37I6QE_cjs.useAuthPages; }
40287
40287
  });
40288
40288
  Object.defineProperty(exports, "useOpenChunk", {
40289
40289
  enumerable: true,
40290
- get: function () { return chunkLZROSRGK_cjs.useOpenChunk; }
40290
+ get: function () { return chunk3X37I6QE_cjs.useOpenChunk; }
40291
40291
  });
40292
40292
  Object.defineProperty(exports, "useOpenWorkspaceIcon", {
40293
40293
  enumerable: true,
40294
- get: function () { return chunkLZROSRGK_cjs.useOpenWorkspaceIcon; }
40294
+ get: function () { return chunk3X37I6QE_cjs.useOpenWorkspaceIcon; }
40295
40295
  });
40296
40296
  Object.defineProperty(exports, "useSlashItems", {
40297
40297
  enumerable: true,
40298
- get: function () { return chunkLZROSRGK_cjs.useSlashItems; }
40298
+ get: function () { return chunk3X37I6QE_cjs.useSlashItems; }
40299
40299
  });
40300
40300
  Object.defineProperty(exports, "useSsoSignIn", {
40301
40301
  enumerable: true,
40302
- get: function () { return chunkLZROSRGK_cjs.useSsoSignIn; }
40302
+ get: function () { return chunk3X37I6QE_cjs.useSsoSignIn; }
40303
40303
  });
40304
40304
  Object.defineProperty(exports, "useWorkspaceDocTitles", {
40305
40305
  enumerable: true,
40306
- get: function () { return chunkLZROSRGK_cjs.useWorkspaceDocTitles; }
40306
+ get: function () { return chunk3X37I6QE_cjs.useWorkspaceDocTitles; }
40307
40307
  });
40308
40308
  Object.defineProperty(exports, "useConnectedThreadActivity", {
40309
40309
  enumerable: true,
40310
- get: function () { return chunkXGJU2Y5N_cjs.useConnectedThreadActivity; }
40310
+ get: function () { return chunkLBKTTQUR_cjs.useConnectedThreadActivity; }
40311
40311
  });
40312
40312
  Object.defineProperty(exports, "ConnectedPendingSyncDialog", {
40313
40313
  enumerable: true,
@@ -40383,43 +40383,43 @@ Object.defineProperty(exports, "useResolvedDocStatus", {
40383
40383
  });
40384
40384
  Object.defineProperty(exports, "ConnectedWorkflowDocumentsField", {
40385
40385
  enumerable: true,
40386
- get: function () { return chunkONML6J5O_cjs.ConnectedWorkflowDocumentsField; }
40386
+ get: function () { return chunkUDMII47W_cjs.ConnectedWorkflowDocumentsField; }
40387
40387
  });
40388
40388
  Object.defineProperty(exports, "ConnectedWorkflowLauncher", {
40389
40389
  enumerable: true,
40390
- get: function () { return chunkONML6J5O_cjs.ConnectedWorkflowLauncher; }
40390
+ get: function () { return chunkUDMII47W_cjs.ConnectedWorkflowLauncher; }
40391
40391
  });
40392
40392
  Object.defineProperty(exports, "ConnectedWorkflowsTable", {
40393
40393
  enumerable: true,
40394
- get: function () { return chunkONML6J5O_cjs.ConnectedWorkflowsTable; }
40394
+ get: function () { return chunkUDMII47W_cjs.ConnectedWorkflowsTable; }
40395
40395
  });
40396
40396
  Object.defineProperty(exports, "DEFAULT_CONNECTED_WORKFLOWS_TABLE_LABELS", {
40397
40397
  enumerable: true,
40398
- get: function () { return chunkONML6J5O_cjs.DEFAULT_CONNECTED_WORKFLOWS_TABLE_LABELS; }
40398
+ get: function () { return chunkUDMII47W_cjs.DEFAULT_CONNECTED_WORKFLOWS_TABLE_LABELS; }
40399
40399
  });
40400
40400
  Object.defineProperty(exports, "toWorkflowFieldDocument", {
40401
40401
  enumerable: true,
40402
- get: function () { return chunkONML6J5O_cjs.toWorkflowFieldDocument; }
40402
+ get: function () { return chunkUDMII47W_cjs.toWorkflowFieldDocument; }
40403
40403
  });
40404
40404
  Object.defineProperty(exports, "useConnectedAgentOptions", {
40405
40405
  enumerable: true,
40406
- get: function () { return chunkONML6J5O_cjs.useConnectedAgentOptions; }
40406
+ get: function () { return chunkUDMII47W_cjs.useConnectedAgentOptions; }
40407
40407
  });
40408
40408
  Object.defineProperty(exports, "useConnectedWorkflowScopeSource", {
40409
40409
  enumerable: true,
40410
- get: function () { return chunkONML6J5O_cjs.useConnectedWorkflowScopeSource; }
40410
+ get: function () { return chunkUDMII47W_cjs.useConnectedWorkflowScopeSource; }
40411
40411
  });
40412
40412
  Object.defineProperty(exports, "useConnectedWorkspaceRole", {
40413
40413
  enumerable: true,
40414
- get: function () { return chunkONML6J5O_cjs.useConnectedWorkspaceRole; }
40414
+ get: function () { return chunkUDMII47W_cjs.useConnectedWorkspaceRole; }
40415
40415
  });
40416
40416
  Object.defineProperty(exports, "useDocxCommentTarget", {
40417
40417
  enumerable: true,
40418
- get: function () { return chunkONML6J5O_cjs.useDocxCommentTarget; }
40418
+ get: function () { return chunkUDMII47W_cjs.useDocxCommentTarget; }
40419
40419
  });
40420
40420
  Object.defineProperty(exports, "useNativeDocxSupport", {
40421
40421
  enumerable: true,
40422
- get: function () { return chunkONML6J5O_cjs.useNativeDocxSupport; }
40422
+ get: function () { return chunkUDMII47W_cjs.useNativeDocxSupport; }
40423
40423
  });
40424
40424
  Object.defineProperty(exports, "useOpenWorkflow", {
40425
40425
  enumerable: true,
@@ -40499,7 +40499,7 @@ Object.defineProperty(exports, "useDocumentWorkspace", {
40499
40499
  });
40500
40500
  Object.defineProperty(exports, "useMeetingThreadMessages", {
40501
40501
  enumerable: true,
40502
- get: function () { return chunk6SWK5QCT_cjs.useMeetingThreadMessages; }
40502
+ get: function () { return chunk33PWCTND_cjs.useMeetingThreadMessages; }
40503
40503
  });
40504
40504
  Object.defineProperty(exports, "isListedDocument", {
40505
40505
  enumerable: true,