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