@arbidocs/blocks 0.4.141 → 0.4.143
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/agents/index.cjs +440 -436
- package/dist/agents/index.js +12 -8
- package/dist/chat/index.cjs +139 -138
- package/dist/chat/index.js +4 -3
- package/dist/{chunk-S24XEVPS.cjs → chunk-464YPRAE.cjs} +33 -2
- package/dist/chunk-464YPRAE.cjs.map +1 -0
- package/dist/{chunk-7YLJHTDC.cjs → chunk-5A2QQAF5.cjs} +11 -11
- package/dist/{chunk-7YLJHTDC.cjs.map → chunk-5A2QQAF5.cjs.map} +1 -1
- package/dist/{chunk-ON3TKY5Y.js → chunk-5YHEHEJT.js} +242 -4
- package/dist/chunk-5YHEHEJT.js.map +1 -0
- package/dist/chunk-76L6LOP3.cjs +308 -0
- package/dist/chunk-76L6LOP3.cjs.map +1 -0
- package/dist/chunk-AHDJXIUB.cjs +25 -0
- package/dist/chunk-AHDJXIUB.cjs.map +1 -0
- package/dist/chunk-AOSUHWIL.js +98 -0
- package/dist/chunk-AOSUHWIL.js.map +1 -0
- package/dist/{chunk-YFF3GTJQ.js → chunk-C44TDH54.js} +14 -1613
- package/dist/chunk-C44TDH54.js.map +1 -0
- package/dist/{chunk-GFRQG36Y.cjs → chunk-COCGRJLA.cjs} +213 -57
- package/dist/chunk-COCGRJLA.cjs.map +1 -0
- package/dist/chunk-CQCC7LE7.js +210 -0
- package/dist/chunk-CQCC7LE7.js.map +1 -0
- package/dist/{chunk-UGCKUXRV.js → chunk-CSI2B2H5.js} +3 -3
- package/dist/{chunk-UGCKUXRV.js.map → chunk-CSI2B2H5.js.map} +1 -1
- package/dist/{chunk-R26BK7YL.cjs → chunk-DTROMMDX.cjs} +4 -4
- package/dist/{chunk-R26BK7YL.cjs.map → chunk-DTROMMDX.cjs.map} +1 -1
- package/dist/{chunk-65THHQVB.cjs → chunk-ECW2R2KF.cjs} +27 -27
- package/dist/{chunk-65THHQVB.cjs.map → chunk-ECW2R2KF.cjs.map} +1 -1
- package/dist/{chunk-RI6DZA5X.js → chunk-EF4ZLKRM.js} +3 -3
- package/dist/{chunk-RI6DZA5X.js.map → chunk-EF4ZLKRM.js.map} +1 -1
- package/dist/{chunk-WS5EX7DN.cjs → chunk-EYKISBDO.cjs} +5 -5
- package/dist/{chunk-WS5EX7DN.cjs.map → chunk-EYKISBDO.cjs.map} +1 -1
- package/dist/chunk-FJETR2AS.js +561 -0
- package/dist/chunk-FJETR2AS.js.map +1 -0
- package/dist/{chunk-JO3EMZ4X.js → chunk-GWSGIZQ5.js} +3 -3
- package/dist/{chunk-JO3EMZ4X.js.map → chunk-GWSGIZQ5.js.map} +1 -1
- package/dist/{chunk-O6W6RW3B.js → chunk-H4D7WKDY.js} +207 -54
- package/dist/chunk-H4D7WKDY.js.map +1 -0
- package/dist/{chunk-OAQEUTNJ.cjs → chunk-HAOKT4LC.cjs} +5 -5
- package/dist/{chunk-OAQEUTNJ.cjs.map → chunk-HAOKT4LC.cjs.map} +1 -1
- package/dist/{chunk-YWY2KIX2.js → chunk-IJST4EBM.js} +13 -9
- package/dist/chunk-IJST4EBM.js.map +1 -0
- package/dist/{chunk-3RJN2VTL.js → chunk-IXWJGOM2.js} +3 -3
- package/dist/{chunk-3RJN2VTL.js.map → chunk-IXWJGOM2.js.map} +1 -1
- package/dist/{chunk-CYNF5PZI.js → chunk-J5CWKFSC.js} +3 -3
- package/dist/{chunk-CYNF5PZI.js.map → chunk-J5CWKFSC.js.map} +1 -1
- package/dist/{chunk-OWCEQKAR.cjs → chunk-JSTKEZBS.cjs} +21 -318
- package/dist/chunk-JSTKEZBS.cjs.map +1 -0
- package/dist/{chunk-TP6PLDNM.cjs → chunk-KMZWKSKO.cjs} +8 -8
- package/dist/{chunk-TP6PLDNM.cjs.map → chunk-KMZWKSKO.cjs.map} +1 -1
- package/dist/{chunk-C4WSHRR6.cjs → chunk-KPZZ5FHE.cjs} +32 -12
- package/dist/chunk-KPZZ5FHE.cjs.map +1 -0
- package/dist/{chunk-CKCBBYTA.js → chunk-KSHKTOY2.js} +5 -205
- package/dist/chunk-KSHKTOY2.js.map +1 -0
- package/dist/chunk-LJJJ6CYH.cjs +62 -0
- package/dist/chunk-LJJJ6CYH.cjs.map +1 -0
- package/dist/chunk-LPYEUD2D.cjs +1627 -0
- package/dist/chunk-LPYEUD2D.cjs.map +1 -0
- package/dist/chunk-MHFF5N65.cjs +101 -0
- package/dist/chunk-MHFF5N65.cjs.map +1 -0
- package/dist/{chunk-GYAUJ4KT.js → chunk-MTSKK3BN.js} +32 -3
- package/dist/chunk-MTSKK3BN.js.map +1 -0
- package/dist/chunk-NHZK64TQ.js +75 -0
- package/dist/chunk-NHZK64TQ.js.map +1 -0
- package/dist/{chunk-BPBSSMRB.js → chunk-NRFAWUVD.js} +3 -3
- package/dist/{chunk-BPBSSMRB.js.map → chunk-NRFAWUVD.js.map} +1 -1
- package/dist/chunk-NWNVWO6L.cjs +80 -0
- package/dist/chunk-NWNVWO6L.cjs.map +1 -0
- package/dist/{chunk-CQ4MFKFC.cjs → chunk-O2GW5IY6.cjs} +90 -86
- package/dist/chunk-O2GW5IY6.cjs.map +1 -0
- package/dist/{chunk-3BFGL2JL.cjs → chunk-ODRHHWHY.cjs} +4 -4
- package/dist/{chunk-3BFGL2JL.cjs.map → chunk-ODRHHWHY.cjs.map} +1 -1
- package/dist/{chunk-Y3KA6X7B.js → chunk-OVR3XMYL.js} +4 -4
- package/dist/{chunk-Y3KA6X7B.js.map → chunk-OVR3XMYL.js.map} +1 -1
- package/dist/{chunk-Y5KTM3V5.js → chunk-PDKM27DF.js} +17 -295
- package/dist/chunk-PDKM27DF.js.map +1 -0
- package/dist/{chunk-OAL3B2ZU.cjs → chunk-PLJ7PHWU.cjs} +5 -5
- package/dist/{chunk-OAL3B2ZU.cjs.map → chunk-PLJ7PHWU.cjs.map} +1 -1
- package/dist/{chunk-2UUNSHDI.cjs → chunk-RB7GX2VT.cjs} +59 -1682
- package/dist/chunk-RB7GX2VT.cjs.map +1 -0
- package/dist/chunk-RFIBUWLF.cjs +232 -0
- package/dist/chunk-RFIBUWLF.cjs.map +1 -0
- package/dist/chunk-RLWIUUQ5.js +23 -0
- package/dist/chunk-RLWIUUQ5.js.map +1 -0
- package/dist/{chunk-MIDXCYZB.cjs → chunk-RQ2Y7USX.cjs} +15 -235
- package/dist/chunk-RQ2Y7USX.cjs.map +1 -0
- package/dist/chunk-SV65E4QW.js +58 -0
- package/dist/chunk-SV65E4QW.js.map +1 -0
- package/dist/{chunk-LYUO3E6V.js → chunk-SZOFGU7W.js} +3 -3
- package/dist/{chunk-LYUO3E6V.js.map → chunk-SZOFGU7W.js.map} +1 -1
- package/dist/chunk-T5B7FM7S.js +1602 -0
- package/dist/chunk-T5B7FM7S.js.map +1 -0
- package/dist/{chunk-YNIBUKV5.js → chunk-TBEVGWY3.js} +32 -14
- package/dist/chunk-TBEVGWY3.js.map +1 -0
- package/dist/{chunk-MJCCBMM5.cjs → chunk-TC3RQNEX.cjs} +6 -80
- package/dist/chunk-TC3RQNEX.cjs.map +1 -0
- package/dist/chunk-TZGBRLPK.js +288 -0
- package/dist/chunk-TZGBRLPK.js.map +1 -0
- package/dist/chunk-U6YVZDOV.cjs +574 -0
- package/dist/chunk-U6YVZDOV.cjs.map +1 -0
- package/dist/{chunk-QIMVTGKS.cjs → chunk-U73KPFYH.cjs} +255 -2
- package/dist/chunk-U73KPFYH.cjs.map +1 -0
- package/dist/{chunk-HFGXA5CL.cjs → chunk-UTTTJSQU.cjs} +4 -4
- package/dist/{chunk-HFGXA5CL.cjs.map → chunk-UTTTJSQU.cjs.map} +1 -1
- package/dist/{chunk-DLBUFHLY.js → chunk-VTTZZ4FN.js} +4 -74
- package/dist/chunk-VTTZZ4FN.js.map +1 -0
- package/dist/{chunk-5FTIHRZH.cjs → chunk-XVUOMWMD.cjs} +4 -4
- package/dist/{chunk-5FTIHRZH.cjs.map → chunk-XVUOMWMD.cjs.map} +1 -1
- package/dist/{chunk-3ZYOASAX.js → chunk-Y4ATWQGV.js} +3 -3
- package/dist/{chunk-3ZYOASAX.js.map → chunk-Y4ATWQGV.js.map} +1 -1
- package/dist/{chunk-444XKG46.js → chunk-YKQ2DPIP.js} +3 -3
- package/dist/{chunk-444XKG46.js.map → chunk-YKQ2DPIP.js.map} +1 -1
- package/dist/{chunk-HEMU73OP.cjs → chunk-YSHIC4NJ.cjs} +4 -4
- package/dist/{chunk-HEMU73OP.cjs.map → chunk-YSHIC4NJ.cjs.map} +1 -1
- package/dist/{chunk-5BXEYYH6.js → chunk-ZM26YEOT.js} +3 -3
- package/dist/{chunk-5BXEYYH6.js.map → chunk-ZM26YEOT.js.map} +1 -1
- package/dist/citations/index.cjs +12 -12
- package/dist/citations/index.js +3 -3
- package/dist/connect/docx.cjs +36 -7
- package/dist/connect/docx.cjs.map +1 -1
- package/dist/connect/docx.d.ts +9 -2
- package/dist/connect/docx.js +30 -6
- package/dist/connect/docx.js.map +1 -1
- package/dist/connect/index.cjs +805 -630
- package/dist/connect/index.cjs.map +1 -1
- package/dist/connect/index.d.ts +2 -0
- package/dist/connect/index.js +639 -509
- package/dist/connect/index.js.map +1 -1
- package/dist/connection/ConnectedSettings.d.ts +3 -2
- package/dist/connection/docx/ConnectedNativeDocxComparison.d.ts +5 -0
- package/dist/connection/docx/ConnectedNativeDocxEditor.d.ts +16 -0
- package/dist/connection/{ConnectedStreamedWordArtifact.d.ts → docx/ConnectedStreamedWordArtifact.d.ts} +1 -1
- package/dist/connection/docx/support.d.ts +27 -0
- package/dist/connection/docx/useConnectedDocxReferences.d.ts +2 -0
- package/dist/connection/docx/useConnectedHouseTemplate.d.ts +2 -0
- package/dist/connection/settings-page/ConnectedAccountSettings.d.ts +35 -0
- package/dist/connection/settings-page/ConnectedMailSettings.d.ts +13 -0
- package/dist/connection/settings-page/ConnectedPremiumModels.d.ts +1 -0
- package/dist/connection/settings-page/ConnectedPrivacySettings.d.ts +12 -0
- package/dist/connection/settings-page/ConnectedSettingsPage.d.ts +29 -0
- package/dist/connection/settings-page/SessionStatusIcon.d.ts +7 -0
- package/dist/connection/settings-page/index.d.ts +6 -0
- package/dist/docx/index.cjs +17 -63
- package/dist/docx/index.cjs.map +1 -1
- package/dist/docx/index.d.ts +1 -0
- package/dist/docx/index.js +2 -64
- package/dist/docx/index.js.map +1 -1
- package/dist/docx/template/candidates.d.ts +16 -0
- package/dist/facts/index.cjs +4 -4
- package/dist/facts/index.js +3 -3
- package/dist/files/index.cjs +3 -3
- package/dist/files/index.js +2 -2
- package/dist/home/index.cjs +20 -20
- package/dist/home/index.js +4 -4
- package/dist/index.cjs +793 -755
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.js +25 -19
- package/dist/index.js.map +1 -1
- package/dist/lib/deep-link.d.ts +46 -0
- package/dist/lib/sidebar-mode.d.ts +1 -3
- package/dist/lib/use-close-on-escape.d.ts +6 -0
- package/dist/provider/BlocksProvider.d.ts +5 -1
- package/dist/provider/settings-section.d.ts +9 -0
- package/dist/retrieval/index.cjs +4 -4
- package/dist/retrieval/index.js +2 -2
- package/dist/settings/AppearanceSettings.d.ts +18 -0
- package/dist/settings/ServerConnectionControls.d.ts +16 -0
- package/dist/settings/SettingsPage.d.ts +31 -0
- package/dist/settings/index.cjs +189 -251
- package/dist/settings/index.cjs.map +1 -1
- package/dist/settings/index.d.ts +3 -1
- package/dist/settings/index.js +89 -200
- package/dist/settings/index.js.map +1 -1
- package/dist/shell/ShellSidebar.d.ts +37 -0
- package/dist/shell/Sidebar.d.ts +6 -6
- package/dist/shell/index.cjs +63 -50
- package/dist/shell/index.d.ts +4 -1
- package/dist/shell/index.js +5 -4
- package/dist/shell/types.d.ts +18 -0
- package/dist/shell/use-sidebar-controller.d.ts +59 -0
- package/dist/site/index.cjs +74 -73
- package/dist/site/index.js +3 -2
- package/dist/studio/index.cjs +80 -78
- package/dist/studio/index.cjs.map +1 -1
- package/dist/studio/index.js +10 -8
- package/dist/studio/index.js.map +1 -1
- package/dist/workflow-canvas/index.cjs +64 -60
- package/dist/workflow-canvas/index.cjs.map +1 -1
- package/dist/workflow-canvas/index.js +12 -8
- package/dist/workflow-canvas/index.js.map +1 -1
- package/dist/workspaces/index.cjs +3 -3
- package/dist/workspaces/index.js +2 -2
- package/node_modules/@arbidocs/coedit/package.json +1 -1
- package/package.json +4 -4
- package/dist/chunk-2UUNSHDI.cjs.map +0 -1
- package/dist/chunk-4TR5QCCX.cjs +0 -43
- package/dist/chunk-4TR5QCCX.cjs.map +0 -1
- package/dist/chunk-7NDW4KF4.cjs +0 -112
- package/dist/chunk-7NDW4KF4.cjs.map +0 -1
- package/dist/chunk-C4WSHRR6.cjs.map +0 -1
- package/dist/chunk-CKCBBYTA.js.map +0 -1
- package/dist/chunk-CQ4MFKFC.cjs.map +0 -1
- package/dist/chunk-DLBUFHLY.js.map +0 -1
- package/dist/chunk-ETXYVO6E.js +0 -109
- package/dist/chunk-ETXYVO6E.js.map +0 -1
- package/dist/chunk-GFRQG36Y.cjs.map +0 -1
- package/dist/chunk-GYAUJ4KT.js.map +0 -1
- package/dist/chunk-MCKOZACC.js +0 -41
- package/dist/chunk-MCKOZACC.js.map +0 -1
- package/dist/chunk-MIDXCYZB.cjs.map +0 -1
- package/dist/chunk-MJCCBMM5.cjs.map +0 -1
- package/dist/chunk-O6W6RW3B.js.map +0 -1
- package/dist/chunk-ON3TKY5Y.js.map +0 -1
- package/dist/chunk-OWCEQKAR.cjs.map +0 -1
- package/dist/chunk-QIMVTGKS.cjs.map +0 -1
- package/dist/chunk-S24XEVPS.cjs.map +0 -1
- package/dist/chunk-Y5KTM3V5.js.map +0 -1
- package/dist/chunk-YFF3GTJQ.js.map +0 -1
- package/dist/chunk-YNIBUKV5.js.map +0 -1
- package/dist/chunk-YWY2KIX2.js.map +0 -1
- package/dist/connection/ConnectedNativeDocxEditor.d.ts +0 -6
package/dist/connect/index.cjs
CHANGED
|
@@ -1,27 +1,31 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
'use strict';
|
|
3
3
|
|
|
4
|
-
var
|
|
5
|
-
var
|
|
4
|
+
var chunkU73KPFYH_cjs = require('../chunk-U73KPFYH.cjs');
|
|
5
|
+
var chunkODRHHWHY_cjs = require('../chunk-ODRHHWHY.cjs');
|
|
6
|
+
var chunkU6YVZDOV_cjs = require('../chunk-U6YVZDOV.cjs');
|
|
6
7
|
var chunkJZNXRMLH_cjs = require('../chunk-JZNXRMLH.cjs');
|
|
7
|
-
var chunk7NDW4KF4_cjs = require('../chunk-7NDW4KF4.cjs');
|
|
8
8
|
var chunkGFNELPDP_cjs = require('../chunk-GFNELPDP.cjs');
|
|
9
9
|
var chunkJH6JTI76_cjs = require('../chunk-JH6JTI76.cjs');
|
|
10
|
-
require('../chunk-
|
|
10
|
+
require('../chunk-464YPRAE.cjs');
|
|
11
11
|
require('../chunk-V5OAXIBN.cjs');
|
|
12
12
|
require('../chunk-5FYU7ZIU.cjs');
|
|
13
13
|
var chunkO4YPVYPO_cjs = require('../chunk-O4YPVYPO.cjs');
|
|
14
|
-
var
|
|
14
|
+
var chunkHAOKT4LC_cjs = require('../chunk-HAOKT4LC.cjs');
|
|
15
15
|
var chunkV46W7YLI_cjs = require('../chunk-V46W7YLI.cjs');
|
|
16
16
|
var chunkO6IEZDRC_cjs = require('../chunk-O6IEZDRC.cjs');
|
|
17
|
+
require('../chunk-LJJJ6CYH.cjs');
|
|
17
18
|
var chunkI2QSDQQV_cjs = require('../chunk-I2QSDQQV.cjs');
|
|
18
19
|
require('../chunk-RC25WMVB.cjs');
|
|
19
|
-
var
|
|
20
|
-
require('../chunk-
|
|
21
|
-
var
|
|
20
|
+
var chunkRB7GX2VT_cjs = require('../chunk-RB7GX2VT.cjs');
|
|
21
|
+
var chunkRFIBUWLF_cjs = require('../chunk-RFIBUWLF.cjs');
|
|
22
|
+
var chunkLPYEUD2D_cjs = require('../chunk-LPYEUD2D.cjs');
|
|
23
|
+
require('../chunk-EYKISBDO.cjs');
|
|
24
|
+
require('../chunk-AHDJXIUB.cjs');
|
|
25
|
+
var chunkRQ2Y7USX_cjs = require('../chunk-RQ2Y7USX.cjs');
|
|
22
26
|
require('../chunk-ZW6FPIFC.cjs');
|
|
23
27
|
require('../chunk-DETZZBG2.cjs');
|
|
24
|
-
require('../chunk-
|
|
28
|
+
require('../chunk-DTROMMDX.cjs');
|
|
25
29
|
var chunkV4ISCZJ7_cjs = require('../chunk-V4ISCZJ7.cjs');
|
|
26
30
|
var chunk2EI7NCUA_cjs = require('../chunk-2EI7NCUA.cjs');
|
|
27
31
|
var chunkC2CWWEHO_cjs = require('../chunk-C2CWWEHO.cjs');
|
|
@@ -29,19 +33,20 @@ var chunkQVBZESYQ_cjs = require('../chunk-QVBZESYQ.cjs');
|
|
|
29
33
|
require('../chunk-ADOKTJHV.cjs');
|
|
30
34
|
var chunk6YTHQ73P_cjs = require('../chunk-6YTHQ73P.cjs');
|
|
31
35
|
var chunkBIXHB4LV_cjs = require('../chunk-BIXHB4LV.cjs');
|
|
32
|
-
var
|
|
36
|
+
var chunkDWZXSPMB_cjs = require('../chunk-DWZXSPMB.cjs');
|
|
37
|
+
var chunk7RGLTF76_cjs = require('../chunk-7RGLTF76.cjs');
|
|
38
|
+
var chunk5A2QQAF5_cjs = require('../chunk-5A2QQAF5.cjs');
|
|
33
39
|
require('../chunk-B6MVQCXW.cjs');
|
|
34
40
|
var chunkJKB7WT7L_cjs = require('../chunk-JKB7WT7L.cjs');
|
|
35
|
-
var
|
|
41
|
+
var chunkJSTKEZBS_cjs = require('../chunk-JSTKEZBS.cjs');
|
|
42
|
+
require('../chunk-76L6LOP3.cjs');
|
|
36
43
|
require('../chunk-7UTB4PHM.cjs');
|
|
37
44
|
require('../chunk-32HW2Q33.cjs');
|
|
38
45
|
require('../chunk-FX3K6LNZ.cjs');
|
|
39
|
-
var chunkDWZXSPMB_cjs = require('../chunk-DWZXSPMB.cjs');
|
|
40
|
-
var chunk7RGLTF76_cjs = require('../chunk-7RGLTF76.cjs');
|
|
41
46
|
require('../chunk-PPCATBOY.cjs');
|
|
42
47
|
require('../chunk-MHVNT4J3.cjs');
|
|
43
|
-
var
|
|
44
|
-
var
|
|
48
|
+
var chunkXVUOMWMD_cjs = require('../chunk-XVUOMWMD.cjs');
|
|
49
|
+
var chunkKPZZ5FHE_cjs = require('../chunk-KPZZ5FHE.cjs');
|
|
45
50
|
var chunkULWRNGGE_cjs = require('../chunk-ULWRNGGE.cjs');
|
|
46
51
|
var chunkKDG6FER6_cjs = require('../chunk-KDG6FER6.cjs');
|
|
47
52
|
require('../chunk-DES3K4SD.cjs');
|
|
@@ -135,7 +140,7 @@ function ConnectedWorkspaceActivity({
|
|
|
135
140
|
[feed.data]
|
|
136
141
|
);
|
|
137
142
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
138
|
-
|
|
143
|
+
chunkHAOKT4LC_cjs.WorkspaceActivityList,
|
|
139
144
|
{
|
|
140
145
|
...listProps,
|
|
141
146
|
items,
|
|
@@ -545,7 +550,7 @@ function NotificationCenter({
|
|
|
545
550
|
// Filter-aware: the filtered total whenever a filter applies.
|
|
546
551
|
count: filtered.length,
|
|
547
552
|
actions: /* @__PURE__ */ jsxRuntime.jsx(
|
|
548
|
-
|
|
553
|
+
chunkRQ2Y7USX_cjs.TriStateFilterMenu,
|
|
549
554
|
{
|
|
550
555
|
testId: "notifications-filter-button",
|
|
551
556
|
title: "Filter",
|
|
@@ -563,7 +568,7 @@ function NotificationCenter({
|
|
|
563
568
|
}
|
|
564
569
|
];
|
|
565
570
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col h-full bg-background", "data-testid": "notifications-page", children: [
|
|
566
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
571
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkU73KPFYH_cjs.DraggableHeader, { children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
567
572
|
chunk7RGLTF76_cjs.TabHeader,
|
|
568
573
|
{
|
|
569
574
|
tabs,
|
|
@@ -808,7 +813,7 @@ function ConnectedWorkspaceNotificationMenu({
|
|
|
808
813
|
});
|
|
809
814
|
if (!workspaceId) return null;
|
|
810
815
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
811
|
-
|
|
816
|
+
chunkHAOKT4LC_cjs.WorkspaceNotificationMenu,
|
|
812
817
|
{
|
|
813
818
|
...menuProps,
|
|
814
819
|
level,
|
|
@@ -827,7 +832,7 @@ function ConnectedThreadFollow({
|
|
|
827
832
|
enabled: status === "authenticated"
|
|
828
833
|
});
|
|
829
834
|
if (!conversationId) return null;
|
|
830
|
-
const Control = as === "menu-item" ?
|
|
835
|
+
const Control = as === "menu-item" ? chunkHAOKT4LC_cjs.ThreadFollowMenuItem : chunkHAOKT4LC_cjs.ThreadFollowButton;
|
|
831
836
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
832
837
|
Control,
|
|
833
838
|
{
|
|
@@ -838,255 +843,6 @@ function ConnectedThreadFollow({
|
|
|
838
843
|
}
|
|
839
844
|
);
|
|
840
845
|
}
|
|
841
|
-
function useConnectedWorkspaceRole() {
|
|
842
|
-
const { workspaceId, live, userId, ensureWorkspaceOpen } = chunkGFNELPDP_cjs.useConnectedWorkspace();
|
|
843
|
-
const { data: members = [] } = react$1.useWorkspaceUsers(workspaceId ?? void 0, {
|
|
844
|
-
enabled: live && !!workspaceId,
|
|
845
|
-
beforeFetch: ensureWorkspaceOpen
|
|
846
|
-
});
|
|
847
|
-
const role = members.find((m) => m.user.external_id === userId)?.role;
|
|
848
|
-
return {
|
|
849
|
-
members,
|
|
850
|
-
role,
|
|
851
|
-
/** An owner or a collaborator edits, pauses, resumes and runs what is shared with the workspace. */
|
|
852
|
-
canEditShared: role === "owner" || role === "collaborator",
|
|
853
|
-
/** With an item's creator, the only one who deletes it. */
|
|
854
|
-
isWorkspaceOwner: role === "owner"
|
|
855
|
-
};
|
|
856
|
-
}
|
|
857
|
-
var DEFAULT_CONNECTED_WORKFLOWS_TABLE_LABELS = {
|
|
858
|
-
updateFailed: "Could not update the workflow",
|
|
859
|
-
deleteTitle: "Delete workflow",
|
|
860
|
-
deleteOne: (name) => `Delete \u201C${name}\u201D? Threads it already created stay.`,
|
|
861
|
-
deleteMany: (count) => `Delete ${count} workflows? Threads they already created stay.`,
|
|
862
|
-
runFailed: "The workflow failed. You can send an error report from its history.",
|
|
863
|
-
noThread: "The workflow did not create a thread.",
|
|
864
|
-
documentAction: (workflow) => workflow.action?.type === "email_documents" ? "Preparing your document email" : "Reviewing documents",
|
|
865
|
-
untitledTask: "Untitled thread"
|
|
866
|
-
};
|
|
867
|
-
var messageOf = (error) => error instanceof Error ? error.message : "";
|
|
868
|
-
function ConnectedWorkflowsTable({
|
|
869
|
-
filter,
|
|
870
|
-
describeTrigger = (w) => chunk2UUNSHDI_cjs.workflowTriggerType(w).replaceAll("_", " "),
|
|
871
|
-
formatDate: formatDate2 = chunkKDG6FER6_cjs.fmtDate,
|
|
872
|
-
onViewRuns,
|
|
873
|
-
connectedLabels,
|
|
874
|
-
...tableProps
|
|
875
|
-
}) {
|
|
876
|
-
const l = { ...DEFAULT_CONNECTED_WORKFLOWS_TABLE_LABELS, ...connectedLabels };
|
|
877
|
-
const { notify, confirm, openConversation } = chunkC4WSHRR6_cjs.useBlocksEnvironment();
|
|
878
|
-
const { canEditShared, isWorkspaceOwner } = useConnectedWorkspaceRole();
|
|
879
|
-
const { data: saved = [], isLoading } = react$1.useWorkflows({ live: true });
|
|
880
|
-
const { data: conversations, refetch } = chunkJZNXRMLH_cjs.useConnectedConversations({ live: true });
|
|
881
|
-
const { data: agents = [] } = react$1.useAgents();
|
|
882
|
-
const update = react$1.useUpdateWorkflow();
|
|
883
|
-
const remove = react$1.useDeleteWorkflow();
|
|
884
|
-
const run = react$1.useRunWorkflow();
|
|
885
|
-
const [busyId, setBusyId] = react.useState(null);
|
|
886
|
-
const workflows = react.useMemo(() => filter ? saved.filter(filter) : saved, [saved, filter]);
|
|
887
|
-
const firingStamp = saved.map((w) => `${w.external_id}:${w.last_fired_at ?? ""}`).join("|");
|
|
888
|
-
react.useEffect(() => {
|
|
889
|
-
void refetch?.();
|
|
890
|
-
}, [firingStamp, refetch]);
|
|
891
|
-
const lastRuns = react.useMemo(() => {
|
|
892
|
-
const out = {};
|
|
893
|
-
for (const c of conversations) {
|
|
894
|
-
const id = c.workflow_ext_id;
|
|
895
|
-
if (id && (!out[id] || Date.parse(c.created_at) > Date.parse(out[id].at)))
|
|
896
|
-
out[id] = { conversationId: c.external_id, at: c.created_at, threadStatus: c.status };
|
|
897
|
-
}
|
|
898
|
-
return out;
|
|
899
|
-
}, [conversations]);
|
|
900
|
-
const agentNames = react.useMemo(
|
|
901
|
-
() => Object.fromEntries(agents.map((a) => [a.external_id, a.given_name || a.email])),
|
|
902
|
-
[agents]
|
|
903
|
-
);
|
|
904
|
-
const taskNames = react.useMemo(
|
|
905
|
-
() => Object.fromEntries(
|
|
906
|
-
conversations.filter((c) => c.status != null).map((c) => [c.external_id, c.title || l.untitledTask])
|
|
907
|
-
),
|
|
908
|
-
[conversations, l.untitledTask]
|
|
909
|
-
);
|
|
910
|
-
const act = async (workflow, action) => {
|
|
911
|
-
setBusyId(workflow.external_id);
|
|
912
|
-
try {
|
|
913
|
-
await action();
|
|
914
|
-
} catch (error) {
|
|
915
|
-
notify(messageOf(error) || l.updateFailed, "error");
|
|
916
|
-
} finally {
|
|
917
|
-
setBusyId(null);
|
|
918
|
-
}
|
|
919
|
-
};
|
|
920
|
-
const setActive = (workflow, active) => act(workflow, () => update.mutateAsync({ workflowId: workflow.external_id, patch: { active } }));
|
|
921
|
-
const deleteAll = async (items) => {
|
|
922
|
-
if (!items.length) return;
|
|
923
|
-
const ok = await confirm({
|
|
924
|
-
title: l.deleteTitle,
|
|
925
|
-
message: items.length === 1 ? l.deleteOne(items[0].name) : l.deleteMany(items.length)
|
|
926
|
-
});
|
|
927
|
-
if (!ok) return;
|
|
928
|
-
for (const workflow of items)
|
|
929
|
-
await act(workflow, () => remove.mutateAsync(workflow.external_id));
|
|
930
|
-
};
|
|
931
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
932
|
-
chunk2UUNSHDI_cjs.WorkflowsTable,
|
|
933
|
-
{
|
|
934
|
-
...tableProps,
|
|
935
|
-
workflows,
|
|
936
|
-
isLoading,
|
|
937
|
-
busyId,
|
|
938
|
-
describeTrigger,
|
|
939
|
-
formatDate: formatDate2,
|
|
940
|
-
agentNames,
|
|
941
|
-
taskNames,
|
|
942
|
-
lastRuns,
|
|
943
|
-
canEditShared,
|
|
944
|
-
isWorkspaceOwner,
|
|
945
|
-
onOpenThread: (conversationId) => openConversation(conversationId),
|
|
946
|
-
onViewRuns,
|
|
947
|
-
onToggleActive: (workflow, active) => void setActive(workflow, active),
|
|
948
|
-
onToggleActiveMany: (items, active) => {
|
|
949
|
-
void (async () => {
|
|
950
|
-
for (const workflow of items) await setActive(workflow, active);
|
|
951
|
-
})();
|
|
952
|
-
},
|
|
953
|
-
onToggleShared: (workflow, shared) => void act(
|
|
954
|
-
workflow,
|
|
955
|
-
() => update.mutateAsync({ workflowId: workflow.external_id, patch: { shared } })
|
|
956
|
-
),
|
|
957
|
-
onDelete: (workflow) => void deleteAll([workflow]),
|
|
958
|
-
onDeleteMany: (items) => void deleteAll(items),
|
|
959
|
-
onRun: (workflow) => void act(workflow, async () => {
|
|
960
|
-
const result = await run.mutateAsync(workflow.external_id);
|
|
961
|
-
if (result.conversation_ext_id) openConversation(result.conversation_ext_id);
|
|
962
|
-
if (result.error) {
|
|
963
|
-
onViewRuns?.(workflow);
|
|
964
|
-
notify(l.runFailed, "error");
|
|
965
|
-
return;
|
|
966
|
-
}
|
|
967
|
-
if (result.execution_id && !result.conversation_ext_id) {
|
|
968
|
-
onViewRuns?.(workflow);
|
|
969
|
-
notify(l.documentAction(workflow), "success");
|
|
970
|
-
return;
|
|
971
|
-
}
|
|
972
|
-
if (!result.conversation_ext_id) throw new Error(l.noThread);
|
|
973
|
-
})
|
|
974
|
-
}
|
|
975
|
-
);
|
|
976
|
-
}
|
|
977
|
-
var IMAGE_FILE_TYPES = /* @__PURE__ */ new Set(["png", "jpg", "jpeg", "gif", "bmp", "tiff", "webp"]);
|
|
978
|
-
function toWorkflowFieldDocument(doc) {
|
|
979
|
-
const isImage = IMAGE_FILE_TYPES.has((doc.file_type ?? "").toLowerCase());
|
|
980
|
-
return {
|
|
981
|
-
id: doc.external_id,
|
|
982
|
-
title: doc.doc_metadata?.title || doc.file_name || doc.external_id,
|
|
983
|
-
fileName: doc.file_name,
|
|
984
|
-
pages: isImage ? null : doc.n_pages ?? null,
|
|
985
|
-
tokens: isImage ? null : doc.tokens ?? null,
|
|
986
|
-
status: doc.status,
|
|
987
|
-
isImage
|
|
988
|
-
};
|
|
989
|
-
}
|
|
990
|
-
function useConnectedWorkflowScopeSource() {
|
|
991
|
-
const { data: docs } = chunkJZNXRMLH_cjs.useConnectedDocuments();
|
|
992
|
-
const { data: tags } = chunkJZNXRMLH_cjs.useConnectedTags();
|
|
993
|
-
return react.useMemo(() => chunk2UUNSHDI_cjs.buildWorkflowScopeSource(docs, chunk2UUNSHDI_cjs.documentScopeLabels(tags)), [docs, tags]);
|
|
994
|
-
}
|
|
995
|
-
function useConnectedAgentOptions() {
|
|
996
|
-
const { data: agents } = react$1.useAgents();
|
|
997
|
-
return react.useMemo(
|
|
998
|
-
() => (agents ?? []).map((a) => ({ id: a.external_id, label: a.given_name || a.email })),
|
|
999
|
-
[agents]
|
|
1000
|
-
);
|
|
1001
|
-
}
|
|
1002
|
-
function ConnectedWorkflowDocumentsField({
|
|
1003
|
-
field,
|
|
1004
|
-
value,
|
|
1005
|
-
onChange,
|
|
1006
|
-
onAddFiles,
|
|
1007
|
-
labels
|
|
1008
|
-
}) {
|
|
1009
|
-
const arbi = react$1.useArbi();
|
|
1010
|
-
const { notify } = chunkC4WSHRR6_cjs.useBlocksEnvironment();
|
|
1011
|
-
const { ensureWorkspaceOpen } = chunkGFNELPDP_cjs.useConnectedWorkspace();
|
|
1012
|
-
const { data: docs, loaded, refetch } = chunkJZNXRMLH_cjs.useConnectedDocuments();
|
|
1013
|
-
const documents = react.useMemo(() => docs.map(toWorkflowFieldDocument), [docs]);
|
|
1014
|
-
const chosen = value.documents ?? [];
|
|
1015
|
-
const { data: thumbnails } = react$1.useThumbnails(chosen, { enabled: (field.max ?? 1) > 1 });
|
|
1016
|
-
const input = react.useRef(null);
|
|
1017
|
-
const [adding, setAdding] = react.useState(false);
|
|
1018
|
-
const upload = react.useCallback(
|
|
1019
|
-
async (files) => {
|
|
1020
|
-
setAdding(true);
|
|
1021
|
-
try {
|
|
1022
|
-
await ensureWorkspaceOpen();
|
|
1023
|
-
for (const file of files) await arbi.documents.uploadFile(file, file.name);
|
|
1024
|
-
} catch (error) {
|
|
1025
|
-
notify(error instanceof Error && error.message ? error.message : String(error), "error");
|
|
1026
|
-
} finally {
|
|
1027
|
-
setAdding(false);
|
|
1028
|
-
await refetch?.();
|
|
1029
|
-
}
|
|
1030
|
-
},
|
|
1031
|
-
[arbi, ensureWorkspaceOpen, notify, refetch]
|
|
1032
|
-
);
|
|
1033
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
1034
|
-
!onAddFiles && /* @__PURE__ */ jsxRuntime.jsx(
|
|
1035
|
-
"input",
|
|
1036
|
-
{
|
|
1037
|
-
ref: input,
|
|
1038
|
-
type: "file",
|
|
1039
|
-
multiple: true,
|
|
1040
|
-
className: "hidden",
|
|
1041
|
-
"aria-label": "Add files",
|
|
1042
|
-
"data-testid": "workflow-add-files-input",
|
|
1043
|
-
onChange: (e) => {
|
|
1044
|
-
const files = Array.from(e.target.files ?? []);
|
|
1045
|
-
e.target.value = "";
|
|
1046
|
-
if (files.length) void upload(files);
|
|
1047
|
-
}
|
|
1048
|
-
}
|
|
1049
|
-
),
|
|
1050
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1051
|
-
chunk2UUNSHDI_cjs.WorkflowDocumentsField,
|
|
1052
|
-
{
|
|
1053
|
-
field,
|
|
1054
|
-
value,
|
|
1055
|
-
onChange,
|
|
1056
|
-
documents,
|
|
1057
|
-
loaded,
|
|
1058
|
-
thumbnailOf: (id) => thumbnails?.[id],
|
|
1059
|
-
onAddFiles: onAddFiles ?? ((files) => files?.length ? void upload(files) : input.current?.click()),
|
|
1060
|
-
adding,
|
|
1061
|
-
labels
|
|
1062
|
-
}
|
|
1063
|
-
)
|
|
1064
|
-
] });
|
|
1065
|
-
}
|
|
1066
|
-
function ConnectedWorkflowLauncher({
|
|
1067
|
-
onAddFiles,
|
|
1068
|
-
...props
|
|
1069
|
-
}) {
|
|
1070
|
-
const scopeSource = useConnectedWorkflowScopeSource();
|
|
1071
|
-
const agents = useConnectedAgentOptions();
|
|
1072
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1073
|
-
chunk2UUNSHDI_cjs.WorkflowLauncher,
|
|
1074
|
-
{
|
|
1075
|
-
...props,
|
|
1076
|
-
scopeSource,
|
|
1077
|
-
agents,
|
|
1078
|
-
renderDocuments: (field, value, onChange) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
1079
|
-
ConnectedWorkflowDocumentsField,
|
|
1080
|
-
{
|
|
1081
|
-
field,
|
|
1082
|
-
value,
|
|
1083
|
-
onChange,
|
|
1084
|
-
onAddFiles
|
|
1085
|
-
}
|
|
1086
|
-
)
|
|
1087
|
-
}
|
|
1088
|
-
);
|
|
1089
|
-
}
|
|
1090
846
|
var DEFAULT_CONNECTED_SKILL_UPLOAD_LABELS = {
|
|
1091
847
|
title: "Add a skill",
|
|
1092
848
|
description: "Bring in a skill someone sent you, from a file or a link.",
|
|
@@ -1101,7 +857,7 @@ var DEFAULT_CONNECTED_SKILL_UPLOAD_LABELS = {
|
|
|
1101
857
|
};
|
|
1102
858
|
function ConnectedSkillUpload({ onDone, labels, className }) {
|
|
1103
859
|
const l = { ...DEFAULT_CONNECTED_SKILL_UPLOAD_LABELS, ...labels };
|
|
1104
|
-
const { notify } =
|
|
860
|
+
const { notify } = chunkKPZZ5FHE_cjs.useBlocksEnvironment();
|
|
1105
861
|
const upload = react$1.useUploadSkillFiles();
|
|
1106
862
|
const fileRef = react.useRef(null);
|
|
1107
863
|
const [url, setUrl] = react.useState("");
|
|
@@ -1149,7 +905,7 @@ function ConnectedSkillUpload({ onDone, labels, className }) {
|
|
|
1149
905
|
onChange: (e) => {
|
|
1150
906
|
const file = e.target.files?.[0];
|
|
1151
907
|
e.target.value = "";
|
|
1152
|
-
if (file) void add(() =>
|
|
908
|
+
if (file) void add(() => chunkRB7GX2VT_cjs.importSkillFile(file));
|
|
1153
909
|
}
|
|
1154
910
|
}
|
|
1155
911
|
),
|
|
@@ -1174,7 +930,7 @@ function ConnectedSkillUpload({ onDone, labels, className }) {
|
|
|
1174
930
|
className: "space-y-2",
|
|
1175
931
|
onSubmit: (e) => {
|
|
1176
932
|
e.preventDefault();
|
|
1177
|
-
if (url.trim()) void add(() =>
|
|
933
|
+
if (url.trim()) void add(() => chunkRB7GX2VT_cjs.importSkillFromUrl(url));
|
|
1178
934
|
},
|
|
1179
935
|
children: [
|
|
1180
936
|
/* @__PURE__ */ jsxRuntime.jsx(ui.Label, { htmlFor: "skills-add-url", children: l.fromLink }),
|
|
@@ -1226,7 +982,7 @@ function ConnectedSkillsLibrary({
|
|
|
1226
982
|
renderEditor
|
|
1227
983
|
}) {
|
|
1228
984
|
const arbi = react$1.useArbi();
|
|
1229
|
-
const { confirm, notify } =
|
|
985
|
+
const { confirm, notify } = chunkKPZZ5FHE_cjs.useBlocksEnvironment();
|
|
1230
986
|
const { data: listings } = react$1.useSkills();
|
|
1231
987
|
const upload = react$1.useUploadSkillFiles();
|
|
1232
988
|
const setVisibility = react$1.useSetSkillVisibility();
|
|
@@ -1238,9 +994,9 @@ function ConnectedSkillsLibrary({
|
|
|
1238
994
|
const [type, setType] = react.useState("all");
|
|
1239
995
|
const [view, setView] = react.useState("gallery");
|
|
1240
996
|
const [isBusy, setIsBusy] = react.useState(false);
|
|
1241
|
-
const all = react.useMemo(() =>
|
|
997
|
+
const all = react.useMemo(() => chunkRB7GX2VT_cjs.buildLibrarySkills(builtins, listings ?? []), [builtins, listings]);
|
|
1242
998
|
const shown = react.useMemo(
|
|
1243
|
-
() =>
|
|
999
|
+
() => chunkRB7GX2VT_cjs.filterLibrarySkills(all, { query, source, type }),
|
|
1244
1000
|
[all, query, source, type]
|
|
1245
1001
|
);
|
|
1246
1002
|
const current = all.find((s) => s.slug === selected) ?? null;
|
|
@@ -1251,21 +1007,21 @@ function ConnectedSkillsLibrary({
|
|
|
1251
1007
|
const count = (s) => all.filter((x) => x.source === s).length;
|
|
1252
1008
|
const sourceOptions = [
|
|
1253
1009
|
{ id: "all", label: "All", count: all.length },
|
|
1254
|
-
{ id: "builtin", label:
|
|
1255
|
-
{ id: "mine", label:
|
|
1256
|
-
{ id: "shared", label:
|
|
1010
|
+
{ id: "builtin", label: chunkRB7GX2VT_cjs.SKILL_SOURCE_LABELS.builtin, count: count("builtin") },
|
|
1011
|
+
{ id: "mine", label: chunkRB7GX2VT_cjs.SKILL_SOURCE_LABELS.mine, count: count("mine") },
|
|
1012
|
+
{ id: "shared", label: chunkRB7GX2VT_cjs.SKILL_SOURCE_LABELS.shared, count: count("shared") }
|
|
1257
1013
|
];
|
|
1258
1014
|
const types = [...new Set(all.map((s) => s.type))];
|
|
1259
1015
|
const typeOptions = [
|
|
1260
1016
|
{ id: "all", label: "Any kind" },
|
|
1261
|
-
...types.map((t) => ({ id: t, label:
|
|
1017
|
+
...types.map((t) => ({ id: t, label: chunkRB7GX2VT_cjs.SKILL_TYPE_LABELS[t] ?? t }))
|
|
1262
1018
|
];
|
|
1263
1019
|
const pick = (slug) => {
|
|
1264
1020
|
setSelected(slug);
|
|
1265
1021
|
setMode("detail");
|
|
1266
1022
|
};
|
|
1267
1023
|
const markdownOf = async (skill) => {
|
|
1268
|
-
if (!skill.docExtId) return
|
|
1024
|
+
if (!skill.docExtId) return chunkRB7GX2VT_cjs.workflowToSkillMarkdown(skill.workflow);
|
|
1269
1025
|
const response = await arbi.documents.download(skill.docExtId);
|
|
1270
1026
|
if (!response.ok) throw new Error(`Could not read the skill (${response.status})`);
|
|
1271
1027
|
return response.text();
|
|
@@ -1273,7 +1029,7 @@ function ConnectedSkillsLibrary({
|
|
|
1273
1029
|
const saveAs = (slug, markdown, shared = false) => upload.mutateAsync([
|
|
1274
1030
|
{
|
|
1275
1031
|
folder: `${SKILL_FOLDER}${slug}`,
|
|
1276
|
-
fileName:
|
|
1032
|
+
fileName: chunkRB7GX2VT_cjs.SKILL_MAIN_FILENAME,
|
|
1277
1033
|
content: new Blob([markdown], { type: "text/markdown" }),
|
|
1278
1034
|
shared
|
|
1279
1035
|
}
|
|
@@ -1336,7 +1092,7 @@ function ConnectedSkillsLibrary({
|
|
|
1336
1092
|
try {
|
|
1337
1093
|
documentTools.downloadBlob(
|
|
1338
1094
|
new Blob([await markdownOf(skill)], { type: "text/markdown" }),
|
|
1339
|
-
|
|
1095
|
+
chunkRB7GX2VT_cjs.SKILL_MAIN_FILENAME
|
|
1340
1096
|
);
|
|
1341
1097
|
} catch (error) {
|
|
1342
1098
|
notify(errorText(error, "Could not export the skill"), "error");
|
|
@@ -1377,10 +1133,10 @@ function ConnectedSkillsLibrary({
|
|
|
1377
1133
|
}
|
|
1378
1134
|
)
|
|
1379
1135
|
] }),
|
|
1380
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1136
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkRB7GX2VT_cjs.SkillViewToggle, { value: view, onChange: setView })
|
|
1381
1137
|
] }),
|
|
1382
1138
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1383
|
-
|
|
1139
|
+
chunkRB7GX2VT_cjs.SkillFilterChips,
|
|
1384
1140
|
{
|
|
1385
1141
|
label: "Show",
|
|
1386
1142
|
value: source,
|
|
@@ -1389,7 +1145,7 @@ function ConnectedSkillsLibrary({
|
|
|
1389
1145
|
}
|
|
1390
1146
|
),
|
|
1391
1147
|
types.length > 1 && /* @__PURE__ */ jsxRuntime.jsx(
|
|
1392
|
-
|
|
1148
|
+
chunkRB7GX2VT_cjs.SkillFilterChips,
|
|
1393
1149
|
{
|
|
1394
1150
|
label: "Kind",
|
|
1395
1151
|
value: type,
|
|
@@ -1436,12 +1192,12 @@ function ConnectedSkillsLibrary({
|
|
|
1436
1192
|
view === "gallery" ? "grid grid-cols-[repeat(auto-fill,minmax(9.5rem,1fr))]" : "flex flex-col"
|
|
1437
1193
|
),
|
|
1438
1194
|
children: shown.map((skill) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
1439
|
-
|
|
1195
|
+
chunkRB7GX2VT_cjs.SkillTile,
|
|
1440
1196
|
{
|
|
1441
1197
|
name: skill.title,
|
|
1442
1198
|
testId: `skill-tile-${skill.slug}`,
|
|
1443
1199
|
description: skill.description,
|
|
1444
|
-
sourceLabel: skill.isShared ? `${
|
|
1200
|
+
sourceLabel: skill.isShared ? `${chunkRB7GX2VT_cjs.SKILL_SOURCE_LABELS.mine}, shared` : chunkRB7GX2VT_cjs.SKILL_SOURCE_LABELS[skill.source],
|
|
1445
1201
|
type: skill.type,
|
|
1446
1202
|
icon,
|
|
1447
1203
|
layout: view,
|
|
@@ -1476,7 +1232,7 @@ function ConnectedSkillsLibrary({
|
|
|
1476
1232
|
}
|
|
1477
1233
|
),
|
|
1478
1234
|
mode === "new" && /* @__PURE__ */ jsxRuntime.jsx(
|
|
1479
|
-
|
|
1235
|
+
chunkRB7GX2VT_cjs.SkillGenerateForm,
|
|
1480
1236
|
{
|
|
1481
1237
|
icon,
|
|
1482
1238
|
onGenerate: (desc) => {
|
|
@@ -1503,11 +1259,11 @@ function ConnectedSkillsLibrary({
|
|
|
1503
1259
|
),
|
|
1504
1260
|
mode === "add" && /* @__PURE__ */ jsxRuntime.jsx(ConnectedSkillUpload, { onDone: done }),
|
|
1505
1261
|
mode === "detail" && current && /* @__PURE__ */ jsxRuntime.jsx(
|
|
1506
|
-
|
|
1262
|
+
chunkRB7GX2VT_cjs.SkillLibraryDetail,
|
|
1507
1263
|
{
|
|
1508
1264
|
skill: current,
|
|
1509
1265
|
icon,
|
|
1510
|
-
instructions: current.docExtId ? currentText ?
|
|
1266
|
+
instructions: current.docExtId ? currentText ? chunkRB7GX2VT_cjs.parseSkillFrontmatter(currentText, chunkRB7GX2VT_cjs.SKILL_MAIN_FILENAME).content : "" : current.workflow.run.kind === "prompt" ? current.workflow.run.promptTemplate : "",
|
|
1511
1267
|
isLoading: !!current.docExtId && textLoading,
|
|
1512
1268
|
actions: {
|
|
1513
1269
|
onRun: () => onRun(current.slug),
|
|
@@ -1534,7 +1290,7 @@ function SkillEditor({
|
|
|
1534
1290
|
onCancel,
|
|
1535
1291
|
isSaving
|
|
1536
1292
|
}) {
|
|
1537
|
-
const { notify } =
|
|
1293
|
+
const { notify } = chunkKPZZ5FHE_cjs.useBlocksEnvironment();
|
|
1538
1294
|
const isEditing = !!skill;
|
|
1539
1295
|
const [name, setName] = react.useState(skill?.slug ?? "");
|
|
1540
1296
|
const [description, setDescription] = react.useState("");
|
|
@@ -1542,7 +1298,7 @@ function SkillEditor({
|
|
|
1542
1298
|
const [seeded, setSeeded] = react.useState(!isEditing);
|
|
1543
1299
|
const [nameError, setNameError] = react.useState(null);
|
|
1544
1300
|
if (isEditing && !seeded && text !== void 0) {
|
|
1545
|
-
const parsed =
|
|
1301
|
+
const parsed = chunkRB7GX2VT_cjs.parseSkillFrontmatter(text, chunkRB7GX2VT_cjs.SKILL_MAIN_FILENAME);
|
|
1546
1302
|
setDescription(parsed.description ?? "");
|
|
1547
1303
|
setBody(parsed.content ?? "");
|
|
1548
1304
|
setSeeded(true);
|
|
@@ -1556,15 +1312,15 @@ function SkillEditor({
|
|
|
1556
1312
|
notify("Add a short description.", "error");
|
|
1557
1313
|
return;
|
|
1558
1314
|
}
|
|
1559
|
-
const slug =
|
|
1315
|
+
const slug = chunkRB7GX2VT_cjs.skillSlug(name);
|
|
1560
1316
|
try {
|
|
1561
|
-
await onSave(slug,
|
|
1317
|
+
await onSave(slug, chunkRB7GX2VT_cjs.serializeSkill({ name: slug, description, body }), isEditing);
|
|
1562
1318
|
} catch (err) {
|
|
1563
1319
|
notify(errorText(err, "Could not save the skill"), "error");
|
|
1564
1320
|
}
|
|
1565
1321
|
};
|
|
1566
1322
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1567
|
-
|
|
1323
|
+
chunkRB7GX2VT_cjs.SkillEditForm,
|
|
1568
1324
|
{
|
|
1569
1325
|
name,
|
|
1570
1326
|
onNameChange: setName,
|
|
@@ -1600,13 +1356,13 @@ function ConnectedAgentCreator({
|
|
|
1600
1356
|
agent,
|
|
1601
1357
|
initialName,
|
|
1602
1358
|
onSaved,
|
|
1603
|
-
capabilities =
|
|
1604
|
-
templates =
|
|
1605
|
-
types =
|
|
1359
|
+
capabilities = chunkRB7GX2VT_cjs.DEFAULT_AGENT_CAPABILITIES,
|
|
1360
|
+
templates = chunkRB7GX2VT_cjs.DEFAULT_AGENT_TEMPLATES,
|
|
1361
|
+
types = chunkRB7GX2VT_cjs.DEFAULT_AGENT_TYPES,
|
|
1606
1362
|
canRevokeWorkspaces = false,
|
|
1607
1363
|
labels
|
|
1608
1364
|
}) {
|
|
1609
|
-
const { notify } =
|
|
1365
|
+
const { notify } = chunkKPZZ5FHE_cjs.useBlocksEnvironment();
|
|
1610
1366
|
const isEdit = !!agent;
|
|
1611
1367
|
const [saving, setSaving] = react.useState(false);
|
|
1612
1368
|
const [skills, setSkills] = react.useState([]);
|
|
@@ -1644,7 +1400,7 @@ function ConnectedAgentCreator({
|
|
|
1644
1400
|
const initialValues = react.useMemo(
|
|
1645
1401
|
() => ({
|
|
1646
1402
|
name: agent?.given_name ?? initialName ?? "",
|
|
1647
|
-
persona: isEdit ?
|
|
1403
|
+
persona: isEdit ? chunkRB7GX2VT_cjs.stripPersonaPreamble(String(agents.PERSONA ?? "")) : "",
|
|
1648
1404
|
modelName: String(agents.AGENT_MODEL_NAME ?? ""),
|
|
1649
1405
|
capabilities: Object.fromEntries(capabilities.map(({ key }) => [key, Boolean(agents[key])])),
|
|
1650
1406
|
type: "builtin",
|
|
@@ -1663,7 +1419,7 @@ function ConnectedAgentCreator({
|
|
|
1663
1419
|
try {
|
|
1664
1420
|
let agentExtId = agent?.external_id ?? early?.id ?? "";
|
|
1665
1421
|
if (!agentExtId) {
|
|
1666
|
-
if (!
|
|
1422
|
+
if (!chunkRB7GX2VT_cjs.isValidAgentName(values.name)) {
|
|
1667
1423
|
notify("Give the agent a name first.", "error");
|
|
1668
1424
|
return;
|
|
1669
1425
|
}
|
|
@@ -1699,7 +1455,7 @@ function ConnectedAgentCreator({
|
|
|
1699
1455
|
title: `agent-${name}`,
|
|
1700
1456
|
sections: {
|
|
1701
1457
|
Agents: {
|
|
1702
|
-
PERSONA:
|
|
1458
|
+
PERSONA: chunkRB7GX2VT_cjs.composePersona(name, values.persona),
|
|
1703
1459
|
...values.modelName ? { AGENT_MODEL_NAME: values.modelName } : {},
|
|
1704
1460
|
...Object.fromEntries(capabilities.map(({ key }) => [key, !!values.capabilities[key]])),
|
|
1705
1461
|
ENABLED_SKILLS: values.capabilities.SKILLS_ENABLED && skills.length ? skills : null,
|
|
@@ -1722,7 +1478,7 @@ function ConnectedAgentCreator({
|
|
|
1722
1478
|
};
|
|
1723
1479
|
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
1724
1480
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1725
|
-
|
|
1481
|
+
chunkRB7GX2VT_cjs.AgentCreator,
|
|
1726
1482
|
{
|
|
1727
1483
|
open: ready,
|
|
1728
1484
|
onOpenChange,
|
|
@@ -1738,11 +1494,11 @@ function ConnectedAgentCreator({
|
|
|
1738
1494
|
) : void 0,
|
|
1739
1495
|
revokingWorkspaceId: revokeAccess.isPending ? revokeAccess.variables?.workspaceId : void 0,
|
|
1740
1496
|
avatar: (values) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
1741
|
-
|
|
1497
|
+
chunkRB7GX2VT_cjs.AgentAvatarField,
|
|
1742
1498
|
{
|
|
1743
1499
|
picture,
|
|
1744
1500
|
isBusy: avatarBusy,
|
|
1745
|
-
canGenerate: isEdit ||
|
|
1501
|
+
canGenerate: isEdit || chunkRB7GX2VT_cjs.isValidAgentName(values.name),
|
|
1746
1502
|
onGenerate: () => handleGenerateAvatar(values)
|
|
1747
1503
|
}
|
|
1748
1504
|
),
|
|
@@ -1756,7 +1512,7 @@ function ConnectedAgentCreator({
|
|
|
1756
1512
|
/* @__PURE__ */ jsxRuntime.jsx(ui.Label, { children: "Connected tools" }),
|
|
1757
1513
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-muted-foreground", children: "Extra tools from services you have connected. Pick which this agent may use." }),
|
|
1758
1514
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1759
|
-
|
|
1515
|
+
chunkRFIBUWLF_cjs.MultiSelect,
|
|
1760
1516
|
{
|
|
1761
1517
|
data: mcpOptions,
|
|
1762
1518
|
value: mcpTools,
|
|
@@ -1770,7 +1526,7 @@ function ConnectedAgentCreator({
|
|
|
1770
1526
|
/* @__PURE__ */ jsxRuntime.jsx(ui.Label, { children: "Skills" }),
|
|
1771
1527
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-muted-foreground", children: "Skills are instructions the agent may follow. Leave empty to allow all of yours." }),
|
|
1772
1528
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1773
|
-
|
|
1529
|
+
chunkRFIBUWLF_cjs.MultiSelect,
|
|
1774
1530
|
{
|
|
1775
1531
|
data: skillOptions,
|
|
1776
1532
|
value: skills,
|
|
@@ -1794,7 +1550,7 @@ function ConnectedAgentCreator({
|
|
|
1794
1550
|
/* @__PURE__ */ jsxRuntime.jsx(ui.DialogTitle, { children: "Connect your agent" }),
|
|
1795
1551
|
/* @__PURE__ */ jsxRuntime.jsx(ui.DialogDescription, { children: "This key is shown once. Run the script on the machine that will host the agent." })
|
|
1796
1552
|
] }),
|
|
1797
|
-
connect && /* @__PURE__ */ jsxRuntime.jsx(
|
|
1553
|
+
connect && /* @__PURE__ */ jsxRuntime.jsx(chunkRB7GX2VT_cjs.AgentConnectInstructions, { email: connect.email, signingKey: connect.signingKey })
|
|
1798
1554
|
]
|
|
1799
1555
|
}
|
|
1800
1556
|
) })
|
|
@@ -1828,10 +1584,10 @@ function ConnectedWorkflowHistory({
|
|
|
1828
1584
|
renderErrorReport,
|
|
1829
1585
|
labels
|
|
1830
1586
|
}) {
|
|
1831
|
-
const { openConversation } =
|
|
1587
|
+
const { openConversation } = chunkKPZZ5FHE_cjs.useBlocksEnvironment();
|
|
1832
1588
|
const { data: runs = [], isLoading } = react$1.useWorkflowRuns(workflow?.external_id);
|
|
1833
1589
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1834
|
-
|
|
1590
|
+
chunkRB7GX2VT_cjs.TaskRunsDialog,
|
|
1835
1591
|
{
|
|
1836
1592
|
inline,
|
|
1837
1593
|
hideHeader,
|
|
@@ -1867,14 +1623,14 @@ function ConnectedTaskActivityDialog({
|
|
|
1867
1623
|
const activity = react$1.useConversationActivity(conversationId, { live });
|
|
1868
1624
|
const { data: agents = [] } = react$1.useAgents();
|
|
1869
1625
|
const { userId } = chunkGFNELPDP_cjs.useConnectedWorkspace();
|
|
1870
|
-
const { members } = useConnectedWorkspaceRole();
|
|
1626
|
+
const { members } = chunkU6YVZDOV_cjs.useConnectedWorkspaceRole();
|
|
1871
1627
|
const renderPerson = react.useCallback(
|
|
1872
1628
|
(id) => {
|
|
1873
1629
|
const isMe = !!id && id === userId;
|
|
1874
1630
|
const member = members.find((m) => m.user.external_id === id)?.user;
|
|
1875
1631
|
const name = member && [member.given_name, member.family_name].filter(Boolean).join(" ") || member?.email;
|
|
1876
1632
|
const person = { id, label: isMe ? "You" : name || "Someone", isMe };
|
|
1877
|
-
return renderTaskPerson ? renderTaskPerson(person) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
1633
|
+
return renderTaskPerson ? renderTaskPerson(person) : /* @__PURE__ */ jsxRuntime.jsx(chunkLPYEUD2D_cjs.PersonPill, { person });
|
|
1878
1634
|
},
|
|
1879
1635
|
[renderTaskPerson, userId, members]
|
|
1880
1636
|
);
|
|
@@ -1883,7 +1639,7 @@ function ConnectedTaskActivityDialog({
|
|
|
1883
1639
|
[agents]
|
|
1884
1640
|
);
|
|
1885
1641
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1886
|
-
|
|
1642
|
+
chunkRB7GX2VT_cjs.TaskActivityDialog,
|
|
1887
1643
|
{
|
|
1888
1644
|
open: true,
|
|
1889
1645
|
onOpenChange: (open) => !open && onClose(),
|
|
@@ -1971,7 +1727,7 @@ function StreamedArtifact({
|
|
|
1971
1727
|
}
|
|
1972
1728
|
var STARTING = /* @__PURE__ */ new Set(["pending", "running"]);
|
|
1973
1729
|
function formValues(step, inputs) {
|
|
1974
|
-
const fields =
|
|
1730
|
+
const fields = chunkJSTKEZBS_cjs.stepFields(step);
|
|
1975
1731
|
if (!fields.length) return void 0;
|
|
1976
1732
|
if (step.kind === "form")
|
|
1977
1733
|
return Object.fromEntries(fields.map((f) => [f.name, inputs[f.name] ?? ""]));
|
|
@@ -2009,7 +1765,7 @@ function useWorkflowThread(workflow, options = {}) {
|
|
|
2009
1765
|
const wsId = workspaceId ?? void 0;
|
|
2010
1766
|
const [threadId, setThreadId] = react.useState(options.conversationId);
|
|
2011
1767
|
const [localInputs, setLocalInputs] = react.useState(
|
|
2012
|
-
() =>
|
|
1768
|
+
() => chunkJSTKEZBS_cjs.initialRunInputs(workflow, options.initialInputs)
|
|
2013
1769
|
);
|
|
2014
1770
|
const [edits, setEdits] = react.useState({});
|
|
2015
1771
|
const [localStates, setLocalStates] = react.useState({});
|
|
@@ -2029,12 +1785,12 @@ function useWorkflowThread(workflow, options = {}) {
|
|
|
2029
1785
|
);
|
|
2030
1786
|
const conversation = conversations.data?.find((c) => c.external_id === threadId);
|
|
2031
1787
|
const steps = react.useMemo(
|
|
2032
|
-
() =>
|
|
1788
|
+
() => chunkJSTKEZBS_cjs.workflowSteps(workflow).length > 0 ? chunkJSTKEZBS_cjs.workflowSteps(workflow) : chunkRB7GX2VT_cjs.fromPlanSteps(conversation?.plan?.steps ?? []),
|
|
2033
1789
|
[workflow, conversation?.plan?.steps]
|
|
2034
1790
|
);
|
|
2035
1791
|
const activity = react$1.useConversationActivity(threadId, { live: !!threadId });
|
|
2036
1792
|
const serverStates = react.useMemo(
|
|
2037
|
-
() =>
|
|
1793
|
+
() => chunkJSTKEZBS_cjs.stepStatesFromActivity(activity.data ?? []),
|
|
2038
1794
|
[activity.data]
|
|
2039
1795
|
);
|
|
2040
1796
|
const working = steps.some(
|
|
@@ -2077,7 +1833,7 @@ function useWorkflowThread(workflow, options = {}) {
|
|
|
2077
1833
|
async (values, done) => {
|
|
2078
1834
|
await ensureWorkspaceOpen();
|
|
2079
1835
|
const created = await createWork.mutateAsync({
|
|
2080
|
-
title:
|
|
1836
|
+
title: chunkJSTKEZBS_cjs.runThreadTitle(workflow, values).slice(0, 60),
|
|
2081
1837
|
description: workflow.description || null,
|
|
2082
1838
|
prompt: null,
|
|
2083
1839
|
skill_ref: null,
|
|
@@ -2089,7 +1845,7 @@ function useWorkflowThread(workflow, options = {}) {
|
|
|
2089
1845
|
criteria: [],
|
|
2090
1846
|
max_passes: 3,
|
|
2091
1847
|
documents: [],
|
|
2092
|
-
steps:
|
|
1848
|
+
steps: chunkRB7GX2VT_cjs.toPlanSteps(workflow, {
|
|
2093
1849
|
inputs: values,
|
|
2094
1850
|
resolveWorkflow: options.resolveWorkflow,
|
|
2095
1851
|
compose: options.compose
|
|
@@ -2176,7 +1932,7 @@ function useWorkflowThread(workflow, options = {}) {
|
|
|
2176
1932
|
const anyRunning = Object.values(states).some((s) => s.status === "running");
|
|
2177
1933
|
const needsStart = !threadId || idle && !anyRunning;
|
|
2178
1934
|
const runError = idle ? conversation?.last_error ?? null : null;
|
|
2179
|
-
const view =
|
|
1935
|
+
const view = chunkRB7GX2VT_cjs.useWorkflowView({
|
|
2180
1936
|
steps,
|
|
2181
1937
|
states,
|
|
2182
1938
|
inputs,
|
|
@@ -2219,7 +1975,7 @@ function WorkflowRunThread({
|
|
|
2219
1975
|
if (listed && activeThreadId !== conversationId) selectThread(conversationId);
|
|
2220
1976
|
}, [listed, activeThreadId, conversationId, selectThread]);
|
|
2221
1977
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
2222
|
-
|
|
1978
|
+
chunk5A2QQAF5_cjs.ChatPage,
|
|
2223
1979
|
{
|
|
2224
1980
|
chat: { ...chat, threads: chat.threads.filter((t) => t.id === conversationId) },
|
|
2225
1981
|
singleThread: true,
|
|
@@ -2257,7 +2013,7 @@ function WorkflowSignDialog({
|
|
|
2257
2013
|
const arbi = react$1.useArbi();
|
|
2258
2014
|
const { user, ensureWorkspaceOpen } = chunkGFNELPDP_cjs.useConnectedWorkspace();
|
|
2259
2015
|
const tools = documentTools.useOptionalDocumentTools();
|
|
2260
|
-
const { id, version: stepVersion } =
|
|
2016
|
+
const { id, version: stepVersion } = chunkJSTKEZBS_cjs.splitDocRef(docRef);
|
|
2261
2017
|
const [version, setVersion] = react.useState(stepVersion);
|
|
2262
2018
|
const [pdf, setPdf] = react.useState(null);
|
|
2263
2019
|
const [preparing, setPreparing] = react.useState(false);
|
|
@@ -2335,7 +2091,7 @@ function WorkflowWordDialog({
|
|
|
2335
2091
|
onClose,
|
|
2336
2092
|
labels
|
|
2337
2093
|
}) {
|
|
2338
|
-
const { id } =
|
|
2094
|
+
const { id } = chunkJSTKEZBS_cjs.splitDocRef(docRef);
|
|
2339
2095
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
2340
2096
|
chunkULWRNGGE_cjs.ModalScaffold,
|
|
2341
2097
|
{
|
|
@@ -2344,7 +2100,7 @@ function WorkflowWordDialog({
|
|
|
2344
2100
|
title: title ?? labels.wordTitle,
|
|
2345
2101
|
size: "xl",
|
|
2346
2102
|
testId: "workflow-word-dialog",
|
|
2347
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(chunkULWRNGGE_cjs.ModalScaffold.Body, { className: "h-[70dvh] p-0", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
2103
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(chunkULWRNGGE_cjs.ModalScaffold.Body, { className: "h-[70dvh] p-0", children: /* @__PURE__ */ jsxRuntime.jsx(chunkU6YVZDOV_cjs.ConnectedNativeDocxEditor, { documentId: id, title: title ?? labels.wordTitle }) })
|
|
2348
2104
|
}
|
|
2349
2105
|
);
|
|
2350
2106
|
}
|
|
@@ -2507,7 +2263,7 @@ function ConnectedWorkflowRunner({
|
|
|
2507
2263
|
() => ({
|
|
2508
2264
|
me: userId,
|
|
2509
2265
|
openDocument: onOpenDocument && ((ref) => {
|
|
2510
|
-
const { id, version } =
|
|
2266
|
+
const { id, version } = chunkJSTKEZBS_cjs.splitDocRef(ref);
|
|
2511
2267
|
onOpenDocument(id, version);
|
|
2512
2268
|
}),
|
|
2513
2269
|
openDraft: onOpenDraft && ((draftId) => onOpenDraft(draftId)),
|
|
@@ -2517,7 +2273,7 @@ function ConnectedWorkflowRunner({
|
|
|
2517
2273
|
const w = state.waiting;
|
|
2518
2274
|
if (w?.doc_ext_id) setDialog({ kind: "sign", docRef: w.doc_ext_id });
|
|
2519
2275
|
}),
|
|
2520
|
-
openRedline: hostActions?.openRedline ?? ((ref) => setDialog({ kind: "word", docRef: ref, title: nameOfDoc(
|
|
2276
|
+
openRedline: hostActions?.openRedline ?? ((ref) => setDialog({ kind: "word", docRef: ref, title: nameOfDoc(chunkJSTKEZBS_cjs.splitDocRef(ref).id) ?? "" })),
|
|
2521
2277
|
openReview: hostActions?.openReview ?? ((tags, documents) => setDialog({ kind: "review", tags, documents }))
|
|
2522
2278
|
}),
|
|
2523
2279
|
[userId, onOpenDocument, onOpenDraft, onOpenMessage, hostActions, nameOfDoc, inThread]
|
|
@@ -2653,7 +2409,7 @@ function ConnectedWorkflowRunner({
|
|
|
2653
2409
|
);
|
|
2654
2410
|
};
|
|
2655
2411
|
const runner = (compact) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
2656
|
-
|
|
2412
|
+
chunkRB7GX2VT_cjs.WorkflowRunner,
|
|
2657
2413
|
{
|
|
2658
2414
|
people,
|
|
2659
2415
|
...runnerProps,
|
|
@@ -2699,10 +2455,10 @@ function ConnectedWorkflowRunner({
|
|
|
2699
2455
|
) }),
|
|
2700
2456
|
inThread && conversationId ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
2701
2457
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2702
|
-
|
|
2458
|
+
chunkRB7GX2VT_cjs.WorkflowStepBar,
|
|
2703
2459
|
{
|
|
2704
2460
|
run: view,
|
|
2705
|
-
levels:
|
|
2461
|
+
levels: chunkJSTKEZBS_cjs.stepLevels(view.steps),
|
|
2706
2462
|
doneTitle: (workflow.run.kind === "steps" ? workflow.run.completion?.title : void 0) ?? runnerProps.labels?.complete ?? "Done",
|
|
2707
2463
|
icon: (key) => key && runnerProps.renderIcon ? runnerProps.renderIcon(key) : void 0,
|
|
2708
2464
|
tid: (suffix) => `${testIdPrefix}-${suffix}`
|
|
@@ -2722,13 +2478,13 @@ function ConnectedWorkflowRunner({
|
|
|
2722
2478
|
return state ? [[s.id, state]] : [];
|
|
2723
2479
|
})
|
|
2724
2480
|
);
|
|
2725
|
-
const ref =
|
|
2481
|
+
const ref = chunkJSTKEZBS_cjs.stepDocuments(view.steps, states, id).at(-1);
|
|
2726
2482
|
const open = actions.openDocument ?? actions.openRedline;
|
|
2727
2483
|
return {
|
|
2728
2484
|
title: step.title,
|
|
2729
|
-
kind:
|
|
2485
|
+
kind: chunkJSTKEZBS_cjs.stepKindOf(step),
|
|
2730
2486
|
phase: view.phaseOf(id),
|
|
2731
|
-
document: ref && open ? { name: nameOfDoc(
|
|
2487
|
+
document: ref && open ? { name: nameOfDoc(chunkJSTKEZBS_cjs.splitDocRef(ref).id) ?? ref, onOpen: () => open(ref) } : void 0
|
|
2732
2488
|
};
|
|
2733
2489
|
},
|
|
2734
2490
|
targetMessageId: target,
|
|
@@ -2900,7 +2656,7 @@ function ConnectedTagTable({
|
|
|
2900
2656
|
const fail = (e) => setError(e instanceof Error ? e.message : String(e));
|
|
2901
2657
|
const snapshot = (data) => {
|
|
2902
2658
|
const title = exportTitle ?? KIND_TITLES[kind];
|
|
2903
|
-
const bytes =
|
|
2659
|
+
const bytes = chunkHAOKT4LC_cjs.tagTableDocx(data, {
|
|
2904
2660
|
title,
|
|
2905
2661
|
nameOf: (id) => people.find((p) => p.value === id)?.label
|
|
2906
2662
|
});
|
|
@@ -2910,7 +2666,7 @@ function ConnectedTagTable({
|
|
|
2910
2666
|
};
|
|
2911
2667
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-2", children: [
|
|
2912
2668
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2913
|
-
|
|
2669
|
+
chunkHAOKT4LC_cjs.TagTable,
|
|
2914
2670
|
{
|
|
2915
2671
|
...props,
|
|
2916
2672
|
table,
|
|
@@ -2987,6 +2743,11 @@ function useConnectedShellWorkspaces(options = {}) {
|
|
|
2987
2743
|
select: (workspace) => setWorkspace(workspace.id)
|
|
2988
2744
|
});
|
|
2989
2745
|
}
|
|
2746
|
+
function SessionStatusIcon({ status, className }) {
|
|
2747
|
+
if (status === "agent") return /* @__PURE__ */ jsxRuntime.jsx(react$1.ArbiBotHeadIcon, { className: className ?? "w-4 h-4" });
|
|
2748
|
+
return /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Monitor, { className: className ?? "w-4 h-4 text-muted-foreground" });
|
|
2749
|
+
}
|
|
2750
|
+
var renderSessionStatusIcon = (status) => /* @__PURE__ */ jsxRuntime.jsx(SessionStatusIcon, { status });
|
|
2990
2751
|
function errorText2(error, fallback) {
|
|
2991
2752
|
const body = error?.apiError;
|
|
2992
2753
|
return typeof body?.detail === "string" ? body.detail : fallback;
|
|
@@ -3001,7 +2762,7 @@ function ConnectedProfileCard({
|
|
|
3001
2762
|
avatarClassName = "bg-primary text-primary-foreground",
|
|
3002
2763
|
children
|
|
3003
2764
|
}) {
|
|
3004
|
-
const { notify } =
|
|
2765
|
+
const { notify } = chunkKPZZ5FHE_cjs.useBlocksEnvironment();
|
|
3005
2766
|
const { data: profile } = react$1.useProfile();
|
|
3006
2767
|
const updateProfile = react$1.useUpdateProfile();
|
|
3007
2768
|
const requestEmailChange = react$1.useRequestEmailChange();
|
|
@@ -3052,13 +2813,13 @@ function ConnectedProfileCard({
|
|
|
3052
2813
|
}
|
|
3053
2814
|
});
|
|
3054
2815
|
const display = profile?.fullName || "Unnamed";
|
|
3055
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2816
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(chunkU73KPFYH_cjs.SettingsSection, { icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.UserCircle, {}), title, children: [
|
|
3056
2817
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3057
|
-
|
|
2818
|
+
chunkU73KPFYH_cjs.ProfileCard,
|
|
3058
2819
|
{
|
|
3059
2820
|
avatar: /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
3060
2821
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3061
|
-
|
|
2822
|
+
chunkU73KPFYH_cjs.AvatarPicker,
|
|
3062
2823
|
{
|
|
3063
2824
|
pictureUrl: profile?.picture,
|
|
3064
2825
|
initials: chunkKDG6FER6_cjs.initials(display),
|
|
@@ -3097,7 +2858,7 @@ function ConnectedIdentityVerification({
|
|
|
3097
2858
|
onManageBilling,
|
|
3098
2859
|
formatPrice
|
|
3099
2860
|
}) {
|
|
3100
|
-
const { notify } =
|
|
2861
|
+
const { notify } = chunkKPZZ5FHE_cjs.useBlocksEnvironment();
|
|
3101
2862
|
const { data: profile } = react$1.useProfile();
|
|
3102
2863
|
const flow = react$1.useIdentityVerification({
|
|
3103
2864
|
formatPrice,
|
|
@@ -3105,9 +2866,9 @@ function ConnectedIdentityVerification({
|
|
|
3105
2866
|
onNameAccepted: () => notify("Name updated to match your ID", "success")
|
|
3106
2867
|
});
|
|
3107
2868
|
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
3108
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2869
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkU73KPFYH_cjs.IdentityVerificationCard, { flow, labels, onManageBilling }),
|
|
3109
2870
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3110
|
-
|
|
2871
|
+
chunkU73KPFYH_cjs.IdentityVerificationDialog,
|
|
3111
2872
|
{
|
|
3112
2873
|
flow,
|
|
3113
2874
|
accountName: profile?.fullName ?? "",
|
|
@@ -3120,7 +2881,7 @@ function ConnectedIdentityVerification({
|
|
|
3120
2881
|
function ConnectedRequireVerified({ children, labels }) {
|
|
3121
2882
|
const { data: profile } = react$1.useProfile();
|
|
3122
2883
|
const flow = react$1.useIdentityVerification();
|
|
3123
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
2884
|
+
return /* @__PURE__ */ jsxRuntime.jsx(chunkU73KPFYH_cjs.RequireVerified, { flow, accountName: profile?.fullName ?? "", labels, children });
|
|
3124
2885
|
}
|
|
3125
2886
|
function defaultUnmetPasswordRequirement(password) {
|
|
3126
2887
|
if (password.length < 8) return "Minimum 8 characters";
|
|
@@ -3137,7 +2898,7 @@ function ConnectedPasswordChangeDialog({
|
|
|
3137
2898
|
recoveryMode = false,
|
|
3138
2899
|
onRecoveryComplete
|
|
3139
2900
|
}) {
|
|
3140
|
-
const { notify } =
|
|
2901
|
+
const { notify } = chunkKPZZ5FHE_cjs.useBlocksEnvironment();
|
|
3141
2902
|
const change = react$1.usePasswordChange();
|
|
3142
2903
|
const form = react$1.usePasswordChangeForm({
|
|
3143
2904
|
recoveryMode,
|
|
@@ -3153,7 +2914,7 @@ function ConnectedPasswordChangeDialog({
|
|
|
3153
2914
|
onRecoveryComplete
|
|
3154
2915
|
});
|
|
3155
2916
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
3156
|
-
|
|
2917
|
+
chunkU73KPFYH_cjs.PasswordChangeDialog,
|
|
3157
2918
|
{
|
|
3158
2919
|
open,
|
|
3159
2920
|
onClose: form.onCancel,
|
|
@@ -3179,10 +2940,10 @@ function ConnectedSecuritySection({
|
|
|
3179
2940
|
children
|
|
3180
2941
|
}) {
|
|
3181
2942
|
const [open, setOpen] = react.useState(false);
|
|
3182
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
3183
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
2943
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(chunkU73KPFYH_cjs.SettingsSection, { icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.KeyRound, {}), title: "Security", children: [
|
|
2944
|
+
/* @__PURE__ */ jsxRuntime.jsxs(chunkU73KPFYH_cjs.SettingsCard, { padding: "sm", children: [
|
|
3184
2945
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3185
|
-
|
|
2946
|
+
chunkU73KPFYH_cjs.SettingsActionRow,
|
|
3186
2947
|
{
|
|
3187
2948
|
title: "Change password",
|
|
3188
2949
|
description: "Used to sign in and to unlock your account key. Changing it keeps everything readable and re-encrypts nothing.",
|
|
@@ -3203,41 +2964,43 @@ function ConnectedSecuritySection({
|
|
|
3203
2964
|
] });
|
|
3204
2965
|
}
|
|
3205
2966
|
function ConnectedNotificationPreferences({
|
|
3206
|
-
categories =
|
|
2967
|
+
categories = chunkU73KPFYH_cjs.EMAIL_NOTIFICATION_CATEGORIES,
|
|
3207
2968
|
title = "Notifications"
|
|
3208
2969
|
}) {
|
|
3209
2970
|
const keys = react.useMemo(
|
|
3210
|
-
() => categories ===
|
|
2971
|
+
() => categories === chunkU73KPFYH_cjs.EMAIL_NOTIFICATION_CATEGORIES ? chunkU73KPFYH_cjs.EMAIL_NOTIFICATION_KEYS : categories.map((c) => c.key),
|
|
3211
2972
|
[categories]
|
|
3212
2973
|
);
|
|
3213
2974
|
const prefs = react$1.useNotificationPreferences(keys);
|
|
3214
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
3215
|
-
|
|
2975
|
+
return /* @__PURE__ */ jsxRuntime.jsx(chunkU73KPFYH_cjs.SettingsSection, { title, children: /* @__PURE__ */ jsxRuntime.jsx(chunkU73KPFYH_cjs.SettingsCard, { className: "space-y-0", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
2976
|
+
chunkU73KPFYH_cjs.NotificationCategoryList,
|
|
3216
2977
|
{
|
|
3217
2978
|
masterId: "emailNotifications",
|
|
3218
2979
|
masterTitle: "Email Notifications",
|
|
3219
2980
|
masterDescription: "Email me about activity when I\u2019m away",
|
|
3220
2981
|
masterChecked: prefs.masterChecked,
|
|
3221
2982
|
onMasterChange: prefs.setAll,
|
|
3222
|
-
categories:
|
|
2983
|
+
categories: chunkU73KPFYH_cjs.toNotificationCategories(prefs.checked, categories),
|
|
3223
2984
|
onCategoryChange: prefs.setCategory
|
|
3224
2985
|
}
|
|
3225
2986
|
) }) });
|
|
3226
2987
|
}
|
|
3227
|
-
function ConnectedSessionsRow({
|
|
3228
|
-
|
|
2988
|
+
function ConnectedSessionsRow({
|
|
2989
|
+
renderSessionIcon = renderSessionStatusIcon
|
|
2990
|
+
}) {
|
|
2991
|
+
const { notify, confirm } = chunkKPZZ5FHE_cjs.useBlocksEnvironment();
|
|
3229
2992
|
const [open, setOpen] = react.useState(false);
|
|
3230
2993
|
const sessions = react$1.useSessions({ enabled: open });
|
|
3231
2994
|
const currentSessionId = react$1.useCurrentSessionId();
|
|
3232
2995
|
const terminate = react$1.useTerminateSession();
|
|
3233
|
-
const views =
|
|
2996
|
+
const views = chunkU73KPFYH_cjs.toActiveSessionViews(sessions.data ?? [], {
|
|
3234
2997
|
currentSessionId,
|
|
3235
2998
|
terminatingId: terminate.isPending ? terminate.variables : null,
|
|
3236
2999
|
renderIcon: renderSessionIcon
|
|
3237
3000
|
});
|
|
3238
3001
|
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
3239
3002
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3240
|
-
|
|
3003
|
+
chunkU73KPFYH_cjs.SettingsRow,
|
|
3241
3004
|
{
|
|
3242
3005
|
label: "Active sessions",
|
|
3243
3006
|
description: "Devices and agents currently signed in to your account.",
|
|
@@ -3259,7 +3022,7 @@ function ConnectedSessionsRow({ renderSessionIcon }) {
|
|
|
3259
3022
|
}
|
|
3260
3023
|
),
|
|
3261
3024
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3262
|
-
|
|
3025
|
+
chunkU73KPFYH_cjs.ActiveSessionsDialog,
|
|
3263
3026
|
{
|
|
3264
3027
|
open,
|
|
3265
3028
|
onOpenChange: setOpen,
|
|
@@ -3290,7 +3053,7 @@ function ConnectedLogoutDialog({
|
|
|
3290
3053
|
onClose,
|
|
3291
3054
|
canLogoutAll = true,
|
|
3292
3055
|
confirmSignOut,
|
|
3293
|
-
renderSessionIcon
|
|
3056
|
+
renderSessionIcon = renderSessionStatusIcon
|
|
3294
3057
|
}) {
|
|
3295
3058
|
const sessions = react$1.useSessions({ enabled: open });
|
|
3296
3059
|
const signOut = react$1.useSignOut();
|
|
@@ -3301,7 +3064,7 @@ function ConnectedLogoutDialog({
|
|
|
3301
3064
|
signOut.mutate({ everywhere, reason: "manual" });
|
|
3302
3065
|
};
|
|
3303
3066
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
3304
|
-
|
|
3067
|
+
chunkU73KPFYH_cjs.LogoutDialog,
|
|
3305
3068
|
{
|
|
3306
3069
|
open,
|
|
3307
3070
|
onClose,
|
|
@@ -3309,13 +3072,13 @@ function ConnectedLogoutDialog({
|
|
|
3309
3072
|
onLogoutAll: () => void run(true),
|
|
3310
3073
|
canLogoutAll,
|
|
3311
3074
|
isOnline,
|
|
3312
|
-
sessions:
|
|
3075
|
+
sessions: chunkU73KPFYH_cjs.toLogoutSessionViews(sessions.data ?? []),
|
|
3313
3076
|
renderSessionIcon
|
|
3314
3077
|
}
|
|
3315
3078
|
);
|
|
3316
3079
|
}
|
|
3317
3080
|
function ConnectedDangerZone({ renderSubscriptionLink }) {
|
|
3318
|
-
const { notify } =
|
|
3081
|
+
const { notify } = chunkKPZZ5FHE_cjs.useBlocksEnvironment();
|
|
3319
3082
|
const [zoneOpen, setZoneOpen] = react.useState(false);
|
|
3320
3083
|
const [dialogOpen, setDialogOpen] = react.useState(false);
|
|
3321
3084
|
const { data: profile } = react$1.useProfile();
|
|
@@ -3331,7 +3094,7 @@ function ConnectedDangerZone({ renderSubscriptionLink }) {
|
|
|
3331
3094
|
});
|
|
3332
3095
|
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
3333
3096
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3334
|
-
|
|
3097
|
+
chunkU73KPFYH_cjs.SettingsDangerZone,
|
|
3335
3098
|
{
|
|
3336
3099
|
isOpen: zoneOpen,
|
|
3337
3100
|
onToggle: () => setZoneOpen((o) => !o),
|
|
@@ -3351,12 +3114,12 @@ function ConnectedDangerZone({ renderSubscriptionLink }) {
|
|
|
3351
3114
|
}
|
|
3352
3115
|
),
|
|
3353
3116
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3354
|
-
|
|
3117
|
+
chunkU73KPFYH_cjs.DeleteAccountDialog,
|
|
3355
3118
|
{
|
|
3356
3119
|
open: dialogOpen,
|
|
3357
3120
|
onClose: flow.onClose,
|
|
3358
3121
|
step: flow.step,
|
|
3359
|
-
blockers:
|
|
3122
|
+
blockers: chunkU73KPFYH_cjs.toDeleteBlockerViews(flow.blockers, renderSubscriptionLink),
|
|
3360
3123
|
onContinue: flow.onContinue,
|
|
3361
3124
|
onBack: flow.onBack,
|
|
3362
3125
|
userEmail,
|
|
@@ -3365,13 +3128,603 @@ function ConnectedDangerZone({ renderSubscriptionLink }) {
|
|
|
3365
3128
|
isDeleting: flow.isDeleting,
|
|
3366
3129
|
onSubmit: flow.onSubmit
|
|
3367
3130
|
}
|
|
3368
|
-
)
|
|
3369
|
-
] });
|
|
3131
|
+
)
|
|
3132
|
+
] });
|
|
3133
|
+
}
|
|
3134
|
+
function ServerConnectionRow({ onRefresh, ...status }) {
|
|
3135
|
+
const { runtimeConfig } = chunkKPZZ5FHE_cjs.useBlocksEnvironment();
|
|
3136
|
+
const [isRefreshing, setIsRefreshing] = react.useState(false);
|
|
3137
|
+
const view = chunkU73KPFYH_cjs.serverConnectionView(status, runtimeConfig.deploymentDomain || "server");
|
|
3138
|
+
const refresh = async () => {
|
|
3139
|
+
setIsRefreshing(true);
|
|
3140
|
+
try {
|
|
3141
|
+
await onRefresh();
|
|
3142
|
+
} finally {
|
|
3143
|
+
setIsRefreshing(false);
|
|
3144
|
+
}
|
|
3145
|
+
};
|
|
3146
|
+
return /* @__PURE__ */ jsxRuntime.jsx(chunkU73KPFYH_cjs.SettingsRow, { label: "Server connection", description: view.description, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
3147
|
+
chunkU73KPFYH_cjs.ServerConnectionButton,
|
|
3148
|
+
{
|
|
3149
|
+
state: view.state,
|
|
3150
|
+
label: view.label,
|
|
3151
|
+
isRefreshing,
|
|
3152
|
+
onRefresh: () => void refresh()
|
|
3153
|
+
}
|
|
3154
|
+
) });
|
|
3155
|
+
}
|
|
3156
|
+
function ConnectedAccountSettings({
|
|
3157
|
+
avatarClassName,
|
|
3158
|
+
onManageBilling,
|
|
3159
|
+
formatIdentityPrice,
|
|
3160
|
+
afterProfile,
|
|
3161
|
+
getUnmetPasswordRequirement,
|
|
3162
|
+
securityRows,
|
|
3163
|
+
connection,
|
|
3164
|
+
onLogout,
|
|
3165
|
+
renderSessionIcon,
|
|
3166
|
+
renderSubscriptionLink
|
|
3167
|
+
}) {
|
|
3168
|
+
const [logoutOpen, setLogoutOpen] = react.useState(false);
|
|
3169
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(chunkU73KPFYH_cjs.SettingsPanel, { className: "max-w-2xl", children: [
|
|
3170
|
+
/* @__PURE__ */ jsxRuntime.jsx(ConnectedProfileCard, { avatarClassName, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
3171
|
+
ConnectedIdentityVerification,
|
|
3172
|
+
{
|
|
3173
|
+
onManageBilling,
|
|
3174
|
+
formatPrice: formatIdentityPrice
|
|
3175
|
+
}
|
|
3176
|
+
) }),
|
|
3177
|
+
afterProfile,
|
|
3178
|
+
/* @__PURE__ */ jsxRuntime.jsx(ConnectedSecuritySection, { getUnmetRequirement: getUnmetPasswordRequirement, children: securityRows }),
|
|
3179
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkU73KPFYH_cjs.SettingsSection, { icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Wifi, {}), title: "Session", children: /* @__PURE__ */ jsxRuntime.jsxs(chunkU73KPFYH_cjs.SettingsCard, { children: [
|
|
3180
|
+
connection && /* @__PURE__ */ jsxRuntime.jsx(ServerConnectionRow, { ...connection }),
|
|
3181
|
+
/* @__PURE__ */ jsxRuntime.jsx(ConnectedSessionsRow, { renderSessionIcon }),
|
|
3182
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkU73KPFYH_cjs.SettingsRow, { label: "Logout", description: "Sign out of your account on this device.", children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
3183
|
+
ui.Button,
|
|
3184
|
+
{
|
|
3185
|
+
type: "button",
|
|
3186
|
+
variant: "secondary",
|
|
3187
|
+
size: "sm",
|
|
3188
|
+
onClick: onLogout ?? (() => setLogoutOpen(true)),
|
|
3189
|
+
className: "flex items-center gap-2",
|
|
3190
|
+
"data-testid": "logout-button",
|
|
3191
|
+
children: [
|
|
3192
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.LogOut, { className: "w-4 h-4" }),
|
|
3193
|
+
"Logout"
|
|
3194
|
+
]
|
|
3195
|
+
}
|
|
3196
|
+
) })
|
|
3197
|
+
] }) }),
|
|
3198
|
+
/* @__PURE__ */ jsxRuntime.jsx(ConnectedDangerZone, { renderSubscriptionLink }),
|
|
3199
|
+
!onLogout && /* @__PURE__ */ jsxRuntime.jsx(
|
|
3200
|
+
ConnectedLogoutDialog,
|
|
3201
|
+
{
|
|
3202
|
+
open: logoutOpen,
|
|
3203
|
+
onClose: () => setLogoutOpen(false),
|
|
3204
|
+
renderSessionIcon
|
|
3205
|
+
}
|
|
3206
|
+
)
|
|
3207
|
+
] });
|
|
3208
|
+
}
|
|
3209
|
+
function ConnectedMailAccounts({
|
|
3210
|
+
policy,
|
|
3211
|
+
accounts,
|
|
3212
|
+
onClose,
|
|
3213
|
+
embedded = false,
|
|
3214
|
+
user,
|
|
3215
|
+
oauthReturnPath,
|
|
3216
|
+
settings
|
|
3217
|
+
}) {
|
|
3218
|
+
const { client } = react$1.useMailClient();
|
|
3219
|
+
const [profileId, setProfileId] = react.useState(policy.server_profiles[0]?.id ?? "");
|
|
3220
|
+
const [email, setEmail] = react.useState("");
|
|
3221
|
+
const [username, setUsername] = react.useState("");
|
|
3222
|
+
const [password, setPassword] = react.useState("");
|
|
3223
|
+
const [error, setError] = react.useState("");
|
|
3224
|
+
const [alias, setAlias] = react.useState(() => react$1.defaultMailAlias(user));
|
|
3225
|
+
const native = react$1.useClaimNativeAlias(onClose);
|
|
3226
|
+
const isOnline = react$1.useMailOnline();
|
|
3227
|
+
const offline = !isOnline;
|
|
3228
|
+
const onNativeError = (err) => {
|
|
3229
|
+
if (!react$1.isAliasTakenError(err)) return setError(err.message);
|
|
3230
|
+
const suggestion = react$1.nextAliasSuggestion(alias);
|
|
3231
|
+
setAlias(suggestion);
|
|
3232
|
+
setError(react$1.aliasTakenMessage(alias, suggestion, policy.native_domain));
|
|
3233
|
+
};
|
|
3234
|
+
const connect = react$1.useConnectMailAccount();
|
|
3235
|
+
const disconnect = react$1.useDisconnectMailAccount();
|
|
3236
|
+
const authorizeOAuth = client.authorizeOAuth;
|
|
3237
|
+
const oauth = async (vendor) => {
|
|
3238
|
+
if (!authorizeOAuth) return;
|
|
3239
|
+
try {
|
|
3240
|
+
window.location.assign(
|
|
3241
|
+
await authorizeOAuth(
|
|
3242
|
+
vendor,
|
|
3243
|
+
oauthReturnPath ?? `${window.location.pathname}${window.location.search}`
|
|
3244
|
+
)
|
|
3245
|
+
);
|
|
3246
|
+
} catch (err) {
|
|
3247
|
+
setError(err instanceof Error ? err.message : "Could not connect account");
|
|
3248
|
+
}
|
|
3249
|
+
};
|
|
3250
|
+
const content = /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
3251
|
+
offline && /* @__PURE__ */ jsxRuntime.jsx(
|
|
3252
|
+
"p",
|
|
3253
|
+
{
|
|
3254
|
+
role: "status",
|
|
3255
|
+
className: "mb-4 rounded bg-muted/40 px-3 py-2 text-sm text-muted-foreground",
|
|
3256
|
+
children: "You're offline. Creating, connecting or removing accounts needs a connection."
|
|
3257
|
+
}
|
|
3258
|
+
),
|
|
3259
|
+
policy.native_enabled && !accounts.some((a) => a.provider === "native") && /* @__PURE__ */ jsxRuntime.jsxs(
|
|
3260
|
+
"form",
|
|
3261
|
+
{
|
|
3262
|
+
className: "mb-5 grid gap-3",
|
|
3263
|
+
onSubmit: (e) => {
|
|
3264
|
+
e.preventDefault();
|
|
3265
|
+
native.mutate(alias, { onError: onNativeError });
|
|
3266
|
+
},
|
|
3267
|
+
children: [
|
|
3268
|
+
/* @__PURE__ */ jsxRuntime.jsxs("label", { className: "grid gap-1 text-sm", children: [
|
|
3269
|
+
"Choose your email address",
|
|
3270
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
|
|
3271
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3272
|
+
"input",
|
|
3273
|
+
{
|
|
3274
|
+
"aria-label": "Email alias",
|
|
3275
|
+
required: true,
|
|
3276
|
+
pattern: "[a-z0-9][a-z0-9._\\-]{0,62}",
|
|
3277
|
+
className: "min-w-0 flex-1 rounded border bg-background p-2",
|
|
3278
|
+
value: alias,
|
|
3279
|
+
onChange: (e) => setAlias(e.target.value.toLowerCase())
|
|
3280
|
+
}
|
|
3281
|
+
),
|
|
3282
|
+
/* @__PURE__ */ jsxRuntime.jsxs("span", { children: [
|
|
3283
|
+
"@",
|
|
3284
|
+
policy.native_domain
|
|
3285
|
+
] })
|
|
3286
|
+
] })
|
|
3287
|
+
] }),
|
|
3288
|
+
/* @__PURE__ */ jsxRuntime.jsx(ui.Button, { disabled: native.isPending || offline, type: "submit", children: "Create inbox" })
|
|
3289
|
+
]
|
|
3290
|
+
}
|
|
3291
|
+
),
|
|
3292
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mb-4 text-sm text-muted-foreground", children: "Connect an account using the providers enabled by your administrator." }),
|
|
3293
|
+
authorizeOAuth && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-4 flex flex-wrap gap-2", children: policy.oauth_providers.map((vendor) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
3294
|
+
ui.Button,
|
|
3295
|
+
{
|
|
3296
|
+
variant: "outline",
|
|
3297
|
+
disabled: offline,
|
|
3298
|
+
onClick: () => void oauth(vendor),
|
|
3299
|
+
children: [
|
|
3300
|
+
"Connect ",
|
|
3301
|
+
vendor === "microsoft" ? "Outlook" : "Gmail"
|
|
3302
|
+
]
|
|
3303
|
+
},
|
|
3304
|
+
vendor
|
|
3305
|
+
)) }),
|
|
3306
|
+
accounts.map((account) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
3307
|
+
"div",
|
|
3308
|
+
{
|
|
3309
|
+
className: "mb-2 flex items-center justify-between gap-2 rounded border p-3 text-sm",
|
|
3310
|
+
children: [
|
|
3311
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
3312
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { children: account.email }),
|
|
3313
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-muted-foreground", children: account.display_name })
|
|
3314
|
+
] }),
|
|
3315
|
+
account.profile_id ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
3316
|
+
ui.Button,
|
|
3317
|
+
{
|
|
3318
|
+
variant: "ghost",
|
|
3319
|
+
disabled: disconnect.isPending || offline,
|
|
3320
|
+
onClick: () => disconnect.mutate(account.id, { onError: (err) => setError(err.message) }),
|
|
3321
|
+
children: "Disconnect"
|
|
3322
|
+
}
|
|
3323
|
+
) : account.provider !== "native" ? authorizeOAuth && /* @__PURE__ */ jsxRuntime.jsx(
|
|
3324
|
+
ui.Button,
|
|
3325
|
+
{
|
|
3326
|
+
variant: "ghost",
|
|
3327
|
+
disabled: offline,
|
|
3328
|
+
onClick: () => void oauth(account.provider),
|
|
3329
|
+
children: "Reconnect"
|
|
3330
|
+
}
|
|
3331
|
+
) : /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-muted-foreground", children: "Native inbox" })
|
|
3332
|
+
]
|
|
3333
|
+
},
|
|
3334
|
+
account.id
|
|
3335
|
+
)),
|
|
3336
|
+
policy.server_profiles.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs(
|
|
3337
|
+
"form",
|
|
3338
|
+
{
|
|
3339
|
+
className: "mt-5 grid gap-3",
|
|
3340
|
+
onSubmit: (event) => {
|
|
3341
|
+
event.preventDefault();
|
|
3342
|
+
setError("");
|
|
3343
|
+
connect.mutate(
|
|
3344
|
+
{ profileId, email, username, password },
|
|
3345
|
+
{
|
|
3346
|
+
onSuccess: () => {
|
|
3347
|
+
setPassword("");
|
|
3348
|
+
onClose();
|
|
3349
|
+
},
|
|
3350
|
+
onError: (err) => setError(err.message)
|
|
3351
|
+
}
|
|
3352
|
+
);
|
|
3353
|
+
},
|
|
3354
|
+
children: [
|
|
3355
|
+
/* @__PURE__ */ jsxRuntime.jsxs("label", { className: "grid gap-1 text-sm", children: [
|
|
3356
|
+
"Mail server",
|
|
3357
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3358
|
+
"select",
|
|
3359
|
+
{
|
|
3360
|
+
"aria-label": "Mail server",
|
|
3361
|
+
className: "rounded border bg-background p-2",
|
|
3362
|
+
value: profileId,
|
|
3363
|
+
onChange: (e) => setProfileId(e.target.value),
|
|
3364
|
+
children: policy.server_profiles.map((profile) => /* @__PURE__ */ jsxRuntime.jsx("option", { value: profile.id, children: profile.name }, profile.id))
|
|
3365
|
+
}
|
|
3366
|
+
)
|
|
3367
|
+
] }),
|
|
3368
|
+
/* @__PURE__ */ jsxRuntime.jsxs("label", { className: "grid gap-1 text-sm", children: [
|
|
3369
|
+
"Email address",
|
|
3370
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3371
|
+
"input",
|
|
3372
|
+
{
|
|
3373
|
+
required: true,
|
|
3374
|
+
type: "email",
|
|
3375
|
+
autoComplete: "email",
|
|
3376
|
+
className: "rounded border bg-background p-2",
|
|
3377
|
+
value: email,
|
|
3378
|
+
onChange: (e) => setEmail(e.target.value)
|
|
3379
|
+
}
|
|
3380
|
+
)
|
|
3381
|
+
] }),
|
|
3382
|
+
/* @__PURE__ */ jsxRuntime.jsxs("label", { className: "grid gap-1 text-sm", children: [
|
|
3383
|
+
"Username",
|
|
3384
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3385
|
+
"input",
|
|
3386
|
+
{
|
|
3387
|
+
placeholder: "Same as email address",
|
|
3388
|
+
autoComplete: "username",
|
|
3389
|
+
className: "rounded border bg-background p-2",
|
|
3390
|
+
value: username,
|
|
3391
|
+
onChange: (e) => setUsername(e.target.value)
|
|
3392
|
+
}
|
|
3393
|
+
)
|
|
3394
|
+
] }),
|
|
3395
|
+
/* @__PURE__ */ jsxRuntime.jsxs("label", { className: "grid gap-1 text-sm", children: [
|
|
3396
|
+
"Password or app password",
|
|
3397
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3398
|
+
"input",
|
|
3399
|
+
{
|
|
3400
|
+
required: true,
|
|
3401
|
+
type: "password",
|
|
3402
|
+
autoComplete: "current-password",
|
|
3403
|
+
className: "rounded border bg-background p-2",
|
|
3404
|
+
value: password,
|
|
3405
|
+
onChange: (e) => setPassword(e.target.value)
|
|
3406
|
+
}
|
|
3407
|
+
)
|
|
3408
|
+
] }),
|
|
3409
|
+
/* @__PURE__ */ jsxRuntime.jsx(ui.Button, { type: "submit", disabled: connect.isPending || offline, children: connect.isPending ? "Connecting\u2026" : "Connect mailbox" })
|
|
3410
|
+
]
|
|
3411
|
+
}
|
|
3412
|
+
),
|
|
3413
|
+
error && /* @__PURE__ */ jsxRuntime.jsx("p", { role: "alert", className: "mt-3 text-sm text-destructive", children: error }),
|
|
3414
|
+
accounts.length > 0 && settings
|
|
3415
|
+
] });
|
|
3416
|
+
if (embedded) return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "max-w-2xl", children: content });
|
|
3417
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
3418
|
+
ui.Dialog,
|
|
3419
|
+
{
|
|
3420
|
+
open: true,
|
|
3421
|
+
onOpenChange: (open) => {
|
|
3422
|
+
if (!open) onClose();
|
|
3423
|
+
},
|
|
3424
|
+
children: /* @__PURE__ */ jsxRuntime.jsxs(ui.DialogContent, { className: "max-h-[90dvh] max-w-lg overflow-auto", children: [
|
|
3425
|
+
/* @__PURE__ */ jsxRuntime.jsx(ui.DialogTitle, { children: "Mail accounts" }),
|
|
3426
|
+
/* @__PURE__ */ jsxRuntime.jsx(ui.DialogDescription, { children: "Choose your email address or connect an external mailbox." }),
|
|
3427
|
+
content
|
|
3428
|
+
] })
|
|
3429
|
+
}
|
|
3430
|
+
);
|
|
3431
|
+
}
|
|
3432
|
+
var noop = () => {
|
|
3433
|
+
};
|
|
3434
|
+
function ConnectedMailSettings({ oauthReturnPath, settings }) {
|
|
3435
|
+
const { data: policy } = react$1.useMailPolicy();
|
|
3436
|
+
const accounts = react$1.useMailAccounts({ enabled: !!policy?.enabled });
|
|
3437
|
+
const { data: profile } = react$1.useProfile();
|
|
3438
|
+
if (accounts.isError) {
|
|
3439
|
+
return /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-muted-foreground", children: accounts.error.message });
|
|
3440
|
+
}
|
|
3441
|
+
if (!policy || !accounts.isSuccess) return /* @__PURE__ */ jsxRuntime.jsx("p", { children: "Loading mail accounts\u2026" });
|
|
3442
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
3443
|
+
ConnectedMailAccounts,
|
|
3444
|
+
{
|
|
3445
|
+
embedded: true,
|
|
3446
|
+
policy,
|
|
3447
|
+
accounts: accounts.data,
|
|
3448
|
+
user: profile && { given_name: profile.givenName, family_name: profile.familyName },
|
|
3449
|
+
oauthReturnPath,
|
|
3450
|
+
settings,
|
|
3451
|
+
onClose: noop
|
|
3452
|
+
},
|
|
3453
|
+
profile ? "named" : "unnamed"
|
|
3454
|
+
);
|
|
3455
|
+
}
|
|
3456
|
+
function ConnectedPrivacySettings({
|
|
3457
|
+
rows,
|
|
3458
|
+
showTipsReset = false
|
|
3459
|
+
}) {
|
|
3460
|
+
const { data: settings } = react$1.useUserSettings();
|
|
3461
|
+
const update = react$1.useUpdateUserSettings();
|
|
3462
|
+
const hideOnlineStatus = settings?.hide_online_status ?? false;
|
|
3463
|
+
const dismissedTips = settings?.dismissed_tips ?? [];
|
|
3464
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(chunkU73KPFYH_cjs.SettingsPanel, { className: "max-w-2xl", children: [
|
|
3465
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkU73KPFYH_cjs.SettingsSection, { title: "Privacy and tips", children: /* @__PURE__ */ jsxRuntime.jsxs(chunkU73KPFYH_cjs.SettingsCard, { children: [
|
|
3466
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3467
|
+
chunkU73KPFYH_cjs.SettingsRow,
|
|
3468
|
+
{
|
|
3469
|
+
label: "Show Online Status",
|
|
3470
|
+
labelFor: "showOnlineStatus",
|
|
3471
|
+
description: "When on, other users can see when you're online",
|
|
3472
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
3473
|
+
ui.Switch,
|
|
3474
|
+
{
|
|
3475
|
+
id: "showOnlineStatus",
|
|
3476
|
+
checked: !hideOnlineStatus,
|
|
3477
|
+
onCheckedChange: (value) => update.mutate({ hide_online_status: !value }),
|
|
3478
|
+
"data-testid": "toggle-show-online-status"
|
|
3479
|
+
}
|
|
3480
|
+
)
|
|
3481
|
+
}
|
|
3482
|
+
),
|
|
3483
|
+
rows,
|
|
3484
|
+
showTipsReset && /* @__PURE__ */ jsxRuntime.jsx(
|
|
3485
|
+
chunkU73KPFYH_cjs.SettingsRow,
|
|
3486
|
+
{
|
|
3487
|
+
label: "Hidden tips",
|
|
3488
|
+
description: "Restore any Smart Tips you\u2019ve hidden with \u201Cdon\u2019t show again\u201D.",
|
|
3489
|
+
children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
3490
|
+
ui.Button,
|
|
3491
|
+
{
|
|
3492
|
+
type: "button",
|
|
3493
|
+
variant: "outline",
|
|
3494
|
+
size: "sm",
|
|
3495
|
+
onClick: () => update.mutate({ dismissed_tips: [] }),
|
|
3496
|
+
disabled: dismissedTips.length === 0,
|
|
3497
|
+
className: "gap-1.5",
|
|
3498
|
+
"data-testid": "reset-tips-button",
|
|
3499
|
+
children: [
|
|
3500
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.RotateCcw, { className: "h-4 w-4" }),
|
|
3501
|
+
"Reset tips"
|
|
3502
|
+
]
|
|
3503
|
+
}
|
|
3504
|
+
)
|
|
3505
|
+
}
|
|
3506
|
+
)
|
|
3507
|
+
] }) }),
|
|
3508
|
+
/* @__PURE__ */ jsxRuntime.jsx(ConnectedNotificationPreferences, {})
|
|
3509
|
+
] });
|
|
3510
|
+
}
|
|
3511
|
+
var PROVIDER_NAMES = {
|
|
3512
|
+
openai: "OpenAI",
|
|
3513
|
+
fireworks_ai: "Fireworks AI",
|
|
3514
|
+
"vertex_ai-language-models": "Google",
|
|
3515
|
+
vertex_ai: "Google",
|
|
3516
|
+
gemini: "Google",
|
|
3517
|
+
anthropic: "Anthropic"
|
|
3518
|
+
};
|
|
3519
|
+
var isStandard = (model) => !!model?.tags?.includes("Standard");
|
|
3520
|
+
function PremiumCostHeader() {
|
|
3521
|
+
return /* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex items-center gap-0.5", children: "\xA3/MT in-out" });
|
|
3522
|
+
}
|
|
3523
|
+
function cheapest(models) {
|
|
3524
|
+
return [...models].sort((a, b) => {
|
|
3525
|
+
const ao = a.output_cost_per_token;
|
|
3526
|
+
const bo = b.output_cost_per_token;
|
|
3527
|
+
if (ao == null && bo == null) return 0;
|
|
3528
|
+
if (ao == null) return 1;
|
|
3529
|
+
if (bo == null) return -1;
|
|
3530
|
+
return ao - bo;
|
|
3531
|
+
})[0];
|
|
3532
|
+
}
|
|
3533
|
+
var COLUMNS = [
|
|
3534
|
+
{
|
|
3535
|
+
colId: "model_name",
|
|
3536
|
+
headerName: "Model",
|
|
3537
|
+
field: "model_name",
|
|
3538
|
+
flex: 2,
|
|
3539
|
+
minWidth: 130,
|
|
3540
|
+
tooltipField: "model_name"
|
|
3541
|
+
},
|
|
3542
|
+
{
|
|
3543
|
+
colId: "provider",
|
|
3544
|
+
headerName: "Provider",
|
|
3545
|
+
field: "provider",
|
|
3546
|
+
flex: 1,
|
|
3547
|
+
minWidth: 120,
|
|
3548
|
+
cellRenderer: (params) => isStandard(params.data) ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
3549
|
+
chunkU73KPFYH_cjs.ModelProviderLabel,
|
|
3550
|
+
{
|
|
3551
|
+
logo: /* @__PURE__ */ jsxRuntime.jsx("img", { src: "/favicon.svg", alt: "ARBI", className: "size-3.5 flex-shrink-0 rounded-sm" }),
|
|
3552
|
+
children: "ARBI CITY"
|
|
3553
|
+
}
|
|
3554
|
+
) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
3555
|
+
chunkU73KPFYH_cjs.ModelProviderLabel,
|
|
3556
|
+
{
|
|
3557
|
+
logo: /* @__PURE__ */ jsxRuntime.jsx(react$1.ProviderIcon, { modelName: params.data?.model_name, provider: params.value, size: 14 }),
|
|
3558
|
+
children: PROVIDER_NAMES[params.value ?? ""] || params.value || "\u2014"
|
|
3559
|
+
}
|
|
3560
|
+
)
|
|
3561
|
+
},
|
|
3562
|
+
{
|
|
3563
|
+
// Input and output cost in one column so the table fits the panel; sorted by output cost.
|
|
3564
|
+
colId: "cost",
|
|
3565
|
+
headerName: "Cost / MTok",
|
|
3566
|
+
headerComponentParams: { innerHeaderComponent: PremiumCostHeader },
|
|
3567
|
+
headerTooltip: "\xA3 per million tokens \u2014 input then output",
|
|
3568
|
+
field: "output_cost_per_token",
|
|
3569
|
+
flex: 1,
|
|
3570
|
+
minWidth: 120,
|
|
3571
|
+
type: "rightAligned",
|
|
3572
|
+
cellRenderer: (params) => /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "tabular-nums", children: [
|
|
3573
|
+
react$1.formatGbpPerMillionTokens(params.data?.input_cost_per_token) ?? "\xA30",
|
|
3574
|
+
"-",
|
|
3575
|
+
react$1.formatGbpPerMillionTokens(params.data?.output_cost_per_token) ?? "\xA30"
|
|
3576
|
+
] })
|
|
3577
|
+
}
|
|
3578
|
+
];
|
|
3579
|
+
function ConnectedPremiumModels() {
|
|
3580
|
+
const { notify } = chunkKPZZ5FHE_cjs.useBlocksEnvironment();
|
|
3581
|
+
const { data: settings } = react$1.useUserSettings();
|
|
3582
|
+
const update = react$1.useUpdateUserSettings();
|
|
3583
|
+
const { data: available } = react$1.useAvailableModels();
|
|
3584
|
+
const isDeveloper = settings?.developer === true;
|
|
3585
|
+
const premiumModel = settings?.premium_model;
|
|
3586
|
+
const premiumModels = react.useMemo(
|
|
3587
|
+
() => (available?.models ?? []).filter(
|
|
3588
|
+
(m) => m.tags?.includes("Premium") && (isDeveloper || !m.model_name.includes("@"))
|
|
3589
|
+
),
|
|
3590
|
+
[available, isDeveloper]
|
|
3591
|
+
);
|
|
3592
|
+
const rows = react.useMemo(() => {
|
|
3593
|
+
const standards = (available?.models ?? []).filter(isStandard);
|
|
3594
|
+
if (standards.length === 0) return premiumModels;
|
|
3595
|
+
const reference = {
|
|
3596
|
+
...standards[0],
|
|
3597
|
+
model_name: `Standard (${standards.map((m) => m.model_name).join(", ")})`
|
|
3598
|
+
};
|
|
3599
|
+
return [reference, ...premiumModels];
|
|
3600
|
+
}, [available, premiumModels]);
|
|
3601
|
+
const current = premiumModel ?? available?.premium_default ?? "";
|
|
3602
|
+
const save = react.useCallback(
|
|
3603
|
+
(model) => update.mutate(
|
|
3604
|
+
{ premium_model: model },
|
|
3605
|
+
{
|
|
3606
|
+
onError: (err) => notify(`Failed to update Premium setting: ${String(err)}`, "error")
|
|
3607
|
+
}
|
|
3608
|
+
),
|
|
3609
|
+
[update, notify]
|
|
3610
|
+
);
|
|
3611
|
+
const currentRef = react.useRef(current);
|
|
3612
|
+
currentRef.current = current;
|
|
3613
|
+
const [selected, setSelected] = react.useState([]);
|
|
3614
|
+
react.useEffect(() => {
|
|
3615
|
+
const match = premiumModels.filter((m) => m.model_name === current);
|
|
3616
|
+
setSelected(
|
|
3617
|
+
(prev) => prev.length === match.length && prev[0]?.model_name === match[0]?.model_name ? prev : match
|
|
3618
|
+
);
|
|
3619
|
+
}, [current, premiumModels]);
|
|
3620
|
+
const onSelectionChange = react.useCallback(
|
|
3621
|
+
(items) => {
|
|
3622
|
+
const picked = items.filter((m) => !isStandard(m));
|
|
3623
|
+
const next = picked[0]?.model_name;
|
|
3624
|
+
if (!next || next === currentRef.current) return;
|
|
3625
|
+
setSelected(picked);
|
|
3626
|
+
save(next);
|
|
3627
|
+
},
|
|
3628
|
+
[save]
|
|
3629
|
+
);
|
|
3630
|
+
if (premiumModels.length === 0) return null;
|
|
3631
|
+
return /* @__PURE__ */ jsxRuntime.jsx(chunkU73KPFYH_cjs.SettingsPanel, { className: "max-w-2xl space-y-4", children: /* @__PURE__ */ jsxRuntime.jsx(chunkU73KPFYH_cjs.SettingsSection, { title: "Premium models", children: /* @__PURE__ */ jsxRuntime.jsx(chunkU73KPFYH_cjs.SettingsCard, { className: "space-y-0", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
3632
|
+
chunkU73KPFYH_cjs.PremiumModelsFrame,
|
|
3633
|
+
{
|
|
3634
|
+
enabled: premiumModel !== "",
|
|
3635
|
+
onEnabledChange: (enabled) => {
|
|
3636
|
+
const target = enabled ? cheapest(premiumModels)?.model_name : "";
|
|
3637
|
+
if (target !== void 0) save(target);
|
|
3638
|
+
},
|
|
3639
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
3640
|
+
chunkC2CWWEHO_cjs.GridView,
|
|
3641
|
+
{
|
|
3642
|
+
items: rows,
|
|
3643
|
+
columnDefs: COLUMNS,
|
|
3644
|
+
getItemId: (m) => m.model_name,
|
|
3645
|
+
selection: { mode: "single", selected, onSelectionChange },
|
|
3646
|
+
gridOptions: {
|
|
3647
|
+
rowClassRules: { "opacity-60 italic": (p) => isStandard(p.data) }
|
|
3648
|
+
},
|
|
3649
|
+
height: Math.min(rows.length * 40 + 48, 320),
|
|
3650
|
+
testId: "premium-model-grid"
|
|
3651
|
+
}
|
|
3652
|
+
)
|
|
3653
|
+
}
|
|
3654
|
+
) }) }) });
|
|
3655
|
+
}
|
|
3656
|
+
var SETTINGS_SECTION_IDS = {
|
|
3657
|
+
account: "account",
|
|
3658
|
+
mail: "mail",
|
|
3659
|
+
privacy: "privacy",
|
|
3660
|
+
chat: "chat"
|
|
3661
|
+
};
|
|
3662
|
+
function accountSettingsSection(props) {
|
|
3663
|
+
return {
|
|
3664
|
+
id: SETTINGS_SECTION_IDS.account,
|
|
3665
|
+
label: "Account",
|
|
3666
|
+
icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.User, { className: "w-6 h-6" }),
|
|
3667
|
+
render: () => /* @__PURE__ */ jsxRuntime.jsx(ConnectedAccountSettings, { ...props })
|
|
3668
|
+
};
|
|
3669
|
+
}
|
|
3670
|
+
function mailSettingsSection(props) {
|
|
3671
|
+
return {
|
|
3672
|
+
id: SETTINGS_SECTION_IDS.mail,
|
|
3673
|
+
label: "Mail",
|
|
3674
|
+
icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Mail, { className: "w-6 h-6" }),
|
|
3675
|
+
render: () => /* @__PURE__ */ jsxRuntime.jsx(ConnectedMailSettings, { ...props })
|
|
3676
|
+
};
|
|
3677
|
+
}
|
|
3678
|
+
function privacySettingsSection(props) {
|
|
3679
|
+
return {
|
|
3680
|
+
id: SETTINGS_SECTION_IDS.privacy,
|
|
3681
|
+
label: "Privacy",
|
|
3682
|
+
icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.HatGlasses, { className: "w-6 h-6" }),
|
|
3683
|
+
render: () => /* @__PURE__ */ jsxRuntime.jsx(ConnectedPrivacySettings, { ...props })
|
|
3684
|
+
};
|
|
3685
|
+
}
|
|
3686
|
+
function chatSettingsSection() {
|
|
3687
|
+
return {
|
|
3688
|
+
id: SETTINGS_SECTION_IDS.chat,
|
|
3689
|
+
label: "Chat",
|
|
3690
|
+
icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.MessageSquare, { className: "w-6 h-6" }),
|
|
3691
|
+
render: () => /* @__PURE__ */ jsxRuntime.jsx(ConnectedPremiumModels, {})
|
|
3692
|
+
};
|
|
3693
|
+
}
|
|
3694
|
+
var DEFAULT_SETTINGS_SECTIONS = [
|
|
3695
|
+
accountSettingsSection(),
|
|
3696
|
+
privacySettingsSection(),
|
|
3697
|
+
chatSettingsSection()
|
|
3698
|
+
];
|
|
3699
|
+
function ConnectedSettingsPage({
|
|
3700
|
+
sections = DEFAULT_SETTINGS_SECTIONS,
|
|
3701
|
+
section,
|
|
3702
|
+
onSectionChange,
|
|
3703
|
+
...page
|
|
3704
|
+
}) {
|
|
3705
|
+
const requested = chunkKPZZ5FHE_cjs.useRequestedSettingsSection();
|
|
3706
|
+
const [local, setLocal] = react.useState(requested?.section);
|
|
3707
|
+
react.useEffect(() => {
|
|
3708
|
+
if (requested) setLocal(requested.section);
|
|
3709
|
+
}, [requested]);
|
|
3710
|
+
const controlled = section !== void 0;
|
|
3711
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
3712
|
+
chunkU73KPFYH_cjs.SettingsPage,
|
|
3713
|
+
{
|
|
3714
|
+
...page,
|
|
3715
|
+
sections,
|
|
3716
|
+
activeSectionId: controlled ? section : local,
|
|
3717
|
+
onSectionChange: (id) => {
|
|
3718
|
+
if (!controlled) setLocal(id);
|
|
3719
|
+
onSectionChange?.(id);
|
|
3720
|
+
}
|
|
3721
|
+
}
|
|
3722
|
+
);
|
|
3370
3723
|
}
|
|
3371
3724
|
function useConnectedDocxNotifications(onOpen) {
|
|
3372
3725
|
const arbi = react$1.useArbi();
|
|
3373
3726
|
const { status, user, apiUrl } = chunkGFNELPDP_cjs.useConnection();
|
|
3374
|
-
const { notify } =
|
|
3727
|
+
const { notify } = chunkKPZZ5FHE_cjs.useBlocksEnvironment();
|
|
3375
3728
|
const queries = reactQuery.useQueryClient();
|
|
3376
3729
|
const source = `docx-mentions:${apiUrl}:${user?.externalId || ""}`;
|
|
3377
3730
|
const queryKey = ["docx-mentions", apiUrl, user?.externalId];
|
|
@@ -3437,7 +3790,7 @@ function useConnectedDocxNotifications(onOpen) {
|
|
|
3437
3790
|
}
|
|
3438
3791
|
function useConnectedWorkNotifications(onOpen) {
|
|
3439
3792
|
const { status, user, apiUrl } = chunkGFNELPDP_cjs.useConnection();
|
|
3440
|
-
const { notify } =
|
|
3793
|
+
const { notify } = chunkKPZZ5FHE_cjs.useBlocksEnvironment();
|
|
3441
3794
|
const source = `work-notifications:${apiUrl}:${user?.externalId || ""}`;
|
|
3442
3795
|
const { data = [], markRead: persistRead } = react$1.useWorkNotifications({
|
|
3443
3796
|
apiUrl,
|
|
@@ -3574,229 +3927,6 @@ function hydrateMailAttachments(client$1, account, messageId, attachments, { isO
|
|
|
3574
3927
|
})
|
|
3575
3928
|
);
|
|
3576
3929
|
}
|
|
3577
|
-
function ConnectedMailAccounts({
|
|
3578
|
-
policy,
|
|
3579
|
-
accounts,
|
|
3580
|
-
onClose,
|
|
3581
|
-
embedded = false,
|
|
3582
|
-
user,
|
|
3583
|
-
oauthReturnPath,
|
|
3584
|
-
settings
|
|
3585
|
-
}) {
|
|
3586
|
-
const { client } = react$1.useMailClient();
|
|
3587
|
-
const [profileId, setProfileId] = react.useState(policy.server_profiles[0]?.id ?? "");
|
|
3588
|
-
const [email, setEmail] = react.useState("");
|
|
3589
|
-
const [username, setUsername] = react.useState("");
|
|
3590
|
-
const [password, setPassword] = react.useState("");
|
|
3591
|
-
const [error, setError] = react.useState("");
|
|
3592
|
-
const [alias, setAlias] = react.useState(() => react$1.defaultMailAlias(user));
|
|
3593
|
-
const native = react$1.useClaimNativeAlias(onClose);
|
|
3594
|
-
const isOnline = react$1.useMailOnline();
|
|
3595
|
-
const offline = !isOnline;
|
|
3596
|
-
const onNativeError = (err) => {
|
|
3597
|
-
if (!react$1.isAliasTakenError(err)) return setError(err.message);
|
|
3598
|
-
const suggestion = react$1.nextAliasSuggestion(alias);
|
|
3599
|
-
setAlias(suggestion);
|
|
3600
|
-
setError(react$1.aliasTakenMessage(alias, suggestion, policy.native_domain));
|
|
3601
|
-
};
|
|
3602
|
-
const connect = react$1.useConnectMailAccount();
|
|
3603
|
-
const disconnect = react$1.useDisconnectMailAccount();
|
|
3604
|
-
const authorizeOAuth = client.authorizeOAuth;
|
|
3605
|
-
const oauth = async (vendor) => {
|
|
3606
|
-
if (!authorizeOAuth) return;
|
|
3607
|
-
try {
|
|
3608
|
-
window.location.assign(
|
|
3609
|
-
await authorizeOAuth(
|
|
3610
|
-
vendor,
|
|
3611
|
-
oauthReturnPath ?? `${window.location.pathname}${window.location.search}`
|
|
3612
|
-
)
|
|
3613
|
-
);
|
|
3614
|
-
} catch (err) {
|
|
3615
|
-
setError(err instanceof Error ? err.message : "Could not connect account");
|
|
3616
|
-
}
|
|
3617
|
-
};
|
|
3618
|
-
const content = /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
3619
|
-
offline && /* @__PURE__ */ jsxRuntime.jsx(
|
|
3620
|
-
"p",
|
|
3621
|
-
{
|
|
3622
|
-
role: "status",
|
|
3623
|
-
className: "mb-4 rounded bg-muted/40 px-3 py-2 text-sm text-muted-foreground",
|
|
3624
|
-
children: "You're offline. Creating, connecting or removing accounts needs a connection."
|
|
3625
|
-
}
|
|
3626
|
-
),
|
|
3627
|
-
policy.native_enabled && !accounts.some((a) => a.provider === "native") && /* @__PURE__ */ jsxRuntime.jsxs(
|
|
3628
|
-
"form",
|
|
3629
|
-
{
|
|
3630
|
-
className: "mb-5 grid gap-3",
|
|
3631
|
-
onSubmit: (e) => {
|
|
3632
|
-
e.preventDefault();
|
|
3633
|
-
native.mutate(alias, { onError: onNativeError });
|
|
3634
|
-
},
|
|
3635
|
-
children: [
|
|
3636
|
-
/* @__PURE__ */ jsxRuntime.jsxs("label", { className: "grid gap-1 text-sm", children: [
|
|
3637
|
-
"Choose your email address",
|
|
3638
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
|
|
3639
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3640
|
-
"input",
|
|
3641
|
-
{
|
|
3642
|
-
"aria-label": "Email alias",
|
|
3643
|
-
required: true,
|
|
3644
|
-
pattern: "[a-z0-9][a-z0-9._\\-]{0,62}",
|
|
3645
|
-
className: "min-w-0 flex-1 rounded border bg-background p-2",
|
|
3646
|
-
value: alias,
|
|
3647
|
-
onChange: (e) => setAlias(e.target.value.toLowerCase())
|
|
3648
|
-
}
|
|
3649
|
-
),
|
|
3650
|
-
/* @__PURE__ */ jsxRuntime.jsxs("span", { children: [
|
|
3651
|
-
"@",
|
|
3652
|
-
policy.native_domain
|
|
3653
|
-
] })
|
|
3654
|
-
] })
|
|
3655
|
-
] }),
|
|
3656
|
-
/* @__PURE__ */ jsxRuntime.jsx(ui.Button, { disabled: native.isPending || offline, type: "submit", children: "Create inbox" })
|
|
3657
|
-
]
|
|
3658
|
-
}
|
|
3659
|
-
),
|
|
3660
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mb-4 text-sm text-muted-foreground", children: "Connect an account using the providers enabled by your administrator." }),
|
|
3661
|
-
authorizeOAuth && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-4 flex flex-wrap gap-2", children: policy.oauth_providers.map((vendor) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
3662
|
-
ui.Button,
|
|
3663
|
-
{
|
|
3664
|
-
variant: "outline",
|
|
3665
|
-
disabled: offline,
|
|
3666
|
-
onClick: () => void oauth(vendor),
|
|
3667
|
-
children: [
|
|
3668
|
-
"Connect ",
|
|
3669
|
-
vendor === "microsoft" ? "Outlook" : "Gmail"
|
|
3670
|
-
]
|
|
3671
|
-
},
|
|
3672
|
-
vendor
|
|
3673
|
-
)) }),
|
|
3674
|
-
accounts.map((account) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
3675
|
-
"div",
|
|
3676
|
-
{
|
|
3677
|
-
className: "mb-2 flex items-center justify-between gap-2 rounded border p-3 text-sm",
|
|
3678
|
-
children: [
|
|
3679
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
3680
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { children: account.email }),
|
|
3681
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-muted-foreground", children: account.display_name })
|
|
3682
|
-
] }),
|
|
3683
|
-
account.profile_id ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
3684
|
-
ui.Button,
|
|
3685
|
-
{
|
|
3686
|
-
variant: "ghost",
|
|
3687
|
-
disabled: disconnect.isPending || offline,
|
|
3688
|
-
onClick: () => disconnect.mutate(account.id, { onError: (err) => setError(err.message) }),
|
|
3689
|
-
children: "Disconnect"
|
|
3690
|
-
}
|
|
3691
|
-
) : account.provider !== "native" ? authorizeOAuth && /* @__PURE__ */ jsxRuntime.jsx(
|
|
3692
|
-
ui.Button,
|
|
3693
|
-
{
|
|
3694
|
-
variant: "ghost",
|
|
3695
|
-
disabled: offline,
|
|
3696
|
-
onClick: () => void oauth(account.provider),
|
|
3697
|
-
children: "Reconnect"
|
|
3698
|
-
}
|
|
3699
|
-
) : /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-muted-foreground", children: "Native inbox" })
|
|
3700
|
-
]
|
|
3701
|
-
},
|
|
3702
|
-
account.id
|
|
3703
|
-
)),
|
|
3704
|
-
policy.server_profiles.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs(
|
|
3705
|
-
"form",
|
|
3706
|
-
{
|
|
3707
|
-
className: "mt-5 grid gap-3",
|
|
3708
|
-
onSubmit: (event) => {
|
|
3709
|
-
event.preventDefault();
|
|
3710
|
-
setError("");
|
|
3711
|
-
connect.mutate(
|
|
3712
|
-
{ profileId, email, username, password },
|
|
3713
|
-
{
|
|
3714
|
-
onSuccess: () => {
|
|
3715
|
-
setPassword("");
|
|
3716
|
-
onClose();
|
|
3717
|
-
},
|
|
3718
|
-
onError: (err) => setError(err.message)
|
|
3719
|
-
}
|
|
3720
|
-
);
|
|
3721
|
-
},
|
|
3722
|
-
children: [
|
|
3723
|
-
/* @__PURE__ */ jsxRuntime.jsxs("label", { className: "grid gap-1 text-sm", children: [
|
|
3724
|
-
"Mail server",
|
|
3725
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3726
|
-
"select",
|
|
3727
|
-
{
|
|
3728
|
-
"aria-label": "Mail server",
|
|
3729
|
-
className: "rounded border bg-background p-2",
|
|
3730
|
-
value: profileId,
|
|
3731
|
-
onChange: (e) => setProfileId(e.target.value),
|
|
3732
|
-
children: policy.server_profiles.map((profile) => /* @__PURE__ */ jsxRuntime.jsx("option", { value: profile.id, children: profile.name }, profile.id))
|
|
3733
|
-
}
|
|
3734
|
-
)
|
|
3735
|
-
] }),
|
|
3736
|
-
/* @__PURE__ */ jsxRuntime.jsxs("label", { className: "grid gap-1 text-sm", children: [
|
|
3737
|
-
"Email address",
|
|
3738
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3739
|
-
"input",
|
|
3740
|
-
{
|
|
3741
|
-
required: true,
|
|
3742
|
-
type: "email",
|
|
3743
|
-
autoComplete: "email",
|
|
3744
|
-
className: "rounded border bg-background p-2",
|
|
3745
|
-
value: email,
|
|
3746
|
-
onChange: (e) => setEmail(e.target.value)
|
|
3747
|
-
}
|
|
3748
|
-
)
|
|
3749
|
-
] }),
|
|
3750
|
-
/* @__PURE__ */ jsxRuntime.jsxs("label", { className: "grid gap-1 text-sm", children: [
|
|
3751
|
-
"Username",
|
|
3752
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3753
|
-
"input",
|
|
3754
|
-
{
|
|
3755
|
-
placeholder: "Same as email address",
|
|
3756
|
-
autoComplete: "username",
|
|
3757
|
-
className: "rounded border bg-background p-2",
|
|
3758
|
-
value: username,
|
|
3759
|
-
onChange: (e) => setUsername(e.target.value)
|
|
3760
|
-
}
|
|
3761
|
-
)
|
|
3762
|
-
] }),
|
|
3763
|
-
/* @__PURE__ */ jsxRuntime.jsxs("label", { className: "grid gap-1 text-sm", children: [
|
|
3764
|
-
"Password or app password",
|
|
3765
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3766
|
-
"input",
|
|
3767
|
-
{
|
|
3768
|
-
required: true,
|
|
3769
|
-
type: "password",
|
|
3770
|
-
autoComplete: "current-password",
|
|
3771
|
-
className: "rounded border bg-background p-2",
|
|
3772
|
-
value: password,
|
|
3773
|
-
onChange: (e) => setPassword(e.target.value)
|
|
3774
|
-
}
|
|
3775
|
-
)
|
|
3776
|
-
] }),
|
|
3777
|
-
/* @__PURE__ */ jsxRuntime.jsx(ui.Button, { type: "submit", disabled: connect.isPending || offline, children: connect.isPending ? "Connecting\u2026" : "Connect mailbox" })
|
|
3778
|
-
]
|
|
3779
|
-
}
|
|
3780
|
-
),
|
|
3781
|
-
error && /* @__PURE__ */ jsxRuntime.jsx("p", { role: "alert", className: "mt-3 text-sm text-destructive", children: error }),
|
|
3782
|
-
accounts.length > 0 && settings
|
|
3783
|
-
] });
|
|
3784
|
-
if (embedded) return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "max-w-2xl", children: content });
|
|
3785
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
3786
|
-
ui.Dialog,
|
|
3787
|
-
{
|
|
3788
|
-
open: true,
|
|
3789
|
-
onOpenChange: (open) => {
|
|
3790
|
-
if (!open) onClose();
|
|
3791
|
-
},
|
|
3792
|
-
children: /* @__PURE__ */ jsxRuntime.jsxs(ui.DialogContent, { className: "max-h-[90dvh] max-w-lg overflow-auto", children: [
|
|
3793
|
-
/* @__PURE__ */ jsxRuntime.jsx(ui.DialogTitle, { children: "Mail accounts" }),
|
|
3794
|
-
/* @__PURE__ */ jsxRuntime.jsx(ui.DialogDescription, { children: "Choose your email address or connect an external mailbox." }),
|
|
3795
|
-
content
|
|
3796
|
-
] })
|
|
3797
|
-
}
|
|
3798
|
-
);
|
|
3799
|
-
}
|
|
3800
3930
|
var sessionRooms = /* @__PURE__ */ new Map();
|
|
3801
3931
|
function useWordBody({
|
|
3802
3932
|
word,
|
|
@@ -3916,7 +4046,7 @@ function MailComposerForm({
|
|
|
3916
4046
|
headerSlot
|
|
3917
4047
|
}) {
|
|
3918
4048
|
const { client } = react$1.useMailClient();
|
|
3919
|
-
const { notify, confirm } =
|
|
4049
|
+
const { notify, confirm } = chunkKPZZ5FHE_cjs.useBlocksEnvironment();
|
|
3920
4050
|
const [to, setTo] = react.useState(initial.to.map((r) => r.email).join("; "));
|
|
3921
4051
|
const [cc, setCc] = react.useState(initial.cc.map((r) => r.email).join("; "));
|
|
3922
4052
|
const [showCc, setShowCc] = react.useState(initial.cc.length > 0);
|
|
@@ -4764,7 +4894,7 @@ function ConnectedMailbox({
|
|
|
4764
4894
|
onGridStateChange,
|
|
4765
4895
|
initialMessageId = null
|
|
4766
4896
|
}) {
|
|
4767
|
-
const { notify } =
|
|
4897
|
+
const { notify } = chunkKPZZ5FHE_cjs.useBlocksEnvironment();
|
|
4768
4898
|
const cache = react$1.useMailCache();
|
|
4769
4899
|
const { client } = react$1.useMailClient();
|
|
4770
4900
|
const [savingToWorkspace, setSavingToWorkspace] = react.useState(false);
|
|
@@ -5051,7 +5181,7 @@ function ConnectedMailbox({
|
|
|
5051
5181
|
testIds: { root: "mail-search", input: "mail-filter-input" },
|
|
5052
5182
|
className: "min-w-28 flex-1 sm:max-w-72",
|
|
5053
5183
|
filter: /* @__PURE__ */ jsxRuntime.jsx(
|
|
5054
|
-
|
|
5184
|
+
chunkRQ2Y7USX_cjs.TriStateFilterMenu,
|
|
5055
5185
|
{
|
|
5056
5186
|
testId: "mail-bar-filter-button",
|
|
5057
5187
|
open: filterMenuOpen,
|
|
@@ -5439,7 +5569,7 @@ function SubscribeDialog({
|
|
|
5439
5569
|
timeZone,
|
|
5440
5570
|
onClose
|
|
5441
5571
|
}) {
|
|
5442
|
-
const { notify } =
|
|
5572
|
+
const { notify } = chunkKPZZ5FHE_cjs.useBlocksEnvironment();
|
|
5443
5573
|
const subscribe = react$1.useSubscribeCalendar();
|
|
5444
5574
|
const [url, setUrl] = react.useState("");
|
|
5445
5575
|
const [name, setName] = react.useState("");
|
|
@@ -5534,7 +5664,7 @@ function SubscribeDialog({
|
|
|
5534
5664
|
}
|
|
5535
5665
|
function HolidaysDialog({ open, onClose }) {
|
|
5536
5666
|
const { data: countries = [], isLoading } = react$1.useHolidayCountries(open);
|
|
5537
|
-
const { notify } =
|
|
5667
|
+
const { notify } = chunkKPZZ5FHE_cjs.useBlocksEnvironment();
|
|
5538
5668
|
const add = react$1.useAddHolidayCalendar();
|
|
5539
5669
|
const [country, setCountry] = react.useState("");
|
|
5540
5670
|
const [subdivision, setSubdivision] = react.useState("");
|
|
@@ -5657,7 +5787,7 @@ function StatusBadge({ account }) {
|
|
|
5657
5787
|
);
|
|
5658
5788
|
}
|
|
5659
5789
|
function AccountRow({ account }) {
|
|
5660
|
-
const { notify } =
|
|
5790
|
+
const { notify } = chunkKPZZ5FHE_cjs.useBlocksEnvironment();
|
|
5661
5791
|
const startOAuth = react$1.useStartCalendarAccountOAuth();
|
|
5662
5792
|
const sync = react$1.useSyncCalendarAccount();
|
|
5663
5793
|
const update = react$1.useUpdateCalendarAccount();
|
|
@@ -5775,7 +5905,7 @@ function AccountRow({ account }) {
|
|
|
5775
5905
|
);
|
|
5776
5906
|
}
|
|
5777
5907
|
function CalDavForm({ onDone }) {
|
|
5778
|
-
const { notify } =
|
|
5908
|
+
const { notify } = chunkKPZZ5FHE_cjs.useBlocksEnvironment();
|
|
5779
5909
|
const { data: profiles = [] } = react$1.useCalDavProfiles();
|
|
5780
5910
|
const connect = react$1.useConnectCalDavAccount();
|
|
5781
5911
|
const [profileId, setProfileId] = react.useState("");
|
|
@@ -5891,7 +6021,7 @@ function CalDavForm({ onDone }) {
|
|
|
5891
6021
|
);
|
|
5892
6022
|
}
|
|
5893
6023
|
function CalendarAccountsPanel({ className }) {
|
|
5894
|
-
const { notify } =
|
|
6024
|
+
const { notify } = chunkKPZZ5FHE_cjs.useBlocksEnvironment();
|
|
5895
6025
|
const { connectors } = react$1.useCalendarSupport();
|
|
5896
6026
|
const startOAuth = react$1.useStartCalendarAccountOAuth();
|
|
5897
6027
|
const { data: accounts = [], isLoading, error } = react$1.useCalendarAccounts();
|
|
@@ -5978,7 +6108,7 @@ function CalendarAccountsPanel({ className }) {
|
|
|
5978
6108
|
|
|
5979
6109
|
// src/connection/calendar/copy.ts
|
|
5980
6110
|
function useCalendarCopy() {
|
|
5981
|
-
const copy =
|
|
6111
|
+
const copy = chunkXVUOMWMD_cjs.useCopyText({ copyFailed: "Could not copy. Select the text and copy it manually." });
|
|
5982
6112
|
return (value, what = "Copied") => copy(value, `${what} to clipboard`);
|
|
5983
6113
|
}
|
|
5984
6114
|
function CopyField({ label, value, mono = true, testId, className }) {
|
|
@@ -6027,7 +6157,7 @@ function calendarNames(ids, calendars) {
|
|
|
6027
6157
|
return names.length ? names.join(", ") : `${ids.length} calendar${ids.length === 1 ? "" : "s"}`;
|
|
6028
6158
|
}
|
|
6029
6159
|
function RevokeButton({ row }) {
|
|
6030
|
-
const { notify } =
|
|
6160
|
+
const { notify } = chunkKPZZ5FHE_cjs.useBlocksEnvironment();
|
|
6031
6161
|
const revoke = react$1.useRevokeAppPassword();
|
|
6032
6162
|
const [confirming, setConfirming] = react.useState(false);
|
|
6033
6163
|
if (!confirming)
|
|
@@ -6346,7 +6476,7 @@ function summarizeWeekly(page) {
|
|
|
6346
6476
|
return days.map((d) => chunk6YTHQ73P_cjs.WEEKDAY_NAMES[d]?.slice(0, 3)).join(", ");
|
|
6347
6477
|
}
|
|
6348
6478
|
function BookingPageForm({ page, defaultTimeZone, onDone }) {
|
|
6349
|
-
const { notify } =
|
|
6479
|
+
const { notify } = chunkKPZZ5FHE_cjs.useBlocksEnvironment();
|
|
6350
6480
|
const copyText = useCalendarCopy();
|
|
6351
6481
|
const [form, setForm] = react.useState(
|
|
6352
6482
|
() => page ? chunk6YTHQ73P_cjs.bookingToForm(page) : chunk6YTHQ73P_cjs.emptyBookingForm(defaultTimeZone)
|
|
@@ -6529,7 +6659,7 @@ function BookingPageForm({ page, defaultTimeZone, onDone }) {
|
|
|
6529
6659
|
);
|
|
6530
6660
|
}
|
|
6531
6661
|
function BookingPagesPanel({ defaultTimeZone, className }) {
|
|
6532
|
-
const { notify } =
|
|
6662
|
+
const { notify } = chunkKPZZ5FHE_cjs.useBlocksEnvironment();
|
|
6533
6663
|
const copyText = useCalendarCopy();
|
|
6534
6664
|
const { data: pages = [], isLoading, error } = react$1.useBookingPages();
|
|
6535
6665
|
const { data: settings } = react$1.useCalendarSettings(!defaultTimeZone);
|
|
@@ -6639,7 +6769,7 @@ function BookingPagesPanel({ defaultTimeZone, className }) {
|
|
|
6639
6769
|
}
|
|
6640
6770
|
var selectClass5 = "h-9 w-full rounded-md border border-input bg-background px-2 text-sm text-foreground shadow-sm";
|
|
6641
6771
|
function CreateRoomForm({ zone, onDone }) {
|
|
6642
|
-
const { notify } =
|
|
6772
|
+
const { notify } = chunkKPZZ5FHE_cjs.useBlocksEnvironment();
|
|
6643
6773
|
const create2 = react$1.useCreateRoom();
|
|
6644
6774
|
const [name, setName] = react.useState("");
|
|
6645
6775
|
const [type, setType] = react.useState("room");
|
|
@@ -6969,7 +7099,7 @@ function CalendarSettingsDialog({
|
|
|
6969
7099
|
initialTab = "general",
|
|
6970
7100
|
onClose
|
|
6971
7101
|
}) {
|
|
6972
|
-
const { notify } =
|
|
7102
|
+
const { notify } = chunkKPZZ5FHE_cjs.useBlocksEnvironment();
|
|
6973
7103
|
const save = react$1.useSaveCalendarSettings();
|
|
6974
7104
|
const [value, setValue] = react.useState(() => chunk6YTHQ73P_cjs.toSettingsValue(settings));
|
|
6975
7105
|
const [tab, setTab] = react.useState(initialTab);
|
|
@@ -7042,7 +7172,7 @@ function EventScheduling({
|
|
|
7042
7172
|
workingStartHour = 7
|
|
7043
7173
|
}) {
|
|
7044
7174
|
const [open, setOpen] = react.useState(false);
|
|
7045
|
-
const { notify } =
|
|
7175
|
+
const { notify } = chunkKPZZ5FHE_cjs.useBlocksEnvironment();
|
|
7046
7176
|
const arbi = react$1.useArbi();
|
|
7047
7177
|
const me = arbi.isLoggedIn ? arbi.user.identity()?.email ?? null : null;
|
|
7048
7178
|
const allDay = chunk6YTHQ73P_cjs.isAllDayDraft(draft);
|
|
@@ -7283,7 +7413,7 @@ function proposed(inv, zone) {
|
|
|
7283
7413
|
return `${chunkBIXHB4LV_cjs.formatInZone(su, zone, { weekday: "short", day: "numeric", month: "short", hour: "numeric", minute: "2-digit" })} \u2013 ${chunkBIXHB4LV_cjs.formatInZone(eu, zone, { hour: "numeric", minute: "2-digit" })}`;
|
|
7284
7414
|
}
|
|
7285
7415
|
function InvitationsPanel({ timeZone, onOpenEvent }) {
|
|
7286
|
-
const { notify } =
|
|
7416
|
+
const { notify } = chunkKPZZ5FHE_cjs.useBlocksEnvironment();
|
|
7287
7417
|
const { data: items = [], refetch } = react$1.useCalendarInvitations();
|
|
7288
7418
|
const respond = react$1.useRespondToEvent();
|
|
7289
7419
|
const decide = react$1.useDecideCounter();
|
|
@@ -7470,7 +7600,7 @@ function PublishCalendarDialog({
|
|
|
7470
7600
|
onClose,
|
|
7471
7601
|
onConnectAccount
|
|
7472
7602
|
}) {
|
|
7473
|
-
const { notify } =
|
|
7603
|
+
const { notify } = chunkKPZZ5FHE_cjs.useBlocksEnvironment();
|
|
7474
7604
|
const { data: accounts = [], isLoading } = react$1.useCalendarAccounts(!!calendarId);
|
|
7475
7605
|
const publish = react$1.usePublishCalendar();
|
|
7476
7606
|
const [accountId, setAccountId] = react.useState("");
|
|
@@ -7547,7 +7677,7 @@ function ShareCalendarDialog({
|
|
|
7547
7677
|
calendarName,
|
|
7548
7678
|
onClose
|
|
7549
7679
|
}) {
|
|
7550
|
-
const { notify } =
|
|
7680
|
+
const { notify } = chunkKPZZ5FHE_cjs.useBlocksEnvironment();
|
|
7551
7681
|
const { data: shares = [], isLoading } = react$1.useCalendarShares(calendarId);
|
|
7552
7682
|
const share = react$1.useShareCalendar();
|
|
7553
7683
|
const unshare = react$1.useUnshareCalendar();
|
|
@@ -7851,7 +7981,7 @@ function ConnectedCalendar({
|
|
|
7851
7981
|
onOpenOverlay,
|
|
7852
7982
|
syncAccountsOnOpen = true
|
|
7853
7983
|
} = {}) {
|
|
7854
|
-
const { confirm, notify, openConversation } =
|
|
7984
|
+
const { confirm, notify, openConversation } = chunkKPZZ5FHE_cjs.useBlocksEnvironment();
|
|
7855
7985
|
const arbi = react$1.useArbi();
|
|
7856
7986
|
const fetchEvent = react$1.useFetchCalendarEvent();
|
|
7857
7987
|
const notifyError = (prefix, err) => notify(`${prefix}: ${errorText3(err)}`, "error");
|
|
@@ -8604,7 +8734,7 @@ function ConnectedMailInviteCard({
|
|
|
8604
8734
|
isOnline,
|
|
8605
8735
|
onOpenEvent
|
|
8606
8736
|
}) {
|
|
8607
|
-
const { notify } =
|
|
8737
|
+
const { notify } = chunkKPZZ5FHE_cjs.useBlocksEnvironment();
|
|
8608
8738
|
const part = attachments.find(chunk6YTHQ73P_cjs.isCalendarAttachment);
|
|
8609
8739
|
const { data: settings } = react$1.useCalendarSettings(!!part);
|
|
8610
8740
|
const zone = chunkBIXHB4LV_cjs.safeZone(settings?.time_zone, chunkBIXHB4LV_cjs.detectTimeZone());
|
|
@@ -8735,7 +8865,7 @@ function Shell({ children, wide = false }) {
|
|
|
8735
8865
|
) });
|
|
8736
8866
|
}
|
|
8737
8867
|
function CancelView({ slug, token }) {
|
|
8738
|
-
const { apiBaseUrl } =
|
|
8868
|
+
const { apiBaseUrl } = chunkKPZZ5FHE_cjs.useBlocksEnvironment().runtimeConfig;
|
|
8739
8869
|
const [state, setState] = react.useState("idle");
|
|
8740
8870
|
const [error, setError] = react.useState(null);
|
|
8741
8871
|
return /* @__PURE__ */ jsxRuntime.jsx(Shell, { children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid gap-4", "data-testid": "book-cancel", children: [
|
|
@@ -8813,7 +8943,7 @@ function Confirmation({
|
|
|
8813
8943
|
] }) });
|
|
8814
8944
|
}
|
|
8815
8945
|
function ConnectedPublicBooking({ slug, cancelToken }) {
|
|
8816
|
-
const { apiBaseUrl } =
|
|
8946
|
+
const { apiBaseUrl } = chunkKPZZ5FHE_cjs.useBlocksEnvironment().runtimeConfig;
|
|
8817
8947
|
const [zone, setZone] = react.useState(chunkBIXHB4LV_cjs.detectTimeZone);
|
|
8818
8948
|
const [duration, setDuration] = react.useState(void 0);
|
|
8819
8949
|
const [offset, setOffset] = react.useState(0);
|
|
@@ -9077,7 +9207,7 @@ function ActiveChat({ agentId, workspaceId }) {
|
|
|
9077
9207
|
activeArtifact: () => chunkJKB7WT7L_cjs.takeOpenDocumentForTurn({ workspaceId })
|
|
9078
9208
|
});
|
|
9079
9209
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
9080
|
-
|
|
9210
|
+
chunk5A2QQAF5_cjs.ChatPage,
|
|
9081
9211
|
{
|
|
9082
9212
|
chat: { ...chat, assistantMode: void 0, setAssistantMode: void 0 },
|
|
9083
9213
|
documentsRequired: false,
|
|
@@ -9139,35 +9269,75 @@ function ConnectedAgentChatPanel({
|
|
|
9139
9269
|
|
|
9140
9270
|
Object.defineProperty(exports, "ConnectedAssistantDock", {
|
|
9141
9271
|
enumerable: true,
|
|
9142
|
-
get: function () { return
|
|
9272
|
+
get: function () { return chunkODRHHWHY_cjs.ConnectedAssistantDock; }
|
|
9143
9273
|
});
|
|
9144
9274
|
Object.defineProperty(exports, "redlineStats", {
|
|
9145
9275
|
enumerable: true,
|
|
9146
|
-
get: function () { return
|
|
9276
|
+
get: function () { return chunkODRHHWHY_cjs.redlineStats; }
|
|
9147
9277
|
});
|
|
9148
9278
|
Object.defineProperty(exports, "textToArtifact", {
|
|
9149
9279
|
enumerable: true,
|
|
9150
|
-
get: function () { return
|
|
9280
|
+
get: function () { return chunkODRHHWHY_cjs.textToArtifact; }
|
|
9151
9281
|
});
|
|
9152
9282
|
Object.defineProperty(exports, "toRedlineMarkdown", {
|
|
9153
9283
|
enumerable: true,
|
|
9154
|
-
get: function () { return
|
|
9284
|
+
get: function () { return chunkODRHHWHY_cjs.toRedlineMarkdown; }
|
|
9155
9285
|
});
|
|
9156
9286
|
Object.defineProperty(exports, "useConnectedAiTask", {
|
|
9157
9287
|
enumerable: true,
|
|
9158
|
-
get: function () { return
|
|
9288
|
+
get: function () { return chunkODRHHWHY_cjs.useConnectedAiTask; }
|
|
9159
9289
|
});
|
|
9160
9290
|
Object.defineProperty(exports, "useConnectedChat", {
|
|
9161
9291
|
enumerable: true,
|
|
9162
|
-
get: function () { return
|
|
9292
|
+
get: function () { return chunkODRHHWHY_cjs.useConnectedChat; }
|
|
9163
9293
|
});
|
|
9164
9294
|
Object.defineProperty(exports, "useSemanticSearch", {
|
|
9165
9295
|
enumerable: true,
|
|
9166
|
-
get: function () { return
|
|
9296
|
+
get: function () { return chunkODRHHWHY_cjs.useSemanticSearch; }
|
|
9167
9297
|
});
|
|
9168
9298
|
Object.defineProperty(exports, "useWorkspaceDocs", {
|
|
9169
9299
|
enumerable: true,
|
|
9170
|
-
get: function () { return
|
|
9300
|
+
get: function () { return chunkODRHHWHY_cjs.useWorkspaceDocs; }
|
|
9301
|
+
});
|
|
9302
|
+
Object.defineProperty(exports, "ConnectedWorkflowDocumentsField", {
|
|
9303
|
+
enumerable: true,
|
|
9304
|
+
get: function () { return chunkU6YVZDOV_cjs.ConnectedWorkflowDocumentsField; }
|
|
9305
|
+
});
|
|
9306
|
+
Object.defineProperty(exports, "ConnectedWorkflowLauncher", {
|
|
9307
|
+
enumerable: true,
|
|
9308
|
+
get: function () { return chunkU6YVZDOV_cjs.ConnectedWorkflowLauncher; }
|
|
9309
|
+
});
|
|
9310
|
+
Object.defineProperty(exports, "ConnectedWorkflowsTable", {
|
|
9311
|
+
enumerable: true,
|
|
9312
|
+
get: function () { return chunkU6YVZDOV_cjs.ConnectedWorkflowsTable; }
|
|
9313
|
+
});
|
|
9314
|
+
Object.defineProperty(exports, "DEFAULT_CONNECTED_WORKFLOWS_TABLE_LABELS", {
|
|
9315
|
+
enumerable: true,
|
|
9316
|
+
get: function () { return chunkU6YVZDOV_cjs.DEFAULT_CONNECTED_WORKFLOWS_TABLE_LABELS; }
|
|
9317
|
+
});
|
|
9318
|
+
Object.defineProperty(exports, "NativeDocxSupportProvider", {
|
|
9319
|
+
enumerable: true,
|
|
9320
|
+
get: function () { return chunkU6YVZDOV_cjs.NativeDocxSupportProvider; }
|
|
9321
|
+
});
|
|
9322
|
+
Object.defineProperty(exports, "toWorkflowFieldDocument", {
|
|
9323
|
+
enumerable: true,
|
|
9324
|
+
get: function () { return chunkU6YVZDOV_cjs.toWorkflowFieldDocument; }
|
|
9325
|
+
});
|
|
9326
|
+
Object.defineProperty(exports, "useConnectedAgentOptions", {
|
|
9327
|
+
enumerable: true,
|
|
9328
|
+
get: function () { return chunkU6YVZDOV_cjs.useConnectedAgentOptions; }
|
|
9329
|
+
});
|
|
9330
|
+
Object.defineProperty(exports, "useConnectedWorkflowScopeSource", {
|
|
9331
|
+
enumerable: true,
|
|
9332
|
+
get: function () { return chunkU6YVZDOV_cjs.useConnectedWorkflowScopeSource; }
|
|
9333
|
+
});
|
|
9334
|
+
Object.defineProperty(exports, "useConnectedWorkspaceRole", {
|
|
9335
|
+
enumerable: true,
|
|
9336
|
+
get: function () { return chunkU6YVZDOV_cjs.useConnectedWorkspaceRole; }
|
|
9337
|
+
});
|
|
9338
|
+
Object.defineProperty(exports, "useNativeDocxSupport", {
|
|
9339
|
+
enumerable: true,
|
|
9340
|
+
get: function () { return chunkU6YVZDOV_cjs.useNativeDocxSupport; }
|
|
9171
9341
|
});
|
|
9172
9342
|
Object.defineProperty(exports, "ConnectedWorkspaceDataProvider", {
|
|
9173
9343
|
enumerable: true,
|
|
@@ -9206,6 +9376,7 @@ Object.defineProperty(exports, "useConnection", {
|
|
|
9206
9376
|
get: function () { return chunkGFNELPDP_cjs.useConnection; }
|
|
9207
9377
|
});
|
|
9208
9378
|
exports.ArbiAppProvider = ArbiAppProvider;
|
|
9379
|
+
exports.ConnectedAccountSettings = ConnectedAccountSettings;
|
|
9209
9380
|
exports.ConnectedAgentChatPanel = ConnectedAgentChatPanel;
|
|
9210
9381
|
exports.ConnectedAgentCreator = ConnectedAgentCreator;
|
|
9211
9382
|
exports.ConnectedCalendar = ConnectedCalendar;
|
|
@@ -9216,16 +9387,20 @@ exports.ConnectedMailAccounts = ConnectedMailAccounts;
|
|
|
9216
9387
|
exports.ConnectedMailComposer = ConnectedMailComposer;
|
|
9217
9388
|
exports.ConnectedMailInviteCard = ConnectedMailInviteCard;
|
|
9218
9389
|
exports.ConnectedMailMessage = ConnectedMailMessage;
|
|
9390
|
+
exports.ConnectedMailSettings = ConnectedMailSettings;
|
|
9219
9391
|
exports.ConnectedMailSetup = ConnectedMailSetup;
|
|
9220
9392
|
exports.ConnectedMailbox = ConnectedMailbox;
|
|
9221
9393
|
exports.ConnectedNotificationCenter = ConnectedNotificationCenter;
|
|
9222
9394
|
exports.ConnectedNotificationPreferences = ConnectedNotificationPreferences;
|
|
9223
9395
|
exports.ConnectedPasswordChangeDialog = ConnectedPasswordChangeDialog;
|
|
9396
|
+
exports.ConnectedPremiumModels = ConnectedPremiumModels;
|
|
9397
|
+
exports.ConnectedPrivacySettings = ConnectedPrivacySettings;
|
|
9224
9398
|
exports.ConnectedProfileCard = ConnectedProfileCard;
|
|
9225
9399
|
exports.ConnectedPublicBooking = ConnectedPublicBooking;
|
|
9226
9400
|
exports.ConnectedRequireVerified = ConnectedRequireVerified;
|
|
9227
9401
|
exports.ConnectedSecuritySection = ConnectedSecuritySection;
|
|
9228
9402
|
exports.ConnectedSessionsRow = ConnectedSessionsRow;
|
|
9403
|
+
exports.ConnectedSettingsPage = ConnectedSettingsPage;
|
|
9229
9404
|
exports.ConnectedSkillUpload = ConnectedSkillUpload;
|
|
9230
9405
|
exports.ConnectedSkillsLibrary = ConnectedSkillsLibrary;
|
|
9231
9406
|
exports.ConnectedTagTable = ConnectedTagTable;
|
|
@@ -9233,37 +9408,37 @@ exports.ConnectedTaskAccessRequest = ConnectedTaskAccessRequest;
|
|
|
9233
9408
|
exports.ConnectedTaskActivityDialog = ConnectedTaskActivityDialog;
|
|
9234
9409
|
exports.ConnectedThreadFollow = ConnectedThreadFollow;
|
|
9235
9410
|
exports.ConnectedUpcomingEvents = ConnectedUpcomingEvents;
|
|
9236
|
-
exports.ConnectedWorkflowDocumentsField = ConnectedWorkflowDocumentsField;
|
|
9237
9411
|
exports.ConnectedWorkflowHistory = ConnectedWorkflowHistory;
|
|
9238
|
-
exports.ConnectedWorkflowLauncher = ConnectedWorkflowLauncher;
|
|
9239
9412
|
exports.ConnectedWorkflowRunner = ConnectedWorkflowRunner;
|
|
9240
|
-
exports.ConnectedWorkflowsTable = ConnectedWorkflowsTable;
|
|
9241
9413
|
exports.ConnectedWorkspaceActivity = ConnectedWorkspaceActivity;
|
|
9242
9414
|
exports.ConnectedWorkspaceNotificationMenu = ConnectedWorkspaceNotificationMenu;
|
|
9243
9415
|
exports.DEFAULT_CONNECTED_SKILL_UPLOAD_LABELS = DEFAULT_CONNECTED_SKILL_UPLOAD_LABELS;
|
|
9244
|
-
exports.DEFAULT_CONNECTED_WORKFLOWS_TABLE_LABELS = DEFAULT_CONNECTED_WORKFLOWS_TABLE_LABELS;
|
|
9245
9416
|
exports.DEFAULT_CONNECTED_WORKFLOW_RUNNER_LABELS = DEFAULT_CONNECTED_WORKFLOW_RUNNER_LABELS;
|
|
9417
|
+
exports.DEFAULT_SETTINGS_SECTIONS = DEFAULT_SETTINGS_SECTIONS;
|
|
9246
9418
|
exports.NotificationCenter = NotificationCenter;
|
|
9247
9419
|
exports.NotificationEvent = NotificationEvent;
|
|
9420
|
+
exports.SETTINGS_SECTION_IDS = SETTINGS_SECTION_IDS;
|
|
9421
|
+
exports.SessionStatusIcon = SessionStatusIcon;
|
|
9248
9422
|
exports.StreamedArtifact = StreamedArtifact;
|
|
9249
9423
|
exports.WorkflowRunThread = WorkflowRunThread;
|
|
9424
|
+
exports.accountSettingsSection = accountSettingsSection;
|
|
9250
9425
|
exports.bookingCancelLink = bookingCancelLink;
|
|
9251
9426
|
exports.buildNotificationCenterItems = buildNotificationCenterItems;
|
|
9427
|
+
exports.chatSettingsSection = chatSettingsSection;
|
|
9252
9428
|
exports.countNotificationTypes = countNotificationTypes;
|
|
9253
9429
|
exports.defaultUnmetPasswordRequirement = defaultUnmetPasswordRequirement;
|
|
9254
9430
|
exports.filterNotificationCenterItems = filterNotificationCenterItems;
|
|
9431
|
+
exports.mailSettingsSection = mailSettingsSection;
|
|
9255
9432
|
exports.openMeetingLink = openMeetingLink;
|
|
9433
|
+
exports.privacySettingsSection = privacySettingsSection;
|
|
9434
|
+
exports.renderSessionStatusIcon = renderSessionStatusIcon;
|
|
9256
9435
|
exports.requestCalendarComposer = requestCalendarComposer;
|
|
9257
9436
|
exports.requestCalendarEvent = requestCalendarEvent;
|
|
9258
9437
|
exports.resolveMailbox = resolveMailbox;
|
|
9259
|
-
exports.toWorkflowFieldDocument = toWorkflowFieldDocument;
|
|
9260
9438
|
exports.useCalendarViewStore = useCalendarViewStore;
|
|
9261
|
-
exports.useConnectedAgentOptions = useConnectedAgentOptions;
|
|
9262
9439
|
exports.useConnectedDocxNotifications = useConnectedDocxNotifications;
|
|
9263
9440
|
exports.useConnectedShellWorkspaces = useConnectedShellWorkspaces;
|
|
9264
9441
|
exports.useConnectedWorkNotifications = useConnectedWorkNotifications;
|
|
9265
|
-
exports.useConnectedWorkflowScopeSource = useConnectedWorkflowScopeSource;
|
|
9266
|
-
exports.useConnectedWorkspaceRole = useConnectedWorkspaceRole;
|
|
9267
9442
|
exports.workflowRunView = workflowRunView;
|
|
9268
9443
|
//# sourceMappingURL=index.cjs.map
|
|
9269
9444
|
//# sourceMappingURL=index.cjs.map
|