@arbidocs/blocks 0.5.96 → 0.5.97

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 (147) hide show
  1. package/README.md +8 -1
  2. package/dist/{ConnectedCallDock-D4DG4VDA.cjs → ConnectedCallDock-HI2KMQZ3.cjs} +12 -12
  3. package/dist/{ConnectedCallDock-D4DG4VDA.cjs.map → ConnectedCallDock-HI2KMQZ3.cjs.map} +1 -1
  4. package/dist/{ConnectedCallDock-VVZUSFFK.js → ConnectedCallDock-Y64FTKFF.js} +11 -11
  5. package/dist/{ConnectedCallDock-VVZUSFFK.js.map → ConnectedCallDock-Y64FTKFF.js.map} +1 -1
  6. package/dist/{ConnectedCallRoom-EDHNAJHA.js → ConnectedCallRoom-LEBIJGFT.js} +11 -11
  7. package/dist/{ConnectedCallRoom-EDHNAJHA.js.map → ConnectedCallRoom-LEBIJGFT.js.map} +1 -1
  8. package/dist/{ConnectedCallRoom-VDQD25QW.cjs → ConnectedCallRoom-UXIJJKNG.cjs} +12 -12
  9. package/dist/{ConnectedCallRoom-VDQD25QW.cjs.map → ConnectedCallRoom-UXIJJKNG.cjs.map} +1 -1
  10. package/dist/{ConnectedNativeDocxComparison-IS27M6FV.js → ConnectedNativeDocxComparison-6KL5XI3L.js} +10 -10
  11. package/dist/{ConnectedNativeDocxComparison-IS27M6FV.js.map → ConnectedNativeDocxComparison-6KL5XI3L.js.map} +1 -1
  12. package/dist/{ConnectedNativeDocxComparison-ADQURGHU.cjs → ConnectedNativeDocxComparison-P346QOX5.cjs} +11 -11
  13. package/dist/{ConnectedNativeDocxComparison-ADQURGHU.cjs.map → ConnectedNativeDocxComparison-P346QOX5.cjs.map} +1 -1
  14. package/dist/{ConnectedNativeDocxEditor-7EQ6DE3Q.cjs → ConnectedNativeDocxEditor-7JHSQ6KI.cjs} +11 -11
  15. package/dist/{ConnectedNativeDocxEditor-7EQ6DE3Q.cjs.map → ConnectedNativeDocxEditor-7JHSQ6KI.cjs.map} +1 -1
  16. package/dist/{ConnectedNativeDocxEditor-JYXGX55F.js → ConnectedNativeDocxEditor-ATZ2TG2L.js} +9 -9
  17. package/dist/{ConnectedNativeDocxEditor-JYXGX55F.js.map → ConnectedNativeDocxEditor-ATZ2TG2L.js.map} +1 -1
  18. package/dist/{ConnectedStreamedWordArtifact-IYAQ2L7G.cjs → ConnectedStreamedWordArtifact-5HI3WSAJ.cjs} +11 -11
  19. package/dist/ConnectedStreamedWordArtifact-5HI3WSAJ.cjs.map +1 -0
  20. package/dist/{ConnectedStreamedWordArtifact-KLLG6W5L.js → ConnectedStreamedWordArtifact-FHSGQHXQ.js} +10 -10
  21. package/dist/ConnectedStreamedWordArtifact-FHSGQHXQ.js.map +1 -0
  22. package/dist/{DocumentReviewCard-FEVDNY6U.js → DocumentReviewCard-7UFQGDOG.js} +6 -6
  23. package/dist/{DocumentReviewCard-FEVDNY6U.js.map → DocumentReviewCard-7UFQGDOG.js.map} +1 -1
  24. package/dist/{DocumentReviewCard-3H66FMMO.cjs → DocumentReviewCard-E3HB3K2G.cjs} +6 -6
  25. package/dist/{DocumentReviewCard-3H66FMMO.cjs.map → DocumentReviewCard-E3HB3K2G.cjs.map} +1 -1
  26. package/dist/{FilesViewerDialog-DSK5HMLL.cjs → FilesViewerDialog-3KWTQARB.cjs} +12 -12
  27. package/dist/{FilesViewerDialog-DSK5HMLL.cjs.map → FilesViewerDialog-3KWTQARB.cjs.map} +1 -1
  28. package/dist/{FilesViewerDialog-HL4E57K5.js → FilesViewerDialog-EQKBFAWI.js} +10 -10
  29. package/dist/{FilesViewerDialog-HL4E57K5.js.map → FilesViewerDialog-EQKBFAWI.js.map} +1 -1
  30. package/dist/{WorkspaceTableView-X3KZ7YFI.js → WorkspaceTableView-DYABS53K.js} +6 -6
  31. package/dist/{WorkspaceTableView-X3KZ7YFI.js.map → WorkspaceTableView-DYABS53K.js.map} +1 -1
  32. package/dist/{WorkspaceTableView-5DWNJN6J.cjs → WorkspaceTableView-ZIQ7JWT5.cjs} +8 -8
  33. package/dist/{WorkspaceTableView-5DWNJN6J.cjs.map → WorkspaceTableView-ZIQ7JWT5.cjs.map} +1 -1
  34. package/dist/agents/index.cjs +255 -255
  35. package/dist/agents/index.js +5 -5
  36. package/dist/agents/workflows/WorkflowStepAction.d.ts +9 -2
  37. package/dist/agents/workflows/requiredLabels.d.ts +7 -2
  38. package/dist/calls/index.cjs +2 -2
  39. package/dist/calls/index.js +2 -2
  40. package/dist/{chunk-VSZPY4LK.js → chunk-42IVGYNL.js} +5 -5
  41. package/dist/{chunk-VSZPY4LK.js.map → chunk-42IVGYNL.js.map} +1 -1
  42. package/dist/{chunk-GEUP5IV7.js → chunk-4LTDELP2.js} +3 -3
  43. package/dist/{chunk-GEUP5IV7.js.map → chunk-4LTDELP2.js.map} +1 -1
  44. package/dist/{chunk-HA27RMKD.js → chunk-4RCLA52C.js} +7 -7
  45. package/dist/{chunk-HA27RMKD.js.map → chunk-4RCLA52C.js.map} +1 -1
  46. package/dist/{chunk-6NMLRGUJ.cjs → chunk-6IS3IRUF.cjs} +4 -4
  47. package/dist/{chunk-6NMLRGUJ.cjs.map → chunk-6IS3IRUF.cjs.map} +1 -1
  48. package/dist/{chunk-KQUFEMPP.js → chunk-76O7J6IZ.js} +3 -3
  49. package/dist/{chunk-KQUFEMPP.js.map → chunk-76O7J6IZ.js.map} +1 -1
  50. package/dist/{chunk-5YIUHRTR.cjs → chunk-AINS6VU6.cjs} +4 -4
  51. package/dist/{chunk-5YIUHRTR.cjs.map → chunk-AINS6VU6.cjs.map} +1 -1
  52. package/dist/{chunk-ZA3ZELSH.cjs → chunk-CCALU47C.cjs} +5 -5
  53. package/dist/{chunk-ZA3ZELSH.cjs.map → chunk-CCALU47C.cjs.map} +1 -1
  54. package/dist/{chunk-BAJNXRI5.cjs → chunk-DDIV3MYQ.cjs} +5 -5
  55. package/dist/{chunk-BAJNXRI5.cjs.map → chunk-DDIV3MYQ.cjs.map} +1 -1
  56. package/dist/{chunk-ZJ3NII4U.cjs → chunk-ECCV4YOL.cjs} +9 -9
  57. package/dist/{chunk-ZJ3NII4U.cjs.map → chunk-ECCV4YOL.cjs.map} +1 -1
  58. package/dist/{chunk-S2CKH2LH.js → chunk-FNGFSHVE.js} +3 -3
  59. package/dist/{chunk-S2CKH2LH.js.map → chunk-FNGFSHVE.js.map} +1 -1
  60. package/dist/{chunk-CMMFXSTS.cjs → chunk-HXWBXYVN.cjs} +3 -3
  61. package/dist/{chunk-CMMFXSTS.cjs.map → chunk-HXWBXYVN.cjs.map} +1 -1
  62. package/dist/{chunk-NRE7ZR6M.js → chunk-ITK7GW7B.js} +3 -3
  63. package/dist/{chunk-NRE7ZR6M.js.map → chunk-ITK7GW7B.js.map} +1 -1
  64. package/dist/{chunk-FAKRTCAL.cjs → chunk-J4CXF4A7.cjs} +172 -14
  65. package/dist/chunk-J4CXF4A7.cjs.map +1 -0
  66. package/dist/{chunk-AS3HX7LL.js → chunk-K6UKLIRR.js} +3 -3
  67. package/dist/{chunk-AS3HX7LL.js.map → chunk-K6UKLIRR.js.map} +1 -1
  68. package/dist/{chunk-RMJNCYPD.js → chunk-KJLHFS7T.js} +3 -3
  69. package/dist/{chunk-RMJNCYPD.js.map → chunk-KJLHFS7T.js.map} +1 -1
  70. package/dist/{chunk-4DRLOAVD.js → chunk-LZI4EGOW.js} +209 -56
  71. package/dist/chunk-LZI4EGOW.js.map +1 -0
  72. package/dist/{chunk-6OXR4R6J.cjs → chunk-MMSHLHTA.cjs} +3 -3
  73. package/dist/{chunk-6OXR4R6J.cjs.map → chunk-MMSHLHTA.cjs.map} +1 -1
  74. package/dist/{chunk-VEK64VEE.js → chunk-N77UYRV7.js} +3 -3
  75. package/dist/{chunk-VEK64VEE.js.map → chunk-N77UYRV7.js.map} +1 -1
  76. package/dist/{chunk-64KZM3RZ.cjs → chunk-NZQZ2HFU.cjs} +3 -3
  77. package/dist/{chunk-64KZM3RZ.cjs.map → chunk-NZQZ2HFU.cjs.map} +1 -1
  78. package/dist/{chunk-7XVQATK2.cjs → chunk-OXHAUVK2.cjs} +3 -3
  79. package/dist/{chunk-7XVQATK2.cjs.map → chunk-OXHAUVK2.cjs.map} +1 -1
  80. package/dist/{chunk-YIKE2IY4.js → chunk-QSBPOYWA.js} +3 -3
  81. package/dist/{chunk-YIKE2IY4.js.map → chunk-QSBPOYWA.js.map} +1 -1
  82. package/dist/{chunk-NCGJKKGR.js → chunk-RQW2CFOQ.js} +9 -9
  83. package/dist/{chunk-NCGJKKGR.js.map → chunk-RQW2CFOQ.js.map} +1 -1
  84. package/dist/{chunk-DCNBNLWC.js → chunk-RZG4ALKZ.js} +4 -4
  85. package/dist/{chunk-DCNBNLWC.js.map → chunk-RZG4ALKZ.js.map} +1 -1
  86. package/dist/{chunk-O2ATVRRO.cjs → chunk-SDXK2COQ.cjs} +27 -27
  87. package/dist/{chunk-O2ATVRRO.cjs.map → chunk-SDXK2COQ.cjs.map} +1 -1
  88. package/dist/{chunk-CVYFX7AD.js → chunk-SEBNGA3F.js} +31 -15
  89. package/dist/chunk-SEBNGA3F.js.map +1 -0
  90. package/dist/{chunk-ZBQTFA5X.cjs → chunk-SYWJNSPS.cjs} +4 -4
  91. package/dist/{chunk-ZBQTFA5X.cjs.map → chunk-SYWJNSPS.cjs.map} +1 -1
  92. package/dist/{chunk-2JXJE7Y4.js → chunk-T7LLYVOW.js} +168 -10
  93. package/dist/chunk-T7LLYVOW.js.map +1 -0
  94. package/dist/{chunk-TANZTMPL.cjs → chunk-V2CNHRLZ.cjs} +4 -4
  95. package/dist/{chunk-TANZTMPL.cjs.map → chunk-V2CNHRLZ.cjs.map} +1 -1
  96. package/dist/{chunk-IMFE6FKN.cjs → chunk-WN7XPEYK.cjs} +7 -7
  97. package/dist/{chunk-IMFE6FKN.cjs.map → chunk-WN7XPEYK.cjs.map} +1 -1
  98. package/dist/{chunk-KVKKVSBT.cjs → chunk-XM4KRGCK.cjs} +252 -99
  99. package/dist/chunk-XM4KRGCK.cjs.map +1 -0
  100. package/dist/{chunk-MB2OXZEA.cjs → chunk-XTCNETMI.cjs} +4 -4
  101. package/dist/{chunk-MB2OXZEA.cjs.map → chunk-XTCNETMI.cjs.map} +1 -1
  102. package/dist/{chunk-4HMJQ66B.js → chunk-Y7UHKEVT.js} +4 -4
  103. package/dist/{chunk-4HMJQ66B.js.map → chunk-Y7UHKEVT.js.map} +1 -1
  104. package/dist/{chunk-CIXA5A65.cjs → chunk-YZ6YOOTF.cjs} +30 -14
  105. package/dist/chunk-YZ6YOOTF.cjs.map +1 -0
  106. package/dist/{chunk-QJVDQAYQ.js → chunk-Z4IPTLRS.js} +3 -3
  107. package/dist/{chunk-QJVDQAYQ.js.map → chunk-Z4IPTLRS.js.map} +1 -1
  108. package/dist/collaboration/index.cjs +1 -1
  109. package/dist/collaboration/index.js +1 -1
  110. package/dist/connect/docx.cjs +14 -14
  111. package/dist/connect/docx.js +10 -10
  112. package/dist/connect/index.cjs +680 -677
  113. package/dist/connect/index.cjs.map +1 -1
  114. package/dist/connect/index.js +43 -40
  115. package/dist/connect/index.js.map +1 -1
  116. package/dist/connect/viewer.cjs +9 -9
  117. package/dist/connect/viewer.js +8 -8
  118. package/dist/connection/workflows/ConnectedWorkflowRunPage.d.ts +4 -3
  119. package/dist/connection/workflows/WorkflowRunPage.d.ts +18 -15
  120. package/dist/connection/workflows/index.d.ts +2 -1
  121. package/dist/connection/workflows/runProject.d.ts +47 -0
  122. package/dist/dashboards/index.cjs +1 -1
  123. package/dist/dashboards/index.js +1 -1
  124. package/dist/embed/index.cjs +19 -19
  125. package/dist/embed/index.js +13 -13
  126. package/dist/index.cjs +383 -383
  127. package/dist/index.js +12 -12
  128. package/dist/settings/index.cjs +151 -151
  129. package/dist/settings/index.js +2 -2
  130. package/dist/shell/index.cjs +33 -33
  131. package/dist/shell/index.js +3 -3
  132. package/dist/studio/index.cjs +5 -5
  133. package/dist/studio/index.js +4 -4
  134. package/dist/workflow-canvas/index.cjs +32 -32
  135. package/dist/workflow-canvas/index.js +17 -17
  136. package/dist/workspaces/index.cjs +8 -8
  137. package/dist/workspaces/index.js +1 -1
  138. package/node_modules/@arbidocs/coedit/package.json +1 -1
  139. package/package.json +5 -5
  140. package/dist/ConnectedStreamedWordArtifact-IYAQ2L7G.cjs.map +0 -1
  141. package/dist/ConnectedStreamedWordArtifact-KLLG6W5L.js.map +0 -1
  142. package/dist/chunk-2JXJE7Y4.js.map +0 -1
  143. package/dist/chunk-4DRLOAVD.js.map +0 -1
  144. package/dist/chunk-CIXA5A65.cjs.map +0 -1
  145. package/dist/chunk-CVYFX7AD.js.map +0 -1
  146. package/dist/chunk-FAKRTCAL.cjs.map +0 -1
  147. package/dist/chunk-KVKKVSBT.cjs.map +0 -1
@@ -2,17 +2,17 @@
2
2
  'use strict';
3
3
 
4
4
  var chunk3532KA6K_cjs = require('../chunk-3532KA6K.cjs');
5
- var chunkBAJNXRI5_cjs = require('../chunk-BAJNXRI5.cjs');
5
+ var chunkDDIV3MYQ_cjs = require('../chunk-DDIV3MYQ.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 chunk64KZM3RZ_cjs = require('../chunk-64KZM3RZ.cjs');
9
+ var chunkNZQZ2HFU_cjs = require('../chunk-NZQZ2HFU.cjs');
10
+ var chunkXM4KRGCK_cjs = require('../chunk-XM4KRGCK.cjs');
10
11
  var chunkC5CWKZ5D_cjs = require('../chunk-C5CWKZ5D.cjs');
11
- var chunkKVKKVSBT_cjs = require('../chunk-KVKKVSBT.cjs');
12
- var chunkCIXA5A65_cjs = require('../chunk-CIXA5A65.cjs');
12
+ var chunkYZ6YOOTF_cjs = require('../chunk-YZ6YOOTF.cjs');
13
13
  var chunkKWJW5TMH_cjs = require('../chunk-KWJW5TMH.cjs');
14
- var chunkO2ATVRRO_cjs = require('../chunk-O2ATVRRO.cjs');
15
- var chunkMB2OXZEA_cjs = require('../chunk-MB2OXZEA.cjs');
14
+ var chunkSDXK2COQ_cjs = require('../chunk-SDXK2COQ.cjs');
15
+ var chunkXTCNETMI_cjs = require('../chunk-XTCNETMI.cjs');
16
16
  var chunkTZHLO7HF_cjs = require('../chunk-TZHLO7HF.cjs');
17
17
  var chunkHDPT7D6F_cjs = require('../chunk-HDPT7D6F.cjs');
18
18
  var chunkTJY7XPDE_cjs = require('../chunk-TJY7XPDE.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 chunkZJ3NII4U_cjs = require('../chunk-ZJ3NII4U.cjs');
25
+ var chunkECCV4YOL_cjs = require('../chunk-ECCV4YOL.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 chunk6OXR4R6J_cjs = require('../chunk-6OXR4R6J.cjs');
35
+ var chunkMMSHLHTA_cjs = require('../chunk-MMSHLHTA.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 chunkZA3ZELSH_cjs = require('../chunk-ZA3ZELSH.cjs');
46
+ var chunkCCALU47C_cjs = require('../chunk-CCALU47C.cjs');
47
47
  var chunkYSCDHY53_cjs = require('../chunk-YSCDHY53.cjs');
48
48
  require('../chunk-NEGFHF3V.cjs');
49
- var chunkI6GEQWIV_cjs = require('../chunk-I6GEQWIV.cjs');
50
49
  var chunkZ3LFF3YT_cjs = require('../chunk-Z3LFF3YT.cjs');
50
+ var chunkI6GEQWIV_cjs = require('../chunk-I6GEQWIV.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 chunkCMMFXSTS_cjs = require('../chunk-CMMFXSTS.cjs');
60
+ var chunkHXWBXYVN_cjs = require('../chunk-HXWBXYVN.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 chunkFAKRTCAL_cjs = require('../chunk-FAKRTCAL.cjs');
76
+ var chunkJ4CXF4A7_cjs = require('../chunk-J4CXF4A7.cjs');
77
77
  var chunkKNC77LZZ_cjs = require('../chunk-KNC77LZZ.cjs');
78
78
  require('../chunk-I4IS6ST6.cjs');
79
79
  require('../chunk-EVZH6Z5O.cjs');
80
- var chunkZBQTFA5X_cjs = require('../chunk-ZBQTFA5X.cjs');
80
+ var chunkSYWJNSPS_cjs = require('../chunk-SYWJNSPS.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');
@@ -96,6 +96,19 @@ var chunkM74FWYNL_cjs = require('../chunk-M74FWYNL.cjs');
96
96
  var chunkI6SPGHFY_cjs = require('../chunk-I6SPGHFY.cjs');
97
97
  var chunkQUMUAJ2P_cjs = require('../chunk-QUMUAJ2P.cjs');
98
98
  var chunkVZOOGA47_cjs = require('../chunk-VZOOGA47.cjs');
99
+ var chunk4ZM3J3SL_cjs = require('../chunk-4ZM3J3SL.cjs');
100
+ require('../chunk-OAIOOVFN.cjs');
101
+ var chunkIOCEKN44_cjs = require('../chunk-IOCEKN44.cjs');
102
+ require('../chunk-F5T4W2R2.cjs');
103
+ var chunk5HEMXXHR_cjs = require('../chunk-5HEMXXHR.cjs');
104
+ var chunkBFKTZUFT_cjs = require('../chunk-BFKTZUFT.cjs');
105
+ var chunkWV65MJ43_cjs = require('../chunk-WV65MJ43.cjs');
106
+ var chunkTMX7YFVM_cjs = require('../chunk-TMX7YFVM.cjs');
107
+ var chunkMOIZ2R5X_cjs = require('../chunk-MOIZ2R5X.cjs');
108
+ var chunkLUO46ELJ_cjs = require('../chunk-LUO46ELJ.cjs');
109
+ var chunkSJSGSHIT_cjs = require('../chunk-SJSGSHIT.cjs');
110
+ var chunkZW6FPIFC_cjs = require('../chunk-ZW6FPIFC.cjs');
111
+ require('../chunk-ZT5MIFLC.cjs');
99
112
  var chunk32YCMXT2_cjs = require('../chunk-32YCMXT2.cjs');
100
113
  require('../chunk-RT3M5WOS.cjs');
101
114
  require('../chunk-7CSEMMDJ.cjs');
@@ -116,19 +129,6 @@ var chunk5GQOIQCB_cjs = require('../chunk-5GQOIQCB.cjs');
116
129
  require('../chunk-UDSHVNU3.cjs');
117
130
  var chunkIPSHAMO2_cjs = require('../chunk-IPSHAMO2.cjs');
118
131
  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
- chunkZA3ZELSH_cjs.WorkspaceActivityList,
247
+ chunkCCALU47C_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(chunk6OXR4R6J_cjs.DraggableHeader, { children: /* @__PURE__ */ jsxRuntime.jsx(
1127
+ /* @__PURE__ */ jsxRuntime.jsx(chunkMMSHLHTA_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
- chunkCMMFXSTS_cjs.OfflinePill,
1451
+ chunkHXWBXYVN_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(() => chunkFAKRTCAL_cjs.importSkillFile(file));
1569
+ if (file) void add(() => chunkJ4CXF4A7_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(() => chunkFAKRTCAL_cjs.importSkillFromUrl(url));
1594
+ if (url.trim()) void add(() => chunkJ4CXF4A7_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(() => chunkFAKRTCAL_cjs.buildLibrarySkills(builtins, listings ?? []), [builtins, listings]);
1657
+ const all = react$1.useMemo(() => chunkJ4CXF4A7_cjs.buildLibrarySkills(builtins, listings ?? []), [builtins, listings]);
1658
1658
  const shown = react$1.useMemo(
1659
- () => chunkFAKRTCAL_cjs.filterLibrarySkills(all, { query, source, type }),
1659
+ () => chunkJ4CXF4A7_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: 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") }
1670
+ { id: "builtin", label: chunkJ4CXF4A7_cjs.SKILL_SOURCE_LABELS.builtin, count: count2("builtin") },
1671
+ { id: "mine", label: chunkJ4CXF4A7_cjs.SKILL_SOURCE_LABELS.mine, count: count2("mine") },
1672
+ { id: "shared", label: chunkJ4CXF4A7_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: chunkFAKRTCAL_cjs.SKILL_TYPE_LABELS[t] ?? t }))
1677
+ ...types.map((t) => ({ id: t, label: chunkJ4CXF4A7_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 chunkFAKRTCAL_cjs.workflowToSkillMarkdown(skill.workflow);
1684
+ if (!skill.docExtId) return chunkJ4CXF4A7_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
- chunkFAKRTCAL_cjs.SKILL_MAIN_FILENAME
1748
+ chunkJ4CXF4A7_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(chunkFAKRTCAL_cjs.SkillViewToggle, { value: view, onChange: setView })
1789
+ /* @__PURE__ */ jsxRuntime.jsx(chunkJ4CXF4A7_cjs.SkillViewToggle, { value: view, onChange: setView })
1790
1790
  ] }),
1791
1791
  /* @__PURE__ */ jsxRuntime.jsx(
1792
- chunkFAKRTCAL_cjs.SkillFilterChips,
1792
+ chunkJ4CXF4A7_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
- chunkFAKRTCAL_cjs.SkillFilterChips,
1801
+ chunkJ4CXF4A7_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
- chunkFAKRTCAL_cjs.SkillTile,
1848
+ chunkJ4CXF4A7_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 ? `${chunkFAKRTCAL_cjs.SKILL_SOURCE_LABELS.mine}, shared` : chunkFAKRTCAL_cjs.SKILL_SOURCE_LABELS[skill.source],
1853
+ sourceLabel: skill.isShared ? `${chunkJ4CXF4A7_cjs.SKILL_SOURCE_LABELS.mine}, shared` : chunkJ4CXF4A7_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
- chunkFAKRTCAL_cjs.SkillGenerateForm,
1888
+ chunkJ4CXF4A7_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
- chunkFAKRTCAL_cjs.SkillLibraryDetail,
1915
+ chunkJ4CXF4A7_cjs.SkillLibraryDetail,
1916
1916
  {
1917
1917
  skill: current,
1918
1918
  icon,
1919
- instructions: current.docExtId ? currentText ? chunkFAKRTCAL_cjs.parseSkillFrontmatter(currentText, chunkFAKRTCAL_cjs.SKILL_MAIN_FILENAME).content : "" : current.workflow.run.kind === "prompt" ? current.workflow.run.promptTemplate : "",
1919
+ instructions: current.docExtId ? currentText ? chunkJ4CXF4A7_cjs.parseSkillFrontmatter(currentText, chunkJ4CXF4A7_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 = chunkFAKRTCAL_cjs.parseSkillFrontmatter(text2, chunkFAKRTCAL_cjs.SKILL_MAIN_FILENAME);
1954
+ const parsed = chunkJ4CXF4A7_cjs.parseSkillFrontmatter(text2, chunkJ4CXF4A7_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 = chunkFAKRTCAL_cjs.skillSlug(name);
1968
+ const slug = chunkJ4CXF4A7_cjs.skillSlug(name);
1969
1969
  try {
1970
- await onSave(slug, chunkFAKRTCAL_cjs.serializeSkill({ name: slug, description, body }), isEditing);
1970
+ await onSave(slug, chunkJ4CXF4A7_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
- chunkFAKRTCAL_cjs.SkillEditForm,
1976
+ chunkJ4CXF4A7_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 = chunkFAKRTCAL_cjs.BUILTIN_SKILLS,
2015
+ builtins = chunkJ4CXF4A7_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
- chunkKVKKVSBT_cjs.ConnectedTaskComposer,
2068
+ chunkXM4KRGCK_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 = chunkFAKRTCAL_cjs.DEFAULT_AGENT_CAPABILITIES,
2093
- templates = chunkFAKRTCAL_cjs.DEFAULT_AGENT_TEMPLATES,
2094
- types = chunkFAKRTCAL_cjs.DEFAULT_AGENT_TYPES,
2092
+ capabilities = chunkJ4CXF4A7_cjs.DEFAULT_AGENT_CAPABILITIES,
2093
+ templates = chunkJ4CXF4A7_cjs.DEFAULT_AGENT_TEMPLATES,
2094
+ types = chunkJ4CXF4A7_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 ? chunkFAKRTCAL_cjs.stripPersonaPreamble(String(agents.PERSONA ?? "")) : "",
2136
+ persona: isEdit ? chunkJ4CXF4A7_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 (!chunkFAKRTCAL_cjs.isValidAgentName(values.name)) {
2155
+ if (!chunkJ4CXF4A7_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: chunkFAKRTCAL_cjs.composePersona(name, values.persona),
2191
+ PERSONA: chunkJ4CXF4A7_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
- chunkFAKRTCAL_cjs.AgentCreator,
2214
+ chunkJ4CXF4A7_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
- chunkFAKRTCAL_cjs.AgentAvatarField,
2230
+ chunkJ4CXF4A7_cjs.AgentAvatarField,
2231
2231
  {
2232
2232
  picture,
2233
2233
  isBusy: avatarBusy,
2234
- canGenerate: isEdit || chunkFAKRTCAL_cjs.isValidAgentName(values.name),
2234
+ canGenerate: isEdit || chunkJ4CXF4A7_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(chunkFAKRTCAL_cjs.AgentConnectInstructions, { email: connect.email, signingKey: connect.signingKey })
2286
+ connect && /* @__PURE__ */ jsxRuntime.jsx(chunkJ4CXF4A7_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 = chunkKVKKVSBT_cjs.useTaskPeople();
2678
+ const people = chunkXM4KRGCK_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
- chunkFAKRTCAL_cjs.TaskTable,
2704
+ chunkJ4CXF4A7_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
- chunkKVKKVSBT_cjs.ConnectedTaskActivityDialog,
2731
+ chunkXM4KRGCK_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 = chunkKVKKVSBT_cjs.useWorkflowTasks();
2747
+ const workflowTasks = chunkXM4KRGCK_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 = chunkFAKRTCAL_cjs.defaultTaskComposerValues(launchable, {
2770
+ const values = chunkJ4CXF4A7_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
- chunkZJ3NII4U_cjs.ConnectedWorkflowLauncher,
2791
+ chunkECCV4YOL_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
- chunkKVKKVSBT_cjs.ConnectedTaskComposer,
2890
+ chunkXM4KRGCK_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(() => chunkFAKRTCAL_cjs.groupAgentTasks(tasks), [tasks]);
2912
+ const tasksByAgent = react$1.useMemo(() => chunkJ4CXF4A7_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
- chunkFAKRTCAL_cjs.AgentGallery,
2927
+ chunkJ4CXF4A7_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] ? chunkFAKRTCAL_cjs.goalProgress(agentTasks[0]) : null;
2937
+ const progress = agentTasks[0] ? chunkJ4CXF4A7_cjs.goalProgress(agentTasks[0]) : null;
2938
2938
  return /* @__PURE__ */ jsxRuntime.jsx(
2939
- chunkFAKRTCAL_cjs.AgentCard,
2939
+ chunkJ4CXF4A7_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
- chunkZJ3NII4U_cjs.ConnectedWorkflowsTable,
3047
+ chunkECCV4YOL_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(chunk6OXR4R6J_cjs.DraggableHeader, { children: /* @__PURE__ */ jsxRuntime.jsx(
3109
+ /* @__PURE__ */ jsxRuntime.jsx(chunkMMSHLHTA_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
- chunk6OXR4R6J_cjs.applyInvertedIndexFilter(
3221
+ chunkMMSHLHTA_cjs.applyInvertedIndexFilter(
3222
3222
  [...list],
3223
3223
  combination,
3224
- chunk6OXR4R6J_cjs.buildInvertedIndex(
3224
+ chunkMMSHLHTA_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 = chunkZA3ZELSH_cjs.tagTableDocx(data, {
3351
+ const bytes = chunkCCALU47C_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
- chunkZA3ZELSH_cjs.TagTable,
3360
+ chunkCCALU47C_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 = 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));
3730
+ const entries = chunkCCALU47C_cjs.glossaryEntries(sources, { labelId: narrowed?.id });
3731
+ const blob = format === "docx" ? new Blob([chunkCCALU47C_cjs.glossaryDocx(entries, { title })], { type: chunkJIOHDVWH_cjs.DOCX_MIME_TYPE }) : new Blob([chunkCCALU47C_cjs.glossaryMarkdown(entries, { title })], { type: "text/markdown" });
3732
+ documentTools.downloadBlob(blob, chunkCCALU47C_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
- chunk6OXR4R6J_cjs.FilterChip,
4196
+ chunkMMSHLHTA_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: chunkZA3ZELSH_cjs.tagKindDescription(kind),
4261
+ description: chunkCCALU47C_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
- chunkZA3ZELSH_cjs.entitiesPhrase().toLowerCase(),
4271
+ chunkCCALU47C_cjs.entitiesPhrase().toLowerCase(),
4272
4272
  " from ",
4273
- chunkZA3ZELSH_cjs.documentCount(extractingCount),
4273
+ chunkCCALU47C_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: chunkZA3ZELSH_cjs.tagTableLabels(kind),
4291
+ labels: chunkCCALU47C_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: chunkZA3ZELSH_cjs.tagTableLabels(tag.kind),
4399
+ labels: chunkCCALU47C_cjs.tagTableLabels(tag.kind),
4400
4400
  testId: "tags-rows"
4401
4401
  }
4402
4402
  ),
4403
4403
  /* @__PURE__ */ jsxRuntime.jsx(
4404
- chunkZA3ZELSH_cjs.TagDetail,
4404
+ chunkCCALU47C_cjs.TagDetail,
4405
4405
  {
4406
4406
  onOpenTaggedItems: ctx.onOpenTaggedItems,
4407
- fieldLabels: chunkZA3ZELSH_cjs.tagTableLabels(tag.kind),
4407
+ fieldLabels: chunkCCALU47C_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: chunkZA3ZELSH_cjs.tagDetailLabels(),
4415
+ labels: chunkCCALU47C_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 = chunkZA3ZELSH_cjs.tagsPageNouns();
4490
+ const n2 = chunkCCALU47C_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 ${chunkZA3ZELSH_cjs.entitiesPhrase().toLowerCase()} from ${chunkZA3ZELSH_cjs.documentCount(docIds.length)}. You will be notified when it is done.`,
4511
+ `Extracting ${chunkCCALU47C_cjs.entitiesPhrase().toLowerCase()} from ${chunkCCALU47C_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 ${chunkZA3ZELSH_cjs.entitiesPhrase().toLowerCase()}`), "error");
4515
+ notify17(browser.refusalReason(error, `Could not extract ${chunkCCALU47C_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 = chunkZA3ZELSH_cjs.tagsPageNouns();
4529
+ const n = chunkCCALU47C_cjs.tagsPageNouns();
4530
4530
  const action = view === "person" || view === "organisation" ? {
4531
4531
  label: "Extract",
4532
- title: `Extract ${chunkZA3ZELSH_cjs.entitiesPhrase().toLowerCase()} from ${n.documents.toLowerCase()}`,
4532
+ title: `Extract ${chunkCCALU47C_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
- chunkZA3ZELSH_cjs.ExtractEntitiesDialog,
4701
+ chunkCCALU47C_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 } = chunkCMMFXSTS_cjs.usePanelHostSupport();
4885
+ const { popoutTitle } = chunkHXWBXYVN_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
- chunkCMMFXSTS_cjs.PanelModeSwitcher,
4918
+ chunkHXWBXYVN_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
- chunk6OXR4R6J_cjs.FloatingPanel,
4928
+ chunkMMSHLHTA_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
- chunkCMMFXSTS_cjs.PanelPortal,
4940
+ chunkHXWBXYVN_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(chunk6OXR4R6J_cjs.DraggableHeader, { children: [
6061
+ /* @__PURE__ */ jsxRuntime.jsxs(chunkMMSHLHTA_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
  ] }),
@@ -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
- () => chunk6OXR4R6J_cjs.applyInvertedIndexFilter(
6961
+ () => chunkMMSHLHTA_cjs.applyInvertedIndexFilter(
6962
6962
  notes,
6963
6963
  factFilters,
6964
- chunk6OXR4R6J_cjs.buildInvertedIndex(
6964
+ chunkMMSHLHTA_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)
@@ -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
- chunkZA3ZELSH_cjs.GridRowNavigator,
7821
+ chunkCCALU47C_cjs.GridRowNavigator,
7822
7822
  {
7823
7823
  gridApi,
7824
7824
  selectedId: editingId,
@@ -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 = chunkO2ATVRRO_cjs.useAuthPages();
8098
+ const auth = chunkSDXK2COQ_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 = chunk6OXR4R6J_cjs.serverConnectionView(status, runtimeConfig.deploymentDomain || "server");
8243
+ const view = chunkMMSHLHTA_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
- chunk6OXR4R6J_cjs.ServerConnectionButton,
8253
+ chunkMMSHLHTA_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(chunkO2ATVRRO_cjs.ConnectedProfileCard, { avatarClassName, nameBadge: profileBadge }),
8276
+ /* @__PURE__ */ jsxRuntime.jsx(chunkSDXK2COQ_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(chunkO2ATVRRO_cjs.ConnectedSecuritySection, { children: securityRows }),
8280
+ /* @__PURE__ */ jsxRuntime.jsx(chunkSDXK2COQ_cjs.ConnectedSecuritySection, { children: securityRows }),
8281
8281
  moreSettings,
8282
8282
  /* @__PURE__ */ jsxRuntime.jsx(
8283
- chunkO2ATVRRO_cjs.ConnectedIdentityVerification,
8283
+ chunkSDXK2COQ_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(chunkO2ATVRRO_cjs.ConnectedSessionsRow, { renderSessionIcon }),
8293
+ /* @__PURE__ */ jsxRuntime.jsx(chunkSDXK2COQ_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(chunkO2ATVRRO_cjs.ConnectedDangerZone, { renderSubscriptionLink }),
8310
+ /* @__PURE__ */ jsxRuntime.jsx(chunkSDXK2COQ_cjs.ConnectedDangerZone, { renderSubscriptionLink }),
8311
8311
  !onLogout && /* @__PURE__ */ jsxRuntime.jsx(
8312
- chunkO2ATVRRO_cjs.ConnectedLogoutDialog,
8312
+ chunkSDXK2COQ_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(chunkO2ATVRRO_cjs.ConnectedNotificationPreferences, {})
8620
+ /* @__PURE__ */ jsxRuntime.jsx(chunkSDXK2COQ_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
- chunk6OXR4R6J_cjs.ModelProviderLabel,
8661
+ chunkMMSHLHTA_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
- chunk6OXR4R6J_cjs.ModelProviderLabel,
8667
+ chunkMMSHLHTA_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
- chunk6OXR4R6J_cjs.PremiumModelsFrame,
8744
+ chunkMMSHLHTA_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(chunk6OXR4R6J_cjs.ConnectionsLoading, { message: "Loading connected apps\u2026" });
9072
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkMMSHLHTA_cjs.ConnectionsLoading, { message: "Loading connected apps\u2026" });
9073
9073
  }
9074
9074
  if (catalogError) {
9075
- return /* @__PURE__ */ jsxRuntime.jsx(chunk6OXR4R6J_cjs.ConnectionsError, { message: "Failed to load connector catalog. Please refresh and try again." });
9075
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkMMSHLHTA_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
- chunk6OXR4R6J_cjs.ConnectionCard,
9084
+ chunkMMSHLHTA_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(chunk6OXR4R6J_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(chunkMMSHLHTA_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
- chunk6OXR4R6J_cjs.UsageToggle,
9665
+ chunkMMSHLHTA_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(chunk6OXR4R6J_cjs.UsageToggle, { value: kind, onChange: setKind, options: KIND_FILTERS, ariaLabel: "Kind" }),
9750
+ /* @__PURE__ */ jsxRuntime.jsx(chunkMMSHLHTA_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
- chunk6OXR4R6J_cjs.SettingsPage,
10009
+ chunkMMSHLHTA_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
- chunk6OXR4R6J_cjs.UsageSummary,
10041
+ chunkMMSHLHTA_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
- chunk6OXR4R6J_cjs.AppearanceSettings,
10159
+ chunkMMSHLHTA_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
- chunk6OXR4R6J_cjs.SettingsSwitchRow,
10379
+ chunkMMSHLHTA_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(chunk6OXR4R6J_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(chunkMMSHLHTA_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 = chunk6OXR4R6J_cjs.callsSwitchState(react.useCallsConfig(), on);
10395
+ const state = chunkMMSHLHTA_cjs.callsSwitchState(react.useCallsConfig(), on);
10396
10396
  return /* @__PURE__ */ jsxRuntime.jsx(
10397
- chunk6OXR4R6J_cjs.SettingsSwitchRow,
10397
+ chunkMMSHLHTA_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 = chunkO2ATVRRO_cjs.useSsoSignIn();
10601
+ const sso = chunkSDXK2COQ_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) => `${chunkBAJNXRI5_cjs.formatMoney(status.price_pence, status.currency.toLowerCase())} incl. VAT`;
10758
+ var identityFeeLabel = (status) => `${chunkDDIV3MYQ_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(chunk6OXR4R6J_cjs.WorkOfflineToggle, { isOffline: forceOffline, onToggle: setWorkOffline })
10849
+ actions: /* @__PURE__ */ jsxRuntime.jsx(chunkMMSHLHTA_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
- chunk6OXR4R6J_cjs.UsageLineChart,
10996
+ chunkMMSHLHTA_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
- chunk6OXR4R6J_cjs.UsageToggle,
11005
+ chunkMMSHLHTA_cjs.UsageToggle,
11006
11006
  {
11007
11007
  value: view,
11008
11008
  onChange: setView,
@@ -11720,7 +11720,7 @@ function AddWorkspaceMembersForm({
11720
11720
  )
11721
11721
  }
11722
11722
  ),
11723
- /* @__PURE__ */ jsxRuntime.jsx(chunkCIXA5A65_cjs.ModalActionRow, { children: /* @__PURE__ */ jsxRuntime.jsx(ui.Button, { onClick: handleSubmit, disabled: selectedUsers.length === 0 || isAdding, children: isAdding ? labels.adding : labels.add(selectedUsers.length) }) })
11723
+ /* @__PURE__ */ jsxRuntime.jsx(chunkYZ6YOOTF_cjs.ModalActionRow, { children: /* @__PURE__ */ jsxRuntime.jsx(ui.Button, { onClick: handleSubmit, disabled: selectedUsers.length === 0 || isAdding, children: isAdding ? labels.adding : labels.add(selectedUsers.length) }) })
11724
11724
  ] });
11725
11725
  }
11726
11726
  function WorkspaceAccessSummary({
@@ -11861,7 +11861,7 @@ function ConnectedProjectEntity({
11861
11861
  subscription = "none",
11862
11862
  ...props
11863
11863
  }) {
11864
- const { stripeEnabled } = chunkBAJNXRI5_cjs.useBillingSupport();
11864
+ const { stripeEnabled } = chunkDDIV3MYQ_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 } = chunkBAJNXRI5_cjs.useBillingSupport();
11957
+ const { stripeEnabled, checkout } = chunkDDIV3MYQ_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: chunkBAJNXRI5_cjs.PRO_PACKS,
11986
+ packs: chunkDDIV3MYQ_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 = chunkBAJNXRI5_cjs.apiErrorDetail(error)?.message;
12002
+ const reason = chunkDDIV3MYQ_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 ? `${chunkBAJNXRI5_cjs.checkoutItemsLabel(aiBlocks, storageBlocks)} \xB7 ${chunkBAJNXRI5_cjs.quoteTotalLine(quote)}` : null;
12035
+ const vatNote = quote ? `${chunkDDIV3MYQ_cjs.checkoutItemsLabel(aiBlocks, storageBlocks)} \xB7 ${chunkDDIV3MYQ_cjs.quoteTotalLine(quote)}` : null;
12036
12036
  return /* @__PURE__ */ jsxRuntime.jsx(
12037
- chunk6OXR4R6J_cjs.CheckoutDialogFrame,
12037
+ chunkMMSHLHTA_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(chunk6OXR4R6J_cjs.MoreInfo, { title: "Paying", label: "Payment help", testId: "checkout-payment-help", children: [
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: [
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 = chunkBAJNXRI5_cjs.PLAN_CHOICE_PACKS.pro;
12089
+ const packs = chunkDDIV3MYQ_cjs.PLAN_CHOICE_PACKS.pro;
12090
12090
  const currency = prices.monthly?.currency ?? prices.annual?.currency ?? "gbp";
12091
- const monthly = chunkBAJNXRI5_cjs.packPrice(prices.monthly, packs);
12092
- const annual = chunkBAJNXRI5_cjs.packPrice(prices.annual, packs);
12091
+ const monthly = chunkDDIV3MYQ_cjs.packPrice(prices.monthly, packs);
12092
+ const annual = chunkDDIV3MYQ_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: chunkBAJNXRI5_cjs.planNameForPacks(packs),
12097
+ name: chunkDDIV3MYQ_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 ? chunkBAJNXRI5_cjs.formatMoney(monthly.amount_ex_vat * 12, currency) : void 0,
12102
- yearlyTotal: isAnnual ? chunkBAJNXRI5_cjs.formatMoney(current.amount_ex_vat, currency) : void 0,
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,
12103
12103
  intervalLabel: isAnnual ? "/yr + VAT" : "/mo",
12104
- monthly: chunkBAJNXRI5_cjs.formatMoney(Math.round(effectiveMonthly), currency),
12104
+ monthly: chunkDDIV3MYQ_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: `${chunkBAJNXRI5_cjs.formatMoney(current.amount, currency)}${isAnnual ? "/yr" : "/mo"} incl. UK VAT`
12107
+ note: `${chunkDDIV3MYQ_cjs.formatMoney(current.amount, currency)}${isAnnual ? "/yr" : "/mo"} incl. UK VAT`
12108
12108
  } : void 0,
12109
12109
  features: [
12110
- `${react.formatGbp(chunkBAJNXRI5_cjs.PRO_AI_GBP)} of AI usage / month`,
12111
- `${chunkBAJNXRI5_cjs.PRO_STORAGE_GB} GB storage`,
12110
+ `${react.formatGbp(chunkDDIV3MYQ_cjs.PRO_AI_GBP)} of AI usage / month`,
12111
+ `${chunkDDIV3MYQ_cjs.PRO_STORAGE_GB} GB storage`,
12112
12112
  "Unlimited collaborators",
12113
- ...isAnnual ? [chunkBAJNXRI5_cjs.ANNUAL_PREMIUM_AI_NOTE] : []
12113
+ ...isAnnual ? [chunkDDIV3MYQ_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(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`
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`
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
- chunk6OXR4R6J_cjs.PlanCardGrid,
12140
+ chunkMMSHLHTA_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(chunk6OXR4R6J_cjs.PlanInfoPopover, { onOpenModelList: () => openSettings("chat") });
12149
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkMMSHLHTA_cjs.PlanInfoPopover, { onOpenModelList: () => openSettings("chat") });
12150
12150
  }
12151
12151
  function CheckoutAddonBudget({
12152
12152
  value,
12153
12153
  onChange
12154
12154
  }) {
12155
- const budget = chunkBAJNXRI5_cjs.parseBudgetPounds(value);
12155
+ const budget = chunkDDIV3MYQ_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(chunkBAJNXRI5_cjs.DEFAULT_SPEND_CAP_PENCE / 100),
12178
+ placeholder: String(chunkDDIV3MYQ_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(chunkBAJNXRI5_cjs.MAX_CHECKOUT_BLOCKS, n)));
12196
+ const set = (n) => onChange(Math.max(0, Math.min(chunkDDIV3MYQ_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 >= chunkBAJNXRI5_cjs.MAX_CHECKOUT_BLOCKS,
12240
+ disabled: value >= chunkDDIV3MYQ_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 = chunkBAJNXRI5_cjs.addonPrice(price, "ai_usage");
12258
- const storage = chunkBAJNXRI5_cjs.addonPrice(price, "storage");
12257
+ const ai = chunkDDIV3MYQ_cjs.addonPrice(price, "ai_usage");
12258
+ const storage = chunkDDIV3MYQ_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 || chunkBAJNXRI5_cjs.ADDON_BLOCK_AI_GBP)} of AI usage`,
12269
- priceText: chunkBAJNXRI5_cjs.checkoutBlockPriceText(price, "ai_usage"),
12268
+ label: `+${react.formatGbp(ai?.ai_gbp || chunkDDIV3MYQ_cjs.ADDON_BLOCK_AI_GBP)} of AI usage`,
12269
+ priceText: chunkDDIV3MYQ_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 || chunkBAJNXRI5_cjs.STORAGE_BLOCK_GB} GB storage`,
12279
- priceText: chunkBAJNXRI5_cjs.checkoutBlockPriceText(price, "storage"),
12278
+ label: `+${storage?.storage_gb || chunkDDIV3MYQ_cjs.STORAGE_BLOCK_GB} GB storage`,
12279
+ priceText: chunkDDIV3MYQ_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 ? chunkBAJNXRI5_cjs.quoteTotalLine(state.quote) : state.isLoading ? "Calculating total\u2026" : state.error
12341
+ children: state.quote && !state.isLoading ? chunkDDIV3MYQ_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 ? chunkBAJNXRI5_cjs.quoteError(query.error) : {};
12375
- const locationInvalid = code === chunkBAJNXRI5_cjs.TAX_LOCATION_INVALID;
12374
+ const { code, message } = query.isError ? chunkDDIV3MYQ_cjs.quoteError(query.error) : {};
12375
+ const locationInvalid = code === chunkDDIV3MYQ_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: chunkBAJNXRI5_cjs.POSTCODE_COUNTRIES.includes(country) || locationInvalid || postalCode !== "",
12380
+ showPostcode: chunkDDIV3MYQ_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
- chunk6OXR4R6J_cjs.ReferralRewardSummary,
12411
+ chunkMMSHLHTA_cjs.ReferralRewardSummary,
12412
12412
  {
12413
- amountLabel: chunkBAJNXRI5_cjs.formatMoney(reward.amount, reward.currency),
12413
+ amountLabel: chunkDDIV3MYQ_cjs.formatMoney(reward.amount, reward.currency),
12414
12414
  breakdown: applied && totalCents != null && currency ? {
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
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
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(chunk6OXR4R6J_cjs.ReferralRewardNote, { amountLabel: chunkBAJNXRI5_cjs.formatMoney(reward.amount, reward.currency) });
12426
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkMMSHLHTA_cjs.ReferralRewardNote, { amountLabel: chunkDDIV3MYQ_cjs.formatMoney(reward.amount, reward.currency) });
12427
12427
  }
12428
12428
  function createProjectErrorMessage(error, fallback = `Failed to create ${ui.entityNoun("PROJECT")}`) {
12429
- const detail = chunkBAJNXRI5_cjs.apiErrorDetail(error);
12429
+ const detail = chunkDDIV3MYQ_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(chunkBAJNXRI5_cjs.DEFAULT_SPEND_CAP_PENCE / 100));
12439
+ const [addonBudget, setAddonBudget] = react$1.useState(String(chunkDDIV3MYQ_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 } = chunkBAJNXRI5_cjs.useBillingSupport();
12453
+ const { stripeEnabled } = chunkDDIV3MYQ_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(chunkBAJNXRI5_cjs.DEFAULT_SPEND_CAP_PENCE / 100));
12482
+ setAddonBudget(String(chunkDDIV3MYQ_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 = chunkBAJNXRI5_cjs.findProPrices(products);
12489
+ const prices = chunkDDIV3MYQ_cjs.findProPrices(products);
12490
12490
  const intervalPrice = isAnnual ? prices.annual : prices.monthly;
12491
- const selectedPrice = chunkBAJNXRI5_cjs.packPrice(intervalPrice);
12491
+ const selectedPrice = chunkDDIV3MYQ_cjs.packPrice(intervalPrice);
12492
12492
  const currency = intervalPrice?.currency ?? "gbp";
12493
- const savingsPercent = chunkBAJNXRI5_cjs.calcSavingsPercent(prices.monthly, prices.annual);
12493
+ const savingsPercent = chunkDDIV3MYQ_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 && chunkBAJNXRI5_cjs.parseBudgetPounds(addonBudget) !== void 0 && quote.canContinue);
12503
+ const canSubmit = !!projectName.trim() && !isCreating && !createProject.isPending && (!isPro || !!selectedPrice && chunkDDIV3MYQ_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: chunkBAJNXRI5_cjs.SUGGESTED_DAILY_CAP_PER_USER
12510
+ daily_cap_per_user: chunkDDIV3MYQ_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 = chunkBAJNXRI5_cjs.parseBudgetPounds(addonBudget);
12528
- const budgetToSend = parsed == null || parsed === chunkBAJNXRI5_cjs.DEFAULT_SPEND_CAP_PENCE ? null : parsed;
12527
+ const parsed = chunkDDIV3MYQ_cjs.parseBudgetPounds(addonBudget);
12528
+ const budgetToSend = parsed == null || parsed === chunkDDIV3MYQ_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: chunkBAJNXRI5_cjs.SUGGESTED_DAILY_CAP_PER_USER
12534
+ daily_cap_per_user: chunkDDIV3MYQ_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(chunk6OXR4R6J_cjs.PlanStack, { gap: 5, children: [
12576
- /* @__PURE__ */ jsxRuntime.jsxs(chunk6OXR4R6J_cjs.PlanStack, { gap: 2, children: [
12575
+ children: /* @__PURE__ */ jsxRuntime.jsxs(chunkMMSHLHTA_cjs.PlanStack, { gap: 5, children: [
12576
+ /* @__PURE__ */ jsxRuntime.jsxs(chunkMMSHLHTA_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(chunk6OXR4R6J_cjs.PlanNotice, { children: "Loading plans\u2026" }) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
12593
- /* @__PURE__ */ jsxRuntime.jsxs(chunk6OXR4R6J_cjs.PlanPickerCard, { children: [
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: [
12594
12594
  /* @__PURE__ */ jsxRuntime.jsx(
12595
- chunk6OXR4R6J_cjs.PlanPickerHeader,
12595
+ chunkMMSHLHTA_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
- chunk6OXR4R6J_cjs.PricingToggle,
12601
+ chunkMMSHLHTA_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(chunk6OXR4R6J_cjs.PromoCodeInput, { value: promoCode, onChange: setPromoCode }),
12639
+ /* @__PURE__ */ jsxRuntime.jsx(chunkMMSHLHTA_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(chunk6OXR4R6J_cjs.PlanNotice, { children: "Pro isn't available right now." }))
12658
+ ] }) : /* @__PURE__ */ jsxRuntime.jsx(chunkMMSHLHTA_cjs.PlanNotice, { children: "Pro isn't available right now." }))
12659
12659
  ] })),
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." })
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." })
12662
12662
  ] })
12663
12663
  }
12664
12664
  ),
@@ -12698,15 +12698,15 @@ function ConnectedProjectSelector({
12698
12698
  readOnly,
12699
12699
  className
12700
12700
  }) {
12701
- const { stripeEnabled } = chunkBAJNXRI5_cjs.useBillingSupport();
12701
+ const { stripeEnabled } = chunkDDIV3MYQ_cjs.useBillingSupport();
12702
12702
  return /* @__PURE__ */ jsxRuntime.jsx(
12703
- chunkCIXA5A65_cjs.ProjectPicker,
12703
+ chunkYZ6YOOTF_cjs.ProjectPicker,
12704
12704
  {
12705
12705
  value: projectExtId ?? void 0,
12706
12706
  options: projectOptions.map((proj) => ({
12707
12707
  id: proj.external_id,
12708
12708
  content: /* @__PURE__ */ jsxRuntime.jsx(
12709
- chunkCIXA5A65_cjs.ProjectOptionRow,
12709
+ chunkYZ6YOOTF_cjs.ProjectOptionRow,
12710
12710
  {
12711
12711
  identity: /* @__PURE__ */ jsxRuntime.jsx(
12712
12712
  ConnectedProjectEntity,
@@ -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(chunkZA3ZELSH_cjs.LoadingIndicator, { message: "Loading workspace..." }) });
12845
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkC5CWKZ5D_cjs.PageLoading, { children: /* @__PURE__ */ jsxRuntime.jsx(chunkCCALU47C_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
- chunkZA3ZELSH_cjs.EntityIdentityBar,
12851
+ chunkCCALU47C_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: chunkZA3ZELSH_cjs.IDENTITY_NAME_MAX_LENGTH,
12868
+ maxLength: chunkCCALU47C_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: chunk6OXR4R6J_cjs.formatSessionTtl(activeSession.ttl),
13498
+ expiresIn: chunkMMSHLHTA_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 ? chunk6OXR4R6J_cjs.formatSessionTtl(limits.default_ttl_seconds) : void 0,
13505
+ defaultTtl: limits ? chunkMMSHLHTA_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
- chunk6OXR4R6J_cjs.EmailWorkspaceDialogView,
13511
+ chunkMMSHLHTA_cjs.EmailWorkspaceDialogView,
13512
13512
  {
13513
13513
  open,
13514
13514
  onOpenChange,
@@ -13754,10 +13754,10 @@ function WorkspaceCreateForm({
13754
13754
  }
13755
13755
  };
13756
13756
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-5", "data-testid": "create-workspace-form", children: [
13757
- errorMessage2 && /* @__PURE__ */ jsxRuntime.jsx(chunkCIXA5A65_cjs.FormErrorBanner, { message: errorMessage2 }),
13757
+ errorMessage2 && /* @__PURE__ */ jsxRuntime.jsx(chunkYZ6YOOTF_cjs.FormErrorBanner, { message: errorMessage2 }),
13758
13758
  /* @__PURE__ */ jsxRuntime.jsxs("form", { onSubmit: handleSubmit, className: "flex flex-col gap-5", children: [
13759
13759
  /* @__PURE__ */ jsxRuntime.jsx(
13760
- chunkCIXA5A65_cjs.WorkspaceFieldsView,
13760
+ chunkYZ6YOOTF_cjs.WorkspaceFieldsView,
13761
13761
  {
13762
13762
  name: localWorkspaceName,
13763
13763
  description: localWorkspaceDescription,
@@ -13797,7 +13797,7 @@ function WorkspaceCreateForm({
13797
13797
  ] }) : void 0
13798
13798
  }
13799
13799
  ),
13800
- /* @__PURE__ */ jsxRuntime.jsxs(chunkCIXA5A65_cjs.FormActions, { children: [
13800
+ /* @__PURE__ */ jsxRuntime.jsxs(chunkYZ6YOOTF_cjs.FormActions, { children: [
13801
13801
  onCancel && /* @__PURE__ */ jsxRuntime.jsx(
13802
13802
  ui.Button,
13803
13803
  {
@@ -13847,7 +13847,7 @@ function ConnectedWorkspaceFormModal({
13847
13847
  const canCreate = demoSeed ? true : allowed;
13848
13848
  const workspaceLabel = ui.getEntityLabel("WORKSPACE");
13849
13849
  return /* @__PURE__ */ jsxRuntime.jsx(
13850
- chunkCIXA5A65_cjs.WorkspaceFormModal,
13850
+ chunkYZ6YOOTF_cjs.WorkspaceFormModal,
13851
13851
  {
13852
13852
  ...frame,
13853
13853
  ...canCreate === false ? {
@@ -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(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,
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,
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(chunk6OXR4R6J_cjs.SyncField, { label: "Backfill window", htmlFor: "sync-backfill", children: [
14042
+ /* @__PURE__ */ jsxRuntime.jsxs(chunkMMSHLHTA_cjs.SyncField, { label: "Backfill window", htmlFor: "sync-backfill", children: [
14043
14043
  /* @__PURE__ */ jsxRuntime.jsx(
14044
- chunk6OXR4R6J_cjs.SyncSelect,
14044
+ chunkMMSHLHTA_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(chunk6OXR4R6J_cjs.SyncSmallNote, { children: "Emails are always imported from this date onward \u2014 the start point never moves." })
14064
+ /* @__PURE__ */ jsxRuntime.jsx(chunkMMSHLHTA_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
- chunk6OXR4R6J_cjs.SyncField,
14068
+ chunkMMSHLHTA_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(chunk6OXR4R6J_cjs.SyncLinkRow, { children: [
14072
+ actions: folders.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs(chunkMMSHLHTA_cjs.SyncLinkRow, { children: [
14073
14073
  /* @__PURE__ */ jsxRuntime.jsx(
14074
- chunk6OXR4R6J_cjs.SyncLinkButton,
14074
+ chunkMMSHLHTA_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
- chunk6OXR4R6J_cjs.SyncLinkButton,
14082
+ chunkMMSHLHTA_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(chunk6OXR4R6J_cjs.SyncLinkButton, { onClick: toggleAllFolders, children: allSelected ? "Clear all" : "Select all" })
14089
+ /* @__PURE__ */ jsxRuntime.jsx(chunkMMSHLHTA_cjs.SyncLinkButton, { onClick: toggleAllFolders, children: allSelected ? "Clear all" : "Select all" })
14090
14090
  ] }),
14091
- children: foldersLoading ? /* @__PURE__ */ jsxRuntime.jsx(chunk6OXR4R6J_cjs.SyncLoading, { children: "Loading folders\u2026" }) : foldersError ? (
14091
+ children: foldersLoading ? /* @__PURE__ */ jsxRuntime.jsx(chunkMMSHLHTA_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
- chunk6OXR4R6J_cjs.SyncReconnectNotice,
14095
+ chunkMMSHLHTA_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(chunk6OXR4R6J_cjs.SyncNote, { children: "No folders found." }) : /* @__PURE__ */ jsxRuntime.jsx(chunk6OXR4R6J_cjs.SyncTreeFrame, { children: /* @__PURE__ */ jsxRuntime.jsx(
14103
+ ) : folders.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx(chunkMMSHLHTA_cjs.SyncNote, { children: "No folders found." }) : /* @__PURE__ */ jsxRuntime.jsx(chunkMMSHLHTA_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(chunk6OXR4R6J_cjs.SyncOptions, { children: [
14115
+ /* @__PURE__ */ jsxRuntime.jsxs(chunkMMSHLHTA_cjs.SyncOptions, { children: [
14116
14116
  /* @__PURE__ */ jsxRuntime.jsx(
14117
- chunk6OXR4R6J_cjs.SyncOptionToggle,
14117
+ chunkMMSHLHTA_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
- chunk6OXR4R6J_cjs.SyncOptionToggle,
14127
+ chunkMMSHLHTA_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
- chunk6OXR4R6J_cjs.SyncOptionToggle,
14137
+ chunkMMSHLHTA_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
- chunk6OXR4R6J_cjs.SyncOptionToggle,
14147
+ chunkMMSHLHTA_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
- chunk6OXR4R6J_cjs.SyncDialogFooter,
14159
+ chunkMMSHLHTA_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
- chunk6OXR4R6J_cjs.SyncFolderRow,
14221
+ chunkMMSHLHTA_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(chunk6OXR4R6J_cjs.SyncFolderStatus, { depth, kind: "loading" }) : orderedChildren.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx(chunk6OXR4R6J_cjs.SyncFolderStatus, { depth, kind: "empty" }) : orderedChildren.map((child) => /* @__PURE__ */ jsxRuntime.jsx(
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(
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(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,
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,
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
- chunk6OXR4R6J_cjs.SyncField,
14393
+ chunkMMSHLHTA_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(chunk6OXR4R6J_cjs.SyncLinkRow, { children: [
14397
+ actions: orderedFolders.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs(chunkMMSHLHTA_cjs.SyncLinkRow, { children: [
14398
14398
  /* @__PURE__ */ jsxRuntime.jsx(
14399
- chunk6OXR4R6J_cjs.SyncLinkButton,
14399
+ chunkMMSHLHTA_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
- chunk6OXR4R6J_cjs.SyncLinkButton,
14407
+ chunkMMSHLHTA_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(chunk6OXR4R6J_cjs.SyncLoading, { children: "Loading folders\u2026" }) : needsReconnect ? /* @__PURE__ */ jsxRuntime.jsx(
14416
- chunk6OXR4R6J_cjs.SyncReconnectNotice,
14415
+ children: foldersLoading ? /* @__PURE__ */ jsxRuntime.jsx(chunkMMSHLHTA_cjs.SyncLoading, { children: "Loading folders\u2026" }) : needsReconnect ? /* @__PURE__ */ jsxRuntime.jsx(
14416
+ chunkMMSHLHTA_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
- chunk6OXR4R6J_cjs.SyncReconnectNotice,
14422
+ chunkMMSHLHTA_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(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(
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(
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(chunk6OXR4R6J_cjs.SyncOptions, { children: [
14444
+ /* @__PURE__ */ jsxRuntime.jsxs(chunkMMSHLHTA_cjs.SyncOptions, { children: [
14445
14445
  /* @__PURE__ */ jsxRuntime.jsx(
14446
- chunk6OXR4R6J_cjs.SyncOptionToggle,
14446
+ chunkMMSHLHTA_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
- chunk6OXR4R6J_cjs.SyncOptionToggle,
14455
+ chunkMMSHLHTA_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
- chunk6OXR4R6J_cjs.SyncOptionToggle,
14464
+ chunkMMSHLHTA_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
- chunk6OXR4R6J_cjs.SyncOptionToggle,
14473
+ chunkMMSHLHTA_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
- chunk6OXR4R6J_cjs.SyncDialogFooter,
14485
+ chunkMMSHLHTA_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(chunkFAKRTCAL_cjs.ConsentPage, { children: /* @__PURE__ */ jsxRuntime.jsxs(chunkFAKRTCAL_cjs.ConsentCard, { size: "md", children: [
14506
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkJ4CXF4A7_cjs.ConsentPage, { children: /* @__PURE__ */ jsxRuntime.jsxs(chunkJ4CXF4A7_cjs.ConsentCard, { size: "md", children: [
14507
14507
  /* @__PURE__ */ jsxRuntime.jsx(
14508
- chunkFAKRTCAL_cjs.ConsentHeader,
14508
+ chunkJ4CXF4A7_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(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: [
14515
+ result === "granted" && /* @__PURE__ */ jsxRuntime.jsx(chunkJ4CXF4A7_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(chunkJ4CXF4A7_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(chunkJ4CXF4A7_cjs.ConsentSection, { title: "What you are approving", children: [
14518
14518
  /* @__PURE__ */ jsxRuntime.jsx(
14519
- chunkFAKRTCAL_cjs.ConsentBulletList,
14519
+ chunkJ4CXF4A7_cjs.ConsentBulletList,
14520
14520
  {
14521
14521
  items: [
14522
14522
  /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
14523
- /* @__PURE__ */ jsxRuntime.jsx(chunkFAKRTCAL_cjs.ConsentStrong, { children: "Read SharePoint sites and files" }),
14523
+ /* @__PURE__ */ jsxRuntime.jsx(chunkJ4CXF4A7_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(chunkFAKRTCAL_cjs.ConsentStrong, { children: "Sign users in and keep access" }),
14527
+ /* @__PURE__ */ jsxRuntime.jsx(chunkJ4CXF4A7_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(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." }),
14533
+ /* @__PURE__ */ jsxRuntime.jsx(chunkJ4CXF4A7_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(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." })
14535
+ /* @__PURE__ */ jsxRuntime.jsx(chunkJ4CXF4A7_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: 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,
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,
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
- chunk6OXR4R6J_cjs.InvoicesDialog,
14585
+ chunkMMSHLHTA_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(chunkBAJNXRI5_cjs.DEFAULT_SPEND_CAP_PENCE / 100));
14599
+ const [addonBudget, setAddonBudget] = react$1.useState(String(chunkDDIV3MYQ_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(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);
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);
14621
14621
  const intervalPrice = isAnnual ? prices.annual : prices.monthly;
14622
- const selectedPrice = chunkBAJNXRI5_cjs.packPrice(intervalPrice);
14622
+ const selectedPrice = chunkDDIV3MYQ_cjs.packPrice(intervalPrice);
14623
14623
  if (!intervalPrice) return null;
14624
14624
  const interval = isAnnual ? "year" : "month";
14625
- const savingsPercent = chunkBAJNXRI5_cjs.calcSavingsPercent(prices.monthly, prices.annual);
14625
+ const savingsPercent = chunkDDIV3MYQ_cjs.calcSavingsPercent(prices.monthly, prices.annual);
14626
14626
  const handleSubscribe = () => {
14627
14627
  setCheckoutInterval(interval);
14628
- const parsed = chunkBAJNXRI5_cjs.parseBudgetPounds(addonBudget);
14629
- setCheckoutBudget(parsed == null || parsed === chunkBAJNXRI5_cjs.DEFAULT_SPEND_CAP_PENCE ? null : parsed);
14628
+ const parsed = chunkDDIV3MYQ_cjs.parseBudgetPounds(addonBudget);
14629
+ setCheckoutBudget(parsed == null || parsed === chunkDDIV3MYQ_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(chunk6OXR4R6J_cjs.PlanStack, { children: [
14634
+ /* @__PURE__ */ jsxRuntime.jsxs(chunkMMSHLHTA_cjs.PlanStack, { children: [
14635
14635
  /* @__PURE__ */ jsxRuntime.jsx(
14636
- chunk6OXR4R6J_cjs.PlanPickerHeader,
14636
+ chunkMMSHLHTA_cjs.PlanPickerHeader,
14637
14637
  {
14638
14638
  title: "Plan",
14639
14639
  info: /* @__PURE__ */ jsxRuntime.jsx(PlanInfoPopover2, {}),
14640
14640
  toggle: /* @__PURE__ */ jsxRuntime.jsx(
14641
- chunk6OXR4R6J_cjs.PricingToggle,
14641
+ chunkMMSHLHTA_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(chunk6OXR4R6J_cjs.PromoCodeInput, { value: promoCode, onChange: setPromoCode }),
14678
+ /* @__PURE__ */ jsxRuntime.jsx(chunkMMSHLHTA_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(chunk6OXR4R6J_cjs.PlanActionRow, { children: [
14690
+ /* @__PURE__ */ jsxRuntime.jsxs(chunkMMSHLHTA_cjs.PlanActionRow, { children: [
14691
14691
  onDismiss && /* @__PURE__ */ jsxRuntime.jsx(
14692
- chunk6OXR4R6J_cjs.PlanActionButton,
14692
+ chunkMMSHLHTA_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
- chunk6OXR4R6J_cjs.PlanActionButton,
14703
+ chunkMMSHLHTA_cjs.PlanActionButton,
14704
14704
  {
14705
14705
  fill: true,
14706
14706
  onClick: handleSubscribe,
14707
- disabled: !selectedPrice || chunkBAJNXRI5_cjs.parseBudgetPounds(addonBudget) === void 0 || !quote.canContinue,
14707
+ disabled: !selectedPrice || chunkDDIV3MYQ_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 = chunkBAJNXRI5_cjs.apiErrorDetail(error);
14766
+ const detail = chunkDDIV3MYQ_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 = chunkBAJNXRI5_cjs.apiErrorDetail(error);
14792
+ const detail = chunkDDIV3MYQ_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 ?? chunkBAJNXRI5_cjs.ADDON_BLOCK_AI_GBP)} of AI usage added` : `${blockStorageGb ?? chunkBAJNXRI5_cjs.STORAGE_BLOCK_GB} GB added`;
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`;
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 ? chunkBAJNXRI5_cjs.planPreviewLines(preview) : [{ id: "pay-today", text: isError ? chunkBAJNXRI5_cjs.PAY_TODAY_UNPRICED : "Checking price\u2026" }];
14851
+ const lines = preview ? chunkDDIV3MYQ_cjs.planPreviewLines(preview) : [{ id: "pay-today", text: isError ? chunkDDIV3MYQ_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 = chunkBAJNXRI5_cjs.planNameForPacks(data?.addons?.packs ?? data?.packs);
14860
- const charged = outcome.charged_pence > 0 ? ` \xB7 ${chunkBAJNXRI5_cjs.formatMoney(outcome.charged_pence, "gbp")} charged` : "";
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` : "";
14861
14861
  shell.notify.success(`Upgraded to ${plan}${charged}`);
14862
14862
  break;
14863
14863
  }
14864
14864
  case "scheduled": {
14865
- const when2 = chunkBAJNXRI5_cjs.formatPeriodEnd(data?.addons?.period_end ?? data?.current_period_end);
14865
+ const when2 = chunkDDIV3MYQ_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 = chunkBAJNXRI5_cjs.findProPrices(products);
14898
+ const prices = chunkDDIV3MYQ_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 ?? chunkBAJNXRI5_cjs.PRO_PACKS, chunkBAJNXRI5_cjs.PRO_PACKS);
14902
- const isLegacyMultiPack = currentPacks > chunkBAJNXRI5_cjs.PRO_PACKS;
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;
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 > chunkBAJNXRI5_cjs.PRO_PACKS ? currentInterval : chosenInterval;
14908
+ const targetInterval = targetPacks > chunkDDIV3MYQ_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, chunkBAJNXRI5_cjs.PRO_PACKS, 0] : [chunkBAJNXRI5_cjs.PRO_PACKS, 0];
14914
+ const packOptions = isLegacyMultiPack ? [currentPacks, chunkDDIV3MYQ_cjs.PRO_PACKS, 0] : [chunkDDIV3MYQ_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 ? chunkBAJNXRI5_cjs.proTierName(project) : chunkBAJNXRI5_cjs.planNameForPacks(packs);
14922
+ const nameFor = (packs) => packs === currentPacks && packs > 0 ? chunkDDIV3MYQ_cjs.proTierName(project) : chunkDDIV3MYQ_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 ${chunkBAJNXRI5_cjs.planNameForPacks(addons.packs_next)}.`);
14932
+ effects.push(`Cancels the change to ${chunkDDIV3MYQ_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(chunkBAJNXRI5_cjs.FREE_AI_GBP)} of AI usage \xB7 ${chunkBAJNXRI5_cjs.FREE_STORAGE_MB} MB \xB7 just you`
14971
+ summary: `${react.formatGbp(chunkDDIV3MYQ_cjs.FREE_AI_GBP)} of AI usage \xB7 ${chunkDDIV3MYQ_cjs.FREE_STORAGE_MB} MB \xB7 just you`
14972
14972
  };
14973
14973
  }
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;
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;
14977
14977
  return {
14978
- total: exVat != null ? chunkBAJNXRI5_cjs.plusVat(exVat, currency) : void 0,
14978
+ total: exVat != null ? chunkDDIV3MYQ_cjs.plusVat(exVat, currency) : void 0,
14979
14979
  summary: allowance
14980
14980
  };
14981
14981
  };
14982
- return /* @__PURE__ */ jsxRuntime.jsxs(chunk6OXR4R6J_cjs.PlanStack, { gap: 4, testId: "change-pro-plan", children: [
14982
+ return /* @__PURE__ */ jsxRuntime.jsxs(chunkMMSHLHTA_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 > 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,
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,
14987
14987
  {
14988
14988
  isAnnual: targetInterval === "year",
14989
14989
  onToggle: () => setChosenInterval(targetInterval === "year" ? "month" : "year"),
14990
- savingsPercent: chunkBAJNXRI5_cjs.calcSavingsPercent(prices.monthly, prices.annual)
14990
+ savingsPercent: chunkDDIV3MYQ_cjs.calcSavingsPercent(prices.monthly, prices.annual)
14991
14991
  }
14992
14992
  )
14993
14993
  ] }),
14994
- /* @__PURE__ */ jsxRuntime.jsx(chunk6OXR4R6J_cjs.PlanStack, { gap: 2, children: packOptions.map((packs) => {
14994
+ /* @__PURE__ */ jsxRuntime.jsx(chunkMMSHLHTA_cjs.PlanStack, { gap: 2, children: packOptions.map((packs) => {
14995
14995
  const { total, summary } = optionFor(packs);
14996
14996
  return /* @__PURE__ */ jsxRuntime.jsx(
14997
- chunk6OXR4R6J_cjs.PlanTierOption,
14997
+ chunkMMSHLHTA_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(chunk6OXR4R6J_cjs.PlanNotice, { className: "text-xs", testId: "change-plan-legacy-note", children: [
15015
- chunkBAJNXRI5_cjs.proTierName(project),
15014
+ /* @__PURE__ */ jsxRuntime.jsxs(chunkMMSHLHTA_cjs.PlanNotice, { className: "text-xs", testId: "change-plan-legacy-note", children: [
15015
+ chunkDDIV3MYQ_cjs.proTierName(project),
15016
15016
  " is no longer sold"
15017
15017
  ] }),
15018
- /* @__PURE__ */ jsxRuntime.jsxs(chunk6OXR4R6J_cjs.MoreInfo, { title: "Legacy plan", testId: "change-plan-legacy-more-info", children: [
15018
+ /* @__PURE__ */ jsxRuntime.jsxs(chunkMMSHLHTA_cjs.MoreInfo, { title: "Legacy plan", testId: "change-plan-legacy-more-info", children: [
15019
15019
  /* @__PURE__ */ jsxRuntime.jsxs("p", { children: [
15020
- chunkBAJNXRI5_cjs.proTierName(project),
15020
+ chunkDDIV3MYQ_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
- chunk6OXR4R6J_cjs.PlanActionButton,
15041
+ chunkMMSHLHTA_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 && chunkBAJNXRI5_cjs.isProProject(project);
15052
+ const isPro = !!project && chunkDDIV3MYQ_cjs.isProProject(project);
15053
15053
  return /* @__PURE__ */ jsxRuntime.jsx(
15054
- chunk6OXR4R6J_cjs.PlanDialogFrame,
15054
+ chunkMMSHLHTA_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 = chunkBAJNXRI5_cjs.useSelfExtId();
15074
+ const currentUserExtId = chunkDDIV3MYQ_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 } = chunkBAJNXRI5_cjs.useBillingSupport();
15081
+ const { stripeEnabled } = chunkDDIV3MYQ_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
- chunk6OXR4R6J_cjs.ProjectRow,
15120
+ chunkMMSHLHTA_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(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,
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,
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(chunk6OXR4R6J_cjs.ProjectList, { isLoading, isEmpty: ownedProjects.length === 0, isFilteredOut: false, children: ownedProjects.map(renderRow) }),
15160
+ /* @__PURE__ */ jsxRuntime.jsx(chunkMMSHLHTA_cjs.ProjectList, { isLoading, isEmpty: ownedProjects.length === 0, isFilteredOut: false, children: ownedProjects.map(renderRow) }),
15161
15161
  /* @__PURE__ */ jsxRuntime.jsx(
15162
- chunk6OXR4R6J_cjs.RenameDialog,
15162
+ chunkMMSHLHTA_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 = chunkBAJNXRI5_cjs.useSelfExtId();
15193
+ const currentUserExtId = chunkDDIV3MYQ_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
- chunk6OXR4R6J_cjs.SharedProjectsSection,
15202
+ chunkMMSHLHTA_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
- chunk6OXR4R6J_cjs.SharedProjectRow,
15208
+ chunkMMSHLHTA_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
- chunk6OXR4R6J_cjs.DailyCapField,
15254
+ chunkMMSHLHTA_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
- chunk6OXR4R6J_cjs.SubscriptionStatusView,
15267
+ chunkMMSHLHTA_cjs.SubscriptionStatusView,
15268
15268
  {
15269
- resetDate: chunkBAJNXRI5_cjs.formatResetDate(addons?.ai_usage_reset_at ?? current_period_end),
15269
+ resetDate: chunkDDIV3MYQ_cjs.formatResetDate(addons?.ai_usage_reset_at ?? current_period_end),
15270
15270
  isCanceling: subscription === "canceled" || cancel_at_period_end === true,
15271
- meters: chunkBAJNXRI5_cjs.getQuotaItems(quotas).map((q) => ({
15271
+ meters: chunkDDIV3MYQ_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 ?? chunkBAJNXRI5_cjs.ADDON_BLOCK_AI_GBP)} of AI usage` : `Add ${blockStorageGb ?? chunkBAJNXRI5_cjs.STORAGE_BLOCK_GB} GB storage`;
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`;
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 = 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)` };
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)` };
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(chunk6OXR4R6J_cjs.MoreInfo, { title: "Adding a top-up", testId: "add-addon-more-info", children: /* @__PURE__ */ jsxRuntime.jsx(
15400
- chunk6OXR4R6J_cjs.MoreInfoList,
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,
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: `${chunkBAJNXRI5_cjs.ANNUAL_PREMIUM_AI_NOTE}.` }] : []
15415
+ ...isAnnual && kind === "ai_usage" ? [{ term: "Annual", text: `${chunkDDIV3MYQ_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 ? chunkBAJNXRI5_cjs.totalWithTaxWord(renewal) : price.then.replace(/\/(month|year)/, ""),
15438
+ renewal ? chunkDDIV3MYQ_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 } = chunkBAJNXRI5_cjs.reduceBounds(kind, addons);
15469
+ const { min, next } = chunkDDIV3MYQ_cjs.reduceBounds(kind, addons);
15470
15470
  const keep2 = Math.max(min, next - 1);
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";
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";
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: chunkBAJNXRI5_cjs.nextPeriodBody(kind, keep2)
15481
+ body: chunkDDIV3MYQ_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(chunk6OXR4R6J_cjs.MoreInfo, { title: "Reducing a top-up", testId: "reduce-addon-more-info", children: [
15509
+ /* @__PURE__ */ jsxRuntime.jsxs(chunkMMSHLHTA_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) => chunkBAJNXRI5_cjs.formatMoney(pence, "gbp");
15548
+ var gbp = (pence) => chunkDDIV3MYQ_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 || chunkBAJNXRI5_cjs.MIN_AUTO_TOPUP_THRESHOLD_GBP;
15560
+ const min = addons.min_auto_topup_threshold_gbp || chunkDDIV3MYQ_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 = chunkBAJNXRI5_cjs.isAddonBudgetZero(addons);
15567
+ const off = chunkDDIV3MYQ_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: chunkBAJNXRI5_cjs.addonSettingsBody(addons, { auto_topup_threshold_gbp: parsed })
15573
+ body: chunkDDIV3MYQ_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 = chunkBAJNXRI5_cjs.formatPeriodEnd(addons.period_end ?? project.current_period_end);
15670
+ const periodEnd = chunkDDIV3MYQ_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 } = chunkBAJNXRI5_cjs.reduceBounds(kind, addons);
15673
+ const { min, current, next } = chunkDDIV3MYQ_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 = 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);
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);
15686
15686
  const undo = () => update.mutate(
15687
15687
  {
15688
15688
  projectExtId: project.external_id,
15689
- body: chunkBAJNXRI5_cjs.nextPeriodBody(kind, current)
15689
+ body: chunkDDIV3MYQ_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 ? ` (${chunkBAJNXRI5_cjs.blocksLabel(kind, blocks, addons)})` : ""}` : void 0,
15706
+ topUps: topUps > 0 ? `Top-ups ${fmt(topUps)}${hasLegacy ? ` (${chunkDDIV3MYQ_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: chunkBAJNXRI5_cjs.addStepCaption(kind, addons),
15735
+ caption: chunkDDIV3MYQ_cjs.addStepCaption(kind, addons),
15736
15736
  onClick: onAdd,
15737
- ariaLabel: `Add ${chunkBAJNXRI5_cjs.stepLabel(kind, isAi ? addons.block_ai_gbp : addons.block_storage_gb)}`,
15737
+ ariaLabel: `Add ${chunkDDIV3MYQ_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 ${chunkBAJNXRI5_cjs.stepLabel(kind, removeSize)} from ${from}`,
15748
+ ariaLabel: `Remove ${chunkDDIV3MYQ_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: chunkBAJNXRI5_cjs.addonSettingsBody(addons, { spend_cap_pence: nextCap })
15787
+ body: chunkDDIV3MYQ_cjs.addonSettingsBody(addons, { spend_cap_pence: nextCap })
15788
15788
  },
15789
15789
  {
15790
- onSuccess: () => shell.notify.success(chunkBAJNXRI5_cjs.budgetSavedMessage(nextCap)),
15790
+ onSuccess: () => shell.notify.success(chunkDDIV3MYQ_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: chunkBAJNXRI5_cjs.USAGE_CAP_LABEL,
15801
+ label: chunkDDIV3MYQ_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: chunkBAJNXRI5_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: chunkDDIV3MYQ_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(chunkBAJNXRI5_cjs.DEFAULT_SPEND_CAP_PENCE / 100),
15829
+ placeholder: noCap ? "No limit" : String(chunkDDIV3MYQ_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(chunkBAJNXRI5_cjs.DEFAULT_SPEND_CAP_PENCE / 100));
15855
+ if (!checked && value === "") setValue(String(chunkDDIV3MYQ_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(chunk6OXR4R6J_cjs.MoreInfo, { title: "Usage and top-ups", testId: "usage-more-info", children: /* @__PURE__ */ jsxRuntime.jsx(
15869
- chunk6OXR4R6J_cjs.MoreInfoList,
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,
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: chunkBAJNXRI5_cjs.USAGE_CAP_HELP },
15884
+ { term: "Usage cap", text: chunkDDIV3MYQ_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: `${chunkBAJNXRI5_cjs.ANNUAL_PREMIUM_AI_NOTE}.` }] : [],
15895
+ ...isAnnual ? [{ term: "Annual", text: `${chunkDDIV3MYQ_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) => chunkBAJNXRI5_cjs.formatMoney(pence, "gbp");
15987
+ var gbp2 = (pence) => chunkDDIV3MYQ_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: chunkBAJNXRI5_cjs.isProProject(project) });
16006
- if (!chunkBAJNXRI5_cjs.isProProject(project)) return null;
16005
+ const { data: products } = react.useProducts({ enabled: chunkDDIV3MYQ_cjs.isProProject(project) });
16006
+ if (!chunkDDIV3MYQ_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 ?? 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);
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);
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 = chunkBAJNXRI5_cjs.isProProject(project);
16026
+ const isPro = chunkDDIV3MYQ_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(chunkBAJNXRI5_cjs.aiUsageResetTimestamp(project));
16030
- const periodEnd = chunkBAJNXRI5_cjs.formatPeriodEnd(addons?.period_end ?? project.current_period_end);
16029
+ const resetDate = formatShortDate2(chunkDDIV3MYQ_cjs.aiUsageResetTimestamp(project));
16030
+ const periodEnd = chunkDDIV3MYQ_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 ? chunkBAJNXRI5_cjs.proTierName(project) : project.subscription === "dev" ? "Dev" : "Free";
16046
+ const tier = isPro ? chunkDDIV3MYQ_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 ${chunkBAJNXRI5_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 ${chunkDDIV3MYQ_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 ? chunkBAJNXRI5_cjs.plusVat(price.ex) : gbp2(price.incl),
16089
+ price.ex != null ? chunkDDIV3MYQ_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
- chunkBAJNXRI5_cjs.planNameForPacks(packsNext),
16127
+ chunkDDIV3MYQ_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(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: [
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: [
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(chunk6OXR4R6J_cjs.PlanNotice, { testId: "plan-payment-state", children: paidLine(paidPayment, addons) }),
16191
+ ] }) : paidPayment && addons && /* @__PURE__ */ jsxRuntime.jsx(chunkMMSHLHTA_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 && chunkBAJNXRI5_cjs.isProProject(project) && /* @__PURE__ */ jsxRuntime.jsx(ProjectUsageCard, { project, addons })
16218
+ addons && chunkDDIV3MYQ_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
- chunk6OXR4R6J_cjs.UsagePanel,
16349
+ chunkMMSHLHTA_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
- chunk6OXR4R6J_cjs.UsageToggle,
16355
+ chunkMMSHLHTA_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
- chunk6OXR4R6J_cjs.UsageActionButton,
16368
+ chunkMMSHLHTA_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
- chunk6OXR4R6J_cjs.UsageActionButton,
16376
+ chunkMMSHLHTA_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
- chunk6OXR4R6J_cjs.UsageSummary,
16386
+ chunkMMSHLHTA_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(chunk6OXR4R6J_cjs.UsageQuotaHint, { children: [
16394
+ quotaPct > 0 ? /* @__PURE__ */ jsxRuntime.jsxs(chunkMMSHLHTA_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
- chunk6OXR4R6J_cjs.UsageToggle,
16415
+ chunkMMSHLHTA_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
- chunk6OXR4R6J_cjs.UsageSection,
16428
+ chunkMMSHLHTA_cjs.UsageSection,
16429
16429
  {
16430
- footer: /* @__PURE__ */ jsxRuntime.jsx(chunk6OXR4R6J_cjs.UsageLegend, { series }),
16430
+ footer: /* @__PURE__ */ jsxRuntime.jsx(chunkMMSHLHTA_cjs.UsageLegend, { series }),
16431
16431
  title: `Daily AI usage${breakdown === "model" ? ` by ${BREAKDOWN_LABELS[breakdown]}` : ""}`,
16432
16432
  children: /* @__PURE__ */ jsxRuntime.jsx(
16433
- chunk6OXR4R6J_cjs.UsageLineChart,
16433
+ chunkMMSHLHTA_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
- chunk6OXR4R6J_cjs.UsageSection,
16444
+ chunkMMSHLHTA_cjs.UsageSection,
16445
16445
  {
16446
16446
  title: "Breakdown",
16447
16447
  gap: "md",
16448
16448
  action: /* @__PURE__ */ jsxRuntime.jsx(
16449
- chunk6OXR4R6J_cjs.UsageToggle,
16449
+ chunkMMSHLHTA_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
- chunk6OXR4R6J_cjs.UsageProportionBar,
16461
+ chunkMMSHLHTA_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 } = chunkBAJNXRI5_cjs.useBillingSupport();
16479
+ const { stripeEnabled } = chunkDDIV3MYQ_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 = chunkBAJNXRI5_cjs.useSelfExtId();
16485
+ const currentUserExtId = chunkDDIV3MYQ_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
- chunk6OXR4R6J_cjs.ProjectDetailHeader,
16523
+ chunkMMSHLHTA_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(chunk6OXR4R6J_cjs.PlanBadge, { ...chunkBAJNXRI5_cjs.planBadgeView(project), size: "md" }) : void 0
16531
+ badge: stripeEnabled ? /* @__PURE__ */ jsxRuntime.jsx(chunkMMSHLHTA_cjs.PlanBadge, { ...chunkDDIV3MYQ_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(chunk6OXR4R6J_cjs.ProjectDetailSection, { title: hasBilling ? "Collaborator limits" : "Plan limits", children: [
16535
+ /* @__PURE__ */ jsxRuntime.jsxs(chunkMMSHLHTA_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(chunk6OXR4R6J_cjs.ProjectDetailSection, { title: "Usage", children: /* @__PURE__ */ jsxRuntime.jsx(
16551
+ /* @__PURE__ */ jsxRuntime.jsx(chunkMMSHLHTA_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
- chunk6OXR4R6J_cjs.RenameDialog,
16561
+ chunkMMSHLHTA_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 = chunkBAJNXRI5_cjs.useSelfExtId();
16578
+ const currentUserExtId = chunkDDIV3MYQ_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 && chunkBAJNXRI5_cjs.isProProject(project) ? project.addons : null;
16609
+ const addons = project && chunkDDIV3MYQ_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 = `${chunkBAJNXRI5_cjs.formatMoney(addons.ai_block_price_ex_vat_pence, "gbp")} + VAT`;
16646
- const capZero = chunkBAJNXRI5_cjs.isAddonBudgetZero(addons);
16645
+ const price = `${chunkDDIV3MYQ_cjs.formatMoney(addons.ai_block_price_ex_vat_pence, "gbp")} + VAT`;
16646
+ const capZero = chunkDDIV3MYQ_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 ? chunkBAJNXRI5_cjs.ZERO_BUDGET_MESSAGE : chunkBAJNXRI5_cjs.CAP_REACHED_MESSAGE;
16654
+ message = capZero ? chunkDDIV3MYQ_cjs.ZERO_BUDGET_MESSAGE : chunkDDIV3MYQ_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
- chunk6OXR4R6J_cjs.QuotaExceededDialogView,
16667
+ chunkMMSHLHTA_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 = chunkBAJNXRI5_cjs.useRewardBalance();
16841
+ const balance = chunkDDIV3MYQ_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,28 +16859,28 @@ 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(chunk6OXR4R6J_cjs.InviteContactsDialog, { open, onClose: () => handleOpenChange(false), children: /* @__PURE__ */ jsxRuntime.jsx(
16862
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkMMSHLHTA_cjs.InviteContactsDialog, { open, onClose: () => handleOpenChange(false), children: /* @__PURE__ */ jsxRuntime.jsx(
16863
16863
  ConnectedAddContacts,
16864
16864
  {
16865
16865
  onClose: () => handleOpenChange(false),
16866
- rewardAmount: chunkBAJNXRI5_cjs.formatMoney(REFERRAL_OFFER.amount, REFERRAL_OFFER.currency)
16866
+ rewardAmount: chunkDDIV3MYQ_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 = chunkBAJNXRI5_cjs.getQuotaItems(selectedProject.quotas);
16873
- const resetTs = chunkBAJNXRI5_cjs.aiUsageResetTimestamp(selectedProject);
16874
- const aiUsageHint = resetTs ? `resets ${chunkBAJNXRI5_cjs.formatResetDate(resetTs)}` : void 0;
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;
16875
16875
  return /* @__PURE__ */ jsxRuntime.jsx(
16876
- chunk6OXR4R6J_cjs.WelcomeDialog,
16876
+ chunkMMSHLHTA_cjs.WelcomeDialog,
16877
16877
  {
16878
16878
  open,
16879
16879
  onClose: () => handleOpenChange(false),
16880
16880
  firstName,
16881
16881
  hasReward: hasBalance,
16882
16882
  projectPicker: /* @__PURE__ */ jsxRuntime.jsx(
16883
- chunkCIXA5A65_cjs.ProjectPicker,
16883
+ chunkYZ6YOOTF_cjs.ProjectPicker,
16884
16884
  {
16885
16885
  variant: "welcome",
16886
16886
  value: selectedProject.external_id,
@@ -16888,7 +16888,7 @@ function ConnectedWelcomeDialog({
16888
16888
  onChange: setSelectedProjectId
16889
16889
  }
16890
16890
  ),
16891
- planBadge: /* @__PURE__ */ jsxRuntime.jsx(chunk6OXR4R6J_cjs.PlanBadge, { ...chunkBAJNXRI5_cjs.planBadgeView(selectedProject), size: "md" }),
16891
+ planBadge: /* @__PURE__ */ jsxRuntime.jsx(chunkMMSHLHTA_cjs.PlanBadge, { ...chunkDDIV3MYQ_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: `${chunkBAJNXRI5_cjs.formatMoney(REFERRAL_OFFER.amount, REFERRAL_OFFER.currency)} off your plan`,
16901
+ referralOfferLabel: `${chunkDDIV3MYQ_cjs.formatMoney(REFERRAL_OFFER.amount, REFERRAL_OFFER.currency)} off your plan`,
16902
16902
  onInvite: () => setShowInvite(true),
16903
- rewardBalanceLabel: hasBalance ? chunkBAJNXRI5_cjs.formatMoney(balance.amount, balance.currency) : void 0
16903
+ rewardBalanceLabel: hasBalance ? chunkDDIV3MYQ_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 } = chunkBAJNXRI5_cjs.useBillingSupport();
16966
+ const { stripeEnabled } = chunkDDIV3MYQ_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 } = chunkBAJNXRI5_cjs.projectGroupBilling(project, {
16986
+ const { breakdown, readout } = chunkDDIV3MYQ_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
- () => chunk6OXR4R6J_cjs.applyTriStateFilters(workspaces, filterMap, attributesOf),
17149
+ () => chunkMMSHLHTA_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-5DWNJN6J.cjs').then((m) => ({ default: m.WorkspaceTableView }))
17215
+ () => import('../WorkspaceTableView-ZIQ7JWT5.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(chunkZA3ZELSH_cjs.LoadingIndicator, { message: "Loading workspaces..." });
17275
+ if (list.isLoading) return /* @__PURE__ */ jsxRuntime.jsx(chunkCCALU47C_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(chunkZA3ZELSH_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(chunkCCALU47C_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 } = chunkBAJNXRI5_cjs.useBillingSupport();
17393
+ const { stripeEnabled } = chunkDDIV3MYQ_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(chunk6OXR4R6J_cjs.PanelFrame, { className, testId: "projects-panel", children: [
17421
- /* @__PURE__ */ jsxRuntime.jsx(chunk6OXR4R6J_cjs.DraggableHeader, { children: /* @__PURE__ */ jsxRuntime.jsx(
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(
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
- chunk6OXR4R6J_cjs.PanelAddButton,
17428
+ chunkMMSHLHTA_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(chunk6OXR4R6J_cjs.PanelFrameBody, { children: activeProjectId ? /* @__PURE__ */ jsxRuntime.jsx(chunk6OXR4R6J_cjs.PanelScroll, { children: /* @__PURE__ */ jsxRuntime.jsx(
17443
+ /* @__PURE__ */ jsxRuntime.jsx(chunkMMSHLHTA_cjs.PanelFrameBody, { children: activeProjectId ? /* @__PURE__ */ jsxRuntime.jsx(chunkMMSHLHTA_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(chunk6OXR4R6J_cjs.PanelScroll, { variant: "padded", children: [
17449
+ ) }) : /* @__PURE__ */ jsxRuntime.jsxs(chunkMMSHLHTA_cjs.PanelScroll, { variant: "padded", children: [
17450
17450
  /* @__PURE__ */ jsxRuntime.jsx(ProjectsTable, {}),
17451
- stripeEnabled && paidProject && /* @__PURE__ */ jsxRuntime.jsx(chunk6OXR4R6J_cjs.PanelActionsRow, { children: /* @__PURE__ */ jsxRuntime.jsxs(
17451
+ stripeEnabled && paidProject && /* @__PURE__ */ jsxRuntime.jsx(chunkMMSHLHTA_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 } = chunkKVKKVSBT_cjs.useProjectSummaries();
17538
+ const { projects, isLoading } = chunkXM4KRGCK_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
- chunkZA3ZELSH_cjs.Toolbar,
17609
+ chunkCCALU47C_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 = chunkKVKKVSBT_cjs.primaryProjectWorkspace(project);
17671
+ const workspace = chunkXM4KRGCK_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 } = chunkZJ3NII4U_cjs.useConnectedWorkspaceRole();
17796
+ const { members, role } = chunkECCV4YOL_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 {
@@ -18566,7 +18566,10 @@ function ProjectThreads({
18566
18566
  const { data: saved = [] } = react.useWorkflows();
18567
18567
  const spend = react.useProjectConversationUsage(projectId);
18568
18568
  const { openConversation } = chunkUIXY4HKM_cjs.useBlocksEnvironment();
18569
- const titleOf = (c) => c.title || saved.find((w) => w.external_id === c.workflow_ext_id)?.name || labels.untitled;
18569
+ const titleOf = (c) => {
18570
+ const workflow = saved.find((w) => w.external_id === c.workflow_ext_id)?.name;
18571
+ return c.title || workflow && react.workflowRunTitle(workflow, c.created_at) || labels.untitled;
18572
+ };
18570
18573
  const threads = conversations.slice().sort((a, b) => b.created_at.localeCompare(a.created_at));
18571
18574
  const list = /* @__PURE__ */ jsxRuntime.jsxs(ui.Card, { className: aside ? "lg:col-span-2" : void 0, "data-testid": testId, children: [
18572
18575
  /* @__PURE__ */ jsxRuntime.jsx(ui.CardHeader, { children: /* @__PURE__ */ jsxRuntime.jsx(ui.CardTitle, { children: labels.title }) }),
@@ -18727,11 +18730,11 @@ function ConnectedProjectPage({
18727
18730
  figures: { ...DEFAULT_PROJECT_PAGE_LABELS.figures, ...given?.figures },
18728
18731
  threads: { ...DEFAULT_PROJECT_PAGE_LABELS.threads, ...given?.threads }
18729
18732
  };
18730
- const { project, usage, isLoading } = chunkKVKKVSBT_cjs.useProjectSummary(projectId);
18733
+ const { project, usage, isLoading } = chunkXM4KRGCK_cjs.useProjectSummary(projectId);
18731
18734
  const { workspaceId } = chunkWV65MJ43_cjs.useConnectedWorkspace();
18732
18735
  const { notify: notify17 } = chunkUIXY4HKM_cjs.useBlocksEnvironment();
18733
- const selectWorkspace = chunkMB2OXZEA_cjs.useSelectWorkspace();
18734
- const workspace = project ? chunkKVKKVSBT_cjs.primaryProjectWorkspace(project) : void 0;
18736
+ const selectWorkspace = chunkXTCNETMI_cjs.useSelectWorkspace();
18737
+ const workspace = project ? chunkXM4KRGCK_cjs.primaryProjectWorkspace(project) : void 0;
18735
18738
  const open = !!workspace && workspace.id === workspaceId;
18736
18739
  react$1.useEffect(() => {
18737
18740
  if (!workspace || workspace.id === workspaceId) return;
@@ -21115,7 +21118,7 @@ function ConnectedMessengerThread({
21115
21118
  const activeIsSelf = !!activePeer && activePeer.external_id === meId;
21116
21119
  const groupTitle = active?.title ?? null;
21117
21120
  const presence = activePeer ? host.presenceOf?.(activePeer.external_id) : void 0;
21118
- return /* @__PURE__ */ jsxRuntime.jsxs(chunk6OXR4R6J_cjs.PanelFrame, { testId, className, children: [
21121
+ return /* @__PURE__ */ jsxRuntime.jsxs(chunkMMSHLHTA_cjs.PanelFrame, { testId, className, children: [
21119
21122
  children,
21120
21123
  groupChat ? /* @__PURE__ */ jsxRuntime.jsx(
21121
21124
  chunkMOIZ2R5X_cjs.DmThreadHeader,
@@ -21165,7 +21168,7 @@ function ConnectedMessengerThread({
21165
21168
  groupChat.external_id
21166
21169
  ) : null,
21167
21170
  picker.element,
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." }) })
21171
+ /* @__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." }) })
21169
21172
  ] });
21170
21173
  }
21171
21174
  function ConnectedMessenger({
@@ -21187,7 +21190,7 @@ function ConnectedMessenger({
21187
21190
  testId: "dm-messenger"
21188
21191
  }
21189
21192
  );
21190
- return /* @__PURE__ */ jsxRuntime.jsx(chunk6OXR4R6J_cjs.PanelFrame, { testId: "dm-messenger", children: /* @__PURE__ */ jsxRuntime.jsx(
21193
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkMMSHLHTA_cjs.PanelFrame, { testId: "dm-messenger", children: /* @__PURE__ */ jsxRuntime.jsx(
21191
21194
  ConnectedMessengerList,
21192
21195
  {
21193
21196
  activeId: null,
@@ -21403,7 +21406,7 @@ function ConnectedContactsPanel({
21403
21406
  ];
21404
21407
  }, [contactCount, hasActiveFilters, tabActions, dmHeaderTabs]);
21405
21408
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: ui.cn("flex flex-col h-full", className), children: [
21406
- /* @__PURE__ */ jsxRuntime.jsx(chunk6OXR4R6J_cjs.DraggableHeader, { children: /* @__PURE__ */ jsxRuntime.jsx(
21409
+ /* @__PURE__ */ jsxRuntime.jsx(chunkMMSHLHTA_cjs.DraggableHeader, { children: /* @__PURE__ */ jsxRuntime.jsx(
21407
21410
  chunkSJSGSHIT_cjs.TabHeader,
21408
21411
  {
21409
21412
  tabs,
@@ -21438,10 +21441,10 @@ function ConnectedContactsPanel({
21438
21441
  function ConnectedConfigForm({ availableModels, ...rest }) {
21439
21442
  const hasModels = !!availableModels && availableModels.length > 0;
21440
21443
  const renderModelSelect = react$1.useCallback(
21441
- ({ value, onChange }) => /* @__PURE__ */ jsxRuntime.jsx(chunkO2ATVRRO_cjs.ConnectedModelSelector, { value, onValueChange: onChange, className: "w-full" }),
21444
+ ({ value, onChange }) => /* @__PURE__ */ jsxRuntime.jsx(chunkSDXK2COQ_cjs.ConnectedModelSelector, { value, onValueChange: onChange, className: "w-full" }),
21442
21445
  []
21443
21446
  );
21444
- return /* @__PURE__ */ jsxRuntime.jsx(chunkFAKRTCAL_cjs.ConfigForm, { ...rest, renderModelSelect: hasModels ? renderModelSelect : void 0 });
21447
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkJ4CXF4A7_cjs.ConfigForm, { ...rest, renderModelSelect: hasModels ? renderModelSelect : void 0 });
21445
21448
  }
21446
21449
  function ConnectedAgentConfigForm({ agentExtId, agentName, onSaved }) {
21447
21450
  const { notify: notify17 } = chunkUIXY4HKM_cjs.useBlocksEnvironment();
@@ -21558,7 +21561,7 @@ function ConnectedAuthorizeAgent({ onClose, editAgent }) {
21558
21561
  }, [name, selectedWorkspaces, role, createAgent, addWorkspaceUsers, arbi, notify17]);
21559
21562
  if (editAgent) {
21560
21563
  return /* @__PURE__ */ jsxRuntime.jsx(
21561
- chunkFAKRTCAL_cjs.AgentEditView,
21564
+ chunkJ4CXF4A7_cjs.AgentEditView,
21562
21565
  {
21563
21566
  agentName: editAgent.name,
21564
21567
  config: /* @__PURE__ */ jsxRuntime.jsx(
@@ -21574,7 +21577,7 @@ function ConnectedAuthorizeAgent({ onClose, editAgent }) {
21574
21577
  }
21575
21578
  if (view === "main") {
21576
21579
  return /* @__PURE__ */ jsxRuntime.jsx(
21577
- chunkFAKRTCAL_cjs.AgentMainView,
21580
+ chunkJ4CXF4A7_cjs.AgentMainView,
21578
21581
  {
21579
21582
  onConnectExternal: () => setView("connect"),
21580
21583
  config: mainAgent ? /* @__PURE__ */ jsxRuntime.jsx(
@@ -21590,11 +21593,11 @@ function ConnectedAuthorizeAgent({ onClose, editAgent }) {
21590
21593
  }
21591
21594
  if (result) {
21592
21595
  return /* @__PURE__ */ jsxRuntime.jsx(
21593
- chunkFAKRTCAL_cjs.AgentCreatedView,
21596
+ chunkJ4CXF4A7_cjs.AgentCreatedView,
21594
21597
  {
21595
21598
  email: result.email,
21596
21599
  signingKey: result.signingKey,
21597
- instructions: /* @__PURE__ */ jsxRuntime.jsx(chunkFAKRTCAL_cjs.AgentConnectInstructions, { email: result.email, signingKey: result.signingKey }),
21600
+ instructions: /* @__PURE__ */ jsxRuntime.jsx(chunkJ4CXF4A7_cjs.AgentConnectInstructions, { email: result.email, signingKey: result.signingKey }),
21598
21601
  config: /* @__PURE__ */ jsxRuntime.jsx(ConnectedAgentConfigForm, { agentExtId: result.extId, agentName: result.name }),
21599
21602
  isConfigOpen: configOpen,
21600
21603
  onToggleConfig: () => setConfigOpen((v) => !v),
@@ -21603,7 +21606,7 @@ function ConnectedAuthorizeAgent({ onClose, editAgent }) {
21603
21606
  );
21604
21607
  }
21605
21608
  return /* @__PURE__ */ jsxRuntime.jsx(
21606
- chunkFAKRTCAL_cjs.AgentCreateView,
21609
+ chunkJ4CXF4A7_cjs.AgentCreateView,
21607
21610
  {
21608
21611
  name,
21609
21612
  onNameChange: setName,
@@ -21669,7 +21672,7 @@ function ConnectedInviteContactsDialog({
21669
21672
  ConnectedAddContacts,
21670
21673
  {
21671
21674
  onClose: handleClose,
21672
- rewardAmount: chunkBAJNXRI5_cjs.formatMoney(REFERRAL_OFFER.amount, REFERRAL_OFFER.currency)
21675
+ rewardAmount: chunkDDIV3MYQ_cjs.formatMoney(REFERRAL_OFFER.amount, REFERRAL_OFFER.currency)
21673
21676
  }
21674
21677
  ),
21675
21678
  isDeveloper && /* @__PURE__ */ jsxRuntime.jsxs(
@@ -21798,13 +21801,13 @@ function ConnectedNewThreadDialog({
21798
21801
  });
21799
21802
  const parentOptions = react$1.useMemo(() => {
21800
21803
  const leaf = { external_id: "__new__" };
21801
- return chunkFAKRTCAL_cjs.moveTargets([...tasks, leaf], leaf).map((t) => ({
21804
+ return chunkJ4CXF4A7_cjs.moveTargets([...tasks, leaf], leaf).map((t) => ({
21802
21805
  id: t.external_id,
21803
21806
  name: t.title?.trim() || "Untitled task"
21804
21807
  }));
21805
21808
  }, [tasks]);
21806
21809
  const submit = async (values) => {
21807
- const request = chunkFAKRTCAL_cjs.newThreadToRequest(values);
21810
+ const request = chunkJ4CXF4A7_cjs.newThreadToRequest(values);
21808
21811
  try {
21809
21812
  if (!workspaceId) throw new Error("Open a workspace to add a task.");
21810
21813
  if (!request.startAssistant && request.todo) {
@@ -21845,7 +21848,7 @@ function ConnectedNewThreadDialog({
21845
21848
  }
21846
21849
  };
21847
21850
  return /* @__PURE__ */ jsxRuntime.jsx(
21848
- chunkFAKRTCAL_cjs.NewThreadDialog,
21851
+ chunkJ4CXF4A7_cjs.NewThreadDialog,
21849
21852
  {
21850
21853
  open,
21851
21854
  onOpenChange,
@@ -21965,14 +21968,14 @@ var referencesOf = (inputs) => {
21965
21968
  return value?.documents ?? [];
21966
21969
  };
21967
21970
  var PROMPT_BINDINGS = {
21968
- [chunkFAKRTCAL_cjs.GENERATE_IMAGE_ID]: {
21971
+ [chunkJ4CXF4A7_cjs.GENERATE_IMAGE_ID]: {
21969
21972
  attachScope: false,
21970
21973
  tools: (inputs) => {
21971
21974
  const aspectRatio = typeof inputs.aspect_ratio === "string" ? inputs.aspect_ratio : "";
21972
21975
  return {
21973
21976
  retrieval_chunk: browser.buildRetrievalChunkTool([]),
21974
21977
  retrieval_full_context: browser.buildRetrievalFullContextTool(referencesOf(inputs)),
21975
- ...aspectRatio && aspectRatio !== chunkFAKRTCAL_cjs.IMAGE_ASPECT_AUTO ? {
21978
+ ...aspectRatio && aspectRatio !== chunkJ4CXF4A7_cjs.IMAGE_ASPECT_AUTO ? {
21976
21979
  image_generation: {
21977
21980
  name: "image_generation",
21978
21981
  description: "image generation",
@@ -21993,19 +21996,19 @@ var text = (inputs, name) => {
21993
21996
  function useLaunchWorkflow({ landing: surfaceLanding } = {}) {
21994
21997
  const { data: documents = [] } = react.useDocuments();
21995
21998
  const { data: workspaceTags = [] } = react.useTags();
21996
- const tags = react$1.useMemo(() => chunkZBQTFA5X_cjs.documentScopeLabels(workspaceTags), [workspaceTags]);
21999
+ const tags = react$1.useMemo(() => chunkSYWJNSPS_cjs.documentScopeLabels(workspaceTags), [workspaceTags]);
21997
22000
  const createTag = react.useCreateTag();
21998
22001
  const updateTag = react.useUpdateTag();
21999
22002
  const generate = react.useGenerateDocTags();
22000
- const { create: createTask } = chunkKVKKVSBT_cjs.useWorkflowTasks();
22003
+ const { create: createTask } = chunkXM4KRGCK_cjs.useWorkflowTasks();
22001
22004
  const applyModel = react.useApplyChatModel();
22002
22005
  const session = react.useArbiSessionStore();
22003
22006
  const { notify: notify17, openFiles, openNewConversation } = chunkUIXY4HKM_cjs.useBlocksEnvironment();
22004
22007
  const annotate = react$1.useCallback(
22005
22008
  async ({ inputs, scope }) => {
22006
22009
  const description = text(inputs, "description");
22007
- const name = text(inputs, "name") || chunkFAKRTCAL_cjs.deriveAnnotationName(description);
22008
- const matching = chunkZBQTFA5X_cjs.matchWorkflowScope(documents, scope);
22010
+ const name = text(inputs, "name") || chunkJ4CXF4A7_cjs.deriveAnnotationName(description);
22011
+ const matching = chunkSYWJNSPS_cjs.matchWorkflowScope(documents, scope);
22009
22012
  if (!name || !description || matching.length === 0) return;
22010
22013
  try {
22011
22014
  const existing = tags.find((t) => t.name.toLowerCase() === name.toLowerCase());
@@ -22048,9 +22051,9 @@ function useLaunchWorkflow({ landing: surfaceLanding } = {}) {
22048
22051
  async (launch) => {
22049
22052
  const { workflow, inputs, scope, agentId } = launch;
22050
22053
  if (workflow.run.kind === "operation") {
22051
- if (workflow.id === chunkFAKRTCAL_cjs.ANNOTATE_ID) {
22054
+ if (workflow.id === chunkJ4CXF4A7_cjs.ANNOTATE_ID) {
22052
22055
  await annotate(launch);
22053
- chunkFAKRTCAL_cjs.recordWorkflowUse(workflow.id);
22056
+ chunkJ4CXF4A7_cjs.recordWorkflowUse(workflow.id);
22054
22057
  return;
22055
22058
  }
22056
22059
  throw new Error(`No host handler for workflow "${workflow.id}"`);
@@ -22060,7 +22063,7 @@ function useLaunchWorkflow({ landing: surfaceLanding } = {}) {
22060
22063
  );
22061
22064
  const prompt = chunk5GQOIQCB_cjs.composeWorkflowPrompt(workflow, inputs, { documentTitles });
22062
22065
  if (!prompt) return;
22063
- chunkFAKRTCAL_cjs.recordWorkflowUse(workflow.id);
22066
+ chunkJ4CXF4A7_cjs.recordWorkflowUse(workflow.id);
22064
22067
  if (agentId) {
22065
22068
  try {
22066
22069
  const created = await createTask({
@@ -22105,7 +22108,7 @@ function useLaunchWorkflow({ landing: surfaceLanding } = {}) {
22105
22108
  const binding = PROMPT_BINDINGS[workflow.id];
22106
22109
  if (!inPlace) openNewConversation();
22107
22110
  if (binding?.attachScope !== false && !chunk5GQOIQCB_cjs.isEmptyWorkflowScope(scope)) {
22108
- const ids = chunkZBQTFA5X_cjs.matchWorkflowScope(documents, scope).map((d) => d.external_id);
22111
+ const ids = chunkSYWJNSPS_cjs.matchWorkflowScope(documents, scope).map((d) => d.external_id);
22109
22112
  if (ids.length > 0) {
22110
22113
  session.setConversationDocuments(
22111
22114
  inPlace ? session.getState().conversationId ?? "new" : "new",
@@ -22140,30 +22143,30 @@ function ConnectedWorkflowStart({
22140
22143
  const onLaunch = useLaunchWorkflow({ landing });
22141
22144
  const { openUpload } = chunkUIXY4HKM_cjs.useBlocksEnvironment();
22142
22145
  const { data: workspaceTags = [] } = react.useTags();
22143
- const tags = react$1.useMemo(() => chunkZBQTFA5X_cjs.documentScopeLabels(workspaceTags), [workspaceTags]);
22146
+ const tags = react$1.useMemo(() => chunkSYWJNSPS_cjs.documentScopeLabels(workspaceTags), [workspaceTags]);
22144
22147
  const fieldPlaceholder = react$1.useCallback(
22145
22148
  (field, inputs, workflow) => {
22146
- if (workflow.id !== chunkFAKRTCAL_cjs.ANNOTATE_ID || field.name !== "name") return void 0;
22147
- const derived = chunkFAKRTCAL_cjs.deriveAnnotationName(String(inputs.description ?? ""));
22149
+ if (workflow.id !== chunkJ4CXF4A7_cjs.ANNOTATE_ID || field.name !== "name") return void 0;
22150
+ const derived = chunkJ4CXF4A7_cjs.deriveAnnotationName(String(inputs.description ?? ""));
22148
22151
  return derived ? `Otherwise \u201C${derived}\u201D` : "Taken from the description";
22149
22152
  },
22150
22153
  []
22151
22154
  );
22152
22155
  return /* @__PURE__ */ jsxRuntime.jsx(
22153
- chunkZJ3NII4U_cjs.ConnectedWorkflowLauncher,
22156
+ chunkECCV4YOL_cjs.ConnectedWorkflowLauncher,
22154
22157
  {
22155
22158
  ...rest,
22156
22159
  workflows,
22157
22160
  onLaunch,
22158
- renderIcon: chunkFAKRTCAL_cjs.renderWorkflowIcon,
22161
+ renderIcon: chunkJ4CXF4A7_cjs.renderWorkflowIcon,
22159
22162
  onAddFiles: openUpload,
22160
22163
  agentLabels: AGENT_LABELS,
22161
22164
  addFilesAction,
22162
22165
  fieldPlaceholder,
22163
- submitLabel: ({ workflow, matchedCount }) => workflow.id === chunkFAKRTCAL_cjs.ANNOTATE_ID && matchedCount !== null ? `Annotate ${matchedCount} document${matchedCount !== 1 ? "s" : ""}` : void 0,
22166
+ submitLabel: ({ workflow, matchedCount }) => workflow.id === chunkJ4CXF4A7_cjs.ANNOTATE_ID && matchedCount !== null ? `Annotate ${matchedCount} document${matchedCount !== 1 ? "s" : ""}` : void 0,
22164
22167
  renderNotice: ({ workflow, inputs }) => {
22165
- if (workflow.id !== chunkFAKRTCAL_cjs.ANNOTATE_ID) return null;
22166
- const name = String(inputs.name ?? "").trim() || chunkFAKRTCAL_cjs.deriveAnnotationName(String(inputs.description ?? ""));
22168
+ if (workflow.id !== chunkJ4CXF4A7_cjs.ANNOTATE_ID) return null;
22169
+ const name = String(inputs.name ?? "").trim() || chunkJ4CXF4A7_cjs.deriveAnnotationName(String(inputs.description ?? ""));
22167
22170
  const existing = name ? tags.find((t) => t.name.toLowerCase() === name.toLowerCase()) : void 0;
22168
22171
  if (!existing) return null;
22169
22172
  return /* @__PURE__ */ jsxRuntime.jsxs(
@@ -22192,7 +22195,7 @@ var TILE_TEST_IDS = {
22192
22195
  annotate: "workspace-dashboard-quick-action-annotate"
22193
22196
  };
22194
22197
  function DashboardStart({ addMenu, onCreateNew }) {
22195
- const { dashboard: workflows } = chunkKVKKVSBT_cjs.useWorkflowDefinitions();
22198
+ const { dashboard: workflows } = chunkXM4KRGCK_cjs.useWorkflowDefinitions();
22196
22199
  const { isMember, role } = react.useCurrentWorkspace();
22197
22200
  const canWrite = isMember && role !== "guest";
22198
22201
  const [activeId, setActiveId] = react$1.useState(null);
@@ -22218,7 +22221,7 @@ function DashboardStart({ addMenu, onCreateNew }) {
22218
22221
  }
22219
22222
  ] : void 0,
22220
22223
  tileTestId: (workflow) => TILE_TEST_IDS[workflow.id],
22221
- disabledReason: (workflow) => !canWrite && workflow.id === chunkFAKRTCAL_cjs.ANNOTATE_ID ? "Only workspace members can annotate files" : void 0
22224
+ disabledReason: (workflow) => !canWrite && workflow.id === chunkJ4CXF4A7_cjs.ANNOTATE_ID ? "Only workspace members can annotate files" : void 0
22222
22225
  }
22223
22226
  );
22224
22227
  }
@@ -22249,7 +22252,7 @@ function recentConversations(conversations) {
22249
22252
  return [...conversations].sort((a, b) => time(b.updated_at) - time(a.updated_at)).slice(0, RECENT_ROWS).map((c) => ({
22250
22253
  id: c.external_id,
22251
22254
  title: c.title?.trim() || "Untitled thread",
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"}`,
22255
+ subtitle: c.status ? [chunkJ4CXF4A7_cjs.STATUS_LABELS[chunkJ4CXF4A7_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
22256
  time: timeAndDate(c.updated_at)
22254
22257
  }));
22255
22258
  }
@@ -22625,7 +22628,7 @@ function parseTypedSkill(draft) {
22625
22628
  return m ? { slug: m[1].toLowerCase(), text: (m[2] ?? "").trim() } : null;
22626
22629
  }
22627
22630
  function useSlashSkillWorkflows({ landing }) {
22628
- const { skills, skillsEnabled } = chunkKVKKVSBT_cjs.useWorkflowDefinitions();
22631
+ const { skills, skillsEnabled } = chunkXM4KRGCK_cjs.useWorkflowDefinitions();
22629
22632
  const { commands } = react.useBuiltinCommands();
22630
22633
  const [active, setActive] = react$1.useState(null);
22631
22634
  const open = (workflow, text2) => {
@@ -22684,7 +22687,7 @@ function ConnectedAskField({
22684
22687
  filteredItems,
22685
22688
  isOpen: isSlashMenuOpen,
22686
22689
  canBrowseSkills
22687
- } = chunkO2ATVRRO_cjs.useSlashItems(text2, chunkFAKRTCAL_cjs.BUILTIN_SKILLS);
22690
+ } = chunkSDXK2COQ_cjs.useSlashItems(text2, chunkJ4CXF4A7_cjs.BUILTIN_SKILLS);
22688
22691
  const slashWorkflows = useSlashSkillWorkflows({ landing: "chat" });
22689
22692
  const insertSlashItem = (item) => {
22690
22693
  if (slashWorkflows.openFor(item)) {
@@ -22723,7 +22726,7 @@ function ConnectedAskField({
22723
22726
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
22724
22727
  slashWorkflows.launcher,
22725
22728
  /* @__PURE__ */ jsxRuntime.jsx(
22726
- chunkCMMFXSTS_cjs.AskField,
22729
+ chunkHXWBXYVN_cjs.AskField,
22727
22730
  {
22728
22731
  value: text2,
22729
22732
  onValueChange: setText,
@@ -23305,7 +23308,7 @@ function useDocumentFilters({
23305
23308
  [documentFilters]
23306
23309
  );
23307
23310
  const baseFilteredDocuments = react$1.useMemo(
23308
- () => chunk6OXR4R6J_cjs.applyInvertedIndexFilter(documents, documentFilters, invertedIndex, getDocId),
23311
+ () => chunkMMSHLHTA_cjs.applyInvertedIndexFilter(documents, documentFilters, invertedIndex, getDocId),
23309
23312
  [documents, documentFilters, invertedIndex]
23310
23313
  );
23311
23314
  const filteredDocuments = react$1.useMemo(() => {
@@ -26234,7 +26237,7 @@ function ConnectedSecureMailClaimPage({
26234
26237
  }) {
26235
26238
  const authenticated = react.useArbiSession().status === "signed-in";
26236
26239
  const { openMail } = chunkUIXY4HKM_cjs.useBlocksEnvironment();
26237
- const { loading } = chunkO2ATVRRO_cjs.useAuthPages();
26240
+ const { loading } = chunkSDXK2COQ_cjs.useAuthPages();
26238
26241
  const claim = react.useClaimSecureMail();
26239
26242
  const [, setFirstLoginWorkspaces] = react.useTransientView(FIRST_LOGIN_WORKSPACES_VIEW, null);
26240
26243
  const [failure, setFailure] = react$1.useState(null);
@@ -26274,7 +26277,7 @@ function ConnectedSecureMailClaimPage({
26274
26277
  }
26275
26278
  })();
26276
26279
  }, [authenticated, claimId, key]);
26277
- if (!error) return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: loading ?? /* @__PURE__ */ jsxRuntime.jsx(chunkZA3ZELSH_cjs.LoadingIndicator, { variant: "splash" }) });
26280
+ if (!error) return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: loading ?? /* @__PURE__ */ jsxRuntime.jsx(chunkCCALU47C_cjs.LoadingIndicator, { variant: "splash" }) });
26278
26281
  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
26282
  /* @__PURE__ */ jsxRuntime.jsx("p", { role: "alert", className: "mb-4 text-sm text-destructive", children: error }),
26280
26283
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -27665,7 +27668,7 @@ function EventEditorDialog({
27665
27668
  const { notify: notify17, runtimeConfig } = chunkUIXY4HKM_cjs.useBlocksEnvironment();
27666
27669
  const attachmentDocuments = documents.map((document2) => ({
27667
27670
  doc_id: document2.external_id,
27668
- title: chunkZJ3NII4U_cjs.toWorkflowFieldDocument(document2).title,
27671
+ title: chunkECCV4YOL_cjs.toWorkflowFieldDocument(document2).title,
27669
27672
  url: chunkLJJJ6CYH_cjs.buildDeepLinkUrl(
27670
27673
  { workspaceId: workspaceId ?? void 0, documentId: document2.external_id },
27671
27674
  runtimeConfig.deploymentDomain
@@ -32271,7 +32274,7 @@ function useBatchCompleteToasts() {
32271
32274
  }
32272
32275
  }, AI_FIELDS_NOTICE_WINDOW_MS);
32273
32276
  } else if (message.batch_type === "entity_extract") {
32274
- say(`${chunkZA3ZELSH_cjs.entitiesPhrase()} extracted from ${chunkZA3ZELSH_cjs.documentCount(docIds.length)}`, "success", {
32277
+ say(`${chunkCCALU47C_cjs.entitiesPhrase()} extracted from ${chunkCCALU47C_cjs.documentCount(docIds.length)}`, "success", {
32275
32278
  ...openTags && { action: { label: "View", onClick: openTags } }
32276
32279
  });
32277
32280
  } else if (message.batch_type === "upload") {
@@ -33094,13 +33097,13 @@ var TABLET_TABLE_BELOW = 860;
33094
33097
  var TABLET_VIEWPORT_BELOW = 1100;
33095
33098
  var NO_CONVERSATION_DOCUMENTS2 = [];
33096
33099
  var DocumentReviewCard = react$1.lazy(
33097
- () => import('../DocumentReviewCard-3H66FMMO.cjs').then((module) => ({ default: module.DocumentReviewCard }))
33100
+ () => import('../DocumentReviewCard-E3HB3K2G.cjs').then((module) => ({ default: module.DocumentReviewCard }))
33098
33101
  );
33099
33102
  var FilesViewerDialog = react$1.lazy(
33100
- () => import('../FilesViewerDialog-DSK5HMLL.cjs').then((module) => ({ default: module.FilesViewerDialog }))
33103
+ () => import('../FilesViewerDialog-3KWTQARB.cjs').then((module) => ({ default: module.FilesViewerDialog }))
33101
33104
  );
33102
33105
  function defaultReviewCard(props) {
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}`) });
33106
+ return /* @__PURE__ */ jsxRuntime.jsx(react$1.Suspense, { fallback: /* @__PURE__ */ jsxRuntime.jsx(chunkCCALU47C_cjs.LoadingIndicator, { message: "Loading document viewer..." }), children: /* @__PURE__ */ jsxRuntime.jsx(DocumentReviewCard, { ...props }, `navigator-${props.currentDocument.external_id}`) });
33104
33107
  }
33105
33108
  function ConnectedFilesPage({
33106
33109
  isModal = false,
@@ -33143,7 +33146,7 @@ function ConnectedFilesPage({
33143
33146
  const deleteDocuments = react.useDeleteDocuments();
33144
33147
  const isDocumentsPending = isLoading && documents.length === 0;
33145
33148
  const { workspaceId, userId, live } = chunkWV65MJ43_cjs.useConnectedWorkspace();
33146
- const { role, members } = chunkZJ3NII4U_cjs.useConnectedWorkspaceRole();
33149
+ const { role, members } = chunkECCV4YOL_cjs.useConnectedWorkspaceRole();
33147
33150
  const { data: workspaces } = react.useWorkspaces({ enabled: live });
33148
33151
  const workspace = workspaces?.find((w) => w.external_id === workspaceId);
33149
33152
  const workspaceName = workspace?.name;
@@ -33661,7 +33664,7 @@ function ConnectedFilesPage({
33661
33664
  viewMode === "grid" ? (
33662
33665
  // ‹ n / N › over the table's displayed rows; a step opens the document.
33663
33666
  /* @__PURE__ */ jsxRuntime.jsx(
33664
- chunkZA3ZELSH_cjs.GridRowNavigator,
33667
+ chunkCCALU47C_cjs.GridRowNavigator,
33665
33668
  {
33666
33669
  gridApi,
33667
33670
  selectedId: viewingDocumentId ?? selectedDocumentIds[0] ?? null,
@@ -33964,7 +33967,7 @@ function ProcessingSection({
33964
33967
  tasks,
33965
33968
  onDelete
33966
33969
  }) {
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 }) });
33970
+ return /* @__PURE__ */ jsxRuntime.jsx(chunk33MKOWSA_cjs.TaskSection, { title, count: count2, status, tooltip: SECTION_TOOLTIPS[status], children: /* @__PURE__ */ jsxRuntime.jsx(chunkJ4CXF4A7_cjs.UploadTaskList, { tasks, title: "", onDelete, renderFileIcon: renderFileIcon2 }) });
33968
33971
  }
33969
33972
  function ConnectedDocumentProcessingPanel({
33970
33973
  workspaceId,
@@ -34255,7 +34258,7 @@ function ConnectedProcessingStatus({ onClick }) {
34255
34258
  const tone = pulse === "error" ? "error" : pulse === "success" ? "success" : "progress";
34256
34259
  const label = pulse === "error" ? `${failed} failed` : pulse === "success" ? "Processed" : `${active} processing`;
34257
34260
  return /* @__PURE__ */ jsxRuntime.jsx(
34258
- chunkCMMFXSTS_cjs.StatusBadge,
34261
+ chunkHXWBXYVN_cjs.StatusBadge,
34259
34262
  {
34260
34263
  tone,
34261
34264
  label,
@@ -34846,7 +34849,7 @@ function DeveloperFooter({
34846
34849
  }, [configVersions, configToLoad, parentMessage?.config_ext_id]);
34847
34850
  const hasLoadedConfig = !!loadedConfigId && loadedConfigId !== "default";
34848
34851
  return /* @__PURE__ */ jsxRuntime.jsx(
34849
- chunk6OXR4R6J_cjs.ConfigSwitcherBar,
34852
+ chunkMMSHLHTA_cjs.ConfigSwitcherBar,
34850
34853
  {
34851
34854
  options: options2,
34852
34855
  value: loadedConfigId || "default",
@@ -35115,8 +35118,8 @@ function ConnectedDeveloperConfig({ modeSwitcher } = {}) {
35115
35118
  handleDeleteConfig,
35116
35119
  handleLoadConfig
35117
35120
  } = useDeveloperConfig();
35118
- return /* @__PURE__ */ jsxRuntime.jsxs(chunk6OXR4R6J_cjs.PanelFrame, { testId: "developer-config", children: [
35119
- /* @__PURE__ */ jsxRuntime.jsx(chunk6OXR4R6J_cjs.DraggableHeader, { children: /* @__PURE__ */ jsxRuntime.jsx(
35121
+ return /* @__PURE__ */ jsxRuntime.jsxs(chunkMMSHLHTA_cjs.PanelFrame, { testId: "developer-config", children: [
35122
+ /* @__PURE__ */ jsxRuntime.jsx(chunkMMSHLHTA_cjs.DraggableHeader, { children: /* @__PURE__ */ jsxRuntime.jsx(
35120
35123
  chunkSJSGSHIT_cjs.TabHeader,
35121
35124
  {
35122
35125
  tabs: [{ id: "config", label: "Developer Config", icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Code2, { className: "size-4" }) }],
@@ -35126,7 +35129,7 @@ function ConnectedDeveloperConfig({ modeSwitcher } = {}) {
35126
35129
  rightContent: modeSwitcher
35127
35130
  }
35128
35131
  ) }),
35129
- /* @__PURE__ */ jsxRuntime.jsx(chunk6OXR4R6J_cjs.PanelFrameBody, { className: "overflow-auto p-4", children: configSchema ? /* @__PURE__ */ jsxRuntime.jsx(
35132
+ /* @__PURE__ */ jsxRuntime.jsx(chunkMMSHLHTA_cjs.PanelFrameBody, { className: "overflow-auto p-4", children: configSchema ? /* @__PURE__ */ jsxRuntime.jsx(
35130
35133
  ConnectedConfigForm,
35131
35134
  {
35132
35135
  schema: configSchema,
@@ -35134,7 +35137,7 @@ function ConnectedDeveloperConfig({ modeSwitcher } = {}) {
35134
35137
  onChange: handleConfigChange,
35135
35138
  availableModels: availableModels?.models
35136
35139
  }
35137
- ) : /* @__PURE__ */ jsxRuntime.jsx(chunk6OXR4R6J_cjs.PanelNote, { children: "Loading configuration schema..." }) }),
35140
+ ) : /* @__PURE__ */ jsxRuntime.jsx(chunkMMSHLHTA_cjs.PanelNote, { children: "Loading configuration schema..." }) }),
35138
35141
  /* @__PURE__ */ jsxRuntime.jsx(
35139
35142
  DeveloperFooter,
35140
35143
  {
@@ -35654,7 +35657,7 @@ function ConnectedAccountCluster({
35654
35657
  layout
35655
35658
  );
35656
35659
  return /* @__PURE__ */ jsxRuntime.jsx(
35657
- chunkCMMFXSTS_cjs.ActionCluster,
35660
+ chunkHXWBXYVN_cjs.ActionCluster,
35658
35661
  {
35659
35662
  layout,
35660
35663
  status: layout === "bar" ? status : null,
@@ -35669,7 +35672,7 @@ function ConnectedAccountCluster({
35669
35672
  }
35670
35673
  );
35671
35674
  }
35672
- var gbp3 = (pence) => chunkBAJNXRI5_cjs.formatMoney(pence, "gbp");
35675
+ var gbp3 = (pence) => chunkDDIV3MYQ_cjs.formatMoney(pence, "gbp");
35673
35676
  function addonArrivalMessage(addons, added) {
35674
35677
  const parts = [];
35675
35678
  if (added.ai > 0) parts.push(`${react.formatGbp(added.ai * addons.block_ai_gbp)} of AI usage`);
@@ -36082,7 +36085,7 @@ function ConnectedAppRuntime({
36082
36085
  prefetch
36083
36086
  }) {
36084
36087
  const on = (effect) => effects[effect] !== false;
36085
- const { stripeEnabled } = chunkBAJNXRI5_cjs.useBillingSupport();
36088
+ const { stripeEnabled } = chunkDDIV3MYQ_cjs.useBillingSupport();
36086
36089
  const welcomeDialog = on("welcomeDialog") && stripeEnabled;
36087
36090
  const resolveFirstLogin = () => {
36088
36091
  if (welcomeDialog) skipWelcomeDialogThisSession();
@@ -37086,9 +37089,9 @@ function resolveLaunchInputs(workflow, request) {
37086
37089
  return { ...fromContext, ...fromScope, ...request.inputs };
37087
37090
  }
37088
37091
  function useWorkflowLaunch() {
37089
- const { skills } = chunkKVKKVSBT_cjs.useWorkflowDefinitions();
37092
+ const { skills } = chunkXM4KRGCK_cjs.useWorkflowDefinitions();
37090
37093
  const launch = react$1.useCallback(
37091
- (workflowId, options2 = {}) => chunkFAKRTCAL_cjs.openWorkflowLaunch({ workflowId, ...options2 }),
37094
+ (workflowId, options2 = {}) => chunkJ4CXF4A7_cjs.openWorkflowLaunch({ workflowId, ...options2 }),
37092
37095
  []
37093
37096
  );
37094
37097
  const itemsFor = react$1.useCallback(
@@ -37117,9 +37120,9 @@ function useWorkflowLaunch() {
37117
37120
  return { launch, itemsFor, scopeItemsFor };
37118
37121
  }
37119
37122
  function Inner() {
37120
- const request = chunkFAKRTCAL_cjs.useWorkflowLaunchRequest();
37121
- const close = chunkFAKRTCAL_cjs.closeWorkflowLaunch;
37122
- const { skills } = chunkKVKKVSBT_cjs.useWorkflowDefinitions();
37123
+ const request = chunkJ4CXF4A7_cjs.useWorkflowLaunchRequest();
37124
+ const close = chunkJ4CXF4A7_cjs.closeWorkflowLaunch;
37125
+ const { skills } = chunkXM4KRGCK_cjs.useWorkflowDefinitions();
37123
37126
  const run = useLaunchWorkflow({ landing: request?.landing });
37124
37127
  const workflow = skills.find((w) => w.id === request?.workflowId);
37125
37128
  const inputs = react$1.useMemo(
@@ -37156,7 +37159,7 @@ function Inner() {
37156
37159
  );
37157
37160
  }
37158
37161
  function WorkflowLaunchHost() {
37159
- return chunkFAKRTCAL_cjs.useWorkflowLaunchRequest() ? /* @__PURE__ */ jsxRuntime.jsx(Inner, {}) : null;
37162
+ return chunkJ4CXF4A7_cjs.useWorkflowLaunchRequest() ? /* @__PURE__ */ jsxRuntime.jsx(Inner, {}) : null;
37160
37163
  }
37161
37164
  function isNeedsConfirmationDetail(detail) {
37162
37165
  return typeof detail === "object" && detail !== null && detail.needs_confirmation === "resource_private";
@@ -37446,9 +37449,9 @@ function ConnectedConversationSettings() {
37446
37449
  });
37447
37450
  if (confirmed) settings.share();
37448
37451
  };
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: [
37452
+ 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: [
37450
37453
  !settings.isNewConversation && /* @__PURE__ */ jsxRuntime.jsx(
37451
- chunk6OXR4R6J_cjs.ConversationTitleSection,
37454
+ chunkMMSHLHTA_cjs.ConversationTitleSection,
37452
37455
  {
37453
37456
  title: settings.title,
37454
37457
  onTitleChange: settings.setTitle,
@@ -37466,9 +37469,9 @@ function ConnectedConversationSettings() {
37466
37469
  }
37467
37470
  ),
37468
37471
  /* @__PURE__ */ jsxRuntime.jsx(
37469
- chunk6OXR4R6J_cjs.ModelSelectionSection,
37472
+ chunkMMSHLHTA_cjs.ModelSelectionSection,
37470
37473
  {
37471
- selector: /* @__PURE__ */ jsxRuntime.jsx(chunkO2ATVRRO_cjs.ConnectedModelSelector, {}),
37474
+ selector: /* @__PURE__ */ jsxRuntime.jsx(chunkSDXK2COQ_cjs.ConnectedModelSelector, {}),
37472
37475
  onUseDefaults: settings.resetToDefaults
37473
37476
  }
37474
37477
  )
@@ -37527,7 +37530,7 @@ var BUILTIN_GLOBAL_DIALOGS = {
37527
37530
  testId: "workspace-transfer-modal"
37528
37531
  }
37529
37532
  ),
37530
- logout: ({ props, onClose }) => /* @__PURE__ */ jsxRuntime.jsx(chunkO2ATVRRO_cjs.ConnectedLogoutDialog, { open: props !== null, onClose }),
37533
+ logout: ({ props, onClose }) => /* @__PURE__ */ jsxRuntime.jsx(chunkSDXK2COQ_cjs.ConnectedLogoutDialog, { open: props !== null, onClose }),
37531
37534
  conversationSettings: ({ props, onClose }) => /* @__PURE__ */ jsxRuntime.jsx(ConnectedConversationSettingsDialog, { open: props !== null, onClose }),
37532
37535
  unarchiveWorkspace: ({ props, onClose }) => /* @__PURE__ */ jsxRuntime.jsx(ConnectedUnarchiveWorkspaceDialog, { workspaceId: props?.workspaceId ?? null, onClose }),
37533
37536
  productionSet: ConnectedProductionSetDialog,
@@ -37604,7 +37607,7 @@ function WorkflowRunStatusCell({ conversation }) {
37604
37607
  return person ? ui.getUserDisplayName(person) : void 0;
37605
37608
  };
37606
37609
  return /* @__PURE__ */ jsxRuntime.jsx(
37607
- chunkFAKRTCAL_cjs.WorkflowRunStatus,
37610
+ chunkJ4CXF4A7_cjs.WorkflowRunStatus,
37608
37611
  {
37609
37612
  steps,
37610
37613
  states,
@@ -37638,7 +37641,7 @@ function ConversationStatusCell({ conversation }) {
37638
37641
  if (conversation.plan?.steps?.length && !isLiveGenerating)
37639
37642
  return /* @__PURE__ */ jsxRuntime.jsx(WorkflowRunStatusCell, { conversation });
37640
37643
  return /* @__PURE__ */ jsxRuntime.jsx(
37641
- chunkFAKRTCAL_cjs.ThreadStatusLine,
37644
+ chunkJ4CXF4A7_cjs.ThreadStatusLine,
37642
37645
  {
37643
37646
  state: threadStateOf(conversation, isLiveGenerating),
37644
37647
  className: "h-full",
@@ -37951,7 +37954,7 @@ function ConnectedThreadLauncher({ autoFocus }) {
37951
37954
  setDraft("");
37952
37955
  };
37953
37956
  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(
37954
- chunkO2ATVRRO_cjs.ConversationComposer,
37957
+ chunkSDXK2COQ_cjs.ConversationComposer,
37955
37958
  {
37956
37959
  value: draft,
37957
37960
  onValueChange: setDraft,
@@ -37959,7 +37962,7 @@ function ConnectedThreadLauncher({ autoFocus }) {
37959
37962
  handleSendMessage: send,
37960
37963
  isConversationEmpty: true,
37961
37964
  shouldOfferFollowUp: false,
37962
- modelSelector: /* @__PURE__ */ jsxRuntime.jsx(chunkO2ATVRRO_cjs.ConnectedModelSelector, { variant: "compact" }),
37965
+ modelSelector: /* @__PURE__ */ jsxRuntime.jsx(chunkSDXK2COQ_cjs.ConnectedModelSelector, { variant: "compact" }),
37963
37966
  rightButton: /* @__PURE__ */ jsxRuntime.jsx(chunkZ6JUJI4A_cjs.ComposerSend, { onSend: send, disabled: !draft.trim() })
37964
37967
  }
37965
37968
  ) }) });
@@ -37967,7 +37970,7 @@ function ConnectedThreadLauncher({ autoFocus }) {
37967
37970
  var START_VISIBLE = 8;
37968
37971
  var START_SEARCH_ABOVE = 8;
37969
37972
  function ConnectedConversationStart() {
37970
- const { start } = chunkKVKKVSBT_cjs.useWorkflowDefinitions();
37973
+ const { start } = chunkXM4KRGCK_cjs.useWorkflowDefinitions();
37971
37974
  const { openSkillsBrowser } = chunkUIXY4HKM_cjs.useBlocksEnvironment();
37972
37975
  const [query, setQuery] = react$1.useState("");
37973
37976
  const q = query.trim().toLowerCase();
@@ -37982,7 +37985,7 @@ function ConnectedConversationStart() {
37982
37985
  const browse = openSkillsBrowser ? [
37983
37986
  {
37984
37987
  id: "browse-all",
37985
- iconNode: chunkFAKRTCAL_cjs.renderWorkflowIcon("library"),
37988
+ iconNode: chunkJ4CXF4A7_cjs.renderWorkflowIcon("library"),
37986
37989
  title: "Browse all",
37987
37990
  description: "See every skill, make a copy, add your own",
37988
37991
  onSelect: () => openSkillsBrowser(),
@@ -38088,7 +38091,7 @@ function AgentBarShell({
38088
38091
  }, [isStepsExpanded, steps]);
38089
38092
  const visibleStepCount = react$1.useMemo(() => browser.topLevelAgentSteps(steps ?? []).length, [steps]);
38090
38093
  return /* @__PURE__ */ jsxRuntime.jsx(
38091
- chunkFAKRTCAL_cjs.AgentBar,
38094
+ chunkJ4CXF4A7_cjs.AgentBar,
38092
38095
  {
38093
38096
  className,
38094
38097
  testId,
@@ -38100,7 +38103,7 @@ function AgentBarShell({
38100
38103
  drawerRef: scrollRef,
38101
38104
  onDrawerScroll: handleDrawerScroll,
38102
38105
  drawer: /* @__PURE__ */ jsxRuntime.jsx(
38103
- chunkO2ATVRRO_cjs.AgentSteps,
38106
+ chunkSDXK2COQ_cjs.AgentSteps,
38104
38107
  {
38105
38108
  steps: stepList,
38106
38109
  isStreaming,
@@ -38152,7 +38155,7 @@ function AgentControlBar({
38152
38155
  const waitingOnChildren = runningLanes.length > 0 && ["sub_agent", "spawn_subagent", "deep_research", "run_skill"].includes(currentTool ?? "");
38153
38156
  const waitingLabel = runningLanes.length === 1 ? `Waiting on ${runningLanes[0].job}` : `Waiting on ${runningLanes.length} sub-agents`;
38154
38157
  const liveTimerNode = liveTimer && /* @__PURE__ */ jsxRuntime.jsx(
38155
- chunkO2ATVRRO_cjs.MessageLiveSeconds,
38158
+ chunkSDXK2COQ_cjs.MessageLiveSeconds,
38156
38159
  {
38157
38160
  ...liveTimer,
38158
38161
  offsetSeconds: currentStep?.t ?? 0,
@@ -38161,7 +38164,7 @@ function AgentControlBar({
38161
38164
  }
38162
38165
  );
38163
38166
  const status = /* @__PURE__ */ jsxRuntime.jsx(
38164
- chunkFAKRTCAL_cjs.AgentBarStatus,
38167
+ chunkJ4CXF4A7_cjs.AgentBarStatus,
38165
38168
  {
38166
38169
  state: showState ? controlState : void 0,
38167
38170
  stateLabel: STATE_LABEL[controlState],
@@ -38203,7 +38206,7 @@ function AgentControlBar({
38203
38206
  ];
38204
38207
  const controls = /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
38205
38208
  onStop && /* @__PURE__ */ jsxRuntime.jsx(
38206
- chunkFAKRTCAL_cjs.AgentBarIconButton,
38209
+ chunkJ4CXF4A7_cjs.AgentBarIconButton,
38207
38210
  {
38208
38211
  onClick: onStop,
38209
38212
  title: "Stop",
@@ -38212,22 +38215,22 @@ function AgentControlBar({
38212
38215
  children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Square, { className: "h-3 w-3", fill: "currentColor" })
38213
38216
  }
38214
38217
  ),
38215
- /* @__PURE__ */ jsxRuntime.jsx(chunkFAKRTCAL_cjs.AgentBarMenu, { items: menuItems })
38218
+ /* @__PURE__ */ jsxRuntime.jsx(chunkJ4CXF4A7_cjs.AgentBarMenu, { items: menuItems })
38216
38219
  ] });
38217
38220
  const displayedQueuedMessages = (transientQueuedMessages ?? []).filter(
38218
38221
  (message) => !message.serverId || !queuedMessages.some((queued) => queued.external_id === message.serverId)
38219
38222
  );
38220
38223
  const queuedNotes = displayedQueuedMessages.filter((message) => message.content);
38221
- const below = probeAnswer || queuedNotes.length > 0 ? /* @__PURE__ */ jsxRuntime.jsxs(chunkFAKRTCAL_cjs.AgentBarNotes, { children: [
38224
+ const below = probeAnswer || queuedNotes.length > 0 ? /* @__PURE__ */ jsxRuntime.jsxs(chunkJ4CXF4A7_cjs.AgentBarNotes, { children: [
38222
38225
  queuedNotes.map((message, index) => /* @__PURE__ */ jsxRuntime.jsx(
38223
- chunkFAKRTCAL_cjs.AgentBarQueuedNote,
38226
+ chunkJ4CXF4A7_cjs.AgentBarQueuedNote,
38224
38227
  {
38225
38228
  text: message.content ?? "",
38226
38229
  isAcknowledged: message.acknowledged
38227
38230
  },
38228
38231
  index
38229
38232
  )),
38230
- probeAnswer && /* @__PURE__ */ jsxRuntime.jsx(chunkFAKRTCAL_cjs.AgentBarProbeAnswer, { answer: probeAnswer.answer })
38233
+ probeAnswer && /* @__PURE__ */ jsxRuntime.jsx(chunkJ4CXF4A7_cjs.AgentBarProbeAnswer, { answer: probeAnswer.answer })
38231
38234
  ] }) : null;
38232
38235
  return /* @__PURE__ */ jsxRuntime.jsx(
38233
38236
  AgentBarShell,
@@ -39162,7 +39165,7 @@ function ConversationThread({
39162
39165
  }, [isGenerating]);
39163
39166
  const slashWorkflows = useSlashSkillWorkflows({ landing: "current-chat" });
39164
39167
  const composerSkills = react$1.useMemo(
39165
- () => ({ builtin: chunkFAKRTCAL_cjs.BUILTIN_SKILLS, openFor: slashWorkflows.openFor }),
39168
+ () => ({ builtin: chunkJ4CXF4A7_cjs.BUILTIN_SKILLS, openFor: slashWorkflows.openFor }),
39166
39169
  [slashWorkflows.openFor]
39167
39170
  );
39168
39171
  const browseSkills = react$1.useMemo(
@@ -39211,7 +39214,7 @@ function ConversationThread({
39211
39214
  useStartRequestedDraft();
39212
39215
  const orphanedMessage = react.getOrphanedLastMessage(messageHistory, isGenerating, assistantMode);
39213
39216
  return /* @__PURE__ */ jsxRuntime.jsxs(chunk32YCMXT2_cjs.ConversationBody, { 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: [
39217
+ /* @__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: [
39215
39218
  meetingCallExtId && transcriptLineCount > 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex justify-center py-2", children: /* @__PURE__ */ jsxRuntime.jsx(
39216
39219
  chunkZBP4ZSAJ_cjs.ConversationFilter,
39217
39220
  {
@@ -39229,7 +39232,7 @@ function ConversationThread({
39229
39232
  ]
39230
39233
  }
39231
39234
  ) }),
39232
- /* @__PURE__ */ jsxRuntime.jsx(chunkO2ATVRRO_cjs.ConnectedMessageArea, { ref: containerRef, messages: visibleMessages }),
39235
+ /* @__PURE__ */ jsxRuntime.jsx(chunkSDXK2COQ_cjs.ConnectedMessageArea, { ref: containerRef, messages: visibleMessages }),
39233
39236
  showProvisional && /* @__PURE__ */ jsxRuntime.jsx(chunk4ZM3J3SL_cjs.ProvisionalSpeakers, { ids: provisionalSpeakers })
39234
39237
  ] }) }) : meetingCallExtId ? (
39235
39238
  // A meeting thread with nothing yet: call-aware, not the upload prompt.
@@ -39237,7 +39240,7 @@ function ConversationThread({
39237
39240
  /* @__PURE__ */ jsxRuntime.jsx(chunk4ZM3J3SL_cjs.CallConversationEmpty, { callExtId: meetingCallExtId }),
39238
39241
  /* @__PURE__ */ jsxRuntime.jsx(chunk4ZM3J3SL_cjs.ProvisionalSpeakers, { ids: provisionalSpeakers })
39239
39242
  ] })
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(
39243
+ ) : currentTask && currentTask.status != null ? /* @__PURE__ */ jsxRuntime.jsx(chunkJ4CXF4A7_cjs.TaskEmptyState, { task: currentTask }) : pendingFirstTurn && isGenerating ? /* @__PURE__ */ jsxRuntime.jsx(chunkSDXK2COQ_cjs.ConnectedMessageArea, { ref: containerRef, messages: pendingFirstTurn }) : /* @__PURE__ */ jsxRuntime.jsx(
39241
39244
  ConnectedConversationEmpty,
39242
39245
  {
39243
39246
  hasDocuments: allWorkspaceDocuments.length > 0,
@@ -39308,7 +39311,7 @@ function ConversationThread({
39308
39311
  children: react.READ_ONLY_MEETING_TEXT
39309
39312
  }
39310
39313
  ) : /* @__PURE__ */ jsxRuntime.jsx(
39311
- chunkO2ATVRRO_cjs.ConversationComposer,
39314
+ chunkSDXK2COQ_cjs.ConversationComposer,
39312
39315
  {
39313
39316
  handleSendMessage: handleUserSend,
39314
39317
  placeholder: pendingAnswer ? "Type your answer to ARBI \u2014 or pick an option above" : void 0,
@@ -39648,7 +39651,7 @@ function ConnectedThreadsPage({
39648
39651
  };
39649
39652
  const page = /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex h-full min-h-0 flex-col", "data-testid": "threads-page", children: [
39650
39653
  /* @__PURE__ */ jsxRuntime.jsx("main", { className: "flex min-h-0 flex-1 flex-col bg-background", children: /* @__PURE__ */ jsxRuntime.jsx(
39651
- chunkFAKRTCAL_cjs.ConversationListView,
39654
+ chunkJ4CXF4A7_cjs.ConversationListView,
39652
39655
  {
39653
39656
  showHeader,
39654
39657
  conversations: tasks,
@@ -39667,7 +39670,7 @@ function ConnectedThreadsPage({
39667
39670
  renderLabels: threadLabels.renderLabels,
39668
39671
  labelText: threadLabels.labelText,
39669
39672
  renderBy: (row2) => /* @__PURE__ */ jsxRuntime.jsx(
39670
- chunkFAKRTCAL_cjs.ConversationTurnSpeaker,
39673
+ chunkJ4CXF4A7_cjs.ConversationTurnSpeaker,
39671
39674
  {
39672
39675
  variant: "icon",
39673
39676
  role: row2.last_message_role,
@@ -39700,7 +39703,7 @@ function ConnectedThreadsPage({
39700
39703
  }
39701
39704
  ),
39702
39705
  /* @__PURE__ */ jsxRuntime.jsx(
39703
- chunk6OXR4R6J_cjs.RenameDialog,
39706
+ chunkMMSHLHTA_cjs.RenameDialog,
39704
39707
  {
39705
39708
  open: !!renaming,
39706
39709
  onClose: () => {
@@ -40549,7 +40552,7 @@ function ConnectedConversationPage({
40549
40552
  );
40550
40553
  const { data: workspaceTags = [] } = react.useTags();
40551
40554
  const { tagId: threadTagId, clear: clearThreadTag } = useThreadTagFilter();
40552
- const historyCount = chunkFAKRTCAL_cjs.filterConversationRows(
40555
+ const historyCount = chunkJ4CXF4A7_cjs.filterConversationRows(
40553
40556
  threadTagId ? conversations.filter((row2) => row2.label_ext_ids?.includes(threadTagId)) : conversations,
40554
40557
  threadFilter,
40555
40558
  (row2) => workspaceTags.filter((tag) => row2.label_ext_ids?.includes(tag.external_id)).map((tag) => tag.name).join(" "),
@@ -40608,7 +40611,7 @@ function ConnectedConversationPage({
40608
40611
  ] })
40609
40612
  }
40610
40613
  ),
40611
- isInChat && /* @__PURE__ */ jsxRuntime.jsx(chunkKVKKVSBT_cjs.ConnectedThreadTaskBar, { conversationId: currentConversationId })
40614
+ isInChat && /* @__PURE__ */ jsxRuntime.jsx(chunkXM4KRGCK_cjs.ConnectedThreadTaskBar, { conversationId: currentConversationId })
40612
40615
  ] }),
40613
40616
  isInChat && /* @__PURE__ */ jsxRuntime.jsx(
40614
40617
  ConversationThread,
@@ -40817,7 +40820,7 @@ function SsoResendVerificationButton({
40817
40820
  onClick: async () => handleResendEmailVerification(),
40818
40821
  disabled: loading || disabled,
40819
40822
  "aria-label": "Resend verification email",
40820
- children: loading ? /* @__PURE__ */ jsxRuntime.jsx(chunkZA3ZELSH_cjs.LoadingIndicator, {}) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
40823
+ children: loading ? /* @__PURE__ */ jsxRuntime.jsx(chunkCCALU47C_cjs.LoadingIndicator, {}) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
40821
40824
  "Didn't get a verification email? ",
40822
40825
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-semibold", children: "Resend" })
40823
40826
  ] })
@@ -40828,16 +40831,16 @@ function SsoResendVerificationButton({
40828
40831
  }
40829
40832
  var NO_RECOVERY_KEY_WARNING = "Without your password or a recovery key, we cannot recover your account or data.";
40830
40833
  function ConnectedSsoCallback() {
40831
- const sso = chunkO2ATVRRO_cjs.useSsoSignIn();
40834
+ const sso = chunkSDXK2COQ_cjs.useSsoSignIn();
40832
40835
  const { isAuthenticated: isAuthenticated2, isLoading, user } = sso;
40833
- const auth = chunkO2ATVRRO_cjs.useAuthPages();
40836
+ const auth = chunkSDXK2COQ_cjs.useAuthPages();
40834
40837
  const { notify: notify17, navigate } = chunkUIXY4HKM_cjs.useBlocksEnvironment();
40835
40838
  const passwordRules = auth.passwordRules;
40836
40839
  const isProcessing = react$1.useRef(false);
40837
40840
  const hasCheckedStatus = react$1.useRef(false);
40838
40841
  const [accessToken, setAccessToken] = react$1.useState(null);
40839
40842
  const [ssoStatus, setSsoStatus] = react$1.useState(null);
40840
- const ssoName = react$1.useMemo(() => chunkO2ATVRRO_cjs.resolveSsoName(user ?? {}, ssoStatus ?? {}), [user, ssoStatus]);
40843
+ const ssoName = react$1.useMemo(() => chunkSDXK2COQ_cjs.resolveSsoName(user ?? {}, ssoStatus ?? {}), [user, ssoStatus]);
40841
40844
  const [password, setPassword] = react$1.useState("");
40842
40845
  const [confirmPassword, setConfirmPassword] = react$1.useState("");
40843
40846
  const [error, setError] = react$1.useState(null);
@@ -41015,7 +41018,7 @@ function ConnectedSsoCallback() {
41015
41018
  setIsCheckingStatus(true);
41016
41019
  try {
41017
41020
  console.info("[SSO] Checking user status...");
41018
- const response = await chunkO2ATVRRO_cjs.ssoAccountStatus(arbi, accessToken, user);
41021
+ const response = await chunkSDXK2COQ_cjs.ssoAccountStatus(arbi, accessToken, user);
41019
41022
  console.info("[SSO] User status:", response.status);
41020
41023
  setSsoStatus(response);
41021
41024
  } catch (error2) {
@@ -41059,7 +41062,7 @@ function ConnectedSsoCallback() {
41059
41062
  setIsSubmitting(true);
41060
41063
  setError(null);
41061
41064
  try {
41062
- const { login, registered, linked } = await chunkO2ATVRRO_cjs.completeSsoSignIn(arbi, {
41065
+ const { login, registered, linked } = await chunkSDXK2COQ_cjs.completeSsoSignIn(arbi, {
41063
41066
  token: accessToken,
41064
41067
  user,
41065
41068
  status: ssoStatus,
@@ -41341,7 +41344,7 @@ function ConnectedSsoCallback() {
41341
41344
  ssoStatus.status !== "new_user" && auth.footer
41342
41345
  ] }),
41343
41346
  /* @__PURE__ */ jsxRuntime.jsx(
41344
- chunkO2ATVRRO_cjs.ConnectedForgotPassword,
41347
+ chunkSDXK2COQ_cjs.ConnectedForgotPassword,
41345
41348
  {
41346
41349
  open: showForgotPasswordModal,
41347
41350
  onOpenChange: setShowForgotPasswordModal,
@@ -41349,7 +41352,7 @@ function ConnectedSsoCallback() {
41349
41352
  }
41350
41353
  ),
41351
41354
  /* @__PURE__ */ jsxRuntime.jsx(
41352
- chunkO2ATVRRO_cjs.ConnectedPasswordChangeDialog,
41355
+ chunkSDXK2COQ_cjs.ConnectedPasswordChangeDialog,
41353
41356
  {
41354
41357
  open: showChangePasswordModal,
41355
41358
  onClose: () => setShowChangePasswordModal(false),
@@ -41508,27 +41511,27 @@ function ConnectedOAuthConsentPage({
41508
41511
  oauthErrorRedirect(params.redirectUri, params.state, "access_denied");
41509
41512
  }
41510
41513
  if (error && !params) {
41511
- return /* @__PURE__ */ jsxRuntime.jsx(chunkFAKRTCAL_cjs.ConsentPage, { children: /* @__PURE__ */ jsxRuntime.jsx(chunkFAKRTCAL_cjs.ConsentMessage, { tone: "error", title: "Invalid Request", children: error }) });
41514
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkJ4CXF4A7_cjs.ConsentPage, { children: /* @__PURE__ */ jsxRuntime.jsx(chunkJ4CXF4A7_cjs.ConsentMessage, { tone: "error", title: "Invalid Request", children: error }) });
41512
41515
  }
41513
41516
  if (!params) {
41514
41517
  return null;
41515
41518
  }
41516
41519
  if (clientInfo?.isLocalAgentFlow) {
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." }) });
41520
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkJ4CXF4A7_cjs.ConsentPage, { children: /* @__PURE__ */ jsxRuntime.jsx(chunkJ4CXF4A7_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." }) });
41518
41521
  }
41519
41522
  if (!isAuthenticated2) {
41520
41523
  return null;
41521
41524
  }
41522
41525
  if (callbackUrl) {
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: [
41526
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkJ4CXF4A7_cjs.ConsentPage, { children: /* @__PURE__ */ jsxRuntime.jsxs(chunkJ4CXF4A7_cjs.ConsentCard, { size: "md", children: [
41527
+ /* @__PURE__ */ jsxRuntime.jsxs(chunkJ4CXF4A7_cjs.ConsentHeader, { icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ClipboardList, {}), title: "Almost there", children: [
41525
41528
  "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",
41526
41529
  " ",
41527
41530
  copied ? "it's already copied to your clipboard." : "copy it first."
41528
41531
  ] }),
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: [
41532
+ /* @__PURE__ */ jsxRuntime.jsxs(chunkJ4CXF4A7_cjs.ConsentSection, { title: "Callback URL", children: [
41533
+ /* @__PURE__ */ jsxRuntime.jsx(chunkJ4CXF4A7_cjs.CopyableUrl, { url: callbackUrl, copied, onCopy: handleCopy }),
41534
+ /* @__PURE__ */ jsxRuntime.jsxs(chunkJ4CXF4A7_cjs.ConsentText, { variant: "hint", children: [
41532
41535
  "In Claude Code, paste the URL at the prompt that says",
41533
41536
  " ",
41534
41537
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-mono text-foreground", children: '"paste the full redirect URL here"' }),
@@ -41537,17 +41540,17 @@ function ConnectedOAuthConsentPage({
41537
41540
  ] })
41538
41541
  ] }) });
41539
41542
  }
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 }),
41543
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkJ4CXF4A7_cjs.ConsentPage, { children: /* @__PURE__ */ jsxRuntime.jsxs(chunkJ4CXF4A7_cjs.ConsentCard, { children: [
41544
+ /* @__PURE__ */ jsxRuntime.jsxs(chunkJ4CXF4A7_cjs.ConsentHeader, { icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Link2, {}), title: `Connect to ${appName}`, children: [
41545
+ /* @__PURE__ */ jsxRuntime.jsx(chunkJ4CXF4A7_cjs.ConsentStrong, { children: clientInfo?.name ?? params.clientId }),
41543
41546
  " is requesting access to your ",
41544
41547
  appName,
41545
41548
  " workspace."
41546
41549
  ] }),
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 })
41550
+ /* @__PURE__ */ jsxRuntime.jsx(chunkJ4CXF4A7_cjs.ConsentSection, { title: "This will allow", children: /* @__PURE__ */ jsxRuntime.jsx(chunkJ4CXF4A7_cjs.ConsentPermissionList, { items: permissions }) }),
41551
+ error && /* @__PURE__ */ jsxRuntime.jsx(chunkJ4CXF4A7_cjs.ConsentNotice, { tone: "error", children: error }),
41552
+ /* @__PURE__ */ jsxRuntime.jsx(chunkJ4CXF4A7_cjs.ConsentActions, { isLoading: loading, onDeny: handleDeny, onAllow: handleAllow }),
41553
+ /* @__PURE__ */ jsxRuntime.jsx(chunkJ4CXF4A7_cjs.ConsentFootnote, { children: footnote })
41551
41554
  ] }) });
41552
41555
  }
41553
41556
  function ConnectedSharedFilesPage({
@@ -41669,7 +41672,7 @@ function useMainAreaPanel(panels) {
41669
41672
  }
41670
41673
  function useTogglePanel() {
41671
41674
  const { setFocusedArea } = react.useArbiSessionStore();
41672
- const { windows } = chunkCMMFXSTS_cjs.usePanelHostSupport();
41675
+ const { windows } = chunkHXWBXYVN_cjs.usePanelHostSupport();
41673
41676
  return (panelId, isOpen, setOpen) => {
41674
41677
  if (isOpen && windows.focusPanelWindow(panelId)) {
41675
41678
  setFocusedArea(panelId);
@@ -41703,7 +41706,7 @@ function ConnectedAppShell({
41703
41706
  const session = react.useArbiSessionStore();
41704
41707
  const dockedPanel = react.useArbiSessionState((state) => state.shell.panels.docked);
41705
41708
  const dockSqueezed = chunkFX3K6LNZ_cjs.useMediaQuery(sidebarPolicy?.dockedRailQuery ?? "(max-width: 0px)");
41706
- const sidebar = chunkCMMFXSTS_cjs.useSidebarController({
41709
+ const sidebar = chunkHXWBXYVN_cjs.useSidebarController({
41707
41710
  ...useSessionSidebar(),
41708
41711
  forceRail: !!sidebarPolicy?.dockedRailQuery && dockSqueezed && dockedPanel !== null,
41709
41712
  hoverExpansion: sidebarPolicy?.hoverExpansion
@@ -41733,7 +41736,7 @@ function ConnectedAppShell({
41733
41736
  session.setFocusedArea("main");
41734
41737
  contentProps?.onClick?.(event);
41735
41738
  },
41736
- children: content.mode === "docked" ? /* @__PURE__ */ jsxRuntime.jsxs(chunkCMMFXSTS_cjs.DockZone, { "data-testid": content.testId, children: [
41739
+ children: content.mode === "docked" ? /* @__PURE__ */ jsxRuntime.jsxs(chunkHXWBXYVN_cjs.DockZone, { "data-testid": content.testId, children: [
41737
41740
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: content.mainPanelVisible ? "hidden" : "h-full min-h-0", children: pageContent }),
41738
41741
  /* @__PURE__ */ jsxRuntime.jsx(
41739
41742
  "div",
@@ -41793,7 +41796,7 @@ function ConnectedShellSidebar({
41793
41796
  expanded && /* @__PURE__ */ jsxRuntime.jsx(chunkGFLZHV54_cjs.Sidebar.PinToggle, { isPinned: controller.isPinned, onToggle: controller.togglePin })
41794
41797
  ] }),
41795
41798
  expanded ? ask : /* @__PURE__ */ jsxRuntime.jsx(
41796
- chunkCMMFXSTS_cjs.AskTrigger,
41799
+ chunkHXWBXYVN_cjs.AskTrigger,
41797
41800
  {
41798
41801
  variant: "rail",
41799
41802
  onClick: controller.expand,
@@ -41802,7 +41805,7 @@ function ConnectedShellSidebar({
41802
41805
  )
41803
41806
  ] });
41804
41807
  return /* @__PURE__ */ jsxRuntime.jsx(
41805
- chunkCMMFXSTS_cjs.ShellSidebar,
41808
+ chunkHXWBXYVN_cjs.ShellSidebar,
41806
41809
  {
41807
41810
  controller,
41808
41811
  drawerLogo: logo,
@@ -41854,7 +41857,7 @@ function ConnectedShellTopbar({
41854
41857
  if (landing || !workspace)
41855
41858
  return /* @__PURE__ */ jsxRuntime.jsx(chunkLBRJA4ZJ_cjs.MobileAppBar, { onMenu: sidebar.openDrawer, logo, showMenu: false, actions });
41856
41859
  if (askExpanded)
41857
- return /* @__PURE__ */ jsxRuntime.jsx(chunkCMMFXSTS_cjs.AskRow, { onClose: () => setAskExpanded(false), children: ask({ autoFocus: true, onSubmitted: () => setAskExpanded(false) }) });
41860
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkHXWBXYVN_cjs.AskRow, { onClose: () => setAskExpanded(false), children: ask({ autoFocus: true, onSubmitted: () => setAskExpanded(false) }) });
41858
41861
  return /* @__PURE__ */ jsxRuntime.jsx(
41859
41862
  chunkLBRJA4ZJ_cjs.MobileAppBar,
41860
41863
  {
@@ -41951,7 +41954,7 @@ function ConnectedTipBar({
41951
41954
  className,
41952
41955
  revealOnHover = false
41953
41956
  }) {
41954
- const { showHints, settingsLoaded, setShowHintsPersisted, setShowHints } = chunkO2ATVRRO_cjs.useContextualHints();
41957
+ const { showHints, settingsLoaded, setShowHintsPersisted, setShowHints } = chunkSDXK2COQ_cjs.useContextualHints();
41955
41958
  const { dismissed, dismissTip } = react.useDismissedTips();
41956
41959
  const { notify: notify17 } = chunkUIXY4HKM_cjs.useBlocksEnvironment();
41957
41960
  const { data: workspaces } = react.useWorkspaces();
@@ -41962,7 +41965,7 @@ function ConnectedTipBar({
41962
41965
  workspaceOpen,
41963
41966
  ...state
41964
41967
  };
41965
- const { tip, index, count: count2, previous, next, onHoverChange } = chunkZA3ZELSH_cjs.useTipsPlacement({
41968
+ const { tip, index, count: count2, previous, next, onHoverChange } = chunkCCALU47C_cjs.useTipsPlacement({
41966
41969
  registry,
41967
41970
  context,
41968
41971
  state: situation,
@@ -41995,7 +41998,7 @@ function ConnectedTipBar({
41995
41998
  });
41996
41999
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
41997
42000
  /* @__PURE__ */ jsxRuntime.jsx(
41998
- chunkCMMFXSTS_cjs.TipCard,
42001
+ chunkHXWBXYVN_cjs.TipCard,
41999
42002
  {
42000
42003
  message: tip.message,
42001
42004
  index,
@@ -42040,7 +42043,7 @@ function useGettingStarted({
42040
42043
  const { user } = react.useArbiSession();
42041
42044
  const userExtId = user?.external_id;
42042
42045
  const temporaryOnly = user?.temporary_access_only === true;
42043
- const { showHints, settingsLoaded, setShowHints, setShowHintsPersisted } = chunkO2ATVRRO_cjs.useContextualHints();
42046
+ const { showHints, settingsLoaded, setShowHints, setShowHintsPersisted } = chunkSDXK2COQ_cjs.useContextualHints();
42044
42047
  const { dismissed, loaded: dismissedLoaded, dismissTip } = react.useDismissedTips();
42045
42048
  const welcomeJourneyEnabled = react.useFeature("welcomeJourney");
42046
42049
  const session = react.useArbiSessionStore();
@@ -42274,55 +42277,55 @@ Object.defineProperty(exports, "DEFAULT_DOCUMENT_VIEWER_TABS", {
42274
42277
  });
42275
42278
  Object.defineProperty(exports, "CAP_REACHED_MESSAGE", {
42276
42279
  enumerable: true,
42277
- get: function () { return chunkBAJNXRI5_cjs.CAP_REACHED_MESSAGE; }
42280
+ get: function () { return chunkDDIV3MYQ_cjs.CAP_REACHED_MESSAGE; }
42278
42281
  });
42279
42282
  Object.defineProperty(exports, "ZERO_BUDGET_MESSAGE", {
42280
42283
  enumerable: true,
42281
- get: function () { return chunkBAJNXRI5_cjs.ZERO_BUDGET_MESSAGE; }
42284
+ get: function () { return chunkDDIV3MYQ_cjs.ZERO_BUDGET_MESSAGE; }
42282
42285
  });
42283
42286
  Object.defineProperty(exports, "aiUsageResetTimestamp", {
42284
42287
  enumerable: true,
42285
- get: function () { return chunkBAJNXRI5_cjs.aiUsageResetTimestamp; }
42288
+ get: function () { return chunkDDIV3MYQ_cjs.aiUsageResetTimestamp; }
42286
42289
  });
42287
42290
  Object.defineProperty(exports, "formatMoney", {
42288
42291
  enumerable: true,
42289
- get: function () { return chunkBAJNXRI5_cjs.formatMoney; }
42292
+ get: function () { return chunkDDIV3MYQ_cjs.formatMoney; }
42290
42293
  });
42291
42294
  Object.defineProperty(exports, "formatResetDate", {
42292
42295
  enumerable: true,
42293
- get: function () { return chunkBAJNXRI5_cjs.formatResetDate; }
42296
+ get: function () { return chunkDDIV3MYQ_cjs.formatResetDate; }
42294
42297
  });
42295
42298
  Object.defineProperty(exports, "getQuotaItems", {
42296
42299
  enumerable: true,
42297
- get: function () { return chunkBAJNXRI5_cjs.getQuotaItems; }
42300
+ get: function () { return chunkDDIV3MYQ_cjs.getQuotaItems; }
42298
42301
  });
42299
42302
  Object.defineProperty(exports, "isAddonBudgetZero", {
42300
42303
  enumerable: true,
42301
- get: function () { return chunkBAJNXRI5_cjs.isAddonBudgetZero; }
42304
+ get: function () { return chunkDDIV3MYQ_cjs.isAddonBudgetZero; }
42302
42305
  });
42303
42306
  Object.defineProperty(exports, "isProProject", {
42304
42307
  enumerable: true,
42305
- get: function () { return chunkBAJNXRI5_cjs.isProProject; }
42308
+ get: function () { return chunkDDIV3MYQ_cjs.isProProject; }
42306
42309
  });
42307
42310
  Object.defineProperty(exports, "planBadgeView", {
42308
42311
  enumerable: true,
42309
- get: function () { return chunkBAJNXRI5_cjs.planBadgeView; }
42312
+ get: function () { return chunkDDIV3MYQ_cjs.planBadgeView; }
42310
42313
  });
42311
42314
  Object.defineProperty(exports, "planName", {
42312
42315
  enumerable: true,
42313
- get: function () { return chunkBAJNXRI5_cjs.planName; }
42316
+ get: function () { return chunkDDIV3MYQ_cjs.planName; }
42314
42317
  });
42315
42318
  Object.defineProperty(exports, "projectGroupBilling", {
42316
42319
  enumerable: true,
42317
- get: function () { return chunkBAJNXRI5_cjs.projectGroupBilling; }
42320
+ get: function () { return chunkDDIV3MYQ_cjs.projectGroupBilling; }
42318
42321
  });
42319
42322
  Object.defineProperty(exports, "useBillingSupport", {
42320
42323
  enumerable: true,
42321
- get: function () { return chunkBAJNXRI5_cjs.useBillingSupport; }
42324
+ get: function () { return chunkDDIV3MYQ_cjs.useBillingSupport; }
42322
42325
  });
42323
42326
  Object.defineProperty(exports, "useRewardBalance", {
42324
42327
  enumerable: true,
42325
- get: function () { return chunkBAJNXRI5_cjs.useRewardBalance; }
42328
+ get: function () { return chunkDDIV3MYQ_cjs.useRewardBalance; }
42326
42329
  });
42327
42330
  Object.defineProperty(exports, "ConnectedMailInviteCard", {
42328
42331
  enumerable: true,
@@ -42342,319 +42345,319 @@ Object.defineProperty(exports, "useMemberLookup", {
42342
42345
  });
42343
42346
  Object.defineProperty(exports, "ConnectedAssistantDock", {
42344
42347
  enumerable: true,
42345
- get: function () { return chunk64KZM3RZ_cjs.ConnectedAssistantDock; }
42348
+ get: function () { return chunkNZQZ2HFU_cjs.ConnectedAssistantDock; }
42346
42349
  });
42347
42350
  Object.defineProperty(exports, "redlineStats", {
42348
42351
  enumerable: true,
42349
- get: function () { return chunk64KZM3RZ_cjs.redlineStats; }
42352
+ get: function () { return chunkNZQZ2HFU_cjs.redlineStats; }
42350
42353
  });
42351
42354
  Object.defineProperty(exports, "textToArtifact", {
42352
42355
  enumerable: true,
42353
- get: function () { return chunk64KZM3RZ_cjs.textToArtifact; }
42356
+ get: function () { return chunkNZQZ2HFU_cjs.textToArtifact; }
42354
42357
  });
42355
42358
  Object.defineProperty(exports, "toRedlineMarkdown", {
42356
42359
  enumerable: true,
42357
- get: function () { return chunk64KZM3RZ_cjs.toRedlineMarkdown; }
42360
+ get: function () { return chunkNZQZ2HFU_cjs.toRedlineMarkdown; }
42358
42361
  });
42359
42362
  Object.defineProperty(exports, "useConnectedAiTask", {
42360
42363
  enumerable: true,
42361
- get: function () { return chunk64KZM3RZ_cjs.useConnectedAiTask; }
42364
+ get: function () { return chunkNZQZ2HFU_cjs.useConnectedAiTask; }
42362
42365
  });
42363
42366
  Object.defineProperty(exports, "useConnectedChat", {
42364
42367
  enumerable: true,
42365
- get: function () { return chunk64KZM3RZ_cjs.useConnectedChat; }
42368
+ get: function () { return chunkNZQZ2HFU_cjs.useConnectedChat; }
42366
42369
  });
42367
42370
  Object.defineProperty(exports, "useSemanticSearch", {
42368
42371
  enumerable: true,
42369
- get: function () { return chunk64KZM3RZ_cjs.useSemanticSearch; }
42372
+ get: function () { return chunkNZQZ2HFU_cjs.useSemanticSearch; }
42370
42373
  });
42371
42374
  Object.defineProperty(exports, "useWorkspaceDocs", {
42372
42375
  enumerable: true,
42373
- get: function () { return chunk64KZM3RZ_cjs.useWorkspaceDocs; }
42376
+ get: function () { return chunkNZQZ2HFU_cjs.useWorkspaceDocs; }
42374
42377
  });
42375
42378
  Object.defineProperty(exports, "ConnectedTaskActivityDialog", {
42376
42379
  enumerable: true,
42377
- get: function () { return chunkKVKKVSBT_cjs.ConnectedTaskActivityDialog; }
42380
+ get: function () { return chunkXM4KRGCK_cjs.ConnectedTaskActivityDialog; }
42378
42381
  });
42379
42382
  Object.defineProperty(exports, "ConnectedTaskComposer", {
42380
42383
  enumerable: true,
42381
- get: function () { return chunkKVKKVSBT_cjs.ConnectedTaskComposer; }
42384
+ get: function () { return chunkXM4KRGCK_cjs.ConnectedTaskComposer; }
42382
42385
  });
42383
42386
  Object.defineProperty(exports, "ConnectedThreadTaskBar", {
42384
42387
  enumerable: true,
42385
- get: function () { return chunkKVKKVSBT_cjs.ConnectedThreadTaskBar; }
42388
+ get: function () { return chunkXM4KRGCK_cjs.ConnectedThreadTaskBar; }
42386
42389
  });
42387
42390
  Object.defineProperty(exports, "ConnectedWorkflowHistory", {
42388
42391
  enumerable: true,
42389
- get: function () { return chunkKVKKVSBT_cjs.ConnectedWorkflowHistory; }
42392
+ get: function () { return chunkXM4KRGCK_cjs.ConnectedWorkflowHistory; }
42390
42393
  });
42391
42394
  Object.defineProperty(exports, "ConnectedWorkflowRunPage", {
42392
42395
  enumerable: true,
42393
- get: function () { return chunkKVKKVSBT_cjs.ConnectedWorkflowRunPage; }
42396
+ get: function () { return chunkXM4KRGCK_cjs.ConnectedWorkflowRunPage; }
42394
42397
  });
42395
42398
  Object.defineProperty(exports, "ConnectedWorkflowRunner", {
42396
42399
  enumerable: true,
42397
- get: function () { return chunkKVKKVSBT_cjs.ConnectedWorkflowRunner; }
42400
+ get: function () { return chunkXM4KRGCK_cjs.ConnectedWorkflowRunner; }
42398
42401
  });
42399
42402
  Object.defineProperty(exports, "DEFAULT_CONNECTED_WORKFLOW_RUNNER_LABELS", {
42400
42403
  enumerable: true,
42401
- get: function () { return chunkKVKKVSBT_cjs.DEFAULT_CONNECTED_WORKFLOW_RUNNER_LABELS; }
42404
+ get: function () { return chunkXM4KRGCK_cjs.DEFAULT_CONNECTED_WORKFLOW_RUNNER_LABELS; }
42402
42405
  });
42403
42406
  Object.defineProperty(exports, "DEFAULT_WORKFLOW_RUN_PAGE_LABELS", {
42404
42407
  enumerable: true,
42405
- get: function () { return chunkKVKKVSBT_cjs.DEFAULT_WORKFLOW_RUN_PAGE_LABELS; }
42408
+ get: function () { return chunkXM4KRGCK_cjs.DEFAULT_WORKFLOW_RUN_PAGE_LABELS; }
42406
42409
  });
42407
42410
  Object.defineProperty(exports, "WorkflowRunThread", {
42408
42411
  enumerable: true,
42409
- get: function () { return chunkKVKKVSBT_cjs.WorkflowRunThread; }
42412
+ get: function () { return chunkXM4KRGCK_cjs.WorkflowRunThread; }
42410
42413
  });
42411
42414
  Object.defineProperty(exports, "WorkflowRunWorkspaceChangedError", {
42412
42415
  enumerable: true,
42413
- get: function () { return chunkKVKKVSBT_cjs.WorkflowRunWorkspaceChangedError; }
42416
+ get: function () { return chunkXM4KRGCK_cjs.WorkflowRunWorkspaceChangedError; }
42414
42417
  });
42415
42418
  Object.defineProperty(exports, "buildProjectSummaries", {
42416
42419
  enumerable: true,
42417
- get: function () { return chunkKVKKVSBT_cjs.buildProjectSummaries; }
42420
+ get: function () { return chunkXM4KRGCK_cjs.buildProjectSummaries; }
42418
42421
  });
42419
42422
  Object.defineProperty(exports, "primaryProjectWorkspace", {
42420
42423
  enumerable: true,
42421
- get: function () { return chunkKVKKVSBT_cjs.primaryProjectWorkspace; }
42424
+ get: function () { return chunkXM4KRGCK_cjs.primaryProjectWorkspace; }
42422
42425
  });
42423
42426
  Object.defineProperty(exports, "useEnsureRequiredLabels", {
42424
42427
  enumerable: true,
42425
- get: function () { return chunkKVKKVSBT_cjs.useEnsureRequiredLabels; }
42428
+ get: function () { return chunkXM4KRGCK_cjs.useEnsureRequiredLabels; }
42426
42429
  });
42427
42430
  Object.defineProperty(exports, "useProjectSummaries", {
42428
42431
  enumerable: true,
42429
- get: function () { return chunkKVKKVSBT_cjs.useProjectSummaries; }
42432
+ get: function () { return chunkXM4KRGCK_cjs.useProjectSummaries; }
42430
42433
  });
42431
42434
  Object.defineProperty(exports, "useProjectSummary", {
42432
42435
  enumerable: true,
42433
- get: function () { return chunkKVKKVSBT_cjs.useProjectSummary; }
42436
+ get: function () { return chunkXM4KRGCK_cjs.useProjectSummary; }
42434
42437
  });
42435
42438
  Object.defineProperty(exports, "useRenderTaskPerson", {
42436
42439
  enumerable: true,
42437
- get: function () { return chunkKVKKVSBT_cjs.useRenderTaskPerson; }
42440
+ get: function () { return chunkXM4KRGCK_cjs.useRenderTaskPerson; }
42438
42441
  });
42439
42442
  Object.defineProperty(exports, "useRequiredLabels", {
42440
42443
  enumerable: true,
42441
- get: function () { return chunkKVKKVSBT_cjs.useRequiredLabels; }
42444
+ get: function () { return chunkXM4KRGCK_cjs.useRequiredLabels; }
42442
42445
  });
42443
42446
  Object.defineProperty(exports, "useSkillsEnabled", {
42444
42447
  enumerable: true,
42445
- get: function () { return chunkKVKKVSBT_cjs.useSkillsEnabled; }
42448
+ get: function () { return chunkXM4KRGCK_cjs.useSkillsEnabled; }
42446
42449
  });
42447
42450
  Object.defineProperty(exports, "useTaskPeople", {
42448
42451
  enumerable: true,
42449
- get: function () { return chunkKVKKVSBT_cjs.useTaskPeople; }
42452
+ get: function () { return chunkXM4KRGCK_cjs.useTaskPeople; }
42450
42453
  });
42451
42454
  Object.defineProperty(exports, "useWorkflowDefinitions", {
42452
42455
  enumerable: true,
42453
- get: function () { return chunkKVKKVSBT_cjs.useWorkflowDefinitions; }
42456
+ get: function () { return chunkXM4KRGCK_cjs.useWorkflowDefinitions; }
42454
42457
  });
42455
42458
  Object.defineProperty(exports, "useWorkflowTasks", {
42456
42459
  enumerable: true,
42457
- get: function () { return chunkKVKKVSBT_cjs.useWorkflowTasks; }
42460
+ get: function () { return chunkXM4KRGCK_cjs.useWorkflowTasks; }
42458
42461
  });
42459
42462
  Object.defineProperty(exports, "useWorkflowsPageState", {
42460
42463
  enumerable: true,
42461
- get: function () { return chunkKVKKVSBT_cjs.useWorkflowsPageState; }
42464
+ get: function () { return chunkXM4KRGCK_cjs.useWorkflowsPageState; }
42462
42465
  });
42463
42466
  Object.defineProperty(exports, "workflowRunView", {
42464
42467
  enumerable: true,
42465
- get: function () { return chunkKVKKVSBT_cjs.workflowRunView; }
42468
+ get: function () { return chunkXM4KRGCK_cjs.workflowRunView; }
42466
42469
  });
42467
42470
  Object.defineProperty(exports, "AgentSteps", {
42468
42471
  enumerable: true,
42469
- get: function () { return chunkO2ATVRRO_cjs.AgentSteps; }
42472
+ get: function () { return chunkSDXK2COQ_cjs.AgentSteps; }
42470
42473
  });
42471
42474
  Object.defineProperty(exports, "AnswerTable", {
42472
42475
  enumerable: true,
42473
- get: function () { return chunkO2ATVRRO_cjs.AnswerTable; }
42476
+ get: function () { return chunkSDXK2COQ_cjs.AnswerTable; }
42474
42477
  });
42475
42478
  Object.defineProperty(exports, "ArbiChat", {
42476
42479
  enumerable: true,
42477
- get: function () { return chunkO2ATVRRO_cjs.ArbiChat; }
42480
+ get: function () { return chunkSDXK2COQ_cjs.ArbiChat; }
42478
42481
  });
42479
42482
  Object.defineProperty(exports, "AskAgainContext", {
42480
42483
  enumerable: true,
42481
- get: function () { return chunkO2ATVRRO_cjs.AskAgainContext; }
42484
+ get: function () { return chunkSDXK2COQ_cjs.AskAgainContext; }
42482
42485
  });
42483
42486
  Object.defineProperty(exports, "ConnectedBranchControls", {
42484
42487
  enumerable: true,
42485
- get: function () { return chunkO2ATVRRO_cjs.ConnectedBranchControls; }
42488
+ get: function () { return chunkSDXK2COQ_cjs.ConnectedBranchControls; }
42486
42489
  });
42487
42490
  Object.defineProperty(exports, "ConnectedCitationRenderer", {
42488
42491
  enumerable: true,
42489
- get: function () { return chunkO2ATVRRO_cjs.ConnectedCitationRenderer; }
42492
+ get: function () { return chunkSDXK2COQ_cjs.ConnectedCitationRenderer; }
42490
42493
  });
42491
42494
  Object.defineProperty(exports, "ConnectedCompactConversation", {
42492
42495
  enumerable: true,
42493
- get: function () { return chunkO2ATVRRO_cjs.ConnectedCompactConversation; }
42496
+ get: function () { return chunkSDXK2COQ_cjs.ConnectedCompactConversation; }
42494
42497
  });
42495
42498
  Object.defineProperty(exports, "ConnectedCompactLogin", {
42496
42499
  enumerable: true,
42497
- get: function () { return chunkO2ATVRRO_cjs.ConnectedCompactLogin; }
42500
+ get: function () { return chunkSDXK2COQ_cjs.ConnectedCompactLogin; }
42498
42501
  });
42499
42502
  Object.defineProperty(exports, "ConnectedConversationDocumentPicker", {
42500
42503
  enumerable: true,
42501
- get: function () { return chunkO2ATVRRO_cjs.ConnectedConversationDocumentPicker; }
42504
+ get: function () { return chunkSDXK2COQ_cjs.ConnectedConversationDocumentPicker; }
42502
42505
  });
42503
42506
  Object.defineProperty(exports, "ConnectedDangerZone", {
42504
42507
  enumerable: true,
42505
- get: function () { return chunkO2ATVRRO_cjs.ConnectedDangerZone; }
42508
+ get: function () { return chunkSDXK2COQ_cjs.ConnectedDangerZone; }
42506
42509
  });
42507
42510
  Object.defineProperty(exports, "ConnectedEmbeddedChat", {
42508
42511
  enumerable: true,
42509
- get: function () { return chunkO2ATVRRO_cjs.ConnectedEmbeddedChat; }
42512
+ get: function () { return chunkSDXK2COQ_cjs.ConnectedEmbeddedChat; }
42510
42513
  });
42511
42514
  Object.defineProperty(exports, "ConnectedForgotPassword", {
42512
42515
  enumerable: true,
42513
- get: function () { return chunkO2ATVRRO_cjs.ConnectedForgotPassword; }
42516
+ get: function () { return chunkSDXK2COQ_cjs.ConnectedForgotPassword; }
42514
42517
  });
42515
42518
  Object.defineProperty(exports, "ConnectedIdentityVerification", {
42516
42519
  enumerable: true,
42517
- get: function () { return chunkO2ATVRRO_cjs.ConnectedIdentityVerification; }
42520
+ get: function () { return chunkSDXK2COQ_cjs.ConnectedIdentityVerification; }
42518
42521
  });
42519
42522
  Object.defineProperty(exports, "ConnectedLoginPage", {
42520
42523
  enumerable: true,
42521
- get: function () { return chunkO2ATVRRO_cjs.ConnectedLoginPage; }
42524
+ get: function () { return chunkSDXK2COQ_cjs.ConnectedLoginPage; }
42522
42525
  });
42523
42526
  Object.defineProperty(exports, "ConnectedLogoutDialog", {
42524
42527
  enumerable: true,
42525
- get: function () { return chunkO2ATVRRO_cjs.ConnectedLogoutDialog; }
42528
+ get: function () { return chunkSDXK2COQ_cjs.ConnectedLogoutDialog; }
42526
42529
  });
42527
42530
  Object.defineProperty(exports, "ConnectedMessage", {
42528
42531
  enumerable: true,
42529
- get: function () { return chunkO2ATVRRO_cjs.ConnectedMessage; }
42532
+ get: function () { return chunkSDXK2COQ_cjs.ConnectedMessage; }
42530
42533
  });
42531
42534
  Object.defineProperty(exports, "ConnectedMessageArea", {
42532
42535
  enumerable: true,
42533
- get: function () { return chunkO2ATVRRO_cjs.ConnectedMessageArea; }
42536
+ get: function () { return chunkSDXK2COQ_cjs.ConnectedMessageArea; }
42534
42537
  });
42535
42538
  Object.defineProperty(exports, "ConnectedMessageList", {
42536
42539
  enumerable: true,
42537
- get: function () { return chunkO2ATVRRO_cjs.ConnectedMessageList; }
42540
+ get: function () { return chunkSDXK2COQ_cjs.ConnectedMessageList; }
42538
42541
  });
42539
42542
  Object.defineProperty(exports, "ConnectedModelSelector", {
42540
42543
  enumerable: true,
42541
- get: function () { return chunkO2ATVRRO_cjs.ConnectedModelSelector; }
42544
+ get: function () { return chunkSDXK2COQ_cjs.ConnectedModelSelector; }
42542
42545
  });
42543
42546
  Object.defineProperty(exports, "ConnectedNotificationPreferences", {
42544
42547
  enumerable: true,
42545
- get: function () { return chunkO2ATVRRO_cjs.ConnectedNotificationPreferences; }
42548
+ get: function () { return chunkSDXK2COQ_cjs.ConnectedNotificationPreferences; }
42546
42549
  });
42547
42550
  Object.defineProperty(exports, "ConnectedPasswordChangeDialog", {
42548
42551
  enumerable: true,
42549
- get: function () { return chunkO2ATVRRO_cjs.ConnectedPasswordChangeDialog; }
42552
+ get: function () { return chunkSDXK2COQ_cjs.ConnectedPasswordChangeDialog; }
42550
42553
  });
42551
42554
  Object.defineProperty(exports, "ConnectedProfileCard", {
42552
42555
  enumerable: true,
42553
- get: function () { return chunkO2ATVRRO_cjs.ConnectedProfileCard; }
42556
+ get: function () { return chunkSDXK2COQ_cjs.ConnectedProfileCard; }
42554
42557
  });
42555
42558
  Object.defineProperty(exports, "ConnectedSecuritySection", {
42556
42559
  enumerable: true,
42557
- get: function () { return chunkO2ATVRRO_cjs.ConnectedSecuritySection; }
42560
+ get: function () { return chunkSDXK2COQ_cjs.ConnectedSecuritySection; }
42558
42561
  });
42559
42562
  Object.defineProperty(exports, "ConnectedSessionsRow", {
42560
42563
  enumerable: true,
42561
- get: function () { return chunkO2ATVRRO_cjs.ConnectedSessionsRow; }
42564
+ get: function () { return chunkSDXK2COQ_cjs.ConnectedSessionsRow; }
42562
42565
  });
42563
42566
  Object.defineProperty(exports, "ConnectedThreadsPreview", {
42564
42567
  enumerable: true,
42565
- get: function () { return chunkO2ATVRRO_cjs.ConnectedThreadsPreview; }
42568
+ get: function () { return chunkSDXK2COQ_cjs.ConnectedThreadsPreview; }
42566
42569
  });
42567
42570
  Object.defineProperty(exports, "ConversationComposer", {
42568
42571
  enumerable: true,
42569
- get: function () { return chunkO2ATVRRO_cjs.ConversationComposer; }
42572
+ get: function () { return chunkSDXK2COQ_cjs.ConversationComposer; }
42570
42573
  });
42571
42574
  Object.defineProperty(exports, "EmbeddedChatPanel", {
42572
42575
  enumerable: true,
42573
- get: function () { return chunkO2ATVRRO_cjs.EmbeddedChatPanel; }
42576
+ get: function () { return chunkSDXK2COQ_cjs.EmbeddedChatPanel; }
42574
42577
  });
42575
42578
  Object.defineProperty(exports, "MessageDetailsModal", {
42576
42579
  enumerable: true,
42577
- get: function () { return chunkO2ATVRRO_cjs.MessageDetailsModal; }
42580
+ get: function () { return chunkSDXK2COQ_cjs.MessageDetailsModal; }
42578
42581
  });
42579
42582
  Object.defineProperty(exports, "MessageLiveSeconds", {
42580
42583
  enumerable: true,
42581
- get: function () { return chunkO2ATVRRO_cjs.MessageLiveSeconds; }
42584
+ get: function () { return chunkSDXK2COQ_cjs.MessageLiveSeconds; }
42582
42585
  });
42583
42586
  Object.defineProperty(exports, "PENDING_RECOVERY_KEY", {
42584
42587
  enumerable: true,
42585
- get: function () { return chunkO2ATVRRO_cjs.PENDING_RECOVERY_KEY; }
42588
+ get: function () { return chunkSDXK2COQ_cjs.PENDING_RECOVERY_KEY; }
42586
42589
  });
42587
42590
  Object.defineProperty(exports, "PREMIUM_TIER_TAG", {
42588
42591
  enumerable: true,
42589
- get: function () { return chunkO2ATVRRO_cjs.PREMIUM_TIER_TAG; }
42592
+ get: function () { return chunkSDXK2COQ_cjs.PREMIUM_TIER_TAG; }
42590
42593
  });
42591
42594
  Object.defineProperty(exports, "RunningSubagents", {
42592
42595
  enumerable: true,
42593
- get: function () { return chunkO2ATVRRO_cjs.RunningSubagents; }
42596
+ get: function () { return chunkSDXK2COQ_cjs.RunningSubagents; }
42594
42597
  });
42595
42598
  Object.defineProperty(exports, "STANDARD_TIER_TAG", {
42596
42599
  enumerable: true,
42597
- get: function () { return chunkO2ATVRRO_cjs.STANDARD_TIER_TAG; }
42600
+ get: function () { return chunkSDXK2COQ_cjs.STANDARD_TIER_TAG; }
42598
42601
  });
42599
42602
  Object.defineProperty(exports, "WorkflowStepMessage", {
42600
42603
  enumerable: true,
42601
- get: function () { return chunkO2ATVRRO_cjs.WorkflowStepMessage; }
42604
+ get: function () { return chunkSDXK2COQ_cjs.WorkflowStepMessage; }
42602
42605
  });
42603
42606
  Object.defineProperty(exports, "backUpOnSignup", {
42604
42607
  enumerable: true,
42605
- get: function () { return chunkO2ATVRRO_cjs.backUpOnSignup; }
42608
+ get: function () { return chunkSDXK2COQ_cjs.backUpOnSignup; }
42606
42609
  });
42607
42610
  Object.defineProperty(exports, "defaultHost", {
42608
42611
  enumerable: true,
42609
- get: function () { return chunkO2ATVRRO_cjs.defaultHost; }
42612
+ get: function () { return chunkSDXK2COQ_cjs.defaultHost; }
42610
42613
  });
42611
42614
  Object.defineProperty(exports, "renderConnectedUser", {
42612
42615
  enumerable: true,
42613
- get: function () { return chunkO2ATVRRO_cjs.renderConnectedUser; }
42616
+ get: function () { return chunkSDXK2COQ_cjs.renderConnectedUser; }
42614
42617
  });
42615
42618
  Object.defineProperty(exports, "renderSessionStatusIcon", {
42616
42619
  enumerable: true,
42617
- get: function () { return chunkO2ATVRRO_cjs.renderSessionStatusIcon; }
42620
+ get: function () { return chunkSDXK2COQ_cjs.renderSessionStatusIcon; }
42618
42621
  });
42619
42622
  Object.defineProperty(exports, "resolveSsoName", {
42620
42623
  enumerable: true,
42621
- get: function () { return chunkO2ATVRRO_cjs.resolveSsoName; }
42624
+ get: function () { return chunkSDXK2COQ_cjs.resolveSsoName; }
42622
42625
  });
42623
42626
  Object.defineProperty(exports, "useAuthPages", {
42624
42627
  enumerable: true,
42625
- get: function () { return chunkO2ATVRRO_cjs.useAuthPages; }
42628
+ get: function () { return chunkSDXK2COQ_cjs.useAuthPages; }
42626
42629
  });
42627
42630
  Object.defineProperty(exports, "useContextualHints", {
42628
42631
  enumerable: true,
42629
- get: function () { return chunkO2ATVRRO_cjs.useContextualHints; }
42632
+ get: function () { return chunkSDXK2COQ_cjs.useContextualHints; }
42630
42633
  });
42631
42634
  Object.defineProperty(exports, "useModelPicker", {
42632
42635
  enumerable: true,
42633
- get: function () { return chunkO2ATVRRO_cjs.useModelPicker; }
42636
+ get: function () { return chunkSDXK2COQ_cjs.useModelPicker; }
42634
42637
  });
42635
42638
  Object.defineProperty(exports, "useOpenChunk", {
42636
42639
  enumerable: true,
42637
- get: function () { return chunkO2ATVRRO_cjs.useOpenChunk; }
42640
+ get: function () { return chunkSDXK2COQ_cjs.useOpenChunk; }
42638
42641
  });
42639
42642
  Object.defineProperty(exports, "useOpenWorkspaceIcon", {
42640
42643
  enumerable: true,
42641
- get: function () { return chunkO2ATVRRO_cjs.useOpenWorkspaceIcon; }
42644
+ get: function () { return chunkSDXK2COQ_cjs.useOpenWorkspaceIcon; }
42642
42645
  });
42643
42646
  Object.defineProperty(exports, "useSlashItems", {
42644
42647
  enumerable: true,
42645
- get: function () { return chunkO2ATVRRO_cjs.useSlashItems; }
42648
+ get: function () { return chunkSDXK2COQ_cjs.useSlashItems; }
42646
42649
  });
42647
42650
  Object.defineProperty(exports, "useSsoSignIn", {
42648
42651
  enumerable: true,
42649
- get: function () { return chunkO2ATVRRO_cjs.useSsoSignIn; }
42652
+ get: function () { return chunkSDXK2COQ_cjs.useSsoSignIn; }
42650
42653
  });
42651
42654
  Object.defineProperty(exports, "useWorkspaceDocTitles", {
42652
42655
  enumerable: true,
42653
- get: function () { return chunkO2ATVRRO_cjs.useWorkspaceDocTitles; }
42656
+ get: function () { return chunkSDXK2COQ_cjs.useWorkspaceDocTitles; }
42654
42657
  });
42655
42658
  Object.defineProperty(exports, "useConnectedThreadActivity", {
42656
42659
  enumerable: true,
42657
- get: function () { return chunkMB2OXZEA_cjs.useConnectedThreadActivity; }
42660
+ get: function () { return chunkXTCNETMI_cjs.useConnectedThreadActivity; }
42658
42661
  });
42659
42662
  Object.defineProperty(exports, "DocumentUser", {
42660
42663
  enumerable: true,
@@ -42670,39 +42673,39 @@ Object.defineProperty(exports, "SELECTED_WORKSPACE_KEY", {
42670
42673
  });
42671
42674
  Object.defineProperty(exports, "ConnectedWorkflowDocumentsField", {
42672
42675
  enumerable: true,
42673
- get: function () { return chunkZJ3NII4U_cjs.ConnectedWorkflowDocumentsField; }
42676
+ get: function () { return chunkECCV4YOL_cjs.ConnectedWorkflowDocumentsField; }
42674
42677
  });
42675
42678
  Object.defineProperty(exports, "ConnectedWorkflowLauncher", {
42676
42679
  enumerable: true,
42677
- get: function () { return chunkZJ3NII4U_cjs.ConnectedWorkflowLauncher; }
42680
+ get: function () { return chunkECCV4YOL_cjs.ConnectedWorkflowLauncher; }
42678
42681
  });
42679
42682
  Object.defineProperty(exports, "ConnectedWorkflowsTable", {
42680
42683
  enumerable: true,
42681
- get: function () { return chunkZJ3NII4U_cjs.ConnectedWorkflowsTable; }
42684
+ get: function () { return chunkECCV4YOL_cjs.ConnectedWorkflowsTable; }
42682
42685
  });
42683
42686
  Object.defineProperty(exports, "DEFAULT_CONNECTED_WORKFLOWS_TABLE_LABELS", {
42684
42687
  enumerable: true,
42685
- get: function () { return chunkZJ3NII4U_cjs.DEFAULT_CONNECTED_WORKFLOWS_TABLE_LABELS; }
42688
+ get: function () { return chunkECCV4YOL_cjs.DEFAULT_CONNECTED_WORKFLOWS_TABLE_LABELS; }
42686
42689
  });
42687
42690
  Object.defineProperty(exports, "toWorkflowFieldDocument", {
42688
42691
  enumerable: true,
42689
- get: function () { return chunkZJ3NII4U_cjs.toWorkflowFieldDocument; }
42692
+ get: function () { return chunkECCV4YOL_cjs.toWorkflowFieldDocument; }
42690
42693
  });
42691
42694
  Object.defineProperty(exports, "useConnectedWorkflowScopeSource", {
42692
42695
  enumerable: true,
42693
- get: function () { return chunkZJ3NII4U_cjs.useConnectedWorkflowScopeSource; }
42696
+ get: function () { return chunkECCV4YOL_cjs.useConnectedWorkflowScopeSource; }
42694
42697
  });
42695
42698
  Object.defineProperty(exports, "useConnectedWorkspaceRole", {
42696
42699
  enumerable: true,
42697
- get: function () { return chunkZJ3NII4U_cjs.useConnectedWorkspaceRole; }
42700
+ get: function () { return chunkECCV4YOL_cjs.useConnectedWorkspaceRole; }
42698
42701
  });
42699
42702
  Object.defineProperty(exports, "useDocxCommentTarget", {
42700
42703
  enumerable: true,
42701
- get: function () { return chunkZJ3NII4U_cjs.useDocxCommentTarget; }
42704
+ get: function () { return chunkECCV4YOL_cjs.useDocxCommentTarget; }
42702
42705
  });
42703
42706
  Object.defineProperty(exports, "useNativeDocxSupport", {
42704
42707
  enumerable: true,
42705
- get: function () { return chunkZJ3NII4U_cjs.useNativeDocxSupport; }
42708
+ get: function () { return chunkECCV4YOL_cjs.useNativeDocxSupport; }
42706
42709
  });
42707
42710
  Object.defineProperty(exports, "useOpenWorkflow", {
42708
42711
  enumerable: true,