@arbidocs/blocks 0.5.95 → 0.5.96

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 (140) hide show
  1. package/README.md +13 -7
  2. package/dist/{ConnectedCallDock-HI2KMQZ3.cjs → ConnectedCallDock-D4DG4VDA.cjs} +12 -12
  3. package/dist/{ConnectedCallDock-HI2KMQZ3.cjs.map → ConnectedCallDock-D4DG4VDA.cjs.map} +1 -1
  4. package/dist/{ConnectedCallDock-Y64FTKFF.js → ConnectedCallDock-VVZUSFFK.js} +11 -11
  5. package/dist/{ConnectedCallDock-Y64FTKFF.js.map → ConnectedCallDock-VVZUSFFK.js.map} +1 -1
  6. package/dist/{ConnectedCallRoom-LEBIJGFT.js → ConnectedCallRoom-EDHNAJHA.js} +11 -11
  7. package/dist/{ConnectedCallRoom-LEBIJGFT.js.map → ConnectedCallRoom-EDHNAJHA.js.map} +1 -1
  8. package/dist/{ConnectedCallRoom-UXIJJKNG.cjs → ConnectedCallRoom-VDQD25QW.cjs} +12 -12
  9. package/dist/{ConnectedCallRoom-UXIJJKNG.cjs.map → ConnectedCallRoom-VDQD25QW.cjs.map} +1 -1
  10. package/dist/{ConnectedNativeDocxComparison-KIMSYQV2.cjs → ConnectedNativeDocxComparison-ADQURGHU.cjs} +11 -11
  11. package/dist/{ConnectedNativeDocxComparison-KIMSYQV2.cjs.map → ConnectedNativeDocxComparison-ADQURGHU.cjs.map} +1 -1
  12. package/dist/{ConnectedNativeDocxComparison-FNHQKY57.js → ConnectedNativeDocxComparison-IS27M6FV.js} +10 -10
  13. package/dist/{ConnectedNativeDocxComparison-FNHQKY57.js.map → ConnectedNativeDocxComparison-IS27M6FV.js.map} +1 -1
  14. package/dist/{ConnectedNativeDocxEditor-UOZGILPM.cjs → ConnectedNativeDocxEditor-7EQ6DE3Q.cjs} +11 -11
  15. package/dist/{ConnectedNativeDocxEditor-UOZGILPM.cjs.map → ConnectedNativeDocxEditor-7EQ6DE3Q.cjs.map} +1 -1
  16. package/dist/{ConnectedNativeDocxEditor-WFDFGJYW.js → ConnectedNativeDocxEditor-JYXGX55F.js} +9 -9
  17. package/dist/{ConnectedNativeDocxEditor-WFDFGJYW.js.map → ConnectedNativeDocxEditor-JYXGX55F.js.map} +1 -1
  18. package/dist/{ConnectedStreamedWordArtifact-WFKYXIX5.cjs → ConnectedStreamedWordArtifact-IYAQ2L7G.cjs} +11 -11
  19. package/dist/ConnectedStreamedWordArtifact-IYAQ2L7G.cjs.map +1 -0
  20. package/dist/{ConnectedStreamedWordArtifact-SFELZUTS.js → ConnectedStreamedWordArtifact-KLLG6W5L.js} +10 -10
  21. package/dist/ConnectedStreamedWordArtifact-KLLG6W5L.js.map +1 -0
  22. package/dist/{DocumentReviewCard-7XUBPCQD.cjs → DocumentReviewCard-3H66FMMO.cjs} +7 -7
  23. package/dist/{DocumentReviewCard-7XUBPCQD.cjs.map → DocumentReviewCard-3H66FMMO.cjs.map} +1 -1
  24. package/dist/{DocumentReviewCard-X5DXEU2G.js → DocumentReviewCard-FEVDNY6U.js} +7 -7
  25. package/dist/{DocumentReviewCard-X5DXEU2G.js.map → DocumentReviewCard-FEVDNY6U.js.map} +1 -1
  26. package/dist/{FilesViewerDialog-H4ZXFNLV.cjs → FilesViewerDialog-DSK5HMLL.cjs} +48 -39
  27. package/dist/FilesViewerDialog-DSK5HMLL.cjs.map +1 -0
  28. package/dist/{FilesViewerDialog-4Q6WJMSX.js → FilesViewerDialog-HL4E57K5.js} +46 -37
  29. package/dist/FilesViewerDialog-HL4E57K5.js.map +1 -0
  30. package/dist/{WorkspaceTableView-ZIQ7JWT5.cjs → WorkspaceTableView-5DWNJN6J.cjs} +8 -8
  31. package/dist/{WorkspaceTableView-ZIQ7JWT5.cjs.map → WorkspaceTableView-5DWNJN6J.cjs.map} +1 -1
  32. package/dist/{WorkspaceTableView-DYABS53K.js → WorkspaceTableView-X3KZ7YFI.js} +6 -6
  33. package/dist/{WorkspaceTableView-DYABS53K.js.map → WorkspaceTableView-X3KZ7YFI.js.map} +1 -1
  34. package/dist/agents/index.cjs +255 -255
  35. package/dist/agents/index.js +5 -5
  36. package/dist/calls/index.cjs +2 -2
  37. package/dist/calls/index.js +2 -2
  38. package/dist/{chunk-SOBLG72E.js → chunk-2JXJE7Y4.js} +5 -5
  39. package/dist/{chunk-SOBLG72E.js.map → chunk-2JXJE7Y4.js.map} +1 -1
  40. package/dist/{chunk-TG4S236F.js → chunk-4DRLOAVD.js} +9 -9
  41. package/dist/{chunk-TG4S236F.js.map → chunk-4DRLOAVD.js.map} +1 -1
  42. package/dist/{chunk-Y7UHKEVT.js → chunk-4HMJQ66B.js} +4 -4
  43. package/dist/{chunk-Y7UHKEVT.js.map → chunk-4HMJQ66B.js.map} +1 -1
  44. package/dist/{chunk-ZSWMRG72.cjs → chunk-5YIUHRTR.cjs} +4 -4
  45. package/dist/{chunk-ZSWMRG72.cjs.map → chunk-5YIUHRTR.cjs.map} +1 -1
  46. package/dist/{chunk-NZQZ2HFU.cjs → chunk-64KZM3RZ.cjs} +3 -3
  47. package/dist/{chunk-NZQZ2HFU.cjs.map → chunk-64KZM3RZ.cjs.map} +1 -1
  48. package/dist/{chunk-CJBDBBN2.cjs → chunk-6NMLRGUJ.cjs} +4 -4
  49. package/dist/{chunk-CJBDBBN2.cjs.map → chunk-6NMLRGUJ.cjs.map} +1 -1
  50. package/dist/{chunk-MMSHLHTA.cjs → chunk-6OXR4R6J.cjs} +3 -3
  51. package/dist/{chunk-MMSHLHTA.cjs.map → chunk-6OXR4R6J.cjs.map} +1 -1
  52. package/dist/{chunk-OXHAUVK2.cjs → chunk-7XVQATK2.cjs} +3 -3
  53. package/dist/{chunk-OXHAUVK2.cjs.map → chunk-7XVQATK2.cjs.map} +1 -1
  54. package/dist/{chunk-K6UKLIRR.js → chunk-AS3HX7LL.js} +3 -3
  55. package/dist/{chunk-K6UKLIRR.js.map → chunk-AS3HX7LL.js.map} +1 -1
  56. package/dist/{chunk-DDIV3MYQ.cjs → chunk-BAJNXRI5.cjs} +5 -5
  57. package/dist/{chunk-DDIV3MYQ.cjs.map → chunk-BAJNXRI5.cjs.map} +1 -1
  58. package/dist/{chunk-HXWBXYVN.cjs → chunk-CMMFXSTS.cjs} +3 -3
  59. package/dist/{chunk-HXWBXYVN.cjs.map → chunk-CMMFXSTS.cjs.map} +1 -1
  60. package/dist/{chunk-H2DG5HIO.js → chunk-DCNBNLWC.js} +4 -4
  61. package/dist/{chunk-H2DG5HIO.js.map → chunk-DCNBNLWC.js.map} +1 -1
  62. package/dist/{chunk-MBXQSBG3.cjs → chunk-FAKRTCAL.cjs} +11 -11
  63. package/dist/{chunk-MBXQSBG3.cjs.map → chunk-FAKRTCAL.cjs.map} +1 -1
  64. package/dist/{chunk-45M4QWCM.js → chunk-GEUP5IV7.js} +3 -3
  65. package/dist/{chunk-45M4QWCM.js.map → chunk-GEUP5IV7.js.map} +1 -1
  66. package/dist/{chunk-NIXAAPIG.js → chunk-HA27RMKD.js} +7 -7
  67. package/dist/{chunk-NIXAAPIG.js.map → chunk-HA27RMKD.js.map} +1 -1
  68. package/dist/{chunk-D3ABKS7T.cjs → chunk-HDPT7D6F.cjs} +3 -3
  69. package/dist/{chunk-D3ABKS7T.cjs.map → chunk-HDPT7D6F.cjs.map} +1 -1
  70. package/dist/{chunk-KTHBUDYQ.cjs → chunk-IMFE6FKN.cjs} +7 -7
  71. package/dist/{chunk-KTHBUDYQ.cjs.map → chunk-IMFE6FKN.cjs.map} +1 -1
  72. package/dist/{chunk-I4PB257E.js → chunk-KQUFEMPP.js} +3 -3
  73. package/dist/{chunk-I4PB257E.js.map → chunk-KQUFEMPP.js.map} +1 -1
  74. package/dist/{chunk-DCHNB7DF.cjs → chunk-KVKKVSBT.cjs} +53 -53
  75. package/dist/{chunk-DCHNB7DF.cjs.map → chunk-KVKKVSBT.cjs.map} +1 -1
  76. package/dist/{chunk-XTCNETMI.cjs → chunk-MB2OXZEA.cjs} +4 -4
  77. package/dist/{chunk-XTCNETMI.cjs.map → chunk-MB2OXZEA.cjs.map} +1 -1
  78. package/dist/{chunk-RQW2CFOQ.js → chunk-NCGJKKGR.js} +9 -9
  79. package/dist/{chunk-RQW2CFOQ.js.map → chunk-NCGJKKGR.js.map} +1 -1
  80. package/dist/{chunk-ITK7GW7B.js → chunk-NRE7ZR6M.js} +3 -3
  81. package/dist/{chunk-ITK7GW7B.js.map → chunk-NRE7ZR6M.js.map} +1 -1
  82. package/dist/{chunk-SDXK2COQ.cjs → chunk-O2ATVRRO.cjs} +27 -27
  83. package/dist/{chunk-SDXK2COQ.cjs.map → chunk-O2ATVRRO.cjs.map} +1 -1
  84. package/dist/{chunk-AJ4TBTA3.js → chunk-PCAWLVHE.js} +3 -3
  85. package/dist/{chunk-AJ4TBTA3.js.map → chunk-PCAWLVHE.js.map} +1 -1
  86. package/dist/{chunk-HU3MX5PY.js → chunk-QJVDQAYQ.js} +3 -3
  87. package/dist/{chunk-HU3MX5PY.js.map → chunk-QJVDQAYQ.js.map} +1 -1
  88. package/dist/{chunk-KJLHFS7T.js → chunk-RMJNCYPD.js} +3 -3
  89. package/dist/{chunk-KJLHFS7T.js.map → chunk-RMJNCYPD.js.map} +1 -1
  90. package/dist/{chunk-FNGFSHVE.js → chunk-S2CKH2LH.js} +3 -3
  91. package/dist/{chunk-FNGFSHVE.js.map → chunk-S2CKH2LH.js.map} +1 -1
  92. package/dist/{chunk-VVQEEHDV.cjs → chunk-TANZTMPL.cjs} +4 -4
  93. package/dist/{chunk-VVQEEHDV.cjs.map → chunk-TANZTMPL.cjs.map} +1 -1
  94. package/dist/{chunk-N77UYRV7.js → chunk-VEK64VEE.js} +3 -3
  95. package/dist/{chunk-N77UYRV7.js.map → chunk-VEK64VEE.js.map} +1 -1
  96. package/dist/{chunk-CY2K4K5M.js → chunk-VSZPY4LK.js} +6 -6
  97. package/dist/{chunk-CY2K4K5M.js.map → chunk-VSZPY4LK.js.map} +1 -1
  98. package/dist/{chunk-O5MH74TI.js → chunk-YIKE2IY4.js} +3 -3
  99. package/dist/{chunk-O5MH74TI.js.map → chunk-YIKE2IY4.js.map} +1 -1
  100. package/dist/{chunk-U4ZLFL6M.cjs → chunk-ZA3ZELSH.cjs} +5 -5
  101. package/dist/{chunk-U4ZLFL6M.cjs.map → chunk-ZA3ZELSH.cjs.map} +1 -1
  102. package/dist/{chunk-6HI5OXB6.cjs → chunk-ZBQTFA5X.cjs} +4 -4
  103. package/dist/{chunk-6HI5OXB6.cjs.map → chunk-ZBQTFA5X.cjs.map} +1 -1
  104. package/dist/{chunk-5ZWEUUJN.cjs → chunk-ZJ3NII4U.cjs} +10 -10
  105. package/dist/{chunk-5ZWEUUJN.cjs.map → chunk-ZJ3NII4U.cjs.map} +1 -1
  106. package/dist/collaboration/index.cjs +1 -1
  107. package/dist/collaboration/index.js +1 -1
  108. package/dist/connect/docx.cjs +14 -14
  109. package/dist/connect/docx.js +10 -10
  110. package/dist/connect/index.cjs +725 -698
  111. package/dist/connect/index.cjs.map +1 -1
  112. package/dist/connect/index.js +71 -44
  113. package/dist/connect/index.js.map +1 -1
  114. package/dist/connect/viewer.cjs +9 -9
  115. package/dist/connect/viewer.js +8 -8
  116. package/dist/connection/files/page/ConnectedFilesPage.d.ts +11 -7
  117. package/dist/connection/viewer/DocumentViewerDialog.d.ts +3 -0
  118. package/dist/connection/viewer/documentPlace.d.ts +10 -4
  119. package/dist/dashboards/index.cjs +1 -1
  120. package/dist/dashboards/index.js +1 -1
  121. package/dist/embed/index.cjs +19 -19
  122. package/dist/embed/index.js +13 -13
  123. package/dist/facts/index.cjs +43 -43
  124. package/dist/facts/index.js +2 -2
  125. package/dist/index.cjs +392 -392
  126. package/dist/index.js +13 -13
  127. package/dist/settings/index.cjs +151 -151
  128. package/dist/settings/index.js +2 -2
  129. package/dist/shell/index.cjs +33 -33
  130. package/dist/shell/index.js +3 -3
  131. package/dist/studio/index.cjs +5 -5
  132. package/dist/studio/index.js +4 -4
  133. package/dist/workflow-canvas/index.cjs +31 -31
  134. package/dist/workflow-canvas/index.js +16 -16
  135. package/node_modules/@arbidocs/coedit/package.json +1 -1
  136. package/package.json +5 -5
  137. package/dist/ConnectedStreamedWordArtifact-SFELZUTS.js.map +0 -1
  138. package/dist/ConnectedStreamedWordArtifact-WFKYXIX5.cjs.map +0 -1
  139. package/dist/FilesViewerDialog-4Q6WJMSX.js.map +0 -1
  140. package/dist/FilesViewerDialog-H4ZXFNLV.cjs.map +0 -1
@@ -2,19 +2,19 @@
2
2
  'use strict';
3
3
 
4
4
  var chunk3532KA6K_cjs = require('../chunk-3532KA6K.cjs');
5
- var chunkDDIV3MYQ_cjs = require('../chunk-DDIV3MYQ.cjs');
5
+ var chunkBAJNXRI5_cjs = require('../chunk-BAJNXRI5.cjs');
6
6
  var chunkWVEYUH6C_cjs = require('../chunk-WVEYUH6C.cjs');
7
7
  var chunkTBARSVW7_cjs = require('../chunk-TBARSVW7.cjs');
8
8
  var chunkPSIKUQYM_cjs = require('../chunk-PSIKUQYM.cjs');
9
- var chunkNZQZ2HFU_cjs = require('../chunk-NZQZ2HFU.cjs');
10
- var chunkDCHNB7DF_cjs = require('../chunk-DCHNB7DF.cjs');
9
+ var chunk64KZM3RZ_cjs = require('../chunk-64KZM3RZ.cjs');
11
10
  var chunkC5CWKZ5D_cjs = require('../chunk-C5CWKZ5D.cjs');
11
+ var chunkKVKKVSBT_cjs = require('../chunk-KVKKVSBT.cjs');
12
12
  var chunkCIXA5A65_cjs = require('../chunk-CIXA5A65.cjs');
13
13
  var chunkKWJW5TMH_cjs = require('../chunk-KWJW5TMH.cjs');
14
- var chunkSDXK2COQ_cjs = require('../chunk-SDXK2COQ.cjs');
15
- var chunkXTCNETMI_cjs = require('../chunk-XTCNETMI.cjs');
14
+ var chunkO2ATVRRO_cjs = require('../chunk-O2ATVRRO.cjs');
15
+ var chunkMB2OXZEA_cjs = require('../chunk-MB2OXZEA.cjs');
16
16
  var chunkTZHLO7HF_cjs = require('../chunk-TZHLO7HF.cjs');
17
- var chunkD3ABKS7T_cjs = require('../chunk-D3ABKS7T.cjs');
17
+ var chunkHDPT7D6F_cjs = require('../chunk-HDPT7D6F.cjs');
18
18
  var chunkTJY7XPDE_cjs = require('../chunk-TJY7XPDE.cjs');
19
19
  var chunkECZXW346_cjs = require('../chunk-ECZXW346.cjs');
20
20
  var chunkE5TPRRAW_cjs = require('../chunk-E5TPRRAW.cjs');
@@ -22,7 +22,7 @@ require('../chunk-UMMZNZV3.cjs');
22
22
  require('../chunk-AEQT2QQX.cjs');
23
23
  var chunkSFRKKPBB_cjs = require('../chunk-SFRKKPBB.cjs');
24
24
  require('../chunk-XNW62J54.cjs');
25
- var chunk5ZWEUUJN_cjs = require('../chunk-5ZWEUUJN.cjs');
25
+ var chunkZJ3NII4U_cjs = require('../chunk-ZJ3NII4U.cjs');
26
26
  var chunk464YPRAE_cjs = require('../chunk-464YPRAE.cjs');
27
27
  var chunkLCPU44GW_cjs = require('../chunk-LCPU44GW.cjs');
28
28
  var chunkSIYNZR5B_cjs = require('../chunk-SIYNZR5B.cjs');
@@ -32,7 +32,7 @@ var chunkKJM5X7NX_cjs = require('../chunk-KJM5X7NX.cjs');
32
32
  var chunkHEM27NA3_cjs = require('../chunk-HEM27NA3.cjs');
33
33
  var chunk7E3SUV4J_cjs = require('../chunk-7E3SUV4J.cjs');
34
34
  var chunkGFG7DCJ3_cjs = require('../chunk-GFG7DCJ3.cjs');
35
- var chunkMMSHLHTA_cjs = require('../chunk-MMSHLHTA.cjs');
35
+ var chunk6OXR4R6J_cjs = require('../chunk-6OXR4R6J.cjs');
36
36
  var chunk33MKOWSA_cjs = require('../chunk-33MKOWSA.cjs');
37
37
  var chunk223D4727_cjs = require('../chunk-223D4727.cjs');
38
38
  var chunkSNUBQMIS_cjs = require('../chunk-SNUBQMIS.cjs');
@@ -43,11 +43,11 @@ require('../chunk-JH6JTI76.cjs');
43
43
  var chunkQQMMCXBP_cjs = require('../chunk-QQMMCXBP.cjs');
44
44
  require('../chunk-DTMBAFIL.cjs');
45
45
  require('../chunk-ZESMRGDV.cjs');
46
- var chunkU4ZLFL6M_cjs = require('../chunk-U4ZLFL6M.cjs');
46
+ var chunkZA3ZELSH_cjs = require('../chunk-ZA3ZELSH.cjs');
47
47
  var chunkYSCDHY53_cjs = require('../chunk-YSCDHY53.cjs');
48
48
  require('../chunk-NEGFHF3V.cjs');
49
- var chunkZ3LFF3YT_cjs = require('../chunk-Z3LFF3YT.cjs');
50
49
  var chunkI6GEQWIV_cjs = require('../chunk-I6GEQWIV.cjs');
50
+ var chunkZ3LFF3YT_cjs = require('../chunk-Z3LFF3YT.cjs');
51
51
  var chunk4B6HYQTW_cjs = require('../chunk-4B6HYQTW.cjs');
52
52
  var chunkADMNU2CR_cjs = require('../chunk-ADMNU2CR.cjs');
53
53
  require('../chunk-PCB2BPN3.cjs');
@@ -57,7 +57,7 @@ var chunkYN7ZQEHS_cjs = require('../chunk-YN7ZQEHS.cjs');
57
57
  require('../chunk-7G2LJMUG.cjs');
58
58
  var chunkJIOHDVWH_cjs = require('../chunk-JIOHDVWH.cjs');
59
59
  var chunkRC25WMVB_cjs = require('../chunk-RC25WMVB.cjs');
60
- var chunkHXWBXYVN_cjs = require('../chunk-HXWBXYVN.cjs');
60
+ var chunkCMMFXSTS_cjs = require('../chunk-CMMFXSTS.cjs');
61
61
  var chunkMZZ3SBQL_cjs = require('../chunk-MZZ3SBQL.cjs');
62
62
  var chunkLBRJA4ZJ_cjs = require('../chunk-LBRJA4ZJ.cjs');
63
63
  var chunkGFLZHV54_cjs = require('../chunk-GFLZHV54.cjs');
@@ -73,11 +73,11 @@ var chunkZU2B2RZK_cjs = require('../chunk-ZU2B2RZK.cjs');
73
73
  var chunkNSD37OF5_cjs = require('../chunk-NSD37OF5.cjs');
74
74
  require('../chunk-OEJQFPWO.cjs');
75
75
  require('../chunk-BQOL4XNZ.cjs');
76
- var chunkMBXQSBG3_cjs = require('../chunk-MBXQSBG3.cjs');
76
+ var chunkFAKRTCAL_cjs = require('../chunk-FAKRTCAL.cjs');
77
77
  var chunkKNC77LZZ_cjs = require('../chunk-KNC77LZZ.cjs');
78
78
  require('../chunk-I4IS6ST6.cjs');
79
79
  require('../chunk-EVZH6Z5O.cjs');
80
- var chunk6HI5OXB6_cjs = require('../chunk-6HI5OXB6.cjs');
80
+ var chunkZBQTFA5X_cjs = require('../chunk-ZBQTFA5X.cjs');
81
81
  require('../chunk-3YEXZX4H.cjs');
82
82
  var chunkZHUQYIV3_cjs = require('../chunk-ZHUQYIV3.cjs');
83
83
  var chunkOYXWQTHF_cjs = require('../chunk-OYXWQTHF.cjs');
@@ -93,19 +93,6 @@ var chunkU2FFG2B3_cjs = require('../chunk-U2FFG2B3.cjs');
93
93
  var chunk25UUJRSJ_cjs = require('../chunk-25UUJRSJ.cjs');
94
94
  var chunkVYJF4ZQY_cjs = require('../chunk-VYJF4ZQY.cjs');
95
95
  var chunkM74FWYNL_cjs = require('../chunk-M74FWYNL.cjs');
96
- var chunk4ZM3J3SL_cjs = require('../chunk-4ZM3J3SL.cjs');
97
- require('../chunk-OAIOOVFN.cjs');
98
- var chunkIOCEKN44_cjs = require('../chunk-IOCEKN44.cjs');
99
- require('../chunk-F5T4W2R2.cjs');
100
- var chunk5HEMXXHR_cjs = require('../chunk-5HEMXXHR.cjs');
101
- var chunkBFKTZUFT_cjs = require('../chunk-BFKTZUFT.cjs');
102
- var chunkWV65MJ43_cjs = require('../chunk-WV65MJ43.cjs');
103
- var chunkTMX7YFVM_cjs = require('../chunk-TMX7YFVM.cjs');
104
- var chunkMOIZ2R5X_cjs = require('../chunk-MOIZ2R5X.cjs');
105
- var chunkLUO46ELJ_cjs = require('../chunk-LUO46ELJ.cjs');
106
- var chunkSJSGSHIT_cjs = require('../chunk-SJSGSHIT.cjs');
107
- var chunkZW6FPIFC_cjs = require('../chunk-ZW6FPIFC.cjs');
108
- require('../chunk-ZT5MIFLC.cjs');
109
96
  var chunkI6SPGHFY_cjs = require('../chunk-I6SPGHFY.cjs');
110
97
  var chunkQUMUAJ2P_cjs = require('../chunk-QUMUAJ2P.cjs');
111
98
  var chunkVZOOGA47_cjs = require('../chunk-VZOOGA47.cjs');
@@ -129,6 +116,19 @@ var chunk5GQOIQCB_cjs = require('../chunk-5GQOIQCB.cjs');
129
116
  require('../chunk-UDSHVNU3.cjs');
130
117
  var chunkIPSHAMO2_cjs = require('../chunk-IPSHAMO2.cjs');
131
118
  var chunkFX3K6LNZ_cjs = require('../chunk-FX3K6LNZ.cjs');
119
+ var chunk4ZM3J3SL_cjs = require('../chunk-4ZM3J3SL.cjs');
120
+ require('../chunk-OAIOOVFN.cjs');
121
+ var chunkIOCEKN44_cjs = require('../chunk-IOCEKN44.cjs');
122
+ require('../chunk-F5T4W2R2.cjs');
123
+ var chunk5HEMXXHR_cjs = require('../chunk-5HEMXXHR.cjs');
124
+ var chunkBFKTZUFT_cjs = require('../chunk-BFKTZUFT.cjs');
125
+ var chunkWV65MJ43_cjs = require('../chunk-WV65MJ43.cjs');
126
+ var chunkTMX7YFVM_cjs = require('../chunk-TMX7YFVM.cjs');
127
+ var chunkMOIZ2R5X_cjs = require('../chunk-MOIZ2R5X.cjs');
128
+ var chunkLUO46ELJ_cjs = require('../chunk-LUO46ELJ.cjs');
129
+ var chunkSJSGSHIT_cjs = require('../chunk-SJSGSHIT.cjs');
130
+ var chunkZW6FPIFC_cjs = require('../chunk-ZW6FPIFC.cjs');
131
+ require('../chunk-ZT5MIFLC.cjs');
132
132
  var chunkZBP4ZSAJ_cjs = require('../chunk-ZBP4ZSAJ.cjs');
133
133
  require('../chunk-PPCATBOY.cjs');
134
134
  var chunkUIXY4HKM_cjs = require('../chunk-UIXY4HKM.cjs');
@@ -244,7 +244,7 @@ function ConnectedWorkspaceActivity({
244
244
  [feed.data]
245
245
  );
246
246
  return /* @__PURE__ */ jsxRuntime.jsx(
247
- chunkU4ZLFL6M_cjs.WorkspaceActivityList,
247
+ chunkZA3ZELSH_cjs.WorkspaceActivityList,
248
248
  {
249
249
  ...listProps,
250
250
  items,
@@ -1124,7 +1124,7 @@ function NotificationCenter({
1124
1124
  }
1125
1125
  ];
1126
1126
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col h-full bg-background", "data-testid": "notifications-page", children: [
1127
- /* @__PURE__ */ jsxRuntime.jsx(chunkMMSHLHTA_cjs.DraggableHeader, { children: /* @__PURE__ */ jsxRuntime.jsx(
1127
+ /* @__PURE__ */ jsxRuntime.jsx(chunk6OXR4R6J_cjs.DraggableHeader, { children: /* @__PURE__ */ jsxRuntime.jsx(
1128
1128
  chunkSJSGSHIT_cjs.TabHeader,
1129
1129
  {
1130
1130
  tabs,
@@ -1448,7 +1448,7 @@ function ConnectedOfflineStatus({ compact = false }) {
1448
1448
  notify17("Still offline \u2014 check your connection and try again.", "warning");
1449
1449
  };
1450
1450
  return /* @__PURE__ */ jsxRuntime.jsx(
1451
- chunkHXWBXYVN_cjs.OfflinePill,
1451
+ chunkCMMFXSTS_cjs.OfflinePill,
1452
1452
  {
1453
1453
  tone,
1454
1454
  label,
@@ -1566,7 +1566,7 @@ function ConnectedSkillUpload({ onDone, labels, className }) {
1566
1566
  onChange: (e) => {
1567
1567
  const file = e.target.files?.[0];
1568
1568
  e.target.value = "";
1569
- if (file) void add(() => chunkMBXQSBG3_cjs.importSkillFile(file));
1569
+ if (file) void add(() => chunkFAKRTCAL_cjs.importSkillFile(file));
1570
1570
  }
1571
1571
  }
1572
1572
  ),
@@ -1591,7 +1591,7 @@ function ConnectedSkillUpload({ onDone, labels, className }) {
1591
1591
  className: "space-y-2",
1592
1592
  onSubmit: (e) => {
1593
1593
  e.preventDefault();
1594
- if (url.trim()) void add(() => chunkMBXQSBG3_cjs.importSkillFromUrl(url));
1594
+ if (url.trim()) void add(() => chunkFAKRTCAL_cjs.importSkillFromUrl(url));
1595
1595
  },
1596
1596
  children: [
1597
1597
  /* @__PURE__ */ jsxRuntime.jsx(ui.Label, { htmlFor: "skills-add-url", children: l.fromLink }),
@@ -1654,9 +1654,9 @@ function ConnectedSkillsLibrary({
1654
1654
  const [type, setType] = react$1.useState("all");
1655
1655
  const [view, setView] = react$1.useState("gallery");
1656
1656
  const [isBusy, setIsBusy] = react$1.useState(false);
1657
- const all = react$1.useMemo(() => chunkMBXQSBG3_cjs.buildLibrarySkills(builtins, listings ?? []), [builtins, listings]);
1657
+ const all = react$1.useMemo(() => chunkFAKRTCAL_cjs.buildLibrarySkills(builtins, listings ?? []), [builtins, listings]);
1658
1658
  const shown = react$1.useMemo(
1659
- () => chunkMBXQSBG3_cjs.filterLibrarySkills(all, { query, source, type }),
1659
+ () => chunkFAKRTCAL_cjs.filterLibrarySkills(all, { query, source, type }),
1660
1660
  [all, query, source, type]
1661
1661
  );
1662
1662
  const current = all.find((s) => s.slug === selected) ?? null;
@@ -1667,21 +1667,21 @@ function ConnectedSkillsLibrary({
1667
1667
  const count2 = (s) => all.filter((x) => x.source === s).length;
1668
1668
  const sourceOptions = [
1669
1669
  { id: "all", label: "All", count: all.length },
1670
- { id: "builtin", label: chunkMBXQSBG3_cjs.SKILL_SOURCE_LABELS.builtin, count: count2("builtin") },
1671
- { id: "mine", label: chunkMBXQSBG3_cjs.SKILL_SOURCE_LABELS.mine, count: count2("mine") },
1672
- { id: "shared", label: chunkMBXQSBG3_cjs.SKILL_SOURCE_LABELS.shared, count: count2("shared") }
1670
+ { id: "builtin", label: chunkFAKRTCAL_cjs.SKILL_SOURCE_LABELS.builtin, count: count2("builtin") },
1671
+ { id: "mine", label: chunkFAKRTCAL_cjs.SKILL_SOURCE_LABELS.mine, count: count2("mine") },
1672
+ { id: "shared", label: chunkFAKRTCAL_cjs.SKILL_SOURCE_LABELS.shared, count: count2("shared") }
1673
1673
  ];
1674
1674
  const types = [...new Set(all.map((s) => s.type))];
1675
1675
  const typeOptions = [
1676
1676
  { id: "all", label: "Any kind" },
1677
- ...types.map((t) => ({ id: t, label: chunkMBXQSBG3_cjs.SKILL_TYPE_LABELS[t] ?? t }))
1677
+ ...types.map((t) => ({ id: t, label: chunkFAKRTCAL_cjs.SKILL_TYPE_LABELS[t] ?? t }))
1678
1678
  ];
1679
1679
  const pick = (slug) => {
1680
1680
  setSelected(slug);
1681
1681
  setMode("detail");
1682
1682
  };
1683
1683
  const markdownOf = async (skill) => {
1684
- if (!skill.docExtId) return chunkMBXQSBG3_cjs.workflowToSkillMarkdown(skill.workflow);
1684
+ if (!skill.docExtId) return chunkFAKRTCAL_cjs.workflowToSkillMarkdown(skill.workflow);
1685
1685
  const response = await arbi.documents.download(skill.docExtId);
1686
1686
  if (!response.ok) throw new Error(`Could not read the skill (${response.status})`);
1687
1687
  return response.text();
@@ -1745,7 +1745,7 @@ function ConnectedSkillsLibrary({
1745
1745
  try {
1746
1746
  documentTools.downloadBlob(
1747
1747
  new Blob([await markdownOf(skill)], { type: "text/markdown" }),
1748
- chunkMBXQSBG3_cjs.SKILL_MAIN_FILENAME
1748
+ chunkFAKRTCAL_cjs.SKILL_MAIN_FILENAME
1749
1749
  );
1750
1750
  } catch (error) {
1751
1751
  notify17(errorText(error, "Could not export the skill"), "error");
@@ -1786,10 +1786,10 @@ function ConnectedSkillsLibrary({
1786
1786
  }
1787
1787
  )
1788
1788
  ] }),
1789
- /* @__PURE__ */ jsxRuntime.jsx(chunkMBXQSBG3_cjs.SkillViewToggle, { value: view, onChange: setView })
1789
+ /* @__PURE__ */ jsxRuntime.jsx(chunkFAKRTCAL_cjs.SkillViewToggle, { value: view, onChange: setView })
1790
1790
  ] }),
1791
1791
  /* @__PURE__ */ jsxRuntime.jsx(
1792
- chunkMBXQSBG3_cjs.SkillFilterChips,
1792
+ chunkFAKRTCAL_cjs.SkillFilterChips,
1793
1793
  {
1794
1794
  label: "Show",
1795
1795
  value: source,
@@ -1798,7 +1798,7 @@ function ConnectedSkillsLibrary({
1798
1798
  }
1799
1799
  ),
1800
1800
  types.length > 1 && /* @__PURE__ */ jsxRuntime.jsx(
1801
- chunkMBXQSBG3_cjs.SkillFilterChips,
1801
+ chunkFAKRTCAL_cjs.SkillFilterChips,
1802
1802
  {
1803
1803
  label: "Kind",
1804
1804
  value: type,
@@ -1845,12 +1845,12 @@ function ConnectedSkillsLibrary({
1845
1845
  view === "gallery" ? "grid grid-cols-[repeat(auto-fill,minmax(9.5rem,1fr))]" : "flex flex-col"
1846
1846
  ),
1847
1847
  children: shown.map((skill) => /* @__PURE__ */ jsxRuntime.jsx(
1848
- chunkMBXQSBG3_cjs.SkillTile,
1848
+ chunkFAKRTCAL_cjs.SkillTile,
1849
1849
  {
1850
1850
  name: skill.title,
1851
1851
  testId: `skill-tile-${skill.slug}`,
1852
1852
  description: skill.description,
1853
- sourceLabel: skill.isShared ? `${chunkMBXQSBG3_cjs.SKILL_SOURCE_LABELS.mine}, shared` : chunkMBXQSBG3_cjs.SKILL_SOURCE_LABELS[skill.source],
1853
+ sourceLabel: skill.isShared ? `${chunkFAKRTCAL_cjs.SKILL_SOURCE_LABELS.mine}, shared` : chunkFAKRTCAL_cjs.SKILL_SOURCE_LABELS[skill.source],
1854
1854
  type: skill.type,
1855
1855
  icon,
1856
1856
  layout: view,
@@ -1885,7 +1885,7 @@ function ConnectedSkillsLibrary({
1885
1885
  }
1886
1886
  ),
1887
1887
  mode === "new" && /* @__PURE__ */ jsxRuntime.jsx(
1888
- chunkMBXQSBG3_cjs.SkillGenerateForm,
1888
+ chunkFAKRTCAL_cjs.SkillGenerateForm,
1889
1889
  {
1890
1890
  icon,
1891
1891
  onGenerate: (desc) => {
@@ -1912,11 +1912,11 @@ function ConnectedSkillsLibrary({
1912
1912
  ),
1913
1913
  mode === "add" && /* @__PURE__ */ jsxRuntime.jsx(ConnectedSkillUpload, { onDone: done }),
1914
1914
  mode === "detail" && current && /* @__PURE__ */ jsxRuntime.jsx(
1915
- chunkMBXQSBG3_cjs.SkillLibraryDetail,
1915
+ chunkFAKRTCAL_cjs.SkillLibraryDetail,
1916
1916
  {
1917
1917
  skill: current,
1918
1918
  icon,
1919
- instructions: current.docExtId ? currentText ? chunkMBXQSBG3_cjs.parseSkillFrontmatter(currentText, chunkMBXQSBG3_cjs.SKILL_MAIN_FILENAME).content : "" : current.workflow.run.kind === "prompt" ? current.workflow.run.promptTemplate : "",
1919
+ instructions: current.docExtId ? currentText ? chunkFAKRTCAL_cjs.parseSkillFrontmatter(currentText, chunkFAKRTCAL_cjs.SKILL_MAIN_FILENAME).content : "" : current.workflow.run.kind === "prompt" ? current.workflow.run.promptTemplate : "",
1920
1920
  isLoading: !!current.docExtId && textLoading,
1921
1921
  actions: {
1922
1922
  onRun: () => onRun(current.slug),
@@ -1951,7 +1951,7 @@ function SkillEditor({
1951
1951
  const [seeded, setSeeded] = react$1.useState(!isEditing);
1952
1952
  const [nameError, setNameError] = react$1.useState(null);
1953
1953
  if (isEditing && !seeded && text2 !== void 0) {
1954
- const parsed = chunkMBXQSBG3_cjs.parseSkillFrontmatter(text2, chunkMBXQSBG3_cjs.SKILL_MAIN_FILENAME);
1954
+ const parsed = chunkFAKRTCAL_cjs.parseSkillFrontmatter(text2, chunkFAKRTCAL_cjs.SKILL_MAIN_FILENAME);
1955
1955
  setDescription(parsed.description ?? "");
1956
1956
  setBody(parsed.content ?? "");
1957
1957
  setSeeded(true);
@@ -1965,15 +1965,15 @@ function SkillEditor({
1965
1965
  notify17("Add a short description.", "error");
1966
1966
  return;
1967
1967
  }
1968
- const slug = chunkMBXQSBG3_cjs.skillSlug(name);
1968
+ const slug = chunkFAKRTCAL_cjs.skillSlug(name);
1969
1969
  try {
1970
- await onSave(slug, chunkMBXQSBG3_cjs.serializeSkill({ name: slug, description, body }), isEditing);
1970
+ await onSave(slug, chunkFAKRTCAL_cjs.serializeSkill({ name: slug, description, body }), isEditing);
1971
1971
  } catch (err) {
1972
1972
  notify17(errorText(err, "Could not save the skill"), "error");
1973
1973
  }
1974
1974
  };
1975
1975
  return /* @__PURE__ */ jsxRuntime.jsx(
1976
- chunkMBXQSBG3_cjs.SkillEditForm,
1976
+ chunkFAKRTCAL_cjs.SkillEditForm,
1977
1977
  {
1978
1978
  name,
1979
1979
  onNameChange: setName,
@@ -2012,7 +2012,7 @@ var DEFAULT_CONNECTED_SKILLS_BROWSER_LABELS = {
2012
2012
  function ConnectedSkillsBrowser({
2013
2013
  props,
2014
2014
  onClose: close,
2015
- builtins = chunkMBXQSBG3_cjs.BUILTIN_SKILLS,
2015
+ builtins = chunkFAKRTCAL_cjs.BUILTIN_SKILLS,
2016
2016
  renderEditor,
2017
2017
  labels
2018
2018
  }) {
@@ -2065,7 +2065,7 @@ function ConnectedSkillsBrowser({
2065
2065
  }
2066
2066
  ) }),
2067
2067
  runSkillId && /* @__PURE__ */ jsxRuntime.jsx(
2068
- chunkDCHNB7DF_cjs.ConnectedTaskComposer,
2068
+ chunkKVKKVSBT_cjs.ConnectedTaskComposer,
2069
2069
  {
2070
2070
  kind: "workflow",
2071
2071
  open: true,
@@ -2089,9 +2089,9 @@ function ConnectedAgentCreator({
2089
2089
  agent,
2090
2090
  initialName,
2091
2091
  onSaved,
2092
- capabilities = chunkMBXQSBG3_cjs.DEFAULT_AGENT_CAPABILITIES,
2093
- templates = chunkMBXQSBG3_cjs.DEFAULT_AGENT_TEMPLATES,
2094
- types = chunkMBXQSBG3_cjs.DEFAULT_AGENT_TYPES,
2092
+ capabilities = chunkFAKRTCAL_cjs.DEFAULT_AGENT_CAPABILITIES,
2093
+ templates = chunkFAKRTCAL_cjs.DEFAULT_AGENT_TEMPLATES,
2094
+ types = chunkFAKRTCAL_cjs.DEFAULT_AGENT_TYPES,
2095
2095
  canRevokeWorkspaces = false,
2096
2096
  labels
2097
2097
  }) {
@@ -2133,7 +2133,7 @@ function ConnectedAgentCreator({
2133
2133
  const initialValues = react$1.useMemo(
2134
2134
  () => ({
2135
2135
  name: agent?.given_name ?? initialName ?? "",
2136
- persona: isEdit ? chunkMBXQSBG3_cjs.stripPersonaPreamble(String(agents.PERSONA ?? "")) : "",
2136
+ persona: isEdit ? chunkFAKRTCAL_cjs.stripPersonaPreamble(String(agents.PERSONA ?? "")) : "",
2137
2137
  modelName: String(agents.AGENT_MODEL_NAME ?? ""),
2138
2138
  capabilities: Object.fromEntries(capabilities.map(({ key }) => [key, Boolean(agents[key])])),
2139
2139
  type: "builtin",
@@ -2152,7 +2152,7 @@ function ConnectedAgentCreator({
2152
2152
  try {
2153
2153
  let agentExtId = agent?.external_id ?? early?.id ?? "";
2154
2154
  if (!agentExtId) {
2155
- if (!chunkMBXQSBG3_cjs.isValidAgentName(values.name)) {
2155
+ if (!chunkFAKRTCAL_cjs.isValidAgentName(values.name)) {
2156
2156
  notify17("Give the agent a name first.", "error");
2157
2157
  return;
2158
2158
  }
@@ -2188,7 +2188,7 @@ function ConnectedAgentCreator({
2188
2188
  title: `agent-${name}`,
2189
2189
  sections: {
2190
2190
  Agents: {
2191
- PERSONA: chunkMBXQSBG3_cjs.composePersona(name, values.persona),
2191
+ PERSONA: chunkFAKRTCAL_cjs.composePersona(name, values.persona),
2192
2192
  ...values.modelName ? { AGENT_MODEL_NAME: values.modelName } : {},
2193
2193
  ...Object.fromEntries(capabilities.map(({ key }) => [key, !!values.capabilities[key]])),
2194
2194
  ENABLED_SKILLS: values.capabilities.SKILLS_ENABLED && skills.length ? skills : null,
@@ -2211,7 +2211,7 @@ function ConnectedAgentCreator({
2211
2211
  };
2212
2212
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
2213
2213
  /* @__PURE__ */ jsxRuntime.jsx(
2214
- chunkMBXQSBG3_cjs.AgentCreator,
2214
+ chunkFAKRTCAL_cjs.AgentCreator,
2215
2215
  {
2216
2216
  open: ready,
2217
2217
  onOpenChange,
@@ -2227,11 +2227,11 @@ function ConnectedAgentCreator({
2227
2227
  ) : void 0,
2228
2228
  revokingWorkspaceId: revokeAccess.isPending ? revokeAccess.variables?.workspaceId : void 0,
2229
2229
  avatar: (values) => /* @__PURE__ */ jsxRuntime.jsx(
2230
- chunkMBXQSBG3_cjs.AgentAvatarField,
2230
+ chunkFAKRTCAL_cjs.AgentAvatarField,
2231
2231
  {
2232
2232
  picture,
2233
2233
  isBusy: avatarBusy,
2234
- canGenerate: isEdit || chunkMBXQSBG3_cjs.isValidAgentName(values.name),
2234
+ canGenerate: isEdit || chunkFAKRTCAL_cjs.isValidAgentName(values.name),
2235
2235
  onGenerate: () => handleGenerateAvatar(values)
2236
2236
  }
2237
2237
  ),
@@ -2283,7 +2283,7 @@ function ConnectedAgentCreator({
2283
2283
  /* @__PURE__ */ jsxRuntime.jsx(ui.DialogTitle, { children: "Connect your agent" }),
2284
2284
  /* @__PURE__ */ jsxRuntime.jsx(ui.DialogDescription, { children: "This key is shown once. Run the script on the machine that will host the agent." })
2285
2285
  ] }),
2286
- connect && /* @__PURE__ */ jsxRuntime.jsx(chunkMBXQSBG3_cjs.AgentConnectInstructions, { email: connect.email, signingKey: connect.signingKey })
2286
+ connect && /* @__PURE__ */ jsxRuntime.jsx(chunkFAKRTCAL_cjs.AgentConnectInstructions, { email: connect.email, signingKey: connect.signingKey })
2287
2287
  ]
2288
2288
  }
2289
2289
  ) })
@@ -2675,7 +2675,7 @@ function useMemoryCount(enabled) {
2675
2675
  }
2676
2676
  function AgentsTasks({ tasks, isLoading, agents, labels: l, onCompose }) {
2677
2677
  const { notify: notify17, openConversation, openDocument } = chunkUIXY4HKM_cjs.useBlocksEnvironment();
2678
- const people = chunkDCHNB7DF_cjs.useTaskPeople();
2678
+ const people = chunkKVKKVSBT_cjs.useTaskPeople();
2679
2679
  const canEditShared = react.useCanEditShared();
2680
2680
  const isWorkspaceOwner = react.useIsWorkspaceOwner();
2681
2681
  const { data: workflows = [] } = react.useWorkflows({ live: true });
@@ -2701,7 +2701,7 @@ function AgentsTasks({ tasks, isLoading, agents, labels: l, onCompose }) {
2701
2701
  }, [documents]);
2702
2702
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
2703
2703
  /* @__PURE__ */ jsxRuntime.jsx(
2704
- chunkMBXQSBG3_cjs.TaskTable,
2704
+ chunkFAKRTCAL_cjs.TaskTable,
2705
2705
  {
2706
2706
  tasks,
2707
2707
  isLoading,
@@ -2728,7 +2728,7 @@ function AgentsTasks({ tasks, isLoading, agents, labels: l, onCompose }) {
2728
2728
  }
2729
2729
  ),
2730
2730
  activityFor && /* @__PURE__ */ jsxRuntime.jsx(
2731
- chunkDCHNB7DF_cjs.ConnectedTaskActivityDialog,
2731
+ chunkKVKKVSBT_cjs.ConnectedTaskActivityDialog,
2732
2732
  {
2733
2733
  conversationId: activityFor.external_id,
2734
2734
  taskName: activityFor.title || l.untitledTask,
@@ -2744,7 +2744,7 @@ function AgentsLauncher({ workflows, renderIcon, labels: l, testId }) {
2744
2744
  const { notify: notify17, openConversation } = chunkUIXY4HKM_cjs.useBlocksEnvironment();
2745
2745
  const { workspaceId, ensureWorkspaceOpen } = chunkWV65MJ43_cjs.useConnectedWorkspace();
2746
2746
  const { data: skills = [] } = react.useSkills({ enabled: !!workspaceId, live: true });
2747
- const workflowTasks = chunkDCHNB7DF_cjs.useWorkflowTasks();
2747
+ const workflowTasks = chunkKVKKVSBT_cjs.useWorkflowTasks();
2748
2748
  const launchable = react$1.useMemo(
2749
2749
  () => [
2750
2750
  ...workflows,
@@ -2767,7 +2767,7 @@ function AgentsLauncher({ workflows, renderIcon, labels: l, testId }) {
2767
2767
  [workflows, skills, l.skillFiles]
2768
2768
  );
2769
2769
  const launch = async ({ workflow, inputs, agentId }) => {
2770
- const values = chunkMBXQSBG3_cjs.defaultTaskComposerValues(launchable, {
2770
+ const values = chunkFAKRTCAL_cjs.defaultTaskComposerValues(launchable, {
2771
2771
  workflowId: workflow.id,
2772
2772
  assignee: "agent",
2773
2773
  inputs,
@@ -2788,7 +2788,7 @@ function AgentsLauncher({ workflows, renderIcon, labels: l, testId }) {
2788
2788
  }
2789
2789
  };
2790
2790
  return /* @__PURE__ */ jsxRuntime.jsx(
2791
- chunk5ZWEUUJN_cjs.ConnectedWorkflowLauncher,
2791
+ chunkZJ3NII4U_cjs.ConnectedWorkflowLauncher,
2792
2792
  {
2793
2793
  workflows: launchable,
2794
2794
  onLaunch: launch,
@@ -2887,7 +2887,7 @@ function ConnectedAgentsPageScope(props) {
2887
2887
  children,
2888
2888
  /* @__PURE__ */ jsxRuntime.jsx(ConnectedAgentCreator, { ...management.editorProps, ...agentOptions.creator }),
2889
2889
  taskDialog && /* @__PURE__ */ jsxRuntime.jsx(
2890
- chunkDCHNB7DF_cjs.ConnectedTaskComposer,
2890
+ chunkKVKKVSBT_cjs.ConnectedTaskComposer,
2891
2891
  {
2892
2892
  open: true,
2893
2893
  onOpenChange: (open) => !open && setTaskDialog(null),
@@ -2909,7 +2909,7 @@ function AgentsGallery() {
2909
2909
  cardTestIds
2910
2910
  } = agentOptions;
2911
2911
  const { openConversation } = chunkUIXY4HKM_cjs.useBlocksEnvironment();
2912
- const tasksByAgent = react$1.useMemo(() => chunkMBXQSBG3_cjs.groupAgentTasks(tasks), [tasks]);
2912
+ const tasksByAgent = react$1.useMemo(() => chunkFAKRTCAL_cjs.groupAgentTasks(tasks), [tasks]);
2913
2913
  const behaviour = useAgentBehaviour(l.defaultBehaviour, details.includes("behaviour"));
2914
2914
  const { agents } = management;
2915
2915
  const cardDetails = (agent) => details.map(
@@ -2924,7 +2924,7 @@ function AgentsGallery() {
2924
2924
  ) : detail === "workspaces" ? /* @__PURE__ */ jsxRuntime.jsx(AgentWorkspaceAccess, { agentExtId: agent.external_id, labels: l }, detail) : /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-muted-foreground", children: behaviour.behaviourOf(agent.given_name) }, detail)
2925
2925
  );
2926
2926
  return /* @__PURE__ */ jsxRuntime.jsx(
2927
- chunkMBXQSBG3_cjs.AgentGallery,
2927
+ chunkFAKRTCAL_cjs.AgentGallery,
2928
2928
  {
2929
2929
  count: agents.length,
2930
2930
  onCreate: management.create,
@@ -2934,9 +2934,9 @@ function AgentsGallery() {
2934
2934
  const agentTasks = tasksByAgent.get(agent.external_id) ?? [];
2935
2935
  const running = agentTasks.filter((t) => t.in_progress);
2936
2936
  const watchConversationId = running[0]?.external_id ?? null;
2937
- const progress = agentTasks[0] ? chunkMBXQSBG3_cjs.goalProgress(agentTasks[0]) : null;
2937
+ const progress = agentTasks[0] ? chunkFAKRTCAL_cjs.goalProgress(agentTasks[0]) : null;
2938
2938
  return /* @__PURE__ */ jsxRuntime.jsx(
2939
- chunkMBXQSBG3_cjs.AgentCard,
2939
+ chunkFAKRTCAL_cjs.AgentCard,
2940
2940
  {
2941
2941
  name: displayName(agent),
2942
2942
  avatar: /* @__PURE__ */ jsxRuntime.jsx(AgentInitialsAvatar, { agent }),
@@ -3044,7 +3044,7 @@ function AgentsSectionBody({ id }) {
3044
3044
  ) });
3045
3045
  case "scheduled":
3046
3046
  return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex h-[min(32rem,70dvh)] min-h-64 flex-col", children: /* @__PURE__ */ jsxRuntime.jsx(
3047
- chunk5ZWEUUJN_cjs.ConnectedWorkflowsTable,
3047
+ chunkZJ3NII4U_cjs.ConnectedWorkflowsTable,
3048
3048
  {
3049
3049
  filter: "scheduled",
3050
3050
  onEdit: (w) => openWorkflow?.(w.external_id),
@@ -3106,7 +3106,7 @@ function ConnectedAgentsPage({
3106
3106
  className: "flex h-full flex-col",
3107
3107
  "data-testid": scope.testIds?.root ?? DEFAULT_TEST_IDS.root,
3108
3108
  children: [
3109
- /* @__PURE__ */ jsxRuntime.jsx(chunkMMSHLHTA_cjs.DraggableHeader, { children: /* @__PURE__ */ jsxRuntime.jsx(
3109
+ /* @__PURE__ */ jsxRuntime.jsx(chunk6OXR4R6J_cjs.DraggableHeader, { children: /* @__PURE__ */ jsxRuntime.jsx(
3110
3110
  chunkSJSGSHIT_cjs.TabHeader,
3111
3111
  {
3112
3112
  tabs: [
@@ -3218,10 +3218,10 @@ function cascadeTagCombination(tags, previous, next) {
3218
3218
  function tagCombinationMatches(combination, items) {
3219
3219
  if (!isCombining(combination)) return void 0;
3220
3220
  const pass = (list) => new Set(
3221
- chunkMMSHLHTA_cjs.applyInvertedIndexFilter(
3221
+ chunk6OXR4R6J_cjs.applyInvertedIndexFilter(
3222
3222
  [...list],
3223
3223
  combination,
3224
- chunkMMSHLHTA_cjs.buildInvertedIndex(
3224
+ chunk6OXR4R6J_cjs.buildInvertedIndex(
3225
3225
  [...list],
3226
3226
  (item) => item.id,
3227
3227
  (item) => item.tagIds
@@ -3348,7 +3348,7 @@ function ConnectedTagTable({
3348
3348
  const fail2 = (fallback) => (e) => notify17(browser.refusalReason(e, fallback), "error");
3349
3349
  const snapshot2 = (data) => {
3350
3350
  const title = exportTitle ?? ui.tagKindTitle(kind, { plural: true });
3351
- const bytes = chunkU4ZLFL6M_cjs.tagTableDocx(data, {
3351
+ const bytes = chunkZA3ZELSH_cjs.tagTableDocx(data, {
3352
3352
  title,
3353
3353
  nameOf: (id) => people.find((p) => p.value === id)?.label
3354
3354
  });
@@ -3357,7 +3357,7 @@ function ConnectedTagTable({
3357
3357
  return { blob: new Blob([bytes], { type: chunkJIOHDVWH_cjs.DOCX_MIME_TYPE }), name };
3358
3358
  };
3359
3359
  return /* @__PURE__ */ jsxRuntime.jsx(
3360
- chunkU4ZLFL6M_cjs.TagTable,
3360
+ chunkZA3ZELSH_cjs.TagTable,
3361
3361
  {
3362
3362
  ...props,
3363
3363
  table,
@@ -3727,9 +3727,9 @@ function GlossaryExport({ labelId, nameOf }) {
3727
3727
  const narrowed = agreements.find((a) => a.id === narrowTo);
3728
3728
  const title = narrowed ? `Glossary - ${narrowed.name}` : "Glossary";
3729
3729
  const download = (format) => {
3730
- const entries = chunkU4ZLFL6M_cjs.glossaryEntries(sources, { labelId: narrowed?.id });
3731
- const blob = format === "docx" ? new Blob([chunkU4ZLFL6M_cjs.glossaryDocx(entries, { title })], { type: chunkJIOHDVWH_cjs.DOCX_MIME_TYPE }) : new Blob([chunkU4ZLFL6M_cjs.glossaryMarkdown(entries, { title })], { type: "text/markdown" });
3732
- documentTools.downloadBlob(blob, chunkU4ZLFL6M_cjs.glossaryFileName(title, format));
3730
+ const entries = chunkZA3ZELSH_cjs.glossaryEntries(sources, { labelId: narrowed?.id });
3731
+ const blob = format === "docx" ? new Blob([chunkZA3ZELSH_cjs.glossaryDocx(entries, { title })], { type: chunkJIOHDVWH_cjs.DOCX_MIME_TYPE }) : new Blob([chunkZA3ZELSH_cjs.glossaryMarkdown(entries, { title })], { type: "text/markdown" });
3732
+ documentTools.downloadBlob(blob, chunkZA3ZELSH_cjs.glossaryFileName(title, format));
3733
3733
  };
3734
3734
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", "data-testid": "tags-glossary", children: [
3735
3735
  agreements.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs(
@@ -4193,7 +4193,7 @@ function TagFilterChips({
4193
4193
  const name = (id) => tags.find((t) => t.external_id === id)?.name ?? id;
4194
4194
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-wrap items-center gap-1.5", "data-testid": "tags-filter-chips", children: [
4195
4195
  set.map(([id, state]) => /* @__PURE__ */ jsxRuntime.jsx(
4196
- chunkMMSHLHTA_cjs.FilterChip,
4196
+ chunk6OXR4R6J_cjs.FilterChip,
4197
4197
  {
4198
4198
  label: name(id),
4199
4199
  labelContent: /* @__PURE__ */ jsxRuntime.jsx(
@@ -4258,7 +4258,7 @@ function KindSection({
4258
4258
  {
4259
4259
  testId: `tags-kind-${kind}`,
4260
4260
  title: ui.tagKindTitle(kind, { plural: true }),
4261
- description: chunkU4ZLFL6M_cjs.tagKindDescription(kind),
4261
+ description: chunkZA3ZELSH_cjs.tagKindDescription(kind),
4262
4262
  children: [
4263
4263
  browser.isEntityTag({ kind }) && extractingCount > 0 && /* @__PURE__ */ jsxRuntime.jsxs(
4264
4264
  "p",
@@ -4268,9 +4268,9 @@ function KindSection({
4268
4268
  children: [
4269
4269
  /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Loader2, { className: "size-4 animate-spin" }),
4270
4270
  "Extracting ",
4271
- chunkU4ZLFL6M_cjs.entitiesPhrase().toLowerCase(),
4271
+ chunkZA3ZELSH_cjs.entitiesPhrase().toLowerCase(),
4272
4272
  " from ",
4273
- chunkU4ZLFL6M_cjs.documentCount(extractingCount),
4273
+ chunkZA3ZELSH_cjs.documentCount(extractingCount),
4274
4274
  "\u2026"
4275
4275
  ]
4276
4276
  }
@@ -4288,7 +4288,7 @@ function KindSection({
4288
4288
  onOpenTag: ctx.onOpenTag,
4289
4289
  onOpenRow: ctx.onOpenTag,
4290
4290
  onOpenTaggedItems: ctx.onOpenTaggedItems,
4291
- labels: chunkU4ZLFL6M_cjs.tagTableLabels(kind),
4291
+ labels: chunkZA3ZELSH_cjs.tagTableLabels(kind),
4292
4292
  testId: `tags-table-${kind}`
4293
4293
  }
4294
4294
  )
@@ -4396,15 +4396,15 @@ function TagSection({
4396
4396
  onOpenTag: ctx.onOpenTag,
4397
4397
  onOpenRow: ctx.onOpenTag,
4398
4398
  onOpenTaggedItems: ctx.onOpenTaggedItems,
4399
- labels: chunkU4ZLFL6M_cjs.tagTableLabels(tag.kind),
4399
+ labels: chunkZA3ZELSH_cjs.tagTableLabels(tag.kind),
4400
4400
  testId: "tags-rows"
4401
4401
  }
4402
4402
  ),
4403
4403
  /* @__PURE__ */ jsxRuntime.jsx(
4404
- chunkU4ZLFL6M_cjs.TagDetail,
4404
+ chunkZA3ZELSH_cjs.TagDetail,
4405
4405
  {
4406
4406
  onOpenTaggedItems: ctx.onOpenTaggedItems,
4407
- fieldLabels: chunkU4ZLFL6M_cjs.tagTableLabels(tag.kind),
4407
+ fieldLabels: chunkZA3ZELSH_cjs.tagTableLabels(tag.kind),
4408
4408
  row: detailRow,
4409
4409
  fields: schema.data?.fields ?? [],
4410
4410
  isLoading: detail.isLoading,
@@ -4412,7 +4412,7 @@ function TagSection({
4412
4412
  tags: tagOptions,
4413
4413
  onOpenTag: ctx.onOpenTag,
4414
4414
  onChangeValue: (id, fieldId, value) => setValues.mutateAsync({ tagId: id, values: { [fieldId]: value } }).catch((e) => notify17(browser.refusalReason(e, "Could not save the value"), "error")),
4415
- labels: chunkU4ZLFL6M_cjs.tagDetailLabels(),
4415
+ labels: chunkZA3ZELSH_cjs.tagDetailLabels(),
4416
4416
  testId: "tags-detail"
4417
4417
  }
4418
4418
  )
@@ -4487,7 +4487,7 @@ function ConnectedTagsPage() {
4487
4487
  const onDelete = async (t) => {
4488
4488
  const nested = browser.getChildTags([...tags], t.external_id);
4489
4489
  const uses = browser.tagUseCount(t);
4490
- const n2 = chunkU4ZLFL6M_cjs.tagsPageNouns();
4490
+ const n2 = chunkZA3ZELSH_cjs.tagsPageNouns();
4491
4491
  const tagNoun = (count2) => (count2 === 1 ? n2.tag : n2.tags).toLowerCase();
4492
4492
  const carriers = uses === 1 ? `${n2.document}, ${n2.fact} or ${n2.thread}` : `${n2.documents}, ${n2.facts} and ${n2.threads}`;
4493
4493
  const message = `Delete ${ui.tagKindNouns(t.kind).singular} "${t.name}"?` + (uses > 0 ? `
@@ -4508,11 +4508,11 @@ ${nested.length} nested ${tagNoun(nested.length)} ${nested.length === 1 ? "moves
4508
4508
  try {
4509
4509
  await extract.mutateAsync(docIds);
4510
4510
  notify17(
4511
- `Extracting ${chunkU4ZLFL6M_cjs.entitiesPhrase().toLowerCase()} from ${chunkU4ZLFL6M_cjs.documentCount(docIds.length)}. You will be notified when it is done.`,
4511
+ `Extracting ${chunkZA3ZELSH_cjs.entitiesPhrase().toLowerCase()} from ${chunkZA3ZELSH_cjs.documentCount(docIds.length)}. You will be notified when it is done.`,
4512
4512
  "info"
4513
4513
  );
4514
4514
  } catch (error) {
4515
- notify17(browser.refusalReason(error, `Could not extract ${chunkU4ZLFL6M_cjs.entitiesPhrase().toLowerCase()}`), "error");
4515
+ notify17(browser.refusalReason(error, `Could not extract ${chunkZA3ZELSH_cjs.entitiesPhrase().toLowerCase()}`), "error");
4516
4516
  throw error;
4517
4517
  }
4518
4518
  };
@@ -4526,10 +4526,10 @@ ${nested.length} nested ${tagNoun(nested.length)} ${nested.length === 1 ? "moves
4526
4526
  onOpenTag: openTag,
4527
4527
  onOpenTaggedItems
4528
4528
  };
4529
- const n = chunkU4ZLFL6M_cjs.tagsPageNouns();
4529
+ const n = chunkZA3ZELSH_cjs.tagsPageNouns();
4530
4530
  const action = view === "person" || view === "organisation" ? {
4531
4531
  label: "Extract",
4532
- title: `Extract ${chunkU4ZLFL6M_cjs.entitiesPhrase().toLowerCase()} from ${n.documents.toLowerCase()}`,
4532
+ title: `Extract ${chunkZA3ZELSH_cjs.entitiesPhrase().toLowerCase()} from ${n.documents.toLowerCase()}`,
4533
4533
  icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Sparkles, { className: "h-4 w-4" }),
4534
4534
  run: () => setExtracting(true),
4535
4535
  testId: "tags-extract-entities"
@@ -4698,7 +4698,7 @@ ${nested.length} nested ${tagNoun(nested.length)} ${nested.length === 1 ? "moves
4698
4698
  }
4699
4699
  ),
4700
4700
  /* @__PURE__ */ jsxRuntime.jsx(
4701
- chunkU4ZLFL6M_cjs.ExtractEntitiesDialog,
4701
+ chunkZA3ZELSH_cjs.ExtractEntitiesDialog,
4702
4702
  {
4703
4703
  open: extracting,
4704
4704
  onOpenChange: setExtracting,
@@ -4882,7 +4882,7 @@ function ConnectedPanelHost({
4882
4882
  onClose();
4883
4883
  }, [onClose]);
4884
4884
  const setFocusedArea = react.useArbiSessionStore().setFocusedArea;
4885
- const { popoutTitle } = chunkHXWBXYVN_cjs.usePanelHostSupport();
4885
+ const { popoutTitle } = chunkCMMFXSTS_cjs.usePanelHostSupport();
4886
4886
  const focusedArea = react.useArbiSessionState((s) => s.shell.focusedArea);
4887
4887
  const handlePanelFocus = react$1.useCallback(() => {
4888
4888
  setFocusedArea(panelId);
@@ -4915,7 +4915,7 @@ function ConnectedPanelHost({
4915
4915
  }, [isExiting]);
4916
4916
  if (!isOpen && !isExiting) return null;
4917
4917
  const modeSwitcher = /* @__PURE__ */ jsxRuntime.jsx(
4918
- chunkHXWBXYVN_cjs.PanelModeSwitcher,
4918
+ chunkCMMFXSTS_cjs.PanelModeSwitcher,
4919
4919
  {
4920
4920
  mode,
4921
4921
  onModeChange: setPanelMode,
@@ -4925,7 +4925,7 @@ function ConnectedPanelHost({
4925
4925
  }
4926
4926
  );
4927
4927
  const panelElement = /* @__PURE__ */ jsxRuntime.jsx(
4928
- chunkMMSHLHTA_cjs.FloatingPanel,
4928
+ chunk6OXR4R6J_cjs.FloatingPanel,
4929
4929
  {
4930
4930
  panelId,
4931
4931
  mode,
@@ -4937,7 +4937,7 @@ function ConnectedPanelHost({
4937
4937
  }
4938
4938
  );
4939
4939
  return /* @__PURE__ */ jsxRuntime.jsx(
4940
- chunkHXWBXYVN_cjs.PanelPortal,
4940
+ chunkCMMFXSTS_cjs.PanelPortal,
4941
4941
  {
4942
4942
  defaultWidth,
4943
4943
  panelId,
@@ -6058,7 +6058,7 @@ function ConnectedFieldsManager({
6058
6058
  ) })
6059
6059
  ] });
6060
6060
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col h-full", children: [
6061
- /* @__PURE__ */ jsxRuntime.jsxs(chunkMMSHLHTA_cjs.DraggableHeader, { children: [
6061
+ /* @__PURE__ */ jsxRuntime.jsxs(chunk6OXR4R6J_cjs.DraggableHeader, { children: [
6062
6062
  /* @__PURE__ */ jsxRuntime.jsx(chunk33MKOWSA_cjs.FieldsManagerTitle, { title, className: "px-4 pt-3.5 pb-2" }),
6063
6063
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "px-3", children: tabHeader })
6064
6064
  ] }),
@@ -6175,7 +6175,7 @@ function ConnectedFactsSmartSearch({
6175
6175
  const runSearch = () => search().catch(() => notify17(`Could not search ${factsWord}. Please try again.`, "error"));
6176
6176
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex h-full min-h-0 flex-col", "data-testid": "facts-smart-search", children: [
6177
6177
  /* @__PURE__ */ jsxRuntime.jsx(
6178
- chunkD3ABKS7T_cjs.FactSearchBar,
6178
+ chunkHDPT7D6F_cjs.FactSearchBar,
6179
6179
  {
6180
6180
  query,
6181
6181
  onQueryChange: setQuery,
@@ -6184,7 +6184,7 @@ function ConnectedFactsSmartSearch({
6184
6184
  isSearching
6185
6185
  }
6186
6186
  ),
6187
- !isSearching && hits !== null && hits.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs(chunkD3ABKS7T_cjs.FactSearchTotals, { children: [
6187
+ !isSearching && hits !== null && hits.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs(chunkHDPT7D6F_cjs.FactSearchTotals, { children: [
6188
6188
  hits.length.toLocaleString(),
6189
6189
  " ",
6190
6190
  hits.length === 1 ? factWord : factsWord,
@@ -6192,18 +6192,18 @@ function ConnectedFactsSmartSearch({
6192
6192
  lastQuery,
6193
6193
  "\u201D"
6194
6194
  ] }),
6195
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "scrollbar-subtle min-h-0 flex-1 overflow-y-auto px-4 pb-3", children: isSearching ? /* @__PURE__ */ jsxRuntime.jsxs(chunkD3ABKS7T_cjs.FactSearchPending, { children: [
6195
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "scrollbar-subtle min-h-0 flex-1 overflow-y-auto px-4 pb-3", children: isSearching ? /* @__PURE__ */ jsxRuntime.jsxs(chunkHDPT7D6F_cjs.FactSearchPending, { children: [
6196
6196
  "Searching ",
6197
6197
  factsWord,
6198
6198
  "\u2026"
6199
- ] }) : hits === null ? /* @__PURE__ */ jsxRuntime.jsx(chunkNX56DIG3_cjs.SearchEmptyState, { nouns, count: allFacts.length }) : hits.length === 0 ? /* @__PURE__ */ jsxRuntime.jsxs(chunkD3ABKS7T_cjs.FactSearchNoMatches, { children: [
6199
+ ] }) : hits === null ? /* @__PURE__ */ jsxRuntime.jsx(chunkNX56DIG3_cjs.SearchEmptyState, { nouns, count: allFacts.length }) : hits.length === 0 ? /* @__PURE__ */ jsxRuntime.jsxs(chunkHDPT7D6F_cjs.FactSearchNoMatches, { children: [
6200
6200
  "No ",
6201
6201
  factsWord,
6202
6202
  " matched \u201C",
6203
6203
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-foreground", children: lastQuery }),
6204
6204
  "\u201D."
6205
6205
  ] }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-col gap-2", children: hits.map((h, i) => /* @__PURE__ */ jsxRuntime.jsx(
6206
- chunkD3ABKS7T_cjs.FactSearchResult,
6206
+ chunkHDPT7D6F_cjs.FactSearchResult,
6207
6207
  {
6208
6208
  id: h.external_id,
6209
6209
  rank: i + 1,
@@ -6303,7 +6303,7 @@ function FactSourcesPopover({
6303
6303
  const olderVersion = refOf(docId) !== docId ? refOf(docId).split("@v")[1] : null;
6304
6304
  const cited = passagesOf(docId);
6305
6305
  return /* @__PURE__ */ jsxRuntime.jsx(
6306
- chunkD3ABKS7T_cjs.FactSourceGroup,
6306
+ chunkHDPT7D6F_cjs.FactSourceGroup,
6307
6307
  {
6308
6308
  docId,
6309
6309
  isViewing,
@@ -6392,7 +6392,7 @@ function FactMarkdownEditor({
6392
6392
  const editorRef = react$1.useRef(null);
6393
6393
  react$1.useEffect(() => {
6394
6394
  if (!editorRef.current) return;
6395
- return chunkD3ABKS7T_cjs.enableFactTableColumnResize(editorRef.current);
6395
+ return chunkHDPT7D6F_cjs.enableFactTableColumnResize(editorRef.current);
6396
6396
  }, []);
6397
6397
  react$1.useEffect(() => {
6398
6398
  if (!editing) return;
@@ -6958,10 +6958,10 @@ function useFactFilters(notes, view, chat) {
6958
6958
  );
6959
6959
  const setFactFilters = view.setFilters;
6960
6960
  const quickFilteredNotes = react$1.useMemo(
6961
- () => chunkMMSHLHTA_cjs.applyInvertedIndexFilter(
6961
+ () => chunk6OXR4R6J_cjs.applyInvertedIndexFilter(
6962
6962
  notes,
6963
6963
  factFilters,
6964
- chunkMMSHLHTA_cjs.buildInvertedIndex(
6964
+ chunk6OXR4R6J_cjs.buildInvertedIndex(
6965
6965
  notes,
6966
6966
  (f) => f.external_id,
6967
6967
  (f) => Object.entries(getFactFilterAttributes(f)).filter(([id, on]) => on && factFilterIds.includes(id)).map(([id]) => id)
@@ -7031,7 +7031,7 @@ function useFactFilters(notes, view, chat) {
7031
7031
  const makeTagPicker = react$1.useCallback(
7032
7032
  (selected, setSelected, opts) => {
7033
7033
  const applied = new Set(selected);
7034
- return /* @__PURE__ */ jsxRuntime.jsx(chunkD3ABKS7T_cjs.FactFieldRow, { label: "Labels", children: /* @__PURE__ */ jsxRuntime.jsx(
7034
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkHDPT7D6F_cjs.FactFieldRow, { label: "Labels", children: /* @__PURE__ */ jsxRuntime.jsx(
7035
7035
  chunk33MKOWSA_cjs.FieldLabelsSelect,
7036
7036
  {
7037
7037
  options: labelOptions,
@@ -7223,14 +7223,14 @@ function useFactSelection(notes, gridApiRef, setFactTags, chat) {
7223
7223
  }
7224
7224
  function renderSourcesCell(params) {
7225
7225
  const fact = params.data;
7226
- const count2 = chunkD3ABKS7T_cjs.sourceDocCount(fact);
7226
+ const count2 = chunkHDPT7D6F_cjs.sourceDocCount(fact);
7227
7227
  if (!fact || count2 === 0) return /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-muted-foreground/40", children: "\u2014" });
7228
7228
  return /* @__PURE__ */ jsxRuntime.jsxs(
7229
7229
  "button",
7230
7230
  {
7231
7231
  type: "button",
7232
7232
  onClick: () => params.context?.openEdit?.(fact),
7233
- title: chunkD3ABKS7T_cjs.DEFAULT_FACT_COLUMN_LABELS.sourcedFrom(count2),
7233
+ title: chunkHDPT7D6F_cjs.DEFAULT_FACT_COLUMN_LABELS.sourcedFrom(count2),
7234
7234
  "data-testid": `facts-grid-sources-${fact.external_id}`,
7235
7235
  className: "inline-flex items-center gap-1 text-xs text-muted-foreground hover:text-foreground",
7236
7236
  children: [
@@ -7287,14 +7287,14 @@ function createFactPageColumns({
7287
7287
  onToggleConfirmed,
7288
7288
  onToggleShared
7289
7289
  }) {
7290
- const columns = chunkD3ABKS7T_cjs.createFactColumns({
7290
+ const columns = chunkHDPT7D6F_cjs.createFactColumns({
7291
7291
  onToggleInChat,
7292
7292
  isInChat,
7293
7293
  renderHeader: (params, colId) => /* @__PURE__ */ jsxRuntime.jsx(FactHeader, { params, colId }),
7294
7294
  renderRowActions: (fact, params) => {
7295
7295
  const ctx = params.context;
7296
7296
  return /* @__PURE__ */ jsxRuntime.jsx(
7297
- chunkD3ABKS7T_cjs.FactRowActions,
7297
+ chunkHDPT7D6F_cjs.FactRowActions,
7298
7298
  {
7299
7299
  onEdit: () => ctx?.openEdit?.(fact),
7300
7300
  canEdit: ctx?.canRewrite?.(fact) !== false,
@@ -7424,7 +7424,7 @@ function useFactsGrid({
7424
7424
  );
7425
7425
  const renderFactTags = react$1.useCallback(
7426
7426
  (fact, rowHeight) => /* @__PURE__ */ jsxRuntime.jsx(
7427
- chunkD3ABKS7T_cjs.FactLabelsCell,
7427
+ chunkHDPT7D6F_cjs.FactLabelsCell,
7428
7428
  {
7429
7429
  options: labelOptions,
7430
7430
  selectedIds: fact.tags.map((t) => t.tag_ext_id),
@@ -7789,7 +7789,7 @@ function ConnectedFactsPage() {
7789
7789
  };
7790
7790
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { ref: setFactSection, className: "relative flex h-full flex-col", "data-testid": "facts-page", children: [
7791
7791
  /* @__PURE__ */ jsxRuntime.jsx(
7792
- chunkD3ABKS7T_cjs.FactsToolbar,
7792
+ chunkHDPT7D6F_cjs.FactsToolbar,
7793
7793
  {
7794
7794
  count: filteredNotes.length,
7795
7795
  hasActiveFilters: filters.hasActiveFilters,
@@ -7818,7 +7818,7 @@ function ConnectedFactsPage() {
7818
7818
  onNewFact: composing && !editingId ? () => void 0 : composer.startNewFact,
7819
7819
  navSlotRef: setNavSlot,
7820
7820
  navigator: view === "table" ? /* @__PURE__ */ jsxRuntime.jsx(
7821
- chunkU4ZLFL6M_cjs.GridRowNavigator,
7821
+ chunkZA3ZELSH_cjs.GridRowNavigator,
7822
7822
  {
7823
7823
  gridApi,
7824
7824
  selectedId: editingId,
@@ -7829,7 +7829,7 @@ function ConnectedFactsPage() {
7829
7829
  ) : null,
7830
7830
  showToolbarRow: view !== "smart_search",
7831
7831
  tools: /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
7832
- view === "table" && /* @__PURE__ */ jsxRuntime.jsx(chunkD3ABKS7T_cjs.FactsFieldsButton, { getGridApi: () => gridApiRef.current }),
7832
+ view === "table" && /* @__PURE__ */ jsxRuntime.jsx(chunkHDPT7D6F_cjs.FactsFieldsButton, { getGridApi: () => gridApiRef.current }),
7833
7833
  view === "table" && /* @__PURE__ */ jsxRuntime.jsx(
7834
7834
  chunk33MKOWSA_cjs.RowDensityControl,
7835
7835
  {
@@ -7867,7 +7867,7 @@ function ConnectedFactsPage() {
7867
7867
  }
7868
7868
  ) }),
7869
7869
  /* @__PURE__ */ jsxRuntime.jsx(
7870
- chunkD3ABKS7T_cjs.FactComposer,
7870
+ chunkHDPT7D6F_cjs.FactComposer,
7871
7871
  {
7872
7872
  isOpen: composing,
7873
7873
  isEditing: !!editingId,
@@ -7897,7 +7897,7 @@ function ConnectedFactsPage() {
7897
7897
  reserveSourcesSpace: view === "gantt" || view === "calendar",
7898
7898
  citationContainer: factSection,
7899
7899
  renderDocumentPicker: (onSelect, selectedIds, onOpen, sourcesToggle, sourcesOpen) => /* @__PURE__ */ jsxRuntime.jsx(
7900
- chunkD3ABKS7T_cjs.FactSourcesRow,
7900
+ chunkHDPT7D6F_cjs.FactSourcesRow,
7901
7901
  {
7902
7902
  toggle: sourcesToggle,
7903
7903
  picker: /* @__PURE__ */ jsxRuntime.jsx(
@@ -7943,7 +7943,7 @@ function ConnectedFactsPage() {
7943
7943
  }
7944
7944
  ),
7945
7945
  dateInput: /* @__PURE__ */ jsxRuntime.jsx(
7946
- chunkD3ABKS7T_cjs.FactDateInput,
7946
+ chunkHDPT7D6F_cjs.FactDateInput,
7947
7947
  {
7948
7948
  value: composer.draftDateFields,
7949
7949
  onChange: composer.setDraftDateFields,
@@ -7953,7 +7953,7 @@ function ConnectedFactsPage() {
7953
7953
  }
7954
7954
  ),
7955
7955
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "scrollbar-subtle flex-1 overflow-y-auto pb-2", children: [
7956
- isLoading ? /* @__PURE__ */ jsxRuntime.jsx(chunkD3ABKS7T_cjs.FactsLoading, {}) : isError ? /* @__PURE__ */ jsxRuntime.jsx(chunkD3ABKS7T_cjs.FactsLoadError, { onRetry: () => refetch() }) : view === "smart_search" ? (
7956
+ isLoading ? /* @__PURE__ */ jsxRuntime.jsx(chunkHDPT7D6F_cjs.FactsLoading, {}) : isError ? /* @__PURE__ */ jsxRuntime.jsx(chunkHDPT7D6F_cjs.FactsLoadError, { onRetry: () => refetch() }) : view === "smart_search" ? (
7957
7957
  // Searches facts only (never documents). Kept before the empty-state guard so the
7958
7958
  // search UI is reachable even in an empty workspace.
7959
7959
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -7966,7 +7966,7 @@ function ConnectedFactsPage() {
7966
7966
  )
7967
7967
  ) : notes.length === 0 ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex min-h-full flex-col items-center justify-center", children: [
7968
7968
  /* @__PURE__ */ jsxRuntime.jsx(
7969
- chunkD3ABKS7T_cjs.FactsEmptyState,
7969
+ chunkHDPT7D6F_cjs.FactsEmptyState,
7970
7970
  {
7971
7971
  onUseExample: (text2) => {
7972
7972
  composer.setDraft(text2);
@@ -7977,7 +7977,7 @@ function ConnectedFactsPage() {
7977
7977
  ),
7978
7978
  /* @__PURE__ */ jsxRuntime.jsx(FactsFindInDocuments, {})
7979
7979
  ] }) : view === "calendar" ? /* @__PURE__ */ jsxRuntime.jsx(
7980
- chunkD3ABKS7T_cjs.FactsCalendar,
7980
+ chunkHDPT7D6F_cjs.FactsCalendar,
7981
7981
  {
7982
7982
  facts: filteredNotes,
7983
7983
  onSelect: (n) => openEditIfAllowed(n),
@@ -7986,7 +7986,7 @@ function ConnectedFactsPage() {
7986
7986
  navigatorTotal: filteredNotes.length
7987
7987
  }
7988
7988
  ) : view === "gantt" ? /* @__PURE__ */ jsxRuntime.jsx(
7989
- chunkD3ABKS7T_cjs.FactsGanttPane,
7989
+ chunkHDPT7D6F_cjs.FactsGanttPane,
7990
7990
  {
7991
7991
  items: ganttItems,
7992
7992
  labelWidth: pageView.labelWidth,
@@ -8036,7 +8036,7 @@ function ConnectedFactsPage() {
8036
8036
  )
8037
8037
  ] }),
8038
8038
  selectable && notes.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(
8039
- chunkD3ABKS7T_cjs.FactsBulkBar,
8039
+ chunkHDPT7D6F_cjs.FactsBulkBar,
8040
8040
  {
8041
8041
  count: selection.selectedFacts.length,
8042
8042
  onClear: selection.clearSelection,
@@ -8095,7 +8095,7 @@ function useConnectedShellWorkspaces(options2 = {}) {
8095
8095
  function ConnectedSsoDisconnect() {
8096
8096
  const { client } = react.useAccountClient();
8097
8097
  const { data: profile } = react.useProfile();
8098
- const auth = chunkSDXK2COQ_cjs.useAuthPages();
8098
+ const auth = chunkO2ATVRRO_cjs.useAuthPages();
8099
8099
  const { notify: notify17 } = chunkUIXY4HKM_cjs.useBlocksEnvironment();
8100
8100
  const [open, setOpen] = react$1.useState(false);
8101
8101
  const [step, setStep] = react$1.useState("email");
@@ -8240,7 +8240,7 @@ function ConnectedBoxPortalSection() {
8240
8240
  function ServerConnectionRow({ onRefresh, ...status }) {
8241
8241
  const { runtimeConfig } = chunkUIXY4HKM_cjs.useBlocksEnvironment();
8242
8242
  const [isRefreshing, setIsRefreshing] = react$1.useState(false);
8243
- const view = chunkMMSHLHTA_cjs.serverConnectionView(status, runtimeConfig.deploymentDomain || "server");
8243
+ const view = chunk6OXR4R6J_cjs.serverConnectionView(status, runtimeConfig.deploymentDomain || "server");
8244
8244
  const refresh = async () => {
8245
8245
  setIsRefreshing(true);
8246
8246
  try {
@@ -8250,7 +8250,7 @@ function ServerConnectionRow({ onRefresh, ...status }) {
8250
8250
  }
8251
8251
  };
8252
8252
  return /* @__PURE__ */ jsxRuntime.jsx(chunkQQMMCXBP_cjs.SettingsRow, { label: "Server connection", description: view.description, children: /* @__PURE__ */ jsxRuntime.jsx(
8253
- chunkMMSHLHTA_cjs.ServerConnectionButton,
8253
+ chunk6OXR4R6J_cjs.ServerConnectionButton,
8254
8254
  {
8255
8255
  state: view.state,
8256
8256
  label: view.label,
@@ -8273,14 +8273,14 @@ function ConnectedAccountSettings({
8273
8273
  }) {
8274
8274
  const [logoutOpen, setLogoutOpen] = react$1.useState(false);
8275
8275
  return /* @__PURE__ */ jsxRuntime.jsxs(chunkQQMMCXBP_cjs.SettingsPanel, { className: "max-w-2xl", children: [
8276
- /* @__PURE__ */ jsxRuntime.jsx(chunkSDXK2COQ_cjs.ConnectedProfileCard, { avatarClassName, nameBadge: profileBadge }),
8276
+ /* @__PURE__ */ jsxRuntime.jsx(chunkO2ATVRRO_cjs.ConnectedProfileCard, { avatarClassName, nameBadge: profileBadge }),
8277
8277
  /* @__PURE__ */ jsxRuntime.jsx(ConnectedBoxPortalSection, {}),
8278
8278
  /* @__PURE__ */ jsxRuntime.jsxs(chunkQQMMCXBP_cjs.SettingsDisclosure, { title: "More", testId: "account-more-settings", children: [
8279
8279
  /* @__PURE__ */ jsxRuntime.jsx(ConnectedSsoDisconnect, {}),
8280
- /* @__PURE__ */ jsxRuntime.jsx(chunkSDXK2COQ_cjs.ConnectedSecuritySection, { children: securityRows }),
8280
+ /* @__PURE__ */ jsxRuntime.jsx(chunkO2ATVRRO_cjs.ConnectedSecuritySection, { children: securityRows }),
8281
8281
  moreSettings,
8282
8282
  /* @__PURE__ */ jsxRuntime.jsx(
8283
- chunkSDXK2COQ_cjs.ConnectedIdentityVerification,
8283
+ chunkO2ATVRRO_cjs.ConnectedIdentityVerification,
8284
8284
  {
8285
8285
  collapsible: true,
8286
8286
  onManageBilling,
@@ -8290,7 +8290,7 @@ function ConnectedAccountSettings({
8290
8290
  ] }),
8291
8291
  /* @__PURE__ */ jsxRuntime.jsx(chunkQQMMCXBP_cjs.SettingsSection, { icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Wifi, {}), title: "Session", children: /* @__PURE__ */ jsxRuntime.jsxs(chunkQQMMCXBP_cjs.SettingsCard, { children: [
8292
8292
  connection && /* @__PURE__ */ jsxRuntime.jsx(ServerConnectionRow, { ...connection }),
8293
- /* @__PURE__ */ jsxRuntime.jsx(chunkSDXK2COQ_cjs.ConnectedSessionsRow, { renderSessionIcon }),
8293
+ /* @__PURE__ */ jsxRuntime.jsx(chunkO2ATVRRO_cjs.ConnectedSessionsRow, { renderSessionIcon }),
8294
8294
  /* @__PURE__ */ jsxRuntime.jsx(chunkQQMMCXBP_cjs.SettingsRow, { label: "Logout", description: "Sign out of your account on this device.", children: /* @__PURE__ */ jsxRuntime.jsxs(
8295
8295
  ui.Button,
8296
8296
  {
@@ -8307,9 +8307,9 @@ function ConnectedAccountSettings({
8307
8307
  }
8308
8308
  ) })
8309
8309
  ] }) }),
8310
- /* @__PURE__ */ jsxRuntime.jsx(chunkSDXK2COQ_cjs.ConnectedDangerZone, { renderSubscriptionLink }),
8310
+ /* @__PURE__ */ jsxRuntime.jsx(chunkO2ATVRRO_cjs.ConnectedDangerZone, { renderSubscriptionLink }),
8311
8311
  !onLogout && /* @__PURE__ */ jsxRuntime.jsx(
8312
- chunkSDXK2COQ_cjs.ConnectedLogoutDialog,
8312
+ chunkO2ATVRRO_cjs.ConnectedLogoutDialog,
8313
8313
  {
8314
8314
  open: logoutOpen,
8315
8315
  onClose: () => setLogoutOpen(false),
@@ -8617,7 +8617,7 @@ function ConnectedPrivacySettings({
8617
8617
  }
8618
8618
  )
8619
8619
  ] }) }),
8620
- /* @__PURE__ */ jsxRuntime.jsx(chunkSDXK2COQ_cjs.ConnectedNotificationPreferences, {})
8620
+ /* @__PURE__ */ jsxRuntime.jsx(chunkO2ATVRRO_cjs.ConnectedNotificationPreferences, {})
8621
8621
  ] });
8622
8622
  }
8623
8623
  var PROVIDER_NAMES = {
@@ -8658,13 +8658,13 @@ var COLUMNS = [
8658
8658
  flex: 1,
8659
8659
  minWidth: 120,
8660
8660
  cellRenderer: (params) => isStandard(params.data) ? /* @__PURE__ */ jsxRuntime.jsx(
8661
- chunkMMSHLHTA_cjs.ModelProviderLabel,
8661
+ chunk6OXR4R6J_cjs.ModelProviderLabel,
8662
8662
  {
8663
8663
  logo: /* @__PURE__ */ jsxRuntime.jsx(ui.ArbiIcon, { size: 14, "aria-label": "ARBI", className: "flex-shrink-0 rounded-sm" }),
8664
8664
  children: "ARBI CITY"
8665
8665
  }
8666
8666
  ) : /* @__PURE__ */ jsxRuntime.jsx(
8667
- chunkMMSHLHTA_cjs.ModelProviderLabel,
8667
+ chunk6OXR4R6J_cjs.ModelProviderLabel,
8668
8668
  {
8669
8669
  logo: /* @__PURE__ */ jsxRuntime.jsx(ui.ProviderIcon, { modelName: params.data?.model_name, provider: params.value, size: 14 }),
8670
8670
  children: PROVIDER_NAMES[params.value ?? ""] || params.value || "\u2014"
@@ -8741,7 +8741,7 @@ function ConnectedPremiumModels() {
8741
8741
  );
8742
8742
  if (premiumModels.length === 0) return null;
8743
8743
  return /* @__PURE__ */ jsxRuntime.jsx(chunkQQMMCXBP_cjs.SettingsPanel, { className: "max-w-2xl space-y-4", children: /* @__PURE__ */ jsxRuntime.jsx(chunkQQMMCXBP_cjs.SettingsSection, { title: "Premium models", children: /* @__PURE__ */ jsxRuntime.jsx(chunkQQMMCXBP_cjs.SettingsCard, { className: "space-y-0", children: /* @__PURE__ */ jsxRuntime.jsx(
8744
- chunkMMSHLHTA_cjs.PremiumModelsFrame,
8744
+ chunk6OXR4R6J_cjs.PremiumModelsFrame,
8745
8745
  {
8746
8746
  enabled: premiumModel !== "",
8747
8747
  onEnabledChange: (enabled) => {
@@ -9069,10 +9069,10 @@ function ConnectedAppsSettings({
9069
9069
  }
9070
9070
  };
9071
9071
  if (isLoading) {
9072
- return /* @__PURE__ */ jsxRuntime.jsx(chunkMMSHLHTA_cjs.ConnectionsLoading, { message: "Loading connected apps\u2026" });
9072
+ return /* @__PURE__ */ jsxRuntime.jsx(chunk6OXR4R6J_cjs.ConnectionsLoading, { message: "Loading connected apps\u2026" });
9073
9073
  }
9074
9074
  if (catalogError) {
9075
- return /* @__PURE__ */ jsxRuntime.jsx(chunkMMSHLHTA_cjs.ConnectionsError, { message: "Failed to load connector catalog. Please refresh and try again." });
9075
+ return /* @__PURE__ */ jsxRuntime.jsx(chunk6OXR4R6J_cjs.ConnectionsError, { message: "Failed to load connector catalog. Please refresh and try again." });
9076
9076
  }
9077
9077
  const visibleCatalog = catalog.filter((c) => isVendorVisible(c.vendor_key));
9078
9078
  const sharePointVisible = isVendorVisible("microsoft_sharepoint");
@@ -9081,7 +9081,7 @@ function ConnectedAppsSettings({
9081
9081
  (c) => !react.isMailboxSyncVendor(c.vendor_key) && !react.isSharePointVendor(c.vendor_key)
9082
9082
  );
9083
9083
  const renderCard = (entry) => /* @__PURE__ */ jsxRuntime.jsx(
9084
- chunkMMSHLHTA_cjs.ConnectionCard,
9084
+ chunk6OXR4R6J_cjs.ConnectionCard,
9085
9085
  {
9086
9086
  connection: toConnectionCardView(entry, connectedByVendor[entry.vendor_key], {
9087
9087
  isDisconnecting: disconnect.isPending && disconnect.variables?.vendorKey === entry.vendor_key,
@@ -9209,7 +9209,7 @@ function ConnectedAppsSettings({
9209
9209
  }
9210
9210
  )
9211
9211
  ] }),
9212
- catalog.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx(chunkQQMMCXBP_cjs.SettingsCard, { children: /* @__PURE__ */ jsxRuntime.jsx(chunkMMSHLHTA_cjs.ConnectionsEmpty, { message: "No connectors available yet." }) }) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
9212
+ catalog.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx(chunkQQMMCXBP_cjs.SettingsCard, { children: /* @__PURE__ */ jsxRuntime.jsx(chunk6OXR4R6J_cjs.ConnectionsEmpty, { message: "No connectors available yet." }) }) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
9213
9213
  renderGroup("Email & Drive", EMAIL_AND_DRIVE_SUBTITLE, /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Mail, {}), emailCatalog),
9214
9214
  renderGroup(
9215
9215
  "Apps & Integrations (MCP)",
@@ -9662,7 +9662,7 @@ function ConnectedStorageProjectCard({
9662
9662
  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." })
9663
9663
  ] }),
9664
9664
  /* @__PURE__ */ jsxRuntime.jsx(
9665
- chunkMMSHLHTA_cjs.UsageToggle,
9665
+ chunk6OXR4R6J_cjs.UsageToggle,
9666
9666
  {
9667
9667
  value: view,
9668
9668
  onChange: setView,
@@ -9747,7 +9747,7 @@ function ConnectedStorageProjectCard({
9747
9747
  ] })
9748
9748
  ] }),
9749
9749
  view === "largest" && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-3", children: [
9750
- /* @__PURE__ */ jsxRuntime.jsx(chunkMMSHLHTA_cjs.UsageToggle, { value: kind, onChange: setKind, options: KIND_FILTERS, ariaLabel: "Kind" }),
9750
+ /* @__PURE__ */ jsxRuntime.jsx(chunk6OXR4R6J_cjs.UsageToggle, { value: kind, onChange: setKind, options: KIND_FILTERS, ariaLabel: "Kind" }),
9751
9751
  largest.isLoading ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-muted-foreground", children: "Loading\u2026" }) : /* @__PURE__ */ jsxRuntime.jsx(
9752
9752
  StorageItemsTable,
9753
9753
  {
@@ -10006,7 +10006,7 @@ function ConnectedSettingsPage({
10006
10006
  }, [requested]);
10007
10007
  const controlled = section !== void 0;
10008
10008
  return /* @__PURE__ */ jsxRuntime.jsx(
10009
- chunkMMSHLHTA_cjs.SettingsPage,
10009
+ chunk6OXR4R6J_cjs.SettingsPage,
10010
10010
  {
10011
10011
  ...page,
10012
10012
  sections,
@@ -10038,7 +10038,7 @@ function UsageSettings({ icon: icon2 }) {
10038
10038
  description: "AI usage today, in \xA3 (ex VAT).",
10039
10039
  testId: "settings-usage",
10040
10040
  children: /* @__PURE__ */ jsxRuntime.jsx(
10041
- chunkMMSHLHTA_cjs.UsageSummary,
10041
+ chunk6OXR4R6J_cjs.UsageSummary,
10042
10042
  {
10043
10043
  stats: [
10044
10044
  {
@@ -10156,7 +10156,7 @@ function ReaderAppearance({ bundle }) {
10156
10156
  const { defaults } = bundle;
10157
10157
  const isDefault = state.pairingId === defaults.pairingId && state.colorScheme === defaults.colorScheme && state.textSize === defaults.textSize;
10158
10158
  return /* @__PURE__ */ jsxRuntime.jsx(
10159
- chunkMMSHLHTA_cjs.AppearanceSettings,
10159
+ chunk6OXR4R6J_cjs.AppearanceSettings,
10160
10160
  {
10161
10161
  colorScheme: state.colorScheme,
10162
10162
  onColorSchemeChange: state.setColorScheme,
@@ -10376,7 +10376,7 @@ function SwitchRow({ row: row2 }) {
10376
10376
  const { on, set } = react.useFeatureSwitch(row2.feature);
10377
10377
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
10378
10378
  /* @__PURE__ */ jsxRuntime.jsx(
10379
- chunkMMSHLHTA_cjs.SettingsSwitchRow,
10379
+ chunk6OXR4R6J_cjs.SettingsSwitchRow,
10380
10380
  {
10381
10381
  id: row2.id ?? row2.feature,
10382
10382
  testId: row2.testId ?? `toggle-${row2.feature}`,
@@ -10387,14 +10387,14 @@ function SwitchRow({ row: row2 }) {
10387
10387
  onCheckedChange: set
10388
10388
  }
10389
10389
  ),
10390
- on && row2.rows && row2.rows.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(chunkMMSHLHTA_cjs.SettingsSwitchGroup, { children: row2.rows.map((sub) => /* @__PURE__ */ jsxRuntime.jsx(FeatureRow, { row: sub }, sub.feature)) })
10390
+ on && row2.rows && row2.rows.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(chunk6OXR4R6J_cjs.SettingsSwitchGroup, { children: row2.rows.map((sub) => /* @__PURE__ */ jsxRuntime.jsx(FeatureRow, { row: sub }, sub.feature)) })
10391
10391
  ] });
10392
10392
  }
10393
10393
  function CallsRow({ row: row2 }) {
10394
10394
  const { on, set } = react.useFeatureSwitch(row2.feature);
10395
- const state = chunkMMSHLHTA_cjs.callsSwitchState(react.useCallsConfig(), on);
10395
+ const state = chunk6OXR4R6J_cjs.callsSwitchState(react.useCallsConfig(), on);
10396
10396
  return /* @__PURE__ */ jsxRuntime.jsx(
10397
- chunkMMSHLHTA_cjs.SettingsSwitchRow,
10397
+ chunk6OXR4R6J_cjs.SettingsSwitchRow,
10398
10398
  {
10399
10399
  id: row2.id ?? row2.feature,
10400
10400
  testId: row2.testId ?? `toggle-${row2.feature}`,
@@ -10598,7 +10598,7 @@ function ConnectedRecoveryKeyDialog({
10598
10598
  const arbi = react.useArbi();
10599
10599
  const { user, isSso: isSsoMode } = react.useArbiSession();
10600
10600
  const userEmail = user?.email;
10601
- const sso = chunkSDXK2COQ_cjs.useSsoSignIn();
10601
+ const sso = chunkO2ATVRRO_cjs.useSsoSignIn();
10602
10602
  const handleVerify = async () => {
10603
10603
  setError(null);
10604
10604
  if (!password) {
@@ -10755,7 +10755,7 @@ function ConnectedMailOfflineSettings() {
10755
10755
  ] });
10756
10756
  }
10757
10757
  var JUST_CONNECTED_VIEW = "settings.justConnected";
10758
- var identityFeeLabel = (status) => `${chunkDDIV3MYQ_cjs.formatMoney(status.price_pence, status.currency.toLowerCase())} incl. VAT`;
10758
+ var identityFeeLabel = (status) => `${chunkBAJNXRI5_cjs.formatMoney(status.price_pence, status.currency.toLowerCase())} incl. VAT`;
10759
10759
  var openLogout = () => chunkJDFBEGQO_cjs.openDialog("logout");
10760
10760
  function RecoveryKeyRow() {
10761
10761
  const [open, setOpen] = react$1.useState(false);
@@ -10846,7 +10846,7 @@ function useSettingsSections({
10846
10846
  ] })
10847
10847
  }),
10848
10848
  // "Work offline" flips the one offline switch even while the server is reachable.
10849
- actions: /* @__PURE__ */ jsxRuntime.jsx(chunkMMSHLHTA_cjs.WorkOfflineToggle, { isOffline: forceOffline, onToggle: setWorkOffline })
10849
+ actions: /* @__PURE__ */ jsxRuntime.jsx(chunk6OXR4R6J_cjs.WorkOfflineToggle, { isOffline: forceOffline, onToggle: setWorkOffline })
10850
10850
  },
10851
10851
  ...showMail ? [
10852
10852
  mailSettingsSection({
@@ -10993,7 +10993,7 @@ function ConnectedDeploymentStorage() {
10993
10993
  deployment.unattributed_bytes > 0 && ` \xB7 ${chunk2VJBIBPE_cjs.formatBytes(deployment.unattributed_bytes)} not owned by any ${ui.entityNoun("PROJECT")}`
10994
10994
  ] }),
10995
10995
  trend.dates.length > 1 && /* @__PURE__ */ jsxRuntime.jsx(
10996
- chunkMMSHLHTA_cjs.UsageLineChart,
10996
+ chunk6OXR4R6J_cjs.UsageLineChart,
10997
10997
  {
10998
10998
  dates: trend.dates,
10999
10999
  series: trend.series,
@@ -11002,7 +11002,7 @@ function ConnectedDeploymentStorage() {
11002
11002
  }
11003
11003
  ),
11004
11004
  /* @__PURE__ */ jsxRuntime.jsx(
11005
- chunkMMSHLHTA_cjs.UsageToggle,
11005
+ chunk6OXR4R6J_cjs.UsageToggle,
11006
11006
  {
11007
11007
  value: view,
11008
11008
  onChange: setView,
@@ -11861,7 +11861,7 @@ function ConnectedProjectEntity({
11861
11861
  subscription = "none",
11862
11862
  ...props
11863
11863
  }) {
11864
- const { stripeEnabled } = chunkDDIV3MYQ_cjs.useBillingSupport();
11864
+ const { stripeEnabled } = chunkBAJNXRI5_cjs.useBillingSupport();
11865
11865
  return /* @__PURE__ */ jsxRuntime.jsx(
11866
11866
  ui.ProjectEntity,
11867
11867
  {
@@ -11954,7 +11954,7 @@ function StripeCheckoutModal({
11954
11954
  const [clientSecret, setClientSecret] = react$1.useState(null);
11955
11955
  const [isCreating, setIsCreating] = react$1.useState(false);
11956
11956
  const [stripe, setStripe] = react$1.useState(null);
11957
- const { stripeEnabled, checkout } = chunkDDIV3MYQ_cjs.useBillingSupport();
11957
+ const { stripeEnabled, checkout } = chunkBAJNXRI5_cjs.useBillingSupport();
11958
11958
  const createCheckout = react.useCreateProjectCheckout();
11959
11959
  const refreshProject = react.useRefreshProject();
11960
11960
  const invalidateProjects = react.useInvalidateProjects();
@@ -11983,7 +11983,7 @@ function StripeCheckoutModal({
11983
11983
  projectExtId,
11984
11984
  body: {
11985
11985
  interval,
11986
- packs: chunkDDIV3MYQ_cjs.PRO_PACKS,
11986
+ packs: chunkBAJNXRI5_cjs.PRO_PACKS,
11987
11987
  ai_blocks: aiBlocks,
11988
11988
  storage_blocks: storageBlocks,
11989
11989
  addon_budget_pence: addonBudgetPence,
@@ -11999,7 +11999,7 @@ function StripeCheckoutModal({
11999
11999
  },
12000
12000
  onError: (error) => {
12001
12001
  console.error("Failed to create checkout session:", error);
12002
- const reason = chunkDDIV3MYQ_cjs.apiErrorDetail(error)?.message;
12002
+ const reason = chunkBAJNXRI5_cjs.apiErrorDetail(error)?.message;
12003
12003
  shell.notify.error(
12004
12004
  reason ? `Checkout didn't start: ${reason}` : "Checkout didn't start. Try again."
12005
12005
  );
@@ -12032,9 +12032,9 @@ function StripeCheckoutModal({
12032
12032
  }
12033
12033
  }, [open]);
12034
12034
  const isStripeConfigured = stripeEnabled;
12035
- const vatNote = quote ? `${chunkDDIV3MYQ_cjs.checkoutItemsLabel(aiBlocks, storageBlocks)} \xB7 ${chunkDDIV3MYQ_cjs.quoteTotalLine(quote)}` : null;
12035
+ const vatNote = quote ? `${chunkBAJNXRI5_cjs.checkoutItemsLabel(aiBlocks, storageBlocks)} \xB7 ${chunkBAJNXRI5_cjs.quoteTotalLine(quote)}` : null;
12036
12036
  return /* @__PURE__ */ jsxRuntime.jsx(
12037
- chunkMMSHLHTA_cjs.CheckoutDialogFrame,
12037
+ chunk6OXR4R6J_cjs.CheckoutDialogFrame,
12038
12038
  {
12039
12039
  open,
12040
12040
  onOpenChange,
@@ -12044,7 +12044,7 @@ function StripeCheckoutModal({
12044
12044
  children: clientSecret && !!stripe && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
12045
12045
  vatNote && /* @__PURE__ */ jsxRuntime.jsx("p", { "data-testid": "checkout-vat-note", className: "mb-4 text-sm text-muted-foreground", children: vatNote }),
12046
12046
  checkout?.render(stripe, { clientSecret, onComplete: handleComplete }),
12047
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-3", children: /* @__PURE__ */ jsxRuntime.jsxs(chunkMMSHLHTA_cjs.MoreInfo, { title: "Paying", label: "Payment help", testId: "checkout-payment-help", children: [
12047
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-3", children: /* @__PURE__ */ jsxRuntime.jsxs(chunk6OXR4R6J_cjs.MoreInfo, { title: "Paying", label: "Payment help", testId: "checkout-payment-help", children: [
12048
12048
  /* @__PURE__ */ jsxRuntime.jsx("p", { "data-testid": "checkout-decline-note", children: "Card declined? Nothing was charged. Try again or use another card." }),
12049
12049
  /* @__PURE__ */ jsxRuntime.jsx("p", { "data-testid": "checkout-vat-id-note", children: "No VAT number? Leave \u2018purchasing as a business\u2019 unticked." }),
12050
12050
  /* @__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." })
@@ -12086,31 +12086,31 @@ function defaultBillingCountry(languages = typeof navigator === "undefined" ? []
12086
12086
  }
12087
12087
  var choiceForPacks = (packs) => packs > 0 ? "pro" : "free";
12088
12088
  function proCard(selected, isAnnual, prices) {
12089
- const packs = chunkDDIV3MYQ_cjs.PLAN_CHOICE_PACKS.pro;
12089
+ const packs = chunkBAJNXRI5_cjs.PLAN_CHOICE_PACKS.pro;
12090
12090
  const currency = prices.monthly?.currency ?? prices.annual?.currency ?? "gbp";
12091
- const monthly = chunkDDIV3MYQ_cjs.packPrice(prices.monthly, packs);
12092
- const annual = chunkDDIV3MYQ_cjs.packPrice(prices.annual, packs);
12091
+ const monthly = chunkBAJNXRI5_cjs.packPrice(prices.monthly, packs);
12092
+ const annual = chunkBAJNXRI5_cjs.packPrice(prices.annual, packs);
12093
12093
  const current = isAnnual ? annual : monthly;
12094
12094
  const effectiveMonthly = current ? isAnnual ? current.amount_ex_vat / 12 : current.amount_ex_vat : null;
12095
12095
  return {
12096
12096
  id: packs,
12097
- name: chunkDDIV3MYQ_cjs.planNameForPacks(packs),
12097
+ name: chunkBAJNXRI5_cjs.planNameForPacks(packs),
12098
12098
  isSelected: selected === "pro",
12099
12099
  price: current && effectiveMonthly != null ? {
12100
12100
  annual: isAnnual,
12101
- yearlyStrike: isAnnual && monthly && monthly.amount_ex_vat * 12 > current.amount_ex_vat ? chunkDDIV3MYQ_cjs.formatMoney(monthly.amount_ex_vat * 12, currency) : void 0,
12102
- yearlyTotal: isAnnual ? chunkDDIV3MYQ_cjs.formatMoney(current.amount_ex_vat, currency) : void 0,
12101
+ yearlyStrike: isAnnual && monthly && monthly.amount_ex_vat * 12 > current.amount_ex_vat ? chunkBAJNXRI5_cjs.formatMoney(monthly.amount_ex_vat * 12, currency) : void 0,
12102
+ yearlyTotal: isAnnual ? chunkBAJNXRI5_cjs.formatMoney(current.amount_ex_vat, currency) : void 0,
12103
12103
  intervalLabel: isAnnual ? "/yr + VAT" : "/mo",
12104
- monthly: chunkDDIV3MYQ_cjs.formatMoney(Math.round(effectiveMonthly), currency),
12104
+ monthly: chunkBAJNXRI5_cjs.formatMoney(Math.round(effectiveMonthly), currency),
12105
12105
  taxLabel: "+ VAT",
12106
12106
  // The inclusive figure for a UK customer, right under the headline.
12107
- note: `${chunkDDIV3MYQ_cjs.formatMoney(current.amount, currency)}${isAnnual ? "/yr" : "/mo"} incl. UK VAT`
12107
+ note: `${chunkBAJNXRI5_cjs.formatMoney(current.amount, currency)}${isAnnual ? "/yr" : "/mo"} incl. UK VAT`
12108
12108
  } : void 0,
12109
12109
  features: [
12110
- `${react.formatGbp(chunkDDIV3MYQ_cjs.PRO_AI_GBP)} of AI usage / month`,
12111
- `${chunkDDIV3MYQ_cjs.PRO_STORAGE_GB} GB storage`,
12110
+ `${react.formatGbp(chunkBAJNXRI5_cjs.PRO_AI_GBP)} of AI usage / month`,
12111
+ `${chunkBAJNXRI5_cjs.PRO_STORAGE_GB} GB storage`,
12112
12112
  "Unlimited collaborators",
12113
- ...isAnnual ? [chunkDDIV3MYQ_cjs.ANNUAL_PREMIUM_AI_NOTE] : []
12113
+ ...isAnnual ? [chunkBAJNXRI5_cjs.ANNUAL_PREMIUM_AI_NOTE] : []
12114
12114
  ]
12115
12115
  };
12116
12116
  }
@@ -12122,9 +12122,9 @@ function buildPlanCards(selected, isAnnual, prices, isOnFree) {
12122
12122
  isCurrent: isOnFree,
12123
12123
  isSelected: selected === "free" && !isOnFree,
12124
12124
  features: [
12125
- `${react.formatGbp(chunkDDIV3MYQ_cjs.FREE_AI_GBP)} of AI usage / month`,
12126
- `${chunkDDIV3MYQ_cjs.FREE_STORAGE_MB.toLocaleString("en-US")} MB storage`,
12127
- chunkDDIV3MYQ_cjs.FREE_COLLABORATORS === 0 ? "Just you" : `${chunkDDIV3MYQ_cjs.FREE_COLLABORATORS} collaborators`
12125
+ `${react.formatGbp(chunkBAJNXRI5_cjs.FREE_AI_GBP)} of AI usage / month`,
12126
+ `${chunkBAJNXRI5_cjs.FREE_STORAGE_MB.toLocaleString("en-US")} MB storage`,
12127
+ chunkBAJNXRI5_cjs.FREE_COLLABORATORS === 0 ? "Just you" : `${chunkBAJNXRI5_cjs.FREE_COLLABORATORS} collaborators`
12128
12128
  ]
12129
12129
  };
12130
12130
  return [free, proCard(selected, isAnnual, prices)];
@@ -12137,7 +12137,7 @@ function PlanChoiceCards({
12137
12137
  isOnFree = false
12138
12138
  }) {
12139
12139
  return /* @__PURE__ */ jsxRuntime.jsx(
12140
- chunkMMSHLHTA_cjs.PlanCardGrid,
12140
+ chunk6OXR4R6J_cjs.PlanCardGrid,
12141
12141
  {
12142
12142
  plans: buildPlanCards(selected, isAnnual, prices, isOnFree),
12143
12143
  onSelect: (id) => onSelect(choiceForPacks(id))
@@ -12146,13 +12146,13 @@ function PlanChoiceCards({
12146
12146
  }
12147
12147
  function PlanInfoPopover2() {
12148
12148
  const { openSettings } = chunkUIXY4HKM_cjs.useBlocksEnvironment();
12149
- return /* @__PURE__ */ jsxRuntime.jsx(chunkMMSHLHTA_cjs.PlanInfoPopover, { onOpenModelList: () => openSettings("chat") });
12149
+ return /* @__PURE__ */ jsxRuntime.jsx(chunk6OXR4R6J_cjs.PlanInfoPopover, { onOpenModelList: () => openSettings("chat") });
12150
12150
  }
12151
12151
  function CheckoutAddonBudget({
12152
12152
  value,
12153
12153
  onChange
12154
12154
  }) {
12155
- const budget = chunkDDIV3MYQ_cjs.parseBudgetPounds(value);
12155
+ const budget = chunkBAJNXRI5_cjs.parseBudgetPounds(value);
12156
12156
  return /* @__PURE__ */ jsxRuntime.jsxs(
12157
12157
  "div",
12158
12158
  {
@@ -12175,7 +12175,7 @@ function CheckoutAddonBudget({
12175
12175
  step: 25,
12176
12176
  className: "h-8 w-24",
12177
12177
  value,
12178
- placeholder: String(chunkDDIV3MYQ_cjs.DEFAULT_SPEND_CAP_PENCE / 100),
12178
+ placeholder: String(chunkBAJNXRI5_cjs.DEFAULT_SPEND_CAP_PENCE / 100),
12179
12179
  onChange: (e) => onChange(e.target.value),
12180
12180
  "aria-invalid": budget === void 0,
12181
12181
  "data-testid": "checkout-addon-budget-input"
@@ -12193,7 +12193,7 @@ function BlockStepper({
12193
12193
  onChange,
12194
12194
  testId
12195
12195
  }) {
12196
- const set = (n) => onChange(Math.max(0, Math.min(chunkDDIV3MYQ_cjs.MAX_CHECKOUT_BLOCKS, n)));
12196
+ const set = (n) => onChange(Math.max(0, Math.min(chunkBAJNXRI5_cjs.MAX_CHECKOUT_BLOCKS, n)));
12197
12197
  return /* @__PURE__ */ jsxRuntime.jsxs(
12198
12198
  "div",
12199
12199
  {
@@ -12237,7 +12237,7 @@ function BlockStepper({
12237
12237
  className: "size-8",
12238
12238
  "aria-label": `More: ${label}`,
12239
12239
  onClick: () => set(value + 1),
12240
- disabled: value >= chunkDDIV3MYQ_cjs.MAX_CHECKOUT_BLOCKS,
12240
+ disabled: value >= chunkBAJNXRI5_cjs.MAX_CHECKOUT_BLOCKS,
12241
12241
  "data-testid": `${testId}-increment`,
12242
12242
  children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Plus, { className: "size-4" })
12243
12243
  }
@@ -12254,8 +12254,8 @@ function CheckoutAddonBlocks({
12254
12254
  onStorageBlocksChange,
12255
12255
  price
12256
12256
  }) {
12257
- const ai = chunkDDIV3MYQ_cjs.addonPrice(price, "ai_usage");
12258
- const storage = chunkDDIV3MYQ_cjs.addonPrice(price, "storage");
12257
+ const ai = chunkBAJNXRI5_cjs.addonPrice(price, "ai_usage");
12258
+ const storage = chunkBAJNXRI5_cjs.addonPrice(price, "storage");
12259
12259
  return /* @__PURE__ */ jsxRuntime.jsxs(
12260
12260
  "div",
12261
12261
  {
@@ -12265,8 +12265,8 @@ function CheckoutAddonBlocks({
12265
12265
  /* @__PURE__ */ jsxRuntime.jsx(
12266
12266
  BlockStepper,
12267
12267
  {
12268
- label: `+${react.formatGbp(ai?.ai_gbp || chunkDDIV3MYQ_cjs.ADDON_BLOCK_AI_GBP)} of AI usage`,
12269
- priceText: chunkDDIV3MYQ_cjs.checkoutBlockPriceText(price, "ai_usage"),
12268
+ label: `+${react.formatGbp(ai?.ai_gbp || chunkBAJNXRI5_cjs.ADDON_BLOCK_AI_GBP)} of AI usage`,
12269
+ priceText: chunkBAJNXRI5_cjs.checkoutBlockPriceText(price, "ai_usage"),
12270
12270
  value: aiBlocks,
12271
12271
  onChange: onAiBlocksChange,
12272
12272
  testId: "checkout-ai-blocks"
@@ -12275,8 +12275,8 @@ function CheckoutAddonBlocks({
12275
12275
  /* @__PURE__ */ jsxRuntime.jsx(
12276
12276
  BlockStepper,
12277
12277
  {
12278
- label: `+${storage?.storage_gb || chunkDDIV3MYQ_cjs.STORAGE_BLOCK_GB} GB storage`,
12279
- priceText: chunkDDIV3MYQ_cjs.checkoutBlockPriceText(price, "storage"),
12278
+ label: `+${storage?.storage_gb || chunkBAJNXRI5_cjs.STORAGE_BLOCK_GB} GB storage`,
12279
+ priceText: chunkBAJNXRI5_cjs.checkoutBlockPriceText(price, "storage"),
12280
12280
  value: storageBlocks,
12281
12281
  onChange: onStorageBlocksChange,
12282
12282
  testId: "checkout-storage-blocks"
@@ -12338,7 +12338,7 @@ function CheckoutTotal({
12338
12338
  className: "text-sm font-medium text-foreground",
12339
12339
  "data-testid": "checkout-total",
12340
12340
  "aria-live": "polite",
12341
- children: state.quote && !state.isLoading ? chunkDDIV3MYQ_cjs.quoteTotalLine(state.quote) : state.isLoading ? "Calculating total\u2026" : state.error
12341
+ children: state.quote && !state.isLoading ? chunkBAJNXRI5_cjs.quoteTotalLine(state.quote) : state.isLoading ? "Calculating total\u2026" : state.error
12342
12342
  }
12343
12343
  )
12344
12344
  ] });
@@ -12371,13 +12371,13 @@ function useCheckoutQuote({
12371
12371
  ...aiBlocks || storageBlocks ? { addons: { ai_usage: aiBlocks, storage: storageBlocks } } : {}
12372
12372
  } : null
12373
12373
  );
12374
- const { code, message } = query.isError ? chunkDDIV3MYQ_cjs.quoteError(query.error) : {};
12375
- const locationInvalid = code === chunkDDIV3MYQ_cjs.TAX_LOCATION_INVALID;
12374
+ const { code, message } = query.isError ? chunkBAJNXRI5_cjs.quoteError(query.error) : {};
12375
+ const locationInvalid = code === chunkBAJNXRI5_cjs.TAX_LOCATION_INVALID;
12376
12376
  const isLoading = enabled && (query.isLoading || postal !== postalCode.trim());
12377
12377
  return {
12378
12378
  quote: query.data,
12379
12379
  isLoading,
12380
- showPostcode: chunkDDIV3MYQ_cjs.POSTCODE_COUNTRIES.includes(country) || locationInvalid || postalCode !== "",
12380
+ showPostcode: chunkBAJNXRI5_cjs.POSTCODE_COUNTRIES.includes(country) || locationInvalid || postalCode !== "",
12381
12381
  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,
12382
12382
  canContinue: !isLoading && (!!query.data || query.isError && !locationInvalid)
12383
12383
  };
@@ -12408,14 +12408,14 @@ function ConnectedReferralRewardSummary({
12408
12408
  if (!reward) return null;
12409
12409
  const applied = totalCents != null && currency ? applyReferralReward(totalCents, reward, currency) : null;
12410
12410
  return /* @__PURE__ */ jsxRuntime.jsx(
12411
- chunkMMSHLHTA_cjs.ReferralRewardSummary,
12411
+ chunk6OXR4R6J_cjs.ReferralRewardSummary,
12412
12412
  {
12413
- amountLabel: chunkDDIV3MYQ_cjs.formatMoney(reward.amount, reward.currency),
12413
+ amountLabel: chunkBAJNXRI5_cjs.formatMoney(reward.amount, reward.currency),
12414
12414
  breakdown: applied && totalCents != null && currency ? {
12415
- subtotal: chunkDDIV3MYQ_cjs.formatMoney(totalCents, currency),
12416
- reward: chunkDDIV3MYQ_cjs.formatMoney(applied.bonus, currency),
12417
- youPay: chunkDDIV3MYQ_cjs.formatMoney(applied.youPay, currency),
12418
- rollover: applied.remaining > 0 ? chunkDDIV3MYQ_cjs.formatMoney(applied.remaining, currency) : void 0
12415
+ subtotal: chunkBAJNXRI5_cjs.formatMoney(totalCents, currency),
12416
+ reward: chunkBAJNXRI5_cjs.formatMoney(applied.bonus, currency),
12417
+ youPay: chunkBAJNXRI5_cjs.formatMoney(applied.youPay, currency),
12418
+ rollover: applied.remaining > 0 ? chunkBAJNXRI5_cjs.formatMoney(applied.remaining, currency) : void 0
12419
12419
  } : void 0
12420
12420
  }
12421
12421
  );
@@ -12423,10 +12423,10 @@ function ConnectedReferralRewardSummary({
12423
12423
  function ConnectedReferralRewardNote() {
12424
12424
  const reward = useReferralReward();
12425
12425
  if (!reward) return null;
12426
- return /* @__PURE__ */ jsxRuntime.jsx(chunkMMSHLHTA_cjs.ReferralRewardNote, { amountLabel: chunkDDIV3MYQ_cjs.formatMoney(reward.amount, reward.currency) });
12426
+ return /* @__PURE__ */ jsxRuntime.jsx(chunk6OXR4R6J_cjs.ReferralRewardNote, { amountLabel: chunkBAJNXRI5_cjs.formatMoney(reward.amount, reward.currency) });
12427
12427
  }
12428
12428
  function createProjectErrorMessage(error, fallback = `Failed to create ${ui.entityNoun("PROJECT")}`) {
12429
- const detail = chunkDDIV3MYQ_cjs.apiErrorDetail(error);
12429
+ const detail = chunkBAJNXRI5_cjs.apiErrorDetail(error);
12430
12430
  if (typeof detail === "string" && detail) return detail;
12431
12431
  const message = detail?.message;
12432
12432
  return typeof message === "string" && message ? message : fallback;
@@ -12436,7 +12436,7 @@ function NewProjectFlow({ open, onOpenChange, defaultName }) {
12436
12436
  const [plan, setPlan] = react$1.useState("pro");
12437
12437
  const [isAnnual, setIsAnnual] = react$1.useState(false);
12438
12438
  const [promoCode, setPromoCode] = react$1.useState("");
12439
- const [addonBudget, setAddonBudget] = react$1.useState(String(chunkDDIV3MYQ_cjs.DEFAULT_SPEND_CAP_PENCE / 100));
12439
+ const [addonBudget, setAddonBudget] = react$1.useState(String(chunkBAJNXRI5_cjs.DEFAULT_SPEND_CAP_PENCE / 100));
12440
12440
  const [checkoutBudget, setCheckoutBudget] = react$1.useState(null);
12441
12441
  const [aiBlocks, setAiBlocks] = react$1.useState(0);
12442
12442
  const [storageBlocks, setStorageBlocks] = react$1.useState(0);
@@ -12450,7 +12450,7 @@ function NewProjectFlow({ open, onOpenChange, defaultName }) {
12450
12450
  const [checkoutProjectName, setCheckoutProjectName] = react$1.useState("");
12451
12451
  const [checkoutInterval, setCheckoutInterval] = react$1.useState("month");
12452
12452
  const paymentCompletedRef = react$1.useRef(false);
12453
- const { stripeEnabled } = chunkDDIV3MYQ_cjs.useBillingSupport();
12453
+ const { stripeEnabled } = chunkBAJNXRI5_cjs.useBillingSupport();
12454
12454
  const { data: products, isLoading: productsLoading } = react.useProducts({
12455
12455
  enabled: stripeEnabled
12456
12456
  });
@@ -12479,18 +12479,18 @@ function NewProjectFlow({ open, onOpenChange, defaultName }) {
12479
12479
  setPlan("pro");
12480
12480
  setPromoCode("");
12481
12481
  setPostalCode("");
12482
- setAddonBudget(String(chunkDDIV3MYQ_cjs.DEFAULT_SPEND_CAP_PENCE / 100));
12482
+ setAddonBudget(String(chunkBAJNXRI5_cjs.DEFAULT_SPEND_CAP_PENCE / 100));
12483
12483
  setAiBlocks(0);
12484
12484
  setStorageBlocks(0);
12485
12485
  setIsCreating(false);
12486
12486
  }
12487
12487
  onOpenChange(newOpen);
12488
12488
  };
12489
- const prices = chunkDDIV3MYQ_cjs.findProPrices(products);
12489
+ const prices = chunkBAJNXRI5_cjs.findProPrices(products);
12490
12490
  const intervalPrice = isAnnual ? prices.annual : prices.monthly;
12491
- const selectedPrice = chunkDDIV3MYQ_cjs.packPrice(intervalPrice);
12491
+ const selectedPrice = chunkBAJNXRI5_cjs.packPrice(intervalPrice);
12492
12492
  const currency = intervalPrice?.currency ?? "gbp";
12493
- const savingsPercent = chunkDDIV3MYQ_cjs.calcSavingsPercent(prices.monthly, prices.annual);
12493
+ const savingsPercent = chunkBAJNXRI5_cjs.calcSavingsPercent(prices.monthly, prices.annual);
12494
12494
  const isPro = stripeEnabled && plan !== "free";
12495
12495
  const quote = useCheckoutQuote({
12496
12496
  interval: isAnnual ? "year" : "month",
@@ -12500,14 +12500,14 @@ function NewProjectFlow({ open, onOpenChange, defaultName }) {
12500
12500
  storageBlocks,
12501
12501
  enabled: open && isPro && !!selectedPrice
12502
12502
  });
12503
- const canSubmit = !!projectName.trim() && !isCreating && !createProject.isPending && (!isPro || !!selectedPrice && chunkDDIV3MYQ_cjs.parseBudgetPounds(addonBudget) !== void 0 && quote.canContinue);
12503
+ const canSubmit = !!projectName.trim() && !isCreating && !createProject.isPending && (!isPro || !!selectedPrice && chunkBAJNXRI5_cjs.parseBudgetPounds(addonBudget) !== void 0 && quote.canContinue);
12504
12504
  const handleCreateFree = () => {
12505
12505
  setIsCreating(true);
12506
12506
  createProject.mutate(
12507
12507
  {
12508
12508
  name: projectName.trim(),
12509
12509
  plan: "free",
12510
- daily_cap_per_user: chunkDDIV3MYQ_cjs.SUGGESTED_DAILY_CAP_PER_USER
12510
+ daily_cap_per_user: chunkBAJNXRI5_cjs.SUGGESTED_DAILY_CAP_PER_USER
12511
12511
  },
12512
12512
  {
12513
12513
  onSuccess: () => {
@@ -12524,14 +12524,14 @@ function NewProjectFlow({ open, onOpenChange, defaultName }) {
12524
12524
  };
12525
12525
  const handleSubscribe = () => {
12526
12526
  const interval = isAnnual ? "year" : "month";
12527
- const parsed = chunkDDIV3MYQ_cjs.parseBudgetPounds(addonBudget);
12528
- const budgetToSend = parsed == null || parsed === chunkDDIV3MYQ_cjs.DEFAULT_SPEND_CAP_PENCE ? null : parsed;
12527
+ const parsed = chunkBAJNXRI5_cjs.parseBudgetPounds(addonBudget);
12528
+ const budgetToSend = parsed == null || parsed === chunkBAJNXRI5_cjs.DEFAULT_SPEND_CAP_PENCE ? null : parsed;
12529
12529
  setIsCreating(true);
12530
12530
  createProject.mutate(
12531
12531
  {
12532
12532
  name: projectName.trim(),
12533
12533
  plan: "pro",
12534
- daily_cap_per_user: chunkDDIV3MYQ_cjs.SUGGESTED_DAILY_CAP_PER_USER
12534
+ daily_cap_per_user: chunkBAJNXRI5_cjs.SUGGESTED_DAILY_CAP_PER_USER
12535
12535
  },
12536
12536
  {
12537
12537
  onSuccess: (newProject) => {
@@ -12572,8 +12572,8 @@ function NewProjectFlow({ open, onOpenChange, defaultName }) {
12572
12572
  description: stripeEnabled ? "Name it and pick a plan." : `${ui.getEntityLabel("PROJECT", "PLURAL")} group your ${ui.entityNoun("WORKSPACE", "PLURAL")}.`,
12573
12573
  showDescription: true,
12574
12574
  size: "xl",
12575
- children: /* @__PURE__ */ jsxRuntime.jsxs(chunkMMSHLHTA_cjs.PlanStack, { gap: 5, children: [
12576
- /* @__PURE__ */ jsxRuntime.jsxs(chunkMMSHLHTA_cjs.PlanStack, { gap: 2, children: [
12575
+ children: /* @__PURE__ */ jsxRuntime.jsxs(chunk6OXR4R6J_cjs.PlanStack, { gap: 5, children: [
12576
+ /* @__PURE__ */ jsxRuntime.jsxs(chunk6OXR4R6J_cjs.PlanStack, { gap: 2, children: [
12577
12577
  /* @__PURE__ */ jsxRuntime.jsx(ui.Label, { htmlFor: "new-project-name", children: "Name" }),
12578
12578
  /* @__PURE__ */ jsxRuntime.jsx(
12579
12579
  ui.Input,
@@ -12589,16 +12589,16 @@ function NewProjectFlow({ open, onOpenChange, defaultName }) {
12589
12589
  }
12590
12590
  )
12591
12591
  ] }),
12592
- stripeEnabled && (productsLoading ? /* @__PURE__ */ jsxRuntime.jsx(chunkMMSHLHTA_cjs.PlanNotice, { children: "Loading plans\u2026" }) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
12593
- /* @__PURE__ */ jsxRuntime.jsxs(chunkMMSHLHTA_cjs.PlanPickerCard, { children: [
12592
+ stripeEnabled && (productsLoading ? /* @__PURE__ */ jsxRuntime.jsx(chunk6OXR4R6J_cjs.PlanNotice, { children: "Loading plans\u2026" }) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
12593
+ /* @__PURE__ */ jsxRuntime.jsxs(chunk6OXR4R6J_cjs.PlanPickerCard, { children: [
12594
12594
  /* @__PURE__ */ jsxRuntime.jsx(
12595
- chunkMMSHLHTA_cjs.PlanPickerHeader,
12595
+ chunk6OXR4R6J_cjs.PlanPickerHeader,
12596
12596
  {
12597
12597
  title: "Plan",
12598
12598
  info: /* @__PURE__ */ jsxRuntime.jsx(PlanInfoPopover2, {}),
12599
12599
  infoPlacement: "toggle",
12600
12600
  toggle: plan !== "free" ? /* @__PURE__ */ jsxRuntime.jsx(
12601
- chunkMMSHLHTA_cjs.PricingToggle,
12601
+ chunk6OXR4R6J_cjs.PricingToggle,
12602
12602
  {
12603
12603
  isAnnual,
12604
12604
  onToggle: () => setIsAnnual(!isAnnual),
@@ -12636,7 +12636,7 @@ function NewProjectFlow({ open, onOpenChange, defaultName }) {
12636
12636
  currency
12637
12637
  }
12638
12638
  ),
12639
- /* @__PURE__ */ jsxRuntime.jsx(chunkMMSHLHTA_cjs.PromoCodeInput, { value: promoCode, onChange: setPromoCode }),
12639
+ /* @__PURE__ */ jsxRuntime.jsx(chunk6OXR4R6J_cjs.PromoCodeInput, { value: promoCode, onChange: setPromoCode }),
12640
12640
  /* @__PURE__ */ jsxRuntime.jsx(
12641
12641
  CheckoutCountrySelect,
12642
12642
  {
@@ -12655,10 +12655,10 @@ function NewProjectFlow({ open, onOpenChange, defaultName }) {
12655
12655
  onPostalCodeChange: setPostalCode
12656
12656
  }
12657
12657
  )
12658
- ] }) : /* @__PURE__ */ jsxRuntime.jsx(chunkMMSHLHTA_cjs.PlanNotice, { children: "Pro isn't available right now." }))
12658
+ ] }) : /* @__PURE__ */ jsxRuntime.jsx(chunk6OXR4R6J_cjs.PlanNotice, { children: "Pro isn't available right now." }))
12659
12659
  ] })),
12660
- /* @__PURE__ */ jsxRuntime.jsx(chunkMMSHLHTA_cjs.PlanActionButton, { onClick: submit, disabled: !canSubmit, children: isCreating ? "Creating\u2026" : isPro ? "Continue to payment" : `Create ${ui.entityNoun("PROJECT")}` }),
12661
- isSlow && /* @__PURE__ */ jsxRuntime.jsx(chunkMMSHLHTA_cjs.PlanNotice, { className: "text-xs", testId: "new-project-still-working", children: "Still working. We'll update here." })
12660
+ /* @__PURE__ */ jsxRuntime.jsx(chunk6OXR4R6J_cjs.PlanActionButton, { onClick: submit, disabled: !canSubmit, children: isCreating ? "Creating\u2026" : isPro ? "Continue to payment" : `Create ${ui.entityNoun("PROJECT")}` }),
12661
+ isSlow && /* @__PURE__ */ jsxRuntime.jsx(chunk6OXR4R6J_cjs.PlanNotice, { className: "text-xs", testId: "new-project-still-working", children: "Still working. We'll update here." })
12662
12662
  ] })
12663
12663
  }
12664
12664
  ),
@@ -12698,7 +12698,7 @@ function ConnectedProjectSelector({
12698
12698
  readOnly,
12699
12699
  className
12700
12700
  }) {
12701
- const { stripeEnabled } = chunkDDIV3MYQ_cjs.useBillingSupport();
12701
+ const { stripeEnabled } = chunkBAJNXRI5_cjs.useBillingSupport();
12702
12702
  return /* @__PURE__ */ jsxRuntime.jsx(
12703
12703
  chunkCIXA5A65_cjs.ProjectPicker,
12704
12704
  {
@@ -12842,13 +12842,13 @@ function ConnectedWorkspaceSettings({
12842
12842
  const [membersExpanded, setMembersExpanded] = react$1.useState(false);
12843
12843
  const [shareOpen, setShareOpen] = react$1.useState(false);
12844
12844
  if (!workspace) {
12845
- return /* @__PURE__ */ jsxRuntime.jsx(chunkC5CWKZ5D_cjs.PageLoading, { children: /* @__PURE__ */ jsxRuntime.jsx(chunkU4ZLFL6M_cjs.LoadingIndicator, { message: "Loading workspace..." }) });
12845
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkC5CWKZ5D_cjs.PageLoading, { children: /* @__PURE__ */ jsxRuntime.jsx(chunkZA3ZELSH_cjs.LoadingIndicator, { message: "Loading workspace..." }) });
12846
12846
  }
12847
12847
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
12848
12848
  /* @__PURE__ */ jsxRuntime.jsxs(chunkC5CWKZ5D_cjs.WorkspacePageFrame, { testId, children: [
12849
12849
  /* @__PURE__ */ jsxRuntime.jsxs(chunkC5CWKZ5D_cjs.WorkspaceIdentityPanel, { children: [
12850
12850
  /* @__PURE__ */ jsxRuntime.jsx(
12851
- chunkU4ZLFL6M_cjs.EntityIdentityBar,
12851
+ chunkZA3ZELSH_cjs.EntityIdentityBar,
12852
12852
  {
12853
12853
  testId: "workspace-identity-bar",
12854
12854
  canEdit: isOwner,
@@ -12865,7 +12865,7 @@ function ConnectedWorkspaceSettings({
12865
12865
  label: "Name",
12866
12866
  value: workspace.name,
12867
12867
  placeholder: "Untitled",
12868
- maxLength: chunkU4ZLFL6M_cjs.IDENTITY_NAME_MAX_LENGTH,
12868
+ maxLength: chunkZA3ZELSH_cjs.IDENTITY_NAME_MAX_LENGTH,
12869
12869
  valueClassName: "truncate text-base font-semibold",
12870
12870
  testId: "workspace-home-title",
12871
12871
  hideLabel: true,
@@ -13495,20 +13495,20 @@ function ConnectedEmailWorkspaceDialog({
13495
13495
  else if (activeSession)
13496
13496
  access = {
13497
13497
  kind: "session",
13498
- expiresIn: chunkMMSHLHTA_cjs.formatSessionTtl(activeSession.ttl),
13498
+ expiresIn: chunk6OXR4R6J_cjs.formatSessionTtl(activeSession.ttl),
13499
13499
  isEnding: terminateSession.isPending,
13500
13500
  onEnd: handleEndSession
13501
13501
  };
13502
13502
  else
13503
13503
  access = {
13504
13504
  kind: "idle",
13505
- defaultTtl: limits ? chunkMMSHLHTA_cjs.formatSessionTtl(limits.default_ttl_seconds) : void 0,
13505
+ defaultTtl: limits ? chunk6OXR4R6J_cjs.formatSessionTtl(limits.default_ttl_seconds) : void 0,
13506
13506
  isAuthorizing: grantAgentAccess.isPending && grantAgentAccess.variables?.mode?.kind === "temporary",
13507
13507
  onAuthorize: handleAuthorize
13508
13508
  };
13509
13509
  }
13510
13510
  return /* @__PURE__ */ jsxRuntime.jsx(
13511
- chunkMMSHLHTA_cjs.EmailWorkspaceDialogView,
13511
+ chunk6OXR4R6J_cjs.EmailWorkspaceDialogView,
13512
13512
  {
13513
13513
  open,
13514
13514
  onOpenChange,
@@ -14028,9 +14028,9 @@ function ConnectedMailboxSyncDialog({
14028
14028
  showDescription: true,
14029
14029
  className: "w-[92vw] sm:max-w-lg",
14030
14030
  children: [
14031
- /* @__PURE__ */ jsxRuntime.jsxs(chunkMMSHLHTA_cjs.SyncDialogBody, { children: [
14032
- !lockedWorkspaceExtId && /* @__PURE__ */ jsxRuntime.jsx(chunkMMSHLHTA_cjs.SyncField, { label: "Target workspace", htmlFor: "sync-workspace", children: /* @__PURE__ */ jsxRuntime.jsx(
14033
- chunkMMSHLHTA_cjs.SyncSelect,
14031
+ /* @__PURE__ */ jsxRuntime.jsxs(chunk6OXR4R6J_cjs.SyncDialogBody, { children: [
14032
+ !lockedWorkspaceExtId && /* @__PURE__ */ jsxRuntime.jsx(chunk6OXR4R6J_cjs.SyncField, { label: "Target workspace", htmlFor: "sync-workspace", children: /* @__PURE__ */ jsxRuntime.jsx(
14033
+ chunk6OXR4R6J_cjs.SyncSelect,
14034
14034
  {
14035
14035
  id: "sync-workspace",
14036
14036
  value: workspaceExtId,
@@ -14039,9 +14039,9 @@ function ConnectedMailboxSyncDialog({
14039
14039
  options: memberWorkspaces.map((w) => ({ value: w.external_id, label: w.name }))
14040
14040
  }
14041
14041
  ) }),
14042
- /* @__PURE__ */ jsxRuntime.jsxs(chunkMMSHLHTA_cjs.SyncField, { label: "Backfill window", htmlFor: "sync-backfill", children: [
14042
+ /* @__PURE__ */ jsxRuntime.jsxs(chunk6OXR4R6J_cjs.SyncField, { label: "Backfill window", htmlFor: "sync-backfill", children: [
14043
14043
  /* @__PURE__ */ jsxRuntime.jsx(
14044
- chunkMMSHLHTA_cjs.SyncSelect,
14044
+ chunk6OXR4R6J_cjs.SyncSelect,
14045
14045
  {
14046
14046
  id: "sync-backfill",
14047
14047
  value: backfill,
@@ -14061,17 +14061,17 @@ function ConnectedMailboxSyncDialog({
14061
14061
  "aria-label": "Import emails since date"
14062
14062
  }
14063
14063
  ),
14064
- /* @__PURE__ */ jsxRuntime.jsx(chunkMMSHLHTA_cjs.SyncSmallNote, { children: "Emails are always imported from this date onward \u2014 the start point never moves." })
14064
+ /* @__PURE__ */ jsxRuntime.jsx(chunk6OXR4R6J_cjs.SyncSmallNote, { children: "Emails are always imported from this date onward \u2014 the start point never moves." })
14065
14065
  ] })
14066
14066
  ] }),
14067
14067
  /* @__PURE__ */ jsxRuntime.jsx(
14068
- chunkMMSHLHTA_cjs.SyncField,
14068
+ chunk6OXR4R6J_cjs.SyncField,
14069
14069
  {
14070
14070
  label: `Folders to import${selectedFolders.length > 0 ? ` (${selectedFolders.length})` : ""}`,
14071
14071
  hint: "Select at least one folder to import.",
14072
- actions: folders.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs(chunkMMSHLHTA_cjs.SyncLinkRow, { children: [
14072
+ actions: folders.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs(chunk6OXR4R6J_cjs.SyncLinkRow, { children: [
14073
14073
  /* @__PURE__ */ jsxRuntime.jsx(
14074
- chunkMMSHLHTA_cjs.SyncLinkButton,
14074
+ chunk6OXR4R6J_cjs.SyncLinkButton,
14075
14075
  {
14076
14076
  onClick: () => setExpandAllNonce((n) => n + 1),
14077
14077
  testId: "mail-folders-expand-all",
@@ -14079,20 +14079,20 @@ function ConnectedMailboxSyncDialog({
14079
14079
  }
14080
14080
  ),
14081
14081
  /* @__PURE__ */ jsxRuntime.jsx(
14082
- chunkMMSHLHTA_cjs.SyncLinkButton,
14082
+ chunk6OXR4R6J_cjs.SyncLinkButton,
14083
14083
  {
14084
14084
  onClick: () => setCollapseAllNonce((n) => n + 1),
14085
14085
  testId: "mail-folders-collapse-all",
14086
14086
  children: "Collapse all"
14087
14087
  }
14088
14088
  ),
14089
- /* @__PURE__ */ jsxRuntime.jsx(chunkMMSHLHTA_cjs.SyncLinkButton, { onClick: toggleAllFolders, children: allSelected ? "Clear all" : "Select all" })
14089
+ /* @__PURE__ */ jsxRuntime.jsx(chunk6OXR4R6J_cjs.SyncLinkButton, { onClick: toggleAllFolders, children: allSelected ? "Clear all" : "Select all" })
14090
14090
  ] }),
14091
- children: foldersLoading ? /* @__PURE__ */ jsxRuntime.jsx(chunkMMSHLHTA_cjs.SyncLoading, { children: "Loading folders\u2026" }) : foldersError ? (
14091
+ children: foldersLoading ? /* @__PURE__ */ jsxRuntime.jsx(chunk6OXR4R6J_cjs.SyncLoading, { children: "Loading folders\u2026" }) : foldersError ? (
14092
14092
  // A failed fetch is not an empty mailbox: it hides auth/scope errors (e.g. a Gmail
14093
14093
  // account needing reconnect).
14094
14094
  /* @__PURE__ */ jsxRuntime.jsx(
14095
- chunkMMSHLHTA_cjs.SyncReconnectNotice,
14095
+ chunk6OXR4R6J_cjs.SyncReconnectNotice,
14096
14096
  {
14097
14097
  message: `Couldn\u2019t load folders from ${catalog.display_name}. Reconnect the account and try again.`,
14098
14098
  onReconnect: () => void reconnect(),
@@ -14100,7 +14100,7 @@ function ConnectedMailboxSyncDialog({
14100
14100
  testId: "folders-reconnect"
14101
14101
  }
14102
14102
  )
14103
- ) : folders.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx(chunkMMSHLHTA_cjs.SyncNote, { children: "No folders found." }) : /* @__PURE__ */ jsxRuntime.jsx(chunkMMSHLHTA_cjs.SyncTreeFrame, { children: /* @__PURE__ */ jsxRuntime.jsx(
14103
+ ) : folders.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx(chunk6OXR4R6J_cjs.SyncNote, { children: "No folders found." }) : /* @__PURE__ */ jsxRuntime.jsx(chunk6OXR4R6J_cjs.SyncTreeFrame, { children: /* @__PURE__ */ jsxRuntime.jsx(
14104
14104
  chunkYN7ZQEHS_cjs.MailFolderTree,
14105
14105
  {
14106
14106
  nodes: folderTree,
@@ -14112,9 +14112,9 @@ function ConnectedMailboxSyncDialog({
14112
14112
  ) })
14113
14113
  }
14114
14114
  ),
14115
- /* @__PURE__ */ jsxRuntime.jsxs(chunkMMSHLHTA_cjs.SyncOptions, { children: [
14115
+ /* @__PURE__ */ jsxRuntime.jsxs(chunk6OXR4R6J_cjs.SyncOptions, { children: [
14116
14116
  /* @__PURE__ */ jsxRuntime.jsx(
14117
- chunkMMSHLHTA_cjs.SyncOptionToggle,
14117
+ chunk6OXR4R6J_cjs.SyncOptionToggle,
14118
14118
  {
14119
14119
  checked: skipDuplicates,
14120
14120
  onCheckedChange: setSkipDuplicates,
@@ -14124,7 +14124,7 @@ function ConnectedMailboxSyncDialog({
14124
14124
  }
14125
14125
  ),
14126
14126
  /* @__PURE__ */ jsxRuntime.jsx(
14127
- chunkMMSHLHTA_cjs.SyncOptionToggle,
14127
+ chunk6OXR4R6J_cjs.SyncOptionToggle,
14128
14128
  {
14129
14129
  checked: autoRename,
14130
14130
  onCheckedChange: setAutoRename,
@@ -14134,7 +14134,7 @@ function ConnectedMailboxSyncDialog({
14134
14134
  }
14135
14135
  ),
14136
14136
  /* @__PURE__ */ jsxRuntime.jsx(
14137
- chunkMMSHLHTA_cjs.SyncOptionToggle,
14137
+ chunk6OXR4R6J_cjs.SyncOptionToggle,
14138
14138
  {
14139
14139
  checked: shared,
14140
14140
  onCheckedChange: setShared,
@@ -14144,7 +14144,7 @@ function ConnectedMailboxSyncDialog({
14144
14144
  }
14145
14145
  ),
14146
14146
  /* @__PURE__ */ jsxRuntime.jsx(
14147
- chunkMMSHLHTA_cjs.SyncOptionToggle,
14147
+ chunk6OXR4R6J_cjs.SyncOptionToggle,
14148
14148
  {
14149
14149
  checked: autoSync,
14150
14150
  onCheckedChange: setAutoSync,
@@ -14156,7 +14156,7 @@ function ConnectedMailboxSyncDialog({
14156
14156
  ] })
14157
14157
  ] }),
14158
14158
  /* @__PURE__ */ jsxRuntime.jsx(
14159
- chunkMMSHLHTA_cjs.SyncDialogFooter,
14159
+ chunk6OXR4R6J_cjs.SyncDialogFooter,
14160
14160
  {
14161
14161
  onCancel: () => onOpenChange(false),
14162
14162
  onSave: handleEnableSubmit,
@@ -14218,7 +14218,7 @@ function DriveFolderNode({
14218
14218
  const mightHaveChildren = docCount == null || docCount > 0;
14219
14219
  const orderedChildren = [...children].sort((a, b) => a.name.localeCompare(b.name));
14220
14220
  return /* @__PURE__ */ jsxRuntime.jsx(
14221
- chunkMMSHLHTA_cjs.SyncFolderRow,
14221
+ chunk6OXR4R6J_cjs.SyncFolderRow,
14222
14222
  {
14223
14223
  id: folder.id,
14224
14224
  name: folder.name,
@@ -14232,7 +14232,7 @@ function DriveFolderNode({
14232
14232
  onCheckedChange: () => onToggle(folder.id),
14233
14233
  count: typeof docCount === "number" ? docCount : void 0,
14234
14234
  isCountLoading: isSelectable && countLoading,
14235
- children: isLoading ? /* @__PURE__ */ jsxRuntime.jsx(chunkMMSHLHTA_cjs.SyncFolderStatus, { depth, kind: "loading" }) : orderedChildren.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx(chunkMMSHLHTA_cjs.SyncFolderStatus, { depth, kind: "empty" }) : orderedChildren.map((child) => /* @__PURE__ */ jsxRuntime.jsx(
14235
+ children: isLoading ? /* @__PURE__ */ jsxRuntime.jsx(chunk6OXR4R6J_cjs.SyncFolderStatus, { depth, kind: "loading" }) : orderedChildren.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx(chunk6OXR4R6J_cjs.SyncFolderStatus, { depth, kind: "empty" }) : orderedChildren.map((child) => /* @__PURE__ */ jsxRuntime.jsx(
14236
14236
  DriveFolderNode,
14237
14237
  {
14238
14238
  vendorKey,
@@ -14378,9 +14378,9 @@ function ConnectedDriveSyncDialog({
14378
14378
  showDescription: true,
14379
14379
  className: "w-[92vw] sm:max-w-lg",
14380
14380
  children: [
14381
- /* @__PURE__ */ jsxRuntime.jsxs(chunkMMSHLHTA_cjs.SyncDialogBody, { children: [
14382
- !lockedWorkspaceExtId && /* @__PURE__ */ jsxRuntime.jsx(chunkMMSHLHTA_cjs.SyncField, { label: "Target workspace", htmlFor: "drive-sync-workspace", children: /* @__PURE__ */ jsxRuntime.jsx(
14383
- chunkMMSHLHTA_cjs.SyncSelect,
14381
+ /* @__PURE__ */ jsxRuntime.jsxs(chunk6OXR4R6J_cjs.SyncDialogBody, { children: [
14382
+ !lockedWorkspaceExtId && /* @__PURE__ */ jsxRuntime.jsx(chunk6OXR4R6J_cjs.SyncField, { label: "Target workspace", htmlFor: "drive-sync-workspace", children: /* @__PURE__ */ jsxRuntime.jsx(
14383
+ chunk6OXR4R6J_cjs.SyncSelect,
14384
14384
  {
14385
14385
  id: "drive-sync-workspace",
14386
14386
  value: workspaceExtId,
@@ -14390,13 +14390,13 @@ function ConnectedDriveSyncDialog({
14390
14390
  }
14391
14391
  ) }),
14392
14392
  /* @__PURE__ */ jsxRuntime.jsx(
14393
- chunkMMSHLHTA_cjs.SyncField,
14393
+ chunk6OXR4R6J_cjs.SyncField,
14394
14394
  {
14395
14395
  label: `Folders to import${selectedFolders.length > 0 ? ` (${selectedFolders.length})` : ""}`,
14396
14396
  hint: "Select at least one folder. Importing a folder includes everything inside it.",
14397
- actions: orderedFolders.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs(chunkMMSHLHTA_cjs.SyncLinkRow, { children: [
14397
+ actions: orderedFolders.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs(chunk6OXR4R6J_cjs.SyncLinkRow, { children: [
14398
14398
  /* @__PURE__ */ jsxRuntime.jsx(
14399
- chunkMMSHLHTA_cjs.SyncLinkButton,
14399
+ chunk6OXR4R6J_cjs.SyncLinkButton,
14400
14400
  {
14401
14401
  onClick: () => setExpandAllNonce((n) => n + 1),
14402
14402
  testId: "drive-folders-expand-all",
@@ -14404,7 +14404,7 @@ function ConnectedDriveSyncDialog({
14404
14404
  }
14405
14405
  ),
14406
14406
  /* @__PURE__ */ jsxRuntime.jsx(
14407
- chunkMMSHLHTA_cjs.SyncLinkButton,
14407
+ chunk6OXR4R6J_cjs.SyncLinkButton,
14408
14408
  {
14409
14409
  onClick: () => setCollapseAllNonce((n) => n + 1),
14410
14410
  testId: "drive-folders-collapse-all",
@@ -14412,19 +14412,19 @@ function ConnectedDriveSyncDialog({
14412
14412
  }
14413
14413
  )
14414
14414
  ] }),
14415
- children: foldersLoading ? /* @__PURE__ */ jsxRuntime.jsx(chunkMMSHLHTA_cjs.SyncLoading, { children: "Loading folders\u2026" }) : needsReconnect ? /* @__PURE__ */ jsxRuntime.jsx(
14416
- chunkMMSHLHTA_cjs.SyncReconnectNotice,
14415
+ children: foldersLoading ? /* @__PURE__ */ jsxRuntime.jsx(chunk6OXR4R6J_cjs.SyncLoading, { children: "Loading folders\u2026" }) : needsReconnect ? /* @__PURE__ */ jsxRuntime.jsx(
14416
+ chunk6OXR4R6J_cjs.SyncReconnectNotice,
14417
14417
  {
14418
14418
  ...reconnectButtonProps,
14419
14419
  message: `Reconnect ${catalog.display_name} to enable ${productName} \u2014 your account needs to grant file access.`
14420
14420
  }
14421
14421
  ) : foldersError ? /* @__PURE__ */ jsxRuntime.jsx(
14422
- chunkMMSHLHTA_cjs.SyncReconnectNotice,
14422
+ chunk6OXR4R6J_cjs.SyncReconnectNotice,
14423
14423
  {
14424
14424
  ...reconnectButtonProps,
14425
14425
  message: `Couldn\u2019t load folders from ${productName}. Reconnect the account and try again.`
14426
14426
  }
14427
- ) : orderedFolders.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx(chunkMMSHLHTA_cjs.SyncNote, { children: "No folders found." }) : /* @__PURE__ */ jsxRuntime.jsx(chunkMMSHLHTA_cjs.SyncTreeFrame, { children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-0.5", "data-testid": "drive-folder-tree", children: orderedFolders.map((f) => /* @__PURE__ */ jsxRuntime.jsx(
14427
+ ) : orderedFolders.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx(chunk6OXR4R6J_cjs.SyncNote, { children: "No folders found." }) : /* @__PURE__ */ jsxRuntime.jsx(chunk6OXR4R6J_cjs.SyncTreeFrame, { children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-0.5", "data-testid": "drive-folder-tree", children: orderedFolders.map((f) => /* @__PURE__ */ jsxRuntime.jsx(
14428
14428
  DriveFolderNode,
14429
14429
  {
14430
14430
  vendorKey: catalog.vendor_key,
@@ -14441,9 +14441,9 @@ function ConnectedDriveSyncDialog({
14441
14441
  )) }) })
14442
14442
  }
14443
14443
  ),
14444
- /* @__PURE__ */ jsxRuntime.jsxs(chunkMMSHLHTA_cjs.SyncOptions, { children: [
14444
+ /* @__PURE__ */ jsxRuntime.jsxs(chunk6OXR4R6J_cjs.SyncOptions, { children: [
14445
14445
  /* @__PURE__ */ jsxRuntime.jsx(
14446
- chunkMMSHLHTA_cjs.SyncOptionToggle,
14446
+ chunk6OXR4R6J_cjs.SyncOptionToggle,
14447
14447
  {
14448
14448
  checked: skipDuplicates,
14449
14449
  onCheckedChange: setSkipDuplicates,
@@ -14452,7 +14452,7 @@ function ConnectedDriveSyncDialog({
14452
14452
  }
14453
14453
  ),
14454
14454
  /* @__PURE__ */ jsxRuntime.jsx(
14455
- chunkMMSHLHTA_cjs.SyncOptionToggle,
14455
+ chunk6OXR4R6J_cjs.SyncOptionToggle,
14456
14456
  {
14457
14457
  checked: autoRename,
14458
14458
  onCheckedChange: setAutoRename,
@@ -14461,7 +14461,7 @@ function ConnectedDriveSyncDialog({
14461
14461
  }
14462
14462
  ),
14463
14463
  /* @__PURE__ */ jsxRuntime.jsx(
14464
- chunkMMSHLHTA_cjs.SyncOptionToggle,
14464
+ chunk6OXR4R6J_cjs.SyncOptionToggle,
14465
14465
  {
14466
14466
  checked: shared,
14467
14467
  onCheckedChange: setShared,
@@ -14470,7 +14470,7 @@ function ConnectedDriveSyncDialog({
14470
14470
  }
14471
14471
  ),
14472
14472
  /* @__PURE__ */ jsxRuntime.jsx(
14473
- chunkMMSHLHTA_cjs.SyncOptionToggle,
14473
+ chunk6OXR4R6J_cjs.SyncOptionToggle,
14474
14474
  {
14475
14475
  checked: autoSync,
14476
14476
  onCheckedChange: setAutoSync,
@@ -14482,7 +14482,7 @@ function ConnectedDriveSyncDialog({
14482
14482
  ] })
14483
14483
  ] }),
14484
14484
  /* @__PURE__ */ jsxRuntime.jsx(
14485
- chunkMMSHLHTA_cjs.SyncDialogFooter,
14485
+ chunk6OXR4R6J_cjs.SyncDialogFooter,
14486
14486
  {
14487
14487
  onCancel: () => onOpenChange(false),
14488
14488
  onSave: handleEnableSubmit,
@@ -14503,36 +14503,36 @@ function ConnectedSharePointAdminConsentPage({
14503
14503
  const result = givenResult === void 0 ? queryResult : givenResult;
14504
14504
  const { apiBaseUrl } = chunkUIXY4HKM_cjs.useBlocksEnvironment().runtimeConfig;
14505
14505
  const consentUrl = `${apiBaseUrl}/v1/connectors/microsoft_sharepoint/admin-consent`;
14506
- return /* @__PURE__ */ jsxRuntime.jsx(chunkMBXQSBG3_cjs.ConsentPage, { children: /* @__PURE__ */ jsxRuntime.jsxs(chunkMBXQSBG3_cjs.ConsentCard, { size: "md", children: [
14506
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkFAKRTCAL_cjs.ConsentPage, { children: /* @__PURE__ */ jsxRuntime.jsxs(chunkFAKRTCAL_cjs.ConsentCard, { size: "md", children: [
14507
14507
  /* @__PURE__ */ jsxRuntime.jsx(
14508
- chunkMBXQSBG3_cjs.ConsentHeader,
14508
+ chunkFAKRTCAL_cjs.ConsentHeader,
14509
14509
  {
14510
14510
  icon: /* @__PURE__ */ jsxRuntime.jsx(chunk33MKOWSA_cjs.VendorLogo, { vendorKey: "microsoft_sharepoint", product: "sharepoint" }),
14511
14511
  title: "Approve ARBI for SharePoint access",
14512
14512
  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."
14513
14513
  }
14514
14514
  ),
14515
- result === "granted" && /* @__PURE__ */ jsxRuntime.jsx(chunkMBXQSBG3_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." }),
14516
- result === "declined" && /* @__PURE__ */ jsxRuntime.jsx(chunkMBXQSBG3_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." }),
14517
- /* @__PURE__ */ jsxRuntime.jsxs(chunkMBXQSBG3_cjs.ConsentSection, { title: "What you are approving", children: [
14515
+ result === "granted" && /* @__PURE__ */ jsxRuntime.jsx(chunkFAKRTCAL_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." }),
14516
+ result === "declined" && /* @__PURE__ */ jsxRuntime.jsx(chunkFAKRTCAL_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." }),
14517
+ /* @__PURE__ */ jsxRuntime.jsxs(chunkFAKRTCAL_cjs.ConsentSection, { title: "What you are approving", children: [
14518
14518
  /* @__PURE__ */ jsxRuntime.jsx(
14519
- chunkMBXQSBG3_cjs.ConsentBulletList,
14519
+ chunkFAKRTCAL_cjs.ConsentBulletList,
14520
14520
  {
14521
14521
  items: [
14522
14522
  /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
14523
- /* @__PURE__ */ jsxRuntime.jsx(chunkMBXQSBG3_cjs.ConsentStrong, { children: "Read SharePoint sites and files" }),
14523
+ /* @__PURE__ */ jsxRuntime.jsx(chunkFAKRTCAL_cjs.ConsentStrong, { children: "Read SharePoint sites and files" }),
14524
14524
  " \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."
14525
14525
  ] }),
14526
14526
  /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
14527
- /* @__PURE__ */ jsxRuntime.jsx(chunkMBXQSBG3_cjs.ConsentStrong, { children: "Sign users in and keep access" }),
14527
+ /* @__PURE__ */ jsxRuntime.jsx(chunkFAKRTCAL_cjs.ConsentStrong, { children: "Sign users in and keep access" }),
14528
14528
  " \u2014 standard sign-in (openid, profile, email) and offline access so syncs keep working between sessions."
14529
14529
  ] })
14530
14530
  ]
14531
14531
  }
14532
14532
  ),
14533
- /* @__PURE__ */ jsxRuntime.jsx(chunkMBXQSBG3_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." }),
14533
+ /* @__PURE__ */ jsxRuntime.jsx(chunkFAKRTCAL_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." }),
14534
14534
  /* @__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" }) }),
14535
- /* @__PURE__ */ jsxRuntime.jsx(chunkMBXQSBG3_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." })
14535
+ /* @__PURE__ */ jsxRuntime.jsx(chunkFAKRTCAL_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." })
14536
14536
  ] })
14537
14537
  ] }) });
14538
14538
  }
@@ -14573,8 +14573,8 @@ function InvoicesModal({
14573
14573
  key: inv.number ?? String(i),
14574
14574
  date: formatInvoiceDate(inv.date),
14575
14575
  kind: KIND_LABELS2[inv.kind],
14576
- amount: chunkDDIV3MYQ_cjs.formatMoney(inv.amount, inv.currency),
14577
- amountNote: inv.amount_ex_vat != null && inv.amount_ex_vat !== inv.amount ? `${chunkDDIV3MYQ_cjs.formatMoney(inv.amount_ex_vat, inv.currency)} ex VAT` : void 0,
14576
+ amount: chunkBAJNXRI5_cjs.formatMoney(inv.amount, inv.currency),
14577
+ amountNote: inv.amount_ex_vat != null && inv.amount_ex_vat !== inv.amount ? `${chunkBAJNXRI5_cjs.formatMoney(inv.amount_ex_vat, inv.currency)} ex VAT` : void 0,
14578
14578
  status: inv.status,
14579
14579
  isPaid: isPaid2,
14580
14580
  href: inv.hosted_invoice_url ?? inv.url ?? inv.pdf_url ?? void 0,
@@ -14582,7 +14582,7 @@ function InvoicesModal({
14582
14582
  };
14583
14583
  });
14584
14584
  return /* @__PURE__ */ jsxRuntime.jsx(
14585
- chunkMMSHLHTA_cjs.InvoicesDialog,
14585
+ chunk6OXR4R6J_cjs.InvoicesDialog,
14586
14586
  {
14587
14587
  open,
14588
14588
  onOpenChange,
@@ -14596,7 +14596,7 @@ function SubscriptionPlans({ projectExtId, onDismiss }) {
14596
14596
  const { data: products, isLoading, error } = react.useProducts();
14597
14597
  const [isAnnual, setIsAnnual] = react$1.useState(false);
14598
14598
  const [promoCode, setPromoCode] = react$1.useState("");
14599
- const [addonBudget, setAddonBudget] = react$1.useState(String(chunkDDIV3MYQ_cjs.DEFAULT_SPEND_CAP_PENCE / 100));
14599
+ const [addonBudget, setAddonBudget] = react$1.useState(String(chunkBAJNXRI5_cjs.DEFAULT_SPEND_CAP_PENCE / 100));
14600
14600
  const [checkoutBudget, setCheckoutBudget] = react$1.useState(null);
14601
14601
  const [aiBlocks, setAiBlocks] = react$1.useState(0);
14602
14602
  const [storageBlocks, setStorageBlocks] = react$1.useState(0);
@@ -14614,31 +14614,31 @@ function SubscriptionPlans({ projectExtId, onDismiss }) {
14614
14614
  storageBlocks,
14615
14615
  enabled: !!products?.length
14616
14616
  });
14617
- if (isLoading) return /* @__PURE__ */ jsxRuntime.jsx(chunkMMSHLHTA_cjs.PlanNotice, { children: "Loading plans\u2026" });
14618
- if (error) return /* @__PURE__ */ jsxRuntime.jsx(chunkMMSHLHTA_cjs.PlanNotice, { tone: "error", children: "Plans didn't load. Try again." });
14619
- if (!products || products.length === 0) return /* @__PURE__ */ jsxRuntime.jsx(chunkMMSHLHTA_cjs.PlanNotice, { children: "No plans available." });
14620
- const prices = chunkDDIV3MYQ_cjs.findProPrices(products);
14617
+ if (isLoading) return /* @__PURE__ */ jsxRuntime.jsx(chunk6OXR4R6J_cjs.PlanNotice, { children: "Loading plans\u2026" });
14618
+ if (error) return /* @__PURE__ */ jsxRuntime.jsx(chunk6OXR4R6J_cjs.PlanNotice, { tone: "error", children: "Plans didn't load. Try again." });
14619
+ if (!products || products.length === 0) return /* @__PURE__ */ jsxRuntime.jsx(chunk6OXR4R6J_cjs.PlanNotice, { children: "No plans available." });
14620
+ const prices = chunkBAJNXRI5_cjs.findProPrices(products);
14621
14621
  const intervalPrice = isAnnual ? prices.annual : prices.monthly;
14622
- const selectedPrice = chunkDDIV3MYQ_cjs.packPrice(intervalPrice);
14622
+ const selectedPrice = chunkBAJNXRI5_cjs.packPrice(intervalPrice);
14623
14623
  if (!intervalPrice) return null;
14624
14624
  const interval = isAnnual ? "year" : "month";
14625
- const savingsPercent = chunkDDIV3MYQ_cjs.calcSavingsPercent(prices.monthly, prices.annual);
14625
+ const savingsPercent = chunkBAJNXRI5_cjs.calcSavingsPercent(prices.monthly, prices.annual);
14626
14626
  const handleSubscribe = () => {
14627
14627
  setCheckoutInterval(interval);
14628
- const parsed = chunkDDIV3MYQ_cjs.parseBudgetPounds(addonBudget);
14629
- setCheckoutBudget(parsed == null || parsed === chunkDDIV3MYQ_cjs.DEFAULT_SPEND_CAP_PENCE ? null : parsed);
14628
+ const parsed = chunkBAJNXRI5_cjs.parseBudgetPounds(addonBudget);
14629
+ setCheckoutBudget(parsed == null || parsed === chunkBAJNXRI5_cjs.DEFAULT_SPEND_CAP_PENCE ? null : parsed);
14630
14630
  setCheckoutQuote(quote.quote);
14631
14631
  setIsCheckoutModalOpen(true);
14632
14632
  };
14633
14633
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
14634
- /* @__PURE__ */ jsxRuntime.jsxs(chunkMMSHLHTA_cjs.PlanStack, { children: [
14634
+ /* @__PURE__ */ jsxRuntime.jsxs(chunk6OXR4R6J_cjs.PlanStack, { children: [
14635
14635
  /* @__PURE__ */ jsxRuntime.jsx(
14636
- chunkMMSHLHTA_cjs.PlanPickerHeader,
14636
+ chunk6OXR4R6J_cjs.PlanPickerHeader,
14637
14637
  {
14638
14638
  title: "Plan",
14639
14639
  info: /* @__PURE__ */ jsxRuntime.jsx(PlanInfoPopover2, {}),
14640
14640
  toggle: /* @__PURE__ */ jsxRuntime.jsx(
14641
- chunkMMSHLHTA_cjs.PricingToggle,
14641
+ chunk6OXR4R6J_cjs.PricingToggle,
14642
14642
  {
14643
14643
  isAnnual,
14644
14644
  onToggle: () => setIsAnnual(!isAnnual),
@@ -14675,7 +14675,7 @@ function SubscriptionPlans({ projectExtId, onDismiss }) {
14675
14675
  currency: intervalPrice.currency
14676
14676
  }
14677
14677
  ),
14678
- /* @__PURE__ */ jsxRuntime.jsx(chunkMMSHLHTA_cjs.PromoCodeInput, { value: promoCode, onChange: setPromoCode }),
14678
+ /* @__PURE__ */ jsxRuntime.jsx(chunk6OXR4R6J_cjs.PromoCodeInput, { value: promoCode, onChange: setPromoCode }),
14679
14679
  /* @__PURE__ */ jsxRuntime.jsx(
14680
14680
  CheckoutCountrySelect,
14681
14681
  {
@@ -14687,9 +14687,9 @@ function SubscriptionPlans({ projectExtId, onDismiss }) {
14687
14687
  }
14688
14688
  ),
14689
14689
  /* @__PURE__ */ jsxRuntime.jsx(CheckoutTotal, { state: quote, postalCode, onPostalCodeChange: setPostalCode }),
14690
- /* @__PURE__ */ jsxRuntime.jsxs(chunkMMSHLHTA_cjs.PlanActionRow, { children: [
14690
+ /* @__PURE__ */ jsxRuntime.jsxs(chunk6OXR4R6J_cjs.PlanActionRow, { children: [
14691
14691
  onDismiss && /* @__PURE__ */ jsxRuntime.jsx(
14692
- chunkMMSHLHTA_cjs.PlanActionButton,
14692
+ chunk6OXR4R6J_cjs.PlanActionButton,
14693
14693
  {
14694
14694
  tone: "muted",
14695
14695
  fill: true,
@@ -14700,11 +14700,11 @@ function SubscriptionPlans({ projectExtId, onDismiss }) {
14700
14700
  }
14701
14701
  ),
14702
14702
  /* @__PURE__ */ jsxRuntime.jsx(
14703
- chunkMMSHLHTA_cjs.PlanActionButton,
14703
+ chunk6OXR4R6J_cjs.PlanActionButton,
14704
14704
  {
14705
14705
  fill: true,
14706
14706
  onClick: handleSubscribe,
14707
- disabled: !selectedPrice || chunkDDIV3MYQ_cjs.parseBudgetPounds(addonBudget) === void 0 || !quote.canContinue,
14707
+ disabled: !selectedPrice || chunkBAJNXRI5_cjs.parseBudgetPounds(addonBudget) === void 0 || !quote.canContinue,
14708
14708
  size: "sm",
14709
14709
  "data-testid": "subscribe-button",
14710
14710
  children: "Continue to payment"
@@ -14763,7 +14763,7 @@ var FALLBACK_MESSAGES = {
14763
14763
  BILLING_ADDRESS_REQUIRED: "Add a billing address first."
14764
14764
  };
14765
14765
  function addonErrorMessage(error) {
14766
- const detail = chunkDDIV3MYQ_cjs.apiErrorDetail(error);
14766
+ const detail = chunkBAJNXRI5_cjs.apiErrorDetail(error);
14767
14767
  if (detail && typeof detail === "object") {
14768
14768
  const { code, message } = detail;
14769
14769
  if (message) return message;
@@ -14789,14 +14789,14 @@ function chargeRefusalMessage(error) {
14789
14789
  return code ? REFUSALS[code] : null;
14790
14790
  }
14791
14791
  function addonErrorCode(error) {
14792
- const detail = chunkDDIV3MYQ_cjs.apiErrorDetail(error);
14792
+ const detail = chunkBAJNXRI5_cjs.apiErrorDetail(error);
14793
14793
  if (detail && typeof detail === "object") {
14794
14794
  const code = detail.code;
14795
14795
  if (code && code in FALLBACK_MESSAGES) return code;
14796
14796
  }
14797
14797
  return null;
14798
14798
  }
14799
- var addedMessage = (kind, blockAiGbp, blockStorageGb) => kind === "ai_usage" ? `${react.formatGbp(blockAiGbp ?? chunkDDIV3MYQ_cjs.ADDON_BLOCK_AI_GBP)} of AI usage added` : `${blockStorageGb ?? chunkDDIV3MYQ_cjs.STORAGE_BLOCK_GB} GB added`;
14799
+ var addedMessage = (kind, blockAiGbp, blockStorageGb) => kind === "ai_usage" ? `${react.formatGbp(blockAiGbp ?? chunkBAJNXRI5_cjs.ADDON_BLOCK_AI_GBP)} of AI usage added` : `${blockStorageGb ?? chunkBAJNXRI5_cjs.STORAGE_BLOCK_GB} GB added`;
14800
14800
  function useAddonPurchase() {
14801
14801
  const addBlock = react.useAddProjectAddonBlock();
14802
14802
  const { mutate } = addBlock;
@@ -14848,7 +14848,7 @@ function PlanChangeLines({
14848
14848
  isError,
14849
14849
  className
14850
14850
  }) {
14851
- const lines = preview ? chunkDDIV3MYQ_cjs.planPreviewLines(preview) : [{ id: "pay-today", text: isError ? chunkDDIV3MYQ_cjs.PAY_TODAY_UNPRICED : "Checking price\u2026" }];
14851
+ const lines = preview ? chunkBAJNXRI5_cjs.planPreviewLines(preview) : [{ id: "pay-today", text: isError ? chunkBAJNXRI5_cjs.PAY_TODAY_UNPRICED : "Checking price\u2026" }];
14852
14852
  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)) });
14853
14853
  }
14854
14854
  var BANK_CONFIRM_PLAN_CHANGE = "Confirm with your bank. Nothing is charged until you do.";
@@ -14856,13 +14856,13 @@ function notifyPlanChange(data, fallback, planName2) {
14856
14856
  const outcome = data?.plan_change;
14857
14857
  switch (outcome?.result) {
14858
14858
  case "upgraded": {
14859
- const plan = chunkDDIV3MYQ_cjs.planNameForPacks(data?.addons?.packs ?? data?.packs);
14860
- const charged = outcome.charged_pence > 0 ? ` \xB7 ${chunkDDIV3MYQ_cjs.formatMoney(outcome.charged_pence, "gbp")} charged` : "";
14859
+ const plan = chunkBAJNXRI5_cjs.planNameForPacks(data?.addons?.packs ?? data?.packs);
14860
+ const charged = outcome.charged_pence > 0 ? ` \xB7 ${chunkBAJNXRI5_cjs.formatMoney(outcome.charged_pence, "gbp")} charged` : "";
14861
14861
  shell.notify.success(`Upgraded to ${plan}${charged}`);
14862
14862
  break;
14863
14863
  }
14864
14864
  case "scheduled": {
14865
- const when2 = chunkDDIV3MYQ_cjs.formatPeriodEnd(data?.addons?.period_end ?? data?.current_period_end);
14865
+ const when2 = chunkBAJNXRI5_cjs.formatPeriodEnd(data?.addons?.period_end ?? data?.current_period_end);
14866
14866
  shell.notify.success(when2 ? `Scheduled for ${when2}` : fallback);
14867
14867
  break;
14868
14868
  }
@@ -14895,23 +14895,23 @@ function ChangeProPlan({
14895
14895
  const { data: products } = react.useProducts();
14896
14896
  const changePlan = react.useChangeProjectPlan();
14897
14897
  const cancel = react.useCancelProjectSubscription();
14898
- const prices = chunkDDIV3MYQ_cjs.findProPrices(products);
14898
+ const prices = chunkBAJNXRI5_cjs.findProPrices(products);
14899
14899
  const addons = project.addons;
14900
14900
  const isCanceling = project.cancel_at_period_end === true || project.subscription === "canceled";
14901
- const currentPacks = Math.max(addons?.packs ?? project.packs ?? chunkDDIV3MYQ_cjs.PRO_PACKS, chunkDDIV3MYQ_cjs.PRO_PACKS);
14902
- const isLegacyMultiPack = currentPacks > chunkDDIV3MYQ_cjs.PRO_PACKS;
14901
+ const currentPacks = Math.max(addons?.packs ?? project.packs ?? chunkBAJNXRI5_cjs.PRO_PACKS, chunkBAJNXRI5_cjs.PRO_PACKS);
14902
+ const isLegacyMultiPack = currentPacks > chunkBAJNXRI5_cjs.PRO_PACKS;
14903
14903
  const currentInterval = project.plan_interval === "year" ? "year" : "month";
14904
14904
  const scheduledPacks = isCanceling ? 0 : addons?.packs_next ?? currentPacks;
14905
14905
  const scheduledInterval = addons?.pending_interval ?? currentInterval;
14906
14906
  const [targetPacks, setTargetPacks] = react$1.useState(scheduledPacks);
14907
14907
  const [chosenInterval, setChosenInterval] = react$1.useState(scheduledInterval);
14908
- const targetInterval = targetPacks > chunkDDIV3MYQ_cjs.PRO_PACKS ? currentInterval : chosenInterval;
14908
+ const targetInterval = targetPacks > chunkBAJNXRI5_cjs.PRO_PACKS ? currentInterval : chosenInterval;
14909
14909
  const periodEnd = formatDate(addons?.period_end ?? project.current_period_end);
14910
14910
  const when2 = periodEnd ?? "the end of the period";
14911
14911
  const shortWhen = periodEnd ? periodEnd.replace(/ \d{4}$/, "") : "period end";
14912
14912
  const isPending = changePlan.isPending || cancel.isPending;
14913
14913
  const sameAsScheduled = targetPacks === scheduledPacks && (targetPacks === 0 || targetInterval === scheduledInterval);
14914
- const packOptions = isLegacyMultiPack ? [currentPacks, chunkDDIV3MYQ_cjs.PRO_PACKS, 0] : [chunkDDIV3MYQ_cjs.PRO_PACKS, 0];
14914
+ const packOptions = isLegacyMultiPack ? [currentPacks, chunkBAJNXRI5_cjs.PRO_PACKS, 0] : [chunkBAJNXRI5_cjs.PRO_PACKS, 0];
14915
14915
  const intervalPrice = targetInterval === "year" ? prices.annual : prices.monthly;
14916
14916
  const currency = intervalPrice?.currency ?? project.currency ?? "gbp";
14917
14917
  const preview = react.usePreviewProjectPlanChange(
@@ -14919,7 +14919,7 @@ function ChangeProPlan({
14919
14919
  sameAsScheduled || targetPacks === 0 ? null : { packs: targetPacks, interval: targetInterval }
14920
14920
  );
14921
14921
  const noChange = sameAsScheduled || preview.data?.unchanged === true;
14922
- const nameFor = (packs) => packs === currentPacks && packs > 0 ? chunkDDIV3MYQ_cjs.proTierName(project) : chunkDDIV3MYQ_cjs.planNameForPacks(packs);
14922
+ const nameFor = (packs) => packs === currentPacks && packs > 0 ? chunkBAJNXRI5_cjs.proTierName(project) : chunkBAJNXRI5_cjs.planNameForPacks(packs);
14923
14923
  const effects = [];
14924
14924
  const target = nameFor(targetPacks);
14925
14925
  if (targetPacks === 0) {
@@ -14929,7 +14929,7 @@ function ChangeProPlan({
14929
14929
  if (targetPacks < currentPacks) {
14930
14930
  effects.push(`Changes to one Pro licence on ${when2}. No refund.`);
14931
14931
  } else if (!isCanceling && addons?.packs_next != null) {
14932
- effects.push(`Cancels the change to ${chunkDDIV3MYQ_cjs.planNameForPacks(addons.packs_next)}.`);
14932
+ effects.push(`Cancels the change to ${chunkBAJNXRI5_cjs.planNameForPacks(addons.packs_next)}.`);
14933
14933
  }
14934
14934
  if (targetInterval !== currentInterval) {
14935
14935
  effects.push(`${targetInterval === "year" ? "Annual" : "Monthly"} billing from ${when2}.`);
@@ -14968,33 +14968,33 @@ function ChangeProPlan({
14968
14968
  if (packs === 0) {
14969
14969
  return {
14970
14970
  total: "\xA30",
14971
- summary: `${react.formatGbp(chunkDDIV3MYQ_cjs.FREE_AI_GBP)} of AI usage \xB7 ${chunkDDIV3MYQ_cjs.FREE_STORAGE_MB} MB \xB7 just you`
14971
+ summary: `${react.formatGbp(chunkBAJNXRI5_cjs.FREE_AI_GBP)} of AI usage \xB7 ${chunkBAJNXRI5_cjs.FREE_STORAGE_MB} MB \xB7 just you`
14972
14972
  };
14973
14973
  }
14974
- const allowance = `${react.formatGbp(chunkDDIV3MYQ_cjs.PRO_AI_GBP * packs)} of AI usage \xB7 ${chunkDDIV3MYQ_cjs.PRO_STORAGE_GB * packs} GB`;
14975
- const legacy = packs > chunkDDIV3MYQ_cjs.PRO_PACKS;
14976
- const exVat = legacy ? project.amount_ex_vat : chunkDDIV3MYQ_cjs.packPrice(intervalPrice)?.amount_ex_vat;
14974
+ const allowance = `${react.formatGbp(chunkBAJNXRI5_cjs.PRO_AI_GBP * packs)} of AI usage \xB7 ${chunkBAJNXRI5_cjs.PRO_STORAGE_GB * packs} GB`;
14975
+ const legacy = packs > chunkBAJNXRI5_cjs.PRO_PACKS;
14976
+ const exVat = legacy ? project.amount_ex_vat : chunkBAJNXRI5_cjs.packPrice(intervalPrice)?.amount_ex_vat;
14977
14977
  return {
14978
- total: exVat != null ? chunkDDIV3MYQ_cjs.plusVat(exVat, currency) : void 0,
14978
+ total: exVat != null ? chunkBAJNXRI5_cjs.plusVat(exVat, currency) : void 0,
14979
14979
  summary: allowance
14980
14980
  };
14981
14981
  };
14982
- return /* @__PURE__ */ jsxRuntime.jsxs(chunkMMSHLHTA_cjs.PlanStack, { gap: 4, testId: "change-pro-plan", children: [
14982
+ return /* @__PURE__ */ jsxRuntime.jsxs(chunk6OXR4R6J_cjs.PlanStack, { gap: 4, testId: "change-pro-plan", children: [
14983
14983
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-wrap items-center justify-between gap-2", children: [
14984
14984
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm font-medium text-foreground", children: "Billing" }),
14985
- targetPacks > chunkDDIV3MYQ_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(
14986
- chunkMMSHLHTA_cjs.PricingToggle,
14985
+ targetPacks > chunkBAJNXRI5_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(
14986
+ chunk6OXR4R6J_cjs.PricingToggle,
14987
14987
  {
14988
14988
  isAnnual: targetInterval === "year",
14989
14989
  onToggle: () => setChosenInterval(targetInterval === "year" ? "month" : "year"),
14990
- savingsPercent: chunkDDIV3MYQ_cjs.calcSavingsPercent(prices.monthly, prices.annual)
14990
+ savingsPercent: chunkBAJNXRI5_cjs.calcSavingsPercent(prices.monthly, prices.annual)
14991
14991
  }
14992
14992
  )
14993
14993
  ] }),
14994
- /* @__PURE__ */ jsxRuntime.jsx(chunkMMSHLHTA_cjs.PlanStack, { gap: 2, children: packOptions.map((packs) => {
14994
+ /* @__PURE__ */ jsxRuntime.jsx(chunk6OXR4R6J_cjs.PlanStack, { gap: 2, children: packOptions.map((packs) => {
14995
14995
  const { total, summary } = optionFor(packs);
14996
14996
  return /* @__PURE__ */ jsxRuntime.jsx(
14997
- chunkMMSHLHTA_cjs.PlanTierOption,
14997
+ chunk6OXR4R6J_cjs.PlanTierOption,
14998
14998
  {
14999
14999
  onSelect: setTargetPacks,
15000
15000
  option: {
@@ -15011,13 +15011,13 @@ function ChangeProPlan({
15011
15011
  );
15012
15012
  }) }),
15013
15013
  isLegacyMultiPack && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-wrap items-center gap-x-3 gap-y-1", children: [
15014
- /* @__PURE__ */ jsxRuntime.jsxs(chunkMMSHLHTA_cjs.PlanNotice, { className: "text-xs", testId: "change-plan-legacy-note", children: [
15015
- chunkDDIV3MYQ_cjs.proTierName(project),
15014
+ /* @__PURE__ */ jsxRuntime.jsxs(chunk6OXR4R6J_cjs.PlanNotice, { className: "text-xs", testId: "change-plan-legacy-note", children: [
15015
+ chunkBAJNXRI5_cjs.proTierName(project),
15016
15016
  " is no longer sold"
15017
15017
  ] }),
15018
- /* @__PURE__ */ jsxRuntime.jsxs(chunkMMSHLHTA_cjs.MoreInfo, { title: "Legacy plan", testId: "change-plan-legacy-more-info", children: [
15018
+ /* @__PURE__ */ jsxRuntime.jsxs(chunk6OXR4R6J_cjs.MoreInfo, { title: "Legacy plan", testId: "change-plan-legacy-more-info", children: [
15019
15019
  /* @__PURE__ */ jsxRuntime.jsxs("p", { children: [
15020
- chunkDDIV3MYQ_cjs.proTierName(project),
15020
+ chunkBAJNXRI5_cjs.proTierName(project),
15021
15021
  " keeps renewing at its own price, with its allowance and add-ons, until you change it."
15022
15022
  ] }),
15023
15023
  /* @__PURE__ */ jsxRuntime.jsxs("p", { children: [
@@ -15038,7 +15038,7 @@ function ChangeProPlan({
15038
15038
  ),
15039
15039
  targetPacks > 0 && /* @__PURE__ */ jsxRuntime.jsx(ConnectedReferralRewardNote, {}),
15040
15040
  /* @__PURE__ */ jsxRuntime.jsx(
15041
- chunkMMSHLHTA_cjs.PlanActionButton,
15041
+ chunk6OXR4R6J_cjs.PlanActionButton,
15042
15042
  {
15043
15043
  onClick: apply,
15044
15044
  disabled: noChange || isPending,
@@ -15049,9 +15049,9 @@ function ChangeProPlan({
15049
15049
  ] });
15050
15050
  }
15051
15051
  function ChangePlanDialog({ project, open, onOpenChange }) {
15052
- const isPro = !!project && chunkDDIV3MYQ_cjs.isProProject(project);
15052
+ const isPro = !!project && chunkBAJNXRI5_cjs.isProProject(project);
15053
15053
  return /* @__PURE__ */ jsxRuntime.jsx(
15054
- chunkMMSHLHTA_cjs.PlanDialogFrame,
15054
+ chunk6OXR4R6J_cjs.PlanDialogFrame,
15055
15055
  {
15056
15056
  open,
15057
15057
  onOpenChange,
@@ -15071,14 +15071,14 @@ function ChangePlanDialog({ project, open, onOpenChange }) {
15071
15071
  }
15072
15072
  function ProjectsTable() {
15073
15073
  const { data: projects, isLoading } = react.useProjects();
15074
- const currentUserExtId = chunkDDIV3MYQ_cjs.useSelfExtId();
15074
+ const currentUserExtId = chunkBAJNXRI5_cjs.useSelfExtId();
15075
15075
  const { openProject } = chunkUIXY4HKM_cjs.useBlocksEnvironment();
15076
15076
  const updateProject = react.useUpdateProjectFields();
15077
15077
  const [renameTarget, setRenameTarget] = react$1.useState(null);
15078
15078
  const [renameValue, setRenameValue] = react$1.useState("");
15079
15079
  const [invoicesTarget, setInvoicesTarget] = react$1.useState(null);
15080
15080
  const [upgradeTarget, setUpgradeTarget] = react$1.useState(null);
15081
- const { stripeEnabled } = chunkDDIV3MYQ_cjs.useBillingSupport();
15081
+ const { stripeEnabled } = chunkBAJNXRI5_cjs.useBillingSupport();
15082
15082
  const ownedProjects = react$1.useMemo(
15083
15083
  () => (projects ?? []).filter((p) => p.created_by === currentUserExtId),
15084
15084
  [projects, currentUserExtId]
@@ -15117,13 +15117,13 @@ function ProjectsTable() {
15117
15117
  const hasPaid = p.subscription === "active" || p.subscription === "past_due";
15118
15118
  const canUpgrade = stripeEnabled && !hasPaid && p.subscription !== "canceled" && p.subscription !== "dev";
15119
15119
  return /* @__PURE__ */ jsxRuntime.jsx(
15120
- chunkMMSHLHTA_cjs.ProjectRow,
15120
+ chunk6OXR4R6J_cjs.ProjectRow,
15121
15121
  {
15122
15122
  testId: `project-row-${p.external_id}`,
15123
15123
  onOpen: () => openProject(p.external_id),
15124
15124
  identity: /* @__PURE__ */ jsxRuntime.jsx(ConnectedProjectEntity, { name: p.name, relation: "mine", subscription: p.subscription }),
15125
- summary: stripeEnabled ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex items-center whitespace-nowrap", children: /* @__PURE__ */ jsxRuntime.jsx(chunkMMSHLHTA_cjs.PlanBadge, { ...chunkDDIV3MYQ_cjs.planBadgeView(p) }) }) : void 0,
15126
- usage: p.quotas ? /* @__PURE__ */ jsxRuntime.jsx(chunkMMSHLHTA_cjs.QuotaMeter, { items: chunkDDIV3MYQ_cjs.getQuotaItems(p.quotas), size: "lg" }) : void 0,
15125
+ summary: stripeEnabled ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex items-center whitespace-nowrap", children: /* @__PURE__ */ jsxRuntime.jsx(chunk6OXR4R6J_cjs.PlanBadge, { ...chunkBAJNXRI5_cjs.planBadgeView(p) }) }) : void 0,
15126
+ usage: p.quotas ? /* @__PURE__ */ jsxRuntime.jsx(chunk6OXR4R6J_cjs.QuotaMeter, { items: chunkBAJNXRI5_cjs.getQuotaItems(p.quotas), size: "lg" }) : void 0,
15127
15127
  actions: /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
15128
15128
  canUpgrade && /* @__PURE__ */ jsxRuntime.jsxs(
15129
15129
  ui.Button,
@@ -15157,9 +15157,9 @@ function ProjectsTable() {
15157
15157
  );
15158
15158
  };
15159
15159
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
15160
- /* @__PURE__ */ jsxRuntime.jsx(chunkMMSHLHTA_cjs.ProjectList, { isLoading, isEmpty: ownedProjects.length === 0, isFilteredOut: false, children: ownedProjects.map(renderRow) }),
15160
+ /* @__PURE__ */ jsxRuntime.jsx(chunk6OXR4R6J_cjs.ProjectList, { isLoading, isEmpty: ownedProjects.length === 0, isFilteredOut: false, children: ownedProjects.map(renderRow) }),
15161
15161
  /* @__PURE__ */ jsxRuntime.jsx(
15162
- chunkMMSHLHTA_cjs.RenameDialog,
15162
+ chunk6OXR4R6J_cjs.RenameDialog,
15163
15163
  {
15164
15164
  open: !!renameTarget,
15165
15165
  onClose: () => setRenameTarget(null),
@@ -15190,7 +15190,7 @@ function ProjectsTable() {
15190
15190
  }
15191
15191
  function SharedProjects() {
15192
15192
  const { data: projects } = react.useProjects();
15193
- const currentUserExtId = chunkDDIV3MYQ_cjs.useSelfExtId();
15193
+ const currentUserExtId = chunkBAJNXRI5_cjs.useSelfExtId();
15194
15194
  const { data: usageToday } = react.useUserUsageToday();
15195
15195
  const shared = react$1.useMemo(
15196
15196
  () => (projects ?? []).filter((p) => p.created_by !== currentUserExtId),
@@ -15199,13 +15199,13 @@ function SharedProjects() {
15199
15199
  if (shared.length === 0) return null;
15200
15200
  const usedToday = usageToday?.used_gbp ?? 0;
15201
15201
  return /* @__PURE__ */ jsxRuntime.jsx(
15202
- chunkMMSHLHTA_cjs.SharedProjectsSection,
15202
+ chunk6OXR4R6J_cjs.SharedProjectsSection,
15203
15203
  {
15204
15204
  footnote: `Your daily AI usage allowance in ${ui.entityNoun("PROJECT", "PLURAL")} other people run \u2014 their plan and billing are theirs.`,
15205
15205
  children: shared.map((p) => {
15206
15206
  const cap = p.daily_cap_per_user;
15207
15207
  return /* @__PURE__ */ jsxRuntime.jsx(
15208
- chunkMMSHLHTA_cjs.SharedProjectRow,
15208
+ chunk6OXR4R6J_cjs.SharedProjectRow,
15209
15209
  {
15210
15210
  testId: `shared-project-${p.external_id}`,
15211
15211
  identity: /* @__PURE__ */ jsxRuntime.jsx(ConnectedProjectEntity, { name: p.name, relation: "other" }),
@@ -15251,7 +15251,7 @@ function DailyCapEditor({ project }) {
15251
15251
  );
15252
15252
  };
15253
15253
  return /* @__PURE__ */ jsxRuntime.jsx(
15254
- chunkMMSHLHTA_cjs.DailyCapField,
15254
+ chunk6OXR4R6J_cjs.DailyCapField,
15255
15255
  {
15256
15256
  value,
15257
15257
  onChange: setValue,
@@ -15264,11 +15264,11 @@ function DailyCapEditor({ project }) {
15264
15264
  function SubscriptionStatus({ project }) {
15265
15265
  const { quotas, cancel_at_period_end, subscription, current_period_end, addons } = project;
15266
15266
  return /* @__PURE__ */ jsxRuntime.jsx(
15267
- chunkMMSHLHTA_cjs.SubscriptionStatusView,
15267
+ chunk6OXR4R6J_cjs.SubscriptionStatusView,
15268
15268
  {
15269
- resetDate: chunkDDIV3MYQ_cjs.formatResetDate(addons?.ai_usage_reset_at ?? current_period_end),
15269
+ resetDate: chunkBAJNXRI5_cjs.formatResetDate(addons?.ai_usage_reset_at ?? current_period_end),
15270
15270
  isCanceling: subscription === "canceled" || cancel_at_period_end === true,
15271
- meters: chunkDDIV3MYQ_cjs.getQuotaItems(quotas).map((q) => ({
15271
+ meters: chunkBAJNXRI5_cjs.getQuotaItems(quotas).map((q) => ({
15272
15272
  key: q.key,
15273
15273
  icon: q.icon,
15274
15274
  label: q.label,
@@ -15332,7 +15332,7 @@ function PendingChange({
15332
15332
  }
15333
15333
  );
15334
15334
  }
15335
- var titleFor = (kind, blockAiGbp, blockStorageGb) => kind === "ai_usage" ? `Add ${react.formatGbp(blockAiGbp ?? chunkDDIV3MYQ_cjs.ADDON_BLOCK_AI_GBP)} of AI usage` : `Add ${blockStorageGb ?? chunkDDIV3MYQ_cjs.STORAGE_BLOCK_GB} GB storage`;
15335
+ var titleFor = (kind, blockAiGbp, blockStorageGb) => kind === "ai_usage" ? `Add ${react.formatGbp(blockAiGbp ?? chunkBAJNXRI5_cjs.ADDON_BLOCK_AI_GBP)} of AI usage` : `Add ${blockStorageGb ?? chunkBAJNXRI5_cjs.STORAGE_BLOCK_GB} GB storage`;
15336
15336
  var blocksOf = (kind, project) => (kind === "ai_usage" ? project.addons?.ai_blocks : project.addons?.storage_blocks) ?? 0;
15337
15337
  function Row({ label, children }) {
15338
15338
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-baseline justify-between gap-4", children: [
@@ -15353,11 +15353,11 @@ function AddAddonDialog({
15353
15353
  const addons = project.addons;
15354
15354
  if (!addons) return null;
15355
15355
  const isAnnual = project.plan_interval === "year";
15356
- const price = chunkDDIV3MYQ_cjs.addonCharge(kind, addons, isAnnual, addons.period_end ?? project.current_period_end);
15357
- const nextCharge = chunkDDIV3MYQ_cjs.formatPeriodEnd(addons.period_end ?? project.current_period_end);
15358
- const now = quote.data ? chunkDDIV3MYQ_cjs.quoteParts(quote.data.now) : null;
15359
- const renewal = quote.data ? chunkDDIV3MYQ_cjs.quoteParts(quote.data.renewal) : null;
15360
- const today = now ? { total: chunkDDIV3MYQ_cjs.money2(now.total), detail: chunkDDIV3MYQ_cjs.taxDetail(now) } : { total: price.now, detail: `incl. VAT (${price.nowExVat} + ${price.nowVat} VAT)` };
15356
+ const price = chunkBAJNXRI5_cjs.addonCharge(kind, addons, isAnnual, addons.period_end ?? project.current_period_end);
15357
+ const nextCharge = chunkBAJNXRI5_cjs.formatPeriodEnd(addons.period_end ?? project.current_period_end);
15358
+ const now = quote.data ? chunkBAJNXRI5_cjs.quoteParts(quote.data.now) : null;
15359
+ const renewal = quote.data ? chunkBAJNXRI5_cjs.quoteParts(quote.data.renewal) : null;
15360
+ const today = now ? { total: chunkBAJNXRI5_cjs.money2(now.total), detail: chunkBAJNXRI5_cjs.taxDetail(now) } : { total: price.now, detail: `incl. VAT (${price.nowExVat} + ${price.nowVat} VAT)` };
15361
15361
  const pricing = quote.isLoading;
15362
15362
  const confirm = () => {
15363
15363
  const before = blocksOf(kind, project);
@@ -15396,8 +15396,8 @@ function AddAddonDialog({
15396
15396
  isAnnual ? "yearly" : "monthly",
15397
15397
  " \xB7 no refund"
15398
15398
  ] }),
15399
- /* @__PURE__ */ jsxRuntime.jsx(chunkMMSHLHTA_cjs.MoreInfo, { title: "Adding a top-up", testId: "add-addon-more-info", children: /* @__PURE__ */ jsxRuntime.jsx(
15400
- chunkMMSHLHTA_cjs.MoreInfoList,
15399
+ /* @__PURE__ */ jsxRuntime.jsx(chunk6OXR4R6J_cjs.MoreInfo, { title: "Adding a top-up", testId: "add-addon-more-info", children: /* @__PURE__ */ jsxRuntime.jsx(
15400
+ chunk6OXR4R6J_cjs.MoreInfoList,
15401
15401
  {
15402
15402
  items: [
15403
15403
  {
@@ -15412,7 +15412,7 @@ function AddAddonDialog({
15412
15412
  term: "Usage cap",
15413
15413
  text: "Adding by hand is never blocked by the usage cap; the cap limits automatic top-ups only."
15414
15414
  },
15415
- ...isAnnual && kind === "ai_usage" ? [{ term: "Annual", text: `${chunkDDIV3MYQ_cjs.ANNUAL_PREMIUM_AI_NOTE}.` }] : []
15415
+ ...isAnnual && kind === "ai_usage" ? [{ term: "Annual", text: `${chunkBAJNXRI5_cjs.ANNUAL_PREMIUM_AI_NOTE}.` }] : []
15416
15416
  ]
15417
15417
  }
15418
15418
  ) })
@@ -15435,7 +15435,7 @@ function AddAddonDialog({
15435
15435
  )
15436
15436
  ] }) }),
15437
15437
  !pricing && /* @__PURE__ */ jsxRuntime.jsxs(Row, { label: "Next charge", children: [
15438
- renewal ? chunkDDIV3MYQ_cjs.totalWithTaxWord(renewal) : price.then.replace(/\/(month|year)/, ""),
15438
+ renewal ? chunkBAJNXRI5_cjs.totalWithTaxWord(renewal) : price.then.replace(/\/(month|year)/, ""),
15439
15439
  nextCharge ? ` on ${nextCharge}` : " at renewal"
15440
15440
  ] })
15441
15441
  ] }) }),
@@ -15466,11 +15466,11 @@ function ReduceAddonDialog({
15466
15466
  const update = react.useUpdateProjectNextPeriodAddons();
15467
15467
  const addons = project.addons;
15468
15468
  if (!addons) return null;
15469
- const { min, next } = chunkDDIV3MYQ_cjs.reduceBounds(kind, addons);
15469
+ const { min, next } = chunkBAJNXRI5_cjs.reduceBounds(kind, addons);
15470
15470
  const keep2 = Math.max(min, next - 1);
15471
- const size = chunkDDIV3MYQ_cjs.nextRemovedBlockSize(kind, addons);
15472
- const what = chunkDDIV3MYQ_cjs.stepLabel(kind, size);
15473
- const from = chunkDDIV3MYQ_cjs.formatPeriodEnd(addons.period_end ?? project.current_period_end) ?? "your next renewal";
15471
+ const size = chunkBAJNXRI5_cjs.nextRemovedBlockSize(kind, addons);
15472
+ const what = chunkBAJNXRI5_cjs.stepLabel(kind, size);
15473
+ const from = chunkBAJNXRI5_cjs.formatPeriodEnd(addons.period_end ?? project.current_period_end) ?? "your next renewal";
15474
15474
  const fromShort = from.replace(/ \d{4}$/, "");
15475
15475
  const allowanceNext = kind === "ai_usage" ? addons.ai_allowance_next_gbp - size : addons.storage_allowance_next_gb - size;
15476
15476
  const allowanceNow = kind === "ai_usage" ? addons.ai_allowance_gbp : addons.storage_allowance_gb;
@@ -15478,7 +15478,7 @@ function ReduceAddonDialog({
15478
15478
  const save = () => update.mutate(
15479
15479
  {
15480
15480
  projectExtId: project.external_id,
15481
- body: chunkDDIV3MYQ_cjs.nextPeriodBody(kind, keep2)
15481
+ body: chunkBAJNXRI5_cjs.nextPeriodBody(kind, keep2)
15482
15482
  },
15483
15483
  {
15484
15484
  onSuccess: () => {
@@ -15506,7 +15506,7 @@ function ReduceAddonDialog({
15506
15506
  fromShort,
15507
15507
  " \xB7 no refund"
15508
15508
  ] }),
15509
- /* @__PURE__ */ jsxRuntime.jsxs(chunkMMSHLHTA_cjs.MoreInfo, { title: "Reducing a top-up", testId: "reduce-addon-more-info", children: [
15509
+ /* @__PURE__ */ jsxRuntime.jsxs(chunk6OXR4R6J_cjs.MoreInfo, { title: "Reducing a top-up", testId: "reduce-addon-more-info", children: [
15510
15510
  /* @__PURE__ */ jsxRuntime.jsxs("p", { children: [
15511
15511
  "The reduction applies from your next renewal (",
15512
15512
  from,
@@ -15545,7 +15545,7 @@ function ReduceAddonDialog({
15545
15545
  }
15546
15546
  ) });
15547
15547
  }
15548
- var gbp = (pence) => chunkDDIV3MYQ_cjs.formatMoney(pence, "gbp");
15548
+ var gbp = (pence) => chunkBAJNXRI5_cjs.formatMoney(pence, "gbp");
15549
15549
  var gb2 = (n) => `${Math.round(n * 10) / 10} GB`;
15550
15550
  var pct = (used, limit) => limit > 0 ? Math.min(100, used / limit * 100) : 0;
15551
15551
  function formatShortDate(unix) {
@@ -15557,20 +15557,20 @@ function AutoTopupThreshold({
15557
15557
  addons
15558
15558
  }) {
15559
15559
  const updateSettings = react.useUpdateProjectAddonSettings();
15560
- const min = addons.min_auto_topup_threshold_gbp || chunkDDIV3MYQ_cjs.MIN_AUTO_TOPUP_THRESHOLD_GBP;
15560
+ const min = addons.min_auto_topup_threshold_gbp || chunkBAJNXRI5_cjs.MIN_AUTO_TOPUP_THRESHOLD_GBP;
15561
15561
  const saved = addons.auto_topup_threshold_gbp;
15562
15562
  const [value, setValue] = react$1.useState(String(saved));
15563
15563
  react$1.useEffect(() => setValue(String(saved)), [saved]);
15564
15564
  const parsed = Number(value);
15565
15565
  const valid = Number.isFinite(parsed) && parsed >= min;
15566
15566
  const dirty = valid && parsed !== saved;
15567
- const off = chunkDDIV3MYQ_cjs.isAddonBudgetZero(addons);
15567
+ const off = chunkBAJNXRI5_cjs.isAddonBudgetZero(addons);
15568
15568
  const save = () => {
15569
15569
  if (!dirty) return;
15570
15570
  updateSettings.mutate(
15571
15571
  {
15572
15572
  projectExtId: project.external_id,
15573
- body: chunkDDIV3MYQ_cjs.addonSettingsBody(addons, { auto_topup_threshold_gbp: parsed })
15573
+ body: chunkBAJNXRI5_cjs.addonSettingsBody(addons, { auto_topup_threshold_gbp: parsed })
15574
15574
  },
15575
15575
  {
15576
15576
  onSuccess: () => shell.notify.success(`Auto-add below ${react.formatGbp(parsed)} of AI usage left`),
@@ -15667,10 +15667,10 @@ function ResourceMeter({
15667
15667
  const update = react.useUpdateProjectNextPeriodAddons();
15668
15668
  const isAi = kind === "ai_usage";
15669
15669
  const slug = isAi ? "ai-usage" : "storage";
15670
- const periodEnd = chunkDDIV3MYQ_cjs.formatPeriodEnd(addons.period_end ?? project.current_period_end);
15670
+ const periodEnd = chunkBAJNXRI5_cjs.formatPeriodEnd(addons.period_end ?? project.current_period_end);
15671
15671
  const from = periodEnd ?? "your next renewal";
15672
15672
  const fromShort = formatShortDate(addons.period_end ?? project.current_period_end) ?? "renewal";
15673
- const { min, current, next } = chunkDDIV3MYQ_cjs.reduceBounds(kind, addons);
15673
+ const { min, current, next } = chunkBAJNXRI5_cjs.reduceBounds(kind, addons);
15674
15674
  const fmt = (n) => isAi ? react.formatGbp(n) : gb2(n);
15675
15675
  const used = isAi ? addons.ai_used_gbp : addons.storage_used_gb;
15676
15676
  const allowance = isAi ? addons.ai_allowance_gbp : addons.storage_allowance_gb;
@@ -15678,15 +15678,15 @@ function ResourceMeter({
15678
15678
  const plan = isAi ? addons.plan_ai_gbp : addons.plan_storage_gb;
15679
15679
  const topUps = Math.max(0, allowance - plan);
15680
15680
  const blocks = isAi ? addons.ai_blocks : addons.storage_blocks;
15681
- const hasLegacy = chunkDDIV3MYQ_cjs.splitBlocks(kind, blocks, addons).legacy > 0;
15682
- const room = chunkDDIV3MYQ_cjs.autoRoom(kind, addons);
15683
- const capZero = chunkDDIV3MYQ_cjs.isAddonBudgetZero(addons);
15684
- const resets = isAi ? formatShortDate(chunkDDIV3MYQ_cjs.aiUsageResetTimestamp(project)) : null;
15685
- const removeSize = chunkDDIV3MYQ_cjs.nextRemovedBlockSize(kind, addons);
15681
+ const hasLegacy = chunkBAJNXRI5_cjs.splitBlocks(kind, blocks, addons).legacy > 0;
15682
+ const room = chunkBAJNXRI5_cjs.autoRoom(kind, addons);
15683
+ const capZero = chunkBAJNXRI5_cjs.isAddonBudgetZero(addons);
15684
+ const resets = isAi ? formatShortDate(chunkBAJNXRI5_cjs.aiUsageResetTimestamp(project)) : null;
15685
+ const removeSize = chunkBAJNXRI5_cjs.nextRemovedBlockSize(kind, addons);
15686
15686
  const undo = () => update.mutate(
15687
15687
  {
15688
15688
  projectExtId: project.external_id,
15689
- body: chunkDDIV3MYQ_cjs.nextPeriodBody(kind, current)
15689
+ body: chunkBAJNXRI5_cjs.nextPeriodBody(kind, current)
15690
15690
  },
15691
15691
  {
15692
15692
  onSuccess: () => shell.notify.success("Kept"),
@@ -15703,7 +15703,7 @@ function ResourceMeter({
15703
15703
  allowance: { used, plan, topUps, autoRoom: capZero ? 0 : room },
15704
15704
  legend: {
15705
15705
  plan: `Plan ${fmt(plan)}`,
15706
- topUps: topUps > 0 ? `Top-ups ${fmt(topUps)}${hasLegacy ? ` (${chunkDDIV3MYQ_cjs.blocksLabel(kind, blocks, addons)})` : ""}` : void 0,
15706
+ topUps: topUps > 0 ? `Top-ups ${fmt(topUps)}${hasLegacy ? ` (${chunkBAJNXRI5_cjs.blocksLabel(kind, blocks, addons)})` : ""}` : void 0,
15707
15707
  autoRoom: room != null && room > 0 && !capZero ? `Automatic up to ${fmt(room)}` : void 0
15708
15708
  },
15709
15709
  testId: `usage-meter-${slug}`,
@@ -15732,9 +15732,9 @@ function ResourceMeter({
15732
15732
  {
15733
15733
  icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Plus, { className: "size-3.5" }),
15734
15734
  label: isAi ? react.formatGbp(addons.block_ai_gbp) : `${addons.block_storage_gb} GB`,
15735
- caption: chunkDDIV3MYQ_cjs.addStepCaption(kind, addons),
15735
+ caption: chunkBAJNXRI5_cjs.addStepCaption(kind, addons),
15736
15736
  onClick: onAdd,
15737
- ariaLabel: `Add ${chunkDDIV3MYQ_cjs.stepLabel(kind, isAi ? addons.block_ai_gbp : addons.block_storage_gb)}`,
15737
+ ariaLabel: `Add ${chunkBAJNXRI5_cjs.stepLabel(kind, isAi ? addons.block_ai_gbp : addons.block_storage_gb)}`,
15738
15738
  testId: isAi ? "add-ai-block-button" : "add-storage-block-button"
15739
15739
  }
15740
15740
  ),
@@ -15745,7 +15745,7 @@ function ResourceMeter({
15745
15745
  label: isAi ? react.formatGbp(removeSize) : `${removeSize} GB`,
15746
15746
  caption: `from ${fromShort}`,
15747
15747
  onClick: onReduce,
15748
- ariaLabel: `Remove ${chunkDDIV3MYQ_cjs.stepLabel(kind, removeSize)} from ${from}`,
15748
+ ariaLabel: `Remove ${chunkBAJNXRI5_cjs.stepLabel(kind, removeSize)} from ${from}`,
15749
15749
  testId: `reduce-${slug}-button`
15750
15750
  }
15751
15751
  )
@@ -15784,10 +15784,10 @@ function UsageCapEditor({ project, addons }) {
15784
15784
  updateSettings.mutate(
15785
15785
  {
15786
15786
  projectExtId: project.external_id,
15787
- body: chunkDDIV3MYQ_cjs.addonSettingsBody(addons, { spend_cap_pence: nextCap })
15787
+ body: chunkBAJNXRI5_cjs.addonSettingsBody(addons, { spend_cap_pence: nextCap })
15788
15788
  },
15789
15789
  {
15790
- onSuccess: () => shell.notify.success(chunkDDIV3MYQ_cjs.budgetSavedMessage(nextCap)),
15790
+ onSuccess: () => shell.notify.success(chunkBAJNXRI5_cjs.budgetSavedMessage(nextCap)),
15791
15791
  onError: (error) => shell.notify.error(addonErrorMessage(error))
15792
15792
  }
15793
15793
  );
@@ -15798,14 +15798,14 @@ function UsageCapEditor({ project, addons }) {
15798
15798
  /* @__PURE__ */ jsxRuntime.jsx(
15799
15799
  chunkC4TGESIB_cjs.UsageMeter,
15800
15800
  {
15801
- label: chunkDDIV3MYQ_cjs.USAGE_CAP_LABEL,
15801
+ label: chunkBAJNXRI5_cjs.USAGE_CAP_LABEL,
15802
15802
  hint: spendResets && savedCap !== 0 ? `resets ${spendResets}` : void 0,
15803
15803
  value: readout,
15804
15804
  pct: savedCap != null && savedCap > 0 ? pct(spent, savedCap) : 0,
15805
15805
  testId: "addon-spend"
15806
15806
  }
15807
15807
  ),
15808
- addons.cap_reached && savedCap != null && savedCap > 0 && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-muted-foreground", "data-testid": "addon-cap-reached", children: chunkDDIV3MYQ_cjs.CAP_REACHED_MESSAGE }),
15808
+ addons.cap_reached && savedCap != null && savedCap > 0 && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-muted-foreground", "data-testid": "addon-cap-reached", children: chunkBAJNXRI5_cjs.CAP_REACHED_MESSAGE }),
15809
15809
  addons.manual_spent_pence > 0 && /* @__PURE__ */ jsxRuntime.jsxs("p", { className: "text-xs text-muted-foreground", "data-testid": "addon-manual-spend", children: [
15810
15810
  "Added by hand this month: ",
15811
15811
  gbp(addons.manual_spent_pence),
@@ -15826,7 +15826,7 @@ function UsageCapEditor({ project, addons }) {
15826
15826
  step: 25,
15827
15827
  className: "h-9 w-28",
15828
15828
  value: noCap ? "" : value,
15829
- placeholder: noCap ? "No limit" : String(chunkDDIV3MYQ_cjs.DEFAULT_SPEND_CAP_PENCE / 100),
15829
+ placeholder: noCap ? "No limit" : String(chunkBAJNXRI5_cjs.DEFAULT_SPEND_CAP_PENCE / 100),
15830
15830
  disabled: noCap,
15831
15831
  onChange: (e) => setValue(e.target.value),
15832
15832
  onKeyDown: (e) => e.key === "Enter" && save(),
@@ -15852,7 +15852,7 @@ function UsageCapEditor({ project, addons }) {
15852
15852
  checked: noCap,
15853
15853
  onCheckedChange: (checked) => {
15854
15854
  setNoCap(checked);
15855
- if (!checked && value === "") setValue(String(chunkDDIV3MYQ_cjs.DEFAULT_SPEND_CAP_PENCE / 100));
15855
+ if (!checked && value === "") setValue(String(chunkBAJNXRI5_cjs.DEFAULT_SPEND_CAP_PENCE / 100));
15856
15856
  },
15857
15857
  "data-testid": "no-cap-switch"
15858
15858
  }
@@ -15865,8 +15865,8 @@ function UsageCapEditor({ project, addons }) {
15865
15865
  function UsageInfo({ addons, isAnnual }) {
15866
15866
  const period = isAnnual ? "year" : "month";
15867
15867
  const legacy = (addons.legacy_ai_blocks ?? 0) > 0 || (addons.legacy_storage_blocks ?? 0) > 0;
15868
- return /* @__PURE__ */ jsxRuntime.jsx(chunkMMSHLHTA_cjs.MoreInfo, { title: "Usage and top-ups", testId: "usage-more-info", children: /* @__PURE__ */ jsxRuntime.jsx(
15869
- chunkMMSHLHTA_cjs.MoreInfoList,
15868
+ return /* @__PURE__ */ jsxRuntime.jsx(chunk6OXR4R6J_cjs.MoreInfo, { title: "Usage and top-ups", testId: "usage-more-info", children: /* @__PURE__ */ jsxRuntime.jsx(
15869
+ chunk6OXR4R6J_cjs.MoreInfoList,
15870
15870
  {
15871
15871
  items: [
15872
15872
  {
@@ -15881,7 +15881,7 @@ function UsageInfo({ addons, isAnnual }) {
15881
15881
  term: "Automatic top-ups",
15882
15882
  text: "One step is added when AI usage drops below your auto top-up level, or when an upload needs more storage."
15883
15883
  },
15884
- { term: "Usage cap", text: chunkDDIV3MYQ_cjs.USAGE_CAP_HELP },
15884
+ { term: "Usage cap", text: chunkBAJNXRI5_cjs.USAGE_CAP_HELP },
15885
15885
  {
15886
15886
  term: "Reducing",
15887
15887
  text: "\u2212 removes one step from your next renewal. You keep this period's allowance. No refunds."
@@ -15892,7 +15892,7 @@ function UsageInfo({ addons, isAnnual }) {
15892
15892
  text: "Top-ups bought on an earlier price keep their size and price until removed; they are removed last."
15893
15893
  }
15894
15894
  ] : [],
15895
- ...isAnnual ? [{ term: "Annual", text: `${chunkDDIV3MYQ_cjs.ANNUAL_PREMIUM_AI_NOTE}.` }] : [],
15895
+ ...isAnnual ? [{ term: "Annual", text: `${chunkBAJNXRI5_cjs.ANNUAL_PREMIUM_AI_NOTE}.` }] : [],
15896
15896
  {
15897
15897
  term: "Prices",
15898
15898
  text: "Shown ex VAT. The confirm step shows the total with VAT before you pay."
@@ -15984,7 +15984,7 @@ function formatShortDate2(unix) {
15984
15984
  if (!unix) return null;
15985
15985
  return new Date(unix * 1e3).toLocaleDateString("en-GB", { day: "numeric", month: "short" });
15986
15986
  }
15987
- var gbp2 = (pence) => chunkDDIV3MYQ_cjs.formatMoney(pence, "gbp");
15987
+ var gbp2 = (pence) => chunkBAJNXRI5_cjs.formatMoney(pence, "gbp");
15988
15988
  var gbNum = (n) => `${Math.round(n * 10) / 10}`;
15989
15989
  var pct2 = (used, limit) => limit > 0 ? Math.min(100, used / limit * 100) : 0;
15990
15990
  function Meter({
@@ -16002,15 +16002,15 @@ function Meter({
16002
16002
  ] });
16003
16003
  }
16004
16004
  function usePlanPrice(project) {
16005
- const { data: products } = react.useProducts({ enabled: chunkDDIV3MYQ_cjs.isProProject(project) });
16006
- if (!chunkDDIV3MYQ_cjs.isProProject(project)) return null;
16005
+ const { data: products } = react.useProducts({ enabled: chunkBAJNXRI5_cjs.isProProject(project) });
16006
+ if (!chunkBAJNXRI5_cjs.isProProject(project)) return null;
16007
16007
  const isAnnual = project.plan_interval === "year";
16008
16008
  if (project.amount != null) {
16009
16009
  return { incl: project.amount, ex: project.amount_ex_vat ?? null, isAnnual };
16010
16010
  }
16011
- if ((project.packs ?? chunkDDIV3MYQ_cjs.PRO_PACKS) > chunkDDIV3MYQ_cjs.PRO_PACKS) return null;
16012
- const prices = chunkDDIV3MYQ_cjs.findProPrices(products);
16013
- const pp = chunkDDIV3MYQ_cjs.packPrice(isAnnual ? prices.annual : prices.monthly);
16011
+ if ((project.packs ?? chunkBAJNXRI5_cjs.PRO_PACKS) > chunkBAJNXRI5_cjs.PRO_PACKS) return null;
16012
+ const prices = chunkBAJNXRI5_cjs.findProPrices(products);
16013
+ const pp = chunkBAJNXRI5_cjs.packPrice(isAnnual ? prices.annual : prices.monthly);
16014
16014
  return pp ? { incl: pp.amount, ex: pp.amount_ex_vat, isAnnual } : null;
16015
16015
  }
16016
16016
  function paidLine(payment, addons) {
@@ -16023,11 +16023,11 @@ function ProjectPlanCard({
16023
16023
  onChangePlan
16024
16024
  }) {
16025
16025
  const { quotas, addons } = project;
16026
- const isPro = chunkDDIV3MYQ_cjs.isProProject(project);
16026
+ const isPro = chunkBAJNXRI5_cjs.isProProject(project);
16027
16027
  const used = quotas?.ai_usage?.used ?? 0;
16028
16028
  const limit = quotas?.ai_usage?.limit ?? 0;
16029
- const resetDate = formatShortDate2(chunkDDIV3MYQ_cjs.aiUsageResetTimestamp(project));
16030
- const periodEnd = chunkDDIV3MYQ_cjs.formatPeriodEnd(addons?.period_end ?? project.current_period_end);
16029
+ const resetDate = formatShortDate2(chunkBAJNXRI5_cjs.aiUsageResetTimestamp(project));
16030
+ const periodEnd = chunkBAJNXRI5_cjs.formatPeriodEnd(addons?.period_end ?? project.current_period_end);
16031
16031
  const when2 = periodEnd ?? "the end of the period";
16032
16032
  const storageUsed = quotas?.storage_gb?.used ?? 0;
16033
16033
  const storageLimit = quotas?.storage_gb?.limit ?? 0;
@@ -16043,7 +16043,7 @@ function ProjectPlanCard({
16043
16043
  project.external_id,
16044
16044
  hasScheduledChange && addons ? { packs: packsNext ?? addons.packs, interval: pending ?? currentInterval } : null
16045
16045
  ).data;
16046
- const tier = isPro ? chunkDDIV3MYQ_cjs.proTierName(project) : project.subscription === "dev" ? "Dev" : "Free";
16046
+ const tier = isPro ? chunkBAJNXRI5_cjs.proTierName(project) : project.subscription === "dev" ? "Dev" : "Free";
16047
16047
  const pendingPayment = addons?.payment?.status === "pending" ? addons.payment : null;
16048
16048
  const confirmUrl = pendingPayment?.confirm_url ?? addons?.confirm_url;
16049
16049
  const paidPayment = addons?.payment?.status === "paid" ? addons.payment : null;
@@ -16077,7 +16077,7 @@ function ProjectPlanCard({
16077
16077
  isPro && " ",
16078
16078
  isPro && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ml-1 text-sm font-normal text-muted-foreground", children: currentInterval === "year" ? "Annual" : "Monthly" })
16079
16079
  ] }),
16080
- 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 ${chunkDDIV3MYQ_cjs.totalWithTaxWord({
16080
+ 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 ${chunkBAJNXRI5_cjs.totalWithTaxWord({
16081
16081
  subtotal: nextBill.next_renewal_ex_vat_pence,
16082
16082
  tax: nextBill.next_renewal_tax_pence,
16083
16083
  total: nextBill.next_renewal_pence,
@@ -16086,7 +16086,7 @@ function ProjectPlanCard({
16086
16086
  ] }),
16087
16087
  price && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ml-auto text-right", "data-testid": "project-plan-price", children: [
16088
16088
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-lg font-semibold tabular-nums text-foreground", children: [
16089
- price.ex != null ? chunkDDIV3MYQ_cjs.plusVat(price.ex) : gbp2(price.incl),
16089
+ price.ex != null ? chunkBAJNXRI5_cjs.plusVat(price.ex) : gbp2(price.incl),
16090
16090
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm font-normal text-muted-foreground", children: price.isAnnual ? "/year" : "/month" })
16091
16091
  ] }),
16092
16092
  price.ex != null && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-xs text-muted-foreground", children: [
@@ -16124,7 +16124,7 @@ function ProjectPlanCard({
16124
16124
  undoTestId: "undo-plan-change-button",
16125
16125
  children: [
16126
16126
  "Changes to ",
16127
- chunkDDIV3MYQ_cjs.planNameForPacks(packsNext),
16127
+ chunkBAJNXRI5_cjs.planNameForPacks(packsNext),
16128
16128
  " on ",
16129
16129
  when2,
16130
16130
  "."
@@ -16169,8 +16169,8 @@ function ProjectPlanCard({
16169
16169
  }
16170
16170
  )
16171
16171
  ] }),
16172
- addons?.billing_error && /* @__PURE__ */ jsxRuntime.jsx(chunkMMSHLHTA_cjs.PlanNotice, { tone: "error", testId: "plan-billing-error", children: addons.billing_error }),
16173
- confirmUrl ? /* @__PURE__ */ jsxRuntime.jsxs(chunkMMSHLHTA_cjs.PlanNotice, { testId: "plan-payment-state", children: [
16172
+ addons?.billing_error && /* @__PURE__ */ jsxRuntime.jsx(chunk6OXR4R6J_cjs.PlanNotice, { tone: "error", testId: "plan-billing-error", children: addons.billing_error }),
16173
+ confirmUrl ? /* @__PURE__ */ jsxRuntime.jsxs(chunk6OXR4R6J_cjs.PlanNotice, { testId: "plan-payment-state", children: [
16174
16174
  "Waiting for your bank",
16175
16175
  pendingPayment?.amount_pence ? ` \xB7 ${gbp2(pendingPayment.amount_pence)}` : "",
16176
16176
  " \xB7",
@@ -16188,7 +16188,7 @@ function ProjectPlanCard({
16188
16188
  ]
16189
16189
  }
16190
16190
  )
16191
- ] }) : paidPayment && addons && /* @__PURE__ */ jsxRuntime.jsx(chunkMMSHLHTA_cjs.PlanNotice, { testId: "plan-payment-state", children: paidLine(paidPayment, addons) }),
16191
+ ] }) : paidPayment && addons && /* @__PURE__ */ jsxRuntime.jsx(chunk6OXR4R6J_cjs.PlanNotice, { testId: "plan-payment-state", children: paidLine(paidPayment, addons) }),
16192
16192
  isPro && /* @__PURE__ */ jsxRuntime.jsxs(
16193
16193
  "button",
16194
16194
  {
@@ -16215,7 +16215,7 @@ function ProjectBilling({
16215
16215
  const { addons } = project;
16216
16216
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", "data-testid": "project-billing", children: [
16217
16217
  /* @__PURE__ */ jsxRuntime.jsx(ProjectPlanCard, { project, onChangePlan }),
16218
- addons && chunkDDIV3MYQ_cjs.isProProject(project) && /* @__PURE__ */ jsxRuntime.jsx(ProjectUsageCard, { project, addons })
16218
+ addons && chunkBAJNXRI5_cjs.isProProject(project) && /* @__PURE__ */ jsxRuntime.jsx(ProjectUsageCard, { project, addons })
16219
16219
  ] });
16220
16220
  }
16221
16221
  var BREAKDOWN_LABELS = {
@@ -16346,13 +16346,13 @@ function ProjectUsageContent({
16346
16346
  };
16347
16347
  const quotaPct = effectiveUsage && aiUsageLimit ? Math.round(effectiveUsage.total_spend / aiUsageLimit * 100) : 0;
16348
16348
  return /* @__PURE__ */ jsxRuntime.jsx(
16349
- chunkMMSHLHTA_cjs.UsagePanel,
16349
+ chunk6OXR4R6J_cjs.UsagePanel,
16350
16350
  {
16351
16351
  state,
16352
16352
  dateRange,
16353
16353
  emptyMessage: `No usage ${period === "current" ? "yet this month" : "last month"}.`,
16354
16354
  period: /* @__PURE__ */ jsxRuntime.jsx(
16355
- chunkMMSHLHTA_cjs.UsageToggle,
16355
+ chunk6OXR4R6J_cjs.UsageToggle,
16356
16356
  {
16357
16357
  ariaLabel: "Period",
16358
16358
  value: period,
@@ -16365,7 +16365,7 @@ function ProjectUsageContent({
16365
16365
  ),
16366
16366
  actions: /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
16367
16367
  effectiveUsage?.invoice_pdf && /* @__PURE__ */ jsxRuntime.jsx(
16368
- chunkMMSHLHTA_cjs.UsageActionButton,
16368
+ chunk6OXR4R6J_cjs.UsageActionButton,
16369
16369
  {
16370
16370
  label: "Download Stripe invoice PDF",
16371
16371
  icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Download, { className: "size-3.5" }),
@@ -16373,7 +16373,7 @@ function ProjectUsageContent({
16373
16373
  }
16374
16374
  ),
16375
16375
  /* @__PURE__ */ jsxRuntime.jsx(
16376
- chunkMMSHLHTA_cjs.UsageActionButton,
16376
+ chunk6OXR4R6J_cjs.UsageActionButton,
16377
16377
  {
16378
16378
  label: "Print usage summary",
16379
16379
  icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Printer, { className: "size-3.5" }),
@@ -16383,7 +16383,7 @@ function ProjectUsageContent({
16383
16383
  ] }),
16384
16384
  children: effectiveUsage && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
16385
16385
  /* @__PURE__ */ jsxRuntime.jsx(
16386
- chunkMMSHLHTA_cjs.UsageSummary,
16386
+ chunk6OXR4R6J_cjs.UsageSummary,
16387
16387
  {
16388
16388
  stats: [
16389
16389
  {
@@ -16391,7 +16391,7 @@ function ProjectUsageContent({
16391
16391
  value: /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: react.formatGbp(effectiveUsage.total_spend) }),
16392
16392
  label: /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
16393
16393
  "AI usage",
16394
- quotaPct > 0 ? /* @__PURE__ */ jsxRuntime.jsxs(chunkMMSHLHTA_cjs.UsageQuotaHint, { children: [
16394
+ quotaPct > 0 ? /* @__PURE__ */ jsxRuntime.jsxs(chunk6OXR4R6J_cjs.UsageQuotaHint, { children: [
16395
16395
  "(",
16396
16396
  quotaPct,
16397
16397
  "% of quota)"
@@ -16412,7 +16412,7 @@ function ProjectUsageContent({
16412
16412
  }
16413
16413
  ),
16414
16414
  /* @__PURE__ */ jsxRuntime.jsx(
16415
- chunkMMSHLHTA_cjs.UsageToggle,
16415
+ chunk6OXR4R6J_cjs.UsageToggle,
16416
16416
  {
16417
16417
  ariaLabel: "Breakdown by",
16418
16418
  size: "fill",
@@ -16425,12 +16425,12 @@ function ProjectUsageContent({
16425
16425
  }
16426
16426
  ),
16427
16427
  /* @__PURE__ */ jsxRuntime.jsx(
16428
- chunkMMSHLHTA_cjs.UsageSection,
16428
+ chunk6OXR4R6J_cjs.UsageSection,
16429
16429
  {
16430
- footer: /* @__PURE__ */ jsxRuntime.jsx(chunkMMSHLHTA_cjs.UsageLegend, { series }),
16430
+ footer: /* @__PURE__ */ jsxRuntime.jsx(chunk6OXR4R6J_cjs.UsageLegend, { series }),
16431
16431
  title: `Daily AI usage${breakdown === "model" ? ` by ${BREAKDOWN_LABELS[breakdown]}` : ""}`,
16432
16432
  children: /* @__PURE__ */ jsxRuntime.jsx(
16433
- chunkMMSHLHTA_cjs.UsageLineChart,
16433
+ chunk6OXR4R6J_cjs.UsageLineChart,
16434
16434
  {
16435
16435
  dates,
16436
16436
  series,
@@ -16441,12 +16441,12 @@ function ProjectUsageContent({
16441
16441
  }
16442
16442
  ),
16443
16443
  /* @__PURE__ */ jsxRuntime.jsx(
16444
- chunkMMSHLHTA_cjs.UsageSection,
16444
+ chunk6OXR4R6J_cjs.UsageSection,
16445
16445
  {
16446
16446
  title: "Breakdown",
16447
16447
  gap: "md",
16448
16448
  action: /* @__PURE__ */ jsxRuntime.jsx(
16449
- chunkMMSHLHTA_cjs.UsageToggle,
16449
+ chunk6OXR4R6J_cjs.UsageToggle,
16450
16450
  {
16451
16451
  ariaLabel: "Breakdown metric",
16452
16452
  value: metric,
@@ -16458,7 +16458,7 @@ function ProjectUsageContent({
16458
16458
  }
16459
16459
  ),
16460
16460
  children: /* @__PURE__ */ jsxRuntime.jsx(
16461
- chunkMMSHLHTA_cjs.UsageProportionBar,
16461
+ chunk6OXR4R6J_cjs.UsageProportionBar,
16462
16462
  {
16463
16463
  metric,
16464
16464
  items: breakdownItems.map((item) => ({
@@ -16476,13 +16476,13 @@ function ProjectUsageContent({
16476
16476
  );
16477
16477
  }
16478
16478
  function ProjectDetail({ projectExtId, storage }) {
16479
- const { stripeEnabled } = chunkDDIV3MYQ_cjs.useBillingSupport();
16479
+ const { stripeEnabled } = chunkBAJNXRI5_cjs.useBillingSupport();
16480
16480
  const [planOpen, setPlanOpen] = react$1.useState(false);
16481
16481
  const [renameOpen, setRenameOpen] = react$1.useState(false);
16482
16482
  const [renameValue, setRenameValue] = react$1.useState("");
16483
16483
  const updateProject = react.useUpdateProjectFields();
16484
16484
  const { data: projects, isLoading } = react.useProjects();
16485
- const currentUserExtId = chunkDDIV3MYQ_cjs.useSelfExtId();
16485
+ const currentUserExtId = chunkBAJNXRI5_cjs.useSelfExtId();
16486
16486
  const project = projects?.find((p) => p.external_id === projectExtId);
16487
16487
  const handleSaveRename = react$1.useCallback(() => {
16488
16488
  const trimmed = renameValue.trim();
@@ -16520,7 +16520,7 @@ function ProjectDetail({ projectExtId, storage }) {
16520
16520
  }
16521
16521
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "p-6 space-y-6 max-w-4xl", "data-testid": `project-detail-${project.external_id}`, children: [
16522
16522
  /* @__PURE__ */ jsxRuntime.jsx(
16523
- chunkMMSHLHTA_cjs.ProjectDetailHeader,
16523
+ chunk6OXR4R6J_cjs.ProjectDetailHeader,
16524
16524
  {
16525
16525
  icon: /* @__PURE__ */ jsxRuntime.jsx(ui.EntityIcon, { entityType: "PROJECT" }),
16526
16526
  name: project.name,
@@ -16528,11 +16528,11 @@ function ProjectDetail({ projectExtId, storage }) {
16528
16528
  setRenameValue(project.name);
16529
16529
  setRenameOpen(true);
16530
16530
  },
16531
- badge: stripeEnabled ? /* @__PURE__ */ jsxRuntime.jsx(chunkMMSHLHTA_cjs.PlanBadge, { ...chunkDDIV3MYQ_cjs.planBadgeView(project), size: "md" }) : void 0
16531
+ badge: stripeEnabled ? /* @__PURE__ */ jsxRuntime.jsx(chunk6OXR4R6J_cjs.PlanBadge, { ...chunkBAJNXRI5_cjs.planBadgeView(project), size: "md" }) : void 0
16532
16532
  }
16533
16533
  ),
16534
16534
  hasBilling && /* @__PURE__ */ jsxRuntime.jsx(ProjectBilling, { project, onChangePlan: () => setPlanOpen(true) }),
16535
- /* @__PURE__ */ jsxRuntime.jsxs(chunkMMSHLHTA_cjs.ProjectDetailSection, { title: hasBilling ? "Collaborator limits" : "Plan limits", children: [
16535
+ /* @__PURE__ */ jsxRuntime.jsxs(chunk6OXR4R6J_cjs.ProjectDetailSection, { title: hasBilling ? "Collaborator limits" : "Plan limits", children: [
16536
16536
  !hasBilling && /* @__PURE__ */ jsxRuntime.jsx(SubscriptionStatus, { project }),
16537
16537
  /* @__PURE__ */ jsxRuntime.jsxs(
16538
16538
  "div",
@@ -16548,7 +16548,7 @@ function ProjectDetail({ projectExtId, storage }) {
16548
16548
  }
16549
16549
  )
16550
16550
  ] }),
16551
- /* @__PURE__ */ jsxRuntime.jsx(chunkMMSHLHTA_cjs.ProjectDetailSection, { title: "Usage", children: /* @__PURE__ */ jsxRuntime.jsx(
16551
+ /* @__PURE__ */ jsxRuntime.jsx(chunk6OXR4R6J_cjs.ProjectDetailSection, { title: "Usage", children: /* @__PURE__ */ jsxRuntime.jsx(
16552
16552
  ProjectUsageContent,
16553
16553
  {
16554
16554
  projectExtId: project.external_id,
@@ -16558,7 +16558,7 @@ function ProjectDetail({ projectExtId, storage }) {
16558
16558
  ) }),
16559
16559
  storage,
16560
16560
  /* @__PURE__ */ jsxRuntime.jsx(
16561
- chunkMMSHLHTA_cjs.RenameDialog,
16561
+ chunk6OXR4R6J_cjs.RenameDialog,
16562
16562
  {
16563
16563
  open: renameOpen,
16564
16564
  onClose: () => setRenameOpen(false),
@@ -16575,7 +16575,7 @@ function ProjectDetail({ projectExtId, storage }) {
16575
16575
  function useAutoRefreshPendingProjects() {
16576
16576
  const { data: projects } = react.useProjects();
16577
16577
  const refreshProject = react.useRefreshProject();
16578
- const currentUserExtId = chunkDDIV3MYQ_cjs.useSelfExtId();
16578
+ const currentUserExtId = chunkBAJNXRI5_cjs.useSelfExtId();
16579
16579
  const refreshedRef = react$1.useRef(/* @__PURE__ */ new Set());
16580
16580
  react$1.useEffect(() => {
16581
16581
  if (!projects || !currentUserExtId) return;
@@ -16606,7 +16606,7 @@ function ConnectedQuotaDialog({ info, onClose: close }) {
16606
16606
  if (quotaProjectId) void refetchProjects();
16607
16607
  }, [quotaProjectId, refetchProjects]);
16608
16608
  const project = info?.projectExtId ? projects?.find((p) => p.external_id === info.projectExtId) : void 0;
16609
- const addons = project && chunkDDIV3MYQ_cjs.isProProject(project) ? project.addons : null;
16609
+ const addons = project && chunkBAJNXRI5_cjs.isProProject(project) ? project.addons : null;
16610
16610
  const handleUpgrade = () => {
16611
16611
  if (info?.projectExtId) {
16612
16612
  requestProjectBillingFocus({ projectExtId: info.projectExtId, openUpgrade: true });
@@ -16642,8 +16642,8 @@ function ConnectedQuotaDialog({ info, onClose: close }) {
16642
16642
  /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, {})
16643
16643
  );
16644
16644
  } else if (addons) {
16645
- const price = `${chunkDDIV3MYQ_cjs.formatMoney(addons.ai_block_price_ex_vat_pence, "gbp")} + VAT`;
16646
- const capZero = chunkDDIV3MYQ_cjs.isAddonBudgetZero(addons);
16645
+ const price = `${chunkBAJNXRI5_cjs.formatMoney(addons.ai_block_price_ex_vat_pence, "gbp")} + VAT`;
16646
+ const capZero = chunkBAJNXRI5_cjs.isAddonBudgetZero(addons);
16647
16647
  const addAiUsage = /* @__PURE__ */ jsxRuntime.jsxs(ui.Button, { onClick: handleAddAiUsage, "data-testid": "quota-add-ai-usage-button", children: [
16648
16648
  "Add ",
16649
16649
  react.formatGbp(addons.block_ai_gbp),
@@ -16651,7 +16651,7 @@ function ConnectedQuotaDialog({ info, onClose: close }) {
16651
16651
  price
16652
16652
  ] });
16653
16653
  if (capZero || addons.cap_reached) {
16654
- message = capZero ? chunkDDIV3MYQ_cjs.ZERO_BUDGET_MESSAGE : chunkDDIV3MYQ_cjs.CAP_REACHED_MESSAGE;
16654
+ message = capZero ? chunkBAJNXRI5_cjs.ZERO_BUDGET_MESSAGE : chunkBAJNXRI5_cjs.CAP_REACHED_MESSAGE;
16655
16655
  actions = /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
16656
16656
  addAiUsage,
16657
16657
  /* @__PURE__ */ jsxRuntime.jsx(ui.Button, { variant: "outline", onClick: handleRaiseCap, "data-testid": "quota-raise-cap-button", children: capZero ? "Set cap" : "Raise cap" })
@@ -16664,7 +16664,7 @@ function ConnectedQuotaDialog({ info, onClose: close }) {
16664
16664
  const addAiUsageProject = addAiUsageFor ? projects?.find((p) => p.external_id === addAiUsageFor) : void 0;
16665
16665
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
16666
16666
  /* @__PURE__ */ jsxRuntime.jsx(
16667
- chunkMMSHLHTA_cjs.QuotaExceededDialogView,
16667
+ chunk6OXR4R6J_cjs.QuotaExceededDialogView,
16668
16668
  {
16669
16669
  open,
16670
16670
  onClose: close,
@@ -16838,7 +16838,7 @@ function ConnectedWelcomeDialog({
16838
16838
  }) {
16839
16839
  const currentUser = react.useArbiSession().user;
16840
16840
  const { data: projects } = react.useProjects();
16841
- const balance = chunkDDIV3MYQ_cjs.useRewardBalance();
16841
+ const balance = chunkBAJNXRI5_cjs.useRewardBalance();
16842
16842
  const [showPlans, setShowPlans] = react$1.useState(false);
16843
16843
  const [showInvite, setShowInvite] = react$1.useState(false);
16844
16844
  const [selectedProjectId, setSelectedProjectId] = react$1.useState(null);
@@ -16859,21 +16859,21 @@ function ConnectedWelcomeDialog({
16859
16859
  return /* @__PURE__ */ jsxRuntime.jsx(ChangePlanDialog, { project: selectedProject, open, onOpenChange: handleOpenChange });
16860
16860
  }
16861
16861
  if (showInvite) {
16862
- return /* @__PURE__ */ jsxRuntime.jsx(chunkMMSHLHTA_cjs.InviteContactsDialog, { open, onClose: () => handleOpenChange(false), children: /* @__PURE__ */ jsxRuntime.jsx(
16862
+ return /* @__PURE__ */ jsxRuntime.jsx(chunk6OXR4R6J_cjs.InviteContactsDialog, { open, onClose: () => handleOpenChange(false), children: /* @__PURE__ */ jsxRuntime.jsx(
16863
16863
  ConnectedAddContacts,
16864
16864
  {
16865
16865
  onClose: () => handleOpenChange(false),
16866
- rewardAmount: chunkDDIV3MYQ_cjs.formatMoney(REFERRAL_OFFER.amount, REFERRAL_OFFER.currency)
16866
+ rewardAmount: chunkBAJNXRI5_cjs.formatMoney(REFERRAL_OFFER.amount, REFERRAL_OFFER.currency)
16867
16867
  }
16868
16868
  ) });
16869
16869
  }
16870
16870
  const firstName = currentUser?.given_name;
16871
16871
  const hasBalance = balance !== null;
16872
- const quotaItems = chunkDDIV3MYQ_cjs.getQuotaItems(selectedProject.quotas);
16873
- const resetTs = chunkDDIV3MYQ_cjs.aiUsageResetTimestamp(selectedProject);
16874
- const aiUsageHint = resetTs ? `resets ${chunkDDIV3MYQ_cjs.formatResetDate(resetTs)}` : void 0;
16872
+ const quotaItems = chunkBAJNXRI5_cjs.getQuotaItems(selectedProject.quotas);
16873
+ const resetTs = chunkBAJNXRI5_cjs.aiUsageResetTimestamp(selectedProject);
16874
+ const aiUsageHint = resetTs ? `resets ${chunkBAJNXRI5_cjs.formatResetDate(resetTs)}` : void 0;
16875
16875
  return /* @__PURE__ */ jsxRuntime.jsx(
16876
- chunkMMSHLHTA_cjs.WelcomeDialog,
16876
+ chunk6OXR4R6J_cjs.WelcomeDialog,
16877
16877
  {
16878
16878
  open,
16879
16879
  onClose: () => handleOpenChange(false),
@@ -16888,7 +16888,7 @@ function ConnectedWelcomeDialog({
16888
16888
  onChange: setSelectedProjectId
16889
16889
  }
16890
16890
  ),
16891
- planBadge: /* @__PURE__ */ jsxRuntime.jsx(chunkMMSHLHTA_cjs.PlanBadge, { ...chunkDDIV3MYQ_cjs.planBadgeView(selectedProject), size: "md" }),
16891
+ planBadge: /* @__PURE__ */ jsxRuntime.jsx(chunk6OXR4R6J_cjs.PlanBadge, { ...chunkBAJNXRI5_cjs.planBadgeView(selectedProject), size: "md" }),
16892
16892
  quotas: quotaItems.map((q) => ({
16893
16893
  key: q.key,
16894
16894
  icon: q.icon,
@@ -16898,9 +16898,9 @@ function ConnectedWelcomeDialog({
16898
16898
  hint: q.key === "ai-usage" ? aiUsageHint : void 0
16899
16899
  })),
16900
16900
  onSeePlans: () => setShowPlans(true),
16901
- referralOfferLabel: `${chunkDDIV3MYQ_cjs.formatMoney(REFERRAL_OFFER.amount, REFERRAL_OFFER.currency)} off your plan`,
16901
+ referralOfferLabel: `${chunkBAJNXRI5_cjs.formatMoney(REFERRAL_OFFER.amount, REFERRAL_OFFER.currency)} off your plan`,
16902
16902
  onInvite: () => setShowInvite(true),
16903
- rewardBalanceLabel: hasBalance ? chunkDDIV3MYQ_cjs.formatMoney(balance.amount, balance.currency) : void 0
16903
+ rewardBalanceLabel: hasBalance ? chunkBAJNXRI5_cjs.formatMoney(balance.amount, balance.currency) : void 0
16904
16904
  }
16905
16905
  );
16906
16906
  }
@@ -16963,7 +16963,7 @@ function WorkspaceCardsView({
16963
16963
  createDisabledReason,
16964
16964
  workspaceState
16965
16965
  }) {
16966
- const { stripeEnabled } = chunkDDIV3MYQ_cjs.useBillingSupport();
16966
+ const { stripeEnabled } = chunkBAJNXRI5_cjs.useBillingSupport();
16967
16967
  const { hrefFor: hrefFor2 } = chunkUIXY4HKM_cjs.useBlocksEnvironment();
16968
16968
  const workspaceLabel = ui.getEntityLabel("WORKSPACE");
16969
16969
  const projectLabel = ui.getEntityLabel("PROJECT").toLowerCase();
@@ -16983,7 +16983,7 @@ function WorkspaceCardsView({
16983
16983
  }
16984
16984
  return /* @__PURE__ */ jsxRuntime.jsx(chunkC5CWKZ5D_cjs.WorkspaceList, { testId: "workspace-cards-list", children: groups.map((group) => {
16985
16985
  const project = projects.find((p) => p.external_id === group.projectExtId);
16986
- const { breakdown, readout } = chunkDDIV3MYQ_cjs.projectGroupBilling(project, {
16986
+ const { breakdown, readout } = chunkBAJNXRI5_cjs.projectGroupBilling(project, {
16987
16987
  isOwned: group.isOwned,
16988
16988
  stripeEnabled
16989
16989
  });
@@ -17146,7 +17146,7 @@ function useConnectedWorkspaceList({
17146
17146
  [selfId, pinned]
17147
17147
  );
17148
17148
  const filtered = react$1.useMemo(
17149
- () => chunkMMSHLHTA_cjs.applyTriStateFilters(workspaces, filterMap, attributesOf),
17149
+ () => chunk6OXR4R6J_cjs.applyTriStateFilters(workspaces, filterMap, attributesOf),
17150
17150
  [workspaces, filterMap, attributesOf]
17151
17151
  );
17152
17152
  const groups = react$1.useMemo(
@@ -17212,7 +17212,7 @@ function useConnectedWorkspaceList({
17212
17212
  };
17213
17213
  }
17214
17214
  var WorkspaceTableView = react$1.lazy(
17215
- () => import('../WorkspaceTableView-ZIQ7JWT5.cjs').then((m) => ({ default: m.WorkspaceTableView }))
17215
+ () => import('../WorkspaceTableView-5DWNJN6J.cjs').then((m) => ({ default: m.WorkspaceTableView }))
17216
17216
  );
17217
17217
  var WORKSPACES_TAB_ID = "workspaces";
17218
17218
  var renderMember = (user, size) => /* @__PURE__ */ jsxRuntime.jsx(chunk5HEMXXHR_cjs.ConnectedUserEntity, { user, size, variant: "icon" });
@@ -17272,7 +17272,7 @@ function ConnectedWorkspaceList({
17272
17272
  }
17273
17273
  );
17274
17274
  }
17275
- if (list.isLoading) return /* @__PURE__ */ jsxRuntime.jsx(chunkU4ZLFL6M_cjs.LoadingIndicator, { message: "Loading workspaces..." });
17275
+ if (list.isLoading) return /* @__PURE__ */ jsxRuntime.jsx(chunkZA3ZELSH_cjs.LoadingIndicator, { message: "Loading workspaces..." });
17276
17276
  if (list.error) {
17277
17277
  return /* @__PURE__ */ jsxRuntime.jsx(
17278
17278
  chunkECZXW346_cjs.HomeLoadError,
@@ -17345,7 +17345,7 @@ function ConnectedWorkspaceList({
17345
17345
  workspaceState
17346
17346
  }
17347
17347
  ) })
17348
- ) : /* @__PURE__ */ jsxRuntime.jsx(react$1.Suspense, { fallback: /* @__PURE__ */ jsxRuntime.jsx(chunkU4ZLFL6M_cjs.LoadingIndicator, { message: "Loading grid..." }), children: /* @__PURE__ */ jsxRuntime.jsx(chunkECZXW346_cjs.HomeCenteredColumn, { children: /* @__PURE__ */ jsxRuntime.jsx(
17348
+ ) : /* @__PURE__ */ jsxRuntime.jsx(react$1.Suspense, { fallback: /* @__PURE__ */ jsxRuntime.jsx(chunkZA3ZELSH_cjs.LoadingIndicator, { message: "Loading grid..." }), children: /* @__PURE__ */ jsxRuntime.jsx(chunkECZXW346_cjs.HomeCenteredColumn, { children: /* @__PURE__ */ jsxRuntime.jsx(
17349
17349
  WorkspaceTableView,
17350
17350
  {
17351
17351
  list,
@@ -17390,7 +17390,7 @@ function ConnectedProjectsPanel({
17390
17390
  const { data: projects } = react.useProjects();
17391
17391
  const canCreateProjects = react.useCanCreateProjects();
17392
17392
  const { userId } = chunkWV65MJ43_cjs.useConnectedWorkspace();
17393
- const { stripeEnabled } = chunkDDIV3MYQ_cjs.useBillingSupport();
17393
+ const { stripeEnabled } = chunkBAJNXRI5_cjs.useBillingSupport();
17394
17394
  const billingPortal = useOpenBillingPortal();
17395
17395
  const [newProjectOpen, setNewProjectOpen] = react$1.useState(false);
17396
17396
  useAutoRefreshPendingProjects();
@@ -17417,15 +17417,15 @@ function ConnectedProjectsPanel({
17417
17417
  [ownedCount, tabs, projects]
17418
17418
  );
17419
17419
  const paidProject = projects?.find(isPaid);
17420
- const panel = /* @__PURE__ */ jsxRuntime.jsxs(chunkMMSHLHTA_cjs.PanelFrame, { className, testId: "projects-panel", children: [
17421
- /* @__PURE__ */ jsxRuntime.jsx(chunkMMSHLHTA_cjs.DraggableHeader, { children: /* @__PURE__ */ jsxRuntime.jsx(
17420
+ const panel = /* @__PURE__ */ jsxRuntime.jsxs(chunk6OXR4R6J_cjs.PanelFrame, { className, testId: "projects-panel", children: [
17421
+ /* @__PURE__ */ jsxRuntime.jsx(chunk6OXR4R6J_cjs.DraggableHeader, { children: /* @__PURE__ */ jsxRuntime.jsx(
17422
17422
  chunkSJSGSHIT_cjs.TabHeader,
17423
17423
  {
17424
17424
  tabs: headerTabs,
17425
17425
  activeTabId: activeProjectId ?? PROJECTS_BASE_TAB_ID,
17426
17426
  onTabChange: (id) => tabs.onSelect(id === PROJECTS_BASE_TAB_ID ? null : id),
17427
17427
  afterTabs: (isCompact) => /* @__PURE__ */ jsxRuntime.jsx(
17428
- chunkMMSHLHTA_cjs.PanelAddButton,
17428
+ chunk6OXR4R6J_cjs.PanelAddButton,
17429
17429
  {
17430
17430
  label: `New ${ui.entityNoun("PROJECT")}`,
17431
17431
  onClick: () => setNewProjectOpen(true),
@@ -17440,15 +17440,15 @@ function ConnectedProjectsPanel({
17440
17440
  compactBreakpoint: 360
17441
17441
  }
17442
17442
  ) }),
17443
- /* @__PURE__ */ jsxRuntime.jsx(chunkMMSHLHTA_cjs.PanelFrameBody, { children: activeProjectId ? /* @__PURE__ */ jsxRuntime.jsx(chunkMMSHLHTA_cjs.PanelScroll, { children: /* @__PURE__ */ jsxRuntime.jsx(
17443
+ /* @__PURE__ */ jsxRuntime.jsx(chunk6OXR4R6J_cjs.PanelFrameBody, { children: activeProjectId ? /* @__PURE__ */ jsxRuntime.jsx(chunk6OXR4R6J_cjs.PanelScroll, { children: /* @__PURE__ */ jsxRuntime.jsx(
17444
17444
  ProjectDetail,
17445
17445
  {
17446
17446
  projectExtId: activeProjectId,
17447
17447
  storage: /* @__PURE__ */ jsxRuntime.jsx(ConnectedProjectStorage, { projectExtId: activeProjectId })
17448
17448
  }
17449
- ) }) : /* @__PURE__ */ jsxRuntime.jsxs(chunkMMSHLHTA_cjs.PanelScroll, { variant: "padded", children: [
17449
+ ) }) : /* @__PURE__ */ jsxRuntime.jsxs(chunk6OXR4R6J_cjs.PanelScroll, { variant: "padded", children: [
17450
17450
  /* @__PURE__ */ jsxRuntime.jsx(ProjectsTable, {}),
17451
- stripeEnabled && paidProject && /* @__PURE__ */ jsxRuntime.jsx(chunkMMSHLHTA_cjs.PanelActionsRow, { children: /* @__PURE__ */ jsxRuntime.jsxs(
17451
+ stripeEnabled && paidProject && /* @__PURE__ */ jsxRuntime.jsx(chunk6OXR4R6J_cjs.PanelActionsRow, { children: /* @__PURE__ */ jsxRuntime.jsxs(
17452
17452
  ui.Button,
17453
17453
  {
17454
17454
  onClick: () => billingPortal.open(paidProject.external_id),
@@ -17535,7 +17535,7 @@ function ConnectedProjectsListPage({
17535
17535
  };
17536
17536
  const { openProject } = chunkUIXY4HKM_cjs.useBlocksEnvironment();
17537
17537
  const [search, setSearch] = react$1.useState("");
17538
- const { projects, isLoading } = chunkDCHNB7DF_cjs.useProjectSummaries();
17538
+ const { projects, isLoading } = chunkKVKKVSBT_cjs.useProjectSummaries();
17539
17539
  const rows = react$1.useMemo(() => {
17540
17540
  const q = search.trim().toLowerCase();
17541
17541
  if (!q) return projects;
@@ -17606,7 +17606,7 @@ function ConnectedProjectsListPage({
17606
17606
  }
17607
17607
  ),
17608
17608
  /* @__PURE__ */ jsxRuntime.jsx(
17609
- chunkU4ZLFL6M_cjs.Toolbar,
17609
+ chunkZA3ZELSH_cjs.Toolbar,
17610
17610
  {
17611
17611
  search,
17612
17612
  onSearch: setSearch,
@@ -17668,7 +17668,7 @@ function ProjectDetailsForm({
17668
17668
  const labels = { ...DEFAULT_PROJECT_DETAILS_LABELS, ...given };
17669
17669
  const { notify: notify17 } = chunkUIXY4HKM_cjs.useBlocksEnvironment();
17670
17670
  const update = react.useUpdateProjectFields();
17671
- const workspace = chunkDCHNB7DF_cjs.primaryProjectWorkspace(project);
17671
+ const workspace = chunkKVKKVSBT_cjs.primaryProjectWorkspace(project);
17672
17672
  const { data: members = [] } = react.useWorkspaceUsers(workspace?.id);
17673
17673
  const people = members.filter((m) => !m.user.external_id.startsWith("agt-"));
17674
17674
  const currency = project.budget?.currency ?? "GBP";
@@ -17793,7 +17793,7 @@ var COMPACT_BELOW = 132;
17793
17793
  var NO_DOCUMENTS = [];
17794
17794
  function useFilesWorkspace() {
17795
17795
  const { workspaceId, userId, live } = chunkWV65MJ43_cjs.useConnectedWorkspace();
17796
- const { members, role } = chunk5ZWEUUJN_cjs.useConnectedWorkspaceRole();
17796
+ const { members, role } = chunkZJ3NII4U_cjs.useConnectedWorkspaceRole();
17797
17797
  const { data: workspaces } = react.useWorkspaces({ enabled: live });
17798
17798
  const workspaceName = workspaces?.find((w) => w.external_id === workspaceId)?.name;
17799
17799
  return {
@@ -18553,7 +18553,7 @@ function ProjectChronology({
18553
18553
  })),
18554
18554
  [facts]
18555
18555
  );
18556
- 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(chunkD3ABKS7T_cjs.FactsGanttPane, { items, testId: `${testId}-gantt`, labels: { ganttEmpty: empty } }) });
18556
+ 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(chunkHDPT7D6F_cjs.FactsGanttPane, { items, testId: `${testId}-gantt`, labels: { ganttEmpty: empty } }) });
18557
18557
  }
18558
18558
  function ProjectThreads({
18559
18559
  projectId,
@@ -18727,11 +18727,11 @@ function ConnectedProjectPage({
18727
18727
  figures: { ...DEFAULT_PROJECT_PAGE_LABELS.figures, ...given?.figures },
18728
18728
  threads: { ...DEFAULT_PROJECT_PAGE_LABELS.threads, ...given?.threads }
18729
18729
  };
18730
- const { project, usage, isLoading } = chunkDCHNB7DF_cjs.useProjectSummary(projectId);
18730
+ const { project, usage, isLoading } = chunkKVKKVSBT_cjs.useProjectSummary(projectId);
18731
18731
  const { workspaceId } = chunkWV65MJ43_cjs.useConnectedWorkspace();
18732
18732
  const { notify: notify17 } = chunkUIXY4HKM_cjs.useBlocksEnvironment();
18733
- const selectWorkspace = chunkXTCNETMI_cjs.useSelectWorkspace();
18734
- const workspace = project ? chunkDCHNB7DF_cjs.primaryProjectWorkspace(project) : void 0;
18733
+ const selectWorkspace = chunkMB2OXZEA_cjs.useSelectWorkspace();
18734
+ const workspace = project ? chunkKVKKVSBT_cjs.primaryProjectWorkspace(project) : void 0;
18735
18735
  const open = !!workspace && workspace.id === workspaceId;
18736
18736
  react$1.useEffect(() => {
18737
18737
  if (!workspace || workspace.id === workspaceId) return;
@@ -21115,7 +21115,7 @@ function ConnectedMessengerThread({
21115
21115
  const activeIsSelf = !!activePeer && activePeer.external_id === meId;
21116
21116
  const groupTitle = active?.title ?? null;
21117
21117
  const presence = activePeer ? host.presenceOf?.(activePeer.external_id) : void 0;
21118
- return /* @__PURE__ */ jsxRuntime.jsxs(chunkMMSHLHTA_cjs.PanelFrame, { testId, className, children: [
21118
+ return /* @__PURE__ */ jsxRuntime.jsxs(chunk6OXR4R6J_cjs.PanelFrame, { testId, className, children: [
21119
21119
  children,
21120
21120
  groupChat ? /* @__PURE__ */ jsxRuntime.jsx(
21121
21121
  chunkMOIZ2R5X_cjs.DmThreadHeader,
@@ -21165,7 +21165,7 @@ function ConnectedMessengerThread({
21165
21165
  groupChat.external_id
21166
21166
  ) : null,
21167
21167
  picker.element,
21168
- /* @__PURE__ */ jsxRuntime.jsx(chunkMMSHLHTA_cjs.PanelFrameBody, { className: "flex flex-col overflow-visible", children: active ? /* @__PURE__ */ jsxRuntime.jsx(ConnectedChatThread, { chat: active.chat, peer: activePeer, host }, activeId) : /* @__PURE__ */ jsxRuntime.jsx("p", { className: "p-4 text-sm text-muted-foreground", children: isLoading ? "Loading conversation\u2026" : "This conversation is no longer available." }) })
21168
+ /* @__PURE__ */ jsxRuntime.jsx(chunk6OXR4R6J_cjs.PanelFrameBody, { className: "flex flex-col overflow-visible", children: active ? /* @__PURE__ */ jsxRuntime.jsx(ConnectedChatThread, { chat: active.chat, peer: activePeer, host }, activeId) : /* @__PURE__ */ jsxRuntime.jsx("p", { className: "p-4 text-sm text-muted-foreground", children: isLoading ? "Loading conversation\u2026" : "This conversation is no longer available." }) })
21169
21169
  ] });
21170
21170
  }
21171
21171
  function ConnectedMessenger({
@@ -21187,7 +21187,7 @@ function ConnectedMessenger({
21187
21187
  testId: "dm-messenger"
21188
21188
  }
21189
21189
  );
21190
- return /* @__PURE__ */ jsxRuntime.jsx(chunkMMSHLHTA_cjs.PanelFrame, { testId: "dm-messenger", children: /* @__PURE__ */ jsxRuntime.jsx(
21190
+ return /* @__PURE__ */ jsxRuntime.jsx(chunk6OXR4R6J_cjs.PanelFrame, { testId: "dm-messenger", children: /* @__PURE__ */ jsxRuntime.jsx(
21191
21191
  ConnectedMessengerList,
21192
21192
  {
21193
21193
  activeId: null,
@@ -21403,7 +21403,7 @@ function ConnectedContactsPanel({
21403
21403
  ];
21404
21404
  }, [contactCount, hasActiveFilters, tabActions, dmHeaderTabs]);
21405
21405
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: ui.cn("flex flex-col h-full", className), children: [
21406
- /* @__PURE__ */ jsxRuntime.jsx(chunkMMSHLHTA_cjs.DraggableHeader, { children: /* @__PURE__ */ jsxRuntime.jsx(
21406
+ /* @__PURE__ */ jsxRuntime.jsx(chunk6OXR4R6J_cjs.DraggableHeader, { children: /* @__PURE__ */ jsxRuntime.jsx(
21407
21407
  chunkSJSGSHIT_cjs.TabHeader,
21408
21408
  {
21409
21409
  tabs,
@@ -21438,10 +21438,10 @@ function ConnectedContactsPanel({
21438
21438
  function ConnectedConfigForm({ availableModels, ...rest }) {
21439
21439
  const hasModels = !!availableModels && availableModels.length > 0;
21440
21440
  const renderModelSelect = react$1.useCallback(
21441
- ({ value, onChange }) => /* @__PURE__ */ jsxRuntime.jsx(chunkSDXK2COQ_cjs.ConnectedModelSelector, { value, onValueChange: onChange, className: "w-full" }),
21441
+ ({ value, onChange }) => /* @__PURE__ */ jsxRuntime.jsx(chunkO2ATVRRO_cjs.ConnectedModelSelector, { value, onValueChange: onChange, className: "w-full" }),
21442
21442
  []
21443
21443
  );
21444
- return /* @__PURE__ */ jsxRuntime.jsx(chunkMBXQSBG3_cjs.ConfigForm, { ...rest, renderModelSelect: hasModels ? renderModelSelect : void 0 });
21444
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkFAKRTCAL_cjs.ConfigForm, { ...rest, renderModelSelect: hasModels ? renderModelSelect : void 0 });
21445
21445
  }
21446
21446
  function ConnectedAgentConfigForm({ agentExtId, agentName, onSaved }) {
21447
21447
  const { notify: notify17 } = chunkUIXY4HKM_cjs.useBlocksEnvironment();
@@ -21558,7 +21558,7 @@ function ConnectedAuthorizeAgent({ onClose, editAgent }) {
21558
21558
  }, [name, selectedWorkspaces, role, createAgent, addWorkspaceUsers, arbi, notify17]);
21559
21559
  if (editAgent) {
21560
21560
  return /* @__PURE__ */ jsxRuntime.jsx(
21561
- chunkMBXQSBG3_cjs.AgentEditView,
21561
+ chunkFAKRTCAL_cjs.AgentEditView,
21562
21562
  {
21563
21563
  agentName: editAgent.name,
21564
21564
  config: /* @__PURE__ */ jsxRuntime.jsx(
@@ -21574,7 +21574,7 @@ function ConnectedAuthorizeAgent({ onClose, editAgent }) {
21574
21574
  }
21575
21575
  if (view === "main") {
21576
21576
  return /* @__PURE__ */ jsxRuntime.jsx(
21577
- chunkMBXQSBG3_cjs.AgentMainView,
21577
+ chunkFAKRTCAL_cjs.AgentMainView,
21578
21578
  {
21579
21579
  onConnectExternal: () => setView("connect"),
21580
21580
  config: mainAgent ? /* @__PURE__ */ jsxRuntime.jsx(
@@ -21590,11 +21590,11 @@ function ConnectedAuthorizeAgent({ onClose, editAgent }) {
21590
21590
  }
21591
21591
  if (result) {
21592
21592
  return /* @__PURE__ */ jsxRuntime.jsx(
21593
- chunkMBXQSBG3_cjs.AgentCreatedView,
21593
+ chunkFAKRTCAL_cjs.AgentCreatedView,
21594
21594
  {
21595
21595
  email: result.email,
21596
21596
  signingKey: result.signingKey,
21597
- instructions: /* @__PURE__ */ jsxRuntime.jsx(chunkMBXQSBG3_cjs.AgentConnectInstructions, { email: result.email, signingKey: result.signingKey }),
21597
+ instructions: /* @__PURE__ */ jsxRuntime.jsx(chunkFAKRTCAL_cjs.AgentConnectInstructions, { email: result.email, signingKey: result.signingKey }),
21598
21598
  config: /* @__PURE__ */ jsxRuntime.jsx(ConnectedAgentConfigForm, { agentExtId: result.extId, agentName: result.name }),
21599
21599
  isConfigOpen: configOpen,
21600
21600
  onToggleConfig: () => setConfigOpen((v) => !v),
@@ -21603,7 +21603,7 @@ function ConnectedAuthorizeAgent({ onClose, editAgent }) {
21603
21603
  );
21604
21604
  }
21605
21605
  return /* @__PURE__ */ jsxRuntime.jsx(
21606
- chunkMBXQSBG3_cjs.AgentCreateView,
21606
+ chunkFAKRTCAL_cjs.AgentCreateView,
21607
21607
  {
21608
21608
  name,
21609
21609
  onNameChange: setName,
@@ -21669,7 +21669,7 @@ function ConnectedInviteContactsDialog({
21669
21669
  ConnectedAddContacts,
21670
21670
  {
21671
21671
  onClose: handleClose,
21672
- rewardAmount: chunkDDIV3MYQ_cjs.formatMoney(REFERRAL_OFFER.amount, REFERRAL_OFFER.currency)
21672
+ rewardAmount: chunkBAJNXRI5_cjs.formatMoney(REFERRAL_OFFER.amount, REFERRAL_OFFER.currency)
21673
21673
  }
21674
21674
  ),
21675
21675
  isDeveloper && /* @__PURE__ */ jsxRuntime.jsxs(
@@ -21798,13 +21798,13 @@ function ConnectedNewThreadDialog({
21798
21798
  });
21799
21799
  const parentOptions = react$1.useMemo(() => {
21800
21800
  const leaf = { external_id: "__new__" };
21801
- return chunkMBXQSBG3_cjs.moveTargets([...tasks, leaf], leaf).map((t) => ({
21801
+ return chunkFAKRTCAL_cjs.moveTargets([...tasks, leaf], leaf).map((t) => ({
21802
21802
  id: t.external_id,
21803
21803
  name: t.title?.trim() || "Untitled task"
21804
21804
  }));
21805
21805
  }, [tasks]);
21806
21806
  const submit = async (values) => {
21807
- const request = chunkMBXQSBG3_cjs.newThreadToRequest(values);
21807
+ const request = chunkFAKRTCAL_cjs.newThreadToRequest(values);
21808
21808
  try {
21809
21809
  if (!workspaceId) throw new Error("Open a workspace to add a task.");
21810
21810
  if (!request.startAssistant && request.todo) {
@@ -21845,7 +21845,7 @@ function ConnectedNewThreadDialog({
21845
21845
  }
21846
21846
  };
21847
21847
  return /* @__PURE__ */ jsxRuntime.jsx(
21848
- chunkMBXQSBG3_cjs.NewThreadDialog,
21848
+ chunkFAKRTCAL_cjs.NewThreadDialog,
21849
21849
  {
21850
21850
  open,
21851
21851
  onOpenChange,
@@ -21965,14 +21965,14 @@ var referencesOf = (inputs) => {
21965
21965
  return value?.documents ?? [];
21966
21966
  };
21967
21967
  var PROMPT_BINDINGS = {
21968
- [chunkMBXQSBG3_cjs.GENERATE_IMAGE_ID]: {
21968
+ [chunkFAKRTCAL_cjs.GENERATE_IMAGE_ID]: {
21969
21969
  attachScope: false,
21970
21970
  tools: (inputs) => {
21971
21971
  const aspectRatio = typeof inputs.aspect_ratio === "string" ? inputs.aspect_ratio : "";
21972
21972
  return {
21973
21973
  retrieval_chunk: browser.buildRetrievalChunkTool([]),
21974
21974
  retrieval_full_context: browser.buildRetrievalFullContextTool(referencesOf(inputs)),
21975
- ...aspectRatio && aspectRatio !== chunkMBXQSBG3_cjs.IMAGE_ASPECT_AUTO ? {
21975
+ ...aspectRatio && aspectRatio !== chunkFAKRTCAL_cjs.IMAGE_ASPECT_AUTO ? {
21976
21976
  image_generation: {
21977
21977
  name: "image_generation",
21978
21978
  description: "image generation",
@@ -21993,19 +21993,19 @@ var text = (inputs, name) => {
21993
21993
  function useLaunchWorkflow({ landing: surfaceLanding } = {}) {
21994
21994
  const { data: documents = [] } = react.useDocuments();
21995
21995
  const { data: workspaceTags = [] } = react.useTags();
21996
- const tags = react$1.useMemo(() => chunk6HI5OXB6_cjs.documentScopeLabels(workspaceTags), [workspaceTags]);
21996
+ const tags = react$1.useMemo(() => chunkZBQTFA5X_cjs.documentScopeLabels(workspaceTags), [workspaceTags]);
21997
21997
  const createTag = react.useCreateTag();
21998
21998
  const updateTag = react.useUpdateTag();
21999
21999
  const generate = react.useGenerateDocTags();
22000
- const { create: createTask } = chunkDCHNB7DF_cjs.useWorkflowTasks();
22000
+ const { create: createTask } = chunkKVKKVSBT_cjs.useWorkflowTasks();
22001
22001
  const applyModel = react.useApplyChatModel();
22002
22002
  const session = react.useArbiSessionStore();
22003
22003
  const { notify: notify17, openFiles, openNewConversation } = chunkUIXY4HKM_cjs.useBlocksEnvironment();
22004
22004
  const annotate = react$1.useCallback(
22005
22005
  async ({ inputs, scope }) => {
22006
22006
  const description = text(inputs, "description");
22007
- const name = text(inputs, "name") || chunkMBXQSBG3_cjs.deriveAnnotationName(description);
22008
- const matching = chunk6HI5OXB6_cjs.matchWorkflowScope(documents, scope);
22007
+ const name = text(inputs, "name") || chunkFAKRTCAL_cjs.deriveAnnotationName(description);
22008
+ const matching = chunkZBQTFA5X_cjs.matchWorkflowScope(documents, scope);
22009
22009
  if (!name || !description || matching.length === 0) return;
22010
22010
  try {
22011
22011
  const existing = tags.find((t) => t.name.toLowerCase() === name.toLowerCase());
@@ -22048,9 +22048,9 @@ function useLaunchWorkflow({ landing: surfaceLanding } = {}) {
22048
22048
  async (launch) => {
22049
22049
  const { workflow, inputs, scope, agentId } = launch;
22050
22050
  if (workflow.run.kind === "operation") {
22051
- if (workflow.id === chunkMBXQSBG3_cjs.ANNOTATE_ID) {
22051
+ if (workflow.id === chunkFAKRTCAL_cjs.ANNOTATE_ID) {
22052
22052
  await annotate(launch);
22053
- chunkMBXQSBG3_cjs.recordWorkflowUse(workflow.id);
22053
+ chunkFAKRTCAL_cjs.recordWorkflowUse(workflow.id);
22054
22054
  return;
22055
22055
  }
22056
22056
  throw new Error(`No host handler for workflow "${workflow.id}"`);
@@ -22060,7 +22060,7 @@ function useLaunchWorkflow({ landing: surfaceLanding } = {}) {
22060
22060
  );
22061
22061
  const prompt = chunk5GQOIQCB_cjs.composeWorkflowPrompt(workflow, inputs, { documentTitles });
22062
22062
  if (!prompt) return;
22063
- chunkMBXQSBG3_cjs.recordWorkflowUse(workflow.id);
22063
+ chunkFAKRTCAL_cjs.recordWorkflowUse(workflow.id);
22064
22064
  if (agentId) {
22065
22065
  try {
22066
22066
  const created = await createTask({
@@ -22105,7 +22105,7 @@ function useLaunchWorkflow({ landing: surfaceLanding } = {}) {
22105
22105
  const binding = PROMPT_BINDINGS[workflow.id];
22106
22106
  if (!inPlace) openNewConversation();
22107
22107
  if (binding?.attachScope !== false && !chunk5GQOIQCB_cjs.isEmptyWorkflowScope(scope)) {
22108
- const ids = chunk6HI5OXB6_cjs.matchWorkflowScope(documents, scope).map((d) => d.external_id);
22108
+ const ids = chunkZBQTFA5X_cjs.matchWorkflowScope(documents, scope).map((d) => d.external_id);
22109
22109
  if (ids.length > 0) {
22110
22110
  session.setConversationDocuments(
22111
22111
  inPlace ? session.getState().conversationId ?? "new" : "new",
@@ -22140,30 +22140,30 @@ function ConnectedWorkflowStart({
22140
22140
  const onLaunch = useLaunchWorkflow({ landing });
22141
22141
  const { openUpload } = chunkUIXY4HKM_cjs.useBlocksEnvironment();
22142
22142
  const { data: workspaceTags = [] } = react.useTags();
22143
- const tags = react$1.useMemo(() => chunk6HI5OXB6_cjs.documentScopeLabels(workspaceTags), [workspaceTags]);
22143
+ const tags = react$1.useMemo(() => chunkZBQTFA5X_cjs.documentScopeLabels(workspaceTags), [workspaceTags]);
22144
22144
  const fieldPlaceholder = react$1.useCallback(
22145
22145
  (field, inputs, workflow) => {
22146
- if (workflow.id !== chunkMBXQSBG3_cjs.ANNOTATE_ID || field.name !== "name") return void 0;
22147
- const derived = chunkMBXQSBG3_cjs.deriveAnnotationName(String(inputs.description ?? ""));
22146
+ if (workflow.id !== chunkFAKRTCAL_cjs.ANNOTATE_ID || field.name !== "name") return void 0;
22147
+ const derived = chunkFAKRTCAL_cjs.deriveAnnotationName(String(inputs.description ?? ""));
22148
22148
  return derived ? `Otherwise \u201C${derived}\u201D` : "Taken from the description";
22149
22149
  },
22150
22150
  []
22151
22151
  );
22152
22152
  return /* @__PURE__ */ jsxRuntime.jsx(
22153
- chunk5ZWEUUJN_cjs.ConnectedWorkflowLauncher,
22153
+ chunkZJ3NII4U_cjs.ConnectedWorkflowLauncher,
22154
22154
  {
22155
22155
  ...rest,
22156
22156
  workflows,
22157
22157
  onLaunch,
22158
- renderIcon: chunkMBXQSBG3_cjs.renderWorkflowIcon,
22158
+ renderIcon: chunkFAKRTCAL_cjs.renderWorkflowIcon,
22159
22159
  onAddFiles: openUpload,
22160
22160
  agentLabels: AGENT_LABELS,
22161
22161
  addFilesAction,
22162
22162
  fieldPlaceholder,
22163
- submitLabel: ({ workflow, matchedCount }) => workflow.id === chunkMBXQSBG3_cjs.ANNOTATE_ID && matchedCount !== null ? `Annotate ${matchedCount} document${matchedCount !== 1 ? "s" : ""}` : void 0,
22163
+ submitLabel: ({ workflow, matchedCount }) => workflow.id === chunkFAKRTCAL_cjs.ANNOTATE_ID && matchedCount !== null ? `Annotate ${matchedCount} document${matchedCount !== 1 ? "s" : ""}` : void 0,
22164
22164
  renderNotice: ({ workflow, inputs }) => {
22165
- if (workflow.id !== chunkMBXQSBG3_cjs.ANNOTATE_ID) return null;
22166
- const name = String(inputs.name ?? "").trim() || chunkMBXQSBG3_cjs.deriveAnnotationName(String(inputs.description ?? ""));
22165
+ if (workflow.id !== chunkFAKRTCAL_cjs.ANNOTATE_ID) return null;
22166
+ const name = String(inputs.name ?? "").trim() || chunkFAKRTCAL_cjs.deriveAnnotationName(String(inputs.description ?? ""));
22167
22167
  const existing = name ? tags.find((t) => t.name.toLowerCase() === name.toLowerCase()) : void 0;
22168
22168
  if (!existing) return null;
22169
22169
  return /* @__PURE__ */ jsxRuntime.jsxs(
@@ -22192,7 +22192,7 @@ var TILE_TEST_IDS = {
22192
22192
  annotate: "workspace-dashboard-quick-action-annotate"
22193
22193
  };
22194
22194
  function DashboardStart({ addMenu, onCreateNew }) {
22195
- const { dashboard: workflows } = chunkDCHNB7DF_cjs.useWorkflowDefinitions();
22195
+ const { dashboard: workflows } = chunkKVKKVSBT_cjs.useWorkflowDefinitions();
22196
22196
  const { isMember, role } = react.useCurrentWorkspace();
22197
22197
  const canWrite = isMember && role !== "guest";
22198
22198
  const [activeId, setActiveId] = react$1.useState(null);
@@ -22218,7 +22218,7 @@ function DashboardStart({ addMenu, onCreateNew }) {
22218
22218
  }
22219
22219
  ] : void 0,
22220
22220
  tileTestId: (workflow) => TILE_TEST_IDS[workflow.id],
22221
- disabledReason: (workflow) => !canWrite && workflow.id === chunkMBXQSBG3_cjs.ANNOTATE_ID ? "Only workspace members can annotate files" : void 0
22221
+ disabledReason: (workflow) => !canWrite && workflow.id === chunkFAKRTCAL_cjs.ANNOTATE_ID ? "Only workspace members can annotate files" : void 0
22222
22222
  }
22223
22223
  );
22224
22224
  }
@@ -22249,7 +22249,7 @@ function recentConversations(conversations) {
22249
22249
  return [...conversations].sort((a, b) => time(b.updated_at) - time(a.updated_at)).slice(0, RECENT_ROWS).map((c) => ({
22250
22250
  id: c.external_id,
22251
22251
  title: c.title?.trim() || "Untitled thread",
22252
- subtitle: c.status ? [chunkMBXQSBG3_cjs.STATUS_LABELS[chunkMBXQSBG3_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"}`,
22252
+ subtitle: c.status ? [chunkFAKRTCAL_cjs.STATUS_LABELS[chunkFAKRTCAL_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"}`,
22253
22253
  time: timeAndDate(c.updated_at)
22254
22254
  }));
22255
22255
  }
@@ -22625,7 +22625,7 @@ function parseTypedSkill(draft) {
22625
22625
  return m ? { slug: m[1].toLowerCase(), text: (m[2] ?? "").trim() } : null;
22626
22626
  }
22627
22627
  function useSlashSkillWorkflows({ landing }) {
22628
- const { skills, skillsEnabled } = chunkDCHNB7DF_cjs.useWorkflowDefinitions();
22628
+ const { skills, skillsEnabled } = chunkKVKKVSBT_cjs.useWorkflowDefinitions();
22629
22629
  const { commands } = react.useBuiltinCommands();
22630
22630
  const [active, setActive] = react$1.useState(null);
22631
22631
  const open = (workflow, text2) => {
@@ -22684,7 +22684,7 @@ function ConnectedAskField({
22684
22684
  filteredItems,
22685
22685
  isOpen: isSlashMenuOpen,
22686
22686
  canBrowseSkills
22687
- } = chunkSDXK2COQ_cjs.useSlashItems(text2, chunkMBXQSBG3_cjs.BUILTIN_SKILLS);
22687
+ } = chunkO2ATVRRO_cjs.useSlashItems(text2, chunkFAKRTCAL_cjs.BUILTIN_SKILLS);
22688
22688
  const slashWorkflows = useSlashSkillWorkflows({ landing: "chat" });
22689
22689
  const insertSlashItem = (item) => {
22690
22690
  if (slashWorkflows.openFor(item)) {
@@ -22723,7 +22723,7 @@ function ConnectedAskField({
22723
22723
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
22724
22724
  slashWorkflows.launcher,
22725
22725
  /* @__PURE__ */ jsxRuntime.jsx(
22726
- chunkHXWBXYVN_cjs.AskField,
22726
+ chunkCMMFXSTS_cjs.AskField,
22727
22727
  {
22728
22728
  value: text2,
22729
22729
  onValueChange: setText,
@@ -23305,7 +23305,7 @@ function useDocumentFilters({
23305
23305
  [documentFilters]
23306
23306
  );
23307
23307
  const baseFilteredDocuments = react$1.useMemo(
23308
- () => chunkMMSHLHTA_cjs.applyInvertedIndexFilter(documents, documentFilters, invertedIndex, getDocId),
23308
+ () => chunk6OXR4R6J_cjs.applyInvertedIndexFilter(documents, documentFilters, invertedIndex, getDocId),
23309
23309
  [documents, documentFilters, invertedIndex]
23310
23310
  );
23311
23311
  const filteredDocuments = react$1.useMemo(() => {
@@ -26234,7 +26234,7 @@ function ConnectedSecureMailClaimPage({
26234
26234
  }) {
26235
26235
  const authenticated = react.useArbiSession().status === "signed-in";
26236
26236
  const { openMail } = chunkUIXY4HKM_cjs.useBlocksEnvironment();
26237
- const { loading } = chunkSDXK2COQ_cjs.useAuthPages();
26237
+ const { loading } = chunkO2ATVRRO_cjs.useAuthPages();
26238
26238
  const claim = react.useClaimSecureMail();
26239
26239
  const [, setFirstLoginWorkspaces] = react.useTransientView(FIRST_LOGIN_WORKSPACES_VIEW, null);
26240
26240
  const [failure, setFailure] = react$1.useState(null);
@@ -26274,7 +26274,7 @@ function ConnectedSecureMailClaimPage({
26274
26274
  }
26275
26275
  })();
26276
26276
  }, [authenticated, claimId, key]);
26277
- if (!error) return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: loading ?? /* @__PURE__ */ jsxRuntime.jsx(chunkU4ZLFL6M_cjs.LoadingIndicator, { variant: "splash" }) });
26277
+ if (!error) return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: loading ?? /* @__PURE__ */ jsxRuntime.jsx(chunkZA3ZELSH_cjs.LoadingIndicator, { variant: "splash" }) });
26278
26278
  return /* @__PURE__ */ jsxRuntime.jsx("main", { className: "flex min-h-screen items-center justify-center bg-background p-6", children: /* @__PURE__ */ jsxRuntime.jsxs("section", { className: "w-full max-w-md rounded-lg border border-border bg-card p-6", children: [
26279
26279
  /* @__PURE__ */ jsxRuntime.jsx("p", { role: "alert", className: "mb-4 text-sm text-destructive", children: error }),
26280
26280
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -27665,7 +27665,7 @@ function EventEditorDialog({
27665
27665
  const { notify: notify17, runtimeConfig } = chunkUIXY4HKM_cjs.useBlocksEnvironment();
27666
27666
  const attachmentDocuments = documents.map((document2) => ({
27667
27667
  doc_id: document2.external_id,
27668
- title: chunk5ZWEUUJN_cjs.toWorkflowFieldDocument(document2).title,
27668
+ title: chunkZJ3NII4U_cjs.toWorkflowFieldDocument(document2).title,
27669
27669
  url: chunkLJJJ6CYH_cjs.buildDeepLinkUrl(
27670
27670
  { workspaceId: workspaceId ?? void 0, documentId: document2.external_id },
27671
27671
  runtimeConfig.deploymentDomain
@@ -32271,7 +32271,7 @@ function useBatchCompleteToasts() {
32271
32271
  }
32272
32272
  }, AI_FIELDS_NOTICE_WINDOW_MS);
32273
32273
  } else if (message.batch_type === "entity_extract") {
32274
- say(`${chunkU4ZLFL6M_cjs.entitiesPhrase()} extracted from ${chunkU4ZLFL6M_cjs.documentCount(docIds.length)}`, "success", {
32274
+ say(`${chunkZA3ZELSH_cjs.entitiesPhrase()} extracted from ${chunkZA3ZELSH_cjs.documentCount(docIds.length)}`, "success", {
32275
32275
  ...openTags && { action: { label: "View", onClick: openTags } }
32276
32276
  });
32277
32277
  } else if (message.batch_type === "upload") {
@@ -33074,15 +33074,16 @@ function useFilesPageSession(documents, workspaceId) {
33074
33074
  }
33075
33075
 
33076
33076
  // src/connection/viewer/documentPlace.ts
33077
- function showDocumentPlace(session, { documentId, passageId, page }) {
33077
+ function showDocumentPlace(session, { documentId, passageId, page, tab }) {
33078
33078
  session.setViewingDocument({ id: documentId, page: page ?? 1, passageId: passageId ?? null });
33079
- session.setDocumentViewer({ tab: passageId || page ? "html" : "pdf" });
33079
+ session.setDocumentViewer({ tab: tab !== "pdf" && (passageId || page) ? "html" : "pdf" });
33080
33080
  }
33081
33081
  function documentPlaceKey(place) {
33082
33082
  if (!place?.documentId) return null;
33083
- return `${place.documentId}|${place.passageId ?? ""}|${place.page ?? ""}`;
33083
+ return `${place.documentId}|${place.passageId ?? ""}|${place.page ?? ""}|${place.tab ?? ""}`;
33084
33084
  }
33085
33085
  function dialogTabForPlace(place, tabs) {
33086
+ if (place.tab === "pdf" && tabs.includes("document")) return "document";
33086
33087
  if (place.passageId && tabs.includes("review")) return "review";
33087
33088
  if (place.page && !place.passageId && tabs.includes("document")) return "document";
33088
33089
  return tabs[0];
@@ -33093,13 +33094,13 @@ var TABLET_TABLE_BELOW = 860;
33093
33094
  var TABLET_VIEWPORT_BELOW = 1100;
33094
33095
  var NO_CONVERSATION_DOCUMENTS2 = [];
33095
33096
  var DocumentReviewCard = react$1.lazy(
33096
- () => import('../DocumentReviewCard-7XUBPCQD.cjs').then((module) => ({ default: module.DocumentReviewCard }))
33097
+ () => import('../DocumentReviewCard-3H66FMMO.cjs').then((module) => ({ default: module.DocumentReviewCard }))
33097
33098
  );
33098
33099
  var FilesViewerDialog = react$1.lazy(
33099
- () => import('../FilesViewerDialog-H4ZXFNLV.cjs').then((module) => ({ default: module.FilesViewerDialog }))
33100
+ () => import('../FilesViewerDialog-DSK5HMLL.cjs').then((module) => ({ default: module.FilesViewerDialog }))
33100
33101
  );
33101
33102
  function defaultReviewCard(props) {
33102
- return /* @__PURE__ */ jsxRuntime.jsx(react$1.Suspense, { fallback: /* @__PURE__ */ jsxRuntime.jsx(chunkU4ZLFL6M_cjs.LoadingIndicator, { message: "Loading document viewer..." }), children: /* @__PURE__ */ jsxRuntime.jsx(DocumentReviewCard, { ...props }, `navigator-${props.currentDocument.external_id}`) });
33103
+ return /* @__PURE__ */ jsxRuntime.jsx(react$1.Suspense, { fallback: /* @__PURE__ */ jsxRuntime.jsx(chunkZA3ZELSH_cjs.LoadingIndicator, { message: "Loading document viewer..." }), children: /* @__PURE__ */ jsxRuntime.jsx(DocumentReviewCard, { ...props }, `navigator-${props.currentDocument.external_id}`) });
33103
33104
  }
33104
33105
  function ConnectedFilesPage({
33105
33106
  isModal = false,
@@ -33108,6 +33109,7 @@ function ConnectedFilesPage({
33108
33109
  documentId: linkedDocumentId,
33109
33110
  passageId: linkedPassageId,
33110
33111
  page: linkedPage,
33112
+ documentTab: linkedTab,
33111
33113
  onDocumentChange,
33112
33114
  viewer,
33113
33115
  onUpload: hostUpload,
@@ -33141,7 +33143,7 @@ function ConnectedFilesPage({
33141
33143
  const deleteDocuments = react.useDeleteDocuments();
33142
33144
  const isDocumentsPending = isLoading && documents.length === 0;
33143
33145
  const { workspaceId, userId, live } = chunkWV65MJ43_cjs.useConnectedWorkspace();
33144
- const { role, members } = chunk5ZWEUUJN_cjs.useConnectedWorkspaceRole();
33146
+ const { role, members } = chunkZJ3NII4U_cjs.useConnectedWorkspaceRole();
33145
33147
  const { data: workspaces } = react.useWorkspaces({ enabled: live });
33146
33148
  const workspace = workspaces?.find((w) => w.external_id === workspaceId);
33147
33149
  const workspaceName = workspace?.name;
@@ -33195,6 +33197,8 @@ function ConnectedFilesPage({
33195
33197
  (fromLink) => {
33196
33198
  setDialog(null);
33197
33199
  shownPlaceRef.current = null;
33200
+ if (session.getState().documentViewer.compareId)
33201
+ session.setDocumentViewer({ compareId: null });
33198
33202
  if (chunkHEM27NA3_cjs.filesViewMode(chunkHEM27NA3_cjs.useFilesPrefs.getState(), prefsKey, defaultViewMode) !== "navigator")
33199
33203
  session.setViewingDocument(null);
33200
33204
  if (!fromLink) latest.current.onDocumentChange?.(null);
@@ -33225,8 +33229,25 @@ function ConnectedFilesPage({
33225
33229
  shownPlaceRef.current = null;
33226
33230
  }
33227
33231
  }, [ownsViewer, dialog, viewingDocumentRef]);
33232
+ const viewingDraft = react.useArbiSessionState(
33233
+ (s) => !!s.viewingDocument && s.viewingDocument.id in s.draftDocuments
33234
+ );
33235
+ const compareId = react.useArbiSessionState((s) => s.documentViewer.compareId ?? null);
33236
+ const wholeViewerKey = !ownsViewer || !viewingDocumentRef ? null : viewingDraft ? `draft|${viewingDocumentRef}` : compareId ? `compare|${viewingDocumentRef}|${compareId}` : null;
33237
+ const wholeViewerKeyRef = react$1.useRef(null);
33238
+ react$1.useEffect(() => {
33239
+ const previous = wholeViewerKeyRef.current;
33240
+ wholeViewerKeyRef.current = wholeViewerKey;
33241
+ if (wholeViewerKey && wholeViewerKey !== previous)
33242
+ setDialog((open) => ({ tab: "document", seq: (open?.seq ?? 0) + 1 }));
33243
+ }, [wholeViewerKey]);
33228
33244
  const linkedPlaceKey = documentPlaceKey(
33229
- linkedDocumentId ? { documentId: linkedDocumentId, passageId: linkedPassageId, page: linkedPage } : null
33245
+ linkedDocumentId ? {
33246
+ documentId: linkedDocumentId,
33247
+ passageId: linkedPassageId,
33248
+ page: linkedPage,
33249
+ tab: linkedTab
33250
+ } : null
33230
33251
  );
33231
33252
  const appliedLinkRef = react$1.useRef(null);
33232
33253
  react$1.useEffect(() => {
@@ -33234,11 +33255,17 @@ function ConnectedFilesPage({
33234
33255
  if (linkedPlaceKey === previous) return;
33235
33256
  appliedLinkRef.current = linkedPlaceKey;
33236
33257
  if (linkedDocumentId) {
33237
- const place = { documentId: linkedDocumentId, passageId: linkedPassageId, page: linkedPage };
33258
+ const place = {
33259
+ documentId: linkedDocumentId,
33260
+ passageId: linkedPassageId,
33261
+ page: linkedPage,
33262
+ tab: linkedTab
33263
+ };
33238
33264
  if (!ownsViewer)
33239
33265
  openDocument(linkedDocumentId, {
33240
33266
  ...linkedPassageId && { passageId: linkedPassageId },
33241
- ...linkedPage && { page: linkedPage }
33267
+ ...linkedPage && { page: linkedPage },
33268
+ ...linkedTab && { tab: linkedTab }
33242
33269
  });
33243
33270
  else if (linkedPlaceKey !== shownPlaceRef.current) showInDialog(place, true);
33244
33271
  } else if (previous && ownsViewer && shownPlaceRef.current) closeDialog2(true);
@@ -33634,7 +33661,7 @@ function ConnectedFilesPage({
33634
33661
  viewMode === "grid" ? (
33635
33662
  // ‹ n / N › over the table's displayed rows; a step opens the document.
33636
33663
  /* @__PURE__ */ jsxRuntime.jsx(
33637
- chunkU4ZLFL6M_cjs.GridRowNavigator,
33664
+ chunkZA3ZELSH_cjs.GridRowNavigator,
33638
33665
  {
33639
33666
  gridApi,
33640
33667
  selectedId: viewingDocumentId ?? selectedDocumentIds[0] ?? null,
@@ -33937,7 +33964,7 @@ function ProcessingSection({
33937
33964
  tasks,
33938
33965
  onDelete
33939
33966
  }) {
33940
- return /* @__PURE__ */ jsxRuntime.jsx(chunk33MKOWSA_cjs.TaskSection, { title, count: count2, status, tooltip: SECTION_TOOLTIPS[status], children: /* @__PURE__ */ jsxRuntime.jsx(chunkMBXQSBG3_cjs.UploadTaskList, { tasks, title: "", onDelete, renderFileIcon: renderFileIcon2 }) });
33967
+ return /* @__PURE__ */ jsxRuntime.jsx(chunk33MKOWSA_cjs.TaskSection, { title, count: count2, status, tooltip: SECTION_TOOLTIPS[status], children: /* @__PURE__ */ jsxRuntime.jsx(chunkFAKRTCAL_cjs.UploadTaskList, { tasks, title: "", onDelete, renderFileIcon: renderFileIcon2 }) });
33941
33968
  }
33942
33969
  function ConnectedDocumentProcessingPanel({
33943
33970
  workspaceId,
@@ -34228,7 +34255,7 @@ function ConnectedProcessingStatus({ onClick }) {
34228
34255
  const tone = pulse === "error" ? "error" : pulse === "success" ? "success" : "progress";
34229
34256
  const label = pulse === "error" ? `${failed} failed` : pulse === "success" ? "Processed" : `${active} processing`;
34230
34257
  return /* @__PURE__ */ jsxRuntime.jsx(
34231
- chunkHXWBXYVN_cjs.StatusBadge,
34258
+ chunkCMMFXSTS_cjs.StatusBadge,
34232
34259
  {
34233
34260
  tone,
34234
34261
  label,
@@ -34819,7 +34846,7 @@ function DeveloperFooter({
34819
34846
  }, [configVersions, configToLoad, parentMessage?.config_ext_id]);
34820
34847
  const hasLoadedConfig = !!loadedConfigId && loadedConfigId !== "default";
34821
34848
  return /* @__PURE__ */ jsxRuntime.jsx(
34822
- chunkMMSHLHTA_cjs.ConfigSwitcherBar,
34849
+ chunk6OXR4R6J_cjs.ConfigSwitcherBar,
34823
34850
  {
34824
34851
  options: options2,
34825
34852
  value: loadedConfigId || "default",
@@ -35088,8 +35115,8 @@ function ConnectedDeveloperConfig({ modeSwitcher } = {}) {
35088
35115
  handleDeleteConfig,
35089
35116
  handleLoadConfig
35090
35117
  } = useDeveloperConfig();
35091
- return /* @__PURE__ */ jsxRuntime.jsxs(chunkMMSHLHTA_cjs.PanelFrame, { testId: "developer-config", children: [
35092
- /* @__PURE__ */ jsxRuntime.jsx(chunkMMSHLHTA_cjs.DraggableHeader, { children: /* @__PURE__ */ jsxRuntime.jsx(
35118
+ return /* @__PURE__ */ jsxRuntime.jsxs(chunk6OXR4R6J_cjs.PanelFrame, { testId: "developer-config", children: [
35119
+ /* @__PURE__ */ jsxRuntime.jsx(chunk6OXR4R6J_cjs.DraggableHeader, { children: /* @__PURE__ */ jsxRuntime.jsx(
35093
35120
  chunkSJSGSHIT_cjs.TabHeader,
35094
35121
  {
35095
35122
  tabs: [{ id: "config", label: "Developer Config", icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Code2, { className: "size-4" }) }],
@@ -35099,7 +35126,7 @@ function ConnectedDeveloperConfig({ modeSwitcher } = {}) {
35099
35126
  rightContent: modeSwitcher
35100
35127
  }
35101
35128
  ) }),
35102
- /* @__PURE__ */ jsxRuntime.jsx(chunkMMSHLHTA_cjs.PanelFrameBody, { className: "overflow-auto p-4", children: configSchema ? /* @__PURE__ */ jsxRuntime.jsx(
35129
+ /* @__PURE__ */ jsxRuntime.jsx(chunk6OXR4R6J_cjs.PanelFrameBody, { className: "overflow-auto p-4", children: configSchema ? /* @__PURE__ */ jsxRuntime.jsx(
35103
35130
  ConnectedConfigForm,
35104
35131
  {
35105
35132
  schema: configSchema,
@@ -35107,7 +35134,7 @@ function ConnectedDeveloperConfig({ modeSwitcher } = {}) {
35107
35134
  onChange: handleConfigChange,
35108
35135
  availableModels: availableModels?.models
35109
35136
  }
35110
- ) : /* @__PURE__ */ jsxRuntime.jsx(chunkMMSHLHTA_cjs.PanelNote, { children: "Loading configuration schema..." }) }),
35137
+ ) : /* @__PURE__ */ jsxRuntime.jsx(chunk6OXR4R6J_cjs.PanelNote, { children: "Loading configuration schema..." }) }),
35111
35138
  /* @__PURE__ */ jsxRuntime.jsx(
35112
35139
  DeveloperFooter,
35113
35140
  {
@@ -35627,7 +35654,7 @@ function ConnectedAccountCluster({
35627
35654
  layout
35628
35655
  );
35629
35656
  return /* @__PURE__ */ jsxRuntime.jsx(
35630
- chunkHXWBXYVN_cjs.ActionCluster,
35657
+ chunkCMMFXSTS_cjs.ActionCluster,
35631
35658
  {
35632
35659
  layout,
35633
35660
  status: layout === "bar" ? status : null,
@@ -35642,7 +35669,7 @@ function ConnectedAccountCluster({
35642
35669
  }
35643
35670
  );
35644
35671
  }
35645
- var gbp3 = (pence) => chunkDDIV3MYQ_cjs.formatMoney(pence, "gbp");
35672
+ var gbp3 = (pence) => chunkBAJNXRI5_cjs.formatMoney(pence, "gbp");
35646
35673
  function addonArrivalMessage(addons, added) {
35647
35674
  const parts = [];
35648
35675
  if (added.ai > 0) parts.push(`${react.formatGbp(added.ai * addons.block_ai_gbp)} of AI usage`);
@@ -36055,7 +36082,7 @@ function ConnectedAppRuntime({
36055
36082
  prefetch
36056
36083
  }) {
36057
36084
  const on = (effect) => effects[effect] !== false;
36058
- const { stripeEnabled } = chunkDDIV3MYQ_cjs.useBillingSupport();
36085
+ const { stripeEnabled } = chunkBAJNXRI5_cjs.useBillingSupport();
36059
36086
  const welcomeDialog = on("welcomeDialog") && stripeEnabled;
36060
36087
  const resolveFirstLogin = () => {
36061
36088
  if (welcomeDialog) skipWelcomeDialogThisSession();
@@ -37059,9 +37086,9 @@ function resolveLaunchInputs(workflow, request) {
37059
37086
  return { ...fromContext, ...fromScope, ...request.inputs };
37060
37087
  }
37061
37088
  function useWorkflowLaunch() {
37062
- const { skills } = chunkDCHNB7DF_cjs.useWorkflowDefinitions();
37089
+ const { skills } = chunkKVKKVSBT_cjs.useWorkflowDefinitions();
37063
37090
  const launch = react$1.useCallback(
37064
- (workflowId, options2 = {}) => chunkMBXQSBG3_cjs.openWorkflowLaunch({ workflowId, ...options2 }),
37091
+ (workflowId, options2 = {}) => chunkFAKRTCAL_cjs.openWorkflowLaunch({ workflowId, ...options2 }),
37065
37092
  []
37066
37093
  );
37067
37094
  const itemsFor = react$1.useCallback(
@@ -37090,9 +37117,9 @@ function useWorkflowLaunch() {
37090
37117
  return { launch, itemsFor, scopeItemsFor };
37091
37118
  }
37092
37119
  function Inner() {
37093
- const request = chunkMBXQSBG3_cjs.useWorkflowLaunchRequest();
37094
- const close = chunkMBXQSBG3_cjs.closeWorkflowLaunch;
37095
- const { skills } = chunkDCHNB7DF_cjs.useWorkflowDefinitions();
37120
+ const request = chunkFAKRTCAL_cjs.useWorkflowLaunchRequest();
37121
+ const close = chunkFAKRTCAL_cjs.closeWorkflowLaunch;
37122
+ const { skills } = chunkKVKKVSBT_cjs.useWorkflowDefinitions();
37096
37123
  const run = useLaunchWorkflow({ landing: request?.landing });
37097
37124
  const workflow = skills.find((w) => w.id === request?.workflowId);
37098
37125
  const inputs = react$1.useMemo(
@@ -37129,7 +37156,7 @@ function Inner() {
37129
37156
  );
37130
37157
  }
37131
37158
  function WorkflowLaunchHost() {
37132
- return chunkMBXQSBG3_cjs.useWorkflowLaunchRequest() ? /* @__PURE__ */ jsxRuntime.jsx(Inner, {}) : null;
37159
+ return chunkFAKRTCAL_cjs.useWorkflowLaunchRequest() ? /* @__PURE__ */ jsxRuntime.jsx(Inner, {}) : null;
37133
37160
  }
37134
37161
  function isNeedsConfirmationDetail(detail) {
37135
37162
  return typeof detail === "object" && detail !== null && detail.needs_confirmation === "resource_private";
@@ -37419,9 +37446,9 @@ function ConnectedConversationSettings() {
37419
37446
  });
37420
37447
  if (confirmed) settings.share();
37421
37448
  };
37422
- return /* @__PURE__ */ jsxRuntime.jsx(chunkMMSHLHTA_cjs.PanelFrame, { testId: "conversation-settings", className: "bg-transparent", children: /* @__PURE__ */ jsxRuntime.jsx(chunkMMSHLHTA_cjs.PanelFrameBody, { className: "overflow-auto p-4", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-6", children: [
37449
+ return /* @__PURE__ */ jsxRuntime.jsx(chunk6OXR4R6J_cjs.PanelFrame, { testId: "conversation-settings", className: "bg-transparent", children: /* @__PURE__ */ jsxRuntime.jsx(chunk6OXR4R6J_cjs.PanelFrameBody, { className: "overflow-auto p-4", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-6", children: [
37423
37450
  !settings.isNewConversation && /* @__PURE__ */ jsxRuntime.jsx(
37424
- chunkMMSHLHTA_cjs.ConversationTitleSection,
37451
+ chunk6OXR4R6J_cjs.ConversationTitleSection,
37425
37452
  {
37426
37453
  title: settings.title,
37427
37454
  onTitleChange: settings.setTitle,
@@ -37439,9 +37466,9 @@ function ConnectedConversationSettings() {
37439
37466
  }
37440
37467
  ),
37441
37468
  /* @__PURE__ */ jsxRuntime.jsx(
37442
- chunkMMSHLHTA_cjs.ModelSelectionSection,
37469
+ chunk6OXR4R6J_cjs.ModelSelectionSection,
37443
37470
  {
37444
- selector: /* @__PURE__ */ jsxRuntime.jsx(chunkSDXK2COQ_cjs.ConnectedModelSelector, {}),
37471
+ selector: /* @__PURE__ */ jsxRuntime.jsx(chunkO2ATVRRO_cjs.ConnectedModelSelector, {}),
37445
37472
  onUseDefaults: settings.resetToDefaults
37446
37473
  }
37447
37474
  )
@@ -37500,7 +37527,7 @@ var BUILTIN_GLOBAL_DIALOGS = {
37500
37527
  testId: "workspace-transfer-modal"
37501
37528
  }
37502
37529
  ),
37503
- logout: ({ props, onClose }) => /* @__PURE__ */ jsxRuntime.jsx(chunkSDXK2COQ_cjs.ConnectedLogoutDialog, { open: props !== null, onClose }),
37530
+ logout: ({ props, onClose }) => /* @__PURE__ */ jsxRuntime.jsx(chunkO2ATVRRO_cjs.ConnectedLogoutDialog, { open: props !== null, onClose }),
37504
37531
  conversationSettings: ({ props, onClose }) => /* @__PURE__ */ jsxRuntime.jsx(ConnectedConversationSettingsDialog, { open: props !== null, onClose }),
37505
37532
  unarchiveWorkspace: ({ props, onClose }) => /* @__PURE__ */ jsxRuntime.jsx(ConnectedUnarchiveWorkspaceDialog, { workspaceId: props?.workspaceId ?? null, onClose }),
37506
37533
  productionSet: ConnectedProductionSetDialog,
@@ -37577,7 +37604,7 @@ function WorkflowRunStatusCell({ conversation }) {
37577
37604
  return person ? ui.getUserDisplayName(person) : void 0;
37578
37605
  };
37579
37606
  return /* @__PURE__ */ jsxRuntime.jsx(
37580
- chunkMBXQSBG3_cjs.WorkflowRunStatus,
37607
+ chunkFAKRTCAL_cjs.WorkflowRunStatus,
37581
37608
  {
37582
37609
  steps,
37583
37610
  states,
@@ -37611,7 +37638,7 @@ function ConversationStatusCell({ conversation }) {
37611
37638
  if (conversation.plan?.steps?.length && !isLiveGenerating)
37612
37639
  return /* @__PURE__ */ jsxRuntime.jsx(WorkflowRunStatusCell, { conversation });
37613
37640
  return /* @__PURE__ */ jsxRuntime.jsx(
37614
- chunkMBXQSBG3_cjs.ThreadStatusLine,
37641
+ chunkFAKRTCAL_cjs.ThreadStatusLine,
37615
37642
  {
37616
37643
  state: threadStateOf(conversation, isLiveGenerating),
37617
37644
  className: "h-full",
@@ -37924,7 +37951,7 @@ function ConnectedThreadLauncher({ autoFocus }) {
37924
37951
  setDraft("");
37925
37952
  };
37926
37953
  return /* @__PURE__ */ jsxRuntime.jsx(chunkZ6JUJI4A_cjs.ComposerDock, { children: /* @__PURE__ */ jsxRuntime.jsx(chunkZ6JUJI4A_cjs.ComposerContainer, { className: "mx-auto max-w-[49rem] px-3 sm:px-6", children: /* @__PURE__ */ jsxRuntime.jsx(
37927
- chunkSDXK2COQ_cjs.ConversationComposer,
37954
+ chunkO2ATVRRO_cjs.ConversationComposer,
37928
37955
  {
37929
37956
  value: draft,
37930
37957
  onValueChange: setDraft,
@@ -37932,7 +37959,7 @@ function ConnectedThreadLauncher({ autoFocus }) {
37932
37959
  handleSendMessage: send,
37933
37960
  isConversationEmpty: true,
37934
37961
  shouldOfferFollowUp: false,
37935
- modelSelector: /* @__PURE__ */ jsxRuntime.jsx(chunkSDXK2COQ_cjs.ConnectedModelSelector, { variant: "compact" }),
37962
+ modelSelector: /* @__PURE__ */ jsxRuntime.jsx(chunkO2ATVRRO_cjs.ConnectedModelSelector, { variant: "compact" }),
37936
37963
  rightButton: /* @__PURE__ */ jsxRuntime.jsx(chunkZ6JUJI4A_cjs.ComposerSend, { onSend: send, disabled: !draft.trim() })
37937
37964
  }
37938
37965
  ) }) });
@@ -37940,7 +37967,7 @@ function ConnectedThreadLauncher({ autoFocus }) {
37940
37967
  var START_VISIBLE = 8;
37941
37968
  var START_SEARCH_ABOVE = 8;
37942
37969
  function ConnectedConversationStart() {
37943
- const { start } = chunkDCHNB7DF_cjs.useWorkflowDefinitions();
37970
+ const { start } = chunkKVKKVSBT_cjs.useWorkflowDefinitions();
37944
37971
  const { openSkillsBrowser } = chunkUIXY4HKM_cjs.useBlocksEnvironment();
37945
37972
  const [query, setQuery] = react$1.useState("");
37946
37973
  const q = query.trim().toLowerCase();
@@ -37955,7 +37982,7 @@ function ConnectedConversationStart() {
37955
37982
  const browse = openSkillsBrowser ? [
37956
37983
  {
37957
37984
  id: "browse-all",
37958
- iconNode: chunkMBXQSBG3_cjs.renderWorkflowIcon("library"),
37985
+ iconNode: chunkFAKRTCAL_cjs.renderWorkflowIcon("library"),
37959
37986
  title: "Browse all",
37960
37987
  description: "See every skill, make a copy, add your own",
37961
37988
  onSelect: () => openSkillsBrowser(),
@@ -38061,7 +38088,7 @@ function AgentBarShell({
38061
38088
  }, [isStepsExpanded, steps]);
38062
38089
  const visibleStepCount = react$1.useMemo(() => browser.topLevelAgentSteps(steps ?? []).length, [steps]);
38063
38090
  return /* @__PURE__ */ jsxRuntime.jsx(
38064
- chunkMBXQSBG3_cjs.AgentBar,
38091
+ chunkFAKRTCAL_cjs.AgentBar,
38065
38092
  {
38066
38093
  className,
38067
38094
  testId,
@@ -38073,7 +38100,7 @@ function AgentBarShell({
38073
38100
  drawerRef: scrollRef,
38074
38101
  onDrawerScroll: handleDrawerScroll,
38075
38102
  drawer: /* @__PURE__ */ jsxRuntime.jsx(
38076
- chunkSDXK2COQ_cjs.AgentSteps,
38103
+ chunkO2ATVRRO_cjs.AgentSteps,
38077
38104
  {
38078
38105
  steps: stepList,
38079
38106
  isStreaming,
@@ -38125,7 +38152,7 @@ function AgentControlBar({
38125
38152
  const waitingOnChildren = runningLanes.length > 0 && ["sub_agent", "spawn_subagent", "deep_research", "run_skill"].includes(currentTool ?? "");
38126
38153
  const waitingLabel = runningLanes.length === 1 ? `Waiting on ${runningLanes[0].job}` : `Waiting on ${runningLanes.length} sub-agents`;
38127
38154
  const liveTimerNode = liveTimer && /* @__PURE__ */ jsxRuntime.jsx(
38128
- chunkSDXK2COQ_cjs.MessageLiveSeconds,
38155
+ chunkO2ATVRRO_cjs.MessageLiveSeconds,
38129
38156
  {
38130
38157
  ...liveTimer,
38131
38158
  offsetSeconds: currentStep?.t ?? 0,
@@ -38134,7 +38161,7 @@ function AgentControlBar({
38134
38161
  }
38135
38162
  );
38136
38163
  const status = /* @__PURE__ */ jsxRuntime.jsx(
38137
- chunkMBXQSBG3_cjs.AgentBarStatus,
38164
+ chunkFAKRTCAL_cjs.AgentBarStatus,
38138
38165
  {
38139
38166
  state: showState ? controlState : void 0,
38140
38167
  stateLabel: STATE_LABEL[controlState],
@@ -38176,7 +38203,7 @@ function AgentControlBar({
38176
38203
  ];
38177
38204
  const controls = /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
38178
38205
  onStop && /* @__PURE__ */ jsxRuntime.jsx(
38179
- chunkMBXQSBG3_cjs.AgentBarIconButton,
38206
+ chunkFAKRTCAL_cjs.AgentBarIconButton,
38180
38207
  {
38181
38208
  onClick: onStop,
38182
38209
  title: "Stop",
@@ -38185,22 +38212,22 @@ function AgentControlBar({
38185
38212
  children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Square, { className: "h-3 w-3", fill: "currentColor" })
38186
38213
  }
38187
38214
  ),
38188
- /* @__PURE__ */ jsxRuntime.jsx(chunkMBXQSBG3_cjs.AgentBarMenu, { items: menuItems })
38215
+ /* @__PURE__ */ jsxRuntime.jsx(chunkFAKRTCAL_cjs.AgentBarMenu, { items: menuItems })
38189
38216
  ] });
38190
38217
  const displayedQueuedMessages = (transientQueuedMessages ?? []).filter(
38191
38218
  (message) => !message.serverId || !queuedMessages.some((queued) => queued.external_id === message.serverId)
38192
38219
  );
38193
38220
  const queuedNotes = displayedQueuedMessages.filter((message) => message.content);
38194
- const below = probeAnswer || queuedNotes.length > 0 ? /* @__PURE__ */ jsxRuntime.jsxs(chunkMBXQSBG3_cjs.AgentBarNotes, { children: [
38221
+ const below = probeAnswer || queuedNotes.length > 0 ? /* @__PURE__ */ jsxRuntime.jsxs(chunkFAKRTCAL_cjs.AgentBarNotes, { children: [
38195
38222
  queuedNotes.map((message, index) => /* @__PURE__ */ jsxRuntime.jsx(
38196
- chunkMBXQSBG3_cjs.AgentBarQueuedNote,
38223
+ chunkFAKRTCAL_cjs.AgentBarQueuedNote,
38197
38224
  {
38198
38225
  text: message.content ?? "",
38199
38226
  isAcknowledged: message.acknowledged
38200
38227
  },
38201
38228
  index
38202
38229
  )),
38203
- probeAnswer && /* @__PURE__ */ jsxRuntime.jsx(chunkMBXQSBG3_cjs.AgentBarProbeAnswer, { answer: probeAnswer.answer })
38230
+ probeAnswer && /* @__PURE__ */ jsxRuntime.jsx(chunkFAKRTCAL_cjs.AgentBarProbeAnswer, { answer: probeAnswer.answer })
38204
38231
  ] }) : null;
38205
38232
  return /* @__PURE__ */ jsxRuntime.jsx(
38206
38233
  AgentBarShell,
@@ -39135,7 +39162,7 @@ function ConversationThread({
39135
39162
  }, [isGenerating]);
39136
39163
  const slashWorkflows = useSlashSkillWorkflows({ landing: "current-chat" });
39137
39164
  const composerSkills = react$1.useMemo(
39138
- () => ({ builtin: chunkMBXQSBG3_cjs.BUILTIN_SKILLS, openFor: slashWorkflows.openFor }),
39165
+ () => ({ builtin: chunkFAKRTCAL_cjs.BUILTIN_SKILLS, openFor: slashWorkflows.openFor }),
39139
39166
  [slashWorkflows.openFor]
39140
39167
  );
39141
39168
  const browseSkills = react$1.useMemo(
@@ -39184,7 +39211,7 @@ function ConversationThread({
39184
39211
  useStartRequestedDraft();
39185
39212
  const orphanedMessage = react.getOrphanedLastMessage(messageHistory, isGenerating, assistantMode);
39186
39213
  return /* @__PURE__ */ jsxRuntime.jsxs(chunk32YCMXT2_cjs.ConversationBody, { children: [
39187
- /* @__PURE__ */ jsxRuntime.jsx(chunk32YCMXT2_cjs.ConversationMain, { "data-testid": `conversation-${currentConversationId}`, children: threadsLoading ? /* @__PURE__ */ jsxRuntime.jsx(chunk32YCMXT2_cjs.ConversationLoading, {}) : messageHistory.length > 0 || isBranching ? /* @__PURE__ */ jsxRuntime.jsx(chunkSDXK2COQ_cjs.AskAgainContext.Provider, { value: handleAskAgain, children: /* @__PURE__ */ jsxRuntime.jsxs(chunkIOCEKN44_cjs.TranscriptRunsContext.Provider, { value: transcriptRunInfo, children: [
39214
+ /* @__PURE__ */ jsxRuntime.jsx(chunk32YCMXT2_cjs.ConversationMain, { "data-testid": `conversation-${currentConversationId}`, children: threadsLoading ? /* @__PURE__ */ jsxRuntime.jsx(chunk32YCMXT2_cjs.ConversationLoading, {}) : messageHistory.length > 0 || isBranching ? /* @__PURE__ */ jsxRuntime.jsx(chunkO2ATVRRO_cjs.AskAgainContext.Provider, { value: handleAskAgain, children: /* @__PURE__ */ jsxRuntime.jsxs(chunkIOCEKN44_cjs.TranscriptRunsContext.Provider, { value: transcriptRunInfo, children: [
39188
39215
  meetingCallExtId && transcriptLineCount > 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex justify-center py-2", children: /* @__PURE__ */ jsxRuntime.jsx(
39189
39216
  chunkZBP4ZSAJ_cjs.ConversationFilter,
39190
39217
  {
@@ -39202,7 +39229,7 @@ function ConversationThread({
39202
39229
  ]
39203
39230
  }
39204
39231
  ) }),
39205
- /* @__PURE__ */ jsxRuntime.jsx(chunkSDXK2COQ_cjs.ConnectedMessageArea, { ref: containerRef, messages: visibleMessages }),
39232
+ /* @__PURE__ */ jsxRuntime.jsx(chunkO2ATVRRO_cjs.ConnectedMessageArea, { ref: containerRef, messages: visibleMessages }),
39206
39233
  showProvisional && /* @__PURE__ */ jsxRuntime.jsx(chunk4ZM3J3SL_cjs.ProvisionalSpeakers, { ids: provisionalSpeakers })
39207
39234
  ] }) }) : meetingCallExtId ? (
39208
39235
  // A meeting thread with nothing yet: call-aware, not the upload prompt.
@@ -39210,7 +39237,7 @@ function ConversationThread({
39210
39237
  /* @__PURE__ */ jsxRuntime.jsx(chunk4ZM3J3SL_cjs.CallConversationEmpty, { callExtId: meetingCallExtId }),
39211
39238
  /* @__PURE__ */ jsxRuntime.jsx(chunk4ZM3J3SL_cjs.ProvisionalSpeakers, { ids: provisionalSpeakers })
39212
39239
  ] })
39213
- ) : currentTask && currentTask.status != null ? /* @__PURE__ */ jsxRuntime.jsx(chunkMBXQSBG3_cjs.TaskEmptyState, { task: currentTask }) : pendingFirstTurn && isGenerating ? /* @__PURE__ */ jsxRuntime.jsx(chunkSDXK2COQ_cjs.ConnectedMessageArea, { ref: containerRef, messages: pendingFirstTurn }) : /* @__PURE__ */ jsxRuntime.jsx(
39240
+ ) : currentTask && currentTask.status != null ? /* @__PURE__ */ jsxRuntime.jsx(chunkFAKRTCAL_cjs.TaskEmptyState, { task: currentTask }) : pendingFirstTurn && isGenerating ? /* @__PURE__ */ jsxRuntime.jsx(chunkO2ATVRRO_cjs.ConnectedMessageArea, { ref: containerRef, messages: pendingFirstTurn }) : /* @__PURE__ */ jsxRuntime.jsx(
39214
39241
  ConnectedConversationEmpty,
39215
39242
  {
39216
39243
  hasDocuments: allWorkspaceDocuments.length > 0,
@@ -39281,7 +39308,7 @@ function ConversationThread({
39281
39308
  children: react.READ_ONLY_MEETING_TEXT
39282
39309
  }
39283
39310
  ) : /* @__PURE__ */ jsxRuntime.jsx(
39284
- chunkSDXK2COQ_cjs.ConversationComposer,
39311
+ chunkO2ATVRRO_cjs.ConversationComposer,
39285
39312
  {
39286
39313
  handleSendMessage: handleUserSend,
39287
39314
  placeholder: pendingAnswer ? "Type your answer to ARBI \u2014 or pick an option above" : void 0,
@@ -39621,7 +39648,7 @@ function ConnectedThreadsPage({
39621
39648
  };
39622
39649
  const page = /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex h-full min-h-0 flex-col", "data-testid": "threads-page", children: [
39623
39650
  /* @__PURE__ */ jsxRuntime.jsx("main", { className: "flex min-h-0 flex-1 flex-col bg-background", children: /* @__PURE__ */ jsxRuntime.jsx(
39624
- chunkMBXQSBG3_cjs.ConversationListView,
39651
+ chunkFAKRTCAL_cjs.ConversationListView,
39625
39652
  {
39626
39653
  showHeader,
39627
39654
  conversations: tasks,
@@ -39640,7 +39667,7 @@ function ConnectedThreadsPage({
39640
39667
  renderLabels: threadLabels.renderLabels,
39641
39668
  labelText: threadLabels.labelText,
39642
39669
  renderBy: (row2) => /* @__PURE__ */ jsxRuntime.jsx(
39643
- chunkMBXQSBG3_cjs.ConversationTurnSpeaker,
39670
+ chunkFAKRTCAL_cjs.ConversationTurnSpeaker,
39644
39671
  {
39645
39672
  variant: "icon",
39646
39673
  role: row2.last_message_role,
@@ -39673,7 +39700,7 @@ function ConnectedThreadsPage({
39673
39700
  }
39674
39701
  ),
39675
39702
  /* @__PURE__ */ jsxRuntime.jsx(
39676
- chunkMMSHLHTA_cjs.RenameDialog,
39703
+ chunk6OXR4R6J_cjs.RenameDialog,
39677
39704
  {
39678
39705
  open: !!renaming,
39679
39706
  onClose: () => {
@@ -40522,7 +40549,7 @@ function ConnectedConversationPage({
40522
40549
  );
40523
40550
  const { data: workspaceTags = [] } = react.useTags();
40524
40551
  const { tagId: threadTagId, clear: clearThreadTag } = useThreadTagFilter();
40525
- const historyCount = chunkMBXQSBG3_cjs.filterConversationRows(
40552
+ const historyCount = chunkFAKRTCAL_cjs.filterConversationRows(
40526
40553
  threadTagId ? conversations.filter((row2) => row2.label_ext_ids?.includes(threadTagId)) : conversations,
40527
40554
  threadFilter,
40528
40555
  (row2) => workspaceTags.filter((tag) => row2.label_ext_ids?.includes(tag.external_id)).map((tag) => tag.name).join(" "),
@@ -40581,7 +40608,7 @@ function ConnectedConversationPage({
40581
40608
  ] })
40582
40609
  }
40583
40610
  ),
40584
- isInChat && /* @__PURE__ */ jsxRuntime.jsx(chunkDCHNB7DF_cjs.ConnectedThreadTaskBar, { conversationId: currentConversationId })
40611
+ isInChat && /* @__PURE__ */ jsxRuntime.jsx(chunkKVKKVSBT_cjs.ConnectedThreadTaskBar, { conversationId: currentConversationId })
40585
40612
  ] }),
40586
40613
  isInChat && /* @__PURE__ */ jsxRuntime.jsx(
40587
40614
  ConversationThread,
@@ -40790,7 +40817,7 @@ function SsoResendVerificationButton({
40790
40817
  onClick: async () => handleResendEmailVerification(),
40791
40818
  disabled: loading || disabled,
40792
40819
  "aria-label": "Resend verification email",
40793
- children: loading ? /* @__PURE__ */ jsxRuntime.jsx(chunkU4ZLFL6M_cjs.LoadingIndicator, {}) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
40820
+ children: loading ? /* @__PURE__ */ jsxRuntime.jsx(chunkZA3ZELSH_cjs.LoadingIndicator, {}) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
40794
40821
  "Didn't get a verification email? ",
40795
40822
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-semibold", children: "Resend" })
40796
40823
  ] })
@@ -40801,16 +40828,16 @@ function SsoResendVerificationButton({
40801
40828
  }
40802
40829
  var NO_RECOVERY_KEY_WARNING = "Without your password or a recovery key, we cannot recover your account or data.";
40803
40830
  function ConnectedSsoCallback() {
40804
- const sso = chunkSDXK2COQ_cjs.useSsoSignIn();
40831
+ const sso = chunkO2ATVRRO_cjs.useSsoSignIn();
40805
40832
  const { isAuthenticated: isAuthenticated2, isLoading, user } = sso;
40806
- const auth = chunkSDXK2COQ_cjs.useAuthPages();
40833
+ const auth = chunkO2ATVRRO_cjs.useAuthPages();
40807
40834
  const { notify: notify17, navigate } = chunkUIXY4HKM_cjs.useBlocksEnvironment();
40808
40835
  const passwordRules = auth.passwordRules;
40809
40836
  const isProcessing = react$1.useRef(false);
40810
40837
  const hasCheckedStatus = react$1.useRef(false);
40811
40838
  const [accessToken, setAccessToken] = react$1.useState(null);
40812
40839
  const [ssoStatus, setSsoStatus] = react$1.useState(null);
40813
- const ssoName = react$1.useMemo(() => chunkSDXK2COQ_cjs.resolveSsoName(user ?? {}, ssoStatus ?? {}), [user, ssoStatus]);
40840
+ const ssoName = react$1.useMemo(() => chunkO2ATVRRO_cjs.resolveSsoName(user ?? {}, ssoStatus ?? {}), [user, ssoStatus]);
40814
40841
  const [password, setPassword] = react$1.useState("");
40815
40842
  const [confirmPassword, setConfirmPassword] = react$1.useState("");
40816
40843
  const [error, setError] = react$1.useState(null);
@@ -40988,7 +41015,7 @@ function ConnectedSsoCallback() {
40988
41015
  setIsCheckingStatus(true);
40989
41016
  try {
40990
41017
  console.info("[SSO] Checking user status...");
40991
- const response = await chunkSDXK2COQ_cjs.ssoAccountStatus(arbi, accessToken, user);
41018
+ const response = await chunkO2ATVRRO_cjs.ssoAccountStatus(arbi, accessToken, user);
40992
41019
  console.info("[SSO] User status:", response.status);
40993
41020
  setSsoStatus(response);
40994
41021
  } catch (error2) {
@@ -41032,7 +41059,7 @@ function ConnectedSsoCallback() {
41032
41059
  setIsSubmitting(true);
41033
41060
  setError(null);
41034
41061
  try {
41035
- const { login, registered, linked } = await chunkSDXK2COQ_cjs.completeSsoSignIn(arbi, {
41062
+ const { login, registered, linked } = await chunkO2ATVRRO_cjs.completeSsoSignIn(arbi, {
41036
41063
  token: accessToken,
41037
41064
  user,
41038
41065
  status: ssoStatus,
@@ -41314,7 +41341,7 @@ function ConnectedSsoCallback() {
41314
41341
  ssoStatus.status !== "new_user" && auth.footer
41315
41342
  ] }),
41316
41343
  /* @__PURE__ */ jsxRuntime.jsx(
41317
- chunkSDXK2COQ_cjs.ConnectedForgotPassword,
41344
+ chunkO2ATVRRO_cjs.ConnectedForgotPassword,
41318
41345
  {
41319
41346
  open: showForgotPasswordModal,
41320
41347
  onOpenChange: setShowForgotPasswordModal,
@@ -41322,7 +41349,7 @@ function ConnectedSsoCallback() {
41322
41349
  }
41323
41350
  ),
41324
41351
  /* @__PURE__ */ jsxRuntime.jsx(
41325
- chunkSDXK2COQ_cjs.ConnectedPasswordChangeDialog,
41352
+ chunkO2ATVRRO_cjs.ConnectedPasswordChangeDialog,
41326
41353
  {
41327
41354
  open: showChangePasswordModal,
41328
41355
  onClose: () => setShowChangePasswordModal(false),
@@ -41481,27 +41508,27 @@ function ConnectedOAuthConsentPage({
41481
41508
  oauthErrorRedirect(params.redirectUri, params.state, "access_denied");
41482
41509
  }
41483
41510
  if (error && !params) {
41484
- return /* @__PURE__ */ jsxRuntime.jsx(chunkMBXQSBG3_cjs.ConsentPage, { children: /* @__PURE__ */ jsxRuntime.jsx(chunkMBXQSBG3_cjs.ConsentMessage, { tone: "error", title: "Invalid Request", children: error }) });
41511
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkFAKRTCAL_cjs.ConsentPage, { children: /* @__PURE__ */ jsxRuntime.jsx(chunkFAKRTCAL_cjs.ConsentMessage, { tone: "error", title: "Invalid Request", children: error }) });
41485
41512
  }
41486
41513
  if (!params) {
41487
41514
  return null;
41488
41515
  }
41489
41516
  if (clientInfo?.isLocalAgentFlow) {
41490
- return /* @__PURE__ */ jsxRuntime.jsx(chunkMBXQSBG3_cjs.ConsentPage, { children: /* @__PURE__ */ jsxRuntime.jsx(chunkMBXQSBG3_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." }) });
41517
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkFAKRTCAL_cjs.ConsentPage, { children: /* @__PURE__ */ jsxRuntime.jsx(chunkFAKRTCAL_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." }) });
41491
41518
  }
41492
41519
  if (!isAuthenticated2) {
41493
41520
  return null;
41494
41521
  }
41495
41522
  if (callbackUrl) {
41496
- return /* @__PURE__ */ jsxRuntime.jsx(chunkMBXQSBG3_cjs.ConsentPage, { children: /* @__PURE__ */ jsxRuntime.jsxs(chunkMBXQSBG3_cjs.ConsentCard, { size: "md", children: [
41497
- /* @__PURE__ */ jsxRuntime.jsxs(chunkMBXQSBG3_cjs.ConsentHeader, { icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ClipboardList, {}), title: "Almost there", children: [
41523
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkFAKRTCAL_cjs.ConsentPage, { children: /* @__PURE__ */ jsxRuntime.jsxs(chunkFAKRTCAL_cjs.ConsentCard, { size: "md", children: [
41524
+ /* @__PURE__ */ jsxRuntime.jsxs(chunkFAKRTCAL_cjs.ConsentHeader, { icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ClipboardList, {}), title: "Almost there", children: [
41498
41525
  "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",
41499
41526
  " ",
41500
41527
  copied ? "it's already copied to your clipboard." : "copy it first."
41501
41528
  ] }),
41502
- /* @__PURE__ */ jsxRuntime.jsxs(chunkMBXQSBG3_cjs.ConsentSection, { title: "Callback URL", children: [
41503
- /* @__PURE__ */ jsxRuntime.jsx(chunkMBXQSBG3_cjs.CopyableUrl, { url: callbackUrl, copied, onCopy: handleCopy }),
41504
- /* @__PURE__ */ jsxRuntime.jsxs(chunkMBXQSBG3_cjs.ConsentText, { variant: "hint", children: [
41529
+ /* @__PURE__ */ jsxRuntime.jsxs(chunkFAKRTCAL_cjs.ConsentSection, { title: "Callback URL", children: [
41530
+ /* @__PURE__ */ jsxRuntime.jsx(chunkFAKRTCAL_cjs.CopyableUrl, { url: callbackUrl, copied, onCopy: handleCopy }),
41531
+ /* @__PURE__ */ jsxRuntime.jsxs(chunkFAKRTCAL_cjs.ConsentText, { variant: "hint", children: [
41505
41532
  "In Claude Code, paste the URL at the prompt that says",
41506
41533
  " ",
41507
41534
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-mono text-foreground", children: '"paste the full redirect URL here"' }),
@@ -41510,17 +41537,17 @@ function ConnectedOAuthConsentPage({
41510
41537
  ] })
41511
41538
  ] }) });
41512
41539
  }
41513
- return /* @__PURE__ */ jsxRuntime.jsx(chunkMBXQSBG3_cjs.ConsentPage, { children: /* @__PURE__ */ jsxRuntime.jsxs(chunkMBXQSBG3_cjs.ConsentCard, { children: [
41514
- /* @__PURE__ */ jsxRuntime.jsxs(chunkMBXQSBG3_cjs.ConsentHeader, { icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Link2, {}), title: `Connect to ${appName}`, children: [
41515
- /* @__PURE__ */ jsxRuntime.jsx(chunkMBXQSBG3_cjs.ConsentStrong, { children: clientInfo?.name ?? params.clientId }),
41540
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkFAKRTCAL_cjs.ConsentPage, { children: /* @__PURE__ */ jsxRuntime.jsxs(chunkFAKRTCAL_cjs.ConsentCard, { children: [
41541
+ /* @__PURE__ */ jsxRuntime.jsxs(chunkFAKRTCAL_cjs.ConsentHeader, { icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Link2, {}), title: `Connect to ${appName}`, children: [
41542
+ /* @__PURE__ */ jsxRuntime.jsx(chunkFAKRTCAL_cjs.ConsentStrong, { children: clientInfo?.name ?? params.clientId }),
41516
41543
  " is requesting access to your ",
41517
41544
  appName,
41518
41545
  " workspace."
41519
41546
  ] }),
41520
- /* @__PURE__ */ jsxRuntime.jsx(chunkMBXQSBG3_cjs.ConsentSection, { title: "This will allow", children: /* @__PURE__ */ jsxRuntime.jsx(chunkMBXQSBG3_cjs.ConsentPermissionList, { items: permissions }) }),
41521
- error && /* @__PURE__ */ jsxRuntime.jsx(chunkMBXQSBG3_cjs.ConsentNotice, { tone: "error", children: error }),
41522
- /* @__PURE__ */ jsxRuntime.jsx(chunkMBXQSBG3_cjs.ConsentActions, { isLoading: loading, onDeny: handleDeny, onAllow: handleAllow }),
41523
- /* @__PURE__ */ jsxRuntime.jsx(chunkMBXQSBG3_cjs.ConsentFootnote, { children: footnote })
41547
+ /* @__PURE__ */ jsxRuntime.jsx(chunkFAKRTCAL_cjs.ConsentSection, { title: "This will allow", children: /* @__PURE__ */ jsxRuntime.jsx(chunkFAKRTCAL_cjs.ConsentPermissionList, { items: permissions }) }),
41548
+ error && /* @__PURE__ */ jsxRuntime.jsx(chunkFAKRTCAL_cjs.ConsentNotice, { tone: "error", children: error }),
41549
+ /* @__PURE__ */ jsxRuntime.jsx(chunkFAKRTCAL_cjs.ConsentActions, { isLoading: loading, onDeny: handleDeny, onAllow: handleAllow }),
41550
+ /* @__PURE__ */ jsxRuntime.jsx(chunkFAKRTCAL_cjs.ConsentFootnote, { children: footnote })
41524
41551
  ] }) });
41525
41552
  }
41526
41553
  function ConnectedSharedFilesPage({
@@ -41642,7 +41669,7 @@ function useMainAreaPanel(panels) {
41642
41669
  }
41643
41670
  function useTogglePanel() {
41644
41671
  const { setFocusedArea } = react.useArbiSessionStore();
41645
- const { windows } = chunkHXWBXYVN_cjs.usePanelHostSupport();
41672
+ const { windows } = chunkCMMFXSTS_cjs.usePanelHostSupport();
41646
41673
  return (panelId, isOpen, setOpen) => {
41647
41674
  if (isOpen && windows.focusPanelWindow(panelId)) {
41648
41675
  setFocusedArea(panelId);
@@ -41676,7 +41703,7 @@ function ConnectedAppShell({
41676
41703
  const session = react.useArbiSessionStore();
41677
41704
  const dockedPanel = react.useArbiSessionState((state) => state.shell.panels.docked);
41678
41705
  const dockSqueezed = chunkFX3K6LNZ_cjs.useMediaQuery(sidebarPolicy?.dockedRailQuery ?? "(max-width: 0px)");
41679
- const sidebar = chunkHXWBXYVN_cjs.useSidebarController({
41706
+ const sidebar = chunkCMMFXSTS_cjs.useSidebarController({
41680
41707
  ...useSessionSidebar(),
41681
41708
  forceRail: !!sidebarPolicy?.dockedRailQuery && dockSqueezed && dockedPanel !== null,
41682
41709
  hoverExpansion: sidebarPolicy?.hoverExpansion
@@ -41706,7 +41733,7 @@ function ConnectedAppShell({
41706
41733
  session.setFocusedArea("main");
41707
41734
  contentProps?.onClick?.(event);
41708
41735
  },
41709
- children: content.mode === "docked" ? /* @__PURE__ */ jsxRuntime.jsxs(chunkHXWBXYVN_cjs.DockZone, { "data-testid": content.testId, children: [
41736
+ children: content.mode === "docked" ? /* @__PURE__ */ jsxRuntime.jsxs(chunkCMMFXSTS_cjs.DockZone, { "data-testid": content.testId, children: [
41710
41737
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: content.mainPanelVisible ? "hidden" : "h-full min-h-0", children: pageContent }),
41711
41738
  /* @__PURE__ */ jsxRuntime.jsx(
41712
41739
  "div",
@@ -41766,7 +41793,7 @@ function ConnectedShellSidebar({
41766
41793
  expanded && /* @__PURE__ */ jsxRuntime.jsx(chunkGFLZHV54_cjs.Sidebar.PinToggle, { isPinned: controller.isPinned, onToggle: controller.togglePin })
41767
41794
  ] }),
41768
41795
  expanded ? ask : /* @__PURE__ */ jsxRuntime.jsx(
41769
- chunkHXWBXYVN_cjs.AskTrigger,
41796
+ chunkCMMFXSTS_cjs.AskTrigger,
41770
41797
  {
41771
41798
  variant: "rail",
41772
41799
  onClick: controller.expand,
@@ -41775,7 +41802,7 @@ function ConnectedShellSidebar({
41775
41802
  )
41776
41803
  ] });
41777
41804
  return /* @__PURE__ */ jsxRuntime.jsx(
41778
- chunkHXWBXYVN_cjs.ShellSidebar,
41805
+ chunkCMMFXSTS_cjs.ShellSidebar,
41779
41806
  {
41780
41807
  controller,
41781
41808
  drawerLogo: logo,
@@ -41827,7 +41854,7 @@ function ConnectedShellTopbar({
41827
41854
  if (landing || !workspace)
41828
41855
  return /* @__PURE__ */ jsxRuntime.jsx(chunkLBRJA4ZJ_cjs.MobileAppBar, { onMenu: sidebar.openDrawer, logo, showMenu: false, actions });
41829
41856
  if (askExpanded)
41830
- return /* @__PURE__ */ jsxRuntime.jsx(chunkHXWBXYVN_cjs.AskRow, { onClose: () => setAskExpanded(false), children: ask({ autoFocus: true, onSubmitted: () => setAskExpanded(false) }) });
41857
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkCMMFXSTS_cjs.AskRow, { onClose: () => setAskExpanded(false), children: ask({ autoFocus: true, onSubmitted: () => setAskExpanded(false) }) });
41831
41858
  return /* @__PURE__ */ jsxRuntime.jsx(
41832
41859
  chunkLBRJA4ZJ_cjs.MobileAppBar,
41833
41860
  {
@@ -41924,7 +41951,7 @@ function ConnectedTipBar({
41924
41951
  className,
41925
41952
  revealOnHover = false
41926
41953
  }) {
41927
- const { showHints, settingsLoaded, setShowHintsPersisted, setShowHints } = chunkSDXK2COQ_cjs.useContextualHints();
41954
+ const { showHints, settingsLoaded, setShowHintsPersisted, setShowHints } = chunkO2ATVRRO_cjs.useContextualHints();
41928
41955
  const { dismissed, dismissTip } = react.useDismissedTips();
41929
41956
  const { notify: notify17 } = chunkUIXY4HKM_cjs.useBlocksEnvironment();
41930
41957
  const { data: workspaces } = react.useWorkspaces();
@@ -41935,7 +41962,7 @@ function ConnectedTipBar({
41935
41962
  workspaceOpen,
41936
41963
  ...state
41937
41964
  };
41938
- const { tip, index, count: count2, previous, next, onHoverChange } = chunkU4ZLFL6M_cjs.useTipsPlacement({
41965
+ const { tip, index, count: count2, previous, next, onHoverChange } = chunkZA3ZELSH_cjs.useTipsPlacement({
41939
41966
  registry,
41940
41967
  context,
41941
41968
  state: situation,
@@ -41968,7 +41995,7 @@ function ConnectedTipBar({
41968
41995
  });
41969
41996
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
41970
41997
  /* @__PURE__ */ jsxRuntime.jsx(
41971
- chunkHXWBXYVN_cjs.TipCard,
41998
+ chunkCMMFXSTS_cjs.TipCard,
41972
41999
  {
41973
42000
  message: tip.message,
41974
42001
  index,
@@ -42013,7 +42040,7 @@ function useGettingStarted({
42013
42040
  const { user } = react.useArbiSession();
42014
42041
  const userExtId = user?.external_id;
42015
42042
  const temporaryOnly = user?.temporary_access_only === true;
42016
- const { showHints, settingsLoaded, setShowHints, setShowHintsPersisted } = chunkSDXK2COQ_cjs.useContextualHints();
42043
+ const { showHints, settingsLoaded, setShowHints, setShowHintsPersisted } = chunkO2ATVRRO_cjs.useContextualHints();
42017
42044
  const { dismissed, loaded: dismissedLoaded, dismissTip } = react.useDismissedTips();
42018
42045
  const welcomeJourneyEnabled = react.useFeature("welcomeJourney");
42019
42046
  const session = react.useArbiSessionStore();
@@ -42247,55 +42274,55 @@ Object.defineProperty(exports, "DEFAULT_DOCUMENT_VIEWER_TABS", {
42247
42274
  });
42248
42275
  Object.defineProperty(exports, "CAP_REACHED_MESSAGE", {
42249
42276
  enumerable: true,
42250
- get: function () { return chunkDDIV3MYQ_cjs.CAP_REACHED_MESSAGE; }
42277
+ get: function () { return chunkBAJNXRI5_cjs.CAP_REACHED_MESSAGE; }
42251
42278
  });
42252
42279
  Object.defineProperty(exports, "ZERO_BUDGET_MESSAGE", {
42253
42280
  enumerable: true,
42254
- get: function () { return chunkDDIV3MYQ_cjs.ZERO_BUDGET_MESSAGE; }
42281
+ get: function () { return chunkBAJNXRI5_cjs.ZERO_BUDGET_MESSAGE; }
42255
42282
  });
42256
42283
  Object.defineProperty(exports, "aiUsageResetTimestamp", {
42257
42284
  enumerable: true,
42258
- get: function () { return chunkDDIV3MYQ_cjs.aiUsageResetTimestamp; }
42285
+ get: function () { return chunkBAJNXRI5_cjs.aiUsageResetTimestamp; }
42259
42286
  });
42260
42287
  Object.defineProperty(exports, "formatMoney", {
42261
42288
  enumerable: true,
42262
- get: function () { return chunkDDIV3MYQ_cjs.formatMoney; }
42289
+ get: function () { return chunkBAJNXRI5_cjs.formatMoney; }
42263
42290
  });
42264
42291
  Object.defineProperty(exports, "formatResetDate", {
42265
42292
  enumerable: true,
42266
- get: function () { return chunkDDIV3MYQ_cjs.formatResetDate; }
42293
+ get: function () { return chunkBAJNXRI5_cjs.formatResetDate; }
42267
42294
  });
42268
42295
  Object.defineProperty(exports, "getQuotaItems", {
42269
42296
  enumerable: true,
42270
- get: function () { return chunkDDIV3MYQ_cjs.getQuotaItems; }
42297
+ get: function () { return chunkBAJNXRI5_cjs.getQuotaItems; }
42271
42298
  });
42272
42299
  Object.defineProperty(exports, "isAddonBudgetZero", {
42273
42300
  enumerable: true,
42274
- get: function () { return chunkDDIV3MYQ_cjs.isAddonBudgetZero; }
42301
+ get: function () { return chunkBAJNXRI5_cjs.isAddonBudgetZero; }
42275
42302
  });
42276
42303
  Object.defineProperty(exports, "isProProject", {
42277
42304
  enumerable: true,
42278
- get: function () { return chunkDDIV3MYQ_cjs.isProProject; }
42305
+ get: function () { return chunkBAJNXRI5_cjs.isProProject; }
42279
42306
  });
42280
42307
  Object.defineProperty(exports, "planBadgeView", {
42281
42308
  enumerable: true,
42282
- get: function () { return chunkDDIV3MYQ_cjs.planBadgeView; }
42309
+ get: function () { return chunkBAJNXRI5_cjs.planBadgeView; }
42283
42310
  });
42284
42311
  Object.defineProperty(exports, "planName", {
42285
42312
  enumerable: true,
42286
- get: function () { return chunkDDIV3MYQ_cjs.planName; }
42313
+ get: function () { return chunkBAJNXRI5_cjs.planName; }
42287
42314
  });
42288
42315
  Object.defineProperty(exports, "projectGroupBilling", {
42289
42316
  enumerable: true,
42290
- get: function () { return chunkDDIV3MYQ_cjs.projectGroupBilling; }
42317
+ get: function () { return chunkBAJNXRI5_cjs.projectGroupBilling; }
42291
42318
  });
42292
42319
  Object.defineProperty(exports, "useBillingSupport", {
42293
42320
  enumerable: true,
42294
- get: function () { return chunkDDIV3MYQ_cjs.useBillingSupport; }
42321
+ get: function () { return chunkBAJNXRI5_cjs.useBillingSupport; }
42295
42322
  });
42296
42323
  Object.defineProperty(exports, "useRewardBalance", {
42297
42324
  enumerable: true,
42298
- get: function () { return chunkDDIV3MYQ_cjs.useRewardBalance; }
42325
+ get: function () { return chunkBAJNXRI5_cjs.useRewardBalance; }
42299
42326
  });
42300
42327
  Object.defineProperty(exports, "ConnectedMailInviteCard", {
42301
42328
  enumerable: true,
@@ -42315,319 +42342,319 @@ Object.defineProperty(exports, "useMemberLookup", {
42315
42342
  });
42316
42343
  Object.defineProperty(exports, "ConnectedAssistantDock", {
42317
42344
  enumerable: true,
42318
- get: function () { return chunkNZQZ2HFU_cjs.ConnectedAssistantDock; }
42345
+ get: function () { return chunk64KZM3RZ_cjs.ConnectedAssistantDock; }
42319
42346
  });
42320
42347
  Object.defineProperty(exports, "redlineStats", {
42321
42348
  enumerable: true,
42322
- get: function () { return chunkNZQZ2HFU_cjs.redlineStats; }
42349
+ get: function () { return chunk64KZM3RZ_cjs.redlineStats; }
42323
42350
  });
42324
42351
  Object.defineProperty(exports, "textToArtifact", {
42325
42352
  enumerable: true,
42326
- get: function () { return chunkNZQZ2HFU_cjs.textToArtifact; }
42353
+ get: function () { return chunk64KZM3RZ_cjs.textToArtifact; }
42327
42354
  });
42328
42355
  Object.defineProperty(exports, "toRedlineMarkdown", {
42329
42356
  enumerable: true,
42330
- get: function () { return chunkNZQZ2HFU_cjs.toRedlineMarkdown; }
42357
+ get: function () { return chunk64KZM3RZ_cjs.toRedlineMarkdown; }
42331
42358
  });
42332
42359
  Object.defineProperty(exports, "useConnectedAiTask", {
42333
42360
  enumerable: true,
42334
- get: function () { return chunkNZQZ2HFU_cjs.useConnectedAiTask; }
42361
+ get: function () { return chunk64KZM3RZ_cjs.useConnectedAiTask; }
42335
42362
  });
42336
42363
  Object.defineProperty(exports, "useConnectedChat", {
42337
42364
  enumerable: true,
42338
- get: function () { return chunkNZQZ2HFU_cjs.useConnectedChat; }
42365
+ get: function () { return chunk64KZM3RZ_cjs.useConnectedChat; }
42339
42366
  });
42340
42367
  Object.defineProperty(exports, "useSemanticSearch", {
42341
42368
  enumerable: true,
42342
- get: function () { return chunkNZQZ2HFU_cjs.useSemanticSearch; }
42369
+ get: function () { return chunk64KZM3RZ_cjs.useSemanticSearch; }
42343
42370
  });
42344
42371
  Object.defineProperty(exports, "useWorkspaceDocs", {
42345
42372
  enumerable: true,
42346
- get: function () { return chunkNZQZ2HFU_cjs.useWorkspaceDocs; }
42373
+ get: function () { return chunk64KZM3RZ_cjs.useWorkspaceDocs; }
42347
42374
  });
42348
42375
  Object.defineProperty(exports, "ConnectedTaskActivityDialog", {
42349
42376
  enumerable: true,
42350
- get: function () { return chunkDCHNB7DF_cjs.ConnectedTaskActivityDialog; }
42377
+ get: function () { return chunkKVKKVSBT_cjs.ConnectedTaskActivityDialog; }
42351
42378
  });
42352
42379
  Object.defineProperty(exports, "ConnectedTaskComposer", {
42353
42380
  enumerable: true,
42354
- get: function () { return chunkDCHNB7DF_cjs.ConnectedTaskComposer; }
42381
+ get: function () { return chunkKVKKVSBT_cjs.ConnectedTaskComposer; }
42355
42382
  });
42356
42383
  Object.defineProperty(exports, "ConnectedThreadTaskBar", {
42357
42384
  enumerable: true,
42358
- get: function () { return chunkDCHNB7DF_cjs.ConnectedThreadTaskBar; }
42385
+ get: function () { return chunkKVKKVSBT_cjs.ConnectedThreadTaskBar; }
42359
42386
  });
42360
42387
  Object.defineProperty(exports, "ConnectedWorkflowHistory", {
42361
42388
  enumerable: true,
42362
- get: function () { return chunkDCHNB7DF_cjs.ConnectedWorkflowHistory; }
42389
+ get: function () { return chunkKVKKVSBT_cjs.ConnectedWorkflowHistory; }
42363
42390
  });
42364
42391
  Object.defineProperty(exports, "ConnectedWorkflowRunPage", {
42365
42392
  enumerable: true,
42366
- get: function () { return chunkDCHNB7DF_cjs.ConnectedWorkflowRunPage; }
42393
+ get: function () { return chunkKVKKVSBT_cjs.ConnectedWorkflowRunPage; }
42367
42394
  });
42368
42395
  Object.defineProperty(exports, "ConnectedWorkflowRunner", {
42369
42396
  enumerable: true,
42370
- get: function () { return chunkDCHNB7DF_cjs.ConnectedWorkflowRunner; }
42397
+ get: function () { return chunkKVKKVSBT_cjs.ConnectedWorkflowRunner; }
42371
42398
  });
42372
42399
  Object.defineProperty(exports, "DEFAULT_CONNECTED_WORKFLOW_RUNNER_LABELS", {
42373
42400
  enumerable: true,
42374
- get: function () { return chunkDCHNB7DF_cjs.DEFAULT_CONNECTED_WORKFLOW_RUNNER_LABELS; }
42401
+ get: function () { return chunkKVKKVSBT_cjs.DEFAULT_CONNECTED_WORKFLOW_RUNNER_LABELS; }
42375
42402
  });
42376
42403
  Object.defineProperty(exports, "DEFAULT_WORKFLOW_RUN_PAGE_LABELS", {
42377
42404
  enumerable: true,
42378
- get: function () { return chunkDCHNB7DF_cjs.DEFAULT_WORKFLOW_RUN_PAGE_LABELS; }
42405
+ get: function () { return chunkKVKKVSBT_cjs.DEFAULT_WORKFLOW_RUN_PAGE_LABELS; }
42379
42406
  });
42380
42407
  Object.defineProperty(exports, "WorkflowRunThread", {
42381
42408
  enumerable: true,
42382
- get: function () { return chunkDCHNB7DF_cjs.WorkflowRunThread; }
42409
+ get: function () { return chunkKVKKVSBT_cjs.WorkflowRunThread; }
42383
42410
  });
42384
42411
  Object.defineProperty(exports, "WorkflowRunWorkspaceChangedError", {
42385
42412
  enumerable: true,
42386
- get: function () { return chunkDCHNB7DF_cjs.WorkflowRunWorkspaceChangedError; }
42413
+ get: function () { return chunkKVKKVSBT_cjs.WorkflowRunWorkspaceChangedError; }
42387
42414
  });
42388
42415
  Object.defineProperty(exports, "buildProjectSummaries", {
42389
42416
  enumerable: true,
42390
- get: function () { return chunkDCHNB7DF_cjs.buildProjectSummaries; }
42417
+ get: function () { return chunkKVKKVSBT_cjs.buildProjectSummaries; }
42391
42418
  });
42392
42419
  Object.defineProperty(exports, "primaryProjectWorkspace", {
42393
42420
  enumerable: true,
42394
- get: function () { return chunkDCHNB7DF_cjs.primaryProjectWorkspace; }
42421
+ get: function () { return chunkKVKKVSBT_cjs.primaryProjectWorkspace; }
42395
42422
  });
42396
42423
  Object.defineProperty(exports, "useEnsureRequiredLabels", {
42397
42424
  enumerable: true,
42398
- get: function () { return chunkDCHNB7DF_cjs.useEnsureRequiredLabels; }
42425
+ get: function () { return chunkKVKKVSBT_cjs.useEnsureRequiredLabels; }
42399
42426
  });
42400
42427
  Object.defineProperty(exports, "useProjectSummaries", {
42401
42428
  enumerable: true,
42402
- get: function () { return chunkDCHNB7DF_cjs.useProjectSummaries; }
42429
+ get: function () { return chunkKVKKVSBT_cjs.useProjectSummaries; }
42403
42430
  });
42404
42431
  Object.defineProperty(exports, "useProjectSummary", {
42405
42432
  enumerable: true,
42406
- get: function () { return chunkDCHNB7DF_cjs.useProjectSummary; }
42433
+ get: function () { return chunkKVKKVSBT_cjs.useProjectSummary; }
42407
42434
  });
42408
42435
  Object.defineProperty(exports, "useRenderTaskPerson", {
42409
42436
  enumerable: true,
42410
- get: function () { return chunkDCHNB7DF_cjs.useRenderTaskPerson; }
42437
+ get: function () { return chunkKVKKVSBT_cjs.useRenderTaskPerson; }
42411
42438
  });
42412
42439
  Object.defineProperty(exports, "useRequiredLabels", {
42413
42440
  enumerable: true,
42414
- get: function () { return chunkDCHNB7DF_cjs.useRequiredLabels; }
42441
+ get: function () { return chunkKVKKVSBT_cjs.useRequiredLabels; }
42415
42442
  });
42416
42443
  Object.defineProperty(exports, "useSkillsEnabled", {
42417
42444
  enumerable: true,
42418
- get: function () { return chunkDCHNB7DF_cjs.useSkillsEnabled; }
42445
+ get: function () { return chunkKVKKVSBT_cjs.useSkillsEnabled; }
42419
42446
  });
42420
42447
  Object.defineProperty(exports, "useTaskPeople", {
42421
42448
  enumerable: true,
42422
- get: function () { return chunkDCHNB7DF_cjs.useTaskPeople; }
42449
+ get: function () { return chunkKVKKVSBT_cjs.useTaskPeople; }
42423
42450
  });
42424
42451
  Object.defineProperty(exports, "useWorkflowDefinitions", {
42425
42452
  enumerable: true,
42426
- get: function () { return chunkDCHNB7DF_cjs.useWorkflowDefinitions; }
42453
+ get: function () { return chunkKVKKVSBT_cjs.useWorkflowDefinitions; }
42427
42454
  });
42428
42455
  Object.defineProperty(exports, "useWorkflowTasks", {
42429
42456
  enumerable: true,
42430
- get: function () { return chunkDCHNB7DF_cjs.useWorkflowTasks; }
42457
+ get: function () { return chunkKVKKVSBT_cjs.useWorkflowTasks; }
42431
42458
  });
42432
42459
  Object.defineProperty(exports, "useWorkflowsPageState", {
42433
42460
  enumerable: true,
42434
- get: function () { return chunkDCHNB7DF_cjs.useWorkflowsPageState; }
42461
+ get: function () { return chunkKVKKVSBT_cjs.useWorkflowsPageState; }
42435
42462
  });
42436
42463
  Object.defineProperty(exports, "workflowRunView", {
42437
42464
  enumerable: true,
42438
- get: function () { return chunkDCHNB7DF_cjs.workflowRunView; }
42465
+ get: function () { return chunkKVKKVSBT_cjs.workflowRunView; }
42439
42466
  });
42440
42467
  Object.defineProperty(exports, "AgentSteps", {
42441
42468
  enumerable: true,
42442
- get: function () { return chunkSDXK2COQ_cjs.AgentSteps; }
42469
+ get: function () { return chunkO2ATVRRO_cjs.AgentSteps; }
42443
42470
  });
42444
42471
  Object.defineProperty(exports, "AnswerTable", {
42445
42472
  enumerable: true,
42446
- get: function () { return chunkSDXK2COQ_cjs.AnswerTable; }
42473
+ get: function () { return chunkO2ATVRRO_cjs.AnswerTable; }
42447
42474
  });
42448
42475
  Object.defineProperty(exports, "ArbiChat", {
42449
42476
  enumerable: true,
42450
- get: function () { return chunkSDXK2COQ_cjs.ArbiChat; }
42477
+ get: function () { return chunkO2ATVRRO_cjs.ArbiChat; }
42451
42478
  });
42452
42479
  Object.defineProperty(exports, "AskAgainContext", {
42453
42480
  enumerable: true,
42454
- get: function () { return chunkSDXK2COQ_cjs.AskAgainContext; }
42481
+ get: function () { return chunkO2ATVRRO_cjs.AskAgainContext; }
42455
42482
  });
42456
42483
  Object.defineProperty(exports, "ConnectedBranchControls", {
42457
42484
  enumerable: true,
42458
- get: function () { return chunkSDXK2COQ_cjs.ConnectedBranchControls; }
42485
+ get: function () { return chunkO2ATVRRO_cjs.ConnectedBranchControls; }
42459
42486
  });
42460
42487
  Object.defineProperty(exports, "ConnectedCitationRenderer", {
42461
42488
  enumerable: true,
42462
- get: function () { return chunkSDXK2COQ_cjs.ConnectedCitationRenderer; }
42489
+ get: function () { return chunkO2ATVRRO_cjs.ConnectedCitationRenderer; }
42463
42490
  });
42464
42491
  Object.defineProperty(exports, "ConnectedCompactConversation", {
42465
42492
  enumerable: true,
42466
- get: function () { return chunkSDXK2COQ_cjs.ConnectedCompactConversation; }
42493
+ get: function () { return chunkO2ATVRRO_cjs.ConnectedCompactConversation; }
42467
42494
  });
42468
42495
  Object.defineProperty(exports, "ConnectedCompactLogin", {
42469
42496
  enumerable: true,
42470
- get: function () { return chunkSDXK2COQ_cjs.ConnectedCompactLogin; }
42497
+ get: function () { return chunkO2ATVRRO_cjs.ConnectedCompactLogin; }
42471
42498
  });
42472
42499
  Object.defineProperty(exports, "ConnectedConversationDocumentPicker", {
42473
42500
  enumerable: true,
42474
- get: function () { return chunkSDXK2COQ_cjs.ConnectedConversationDocumentPicker; }
42501
+ get: function () { return chunkO2ATVRRO_cjs.ConnectedConversationDocumentPicker; }
42475
42502
  });
42476
42503
  Object.defineProperty(exports, "ConnectedDangerZone", {
42477
42504
  enumerable: true,
42478
- get: function () { return chunkSDXK2COQ_cjs.ConnectedDangerZone; }
42505
+ get: function () { return chunkO2ATVRRO_cjs.ConnectedDangerZone; }
42479
42506
  });
42480
42507
  Object.defineProperty(exports, "ConnectedEmbeddedChat", {
42481
42508
  enumerable: true,
42482
- get: function () { return chunkSDXK2COQ_cjs.ConnectedEmbeddedChat; }
42509
+ get: function () { return chunkO2ATVRRO_cjs.ConnectedEmbeddedChat; }
42483
42510
  });
42484
42511
  Object.defineProperty(exports, "ConnectedForgotPassword", {
42485
42512
  enumerable: true,
42486
- get: function () { return chunkSDXK2COQ_cjs.ConnectedForgotPassword; }
42513
+ get: function () { return chunkO2ATVRRO_cjs.ConnectedForgotPassword; }
42487
42514
  });
42488
42515
  Object.defineProperty(exports, "ConnectedIdentityVerification", {
42489
42516
  enumerable: true,
42490
- get: function () { return chunkSDXK2COQ_cjs.ConnectedIdentityVerification; }
42517
+ get: function () { return chunkO2ATVRRO_cjs.ConnectedIdentityVerification; }
42491
42518
  });
42492
42519
  Object.defineProperty(exports, "ConnectedLoginPage", {
42493
42520
  enumerable: true,
42494
- get: function () { return chunkSDXK2COQ_cjs.ConnectedLoginPage; }
42521
+ get: function () { return chunkO2ATVRRO_cjs.ConnectedLoginPage; }
42495
42522
  });
42496
42523
  Object.defineProperty(exports, "ConnectedLogoutDialog", {
42497
42524
  enumerable: true,
42498
- get: function () { return chunkSDXK2COQ_cjs.ConnectedLogoutDialog; }
42525
+ get: function () { return chunkO2ATVRRO_cjs.ConnectedLogoutDialog; }
42499
42526
  });
42500
42527
  Object.defineProperty(exports, "ConnectedMessage", {
42501
42528
  enumerable: true,
42502
- get: function () { return chunkSDXK2COQ_cjs.ConnectedMessage; }
42529
+ get: function () { return chunkO2ATVRRO_cjs.ConnectedMessage; }
42503
42530
  });
42504
42531
  Object.defineProperty(exports, "ConnectedMessageArea", {
42505
42532
  enumerable: true,
42506
- get: function () { return chunkSDXK2COQ_cjs.ConnectedMessageArea; }
42533
+ get: function () { return chunkO2ATVRRO_cjs.ConnectedMessageArea; }
42507
42534
  });
42508
42535
  Object.defineProperty(exports, "ConnectedMessageList", {
42509
42536
  enumerable: true,
42510
- get: function () { return chunkSDXK2COQ_cjs.ConnectedMessageList; }
42537
+ get: function () { return chunkO2ATVRRO_cjs.ConnectedMessageList; }
42511
42538
  });
42512
42539
  Object.defineProperty(exports, "ConnectedModelSelector", {
42513
42540
  enumerable: true,
42514
- get: function () { return chunkSDXK2COQ_cjs.ConnectedModelSelector; }
42541
+ get: function () { return chunkO2ATVRRO_cjs.ConnectedModelSelector; }
42515
42542
  });
42516
42543
  Object.defineProperty(exports, "ConnectedNotificationPreferences", {
42517
42544
  enumerable: true,
42518
- get: function () { return chunkSDXK2COQ_cjs.ConnectedNotificationPreferences; }
42545
+ get: function () { return chunkO2ATVRRO_cjs.ConnectedNotificationPreferences; }
42519
42546
  });
42520
42547
  Object.defineProperty(exports, "ConnectedPasswordChangeDialog", {
42521
42548
  enumerable: true,
42522
- get: function () { return chunkSDXK2COQ_cjs.ConnectedPasswordChangeDialog; }
42549
+ get: function () { return chunkO2ATVRRO_cjs.ConnectedPasswordChangeDialog; }
42523
42550
  });
42524
42551
  Object.defineProperty(exports, "ConnectedProfileCard", {
42525
42552
  enumerable: true,
42526
- get: function () { return chunkSDXK2COQ_cjs.ConnectedProfileCard; }
42553
+ get: function () { return chunkO2ATVRRO_cjs.ConnectedProfileCard; }
42527
42554
  });
42528
42555
  Object.defineProperty(exports, "ConnectedSecuritySection", {
42529
42556
  enumerable: true,
42530
- get: function () { return chunkSDXK2COQ_cjs.ConnectedSecuritySection; }
42557
+ get: function () { return chunkO2ATVRRO_cjs.ConnectedSecuritySection; }
42531
42558
  });
42532
42559
  Object.defineProperty(exports, "ConnectedSessionsRow", {
42533
42560
  enumerable: true,
42534
- get: function () { return chunkSDXK2COQ_cjs.ConnectedSessionsRow; }
42561
+ get: function () { return chunkO2ATVRRO_cjs.ConnectedSessionsRow; }
42535
42562
  });
42536
42563
  Object.defineProperty(exports, "ConnectedThreadsPreview", {
42537
42564
  enumerable: true,
42538
- get: function () { return chunkSDXK2COQ_cjs.ConnectedThreadsPreview; }
42565
+ get: function () { return chunkO2ATVRRO_cjs.ConnectedThreadsPreview; }
42539
42566
  });
42540
42567
  Object.defineProperty(exports, "ConversationComposer", {
42541
42568
  enumerable: true,
42542
- get: function () { return chunkSDXK2COQ_cjs.ConversationComposer; }
42569
+ get: function () { return chunkO2ATVRRO_cjs.ConversationComposer; }
42543
42570
  });
42544
42571
  Object.defineProperty(exports, "EmbeddedChatPanel", {
42545
42572
  enumerable: true,
42546
- get: function () { return chunkSDXK2COQ_cjs.EmbeddedChatPanel; }
42573
+ get: function () { return chunkO2ATVRRO_cjs.EmbeddedChatPanel; }
42547
42574
  });
42548
42575
  Object.defineProperty(exports, "MessageDetailsModal", {
42549
42576
  enumerable: true,
42550
- get: function () { return chunkSDXK2COQ_cjs.MessageDetailsModal; }
42577
+ get: function () { return chunkO2ATVRRO_cjs.MessageDetailsModal; }
42551
42578
  });
42552
42579
  Object.defineProperty(exports, "MessageLiveSeconds", {
42553
42580
  enumerable: true,
42554
- get: function () { return chunkSDXK2COQ_cjs.MessageLiveSeconds; }
42581
+ get: function () { return chunkO2ATVRRO_cjs.MessageLiveSeconds; }
42555
42582
  });
42556
42583
  Object.defineProperty(exports, "PENDING_RECOVERY_KEY", {
42557
42584
  enumerable: true,
42558
- get: function () { return chunkSDXK2COQ_cjs.PENDING_RECOVERY_KEY; }
42585
+ get: function () { return chunkO2ATVRRO_cjs.PENDING_RECOVERY_KEY; }
42559
42586
  });
42560
42587
  Object.defineProperty(exports, "PREMIUM_TIER_TAG", {
42561
42588
  enumerable: true,
42562
- get: function () { return chunkSDXK2COQ_cjs.PREMIUM_TIER_TAG; }
42589
+ get: function () { return chunkO2ATVRRO_cjs.PREMIUM_TIER_TAG; }
42563
42590
  });
42564
42591
  Object.defineProperty(exports, "RunningSubagents", {
42565
42592
  enumerable: true,
42566
- get: function () { return chunkSDXK2COQ_cjs.RunningSubagents; }
42593
+ get: function () { return chunkO2ATVRRO_cjs.RunningSubagents; }
42567
42594
  });
42568
42595
  Object.defineProperty(exports, "STANDARD_TIER_TAG", {
42569
42596
  enumerable: true,
42570
- get: function () { return chunkSDXK2COQ_cjs.STANDARD_TIER_TAG; }
42597
+ get: function () { return chunkO2ATVRRO_cjs.STANDARD_TIER_TAG; }
42571
42598
  });
42572
42599
  Object.defineProperty(exports, "WorkflowStepMessage", {
42573
42600
  enumerable: true,
42574
- get: function () { return chunkSDXK2COQ_cjs.WorkflowStepMessage; }
42601
+ get: function () { return chunkO2ATVRRO_cjs.WorkflowStepMessage; }
42575
42602
  });
42576
42603
  Object.defineProperty(exports, "backUpOnSignup", {
42577
42604
  enumerable: true,
42578
- get: function () { return chunkSDXK2COQ_cjs.backUpOnSignup; }
42605
+ get: function () { return chunkO2ATVRRO_cjs.backUpOnSignup; }
42579
42606
  });
42580
42607
  Object.defineProperty(exports, "defaultHost", {
42581
42608
  enumerable: true,
42582
- get: function () { return chunkSDXK2COQ_cjs.defaultHost; }
42609
+ get: function () { return chunkO2ATVRRO_cjs.defaultHost; }
42583
42610
  });
42584
42611
  Object.defineProperty(exports, "renderConnectedUser", {
42585
42612
  enumerable: true,
42586
- get: function () { return chunkSDXK2COQ_cjs.renderConnectedUser; }
42613
+ get: function () { return chunkO2ATVRRO_cjs.renderConnectedUser; }
42587
42614
  });
42588
42615
  Object.defineProperty(exports, "renderSessionStatusIcon", {
42589
42616
  enumerable: true,
42590
- get: function () { return chunkSDXK2COQ_cjs.renderSessionStatusIcon; }
42617
+ get: function () { return chunkO2ATVRRO_cjs.renderSessionStatusIcon; }
42591
42618
  });
42592
42619
  Object.defineProperty(exports, "resolveSsoName", {
42593
42620
  enumerable: true,
42594
- get: function () { return chunkSDXK2COQ_cjs.resolveSsoName; }
42621
+ get: function () { return chunkO2ATVRRO_cjs.resolveSsoName; }
42595
42622
  });
42596
42623
  Object.defineProperty(exports, "useAuthPages", {
42597
42624
  enumerable: true,
42598
- get: function () { return chunkSDXK2COQ_cjs.useAuthPages; }
42625
+ get: function () { return chunkO2ATVRRO_cjs.useAuthPages; }
42599
42626
  });
42600
42627
  Object.defineProperty(exports, "useContextualHints", {
42601
42628
  enumerable: true,
42602
- get: function () { return chunkSDXK2COQ_cjs.useContextualHints; }
42629
+ get: function () { return chunkO2ATVRRO_cjs.useContextualHints; }
42603
42630
  });
42604
42631
  Object.defineProperty(exports, "useModelPicker", {
42605
42632
  enumerable: true,
42606
- get: function () { return chunkSDXK2COQ_cjs.useModelPicker; }
42633
+ get: function () { return chunkO2ATVRRO_cjs.useModelPicker; }
42607
42634
  });
42608
42635
  Object.defineProperty(exports, "useOpenChunk", {
42609
42636
  enumerable: true,
42610
- get: function () { return chunkSDXK2COQ_cjs.useOpenChunk; }
42637
+ get: function () { return chunkO2ATVRRO_cjs.useOpenChunk; }
42611
42638
  });
42612
42639
  Object.defineProperty(exports, "useOpenWorkspaceIcon", {
42613
42640
  enumerable: true,
42614
- get: function () { return chunkSDXK2COQ_cjs.useOpenWorkspaceIcon; }
42641
+ get: function () { return chunkO2ATVRRO_cjs.useOpenWorkspaceIcon; }
42615
42642
  });
42616
42643
  Object.defineProperty(exports, "useSlashItems", {
42617
42644
  enumerable: true,
42618
- get: function () { return chunkSDXK2COQ_cjs.useSlashItems; }
42645
+ get: function () { return chunkO2ATVRRO_cjs.useSlashItems; }
42619
42646
  });
42620
42647
  Object.defineProperty(exports, "useSsoSignIn", {
42621
42648
  enumerable: true,
42622
- get: function () { return chunkSDXK2COQ_cjs.useSsoSignIn; }
42649
+ get: function () { return chunkO2ATVRRO_cjs.useSsoSignIn; }
42623
42650
  });
42624
42651
  Object.defineProperty(exports, "useWorkspaceDocTitles", {
42625
42652
  enumerable: true,
42626
- get: function () { return chunkSDXK2COQ_cjs.useWorkspaceDocTitles; }
42653
+ get: function () { return chunkO2ATVRRO_cjs.useWorkspaceDocTitles; }
42627
42654
  });
42628
42655
  Object.defineProperty(exports, "useConnectedThreadActivity", {
42629
42656
  enumerable: true,
42630
- get: function () { return chunkXTCNETMI_cjs.useConnectedThreadActivity; }
42657
+ get: function () { return chunkMB2OXZEA_cjs.useConnectedThreadActivity; }
42631
42658
  });
42632
42659
  Object.defineProperty(exports, "DocumentUser", {
42633
42660
  enumerable: true,
@@ -42643,39 +42670,39 @@ Object.defineProperty(exports, "SELECTED_WORKSPACE_KEY", {
42643
42670
  });
42644
42671
  Object.defineProperty(exports, "ConnectedWorkflowDocumentsField", {
42645
42672
  enumerable: true,
42646
- get: function () { return chunk5ZWEUUJN_cjs.ConnectedWorkflowDocumentsField; }
42673
+ get: function () { return chunkZJ3NII4U_cjs.ConnectedWorkflowDocumentsField; }
42647
42674
  });
42648
42675
  Object.defineProperty(exports, "ConnectedWorkflowLauncher", {
42649
42676
  enumerable: true,
42650
- get: function () { return chunk5ZWEUUJN_cjs.ConnectedWorkflowLauncher; }
42677
+ get: function () { return chunkZJ3NII4U_cjs.ConnectedWorkflowLauncher; }
42651
42678
  });
42652
42679
  Object.defineProperty(exports, "ConnectedWorkflowsTable", {
42653
42680
  enumerable: true,
42654
- get: function () { return chunk5ZWEUUJN_cjs.ConnectedWorkflowsTable; }
42681
+ get: function () { return chunkZJ3NII4U_cjs.ConnectedWorkflowsTable; }
42655
42682
  });
42656
42683
  Object.defineProperty(exports, "DEFAULT_CONNECTED_WORKFLOWS_TABLE_LABELS", {
42657
42684
  enumerable: true,
42658
- get: function () { return chunk5ZWEUUJN_cjs.DEFAULT_CONNECTED_WORKFLOWS_TABLE_LABELS; }
42685
+ get: function () { return chunkZJ3NII4U_cjs.DEFAULT_CONNECTED_WORKFLOWS_TABLE_LABELS; }
42659
42686
  });
42660
42687
  Object.defineProperty(exports, "toWorkflowFieldDocument", {
42661
42688
  enumerable: true,
42662
- get: function () { return chunk5ZWEUUJN_cjs.toWorkflowFieldDocument; }
42689
+ get: function () { return chunkZJ3NII4U_cjs.toWorkflowFieldDocument; }
42663
42690
  });
42664
42691
  Object.defineProperty(exports, "useConnectedWorkflowScopeSource", {
42665
42692
  enumerable: true,
42666
- get: function () { return chunk5ZWEUUJN_cjs.useConnectedWorkflowScopeSource; }
42693
+ get: function () { return chunkZJ3NII4U_cjs.useConnectedWorkflowScopeSource; }
42667
42694
  });
42668
42695
  Object.defineProperty(exports, "useConnectedWorkspaceRole", {
42669
42696
  enumerable: true,
42670
- get: function () { return chunk5ZWEUUJN_cjs.useConnectedWorkspaceRole; }
42697
+ get: function () { return chunkZJ3NII4U_cjs.useConnectedWorkspaceRole; }
42671
42698
  });
42672
42699
  Object.defineProperty(exports, "useDocxCommentTarget", {
42673
42700
  enumerable: true,
42674
- get: function () { return chunk5ZWEUUJN_cjs.useDocxCommentTarget; }
42701
+ get: function () { return chunkZJ3NII4U_cjs.useDocxCommentTarget; }
42675
42702
  });
42676
42703
  Object.defineProperty(exports, "useNativeDocxSupport", {
42677
42704
  enumerable: true,
42678
- get: function () { return chunk5ZWEUUJN_cjs.useNativeDocxSupport; }
42705
+ get: function () { return chunkZJ3NII4U_cjs.useNativeDocxSupport; }
42679
42706
  });
42680
42707
  Object.defineProperty(exports, "useOpenWorkflow", {
42681
42708
  enumerable: true,