@arbidocs/blocks 0.4.142 → 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 +438 -435
- package/dist/agents/index.js +10 -7
- 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-AOSUHWIL.js +98 -0
- package/dist/chunk-AOSUHWIL.js.map +1 -0
- package/dist/{chunk-PROK33G6.js → chunk-C44TDH54.js} +13 -1598
- package/dist/chunk-C44TDH54.js.map +1 -0
- package/dist/{chunk-YFY3TQ6Q.cjs → chunk-COCGRJLA.cjs} +7 -7
- package/dist/{chunk-YFY3TQ6Q.cjs.map → chunk-COCGRJLA.cjs.map} +1 -1
- 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-I7WG3JRD.js → chunk-H4D7WKDY.js} +3 -3
- package/dist/{chunk-I7WG3JRD.js.map → chunk-H4D7WKDY.js.map} +1 -1
- package/dist/{chunk-GBS6QVGS.cjs → chunk-HAOKT4LC.cjs} +5 -5
- package/dist/{chunk-GBS6QVGS.cjs.map → chunk-HAOKT4LC.cjs.map} +1 -1
- package/dist/{chunk-N5X37J3D.js → chunk-IJST4EBM.js} +11 -8
- 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-HIJUXAWS.cjs → chunk-O2GW5IY6.cjs} +86 -83
- 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-DPGFEMVT.cjs → chunk-RB7GX2VT.cjs} +57 -1665
- 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-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-FXG7TFAG.js → chunk-Y4ATWQGV.js} +3 -3
- package/dist/{chunk-FXG7TFAG.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 +802 -628
- package/dist/connect/index.cjs.map +1 -1
- package/dist/connect/index.d.ts +2 -0
- package/dist/connect/index.js +636 -507
- 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 +3 -3
- package/dist/facts/index.js +2 -2
- 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 +766 -741
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.js +23 -18
- package/dist/index.js.map +1 -1
- package/dist/lib/deep-link.d.ts +46 -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 +188 -250
- package/dist/settings/index.cjs.map +1 -1
- package/dist/settings/index.d.ts +3 -1
- package/dist/settings/index.js +88 -199
- package/dist/settings/index.js.map +1 -1
- package/dist/shell/index.cjs +44 -44
- package/dist/shell/index.js +3 -3
- 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 +62 -59
- package/dist/workflow-canvas/index.cjs.map +1 -1
- package/dist/workflow-canvas/index.js +10 -7
- 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-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-DLBUFHLY.js.map +0 -1
- package/dist/chunk-DPGFEMVT.cjs.map +0 -1
- package/dist/chunk-ETXYVO6E.js +0 -109
- package/dist/chunk-ETXYVO6E.js.map +0 -1
- package/dist/chunk-GYAUJ4KT.js.map +0 -1
- package/dist/chunk-HIJUXAWS.cjs.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-N5X37J3D.js.map +0 -1
- package/dist/chunk-ON3TKY5Y.js.map +0 -1
- package/dist/chunk-OWCEQKAR.cjs.map +0 -1
- package/dist/chunk-PROK33G6.js.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-YNIBUKV5.js.map +0 -1
- package/dist/connection/ConnectedNativeDocxEditor.d.ts +0 -6
package/dist/connect/index.cjs
CHANGED
|
@@ -1,28 +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-
|
|
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');
|
|
21
24
|
require('../chunk-AHDJXIUB.cjs');
|
|
22
|
-
var
|
|
25
|
+
var chunkRQ2Y7USX_cjs = require('../chunk-RQ2Y7USX.cjs');
|
|
23
26
|
require('../chunk-ZW6FPIFC.cjs');
|
|
24
27
|
require('../chunk-DETZZBG2.cjs');
|
|
25
|
-
require('../chunk-
|
|
28
|
+
require('../chunk-DTROMMDX.cjs');
|
|
26
29
|
var chunkV4ISCZJ7_cjs = require('../chunk-V4ISCZJ7.cjs');
|
|
27
30
|
var chunk2EI7NCUA_cjs = require('../chunk-2EI7NCUA.cjs');
|
|
28
31
|
var chunkC2CWWEHO_cjs = require('../chunk-C2CWWEHO.cjs');
|
|
@@ -32,17 +35,18 @@ var chunk6YTHQ73P_cjs = require('../chunk-6YTHQ73P.cjs');
|
|
|
32
35
|
var chunkBIXHB4LV_cjs = require('../chunk-BIXHB4LV.cjs');
|
|
33
36
|
var chunkDWZXSPMB_cjs = require('../chunk-DWZXSPMB.cjs');
|
|
34
37
|
var chunk7RGLTF76_cjs = require('../chunk-7RGLTF76.cjs');
|
|
35
|
-
var
|
|
38
|
+
var chunk5A2QQAF5_cjs = require('../chunk-5A2QQAF5.cjs');
|
|
36
39
|
require('../chunk-B6MVQCXW.cjs');
|
|
37
40
|
var chunkJKB7WT7L_cjs = require('../chunk-JKB7WT7L.cjs');
|
|
38
|
-
var
|
|
41
|
+
var chunkJSTKEZBS_cjs = require('../chunk-JSTKEZBS.cjs');
|
|
42
|
+
require('../chunk-76L6LOP3.cjs');
|
|
39
43
|
require('../chunk-7UTB4PHM.cjs');
|
|
40
44
|
require('../chunk-32HW2Q33.cjs');
|
|
41
45
|
require('../chunk-FX3K6LNZ.cjs');
|
|
42
46
|
require('../chunk-PPCATBOY.cjs');
|
|
43
47
|
require('../chunk-MHVNT4J3.cjs');
|
|
44
|
-
var
|
|
45
|
-
var
|
|
48
|
+
var chunkXVUOMWMD_cjs = require('../chunk-XVUOMWMD.cjs');
|
|
49
|
+
var chunkKPZZ5FHE_cjs = require('../chunk-KPZZ5FHE.cjs');
|
|
46
50
|
var chunkULWRNGGE_cjs = require('../chunk-ULWRNGGE.cjs');
|
|
47
51
|
var chunkKDG6FER6_cjs = require('../chunk-KDG6FER6.cjs');
|
|
48
52
|
require('../chunk-DES3K4SD.cjs');
|
|
@@ -136,7 +140,7 @@ function ConnectedWorkspaceActivity({
|
|
|
136
140
|
[feed.data]
|
|
137
141
|
);
|
|
138
142
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
139
|
-
|
|
143
|
+
chunkHAOKT4LC_cjs.WorkspaceActivityList,
|
|
140
144
|
{
|
|
141
145
|
...listProps,
|
|
142
146
|
items,
|
|
@@ -546,7 +550,7 @@ function NotificationCenter({
|
|
|
546
550
|
// Filter-aware: the filtered total whenever a filter applies.
|
|
547
551
|
count: filtered.length,
|
|
548
552
|
actions: /* @__PURE__ */ jsxRuntime.jsx(
|
|
549
|
-
|
|
553
|
+
chunkRQ2Y7USX_cjs.TriStateFilterMenu,
|
|
550
554
|
{
|
|
551
555
|
testId: "notifications-filter-button",
|
|
552
556
|
title: "Filter",
|
|
@@ -564,7 +568,7 @@ function NotificationCenter({
|
|
|
564
568
|
}
|
|
565
569
|
];
|
|
566
570
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col h-full bg-background", "data-testid": "notifications-page", children: [
|
|
567
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
571
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkU73KPFYH_cjs.DraggableHeader, { children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
568
572
|
chunk7RGLTF76_cjs.TabHeader,
|
|
569
573
|
{
|
|
570
574
|
tabs,
|
|
@@ -809,7 +813,7 @@ function ConnectedWorkspaceNotificationMenu({
|
|
|
809
813
|
});
|
|
810
814
|
if (!workspaceId) return null;
|
|
811
815
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
812
|
-
|
|
816
|
+
chunkHAOKT4LC_cjs.WorkspaceNotificationMenu,
|
|
813
817
|
{
|
|
814
818
|
...menuProps,
|
|
815
819
|
level,
|
|
@@ -828,7 +832,7 @@ function ConnectedThreadFollow({
|
|
|
828
832
|
enabled: status === "authenticated"
|
|
829
833
|
});
|
|
830
834
|
if (!conversationId) return null;
|
|
831
|
-
const Control = as === "menu-item" ?
|
|
835
|
+
const Control = as === "menu-item" ? chunkHAOKT4LC_cjs.ThreadFollowMenuItem : chunkHAOKT4LC_cjs.ThreadFollowButton;
|
|
832
836
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
833
837
|
Control,
|
|
834
838
|
{
|
|
@@ -839,255 +843,6 @@ function ConnectedThreadFollow({
|
|
|
839
843
|
}
|
|
840
844
|
);
|
|
841
845
|
}
|
|
842
|
-
function useConnectedWorkspaceRole() {
|
|
843
|
-
const { workspaceId, live, userId, ensureWorkspaceOpen } = chunkGFNELPDP_cjs.useConnectedWorkspace();
|
|
844
|
-
const { data: members = [] } = react$1.useWorkspaceUsers(workspaceId ?? void 0, {
|
|
845
|
-
enabled: live && !!workspaceId,
|
|
846
|
-
beforeFetch: ensureWorkspaceOpen
|
|
847
|
-
});
|
|
848
|
-
const role = members.find((m) => m.user.external_id === userId)?.role;
|
|
849
|
-
return {
|
|
850
|
-
members,
|
|
851
|
-
role,
|
|
852
|
-
/** An owner or a collaborator edits, pauses, resumes and runs what is shared with the workspace. */
|
|
853
|
-
canEditShared: role === "owner" || role === "collaborator",
|
|
854
|
-
/** With an item's creator, the only one who deletes it. */
|
|
855
|
-
isWorkspaceOwner: role === "owner"
|
|
856
|
-
};
|
|
857
|
-
}
|
|
858
|
-
var DEFAULT_CONNECTED_WORKFLOWS_TABLE_LABELS = {
|
|
859
|
-
updateFailed: "Could not update the workflow",
|
|
860
|
-
deleteTitle: "Delete workflow",
|
|
861
|
-
deleteOne: (name) => `Delete \u201C${name}\u201D? Threads it already created stay.`,
|
|
862
|
-
deleteMany: (count) => `Delete ${count} workflows? Threads they already created stay.`,
|
|
863
|
-
runFailed: "The workflow failed. You can send an error report from its history.",
|
|
864
|
-
noThread: "The workflow did not create a thread.",
|
|
865
|
-
documentAction: (workflow) => workflow.action?.type === "email_documents" ? "Preparing your document email" : "Reviewing documents",
|
|
866
|
-
untitledTask: "Untitled thread"
|
|
867
|
-
};
|
|
868
|
-
var messageOf = (error) => error instanceof Error ? error.message : "";
|
|
869
|
-
function ConnectedWorkflowsTable({
|
|
870
|
-
filter,
|
|
871
|
-
describeTrigger = (w) => chunkDPGFEMVT_cjs.workflowTriggerType(w).replaceAll("_", " "),
|
|
872
|
-
formatDate: formatDate2 = chunkKDG6FER6_cjs.fmtDate,
|
|
873
|
-
onViewRuns,
|
|
874
|
-
connectedLabels,
|
|
875
|
-
...tableProps
|
|
876
|
-
}) {
|
|
877
|
-
const l = { ...DEFAULT_CONNECTED_WORKFLOWS_TABLE_LABELS, ...connectedLabels };
|
|
878
|
-
const { notify, confirm, openConversation } = chunkC4WSHRR6_cjs.useBlocksEnvironment();
|
|
879
|
-
const { canEditShared, isWorkspaceOwner } = useConnectedWorkspaceRole();
|
|
880
|
-
const { data: saved = [], isLoading } = react$1.useWorkflows({ live: true });
|
|
881
|
-
const { data: conversations, refetch } = chunkJZNXRMLH_cjs.useConnectedConversations({ live: true });
|
|
882
|
-
const { data: agents = [] } = react$1.useAgents();
|
|
883
|
-
const update = react$1.useUpdateWorkflow();
|
|
884
|
-
const remove = react$1.useDeleteWorkflow();
|
|
885
|
-
const run = react$1.useRunWorkflow();
|
|
886
|
-
const [busyId, setBusyId] = react.useState(null);
|
|
887
|
-
const workflows = react.useMemo(() => filter ? saved.filter(filter) : saved, [saved, filter]);
|
|
888
|
-
const firingStamp = saved.map((w) => `${w.external_id}:${w.last_fired_at ?? ""}`).join("|");
|
|
889
|
-
react.useEffect(() => {
|
|
890
|
-
void refetch?.();
|
|
891
|
-
}, [firingStamp, refetch]);
|
|
892
|
-
const lastRuns = react.useMemo(() => {
|
|
893
|
-
const out = {};
|
|
894
|
-
for (const c of conversations) {
|
|
895
|
-
const id = c.workflow_ext_id;
|
|
896
|
-
if (id && (!out[id] || Date.parse(c.created_at) > Date.parse(out[id].at)))
|
|
897
|
-
out[id] = { conversationId: c.external_id, at: c.created_at, threadStatus: c.status };
|
|
898
|
-
}
|
|
899
|
-
return out;
|
|
900
|
-
}, [conversations]);
|
|
901
|
-
const agentNames = react.useMemo(
|
|
902
|
-
() => Object.fromEntries(agents.map((a) => [a.external_id, a.given_name || a.email])),
|
|
903
|
-
[agents]
|
|
904
|
-
);
|
|
905
|
-
const taskNames = react.useMemo(
|
|
906
|
-
() => Object.fromEntries(
|
|
907
|
-
conversations.filter((c) => c.status != null).map((c) => [c.external_id, c.title || l.untitledTask])
|
|
908
|
-
),
|
|
909
|
-
[conversations, l.untitledTask]
|
|
910
|
-
);
|
|
911
|
-
const act = async (workflow, action) => {
|
|
912
|
-
setBusyId(workflow.external_id);
|
|
913
|
-
try {
|
|
914
|
-
await action();
|
|
915
|
-
} catch (error) {
|
|
916
|
-
notify(messageOf(error) || l.updateFailed, "error");
|
|
917
|
-
} finally {
|
|
918
|
-
setBusyId(null);
|
|
919
|
-
}
|
|
920
|
-
};
|
|
921
|
-
const setActive = (workflow, active) => act(workflow, () => update.mutateAsync({ workflowId: workflow.external_id, patch: { active } }));
|
|
922
|
-
const deleteAll = async (items) => {
|
|
923
|
-
if (!items.length) return;
|
|
924
|
-
const ok = await confirm({
|
|
925
|
-
title: l.deleteTitle,
|
|
926
|
-
message: items.length === 1 ? l.deleteOne(items[0].name) : l.deleteMany(items.length)
|
|
927
|
-
});
|
|
928
|
-
if (!ok) return;
|
|
929
|
-
for (const workflow of items)
|
|
930
|
-
await act(workflow, () => remove.mutateAsync(workflow.external_id));
|
|
931
|
-
};
|
|
932
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
933
|
-
chunkDPGFEMVT_cjs.WorkflowsTable,
|
|
934
|
-
{
|
|
935
|
-
...tableProps,
|
|
936
|
-
workflows,
|
|
937
|
-
isLoading,
|
|
938
|
-
busyId,
|
|
939
|
-
describeTrigger,
|
|
940
|
-
formatDate: formatDate2,
|
|
941
|
-
agentNames,
|
|
942
|
-
taskNames,
|
|
943
|
-
lastRuns,
|
|
944
|
-
canEditShared,
|
|
945
|
-
isWorkspaceOwner,
|
|
946
|
-
onOpenThread: (conversationId) => openConversation(conversationId),
|
|
947
|
-
onViewRuns,
|
|
948
|
-
onToggleActive: (workflow, active) => void setActive(workflow, active),
|
|
949
|
-
onToggleActiveMany: (items, active) => {
|
|
950
|
-
void (async () => {
|
|
951
|
-
for (const workflow of items) await setActive(workflow, active);
|
|
952
|
-
})();
|
|
953
|
-
},
|
|
954
|
-
onToggleShared: (workflow, shared) => void act(
|
|
955
|
-
workflow,
|
|
956
|
-
() => update.mutateAsync({ workflowId: workflow.external_id, patch: { shared } })
|
|
957
|
-
),
|
|
958
|
-
onDelete: (workflow) => void deleteAll([workflow]),
|
|
959
|
-
onDeleteMany: (items) => void deleteAll(items),
|
|
960
|
-
onRun: (workflow) => void act(workflow, async () => {
|
|
961
|
-
const result = await run.mutateAsync(workflow.external_id);
|
|
962
|
-
if (result.conversation_ext_id) openConversation(result.conversation_ext_id);
|
|
963
|
-
if (result.error) {
|
|
964
|
-
onViewRuns?.(workflow);
|
|
965
|
-
notify(l.runFailed, "error");
|
|
966
|
-
return;
|
|
967
|
-
}
|
|
968
|
-
if (result.execution_id && !result.conversation_ext_id) {
|
|
969
|
-
onViewRuns?.(workflow);
|
|
970
|
-
notify(l.documentAction(workflow), "success");
|
|
971
|
-
return;
|
|
972
|
-
}
|
|
973
|
-
if (!result.conversation_ext_id) throw new Error(l.noThread);
|
|
974
|
-
})
|
|
975
|
-
}
|
|
976
|
-
);
|
|
977
|
-
}
|
|
978
|
-
var IMAGE_FILE_TYPES = /* @__PURE__ */ new Set(["png", "jpg", "jpeg", "gif", "bmp", "tiff", "webp"]);
|
|
979
|
-
function toWorkflowFieldDocument(doc) {
|
|
980
|
-
const isImage = IMAGE_FILE_TYPES.has((doc.file_type ?? "").toLowerCase());
|
|
981
|
-
return {
|
|
982
|
-
id: doc.external_id,
|
|
983
|
-
title: doc.doc_metadata?.title || doc.file_name || doc.external_id,
|
|
984
|
-
fileName: doc.file_name,
|
|
985
|
-
pages: isImage ? null : doc.n_pages ?? null,
|
|
986
|
-
tokens: isImage ? null : doc.tokens ?? null,
|
|
987
|
-
status: doc.status,
|
|
988
|
-
isImage
|
|
989
|
-
};
|
|
990
|
-
}
|
|
991
|
-
function useConnectedWorkflowScopeSource() {
|
|
992
|
-
const { data: docs } = chunkJZNXRMLH_cjs.useConnectedDocuments();
|
|
993
|
-
const { data: tags } = chunkJZNXRMLH_cjs.useConnectedTags();
|
|
994
|
-
return react.useMemo(() => chunkDPGFEMVT_cjs.buildWorkflowScopeSource(docs, chunkDPGFEMVT_cjs.documentScopeLabels(tags)), [docs, tags]);
|
|
995
|
-
}
|
|
996
|
-
function useConnectedAgentOptions() {
|
|
997
|
-
const { data: agents } = react$1.useAgents();
|
|
998
|
-
return react.useMemo(
|
|
999
|
-
() => (agents ?? []).map((a) => ({ id: a.external_id, label: a.given_name || a.email })),
|
|
1000
|
-
[agents]
|
|
1001
|
-
);
|
|
1002
|
-
}
|
|
1003
|
-
function ConnectedWorkflowDocumentsField({
|
|
1004
|
-
field,
|
|
1005
|
-
value,
|
|
1006
|
-
onChange,
|
|
1007
|
-
onAddFiles,
|
|
1008
|
-
labels
|
|
1009
|
-
}) {
|
|
1010
|
-
const arbi = react$1.useArbi();
|
|
1011
|
-
const { notify } = chunkC4WSHRR6_cjs.useBlocksEnvironment();
|
|
1012
|
-
const { ensureWorkspaceOpen } = chunkGFNELPDP_cjs.useConnectedWorkspace();
|
|
1013
|
-
const { data: docs, loaded, refetch } = chunkJZNXRMLH_cjs.useConnectedDocuments();
|
|
1014
|
-
const documents = react.useMemo(() => docs.map(toWorkflowFieldDocument), [docs]);
|
|
1015
|
-
const chosen = value.documents ?? [];
|
|
1016
|
-
const { data: thumbnails } = react$1.useThumbnails(chosen, { enabled: (field.max ?? 1) > 1 });
|
|
1017
|
-
const input = react.useRef(null);
|
|
1018
|
-
const [adding, setAdding] = react.useState(false);
|
|
1019
|
-
const upload = react.useCallback(
|
|
1020
|
-
async (files) => {
|
|
1021
|
-
setAdding(true);
|
|
1022
|
-
try {
|
|
1023
|
-
await ensureWorkspaceOpen();
|
|
1024
|
-
for (const file of files) await arbi.documents.uploadFile(file, file.name);
|
|
1025
|
-
} catch (error) {
|
|
1026
|
-
notify(error instanceof Error && error.message ? error.message : String(error), "error");
|
|
1027
|
-
} finally {
|
|
1028
|
-
setAdding(false);
|
|
1029
|
-
await refetch?.();
|
|
1030
|
-
}
|
|
1031
|
-
},
|
|
1032
|
-
[arbi, ensureWorkspaceOpen, notify, refetch]
|
|
1033
|
-
);
|
|
1034
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
1035
|
-
!onAddFiles && /* @__PURE__ */ jsxRuntime.jsx(
|
|
1036
|
-
"input",
|
|
1037
|
-
{
|
|
1038
|
-
ref: input,
|
|
1039
|
-
type: "file",
|
|
1040
|
-
multiple: true,
|
|
1041
|
-
className: "hidden",
|
|
1042
|
-
"aria-label": "Add files",
|
|
1043
|
-
"data-testid": "workflow-add-files-input",
|
|
1044
|
-
onChange: (e) => {
|
|
1045
|
-
const files = Array.from(e.target.files ?? []);
|
|
1046
|
-
e.target.value = "";
|
|
1047
|
-
if (files.length) void upload(files);
|
|
1048
|
-
}
|
|
1049
|
-
}
|
|
1050
|
-
),
|
|
1051
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1052
|
-
chunkDPGFEMVT_cjs.WorkflowDocumentsField,
|
|
1053
|
-
{
|
|
1054
|
-
field,
|
|
1055
|
-
value,
|
|
1056
|
-
onChange,
|
|
1057
|
-
documents,
|
|
1058
|
-
loaded,
|
|
1059
|
-
thumbnailOf: (id) => thumbnails?.[id],
|
|
1060
|
-
onAddFiles: onAddFiles ?? ((files) => files?.length ? void upload(files) : input.current?.click()),
|
|
1061
|
-
adding,
|
|
1062
|
-
labels
|
|
1063
|
-
}
|
|
1064
|
-
)
|
|
1065
|
-
] });
|
|
1066
|
-
}
|
|
1067
|
-
function ConnectedWorkflowLauncher({
|
|
1068
|
-
onAddFiles,
|
|
1069
|
-
...props
|
|
1070
|
-
}) {
|
|
1071
|
-
const scopeSource = useConnectedWorkflowScopeSource();
|
|
1072
|
-
const agents = useConnectedAgentOptions();
|
|
1073
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1074
|
-
chunkDPGFEMVT_cjs.WorkflowLauncher,
|
|
1075
|
-
{
|
|
1076
|
-
...props,
|
|
1077
|
-
scopeSource,
|
|
1078
|
-
agents,
|
|
1079
|
-
renderDocuments: (field, value, onChange) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
1080
|
-
ConnectedWorkflowDocumentsField,
|
|
1081
|
-
{
|
|
1082
|
-
field,
|
|
1083
|
-
value,
|
|
1084
|
-
onChange,
|
|
1085
|
-
onAddFiles
|
|
1086
|
-
}
|
|
1087
|
-
)
|
|
1088
|
-
}
|
|
1089
|
-
);
|
|
1090
|
-
}
|
|
1091
846
|
var DEFAULT_CONNECTED_SKILL_UPLOAD_LABELS = {
|
|
1092
847
|
title: "Add a skill",
|
|
1093
848
|
description: "Bring in a skill someone sent you, from a file or a link.",
|
|
@@ -1102,7 +857,7 @@ var DEFAULT_CONNECTED_SKILL_UPLOAD_LABELS = {
|
|
|
1102
857
|
};
|
|
1103
858
|
function ConnectedSkillUpload({ onDone, labels, className }) {
|
|
1104
859
|
const l = { ...DEFAULT_CONNECTED_SKILL_UPLOAD_LABELS, ...labels };
|
|
1105
|
-
const { notify } =
|
|
860
|
+
const { notify } = chunkKPZZ5FHE_cjs.useBlocksEnvironment();
|
|
1106
861
|
const upload = react$1.useUploadSkillFiles();
|
|
1107
862
|
const fileRef = react.useRef(null);
|
|
1108
863
|
const [url, setUrl] = react.useState("");
|
|
@@ -1150,7 +905,7 @@ function ConnectedSkillUpload({ onDone, labels, className }) {
|
|
|
1150
905
|
onChange: (e) => {
|
|
1151
906
|
const file = e.target.files?.[0];
|
|
1152
907
|
e.target.value = "";
|
|
1153
|
-
if (file) void add(() =>
|
|
908
|
+
if (file) void add(() => chunkRB7GX2VT_cjs.importSkillFile(file));
|
|
1154
909
|
}
|
|
1155
910
|
}
|
|
1156
911
|
),
|
|
@@ -1175,7 +930,7 @@ function ConnectedSkillUpload({ onDone, labels, className }) {
|
|
|
1175
930
|
className: "space-y-2",
|
|
1176
931
|
onSubmit: (e) => {
|
|
1177
932
|
e.preventDefault();
|
|
1178
|
-
if (url.trim()) void add(() =>
|
|
933
|
+
if (url.trim()) void add(() => chunkRB7GX2VT_cjs.importSkillFromUrl(url));
|
|
1179
934
|
},
|
|
1180
935
|
children: [
|
|
1181
936
|
/* @__PURE__ */ jsxRuntime.jsx(ui.Label, { htmlFor: "skills-add-url", children: l.fromLink }),
|
|
@@ -1227,7 +982,7 @@ function ConnectedSkillsLibrary({
|
|
|
1227
982
|
renderEditor
|
|
1228
983
|
}) {
|
|
1229
984
|
const arbi = react$1.useArbi();
|
|
1230
|
-
const { confirm, notify } =
|
|
985
|
+
const { confirm, notify } = chunkKPZZ5FHE_cjs.useBlocksEnvironment();
|
|
1231
986
|
const { data: listings } = react$1.useSkills();
|
|
1232
987
|
const upload = react$1.useUploadSkillFiles();
|
|
1233
988
|
const setVisibility = react$1.useSetSkillVisibility();
|
|
@@ -1239,9 +994,9 @@ function ConnectedSkillsLibrary({
|
|
|
1239
994
|
const [type, setType] = react.useState("all");
|
|
1240
995
|
const [view, setView] = react.useState("gallery");
|
|
1241
996
|
const [isBusy, setIsBusy] = react.useState(false);
|
|
1242
|
-
const all = react.useMemo(() =>
|
|
997
|
+
const all = react.useMemo(() => chunkRB7GX2VT_cjs.buildLibrarySkills(builtins, listings ?? []), [builtins, listings]);
|
|
1243
998
|
const shown = react.useMemo(
|
|
1244
|
-
() =>
|
|
999
|
+
() => chunkRB7GX2VT_cjs.filterLibrarySkills(all, { query, source, type }),
|
|
1245
1000
|
[all, query, source, type]
|
|
1246
1001
|
);
|
|
1247
1002
|
const current = all.find((s) => s.slug === selected) ?? null;
|
|
@@ -1252,21 +1007,21 @@ function ConnectedSkillsLibrary({
|
|
|
1252
1007
|
const count = (s) => all.filter((x) => x.source === s).length;
|
|
1253
1008
|
const sourceOptions = [
|
|
1254
1009
|
{ id: "all", label: "All", count: all.length },
|
|
1255
|
-
{ id: "builtin", label:
|
|
1256
|
-
{ id: "mine", label:
|
|
1257
|
-
{ 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") }
|
|
1258
1013
|
];
|
|
1259
1014
|
const types = [...new Set(all.map((s) => s.type))];
|
|
1260
1015
|
const typeOptions = [
|
|
1261
1016
|
{ id: "all", label: "Any kind" },
|
|
1262
|
-
...types.map((t) => ({ id: t, label:
|
|
1017
|
+
...types.map((t) => ({ id: t, label: chunkRB7GX2VT_cjs.SKILL_TYPE_LABELS[t] ?? t }))
|
|
1263
1018
|
];
|
|
1264
1019
|
const pick = (slug) => {
|
|
1265
1020
|
setSelected(slug);
|
|
1266
1021
|
setMode("detail");
|
|
1267
1022
|
};
|
|
1268
1023
|
const markdownOf = async (skill) => {
|
|
1269
|
-
if (!skill.docExtId) return
|
|
1024
|
+
if (!skill.docExtId) return chunkRB7GX2VT_cjs.workflowToSkillMarkdown(skill.workflow);
|
|
1270
1025
|
const response = await arbi.documents.download(skill.docExtId);
|
|
1271
1026
|
if (!response.ok) throw new Error(`Could not read the skill (${response.status})`);
|
|
1272
1027
|
return response.text();
|
|
@@ -1274,7 +1029,7 @@ function ConnectedSkillsLibrary({
|
|
|
1274
1029
|
const saveAs = (slug, markdown, shared = false) => upload.mutateAsync([
|
|
1275
1030
|
{
|
|
1276
1031
|
folder: `${SKILL_FOLDER}${slug}`,
|
|
1277
|
-
fileName:
|
|
1032
|
+
fileName: chunkRB7GX2VT_cjs.SKILL_MAIN_FILENAME,
|
|
1278
1033
|
content: new Blob([markdown], { type: "text/markdown" }),
|
|
1279
1034
|
shared
|
|
1280
1035
|
}
|
|
@@ -1337,7 +1092,7 @@ function ConnectedSkillsLibrary({
|
|
|
1337
1092
|
try {
|
|
1338
1093
|
documentTools.downloadBlob(
|
|
1339
1094
|
new Blob([await markdownOf(skill)], { type: "text/markdown" }),
|
|
1340
|
-
|
|
1095
|
+
chunkRB7GX2VT_cjs.SKILL_MAIN_FILENAME
|
|
1341
1096
|
);
|
|
1342
1097
|
} catch (error) {
|
|
1343
1098
|
notify(errorText(error, "Could not export the skill"), "error");
|
|
@@ -1378,10 +1133,10 @@ function ConnectedSkillsLibrary({
|
|
|
1378
1133
|
}
|
|
1379
1134
|
)
|
|
1380
1135
|
] }),
|
|
1381
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1136
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkRB7GX2VT_cjs.SkillViewToggle, { value: view, onChange: setView })
|
|
1382
1137
|
] }),
|
|
1383
1138
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1384
|
-
|
|
1139
|
+
chunkRB7GX2VT_cjs.SkillFilterChips,
|
|
1385
1140
|
{
|
|
1386
1141
|
label: "Show",
|
|
1387
1142
|
value: source,
|
|
@@ -1390,7 +1145,7 @@ function ConnectedSkillsLibrary({
|
|
|
1390
1145
|
}
|
|
1391
1146
|
),
|
|
1392
1147
|
types.length > 1 && /* @__PURE__ */ jsxRuntime.jsx(
|
|
1393
|
-
|
|
1148
|
+
chunkRB7GX2VT_cjs.SkillFilterChips,
|
|
1394
1149
|
{
|
|
1395
1150
|
label: "Kind",
|
|
1396
1151
|
value: type,
|
|
@@ -1437,12 +1192,12 @@ function ConnectedSkillsLibrary({
|
|
|
1437
1192
|
view === "gallery" ? "grid grid-cols-[repeat(auto-fill,minmax(9.5rem,1fr))]" : "flex flex-col"
|
|
1438
1193
|
),
|
|
1439
1194
|
children: shown.map((skill) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
1440
|
-
|
|
1195
|
+
chunkRB7GX2VT_cjs.SkillTile,
|
|
1441
1196
|
{
|
|
1442
1197
|
name: skill.title,
|
|
1443
1198
|
testId: `skill-tile-${skill.slug}`,
|
|
1444
1199
|
description: skill.description,
|
|
1445
|
-
sourceLabel: skill.isShared ? `${
|
|
1200
|
+
sourceLabel: skill.isShared ? `${chunkRB7GX2VT_cjs.SKILL_SOURCE_LABELS.mine}, shared` : chunkRB7GX2VT_cjs.SKILL_SOURCE_LABELS[skill.source],
|
|
1446
1201
|
type: skill.type,
|
|
1447
1202
|
icon,
|
|
1448
1203
|
layout: view,
|
|
@@ -1477,7 +1232,7 @@ function ConnectedSkillsLibrary({
|
|
|
1477
1232
|
}
|
|
1478
1233
|
),
|
|
1479
1234
|
mode === "new" && /* @__PURE__ */ jsxRuntime.jsx(
|
|
1480
|
-
|
|
1235
|
+
chunkRB7GX2VT_cjs.SkillGenerateForm,
|
|
1481
1236
|
{
|
|
1482
1237
|
icon,
|
|
1483
1238
|
onGenerate: (desc) => {
|
|
@@ -1504,11 +1259,11 @@ function ConnectedSkillsLibrary({
|
|
|
1504
1259
|
),
|
|
1505
1260
|
mode === "add" && /* @__PURE__ */ jsxRuntime.jsx(ConnectedSkillUpload, { onDone: done }),
|
|
1506
1261
|
mode === "detail" && current && /* @__PURE__ */ jsxRuntime.jsx(
|
|
1507
|
-
|
|
1262
|
+
chunkRB7GX2VT_cjs.SkillLibraryDetail,
|
|
1508
1263
|
{
|
|
1509
1264
|
skill: current,
|
|
1510
1265
|
icon,
|
|
1511
|
-
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 : "",
|
|
1512
1267
|
isLoading: !!current.docExtId && textLoading,
|
|
1513
1268
|
actions: {
|
|
1514
1269
|
onRun: () => onRun(current.slug),
|
|
@@ -1535,7 +1290,7 @@ function SkillEditor({
|
|
|
1535
1290
|
onCancel,
|
|
1536
1291
|
isSaving
|
|
1537
1292
|
}) {
|
|
1538
|
-
const { notify } =
|
|
1293
|
+
const { notify } = chunkKPZZ5FHE_cjs.useBlocksEnvironment();
|
|
1539
1294
|
const isEditing = !!skill;
|
|
1540
1295
|
const [name, setName] = react.useState(skill?.slug ?? "");
|
|
1541
1296
|
const [description, setDescription] = react.useState("");
|
|
@@ -1543,7 +1298,7 @@ function SkillEditor({
|
|
|
1543
1298
|
const [seeded, setSeeded] = react.useState(!isEditing);
|
|
1544
1299
|
const [nameError, setNameError] = react.useState(null);
|
|
1545
1300
|
if (isEditing && !seeded && text !== void 0) {
|
|
1546
|
-
const parsed =
|
|
1301
|
+
const parsed = chunkRB7GX2VT_cjs.parseSkillFrontmatter(text, chunkRB7GX2VT_cjs.SKILL_MAIN_FILENAME);
|
|
1547
1302
|
setDescription(parsed.description ?? "");
|
|
1548
1303
|
setBody(parsed.content ?? "");
|
|
1549
1304
|
setSeeded(true);
|
|
@@ -1557,15 +1312,15 @@ function SkillEditor({
|
|
|
1557
1312
|
notify("Add a short description.", "error");
|
|
1558
1313
|
return;
|
|
1559
1314
|
}
|
|
1560
|
-
const slug =
|
|
1315
|
+
const slug = chunkRB7GX2VT_cjs.skillSlug(name);
|
|
1561
1316
|
try {
|
|
1562
|
-
await onSave(slug,
|
|
1317
|
+
await onSave(slug, chunkRB7GX2VT_cjs.serializeSkill({ name: slug, description, body }), isEditing);
|
|
1563
1318
|
} catch (err) {
|
|
1564
1319
|
notify(errorText(err, "Could not save the skill"), "error");
|
|
1565
1320
|
}
|
|
1566
1321
|
};
|
|
1567
1322
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1568
|
-
|
|
1323
|
+
chunkRB7GX2VT_cjs.SkillEditForm,
|
|
1569
1324
|
{
|
|
1570
1325
|
name,
|
|
1571
1326
|
onNameChange: setName,
|
|
@@ -1601,13 +1356,13 @@ function ConnectedAgentCreator({
|
|
|
1601
1356
|
agent,
|
|
1602
1357
|
initialName,
|
|
1603
1358
|
onSaved,
|
|
1604
|
-
capabilities =
|
|
1605
|
-
templates =
|
|
1606
|
-
types =
|
|
1359
|
+
capabilities = chunkRB7GX2VT_cjs.DEFAULT_AGENT_CAPABILITIES,
|
|
1360
|
+
templates = chunkRB7GX2VT_cjs.DEFAULT_AGENT_TEMPLATES,
|
|
1361
|
+
types = chunkRB7GX2VT_cjs.DEFAULT_AGENT_TYPES,
|
|
1607
1362
|
canRevokeWorkspaces = false,
|
|
1608
1363
|
labels
|
|
1609
1364
|
}) {
|
|
1610
|
-
const { notify } =
|
|
1365
|
+
const { notify } = chunkKPZZ5FHE_cjs.useBlocksEnvironment();
|
|
1611
1366
|
const isEdit = !!agent;
|
|
1612
1367
|
const [saving, setSaving] = react.useState(false);
|
|
1613
1368
|
const [skills, setSkills] = react.useState([]);
|
|
@@ -1645,7 +1400,7 @@ function ConnectedAgentCreator({
|
|
|
1645
1400
|
const initialValues = react.useMemo(
|
|
1646
1401
|
() => ({
|
|
1647
1402
|
name: agent?.given_name ?? initialName ?? "",
|
|
1648
|
-
persona: isEdit ?
|
|
1403
|
+
persona: isEdit ? chunkRB7GX2VT_cjs.stripPersonaPreamble(String(agents.PERSONA ?? "")) : "",
|
|
1649
1404
|
modelName: String(agents.AGENT_MODEL_NAME ?? ""),
|
|
1650
1405
|
capabilities: Object.fromEntries(capabilities.map(({ key }) => [key, Boolean(agents[key])])),
|
|
1651
1406
|
type: "builtin",
|
|
@@ -1664,7 +1419,7 @@ function ConnectedAgentCreator({
|
|
|
1664
1419
|
try {
|
|
1665
1420
|
let agentExtId = agent?.external_id ?? early?.id ?? "";
|
|
1666
1421
|
if (!agentExtId) {
|
|
1667
|
-
if (!
|
|
1422
|
+
if (!chunkRB7GX2VT_cjs.isValidAgentName(values.name)) {
|
|
1668
1423
|
notify("Give the agent a name first.", "error");
|
|
1669
1424
|
return;
|
|
1670
1425
|
}
|
|
@@ -1700,7 +1455,7 @@ function ConnectedAgentCreator({
|
|
|
1700
1455
|
title: `agent-${name}`,
|
|
1701
1456
|
sections: {
|
|
1702
1457
|
Agents: {
|
|
1703
|
-
PERSONA:
|
|
1458
|
+
PERSONA: chunkRB7GX2VT_cjs.composePersona(name, values.persona),
|
|
1704
1459
|
...values.modelName ? { AGENT_MODEL_NAME: values.modelName } : {},
|
|
1705
1460
|
...Object.fromEntries(capabilities.map(({ key }) => [key, !!values.capabilities[key]])),
|
|
1706
1461
|
ENABLED_SKILLS: values.capabilities.SKILLS_ENABLED && skills.length ? skills : null,
|
|
@@ -1723,7 +1478,7 @@ function ConnectedAgentCreator({
|
|
|
1723
1478
|
};
|
|
1724
1479
|
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
1725
1480
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1726
|
-
|
|
1481
|
+
chunkRB7GX2VT_cjs.AgentCreator,
|
|
1727
1482
|
{
|
|
1728
1483
|
open: ready,
|
|
1729
1484
|
onOpenChange,
|
|
@@ -1739,11 +1494,11 @@ function ConnectedAgentCreator({
|
|
|
1739
1494
|
) : void 0,
|
|
1740
1495
|
revokingWorkspaceId: revokeAccess.isPending ? revokeAccess.variables?.workspaceId : void 0,
|
|
1741
1496
|
avatar: (values) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
1742
|
-
|
|
1497
|
+
chunkRB7GX2VT_cjs.AgentAvatarField,
|
|
1743
1498
|
{
|
|
1744
1499
|
picture,
|
|
1745
1500
|
isBusy: avatarBusy,
|
|
1746
|
-
canGenerate: isEdit ||
|
|
1501
|
+
canGenerate: isEdit || chunkRB7GX2VT_cjs.isValidAgentName(values.name),
|
|
1747
1502
|
onGenerate: () => handleGenerateAvatar(values)
|
|
1748
1503
|
}
|
|
1749
1504
|
),
|
|
@@ -1757,7 +1512,7 @@ function ConnectedAgentCreator({
|
|
|
1757
1512
|
/* @__PURE__ */ jsxRuntime.jsx(ui.Label, { children: "Connected tools" }),
|
|
1758
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." }),
|
|
1759
1514
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1760
|
-
|
|
1515
|
+
chunkRFIBUWLF_cjs.MultiSelect,
|
|
1761
1516
|
{
|
|
1762
1517
|
data: mcpOptions,
|
|
1763
1518
|
value: mcpTools,
|
|
@@ -1771,7 +1526,7 @@ function ConnectedAgentCreator({
|
|
|
1771
1526
|
/* @__PURE__ */ jsxRuntime.jsx(ui.Label, { children: "Skills" }),
|
|
1772
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." }),
|
|
1773
1528
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1774
|
-
|
|
1529
|
+
chunkRFIBUWLF_cjs.MultiSelect,
|
|
1775
1530
|
{
|
|
1776
1531
|
data: skillOptions,
|
|
1777
1532
|
value: skills,
|
|
@@ -1795,7 +1550,7 @@ function ConnectedAgentCreator({
|
|
|
1795
1550
|
/* @__PURE__ */ jsxRuntime.jsx(ui.DialogTitle, { children: "Connect your agent" }),
|
|
1796
1551
|
/* @__PURE__ */ jsxRuntime.jsx(ui.DialogDescription, { children: "This key is shown once. Run the script on the machine that will host the agent." })
|
|
1797
1552
|
] }),
|
|
1798
|
-
connect && /* @__PURE__ */ jsxRuntime.jsx(
|
|
1553
|
+
connect && /* @__PURE__ */ jsxRuntime.jsx(chunkRB7GX2VT_cjs.AgentConnectInstructions, { email: connect.email, signingKey: connect.signingKey })
|
|
1799
1554
|
]
|
|
1800
1555
|
}
|
|
1801
1556
|
) })
|
|
@@ -1829,10 +1584,10 @@ function ConnectedWorkflowHistory({
|
|
|
1829
1584
|
renderErrorReport,
|
|
1830
1585
|
labels
|
|
1831
1586
|
}) {
|
|
1832
|
-
const { openConversation } =
|
|
1587
|
+
const { openConversation } = chunkKPZZ5FHE_cjs.useBlocksEnvironment();
|
|
1833
1588
|
const { data: runs = [], isLoading } = react$1.useWorkflowRuns(workflow?.external_id);
|
|
1834
1589
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1835
|
-
|
|
1590
|
+
chunkRB7GX2VT_cjs.TaskRunsDialog,
|
|
1836
1591
|
{
|
|
1837
1592
|
inline,
|
|
1838
1593
|
hideHeader,
|
|
@@ -1868,14 +1623,14 @@ function ConnectedTaskActivityDialog({
|
|
|
1868
1623
|
const activity = react$1.useConversationActivity(conversationId, { live });
|
|
1869
1624
|
const { data: agents = [] } = react$1.useAgents();
|
|
1870
1625
|
const { userId } = chunkGFNELPDP_cjs.useConnectedWorkspace();
|
|
1871
|
-
const { members } = useConnectedWorkspaceRole();
|
|
1626
|
+
const { members } = chunkU6YVZDOV_cjs.useConnectedWorkspaceRole();
|
|
1872
1627
|
const renderPerson = react.useCallback(
|
|
1873
1628
|
(id) => {
|
|
1874
1629
|
const isMe = !!id && id === userId;
|
|
1875
1630
|
const member = members.find((m) => m.user.external_id === id)?.user;
|
|
1876
1631
|
const name = member && [member.given_name, member.family_name].filter(Boolean).join(" ") || member?.email;
|
|
1877
1632
|
const person = { id, label: isMe ? "You" : name || "Someone", isMe };
|
|
1878
|
-
return renderTaskPerson ? renderTaskPerson(person) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
1633
|
+
return renderTaskPerson ? renderTaskPerson(person) : /* @__PURE__ */ jsxRuntime.jsx(chunkLPYEUD2D_cjs.PersonPill, { person });
|
|
1879
1634
|
},
|
|
1880
1635
|
[renderTaskPerson, userId, members]
|
|
1881
1636
|
);
|
|
@@ -1884,7 +1639,7 @@ function ConnectedTaskActivityDialog({
|
|
|
1884
1639
|
[agents]
|
|
1885
1640
|
);
|
|
1886
1641
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1887
|
-
|
|
1642
|
+
chunkRB7GX2VT_cjs.TaskActivityDialog,
|
|
1888
1643
|
{
|
|
1889
1644
|
open: true,
|
|
1890
1645
|
onOpenChange: (open) => !open && onClose(),
|
|
@@ -1972,7 +1727,7 @@ function StreamedArtifact({
|
|
|
1972
1727
|
}
|
|
1973
1728
|
var STARTING = /* @__PURE__ */ new Set(["pending", "running"]);
|
|
1974
1729
|
function formValues(step, inputs) {
|
|
1975
|
-
const fields =
|
|
1730
|
+
const fields = chunkJSTKEZBS_cjs.stepFields(step);
|
|
1976
1731
|
if (!fields.length) return void 0;
|
|
1977
1732
|
if (step.kind === "form")
|
|
1978
1733
|
return Object.fromEntries(fields.map((f) => [f.name, inputs[f.name] ?? ""]));
|
|
@@ -2010,7 +1765,7 @@ function useWorkflowThread(workflow, options = {}) {
|
|
|
2010
1765
|
const wsId = workspaceId ?? void 0;
|
|
2011
1766
|
const [threadId, setThreadId] = react.useState(options.conversationId);
|
|
2012
1767
|
const [localInputs, setLocalInputs] = react.useState(
|
|
2013
|
-
() =>
|
|
1768
|
+
() => chunkJSTKEZBS_cjs.initialRunInputs(workflow, options.initialInputs)
|
|
2014
1769
|
);
|
|
2015
1770
|
const [edits, setEdits] = react.useState({});
|
|
2016
1771
|
const [localStates, setLocalStates] = react.useState({});
|
|
@@ -2030,12 +1785,12 @@ function useWorkflowThread(workflow, options = {}) {
|
|
|
2030
1785
|
);
|
|
2031
1786
|
const conversation = conversations.data?.find((c) => c.external_id === threadId);
|
|
2032
1787
|
const steps = react.useMemo(
|
|
2033
|
-
() =>
|
|
1788
|
+
() => chunkJSTKEZBS_cjs.workflowSteps(workflow).length > 0 ? chunkJSTKEZBS_cjs.workflowSteps(workflow) : chunkRB7GX2VT_cjs.fromPlanSteps(conversation?.plan?.steps ?? []),
|
|
2034
1789
|
[workflow, conversation?.plan?.steps]
|
|
2035
1790
|
);
|
|
2036
1791
|
const activity = react$1.useConversationActivity(threadId, { live: !!threadId });
|
|
2037
1792
|
const serverStates = react.useMemo(
|
|
2038
|
-
() =>
|
|
1793
|
+
() => chunkJSTKEZBS_cjs.stepStatesFromActivity(activity.data ?? []),
|
|
2039
1794
|
[activity.data]
|
|
2040
1795
|
);
|
|
2041
1796
|
const working = steps.some(
|
|
@@ -2078,7 +1833,7 @@ function useWorkflowThread(workflow, options = {}) {
|
|
|
2078
1833
|
async (values, done) => {
|
|
2079
1834
|
await ensureWorkspaceOpen();
|
|
2080
1835
|
const created = await createWork.mutateAsync({
|
|
2081
|
-
title:
|
|
1836
|
+
title: chunkJSTKEZBS_cjs.runThreadTitle(workflow, values).slice(0, 60),
|
|
2082
1837
|
description: workflow.description || null,
|
|
2083
1838
|
prompt: null,
|
|
2084
1839
|
skill_ref: null,
|
|
@@ -2090,7 +1845,7 @@ function useWorkflowThread(workflow, options = {}) {
|
|
|
2090
1845
|
criteria: [],
|
|
2091
1846
|
max_passes: 3,
|
|
2092
1847
|
documents: [],
|
|
2093
|
-
steps:
|
|
1848
|
+
steps: chunkRB7GX2VT_cjs.toPlanSteps(workflow, {
|
|
2094
1849
|
inputs: values,
|
|
2095
1850
|
resolveWorkflow: options.resolveWorkflow,
|
|
2096
1851
|
compose: options.compose
|
|
@@ -2177,7 +1932,7 @@ function useWorkflowThread(workflow, options = {}) {
|
|
|
2177
1932
|
const anyRunning = Object.values(states).some((s) => s.status === "running");
|
|
2178
1933
|
const needsStart = !threadId || idle && !anyRunning;
|
|
2179
1934
|
const runError = idle ? conversation?.last_error ?? null : null;
|
|
2180
|
-
const view =
|
|
1935
|
+
const view = chunkRB7GX2VT_cjs.useWorkflowView({
|
|
2181
1936
|
steps,
|
|
2182
1937
|
states,
|
|
2183
1938
|
inputs,
|
|
@@ -2220,7 +1975,7 @@ function WorkflowRunThread({
|
|
|
2220
1975
|
if (listed && activeThreadId !== conversationId) selectThread(conversationId);
|
|
2221
1976
|
}, [listed, activeThreadId, conversationId, selectThread]);
|
|
2222
1977
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
2223
|
-
|
|
1978
|
+
chunk5A2QQAF5_cjs.ChatPage,
|
|
2224
1979
|
{
|
|
2225
1980
|
chat: { ...chat, threads: chat.threads.filter((t) => t.id === conversationId) },
|
|
2226
1981
|
singleThread: true,
|
|
@@ -2258,7 +2013,7 @@ function WorkflowSignDialog({
|
|
|
2258
2013
|
const arbi = react$1.useArbi();
|
|
2259
2014
|
const { user, ensureWorkspaceOpen } = chunkGFNELPDP_cjs.useConnectedWorkspace();
|
|
2260
2015
|
const tools = documentTools.useOptionalDocumentTools();
|
|
2261
|
-
const { id, version: stepVersion } =
|
|
2016
|
+
const { id, version: stepVersion } = chunkJSTKEZBS_cjs.splitDocRef(docRef);
|
|
2262
2017
|
const [version, setVersion] = react.useState(stepVersion);
|
|
2263
2018
|
const [pdf, setPdf] = react.useState(null);
|
|
2264
2019
|
const [preparing, setPreparing] = react.useState(false);
|
|
@@ -2336,7 +2091,7 @@ function WorkflowWordDialog({
|
|
|
2336
2091
|
onClose,
|
|
2337
2092
|
labels
|
|
2338
2093
|
}) {
|
|
2339
|
-
const { id } =
|
|
2094
|
+
const { id } = chunkJSTKEZBS_cjs.splitDocRef(docRef);
|
|
2340
2095
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
2341
2096
|
chunkULWRNGGE_cjs.ModalScaffold,
|
|
2342
2097
|
{
|
|
@@ -2345,7 +2100,7 @@ function WorkflowWordDialog({
|
|
|
2345
2100
|
title: title ?? labels.wordTitle,
|
|
2346
2101
|
size: "xl",
|
|
2347
2102
|
testId: "workflow-word-dialog",
|
|
2348
|
-
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 }) })
|
|
2349
2104
|
}
|
|
2350
2105
|
);
|
|
2351
2106
|
}
|
|
@@ -2508,7 +2263,7 @@ function ConnectedWorkflowRunner({
|
|
|
2508
2263
|
() => ({
|
|
2509
2264
|
me: userId,
|
|
2510
2265
|
openDocument: onOpenDocument && ((ref) => {
|
|
2511
|
-
const { id, version } =
|
|
2266
|
+
const { id, version } = chunkJSTKEZBS_cjs.splitDocRef(ref);
|
|
2512
2267
|
onOpenDocument(id, version);
|
|
2513
2268
|
}),
|
|
2514
2269
|
openDraft: onOpenDraft && ((draftId) => onOpenDraft(draftId)),
|
|
@@ -2518,7 +2273,7 @@ function ConnectedWorkflowRunner({
|
|
|
2518
2273
|
const w = state.waiting;
|
|
2519
2274
|
if (w?.doc_ext_id) setDialog({ kind: "sign", docRef: w.doc_ext_id });
|
|
2520
2275
|
}),
|
|
2521
|
-
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) ?? "" })),
|
|
2522
2277
|
openReview: hostActions?.openReview ?? ((tags, documents) => setDialog({ kind: "review", tags, documents }))
|
|
2523
2278
|
}),
|
|
2524
2279
|
[userId, onOpenDocument, onOpenDraft, onOpenMessage, hostActions, nameOfDoc, inThread]
|
|
@@ -2654,7 +2409,7 @@ function ConnectedWorkflowRunner({
|
|
|
2654
2409
|
);
|
|
2655
2410
|
};
|
|
2656
2411
|
const runner = (compact) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
2657
|
-
|
|
2412
|
+
chunkRB7GX2VT_cjs.WorkflowRunner,
|
|
2658
2413
|
{
|
|
2659
2414
|
people,
|
|
2660
2415
|
...runnerProps,
|
|
@@ -2700,10 +2455,10 @@ function ConnectedWorkflowRunner({
|
|
|
2700
2455
|
) }),
|
|
2701
2456
|
inThread && conversationId ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
2702
2457
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2703
|
-
|
|
2458
|
+
chunkRB7GX2VT_cjs.WorkflowStepBar,
|
|
2704
2459
|
{
|
|
2705
2460
|
run: view,
|
|
2706
|
-
levels:
|
|
2461
|
+
levels: chunkJSTKEZBS_cjs.stepLevels(view.steps),
|
|
2707
2462
|
doneTitle: (workflow.run.kind === "steps" ? workflow.run.completion?.title : void 0) ?? runnerProps.labels?.complete ?? "Done",
|
|
2708
2463
|
icon: (key) => key && runnerProps.renderIcon ? runnerProps.renderIcon(key) : void 0,
|
|
2709
2464
|
tid: (suffix) => `${testIdPrefix}-${suffix}`
|
|
@@ -2723,13 +2478,13 @@ function ConnectedWorkflowRunner({
|
|
|
2723
2478
|
return state ? [[s.id, state]] : [];
|
|
2724
2479
|
})
|
|
2725
2480
|
);
|
|
2726
|
-
const ref =
|
|
2481
|
+
const ref = chunkJSTKEZBS_cjs.stepDocuments(view.steps, states, id).at(-1);
|
|
2727
2482
|
const open = actions.openDocument ?? actions.openRedline;
|
|
2728
2483
|
return {
|
|
2729
2484
|
title: step.title,
|
|
2730
|
-
kind:
|
|
2485
|
+
kind: chunkJSTKEZBS_cjs.stepKindOf(step),
|
|
2731
2486
|
phase: view.phaseOf(id),
|
|
2732
|
-
document: ref && open ? { name: nameOfDoc(
|
|
2487
|
+
document: ref && open ? { name: nameOfDoc(chunkJSTKEZBS_cjs.splitDocRef(ref).id) ?? ref, onOpen: () => open(ref) } : void 0
|
|
2733
2488
|
};
|
|
2734
2489
|
},
|
|
2735
2490
|
targetMessageId: target,
|
|
@@ -2901,7 +2656,7 @@ function ConnectedTagTable({
|
|
|
2901
2656
|
const fail = (e) => setError(e instanceof Error ? e.message : String(e));
|
|
2902
2657
|
const snapshot = (data) => {
|
|
2903
2658
|
const title = exportTitle ?? KIND_TITLES[kind];
|
|
2904
|
-
const bytes =
|
|
2659
|
+
const bytes = chunkHAOKT4LC_cjs.tagTableDocx(data, {
|
|
2905
2660
|
title,
|
|
2906
2661
|
nameOf: (id) => people.find((p) => p.value === id)?.label
|
|
2907
2662
|
});
|
|
@@ -2911,7 +2666,7 @@ function ConnectedTagTable({
|
|
|
2911
2666
|
};
|
|
2912
2667
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-2", children: [
|
|
2913
2668
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2914
|
-
|
|
2669
|
+
chunkHAOKT4LC_cjs.TagTable,
|
|
2915
2670
|
{
|
|
2916
2671
|
...props,
|
|
2917
2672
|
table,
|
|
@@ -2988,6 +2743,11 @@ function useConnectedShellWorkspaces(options = {}) {
|
|
|
2988
2743
|
select: (workspace) => setWorkspace(workspace.id)
|
|
2989
2744
|
});
|
|
2990
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 });
|
|
2991
2751
|
function errorText2(error, fallback) {
|
|
2992
2752
|
const body = error?.apiError;
|
|
2993
2753
|
return typeof body?.detail === "string" ? body.detail : fallback;
|
|
@@ -3002,7 +2762,7 @@ function ConnectedProfileCard({
|
|
|
3002
2762
|
avatarClassName = "bg-primary text-primary-foreground",
|
|
3003
2763
|
children
|
|
3004
2764
|
}) {
|
|
3005
|
-
const { notify } =
|
|
2765
|
+
const { notify } = chunkKPZZ5FHE_cjs.useBlocksEnvironment();
|
|
3006
2766
|
const { data: profile } = react$1.useProfile();
|
|
3007
2767
|
const updateProfile = react$1.useUpdateProfile();
|
|
3008
2768
|
const requestEmailChange = react$1.useRequestEmailChange();
|
|
@@ -3053,13 +2813,13 @@ function ConnectedProfileCard({
|
|
|
3053
2813
|
}
|
|
3054
2814
|
});
|
|
3055
2815
|
const display = profile?.fullName || "Unnamed";
|
|
3056
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2816
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(chunkU73KPFYH_cjs.SettingsSection, { icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.UserCircle, {}), title, children: [
|
|
3057
2817
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3058
|
-
|
|
2818
|
+
chunkU73KPFYH_cjs.ProfileCard,
|
|
3059
2819
|
{
|
|
3060
2820
|
avatar: /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
3061
2821
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3062
|
-
|
|
2822
|
+
chunkU73KPFYH_cjs.AvatarPicker,
|
|
3063
2823
|
{
|
|
3064
2824
|
pictureUrl: profile?.picture,
|
|
3065
2825
|
initials: chunkKDG6FER6_cjs.initials(display),
|
|
@@ -3098,7 +2858,7 @@ function ConnectedIdentityVerification({
|
|
|
3098
2858
|
onManageBilling,
|
|
3099
2859
|
formatPrice
|
|
3100
2860
|
}) {
|
|
3101
|
-
const { notify } =
|
|
2861
|
+
const { notify } = chunkKPZZ5FHE_cjs.useBlocksEnvironment();
|
|
3102
2862
|
const { data: profile } = react$1.useProfile();
|
|
3103
2863
|
const flow = react$1.useIdentityVerification({
|
|
3104
2864
|
formatPrice,
|
|
@@ -3106,9 +2866,9 @@ function ConnectedIdentityVerification({
|
|
|
3106
2866
|
onNameAccepted: () => notify("Name updated to match your ID", "success")
|
|
3107
2867
|
});
|
|
3108
2868
|
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
3109
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2869
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkU73KPFYH_cjs.IdentityVerificationCard, { flow, labels, onManageBilling }),
|
|
3110
2870
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3111
|
-
|
|
2871
|
+
chunkU73KPFYH_cjs.IdentityVerificationDialog,
|
|
3112
2872
|
{
|
|
3113
2873
|
flow,
|
|
3114
2874
|
accountName: profile?.fullName ?? "",
|
|
@@ -3121,7 +2881,7 @@ function ConnectedIdentityVerification({
|
|
|
3121
2881
|
function ConnectedRequireVerified({ children, labels }) {
|
|
3122
2882
|
const { data: profile } = react$1.useProfile();
|
|
3123
2883
|
const flow = react$1.useIdentityVerification();
|
|
3124
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
2884
|
+
return /* @__PURE__ */ jsxRuntime.jsx(chunkU73KPFYH_cjs.RequireVerified, { flow, accountName: profile?.fullName ?? "", labels, children });
|
|
3125
2885
|
}
|
|
3126
2886
|
function defaultUnmetPasswordRequirement(password) {
|
|
3127
2887
|
if (password.length < 8) return "Minimum 8 characters";
|
|
@@ -3138,7 +2898,7 @@ function ConnectedPasswordChangeDialog({
|
|
|
3138
2898
|
recoveryMode = false,
|
|
3139
2899
|
onRecoveryComplete
|
|
3140
2900
|
}) {
|
|
3141
|
-
const { notify } =
|
|
2901
|
+
const { notify } = chunkKPZZ5FHE_cjs.useBlocksEnvironment();
|
|
3142
2902
|
const change = react$1.usePasswordChange();
|
|
3143
2903
|
const form = react$1.usePasswordChangeForm({
|
|
3144
2904
|
recoveryMode,
|
|
@@ -3154,7 +2914,7 @@ function ConnectedPasswordChangeDialog({
|
|
|
3154
2914
|
onRecoveryComplete
|
|
3155
2915
|
});
|
|
3156
2916
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
3157
|
-
|
|
2917
|
+
chunkU73KPFYH_cjs.PasswordChangeDialog,
|
|
3158
2918
|
{
|
|
3159
2919
|
open,
|
|
3160
2920
|
onClose: form.onCancel,
|
|
@@ -3180,10 +2940,10 @@ function ConnectedSecuritySection({
|
|
|
3180
2940
|
children
|
|
3181
2941
|
}) {
|
|
3182
2942
|
const [open, setOpen] = react.useState(false);
|
|
3183
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
3184
|
-
/* @__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: [
|
|
3185
2945
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3186
|
-
|
|
2946
|
+
chunkU73KPFYH_cjs.SettingsActionRow,
|
|
3187
2947
|
{
|
|
3188
2948
|
title: "Change password",
|
|
3189
2949
|
description: "Used to sign in and to unlock your account key. Changing it keeps everything readable and re-encrypts nothing.",
|
|
@@ -3204,41 +2964,43 @@ function ConnectedSecuritySection({
|
|
|
3204
2964
|
] });
|
|
3205
2965
|
}
|
|
3206
2966
|
function ConnectedNotificationPreferences({
|
|
3207
|
-
categories =
|
|
2967
|
+
categories = chunkU73KPFYH_cjs.EMAIL_NOTIFICATION_CATEGORIES,
|
|
3208
2968
|
title = "Notifications"
|
|
3209
2969
|
}) {
|
|
3210
2970
|
const keys = react.useMemo(
|
|
3211
|
-
() => categories ===
|
|
2971
|
+
() => categories === chunkU73KPFYH_cjs.EMAIL_NOTIFICATION_CATEGORIES ? chunkU73KPFYH_cjs.EMAIL_NOTIFICATION_KEYS : categories.map((c) => c.key),
|
|
3212
2972
|
[categories]
|
|
3213
2973
|
);
|
|
3214
2974
|
const prefs = react$1.useNotificationPreferences(keys);
|
|
3215
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
3216
|
-
|
|
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,
|
|
3217
2977
|
{
|
|
3218
2978
|
masterId: "emailNotifications",
|
|
3219
2979
|
masterTitle: "Email Notifications",
|
|
3220
2980
|
masterDescription: "Email me about activity when I\u2019m away",
|
|
3221
2981
|
masterChecked: prefs.masterChecked,
|
|
3222
2982
|
onMasterChange: prefs.setAll,
|
|
3223
|
-
categories:
|
|
2983
|
+
categories: chunkU73KPFYH_cjs.toNotificationCategories(prefs.checked, categories),
|
|
3224
2984
|
onCategoryChange: prefs.setCategory
|
|
3225
2985
|
}
|
|
3226
2986
|
) }) });
|
|
3227
2987
|
}
|
|
3228
|
-
function ConnectedSessionsRow({
|
|
3229
|
-
|
|
2988
|
+
function ConnectedSessionsRow({
|
|
2989
|
+
renderSessionIcon = renderSessionStatusIcon
|
|
2990
|
+
}) {
|
|
2991
|
+
const { notify, confirm } = chunkKPZZ5FHE_cjs.useBlocksEnvironment();
|
|
3230
2992
|
const [open, setOpen] = react.useState(false);
|
|
3231
2993
|
const sessions = react$1.useSessions({ enabled: open });
|
|
3232
2994
|
const currentSessionId = react$1.useCurrentSessionId();
|
|
3233
2995
|
const terminate = react$1.useTerminateSession();
|
|
3234
|
-
const views =
|
|
2996
|
+
const views = chunkU73KPFYH_cjs.toActiveSessionViews(sessions.data ?? [], {
|
|
3235
2997
|
currentSessionId,
|
|
3236
2998
|
terminatingId: terminate.isPending ? terminate.variables : null,
|
|
3237
2999
|
renderIcon: renderSessionIcon
|
|
3238
3000
|
});
|
|
3239
3001
|
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
3240
3002
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3241
|
-
|
|
3003
|
+
chunkU73KPFYH_cjs.SettingsRow,
|
|
3242
3004
|
{
|
|
3243
3005
|
label: "Active sessions",
|
|
3244
3006
|
description: "Devices and agents currently signed in to your account.",
|
|
@@ -3260,7 +3022,7 @@ function ConnectedSessionsRow({ renderSessionIcon }) {
|
|
|
3260
3022
|
}
|
|
3261
3023
|
),
|
|
3262
3024
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3263
|
-
|
|
3025
|
+
chunkU73KPFYH_cjs.ActiveSessionsDialog,
|
|
3264
3026
|
{
|
|
3265
3027
|
open,
|
|
3266
3028
|
onOpenChange: setOpen,
|
|
@@ -3291,7 +3053,7 @@ function ConnectedLogoutDialog({
|
|
|
3291
3053
|
onClose,
|
|
3292
3054
|
canLogoutAll = true,
|
|
3293
3055
|
confirmSignOut,
|
|
3294
|
-
renderSessionIcon
|
|
3056
|
+
renderSessionIcon = renderSessionStatusIcon
|
|
3295
3057
|
}) {
|
|
3296
3058
|
const sessions = react$1.useSessions({ enabled: open });
|
|
3297
3059
|
const signOut = react$1.useSignOut();
|
|
@@ -3302,7 +3064,7 @@ function ConnectedLogoutDialog({
|
|
|
3302
3064
|
signOut.mutate({ everywhere, reason: "manual" });
|
|
3303
3065
|
};
|
|
3304
3066
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
3305
|
-
|
|
3067
|
+
chunkU73KPFYH_cjs.LogoutDialog,
|
|
3306
3068
|
{
|
|
3307
3069
|
open,
|
|
3308
3070
|
onClose,
|
|
@@ -3310,13 +3072,13 @@ function ConnectedLogoutDialog({
|
|
|
3310
3072
|
onLogoutAll: () => void run(true),
|
|
3311
3073
|
canLogoutAll,
|
|
3312
3074
|
isOnline,
|
|
3313
|
-
sessions:
|
|
3075
|
+
sessions: chunkU73KPFYH_cjs.toLogoutSessionViews(sessions.data ?? []),
|
|
3314
3076
|
renderSessionIcon
|
|
3315
3077
|
}
|
|
3316
3078
|
);
|
|
3317
3079
|
}
|
|
3318
3080
|
function ConnectedDangerZone({ renderSubscriptionLink }) {
|
|
3319
|
-
const { notify } =
|
|
3081
|
+
const { notify } = chunkKPZZ5FHE_cjs.useBlocksEnvironment();
|
|
3320
3082
|
const [zoneOpen, setZoneOpen] = react.useState(false);
|
|
3321
3083
|
const [dialogOpen, setDialogOpen] = react.useState(false);
|
|
3322
3084
|
const { data: profile } = react$1.useProfile();
|
|
@@ -3332,7 +3094,7 @@ function ConnectedDangerZone({ renderSubscriptionLink }) {
|
|
|
3332
3094
|
});
|
|
3333
3095
|
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
3334
3096
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3335
|
-
|
|
3097
|
+
chunkU73KPFYH_cjs.SettingsDangerZone,
|
|
3336
3098
|
{
|
|
3337
3099
|
isOpen: zoneOpen,
|
|
3338
3100
|
onToggle: () => setZoneOpen((o) => !o),
|
|
@@ -3352,12 +3114,12 @@ function ConnectedDangerZone({ renderSubscriptionLink }) {
|
|
|
3352
3114
|
}
|
|
3353
3115
|
),
|
|
3354
3116
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3355
|
-
|
|
3117
|
+
chunkU73KPFYH_cjs.DeleteAccountDialog,
|
|
3356
3118
|
{
|
|
3357
3119
|
open: dialogOpen,
|
|
3358
3120
|
onClose: flow.onClose,
|
|
3359
3121
|
step: flow.step,
|
|
3360
|
-
blockers:
|
|
3122
|
+
blockers: chunkU73KPFYH_cjs.toDeleteBlockerViews(flow.blockers, renderSubscriptionLink),
|
|
3361
3123
|
onContinue: flow.onContinue,
|
|
3362
3124
|
onBack: flow.onBack,
|
|
3363
3125
|
userEmail,
|
|
@@ -3366,13 +3128,603 @@ function ConnectedDangerZone({ renderSubscriptionLink }) {
|
|
|
3366
3128
|
isDeleting: flow.isDeleting,
|
|
3367
3129
|
onSubmit: flow.onSubmit
|
|
3368
3130
|
}
|
|
3369
|
-
)
|
|
3370
|
-
] });
|
|
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
|
+
);
|
|
3371
3723
|
}
|
|
3372
3724
|
function useConnectedDocxNotifications(onOpen) {
|
|
3373
3725
|
const arbi = react$1.useArbi();
|
|
3374
3726
|
const { status, user, apiUrl } = chunkGFNELPDP_cjs.useConnection();
|
|
3375
|
-
const { notify } =
|
|
3727
|
+
const { notify } = chunkKPZZ5FHE_cjs.useBlocksEnvironment();
|
|
3376
3728
|
const queries = reactQuery.useQueryClient();
|
|
3377
3729
|
const source = `docx-mentions:${apiUrl}:${user?.externalId || ""}`;
|
|
3378
3730
|
const queryKey = ["docx-mentions", apiUrl, user?.externalId];
|
|
@@ -3438,7 +3790,7 @@ function useConnectedDocxNotifications(onOpen) {
|
|
|
3438
3790
|
}
|
|
3439
3791
|
function useConnectedWorkNotifications(onOpen) {
|
|
3440
3792
|
const { status, user, apiUrl } = chunkGFNELPDP_cjs.useConnection();
|
|
3441
|
-
const { notify } =
|
|
3793
|
+
const { notify } = chunkKPZZ5FHE_cjs.useBlocksEnvironment();
|
|
3442
3794
|
const source = `work-notifications:${apiUrl}:${user?.externalId || ""}`;
|
|
3443
3795
|
const { data = [], markRead: persistRead } = react$1.useWorkNotifications({
|
|
3444
3796
|
apiUrl,
|
|
@@ -3575,229 +3927,6 @@ function hydrateMailAttachments(client$1, account, messageId, attachments, { isO
|
|
|
3575
3927
|
})
|
|
3576
3928
|
);
|
|
3577
3929
|
}
|
|
3578
|
-
function ConnectedMailAccounts({
|
|
3579
|
-
policy,
|
|
3580
|
-
accounts,
|
|
3581
|
-
onClose,
|
|
3582
|
-
embedded = false,
|
|
3583
|
-
user,
|
|
3584
|
-
oauthReturnPath,
|
|
3585
|
-
settings
|
|
3586
|
-
}) {
|
|
3587
|
-
const { client } = react$1.useMailClient();
|
|
3588
|
-
const [profileId, setProfileId] = react.useState(policy.server_profiles[0]?.id ?? "");
|
|
3589
|
-
const [email, setEmail] = react.useState("");
|
|
3590
|
-
const [username, setUsername] = react.useState("");
|
|
3591
|
-
const [password, setPassword] = react.useState("");
|
|
3592
|
-
const [error, setError] = react.useState("");
|
|
3593
|
-
const [alias, setAlias] = react.useState(() => react$1.defaultMailAlias(user));
|
|
3594
|
-
const native = react$1.useClaimNativeAlias(onClose);
|
|
3595
|
-
const isOnline = react$1.useMailOnline();
|
|
3596
|
-
const offline = !isOnline;
|
|
3597
|
-
const onNativeError = (err) => {
|
|
3598
|
-
if (!react$1.isAliasTakenError(err)) return setError(err.message);
|
|
3599
|
-
const suggestion = react$1.nextAliasSuggestion(alias);
|
|
3600
|
-
setAlias(suggestion);
|
|
3601
|
-
setError(react$1.aliasTakenMessage(alias, suggestion, policy.native_domain));
|
|
3602
|
-
};
|
|
3603
|
-
const connect = react$1.useConnectMailAccount();
|
|
3604
|
-
const disconnect = react$1.useDisconnectMailAccount();
|
|
3605
|
-
const authorizeOAuth = client.authorizeOAuth;
|
|
3606
|
-
const oauth = async (vendor) => {
|
|
3607
|
-
if (!authorizeOAuth) return;
|
|
3608
|
-
try {
|
|
3609
|
-
window.location.assign(
|
|
3610
|
-
await authorizeOAuth(
|
|
3611
|
-
vendor,
|
|
3612
|
-
oauthReturnPath ?? `${window.location.pathname}${window.location.search}`
|
|
3613
|
-
)
|
|
3614
|
-
);
|
|
3615
|
-
} catch (err) {
|
|
3616
|
-
setError(err instanceof Error ? err.message : "Could not connect account");
|
|
3617
|
-
}
|
|
3618
|
-
};
|
|
3619
|
-
const content = /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
3620
|
-
offline && /* @__PURE__ */ jsxRuntime.jsx(
|
|
3621
|
-
"p",
|
|
3622
|
-
{
|
|
3623
|
-
role: "status",
|
|
3624
|
-
className: "mb-4 rounded bg-muted/40 px-3 py-2 text-sm text-muted-foreground",
|
|
3625
|
-
children: "You're offline. Creating, connecting or removing accounts needs a connection."
|
|
3626
|
-
}
|
|
3627
|
-
),
|
|
3628
|
-
policy.native_enabled && !accounts.some((a) => a.provider === "native") && /* @__PURE__ */ jsxRuntime.jsxs(
|
|
3629
|
-
"form",
|
|
3630
|
-
{
|
|
3631
|
-
className: "mb-5 grid gap-3",
|
|
3632
|
-
onSubmit: (e) => {
|
|
3633
|
-
e.preventDefault();
|
|
3634
|
-
native.mutate(alias, { onError: onNativeError });
|
|
3635
|
-
},
|
|
3636
|
-
children: [
|
|
3637
|
-
/* @__PURE__ */ jsxRuntime.jsxs("label", { className: "grid gap-1 text-sm", children: [
|
|
3638
|
-
"Choose your email address",
|
|
3639
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
|
|
3640
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3641
|
-
"input",
|
|
3642
|
-
{
|
|
3643
|
-
"aria-label": "Email alias",
|
|
3644
|
-
required: true,
|
|
3645
|
-
pattern: "[a-z0-9][a-z0-9._\\-]{0,62}",
|
|
3646
|
-
className: "min-w-0 flex-1 rounded border bg-background p-2",
|
|
3647
|
-
value: alias,
|
|
3648
|
-
onChange: (e) => setAlias(e.target.value.toLowerCase())
|
|
3649
|
-
}
|
|
3650
|
-
),
|
|
3651
|
-
/* @__PURE__ */ jsxRuntime.jsxs("span", { children: [
|
|
3652
|
-
"@",
|
|
3653
|
-
policy.native_domain
|
|
3654
|
-
] })
|
|
3655
|
-
] })
|
|
3656
|
-
] }),
|
|
3657
|
-
/* @__PURE__ */ jsxRuntime.jsx(ui.Button, { disabled: native.isPending || offline, type: "submit", children: "Create inbox" })
|
|
3658
|
-
]
|
|
3659
|
-
}
|
|
3660
|
-
),
|
|
3661
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mb-4 text-sm text-muted-foreground", children: "Connect an account using the providers enabled by your administrator." }),
|
|
3662
|
-
authorizeOAuth && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-4 flex flex-wrap gap-2", children: policy.oauth_providers.map((vendor) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
3663
|
-
ui.Button,
|
|
3664
|
-
{
|
|
3665
|
-
variant: "outline",
|
|
3666
|
-
disabled: offline,
|
|
3667
|
-
onClick: () => void oauth(vendor),
|
|
3668
|
-
children: [
|
|
3669
|
-
"Connect ",
|
|
3670
|
-
vendor === "microsoft" ? "Outlook" : "Gmail"
|
|
3671
|
-
]
|
|
3672
|
-
},
|
|
3673
|
-
vendor
|
|
3674
|
-
)) }),
|
|
3675
|
-
accounts.map((account) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
3676
|
-
"div",
|
|
3677
|
-
{
|
|
3678
|
-
className: "mb-2 flex items-center justify-between gap-2 rounded border p-3 text-sm",
|
|
3679
|
-
children: [
|
|
3680
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
3681
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { children: account.email }),
|
|
3682
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-muted-foreground", children: account.display_name })
|
|
3683
|
-
] }),
|
|
3684
|
-
account.profile_id ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
3685
|
-
ui.Button,
|
|
3686
|
-
{
|
|
3687
|
-
variant: "ghost",
|
|
3688
|
-
disabled: disconnect.isPending || offline,
|
|
3689
|
-
onClick: () => disconnect.mutate(account.id, { onError: (err) => setError(err.message) }),
|
|
3690
|
-
children: "Disconnect"
|
|
3691
|
-
}
|
|
3692
|
-
) : account.provider !== "native" ? authorizeOAuth && /* @__PURE__ */ jsxRuntime.jsx(
|
|
3693
|
-
ui.Button,
|
|
3694
|
-
{
|
|
3695
|
-
variant: "ghost",
|
|
3696
|
-
disabled: offline,
|
|
3697
|
-
onClick: () => void oauth(account.provider),
|
|
3698
|
-
children: "Reconnect"
|
|
3699
|
-
}
|
|
3700
|
-
) : /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-muted-foreground", children: "Native inbox" })
|
|
3701
|
-
]
|
|
3702
|
-
},
|
|
3703
|
-
account.id
|
|
3704
|
-
)),
|
|
3705
|
-
policy.server_profiles.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs(
|
|
3706
|
-
"form",
|
|
3707
|
-
{
|
|
3708
|
-
className: "mt-5 grid gap-3",
|
|
3709
|
-
onSubmit: (event) => {
|
|
3710
|
-
event.preventDefault();
|
|
3711
|
-
setError("");
|
|
3712
|
-
connect.mutate(
|
|
3713
|
-
{ profileId, email, username, password },
|
|
3714
|
-
{
|
|
3715
|
-
onSuccess: () => {
|
|
3716
|
-
setPassword("");
|
|
3717
|
-
onClose();
|
|
3718
|
-
},
|
|
3719
|
-
onError: (err) => setError(err.message)
|
|
3720
|
-
}
|
|
3721
|
-
);
|
|
3722
|
-
},
|
|
3723
|
-
children: [
|
|
3724
|
-
/* @__PURE__ */ jsxRuntime.jsxs("label", { className: "grid gap-1 text-sm", children: [
|
|
3725
|
-
"Mail server",
|
|
3726
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3727
|
-
"select",
|
|
3728
|
-
{
|
|
3729
|
-
"aria-label": "Mail server",
|
|
3730
|
-
className: "rounded border bg-background p-2",
|
|
3731
|
-
value: profileId,
|
|
3732
|
-
onChange: (e) => setProfileId(e.target.value),
|
|
3733
|
-
children: policy.server_profiles.map((profile) => /* @__PURE__ */ jsxRuntime.jsx("option", { value: profile.id, children: profile.name }, profile.id))
|
|
3734
|
-
}
|
|
3735
|
-
)
|
|
3736
|
-
] }),
|
|
3737
|
-
/* @__PURE__ */ jsxRuntime.jsxs("label", { className: "grid gap-1 text-sm", children: [
|
|
3738
|
-
"Email address",
|
|
3739
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3740
|
-
"input",
|
|
3741
|
-
{
|
|
3742
|
-
required: true,
|
|
3743
|
-
type: "email",
|
|
3744
|
-
autoComplete: "email",
|
|
3745
|
-
className: "rounded border bg-background p-2",
|
|
3746
|
-
value: email,
|
|
3747
|
-
onChange: (e) => setEmail(e.target.value)
|
|
3748
|
-
}
|
|
3749
|
-
)
|
|
3750
|
-
] }),
|
|
3751
|
-
/* @__PURE__ */ jsxRuntime.jsxs("label", { className: "grid gap-1 text-sm", children: [
|
|
3752
|
-
"Username",
|
|
3753
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3754
|
-
"input",
|
|
3755
|
-
{
|
|
3756
|
-
placeholder: "Same as email address",
|
|
3757
|
-
autoComplete: "username",
|
|
3758
|
-
className: "rounded border bg-background p-2",
|
|
3759
|
-
value: username,
|
|
3760
|
-
onChange: (e) => setUsername(e.target.value)
|
|
3761
|
-
}
|
|
3762
|
-
)
|
|
3763
|
-
] }),
|
|
3764
|
-
/* @__PURE__ */ jsxRuntime.jsxs("label", { className: "grid gap-1 text-sm", children: [
|
|
3765
|
-
"Password or app password",
|
|
3766
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3767
|
-
"input",
|
|
3768
|
-
{
|
|
3769
|
-
required: true,
|
|
3770
|
-
type: "password",
|
|
3771
|
-
autoComplete: "current-password",
|
|
3772
|
-
className: "rounded border bg-background p-2",
|
|
3773
|
-
value: password,
|
|
3774
|
-
onChange: (e) => setPassword(e.target.value)
|
|
3775
|
-
}
|
|
3776
|
-
)
|
|
3777
|
-
] }),
|
|
3778
|
-
/* @__PURE__ */ jsxRuntime.jsx(ui.Button, { type: "submit", disabled: connect.isPending || offline, children: connect.isPending ? "Connecting\u2026" : "Connect mailbox" })
|
|
3779
|
-
]
|
|
3780
|
-
}
|
|
3781
|
-
),
|
|
3782
|
-
error && /* @__PURE__ */ jsxRuntime.jsx("p", { role: "alert", className: "mt-3 text-sm text-destructive", children: error }),
|
|
3783
|
-
accounts.length > 0 && settings
|
|
3784
|
-
] });
|
|
3785
|
-
if (embedded) return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "max-w-2xl", children: content });
|
|
3786
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
3787
|
-
ui.Dialog,
|
|
3788
|
-
{
|
|
3789
|
-
open: true,
|
|
3790
|
-
onOpenChange: (open) => {
|
|
3791
|
-
if (!open) onClose();
|
|
3792
|
-
},
|
|
3793
|
-
children: /* @__PURE__ */ jsxRuntime.jsxs(ui.DialogContent, { className: "max-h-[90dvh] max-w-lg overflow-auto", children: [
|
|
3794
|
-
/* @__PURE__ */ jsxRuntime.jsx(ui.DialogTitle, { children: "Mail accounts" }),
|
|
3795
|
-
/* @__PURE__ */ jsxRuntime.jsx(ui.DialogDescription, { children: "Choose your email address or connect an external mailbox." }),
|
|
3796
|
-
content
|
|
3797
|
-
] })
|
|
3798
|
-
}
|
|
3799
|
-
);
|
|
3800
|
-
}
|
|
3801
3930
|
var sessionRooms = /* @__PURE__ */ new Map();
|
|
3802
3931
|
function useWordBody({
|
|
3803
3932
|
word,
|
|
@@ -3917,7 +4046,7 @@ function MailComposerForm({
|
|
|
3917
4046
|
headerSlot
|
|
3918
4047
|
}) {
|
|
3919
4048
|
const { client } = react$1.useMailClient();
|
|
3920
|
-
const { notify, confirm } =
|
|
4049
|
+
const { notify, confirm } = chunkKPZZ5FHE_cjs.useBlocksEnvironment();
|
|
3921
4050
|
const [to, setTo] = react.useState(initial.to.map((r) => r.email).join("; "));
|
|
3922
4051
|
const [cc, setCc] = react.useState(initial.cc.map((r) => r.email).join("; "));
|
|
3923
4052
|
const [showCc, setShowCc] = react.useState(initial.cc.length > 0);
|
|
@@ -4765,7 +4894,7 @@ function ConnectedMailbox({
|
|
|
4765
4894
|
onGridStateChange,
|
|
4766
4895
|
initialMessageId = null
|
|
4767
4896
|
}) {
|
|
4768
|
-
const { notify } =
|
|
4897
|
+
const { notify } = chunkKPZZ5FHE_cjs.useBlocksEnvironment();
|
|
4769
4898
|
const cache = react$1.useMailCache();
|
|
4770
4899
|
const { client } = react$1.useMailClient();
|
|
4771
4900
|
const [savingToWorkspace, setSavingToWorkspace] = react.useState(false);
|
|
@@ -5052,7 +5181,7 @@ function ConnectedMailbox({
|
|
|
5052
5181
|
testIds: { root: "mail-search", input: "mail-filter-input" },
|
|
5053
5182
|
className: "min-w-28 flex-1 sm:max-w-72",
|
|
5054
5183
|
filter: /* @__PURE__ */ jsxRuntime.jsx(
|
|
5055
|
-
|
|
5184
|
+
chunkRQ2Y7USX_cjs.TriStateFilterMenu,
|
|
5056
5185
|
{
|
|
5057
5186
|
testId: "mail-bar-filter-button",
|
|
5058
5187
|
open: filterMenuOpen,
|
|
@@ -5440,7 +5569,7 @@ function SubscribeDialog({
|
|
|
5440
5569
|
timeZone,
|
|
5441
5570
|
onClose
|
|
5442
5571
|
}) {
|
|
5443
|
-
const { notify } =
|
|
5572
|
+
const { notify } = chunkKPZZ5FHE_cjs.useBlocksEnvironment();
|
|
5444
5573
|
const subscribe = react$1.useSubscribeCalendar();
|
|
5445
5574
|
const [url, setUrl] = react.useState("");
|
|
5446
5575
|
const [name, setName] = react.useState("");
|
|
@@ -5535,7 +5664,7 @@ function SubscribeDialog({
|
|
|
5535
5664
|
}
|
|
5536
5665
|
function HolidaysDialog({ open, onClose }) {
|
|
5537
5666
|
const { data: countries = [], isLoading } = react$1.useHolidayCountries(open);
|
|
5538
|
-
const { notify } =
|
|
5667
|
+
const { notify } = chunkKPZZ5FHE_cjs.useBlocksEnvironment();
|
|
5539
5668
|
const add = react$1.useAddHolidayCalendar();
|
|
5540
5669
|
const [country, setCountry] = react.useState("");
|
|
5541
5670
|
const [subdivision, setSubdivision] = react.useState("");
|
|
@@ -5658,7 +5787,7 @@ function StatusBadge({ account }) {
|
|
|
5658
5787
|
);
|
|
5659
5788
|
}
|
|
5660
5789
|
function AccountRow({ account }) {
|
|
5661
|
-
const { notify } =
|
|
5790
|
+
const { notify } = chunkKPZZ5FHE_cjs.useBlocksEnvironment();
|
|
5662
5791
|
const startOAuth = react$1.useStartCalendarAccountOAuth();
|
|
5663
5792
|
const sync = react$1.useSyncCalendarAccount();
|
|
5664
5793
|
const update = react$1.useUpdateCalendarAccount();
|
|
@@ -5776,7 +5905,7 @@ function AccountRow({ account }) {
|
|
|
5776
5905
|
);
|
|
5777
5906
|
}
|
|
5778
5907
|
function CalDavForm({ onDone }) {
|
|
5779
|
-
const { notify } =
|
|
5908
|
+
const { notify } = chunkKPZZ5FHE_cjs.useBlocksEnvironment();
|
|
5780
5909
|
const { data: profiles = [] } = react$1.useCalDavProfiles();
|
|
5781
5910
|
const connect = react$1.useConnectCalDavAccount();
|
|
5782
5911
|
const [profileId, setProfileId] = react.useState("");
|
|
@@ -5892,7 +6021,7 @@ function CalDavForm({ onDone }) {
|
|
|
5892
6021
|
);
|
|
5893
6022
|
}
|
|
5894
6023
|
function CalendarAccountsPanel({ className }) {
|
|
5895
|
-
const { notify } =
|
|
6024
|
+
const { notify } = chunkKPZZ5FHE_cjs.useBlocksEnvironment();
|
|
5896
6025
|
const { connectors } = react$1.useCalendarSupport();
|
|
5897
6026
|
const startOAuth = react$1.useStartCalendarAccountOAuth();
|
|
5898
6027
|
const { data: accounts = [], isLoading, error } = react$1.useCalendarAccounts();
|
|
@@ -5979,7 +6108,7 @@ function CalendarAccountsPanel({ className }) {
|
|
|
5979
6108
|
|
|
5980
6109
|
// src/connection/calendar/copy.ts
|
|
5981
6110
|
function useCalendarCopy() {
|
|
5982
|
-
const copy =
|
|
6111
|
+
const copy = chunkXVUOMWMD_cjs.useCopyText({ copyFailed: "Could not copy. Select the text and copy it manually." });
|
|
5983
6112
|
return (value, what = "Copied") => copy(value, `${what} to clipboard`);
|
|
5984
6113
|
}
|
|
5985
6114
|
function CopyField({ label, value, mono = true, testId, className }) {
|
|
@@ -6028,7 +6157,7 @@ function calendarNames(ids, calendars) {
|
|
|
6028
6157
|
return names.length ? names.join(", ") : `${ids.length} calendar${ids.length === 1 ? "" : "s"}`;
|
|
6029
6158
|
}
|
|
6030
6159
|
function RevokeButton({ row }) {
|
|
6031
|
-
const { notify } =
|
|
6160
|
+
const { notify } = chunkKPZZ5FHE_cjs.useBlocksEnvironment();
|
|
6032
6161
|
const revoke = react$1.useRevokeAppPassword();
|
|
6033
6162
|
const [confirming, setConfirming] = react.useState(false);
|
|
6034
6163
|
if (!confirming)
|
|
@@ -6347,7 +6476,7 @@ function summarizeWeekly(page) {
|
|
|
6347
6476
|
return days.map((d) => chunk6YTHQ73P_cjs.WEEKDAY_NAMES[d]?.slice(0, 3)).join(", ");
|
|
6348
6477
|
}
|
|
6349
6478
|
function BookingPageForm({ page, defaultTimeZone, onDone }) {
|
|
6350
|
-
const { notify } =
|
|
6479
|
+
const { notify } = chunkKPZZ5FHE_cjs.useBlocksEnvironment();
|
|
6351
6480
|
const copyText = useCalendarCopy();
|
|
6352
6481
|
const [form, setForm] = react.useState(
|
|
6353
6482
|
() => page ? chunk6YTHQ73P_cjs.bookingToForm(page) : chunk6YTHQ73P_cjs.emptyBookingForm(defaultTimeZone)
|
|
@@ -6530,7 +6659,7 @@ function BookingPageForm({ page, defaultTimeZone, onDone }) {
|
|
|
6530
6659
|
);
|
|
6531
6660
|
}
|
|
6532
6661
|
function BookingPagesPanel({ defaultTimeZone, className }) {
|
|
6533
|
-
const { notify } =
|
|
6662
|
+
const { notify } = chunkKPZZ5FHE_cjs.useBlocksEnvironment();
|
|
6534
6663
|
const copyText = useCalendarCopy();
|
|
6535
6664
|
const { data: pages = [], isLoading, error } = react$1.useBookingPages();
|
|
6536
6665
|
const { data: settings } = react$1.useCalendarSettings(!defaultTimeZone);
|
|
@@ -6640,7 +6769,7 @@ function BookingPagesPanel({ defaultTimeZone, className }) {
|
|
|
6640
6769
|
}
|
|
6641
6770
|
var selectClass5 = "h-9 w-full rounded-md border border-input bg-background px-2 text-sm text-foreground shadow-sm";
|
|
6642
6771
|
function CreateRoomForm({ zone, onDone }) {
|
|
6643
|
-
const { notify } =
|
|
6772
|
+
const { notify } = chunkKPZZ5FHE_cjs.useBlocksEnvironment();
|
|
6644
6773
|
const create2 = react$1.useCreateRoom();
|
|
6645
6774
|
const [name, setName] = react.useState("");
|
|
6646
6775
|
const [type, setType] = react.useState("room");
|
|
@@ -6970,7 +7099,7 @@ function CalendarSettingsDialog({
|
|
|
6970
7099
|
initialTab = "general",
|
|
6971
7100
|
onClose
|
|
6972
7101
|
}) {
|
|
6973
|
-
const { notify } =
|
|
7102
|
+
const { notify } = chunkKPZZ5FHE_cjs.useBlocksEnvironment();
|
|
6974
7103
|
const save = react$1.useSaveCalendarSettings();
|
|
6975
7104
|
const [value, setValue] = react.useState(() => chunk6YTHQ73P_cjs.toSettingsValue(settings));
|
|
6976
7105
|
const [tab, setTab] = react.useState(initialTab);
|
|
@@ -7043,7 +7172,7 @@ function EventScheduling({
|
|
|
7043
7172
|
workingStartHour = 7
|
|
7044
7173
|
}) {
|
|
7045
7174
|
const [open, setOpen] = react.useState(false);
|
|
7046
|
-
const { notify } =
|
|
7175
|
+
const { notify } = chunkKPZZ5FHE_cjs.useBlocksEnvironment();
|
|
7047
7176
|
const arbi = react$1.useArbi();
|
|
7048
7177
|
const me = arbi.isLoggedIn ? arbi.user.identity()?.email ?? null : null;
|
|
7049
7178
|
const allDay = chunk6YTHQ73P_cjs.isAllDayDraft(draft);
|
|
@@ -7284,7 +7413,7 @@ function proposed(inv, zone) {
|
|
|
7284
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" })}`;
|
|
7285
7414
|
}
|
|
7286
7415
|
function InvitationsPanel({ timeZone, onOpenEvent }) {
|
|
7287
|
-
const { notify } =
|
|
7416
|
+
const { notify } = chunkKPZZ5FHE_cjs.useBlocksEnvironment();
|
|
7288
7417
|
const { data: items = [], refetch } = react$1.useCalendarInvitations();
|
|
7289
7418
|
const respond = react$1.useRespondToEvent();
|
|
7290
7419
|
const decide = react$1.useDecideCounter();
|
|
@@ -7471,7 +7600,7 @@ function PublishCalendarDialog({
|
|
|
7471
7600
|
onClose,
|
|
7472
7601
|
onConnectAccount
|
|
7473
7602
|
}) {
|
|
7474
|
-
const { notify } =
|
|
7603
|
+
const { notify } = chunkKPZZ5FHE_cjs.useBlocksEnvironment();
|
|
7475
7604
|
const { data: accounts = [], isLoading } = react$1.useCalendarAccounts(!!calendarId);
|
|
7476
7605
|
const publish = react$1.usePublishCalendar();
|
|
7477
7606
|
const [accountId, setAccountId] = react.useState("");
|
|
@@ -7548,7 +7677,7 @@ function ShareCalendarDialog({
|
|
|
7548
7677
|
calendarName,
|
|
7549
7678
|
onClose
|
|
7550
7679
|
}) {
|
|
7551
|
-
const { notify } =
|
|
7680
|
+
const { notify } = chunkKPZZ5FHE_cjs.useBlocksEnvironment();
|
|
7552
7681
|
const { data: shares = [], isLoading } = react$1.useCalendarShares(calendarId);
|
|
7553
7682
|
const share = react$1.useShareCalendar();
|
|
7554
7683
|
const unshare = react$1.useUnshareCalendar();
|
|
@@ -7852,7 +7981,7 @@ function ConnectedCalendar({
|
|
|
7852
7981
|
onOpenOverlay,
|
|
7853
7982
|
syncAccountsOnOpen = true
|
|
7854
7983
|
} = {}) {
|
|
7855
|
-
const { confirm, notify, openConversation } =
|
|
7984
|
+
const { confirm, notify, openConversation } = chunkKPZZ5FHE_cjs.useBlocksEnvironment();
|
|
7856
7985
|
const arbi = react$1.useArbi();
|
|
7857
7986
|
const fetchEvent = react$1.useFetchCalendarEvent();
|
|
7858
7987
|
const notifyError = (prefix, err) => notify(`${prefix}: ${errorText3(err)}`, "error");
|
|
@@ -8605,7 +8734,7 @@ function ConnectedMailInviteCard({
|
|
|
8605
8734
|
isOnline,
|
|
8606
8735
|
onOpenEvent
|
|
8607
8736
|
}) {
|
|
8608
|
-
const { notify } =
|
|
8737
|
+
const { notify } = chunkKPZZ5FHE_cjs.useBlocksEnvironment();
|
|
8609
8738
|
const part = attachments.find(chunk6YTHQ73P_cjs.isCalendarAttachment);
|
|
8610
8739
|
const { data: settings } = react$1.useCalendarSettings(!!part);
|
|
8611
8740
|
const zone = chunkBIXHB4LV_cjs.safeZone(settings?.time_zone, chunkBIXHB4LV_cjs.detectTimeZone());
|
|
@@ -8736,7 +8865,7 @@ function Shell({ children, wide = false }) {
|
|
|
8736
8865
|
) });
|
|
8737
8866
|
}
|
|
8738
8867
|
function CancelView({ slug, token }) {
|
|
8739
|
-
const { apiBaseUrl } =
|
|
8868
|
+
const { apiBaseUrl } = chunkKPZZ5FHE_cjs.useBlocksEnvironment().runtimeConfig;
|
|
8740
8869
|
const [state, setState] = react.useState("idle");
|
|
8741
8870
|
const [error, setError] = react.useState(null);
|
|
8742
8871
|
return /* @__PURE__ */ jsxRuntime.jsx(Shell, { children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid gap-4", "data-testid": "book-cancel", children: [
|
|
@@ -8814,7 +8943,7 @@ function Confirmation({
|
|
|
8814
8943
|
] }) });
|
|
8815
8944
|
}
|
|
8816
8945
|
function ConnectedPublicBooking({ slug, cancelToken }) {
|
|
8817
|
-
const { apiBaseUrl } =
|
|
8946
|
+
const { apiBaseUrl } = chunkKPZZ5FHE_cjs.useBlocksEnvironment().runtimeConfig;
|
|
8818
8947
|
const [zone, setZone] = react.useState(chunkBIXHB4LV_cjs.detectTimeZone);
|
|
8819
8948
|
const [duration, setDuration] = react.useState(void 0);
|
|
8820
8949
|
const [offset, setOffset] = react.useState(0);
|
|
@@ -9078,7 +9207,7 @@ function ActiveChat({ agentId, workspaceId }) {
|
|
|
9078
9207
|
activeArtifact: () => chunkJKB7WT7L_cjs.takeOpenDocumentForTurn({ workspaceId })
|
|
9079
9208
|
});
|
|
9080
9209
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
9081
|
-
|
|
9210
|
+
chunk5A2QQAF5_cjs.ChatPage,
|
|
9082
9211
|
{
|
|
9083
9212
|
chat: { ...chat, assistantMode: void 0, setAssistantMode: void 0 },
|
|
9084
9213
|
documentsRequired: false,
|
|
@@ -9140,35 +9269,75 @@ function ConnectedAgentChatPanel({
|
|
|
9140
9269
|
|
|
9141
9270
|
Object.defineProperty(exports, "ConnectedAssistantDock", {
|
|
9142
9271
|
enumerable: true,
|
|
9143
|
-
get: function () { return
|
|
9272
|
+
get: function () { return chunkODRHHWHY_cjs.ConnectedAssistantDock; }
|
|
9144
9273
|
});
|
|
9145
9274
|
Object.defineProperty(exports, "redlineStats", {
|
|
9146
9275
|
enumerable: true,
|
|
9147
|
-
get: function () { return
|
|
9276
|
+
get: function () { return chunkODRHHWHY_cjs.redlineStats; }
|
|
9148
9277
|
});
|
|
9149
9278
|
Object.defineProperty(exports, "textToArtifact", {
|
|
9150
9279
|
enumerable: true,
|
|
9151
|
-
get: function () { return
|
|
9280
|
+
get: function () { return chunkODRHHWHY_cjs.textToArtifact; }
|
|
9152
9281
|
});
|
|
9153
9282
|
Object.defineProperty(exports, "toRedlineMarkdown", {
|
|
9154
9283
|
enumerable: true,
|
|
9155
|
-
get: function () { return
|
|
9284
|
+
get: function () { return chunkODRHHWHY_cjs.toRedlineMarkdown; }
|
|
9156
9285
|
});
|
|
9157
9286
|
Object.defineProperty(exports, "useConnectedAiTask", {
|
|
9158
9287
|
enumerable: true,
|
|
9159
|
-
get: function () { return
|
|
9288
|
+
get: function () { return chunkODRHHWHY_cjs.useConnectedAiTask; }
|
|
9160
9289
|
});
|
|
9161
9290
|
Object.defineProperty(exports, "useConnectedChat", {
|
|
9162
9291
|
enumerable: true,
|
|
9163
|
-
get: function () { return
|
|
9292
|
+
get: function () { return chunkODRHHWHY_cjs.useConnectedChat; }
|
|
9164
9293
|
});
|
|
9165
9294
|
Object.defineProperty(exports, "useSemanticSearch", {
|
|
9166
9295
|
enumerable: true,
|
|
9167
|
-
get: function () { return
|
|
9296
|
+
get: function () { return chunkODRHHWHY_cjs.useSemanticSearch; }
|
|
9168
9297
|
});
|
|
9169
9298
|
Object.defineProperty(exports, "useWorkspaceDocs", {
|
|
9170
9299
|
enumerable: true,
|
|
9171
|
-
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; }
|
|
9172
9341
|
});
|
|
9173
9342
|
Object.defineProperty(exports, "ConnectedWorkspaceDataProvider", {
|
|
9174
9343
|
enumerable: true,
|
|
@@ -9207,6 +9376,7 @@ Object.defineProperty(exports, "useConnection", {
|
|
|
9207
9376
|
get: function () { return chunkGFNELPDP_cjs.useConnection; }
|
|
9208
9377
|
});
|
|
9209
9378
|
exports.ArbiAppProvider = ArbiAppProvider;
|
|
9379
|
+
exports.ConnectedAccountSettings = ConnectedAccountSettings;
|
|
9210
9380
|
exports.ConnectedAgentChatPanel = ConnectedAgentChatPanel;
|
|
9211
9381
|
exports.ConnectedAgentCreator = ConnectedAgentCreator;
|
|
9212
9382
|
exports.ConnectedCalendar = ConnectedCalendar;
|
|
@@ -9217,16 +9387,20 @@ exports.ConnectedMailAccounts = ConnectedMailAccounts;
|
|
|
9217
9387
|
exports.ConnectedMailComposer = ConnectedMailComposer;
|
|
9218
9388
|
exports.ConnectedMailInviteCard = ConnectedMailInviteCard;
|
|
9219
9389
|
exports.ConnectedMailMessage = ConnectedMailMessage;
|
|
9390
|
+
exports.ConnectedMailSettings = ConnectedMailSettings;
|
|
9220
9391
|
exports.ConnectedMailSetup = ConnectedMailSetup;
|
|
9221
9392
|
exports.ConnectedMailbox = ConnectedMailbox;
|
|
9222
9393
|
exports.ConnectedNotificationCenter = ConnectedNotificationCenter;
|
|
9223
9394
|
exports.ConnectedNotificationPreferences = ConnectedNotificationPreferences;
|
|
9224
9395
|
exports.ConnectedPasswordChangeDialog = ConnectedPasswordChangeDialog;
|
|
9396
|
+
exports.ConnectedPremiumModels = ConnectedPremiumModels;
|
|
9397
|
+
exports.ConnectedPrivacySettings = ConnectedPrivacySettings;
|
|
9225
9398
|
exports.ConnectedProfileCard = ConnectedProfileCard;
|
|
9226
9399
|
exports.ConnectedPublicBooking = ConnectedPublicBooking;
|
|
9227
9400
|
exports.ConnectedRequireVerified = ConnectedRequireVerified;
|
|
9228
9401
|
exports.ConnectedSecuritySection = ConnectedSecuritySection;
|
|
9229
9402
|
exports.ConnectedSessionsRow = ConnectedSessionsRow;
|
|
9403
|
+
exports.ConnectedSettingsPage = ConnectedSettingsPage;
|
|
9230
9404
|
exports.ConnectedSkillUpload = ConnectedSkillUpload;
|
|
9231
9405
|
exports.ConnectedSkillsLibrary = ConnectedSkillsLibrary;
|
|
9232
9406
|
exports.ConnectedTagTable = ConnectedTagTable;
|
|
@@ -9234,37 +9408,37 @@ exports.ConnectedTaskAccessRequest = ConnectedTaskAccessRequest;
|
|
|
9234
9408
|
exports.ConnectedTaskActivityDialog = ConnectedTaskActivityDialog;
|
|
9235
9409
|
exports.ConnectedThreadFollow = ConnectedThreadFollow;
|
|
9236
9410
|
exports.ConnectedUpcomingEvents = ConnectedUpcomingEvents;
|
|
9237
|
-
exports.ConnectedWorkflowDocumentsField = ConnectedWorkflowDocumentsField;
|
|
9238
9411
|
exports.ConnectedWorkflowHistory = ConnectedWorkflowHistory;
|
|
9239
|
-
exports.ConnectedWorkflowLauncher = ConnectedWorkflowLauncher;
|
|
9240
9412
|
exports.ConnectedWorkflowRunner = ConnectedWorkflowRunner;
|
|
9241
|
-
exports.ConnectedWorkflowsTable = ConnectedWorkflowsTable;
|
|
9242
9413
|
exports.ConnectedWorkspaceActivity = ConnectedWorkspaceActivity;
|
|
9243
9414
|
exports.ConnectedWorkspaceNotificationMenu = ConnectedWorkspaceNotificationMenu;
|
|
9244
9415
|
exports.DEFAULT_CONNECTED_SKILL_UPLOAD_LABELS = DEFAULT_CONNECTED_SKILL_UPLOAD_LABELS;
|
|
9245
|
-
exports.DEFAULT_CONNECTED_WORKFLOWS_TABLE_LABELS = DEFAULT_CONNECTED_WORKFLOWS_TABLE_LABELS;
|
|
9246
9416
|
exports.DEFAULT_CONNECTED_WORKFLOW_RUNNER_LABELS = DEFAULT_CONNECTED_WORKFLOW_RUNNER_LABELS;
|
|
9417
|
+
exports.DEFAULT_SETTINGS_SECTIONS = DEFAULT_SETTINGS_SECTIONS;
|
|
9247
9418
|
exports.NotificationCenter = NotificationCenter;
|
|
9248
9419
|
exports.NotificationEvent = NotificationEvent;
|
|
9420
|
+
exports.SETTINGS_SECTION_IDS = SETTINGS_SECTION_IDS;
|
|
9421
|
+
exports.SessionStatusIcon = SessionStatusIcon;
|
|
9249
9422
|
exports.StreamedArtifact = StreamedArtifact;
|
|
9250
9423
|
exports.WorkflowRunThread = WorkflowRunThread;
|
|
9424
|
+
exports.accountSettingsSection = accountSettingsSection;
|
|
9251
9425
|
exports.bookingCancelLink = bookingCancelLink;
|
|
9252
9426
|
exports.buildNotificationCenterItems = buildNotificationCenterItems;
|
|
9427
|
+
exports.chatSettingsSection = chatSettingsSection;
|
|
9253
9428
|
exports.countNotificationTypes = countNotificationTypes;
|
|
9254
9429
|
exports.defaultUnmetPasswordRequirement = defaultUnmetPasswordRequirement;
|
|
9255
9430
|
exports.filterNotificationCenterItems = filterNotificationCenterItems;
|
|
9431
|
+
exports.mailSettingsSection = mailSettingsSection;
|
|
9256
9432
|
exports.openMeetingLink = openMeetingLink;
|
|
9433
|
+
exports.privacySettingsSection = privacySettingsSection;
|
|
9434
|
+
exports.renderSessionStatusIcon = renderSessionStatusIcon;
|
|
9257
9435
|
exports.requestCalendarComposer = requestCalendarComposer;
|
|
9258
9436
|
exports.requestCalendarEvent = requestCalendarEvent;
|
|
9259
9437
|
exports.resolveMailbox = resolveMailbox;
|
|
9260
|
-
exports.toWorkflowFieldDocument = toWorkflowFieldDocument;
|
|
9261
9438
|
exports.useCalendarViewStore = useCalendarViewStore;
|
|
9262
|
-
exports.useConnectedAgentOptions = useConnectedAgentOptions;
|
|
9263
9439
|
exports.useConnectedDocxNotifications = useConnectedDocxNotifications;
|
|
9264
9440
|
exports.useConnectedShellWorkspaces = useConnectedShellWorkspaces;
|
|
9265
9441
|
exports.useConnectedWorkNotifications = useConnectedWorkNotifications;
|
|
9266
|
-
exports.useConnectedWorkflowScopeSource = useConnectedWorkflowScopeSource;
|
|
9267
|
-
exports.useConnectedWorkspaceRole = useConnectedWorkspaceRole;
|
|
9268
9442
|
exports.workflowRunView = workflowRunView;
|
|
9269
9443
|
//# sourceMappingURL=index.cjs.map
|
|
9270
9444
|
//# sourceMappingURL=index.cjs.map
|