@arbidocs/blocks 0.5.116 → 0.5.118
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/{ConnectedCallDock-WER7R222.cjs → ConnectedCallDock-E7RMQMMT.cjs} +12 -12
- package/dist/{ConnectedCallDock-WER7R222.cjs.map → ConnectedCallDock-E7RMQMMT.cjs.map} +1 -1
- package/dist/{ConnectedCallRoom-T7OBQTYP.cjs → ConnectedCallRoom-FF7X6LQ2.cjs} +12 -12
- package/dist/{ConnectedCallRoom-T7OBQTYP.cjs.map → ConnectedCallRoom-FF7X6LQ2.cjs.map} +1 -1
- package/dist/{ConnectedNativeDocxComparison-546ILGLW.cjs → ConnectedNativeDocxComparison-PB2LXT5U.cjs} +11 -11
- package/dist/{ConnectedNativeDocxComparison-546ILGLW.cjs.map → ConnectedNativeDocxComparison-PB2LXT5U.cjs.map} +1 -1
- package/dist/{ConnectedStreamedWordArtifact-S2ZFZLZQ.cjs → ConnectedStreamedWordArtifact-S7ICDK5T.cjs} +11 -11
- package/dist/{ConnectedStreamedWordArtifact-S2ZFZLZQ.cjs.map → ConnectedStreamedWordArtifact-S7ICDK5T.cjs.map} +1 -1
- package/dist/{DocumentReviewCard-ZSBZBGFK.cjs → DocumentReviewCard-L472OMQS.cjs} +5 -5
- package/dist/{DocumentReviewCard-ZSBZBGFK.cjs.map → DocumentReviewCard-L472OMQS.cjs.map} +1 -1
- package/dist/{FilesViewerDialog-6UKR5WEF.cjs → FilesViewerDialog-JK25HKKF.cjs} +21 -21
- package/dist/{FilesViewerDialog-6UKR5WEF.cjs.map → FilesViewerDialog-JK25HKKF.cjs.map} +1 -1
- package/dist/{WorkspaceTableView-J3C6VH4T.cjs → WorkspaceTableView-JCTDEMIL.cjs} +8 -8
- package/dist/{WorkspaceTableView-J3C6VH4T.cjs.map → WorkspaceTableView-JCTDEMIL.cjs.map} +1 -1
- package/dist/agents/index.cjs +187 -187
- package/dist/{ai-IM4A23YT.cjs → ai-OBS67QV4.cjs} +16 -16
- package/dist/ai-OBS67QV4.cjs.map +1 -0
- package/dist/calls/index.cjs +2 -2
- package/dist/{chunk-B3LZITVF.cjs → chunk-3LNUQYAF.cjs} +3 -3
- package/dist/{chunk-B3LZITVF.cjs.map → chunk-3LNUQYAF.cjs.map} +1 -1
- package/dist/{chunk-QHOHDNBU.cjs → chunk-5XAJ4N2S.cjs} +4 -4
- package/dist/{chunk-QHOHDNBU.cjs.map → chunk-5XAJ4N2S.cjs.map} +1 -1
- package/dist/{chunk-XKVPSOKP.cjs → chunk-6ULADDBW.cjs} +4 -4
- package/dist/{chunk-XKVPSOKP.cjs.map → chunk-6ULADDBW.cjs.map} +1 -1
- package/dist/{chunk-CPR6EHG7.cjs → chunk-7IPIKMCY.cjs} +3 -3
- package/dist/{chunk-CPR6EHG7.cjs.map → chunk-7IPIKMCY.cjs.map} +1 -1
- package/dist/{chunk-SB4M3ITT.cjs → chunk-CB3YYZAU.cjs} +9 -9
- package/dist/{chunk-SB4M3ITT.cjs.map → chunk-CB3YYZAU.cjs.map} +1 -1
- package/dist/{chunk-6UTKM5AB.cjs → chunk-JSQQV23D.cjs} +3 -3
- package/dist/{chunk-6UTKM5AB.cjs.map → chunk-JSQQV23D.cjs.map} +1 -1
- package/dist/{chunk-VGCTYTEW.cjs → chunk-K6AUKKUN.cjs} +6 -6
- package/dist/{chunk-VGCTYTEW.cjs.map → chunk-K6AUKKUN.cjs.map} +1 -1
- package/dist/{chunk-T23UTIRI.cjs → chunk-KHAO7ZTO.cjs} +5 -5
- package/dist/{chunk-T23UTIRI.cjs.map → chunk-KHAO7ZTO.cjs.map} +1 -1
- package/dist/{chunk-NJCK6V6U.cjs → chunk-L6APDO3Y.cjs} +3 -3
- package/dist/{chunk-NJCK6V6U.cjs.map → chunk-L6APDO3Y.cjs.map} +1 -1
- package/dist/{chunk-NIE3N6OM.cjs → chunk-MMVDVHKE.cjs} +5 -5
- package/dist/{chunk-NIE3N6OM.cjs.map → chunk-MMVDVHKE.cjs.map} +1 -1
- package/dist/{chunk-TDO5UWXF.cjs → chunk-O4F77VSO.cjs} +5 -5
- package/dist/{chunk-TDO5UWXF.cjs.map → chunk-O4F77VSO.cjs.map} +1 -1
- package/dist/{chunk-OEREKAAP.cjs → chunk-OPH4UZQN.cjs} +30 -30
- package/dist/{chunk-OEREKAAP.cjs.map → chunk-OPH4UZQN.cjs.map} +1 -1
- package/dist/{chunk-KTQOGT2L.cjs → chunk-P2MOLUFO.cjs} +6 -6
- package/dist/{chunk-KTQOGT2L.cjs.map → chunk-P2MOLUFO.cjs.map} +1 -1
- package/dist/{chunk-DDIW4HLU.cjs → chunk-PVPRVI54.cjs} +6 -6
- package/dist/{chunk-DDIW4HLU.cjs.map → chunk-PVPRVI54.cjs.map} +1 -1
- package/dist/{chunk-557MJ4IH.cjs → chunk-QOXK5O6M.cjs} +12 -12
- package/dist/{chunk-557MJ4IH.cjs.map → chunk-QOXK5O6M.cjs.map} +1 -1
- package/dist/{chunk-Y24V6HPR.cjs → chunk-SUYPXUE6.cjs} +4 -4
- package/dist/{chunk-Y24V6HPR.cjs.map → chunk-SUYPXUE6.cjs.map} +1 -1
- package/dist/{chunk-R7CJEIA5.cjs → chunk-XZYIS2JZ.cjs} +3 -3
- package/dist/{chunk-R7CJEIA5.cjs.map → chunk-XZYIS2JZ.cjs.map} +1 -1
- package/dist/{chunk-HB2O4THB.cjs → chunk-YDPLSXHB.cjs} +4 -4
- package/dist/{chunk-HB2O4THB.cjs.map → chunk-YDPLSXHB.cjs.map} +1 -1
- package/dist/{chunk-B2HNNG25.cjs → chunk-ZCIQBHH5.cjs} +35 -35
- package/dist/{chunk-B2HNNG25.cjs.map → chunk-ZCIQBHH5.cjs.map} +1 -1
- package/dist/connect/docx.cjs +14 -14
- package/dist/connect/index.cjs +625 -625
- package/dist/connect/viewer.cjs +11 -11
- package/dist/dashboards/index.cjs +1 -1
- package/dist/embed/index.cjs +21 -21
- package/dist/index.cjs +316 -316
- package/dist/settings/index.cjs +147 -147
- package/dist/shell/index.cjs +35 -35
- package/dist/studio/index.cjs +8 -8
- package/dist/workflow-canvas/index.cjs +27 -27
- package/node_modules/@arbidocs/coedit/package.json +1 -1
- package/node_modules/@docx-editor.dev/core/dist/chunk-T6K2QYNZ.cjs +1 -1
- package/node_modules/@docx-editor.dev/core/dist/chunk-U4JZVSOE.js +1 -1
- package/package.json +5 -5
- package/dist/ai-IM4A23YT.cjs.map +0 -1
package/dist/connect/index.cjs
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
'use strict';
|
|
3
3
|
|
|
4
|
-
var
|
|
4
|
+
var chunkO4F77VSO_cjs = require('../chunk-O4F77VSO.cjs');
|
|
5
5
|
var chunkVWTOIGX4_cjs = require('../chunk-VWTOIGX4.cjs');
|
|
6
6
|
var chunkCPG7II4E_cjs = require('../chunk-CPG7II4E.cjs');
|
|
7
|
-
var
|
|
7
|
+
var chunkKHAO7ZTO_cjs = require('../chunk-KHAO7ZTO.cjs');
|
|
8
8
|
var chunkPSIKUQYM_cjs = require('../chunk-PSIKUQYM.cjs');
|
|
9
|
-
var
|
|
10
|
-
var
|
|
9
|
+
var chunkP2MOLUFO_cjs = require('../chunk-P2MOLUFO.cjs');
|
|
10
|
+
var chunkZCIQBHH5_cjs = require('../chunk-ZCIQBHH5.cjs');
|
|
11
11
|
var chunkCMGNRMPA_cjs = require('../chunk-CMGNRMPA.cjs');
|
|
12
12
|
var chunkYZ6YOOTF_cjs = require('../chunk-YZ6YOOTF.cjs');
|
|
13
13
|
var chunkKWJW5TMH_cjs = require('../chunk-KWJW5TMH.cjs');
|
|
14
|
-
var
|
|
15
|
-
var
|
|
16
|
-
var
|
|
14
|
+
var chunkOPH4UZQN_cjs = require('../chunk-OPH4UZQN.cjs');
|
|
15
|
+
var chunkQOXK5O6M_cjs = require('../chunk-QOXK5O6M.cjs');
|
|
16
|
+
var chunkSUYPXUE6_cjs = require('../chunk-SUYPXUE6.cjs');
|
|
17
17
|
var chunkP77YTTJ3_cjs = require('../chunk-P77YTTJ3.cjs');
|
|
18
|
-
var
|
|
18
|
+
var chunkJSQQV23D_cjs = require('../chunk-JSQQV23D.cjs');
|
|
19
19
|
var chunk57NHXEU2_cjs = require('../chunk-57NHXEU2.cjs');
|
|
20
20
|
var chunkTJY7XPDE_cjs = require('../chunk-TJY7XPDE.cjs');
|
|
21
21
|
var chunkH7PHOTX2_cjs = require('../chunk-H7PHOTX2.cjs');
|
|
@@ -31,11 +31,11 @@ var chunkPL7HUTM3_cjs = require('../chunk-PL7HUTM3.cjs');
|
|
|
31
31
|
var chunkYGXOKB5Z_cjs = require('../chunk-YGXOKB5Z.cjs');
|
|
32
32
|
var chunkKXIRVKCJ_cjs = require('../chunk-KXIRVKCJ.cjs');
|
|
33
33
|
var chunkTT4IF52H_cjs = require('../chunk-TT4IF52H.cjs');
|
|
34
|
-
var
|
|
34
|
+
var chunkL6APDO3Y_cjs = require('../chunk-L6APDO3Y.cjs');
|
|
35
35
|
var chunkNNUK5ZM7_cjs = require('../chunk-NNUK5ZM7.cjs');
|
|
36
36
|
var chunk223D4727_cjs = require('../chunk-223D4727.cjs');
|
|
37
37
|
var chunkSNUBQMIS_cjs = require('../chunk-SNUBQMIS.cjs');
|
|
38
|
-
var
|
|
38
|
+
var chunkK6AUKKUN_cjs = require('../chunk-K6AUKKUN.cjs');
|
|
39
39
|
var chunk4ONPEVTP_cjs = require('../chunk-4ONPEVTP.cjs');
|
|
40
40
|
require('../chunk-V3KLUWQQ.cjs');
|
|
41
41
|
var chunkP5AQYC4D_cjs = require('../chunk-P5AQYC4D.cjs');
|
|
@@ -49,7 +49,7 @@ require('../chunk-JH6JTI76.cjs');
|
|
|
49
49
|
var chunkQQMMCXBP_cjs = require('../chunk-QQMMCXBP.cjs');
|
|
50
50
|
require('../chunk-DTMBAFIL.cjs');
|
|
51
51
|
require('../chunk-ZESMRGDV.cjs');
|
|
52
|
-
var
|
|
52
|
+
var chunkMMVDVHKE_cjs = require('../chunk-MMVDVHKE.cjs');
|
|
53
53
|
var chunkSGYSDABK_cjs = require('../chunk-SGYSDABK.cjs');
|
|
54
54
|
require('../chunk-NEGFHF3V.cjs');
|
|
55
55
|
var chunkZ3LFF3YT_cjs = require('../chunk-Z3LFF3YT.cjs');
|
|
@@ -63,7 +63,7 @@ var chunkEOG6OT5I_cjs = require('../chunk-EOG6OT5I.cjs');
|
|
|
63
63
|
require('../chunk-7G2LJMUG.cjs');
|
|
64
64
|
var chunkUKOYN2WD_cjs = require('../chunk-UKOYN2WD.cjs');
|
|
65
65
|
var chunkRC25WMVB_cjs = require('../chunk-RC25WMVB.cjs');
|
|
66
|
-
var
|
|
66
|
+
var chunk3LNUQYAF_cjs = require('../chunk-3LNUQYAF.cjs');
|
|
67
67
|
var chunkMZZ3SBQL_cjs = require('../chunk-MZZ3SBQL.cjs');
|
|
68
68
|
var chunkNY3YUCOW_cjs = require('../chunk-NY3YUCOW.cjs');
|
|
69
69
|
var chunk325GVZE6_cjs = require('../chunk-325GVZE6.cjs');
|
|
@@ -80,7 +80,7 @@ var chunkZU2B2RZK_cjs = require('../chunk-ZU2B2RZK.cjs');
|
|
|
80
80
|
var chunkNSD37OF5_cjs = require('../chunk-NSD37OF5.cjs');
|
|
81
81
|
require('../chunk-OEJQFPWO.cjs');
|
|
82
82
|
require('../chunk-BQOL4XNZ.cjs');
|
|
83
|
-
var
|
|
83
|
+
var chunkPVPRVI54_cjs = require('../chunk-PVPRVI54.cjs');
|
|
84
84
|
var chunkQECKDZ47_cjs = require('../chunk-QECKDZ47.cjs');
|
|
85
85
|
var chunkTP5PGWIO_cjs = require('../chunk-TP5PGWIO.cjs');
|
|
86
86
|
require('../chunk-I4IS6ST6.cjs');
|
|
@@ -89,7 +89,7 @@ require('../chunk-EVZH6Z5O.cjs');
|
|
|
89
89
|
var chunkOYXWQTHF_cjs = require('../chunk-OYXWQTHF.cjs');
|
|
90
90
|
require('../chunk-S237ORM3.cjs');
|
|
91
91
|
require('../chunk-II2OEXHW.cjs');
|
|
92
|
-
require('../chunk-
|
|
92
|
+
require('../chunk-XZYIS2JZ.cjs');
|
|
93
93
|
require('../chunk-3YEXZX4H.cjs');
|
|
94
94
|
var chunk4PA6VCCR_cjs = require('../chunk-4PA6VCCR.cjs');
|
|
95
95
|
require('../chunk-WXUU3COI.cjs');
|
|
@@ -108,19 +108,6 @@ var chunk6U3CYVZC_cjs = require('../chunk-6U3CYVZC.cjs');
|
|
|
108
108
|
var chunkQUMUAJ2P_cjs = require('../chunk-QUMUAJ2P.cjs');
|
|
109
109
|
var chunkZKKSTMMI_cjs = require('../chunk-ZKKSTMMI.cjs');
|
|
110
110
|
var chunkVZOOGA47_cjs = require('../chunk-VZOOGA47.cjs');
|
|
111
|
-
var chunkBQ5RIWWT_cjs = require('../chunk-BQ5RIWWT.cjs');
|
|
112
|
-
require('../chunk-OAIOOVFN.cjs');
|
|
113
|
-
var chunkVJCSEMXT_cjs = require('../chunk-VJCSEMXT.cjs');
|
|
114
|
-
require('../chunk-SBWIA4PL.cjs');
|
|
115
|
-
var chunkQMIHLJMH_cjs = require('../chunk-QMIHLJMH.cjs');
|
|
116
|
-
var chunkHQDR43JC_cjs = require('../chunk-HQDR43JC.cjs');
|
|
117
|
-
var chunkJR2YSBD5_cjs = require('../chunk-JR2YSBD5.cjs');
|
|
118
|
-
var chunkTMX7YFVM_cjs = require('../chunk-TMX7YFVM.cjs');
|
|
119
|
-
var chunkMOIZ2R5X_cjs = require('../chunk-MOIZ2R5X.cjs');
|
|
120
|
-
var chunk3YZKDCWY_cjs = require('../chunk-3YZKDCWY.cjs');
|
|
121
|
-
var chunkSJSGSHIT_cjs = require('../chunk-SJSGSHIT.cjs');
|
|
122
|
-
var chunkZW6FPIFC_cjs = require('../chunk-ZW6FPIFC.cjs');
|
|
123
|
-
require('../chunk-ZT5MIFLC.cjs');
|
|
124
111
|
var chunkKLMNCBLY_cjs = require('../chunk-KLMNCBLY.cjs');
|
|
125
112
|
var chunkPGJYD67F_cjs = require('../chunk-PGJYD67F.cjs');
|
|
126
113
|
require('../chunk-5SKHK3BG.cjs');
|
|
@@ -142,6 +129,19 @@ var chunkQGVOT7E4_cjs = require('../chunk-QGVOT7E4.cjs');
|
|
|
142
129
|
var chunkQRAQZTJE_cjs = require('../chunk-QRAQZTJE.cjs');
|
|
143
130
|
require('../chunk-UDSHVNU3.cjs');
|
|
144
131
|
var chunkIPSHAMO2_cjs = require('../chunk-IPSHAMO2.cjs');
|
|
132
|
+
var chunkBQ5RIWWT_cjs = require('../chunk-BQ5RIWWT.cjs');
|
|
133
|
+
require('../chunk-OAIOOVFN.cjs');
|
|
134
|
+
var chunkVJCSEMXT_cjs = require('../chunk-VJCSEMXT.cjs');
|
|
135
|
+
require('../chunk-SBWIA4PL.cjs');
|
|
136
|
+
var chunkQMIHLJMH_cjs = require('../chunk-QMIHLJMH.cjs');
|
|
137
|
+
var chunkHQDR43JC_cjs = require('../chunk-HQDR43JC.cjs');
|
|
138
|
+
var chunkJR2YSBD5_cjs = require('../chunk-JR2YSBD5.cjs');
|
|
139
|
+
var chunkTMX7YFVM_cjs = require('../chunk-TMX7YFVM.cjs');
|
|
140
|
+
var chunkMOIZ2R5X_cjs = require('../chunk-MOIZ2R5X.cjs');
|
|
141
|
+
var chunk3YZKDCWY_cjs = require('../chunk-3YZKDCWY.cjs');
|
|
142
|
+
var chunkSJSGSHIT_cjs = require('../chunk-SJSGSHIT.cjs');
|
|
143
|
+
var chunkZW6FPIFC_cjs = require('../chunk-ZW6FPIFC.cjs');
|
|
144
|
+
require('../chunk-ZT5MIFLC.cjs');
|
|
145
145
|
var chunkZBP4ZSAJ_cjs = require('../chunk-ZBP4ZSAJ.cjs');
|
|
146
146
|
require('../chunk-PPCATBOY.cjs');
|
|
147
147
|
var chunkTKHCIHE2_cjs = require('../chunk-TKHCIHE2.cjs');
|
|
@@ -256,7 +256,7 @@ function ConnectedWorkspaceActivity({
|
|
|
256
256
|
[feed.data]
|
|
257
257
|
);
|
|
258
258
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
259
|
-
|
|
259
|
+
chunkMMVDVHKE_cjs.WorkspaceActivityList,
|
|
260
260
|
{
|
|
261
261
|
...listProps,
|
|
262
262
|
items,
|
|
@@ -1136,7 +1136,7 @@ function NotificationCenter({
|
|
|
1136
1136
|
}
|
|
1137
1137
|
];
|
|
1138
1138
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col h-full bg-background", "data-testid": "notifications-page", children: [
|
|
1139
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1139
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkL6APDO3Y_cjs.DraggableHeader, { children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1140
1140
|
chunkSJSGSHIT_cjs.TabHeader,
|
|
1141
1141
|
{
|
|
1142
1142
|
tabs,
|
|
@@ -1460,7 +1460,7 @@ function ConnectedOfflineStatus({ compact = false }) {
|
|
|
1460
1460
|
notify19("Still offline \u2014 check your connection and try again.", "warning");
|
|
1461
1461
|
};
|
|
1462
1462
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1463
|
-
|
|
1463
|
+
chunk3LNUQYAF_cjs.OfflinePill,
|
|
1464
1464
|
{
|
|
1465
1465
|
tone,
|
|
1466
1466
|
label,
|
|
@@ -1578,7 +1578,7 @@ function ConnectedSkillUpload({ onDone, labels, className }) {
|
|
|
1578
1578
|
onChange: (e) => {
|
|
1579
1579
|
const file = e.target.files?.[0];
|
|
1580
1580
|
e.target.value = "";
|
|
1581
|
-
if (file) void add(() =>
|
|
1581
|
+
if (file) void add(() => chunkPVPRVI54_cjs.importSkillFile(file));
|
|
1582
1582
|
}
|
|
1583
1583
|
}
|
|
1584
1584
|
),
|
|
@@ -1603,7 +1603,7 @@ function ConnectedSkillUpload({ onDone, labels, className }) {
|
|
|
1603
1603
|
className: "space-y-2",
|
|
1604
1604
|
onSubmit: (e) => {
|
|
1605
1605
|
e.preventDefault();
|
|
1606
|
-
if (url.trim()) void add(() =>
|
|
1606
|
+
if (url.trim()) void add(() => chunkPVPRVI54_cjs.importSkillFromUrl(url));
|
|
1607
1607
|
},
|
|
1608
1608
|
children: [
|
|
1609
1609
|
/* @__PURE__ */ jsxRuntime.jsx(ui.Label, { htmlFor: "skills-add-url", children: l.fromLink }),
|
|
@@ -1656,9 +1656,9 @@ function ConnectedSkillsLibrary({
|
|
|
1656
1656
|
const arbi = react.useArbi();
|
|
1657
1657
|
const { confirm, notify: notify19 } = chunkTKHCIHE2_cjs.useBlocksEnvironment();
|
|
1658
1658
|
const { data: allListings } = react.useSkills();
|
|
1659
|
-
const isExternal2 =
|
|
1659
|
+
const isExternal2 = chunkJSQQV23D_cjs.useIsExternalAccount();
|
|
1660
1660
|
const listings = react$1.useMemo(
|
|
1661
|
-
() => isExternal2 && allListings ?
|
|
1661
|
+
() => isExternal2 && allListings ? chunkJSQQV23D_cjs.withoutMarketplace(allListings) : allListings,
|
|
1662
1662
|
[allListings, isExternal2]
|
|
1663
1663
|
);
|
|
1664
1664
|
const save = react.useSaveSkill();
|
|
@@ -1671,9 +1671,9 @@ function ConnectedSkillsLibrary({
|
|
|
1671
1671
|
const [type, setType] = react$1.useState("all");
|
|
1672
1672
|
const [view, setView] = react$1.useState("gallery");
|
|
1673
1673
|
const [isBusy, setIsBusy] = react$1.useState(false);
|
|
1674
|
-
const all = react$1.useMemo(() =>
|
|
1674
|
+
const all = react$1.useMemo(() => chunkPVPRVI54_cjs.buildLibrarySkills(builtins, listings ?? []), [builtins, listings]);
|
|
1675
1675
|
const shown = react$1.useMemo(
|
|
1676
|
-
() =>
|
|
1676
|
+
() => chunkPVPRVI54_cjs.filterLibrarySkills(all, { query, source, type }),
|
|
1677
1677
|
[all, query, source, type]
|
|
1678
1678
|
);
|
|
1679
1679
|
const current = all.find((s) => s.slug === selected) ?? null;
|
|
@@ -1684,21 +1684,21 @@ function ConnectedSkillsLibrary({
|
|
|
1684
1684
|
const count2 = (s) => all.filter((x) => x.source === s).length;
|
|
1685
1685
|
const sourceOptions = [
|
|
1686
1686
|
{ id: "all", label: "All", count: all.length },
|
|
1687
|
-
{ id: "builtin", label:
|
|
1688
|
-
{ id: "mine", label:
|
|
1689
|
-
{ id: "shared", label:
|
|
1687
|
+
{ id: "builtin", label: chunkPVPRVI54_cjs.SKILL_SOURCE_LABELS.builtin, count: count2("builtin") },
|
|
1688
|
+
{ id: "mine", label: chunkPVPRVI54_cjs.SKILL_SOURCE_LABELS.mine, count: count2("mine") },
|
|
1689
|
+
{ id: "shared", label: chunkPVPRVI54_cjs.SKILL_SOURCE_LABELS.shared, count: count2("shared") }
|
|
1690
1690
|
];
|
|
1691
1691
|
const types = [...new Set(all.map((s) => s.type))];
|
|
1692
1692
|
const typeOptions = [
|
|
1693
1693
|
{ id: "all", label: "Any kind" },
|
|
1694
|
-
...types.map((t) => ({ id: t, label:
|
|
1694
|
+
...types.map((t) => ({ id: t, label: chunkPVPRVI54_cjs.SKILL_TYPE_LABELS[t] ?? t }))
|
|
1695
1695
|
];
|
|
1696
1696
|
const pick = (slug) => {
|
|
1697
1697
|
setSelected(slug);
|
|
1698
1698
|
setMode("detail");
|
|
1699
1699
|
};
|
|
1700
1700
|
const markdownOf = async (skill) => {
|
|
1701
|
-
if (!skill.docExtId) return
|
|
1701
|
+
if (!skill.docExtId) return chunkPVPRVI54_cjs.workflowToSkillMarkdown(skill.workflow);
|
|
1702
1702
|
const response = await arbi.documents.download(skill.docExtId);
|
|
1703
1703
|
if (!response.ok) throw new Error(`Could not read the skill (${response.status})`);
|
|
1704
1704
|
return response.text();
|
|
@@ -1762,7 +1762,7 @@ function ConnectedSkillsLibrary({
|
|
|
1762
1762
|
try {
|
|
1763
1763
|
documentTools.downloadBlob(
|
|
1764
1764
|
new Blob([await markdownOf(skill)], { type: "text/markdown" }),
|
|
1765
|
-
|
|
1765
|
+
chunkPVPRVI54_cjs.SKILL_MAIN_FILENAME
|
|
1766
1766
|
);
|
|
1767
1767
|
} catch (error) {
|
|
1768
1768
|
notify19(errorText(error, "Could not export the skill"), "error");
|
|
@@ -1803,10 +1803,10 @@ function ConnectedSkillsLibrary({
|
|
|
1803
1803
|
}
|
|
1804
1804
|
)
|
|
1805
1805
|
] }),
|
|
1806
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1806
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkPVPRVI54_cjs.SkillViewToggle, { value: view, onChange: setView })
|
|
1807
1807
|
] }),
|
|
1808
1808
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1809
|
-
|
|
1809
|
+
chunkPVPRVI54_cjs.SkillFilterChips,
|
|
1810
1810
|
{
|
|
1811
1811
|
label: "Show",
|
|
1812
1812
|
value: source,
|
|
@@ -1815,7 +1815,7 @@ function ConnectedSkillsLibrary({
|
|
|
1815
1815
|
}
|
|
1816
1816
|
),
|
|
1817
1817
|
types.length > 1 && /* @__PURE__ */ jsxRuntime.jsx(
|
|
1818
|
-
|
|
1818
|
+
chunkPVPRVI54_cjs.SkillFilterChips,
|
|
1819
1819
|
{
|
|
1820
1820
|
label: "Kind",
|
|
1821
1821
|
value: type,
|
|
@@ -1862,12 +1862,12 @@ function ConnectedSkillsLibrary({
|
|
|
1862
1862
|
view === "gallery" ? "grid grid-cols-[repeat(auto-fill,minmax(9.5rem,1fr))]" : "flex flex-col"
|
|
1863
1863
|
),
|
|
1864
1864
|
children: shown.map((skill) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
1865
|
-
|
|
1865
|
+
chunkPVPRVI54_cjs.SkillTile,
|
|
1866
1866
|
{
|
|
1867
1867
|
name: skill.title,
|
|
1868
1868
|
testId: `skill-tile-${skill.slug}`,
|
|
1869
1869
|
description: skill.description,
|
|
1870
|
-
sourceLabel: skill.isShared ? `${
|
|
1870
|
+
sourceLabel: skill.isShared ? `${chunkPVPRVI54_cjs.SKILL_SOURCE_LABELS.mine}, shared` : chunkPVPRVI54_cjs.SKILL_SOURCE_LABELS[skill.source],
|
|
1871
1871
|
type: skill.type,
|
|
1872
1872
|
icon,
|
|
1873
1873
|
layout: view,
|
|
@@ -1902,7 +1902,7 @@ function ConnectedSkillsLibrary({
|
|
|
1902
1902
|
}
|
|
1903
1903
|
),
|
|
1904
1904
|
mode === "new" && /* @__PURE__ */ jsxRuntime.jsx(
|
|
1905
|
-
|
|
1905
|
+
chunkPVPRVI54_cjs.SkillGenerateForm,
|
|
1906
1906
|
{
|
|
1907
1907
|
icon,
|
|
1908
1908
|
onGenerate: (desc) => {
|
|
@@ -1929,11 +1929,11 @@ function ConnectedSkillsLibrary({
|
|
|
1929
1929
|
),
|
|
1930
1930
|
mode === "add" && /* @__PURE__ */ jsxRuntime.jsx(ConnectedSkillUpload, { onDone: done }),
|
|
1931
1931
|
mode === "detail" && current && /* @__PURE__ */ jsxRuntime.jsx(
|
|
1932
|
-
|
|
1932
|
+
chunkPVPRVI54_cjs.SkillLibraryDetail,
|
|
1933
1933
|
{
|
|
1934
1934
|
skill: current,
|
|
1935
1935
|
icon,
|
|
1936
|
-
instructions: current.docExtId ? currentText ?
|
|
1936
|
+
instructions: current.docExtId ? currentText ? chunkPVPRVI54_cjs.parseSkillFrontmatter(currentText, chunkPVPRVI54_cjs.SKILL_MAIN_FILENAME).content : "" : current.workflow.run.kind === "prompt" ? current.workflow.run.promptTemplate : "",
|
|
1937
1937
|
isLoading: !!current.docExtId && textLoading,
|
|
1938
1938
|
actions: {
|
|
1939
1939
|
onRun: () => onRun(current.slug),
|
|
@@ -1968,7 +1968,7 @@ function SkillEditor({
|
|
|
1968
1968
|
const [seeded, setSeeded] = react$1.useState(!isEditing);
|
|
1969
1969
|
const [nameError, setNameError] = react$1.useState(null);
|
|
1970
1970
|
if (isEditing && !seeded && text !== void 0) {
|
|
1971
|
-
const parsed =
|
|
1971
|
+
const parsed = chunkPVPRVI54_cjs.parseSkillFrontmatter(text, chunkPVPRVI54_cjs.SKILL_MAIN_FILENAME);
|
|
1972
1972
|
setDescription(parsed.description ?? "");
|
|
1973
1973
|
setBody(parsed.content ?? "");
|
|
1974
1974
|
setSeeded(true);
|
|
@@ -1982,15 +1982,15 @@ function SkillEditor({
|
|
|
1982
1982
|
notify19("Add a short description.", "error");
|
|
1983
1983
|
return;
|
|
1984
1984
|
}
|
|
1985
|
-
const slug =
|
|
1985
|
+
const slug = chunkPVPRVI54_cjs.skillSlug(name);
|
|
1986
1986
|
try {
|
|
1987
|
-
await onSave(slug,
|
|
1987
|
+
await onSave(slug, chunkPVPRVI54_cjs.serializeSkill({ name: slug, description, body }), isEditing);
|
|
1988
1988
|
} catch (err) {
|
|
1989
1989
|
notify19(errorText(err, "Could not save the skill"), "error");
|
|
1990
1990
|
}
|
|
1991
1991
|
};
|
|
1992
1992
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1993
|
-
|
|
1993
|
+
chunkPVPRVI54_cjs.SkillEditForm,
|
|
1994
1994
|
{
|
|
1995
1995
|
name,
|
|
1996
1996
|
onNameChange: setName,
|
|
@@ -2033,7 +2033,7 @@ function ConnectedSkillsBrowser({
|
|
|
2033
2033
|
renderEditor,
|
|
2034
2034
|
labels
|
|
2035
2035
|
}) {
|
|
2036
|
-
const builtins =
|
|
2036
|
+
const builtins = chunkJSQQV23D_cjs.useNamedWorkflows(givenBuiltins);
|
|
2037
2037
|
const l = { ...DEFAULT_CONNECTED_SKILLS_BROWSER_LABELS, ...labels };
|
|
2038
2038
|
const isOpen = props !== null;
|
|
2039
2039
|
const session = react.useArbiSessionStore();
|
|
@@ -2083,7 +2083,7 @@ function ConnectedSkillsBrowser({
|
|
|
2083
2083
|
}
|
|
2084
2084
|
) }),
|
|
2085
2085
|
runSkillId && /* @__PURE__ */ jsxRuntime.jsx(
|
|
2086
|
-
|
|
2086
|
+
chunkZCIQBHH5_cjs.ConnectedTaskComposer,
|
|
2087
2087
|
{
|
|
2088
2088
|
kind: "workflow",
|
|
2089
2089
|
open: true,
|
|
@@ -2107,9 +2107,9 @@ function ConnectedAgentCreator({
|
|
|
2107
2107
|
agent,
|
|
2108
2108
|
initialName,
|
|
2109
2109
|
onSaved,
|
|
2110
|
-
capabilities =
|
|
2111
|
-
templates =
|
|
2112
|
-
types =
|
|
2110
|
+
capabilities = chunkPVPRVI54_cjs.DEFAULT_AGENT_CAPABILITIES,
|
|
2111
|
+
templates = chunkPVPRVI54_cjs.DEFAULT_AGENT_TEMPLATES,
|
|
2112
|
+
types = chunkPVPRVI54_cjs.DEFAULT_AGENT_TYPES,
|
|
2113
2113
|
canRevokeWorkspaces = false,
|
|
2114
2114
|
labels
|
|
2115
2115
|
}) {
|
|
@@ -2151,7 +2151,7 @@ function ConnectedAgentCreator({
|
|
|
2151
2151
|
const initialValues = react$1.useMemo(
|
|
2152
2152
|
() => ({
|
|
2153
2153
|
name: agent?.given_name ?? initialName ?? "",
|
|
2154
|
-
persona: isEdit ?
|
|
2154
|
+
persona: isEdit ? chunkPVPRVI54_cjs.stripPersonaPreamble(String(agents.PERSONA ?? "")) : "",
|
|
2155
2155
|
modelName: String(agents.AGENT_MODEL_NAME ?? ""),
|
|
2156
2156
|
capabilities: Object.fromEntries(capabilities.map(({ key }) => [key, Boolean(agents[key])])),
|
|
2157
2157
|
type: "builtin",
|
|
@@ -2170,7 +2170,7 @@ function ConnectedAgentCreator({
|
|
|
2170
2170
|
try {
|
|
2171
2171
|
let agentExtId = agent?.external_id ?? early?.id ?? "";
|
|
2172
2172
|
if (!agentExtId) {
|
|
2173
|
-
if (!
|
|
2173
|
+
if (!chunkPVPRVI54_cjs.isValidAgentName(values.name)) {
|
|
2174
2174
|
notify19("Give the agent a name first.", "error");
|
|
2175
2175
|
return;
|
|
2176
2176
|
}
|
|
@@ -2206,7 +2206,7 @@ function ConnectedAgentCreator({
|
|
|
2206
2206
|
title: `agent-${name}`,
|
|
2207
2207
|
sections: {
|
|
2208
2208
|
Agents: {
|
|
2209
|
-
PERSONA:
|
|
2209
|
+
PERSONA: chunkPVPRVI54_cjs.composePersona(name, values.persona),
|
|
2210
2210
|
...values.modelName ? { AGENT_MODEL_NAME: values.modelName } : {},
|
|
2211
2211
|
...Object.fromEntries(capabilities.map(({ key }) => [key, !!values.capabilities[key]])),
|
|
2212
2212
|
ENABLED_SKILLS: values.capabilities.SKILLS_ENABLED && skills.length ? skills : null,
|
|
@@ -2229,7 +2229,7 @@ function ConnectedAgentCreator({
|
|
|
2229
2229
|
};
|
|
2230
2230
|
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
2231
2231
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2232
|
-
|
|
2232
|
+
chunkPVPRVI54_cjs.AgentCreator,
|
|
2233
2233
|
{
|
|
2234
2234
|
open: ready,
|
|
2235
2235
|
onOpenChange,
|
|
@@ -2245,11 +2245,11 @@ function ConnectedAgentCreator({
|
|
|
2245
2245
|
) : void 0,
|
|
2246
2246
|
revokingWorkspaceId: revokeAccess.isPending ? revokeAccess.variables?.workspaceId : void 0,
|
|
2247
2247
|
avatar: (values) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
2248
|
-
|
|
2248
|
+
chunkPVPRVI54_cjs.AgentAvatarField,
|
|
2249
2249
|
{
|
|
2250
2250
|
picture,
|
|
2251
2251
|
isBusy: avatarBusy,
|
|
2252
|
-
canGenerate: isEdit ||
|
|
2252
|
+
canGenerate: isEdit || chunkPVPRVI54_cjs.isValidAgentName(values.name),
|
|
2253
2253
|
onGenerate: () => handleGenerateAvatar(values)
|
|
2254
2254
|
}
|
|
2255
2255
|
),
|
|
@@ -2301,7 +2301,7 @@ function ConnectedAgentCreator({
|
|
|
2301
2301
|
/* @__PURE__ */ jsxRuntime.jsx(ui.DialogTitle, { children: "Connect your agent" }),
|
|
2302
2302
|
/* @__PURE__ */ jsxRuntime.jsx(ui.DialogDescription, { children: "This key is shown once. Run the script on the machine that will host the agent." })
|
|
2303
2303
|
] }),
|
|
2304
|
-
connect && /* @__PURE__ */ jsxRuntime.jsx(
|
|
2304
|
+
connect && /* @__PURE__ */ jsxRuntime.jsx(chunkPVPRVI54_cjs.AgentConnectInstructions, { email: connect.email, signingKey: connect.signingKey })
|
|
2305
2305
|
]
|
|
2306
2306
|
}
|
|
2307
2307
|
) })
|
|
@@ -2693,7 +2693,7 @@ function useMemoryCount(enabled) {
|
|
|
2693
2693
|
}
|
|
2694
2694
|
function AgentsTasks({ tasks, isLoading, agents, labels: l, onCompose }) {
|
|
2695
2695
|
const { notify: notify19, openConversation, openDocument } = chunkTKHCIHE2_cjs.useBlocksEnvironment();
|
|
2696
|
-
const people =
|
|
2696
|
+
const people = chunkZCIQBHH5_cjs.useTaskPeople();
|
|
2697
2697
|
const canEditShared = react.useCanEditShared();
|
|
2698
2698
|
const isWorkspaceOwner = react.useIsWorkspaceOwner();
|
|
2699
2699
|
const { data: workflows = [] } = react.useWorkflows({ live: true });
|
|
@@ -2719,7 +2719,7 @@ function AgentsTasks({ tasks, isLoading, agents, labels: l, onCompose }) {
|
|
|
2719
2719
|
}, [documents]);
|
|
2720
2720
|
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
2721
2721
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2722
|
-
|
|
2722
|
+
chunkPVPRVI54_cjs.TaskTable,
|
|
2723
2723
|
{
|
|
2724
2724
|
tasks,
|
|
2725
2725
|
isLoading,
|
|
@@ -2746,7 +2746,7 @@ function AgentsTasks({ tasks, isLoading, agents, labels: l, onCompose }) {
|
|
|
2746
2746
|
}
|
|
2747
2747
|
),
|
|
2748
2748
|
activityFor && /* @__PURE__ */ jsxRuntime.jsx(
|
|
2749
|
-
|
|
2749
|
+
chunkZCIQBHH5_cjs.ConnectedTaskActivityDialog,
|
|
2750
2750
|
{
|
|
2751
2751
|
conversationId: activityFor.external_id,
|
|
2752
2752
|
taskName: activityFor.title || l.untitledTask,
|
|
@@ -2762,7 +2762,7 @@ function AgentsLauncher({ workflows, renderIcon, labels: l, testId }) {
|
|
|
2762
2762
|
const { notify: notify19, openConversation } = chunkTKHCIHE2_cjs.useBlocksEnvironment();
|
|
2763
2763
|
const { workspaceId, ensureWorkspaceOpen } = chunkJR2YSBD5_cjs.useConnectedWorkspace();
|
|
2764
2764
|
const { data: skills = [] } = react.useSkills({ enabled: !!workspaceId, live: true });
|
|
2765
|
-
const workflowTasks =
|
|
2765
|
+
const workflowTasks = chunkJSQQV23D_cjs.useWorkflowTasks();
|
|
2766
2766
|
const launchable = react$1.useMemo(
|
|
2767
2767
|
() => [
|
|
2768
2768
|
...workflows,
|
|
@@ -2785,7 +2785,7 @@ function AgentsLauncher({ workflows, renderIcon, labels: l, testId }) {
|
|
|
2785
2785
|
[workflows, skills, l.skillFiles]
|
|
2786
2786
|
);
|
|
2787
2787
|
const launch = async ({ workflow, inputs, agentId }) => {
|
|
2788
|
-
const values =
|
|
2788
|
+
const values = chunkPVPRVI54_cjs.defaultTaskComposerValues(launchable, {
|
|
2789
2789
|
workflowId: workflow.id,
|
|
2790
2790
|
assignee: "agent",
|
|
2791
2791
|
inputs,
|
|
@@ -2905,7 +2905,7 @@ function ConnectedAgentsPageScope(props) {
|
|
|
2905
2905
|
children,
|
|
2906
2906
|
/* @__PURE__ */ jsxRuntime.jsx(ConnectedAgentCreator, { ...management.editorProps, ...agentOptions.creator }),
|
|
2907
2907
|
taskDialog && /* @__PURE__ */ jsxRuntime.jsx(
|
|
2908
|
-
|
|
2908
|
+
chunkZCIQBHH5_cjs.ConnectedTaskComposer,
|
|
2909
2909
|
{
|
|
2910
2910
|
open: true,
|
|
2911
2911
|
onOpenChange: (open) => !open && setTaskDialog(null),
|
|
@@ -2927,7 +2927,7 @@ function AgentsGallery() {
|
|
|
2927
2927
|
cardTestIds
|
|
2928
2928
|
} = agentOptions;
|
|
2929
2929
|
const { openConversation } = chunkTKHCIHE2_cjs.useBlocksEnvironment();
|
|
2930
|
-
const tasksByAgent = react$1.useMemo(() =>
|
|
2930
|
+
const tasksByAgent = react$1.useMemo(() => chunkPVPRVI54_cjs.groupAgentTasks(tasks), [tasks]);
|
|
2931
2931
|
const behaviour = useAgentBehaviour(l.defaultBehaviour, details.includes("behaviour"));
|
|
2932
2932
|
const { agents } = management;
|
|
2933
2933
|
const cardDetails = (agent) => details.map(
|
|
@@ -2942,7 +2942,7 @@ function AgentsGallery() {
|
|
|
2942
2942
|
) : detail === "workspaces" ? /* @__PURE__ */ jsxRuntime.jsx(AgentWorkspaceAccess, { agentExtId: agent.external_id, labels: l }, detail) : /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-muted-foreground", children: behaviour.behaviourOf(agent.given_name) }, detail)
|
|
2943
2943
|
);
|
|
2944
2944
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
2945
|
-
|
|
2945
|
+
chunkPVPRVI54_cjs.AgentGallery,
|
|
2946
2946
|
{
|
|
2947
2947
|
count: agents.length,
|
|
2948
2948
|
onCreate: management.create,
|
|
@@ -2952,9 +2952,9 @@ function AgentsGallery() {
|
|
|
2952
2952
|
const agentTasks = tasksByAgent.get(agent.external_id) ?? [];
|
|
2953
2953
|
const running = agentTasks.filter((t) => t.in_progress);
|
|
2954
2954
|
const watchConversationId = running[0]?.external_id ?? null;
|
|
2955
|
-
const progress = agentTasks[0] ?
|
|
2955
|
+
const progress = agentTasks[0] ? chunkPVPRVI54_cjs.goalProgress(agentTasks[0]) : null;
|
|
2956
2956
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
2957
|
-
|
|
2957
|
+
chunkPVPRVI54_cjs.AgentCard,
|
|
2958
2958
|
{
|
|
2959
2959
|
name: displayName(agent),
|
|
2960
2960
|
avatar: /* @__PURE__ */ jsxRuntime.jsx(AgentInitialsAvatar, { agent }),
|
|
@@ -3062,7 +3062,7 @@ function AgentsSectionBody({ id }) {
|
|
|
3062
3062
|
) });
|
|
3063
3063
|
case "scheduled":
|
|
3064
3064
|
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex h-[min(32rem,70dvh)] min-h-64 flex-col", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
3065
|
-
|
|
3065
|
+
chunkK6AUKKUN_cjs.ConnectedWorkflowsTable,
|
|
3066
3066
|
{
|
|
3067
3067
|
filter: "scheduled",
|
|
3068
3068
|
onEdit: (w) => openWorkflow?.(w.external_id),
|
|
@@ -3124,7 +3124,7 @@ function ConnectedAgentsPage({
|
|
|
3124
3124
|
className: "flex h-full flex-col",
|
|
3125
3125
|
"data-testid": scope.testIds?.root ?? DEFAULT_TEST_IDS.root,
|
|
3126
3126
|
children: [
|
|
3127
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3127
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkL6APDO3Y_cjs.DraggableHeader, { children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
3128
3128
|
chunkSJSGSHIT_cjs.TabHeader,
|
|
3129
3129
|
{
|
|
3130
3130
|
tabs: [
|
|
@@ -3236,10 +3236,10 @@ function cascadeTagCombination(tags, previous, next) {
|
|
|
3236
3236
|
function tagCombinationMatches(combination, items) {
|
|
3237
3237
|
if (!isCombining(combination)) return void 0;
|
|
3238
3238
|
const pass = (list) => new Set(
|
|
3239
|
-
|
|
3239
|
+
chunkL6APDO3Y_cjs.applyInvertedIndexFilter(
|
|
3240
3240
|
[...list],
|
|
3241
3241
|
combination,
|
|
3242
|
-
|
|
3242
|
+
chunkL6APDO3Y_cjs.buildInvertedIndex(
|
|
3243
3243
|
[...list],
|
|
3244
3244
|
(item) => item.id,
|
|
3245
3245
|
(item) => item.tagIds
|
|
@@ -3366,7 +3366,7 @@ function ConnectedTagTable({
|
|
|
3366
3366
|
const fail2 = (fallback) => (e) => notify19(browser.refusalReason(e, fallback), "error");
|
|
3367
3367
|
const snapshot2 = (data) => {
|
|
3368
3368
|
const title = exportTitle ?? ui.tagKindTitle(kind, { plural: true });
|
|
3369
|
-
const bytes =
|
|
3369
|
+
const bytes = chunkMMVDVHKE_cjs.tagTableDocx(data, {
|
|
3370
3370
|
title,
|
|
3371
3371
|
nameOf: (id) => people.find((p) => p.value === id)?.label
|
|
3372
3372
|
});
|
|
@@ -3375,7 +3375,7 @@ function ConnectedTagTable({
|
|
|
3375
3375
|
return { blob: new Blob([bytes], { type: chunkUKOYN2WD_cjs.DOCX_MIME_TYPE }), name };
|
|
3376
3376
|
};
|
|
3377
3377
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
3378
|
-
|
|
3378
|
+
chunkMMVDVHKE_cjs.TagTable,
|
|
3379
3379
|
{
|
|
3380
3380
|
...props,
|
|
3381
3381
|
table,
|
|
@@ -3752,9 +3752,9 @@ function GlossaryExport({ labelId, nameOf }) {
|
|
|
3752
3752
|
const narrowed = agreements.find((a) => a.id === narrowTo);
|
|
3753
3753
|
const title = narrowed ? `Glossary - ${narrowed.name}` : "Glossary";
|
|
3754
3754
|
const download = (format) => {
|
|
3755
|
-
const entries =
|
|
3756
|
-
const blob = format === "docx" ? new Blob([
|
|
3757
|
-
documentTools.downloadBlob(blob,
|
|
3755
|
+
const entries = chunkMMVDVHKE_cjs.glossaryEntries(sources, { labelId: narrowed?.id });
|
|
3756
|
+
const blob = format === "docx" ? new Blob([chunkMMVDVHKE_cjs.glossaryDocx(entries, { title })], { type: chunkUKOYN2WD_cjs.DOCX_MIME_TYPE }) : new Blob([chunkMMVDVHKE_cjs.glossaryMarkdown(entries, { title })], { type: "text/markdown" });
|
|
3757
|
+
documentTools.downloadBlob(blob, chunkMMVDVHKE_cjs.glossaryFileName(title, format));
|
|
3758
3758
|
};
|
|
3759
3759
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", "data-testid": "tags-glossary", children: [
|
|
3760
3760
|
agreements.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs(
|
|
@@ -4218,7 +4218,7 @@ function TagFilterChips({
|
|
|
4218
4218
|
const name = (id) => tags.find((t) => t.external_id === id)?.name ?? id;
|
|
4219
4219
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-wrap items-center gap-1.5", "data-testid": "tags-filter-chips", children: [
|
|
4220
4220
|
set.map(([id, state]) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
4221
|
-
|
|
4221
|
+
chunkL6APDO3Y_cjs.FilterChip,
|
|
4222
4222
|
{
|
|
4223
4223
|
label: name(id),
|
|
4224
4224
|
labelContent: /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -4283,7 +4283,7 @@ function KindSection({
|
|
|
4283
4283
|
{
|
|
4284
4284
|
testId: `tags-kind-${kind}`,
|
|
4285
4285
|
title: ui.tagKindTitle(kind, { plural: true }),
|
|
4286
|
-
description:
|
|
4286
|
+
description: chunkMMVDVHKE_cjs.tagKindDescription(kind),
|
|
4287
4287
|
children: [
|
|
4288
4288
|
browser.isEntityTag({ kind }) && extractingCount > 0 && /* @__PURE__ */ jsxRuntime.jsxs(
|
|
4289
4289
|
"p",
|
|
@@ -4293,9 +4293,9 @@ function KindSection({
|
|
|
4293
4293
|
children: [
|
|
4294
4294
|
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.Loader2, { className: "size-4 animate-spin" }),
|
|
4295
4295
|
"Extracting ",
|
|
4296
|
-
|
|
4296
|
+
chunkMMVDVHKE_cjs.entitiesPhrase().toLowerCase(),
|
|
4297
4297
|
" from ",
|
|
4298
|
-
|
|
4298
|
+
chunkMMVDVHKE_cjs.documentCount(extractingCount),
|
|
4299
4299
|
"\u2026"
|
|
4300
4300
|
]
|
|
4301
4301
|
}
|
|
@@ -4313,7 +4313,7 @@ function KindSection({
|
|
|
4313
4313
|
onOpenTag: ctx.onOpenTag,
|
|
4314
4314
|
onOpenRow: ctx.onOpenTag,
|
|
4315
4315
|
onOpenTaggedItems: ctx.onOpenTaggedItems,
|
|
4316
|
-
labels:
|
|
4316
|
+
labels: chunkMMVDVHKE_cjs.tagTableLabels(kind),
|
|
4317
4317
|
testId: `tags-table-${kind}`
|
|
4318
4318
|
}
|
|
4319
4319
|
)
|
|
@@ -4421,15 +4421,15 @@ function TagSection({
|
|
|
4421
4421
|
onOpenTag: ctx.onOpenTag,
|
|
4422
4422
|
onOpenRow: ctx.onOpenTag,
|
|
4423
4423
|
onOpenTaggedItems: ctx.onOpenTaggedItems,
|
|
4424
|
-
labels:
|
|
4424
|
+
labels: chunkMMVDVHKE_cjs.tagTableLabels(tag.kind),
|
|
4425
4425
|
testId: "tags-rows"
|
|
4426
4426
|
}
|
|
4427
4427
|
),
|
|
4428
4428
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4429
|
-
|
|
4429
|
+
chunkMMVDVHKE_cjs.TagDetail,
|
|
4430
4430
|
{
|
|
4431
4431
|
onOpenTaggedItems: ctx.onOpenTaggedItems,
|
|
4432
|
-
fieldLabels:
|
|
4432
|
+
fieldLabels: chunkMMVDVHKE_cjs.tagTableLabels(tag.kind),
|
|
4433
4433
|
row: detailRow,
|
|
4434
4434
|
fields: schema.data?.fields ?? [],
|
|
4435
4435
|
isLoading: detail.isLoading,
|
|
@@ -4443,7 +4443,7 @@ function TagSection({
|
|
|
4443
4443
|
throw e;
|
|
4444
4444
|
})
|
|
4445
4445
|
),
|
|
4446
|
-
labels:
|
|
4446
|
+
labels: chunkMMVDVHKE_cjs.tagDetailLabels(),
|
|
4447
4447
|
testId: "tags-detail"
|
|
4448
4448
|
}
|
|
4449
4449
|
)
|
|
@@ -4518,7 +4518,7 @@ function ConnectedTagsPage() {
|
|
|
4518
4518
|
const onDelete = async (t) => {
|
|
4519
4519
|
const nested = browser.getChildTags([...tags], t.external_id);
|
|
4520
4520
|
const uses = browser.tagUseCount(t);
|
|
4521
|
-
const n2 =
|
|
4521
|
+
const n2 = chunkMMVDVHKE_cjs.tagsPageNouns();
|
|
4522
4522
|
const tagNoun = (count2) => (count2 === 1 ? n2.tag : n2.tags).toLowerCase();
|
|
4523
4523
|
const carriers = uses === 1 ? `${n2.document}, ${n2.fact} or ${n2.thread}` : `${n2.documents}, ${n2.facts} and ${n2.threads}`;
|
|
4524
4524
|
const message = `Delete ${ui.tagKindNouns(t.kind).singular} "${t.name}"?` + (uses > 0 ? `
|
|
@@ -4539,11 +4539,11 @@ ${nested.length} nested ${tagNoun(nested.length)} ${nested.length === 1 ? "moves
|
|
|
4539
4539
|
try {
|
|
4540
4540
|
await extract.mutateAsync(docIds);
|
|
4541
4541
|
notify19(
|
|
4542
|
-
`Extracting ${
|
|
4542
|
+
`Extracting ${chunkMMVDVHKE_cjs.entitiesPhrase().toLowerCase()} from ${chunkMMVDVHKE_cjs.documentCount(docIds.length)}. You will be notified when it is done.`,
|
|
4543
4543
|
"info"
|
|
4544
4544
|
);
|
|
4545
4545
|
} catch (error) {
|
|
4546
|
-
notify19(browser.refusalReason(error, `Could not extract ${
|
|
4546
|
+
notify19(browser.refusalReason(error, `Could not extract ${chunkMMVDVHKE_cjs.entitiesPhrase().toLowerCase()}`), "error");
|
|
4547
4547
|
throw error;
|
|
4548
4548
|
}
|
|
4549
4549
|
};
|
|
@@ -4557,10 +4557,10 @@ ${nested.length} nested ${tagNoun(nested.length)} ${nested.length === 1 ? "moves
|
|
|
4557
4557
|
onOpenTag: openTag,
|
|
4558
4558
|
onOpenTaggedItems
|
|
4559
4559
|
};
|
|
4560
|
-
const n =
|
|
4560
|
+
const n = chunkMMVDVHKE_cjs.tagsPageNouns();
|
|
4561
4561
|
const action = view === "person" || view === "organisation" ? {
|
|
4562
4562
|
label: "Extract",
|
|
4563
|
-
title: `Extract ${
|
|
4563
|
+
title: `Extract ${chunkMMVDVHKE_cjs.entitiesPhrase().toLowerCase()} from ${n.documents.toLowerCase()}`,
|
|
4564
4564
|
icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Sparkles, { className: "h-4 w-4" }),
|
|
4565
4565
|
run: () => setExtracting(true),
|
|
4566
4566
|
testId: "tags-extract-entities"
|
|
@@ -4729,7 +4729,7 @@ ${nested.length} nested ${tagNoun(nested.length)} ${nested.length === 1 ? "moves
|
|
|
4729
4729
|
}
|
|
4730
4730
|
),
|
|
4731
4731
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4732
|
-
|
|
4732
|
+
chunkMMVDVHKE_cjs.ExtractEntitiesDialog,
|
|
4733
4733
|
{
|
|
4734
4734
|
open: extracting,
|
|
4735
4735
|
onOpenChange: setExtracting,
|
|
@@ -4913,7 +4913,7 @@ function ConnectedPanelHost({
|
|
|
4913
4913
|
onClose();
|
|
4914
4914
|
}, [onClose]);
|
|
4915
4915
|
const setFocusedArea = react.useArbiSessionStore().setFocusedArea;
|
|
4916
|
-
const { popoutTitle } =
|
|
4916
|
+
const { popoutTitle } = chunk3LNUQYAF_cjs.usePanelHostSupport();
|
|
4917
4917
|
const focusedArea = react.useArbiSessionState((s) => s.shell.focusedArea);
|
|
4918
4918
|
const handlePanelFocus = react$1.useCallback(() => {
|
|
4919
4919
|
setFocusedArea(panelId);
|
|
@@ -4946,7 +4946,7 @@ function ConnectedPanelHost({
|
|
|
4946
4946
|
}, [isExiting]);
|
|
4947
4947
|
if (!isOpen && !isExiting) return null;
|
|
4948
4948
|
const modeSwitcher = /* @__PURE__ */ jsxRuntime.jsx(
|
|
4949
|
-
|
|
4949
|
+
chunk3LNUQYAF_cjs.PanelModeSwitcher,
|
|
4950
4950
|
{
|
|
4951
4951
|
mode,
|
|
4952
4952
|
onModeChange: setPanelMode,
|
|
@@ -4956,7 +4956,7 @@ function ConnectedPanelHost({
|
|
|
4956
4956
|
}
|
|
4957
4957
|
);
|
|
4958
4958
|
const panelElement = /* @__PURE__ */ jsxRuntime.jsx(
|
|
4959
|
-
|
|
4959
|
+
chunkL6APDO3Y_cjs.FloatingPanel,
|
|
4960
4960
|
{
|
|
4961
4961
|
panelId,
|
|
4962
4962
|
mode,
|
|
@@ -4968,7 +4968,7 @@ function ConnectedPanelHost({
|
|
|
4968
4968
|
}
|
|
4969
4969
|
);
|
|
4970
4970
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
4971
|
-
|
|
4971
|
+
chunk3LNUQYAF_cjs.PanelPortal,
|
|
4972
4972
|
{
|
|
4973
4973
|
defaultWidth,
|
|
4974
4974
|
panelId,
|
|
@@ -6089,7 +6089,7 @@ function ConnectedFieldsManager({
|
|
|
6089
6089
|
) })
|
|
6090
6090
|
] });
|
|
6091
6091
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col h-full", children: [
|
|
6092
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
6092
|
+
/* @__PURE__ */ jsxRuntime.jsxs(chunkL6APDO3Y_cjs.DraggableHeader, { children: [
|
|
6093
6093
|
/* @__PURE__ */ jsxRuntime.jsx(chunkNNUK5ZM7_cjs.FieldsManagerTitle, { title, className: "px-4 pt-3.5 pb-2" }),
|
|
6094
6094
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "px-3", children: tabHeader })
|
|
6095
6095
|
] }),
|
|
@@ -6989,10 +6989,10 @@ function useFactFilters(notes, view, chat) {
|
|
|
6989
6989
|
);
|
|
6990
6990
|
const setFactFilters = view.setFilters;
|
|
6991
6991
|
const quickFilteredNotes = react$1.useMemo(
|
|
6992
|
-
() =>
|
|
6992
|
+
() => chunkL6APDO3Y_cjs.applyInvertedIndexFilter(
|
|
6993
6993
|
notes,
|
|
6994
6994
|
factFilters,
|
|
6995
|
-
|
|
6995
|
+
chunkL6APDO3Y_cjs.buildInvertedIndex(
|
|
6996
6996
|
notes,
|
|
6997
6997
|
(f) => f.external_id,
|
|
6998
6998
|
(f) => Object.entries(getFactFilterAttributes(f)).filter(([id, on]) => on && factFilterIds.includes(id)).map(([id]) => id)
|
|
@@ -7849,7 +7849,7 @@ function ConnectedFactsPage() {
|
|
|
7849
7849
|
onNewFact: composing && !editingId ? () => void 0 : composer.startNewFact,
|
|
7850
7850
|
navSlotRef: setNavSlot,
|
|
7851
7851
|
navigator: view === "table" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
7852
|
-
|
|
7852
|
+
chunkMMVDVHKE_cjs.GridRowNavigator,
|
|
7853
7853
|
{
|
|
7854
7854
|
gridApi,
|
|
7855
7855
|
selectedId: editingId,
|
|
@@ -8126,7 +8126,7 @@ function useConnectedShellWorkspaces(options = {}) {
|
|
|
8126
8126
|
function ConnectedSsoDisconnect() {
|
|
8127
8127
|
const { client } = react.useAccountClient();
|
|
8128
8128
|
const { data: profile } = react.useProfile();
|
|
8129
|
-
const auth =
|
|
8129
|
+
const auth = chunkOPH4UZQN_cjs.useAuthPages();
|
|
8130
8130
|
const { notify: notify19 } = chunkTKHCIHE2_cjs.useBlocksEnvironment();
|
|
8131
8131
|
const [open, setOpen] = react$1.useState(false);
|
|
8132
8132
|
const [step, setStep] = react$1.useState("email");
|
|
@@ -8271,7 +8271,7 @@ function ConnectedBoxPortalSection() {
|
|
|
8271
8271
|
function ServerConnectionRow({ onRefresh, ...status }) {
|
|
8272
8272
|
const { runtimeConfig } = chunkTKHCIHE2_cjs.useBlocksEnvironment();
|
|
8273
8273
|
const [isRefreshing, setIsRefreshing] = react$1.useState(false);
|
|
8274
|
-
const view =
|
|
8274
|
+
const view = chunkL6APDO3Y_cjs.serverConnectionView(status, runtimeConfig.deploymentDomain || "server");
|
|
8275
8275
|
const refresh = async () => {
|
|
8276
8276
|
setIsRefreshing(true);
|
|
8277
8277
|
try {
|
|
@@ -8281,7 +8281,7 @@ function ServerConnectionRow({ onRefresh, ...status }) {
|
|
|
8281
8281
|
}
|
|
8282
8282
|
};
|
|
8283
8283
|
return /* @__PURE__ */ jsxRuntime.jsx(chunkQQMMCXBP_cjs.SettingsRow, { label: "Server connection", description: view.description, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
8284
|
-
|
|
8284
|
+
chunkL6APDO3Y_cjs.ServerConnectionButton,
|
|
8285
8285
|
{
|
|
8286
8286
|
state: view.state,
|
|
8287
8287
|
label: view.label,
|
|
@@ -8304,14 +8304,14 @@ function ConnectedAccountSettings({
|
|
|
8304
8304
|
}) {
|
|
8305
8305
|
const [logoutOpen, setLogoutOpen] = react$1.useState(false);
|
|
8306
8306
|
return /* @__PURE__ */ jsxRuntime.jsxs(chunkQQMMCXBP_cjs.SettingsPanel, { className: "max-w-2xl", children: [
|
|
8307
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
8307
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkOPH4UZQN_cjs.ConnectedProfileCard, { avatarClassName, nameBadge: profileBadge }),
|
|
8308
8308
|
/* @__PURE__ */ jsxRuntime.jsx(ConnectedBoxPortalSection, {}),
|
|
8309
8309
|
/* @__PURE__ */ jsxRuntime.jsxs(chunkQQMMCXBP_cjs.SettingsDisclosure, { title: "More", testId: "account-more-settings", children: [
|
|
8310
8310
|
/* @__PURE__ */ jsxRuntime.jsx(ConnectedSsoDisconnect, {}),
|
|
8311
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
8311
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkOPH4UZQN_cjs.ConnectedSecuritySection, { children: securityRows }),
|
|
8312
8312
|
moreSettings,
|
|
8313
8313
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
8314
|
-
|
|
8314
|
+
chunkOPH4UZQN_cjs.ConnectedIdentityVerification,
|
|
8315
8315
|
{
|
|
8316
8316
|
collapsible: true,
|
|
8317
8317
|
onManageBilling,
|
|
@@ -8321,7 +8321,7 @@ function ConnectedAccountSettings({
|
|
|
8321
8321
|
] }),
|
|
8322
8322
|
/* @__PURE__ */ jsxRuntime.jsx(chunkQQMMCXBP_cjs.SettingsSection, { icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Wifi, {}), title: "Session", children: /* @__PURE__ */ jsxRuntime.jsxs(chunkQQMMCXBP_cjs.SettingsCard, { children: [
|
|
8323
8323
|
connection && /* @__PURE__ */ jsxRuntime.jsx(ServerConnectionRow, { ...connection }),
|
|
8324
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
8324
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkOPH4UZQN_cjs.ConnectedSessionsRow, { renderSessionIcon }),
|
|
8325
8325
|
/* @__PURE__ */ jsxRuntime.jsx(chunkQQMMCXBP_cjs.SettingsRow, { label: "Logout", description: "Sign out of your account on this device.", children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
8326
8326
|
ui.Button,
|
|
8327
8327
|
{
|
|
@@ -8338,9 +8338,9 @@ function ConnectedAccountSettings({
|
|
|
8338
8338
|
}
|
|
8339
8339
|
) })
|
|
8340
8340
|
] }) }),
|
|
8341
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
8341
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkOPH4UZQN_cjs.ConnectedDangerZone, { renderSubscriptionLink }),
|
|
8342
8342
|
!onLogout && /* @__PURE__ */ jsxRuntime.jsx(
|
|
8343
|
-
|
|
8343
|
+
chunkOPH4UZQN_cjs.ConnectedLogoutDialog,
|
|
8344
8344
|
{
|
|
8345
8345
|
open: logoutOpen,
|
|
8346
8346
|
onClose: () => setLogoutOpen(false),
|
|
@@ -8683,7 +8683,7 @@ function ConnectedPrivacySettings({
|
|
|
8683
8683
|
}
|
|
8684
8684
|
)
|
|
8685
8685
|
] }) }),
|
|
8686
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
8686
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkOPH4UZQN_cjs.ConnectedNotificationPreferences, {})
|
|
8687
8687
|
] });
|
|
8688
8688
|
}
|
|
8689
8689
|
var PROVIDER_NAMES = {
|
|
@@ -8724,13 +8724,13 @@ var COLUMNS = [
|
|
|
8724
8724
|
flex: 1,
|
|
8725
8725
|
minWidth: 120,
|
|
8726
8726
|
cellRenderer: (params) => isStandard(params.data) ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
8727
|
-
|
|
8727
|
+
chunkL6APDO3Y_cjs.ModelProviderLabel,
|
|
8728
8728
|
{
|
|
8729
8729
|
logo: /* @__PURE__ */ jsxRuntime.jsx(ui.ArbiIcon, { size: 14, "aria-label": "ARBI", className: "flex-shrink-0 rounded-sm" }),
|
|
8730
8730
|
children: "ARBI CITY"
|
|
8731
8731
|
}
|
|
8732
8732
|
) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
8733
|
-
|
|
8733
|
+
chunkL6APDO3Y_cjs.ModelProviderLabel,
|
|
8734
8734
|
{
|
|
8735
8735
|
logo: /* @__PURE__ */ jsxRuntime.jsx(ui.ProviderIcon, { modelName: params.data?.model_name, provider: params.value, size: 14 }),
|
|
8736
8736
|
children: PROVIDER_NAMES[params.value ?? ""] || params.value || "\u2014"
|
|
@@ -8807,7 +8807,7 @@ function ConnectedPremiumModels() {
|
|
|
8807
8807
|
);
|
|
8808
8808
|
if (premiumModels.length === 0) return null;
|
|
8809
8809
|
return /* @__PURE__ */ jsxRuntime.jsx(chunkQQMMCXBP_cjs.SettingsPanel, { className: "max-w-2xl space-y-4", children: /* @__PURE__ */ jsxRuntime.jsx(chunkQQMMCXBP_cjs.SettingsSection, { title: "Premium models", children: /* @__PURE__ */ jsxRuntime.jsx(chunkQQMMCXBP_cjs.SettingsCard, { className: "space-y-0", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
8810
|
-
|
|
8810
|
+
chunkL6APDO3Y_cjs.PremiumModelsFrame,
|
|
8811
8811
|
{
|
|
8812
8812
|
enabled: premiumModel !== "",
|
|
8813
8813
|
onEnabledChange: (enabled) => {
|
|
@@ -9143,10 +9143,10 @@ function ConnectedAppsSettings({
|
|
|
9143
9143
|
}
|
|
9144
9144
|
};
|
|
9145
9145
|
if (isLoading) {
|
|
9146
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
9146
|
+
return /* @__PURE__ */ jsxRuntime.jsx(chunkL6APDO3Y_cjs.ConnectionsLoading, { message: "Loading connected apps\u2026" });
|
|
9147
9147
|
}
|
|
9148
9148
|
if (catalogError) {
|
|
9149
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
9149
|
+
return /* @__PURE__ */ jsxRuntime.jsx(chunkL6APDO3Y_cjs.ConnectionsError, { message: "Failed to load connector catalog. Please refresh and try again." });
|
|
9150
9150
|
}
|
|
9151
9151
|
const visibleCatalog = catalog.filter((c) => isVendorVisible(c.vendor_key));
|
|
9152
9152
|
const sharePointVisible = isVendorVisible("microsoft_sharepoint");
|
|
@@ -9155,7 +9155,7 @@ function ConnectedAppsSettings({
|
|
|
9155
9155
|
(c) => !react.isMailboxSyncVendor(c.vendor_key) && !react.isSharePointVendor(c.vendor_key)
|
|
9156
9156
|
);
|
|
9157
9157
|
const renderCard = (entry) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
9158
|
-
|
|
9158
|
+
chunkL6APDO3Y_cjs.ConnectionCard,
|
|
9159
9159
|
{
|
|
9160
9160
|
connection: toConnectionCardView(entry, connectedByVendor[entry.vendor_key], {
|
|
9161
9161
|
isDisconnecting: disconnect.isPending && disconnect.variables?.vendorKey === entry.vendor_key,
|
|
@@ -9283,7 +9283,7 @@ function ConnectedAppsSettings({
|
|
|
9283
9283
|
}
|
|
9284
9284
|
)
|
|
9285
9285
|
] }),
|
|
9286
|
-
catalog.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx(chunkQQMMCXBP_cjs.SettingsCard, { children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
9286
|
+
catalog.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx(chunkQQMMCXBP_cjs.SettingsCard, { children: /* @__PURE__ */ jsxRuntime.jsx(chunkL6APDO3Y_cjs.ConnectionsEmpty, { message: "No connectors available yet." }) }) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
9287
9287
|
renderGroup("Email & Drive", EMAIL_AND_DRIVE_SUBTITLE, /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Mail, {}), emailCatalog),
|
|
9288
9288
|
renderGroup(
|
|
9289
9289
|
"Apps & Integrations (MCP)",
|
|
@@ -9736,7 +9736,7 @@ function ConnectedStorageProjectCard({
|
|
|
9736
9736
|
project.personal && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-0.5 text-sm text-muted-foreground", children: "Mail, recordings of calls you host, chat attachments and everything not in a project." })
|
|
9737
9737
|
] }),
|
|
9738
9738
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
9739
|
-
|
|
9739
|
+
chunkL6APDO3Y_cjs.UsageToggle,
|
|
9740
9740
|
{
|
|
9741
9741
|
value: view,
|
|
9742
9742
|
onChange: setView,
|
|
@@ -9821,7 +9821,7 @@ function ConnectedStorageProjectCard({
|
|
|
9821
9821
|
] })
|
|
9822
9822
|
] }),
|
|
9823
9823
|
view === "largest" && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-3", children: [
|
|
9824
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
9824
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkL6APDO3Y_cjs.UsageToggle, { value: kind, onChange: setKind, options: KIND_FILTERS, ariaLabel: "Kind" }),
|
|
9825
9825
|
largest.isLoading ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-muted-foreground", children: "Loading\u2026" }) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
9826
9826
|
StorageItemsTable,
|
|
9827
9827
|
{
|
|
@@ -10080,7 +10080,7 @@ function ConnectedSettingsPage({
|
|
|
10080
10080
|
}, [requested]);
|
|
10081
10081
|
const controlled = section !== void 0;
|
|
10082
10082
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
10083
|
-
|
|
10083
|
+
chunkL6APDO3Y_cjs.SettingsPage,
|
|
10084
10084
|
{
|
|
10085
10085
|
...page,
|
|
10086
10086
|
sections,
|
|
@@ -10112,7 +10112,7 @@ function UsageSettings({ icon: icon2 }) {
|
|
|
10112
10112
|
description: "AI usage today, in \xA3 (ex VAT).",
|
|
10113
10113
|
testId: "settings-usage",
|
|
10114
10114
|
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
10115
|
-
|
|
10115
|
+
chunkL6APDO3Y_cjs.UsageSummary,
|
|
10116
10116
|
{
|
|
10117
10117
|
stats: [
|
|
10118
10118
|
{
|
|
@@ -10230,7 +10230,7 @@ function ReaderAppearance({ bundle }) {
|
|
|
10230
10230
|
const { defaults } = bundle;
|
|
10231
10231
|
const isDefault = state.pairingId === defaults.pairingId && state.colorScheme === defaults.colorScheme && state.textSize === defaults.textSize;
|
|
10232
10232
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
10233
|
-
|
|
10233
|
+
chunkL6APDO3Y_cjs.AppearanceSettings,
|
|
10234
10234
|
{
|
|
10235
10235
|
colorScheme: state.colorScheme,
|
|
10236
10236
|
onColorSchemeChange: state.setColorScheme,
|
|
@@ -10457,7 +10457,7 @@ function SwitchRow({ row: row2 }) {
|
|
|
10457
10457
|
const { on, set } = react.useFeatureSwitch(row2.feature);
|
|
10458
10458
|
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
10459
10459
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
10460
|
-
|
|
10460
|
+
chunkL6APDO3Y_cjs.SettingsSwitchRow,
|
|
10461
10461
|
{
|
|
10462
10462
|
id: row2.id ?? row2.feature,
|
|
10463
10463
|
testId: row2.testId ?? `toggle-${row2.feature}`,
|
|
@@ -10468,14 +10468,14 @@ function SwitchRow({ row: row2 }) {
|
|
|
10468
10468
|
onCheckedChange: set
|
|
10469
10469
|
}
|
|
10470
10470
|
),
|
|
10471
|
-
on && row2.rows && row2.rows.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(
|
|
10471
|
+
on && row2.rows && row2.rows.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(chunkL6APDO3Y_cjs.SettingsSwitchGroup, { children: row2.rows.map((sub) => /* @__PURE__ */ jsxRuntime.jsx(FeatureRow, { row: sub }, sub.feature)) })
|
|
10472
10472
|
] });
|
|
10473
10473
|
}
|
|
10474
10474
|
function CallsRow({ row: row2 }) {
|
|
10475
10475
|
const { on, set } = react.useFeatureSwitch(row2.feature);
|
|
10476
|
-
const state =
|
|
10476
|
+
const state = chunkL6APDO3Y_cjs.callsSwitchState(react.useCallsConfig(), on);
|
|
10477
10477
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
10478
|
-
|
|
10478
|
+
chunkL6APDO3Y_cjs.SettingsSwitchRow,
|
|
10479
10479
|
{
|
|
10480
10480
|
id: row2.id ?? row2.feature,
|
|
10481
10481
|
testId: row2.testId ?? `toggle-${row2.feature}`,
|
|
@@ -10490,7 +10490,7 @@ function CallsRow({ row: row2 }) {
|
|
|
10490
10490
|
}
|
|
10491
10491
|
function ConnectedAccountAccessBadge() {
|
|
10492
10492
|
const { data: user } = react.useCurrentUser();
|
|
10493
|
-
const status = !user ? null : user.is_deployment_admin || user.user_type === "admin" ? ["Deployment administrator", "You can manage users and deployment settings."] :
|
|
10493
|
+
const status = !user ? null : user.is_deployment_admin || user.user_type === "admin" ? ["Deployment administrator", "You can manage users and deployment settings."] : chunkJSQQV23D_cjs.isExternalAccount(user) ? [
|
|
10494
10494
|
"External user",
|
|
10495
10495
|
"Temporary access to shared workspaces. Ask an owner to renew access after it expires."
|
|
10496
10496
|
] : user.user_type === "manager" ? [
|
|
@@ -10679,7 +10679,7 @@ function ConnectedRecoveryKeyDialog({
|
|
|
10679
10679
|
const arbi = react.useArbi();
|
|
10680
10680
|
const { user, isSso: isSsoMode } = react.useArbiSession();
|
|
10681
10681
|
const userEmail = user?.email;
|
|
10682
|
-
const sso =
|
|
10682
|
+
const sso = chunkOPH4UZQN_cjs.useSsoSignIn();
|
|
10683
10683
|
const handleVerify = async () => {
|
|
10684
10684
|
setError(null);
|
|
10685
10685
|
if (!password) {
|
|
@@ -10840,7 +10840,7 @@ function ConnectedRemoteControlSwitch() {
|
|
|
10840
10840
|
}
|
|
10841
10841
|
function RemoteControlSwitch() {
|
|
10842
10842
|
const enabled = react.useRemoteControl((state) => state.enabled);
|
|
10843
|
-
const remote =
|
|
10843
|
+
const remote = chunkOPH4UZQN_cjs.useRemoteControlActions();
|
|
10844
10844
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
10845
10845
|
chunkQQMMCXBP_cjs.SettingsRow,
|
|
10846
10846
|
{
|
|
@@ -10862,7 +10862,7 @@ function RemoteControlSwitch() {
|
|
|
10862
10862
|
);
|
|
10863
10863
|
}
|
|
10864
10864
|
var JUST_CONNECTED_VIEW = "settings.justConnected";
|
|
10865
|
-
var identityFeeLabel = (status) => `${
|
|
10865
|
+
var identityFeeLabel = (status) => `${chunkO4F77VSO_cjs.formatMoney(status.price_pence, status.currency.toLowerCase())} incl. VAT`;
|
|
10866
10866
|
var openLogout = () => chunkJDFBEGQO_cjs.openDialog("logout");
|
|
10867
10867
|
function RecoveryKeyRow() {
|
|
10868
10868
|
const [open, setOpen] = react$1.useState(false);
|
|
@@ -10953,7 +10953,7 @@ function useSettingsSections({
|
|
|
10953
10953
|
] })
|
|
10954
10954
|
}),
|
|
10955
10955
|
// "Work offline" flips the one offline switch even while the server is reachable.
|
|
10956
|
-
actions: /* @__PURE__ */ jsxRuntime.jsx(
|
|
10956
|
+
actions: /* @__PURE__ */ jsxRuntime.jsx(chunkL6APDO3Y_cjs.WorkOfflineToggle, { isOffline: forceOffline, onToggle: setWorkOffline })
|
|
10957
10957
|
},
|
|
10958
10958
|
...showMail ? [
|
|
10959
10959
|
mailSettingsSection({
|
|
@@ -11101,7 +11101,7 @@ function ConnectedDeploymentStorage() {
|
|
|
11101
11101
|
deployment.unattributed_bytes > 0 && ` \xB7 ${chunkUZHWXKS6_cjs.formatBytes(deployment.unattributed_bytes)} not owned by any ${ui.entityNoun("PROJECT")}`
|
|
11102
11102
|
] }),
|
|
11103
11103
|
trend.dates.length > 1 && /* @__PURE__ */ jsxRuntime.jsx(
|
|
11104
|
-
|
|
11104
|
+
chunkL6APDO3Y_cjs.UsageLineChart,
|
|
11105
11105
|
{
|
|
11106
11106
|
dates: trend.dates,
|
|
11107
11107
|
series: trend.series,
|
|
@@ -11110,7 +11110,7 @@ function ConnectedDeploymentStorage() {
|
|
|
11110
11110
|
}
|
|
11111
11111
|
),
|
|
11112
11112
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
11113
|
-
|
|
11113
|
+
chunkL6APDO3Y_cjs.UsageToggle,
|
|
11114
11114
|
{
|
|
11115
11115
|
value: view,
|
|
11116
11116
|
onChange: setView,
|
|
@@ -11183,14 +11183,14 @@ function usePaidWorkspaceMembers() {
|
|
|
11183
11183
|
try {
|
|
11184
11184
|
return await mutation.mutateAsync(...args);
|
|
11185
11185
|
} catch (error) {
|
|
11186
|
-
const detail =
|
|
11186
|
+
const detail = chunkO4F77VSO_cjs.apiErrorDetail(error);
|
|
11187
11187
|
if (detail?.code !== "COLLABORATOR_CAPACITY_REQUIRED" || !detail.can_buy || !arbi || !detail.project_ext_id || !detail.blocks_required || !detail.block_size)
|
|
11188
11188
|
throw error;
|
|
11189
11189
|
const project = detail.project_ext_id;
|
|
11190
11190
|
const quote = await arbi.projects.quoteAddon(project, "collaborators");
|
|
11191
11191
|
const count2 = detail.blocks_required;
|
|
11192
|
-
const today =
|
|
11193
|
-
const renewal =
|
|
11192
|
+
const today = chunkO4F77VSO_cjs.formatMoney(quote.now.total_pence * count2, "gbp");
|
|
11193
|
+
const renewal = chunkO4F77VSO_cjs.formatMoney(quote.renewal.total_pence * count2, "gbp");
|
|
11194
11194
|
const confirmed = await confirm({
|
|
11195
11195
|
title: "More collaborator places needed",
|
|
11196
11196
|
message: `This invitation exceeds your ${detail.limit}-collaborator allowance. Add ${count2 * detail.block_size} places for ${today} today, including tax, then ${renewal} per ${detail.interval === "year" ? "year" : "month"} until removed? You are not counted.`,
|
|
@@ -12043,7 +12043,7 @@ function ConnectedProjectEntity({
|
|
|
12043
12043
|
subscription = "none",
|
|
12044
12044
|
...props
|
|
12045
12045
|
}) {
|
|
12046
|
-
const { stripeEnabled } =
|
|
12046
|
+
const { stripeEnabled } = chunkO4F77VSO_cjs.useBillingSupport();
|
|
12047
12047
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
12048
12048
|
ui.ProjectEntity,
|
|
12049
12049
|
{
|
|
@@ -12138,7 +12138,7 @@ function StripeCheckoutModal({
|
|
|
12138
12138
|
const [clientSecret, setClientSecret] = react$1.useState(null);
|
|
12139
12139
|
const [isCreating, setIsCreating] = react$1.useState(false);
|
|
12140
12140
|
const [stripe, setStripe] = react$1.useState(null);
|
|
12141
|
-
const { stripeEnabled, checkout } =
|
|
12141
|
+
const { stripeEnabled, checkout } = chunkO4F77VSO_cjs.useBillingSupport();
|
|
12142
12142
|
const createCheckout = react.useCreateProjectCheckout();
|
|
12143
12143
|
const refreshProject = react.useRefreshProject();
|
|
12144
12144
|
const invalidateProjects = react.useInvalidateProjects();
|
|
@@ -12167,7 +12167,7 @@ function StripeCheckoutModal({
|
|
|
12167
12167
|
projectExtId,
|
|
12168
12168
|
body: {
|
|
12169
12169
|
interval,
|
|
12170
|
-
packs:
|
|
12170
|
+
packs: chunkO4F77VSO_cjs.PRO_PACKS,
|
|
12171
12171
|
ai_blocks: aiBlocks,
|
|
12172
12172
|
storage_blocks: storageBlocks,
|
|
12173
12173
|
collaborator_blocks: collaboratorBlocks,
|
|
@@ -12184,7 +12184,7 @@ function StripeCheckoutModal({
|
|
|
12184
12184
|
},
|
|
12185
12185
|
onError: (error) => {
|
|
12186
12186
|
console.error("Failed to create checkout session:", error);
|
|
12187
|
-
const reason =
|
|
12187
|
+
const reason = chunkO4F77VSO_cjs.apiErrorDetail(error)?.message;
|
|
12188
12188
|
shell.notify.error(
|
|
12189
12189
|
reason ? `Checkout didn't start: ${reason}` : "Checkout didn't start. Try again."
|
|
12190
12190
|
);
|
|
@@ -12218,9 +12218,9 @@ function StripeCheckoutModal({
|
|
|
12218
12218
|
}
|
|
12219
12219
|
}, [open]);
|
|
12220
12220
|
const isStripeConfigured = stripeEnabled;
|
|
12221
|
-
const vatNote = quote ? `${
|
|
12221
|
+
const vatNote = quote ? `${chunkO4F77VSO_cjs.checkoutItemsLabel(aiBlocks, storageBlocks, collaboratorBlocks, price)} \xB7 ${chunkO4F77VSO_cjs.quoteTotalLine(quote)}` : null;
|
|
12222
12222
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
12223
|
-
|
|
12223
|
+
chunkL6APDO3Y_cjs.CheckoutDialogFrame,
|
|
12224
12224
|
{
|
|
12225
12225
|
open,
|
|
12226
12226
|
onOpenChange,
|
|
@@ -12230,7 +12230,7 @@ function StripeCheckoutModal({
|
|
|
12230
12230
|
children: clientSecret && !!stripe && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
12231
12231
|
vatNote && /* @__PURE__ */ jsxRuntime.jsx("p", { "data-testid": "checkout-vat-note", className: "mb-4 text-sm text-muted-foreground", children: vatNote }),
|
|
12232
12232
|
checkout?.render(stripe, { clientSecret, onComplete: handleComplete }),
|
|
12233
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-3", children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
12233
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-3", children: /* @__PURE__ */ jsxRuntime.jsxs(chunkL6APDO3Y_cjs.MoreInfo, { title: "Paying", label: "Payment help", testId: "checkout-payment-help", children: [
|
|
12234
12234
|
/* @__PURE__ */ jsxRuntime.jsx("p", { "data-testid": "checkout-decline-note", children: "Card declined? Nothing was charged. Try again or use another card." }),
|
|
12235
12235
|
/* @__PURE__ */ jsxRuntime.jsx("p", { "data-testid": "checkout-vat-id-note", children: "No VAT number? Leave \u2018purchasing as a business\u2019 unticked." }),
|
|
12236
12236
|
/* @__PURE__ */ jsxRuntime.jsx("p", { children: "Add-ons chosen here are on the first invoice with the plan and renew with it until you reduce them." })
|
|
@@ -12254,7 +12254,7 @@ function MonthlySpendCap({
|
|
|
12254
12254
|
const min = Math.ceil(minimum / 100 / step) * step;
|
|
12255
12255
|
const max = Math.max(Math.floor((maximum ?? 5e4) / 100 / step) * step, min);
|
|
12256
12256
|
const pounds = Math.max(min, Math.min(max, Math.floor(value / stepPence) * step));
|
|
12257
|
-
const money = (n) =>
|
|
12257
|
+
const money = (n) => chunkO4F77VSO_cjs.formatMoney(n, "gbp");
|
|
12258
12258
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "w-full space-y-2", children: [
|
|
12259
12259
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-baseline justify-between gap-4", children: [
|
|
12260
12260
|
/* @__PURE__ */ jsxRuntime.jsx(ui.Label, { htmlFor: id, children: "Auto-upgrade limit" }),
|
|
@@ -12311,7 +12311,7 @@ function applyReferralReward(totalCents, reward, priceCurrency) {
|
|
|
12311
12311
|
};
|
|
12312
12312
|
}
|
|
12313
12313
|
function purchaseNet(price, ai, storage, collaborators) {
|
|
12314
|
-
const base =
|
|
12314
|
+
const base = chunkO4F77VSO_cjs.packPrice(price)?.amount_ex_vat ?? price?.amount_ex_vat;
|
|
12315
12315
|
if (base == null) return null;
|
|
12316
12316
|
let total = base;
|
|
12317
12317
|
for (const [kind, count2] of [
|
|
@@ -12340,8 +12340,8 @@ function ProjectPurchaseOptions({
|
|
|
12340
12340
|
onChoose
|
|
12341
12341
|
}) {
|
|
12342
12342
|
const [spendCap, setSpendCap] = react$1.useState(null);
|
|
12343
|
-
const reward =
|
|
12344
|
-
const prices =
|
|
12343
|
+
const reward = chunkO4F77VSO_cjs.useRewardBalance();
|
|
12344
|
+
const prices = chunkO4F77VSO_cjs.findProPrices(products);
|
|
12345
12345
|
const monthlyNet = purchaseNet(prices.monthly, aiBlocks, storageBlocks, collaboratorBlocks);
|
|
12346
12346
|
const annualNet = purchaseNet(prices.annual, aiBlocks, storageBlocks, collaboratorBlocks);
|
|
12347
12347
|
const extras = { ai_usage: aiBlocks, storage: storageBlocks, collaborators: collaboratorBlocks };
|
|
@@ -12355,9 +12355,9 @@ function ProjectPurchaseOptions({
|
|
|
12355
12355
|
);
|
|
12356
12356
|
const product = products?.[0];
|
|
12357
12357
|
const currency = prices.monthly?.currency ?? prices.annual?.currency ?? "gbp";
|
|
12358
|
-
const money = (pence) =>
|
|
12359
|
-
const ai = (product?.included_ai_gbp ?? 0) + aiBlocks * (
|
|
12360
|
-
const storage = (product?.included_storage_gb ?? 0) + storageBlocks * (
|
|
12358
|
+
const money = (pence) => chunkO4F77VSO_cjs.formatMoney(pence, currency);
|
|
12359
|
+
const ai = (product?.included_ai_gbp ?? 0) + aiBlocks * (chunkO4F77VSO_cjs.addonPrice(prices.monthly, "ai_usage")?.ai_gbp ?? 0);
|
|
12360
|
+
const storage = (product?.included_storage_gb ?? 0) + storageBlocks * (chunkO4F77VSO_cjs.addonPrice(prices.monthly, "storage")?.storage_gb ?? 0);
|
|
12361
12361
|
const collaborators = (product?.included_collaborators ?? 0) + collaboratorBlocks * (prices.monthly?.addon_prices?.find((p) => p.kind === "collaborators")?.collaborators ?? 0);
|
|
12362
12362
|
const saving = monthlyNet && annualNet != null ? Math.max(0, Math.round(100 * (1 - annualNet / (monthlyNet * 12)))) : 0;
|
|
12363
12363
|
const stepPence = product?.spend_cap_step_pence ?? 2500;
|
|
@@ -12398,7 +12398,7 @@ function ProjectPurchaseOptions({
|
|
|
12398
12398
|
size: "icon",
|
|
12399
12399
|
variant: "outline",
|
|
12400
12400
|
"aria-label": `Add ${label}`,
|
|
12401
|
-
disabled: busy || !available || count2 >=
|
|
12401
|
+
disabled: busy || !available || count2 >= chunkO4F77VSO_cjs.MAX_CHECKOUT_BLOCKS,
|
|
12402
12402
|
onClick: () => onChange(count2 + 1),
|
|
12403
12403
|
"data-testid": `checkout-${kind}-blocks-increment`,
|
|
12404
12404
|
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Plus, { size: 14, "aria-hidden": "true" })
|
|
@@ -12416,7 +12416,7 @@ function ProjectPurchaseOptions({
|
|
|
12416
12416
|
aiBlocks,
|
|
12417
12417
|
onAiBlocksChange,
|
|
12418
12418
|
"AI credits",
|
|
12419
|
-
!!
|
|
12419
|
+
!!chunkO4F77VSO_cjs.addonPrice(prices.monthly, "ai_usage")
|
|
12420
12420
|
)
|
|
12421
12421
|
] }),
|
|
12422
12422
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
@@ -12438,7 +12438,7 @@ function ProjectPurchaseOptions({
|
|
|
12438
12438
|
storageBlocks,
|
|
12439
12439
|
onStorageBlocksChange,
|
|
12440
12440
|
"storage",
|
|
12441
|
-
!!
|
|
12441
|
+
!!chunkO4F77VSO_cjs.addonPrice(prices.monthly, "storage")
|
|
12442
12442
|
)
|
|
12443
12443
|
] }),
|
|
12444
12444
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
@@ -12546,7 +12546,7 @@ function refusal(what, next) {
|
|
|
12546
12546
|
return `${sentence(what)}. Nothing was charged. ${sentence(next)}.`;
|
|
12547
12547
|
}
|
|
12548
12548
|
function createProjectErrorMessage(error, fallback = `Failed to create ${ui.entityNoun("PROJECT")}`) {
|
|
12549
|
-
const detail =
|
|
12549
|
+
const detail = chunkO4F77VSO_cjs.apiErrorDetail(error);
|
|
12550
12550
|
if (typeof detail === "string" && detail) return detail;
|
|
12551
12551
|
const message = detail?.message;
|
|
12552
12552
|
return typeof message === "string" && message ? message : fallback;
|
|
@@ -12565,7 +12565,7 @@ function NewProjectFlow({ open, onOpenChange, defaultName }) {
|
|
|
12565
12565
|
const [checkoutQuote, setCheckoutQuote] = react$1.useState();
|
|
12566
12566
|
const paymentCompleted = react$1.useRef(false);
|
|
12567
12567
|
const attempt = react$1.useRef(0);
|
|
12568
|
-
const { stripeEnabled } =
|
|
12568
|
+
const { stripeEnabled } = chunkO4F77VSO_cjs.useBillingSupport();
|
|
12569
12569
|
const { data: products, isLoading: productsLoading } = react.useProducts({ enabled: stripeEnabled });
|
|
12570
12570
|
const createProject = react.useCreateProject();
|
|
12571
12571
|
const deleteProject = react.useDeleteProject();
|
|
@@ -12605,7 +12605,7 @@ function NewProjectFlow({ open, onOpenChange, defaultName }) {
|
|
|
12605
12605
|
{
|
|
12606
12606
|
name: projectName.trim(),
|
|
12607
12607
|
plan: stripeEnabled ? "pro" : "free",
|
|
12608
|
-
daily_cap_per_user:
|
|
12608
|
+
daily_cap_per_user: chunkO4F77VSO_cjs.SUGGESTED_DAILY_CAP_PER_USER
|
|
12609
12609
|
},
|
|
12610
12610
|
{
|
|
12611
12611
|
onSuccess: (project) => {
|
|
@@ -12650,7 +12650,7 @@ function NewProjectFlow({ open, onOpenChange, defaultName }) {
|
|
|
12650
12650
|
description: stripeEnabled ? "Name your project and choose monthly or annual billing." : "Name your project.",
|
|
12651
12651
|
size: "md",
|
|
12652
12652
|
className: stripeEnabled ? "project-purchase-modal sm:max-w-[500px]" : void 0,
|
|
12653
|
-
children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
12653
|
+
children: /* @__PURE__ */ jsxRuntime.jsxs(chunkL6APDO3Y_cjs.PlanStack, { gap: 4, children: [
|
|
12654
12654
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-2", children: [
|
|
12655
12655
|
/* @__PURE__ */ jsxRuntime.jsx(ui.Label, { htmlFor: "new-project-name", children: "Name" }),
|
|
12656
12656
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -12667,7 +12667,7 @@ function NewProjectFlow({ open, onOpenChange, defaultName }) {
|
|
|
12667
12667
|
}
|
|
12668
12668
|
)
|
|
12669
12669
|
] }),
|
|
12670
|
-
stripeEnabled && (productsLoading ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
12670
|
+
stripeEnabled && (productsLoading ? /* @__PURE__ */ jsxRuntime.jsx(chunkL6APDO3Y_cjs.PlanNotice, { children: "Loading prices\u2026" }) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
12671
12671
|
ProjectPurchaseOptions,
|
|
12672
12672
|
{
|
|
12673
12673
|
products,
|
|
@@ -12685,16 +12685,16 @@ function NewProjectFlow({ open, onOpenChange, defaultName }) {
|
|
|
12685
12685
|
)),
|
|
12686
12686
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-end gap-2", children: [
|
|
12687
12687
|
/* @__PURE__ */ jsxRuntime.jsx(ui.Button, { variant: "ghost", onClick: close, children: "Cancel" }),
|
|
12688
|
-
!stripeEnabled && /* @__PURE__ */ jsxRuntime.jsx(
|
|
12688
|
+
!stripeEnabled && /* @__PURE__ */ jsxRuntime.jsx(chunkL6APDO3Y_cjs.PlanActionButton, { onClick: () => create3(), disabled: !canSubmit, children: isCreating ? "Creating\u2026" : `Create ${ui.entityNoun("PROJECT")}` })
|
|
12689
12689
|
] }),
|
|
12690
|
-
isSlow && /* @__PURE__ */ jsxRuntime.jsx(
|
|
12690
|
+
isSlow && /* @__PURE__ */ jsxRuntime.jsx(chunkL6APDO3Y_cjs.PlanNotice, { className: "text-xs", testId: "new-project-still-working", children: "Still working. We'll update here." })
|
|
12691
12691
|
] })
|
|
12692
12692
|
}
|
|
12693
12693
|
),
|
|
12694
12694
|
checkoutProject && /* @__PURE__ */ jsxRuntime.jsx(
|
|
12695
12695
|
StripeCheckoutModal,
|
|
12696
12696
|
{
|
|
12697
|
-
price:
|
|
12697
|
+
price: chunkO4F77VSO_cjs.findProPrices(products)[checkoutInterval === "year" ? "annual" : "monthly"],
|
|
12698
12698
|
projectExtId: checkoutProject.id,
|
|
12699
12699
|
interval: checkoutInterval,
|
|
12700
12700
|
addonBudgetPence: checkoutBudget,
|
|
@@ -12726,7 +12726,7 @@ function ConnectedProjectSelector({
|
|
|
12726
12726
|
readOnly,
|
|
12727
12727
|
className
|
|
12728
12728
|
}) {
|
|
12729
|
-
const { stripeEnabled } =
|
|
12729
|
+
const { stripeEnabled } = chunkO4F77VSO_cjs.useBillingSupport();
|
|
12730
12730
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
12731
12731
|
chunkYZ6YOOTF_cjs.ProjectPicker,
|
|
12732
12732
|
{
|
|
@@ -12870,13 +12870,13 @@ function ConnectedWorkspaceSettings({
|
|
|
12870
12870
|
const [membersExpanded, setMembersExpanded] = react$1.useState(false);
|
|
12871
12871
|
const [shareOpen, setShareOpen] = react$1.useState(false);
|
|
12872
12872
|
if (!workspace) {
|
|
12873
|
-
return /* @__PURE__ */ jsxRuntime.jsx(chunkCMGNRMPA_cjs.PageLoading, { children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
12873
|
+
return /* @__PURE__ */ jsxRuntime.jsx(chunkCMGNRMPA_cjs.PageLoading, { children: /* @__PURE__ */ jsxRuntime.jsx(chunkMMVDVHKE_cjs.LoadingIndicator, { message: "Loading workspace..." }) });
|
|
12874
12874
|
}
|
|
12875
12875
|
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
12876
12876
|
/* @__PURE__ */ jsxRuntime.jsxs(chunkCMGNRMPA_cjs.WorkspacePageFrame, { testId, children: [
|
|
12877
12877
|
/* @__PURE__ */ jsxRuntime.jsxs(chunkCMGNRMPA_cjs.WorkspaceIdentityPanel, { children: [
|
|
12878
12878
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
12879
|
-
|
|
12879
|
+
chunkMMVDVHKE_cjs.EntityIdentityBar,
|
|
12880
12880
|
{
|
|
12881
12881
|
testId: "workspace-identity-bar",
|
|
12882
12882
|
canEdit: isOwner,
|
|
@@ -12893,7 +12893,7 @@ function ConnectedWorkspaceSettings({
|
|
|
12893
12893
|
label: "Name",
|
|
12894
12894
|
value: workspace.name,
|
|
12895
12895
|
placeholder: "Untitled",
|
|
12896
|
-
maxLength:
|
|
12896
|
+
maxLength: chunkMMVDVHKE_cjs.IDENTITY_NAME_MAX_LENGTH,
|
|
12897
12897
|
valueClassName: "truncate text-base font-semibold",
|
|
12898
12898
|
testId: "workspace-home-title",
|
|
12899
12899
|
hideLabel: true,
|
|
@@ -13524,20 +13524,20 @@ function ConnectedEmailWorkspaceDialog({
|
|
|
13524
13524
|
else if (activeSession)
|
|
13525
13525
|
access = {
|
|
13526
13526
|
kind: "session",
|
|
13527
|
-
expiresIn:
|
|
13527
|
+
expiresIn: chunkL6APDO3Y_cjs.formatSessionTtl(activeSession.ttl),
|
|
13528
13528
|
isEnding: terminateSession.isPending,
|
|
13529
13529
|
onEnd: handleEndSession
|
|
13530
13530
|
};
|
|
13531
13531
|
else
|
|
13532
13532
|
access = {
|
|
13533
13533
|
kind: "idle",
|
|
13534
|
-
defaultTtl: limits ?
|
|
13534
|
+
defaultTtl: limits ? chunkL6APDO3Y_cjs.formatSessionTtl(limits.default_ttl_seconds) : void 0,
|
|
13535
13535
|
isAuthorizing: grantAgentAccess.isPending && grantAgentAccess.variables?.mode?.kind === "temporary",
|
|
13536
13536
|
onAuthorize: handleAuthorize
|
|
13537
13537
|
};
|
|
13538
13538
|
}
|
|
13539
13539
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
13540
|
-
|
|
13540
|
+
chunkL6APDO3Y_cjs.EmailWorkspaceDialogView,
|
|
13541
13541
|
{
|
|
13542
13542
|
open,
|
|
13543
13543
|
onOpenChange,
|
|
@@ -14103,9 +14103,9 @@ function ConnectedMailboxSyncDialog({
|
|
|
14103
14103
|
showDescription: true,
|
|
14104
14104
|
className: "w-[92vw] sm:max-w-lg",
|
|
14105
14105
|
children: [
|
|
14106
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
14107
|
-
!lockedWorkspaceExtId && /* @__PURE__ */ jsxRuntime.jsx(
|
|
14108
|
-
|
|
14106
|
+
/* @__PURE__ */ jsxRuntime.jsxs(chunkL6APDO3Y_cjs.SyncDialogBody, { children: [
|
|
14107
|
+
!lockedWorkspaceExtId && /* @__PURE__ */ jsxRuntime.jsx(chunkL6APDO3Y_cjs.SyncField, { label: "Target workspace", htmlFor: "sync-workspace", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
14108
|
+
chunkL6APDO3Y_cjs.SyncSelect,
|
|
14109
14109
|
{
|
|
14110
14110
|
id: "sync-workspace",
|
|
14111
14111
|
value: workspaceExtId,
|
|
@@ -14114,9 +14114,9 @@ function ConnectedMailboxSyncDialog({
|
|
|
14114
14114
|
options: memberWorkspaces.map((w) => ({ value: w.external_id, label: w.name }))
|
|
14115
14115
|
}
|
|
14116
14116
|
) }),
|
|
14117
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
14117
|
+
/* @__PURE__ */ jsxRuntime.jsxs(chunkL6APDO3Y_cjs.SyncField, { label: "Backfill window", htmlFor: "sync-backfill", children: [
|
|
14118
14118
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
14119
|
-
|
|
14119
|
+
chunkL6APDO3Y_cjs.SyncSelect,
|
|
14120
14120
|
{
|
|
14121
14121
|
id: "sync-backfill",
|
|
14122
14122
|
value: backfill,
|
|
@@ -14136,17 +14136,17 @@ function ConnectedMailboxSyncDialog({
|
|
|
14136
14136
|
"aria-label": "Import emails since date"
|
|
14137
14137
|
}
|
|
14138
14138
|
),
|
|
14139
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
14139
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkL6APDO3Y_cjs.SyncSmallNote, { children: "Emails are always imported from this date onward \u2014 the start point never moves." })
|
|
14140
14140
|
] })
|
|
14141
14141
|
] }),
|
|
14142
14142
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
14143
|
-
|
|
14143
|
+
chunkL6APDO3Y_cjs.SyncField,
|
|
14144
14144
|
{
|
|
14145
14145
|
label: `Folders to import${selectedFolders.length > 0 ? ` (${selectedFolders.length})` : ""}`,
|
|
14146
14146
|
hint: "Select at least one folder to import.",
|
|
14147
|
-
actions: folders.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs(
|
|
14147
|
+
actions: folders.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs(chunkL6APDO3Y_cjs.SyncLinkRow, { children: [
|
|
14148
14148
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
14149
|
-
|
|
14149
|
+
chunkL6APDO3Y_cjs.SyncLinkButton,
|
|
14150
14150
|
{
|
|
14151
14151
|
onClick: () => setExpandAllNonce((n) => n + 1),
|
|
14152
14152
|
testId: "mail-folders-expand-all",
|
|
@@ -14154,20 +14154,20 @@ function ConnectedMailboxSyncDialog({
|
|
|
14154
14154
|
}
|
|
14155
14155
|
),
|
|
14156
14156
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
14157
|
-
|
|
14157
|
+
chunkL6APDO3Y_cjs.SyncLinkButton,
|
|
14158
14158
|
{
|
|
14159
14159
|
onClick: () => setCollapseAllNonce((n) => n + 1),
|
|
14160
14160
|
testId: "mail-folders-collapse-all",
|
|
14161
14161
|
children: "Collapse all"
|
|
14162
14162
|
}
|
|
14163
14163
|
),
|
|
14164
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
14164
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkL6APDO3Y_cjs.SyncLinkButton, { onClick: toggleAllFolders, children: allSelected ? "Clear all" : "Select all" })
|
|
14165
14165
|
] }),
|
|
14166
|
-
children: foldersLoading ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
14166
|
+
children: foldersLoading ? /* @__PURE__ */ jsxRuntime.jsx(chunkL6APDO3Y_cjs.SyncLoading, { children: "Loading folders\u2026" }) : foldersError ? (
|
|
14167
14167
|
// A failed fetch is not an empty mailbox: it hides auth/scope errors (e.g. a Gmail
|
|
14168
14168
|
// account needing reconnect).
|
|
14169
14169
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
14170
|
-
|
|
14170
|
+
chunkL6APDO3Y_cjs.SyncReconnectNotice,
|
|
14171
14171
|
{
|
|
14172
14172
|
message: `Couldn\u2019t load folders from ${catalog.display_name}. Reconnect the account and try again.`,
|
|
14173
14173
|
onReconnect: () => void reconnect(),
|
|
@@ -14175,7 +14175,7 @@ function ConnectedMailboxSyncDialog({
|
|
|
14175
14175
|
testId: "folders-reconnect"
|
|
14176
14176
|
}
|
|
14177
14177
|
)
|
|
14178
|
-
) : folders.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
14178
|
+
) : folders.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx(chunkL6APDO3Y_cjs.SyncNote, { children: "No folders found." }) : /* @__PURE__ */ jsxRuntime.jsx(chunkL6APDO3Y_cjs.SyncTreeFrame, { children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
14179
14179
|
chunkEOG6OT5I_cjs.MailFolderTree,
|
|
14180
14180
|
{
|
|
14181
14181
|
nodes: folderTree,
|
|
@@ -14187,9 +14187,9 @@ function ConnectedMailboxSyncDialog({
|
|
|
14187
14187
|
) })
|
|
14188
14188
|
}
|
|
14189
14189
|
),
|
|
14190
|
-
isNative ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
14190
|
+
isNative ? /* @__PURE__ */ jsxRuntime.jsx(chunkL6APDO3Y_cjs.SyncNote, { children: turningOff ? "Saving with no folders stops adding new mail from them. What was added stays." : "Only you can see mail added from your mailbox. New mail is added when you open this workspace." }) : /* @__PURE__ */ jsxRuntime.jsxs(chunkL6APDO3Y_cjs.SyncOptions, { children: [
|
|
14191
14191
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
14192
|
-
|
|
14192
|
+
chunkL6APDO3Y_cjs.SyncOptionToggle,
|
|
14193
14193
|
{
|
|
14194
14194
|
checked: skipDuplicates,
|
|
14195
14195
|
onCheckedChange: setSkipDuplicates,
|
|
@@ -14199,7 +14199,7 @@ function ConnectedMailboxSyncDialog({
|
|
|
14199
14199
|
}
|
|
14200
14200
|
),
|
|
14201
14201
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
14202
|
-
|
|
14202
|
+
chunkL6APDO3Y_cjs.SyncOptionToggle,
|
|
14203
14203
|
{
|
|
14204
14204
|
checked: autoRename,
|
|
14205
14205
|
onCheckedChange: setAutoRename,
|
|
@@ -14209,7 +14209,7 @@ function ConnectedMailboxSyncDialog({
|
|
|
14209
14209
|
}
|
|
14210
14210
|
),
|
|
14211
14211
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
14212
|
-
|
|
14212
|
+
chunkL6APDO3Y_cjs.SyncOptionToggle,
|
|
14213
14213
|
{
|
|
14214
14214
|
checked: shared,
|
|
14215
14215
|
onCheckedChange: setShared,
|
|
@@ -14219,7 +14219,7 @@ function ConnectedMailboxSyncDialog({
|
|
|
14219
14219
|
}
|
|
14220
14220
|
),
|
|
14221
14221
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
14222
|
-
|
|
14222
|
+
chunkL6APDO3Y_cjs.SyncOptionToggle,
|
|
14223
14223
|
{
|
|
14224
14224
|
checked: autoSync,
|
|
14225
14225
|
onCheckedChange: setAutoSync,
|
|
@@ -14231,7 +14231,7 @@ function ConnectedMailboxSyncDialog({
|
|
|
14231
14231
|
] })
|
|
14232
14232
|
] }),
|
|
14233
14233
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
14234
|
-
|
|
14234
|
+
chunkL6APDO3Y_cjs.SyncDialogFooter,
|
|
14235
14235
|
{
|
|
14236
14236
|
onCancel: () => onOpenChange(false),
|
|
14237
14237
|
onSave: handleEnableSubmit,
|
|
@@ -14293,7 +14293,7 @@ function DriveFolderNode({
|
|
|
14293
14293
|
const mightHaveChildren = docCount == null || docCount > 0;
|
|
14294
14294
|
const orderedChildren = [...children].sort((a, b) => a.name.localeCompare(b.name));
|
|
14295
14295
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
14296
|
-
|
|
14296
|
+
chunkL6APDO3Y_cjs.SyncFolderRow,
|
|
14297
14297
|
{
|
|
14298
14298
|
id: folder.id,
|
|
14299
14299
|
name: folder.name,
|
|
@@ -14307,7 +14307,7 @@ function DriveFolderNode({
|
|
|
14307
14307
|
onCheckedChange: () => onToggle(folder.id),
|
|
14308
14308
|
count: typeof docCount === "number" ? docCount : void 0,
|
|
14309
14309
|
isCountLoading: isSelectable && countLoading,
|
|
14310
|
-
children: isLoading ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
14310
|
+
children: isLoading ? /* @__PURE__ */ jsxRuntime.jsx(chunkL6APDO3Y_cjs.SyncFolderStatus, { depth, kind: "loading" }) : orderedChildren.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx(chunkL6APDO3Y_cjs.SyncFolderStatus, { depth, kind: "empty" }) : orderedChildren.map((child) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
14311
14311
|
DriveFolderNode,
|
|
14312
14312
|
{
|
|
14313
14313
|
vendorKey,
|
|
@@ -14453,9 +14453,9 @@ function ConnectedDriveSyncDialog({
|
|
|
14453
14453
|
showDescription: true,
|
|
14454
14454
|
className: "w-[92vw] sm:max-w-lg",
|
|
14455
14455
|
children: [
|
|
14456
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
14457
|
-
!lockedWorkspaceExtId && /* @__PURE__ */ jsxRuntime.jsx(
|
|
14458
|
-
|
|
14456
|
+
/* @__PURE__ */ jsxRuntime.jsxs(chunkL6APDO3Y_cjs.SyncDialogBody, { children: [
|
|
14457
|
+
!lockedWorkspaceExtId && /* @__PURE__ */ jsxRuntime.jsx(chunkL6APDO3Y_cjs.SyncField, { label: "Target workspace", htmlFor: "drive-sync-workspace", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
14458
|
+
chunkL6APDO3Y_cjs.SyncSelect,
|
|
14459
14459
|
{
|
|
14460
14460
|
id: "drive-sync-workspace",
|
|
14461
14461
|
value: workspaceExtId,
|
|
@@ -14465,13 +14465,13 @@ function ConnectedDriveSyncDialog({
|
|
|
14465
14465
|
}
|
|
14466
14466
|
) }),
|
|
14467
14467
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
14468
|
-
|
|
14468
|
+
chunkL6APDO3Y_cjs.SyncField,
|
|
14469
14469
|
{
|
|
14470
14470
|
label: `Folders to import${selectedFolders.length > 0 ? ` (${selectedFolders.length})` : ""}`,
|
|
14471
14471
|
hint: "Select at least one folder. Importing a folder includes everything inside it.",
|
|
14472
|
-
actions: orderedFolders.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs(
|
|
14472
|
+
actions: orderedFolders.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs(chunkL6APDO3Y_cjs.SyncLinkRow, { children: [
|
|
14473
14473
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
14474
|
-
|
|
14474
|
+
chunkL6APDO3Y_cjs.SyncLinkButton,
|
|
14475
14475
|
{
|
|
14476
14476
|
onClick: () => setExpandAllNonce((n) => n + 1),
|
|
14477
14477
|
testId: "drive-folders-expand-all",
|
|
@@ -14479,7 +14479,7 @@ function ConnectedDriveSyncDialog({
|
|
|
14479
14479
|
}
|
|
14480
14480
|
),
|
|
14481
14481
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
14482
|
-
|
|
14482
|
+
chunkL6APDO3Y_cjs.SyncLinkButton,
|
|
14483
14483
|
{
|
|
14484
14484
|
onClick: () => setCollapseAllNonce((n) => n + 1),
|
|
14485
14485
|
testId: "drive-folders-collapse-all",
|
|
@@ -14487,19 +14487,19 @@ function ConnectedDriveSyncDialog({
|
|
|
14487
14487
|
}
|
|
14488
14488
|
)
|
|
14489
14489
|
] }),
|
|
14490
|
-
children: foldersLoading ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
14491
|
-
|
|
14490
|
+
children: foldersLoading ? /* @__PURE__ */ jsxRuntime.jsx(chunkL6APDO3Y_cjs.SyncLoading, { children: "Loading folders\u2026" }) : needsReconnect ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
14491
|
+
chunkL6APDO3Y_cjs.SyncReconnectNotice,
|
|
14492
14492
|
{
|
|
14493
14493
|
...reconnectButtonProps,
|
|
14494
14494
|
message: `Reconnect ${catalog.display_name} to enable ${productName} \u2014 your account needs to grant file access.`
|
|
14495
14495
|
}
|
|
14496
14496
|
) : foldersError ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
14497
|
-
|
|
14497
|
+
chunkL6APDO3Y_cjs.SyncReconnectNotice,
|
|
14498
14498
|
{
|
|
14499
14499
|
...reconnectButtonProps,
|
|
14500
14500
|
message: `Couldn\u2019t load folders from ${productName}. Reconnect the account and try again.`
|
|
14501
14501
|
}
|
|
14502
|
-
) : orderedFolders.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
14502
|
+
) : orderedFolders.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx(chunkL6APDO3Y_cjs.SyncNote, { children: "No folders found." }) : /* @__PURE__ */ jsxRuntime.jsx(chunkL6APDO3Y_cjs.SyncTreeFrame, { children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-0.5", "data-testid": "drive-folder-tree", children: orderedFolders.map((f) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
14503
14503
|
DriveFolderNode,
|
|
14504
14504
|
{
|
|
14505
14505
|
vendorKey: catalog.vendor_key,
|
|
@@ -14516,9 +14516,9 @@ function ConnectedDriveSyncDialog({
|
|
|
14516
14516
|
)) }) })
|
|
14517
14517
|
}
|
|
14518
14518
|
),
|
|
14519
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
14519
|
+
/* @__PURE__ */ jsxRuntime.jsxs(chunkL6APDO3Y_cjs.SyncOptions, { children: [
|
|
14520
14520
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
14521
|
-
|
|
14521
|
+
chunkL6APDO3Y_cjs.SyncOptionToggle,
|
|
14522
14522
|
{
|
|
14523
14523
|
checked: skipDuplicates,
|
|
14524
14524
|
onCheckedChange: setSkipDuplicates,
|
|
@@ -14527,7 +14527,7 @@ function ConnectedDriveSyncDialog({
|
|
|
14527
14527
|
}
|
|
14528
14528
|
),
|
|
14529
14529
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
14530
|
-
|
|
14530
|
+
chunkL6APDO3Y_cjs.SyncOptionToggle,
|
|
14531
14531
|
{
|
|
14532
14532
|
checked: autoRename,
|
|
14533
14533
|
onCheckedChange: setAutoRename,
|
|
@@ -14536,7 +14536,7 @@ function ConnectedDriveSyncDialog({
|
|
|
14536
14536
|
}
|
|
14537
14537
|
),
|
|
14538
14538
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
14539
|
-
|
|
14539
|
+
chunkL6APDO3Y_cjs.SyncOptionToggle,
|
|
14540
14540
|
{
|
|
14541
14541
|
checked: shared,
|
|
14542
14542
|
onCheckedChange: setShared,
|
|
@@ -14545,7 +14545,7 @@ function ConnectedDriveSyncDialog({
|
|
|
14545
14545
|
}
|
|
14546
14546
|
),
|
|
14547
14547
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
14548
|
-
|
|
14548
|
+
chunkL6APDO3Y_cjs.SyncOptionToggle,
|
|
14549
14549
|
{
|
|
14550
14550
|
checked: autoSync,
|
|
14551
14551
|
onCheckedChange: setAutoSync,
|
|
@@ -14557,7 +14557,7 @@ function ConnectedDriveSyncDialog({
|
|
|
14557
14557
|
] })
|
|
14558
14558
|
] }),
|
|
14559
14559
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
14560
|
-
|
|
14560
|
+
chunkL6APDO3Y_cjs.SyncDialogFooter,
|
|
14561
14561
|
{
|
|
14562
14562
|
onCancel: () => onOpenChange(false),
|
|
14563
14563
|
onSave: handleEnableSubmit,
|
|
@@ -14578,36 +14578,36 @@ function ConnectedSharePointAdminConsentPage({
|
|
|
14578
14578
|
const result = givenResult === void 0 ? queryResult : givenResult;
|
|
14579
14579
|
const { apiBaseUrl } = chunkTKHCIHE2_cjs.useBlocksEnvironment().runtimeConfig;
|
|
14580
14580
|
const consentUrl = `${apiBaseUrl}/v1/connectors/microsoft_sharepoint/admin-consent`;
|
|
14581
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
14581
|
+
return /* @__PURE__ */ jsxRuntime.jsx(chunkPVPRVI54_cjs.ConsentPage, { children: /* @__PURE__ */ jsxRuntime.jsxs(chunkPVPRVI54_cjs.ConsentCard, { size: "md", children: [
|
|
14582
14582
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
14583
|
-
|
|
14583
|
+
chunkPVPRVI54_cjs.ConsentHeader,
|
|
14584
14584
|
{
|
|
14585
14585
|
icon: /* @__PURE__ */ jsxRuntime.jsx(chunkNNUK5ZM7_cjs.VendorLogo, { vendorKey: "microsoft_sharepoint", product: "sharepoint" }),
|
|
14586
14586
|
title: "Approve ARBI for SharePoint access",
|
|
14587
14587
|
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."
|
|
14588
14588
|
}
|
|
14589
14589
|
),
|
|
14590
|
-
result === "granted" && /* @__PURE__ */ jsxRuntime.jsx(
|
|
14591
|
-
result === "declined" && /* @__PURE__ */ jsxRuntime.jsx(
|
|
14592
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
14590
|
+
result === "granted" && /* @__PURE__ */ jsxRuntime.jsx(chunkPVPRVI54_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." }),
|
|
14591
|
+
result === "declined" && /* @__PURE__ */ jsxRuntime.jsx(chunkPVPRVI54_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." }),
|
|
14592
|
+
/* @__PURE__ */ jsxRuntime.jsxs(chunkPVPRVI54_cjs.ConsentSection, { title: "What you are approving", children: [
|
|
14593
14593
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
14594
|
-
|
|
14594
|
+
chunkPVPRVI54_cjs.ConsentBulletList,
|
|
14595
14595
|
{
|
|
14596
14596
|
items: [
|
|
14597
14597
|
/* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
14598
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
14598
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkPVPRVI54_cjs.ConsentStrong, { children: "Read SharePoint sites and files" }),
|
|
14599
14599
|
" \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."
|
|
14600
14600
|
] }),
|
|
14601
14601
|
/* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
14602
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
14602
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkPVPRVI54_cjs.ConsentStrong, { children: "Sign users in and keep access" }),
|
|
14603
14603
|
" \u2014 standard sign-in (openid, profile, email) and offline access so syncs keep working between sessions."
|
|
14604
14604
|
] })
|
|
14605
14605
|
]
|
|
14606
14606
|
}
|
|
14607
14607
|
),
|
|
14608
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
14608
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkPVPRVI54_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." }),
|
|
14609
14609
|
/* @__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" }) }),
|
|
14610
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
14610
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkPVPRVI54_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." })
|
|
14611
14611
|
] })
|
|
14612
14612
|
] }) });
|
|
14613
14613
|
}
|
|
@@ -14648,8 +14648,8 @@ function InvoicesModal({
|
|
|
14648
14648
|
key: inv.number ?? String(i),
|
|
14649
14649
|
date: formatInvoiceDate(inv.date),
|
|
14650
14650
|
kind: KIND_LABELS2[inv.kind],
|
|
14651
|
-
amount:
|
|
14652
|
-
amountNote: inv.amount_ex_vat != null && inv.amount_ex_vat !== inv.amount ? `${
|
|
14651
|
+
amount: chunkO4F77VSO_cjs.formatMoney(inv.amount, inv.currency),
|
|
14652
|
+
amountNote: inv.amount_ex_vat != null && inv.amount_ex_vat !== inv.amount ? `${chunkO4F77VSO_cjs.formatMoney(inv.amount_ex_vat, inv.currency)} ex VAT` : void 0,
|
|
14653
14653
|
status: inv.status,
|
|
14654
14654
|
isPaid: isPaid2,
|
|
14655
14655
|
href: inv.hosted_invoice_url ?? inv.url ?? inv.pdf_url ?? void 0,
|
|
@@ -14657,7 +14657,7 @@ function InvoicesModal({
|
|
|
14657
14657
|
};
|
|
14658
14658
|
});
|
|
14659
14659
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
14660
|
-
|
|
14660
|
+
chunkL6APDO3Y_cjs.InvoicesDialog,
|
|
14661
14661
|
{
|
|
14662
14662
|
open,
|
|
14663
14663
|
onOpenChange,
|
|
@@ -14674,11 +14674,11 @@ function SubscriptionPlans({ projectExtId, onDismiss }) {
|
|
|
14674
14674
|
const [collaboratorBlocks, setCollaboratorBlocks] = react$1.useState(0);
|
|
14675
14675
|
const [checkout, setCheckout] = react$1.useState(null);
|
|
14676
14676
|
const [checkoutOpen, setCheckoutOpen] = react$1.useState(false);
|
|
14677
|
-
if (isLoading) return /* @__PURE__ */ jsxRuntime.jsx(
|
|
14678
|
-
if (error) return /* @__PURE__ */ jsxRuntime.jsx(
|
|
14679
|
-
if (!products?.length) return /* @__PURE__ */ jsxRuntime.jsx(
|
|
14677
|
+
if (isLoading) return /* @__PURE__ */ jsxRuntime.jsx(chunkL6APDO3Y_cjs.PlanNotice, { children: "Loading prices\u2026" });
|
|
14678
|
+
if (error) return /* @__PURE__ */ jsxRuntime.jsx(chunkL6APDO3Y_cjs.PlanNotice, { tone: "error", children: "Prices didn't load. Try again." });
|
|
14679
|
+
if (!products?.length) return /* @__PURE__ */ jsxRuntime.jsx(chunkL6APDO3Y_cjs.PlanNotice, { children: "No plans available." });
|
|
14680
14680
|
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
14681
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
14681
|
+
/* @__PURE__ */ jsxRuntime.jsxs(chunkL6APDO3Y_cjs.PlanStack, { children: [
|
|
14682
14682
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
14683
14683
|
ProjectPurchaseOptions,
|
|
14684
14684
|
{
|
|
@@ -14701,7 +14701,7 @@ function SubscriptionPlans({ projectExtId, onDismiss }) {
|
|
|
14701
14701
|
checkout && /* @__PURE__ */ jsxRuntime.jsx(
|
|
14702
14702
|
StripeCheckoutModal,
|
|
14703
14703
|
{
|
|
14704
|
-
price:
|
|
14704
|
+
price: chunkO4F77VSO_cjs.findProPrices(products)[checkout.interval === "year" ? "annual" : "monthly"],
|
|
14705
14705
|
projectExtId,
|
|
14706
14706
|
interval: checkout.interval,
|
|
14707
14707
|
addonBudgetPence: checkout.capPence,
|
|
@@ -14748,7 +14748,7 @@ var FALLBACK_MESSAGES = {
|
|
|
14748
14748
|
BILLING_ADDRESS_REQUIRED: "Add a billing address first."
|
|
14749
14749
|
};
|
|
14750
14750
|
function addonErrorMessage(error) {
|
|
14751
|
-
const detail =
|
|
14751
|
+
const detail = chunkO4F77VSO_cjs.apiErrorDetail(error);
|
|
14752
14752
|
if (detail && typeof detail === "object") {
|
|
14753
14753
|
const { code, message } = detail;
|
|
14754
14754
|
if (message) return message;
|
|
@@ -14774,14 +14774,14 @@ function chargeRefusalMessage(error) {
|
|
|
14774
14774
|
return code ? REFUSALS[code] : null;
|
|
14775
14775
|
}
|
|
14776
14776
|
function addonErrorCode(error) {
|
|
14777
|
-
const detail =
|
|
14777
|
+
const detail = chunkO4F77VSO_cjs.apiErrorDetail(error);
|
|
14778
14778
|
if (detail && typeof detail === "object") {
|
|
14779
14779
|
const code = detail.code;
|
|
14780
14780
|
if (code && code in FALLBACK_MESSAGES) return code;
|
|
14781
14781
|
}
|
|
14782
14782
|
return null;
|
|
14783
14783
|
}
|
|
14784
|
-
var addedMessage = (kind, blockAiGbp, blockStorageGb) => kind === "ai_usage" ? `${react.formatGbp(blockAiGbp ??
|
|
14784
|
+
var addedMessage = (kind, blockAiGbp, blockStorageGb) => kind === "ai_usage" ? `${react.formatGbp(blockAiGbp ?? chunkO4F77VSO_cjs.ADDON_BLOCK_AI_GBP)} of AI credits added` : `${blockStorageGb ?? chunkO4F77VSO_cjs.STORAGE_BLOCK_GB} GB added`;
|
|
14785
14785
|
function useAddonPurchase() {
|
|
14786
14786
|
const addBlock = react.useAddProjectAddonBlock();
|
|
14787
14787
|
const { mutate } = addBlock;
|
|
@@ -14831,14 +14831,14 @@ function useAddonPurchase() {
|
|
|
14831
14831
|
function ConnectedReferralRewardNote() {
|
|
14832
14832
|
const reward = useReferralReward();
|
|
14833
14833
|
if (!reward) return null;
|
|
14834
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
14834
|
+
return /* @__PURE__ */ jsxRuntime.jsx(chunkL6APDO3Y_cjs.ReferralRewardNote, { amountLabel: chunkO4F77VSO_cjs.formatMoney(reward.amount, reward.currency) });
|
|
14835
14835
|
}
|
|
14836
14836
|
function PlanChangeLines({
|
|
14837
14837
|
preview,
|
|
14838
14838
|
isError,
|
|
14839
14839
|
className
|
|
14840
14840
|
}) {
|
|
14841
|
-
const lines = preview ?
|
|
14841
|
+
const lines = preview ? chunkO4F77VSO_cjs.planPreviewLines(preview) : [{ id: "pay-today", text: isError ? chunkO4F77VSO_cjs.PAY_TODAY_UNPRICED : "Checking price\u2026" }];
|
|
14842
14842
|
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)) });
|
|
14843
14843
|
}
|
|
14844
14844
|
var BANK_CONFIRM_PLAN_CHANGE = "Confirm with your bank. Nothing is charged until you do.";
|
|
@@ -14846,13 +14846,13 @@ function notifyPlanChange(data, fallback, planName2) {
|
|
|
14846
14846
|
const outcome = data?.plan_change;
|
|
14847
14847
|
switch (outcome?.result) {
|
|
14848
14848
|
case "upgraded": {
|
|
14849
|
-
const plan =
|
|
14850
|
-
const charged = outcome.charged_pence > 0 ? ` \xB7 ${
|
|
14849
|
+
const plan = chunkO4F77VSO_cjs.planNameForPacks(data?.addons?.packs ?? data?.packs);
|
|
14850
|
+
const charged = outcome.charged_pence > 0 ? ` \xB7 ${chunkO4F77VSO_cjs.formatMoney(outcome.charged_pence, "gbp")} charged` : "";
|
|
14851
14851
|
shell.notify.success(`Upgraded to ${plan}${charged}`);
|
|
14852
14852
|
break;
|
|
14853
14853
|
}
|
|
14854
14854
|
case "scheduled": {
|
|
14855
|
-
const when2 =
|
|
14855
|
+
const when2 = chunkO4F77VSO_cjs.formatPeriodEnd(data?.addons?.period_end ?? data?.current_period_end);
|
|
14856
14856
|
shell.notify.success(when2 ? `Scheduled for ${when2}` : fallback);
|
|
14857
14857
|
break;
|
|
14858
14858
|
}
|
|
@@ -14885,23 +14885,23 @@ function ChangeProPlan({
|
|
|
14885
14885
|
const { data: products } = react.useProducts();
|
|
14886
14886
|
const changePlan = react.useChangeProjectPlan();
|
|
14887
14887
|
const cancel = react.useCancelProjectSubscription();
|
|
14888
|
-
const prices =
|
|
14888
|
+
const prices = chunkO4F77VSO_cjs.findProPrices(products);
|
|
14889
14889
|
const addons = project.addons;
|
|
14890
14890
|
const isCanceling = project.cancel_at_period_end === true || project.subscription === "canceled";
|
|
14891
|
-
const currentPacks = Math.max(addons?.packs ?? project.packs ??
|
|
14892
|
-
const isLegacyMultiPack = currentPacks >
|
|
14891
|
+
const currentPacks = Math.max(addons?.packs ?? project.packs ?? chunkO4F77VSO_cjs.PRO_PACKS, chunkO4F77VSO_cjs.PRO_PACKS);
|
|
14892
|
+
const isLegacyMultiPack = currentPacks > chunkO4F77VSO_cjs.PRO_PACKS;
|
|
14893
14893
|
const currentInterval = project.plan_interval === "year" ? "year" : "month";
|
|
14894
14894
|
const scheduledPacks = isCanceling ? 0 : addons?.packs_next ?? currentPacks;
|
|
14895
14895
|
const scheduledInterval = addons?.pending_interval ?? currentInterval;
|
|
14896
14896
|
const [targetPacks, setTargetPacks] = react$1.useState(scheduledPacks);
|
|
14897
14897
|
const [chosenInterval, setChosenInterval] = react$1.useState(scheduledInterval);
|
|
14898
|
-
const targetInterval = targetPacks >
|
|
14898
|
+
const targetInterval = targetPacks > chunkO4F77VSO_cjs.PRO_PACKS ? currentInterval : chosenInterval;
|
|
14899
14899
|
const periodEnd = formatDate(addons?.period_end ?? project.current_period_end);
|
|
14900
14900
|
const when2 = periodEnd ?? "the end of the period";
|
|
14901
14901
|
const shortWhen = periodEnd ? periodEnd.replace(/ \d{4}$/, "") : "period end";
|
|
14902
14902
|
const isPending = changePlan.isPending || cancel.isPending;
|
|
14903
14903
|
const sameAsScheduled = targetPacks === scheduledPacks && (targetPacks === 0 || targetInterval === scheduledInterval);
|
|
14904
|
-
const packOptions = isLegacyMultiPack ? [currentPacks,
|
|
14904
|
+
const packOptions = isLegacyMultiPack ? [currentPacks, chunkO4F77VSO_cjs.PRO_PACKS, 0] : [chunkO4F77VSO_cjs.PRO_PACKS, 0];
|
|
14905
14905
|
const intervalPrice = targetInterval === "year" ? prices.annual : prices.monthly;
|
|
14906
14906
|
const currency = intervalPrice?.currency ?? project.currency ?? "gbp";
|
|
14907
14907
|
const preview = react.usePreviewProjectPlanChange(
|
|
@@ -14910,7 +14910,7 @@ function ChangeProPlan({
|
|
|
14910
14910
|
);
|
|
14911
14911
|
const noChange = sameAsScheduled || preview.data?.unchanged === true;
|
|
14912
14912
|
const isPersonal = project.is_personal === true;
|
|
14913
|
-
const nameFor = (packs) => packs === 0 && !isPersonal ? "Cancel subscription" : packs === currentPacks && packs > 0 ?
|
|
14913
|
+
const nameFor = (packs) => packs === 0 && !isPersonal ? "Cancel subscription" : packs === currentPacks && packs > 0 ? chunkO4F77VSO_cjs.proTierName(project) : chunkO4F77VSO_cjs.planNameForPacks(packs);
|
|
14914
14914
|
const effects = [];
|
|
14915
14915
|
const target = nameFor(targetPacks);
|
|
14916
14916
|
if (targetPacks === 0) {
|
|
@@ -14922,7 +14922,7 @@ function ChangeProPlan({
|
|
|
14922
14922
|
if (targetPacks < currentPacks) {
|
|
14923
14923
|
effects.push(`Changes to one Pro licence on ${when2}. No refund.`);
|
|
14924
14924
|
} else if (!isCanceling && addons?.packs_next != null) {
|
|
14925
|
-
effects.push(`Cancels the change to ${
|
|
14925
|
+
effects.push(`Cancels the change to ${chunkO4F77VSO_cjs.planNameForPacks(addons.packs_next)}.`);
|
|
14926
14926
|
}
|
|
14927
14927
|
if (targetInterval !== currentInterval) {
|
|
14928
14928
|
effects.push(`${targetInterval === "year" ? "Annual" : "Monthly"} billing from ${when2}.`);
|
|
@@ -14961,33 +14961,33 @@ function ChangeProPlan({
|
|
|
14961
14961
|
if (packs === 0) {
|
|
14962
14962
|
return {
|
|
14963
14963
|
total: isPersonal ? "\xA30" : void 0,
|
|
14964
|
-
summary: isPersonal ? `${react.formatGbp(
|
|
14964
|
+
summary: isPersonal ? `${react.formatGbp(chunkO4F77VSO_cjs.FREE_AI_GBP)} of AI credits \xB7 ${chunkO4F77VSO_cjs.FREE_STORAGE_MB} MB \xB7 just you` : "Suspended after the paid period. 30 days to export or resubscribe."
|
|
14965
14965
|
};
|
|
14966
14966
|
}
|
|
14967
|
-
const allowance = `${react.formatGbp(
|
|
14968
|
-
const legacy = packs >
|
|
14969
|
-
const exVat = legacy ? project.amount_ex_vat :
|
|
14967
|
+
const allowance = `${react.formatGbp(chunkO4F77VSO_cjs.PRO_AI_GBP * packs)} of AI credits \xB7 ${chunkO4F77VSO_cjs.PRO_STORAGE_GB * packs} GB`;
|
|
14968
|
+
const legacy = packs > chunkO4F77VSO_cjs.PRO_PACKS;
|
|
14969
|
+
const exVat = legacy ? project.amount_ex_vat : chunkO4F77VSO_cjs.packPrice(intervalPrice)?.amount_ex_vat;
|
|
14970
14970
|
return {
|
|
14971
|
-
total: exVat != null ?
|
|
14971
|
+
total: exVat != null ? chunkO4F77VSO_cjs.plusVat(exVat, currency) : void 0,
|
|
14972
14972
|
summary: allowance
|
|
14973
14973
|
};
|
|
14974
14974
|
};
|
|
14975
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
14975
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(chunkL6APDO3Y_cjs.PlanStack, { gap: 4, testId: "change-pro-plan", children: [
|
|
14976
14976
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-wrap items-center justify-between gap-2", children: [
|
|
14977
14977
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm font-medium text-foreground", children: "Billing" }),
|
|
14978
|
-
targetPacks >
|
|
14979
|
-
|
|
14978
|
+
targetPacks > chunkO4F77VSO_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(
|
|
14979
|
+
chunkL6APDO3Y_cjs.PricingToggle,
|
|
14980
14980
|
{
|
|
14981
14981
|
isAnnual: targetInterval === "year",
|
|
14982
14982
|
onToggle: () => setChosenInterval(targetInterval === "year" ? "month" : "year"),
|
|
14983
|
-
savingsPercent:
|
|
14983
|
+
savingsPercent: chunkO4F77VSO_cjs.calcSavingsPercent(prices.monthly, prices.annual)
|
|
14984
14984
|
}
|
|
14985
14985
|
)
|
|
14986
14986
|
] }),
|
|
14987
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
14987
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkL6APDO3Y_cjs.PlanStack, { gap: 2, children: packOptions.map((packs) => {
|
|
14988
14988
|
const { total, summary } = optionFor(packs);
|
|
14989
14989
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
14990
|
-
|
|
14990
|
+
chunkL6APDO3Y_cjs.PlanTierOption,
|
|
14991
14991
|
{
|
|
14992
14992
|
onSelect: setTargetPacks,
|
|
14993
14993
|
option: {
|
|
@@ -15004,13 +15004,13 @@ function ChangeProPlan({
|
|
|
15004
15004
|
);
|
|
15005
15005
|
}) }),
|
|
15006
15006
|
isLegacyMultiPack && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-wrap items-center gap-x-3 gap-y-1", children: [
|
|
15007
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
15008
|
-
|
|
15007
|
+
/* @__PURE__ */ jsxRuntime.jsxs(chunkL6APDO3Y_cjs.PlanNotice, { className: "text-xs", testId: "change-plan-legacy-note", children: [
|
|
15008
|
+
chunkO4F77VSO_cjs.proTierName(project),
|
|
15009
15009
|
" is no longer sold"
|
|
15010
15010
|
] }),
|
|
15011
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
15011
|
+
/* @__PURE__ */ jsxRuntime.jsxs(chunkL6APDO3Y_cjs.MoreInfo, { title: "Legacy plan", testId: "change-plan-legacy-more-info", children: [
|
|
15012
15012
|
/* @__PURE__ */ jsxRuntime.jsxs("p", { children: [
|
|
15013
|
-
|
|
15013
|
+
chunkO4F77VSO_cjs.proTierName(project),
|
|
15014
15014
|
" keeps renewing at its own price, with its allowance and add-ons, until you change it."
|
|
15015
15015
|
] }),
|
|
15016
15016
|
/* @__PURE__ */ jsxRuntime.jsxs("p", { children: [
|
|
@@ -15031,7 +15031,7 @@ function ChangeProPlan({
|
|
|
15031
15031
|
),
|
|
15032
15032
|
targetPacks > 0 && /* @__PURE__ */ jsxRuntime.jsx(ConnectedReferralRewardNote, {}),
|
|
15033
15033
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
15034
|
-
|
|
15034
|
+
chunkL6APDO3Y_cjs.PlanActionButton,
|
|
15035
15035
|
{
|
|
15036
15036
|
onClick: apply,
|
|
15037
15037
|
disabled: noChange || isPending,
|
|
@@ -15042,9 +15042,9 @@ function ChangeProPlan({
|
|
|
15042
15042
|
] });
|
|
15043
15043
|
}
|
|
15044
15044
|
function ChangePlanDialog({ project, open, onOpenChange }) {
|
|
15045
|
-
const isPro = !!project &&
|
|
15045
|
+
const isPro = !!project && chunkO4F77VSO_cjs.isProProject(project);
|
|
15046
15046
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
15047
|
-
|
|
15047
|
+
chunkL6APDO3Y_cjs.PlanDialogFrame,
|
|
15048
15048
|
{
|
|
15049
15049
|
compact: !isPro,
|
|
15050
15050
|
className: isPro ? void 0 : "project-purchase-upgrade",
|
|
@@ -15067,14 +15067,14 @@ function ChangePlanDialog({ project, open, onOpenChange }) {
|
|
|
15067
15067
|
}
|
|
15068
15068
|
function ProjectsTable() {
|
|
15069
15069
|
const { data: projects, isLoading } = react.useProjects();
|
|
15070
|
-
const currentUserExtId =
|
|
15070
|
+
const currentUserExtId = chunkO4F77VSO_cjs.useSelfExtId();
|
|
15071
15071
|
const { openProject } = chunkTKHCIHE2_cjs.useBlocksEnvironment();
|
|
15072
15072
|
const updateProject = react.useUpdateProjectFields();
|
|
15073
15073
|
const [renameTarget, setRenameTarget] = react$1.useState(null);
|
|
15074
15074
|
const [renameValue, setRenameValue] = react$1.useState("");
|
|
15075
15075
|
const [invoicesTarget, setInvoicesTarget] = react$1.useState(null);
|
|
15076
15076
|
const [upgradeTarget, setUpgradeTarget] = react$1.useState(null);
|
|
15077
|
-
const { stripeEnabled } =
|
|
15077
|
+
const { stripeEnabled } = chunkO4F77VSO_cjs.useBillingSupport();
|
|
15078
15078
|
const ownedProjects = react$1.useMemo(
|
|
15079
15079
|
() => (projects ?? []).filter((p) => p.created_by === currentUserExtId),
|
|
15080
15080
|
[projects, currentUserExtId]
|
|
@@ -15113,13 +15113,13 @@ function ProjectsTable() {
|
|
|
15113
15113
|
const hasPaid = p.subscription === "active" || p.subscription === "past_due";
|
|
15114
15114
|
const canUpgrade = stripeEnabled && !hasPaid && p.subscription !== "canceled" && p.subscription !== "dev";
|
|
15115
15115
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
15116
|
-
|
|
15116
|
+
chunkL6APDO3Y_cjs.ProjectRow,
|
|
15117
15117
|
{
|
|
15118
15118
|
testId: `project-row-${p.external_id}`,
|
|
15119
15119
|
onOpen: () => openProject(p.external_id),
|
|
15120
15120
|
identity: /* @__PURE__ */ jsxRuntime.jsx(ConnectedProjectEntity, { name: p.name, relation: "mine", subscription: p.subscription }),
|
|
15121
|
-
summary: stripeEnabled ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex items-center whitespace-nowrap", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
15122
|
-
usage: p.quotas ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
15121
|
+
summary: stripeEnabled ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex items-center whitespace-nowrap", children: /* @__PURE__ */ jsxRuntime.jsx(chunkL6APDO3Y_cjs.PlanBadge, { ...chunkO4F77VSO_cjs.planBadgeView(p) }) }) : void 0,
|
|
15122
|
+
usage: p.quotas ? /* @__PURE__ */ jsxRuntime.jsx(chunkL6APDO3Y_cjs.QuotaMeter, { items: chunkO4F77VSO_cjs.getQuotaItems(p.quotas), size: "lg" }) : void 0,
|
|
15123
15123
|
actions: /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
15124
15124
|
canUpgrade && /* @__PURE__ */ jsxRuntime.jsxs(
|
|
15125
15125
|
ui.Button,
|
|
@@ -15153,9 +15153,9 @@ function ProjectsTable() {
|
|
|
15153
15153
|
);
|
|
15154
15154
|
};
|
|
15155
15155
|
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
15156
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
15156
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkL6APDO3Y_cjs.ProjectList, { isLoading, isEmpty: ownedProjects.length === 0, isFilteredOut: false, children: ownedProjects.map(renderRow) }),
|
|
15157
15157
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
15158
|
-
|
|
15158
|
+
chunkL6APDO3Y_cjs.RenameDialog,
|
|
15159
15159
|
{
|
|
15160
15160
|
open: !!renameTarget,
|
|
15161
15161
|
onClose: () => setRenameTarget(null),
|
|
@@ -15186,7 +15186,7 @@ function ProjectsTable() {
|
|
|
15186
15186
|
}
|
|
15187
15187
|
function SharedProjects() {
|
|
15188
15188
|
const { data: projects } = react.useProjects();
|
|
15189
|
-
const currentUserExtId =
|
|
15189
|
+
const currentUserExtId = chunkO4F77VSO_cjs.useSelfExtId();
|
|
15190
15190
|
const { data: usageToday } = react.useUserUsageToday();
|
|
15191
15191
|
const shared = react$1.useMemo(
|
|
15192
15192
|
() => (projects ?? []).filter((p) => p.created_by !== currentUserExtId),
|
|
@@ -15195,13 +15195,13 @@ function SharedProjects() {
|
|
|
15195
15195
|
if (shared.length === 0) return null;
|
|
15196
15196
|
const usedToday = usageToday?.used_gbp ?? 0;
|
|
15197
15197
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
15198
|
-
|
|
15198
|
+
chunkL6APDO3Y_cjs.SharedProjectsSection,
|
|
15199
15199
|
{
|
|
15200
15200
|
footnote: `Your daily AI credits allowance in ${ui.entityNoun("PROJECT", "PLURAL")} other people run \u2014 their plan and billing are theirs.`,
|
|
15201
15201
|
children: shared.map((p) => {
|
|
15202
15202
|
const cap = p.daily_cap_per_user;
|
|
15203
15203
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
15204
|
-
|
|
15204
|
+
chunkL6APDO3Y_cjs.SharedProjectRow,
|
|
15205
15205
|
{
|
|
15206
15206
|
testId: `shared-project-${p.external_id}`,
|
|
15207
15207
|
identity: /* @__PURE__ */ jsxRuntime.jsx(ConnectedProjectEntity, { name: p.name, relation: "other" }),
|
|
@@ -15308,10 +15308,10 @@ function CollaboratorPlan({ project }) {
|
|
|
15308
15308
|
const next = addons.collaborator_blocks_next ?? blocks;
|
|
15309
15309
|
const included = addons.included_collaborators ?? 0;
|
|
15310
15310
|
const size = addons.block_collaborators ?? 0;
|
|
15311
|
-
const from =
|
|
15311
|
+
const from = chunkO4F77VSO_cjs.formatPeriodEnd(addons.period_end ?? project.current_period_end) ?? "the next billing period";
|
|
15312
15312
|
const annual = project.plan_interval === "year";
|
|
15313
|
-
const now = quote.data ?
|
|
15314
|
-
const renewal = quote.data ?
|
|
15313
|
+
const now = quote.data ? chunkO4F77VSO_cjs.quoteParts(quote.data.now) : null;
|
|
15314
|
+
const renewal = quote.data ? chunkO4F77VSO_cjs.quoteParts(quote.data.renewal) : null;
|
|
15315
15315
|
const busy = add.isPending || update.isPending;
|
|
15316
15316
|
const setNext = (count2) => update.mutate(
|
|
15317
15317
|
{ projectExtId: project.external_id, body: { collaborator_blocks: count2 } },
|
|
@@ -15350,7 +15350,7 @@ function CollaboratorPlan({ project }) {
|
|
|
15350
15350
|
project.quotas.collaborators.limit,
|
|
15351
15351
|
" available \xB7 you don't count towards the limit."
|
|
15352
15352
|
] }),
|
|
15353
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { children: addons.collaborator_block_period_ex_vat_pence != null ? `${
|
|
15353
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { children: addons.collaborator_block_period_ex_vat_pence != null ? `${chunkO4F77VSO_cjs.formatMoney(addons.collaborator_block_period_ex_vat_pence, project.currency ?? "gbp")}/${annual ? "year" : "month"} per pack, plus tax.` : "The price is confirmed before purchase." }),
|
|
15354
15354
|
/* @__PURE__ */ jsxRuntime.jsx("p", { children: "Adding a pack charges your saved card for the rest of this billing period, then renews until removed. Collaborators share the project's AI credits budget." }),
|
|
15355
15355
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
15356
15356
|
ui.Button,
|
|
@@ -15413,20 +15413,20 @@ function CollaboratorPlan({ project }) {
|
|
|
15413
15413
|
now && renewal && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-2 text-sm", children: [
|
|
15414
15414
|
/* @__PURE__ */ jsxRuntime.jsxs("p", { children: [
|
|
15415
15415
|
"Pay ",
|
|
15416
|
-
|
|
15416
|
+
chunkO4F77VSO_cjs.money2(now.total),
|
|
15417
15417
|
" today (",
|
|
15418
|
-
|
|
15418
|
+
chunkO4F77VSO_cjs.taxDetail(now),
|
|
15419
15419
|
"), covering until ",
|
|
15420
15420
|
from,
|
|
15421
15421
|
"."
|
|
15422
15422
|
] }),
|
|
15423
15423
|
/* @__PURE__ */ jsxRuntime.jsxs("p", { children: [
|
|
15424
15424
|
"Then ",
|
|
15425
|
-
|
|
15425
|
+
chunkO4F77VSO_cjs.money2(renewal.total),
|
|
15426
15426
|
" every ",
|
|
15427
15427
|
annual ? "year" : "month",
|
|
15428
15428
|
" (",
|
|
15429
|
-
|
|
15429
|
+
chunkO4F77VSO_cjs.taxDetail(renewal),
|
|
15430
15430
|
"), starting ",
|
|
15431
15431
|
from,
|
|
15432
15432
|
", until you remove the pack."
|
|
@@ -15439,7 +15439,7 @@ function CollaboratorPlan({ project }) {
|
|
|
15439
15439
|
] }),
|
|
15440
15440
|
/* @__PURE__ */ jsxRuntime.jsxs(ui.DialogFooter, { children: [
|
|
15441
15441
|
/* @__PURE__ */ jsxRuntime.jsx(ui.Button, { variant: "outline", onClick: () => setOpen(false), children: "Cancel" }),
|
|
15442
|
-
/* @__PURE__ */ jsxRuntime.jsx(ui.Button, { onClick: buy, disabled: !now || !renewal || quote.isFetching || busy, children: add.isPending ? "Paying\u2026" : now ? `Pay ${
|
|
15442
|
+
/* @__PURE__ */ jsxRuntime.jsx(ui.Button, { onClick: buy, disabled: !now || !renewal || quote.isFetching || busy, children: add.isPending ? "Paying\u2026" : now ? `Pay ${chunkO4F77VSO_cjs.money2(now.total)}` : "Add collaborators" })
|
|
15443
15443
|
] })
|
|
15444
15444
|
] }) })
|
|
15445
15445
|
] });
|
|
@@ -15470,7 +15470,7 @@ function DailyCapEditor({ project }) {
|
|
|
15470
15470
|
);
|
|
15471
15471
|
};
|
|
15472
15472
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
15473
|
-
|
|
15473
|
+
chunkL6APDO3Y_cjs.DailyCapField,
|
|
15474
15474
|
{
|
|
15475
15475
|
value,
|
|
15476
15476
|
onChange: setValue,
|
|
@@ -15483,11 +15483,11 @@ function DailyCapEditor({ project }) {
|
|
|
15483
15483
|
function SubscriptionStatus({ project }) {
|
|
15484
15484
|
const { quotas, cancel_at_period_end, subscription, current_period_end, addons } = project;
|
|
15485
15485
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
15486
|
-
|
|
15486
|
+
chunkL6APDO3Y_cjs.SubscriptionStatusView,
|
|
15487
15487
|
{
|
|
15488
|
-
resetDate:
|
|
15488
|
+
resetDate: chunkO4F77VSO_cjs.formatResetDate(addons?.ai_usage_reset_at ?? current_period_end),
|
|
15489
15489
|
isCanceling: subscription === "canceled" || cancel_at_period_end === true,
|
|
15490
|
-
meters:
|
|
15490
|
+
meters: chunkO4F77VSO_cjs.getQuotaItems(quotas).map((q) => ({
|
|
15491
15491
|
key: q.key,
|
|
15492
15492
|
icon: q.icon,
|
|
15493
15493
|
label: q.label,
|
|
@@ -15551,7 +15551,7 @@ function PendingChange({
|
|
|
15551
15551
|
}
|
|
15552
15552
|
);
|
|
15553
15553
|
}
|
|
15554
|
-
var titleFor = (kind, blockAiGbp, blockStorageGb) => kind === "ai_usage" ? `Add ${react.formatGbp(blockAiGbp ??
|
|
15554
|
+
var titleFor = (kind, blockAiGbp, blockStorageGb) => kind === "ai_usage" ? `Add ${react.formatGbp(blockAiGbp ?? chunkO4F77VSO_cjs.ADDON_BLOCK_AI_GBP)} of AI credits` : `Add ${blockStorageGb ?? chunkO4F77VSO_cjs.STORAGE_BLOCK_GB} GB storage`;
|
|
15555
15555
|
var blocksOf = (kind, project) => (kind === "ai_usage" ? project.addons?.ai_blocks : project.addons?.storage_blocks) ?? 0;
|
|
15556
15556
|
function Row({ label, children }) {
|
|
15557
15557
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-baseline justify-between gap-4", children: [
|
|
@@ -15572,11 +15572,11 @@ function AddAddonDialog({
|
|
|
15572
15572
|
const addons = project.addons;
|
|
15573
15573
|
if (!addons) return null;
|
|
15574
15574
|
const isAnnual = project.plan_interval === "year";
|
|
15575
|
-
const price =
|
|
15576
|
-
const nextCharge =
|
|
15577
|
-
const now = quote.data ?
|
|
15578
|
-
const renewal = quote.data ?
|
|
15579
|
-
const today = now ? { total:
|
|
15575
|
+
const price = chunkO4F77VSO_cjs.addonCharge(kind, addons, isAnnual, addons.period_end ?? project.current_period_end);
|
|
15576
|
+
const nextCharge = chunkO4F77VSO_cjs.formatPeriodEnd(addons.period_end ?? project.current_period_end);
|
|
15577
|
+
const now = quote.data ? chunkO4F77VSO_cjs.quoteParts(quote.data.now) : null;
|
|
15578
|
+
const renewal = quote.data ? chunkO4F77VSO_cjs.quoteParts(quote.data.renewal) : null;
|
|
15579
|
+
const today = now ? { total: chunkO4F77VSO_cjs.money2(now.total), detail: chunkO4F77VSO_cjs.taxDetail(now) } : { total: price.now, detail: `incl. VAT (${price.nowExVat} + ${price.nowVat} VAT)` };
|
|
15580
15580
|
const pricing = quote.isLoading;
|
|
15581
15581
|
const confirm = () => {
|
|
15582
15582
|
const before = blocksOf(kind, project);
|
|
@@ -15615,8 +15615,8 @@ function AddAddonDialog({
|
|
|
15615
15615
|
isAnnual ? "yearly" : "monthly",
|
|
15616
15616
|
" \xB7 no refund"
|
|
15617
15617
|
] }),
|
|
15618
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
15619
|
-
|
|
15618
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkL6APDO3Y_cjs.MoreInfo, { title: "Adding a top-up", testId: "add-addon-more-info", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
15619
|
+
chunkL6APDO3Y_cjs.MoreInfoList,
|
|
15620
15620
|
{
|
|
15621
15621
|
items: [
|
|
15622
15622
|
{
|
|
@@ -15631,7 +15631,7 @@ function AddAddonDialog({
|
|
|
15631
15631
|
term: "Usage cap",
|
|
15632
15632
|
text: "Adding by hand is never blocked by the usage cap; the cap limits automatic top-ups only."
|
|
15633
15633
|
},
|
|
15634
|
-
...isAnnual && kind === "ai_usage" ? [{ term: "Annual", text: `${
|
|
15634
|
+
...isAnnual && kind === "ai_usage" ? [{ term: "Annual", text: `${chunkO4F77VSO_cjs.ANNUAL_PREMIUM_AI_NOTE}.` }] : []
|
|
15635
15635
|
]
|
|
15636
15636
|
}
|
|
15637
15637
|
) })
|
|
@@ -15654,7 +15654,7 @@ function AddAddonDialog({
|
|
|
15654
15654
|
)
|
|
15655
15655
|
] }) }),
|
|
15656
15656
|
!pricing && /* @__PURE__ */ jsxRuntime.jsxs(Row, { label: "Next charge", children: [
|
|
15657
|
-
renewal ?
|
|
15657
|
+
renewal ? chunkO4F77VSO_cjs.totalWithTaxWord(renewal) : price.then.replace(/\/(month|year)/, ""),
|
|
15658
15658
|
nextCharge ? ` on ${nextCharge}` : " at renewal"
|
|
15659
15659
|
] })
|
|
15660
15660
|
] }) }),
|
|
@@ -15685,11 +15685,11 @@ function ReduceAddonDialog({
|
|
|
15685
15685
|
const update = react.useUpdateProjectNextPeriodAddons();
|
|
15686
15686
|
const addons = project.addons;
|
|
15687
15687
|
if (!addons) return null;
|
|
15688
|
-
const { min, next } =
|
|
15688
|
+
const { min, next } = chunkO4F77VSO_cjs.reduceBounds(kind, addons);
|
|
15689
15689
|
const keep2 = Math.max(min, next - 1);
|
|
15690
|
-
const size =
|
|
15691
|
-
const what =
|
|
15692
|
-
const from =
|
|
15690
|
+
const size = chunkO4F77VSO_cjs.nextRemovedBlockSize(kind, addons);
|
|
15691
|
+
const what = chunkO4F77VSO_cjs.stepLabel(kind, size);
|
|
15692
|
+
const from = chunkO4F77VSO_cjs.formatPeriodEnd(addons.period_end ?? project.current_period_end) ?? "your next renewal";
|
|
15693
15693
|
const fromShort = from.replace(/ \d{4}$/, "");
|
|
15694
15694
|
const allowanceNext = kind === "ai_usage" ? addons.ai_allowance_next_gbp - size : addons.storage_allowance_next_gb - size;
|
|
15695
15695
|
const allowanceNow = kind === "ai_usage" ? addons.ai_allowance_gbp : addons.storage_allowance_gb;
|
|
@@ -15697,7 +15697,7 @@ function ReduceAddonDialog({
|
|
|
15697
15697
|
const save = () => update.mutate(
|
|
15698
15698
|
{
|
|
15699
15699
|
projectExtId: project.external_id,
|
|
15700
|
-
body:
|
|
15700
|
+
body: chunkO4F77VSO_cjs.nextPeriodBody(kind, keep2)
|
|
15701
15701
|
},
|
|
15702
15702
|
{
|
|
15703
15703
|
onSuccess: () => {
|
|
@@ -15725,7 +15725,7 @@ function ReduceAddonDialog({
|
|
|
15725
15725
|
fromShort,
|
|
15726
15726
|
" \xB7 no refund"
|
|
15727
15727
|
] }),
|
|
15728
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
15728
|
+
/* @__PURE__ */ jsxRuntime.jsxs(chunkL6APDO3Y_cjs.MoreInfo, { title: "Reducing a top-up", testId: "reduce-addon-more-info", children: [
|
|
15729
15729
|
/* @__PURE__ */ jsxRuntime.jsxs("p", { children: [
|
|
15730
15730
|
"The reduction applies from your next renewal (",
|
|
15731
15731
|
from,
|
|
@@ -15782,7 +15782,7 @@ function ReduceAddonDialog({
|
|
|
15782
15782
|
}
|
|
15783
15783
|
) });
|
|
15784
15784
|
}
|
|
15785
|
-
var gbp = (pence) =>
|
|
15785
|
+
var gbp = (pence) => chunkO4F77VSO_cjs.formatMoney(pence, "gbp");
|
|
15786
15786
|
var gb2 = (n) => `${Math.round(n * 10) / 10} GB`;
|
|
15787
15787
|
function formatShortDate(unix) {
|
|
15788
15788
|
if (!unix) return null;
|
|
@@ -15793,20 +15793,20 @@ function AutoTopupThreshold({
|
|
|
15793
15793
|
addons
|
|
15794
15794
|
}) {
|
|
15795
15795
|
const updateSettings = react.useUpdateProjectAddonSettings();
|
|
15796
|
-
const min = addons.min_auto_topup_threshold_gbp ||
|
|
15796
|
+
const min = addons.min_auto_topup_threshold_gbp || chunkO4F77VSO_cjs.MIN_AUTO_TOPUP_THRESHOLD_GBP;
|
|
15797
15797
|
const saved = addons.auto_topup_threshold_gbp;
|
|
15798
15798
|
const [value, setValue] = react$1.useState(String(saved));
|
|
15799
15799
|
react$1.useEffect(() => setValue(String(saved)), [saved]);
|
|
15800
15800
|
const parsed = Number(value);
|
|
15801
15801
|
const valid = Number.isFinite(parsed) && parsed >= min;
|
|
15802
15802
|
const dirty = valid && parsed !== saved;
|
|
15803
|
-
const off =
|
|
15803
|
+
const off = chunkO4F77VSO_cjs.isAddonBudgetZero(addons);
|
|
15804
15804
|
const save = () => {
|
|
15805
15805
|
if (!dirty) return;
|
|
15806
15806
|
updateSettings.mutate(
|
|
15807
15807
|
{
|
|
15808
15808
|
projectExtId: project.external_id,
|
|
15809
|
-
body:
|
|
15809
|
+
body: chunkO4F77VSO_cjs.addonSettingsBody(addons, { auto_topup_threshold_gbp: parsed })
|
|
15810
15810
|
},
|
|
15811
15811
|
{
|
|
15812
15812
|
onSuccess: () => shell.notify.success(`Auto-add below ${react.formatGbp(parsed)} of AI credits left`),
|
|
@@ -15903,10 +15903,10 @@ function ResourceMeter({
|
|
|
15903
15903
|
const update = react.useUpdateProjectNextPeriodAddons();
|
|
15904
15904
|
const isAi = kind === "ai_usage";
|
|
15905
15905
|
const slug = isAi ? "ai-usage" : "storage";
|
|
15906
|
-
const periodEnd =
|
|
15906
|
+
const periodEnd = chunkO4F77VSO_cjs.formatPeriodEnd(addons.period_end ?? project.current_period_end);
|
|
15907
15907
|
const from = periodEnd ?? "your next renewal";
|
|
15908
15908
|
const fromShort = formatShortDate(addons.period_end ?? project.current_period_end) ?? "renewal";
|
|
15909
|
-
const { min, current, next } =
|
|
15909
|
+
const { min, current, next } = chunkO4F77VSO_cjs.reduceBounds(kind, addons);
|
|
15910
15910
|
const fmt = (n) => isAi ? react.formatGbp(n) : gb2(n);
|
|
15911
15911
|
const used = isAi ? addons.ai_used_gbp : addons.storage_used_gb;
|
|
15912
15912
|
const allowance = isAi ? addons.ai_allowance_gbp : addons.storage_allowance_gb;
|
|
@@ -15914,15 +15914,15 @@ function ResourceMeter({
|
|
|
15914
15914
|
const plan = isAi ? addons.plan_ai_gbp : addons.plan_storage_gb;
|
|
15915
15915
|
const topUps = Math.max(0, allowance - plan);
|
|
15916
15916
|
const blocks = isAi ? addons.ai_blocks : addons.storage_blocks;
|
|
15917
|
-
const hasLegacy =
|
|
15918
|
-
const room =
|
|
15919
|
-
const capZero =
|
|
15920
|
-
const resets = isAi ? formatShortDate(
|
|
15921
|
-
const removeSize =
|
|
15917
|
+
const hasLegacy = chunkO4F77VSO_cjs.splitBlocks(kind, blocks, addons).legacy > 0;
|
|
15918
|
+
const room = chunkO4F77VSO_cjs.autoRoom(kind, addons);
|
|
15919
|
+
const capZero = chunkO4F77VSO_cjs.isAddonBudgetZero(addons);
|
|
15920
|
+
const resets = isAi ? formatShortDate(chunkO4F77VSO_cjs.aiUsageResetTimestamp(project)) : null;
|
|
15921
|
+
const removeSize = chunkO4F77VSO_cjs.nextRemovedBlockSize(kind, addons);
|
|
15922
15922
|
const undo = () => update.mutate(
|
|
15923
15923
|
{
|
|
15924
15924
|
projectExtId: project.external_id,
|
|
15925
|
-
body:
|
|
15925
|
+
body: chunkO4F77VSO_cjs.nextPeriodBody(kind, current)
|
|
15926
15926
|
},
|
|
15927
15927
|
{
|
|
15928
15928
|
onSuccess: () => shell.notify.success("Kept"),
|
|
@@ -15939,7 +15939,7 @@ function ResourceMeter({
|
|
|
15939
15939
|
allowance: { used, plan, topUps, autoRoom: capZero ? 0 : room },
|
|
15940
15940
|
legend: {
|
|
15941
15941
|
plan: `Plan ${fmt(plan)}`,
|
|
15942
|
-
topUps: topUps > 0 ? `Top-ups ${fmt(topUps)}${hasLegacy ? ` (${
|
|
15942
|
+
topUps: topUps > 0 ? `Top-ups ${fmt(topUps)}${hasLegacy ? ` (${chunkO4F77VSO_cjs.blocksLabel(kind, blocks, addons)})` : ""}` : void 0,
|
|
15943
15943
|
autoRoom: room != null && room > 0 && !capZero ? `Automatic up to ${fmt(room)}` : void 0
|
|
15944
15944
|
},
|
|
15945
15945
|
testId: `usage-meter-${slug}`,
|
|
@@ -15968,9 +15968,9 @@ function ResourceMeter({
|
|
|
15968
15968
|
{
|
|
15969
15969
|
icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Plus, { className: "size-3.5" }),
|
|
15970
15970
|
label: isAi ? react.formatGbp(addons.block_ai_gbp) : `${addons.block_storage_gb} GB`,
|
|
15971
|
-
caption:
|
|
15971
|
+
caption: chunkO4F77VSO_cjs.addStepCaption(kind, addons),
|
|
15972
15972
|
onClick: onAdd,
|
|
15973
|
-
ariaLabel: `Add ${
|
|
15973
|
+
ariaLabel: `Add ${chunkO4F77VSO_cjs.stepLabel(kind, isAi ? addons.block_ai_gbp : addons.block_storage_gb)}`,
|
|
15974
15974
|
testId: isAi ? "add-ai-block-button" : "add-storage-block-button"
|
|
15975
15975
|
}
|
|
15976
15976
|
),
|
|
@@ -15983,7 +15983,7 @@ function ResourceMeter({
|
|
|
15983
15983
|
label: isAi ? react.formatGbp(removeSize) : `${removeSize} GB`,
|
|
15984
15984
|
caption: `from ${fromShort}`,
|
|
15985
15985
|
onClick: onReduce,
|
|
15986
|
-
ariaLabel: `Remove ${
|
|
15986
|
+
ariaLabel: `Remove ${chunkO4F77VSO_cjs.stepLabel(kind, removeSize)} from ${from}`,
|
|
15987
15987
|
testId: `reduce-${slug}-button`
|
|
15988
15988
|
}
|
|
15989
15989
|
)
|
|
@@ -15998,7 +15998,7 @@ function UsageCapEditor({ project, addons }) {
|
|
|
15998
15998
|
const inputRef = react$1.useRef(null);
|
|
15999
15999
|
const minimum = 0;
|
|
16000
16000
|
const stepPence = addons.spend_cap_step_pence ?? 2500;
|
|
16001
|
-
const saved = addons.spend_cap_pence ?? addons.default_spend_cap_pence ??
|
|
16001
|
+
const saved = addons.spend_cap_pence ?? addons.default_spend_cap_pence ?? chunkO4F77VSO_cjs.DEFAULT_SPEND_CAP_PENCE;
|
|
16002
16002
|
const maximum = addons.maximum_spend_cap_pence ?? 5e4;
|
|
16003
16003
|
const normalize = (n) => Math.max(0, Math.min(maximum, Math.floor(n / stepPence) * stepPence));
|
|
16004
16004
|
const [value, setValue] = react$1.useState(normalize(saved));
|
|
@@ -16016,10 +16016,10 @@ function UsageCapEditor({ project, addons }) {
|
|
|
16016
16016
|
const save = () => updateSettings.mutate(
|
|
16017
16017
|
{
|
|
16018
16018
|
projectExtId: project.external_id,
|
|
16019
|
-
body:
|
|
16019
|
+
body: chunkO4F77VSO_cjs.addonSettingsBody(addons, { spend_cap_pence: value })
|
|
16020
16020
|
},
|
|
16021
16021
|
{
|
|
16022
|
-
onSuccess: () => shell.notify.success(
|
|
16022
|
+
onSuccess: () => shell.notify.success(chunkO4F77VSO_cjs.budgetSavedMessage(value)),
|
|
16023
16023
|
onError: (error) => shell.notify.error(addonErrorMessage(error))
|
|
16024
16024
|
}
|
|
16025
16025
|
);
|
|
@@ -16056,8 +16056,8 @@ function UsageCapEditor({ project, addons }) {
|
|
|
16056
16056
|
function UsageInfo({ addons, isAnnual }) {
|
|
16057
16057
|
const period = isAnnual ? "year" : "month";
|
|
16058
16058
|
const legacy = (addons.legacy_ai_blocks ?? 0) > 0 || (addons.legacy_storage_blocks ?? 0) > 0;
|
|
16059
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
16060
|
-
|
|
16059
|
+
return /* @__PURE__ */ jsxRuntime.jsx(chunkL6APDO3Y_cjs.MoreInfo, { title: "Usage and top-ups", testId: "usage-more-info", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
16060
|
+
chunkL6APDO3Y_cjs.MoreInfoList,
|
|
16061
16061
|
{
|
|
16062
16062
|
items: [
|
|
16063
16063
|
{
|
|
@@ -16072,7 +16072,7 @@ function UsageInfo({ addons, isAnnual }) {
|
|
|
16072
16072
|
term: "Automatic top-ups",
|
|
16073
16073
|
text: "One step is added when AI credits drops below your auto top-up level, or when an upload needs more storage."
|
|
16074
16074
|
},
|
|
16075
|
-
{ term: "Usage cap", text:
|
|
16075
|
+
{ term: "Usage cap", text: chunkO4F77VSO_cjs.USAGE_CAP_HELP },
|
|
16076
16076
|
{
|
|
16077
16077
|
term: "Reducing",
|
|
16078
16078
|
text: "\u2212 removes one step from your next renewal. You keep this period's allowance. No refunds."
|
|
@@ -16083,7 +16083,7 @@ function UsageInfo({ addons, isAnnual }) {
|
|
|
16083
16083
|
text: "Top-ups bought on an earlier price keep their size and price until removed; they are removed last."
|
|
16084
16084
|
}
|
|
16085
16085
|
] : [],
|
|
16086
|
-
...isAnnual ? [{ term: "Annual", text: `${
|
|
16086
|
+
...isAnnual ? [{ term: "Annual", text: `${chunkO4F77VSO_cjs.ANNUAL_PREMIUM_AI_NOTE}.` }] : [],
|
|
16087
16087
|
{
|
|
16088
16088
|
term: "Prices",
|
|
16089
16089
|
text: "Shown ex VAT. The confirm step shows the total with VAT before you pay."
|
|
@@ -16176,7 +16176,7 @@ function formatShortDate2(unix) {
|
|
|
16176
16176
|
if (!unix) return null;
|
|
16177
16177
|
return new Date(unix * 1e3).toLocaleDateString("en-GB", { day: "numeric", month: "short" });
|
|
16178
16178
|
}
|
|
16179
|
-
var gbp2 = (pence) =>
|
|
16179
|
+
var gbp2 = (pence) => chunkO4F77VSO_cjs.formatMoney(pence, "gbp");
|
|
16180
16180
|
var gbNum = (n) => `${Math.round(n * 10) / 10}`;
|
|
16181
16181
|
var pct = (used, limit) => limit > 0 ? Math.min(100, used / limit * 100) : 0;
|
|
16182
16182
|
function Meter({
|
|
@@ -16194,15 +16194,15 @@ function Meter({
|
|
|
16194
16194
|
] });
|
|
16195
16195
|
}
|
|
16196
16196
|
function usePlanPrice(project) {
|
|
16197
|
-
const { data: products } = react.useProducts({ enabled:
|
|
16198
|
-
if (!
|
|
16197
|
+
const { data: products } = react.useProducts({ enabled: chunkO4F77VSO_cjs.isProProject(project) });
|
|
16198
|
+
if (!chunkO4F77VSO_cjs.isProProject(project)) return null;
|
|
16199
16199
|
const isAnnual = project.plan_interval === "year";
|
|
16200
16200
|
if (project.amount != null) {
|
|
16201
16201
|
return { incl: project.amount, ex: project.amount_ex_vat ?? null, isAnnual };
|
|
16202
16202
|
}
|
|
16203
|
-
if ((project.packs ??
|
|
16204
|
-
const prices =
|
|
16205
|
-
const pp =
|
|
16203
|
+
if ((project.packs ?? chunkO4F77VSO_cjs.PRO_PACKS) > chunkO4F77VSO_cjs.PRO_PACKS) return null;
|
|
16204
|
+
const prices = chunkO4F77VSO_cjs.findProPrices(products);
|
|
16205
|
+
const pp = chunkO4F77VSO_cjs.packPrice(isAnnual ? prices.annual : prices.monthly);
|
|
16206
16206
|
return pp ? { incl: pp.amount, ex: pp.amount_ex_vat, isAnnual } : null;
|
|
16207
16207
|
}
|
|
16208
16208
|
function paidLine(payment, addons) {
|
|
@@ -16215,11 +16215,11 @@ function ProjectPlanCard({
|
|
|
16215
16215
|
onChangePlan
|
|
16216
16216
|
}) {
|
|
16217
16217
|
const { quotas, addons } = project;
|
|
16218
|
-
const isPro =
|
|
16218
|
+
const isPro = chunkO4F77VSO_cjs.isProProject(project);
|
|
16219
16219
|
const used = quotas?.ai_usage?.used ?? 0;
|
|
16220
16220
|
const limit = quotas?.ai_usage?.limit ?? 0;
|
|
16221
|
-
const resetDate = formatShortDate2(
|
|
16222
|
-
const periodEnd =
|
|
16221
|
+
const resetDate = formatShortDate2(chunkO4F77VSO_cjs.aiUsageResetTimestamp(project));
|
|
16222
|
+
const periodEnd = chunkO4F77VSO_cjs.formatPeriodEnd(addons?.period_end ?? project.current_period_end);
|
|
16223
16223
|
const when2 = periodEnd ?? "the end of the period";
|
|
16224
16224
|
const storageUsed = quotas?.storage_gb?.used ?? 0;
|
|
16225
16225
|
const storageLimit = quotas?.storage_gb?.limit ?? 0;
|
|
@@ -16235,7 +16235,7 @@ function ProjectPlanCard({
|
|
|
16235
16235
|
project.external_id,
|
|
16236
16236
|
hasScheduledChange && addons ? { packs: packsNext ?? addons.packs, interval: pending ?? currentInterval } : null
|
|
16237
16237
|
).data;
|
|
16238
|
-
const tier = isPro ?
|
|
16238
|
+
const tier = isPro ? chunkO4F77VSO_cjs.proTierName(project) : project.subscription === "dev" ? "Dev" : "Free";
|
|
16239
16239
|
const pendingPayment = addons?.payment?.status === "pending" ? addons.payment : null;
|
|
16240
16240
|
const confirmUrl = pendingPayment?.confirm_url ?? addons?.confirm_url;
|
|
16241
16241
|
const paidPayment = addons?.payment?.status === "paid" ? addons.payment : null;
|
|
@@ -16269,7 +16269,7 @@ function ProjectPlanCard({
|
|
|
16269
16269
|
isPro && " ",
|
|
16270
16270
|
isPro && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ml-1 text-sm font-normal text-muted-foreground", children: currentInterval === "year" ? "Annual" : "Monthly" })
|
|
16271
16271
|
] }),
|
|
16272
|
-
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 ${
|
|
16272
|
+
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 ${chunkO4F77VSO_cjs.totalWithTaxWord({
|
|
16273
16273
|
subtotal: nextBill.next_renewal_ex_vat_pence,
|
|
16274
16274
|
tax: nextBill.next_renewal_tax_pence,
|
|
16275
16275
|
total: nextBill.next_renewal_pence,
|
|
@@ -16278,7 +16278,7 @@ function ProjectPlanCard({
|
|
|
16278
16278
|
] }),
|
|
16279
16279
|
price && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ml-auto text-right", "data-testid": "project-plan-price", children: [
|
|
16280
16280
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-lg font-semibold tabular-nums text-foreground", children: [
|
|
16281
|
-
price.ex != null ?
|
|
16281
|
+
price.ex != null ? chunkO4F77VSO_cjs.plusVat(price.ex) : gbp2(price.incl),
|
|
16282
16282
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm font-normal text-muted-foreground", children: price.isAnnual ? "/year" : "/month" })
|
|
16283
16283
|
] }),
|
|
16284
16284
|
price.ex != null && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-xs text-muted-foreground", children: [
|
|
@@ -16316,7 +16316,7 @@ function ProjectPlanCard({
|
|
|
16316
16316
|
undoTestId: "undo-plan-change-button",
|
|
16317
16317
|
children: [
|
|
16318
16318
|
"Changes to ",
|
|
16319
|
-
|
|
16319
|
+
chunkO4F77VSO_cjs.planNameForPacks(packsNext),
|
|
16320
16320
|
" on ",
|
|
16321
16321
|
when2,
|
|
16322
16322
|
"."
|
|
@@ -16361,8 +16361,8 @@ function ProjectPlanCard({
|
|
|
16361
16361
|
}
|
|
16362
16362
|
)
|
|
16363
16363
|
] }),
|
|
16364
|
-
addons?.billing_error && /* @__PURE__ */ jsxRuntime.jsx(
|
|
16365
|
-
confirmUrl ? /* @__PURE__ */ jsxRuntime.jsxs(
|
|
16364
|
+
addons?.billing_error && /* @__PURE__ */ jsxRuntime.jsx(chunkL6APDO3Y_cjs.PlanNotice, { tone: "error", testId: "plan-billing-error", children: addons.billing_error }),
|
|
16365
|
+
confirmUrl ? /* @__PURE__ */ jsxRuntime.jsxs(chunkL6APDO3Y_cjs.PlanNotice, { testId: "plan-payment-state", children: [
|
|
16366
16366
|
"Waiting for your bank",
|
|
16367
16367
|
pendingPayment?.amount_pence ? ` \xB7 ${gbp2(pendingPayment.amount_pence)}` : "",
|
|
16368
16368
|
" \xB7",
|
|
@@ -16380,7 +16380,7 @@ function ProjectPlanCard({
|
|
|
16380
16380
|
]
|
|
16381
16381
|
}
|
|
16382
16382
|
)
|
|
16383
|
-
] }) : paidPayment && addons && /* @__PURE__ */ jsxRuntime.jsx(
|
|
16383
|
+
] }) : paidPayment && addons && /* @__PURE__ */ jsxRuntime.jsx(chunkL6APDO3Y_cjs.PlanNotice, { testId: "plan-payment-state", children: paidLine(paidPayment, addons) }),
|
|
16384
16384
|
isPro && /* @__PURE__ */ jsxRuntime.jsxs(
|
|
16385
16385
|
"button",
|
|
16386
16386
|
{
|
|
@@ -16407,7 +16407,7 @@ function ProjectBilling({
|
|
|
16407
16407
|
const { addons } = project;
|
|
16408
16408
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", "data-testid": "project-billing", children: [
|
|
16409
16409
|
/* @__PURE__ */ jsxRuntime.jsx(ProjectPlanCard, { project, onChangePlan }),
|
|
16410
|
-
addons &&
|
|
16410
|
+
addons && chunkO4F77VSO_cjs.isProProject(project) && /* @__PURE__ */ jsxRuntime.jsx(ProjectUsageCard, { project, addons })
|
|
16411
16411
|
] });
|
|
16412
16412
|
}
|
|
16413
16413
|
var BREAKDOWN_LABELS = react.DEFAULT_USAGE_BREAKDOWN_SOURCE_LABELS.by;
|
|
@@ -16445,13 +16445,13 @@ function ProjectUsageContent({
|
|
|
16445
16445
|
};
|
|
16446
16446
|
const quotaPct = effectiveUsage && aiUsageLimit ? Math.round(effectiveUsage.total_spend / aiUsageLimit * 100) : 0;
|
|
16447
16447
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
16448
|
-
|
|
16448
|
+
chunkL6APDO3Y_cjs.UsagePanel,
|
|
16449
16449
|
{
|
|
16450
16450
|
state,
|
|
16451
16451
|
dateRange,
|
|
16452
16452
|
emptyMessage: `No usage ${period === "current" ? "yet this month" : "last month"}.`,
|
|
16453
16453
|
period: /* @__PURE__ */ jsxRuntime.jsx(
|
|
16454
|
-
|
|
16454
|
+
chunkL6APDO3Y_cjs.UsageToggle,
|
|
16455
16455
|
{
|
|
16456
16456
|
ariaLabel: "Period",
|
|
16457
16457
|
value: period,
|
|
@@ -16464,7 +16464,7 @@ function ProjectUsageContent({
|
|
|
16464
16464
|
),
|
|
16465
16465
|
actions: /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
16466
16466
|
effectiveUsage?.invoice_pdf && /* @__PURE__ */ jsxRuntime.jsx(
|
|
16467
|
-
|
|
16467
|
+
chunkL6APDO3Y_cjs.UsageActionButton,
|
|
16468
16468
|
{
|
|
16469
16469
|
label: "Download Stripe invoice PDF",
|
|
16470
16470
|
icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Download, { className: "size-3.5" }),
|
|
@@ -16472,7 +16472,7 @@ function ProjectUsageContent({
|
|
|
16472
16472
|
}
|
|
16473
16473
|
),
|
|
16474
16474
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
16475
|
-
|
|
16475
|
+
chunkL6APDO3Y_cjs.UsageActionButton,
|
|
16476
16476
|
{
|
|
16477
16477
|
label: "Print usage summary",
|
|
16478
16478
|
icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Printer, { className: "size-3.5" }),
|
|
@@ -16509,7 +16509,7 @@ function ProjectUsagePanels({
|
|
|
16509
16509
|
[spend, panels.requests, panels.tokens].map((p) => /* @__PURE__ */ jsxRuntime.jsx(chunkUZHWXKS6_cjs.DashboardCell, { width: p.width, children: /* @__PURE__ */ jsxRuntime.jsx(chunkUZHWXKS6_cjs.DashboardPanel, { panel: p, testId: `project-usage-${p.id}` }) }, p.id)),
|
|
16510
16510
|
/* @__PURE__ */ jsxRuntime.jsx(chunkUZHWXKS6_cjs.DashboardCell, { width: 12, children: /* @__PURE__ */ jsxRuntime.jsx(chunkUZHWXKS6_cjs.DashboardPanel, { panel: { ...panels.spendByModel, width: 12 } }) }),
|
|
16511
16511
|
/* @__PURE__ */ jsxRuntime.jsx(chunkUZHWXKS6_cjs.DashboardCell, { width: 12, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
16512
|
-
|
|
16512
|
+
chunkL6APDO3Y_cjs.UsageToggle,
|
|
16513
16513
|
{
|
|
16514
16514
|
ariaLabel: "Breakdown by",
|
|
16515
16515
|
size: "fill",
|
|
@@ -16524,7 +16524,7 @@ function ProjectUsagePanels({
|
|
|
16524
16524
|
panel: panels.breakdown(breakdown, metric, 12),
|
|
16525
16525
|
testId: "project-usage-breakdown",
|
|
16526
16526
|
actions: /* @__PURE__ */ jsxRuntime.jsx(
|
|
16527
|
-
|
|
16527
|
+
chunkL6APDO3Y_cjs.UsageToggle,
|
|
16528
16528
|
{
|
|
16529
16529
|
ariaLabel: "Breakdown metric",
|
|
16530
16530
|
value: metric,
|
|
@@ -16540,13 +16540,13 @@ function ProjectUsagePanels({
|
|
|
16540
16540
|
] });
|
|
16541
16541
|
}
|
|
16542
16542
|
function ProjectDetail({ projectExtId, storage }) {
|
|
16543
|
-
const { stripeEnabled } =
|
|
16543
|
+
const { stripeEnabled } = chunkO4F77VSO_cjs.useBillingSupport();
|
|
16544
16544
|
const [planOpen, setPlanOpen] = react$1.useState(false);
|
|
16545
16545
|
const [renameOpen, setRenameOpen] = react$1.useState(false);
|
|
16546
16546
|
const [renameValue, setRenameValue] = react$1.useState("");
|
|
16547
16547
|
const updateProject = react.useUpdateProjectFields();
|
|
16548
16548
|
const { data: projects, isLoading } = react.useProjects();
|
|
16549
|
-
const currentUserExtId =
|
|
16549
|
+
const currentUserExtId = chunkO4F77VSO_cjs.useSelfExtId();
|
|
16550
16550
|
const project = projects?.find((p) => p.external_id === projectExtId);
|
|
16551
16551
|
const handleSaveRename = react$1.useCallback(() => {
|
|
16552
16552
|
const trimmed = renameValue.trim();
|
|
@@ -16584,7 +16584,7 @@ function ProjectDetail({ projectExtId, storage }) {
|
|
|
16584
16584
|
}
|
|
16585
16585
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "p-6 space-y-6 max-w-4xl", "data-testid": `project-detail-${project.external_id}`, children: [
|
|
16586
16586
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
16587
|
-
|
|
16587
|
+
chunkL6APDO3Y_cjs.ProjectDetailHeader,
|
|
16588
16588
|
{
|
|
16589
16589
|
icon: /* @__PURE__ */ jsxRuntime.jsx(ui.EntityIcon, { entityType: "PROJECT" }),
|
|
16590
16590
|
name: project.name,
|
|
@@ -16592,12 +16592,12 @@ function ProjectDetail({ projectExtId, storage }) {
|
|
|
16592
16592
|
setRenameValue(project.name);
|
|
16593
16593
|
setRenameOpen(true);
|
|
16594
16594
|
},
|
|
16595
|
-
badge: stripeEnabled ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
16595
|
+
badge: stripeEnabled ? /* @__PURE__ */ jsxRuntime.jsx(chunkL6APDO3Y_cjs.PlanBadge, { ...chunkO4F77VSO_cjs.planBadgeView(project), size: "md" }) : void 0
|
|
16596
16596
|
}
|
|
16597
16597
|
),
|
|
16598
16598
|
hasBilling && project.subscription === "suspended" ? /* @__PURE__ */ jsxRuntime.jsx(SuspendedProjectRecovery, { project, onResubscribe: () => setPlanOpen(true) }) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
16599
16599
|
hasBilling && /* @__PURE__ */ jsxRuntime.jsx(ProjectBilling, { project, onChangePlan: () => setPlanOpen(true) }),
|
|
16600
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
16600
|
+
/* @__PURE__ */ jsxRuntime.jsxs(chunkL6APDO3Y_cjs.ProjectDetailSection, { title: hasBilling ? "Collaborator limits" : "Plan limits", children: [
|
|
16601
16601
|
!hasBilling && /* @__PURE__ */ jsxRuntime.jsx(SubscriptionStatus, { project }),
|
|
16602
16602
|
hasBilling && project.addons && /* @__PURE__ */ jsxRuntime.jsx(CollaboratorPlan, { project }),
|
|
16603
16603
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
@@ -16614,7 +16614,7 @@ function ProjectDetail({ projectExtId, storage }) {
|
|
|
16614
16614
|
}
|
|
16615
16615
|
)
|
|
16616
16616
|
] }),
|
|
16617
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
16617
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkL6APDO3Y_cjs.ProjectDetailSection, { title: "Usage", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
16618
16618
|
ProjectUsageContent,
|
|
16619
16619
|
{
|
|
16620
16620
|
projectExtId: project.external_id,
|
|
@@ -16625,7 +16625,7 @@ function ProjectDetail({ projectExtId, storage }) {
|
|
|
16625
16625
|
storage
|
|
16626
16626
|
] }),
|
|
16627
16627
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
16628
|
-
|
|
16628
|
+
chunkL6APDO3Y_cjs.RenameDialog,
|
|
16629
16629
|
{
|
|
16630
16630
|
open: renameOpen,
|
|
16631
16631
|
onClose: () => setRenameOpen(false),
|
|
@@ -16642,7 +16642,7 @@ function ProjectDetail({ projectExtId, storage }) {
|
|
|
16642
16642
|
function useAutoRefreshPendingProjects() {
|
|
16643
16643
|
const { data: projects } = react.useProjects();
|
|
16644
16644
|
const refreshProject = react.useRefreshProject();
|
|
16645
|
-
const currentUserExtId =
|
|
16645
|
+
const currentUserExtId = chunkO4F77VSO_cjs.useSelfExtId();
|
|
16646
16646
|
const refreshedRef = react$1.useRef(/* @__PURE__ */ new Set());
|
|
16647
16647
|
react$1.useEffect(() => {
|
|
16648
16648
|
if (!projects || !currentUserExtId) return;
|
|
@@ -16673,7 +16673,7 @@ function ConnectedQuotaDialog({ info, onClose: close }) {
|
|
|
16673
16673
|
if (quotaProjectId) void refetchProjects();
|
|
16674
16674
|
}, [quotaProjectId, refetchProjects]);
|
|
16675
16675
|
const project = info?.projectExtId ? projects?.find((p) => p.external_id === info.projectExtId) : void 0;
|
|
16676
|
-
const addons = project &&
|
|
16676
|
+
const addons = project && chunkO4F77VSO_cjs.isProProject(project) ? project.addons : null;
|
|
16677
16677
|
const handleUpgrade = () => {
|
|
16678
16678
|
if (info?.projectExtId) {
|
|
16679
16679
|
requestProjectBillingFocus({ projectExtId: info.projectExtId, openUpgrade: true });
|
|
@@ -16709,8 +16709,8 @@ function ConnectedQuotaDialog({ info, onClose: close }) {
|
|
|
16709
16709
|
/* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, {})
|
|
16710
16710
|
);
|
|
16711
16711
|
} else if (addons) {
|
|
16712
|
-
const price = `${
|
|
16713
|
-
const capZero =
|
|
16712
|
+
const price = `${chunkO4F77VSO_cjs.formatMoney(addons.ai_block_price_ex_vat_pence, "gbp")} ex VAT`;
|
|
16713
|
+
const capZero = chunkO4F77VSO_cjs.isAddonBudgetZero(addons);
|
|
16714
16714
|
const addAiUsage = /* @__PURE__ */ jsxRuntime.jsxs(ui.Button, { onClick: handleAddAiUsage, "data-testid": "quota-add-ai-usage-button", children: [
|
|
16715
16715
|
"Add ",
|
|
16716
16716
|
react.formatGbp(addons.block_ai_gbp),
|
|
@@ -16718,7 +16718,7 @@ function ConnectedQuotaDialog({ info, onClose: close }) {
|
|
|
16718
16718
|
price
|
|
16719
16719
|
] });
|
|
16720
16720
|
if (capZero || addons.cap_reached) {
|
|
16721
|
-
message = capZero ?
|
|
16721
|
+
message = capZero ? chunkO4F77VSO_cjs.ZERO_BUDGET_MESSAGE : chunkO4F77VSO_cjs.CAP_REACHED_MESSAGE;
|
|
16722
16722
|
actions = /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
16723
16723
|
addAiUsage,
|
|
16724
16724
|
/* @__PURE__ */ jsxRuntime.jsx(ui.Button, { variant: "outline", onClick: handleRaiseCap, "data-testid": "quota-raise-cap-button", children: capZero ? "Set cap" : "Raise cap" })
|
|
@@ -16731,7 +16731,7 @@ function ConnectedQuotaDialog({ info, onClose: close }) {
|
|
|
16731
16731
|
const addAiUsageProject = addAiUsageFor ? projects?.find((p) => p.external_id === addAiUsageFor) : void 0;
|
|
16732
16732
|
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
16733
16733
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
16734
|
-
|
|
16734
|
+
chunkL6APDO3Y_cjs.QuotaExceededDialogView,
|
|
16735
16735
|
{
|
|
16736
16736
|
open,
|
|
16737
16737
|
onClose: close,
|
|
@@ -16907,7 +16907,7 @@ function ConnectedWelcomeDialog({
|
|
|
16907
16907
|
}) {
|
|
16908
16908
|
const currentUser = react.useArbiSession().user;
|
|
16909
16909
|
const { data: projects } = react.useProjects();
|
|
16910
|
-
const balance =
|
|
16910
|
+
const balance = chunkO4F77VSO_cjs.useRewardBalance();
|
|
16911
16911
|
const [showPlans, setShowPlans] = react$1.useState(false);
|
|
16912
16912
|
const [showInvite, setShowInvite] = react$1.useState(false);
|
|
16913
16913
|
const [selectedProjectId, setSelectedProjectId] = react$1.useState(null);
|
|
@@ -16928,21 +16928,21 @@ function ConnectedWelcomeDialog({
|
|
|
16928
16928
|
return /* @__PURE__ */ jsxRuntime.jsx(ChangePlanDialog, { project: selectedProject, open, onOpenChange: handleOpenChange });
|
|
16929
16929
|
}
|
|
16930
16930
|
if (showInvite) {
|
|
16931
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
16931
|
+
return /* @__PURE__ */ jsxRuntime.jsx(chunkL6APDO3Y_cjs.InviteContactsDialog, { open, onClose: () => handleOpenChange(false), children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
16932
16932
|
ConnectedAddContacts,
|
|
16933
16933
|
{
|
|
16934
16934
|
onClose: () => handleOpenChange(false),
|
|
16935
|
-
rewardAmount:
|
|
16935
|
+
rewardAmount: chunkO4F77VSO_cjs.formatMoney(REFERRAL_OFFER.amount, REFERRAL_OFFER.currency)
|
|
16936
16936
|
}
|
|
16937
16937
|
) });
|
|
16938
16938
|
}
|
|
16939
16939
|
const firstName = currentUser?.given_name;
|
|
16940
16940
|
const hasBalance = balance !== null;
|
|
16941
|
-
const quotaItems =
|
|
16942
|
-
const resetTs =
|
|
16943
|
-
const aiUsageHint = resetTs ? `resets ${
|
|
16941
|
+
const quotaItems = chunkO4F77VSO_cjs.getQuotaItems(selectedProject.quotas);
|
|
16942
|
+
const resetTs = chunkO4F77VSO_cjs.aiUsageResetTimestamp(selectedProject);
|
|
16943
|
+
const aiUsageHint = resetTs ? `resets ${chunkO4F77VSO_cjs.formatResetDate(resetTs)}` : void 0;
|
|
16944
16944
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
16945
|
-
|
|
16945
|
+
chunkL6APDO3Y_cjs.WelcomeDialog,
|
|
16946
16946
|
{
|
|
16947
16947
|
open,
|
|
16948
16948
|
onClose: () => handleOpenChange(false),
|
|
@@ -16957,7 +16957,7 @@ function ConnectedWelcomeDialog({
|
|
|
16957
16957
|
onChange: setSelectedProjectId
|
|
16958
16958
|
}
|
|
16959
16959
|
),
|
|
16960
|
-
planBadge: /* @__PURE__ */ jsxRuntime.jsx(
|
|
16960
|
+
planBadge: /* @__PURE__ */ jsxRuntime.jsx(chunkL6APDO3Y_cjs.PlanBadge, { ...chunkO4F77VSO_cjs.planBadgeView(selectedProject), size: "md" }),
|
|
16961
16961
|
quotas: quotaItems.map((q) => ({
|
|
16962
16962
|
key: q.key,
|
|
16963
16963
|
icon: q.icon,
|
|
@@ -16967,9 +16967,9 @@ function ConnectedWelcomeDialog({
|
|
|
16967
16967
|
hint: q.key === "ai-usage" ? aiUsageHint : void 0
|
|
16968
16968
|
})),
|
|
16969
16969
|
onSeePlans: () => setShowPlans(true),
|
|
16970
|
-
referralOfferLabel: `${
|
|
16970
|
+
referralOfferLabel: `${chunkO4F77VSO_cjs.formatMoney(REFERRAL_OFFER.amount, REFERRAL_OFFER.currency)} off your plan`,
|
|
16971
16971
|
onInvite: () => setShowInvite(true),
|
|
16972
|
-
rewardBalanceLabel: hasBalance ?
|
|
16972
|
+
rewardBalanceLabel: hasBalance ? chunkO4F77VSO_cjs.formatMoney(balance.amount, balance.currency) : void 0
|
|
16973
16973
|
}
|
|
16974
16974
|
);
|
|
16975
16975
|
}
|
|
@@ -17032,7 +17032,7 @@ function WorkspaceCardsView({
|
|
|
17032
17032
|
createDisabledReason,
|
|
17033
17033
|
workspaceState
|
|
17034
17034
|
}) {
|
|
17035
|
-
const { stripeEnabled } =
|
|
17035
|
+
const { stripeEnabled } = chunkO4F77VSO_cjs.useBillingSupport();
|
|
17036
17036
|
const { hrefFor: hrefFor2 } = chunkTKHCIHE2_cjs.useBlocksEnvironment();
|
|
17037
17037
|
const workspaceLabel = ui.getEntityLabel("WORKSPACE");
|
|
17038
17038
|
const projectLabel = ui.getEntityLabel("PROJECT").toLowerCase();
|
|
@@ -17052,7 +17052,7 @@ function WorkspaceCardsView({
|
|
|
17052
17052
|
}
|
|
17053
17053
|
return /* @__PURE__ */ jsxRuntime.jsx(chunkCMGNRMPA_cjs.WorkspaceList, { testId: "workspace-cards-list", children: groups.map((group) => {
|
|
17054
17054
|
const project = projects.find((p) => p.external_id === group.projectExtId);
|
|
17055
|
-
const { breakdown, readout } =
|
|
17055
|
+
const { breakdown, readout } = chunkO4F77VSO_cjs.projectGroupBilling(project, {
|
|
17056
17056
|
isOwned: group.isOwned,
|
|
17057
17057
|
stripeEnabled
|
|
17058
17058
|
});
|
|
@@ -17215,7 +17215,7 @@ function useConnectedWorkspaceList({
|
|
|
17215
17215
|
[selfId, pinned]
|
|
17216
17216
|
);
|
|
17217
17217
|
const filtered = react$1.useMemo(
|
|
17218
|
-
() =>
|
|
17218
|
+
() => chunkL6APDO3Y_cjs.applyTriStateFilters(workspaces, filterMap, attributesOf),
|
|
17219
17219
|
[workspaces, filterMap, attributesOf]
|
|
17220
17220
|
);
|
|
17221
17221
|
const groups = react$1.useMemo(
|
|
@@ -17281,7 +17281,7 @@ function useConnectedWorkspaceList({
|
|
|
17281
17281
|
};
|
|
17282
17282
|
}
|
|
17283
17283
|
var WorkspaceTableView = react$1.lazy(
|
|
17284
|
-
() => import('../WorkspaceTableView-
|
|
17284
|
+
() => import('../WorkspaceTableView-JCTDEMIL.cjs').then((m) => ({ default: m.WorkspaceTableView }))
|
|
17285
17285
|
);
|
|
17286
17286
|
var WORKSPACES_TAB_ID = "workspaces";
|
|
17287
17287
|
var renderMember = (user, size) => /* @__PURE__ */ jsxRuntime.jsx(chunkQMIHLJMH_cjs.ConnectedUserEntity, { user, size, variant: "icon" });
|
|
@@ -17341,7 +17341,7 @@ function ConnectedWorkspaceList({
|
|
|
17341
17341
|
}
|
|
17342
17342
|
);
|
|
17343
17343
|
}
|
|
17344
|
-
if (list.isLoading) return /* @__PURE__ */ jsxRuntime.jsx(
|
|
17344
|
+
if (list.isLoading) return /* @__PURE__ */ jsxRuntime.jsx(chunkMMVDVHKE_cjs.LoadingIndicator, { message: "Loading workspaces..." });
|
|
17345
17345
|
if (list.error) {
|
|
17346
17346
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
17347
17347
|
chunkH7PHOTX2_cjs.HomeLoadError,
|
|
@@ -17414,7 +17414,7 @@ function ConnectedWorkspaceList({
|
|
|
17414
17414
|
workspaceState
|
|
17415
17415
|
}
|
|
17416
17416
|
) })
|
|
17417
|
-
) : /* @__PURE__ */ jsxRuntime.jsx(react$1.Suspense, { fallback: /* @__PURE__ */ jsxRuntime.jsx(
|
|
17417
|
+
) : /* @__PURE__ */ jsxRuntime.jsx(react$1.Suspense, { fallback: /* @__PURE__ */ jsxRuntime.jsx(chunkMMVDVHKE_cjs.LoadingIndicator, { message: "Loading grid..." }), children: /* @__PURE__ */ jsxRuntime.jsx(chunkH7PHOTX2_cjs.HomeCenteredColumn, { children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
17418
17418
|
WorkspaceTableView,
|
|
17419
17419
|
{
|
|
17420
17420
|
list,
|
|
@@ -17459,7 +17459,7 @@ function ConnectedProjectsPanel({
|
|
|
17459
17459
|
const { data: projects } = react.useProjects();
|
|
17460
17460
|
const canCreateProjects = react.useCanCreateProjects();
|
|
17461
17461
|
const { userId } = chunkJR2YSBD5_cjs.useConnectedWorkspace();
|
|
17462
|
-
const { stripeEnabled } =
|
|
17462
|
+
const { stripeEnabled } = chunkO4F77VSO_cjs.useBillingSupport();
|
|
17463
17463
|
const billingPortal = useOpenBillingPortal();
|
|
17464
17464
|
const [newProjectOpen, setNewProjectOpen] = react$1.useState(false);
|
|
17465
17465
|
useAutoRefreshPendingProjects();
|
|
@@ -17486,15 +17486,15 @@ function ConnectedProjectsPanel({
|
|
|
17486
17486
|
[ownedCount, tabs, projects]
|
|
17487
17487
|
);
|
|
17488
17488
|
const paidProject = projects?.find(isPaid);
|
|
17489
|
-
const panel = /* @__PURE__ */ jsxRuntime.jsxs(
|
|
17490
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
17489
|
+
const panel = /* @__PURE__ */ jsxRuntime.jsxs(chunkL6APDO3Y_cjs.PanelFrame, { className, testId: "projects-panel", children: [
|
|
17490
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkL6APDO3Y_cjs.DraggableHeader, { children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
17491
17491
|
chunkSJSGSHIT_cjs.TabHeader,
|
|
17492
17492
|
{
|
|
17493
17493
|
tabs: headerTabs,
|
|
17494
17494
|
activeTabId: activeProjectId ?? PROJECTS_BASE_TAB_ID,
|
|
17495
17495
|
onTabChange: (id) => tabs.onSelect(id === PROJECTS_BASE_TAB_ID ? null : id),
|
|
17496
17496
|
afterTabs: (isCompact) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
17497
|
-
|
|
17497
|
+
chunkL6APDO3Y_cjs.PanelAddButton,
|
|
17498
17498
|
{
|
|
17499
17499
|
label: `New ${ui.entityNoun("PROJECT")}`,
|
|
17500
17500
|
onClick: () => setNewProjectOpen(true),
|
|
@@ -17509,15 +17509,15 @@ function ConnectedProjectsPanel({
|
|
|
17509
17509
|
compactBreakpoint: 360
|
|
17510
17510
|
}
|
|
17511
17511
|
) }),
|
|
17512
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
17512
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkL6APDO3Y_cjs.PanelFrameBody, { children: activeProjectId ? /* @__PURE__ */ jsxRuntime.jsx(chunkL6APDO3Y_cjs.PanelScroll, { children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
17513
17513
|
ProjectDetail,
|
|
17514
17514
|
{
|
|
17515
17515
|
projectExtId: activeProjectId,
|
|
17516
17516
|
storage: /* @__PURE__ */ jsxRuntime.jsx(ConnectedProjectStorage, { projectExtId: activeProjectId })
|
|
17517
17517
|
}
|
|
17518
|
-
) }) : /* @__PURE__ */ jsxRuntime.jsxs(
|
|
17518
|
+
) }) : /* @__PURE__ */ jsxRuntime.jsxs(chunkL6APDO3Y_cjs.PanelScroll, { variant: "padded", children: [
|
|
17519
17519
|
/* @__PURE__ */ jsxRuntime.jsx(ProjectsTable, {}),
|
|
17520
|
-
stripeEnabled && paidProject && /* @__PURE__ */ jsxRuntime.jsx(
|
|
17520
|
+
stripeEnabled && paidProject && /* @__PURE__ */ jsxRuntime.jsx(chunkL6APDO3Y_cjs.PanelActionsRow, { children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
17521
17521
|
ui.Button,
|
|
17522
17522
|
{
|
|
17523
17523
|
onClick: () => billingPortal.open(paidProject.external_id),
|
|
@@ -17604,7 +17604,7 @@ function ConnectedProjectsListPage({
|
|
|
17604
17604
|
};
|
|
17605
17605
|
const { openProject } = chunkTKHCIHE2_cjs.useBlocksEnvironment();
|
|
17606
17606
|
const [search, setSearch] = react$1.useState("");
|
|
17607
|
-
const { projects, isLoading } =
|
|
17607
|
+
const { projects, isLoading } = chunkZCIQBHH5_cjs.useProjectSummaries();
|
|
17608
17608
|
const rows = react$1.useMemo(() => {
|
|
17609
17609
|
const q = search.trim().toLowerCase();
|
|
17610
17610
|
if (!q) return projects;
|
|
@@ -17675,7 +17675,7 @@ function ConnectedProjectsListPage({
|
|
|
17675
17675
|
}
|
|
17676
17676
|
),
|
|
17677
17677
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
17678
|
-
|
|
17678
|
+
chunkMMVDVHKE_cjs.Toolbar,
|
|
17679
17679
|
{
|
|
17680
17680
|
search,
|
|
17681
17681
|
onSearch: setSearch,
|
|
@@ -17737,7 +17737,7 @@ function ProjectDetailsForm({
|
|
|
17737
17737
|
const labels = { ...DEFAULT_PROJECT_DETAILS_LABELS, ...given };
|
|
17738
17738
|
const { notify: notify19 } = chunkTKHCIHE2_cjs.useBlocksEnvironment();
|
|
17739
17739
|
const update = react.useUpdateProjectFields();
|
|
17740
|
-
const workspace =
|
|
17740
|
+
const workspace = chunkZCIQBHH5_cjs.primaryProjectWorkspace(project);
|
|
17741
17741
|
const { data: members = [] } = react.useWorkspaceUsers(workspace?.id);
|
|
17742
17742
|
const people = members.filter((m) => !m.user.external_id.startsWith("agt-"));
|
|
17743
17743
|
const currency = project.budget?.currency ?? "GBP";
|
|
@@ -17862,7 +17862,7 @@ var COMPACT_BELOW = 132;
|
|
|
17862
17862
|
var NO_DOCUMENTS = [];
|
|
17863
17863
|
function useFilesWorkspace() {
|
|
17864
17864
|
const { workspaceId, userId, live } = chunkJR2YSBD5_cjs.useConnectedWorkspace();
|
|
17865
|
-
const { members, role } =
|
|
17865
|
+
const { members, role } = chunkK6AUKKUN_cjs.useConnectedWorkspaceRole();
|
|
17866
17866
|
const { data: workspaces } = react.useWorkspaces({ enabled: live });
|
|
17867
17867
|
const workspaceName = workspaces?.find((w) => w.external_id === workspaceId)?.name;
|
|
17868
17868
|
return {
|
|
@@ -18799,11 +18799,11 @@ function ConnectedProjectPage({
|
|
|
18799
18799
|
figures: { ...DEFAULT_PROJECT_PAGE_LABELS.figures, ...given?.figures },
|
|
18800
18800
|
threads: { ...DEFAULT_PROJECT_PAGE_LABELS.threads, ...given?.threads }
|
|
18801
18801
|
};
|
|
18802
|
-
const { project, usage, isLoading } =
|
|
18802
|
+
const { project, usage, isLoading } = chunkZCIQBHH5_cjs.useProjectSummary(projectId);
|
|
18803
18803
|
const { workspaceId } = chunkJR2YSBD5_cjs.useConnectedWorkspace();
|
|
18804
18804
|
const { notify: notify19 } = chunkTKHCIHE2_cjs.useBlocksEnvironment();
|
|
18805
|
-
const selectWorkspace =
|
|
18806
|
-
const workspace = project ?
|
|
18805
|
+
const selectWorkspace = chunkSUYPXUE6_cjs.useSelectWorkspace();
|
|
18806
|
+
const workspace = project ? chunkZCIQBHH5_cjs.primaryProjectWorkspace(project) : void 0;
|
|
18807
18807
|
const open = !!workspace && workspace.id === workspaceId;
|
|
18808
18808
|
react$1.useEffect(() => {
|
|
18809
18809
|
if (!workspace || workspace.id === workspaceId) return;
|
|
@@ -21187,7 +21187,7 @@ function ConnectedMessengerThread({
|
|
|
21187
21187
|
const activeIsSelf = !!activePeer && activePeer.external_id === meId;
|
|
21188
21188
|
const groupTitle = active?.title ?? null;
|
|
21189
21189
|
const presence = activePeer ? host.presenceOf?.(activePeer.external_id) : void 0;
|
|
21190
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
21190
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(chunkL6APDO3Y_cjs.PanelFrame, { testId, className, children: [
|
|
21191
21191
|
children,
|
|
21192
21192
|
groupChat ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
21193
21193
|
chunkMOIZ2R5X_cjs.DmThreadHeader,
|
|
@@ -21237,7 +21237,7 @@ function ConnectedMessengerThread({
|
|
|
21237
21237
|
groupChat.external_id
|
|
21238
21238
|
) : null,
|
|
21239
21239
|
picker.element,
|
|
21240
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
21240
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkL6APDO3Y_cjs.PanelFrameBody, { className: "flex flex-col overflow-visible", children: active ? /* @__PURE__ */ jsxRuntime.jsx(ConnectedChatThread, { chat: active.chat, peer: activePeer, host }, activeId) : /* @__PURE__ */ jsxRuntime.jsx("p", { className: "p-4 text-sm text-muted-foreground", children: isLoading ? "Loading conversation\u2026" : "This conversation is no longer available." }) })
|
|
21241
21241
|
] });
|
|
21242
21242
|
}
|
|
21243
21243
|
function ConnectedMessenger({
|
|
@@ -21259,7 +21259,7 @@ function ConnectedMessenger({
|
|
|
21259
21259
|
testId: "dm-messenger"
|
|
21260
21260
|
}
|
|
21261
21261
|
);
|
|
21262
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
21262
|
+
return /* @__PURE__ */ jsxRuntime.jsx(chunkL6APDO3Y_cjs.PanelFrame, { testId: "dm-messenger", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
21263
21263
|
ConnectedMessengerList,
|
|
21264
21264
|
{
|
|
21265
21265
|
activeId: null,
|
|
@@ -21475,7 +21475,7 @@ function ConnectedContactsPanel({
|
|
|
21475
21475
|
];
|
|
21476
21476
|
}, [contactCount, hasActiveFilters, tabActions, dmHeaderTabs]);
|
|
21477
21477
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: ui.cn("flex flex-col h-full", className), children: [
|
|
21478
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
21478
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkL6APDO3Y_cjs.DraggableHeader, { children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
21479
21479
|
chunkSJSGSHIT_cjs.TabHeader,
|
|
21480
21480
|
{
|
|
21481
21481
|
tabs,
|
|
@@ -21510,10 +21510,10 @@ function ConnectedContactsPanel({
|
|
|
21510
21510
|
function ConnectedConfigForm({ availableModels, ...rest }) {
|
|
21511
21511
|
const hasModels = !!availableModels && availableModels.length > 0;
|
|
21512
21512
|
const renderModelSelect = react$1.useCallback(
|
|
21513
|
-
({ value, onChange }) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
21513
|
+
({ value, onChange }) => /* @__PURE__ */ jsxRuntime.jsx(chunkOPH4UZQN_cjs.ConnectedModelSelector, { value, onValueChange: onChange, className: "w-full" }),
|
|
21514
21514
|
[]
|
|
21515
21515
|
);
|
|
21516
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
21516
|
+
return /* @__PURE__ */ jsxRuntime.jsx(chunkPVPRVI54_cjs.ConfigForm, { ...rest, renderModelSelect: hasModels ? renderModelSelect : void 0 });
|
|
21517
21517
|
}
|
|
21518
21518
|
function ConnectedAgentConfigForm({ agentExtId, agentName, onSaved }) {
|
|
21519
21519
|
const { notify: notify19 } = chunkTKHCIHE2_cjs.useBlocksEnvironment();
|
|
@@ -21630,7 +21630,7 @@ function ConnectedAuthorizeAgent({ onClose, editAgent }) {
|
|
|
21630
21630
|
}, [name, selectedWorkspaces, role, createAgent, addWorkspaceUsers, arbi, notify19]);
|
|
21631
21631
|
if (editAgent) {
|
|
21632
21632
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
21633
|
-
|
|
21633
|
+
chunkPVPRVI54_cjs.AgentEditView,
|
|
21634
21634
|
{
|
|
21635
21635
|
agentName: editAgent.name,
|
|
21636
21636
|
config: /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -21646,7 +21646,7 @@ function ConnectedAuthorizeAgent({ onClose, editAgent }) {
|
|
|
21646
21646
|
}
|
|
21647
21647
|
if (view === "main") {
|
|
21648
21648
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
21649
|
-
|
|
21649
|
+
chunkPVPRVI54_cjs.AgentMainView,
|
|
21650
21650
|
{
|
|
21651
21651
|
onConnectExternal: () => setView("connect"),
|
|
21652
21652
|
config: mainAgent ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -21662,11 +21662,11 @@ function ConnectedAuthorizeAgent({ onClose, editAgent }) {
|
|
|
21662
21662
|
}
|
|
21663
21663
|
if (result) {
|
|
21664
21664
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
21665
|
-
|
|
21665
|
+
chunkPVPRVI54_cjs.AgentCreatedView,
|
|
21666
21666
|
{
|
|
21667
21667
|
email: result.email,
|
|
21668
21668
|
signingKey: result.signingKey,
|
|
21669
|
-
instructions: /* @__PURE__ */ jsxRuntime.jsx(
|
|
21669
|
+
instructions: /* @__PURE__ */ jsxRuntime.jsx(chunkPVPRVI54_cjs.AgentConnectInstructions, { email: result.email, signingKey: result.signingKey }),
|
|
21670
21670
|
config: /* @__PURE__ */ jsxRuntime.jsx(ConnectedAgentConfigForm, { agentExtId: result.extId, agentName: result.name }),
|
|
21671
21671
|
isConfigOpen: configOpen,
|
|
21672
21672
|
onToggleConfig: () => setConfigOpen((v) => !v),
|
|
@@ -21675,7 +21675,7 @@ function ConnectedAuthorizeAgent({ onClose, editAgent }) {
|
|
|
21675
21675
|
);
|
|
21676
21676
|
}
|
|
21677
21677
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
21678
|
-
|
|
21678
|
+
chunkPVPRVI54_cjs.AgentCreateView,
|
|
21679
21679
|
{
|
|
21680
21680
|
name,
|
|
21681
21681
|
onNameChange: setName,
|
|
@@ -21741,7 +21741,7 @@ function ConnectedInviteContactsDialog({
|
|
|
21741
21741
|
ConnectedAddContacts,
|
|
21742
21742
|
{
|
|
21743
21743
|
onClose: handleClose,
|
|
21744
|
-
rewardAmount:
|
|
21744
|
+
rewardAmount: chunkO4F77VSO_cjs.formatMoney(REFERRAL_OFFER.amount, REFERRAL_OFFER.currency)
|
|
21745
21745
|
}
|
|
21746
21746
|
),
|
|
21747
21747
|
isDeveloper && /* @__PURE__ */ jsxRuntime.jsxs(
|
|
@@ -21870,7 +21870,7 @@ function ConnectedNewThreadDialog({
|
|
|
21870
21870
|
});
|
|
21871
21871
|
const parentOptions = react$1.useMemo(() => {
|
|
21872
21872
|
const leaf = { external_id: "__new__" };
|
|
21873
|
-
return
|
|
21873
|
+
return chunkPVPRVI54_cjs.moveTargets([...tasks, leaf], leaf).map((t) => ({
|
|
21874
21874
|
id: t.external_id,
|
|
21875
21875
|
name: t.title?.trim() || "Untitled task"
|
|
21876
21876
|
}));
|
|
@@ -21917,7 +21917,7 @@ function ConnectedNewThreadDialog({
|
|
|
21917
21917
|
}
|
|
21918
21918
|
};
|
|
21919
21919
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
21920
|
-
|
|
21920
|
+
chunkPVPRVI54_cjs.NewThreadDialog,
|
|
21921
21921
|
{
|
|
21922
21922
|
open,
|
|
21923
21923
|
onOpenChange,
|
|
@@ -22038,12 +22038,12 @@ var TILE_TEST_IDS = {
|
|
|
22038
22038
|
annotate: "workspace-dashboard-quick-action-annotate"
|
|
22039
22039
|
};
|
|
22040
22040
|
function DashboardStart({ addMenu, onCreateNew }) {
|
|
22041
|
-
const { dashboard: workflows } =
|
|
22041
|
+
const { dashboard: workflows } = chunkJSQQV23D_cjs.useWorkflowDefinitions();
|
|
22042
22042
|
const { isMember, role } = react.useCurrentWorkspace();
|
|
22043
22043
|
const canWrite2 = isMember && role !== "guest";
|
|
22044
22044
|
const [activeId, setActiveId] = react$1.useState(null);
|
|
22045
22045
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
22046
|
-
|
|
22046
|
+
chunkQOXK5O6M_cjs.ConnectedWorkflowStart,
|
|
22047
22047
|
{
|
|
22048
22048
|
workflows,
|
|
22049
22049
|
caption: "Start",
|
|
@@ -22095,7 +22095,7 @@ function recentConversations(conversations) {
|
|
|
22095
22095
|
return [...conversations].sort((a, b) => time(b.updated_at) - time(a.updated_at)).slice(0, RECENT_ROWS).map((c) => ({
|
|
22096
22096
|
id: c.external_id,
|
|
22097
22097
|
title: c.title?.trim() || "Untitled thread",
|
|
22098
|
-
subtitle: c.status ? [
|
|
22098
|
+
subtitle: c.status ? [chunkPVPRVI54_cjs.STATUS_LABELS[chunkPVPRVI54_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"}`,
|
|
22099
22099
|
time: timeAndDate(c.updated_at)
|
|
22100
22100
|
}));
|
|
22101
22101
|
}
|
|
@@ -22481,7 +22481,7 @@ function ConnectedAskField({
|
|
|
22481
22481
|
setPageFilter("");
|
|
22482
22482
|
}, [setPageFilter]);
|
|
22483
22483
|
const inputRef = react$1.useRef(null);
|
|
22484
|
-
const slash =
|
|
22484
|
+
const slash = chunkKHAO7ZTO_cjs.useSlashField({ text, setText, inputRef, landing: "chat" });
|
|
22485
22485
|
if (!workspaceId) return null;
|
|
22486
22486
|
const submitTo = (handler) => (question) => {
|
|
22487
22487
|
handler(question);
|
|
@@ -22494,7 +22494,7 @@ function ConnectedAskField({
|
|
|
22494
22494
|
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
22495
22495
|
slash.launcher,
|
|
22496
22496
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
22497
|
-
|
|
22497
|
+
chunk3LNUQYAF_cjs.AskField,
|
|
22498
22498
|
{
|
|
22499
22499
|
value: text,
|
|
22500
22500
|
onValueChange: setText,
|
|
@@ -22552,7 +22552,7 @@ function createBuiltinActions(environment, session) {
|
|
|
22552
22552
|
const startWorkflowOnDocuments = (workflowId) => {
|
|
22553
22553
|
const { viewingDocument, selectedDocumentIds } = session.getState();
|
|
22554
22554
|
const documents = viewingDocument ? [viewingDocument.id] : [...selectedDocumentIds];
|
|
22555
|
-
|
|
22555
|
+
chunkPVPRVI54_cjs.openWorkflowLaunch({ workflowId, context: { documents } });
|
|
22556
22556
|
};
|
|
22557
22557
|
const setFilesView = (mode) => () => chunkYGXOKB5Z_cjs.useFilesPrefs.getState().setViewMode(mode);
|
|
22558
22558
|
const actions = [
|
|
@@ -22920,7 +22920,7 @@ function ConnectedCommandPalette({
|
|
|
22920
22920
|
isFeatureOn: react.useFeatureCheck()
|
|
22921
22921
|
};
|
|
22922
22922
|
const { ask, search } = useWorkspaceAsk();
|
|
22923
|
-
const skillLauncher =
|
|
22923
|
+
const skillLauncher = chunkQOXK5O6M_cjs.useSlashSkillWorkflows({ landing: "chat" });
|
|
22924
22924
|
react$1.useEffect(() => {
|
|
22925
22925
|
const onKey = (event) => {
|
|
22926
22926
|
if (!isPaletteShortcut(event)) return;
|
|
@@ -23111,7 +23111,7 @@ function ConnectedRemoteControlConsent() {
|
|
|
23111
23111
|
}
|
|
23112
23112
|
function ConsentPrompt() {
|
|
23113
23113
|
const pending = react.useRemoteControl((s) => s.pending);
|
|
23114
|
-
const remote =
|
|
23114
|
+
const remote = chunkOPH4UZQN_cjs.useRemoteControlActions();
|
|
23115
23115
|
const onceRef = react$1.useRef(null);
|
|
23116
23116
|
chunkORELHENJ_cjs.useMountedSurface("consent");
|
|
23117
23117
|
const handleOpenChange = (next) => {
|
|
@@ -23202,11 +23202,11 @@ function ConnectedRemoteControlIndicator() {
|
|
|
23202
23202
|
function Indicator() {
|
|
23203
23203
|
const enabled = react.useRemoteControl((s) => s.enabled);
|
|
23204
23204
|
const controllingAgent = react.useRemoteControl((s) => s.controllingAgent);
|
|
23205
|
-
const remote =
|
|
23205
|
+
const remote = chunkOPH4UZQN_cjs.useRemoteControlActions();
|
|
23206
23206
|
if (!enabled && !controllingAgent) return null;
|
|
23207
23207
|
const isActive = controllingAgent !== null;
|
|
23208
23208
|
const label = isActive ? `${controllingAgent.name} is controlling your screen` : "Remote control on";
|
|
23209
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
23209
|
+
return /* @__PURE__ */ jsxRuntime.jsx(chunk3LNUQYAF_cjs.RemoteControlPill, { isActive, label, onDisable: () => remote.disable() });
|
|
23210
23210
|
}
|
|
23211
23211
|
var VENDOR_PRODUCTS = {
|
|
23212
23212
|
microsoft: [{ key: "outlook" }, { key: "onedrive", product: "onedrive" }],
|
|
@@ -23760,7 +23760,7 @@ function useDocumentFilters({
|
|
|
23760
23760
|
[documentFilters]
|
|
23761
23761
|
);
|
|
23762
23762
|
const baseFilteredDocuments = react$1.useMemo(
|
|
23763
|
-
() =>
|
|
23763
|
+
() => chunkL6APDO3Y_cjs.applyInvertedIndexFilter(documents, documentFilters, invertedIndex, getDocId),
|
|
23764
23764
|
[documents, documentFilters, invertedIndex]
|
|
23765
23765
|
);
|
|
23766
23766
|
const filteredDocuments = react$1.useMemo(() => {
|
|
@@ -27050,7 +27050,7 @@ function ConnectedSecureMailClaimPage({
|
|
|
27050
27050
|
}) {
|
|
27051
27051
|
const authenticated = react.useArbiSession().status === "signed-in";
|
|
27052
27052
|
const { openMail } = chunkTKHCIHE2_cjs.useBlocksEnvironment();
|
|
27053
|
-
const { loading } =
|
|
27053
|
+
const { loading } = chunkOPH4UZQN_cjs.useAuthPages();
|
|
27054
27054
|
const claim = react.useClaimSecureMail();
|
|
27055
27055
|
const [, setFirstLoginWorkspaces] = react.useTransientView(FIRST_LOGIN_WORKSPACES_VIEW, null);
|
|
27056
27056
|
const [failure, setFailure] = react$1.useState(null);
|
|
@@ -27090,7 +27090,7 @@ function ConnectedSecureMailClaimPage({
|
|
|
27090
27090
|
}
|
|
27091
27091
|
})();
|
|
27092
27092
|
}, [authenticated, claimId, key]);
|
|
27093
|
-
if (!error) return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: loading ?? /* @__PURE__ */ jsxRuntime.jsx(
|
|
27093
|
+
if (!error) return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: loading ?? /* @__PURE__ */ jsxRuntime.jsx(chunkMMVDVHKE_cjs.LoadingIndicator, { variant: "splash" }) });
|
|
27094
27094
|
return /* @__PURE__ */ jsxRuntime.jsx("main", { className: "flex min-h-screen items-center justify-center bg-background p-6", children: /* @__PURE__ */ jsxRuntime.jsxs("section", { className: "w-full max-w-md rounded-lg border border-border bg-card p-6", children: [
|
|
27095
27095
|
/* @__PURE__ */ jsxRuntime.jsx("p", { role: "alert", className: "mb-4 text-sm text-destructive", children: error }),
|
|
27096
27096
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -33213,7 +33213,7 @@ function useBatchCompleteToasts() {
|
|
|
33213
33213
|
}
|
|
33214
33214
|
}, AI_FIELDS_NOTICE_WINDOW_MS);
|
|
33215
33215
|
} else if (message.batch_type === "entity_extract") {
|
|
33216
|
-
say(`${
|
|
33216
|
+
say(`${chunkMMVDVHKE_cjs.entitiesPhrase()} extracted from ${chunkMMVDVHKE_cjs.documentCount(docIds.length)}`, "success", {
|
|
33217
33217
|
...openTags && { action: { label: "View", onClick: openTags } }
|
|
33218
33218
|
});
|
|
33219
33219
|
} else if (message.batch_type === "upload") {
|
|
@@ -34036,13 +34036,13 @@ var TABLET_TABLE_BELOW = 860;
|
|
|
34036
34036
|
var TABLET_VIEWPORT_BELOW = 1100;
|
|
34037
34037
|
var NO_CONVERSATION_DOCUMENTS2 = [];
|
|
34038
34038
|
var DocumentReviewCard = react$1.lazy(
|
|
34039
|
-
() => import('../DocumentReviewCard-
|
|
34039
|
+
() => import('../DocumentReviewCard-L472OMQS.cjs').then((module) => ({ default: module.DocumentReviewCard }))
|
|
34040
34040
|
);
|
|
34041
34041
|
var FilesViewerDialog = react$1.lazy(
|
|
34042
|
-
() => import('../FilesViewerDialog-
|
|
34042
|
+
() => import('../FilesViewerDialog-JK25HKKF.cjs').then((module) => ({ default: module.FilesViewerDialog }))
|
|
34043
34043
|
);
|
|
34044
34044
|
function defaultReviewCard(props) {
|
|
34045
|
-
return /* @__PURE__ */ jsxRuntime.jsx(react$1.Suspense, { fallback: /* @__PURE__ */ jsxRuntime.jsx(
|
|
34045
|
+
return /* @__PURE__ */ jsxRuntime.jsx(react$1.Suspense, { fallback: /* @__PURE__ */ jsxRuntime.jsx(chunkMMVDVHKE_cjs.LoadingIndicator, { message: "Loading document viewer..." }), children: /* @__PURE__ */ jsxRuntime.jsx(DocumentReviewCard, { ...props }, `navigator-${props.currentDocument.external_id}`) });
|
|
34046
34046
|
}
|
|
34047
34047
|
function ConnectedFilesPage({
|
|
34048
34048
|
isModal = false,
|
|
@@ -34085,7 +34085,7 @@ function ConnectedFilesPage({
|
|
|
34085
34085
|
const deleteDocuments = react.useDeleteDocuments();
|
|
34086
34086
|
const isDocumentsPending = isLoading && documents.length === 0;
|
|
34087
34087
|
const { workspaceId, userId, live } = chunkJR2YSBD5_cjs.useConnectedWorkspace();
|
|
34088
|
-
const { role, members } =
|
|
34088
|
+
const { role, members } = chunkK6AUKKUN_cjs.useConnectedWorkspaceRole();
|
|
34089
34089
|
const { data: workspaces } = react.useWorkspaces({ enabled: live });
|
|
34090
34090
|
const workspace = workspaces?.find((w) => w.external_id === workspaceId);
|
|
34091
34091
|
const workspaceName = workspace?.name;
|
|
@@ -34117,7 +34117,7 @@ function ConnectedFilesPage({
|
|
|
34117
34117
|
[setPrefsViewMode, prefsKey]
|
|
34118
34118
|
);
|
|
34119
34119
|
const ownsViewer = !hostToggleDocument;
|
|
34120
|
-
const viewerTabs = viewer?.tabs ??
|
|
34120
|
+
const viewerTabs = viewer?.tabs ?? chunkKHAO7ZTO_cjs.DEFAULT_DOCUMENT_VIEWER_TABS;
|
|
34121
34121
|
const [dialog, setDialog] = react$1.useState(null);
|
|
34122
34122
|
const isDocumentViewerEnabled = ownsViewer ? dialog !== null : hostViewerDocumentId !== null;
|
|
34123
34123
|
const shownPlaceRef = react$1.useRef(null);
|
|
@@ -34620,7 +34620,7 @@ function ConnectedFilesPage({
|
|
|
34620
34620
|
viewMode === "grid" ? (
|
|
34621
34621
|
// ‹ n / N › over the table's displayed rows; a step opens the document.
|
|
34622
34622
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
34623
|
-
|
|
34623
|
+
chunkMMVDVHKE_cjs.GridRowNavigator,
|
|
34624
34624
|
{
|
|
34625
34625
|
gridApi,
|
|
34626
34626
|
selectedId: viewingDocumentId ?? selectedDocumentIds[0] ?? null,
|
|
@@ -34923,7 +34923,7 @@ function ProcessingSection({
|
|
|
34923
34923
|
tasks,
|
|
34924
34924
|
onDelete
|
|
34925
34925
|
}) {
|
|
34926
|
-
return /* @__PURE__ */ jsxRuntime.jsx(chunkNNUK5ZM7_cjs.TaskSection, { title, count: count2, status, tooltip: SECTION_TOOLTIPS[status], children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
34926
|
+
return /* @__PURE__ */ jsxRuntime.jsx(chunkNNUK5ZM7_cjs.TaskSection, { title, count: count2, status, tooltip: SECTION_TOOLTIPS[status], children: /* @__PURE__ */ jsxRuntime.jsx(chunkPVPRVI54_cjs.UploadTaskList, { tasks, title: "", onDelete, renderFileIcon: renderFileIcon2 }) });
|
|
34927
34927
|
}
|
|
34928
34928
|
function ConnectedDocumentProcessingPanel({
|
|
34929
34929
|
workspaceId,
|
|
@@ -35214,7 +35214,7 @@ function ConnectedProcessingStatus({ onClick }) {
|
|
|
35214
35214
|
const tone = pulse === "error" ? "error" : pulse === "success" ? "success" : "progress";
|
|
35215
35215
|
const label = pulse === "error" ? `${failed} failed` : pulse === "success" ? "Processed" : `${active} processing`;
|
|
35216
35216
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
35217
|
-
|
|
35217
|
+
chunk3LNUQYAF_cjs.StatusBadge,
|
|
35218
35218
|
{
|
|
35219
35219
|
tone,
|
|
35220
35220
|
label,
|
|
@@ -35813,7 +35813,7 @@ function DeveloperFooter({
|
|
|
35813
35813
|
}, [configVersions, configToLoad, parentMessage?.config_ext_id]);
|
|
35814
35814
|
const hasLoadedConfig = !!loadedConfigId && loadedConfigId !== "default";
|
|
35815
35815
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
35816
|
-
|
|
35816
|
+
chunkL6APDO3Y_cjs.ConfigSwitcherBar,
|
|
35817
35817
|
{
|
|
35818
35818
|
options,
|
|
35819
35819
|
value: loadedConfigId || "default",
|
|
@@ -36082,8 +36082,8 @@ function ConnectedDeveloperConfig({ modeSwitcher } = {}) {
|
|
|
36082
36082
|
handleDeleteConfig,
|
|
36083
36083
|
handleLoadConfig
|
|
36084
36084
|
} = useDeveloperConfig();
|
|
36085
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
36086
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
36085
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(chunkL6APDO3Y_cjs.PanelFrame, { testId: "developer-config", children: [
|
|
36086
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkL6APDO3Y_cjs.DraggableHeader, { children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
36087
36087
|
chunkSJSGSHIT_cjs.TabHeader,
|
|
36088
36088
|
{
|
|
36089
36089
|
tabs: [{ id: "config", label: "Developer Config", icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Code2, { className: "size-4" }) }],
|
|
@@ -36093,7 +36093,7 @@ function ConnectedDeveloperConfig({ modeSwitcher } = {}) {
|
|
|
36093
36093
|
rightContent: modeSwitcher
|
|
36094
36094
|
}
|
|
36095
36095
|
) }),
|
|
36096
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
36096
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkL6APDO3Y_cjs.PanelFrameBody, { className: "overflow-auto p-4", children: configSchema ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
36097
36097
|
ConnectedConfigForm,
|
|
36098
36098
|
{
|
|
36099
36099
|
schema: configSchema,
|
|
@@ -36101,7 +36101,7 @@ function ConnectedDeveloperConfig({ modeSwitcher } = {}) {
|
|
|
36101
36101
|
onChange: handleConfigChange,
|
|
36102
36102
|
availableModels: availableModels?.models
|
|
36103
36103
|
}
|
|
36104
|
-
) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
36104
|
+
) : /* @__PURE__ */ jsxRuntime.jsx(chunkL6APDO3Y_cjs.PanelNote, { children: "Loading configuration schema..." }) }),
|
|
36105
36105
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
36106
36106
|
DeveloperFooter,
|
|
36107
36107
|
{
|
|
@@ -36632,7 +36632,7 @@ function ConnectedAccountCluster({
|
|
|
36632
36632
|
layout
|
|
36633
36633
|
);
|
|
36634
36634
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
36635
|
-
|
|
36635
|
+
chunk3LNUQYAF_cjs.ActionCluster,
|
|
36636
36636
|
{
|
|
36637
36637
|
layout,
|
|
36638
36638
|
status: layout === "bar" ? status : null,
|
|
@@ -36647,7 +36647,7 @@ function ConnectedAccountCluster({
|
|
|
36647
36647
|
}
|
|
36648
36648
|
);
|
|
36649
36649
|
}
|
|
36650
|
-
var gbp3 = (pence) =>
|
|
36650
|
+
var gbp3 = (pence) => chunkO4F77VSO_cjs.formatMoney(pence, "gbp");
|
|
36651
36651
|
function addonArrivalMessage(addons, added) {
|
|
36652
36652
|
const parts = [];
|
|
36653
36653
|
if (added.ai > 0) parts.push(`${react.formatGbp(added.ai * addons.block_ai_gbp)} of AI usage`);
|
|
@@ -37054,10 +37054,10 @@ var FreshChatModel = () => (useFreshChatModel(), null);
|
|
|
37054
37054
|
var WorkspaceOpenMetrics = ({ measure }) => (useWorkspaceOpenMetrics(measure), null);
|
|
37055
37055
|
var Prefetch = ({ loaders }) => (usePrefetchChunks(loaders), null);
|
|
37056
37056
|
function GuidedRuns() {
|
|
37057
|
-
|
|
37057
|
+
chunkOPH4UZQN_cjs.useRemoteControlSessionReset();
|
|
37058
37058
|
const { cursorMark } = chunkORELHENJ_cjs.useGuidedRuns();
|
|
37059
37059
|
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
37060
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
37060
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkMMVDVHKE_cjs.GuidedCursor, { markSrc: cursorMark }),
|
|
37061
37061
|
/* @__PURE__ */ jsxRuntime.jsx(ConnectedRemoteControlConsent, {})
|
|
37062
37062
|
] });
|
|
37063
37063
|
}
|
|
@@ -37068,7 +37068,7 @@ function ConnectedAppRuntime({
|
|
|
37068
37068
|
prefetch
|
|
37069
37069
|
}) {
|
|
37070
37070
|
const on = (effect) => effects[effect] !== false;
|
|
37071
|
-
const { stripeEnabled } =
|
|
37071
|
+
const { stripeEnabled } = chunkO4F77VSO_cjs.useBillingSupport();
|
|
37072
37072
|
const welcomeDialog = on("welcomeDialog") && stripeEnabled;
|
|
37073
37073
|
const resolveFirstLogin = () => {
|
|
37074
37074
|
if (welcomeDialog) skipWelcomeDialogThisSession();
|
|
@@ -37091,7 +37091,7 @@ function ConnectedAppRuntime({
|
|
|
37091
37091
|
on("pageTransition") && /* @__PURE__ */ jsxRuntime.jsx(PageTransition, {}),
|
|
37092
37092
|
on("freshChatModel") && /* @__PURE__ */ jsxRuntime.jsx(FreshChatModel, {}),
|
|
37093
37093
|
on("workspaceOpenMetrics") && measure && /* @__PURE__ */ jsxRuntime.jsx(WorkspaceOpenMetrics, { measure }),
|
|
37094
|
-
on("prefetch") && /* @__PURE__ */ jsxRuntime.jsx(Prefetch, { loaders: [...prefetch ?? [], ...
|
|
37094
|
+
on("prefetch") && /* @__PURE__ */ jsxRuntime.jsx(Prefetch, { loaders: [...prefetch ?? [], ...chunkMMVDVHKE_cjs.KIT_CHUNK_LOADERS] }),
|
|
37095
37095
|
on("guidedRuns") && /* @__PURE__ */ jsxRuntime.jsx(GuidedRuns, {})
|
|
37096
37096
|
] });
|
|
37097
37097
|
}
|
|
@@ -38111,9 +38111,9 @@ function resolveLaunchInputs(workflow, request) {
|
|
|
38111
38111
|
return { ...fromContext, ...fromScope, ...request.inputs };
|
|
38112
38112
|
}
|
|
38113
38113
|
function useWorkflowLaunch() {
|
|
38114
|
-
const { skills } =
|
|
38114
|
+
const { skills } = chunkJSQQV23D_cjs.useWorkflowDefinitions();
|
|
38115
38115
|
const launch = react$1.useCallback(
|
|
38116
|
-
(workflowId, options = {}) =>
|
|
38116
|
+
(workflowId, options = {}) => chunkPVPRVI54_cjs.openWorkflowLaunch({ workflowId, ...options }),
|
|
38117
38117
|
[]
|
|
38118
38118
|
);
|
|
38119
38119
|
const itemsFor = react$1.useCallback(
|
|
@@ -38142,10 +38142,10 @@ function useWorkflowLaunch() {
|
|
|
38142
38142
|
return { launch, itemsFor, scopeItemsFor };
|
|
38143
38143
|
}
|
|
38144
38144
|
function Inner() {
|
|
38145
|
-
const request =
|
|
38146
|
-
const close =
|
|
38147
|
-
const { skills } =
|
|
38148
|
-
const run =
|
|
38145
|
+
const request = chunkPVPRVI54_cjs.useWorkflowLaunchRequest();
|
|
38146
|
+
const close = chunkPVPRVI54_cjs.closeWorkflowLaunch;
|
|
38147
|
+
const { skills } = chunkJSQQV23D_cjs.useWorkflowDefinitions();
|
|
38148
|
+
const run = chunkQOXK5O6M_cjs.useLaunchWorkflow({ landing: request?.landing });
|
|
38149
38149
|
const workflow = skills.find((w) => w.id === request?.workflowId);
|
|
38150
38150
|
const inputs = react$1.useMemo(
|
|
38151
38151
|
() => workflow && request ? resolveLaunchInputs(workflow, request) : void 0,
|
|
@@ -38169,7 +38169,7 @@ function Inner() {
|
|
|
38169
38169
|
}, [request, workflow, autoStart]);
|
|
38170
38170
|
if (!request || !workflow || autoStart) return null;
|
|
38171
38171
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
38172
|
-
|
|
38172
|
+
chunkQOXK5O6M_cjs.ConnectedWorkflowStart,
|
|
38173
38173
|
{
|
|
38174
38174
|
workflows: skills,
|
|
38175
38175
|
showTiles: false,
|
|
@@ -38181,7 +38181,7 @@ function Inner() {
|
|
|
38181
38181
|
);
|
|
38182
38182
|
}
|
|
38183
38183
|
function WorkflowLaunchHost() {
|
|
38184
|
-
return
|
|
38184
|
+
return chunkPVPRVI54_cjs.useWorkflowLaunchRequest() ? /* @__PURE__ */ jsxRuntime.jsx(Inner, {}) : null;
|
|
38185
38185
|
}
|
|
38186
38186
|
function isNeedsConfirmationDetail(detail) {
|
|
38187
38187
|
return typeof detail === "object" && detail !== null && detail.needs_confirmation === "resource_private";
|
|
@@ -38468,9 +38468,9 @@ function ConnectedConversationSettings() {
|
|
|
38468
38468
|
});
|
|
38469
38469
|
if (confirmed) settings.share();
|
|
38470
38470
|
};
|
|
38471
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
38471
|
+
return /* @__PURE__ */ jsxRuntime.jsx(chunkL6APDO3Y_cjs.PanelFrame, { testId: "conversation-settings", className: "bg-transparent", children: /* @__PURE__ */ jsxRuntime.jsx(chunkL6APDO3Y_cjs.PanelFrameBody, { className: "overflow-auto p-4", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-6", children: [
|
|
38472
38472
|
!settings.isNewConversation && /* @__PURE__ */ jsxRuntime.jsx(
|
|
38473
|
-
|
|
38473
|
+
chunkL6APDO3Y_cjs.ConversationTitleSection,
|
|
38474
38474
|
{
|
|
38475
38475
|
title: settings.title,
|
|
38476
38476
|
onTitleChange: settings.setTitle,
|
|
@@ -38488,9 +38488,9 @@ function ConnectedConversationSettings() {
|
|
|
38488
38488
|
}
|
|
38489
38489
|
),
|
|
38490
38490
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
38491
|
-
|
|
38491
|
+
chunkL6APDO3Y_cjs.ModelSelectionSection,
|
|
38492
38492
|
{
|
|
38493
|
-
selector: /* @__PURE__ */ jsxRuntime.jsx(
|
|
38493
|
+
selector: /* @__PURE__ */ jsxRuntime.jsx(chunkOPH4UZQN_cjs.ConnectedModelSelector, {}),
|
|
38494
38494
|
onUseDefaults: settings.resetToDefaults
|
|
38495
38495
|
}
|
|
38496
38496
|
)
|
|
@@ -38549,7 +38549,7 @@ var BUILTIN_GLOBAL_DIALOGS = {
|
|
|
38549
38549
|
testId: "workspace-transfer-modal"
|
|
38550
38550
|
}
|
|
38551
38551
|
),
|
|
38552
|
-
logout: ({ props, onClose }) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
38552
|
+
logout: ({ props, onClose }) => /* @__PURE__ */ jsxRuntime.jsx(chunkOPH4UZQN_cjs.ConnectedLogoutDialog, { open: props !== null, onClose }),
|
|
38553
38553
|
conversationSettings: ({ props, onClose }) => /* @__PURE__ */ jsxRuntime.jsx(ConnectedConversationSettingsDialog, { open: props !== null, onClose }),
|
|
38554
38554
|
unarchiveWorkspace: ({ props, onClose }) => /* @__PURE__ */ jsxRuntime.jsx(ConnectedUnarchiveWorkspaceDialog, { workspaceId: props?.workspaceId ?? null, onClose }),
|
|
38555
38555
|
productionSet: ConnectedProductionSetDialog,
|
|
@@ -38626,7 +38626,7 @@ function WorkflowRunStatusCell({ conversation }) {
|
|
|
38626
38626
|
return person ? ui.getUserDisplayName(person) : void 0;
|
|
38627
38627
|
};
|
|
38628
38628
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
38629
|
-
|
|
38629
|
+
chunkPVPRVI54_cjs.WorkflowRunStatus,
|
|
38630
38630
|
{
|
|
38631
38631
|
steps,
|
|
38632
38632
|
states,
|
|
@@ -38660,7 +38660,7 @@ function ConversationStatusCell({ conversation }) {
|
|
|
38660
38660
|
if (conversation.plan?.steps?.length && !isLiveGenerating)
|
|
38661
38661
|
return /* @__PURE__ */ jsxRuntime.jsx(WorkflowRunStatusCell, { conversation });
|
|
38662
38662
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
38663
|
-
|
|
38663
|
+
chunkPVPRVI54_cjs.ThreadStatusLine,
|
|
38664
38664
|
{
|
|
38665
38665
|
state: threadStateOf(conversation, isLiveGenerating),
|
|
38666
38666
|
className: "h-full",
|
|
@@ -38966,7 +38966,7 @@ function ConnectedThreadLauncher({ autoFocus }) {
|
|
|
38966
38966
|
const [draft, setDraft] = react$1.useState("");
|
|
38967
38967
|
const input = react$1.useRef(null);
|
|
38968
38968
|
const { openNewConversation } = chunkTKHCIHE2_cjs.useBlocksEnvironment();
|
|
38969
|
-
const slashWorkflows =
|
|
38969
|
+
const slashWorkflows = chunkQOXK5O6M_cjs.useSlashSkillWorkflows({ landing: "chat" });
|
|
38970
38970
|
const skills = react$1.useMemo(() => ({ openFor: slashWorkflows.openFor }), [slashWorkflows.openFor]);
|
|
38971
38971
|
react$1.useEffect(() => {
|
|
38972
38972
|
if (autoFocus) input.current?.focus();
|
|
@@ -38979,7 +38979,7 @@ function ConnectedThreadLauncher({ autoFocus }) {
|
|
|
38979
38979
|
return /* @__PURE__ */ jsxRuntime.jsxs(chunkM2FOXGJU_cjs.ComposerDock, { children: [
|
|
38980
38980
|
slashWorkflows.launcher,
|
|
38981
38981
|
/* @__PURE__ */ jsxRuntime.jsx(chunkM2FOXGJU_cjs.ComposerContainer, { className: "mx-auto max-w-[49rem] px-3 sm:px-6", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
38982
|
-
|
|
38982
|
+
chunkOPH4UZQN_cjs.ConversationComposer,
|
|
38983
38983
|
{
|
|
38984
38984
|
value: draft,
|
|
38985
38985
|
onValueChange: setDraft,
|
|
@@ -38988,7 +38988,7 @@ function ConnectedThreadLauncher({ autoFocus }) {
|
|
|
38988
38988
|
isConversationEmpty: true,
|
|
38989
38989
|
shouldOfferFollowUp: false,
|
|
38990
38990
|
skills,
|
|
38991
|
-
modelSelector: /* @__PURE__ */ jsxRuntime.jsx(
|
|
38991
|
+
modelSelector: /* @__PURE__ */ jsxRuntime.jsx(chunkOPH4UZQN_cjs.ConnectedModelSelector, { variant: "compact" }),
|
|
38992
38992
|
rightButton: /* @__PURE__ */ jsxRuntime.jsx(chunkM2FOXGJU_cjs.ComposerSend, { onSend: send, disabled: !draft.trim() })
|
|
38993
38993
|
}
|
|
38994
38994
|
) })
|
|
@@ -38997,9 +38997,9 @@ function ConnectedThreadLauncher({ autoFocus }) {
|
|
|
38997
38997
|
var START_VISIBLE = 8;
|
|
38998
38998
|
var START_SEARCH_ABOVE = 8;
|
|
38999
38999
|
function ConnectedConversationStart() {
|
|
39000
|
-
const { start } =
|
|
39000
|
+
const { start } = chunkJSQQV23D_cjs.useWorkflowDefinitions();
|
|
39001
39001
|
const { openSkillsBrowser } = chunkTKHCIHE2_cjs.useBlocksEnvironment();
|
|
39002
|
-
const canBrowse =
|
|
39002
|
+
const canBrowse = chunkJSQQV23D_cjs.useCanBrowseSkills();
|
|
39003
39003
|
const [query, setQuery] = react$1.useState("");
|
|
39004
39004
|
const q = query.trim().toLowerCase();
|
|
39005
39005
|
const shown = react$1.useMemo(() => {
|
|
@@ -39037,7 +39037,7 @@ function ConnectedConversationStart() {
|
|
|
39037
39037
|
)
|
|
39038
39038
|
] }),
|
|
39039
39039
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
39040
|
-
|
|
39040
|
+
chunkQOXK5O6M_cjs.ConnectedWorkflowStart,
|
|
39041
39041
|
{
|
|
39042
39042
|
workflows: start,
|
|
39043
39043
|
tileWorkflows: shown,
|
|
@@ -39119,7 +39119,7 @@ function AgentBarShell({
|
|
|
39119
39119
|
}, [isStepsExpanded, steps]);
|
|
39120
39120
|
const visibleStepCount = react$1.useMemo(() => browser.topLevelAgentSteps(steps ?? []).length, [steps]);
|
|
39121
39121
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
39122
|
-
|
|
39122
|
+
chunkPVPRVI54_cjs.AgentBar,
|
|
39123
39123
|
{
|
|
39124
39124
|
className,
|
|
39125
39125
|
testId,
|
|
@@ -39131,7 +39131,7 @@ function AgentBarShell({
|
|
|
39131
39131
|
drawerRef: scrollRef,
|
|
39132
39132
|
onDrawerScroll: handleDrawerScroll,
|
|
39133
39133
|
drawer: /* @__PURE__ */ jsxRuntime.jsx(
|
|
39134
|
-
|
|
39134
|
+
chunkOPH4UZQN_cjs.AgentSteps,
|
|
39135
39135
|
{
|
|
39136
39136
|
steps: stepList,
|
|
39137
39137
|
isStreaming,
|
|
@@ -39183,7 +39183,7 @@ function AgentControlBar({
|
|
|
39183
39183
|
const waitingOnChildren = runningLanes.length > 0 && ["sub_agent", "spawn_subagent", "deep_research", "run_skill"].includes(currentTool ?? "");
|
|
39184
39184
|
const waitingLabel = runningLanes.length === 1 ? `Waiting on ${runningLanes[0].job}` : `Waiting on ${runningLanes.length} sub-agents`;
|
|
39185
39185
|
const liveTimerNode = liveTimer && /* @__PURE__ */ jsxRuntime.jsx(
|
|
39186
|
-
|
|
39186
|
+
chunkOPH4UZQN_cjs.MessageLiveSeconds,
|
|
39187
39187
|
{
|
|
39188
39188
|
...liveTimer,
|
|
39189
39189
|
offsetSeconds: currentStep?.t ?? 0,
|
|
@@ -39192,7 +39192,7 @@ function AgentControlBar({
|
|
|
39192
39192
|
}
|
|
39193
39193
|
);
|
|
39194
39194
|
const status = /* @__PURE__ */ jsxRuntime.jsx(
|
|
39195
|
-
|
|
39195
|
+
chunkPVPRVI54_cjs.AgentBarStatus,
|
|
39196
39196
|
{
|
|
39197
39197
|
state: showState ? controlState : void 0,
|
|
39198
39198
|
stateLabel: STATE_LABEL[controlState],
|
|
@@ -39234,7 +39234,7 @@ function AgentControlBar({
|
|
|
39234
39234
|
];
|
|
39235
39235
|
const controls = /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
39236
39236
|
onStop && /* @__PURE__ */ jsxRuntime.jsx(
|
|
39237
|
-
|
|
39237
|
+
chunkPVPRVI54_cjs.AgentBarIconButton,
|
|
39238
39238
|
{
|
|
39239
39239
|
onClick: onStop,
|
|
39240
39240
|
title: "Stop",
|
|
@@ -39243,22 +39243,22 @@ function AgentControlBar({
|
|
|
39243
39243
|
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Square, { className: "h-3 w-3", fill: "currentColor" })
|
|
39244
39244
|
}
|
|
39245
39245
|
),
|
|
39246
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
39246
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkPVPRVI54_cjs.AgentBarMenu, { items: menuItems })
|
|
39247
39247
|
] });
|
|
39248
39248
|
const displayedQueuedMessages = (transientQueuedMessages ?? []).filter(
|
|
39249
39249
|
(message) => !message.serverId || !queuedMessages.some((queued) => queued.external_id === message.serverId)
|
|
39250
39250
|
);
|
|
39251
39251
|
const queuedNotes = displayedQueuedMessages.filter((message) => message.content);
|
|
39252
|
-
const below = probeAnswer || queuedNotes.length > 0 ? /* @__PURE__ */ jsxRuntime.jsxs(
|
|
39252
|
+
const below = probeAnswer || queuedNotes.length > 0 ? /* @__PURE__ */ jsxRuntime.jsxs(chunkPVPRVI54_cjs.AgentBarNotes, { children: [
|
|
39253
39253
|
queuedNotes.map((message, index) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
39254
|
-
|
|
39254
|
+
chunkPVPRVI54_cjs.AgentBarQueuedNote,
|
|
39255
39255
|
{
|
|
39256
39256
|
text: message.content ?? "",
|
|
39257
39257
|
isAcknowledged: message.acknowledged
|
|
39258
39258
|
},
|
|
39259
39259
|
index
|
|
39260
39260
|
)),
|
|
39261
|
-
probeAnswer && /* @__PURE__ */ jsxRuntime.jsx(
|
|
39261
|
+
probeAnswer && /* @__PURE__ */ jsxRuntime.jsx(chunkPVPRVI54_cjs.AgentBarProbeAnswer, { answer: probeAnswer.answer })
|
|
39262
39262
|
] }) : null;
|
|
39263
39263
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
39264
39264
|
AgentBarShell,
|
|
@@ -40267,7 +40267,7 @@ function ConversationThread({
|
|
|
40267
40267
|
react$1.useEffect(() => {
|
|
40268
40268
|
if (!isGenerating) setFirstTurnPrompt(null);
|
|
40269
40269
|
}, [isGenerating]);
|
|
40270
|
-
const slashWorkflows =
|
|
40270
|
+
const slashWorkflows = chunkQOXK5O6M_cjs.useSlashSkillWorkflows({ landing: "current-chat" });
|
|
40271
40271
|
const composerSkills = react$1.useMemo(
|
|
40272
40272
|
() => ({ openFor: slashWorkflows.openFor }),
|
|
40273
40273
|
[slashWorkflows.openFor]
|
|
@@ -40373,7 +40373,7 @@ function ConversationThread({
|
|
|
40373
40373
|
useStartRequestedDraft();
|
|
40374
40374
|
const orphanedMessage = react.getOrphanedLastMessage(messageHistory, isGenerating, assistantMode);
|
|
40375
40375
|
return /* @__PURE__ */ jsxRuntime.jsxs(chunkKLMNCBLY_cjs.ConversationBody, { children: [
|
|
40376
|
-
/* @__PURE__ */ jsxRuntime.jsx(chunkKLMNCBLY_cjs.ConversationMain, { "data-testid": `conversation-${currentConversationId}`, children: threadsLoading ? /* @__PURE__ */ jsxRuntime.jsx(chunkKLMNCBLY_cjs.ConversationLoading, {}) : messageHistory.length > 0 || isBranching ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
40376
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkKLMNCBLY_cjs.ConversationMain, { "data-testid": `conversation-${currentConversationId}`, children: threadsLoading ? /* @__PURE__ */ jsxRuntime.jsx(chunkKLMNCBLY_cjs.ConversationLoading, {}) : messageHistory.length > 0 || isBranching ? /* @__PURE__ */ jsxRuntime.jsx(chunkOPH4UZQN_cjs.AskAgainContext.Provider, { value: handleAskAgain, children: /* @__PURE__ */ jsxRuntime.jsxs(chunkVJCSEMXT_cjs.TranscriptRunsContext.Provider, { value: transcriptRunInfo, children: [
|
|
40377
40377
|
meetingCallExtId && transcriptLineCount > 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex justify-center py-2", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
40378
40378
|
chunkZBP4ZSAJ_cjs.ConversationFilter,
|
|
40379
40379
|
{
|
|
@@ -40391,7 +40391,7 @@ function ConversationThread({
|
|
|
40391
40391
|
]
|
|
40392
40392
|
}
|
|
40393
40393
|
) }),
|
|
40394
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
40394
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkOPH4UZQN_cjs.ConnectedMessageArea, { ref: containerRef, messages: visibleMessages }),
|
|
40395
40395
|
showProvisional && /* @__PURE__ */ jsxRuntime.jsx(chunkBQ5RIWWT_cjs.ProvisionalSpeakers, { ids: provisionalSpeakers })
|
|
40396
40396
|
] }) }) : meetingCallExtId ? (
|
|
40397
40397
|
// A meeting thread with nothing yet: call-aware, not the upload prompt.
|
|
@@ -40399,7 +40399,7 @@ function ConversationThread({
|
|
|
40399
40399
|
/* @__PURE__ */ jsxRuntime.jsx(chunkBQ5RIWWT_cjs.CallConversationEmpty, { callExtId: meetingCallExtId }),
|
|
40400
40400
|
/* @__PURE__ */ jsxRuntime.jsx(chunkBQ5RIWWT_cjs.ProvisionalSpeakers, { ids: provisionalSpeakers })
|
|
40401
40401
|
] })
|
|
40402
|
-
) : currentTask && currentTask.status != null ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
40402
|
+
) : currentTask && currentTask.status != null ? /* @__PURE__ */ jsxRuntime.jsx(chunkPVPRVI54_cjs.TaskEmptyState, { task: currentTask }) : pendingFirstTurn && isGenerating ? /* @__PURE__ */ jsxRuntime.jsx(chunkOPH4UZQN_cjs.ConnectedMessageArea, { ref: containerRef, messages: pendingFirstTurn }) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
40403
40403
|
ConnectedConversationEmpty,
|
|
40404
40404
|
{
|
|
40405
40405
|
hasDocuments: allWorkspaceDocuments.length > 0,
|
|
@@ -40497,7 +40497,7 @@ function ConversationThread({
|
|
|
40497
40497
|
}
|
|
40498
40498
|
),
|
|
40499
40499
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
40500
|
-
|
|
40500
|
+
chunkOPH4UZQN_cjs.ConversationComposer,
|
|
40501
40501
|
{
|
|
40502
40502
|
handleSendMessage: handleUserSend,
|
|
40503
40503
|
placeholder: pendingAnswer ? assistant.answerPlaceholder : void 0,
|
|
@@ -40842,7 +40842,7 @@ function ConnectedThreadsPage({
|
|
|
40842
40842
|
};
|
|
40843
40843
|
const page = /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex h-full min-h-0 flex-col", "data-testid": "threads-page", children: [
|
|
40844
40844
|
/* @__PURE__ */ jsxRuntime.jsx("main", { className: "flex min-h-0 flex-1 flex-col bg-background", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
40845
|
-
|
|
40845
|
+
chunkPVPRVI54_cjs.ConversationListView,
|
|
40846
40846
|
{
|
|
40847
40847
|
showHeader,
|
|
40848
40848
|
conversations: tasks,
|
|
@@ -40861,7 +40861,7 @@ function ConnectedThreadsPage({
|
|
|
40861
40861
|
renderLabels: threadLabels.renderLabels,
|
|
40862
40862
|
labelText: threadLabels.labelText,
|
|
40863
40863
|
renderBy: (row2) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
40864
|
-
|
|
40864
|
+
chunkPVPRVI54_cjs.ConversationTurnSpeaker,
|
|
40865
40865
|
{
|
|
40866
40866
|
variant: "icon",
|
|
40867
40867
|
role: row2.last_message_role,
|
|
@@ -40894,7 +40894,7 @@ function ConnectedThreadsPage({
|
|
|
40894
40894
|
}
|
|
40895
40895
|
),
|
|
40896
40896
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
40897
|
-
|
|
40897
|
+
chunkL6APDO3Y_cjs.RenameDialog,
|
|
40898
40898
|
{
|
|
40899
40899
|
open: !!renaming,
|
|
40900
40900
|
onClose: () => {
|
|
@@ -41742,7 +41742,7 @@ function ConnectedConversationPage({
|
|
|
41742
41742
|
);
|
|
41743
41743
|
const { data: workspaceTags = [] } = react.useTags();
|
|
41744
41744
|
const { tagId: threadTagId, clear: clearThreadTag } = useThreadTagFilter();
|
|
41745
|
-
const historyCount =
|
|
41745
|
+
const historyCount = chunkPVPRVI54_cjs.filterConversationRows(
|
|
41746
41746
|
threadTagId ? conversations.filter((row2) => row2.label_ext_ids?.includes(threadTagId)) : conversations,
|
|
41747
41747
|
threadFilter,
|
|
41748
41748
|
(row2) => workspaceTags.filter((tag) => row2.label_ext_ids?.includes(tag.external_id)).map((tag) => tag.name).join(" "),
|
|
@@ -41824,7 +41824,7 @@ function ConnectedConversationPage({
|
|
|
41824
41824
|
] })
|
|
41825
41825
|
}
|
|
41826
41826
|
),
|
|
41827
|
-
isInChat && /* @__PURE__ */ jsxRuntime.jsx(
|
|
41827
|
+
isInChat && /* @__PURE__ */ jsxRuntime.jsx(chunkZCIQBHH5_cjs.ConnectedThreadTaskBar, { conversationId: currentConversationId })
|
|
41828
41828
|
] }),
|
|
41829
41829
|
isInChat && /* @__PURE__ */ jsxRuntime.jsx(
|
|
41830
41830
|
ConversationThread,
|
|
@@ -42033,7 +42033,7 @@ function SsoResendVerificationButton({
|
|
|
42033
42033
|
onClick: async () => handleResendEmailVerification(),
|
|
42034
42034
|
disabled: loading || disabled,
|
|
42035
42035
|
"aria-label": "Resend verification email",
|
|
42036
|
-
children: loading ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
42036
|
+
children: loading ? /* @__PURE__ */ jsxRuntime.jsx(chunkMMVDVHKE_cjs.LoadingIndicator, {}) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
42037
42037
|
"Didn't get a verification email? ",
|
|
42038
42038
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-semibold", children: "Resend" })
|
|
42039
42039
|
] })
|
|
@@ -42044,16 +42044,16 @@ function SsoResendVerificationButton({
|
|
|
42044
42044
|
}
|
|
42045
42045
|
var NO_RECOVERY_KEY_WARNING = "Without your password or a recovery key, we cannot recover your account or data.";
|
|
42046
42046
|
function ConnectedSsoCallback() {
|
|
42047
|
-
const sso =
|
|
42047
|
+
const sso = chunkOPH4UZQN_cjs.useSsoSignIn();
|
|
42048
42048
|
const { isAuthenticated: isAuthenticated2, isLoading, user } = sso;
|
|
42049
|
-
const auth =
|
|
42049
|
+
const auth = chunkOPH4UZQN_cjs.useAuthPages();
|
|
42050
42050
|
const { notify: notify19, navigate } = chunkTKHCIHE2_cjs.useBlocksEnvironment();
|
|
42051
42051
|
const passwordRules = auth.passwordRules;
|
|
42052
42052
|
const isProcessing = react$1.useRef(false);
|
|
42053
42053
|
const hasCheckedStatus = react$1.useRef(false);
|
|
42054
42054
|
const [accessToken, setAccessToken] = react$1.useState(null);
|
|
42055
42055
|
const [ssoStatus, setSsoStatus] = react$1.useState(null);
|
|
42056
|
-
const ssoName = react$1.useMemo(() =>
|
|
42056
|
+
const ssoName = react$1.useMemo(() => chunkOPH4UZQN_cjs.resolveSsoName(user ?? {}, ssoStatus ?? {}), [user, ssoStatus]);
|
|
42057
42057
|
const [password, setPassword] = react$1.useState("");
|
|
42058
42058
|
const [confirmPassword, setConfirmPassword] = react$1.useState("");
|
|
42059
42059
|
const [error, setError] = react$1.useState(null);
|
|
@@ -42231,7 +42231,7 @@ function ConnectedSsoCallback() {
|
|
|
42231
42231
|
setIsCheckingStatus(true);
|
|
42232
42232
|
try {
|
|
42233
42233
|
console.info("[SSO] Checking user status...");
|
|
42234
|
-
const response = await
|
|
42234
|
+
const response = await chunkOPH4UZQN_cjs.ssoAccountStatus(arbi, accessToken, user);
|
|
42235
42235
|
console.info("[SSO] User status:", response.status);
|
|
42236
42236
|
setSsoStatus(response);
|
|
42237
42237
|
} catch (error2) {
|
|
@@ -42275,7 +42275,7 @@ function ConnectedSsoCallback() {
|
|
|
42275
42275
|
setIsSubmitting(true);
|
|
42276
42276
|
setError(null);
|
|
42277
42277
|
try {
|
|
42278
|
-
const { login, registered, linked } = await
|
|
42278
|
+
const { login, registered, linked } = await chunkOPH4UZQN_cjs.completeSsoSignIn(arbi, {
|
|
42279
42279
|
token: accessToken,
|
|
42280
42280
|
user,
|
|
42281
42281
|
status: ssoStatus,
|
|
@@ -42557,7 +42557,7 @@ function ConnectedSsoCallback() {
|
|
|
42557
42557
|
ssoStatus.status !== "new_user" && auth.footer
|
|
42558
42558
|
] }),
|
|
42559
42559
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
42560
|
-
|
|
42560
|
+
chunkOPH4UZQN_cjs.ConnectedForgotPassword,
|
|
42561
42561
|
{
|
|
42562
42562
|
open: showForgotPasswordModal,
|
|
42563
42563
|
onOpenChange: setShowForgotPasswordModal,
|
|
@@ -42565,7 +42565,7 @@ function ConnectedSsoCallback() {
|
|
|
42565
42565
|
}
|
|
42566
42566
|
),
|
|
42567
42567
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
42568
|
-
|
|
42568
|
+
chunkOPH4UZQN_cjs.ConnectedPasswordChangeDialog,
|
|
42569
42569
|
{
|
|
42570
42570
|
open: showChangePasswordModal,
|
|
42571
42571
|
onClose: () => setShowChangePasswordModal(false),
|
|
@@ -42724,27 +42724,27 @@ function ConnectedOAuthConsentPage({
|
|
|
42724
42724
|
oauthErrorRedirect(params.redirectUri, params.state, "access_denied");
|
|
42725
42725
|
}
|
|
42726
42726
|
if (error && !params) {
|
|
42727
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
42727
|
+
return /* @__PURE__ */ jsxRuntime.jsx(chunkPVPRVI54_cjs.ConsentPage, { children: /* @__PURE__ */ jsxRuntime.jsx(chunkPVPRVI54_cjs.ConsentMessage, { tone: "error", title: "Invalid Request", children: error }) });
|
|
42728
42728
|
}
|
|
42729
42729
|
if (!params) {
|
|
42730
42730
|
return null;
|
|
42731
42731
|
}
|
|
42732
42732
|
if (clientInfo?.isLocalAgentFlow) {
|
|
42733
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
42733
|
+
return /* @__PURE__ */ jsxRuntime.jsx(chunkPVPRVI54_cjs.ConsentPage, { children: /* @__PURE__ */ jsxRuntime.jsx(chunkPVPRVI54_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." }) });
|
|
42734
42734
|
}
|
|
42735
42735
|
if (!isAuthenticated2) {
|
|
42736
42736
|
return null;
|
|
42737
42737
|
}
|
|
42738
42738
|
if (callbackUrl) {
|
|
42739
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
42740
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
42739
|
+
return /* @__PURE__ */ jsxRuntime.jsx(chunkPVPRVI54_cjs.ConsentPage, { children: /* @__PURE__ */ jsxRuntime.jsxs(chunkPVPRVI54_cjs.ConsentCard, { size: "md", children: [
|
|
42740
|
+
/* @__PURE__ */ jsxRuntime.jsxs(chunkPVPRVI54_cjs.ConsentHeader, { icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ClipboardList, {}), title: "Almost there", children: [
|
|
42741
42741
|
"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",
|
|
42742
42742
|
" ",
|
|
42743
42743
|
copied ? "it's already copied to your clipboard." : "copy it first."
|
|
42744
42744
|
] }),
|
|
42745
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
42746
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
42747
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
42745
|
+
/* @__PURE__ */ jsxRuntime.jsxs(chunkPVPRVI54_cjs.ConsentSection, { title: "Callback URL", children: [
|
|
42746
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkPVPRVI54_cjs.CopyableUrl, { url: callbackUrl, copied, onCopy: handleCopy }),
|
|
42747
|
+
/* @__PURE__ */ jsxRuntime.jsxs(chunkPVPRVI54_cjs.ConsentText, { variant: "hint", children: [
|
|
42748
42748
|
"In Claude Code, paste the URL at the prompt that says",
|
|
42749
42749
|
" ",
|
|
42750
42750
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-mono text-foreground", children: '"paste the full redirect URL here"' }),
|
|
@@ -42753,17 +42753,17 @@ function ConnectedOAuthConsentPage({
|
|
|
42753
42753
|
] })
|
|
42754
42754
|
] }) });
|
|
42755
42755
|
}
|
|
42756
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
42757
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
42758
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
42756
|
+
return /* @__PURE__ */ jsxRuntime.jsx(chunkPVPRVI54_cjs.ConsentPage, { children: /* @__PURE__ */ jsxRuntime.jsxs(chunkPVPRVI54_cjs.ConsentCard, { children: [
|
|
42757
|
+
/* @__PURE__ */ jsxRuntime.jsxs(chunkPVPRVI54_cjs.ConsentHeader, { icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Link2, {}), title: `Connect to ${appName}`, children: [
|
|
42758
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkPVPRVI54_cjs.ConsentStrong, { children: clientInfo?.name ?? params.clientId }),
|
|
42759
42759
|
" is requesting access to your ",
|
|
42760
42760
|
appName,
|
|
42761
42761
|
" workspace."
|
|
42762
42762
|
] }),
|
|
42763
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
42764
|
-
error && /* @__PURE__ */ jsxRuntime.jsx(
|
|
42765
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
42766
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
42763
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkPVPRVI54_cjs.ConsentSection, { title: "This will allow", children: /* @__PURE__ */ jsxRuntime.jsx(chunkPVPRVI54_cjs.ConsentPermissionList, { items: permissions }) }),
|
|
42764
|
+
error && /* @__PURE__ */ jsxRuntime.jsx(chunkPVPRVI54_cjs.ConsentNotice, { tone: "error", children: error }),
|
|
42765
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkPVPRVI54_cjs.ConsentActions, { isLoading: loading, onDeny: handleDeny, onAllow: handleAllow }),
|
|
42766
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkPVPRVI54_cjs.ConsentFootnote, { children: footnote })
|
|
42767
42767
|
] }) });
|
|
42768
42768
|
}
|
|
42769
42769
|
function ConnectedSharedFilesPage({
|
|
@@ -42885,7 +42885,7 @@ function useMainAreaPanel(panels) {
|
|
|
42885
42885
|
}
|
|
42886
42886
|
function useTogglePanel() {
|
|
42887
42887
|
const { setFocusedArea } = react.useArbiSessionStore();
|
|
42888
|
-
const { windows } =
|
|
42888
|
+
const { windows } = chunk3LNUQYAF_cjs.usePanelHostSupport();
|
|
42889
42889
|
return (panelId, isOpen, setOpen) => {
|
|
42890
42890
|
if (isOpen && windows.focusPanelWindow(panelId)) {
|
|
42891
42891
|
setFocusedArea(panelId);
|
|
@@ -42979,7 +42979,7 @@ function ConnectedShellSidebar({
|
|
|
42979
42979
|
!brand && pin
|
|
42980
42980
|
] }),
|
|
42981
42981
|
expanded ? ask : ask ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
42982
|
-
|
|
42982
|
+
chunk3LNUQYAF_cjs.AskTrigger,
|
|
42983
42983
|
{
|
|
42984
42984
|
variant: "rail",
|
|
42985
42985
|
onClick: controller.expand,
|
|
@@ -42988,7 +42988,7 @@ function ConnectedShellSidebar({
|
|
|
42988
42988
|
) : null
|
|
42989
42989
|
] });
|
|
42990
42990
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
42991
|
-
|
|
42991
|
+
chunk3LNUQYAF_cjs.ShellSidebar,
|
|
42992
42992
|
{
|
|
42993
42993
|
controller,
|
|
42994
42994
|
drawerLogo: logo,
|
|
@@ -43050,7 +43050,7 @@ function ConnectedShellTopbar({
|
|
|
43050
43050
|
if (landing || !workspace && !hasNavigation)
|
|
43051
43051
|
return /* @__PURE__ */ jsxRuntime.jsx(chunkNY3YUCOW_cjs.MobileAppBar, { onMenu: sidebar.openDrawer, logo, showMenu: false, actions });
|
|
43052
43052
|
if (askExpanded && ask)
|
|
43053
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
43053
|
+
return /* @__PURE__ */ jsxRuntime.jsx(chunk3LNUQYAF_cjs.AskRow, { onClose: () => setAskExpanded(false), children: ask({ autoFocus: true, onSubmitted: () => setAskExpanded(false) }) });
|
|
43054
43054
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
43055
43055
|
chunkNY3YUCOW_cjs.MobileAppBar,
|
|
43056
43056
|
{
|
|
@@ -43085,7 +43085,7 @@ function ConnectedShellTopbar({
|
|
|
43085
43085
|
return /* @__PURE__ */ jsxRuntime.jsx(chunk6WMMZLEV_cjs.Shell.Topbar, { actions, children: landing });
|
|
43086
43086
|
}
|
|
43087
43087
|
var ConnectedAssistantDock2 = react$1.lazy(
|
|
43088
|
-
() => import('../ai-
|
|
43088
|
+
() => import('../ai-OBS67QV4.cjs').then((m) => ({ default: m.ConnectedAssistantDock }))
|
|
43089
43089
|
);
|
|
43090
43090
|
var DOCK_TOGGLE_LABEL = "Assistant chat";
|
|
43091
43091
|
var DOCK_TOGGLE_TEST_ID = "shell-dock-toggle";
|
|
@@ -43310,7 +43310,7 @@ function ConnectedAppShell({
|
|
|
43310
43310
|
const session = react.useArbiSessionStore();
|
|
43311
43311
|
const dockedPanel = react.useArbiSessionState((state) => state.shell.panels.docked);
|
|
43312
43312
|
const dockSqueezed = chunkFX3K6LNZ_cjs.useMediaQuery(sidebarPolicy?.dockedRailQuery ?? "(max-width: 0px)");
|
|
43313
|
-
const sidebar =
|
|
43313
|
+
const sidebar = chunk3LNUQYAF_cjs.useSidebarController({
|
|
43314
43314
|
...useSessionSidebar(),
|
|
43315
43315
|
forceRail: !!sidebarPolicy?.dockedRailQuery && dockSqueezed && dockedPanel !== null,
|
|
43316
43316
|
hoverExpansion: sidebarPolicy?.hoverExpansion
|
|
@@ -43347,7 +43347,7 @@ function ConnectedAppShell({
|
|
|
43347
43347
|
session.setFocusedArea("main");
|
|
43348
43348
|
contentProps?.onClick?.(event);
|
|
43349
43349
|
},
|
|
43350
|
-
children: content.mode === "docked" ? /* @__PURE__ */ jsxRuntime.jsxs(
|
|
43350
|
+
children: content.mode === "docked" ? /* @__PURE__ */ jsxRuntime.jsxs(chunk3LNUQYAF_cjs.DockZone, { "data-testid": content.testId, children: [
|
|
43351
43351
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: content.mainPanelVisible ? "hidden" : "h-full min-h-0", children: pageContent }),
|
|
43352
43352
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
43353
43353
|
"div",
|
|
@@ -43422,7 +43422,7 @@ function ConnectedTipBar({
|
|
|
43422
43422
|
className,
|
|
43423
43423
|
revealOnHover = false
|
|
43424
43424
|
}) {
|
|
43425
|
-
const { showHints, settingsLoaded, setShowHintsPersisted, setShowHints } =
|
|
43425
|
+
const { showHints, settingsLoaded, setShowHintsPersisted, setShowHints } = chunkOPH4UZQN_cjs.useContextualHints();
|
|
43426
43426
|
const { dismissed, dismissTip } = react.useDismissedTips();
|
|
43427
43427
|
const { notify: notify19 } = chunkTKHCIHE2_cjs.useBlocksEnvironment();
|
|
43428
43428
|
const { data: workspaces } = react.useWorkspaces();
|
|
@@ -43433,7 +43433,7 @@ function ConnectedTipBar({
|
|
|
43433
43433
|
workspaceOpen,
|
|
43434
43434
|
...state
|
|
43435
43435
|
};
|
|
43436
|
-
const { tip, index, count: count2, previous, next, onHoverChange } =
|
|
43436
|
+
const { tip, index, count: count2, previous, next, onHoverChange } = chunkMMVDVHKE_cjs.useTipsPlacement({
|
|
43437
43437
|
registry,
|
|
43438
43438
|
context,
|
|
43439
43439
|
state: situation,
|
|
@@ -43466,7 +43466,7 @@ function ConnectedTipBar({
|
|
|
43466
43466
|
});
|
|
43467
43467
|
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
43468
43468
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
43469
|
-
|
|
43469
|
+
chunk3LNUQYAF_cjs.TipCard,
|
|
43470
43470
|
{
|
|
43471
43471
|
message: tip.message,
|
|
43472
43472
|
index,
|
|
@@ -43511,7 +43511,7 @@ function useGettingStarted({
|
|
|
43511
43511
|
const { user } = react.useArbiSession();
|
|
43512
43512
|
const userExtId = user?.external_id;
|
|
43513
43513
|
const temporaryOnly = user?.temporary_access_only === true;
|
|
43514
|
-
const { showHints, settingsLoaded, setShowHints, setShowHintsPersisted } =
|
|
43514
|
+
const { showHints, settingsLoaded, setShowHints, setShowHintsPersisted } = chunkOPH4UZQN_cjs.useContextualHints();
|
|
43515
43515
|
const { dismissed, loaded: dismissedLoaded, dismissTip } = react.useDismissedTips();
|
|
43516
43516
|
const welcomeJourneyEnabled = react.useFeature("welcomeJourney");
|
|
43517
43517
|
const session = react.useArbiSessionStore();
|
|
@@ -43733,55 +43733,55 @@ function ChromeInstallDialog({
|
|
|
43733
43733
|
|
|
43734
43734
|
Object.defineProperty(exports, "CAP_REACHED_MESSAGE", {
|
|
43735
43735
|
enumerable: true,
|
|
43736
|
-
get: function () { return
|
|
43736
|
+
get: function () { return chunkO4F77VSO_cjs.CAP_REACHED_MESSAGE; }
|
|
43737
43737
|
});
|
|
43738
43738
|
Object.defineProperty(exports, "ZERO_BUDGET_MESSAGE", {
|
|
43739
43739
|
enumerable: true,
|
|
43740
|
-
get: function () { return
|
|
43740
|
+
get: function () { return chunkO4F77VSO_cjs.ZERO_BUDGET_MESSAGE; }
|
|
43741
43741
|
});
|
|
43742
43742
|
Object.defineProperty(exports, "aiUsageResetTimestamp", {
|
|
43743
43743
|
enumerable: true,
|
|
43744
|
-
get: function () { return
|
|
43744
|
+
get: function () { return chunkO4F77VSO_cjs.aiUsageResetTimestamp; }
|
|
43745
43745
|
});
|
|
43746
43746
|
Object.defineProperty(exports, "formatMoney", {
|
|
43747
43747
|
enumerable: true,
|
|
43748
|
-
get: function () { return
|
|
43748
|
+
get: function () { return chunkO4F77VSO_cjs.formatMoney; }
|
|
43749
43749
|
});
|
|
43750
43750
|
Object.defineProperty(exports, "formatResetDate", {
|
|
43751
43751
|
enumerable: true,
|
|
43752
|
-
get: function () { return
|
|
43752
|
+
get: function () { return chunkO4F77VSO_cjs.formatResetDate; }
|
|
43753
43753
|
});
|
|
43754
43754
|
Object.defineProperty(exports, "getQuotaItems", {
|
|
43755
43755
|
enumerable: true,
|
|
43756
|
-
get: function () { return
|
|
43756
|
+
get: function () { return chunkO4F77VSO_cjs.getQuotaItems; }
|
|
43757
43757
|
});
|
|
43758
43758
|
Object.defineProperty(exports, "isAddonBudgetZero", {
|
|
43759
43759
|
enumerable: true,
|
|
43760
|
-
get: function () { return
|
|
43760
|
+
get: function () { return chunkO4F77VSO_cjs.isAddonBudgetZero; }
|
|
43761
43761
|
});
|
|
43762
43762
|
Object.defineProperty(exports, "isProProject", {
|
|
43763
43763
|
enumerable: true,
|
|
43764
|
-
get: function () { return
|
|
43764
|
+
get: function () { return chunkO4F77VSO_cjs.isProProject; }
|
|
43765
43765
|
});
|
|
43766
43766
|
Object.defineProperty(exports, "planBadgeView", {
|
|
43767
43767
|
enumerable: true,
|
|
43768
|
-
get: function () { return
|
|
43768
|
+
get: function () { return chunkO4F77VSO_cjs.planBadgeView; }
|
|
43769
43769
|
});
|
|
43770
43770
|
Object.defineProperty(exports, "planName", {
|
|
43771
43771
|
enumerable: true,
|
|
43772
|
-
get: function () { return
|
|
43772
|
+
get: function () { return chunkO4F77VSO_cjs.planName; }
|
|
43773
43773
|
});
|
|
43774
43774
|
Object.defineProperty(exports, "projectGroupBilling", {
|
|
43775
43775
|
enumerable: true,
|
|
43776
|
-
get: function () { return
|
|
43776
|
+
get: function () { return chunkO4F77VSO_cjs.projectGroupBilling; }
|
|
43777
43777
|
});
|
|
43778
43778
|
Object.defineProperty(exports, "useBillingSupport", {
|
|
43779
43779
|
enumerable: true,
|
|
43780
|
-
get: function () { return
|
|
43780
|
+
get: function () { return chunkO4F77VSO_cjs.useBillingSupport; }
|
|
43781
43781
|
});
|
|
43782
43782
|
Object.defineProperty(exports, "useRewardBalance", {
|
|
43783
43783
|
enumerable: true,
|
|
43784
|
-
get: function () { return
|
|
43784
|
+
get: function () { return chunkO4F77VSO_cjs.useRewardBalance; }
|
|
43785
43785
|
});
|
|
43786
43786
|
Object.defineProperty(exports, "ConnectedMailInviteCard", {
|
|
43787
43787
|
enumerable: true,
|
|
@@ -43801,355 +43801,355 @@ Object.defineProperty(exports, "useMemberLookup", {
|
|
|
43801
43801
|
});
|
|
43802
43802
|
Object.defineProperty(exports, "DEFAULT_ASK_SUGGESTIONS", {
|
|
43803
43803
|
enumerable: true,
|
|
43804
|
-
get: function () { return
|
|
43804
|
+
get: function () { return chunkKHAO7ZTO_cjs.DEFAULT_ASK_SUGGESTIONS; }
|
|
43805
43805
|
});
|
|
43806
43806
|
Object.defineProperty(exports, "DEFAULT_DOCUMENT_VIEWER_LABELS", {
|
|
43807
43807
|
enumerable: true,
|
|
43808
|
-
get: function () { return
|
|
43808
|
+
get: function () { return chunkKHAO7ZTO_cjs.DEFAULT_DOCUMENT_VIEWER_LABELS; }
|
|
43809
43809
|
});
|
|
43810
43810
|
Object.defineProperty(exports, "DEFAULT_DOCUMENT_VIEWER_TABS", {
|
|
43811
43811
|
enumerable: true,
|
|
43812
|
-
get: function () { return
|
|
43812
|
+
get: function () { return chunkKHAO7ZTO_cjs.DEFAULT_DOCUMENT_VIEWER_TABS; }
|
|
43813
43813
|
});
|
|
43814
43814
|
Object.defineProperty(exports, "ConnectedAssistantDock", {
|
|
43815
43815
|
enumerable: true,
|
|
43816
|
-
get: function () { return
|
|
43816
|
+
get: function () { return chunkP2MOLUFO_cjs.ConnectedAssistantDock; }
|
|
43817
43817
|
});
|
|
43818
43818
|
Object.defineProperty(exports, "redlineStats", {
|
|
43819
43819
|
enumerable: true,
|
|
43820
|
-
get: function () { return
|
|
43820
|
+
get: function () { return chunkP2MOLUFO_cjs.redlineStats; }
|
|
43821
43821
|
});
|
|
43822
43822
|
Object.defineProperty(exports, "textToArtifact", {
|
|
43823
43823
|
enumerable: true,
|
|
43824
|
-
get: function () { return
|
|
43824
|
+
get: function () { return chunkP2MOLUFO_cjs.textToArtifact; }
|
|
43825
43825
|
});
|
|
43826
43826
|
Object.defineProperty(exports, "toRedlineMarkdown", {
|
|
43827
43827
|
enumerable: true,
|
|
43828
|
-
get: function () { return
|
|
43828
|
+
get: function () { return chunkP2MOLUFO_cjs.toRedlineMarkdown; }
|
|
43829
43829
|
});
|
|
43830
43830
|
Object.defineProperty(exports, "useConnectedAiTask", {
|
|
43831
43831
|
enumerable: true,
|
|
43832
|
-
get: function () { return
|
|
43832
|
+
get: function () { return chunkP2MOLUFO_cjs.useConnectedAiTask; }
|
|
43833
43833
|
});
|
|
43834
43834
|
Object.defineProperty(exports, "useConnectedChat", {
|
|
43835
43835
|
enumerable: true,
|
|
43836
|
-
get: function () { return
|
|
43836
|
+
get: function () { return chunkP2MOLUFO_cjs.useConnectedChat; }
|
|
43837
43837
|
});
|
|
43838
43838
|
Object.defineProperty(exports, "useSemanticSearch", {
|
|
43839
43839
|
enumerable: true,
|
|
43840
|
-
get: function () { return
|
|
43840
|
+
get: function () { return chunkP2MOLUFO_cjs.useSemanticSearch; }
|
|
43841
43841
|
});
|
|
43842
43842
|
Object.defineProperty(exports, "useWorkspaceDocs", {
|
|
43843
43843
|
enumerable: true,
|
|
43844
|
-
get: function () { return
|
|
43844
|
+
get: function () { return chunkP2MOLUFO_cjs.useWorkspaceDocs; }
|
|
43845
43845
|
});
|
|
43846
43846
|
Object.defineProperty(exports, "ConnectedTaskActivityDialog", {
|
|
43847
43847
|
enumerable: true,
|
|
43848
|
-
get: function () { return
|
|
43848
|
+
get: function () { return chunkZCIQBHH5_cjs.ConnectedTaskActivityDialog; }
|
|
43849
43849
|
});
|
|
43850
43850
|
Object.defineProperty(exports, "ConnectedTaskComposer", {
|
|
43851
43851
|
enumerable: true,
|
|
43852
|
-
get: function () { return
|
|
43852
|
+
get: function () { return chunkZCIQBHH5_cjs.ConnectedTaskComposer; }
|
|
43853
43853
|
});
|
|
43854
43854
|
Object.defineProperty(exports, "ConnectedThreadTaskBar", {
|
|
43855
43855
|
enumerable: true,
|
|
43856
|
-
get: function () { return
|
|
43856
|
+
get: function () { return chunkZCIQBHH5_cjs.ConnectedThreadTaskBar; }
|
|
43857
43857
|
});
|
|
43858
43858
|
Object.defineProperty(exports, "ConnectedWorkflowHistory", {
|
|
43859
43859
|
enumerable: true,
|
|
43860
|
-
get: function () { return
|
|
43860
|
+
get: function () { return chunkZCIQBHH5_cjs.ConnectedWorkflowHistory; }
|
|
43861
43861
|
});
|
|
43862
43862
|
Object.defineProperty(exports, "ConnectedWorkflowRunPage", {
|
|
43863
43863
|
enumerable: true,
|
|
43864
|
-
get: function () { return
|
|
43864
|
+
get: function () { return chunkZCIQBHH5_cjs.ConnectedWorkflowRunPage; }
|
|
43865
43865
|
});
|
|
43866
43866
|
Object.defineProperty(exports, "ConnectedWorkflowRunner", {
|
|
43867
43867
|
enumerable: true,
|
|
43868
|
-
get: function () { return
|
|
43868
|
+
get: function () { return chunkZCIQBHH5_cjs.ConnectedWorkflowRunner; }
|
|
43869
43869
|
});
|
|
43870
43870
|
Object.defineProperty(exports, "DEFAULT_CONNECTED_WORKFLOW_RUNNER_LABELS", {
|
|
43871
43871
|
enumerable: true,
|
|
43872
|
-
get: function () { return
|
|
43872
|
+
get: function () { return chunkZCIQBHH5_cjs.DEFAULT_CONNECTED_WORKFLOW_RUNNER_LABELS; }
|
|
43873
43873
|
});
|
|
43874
43874
|
Object.defineProperty(exports, "DEFAULT_WORKFLOW_RUN_PAGE_LABELS", {
|
|
43875
43875
|
enumerable: true,
|
|
43876
|
-
get: function () { return
|
|
43876
|
+
get: function () { return chunkZCIQBHH5_cjs.DEFAULT_WORKFLOW_RUN_PAGE_LABELS; }
|
|
43877
43877
|
});
|
|
43878
43878
|
Object.defineProperty(exports, "WorkflowRunThread", {
|
|
43879
43879
|
enumerable: true,
|
|
43880
|
-
get: function () { return
|
|
43880
|
+
get: function () { return chunkZCIQBHH5_cjs.WorkflowRunThread; }
|
|
43881
43881
|
});
|
|
43882
43882
|
Object.defineProperty(exports, "WorkflowRunWorkspaceChangedError", {
|
|
43883
43883
|
enumerable: true,
|
|
43884
|
-
get: function () { return
|
|
43884
|
+
get: function () { return chunkZCIQBHH5_cjs.WorkflowRunWorkspaceChangedError; }
|
|
43885
43885
|
});
|
|
43886
43886
|
Object.defineProperty(exports, "buildProjectSummaries", {
|
|
43887
43887
|
enumerable: true,
|
|
43888
|
-
get: function () { return
|
|
43888
|
+
get: function () { return chunkZCIQBHH5_cjs.buildProjectSummaries; }
|
|
43889
43889
|
});
|
|
43890
43890
|
Object.defineProperty(exports, "primaryProjectWorkspace", {
|
|
43891
43891
|
enumerable: true,
|
|
43892
|
-
get: function () { return
|
|
43892
|
+
get: function () { return chunkZCIQBHH5_cjs.primaryProjectWorkspace; }
|
|
43893
43893
|
});
|
|
43894
43894
|
Object.defineProperty(exports, "useEnsureRequiredLabels", {
|
|
43895
43895
|
enumerable: true,
|
|
43896
|
-
get: function () { return
|
|
43896
|
+
get: function () { return chunkZCIQBHH5_cjs.useEnsureRequiredLabels; }
|
|
43897
43897
|
});
|
|
43898
43898
|
Object.defineProperty(exports, "useProjectSummaries", {
|
|
43899
43899
|
enumerable: true,
|
|
43900
|
-
get: function () { return
|
|
43900
|
+
get: function () { return chunkZCIQBHH5_cjs.useProjectSummaries; }
|
|
43901
43901
|
});
|
|
43902
43902
|
Object.defineProperty(exports, "useProjectSummary", {
|
|
43903
43903
|
enumerable: true,
|
|
43904
|
-
get: function () { return
|
|
43904
|
+
get: function () { return chunkZCIQBHH5_cjs.useProjectSummary; }
|
|
43905
43905
|
});
|
|
43906
43906
|
Object.defineProperty(exports, "useRenderTaskPerson", {
|
|
43907
43907
|
enumerable: true,
|
|
43908
|
-
get: function () { return
|
|
43908
|
+
get: function () { return chunkZCIQBHH5_cjs.useRenderTaskPerson; }
|
|
43909
43909
|
});
|
|
43910
43910
|
Object.defineProperty(exports, "useRequiredLabels", {
|
|
43911
43911
|
enumerable: true,
|
|
43912
|
-
get: function () { return
|
|
43912
|
+
get: function () { return chunkZCIQBHH5_cjs.useRequiredLabels; }
|
|
43913
43913
|
});
|
|
43914
43914
|
Object.defineProperty(exports, "useTaskPeople", {
|
|
43915
43915
|
enumerable: true,
|
|
43916
|
-
get: function () { return
|
|
43916
|
+
get: function () { return chunkZCIQBHH5_cjs.useTaskPeople; }
|
|
43917
43917
|
});
|
|
43918
43918
|
Object.defineProperty(exports, "useWorkflowsPageState", {
|
|
43919
43919
|
enumerable: true,
|
|
43920
|
-
get: function () { return
|
|
43920
|
+
get: function () { return chunkZCIQBHH5_cjs.useWorkflowsPageState; }
|
|
43921
43921
|
});
|
|
43922
43922
|
Object.defineProperty(exports, "workflowRunView", {
|
|
43923
43923
|
enumerable: true,
|
|
43924
|
-
get: function () { return
|
|
43924
|
+
get: function () { return chunkZCIQBHH5_cjs.workflowRunView; }
|
|
43925
43925
|
});
|
|
43926
43926
|
Object.defineProperty(exports, "AgentSteps", {
|
|
43927
43927
|
enumerable: true,
|
|
43928
|
-
get: function () { return
|
|
43928
|
+
get: function () { return chunkOPH4UZQN_cjs.AgentSteps; }
|
|
43929
43929
|
});
|
|
43930
43930
|
Object.defineProperty(exports, "AnswerTable", {
|
|
43931
43931
|
enumerable: true,
|
|
43932
|
-
get: function () { return
|
|
43932
|
+
get: function () { return chunkOPH4UZQN_cjs.AnswerTable; }
|
|
43933
43933
|
});
|
|
43934
43934
|
Object.defineProperty(exports, "ArbiChat", {
|
|
43935
43935
|
enumerable: true,
|
|
43936
|
-
get: function () { return
|
|
43936
|
+
get: function () { return chunkOPH4UZQN_cjs.ArbiChat; }
|
|
43937
43937
|
});
|
|
43938
43938
|
Object.defineProperty(exports, "AskAgainContext", {
|
|
43939
43939
|
enumerable: true,
|
|
43940
|
-
get: function () { return
|
|
43940
|
+
get: function () { return chunkOPH4UZQN_cjs.AskAgainContext; }
|
|
43941
43941
|
});
|
|
43942
43942
|
Object.defineProperty(exports, "ConnectedBranchControls", {
|
|
43943
43943
|
enumerable: true,
|
|
43944
|
-
get: function () { return
|
|
43944
|
+
get: function () { return chunkOPH4UZQN_cjs.ConnectedBranchControls; }
|
|
43945
43945
|
});
|
|
43946
43946
|
Object.defineProperty(exports, "ConnectedCitationRenderer", {
|
|
43947
43947
|
enumerable: true,
|
|
43948
|
-
get: function () { return
|
|
43948
|
+
get: function () { return chunkOPH4UZQN_cjs.ConnectedCitationRenderer; }
|
|
43949
43949
|
});
|
|
43950
43950
|
Object.defineProperty(exports, "ConnectedCompactConversation", {
|
|
43951
43951
|
enumerable: true,
|
|
43952
|
-
get: function () { return
|
|
43952
|
+
get: function () { return chunkOPH4UZQN_cjs.ConnectedCompactConversation; }
|
|
43953
43953
|
});
|
|
43954
43954
|
Object.defineProperty(exports, "ConnectedCompactLogin", {
|
|
43955
43955
|
enumerable: true,
|
|
43956
|
-
get: function () { return
|
|
43956
|
+
get: function () { return chunkOPH4UZQN_cjs.ConnectedCompactLogin; }
|
|
43957
43957
|
});
|
|
43958
43958
|
Object.defineProperty(exports, "ConnectedConversationDocumentPicker", {
|
|
43959
43959
|
enumerable: true,
|
|
43960
|
-
get: function () { return
|
|
43960
|
+
get: function () { return chunkOPH4UZQN_cjs.ConnectedConversationDocumentPicker; }
|
|
43961
43961
|
});
|
|
43962
43962
|
Object.defineProperty(exports, "ConnectedDangerZone", {
|
|
43963
43963
|
enumerable: true,
|
|
43964
|
-
get: function () { return
|
|
43964
|
+
get: function () { return chunkOPH4UZQN_cjs.ConnectedDangerZone; }
|
|
43965
43965
|
});
|
|
43966
43966
|
Object.defineProperty(exports, "ConnectedEmbeddedChat", {
|
|
43967
43967
|
enumerable: true,
|
|
43968
|
-
get: function () { return
|
|
43968
|
+
get: function () { return chunkOPH4UZQN_cjs.ConnectedEmbeddedChat; }
|
|
43969
43969
|
});
|
|
43970
43970
|
Object.defineProperty(exports, "ConnectedForgotPassword", {
|
|
43971
43971
|
enumerable: true,
|
|
43972
|
-
get: function () { return
|
|
43972
|
+
get: function () { return chunkOPH4UZQN_cjs.ConnectedForgotPassword; }
|
|
43973
43973
|
});
|
|
43974
43974
|
Object.defineProperty(exports, "ConnectedIdentityVerification", {
|
|
43975
43975
|
enumerable: true,
|
|
43976
|
-
get: function () { return
|
|
43976
|
+
get: function () { return chunkOPH4UZQN_cjs.ConnectedIdentityVerification; }
|
|
43977
43977
|
});
|
|
43978
43978
|
Object.defineProperty(exports, "ConnectedLoginPage", {
|
|
43979
43979
|
enumerable: true,
|
|
43980
|
-
get: function () { return
|
|
43980
|
+
get: function () { return chunkOPH4UZQN_cjs.ConnectedLoginPage; }
|
|
43981
43981
|
});
|
|
43982
43982
|
Object.defineProperty(exports, "ConnectedLogoutDialog", {
|
|
43983
43983
|
enumerable: true,
|
|
43984
|
-
get: function () { return
|
|
43984
|
+
get: function () { return chunkOPH4UZQN_cjs.ConnectedLogoutDialog; }
|
|
43985
43985
|
});
|
|
43986
43986
|
Object.defineProperty(exports, "ConnectedMessage", {
|
|
43987
43987
|
enumerable: true,
|
|
43988
|
-
get: function () { return
|
|
43988
|
+
get: function () { return chunkOPH4UZQN_cjs.ConnectedMessage; }
|
|
43989
43989
|
});
|
|
43990
43990
|
Object.defineProperty(exports, "ConnectedMessageArea", {
|
|
43991
43991
|
enumerable: true,
|
|
43992
|
-
get: function () { return
|
|
43992
|
+
get: function () { return chunkOPH4UZQN_cjs.ConnectedMessageArea; }
|
|
43993
43993
|
});
|
|
43994
43994
|
Object.defineProperty(exports, "ConnectedMessageList", {
|
|
43995
43995
|
enumerable: true,
|
|
43996
|
-
get: function () { return
|
|
43996
|
+
get: function () { return chunkOPH4UZQN_cjs.ConnectedMessageList; }
|
|
43997
43997
|
});
|
|
43998
43998
|
Object.defineProperty(exports, "ConnectedModelSelector", {
|
|
43999
43999
|
enumerable: true,
|
|
44000
|
-
get: function () { return
|
|
44000
|
+
get: function () { return chunkOPH4UZQN_cjs.ConnectedModelSelector; }
|
|
44001
44001
|
});
|
|
44002
44002
|
Object.defineProperty(exports, "ConnectedNotificationPreferences", {
|
|
44003
44003
|
enumerable: true,
|
|
44004
|
-
get: function () { return
|
|
44004
|
+
get: function () { return chunkOPH4UZQN_cjs.ConnectedNotificationPreferences; }
|
|
44005
44005
|
});
|
|
44006
44006
|
Object.defineProperty(exports, "ConnectedPasswordChangeDialog", {
|
|
44007
44007
|
enumerable: true,
|
|
44008
|
-
get: function () { return
|
|
44008
|
+
get: function () { return chunkOPH4UZQN_cjs.ConnectedPasswordChangeDialog; }
|
|
44009
44009
|
});
|
|
44010
44010
|
Object.defineProperty(exports, "ConnectedProfileCard", {
|
|
44011
44011
|
enumerable: true,
|
|
44012
|
-
get: function () { return
|
|
44012
|
+
get: function () { return chunkOPH4UZQN_cjs.ConnectedProfileCard; }
|
|
44013
44013
|
});
|
|
44014
44014
|
Object.defineProperty(exports, "ConnectedSecuritySection", {
|
|
44015
44015
|
enumerable: true,
|
|
44016
|
-
get: function () { return
|
|
44016
|
+
get: function () { return chunkOPH4UZQN_cjs.ConnectedSecuritySection; }
|
|
44017
44017
|
});
|
|
44018
44018
|
Object.defineProperty(exports, "ConnectedSessionsRow", {
|
|
44019
44019
|
enumerable: true,
|
|
44020
|
-
get: function () { return
|
|
44020
|
+
get: function () { return chunkOPH4UZQN_cjs.ConnectedSessionsRow; }
|
|
44021
44021
|
});
|
|
44022
44022
|
Object.defineProperty(exports, "ConnectedThreadsPreview", {
|
|
44023
44023
|
enumerable: true,
|
|
44024
|
-
get: function () { return
|
|
44024
|
+
get: function () { return chunkOPH4UZQN_cjs.ConnectedThreadsPreview; }
|
|
44025
44025
|
});
|
|
44026
44026
|
Object.defineProperty(exports, "ConversationComposer", {
|
|
44027
44027
|
enumerable: true,
|
|
44028
|
-
get: function () { return
|
|
44028
|
+
get: function () { return chunkOPH4UZQN_cjs.ConversationComposer; }
|
|
44029
44029
|
});
|
|
44030
44030
|
Object.defineProperty(exports, "EmbeddedChatPanel", {
|
|
44031
44031
|
enumerable: true,
|
|
44032
|
-
get: function () { return
|
|
44032
|
+
get: function () { return chunkOPH4UZQN_cjs.EmbeddedChatPanel; }
|
|
44033
44033
|
});
|
|
44034
44034
|
Object.defineProperty(exports, "MessageDetailsModal", {
|
|
44035
44035
|
enumerable: true,
|
|
44036
|
-
get: function () { return
|
|
44036
|
+
get: function () { return chunkOPH4UZQN_cjs.MessageDetailsModal; }
|
|
44037
44037
|
});
|
|
44038
44038
|
Object.defineProperty(exports, "MessageLiveSeconds", {
|
|
44039
44039
|
enumerable: true,
|
|
44040
|
-
get: function () { return
|
|
44040
|
+
get: function () { return chunkOPH4UZQN_cjs.MessageLiveSeconds; }
|
|
44041
44041
|
});
|
|
44042
44042
|
Object.defineProperty(exports, "PENDING_RECOVERY_KEY", {
|
|
44043
44043
|
enumerable: true,
|
|
44044
|
-
get: function () { return
|
|
44044
|
+
get: function () { return chunkOPH4UZQN_cjs.PENDING_RECOVERY_KEY; }
|
|
44045
44045
|
});
|
|
44046
44046
|
Object.defineProperty(exports, "PREMIUM_TIER_TAG", {
|
|
44047
44047
|
enumerable: true,
|
|
44048
|
-
get: function () { return
|
|
44048
|
+
get: function () { return chunkOPH4UZQN_cjs.PREMIUM_TIER_TAG; }
|
|
44049
44049
|
});
|
|
44050
44050
|
Object.defineProperty(exports, "RunningSubagents", {
|
|
44051
44051
|
enumerable: true,
|
|
44052
|
-
get: function () { return
|
|
44052
|
+
get: function () { return chunkOPH4UZQN_cjs.RunningSubagents; }
|
|
44053
44053
|
});
|
|
44054
44054
|
Object.defineProperty(exports, "STANDARD_TIER_TAG", {
|
|
44055
44055
|
enumerable: true,
|
|
44056
|
-
get: function () { return
|
|
44056
|
+
get: function () { return chunkOPH4UZQN_cjs.STANDARD_TIER_TAG; }
|
|
44057
44057
|
});
|
|
44058
44058
|
Object.defineProperty(exports, "WorkflowStepMessage", {
|
|
44059
44059
|
enumerable: true,
|
|
44060
|
-
get: function () { return
|
|
44060
|
+
get: function () { return chunkOPH4UZQN_cjs.WorkflowStepMessage; }
|
|
44061
44061
|
});
|
|
44062
44062
|
Object.defineProperty(exports, "backUpOnSignup", {
|
|
44063
44063
|
enumerable: true,
|
|
44064
|
-
get: function () { return
|
|
44064
|
+
get: function () { return chunkOPH4UZQN_cjs.backUpOnSignup; }
|
|
44065
44065
|
});
|
|
44066
44066
|
Object.defineProperty(exports, "createRemoteControl", {
|
|
44067
44067
|
enumerable: true,
|
|
44068
|
-
get: function () { return
|
|
44068
|
+
get: function () { return chunkOPH4UZQN_cjs.createRemoteControl; }
|
|
44069
44069
|
});
|
|
44070
44070
|
Object.defineProperty(exports, "defaultHost", {
|
|
44071
44071
|
enumerable: true,
|
|
44072
|
-
get: function () { return
|
|
44072
|
+
get: function () { return chunkOPH4UZQN_cjs.defaultHost; }
|
|
44073
44073
|
});
|
|
44074
44074
|
Object.defineProperty(exports, "renderConnectedUser", {
|
|
44075
44075
|
enumerable: true,
|
|
44076
|
-
get: function () { return
|
|
44076
|
+
get: function () { return chunkOPH4UZQN_cjs.renderConnectedUser; }
|
|
44077
44077
|
});
|
|
44078
44078
|
Object.defineProperty(exports, "renderSessionStatusIcon", {
|
|
44079
44079
|
enumerable: true,
|
|
44080
|
-
get: function () { return
|
|
44080
|
+
get: function () { return chunkOPH4UZQN_cjs.renderSessionStatusIcon; }
|
|
44081
44081
|
});
|
|
44082
44082
|
Object.defineProperty(exports, "resolveSsoName", {
|
|
44083
44083
|
enumerable: true,
|
|
44084
|
-
get: function () { return
|
|
44084
|
+
get: function () { return chunkOPH4UZQN_cjs.resolveSsoName; }
|
|
44085
44085
|
});
|
|
44086
44086
|
Object.defineProperty(exports, "useAuthPages", {
|
|
44087
44087
|
enumerable: true,
|
|
44088
|
-
get: function () { return
|
|
44088
|
+
get: function () { return chunkOPH4UZQN_cjs.useAuthPages; }
|
|
44089
44089
|
});
|
|
44090
44090
|
Object.defineProperty(exports, "useContextualHints", {
|
|
44091
44091
|
enumerable: true,
|
|
44092
|
-
get: function () { return
|
|
44092
|
+
get: function () { return chunkOPH4UZQN_cjs.useContextualHints; }
|
|
44093
44093
|
});
|
|
44094
44094
|
Object.defineProperty(exports, "useModelPicker", {
|
|
44095
44095
|
enumerable: true,
|
|
44096
|
-
get: function () { return
|
|
44096
|
+
get: function () { return chunkOPH4UZQN_cjs.useModelPicker; }
|
|
44097
44097
|
});
|
|
44098
44098
|
Object.defineProperty(exports, "useOpenChunk", {
|
|
44099
44099
|
enumerable: true,
|
|
44100
|
-
get: function () { return
|
|
44100
|
+
get: function () { return chunkOPH4UZQN_cjs.useOpenChunk; }
|
|
44101
44101
|
});
|
|
44102
44102
|
Object.defineProperty(exports, "useOpenWorkspaceIcon", {
|
|
44103
44103
|
enumerable: true,
|
|
44104
|
-
get: function () { return
|
|
44104
|
+
get: function () { return chunkOPH4UZQN_cjs.useOpenWorkspaceIcon; }
|
|
44105
44105
|
});
|
|
44106
44106
|
Object.defineProperty(exports, "useRemoteControlActions", {
|
|
44107
44107
|
enumerable: true,
|
|
44108
|
-
get: function () { return
|
|
44108
|
+
get: function () { return chunkOPH4UZQN_cjs.useRemoteControlActions; }
|
|
44109
44109
|
});
|
|
44110
44110
|
Object.defineProperty(exports, "useRemoteControlHandlers", {
|
|
44111
44111
|
enumerable: true,
|
|
44112
|
-
get: function () { return
|
|
44112
|
+
get: function () { return chunkOPH4UZQN_cjs.useRemoteControlHandlers; }
|
|
44113
44113
|
});
|
|
44114
44114
|
Object.defineProperty(exports, "useSsoSignIn", {
|
|
44115
44115
|
enumerable: true,
|
|
44116
|
-
get: function () { return
|
|
44116
|
+
get: function () { return chunkOPH4UZQN_cjs.useSsoSignIn; }
|
|
44117
44117
|
});
|
|
44118
44118
|
Object.defineProperty(exports, "useWorkspaceDocTitles", {
|
|
44119
44119
|
enumerable: true,
|
|
44120
|
-
get: function () { return
|
|
44120
|
+
get: function () { return chunkOPH4UZQN_cjs.useWorkspaceDocTitles; }
|
|
44121
44121
|
});
|
|
44122
44122
|
Object.defineProperty(exports, "ConnectedWorkflowStart", {
|
|
44123
44123
|
enumerable: true,
|
|
44124
|
-
get: function () { return
|
|
44124
|
+
get: function () { return chunkQOXK5O6M_cjs.ConnectedWorkflowStart; }
|
|
44125
44125
|
});
|
|
44126
44126
|
Object.defineProperty(exports, "PROMPT_BINDINGS", {
|
|
44127
44127
|
enumerable: true,
|
|
44128
|
-
get: function () { return
|
|
44128
|
+
get: function () { return chunkQOXK5O6M_cjs.PROMPT_BINDINGS; }
|
|
44129
44129
|
});
|
|
44130
44130
|
Object.defineProperty(exports, "parseTypedSkill", {
|
|
44131
44131
|
enumerable: true,
|
|
44132
|
-
get: function () { return
|
|
44132
|
+
get: function () { return chunkQOXK5O6M_cjs.parseTypedSkill; }
|
|
44133
44133
|
});
|
|
44134
44134
|
Object.defineProperty(exports, "useLaunchWorkflow", {
|
|
44135
44135
|
enumerable: true,
|
|
44136
|
-
get: function () { return
|
|
44136
|
+
get: function () { return chunkQOXK5O6M_cjs.useLaunchWorkflow; }
|
|
44137
44137
|
});
|
|
44138
44138
|
Object.defineProperty(exports, "useSlashItems", {
|
|
44139
44139
|
enumerable: true,
|
|
44140
|
-
get: function () { return
|
|
44140
|
+
get: function () { return chunkQOXK5O6M_cjs.useSlashItems; }
|
|
44141
44141
|
});
|
|
44142
44142
|
Object.defineProperty(exports, "useSlashMenuItems", {
|
|
44143
44143
|
enumerable: true,
|
|
44144
|
-
get: function () { return
|
|
44144
|
+
get: function () { return chunkQOXK5O6M_cjs.useSlashMenuItems; }
|
|
44145
44145
|
});
|
|
44146
44146
|
Object.defineProperty(exports, "useSlashSkillWorkflows", {
|
|
44147
44147
|
enumerable: true,
|
|
44148
|
-
get: function () { return
|
|
44148
|
+
get: function () { return chunkQOXK5O6M_cjs.useSlashSkillWorkflows; }
|
|
44149
44149
|
});
|
|
44150
44150
|
Object.defineProperty(exports, "useConnectedThreadActivity", {
|
|
44151
44151
|
enumerable: true,
|
|
44152
|
-
get: function () { return
|
|
44152
|
+
get: function () { return chunkSUYPXUE6_cjs.useConnectedThreadActivity; }
|
|
44153
44153
|
});
|
|
44154
44154
|
Object.defineProperty(exports, "DocumentUser", {
|
|
44155
44155
|
enumerable: true,
|
|
@@ -44157,23 +44157,23 @@ Object.defineProperty(exports, "DocumentUser", {
|
|
|
44157
44157
|
});
|
|
44158
44158
|
Object.defineProperty(exports, "useCanBrowseSkills", {
|
|
44159
44159
|
enumerable: true,
|
|
44160
|
-
get: function () { return
|
|
44160
|
+
get: function () { return chunkJSQQV23D_cjs.useCanBrowseSkills; }
|
|
44161
44161
|
});
|
|
44162
44162
|
Object.defineProperty(exports, "useIsExternalAccount", {
|
|
44163
44163
|
enumerable: true,
|
|
44164
|
-
get: function () { return
|
|
44164
|
+
get: function () { return chunkJSQQV23D_cjs.useIsExternalAccount; }
|
|
44165
44165
|
});
|
|
44166
44166
|
Object.defineProperty(exports, "useSkillsEnabled", {
|
|
44167
44167
|
enumerable: true,
|
|
44168
|
-
get: function () { return
|
|
44168
|
+
get: function () { return chunkJSQQV23D_cjs.useSkillsEnabled; }
|
|
44169
44169
|
});
|
|
44170
44170
|
Object.defineProperty(exports, "useWorkflowDefinitions", {
|
|
44171
44171
|
enumerable: true,
|
|
44172
|
-
get: function () { return
|
|
44172
|
+
get: function () { return chunkJSQQV23D_cjs.useWorkflowDefinitions; }
|
|
44173
44173
|
});
|
|
44174
44174
|
Object.defineProperty(exports, "useWorkflowTasks", {
|
|
44175
44175
|
enumerable: true,
|
|
44176
|
-
get: function () { return
|
|
44176
|
+
get: function () { return chunkJSQQV23D_cjs.useWorkflowTasks; }
|
|
44177
44177
|
});
|
|
44178
44178
|
Object.defineProperty(exports, "EMBEDDED_SELECTED_DOCS_KEY", {
|
|
44179
44179
|
enumerable: true,
|
|
@@ -44333,23 +44333,23 @@ Object.defineProperty(exports, "useDocumentFolders", {
|
|
|
44333
44333
|
});
|
|
44334
44334
|
Object.defineProperty(exports, "ConnectedWorkflowsTable", {
|
|
44335
44335
|
enumerable: true,
|
|
44336
|
-
get: function () { return
|
|
44336
|
+
get: function () { return chunkK6AUKKUN_cjs.ConnectedWorkflowsTable; }
|
|
44337
44337
|
});
|
|
44338
44338
|
Object.defineProperty(exports, "DEFAULT_CONNECTED_WORKFLOWS_TABLE_LABELS", {
|
|
44339
44339
|
enumerable: true,
|
|
44340
|
-
get: function () { return
|
|
44340
|
+
get: function () { return chunkK6AUKKUN_cjs.DEFAULT_CONNECTED_WORKFLOWS_TABLE_LABELS; }
|
|
44341
44341
|
});
|
|
44342
44342
|
Object.defineProperty(exports, "useConnectedWorkspaceRole", {
|
|
44343
44343
|
enumerable: true,
|
|
44344
|
-
get: function () { return
|
|
44344
|
+
get: function () { return chunkK6AUKKUN_cjs.useConnectedWorkspaceRole; }
|
|
44345
44345
|
});
|
|
44346
44346
|
Object.defineProperty(exports, "useDocxCommentTarget", {
|
|
44347
44347
|
enumerable: true,
|
|
44348
|
-
get: function () { return
|
|
44348
|
+
get: function () { return chunkK6AUKKUN_cjs.useDocxCommentTarget; }
|
|
44349
44349
|
});
|
|
44350
44350
|
Object.defineProperty(exports, "useNativeDocxSupport", {
|
|
44351
44351
|
enumerable: true,
|
|
44352
|
-
get: function () { return
|
|
44352
|
+
get: function () { return chunkK6AUKKUN_cjs.useNativeDocxSupport; }
|
|
44353
44353
|
});
|
|
44354
44354
|
Object.defineProperty(exports, "useOpenWorkflow", {
|
|
44355
44355
|
enumerable: true,
|