@arbidocs/blocks 0.5.17 → 0.5.18
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/{ConnectedNativeDocxComparison-BC5WSJEU.js → ConnectedNativeDocxComparison-FZNRXKCH.js} +6 -6
- package/dist/{ConnectedNativeDocxComparison-BC5WSJEU.js.map → ConnectedNativeDocxComparison-FZNRXKCH.js.map} +1 -1
- package/dist/{ConnectedNativeDocxComparison-O2COCSHL.cjs → ConnectedNativeDocxComparison-KEDY65GN.cjs} +7 -7
- package/dist/{ConnectedNativeDocxComparison-O2COCSHL.cjs.map → ConnectedNativeDocxComparison-KEDY65GN.cjs.map} +1 -1
- package/dist/{ConnectedNativeDocxEditor-JGIHX4KM.js → ConnectedNativeDocxEditor-E3ZGVJZJ.js} +5 -5
- package/dist/{ConnectedNativeDocxEditor-JGIHX4KM.js.map → ConnectedNativeDocxEditor-E3ZGVJZJ.js.map} +1 -1
- package/dist/{ConnectedNativeDocxEditor-OLKFI6ER.cjs → ConnectedNativeDocxEditor-WDIX32SH.cjs} +7 -7
- package/dist/{ConnectedNativeDocxEditor-OLKFI6ER.cjs.map → ConnectedNativeDocxEditor-WDIX32SH.cjs.map} +1 -1
- package/dist/{ConnectedStreamedWordArtifact-FCHEZYHG.cjs → ConnectedStreamedWordArtifact-AALQYJ5H.cjs} +7 -7
- package/dist/ConnectedStreamedWordArtifact-AALQYJ5H.cjs.map +1 -0
- package/dist/{ConnectedStreamedWordArtifact-QXVGVP22.js → ConnectedStreamedWordArtifact-HTUZ2KK2.js} +6 -6
- package/dist/{ConnectedStreamedWordArtifact-QXVGVP22.js.map → ConnectedStreamedWordArtifact-HTUZ2KK2.js.map} +1 -1
- package/dist/{WorkspaceTableView-V4ZNTVS4.js → WorkspaceTableView-4VMLQOQ5.js} +3 -3
- package/dist/{WorkspaceTableView-V4ZNTVS4.js.map → WorkspaceTableView-4VMLQOQ5.js.map} +1 -1
- package/dist/{WorkspaceTableView-VCIRIQRL.cjs → WorkspaceTableView-S2ZHZ64L.cjs} +4 -4
- package/dist/{WorkspaceTableView-VCIRIQRL.cjs.map → WorkspaceTableView-S2ZHZ64L.cjs.map} +1 -1
- package/dist/agents/index.cjs +326 -326
- package/dist/agents/index.js +4 -4
- package/dist/{chunk-N5YEF3LC.js → chunk-7F5Z4K5W.js} +18 -20
- package/dist/chunk-7F5Z4K5W.js.map +1 -0
- package/dist/{chunk-PYIDGKZW.cjs → chunk-APZFUKR4.cjs} +51 -51
- package/dist/{chunk-PYIDGKZW.cjs.map → chunk-APZFUKR4.cjs.map} +1 -1
- package/dist/{chunk-KUDS6DY4.js → chunk-CTCF4I22.js} +3 -3
- package/dist/{chunk-KUDS6DY4.js.map → chunk-CTCF4I22.js.map} +1 -1
- package/dist/{chunk-NZUPFIS7.js → chunk-E3H7Q3ZO.js} +3 -3
- package/dist/{chunk-NZUPFIS7.js.map → chunk-E3H7Q3ZO.js.map} +1 -1
- package/dist/{chunk-I5UQUMUL.cjs → chunk-G6GUMZOZ.cjs} +4 -4
- package/dist/{chunk-I5UQUMUL.cjs.map → chunk-G6GUMZOZ.cjs.map} +1 -1
- package/dist/{chunk-IFE4MZXD.js → chunk-H7L43DIE.js} +3 -3
- package/dist/{chunk-IFE4MZXD.js.map → chunk-H7L43DIE.js.map} +1 -1
- package/dist/{chunk-NXOPNJ3Y.cjs → chunk-HVEDOBLY.cjs} +4 -4
- package/dist/{chunk-NXOPNJ3Y.cjs.map → chunk-HVEDOBLY.cjs.map} +1 -1
- package/dist/{chunk-G6NRTQ25.cjs → chunk-LFVD3CS5.cjs} +5 -5
- package/dist/{chunk-G6NRTQ25.cjs.map → chunk-LFVD3CS5.cjs.map} +1 -1
- package/dist/{chunk-C2CWWEHO.cjs → chunk-LKK52DEY.cjs} +18 -20
- package/dist/chunk-LKK52DEY.cjs.map +1 -0
- package/dist/{chunk-LDB77NUS.cjs → chunk-LNLAD7XW.cjs} +4 -4
- package/dist/{chunk-LDB77NUS.cjs.map → chunk-LNLAD7XW.cjs.map} +1 -1
- package/dist/{chunk-7TAWJXSR.js → chunk-M3AADQ4Y.js} +4 -4
- package/dist/{chunk-7TAWJXSR.js.map → chunk-M3AADQ4Y.js.map} +1 -1
- package/dist/{chunk-VIUWP2FC.js → chunk-MYJJ3RPH.js} +3 -3
- package/dist/{chunk-VIUWP2FC.js.map → chunk-MYJJ3RPH.js.map} +1 -1
- package/dist/{chunk-B5SEHTMC.cjs → chunk-P4NS4LV7.cjs} +4 -4
- package/dist/{chunk-B5SEHTMC.cjs.map → chunk-P4NS4LV7.cjs.map} +1 -1
- package/dist/{chunk-YN6ND3LW.js → chunk-PJYE6AJS.js} +5 -5
- package/dist/{chunk-YN6ND3LW.js.map → chunk-PJYE6AJS.js.map} +1 -1
- package/dist/{chunk-XGCXHDZT.cjs → chunk-RZ3EBN7G.cjs} +8 -8
- package/dist/{chunk-XGCXHDZT.cjs.map → chunk-RZ3EBN7G.cjs.map} +1 -1
- package/dist/{chunk-E65JWVDL.js → chunk-T5ZFFHC6.js} +3 -3
- package/dist/{chunk-E65JWVDL.js.map → chunk-T5ZFFHC6.js.map} +1 -1
- package/dist/{chunk-4R5OHS2D.js → chunk-TXLMCQOH.js} +3 -3
- package/dist/{chunk-4R5OHS2D.js.map → chunk-TXLMCQOH.js.map} +1 -1
- package/dist/{chunk-HPUEYVG3.cjs → chunk-UR6DWL4L.cjs} +11 -11
- package/dist/{chunk-HPUEYVG3.cjs.map → chunk-UR6DWL4L.cjs.map} +1 -1
- package/dist/{chunk-KB5RAHUZ.js → chunk-VNWWK44S.js} +3 -3
- package/dist/{chunk-KB5RAHUZ.js.map → chunk-VNWWK44S.js.map} +1 -1
- package/dist/{chunk-HJQLVCIK.cjs → chunk-WUG24K7P.cjs} +4 -4
- package/dist/{chunk-HJQLVCIK.cjs.map → chunk-WUG24K7P.cjs.map} +1 -1
- package/dist/collaboration/index.cjs +68 -68
- package/dist/collaboration/index.js +2 -2
- package/dist/connect/docx.cjs +9 -9
- package/dist/connect/docx.js +5 -5
- package/dist/connect/index.cjs +478 -479
- package/dist/connect/index.cjs.map +1 -1
- package/dist/connect/index.js +10 -11
- package/dist/connect/index.js.map +1 -1
- package/dist/connect/viewer.cjs +46 -46
- package/dist/connect/viewer.js +8 -8
- package/dist/databases/index.cjs +2 -2
- package/dist/databases/index.js +1 -1
- package/dist/facts/index.cjs +2 -2
- package/dist/facts/index.js +1 -1
- package/dist/files/index.cjs +223 -223
- package/dist/files/index.js +2 -2
- package/dist/index.cjs +448 -448
- package/dist/index.js +6 -6
- package/dist/workflow-canvas/index.cjs +17 -17
- package/dist/workflow-canvas/index.js +4 -4
- package/node_modules/@arbidocs/coedit/package.json +1 -1
- package/package.json +5 -5
- package/dist/ConnectedStreamedWordArtifact-FCHEZYHG.cjs.map +0 -1
- package/dist/chunk-C2CWWEHO.cjs.map +0 -1
- package/dist/chunk-N5YEF3LC.js.map +0 -1
package/dist/connect/index.cjs
CHANGED
|
@@ -10,9 +10,9 @@ var chunkOU3RGQFX_cjs = require('../chunk-OU3RGQFX.cjs');
|
|
|
10
10
|
require('../chunk-REH7PX3N.cjs');
|
|
11
11
|
var chunk7IQDS246_cjs = require('../chunk-7IQDS246.cjs');
|
|
12
12
|
var chunkSZGUU2TS_cjs = require('../chunk-SZGUU2TS.cjs');
|
|
13
|
-
var
|
|
13
|
+
var chunkRZ3EBN7G_cjs = require('../chunk-RZ3EBN7G.cjs');
|
|
14
14
|
var chunk6MHGFCIW_cjs = require('../chunk-6MHGFCIW.cjs');
|
|
15
|
-
var
|
|
15
|
+
var chunkP4NS4LV7_cjs = require('../chunk-P4NS4LV7.cjs');
|
|
16
16
|
var chunk2WLXQGWC_cjs = require('../chunk-2WLXQGWC.cjs');
|
|
17
17
|
var chunk223D4727_cjs = require('../chunk-223D4727.cjs');
|
|
18
18
|
var chunk2XLVE2XD_cjs = require('../chunk-2XLVE2XD.cjs');
|
|
@@ -22,7 +22,7 @@ require('../chunk-464YPRAE.cjs');
|
|
|
22
22
|
require('../chunk-4UGVMOTK.cjs');
|
|
23
23
|
var chunk5FYU7ZIU_cjs = require('../chunk-5FYU7ZIU.cjs');
|
|
24
24
|
require('../chunk-RAYCOBF7.cjs');
|
|
25
|
-
var
|
|
25
|
+
var chunkLFVD3CS5_cjs = require('../chunk-LFVD3CS5.cjs');
|
|
26
26
|
var chunkXAJIKT6Y_cjs = require('../chunk-XAJIKT6Y.cjs');
|
|
27
27
|
var chunkGOWXP5KT_cjs = require('../chunk-GOWXP5KT.cjs');
|
|
28
28
|
var chunkJYYJGYUP_cjs = require('../chunk-JYYJGYUP.cjs');
|
|
@@ -32,7 +32,7 @@ require('../chunk-ZU2B2RZK.cjs');
|
|
|
32
32
|
var chunkVPPX5XUF_cjs = require('../chunk-VPPX5XUF.cjs');
|
|
33
33
|
require('../chunk-PCB2BPN3.cjs');
|
|
34
34
|
require('../chunk-NWNVWO6L.cjs');
|
|
35
|
-
var
|
|
35
|
+
var chunkWUG24K7P_cjs = require('../chunk-WUG24K7P.cjs');
|
|
36
36
|
require('../chunk-7G2LJMUG.cjs');
|
|
37
37
|
var chunkTM2D4XT4_cjs = require('../chunk-TM2D4XT4.cjs');
|
|
38
38
|
var chunk5Y6V7F6W_cjs = require('../chunk-5Y6V7F6W.cjs');
|
|
@@ -42,9 +42,10 @@ require('../chunk-VLCY46K6.cjs');
|
|
|
42
42
|
require('../chunk-D54JXTPG.cjs');
|
|
43
43
|
var chunkJIOHDVWH_cjs = require('../chunk-JIOHDVWH.cjs');
|
|
44
44
|
var chunkRC25WMVB_cjs = require('../chunk-RC25WMVB.cjs');
|
|
45
|
-
var
|
|
45
|
+
var chunkQVBZESYQ_cjs = require('../chunk-QVBZESYQ.cjs');
|
|
46
|
+
var chunkUR6DWL4L_cjs = require('../chunk-UR6DWL4L.cjs');
|
|
46
47
|
var chunkRFIBUWLF_cjs = require('../chunk-RFIBUWLF.cjs');
|
|
47
|
-
var
|
|
48
|
+
var chunkG6GUMZOZ_cjs = require('../chunk-G6GUMZOZ.cjs');
|
|
48
49
|
var chunkF4UYC2M2_cjs = require('../chunk-F4UYC2M2.cjs');
|
|
49
50
|
var chunkAQPZ4QMV_cjs = require('../chunk-AQPZ4QMV.cjs');
|
|
50
51
|
require('../chunk-SIB6C7P7.cjs');
|
|
@@ -53,8 +54,7 @@ var chunkV4ISCZJ7_cjs = require('../chunk-V4ISCZJ7.cjs');
|
|
|
53
54
|
require('../chunk-AHDJXIUB.cjs');
|
|
54
55
|
var chunk2EI7NCUA_cjs = require('../chunk-2EI7NCUA.cjs');
|
|
55
56
|
require('../chunk-3L5MXUBZ.cjs');
|
|
56
|
-
var
|
|
57
|
-
var chunkQVBZESYQ_cjs = require('../chunk-QVBZESYQ.cjs');
|
|
57
|
+
var chunkLKK52DEY_cjs = require('../chunk-LKK52DEY.cjs');
|
|
58
58
|
var chunkEWRRV37Z_cjs = require('../chunk-EWRRV37Z.cjs');
|
|
59
59
|
var chunkCG757WKY_cjs = require('../chunk-CG757WKY.cjs');
|
|
60
60
|
var chunkW3PSIIMN_cjs = require('../chunk-W3PSIIMN.cjs');
|
|
@@ -187,7 +187,7 @@ function ConnectedWorkspaceActivity({
|
|
|
187
187
|
[feed.data]
|
|
188
188
|
);
|
|
189
189
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
190
|
-
|
|
190
|
+
chunkLFVD3CS5_cjs.WorkspaceActivityList,
|
|
191
191
|
{
|
|
192
192
|
...listProps,
|
|
193
193
|
items,
|
|
@@ -629,7 +629,7 @@ function NotificationCenter({
|
|
|
629
629
|
) }),
|
|
630
630
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { "data-testid": "notifications-list", className: "flex flex-1 flex-col min-h-0 px-3 pt-1", children: [
|
|
631
631
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex-1 min-h-0", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
632
|
-
|
|
632
|
+
chunkLKK52DEY_cjs.GridView,
|
|
633
633
|
{
|
|
634
634
|
items: filtered,
|
|
635
635
|
columnDefs,
|
|
@@ -655,7 +655,6 @@ function NotificationCenter({
|
|
|
655
655
|
}
|
|
656
656
|
},
|
|
657
657
|
suppressMenuHide: false,
|
|
658
|
-
headerHeight: 40,
|
|
659
658
|
rowHeight: 48,
|
|
660
659
|
animateRows: true,
|
|
661
660
|
suppressCellFocus: true,
|
|
@@ -865,7 +864,7 @@ function ConnectedWorkspaceNotificationMenu({
|
|
|
865
864
|
}, [error, notify17]);
|
|
866
865
|
if (!workspaceId) return null;
|
|
867
866
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
868
|
-
|
|
867
|
+
chunkLFVD3CS5_cjs.WorkspaceNotificationMenu,
|
|
869
868
|
{
|
|
870
869
|
...menuProps,
|
|
871
870
|
level,
|
|
@@ -884,7 +883,7 @@ function ConnectedThreadFollow({
|
|
|
884
883
|
enabled: live
|
|
885
884
|
});
|
|
886
885
|
if (!conversationId) return null;
|
|
887
|
-
const Control = as === "menu-item" ?
|
|
886
|
+
const Control = as === "menu-item" ? chunkLFVD3CS5_cjs.ThreadFollowMenuItem : chunkLFVD3CS5_cjs.ThreadFollowButton;
|
|
888
887
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
889
888
|
Control,
|
|
890
889
|
{
|
|
@@ -957,7 +956,7 @@ function ConnectedSkillUpload({ onDone, labels, className }) {
|
|
|
957
956
|
onChange: (e) => {
|
|
958
957
|
const file = e.target.files?.[0];
|
|
959
958
|
e.target.value = "";
|
|
960
|
-
if (file) void add(() =>
|
|
959
|
+
if (file) void add(() => chunkUR6DWL4L_cjs.importSkillFile(file));
|
|
961
960
|
}
|
|
962
961
|
}
|
|
963
962
|
),
|
|
@@ -982,7 +981,7 @@ function ConnectedSkillUpload({ onDone, labels, className }) {
|
|
|
982
981
|
className: "space-y-2",
|
|
983
982
|
onSubmit: (e) => {
|
|
984
983
|
e.preventDefault();
|
|
985
|
-
if (url.trim()) void add(() =>
|
|
984
|
+
if (url.trim()) void add(() => chunkUR6DWL4L_cjs.importSkillFromUrl(url));
|
|
986
985
|
},
|
|
987
986
|
children: [
|
|
988
987
|
/* @__PURE__ */ jsxRuntime.jsx(ui.Label, { htmlFor: "skills-add-url", children: l.fromLink }),
|
|
@@ -1045,9 +1044,9 @@ function ConnectedSkillsLibrary({
|
|
|
1045
1044
|
const [type, setType] = React7.useState("all");
|
|
1046
1045
|
const [view, setView] = React7.useState("gallery");
|
|
1047
1046
|
const [isBusy, setIsBusy] = React7.useState(false);
|
|
1048
|
-
const all = React7.useMemo(() =>
|
|
1047
|
+
const all = React7.useMemo(() => chunkUR6DWL4L_cjs.buildLibrarySkills(builtins, listings ?? []), [builtins, listings]);
|
|
1049
1048
|
const shown = React7.useMemo(
|
|
1050
|
-
() =>
|
|
1049
|
+
() => chunkUR6DWL4L_cjs.filterLibrarySkills(all, { query, source, type }),
|
|
1051
1050
|
[all, query, source, type]
|
|
1052
1051
|
);
|
|
1053
1052
|
const current = all.find((s) => s.slug === selected) ?? null;
|
|
@@ -1058,21 +1057,21 @@ function ConnectedSkillsLibrary({
|
|
|
1058
1057
|
const count2 = (s) => all.filter((x) => x.source === s).length;
|
|
1059
1058
|
const sourceOptions = [
|
|
1060
1059
|
{ id: "all", label: "All", count: all.length },
|
|
1061
|
-
{ id: "builtin", label:
|
|
1062
|
-
{ id: "mine", label:
|
|
1063
|
-
{ id: "shared", label:
|
|
1060
|
+
{ id: "builtin", label: chunkUR6DWL4L_cjs.SKILL_SOURCE_LABELS.builtin, count: count2("builtin") },
|
|
1061
|
+
{ id: "mine", label: chunkUR6DWL4L_cjs.SKILL_SOURCE_LABELS.mine, count: count2("mine") },
|
|
1062
|
+
{ id: "shared", label: chunkUR6DWL4L_cjs.SKILL_SOURCE_LABELS.shared, count: count2("shared") }
|
|
1064
1063
|
];
|
|
1065
1064
|
const types = [...new Set(all.map((s) => s.type))];
|
|
1066
1065
|
const typeOptions = [
|
|
1067
1066
|
{ id: "all", label: "Any kind" },
|
|
1068
|
-
...types.map((t) => ({ id: t, label:
|
|
1067
|
+
...types.map((t) => ({ id: t, label: chunkUR6DWL4L_cjs.SKILL_TYPE_LABELS[t] ?? t }))
|
|
1069
1068
|
];
|
|
1070
1069
|
const pick = (slug) => {
|
|
1071
1070
|
setSelected(slug);
|
|
1072
1071
|
setMode("detail");
|
|
1073
1072
|
};
|
|
1074
1073
|
const markdownOf = async (skill) => {
|
|
1075
|
-
if (!skill.docExtId) return
|
|
1074
|
+
if (!skill.docExtId) return chunkUR6DWL4L_cjs.workflowToSkillMarkdown(skill.workflow);
|
|
1076
1075
|
const response = await arbi.documents.download(skill.docExtId);
|
|
1077
1076
|
if (!response.ok) throw new Error(`Could not read the skill (${response.status})`);
|
|
1078
1077
|
return response.text();
|
|
@@ -1136,7 +1135,7 @@ function ConnectedSkillsLibrary({
|
|
|
1136
1135
|
try {
|
|
1137
1136
|
documentTools.downloadBlob(
|
|
1138
1137
|
new Blob([await markdownOf(skill)], { type: "text/markdown" }),
|
|
1139
|
-
|
|
1138
|
+
chunkUR6DWL4L_cjs.SKILL_MAIN_FILENAME
|
|
1140
1139
|
);
|
|
1141
1140
|
} catch (error) {
|
|
1142
1141
|
notify17(errorText(error, "Could not export the skill"), "error");
|
|
@@ -1177,10 +1176,10 @@ function ConnectedSkillsLibrary({
|
|
|
1177
1176
|
}
|
|
1178
1177
|
)
|
|
1179
1178
|
] }),
|
|
1180
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1179
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkUR6DWL4L_cjs.SkillViewToggle, { value: view, onChange: setView })
|
|
1181
1180
|
] }),
|
|
1182
1181
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1183
|
-
|
|
1182
|
+
chunkUR6DWL4L_cjs.SkillFilterChips,
|
|
1184
1183
|
{
|
|
1185
1184
|
label: "Show",
|
|
1186
1185
|
value: source,
|
|
@@ -1189,7 +1188,7 @@ function ConnectedSkillsLibrary({
|
|
|
1189
1188
|
}
|
|
1190
1189
|
),
|
|
1191
1190
|
types.length > 1 && /* @__PURE__ */ jsxRuntime.jsx(
|
|
1192
|
-
|
|
1191
|
+
chunkUR6DWL4L_cjs.SkillFilterChips,
|
|
1193
1192
|
{
|
|
1194
1193
|
label: "Kind",
|
|
1195
1194
|
value: type,
|
|
@@ -1236,12 +1235,12 @@ function ConnectedSkillsLibrary({
|
|
|
1236
1235
|
view === "gallery" ? "grid grid-cols-[repeat(auto-fill,minmax(9.5rem,1fr))]" : "flex flex-col"
|
|
1237
1236
|
),
|
|
1238
1237
|
children: shown.map((skill) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
1239
|
-
|
|
1238
|
+
chunkUR6DWL4L_cjs.SkillTile,
|
|
1240
1239
|
{
|
|
1241
1240
|
name: skill.title,
|
|
1242
1241
|
testId: `skill-tile-${skill.slug}`,
|
|
1243
1242
|
description: skill.description,
|
|
1244
|
-
sourceLabel: skill.isShared ? `${
|
|
1243
|
+
sourceLabel: skill.isShared ? `${chunkUR6DWL4L_cjs.SKILL_SOURCE_LABELS.mine}, shared` : chunkUR6DWL4L_cjs.SKILL_SOURCE_LABELS[skill.source],
|
|
1245
1244
|
type: skill.type,
|
|
1246
1245
|
icon,
|
|
1247
1246
|
layout: view,
|
|
@@ -1276,7 +1275,7 @@ function ConnectedSkillsLibrary({
|
|
|
1276
1275
|
}
|
|
1277
1276
|
),
|
|
1278
1277
|
mode === "new" && /* @__PURE__ */ jsxRuntime.jsx(
|
|
1279
|
-
|
|
1278
|
+
chunkUR6DWL4L_cjs.SkillGenerateForm,
|
|
1280
1279
|
{
|
|
1281
1280
|
icon,
|
|
1282
1281
|
onGenerate: (desc) => {
|
|
@@ -1303,11 +1302,11 @@ function ConnectedSkillsLibrary({
|
|
|
1303
1302
|
),
|
|
1304
1303
|
mode === "add" && /* @__PURE__ */ jsxRuntime.jsx(ConnectedSkillUpload, { onDone: done }),
|
|
1305
1304
|
mode === "detail" && current && /* @__PURE__ */ jsxRuntime.jsx(
|
|
1306
|
-
|
|
1305
|
+
chunkUR6DWL4L_cjs.SkillLibraryDetail,
|
|
1307
1306
|
{
|
|
1308
1307
|
skill: current,
|
|
1309
1308
|
icon,
|
|
1310
|
-
instructions: current.docExtId ? currentText ?
|
|
1309
|
+
instructions: current.docExtId ? currentText ? chunkUR6DWL4L_cjs.parseSkillFrontmatter(currentText, chunkUR6DWL4L_cjs.SKILL_MAIN_FILENAME).content : "" : current.workflow.run.kind === "prompt" ? current.workflow.run.promptTemplate : "",
|
|
1311
1310
|
isLoading: !!current.docExtId && textLoading,
|
|
1312
1311
|
actions: {
|
|
1313
1312
|
onRun: () => onRun(current.slug),
|
|
@@ -1342,7 +1341,7 @@ function SkillEditor({
|
|
|
1342
1341
|
const [seeded, setSeeded] = React7.useState(!isEditing);
|
|
1343
1342
|
const [nameError, setNameError] = React7.useState(null);
|
|
1344
1343
|
if (isEditing && !seeded && text2 !== void 0) {
|
|
1345
|
-
const parsed =
|
|
1344
|
+
const parsed = chunkUR6DWL4L_cjs.parseSkillFrontmatter(text2, chunkUR6DWL4L_cjs.SKILL_MAIN_FILENAME);
|
|
1346
1345
|
setDescription(parsed.description ?? "");
|
|
1347
1346
|
setBody(parsed.content ?? "");
|
|
1348
1347
|
setSeeded(true);
|
|
@@ -1356,15 +1355,15 @@ function SkillEditor({
|
|
|
1356
1355
|
notify17("Add a short description.", "error");
|
|
1357
1356
|
return;
|
|
1358
1357
|
}
|
|
1359
|
-
const slug =
|
|
1358
|
+
const slug = chunkUR6DWL4L_cjs.skillSlug(name);
|
|
1360
1359
|
try {
|
|
1361
|
-
await onSave(slug,
|
|
1360
|
+
await onSave(slug, chunkUR6DWL4L_cjs.serializeSkill({ name: slug, description, body }), isEditing);
|
|
1362
1361
|
} catch (err) {
|
|
1363
1362
|
notify17(errorText(err, "Could not save the skill"), "error");
|
|
1364
1363
|
}
|
|
1365
1364
|
};
|
|
1366
1365
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1367
|
-
|
|
1366
|
+
chunkUR6DWL4L_cjs.SkillEditForm,
|
|
1368
1367
|
{
|
|
1369
1368
|
name,
|
|
1370
1369
|
onNameChange: setName,
|
|
@@ -1400,9 +1399,9 @@ function ConnectedAgentCreator({
|
|
|
1400
1399
|
agent,
|
|
1401
1400
|
initialName,
|
|
1402
1401
|
onSaved,
|
|
1403
|
-
capabilities =
|
|
1404
|
-
templates =
|
|
1405
|
-
types =
|
|
1402
|
+
capabilities = chunkUR6DWL4L_cjs.DEFAULT_AGENT_CAPABILITIES,
|
|
1403
|
+
templates = chunkUR6DWL4L_cjs.DEFAULT_AGENT_TEMPLATES,
|
|
1404
|
+
types = chunkUR6DWL4L_cjs.DEFAULT_AGENT_TYPES,
|
|
1406
1405
|
canRevokeWorkspaces = false,
|
|
1407
1406
|
labels
|
|
1408
1407
|
}) {
|
|
@@ -1444,7 +1443,7 @@ function ConnectedAgentCreator({
|
|
|
1444
1443
|
const initialValues = React7.useMemo(
|
|
1445
1444
|
() => ({
|
|
1446
1445
|
name: agent?.given_name ?? initialName ?? "",
|
|
1447
|
-
persona: isEdit ?
|
|
1446
|
+
persona: isEdit ? chunkUR6DWL4L_cjs.stripPersonaPreamble(String(agents.PERSONA ?? "")) : "",
|
|
1448
1447
|
modelName: String(agents.AGENT_MODEL_NAME ?? ""),
|
|
1449
1448
|
capabilities: Object.fromEntries(capabilities.map(({ key }) => [key, Boolean(agents[key])])),
|
|
1450
1449
|
type: "builtin",
|
|
@@ -1463,7 +1462,7 @@ function ConnectedAgentCreator({
|
|
|
1463
1462
|
try {
|
|
1464
1463
|
let agentExtId = agent?.external_id ?? early?.id ?? "";
|
|
1465
1464
|
if (!agentExtId) {
|
|
1466
|
-
if (!
|
|
1465
|
+
if (!chunkUR6DWL4L_cjs.isValidAgentName(values.name)) {
|
|
1467
1466
|
notify17("Give the agent a name first.", "error");
|
|
1468
1467
|
return;
|
|
1469
1468
|
}
|
|
@@ -1499,7 +1498,7 @@ function ConnectedAgentCreator({
|
|
|
1499
1498
|
title: `agent-${name}`,
|
|
1500
1499
|
sections: {
|
|
1501
1500
|
Agents: {
|
|
1502
|
-
PERSONA:
|
|
1501
|
+
PERSONA: chunkUR6DWL4L_cjs.composePersona(name, values.persona),
|
|
1503
1502
|
...values.modelName ? { AGENT_MODEL_NAME: values.modelName } : {},
|
|
1504
1503
|
...Object.fromEntries(capabilities.map(({ key }) => [key, !!values.capabilities[key]])),
|
|
1505
1504
|
ENABLED_SKILLS: values.capabilities.SKILLS_ENABLED && skills.length ? skills : null,
|
|
@@ -1522,7 +1521,7 @@ function ConnectedAgentCreator({
|
|
|
1522
1521
|
};
|
|
1523
1522
|
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
1524
1523
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1525
|
-
|
|
1524
|
+
chunkUR6DWL4L_cjs.AgentCreator,
|
|
1526
1525
|
{
|
|
1527
1526
|
open: ready,
|
|
1528
1527
|
onOpenChange,
|
|
@@ -1538,11 +1537,11 @@ function ConnectedAgentCreator({
|
|
|
1538
1537
|
) : void 0,
|
|
1539
1538
|
revokingWorkspaceId: revokeAccess.isPending ? revokeAccess.variables?.workspaceId : void 0,
|
|
1540
1539
|
avatar: (values) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
1541
|
-
|
|
1540
|
+
chunkUR6DWL4L_cjs.AgentAvatarField,
|
|
1542
1541
|
{
|
|
1543
1542
|
picture,
|
|
1544
1543
|
isBusy: avatarBusy,
|
|
1545
|
-
canGenerate: isEdit ||
|
|
1544
|
+
canGenerate: isEdit || chunkUR6DWL4L_cjs.isValidAgentName(values.name),
|
|
1546
1545
|
onGenerate: () => handleGenerateAvatar(values)
|
|
1547
1546
|
}
|
|
1548
1547
|
),
|
|
@@ -1594,7 +1593,7 @@ function ConnectedAgentCreator({
|
|
|
1594
1593
|
/* @__PURE__ */ jsxRuntime.jsx(ui.DialogTitle, { children: "Connect your agent" }),
|
|
1595
1594
|
/* @__PURE__ */ jsxRuntime.jsx(ui.DialogDescription, { children: "This key is shown once. Run the script on the machine that will host the agent." })
|
|
1596
1595
|
] }),
|
|
1597
|
-
connect && /* @__PURE__ */ jsxRuntime.jsx(
|
|
1596
|
+
connect && /* @__PURE__ */ jsxRuntime.jsx(chunkUR6DWL4L_cjs.AgentConnectInstructions, { email: connect.email, signingKey: connect.signingKey })
|
|
1598
1597
|
]
|
|
1599
1598
|
}
|
|
1600
1599
|
) })
|
|
@@ -1631,7 +1630,7 @@ function ConnectedWorkflowHistory({
|
|
|
1631
1630
|
const { openConversation } = chunkZLSMS6OK_cjs.useBlocksEnvironment();
|
|
1632
1631
|
const { data: runs = [], isLoading } = react.useWorkflowRuns(workflow?.external_id);
|
|
1633
1632
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1634
|
-
|
|
1633
|
+
chunkUR6DWL4L_cjs.TaskRunsDialog,
|
|
1635
1634
|
{
|
|
1636
1635
|
inline,
|
|
1637
1636
|
hideHeader,
|
|
@@ -1667,14 +1666,14 @@ function ConnectedTaskActivityDialog({
|
|
|
1667
1666
|
const activity = react.useConversationActivity(conversationId, { live });
|
|
1668
1667
|
const { data: agents = [] } = react.useAgents();
|
|
1669
1668
|
const { userId } = chunkT55BHIB7_cjs.useConnectedWorkspace();
|
|
1670
|
-
const { members } =
|
|
1669
|
+
const { members } = chunkRZ3EBN7G_cjs.useConnectedWorkspaceRole();
|
|
1671
1670
|
const renderPerson = React7.useCallback(
|
|
1672
1671
|
(id) => {
|
|
1673
1672
|
const isMe = !!id && id === userId;
|
|
1674
1673
|
const member = members.find((m) => m.user.external_id === id)?.user;
|
|
1675
1674
|
const name = member && [member.given_name, member.family_name].filter(Boolean).join(" ") || member?.email;
|
|
1676
1675
|
const person = { id, label: isMe ? "You" : name || "Someone", isMe };
|
|
1677
|
-
return renderTaskPerson ? renderTaskPerson(person) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
1676
|
+
return renderTaskPerson ? renderTaskPerson(person) : /* @__PURE__ */ jsxRuntime.jsx(chunkG6GUMZOZ_cjs.PersonPill, { person });
|
|
1678
1677
|
},
|
|
1679
1678
|
[renderTaskPerson, userId, members]
|
|
1680
1679
|
);
|
|
@@ -1683,7 +1682,7 @@ function ConnectedTaskActivityDialog({
|
|
|
1683
1682
|
[agents]
|
|
1684
1683
|
);
|
|
1685
1684
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1686
|
-
|
|
1685
|
+
chunkUR6DWL4L_cjs.TaskActivityDialog,
|
|
1687
1686
|
{
|
|
1688
1687
|
open: true,
|
|
1689
1688
|
onOpenChange: (open) => !open && onClose(),
|
|
@@ -1829,7 +1828,7 @@ function useWorkflowThread(workflow, options2 = {}) {
|
|
|
1829
1828
|
);
|
|
1830
1829
|
const conversation = conversations.data?.find((c) => c.external_id === threadId);
|
|
1831
1830
|
const steps = React7.useMemo(
|
|
1832
|
-
() => chunkEZLZ3MDU_cjs.workflowSteps(workflow).length > 0 ? chunkEZLZ3MDU_cjs.workflowSteps(workflow) :
|
|
1831
|
+
() => chunkEZLZ3MDU_cjs.workflowSteps(workflow).length > 0 ? chunkEZLZ3MDU_cjs.workflowSteps(workflow) : chunkUR6DWL4L_cjs.fromPlanSteps(conversation?.plan?.steps ?? []),
|
|
1833
1832
|
[workflow, conversation?.plan?.steps]
|
|
1834
1833
|
);
|
|
1835
1834
|
const activity = react.useConversationActivity(threadId, { live: !!threadId });
|
|
@@ -1889,7 +1888,7 @@ function useWorkflowThread(workflow, options2 = {}) {
|
|
|
1889
1888
|
criteria: [],
|
|
1890
1889
|
max_passes: 3,
|
|
1891
1890
|
documents: [],
|
|
1892
|
-
steps:
|
|
1891
|
+
steps: chunkUR6DWL4L_cjs.toPlanSteps(workflow, {
|
|
1893
1892
|
inputs: values,
|
|
1894
1893
|
resolveWorkflow: options2.resolveWorkflow,
|
|
1895
1894
|
compose: options2.compose
|
|
@@ -1976,7 +1975,7 @@ function useWorkflowThread(workflow, options2 = {}) {
|
|
|
1976
1975
|
const anyRunning = Object.values(states).some((s) => s.status === "running");
|
|
1977
1976
|
const needsStart = !threadId || idle && !anyRunning;
|
|
1978
1977
|
const runError = idle ? conversation?.last_error ?? null : null;
|
|
1979
|
-
const view =
|
|
1978
|
+
const view = chunkUR6DWL4L_cjs.useWorkflowView({
|
|
1980
1979
|
steps,
|
|
1981
1980
|
states,
|
|
1982
1981
|
inputs,
|
|
@@ -2142,7 +2141,7 @@ function WorkflowWordDialog({
|
|
|
2142
2141
|
title: title ?? labels.wordTitle,
|
|
2143
2142
|
size: "xl",
|
|
2144
2143
|
testId: "workflow-word-dialog",
|
|
2145
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(chunkULWRNGGE_cjs.ModalScaffold.Body, { className: "h-[70dvh] p-0", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
2144
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(chunkULWRNGGE_cjs.ModalScaffold.Body, { className: "h-[70dvh] p-0", children: /* @__PURE__ */ jsxRuntime.jsx(chunkRZ3EBN7G_cjs.ConnectedNativeDocxEditor, { documentId: id, title: title ?? labels.wordTitle }) })
|
|
2146
2145
|
}
|
|
2147
2146
|
);
|
|
2148
2147
|
}
|
|
@@ -2451,7 +2450,7 @@ function ConnectedWorkflowRunner({
|
|
|
2451
2450
|
);
|
|
2452
2451
|
};
|
|
2453
2452
|
const runner = (compact) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
2454
|
-
|
|
2453
|
+
chunkUR6DWL4L_cjs.WorkflowRunner,
|
|
2455
2454
|
{
|
|
2456
2455
|
people,
|
|
2457
2456
|
...runnerProps,
|
|
@@ -2497,7 +2496,7 @@ function ConnectedWorkflowRunner({
|
|
|
2497
2496
|
) }),
|
|
2498
2497
|
inThread && conversationId ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
2499
2498
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2500
|
-
|
|
2499
|
+
chunkUR6DWL4L_cjs.WorkflowStepBar,
|
|
2501
2500
|
{
|
|
2502
2501
|
run: view,
|
|
2503
2502
|
levels: chunkEZLZ3MDU_cjs.stepLevels(view.steps),
|
|
@@ -2788,7 +2787,7 @@ function ConnectedTagTable({
|
|
|
2788
2787
|
const fail = (fallback) => (e) => notify17(browser.refusalReason(e, fallback), "error");
|
|
2789
2788
|
const snapshot2 = (data) => {
|
|
2790
2789
|
const title = exportTitle ?? ui.tagKindTitle(kind, { plural: true });
|
|
2791
|
-
const bytes =
|
|
2790
|
+
const bytes = chunkLFVD3CS5_cjs.tagTableDocx(data, {
|
|
2792
2791
|
title,
|
|
2793
2792
|
nameOf: (id) => people.find((p) => p.value === id)?.label
|
|
2794
2793
|
});
|
|
@@ -2797,7 +2796,7 @@ function ConnectedTagTable({
|
|
|
2797
2796
|
return { blob: new Blob([bytes], { type: chunkJIOHDVWH_cjs.DOCX_MIME_TYPE }), name };
|
|
2798
2797
|
};
|
|
2799
2798
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
2800
|
-
|
|
2799
|
+
chunkLFVD3CS5_cjs.TagTable,
|
|
2801
2800
|
{
|
|
2802
2801
|
...props,
|
|
2803
2802
|
table,
|
|
@@ -2935,9 +2934,9 @@ function GlossaryExport({ labelId, nameOf }) {
|
|
|
2935
2934
|
const narrowed = agreements.find((a) => a.id === narrowTo);
|
|
2936
2935
|
const title = narrowed ? `Glossary - ${narrowed.name}` : "Glossary";
|
|
2937
2936
|
const download = (format) => {
|
|
2938
|
-
const entries =
|
|
2939
|
-
const blob = format === "docx" ? new Blob([
|
|
2940
|
-
documentTools.downloadBlob(blob,
|
|
2937
|
+
const entries = chunkLFVD3CS5_cjs.glossaryEntries(sources, { labelId: narrowed?.id });
|
|
2938
|
+
const blob = format === "docx" ? new Blob([chunkLFVD3CS5_cjs.glossaryDocx(entries, { title })], { type: chunkJIOHDVWH_cjs.DOCX_MIME_TYPE }) : new Blob([chunkLFVD3CS5_cjs.glossaryMarkdown(entries, { title })], { type: "text/markdown" });
|
|
2939
|
+
documentTools.downloadBlob(blob, chunkLFVD3CS5_cjs.glossaryFileName(title, format));
|
|
2941
2940
|
};
|
|
2942
2941
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", "data-testid": "tags-glossary", children: [
|
|
2943
2942
|
agreements.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs(
|
|
@@ -3030,7 +3029,7 @@ function TileStatusBadge({ doc, status }) {
|
|
|
3030
3029
|
case "failed":
|
|
3031
3030
|
tone = "danger";
|
|
3032
3031
|
icon2 = /* @__PURE__ */ jsxRuntime.jsx(
|
|
3033
|
-
|
|
3032
|
+
chunkP4NS4LV7_cjs.FailedStageIcon,
|
|
3034
3033
|
{
|
|
3035
3034
|
stage: doc.failed_stage ?? null,
|
|
3036
3035
|
errorMessage: doc.error_message,
|
|
@@ -3057,7 +3056,7 @@ function TileStatusBadge({ doc, status }) {
|
|
|
3057
3056
|
return null;
|
|
3058
3057
|
}
|
|
3059
3058
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
3060
|
-
|
|
3059
|
+
chunkP4NS4LV7_cjs.StatusPill,
|
|
3061
3060
|
{
|
|
3062
3061
|
tone,
|
|
3063
3062
|
icon: icon2,
|
|
@@ -3069,11 +3068,11 @@ function TileStatusBadge({ doc, status }) {
|
|
|
3069
3068
|
function TileVisibilityBadge({ doc }) {
|
|
3070
3069
|
const shared = !!doc.shared;
|
|
3071
3070
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
3072
|
-
|
|
3071
|
+
chunkP4NS4LV7_cjs.StatusPill,
|
|
3073
3072
|
{
|
|
3074
3073
|
icon: /* @__PURE__ */ jsxRuntime.jsx(ui.VisibilityIcon, { isShared: shared, className: "size-3.5", "aria-hidden": true }),
|
|
3075
3074
|
label: shared ? ui.getEntityLabel("WORKSPACE") : "Only you",
|
|
3076
|
-
title:
|
|
3075
|
+
title: chunkP4NS4LV7_cjs.visibilityAudience(shared),
|
|
3077
3076
|
testId: `explorer-file-visibility-${doc.external_id}`
|
|
3078
3077
|
}
|
|
3079
3078
|
);
|
|
@@ -3100,7 +3099,7 @@ function FileTooltipContent({
|
|
|
3100
3099
|
}) {
|
|
3101
3100
|
const labels = (doc.doctags ?? []).map((dt) => tagNameById.get(dt.tag_ext_id)).filter((name) => !!name);
|
|
3102
3101
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
3103
|
-
|
|
3102
|
+
chunkP4NS4LV7_cjs.ExplorerFileTooltip,
|
|
3104
3103
|
{
|
|
3105
3104
|
title: ui.getDocumentTitle(doc, doc.file_name ?? ""),
|
|
3106
3105
|
summary: ui.getDocumentSubject(doc),
|
|
@@ -3109,7 +3108,7 @@ function FileTooltipContent({
|
|
|
3109
3108
|
shared: !!doc.shared,
|
|
3110
3109
|
visibilityIcon: /* @__PURE__ */ jsxRuntime.jsx(ui.VisibilityIcon, { isShared: !!doc.shared, className: "h-3 w-3" }),
|
|
3111
3110
|
labels,
|
|
3112
|
-
uiLabels: { shared:
|
|
3111
|
+
uiLabels: { shared: chunkP4NS4LV7_cjs.visibilityAudience(true), private: chunkP4NS4LV7_cjs.visibilityAudience(false) }
|
|
3113
3112
|
}
|
|
3114
3113
|
);
|
|
3115
3114
|
}
|
|
@@ -3221,7 +3220,7 @@ var FileTile = React7.memo(function FileTile2({
|
|
|
3221
3220
|
];
|
|
3222
3221
|
const tooltip = renaming || dndActive ? void 0 : /* @__PURE__ */ jsxRuntime.jsx(FileTooltipContent, { doc, modifiedBy, tagNameById });
|
|
3223
3222
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
3224
|
-
|
|
3223
|
+
chunkP4NS4LV7_cjs.ExplorerFileTile,
|
|
3225
3224
|
{
|
|
3226
3225
|
id: doc.external_id,
|
|
3227
3226
|
title: ui.getDocumentTitle(doc, doc.file_name ?? ""),
|
|
@@ -3315,17 +3314,17 @@ var FolderTile = React7.memo(function FolderTile2({
|
|
|
3315
3314
|
}
|
|
3316
3315
|
] : []
|
|
3317
3316
|
];
|
|
3318
|
-
const displayName = folder.path.length === 1 ?
|
|
3319
|
-
const providerIcon = folder.path.length === 1 &&
|
|
3317
|
+
const displayName = folder.path.length === 1 ? chunkP4NS4LV7_cjs.formatFolderSegment(folder.name) : folder.name;
|
|
3318
|
+
const providerIcon = folder.path.length === 1 && chunkP4NS4LV7_cjs.hasFolderProviderIcon(folder.name) ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
3320
3319
|
"span",
|
|
3321
3320
|
{
|
|
3322
3321
|
className: "flex items-center justify-center drop-shadow-sm",
|
|
3323
3322
|
style: { width: iconSize, height: iconSize },
|
|
3324
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
3323
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(chunkP4NS4LV7_cjs.FolderProviderIcon, { folderPath: folder.name, className: "h-full w-full" })
|
|
3325
3324
|
}
|
|
3326
3325
|
) : void 0;
|
|
3327
3326
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
3328
|
-
|
|
3327
|
+
chunkP4NS4LV7_cjs.ExplorerFolderTile,
|
|
3329
3328
|
{
|
|
3330
3329
|
name: folder.name,
|
|
3331
3330
|
displayName: displayName === "" ? null : displayName,
|
|
@@ -3415,7 +3414,7 @@ function describeGlyph(resolved, doc) {
|
|
|
3415
3414
|
}
|
|
3416
3415
|
return {
|
|
3417
3416
|
node: /* @__PURE__ */ jsxRuntime.jsx(
|
|
3418
|
-
|
|
3417
|
+
chunkP4NS4LV7_cjs.FailedStageIcon,
|
|
3419
3418
|
{
|
|
3420
3419
|
stage: resolved.failedStage,
|
|
3421
3420
|
errorMessage: doc.error_message,
|
|
@@ -3460,7 +3459,7 @@ var StatusCell = React7.memo(function StatusCell2({
|
|
|
3460
3459
|
if (isPendingSync) {
|
|
3461
3460
|
return cell(
|
|
3462
3461
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3463
|
-
|
|
3462
|
+
chunkP4NS4LV7_cjs.StatusPill,
|
|
3464
3463
|
{
|
|
3465
3464
|
tone: "warning",
|
|
3466
3465
|
icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.RefreshCw, { className: "size-3.5" }),
|
|
@@ -3475,7 +3474,7 @@ var StatusCell = React7.memo(function StatusCell2({
|
|
|
3475
3474
|
case "completed":
|
|
3476
3475
|
return cell(
|
|
3477
3476
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3478
|
-
|
|
3477
|
+
chunkP4NS4LV7_cjs.StatusPill,
|
|
3479
3478
|
{
|
|
3480
3479
|
tone: "success",
|
|
3481
3480
|
icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.CheckCircle, { className: "size-3.5" }),
|
|
@@ -3488,7 +3487,7 @@ var StatusCell = React7.memo(function StatusCell2({
|
|
|
3488
3487
|
case "skipped":
|
|
3489
3488
|
return cell(
|
|
3490
3489
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3491
|
-
|
|
3490
|
+
chunkP4NS4LV7_cjs.StatusPill,
|
|
3492
3491
|
{
|
|
3493
3492
|
tone: "neutral",
|
|
3494
3493
|
icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.SkipForward, { className: "size-3.5" }),
|
|
@@ -3501,7 +3500,7 @@ var StatusCell = React7.memo(function StatusCell2({
|
|
|
3501
3500
|
case "empty":
|
|
3502
3501
|
return cell(
|
|
3503
3502
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3504
|
-
|
|
3503
|
+
chunkP4NS4LV7_cjs.StatusPill,
|
|
3505
3504
|
{
|
|
3506
3505
|
tone: "warning",
|
|
3507
3506
|
icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.FileX, { className: "size-3.5" }),
|
|
@@ -3514,7 +3513,7 @@ var StatusCell = React7.memo(function StatusCell2({
|
|
|
3514
3513
|
case "low-content":
|
|
3515
3514
|
return cell(
|
|
3516
3515
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3517
|
-
|
|
3516
|
+
chunkP4NS4LV7_cjs.StatusPill,
|
|
3518
3517
|
{
|
|
3519
3518
|
tone: "warning",
|
|
3520
3519
|
icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.AlertTriangle, { className: "size-3.5" }),
|
|
@@ -3529,7 +3528,7 @@ var StatusCell = React7.memo(function StatusCell2({
|
|
|
3529
3528
|
if (quota) {
|
|
3530
3529
|
return cell(
|
|
3531
3530
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3532
|
-
|
|
3531
|
+
chunkP4NS4LV7_cjs.StatusPill,
|
|
3533
3532
|
{
|
|
3534
3533
|
tone: "warning",
|
|
3535
3534
|
icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Zap, { className: "size-3.5" }),
|
|
@@ -3542,11 +3541,11 @@ var StatusCell = React7.memo(function StatusCell2({
|
|
|
3542
3541
|
}
|
|
3543
3542
|
return cell(
|
|
3544
3543
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3545
|
-
|
|
3544
|
+
chunkP4NS4LV7_cjs.StatusPill,
|
|
3546
3545
|
{
|
|
3547
3546
|
tone: "danger",
|
|
3548
3547
|
icon: /* @__PURE__ */ jsxRuntime.jsx(
|
|
3549
|
-
|
|
3548
|
+
chunkP4NS4LV7_cjs.FailedStageIcon,
|
|
3550
3549
|
{
|
|
3551
3550
|
stage: failedStage,
|
|
3552
3551
|
errorMessage: doc.error_message,
|
|
@@ -3563,7 +3562,7 @@ var StatusCell = React7.memo(function StatusCell2({
|
|
|
3563
3562
|
const isDocx = doc.file_name?.toLowerCase().endsWith(".docx");
|
|
3564
3563
|
return cell(
|
|
3565
3564
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3566
|
-
|
|
3565
|
+
chunkP4NS4LV7_cjs.StatusPill,
|
|
3567
3566
|
{
|
|
3568
3567
|
tone: "neutral",
|
|
3569
3568
|
label: isDocx ? "Uploaded" : "Queued",
|
|
@@ -3580,7 +3579,7 @@ var StatusCell = React7.memo(function StatusCell2({
|
|
|
3580
3579
|
case "analysing":
|
|
3581
3580
|
return cell(
|
|
3582
3581
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3583
|
-
|
|
3582
|
+
chunkP4NS4LV7_cjs.StatusPill,
|
|
3584
3583
|
{
|
|
3585
3584
|
tone: "info",
|
|
3586
3585
|
label: PROCESSING_LABELS[status],
|
|
@@ -3663,7 +3662,7 @@ var DocumentNameCell = React7.memo(function DocumentNameCell2({
|
|
|
3663
3662
|
}
|
|
3664
3663
|
};
|
|
3665
3664
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
3666
|
-
|
|
3665
|
+
chunkP4NS4LV7_cjs.DocumentNameCellFrame,
|
|
3667
3666
|
{
|
|
3668
3667
|
testId: `open-document-viewer-button-${doc.external_id}`,
|
|
3669
3668
|
isViewing,
|
|
@@ -3692,7 +3691,7 @@ var DocumentNameCell = React7.memo(function DocumentNameCell2({
|
|
|
3692
3691
|
openTimerRef.current = window.setTimeout(onOpen, OPEN_AFTER_DOUBLE_CLICK_WINDOW_MS);
|
|
3693
3692
|
},
|
|
3694
3693
|
actions: /* @__PURE__ */ jsxRuntime.jsx(
|
|
3695
|
-
|
|
3694
|
+
chunkP4NS4LV7_cjs.DocumentRowMenu,
|
|
3696
3695
|
{
|
|
3697
3696
|
canEdit,
|
|
3698
3697
|
onOpen,
|
|
@@ -3723,14 +3722,14 @@ var DocumentSharedCell = React7.memo(function DocumentSharedCell2({
|
|
|
3723
3722
|
[document2.external_id, onToggle]
|
|
3724
3723
|
);
|
|
3725
3724
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
3726
|
-
|
|
3725
|
+
chunkLFVD3CS5_cjs.SharedCell,
|
|
3727
3726
|
{
|
|
3728
3727
|
item: document2,
|
|
3729
3728
|
onToggle: handleToggle,
|
|
3730
3729
|
disabled,
|
|
3731
3730
|
disabledTooltip,
|
|
3732
|
-
tooltipActive:
|
|
3733
|
-
tooltipInactive:
|
|
3731
|
+
tooltipActive: chunkP4NS4LV7_cjs.visibilityToggleTooltip(true),
|
|
3732
|
+
tooltipInactive: chunkP4NS4LV7_cjs.visibilityToggleTooltip(false),
|
|
3734
3733
|
workspaceLabel: ui.getEntityLabel("WORKSPACE")
|
|
3735
3734
|
}
|
|
3736
3735
|
);
|
|
@@ -3744,7 +3743,7 @@ function useDocumentFolders(documents, value) {
|
|
|
3744
3743
|
}, [documents, value]);
|
|
3745
3744
|
}
|
|
3746
3745
|
function folderSegments(folder) {
|
|
3747
|
-
return folder.split("/").map((part, i) => i === 0 ?
|
|
3746
|
+
return folder.split("/").map((part, i) => i === 0 ? chunkP4NS4LV7_cjs.formatFolderSegment(part) : part).filter((part, i) => i > 0 || part !== "");
|
|
3748
3747
|
}
|
|
3749
3748
|
var DocumentFolderCell = React7.memo(
|
|
3750
3749
|
function DocumentFolderCell2({
|
|
@@ -3756,14 +3755,14 @@ var DocumentFolderCell = React7.memo(
|
|
|
3756
3755
|
const folder = document2.folder;
|
|
3757
3756
|
const folders = useDocumentFolders(allDocuments, folder);
|
|
3758
3757
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
3759
|
-
|
|
3758
|
+
chunkP4NS4LV7_cjs.FolderCell,
|
|
3760
3759
|
{
|
|
3761
3760
|
folder,
|
|
3762
3761
|
segments: folder ? folderSegments(folder) : [],
|
|
3763
|
-
icon: folder &&
|
|
3762
|
+
icon: folder && chunkP4NS4LV7_cjs.hasFolderProviderIcon(folder) ? /* @__PURE__ */ jsxRuntime.jsx(chunkP4NS4LV7_cjs.FolderProviderIcon, { folderPath: folder, className: "h-3.5 w-3.5 flex-none shrink-0" }) : void 0,
|
|
3764
3763
|
isEditable,
|
|
3765
3764
|
picker: /* @__PURE__ */ jsxRuntime.jsx(
|
|
3766
|
-
|
|
3765
|
+
chunkP4NS4LV7_cjs.FolderCommandList,
|
|
3767
3766
|
{
|
|
3768
3767
|
folders,
|
|
3769
3768
|
value: folder,
|
|
@@ -3798,7 +3797,7 @@ var RelatedDocumentsCell = React7.memo(function RelatedDocumentsCell2({
|
|
|
3798
3797
|
onCompare
|
|
3799
3798
|
}) {
|
|
3800
3799
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
3801
|
-
|
|
3800
|
+
chunkP4NS4LV7_cjs.RelatedDocsCell,
|
|
3802
3801
|
{
|
|
3803
3802
|
parent: related.parent,
|
|
3804
3803
|
attachments: related.children,
|
|
@@ -4038,9 +4037,9 @@ function ConnectedTagForm({
|
|
|
4038
4037
|
});
|
|
4039
4038
|
}
|
|
4040
4039
|
}
|
|
4041
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
4040
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(chunkP4NS4LV7_cjs.TagFormRoot, { children: [
|
|
4042
4041
|
!nameOnRow && /* @__PURE__ */ jsxRuntime.jsx(
|
|
4043
|
-
|
|
4042
|
+
chunkP4NS4LV7_cjs.TagFormNameField,
|
|
4044
4043
|
{
|
|
4045
4044
|
label: group || nameByKind ? `${ui.tagKindTitle(kind)} Name` : `${columnLabel} Name`,
|
|
4046
4045
|
placeholder: `Enter ${kindNoun ?? columnLabel.toLowerCase()} name...`,
|
|
@@ -4050,7 +4049,7 @@ function ConnectedTagForm({
|
|
|
4050
4049
|
}
|
|
4051
4050
|
),
|
|
4052
4051
|
kinds.length > 1 && /* @__PURE__ */ jsxRuntime.jsx(
|
|
4053
|
-
|
|
4052
|
+
chunkP4NS4LV7_cjs.TagFormSelectField,
|
|
4054
4053
|
{
|
|
4055
4054
|
label: "Kind",
|
|
4056
4055
|
testId: "inline-tag-form-kind-field",
|
|
@@ -4065,7 +4064,7 @@ function ConnectedTagForm({
|
|
|
4065
4064
|
}
|
|
4066
4065
|
),
|
|
4067
4066
|
kind === "annotation" && /* @__PURE__ */ jsxRuntime.jsx(
|
|
4068
|
-
|
|
4067
|
+
chunkP4NS4LV7_cjs.TagFormSelectField,
|
|
4069
4068
|
{
|
|
4070
4069
|
label: group === "annotation" ? "Value type" : "Field Type",
|
|
4071
4070
|
testId: "inline-tag-form-type-field",
|
|
@@ -4077,7 +4076,7 @@ function ConnectedTagForm({
|
|
|
4077
4076
|
}
|
|
4078
4077
|
),
|
|
4079
4078
|
showParentPicker && /* @__PURE__ */ jsxRuntime.jsx(
|
|
4080
|
-
|
|
4079
|
+
chunkP4NS4LV7_cjs.TagFormSelectField,
|
|
4081
4080
|
{
|
|
4082
4081
|
label: "Nested Under",
|
|
4083
4082
|
value: parentId,
|
|
@@ -4101,14 +4100,14 @@ function ConnectedTagForm({
|
|
|
4101
4100
|
hint: !canClearParent ? "This field can move to a different parent, but the API has no way to move it back to the top level." : void 0
|
|
4102
4101
|
}
|
|
4103
4102
|
),
|
|
4104
|
-
nestingEnabled && hasChildren && /* @__PURE__ */ jsxRuntime.jsxs(
|
|
4103
|
+
nestingEnabled && hasChildren && /* @__PURE__ */ jsxRuntime.jsxs(chunkP4NS4LV7_cjs.TagFormNote, { testId: "inline-tag-form-parent-locked", children: [
|
|
4105
4104
|
"Other fields are nested under this one, so it cannot itself be nested \u2014 fields nest",
|
|
4106
4105
|
" ",
|
|
4107
4106
|
browser.TAG_NESTING_MAX_DEPTH,
|
|
4108
4107
|
" levels deep."
|
|
4109
4108
|
] }),
|
|
4110
4109
|
tagType === "select" && /* @__PURE__ */ jsxRuntime.jsx(
|
|
4111
|
-
|
|
4110
|
+
chunkP4NS4LV7_cjs.TagFormOptionsEditor,
|
|
4112
4111
|
{
|
|
4113
4112
|
label: "Options",
|
|
4114
4113
|
options: options2,
|
|
@@ -4121,7 +4120,7 @@ function ConnectedTagForm({
|
|
|
4121
4120
|
}
|
|
4122
4121
|
),
|
|
4123
4122
|
tagType === "text" && /* @__PURE__ */ jsxRuntime.jsx(
|
|
4124
|
-
|
|
4123
|
+
chunkP4NS4LV7_cjs.TagFormInstructionField,
|
|
4125
4124
|
{
|
|
4126
4125
|
label: "AI Instruction",
|
|
4127
4126
|
optionalLabel: "(optional)",
|
|
@@ -4131,12 +4130,12 @@ function ConnectedTagForm({
|
|
|
4131
4130
|
onChange: setInstruction
|
|
4132
4131
|
}
|
|
4133
4132
|
),
|
|
4134
|
-
metaLines.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(
|
|
4133
|
+
metaLines.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(chunkP4NS4LV7_cjs.TagFormMeta, { lines: metaLines }),
|
|
4135
4134
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4136
|
-
|
|
4135
|
+
chunkP4NS4LV7_cjs.TagFormFooter,
|
|
4137
4136
|
{
|
|
4138
4137
|
sharedToggle: isCreate ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
4139
|
-
|
|
4138
|
+
chunkP4NS4LV7_cjs.TagFormSharedToggle,
|
|
4140
4139
|
{
|
|
4141
4140
|
label: "Shared with workspace",
|
|
4142
4141
|
toggle: /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -4434,7 +4433,7 @@ function KindSection({
|
|
|
4434
4433
|
{
|
|
4435
4434
|
testId: `tags-kind-${kind}`,
|
|
4436
4435
|
title: ui.tagKindTitle(kind, { plural: true }),
|
|
4437
|
-
description:
|
|
4436
|
+
description: chunkLFVD3CS5_cjs.tagKindDescription(kind),
|
|
4438
4437
|
actions: picker,
|
|
4439
4438
|
children: [
|
|
4440
4439
|
browser.isEntityTag({ kind }) && extractingCount > 0 && /* @__PURE__ */ jsxRuntime.jsxs(
|
|
@@ -4445,9 +4444,9 @@ function KindSection({
|
|
|
4445
4444
|
children: [
|
|
4446
4445
|
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.Loader2, { className: "size-4 animate-spin" }),
|
|
4447
4446
|
"Extracting ",
|
|
4448
|
-
|
|
4447
|
+
chunkLFVD3CS5_cjs.entitiesPhrase().toLowerCase(),
|
|
4449
4448
|
" from ",
|
|
4450
|
-
|
|
4449
|
+
chunkLFVD3CS5_cjs.documentCount(extractingCount),
|
|
4451
4450
|
"\u2026"
|
|
4452
4451
|
]
|
|
4453
4452
|
}
|
|
@@ -4465,7 +4464,7 @@ function KindSection({
|
|
|
4465
4464
|
onOpenDocument: (id) => openDocument(id),
|
|
4466
4465
|
onOpenFact: ctx.onOpenFact,
|
|
4467
4466
|
onOpenThread: (id) => openConversation(id),
|
|
4468
|
-
labels:
|
|
4467
|
+
labels: chunkLFVD3CS5_cjs.tagTableLabels(kind),
|
|
4469
4468
|
testId: `tags-table-${kind}`
|
|
4470
4469
|
}
|
|
4471
4470
|
)
|
|
@@ -4567,12 +4566,12 @@ function TagSection({
|
|
|
4567
4566
|
onOpenDocument: (id) => openDocument(id),
|
|
4568
4567
|
onOpenFact: ctx.onOpenFact,
|
|
4569
4568
|
onOpenThread: (id) => openConversation(id),
|
|
4570
|
-
labels:
|
|
4569
|
+
labels: chunkLFVD3CS5_cjs.tagTableLabels(tag.kind),
|
|
4571
4570
|
testId: "tags-rows"
|
|
4572
4571
|
}
|
|
4573
4572
|
),
|
|
4574
4573
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4575
|
-
|
|
4574
|
+
chunkLFVD3CS5_cjs.TagDetail,
|
|
4576
4575
|
{
|
|
4577
4576
|
row: detailRow && narrowTagRow(detailRow, ctx.filter.matches),
|
|
4578
4577
|
fields: schema.data?.fields ?? [],
|
|
@@ -4584,10 +4583,10 @@ function TagSection({
|
|
|
4584
4583
|
onOpenDocument: (id) => openDocument(id),
|
|
4585
4584
|
onOpenFact: ctx.onOpenFact,
|
|
4586
4585
|
onOpenThread: (id) => openConversation(id),
|
|
4587
|
-
noteLabel:
|
|
4586
|
+
noteLabel: chunkLFVD3CS5_cjs.tagNoteLabel(tag.kind),
|
|
4588
4587
|
noteIsValue: tag.kind === "annotation",
|
|
4589
4588
|
renderPassages: (d, label) => renderPassages(d.doc_ext_id, label),
|
|
4590
|
-
labels:
|
|
4589
|
+
labels: chunkLFVD3CS5_cjs.tagDetailLabels(),
|
|
4591
4590
|
testId: "tags-detail"
|
|
4592
4591
|
}
|
|
4593
4592
|
)
|
|
@@ -4675,7 +4674,7 @@ function ConnectedTagsPage({
|
|
|
4675
4674
|
const onDelete = async (t) => {
|
|
4676
4675
|
const nested = browser.getChildTags([...tags], t.external_id);
|
|
4677
4676
|
const uses = browser.tagUseCount(t);
|
|
4678
|
-
const n2 =
|
|
4677
|
+
const n2 = chunkLFVD3CS5_cjs.tagsPageNouns();
|
|
4679
4678
|
const tagNoun = (count2) => (count2 === 1 ? n2.tag : n2.tags).toLowerCase();
|
|
4680
4679
|
const carriers = uses === 1 ? `${n2.document}, ${n2.fact} or ${n2.thread}` : `${n2.documents}, ${n2.facts} and ${n2.threads}`;
|
|
4681
4680
|
const message = `Delete ${ui.tagKindNouns(t.kind).singular} "${t.name}"?` + (uses > 0 ? `
|
|
@@ -4696,16 +4695,16 @@ ${nested.length} nested ${tagNoun(nested.length)} ${nested.length === 1 ? "moves
|
|
|
4696
4695
|
try {
|
|
4697
4696
|
await extract.mutateAsync(docIds);
|
|
4698
4697
|
notify17(
|
|
4699
|
-
`Extracting ${
|
|
4698
|
+
`Extracting ${chunkLFVD3CS5_cjs.entitiesPhrase().toLowerCase()} from ${chunkLFVD3CS5_cjs.documentCount(docIds.length)}. You will be notified when it is done.`,
|
|
4700
4699
|
"info"
|
|
4701
4700
|
);
|
|
4702
4701
|
} catch (error) {
|
|
4703
|
-
notify17(browser.refusalReason(error, `Could not extract ${
|
|
4702
|
+
notify17(browser.refusalReason(error, `Could not extract ${chunkLFVD3CS5_cjs.entitiesPhrase().toLowerCase()}`), "error");
|
|
4704
4703
|
throw error;
|
|
4705
4704
|
}
|
|
4706
4705
|
};
|
|
4707
4706
|
const picker = /* @__PURE__ */ jsxRuntime.jsx(
|
|
4708
|
-
|
|
4707
|
+
chunkLFVD3CS5_cjs.TagPicker,
|
|
4709
4708
|
{
|
|
4710
4709
|
tags: viewTags,
|
|
4711
4710
|
selectedId: tag?.external_id,
|
|
@@ -4719,10 +4718,10 @@ ${nested.length} nested ${tagNoun(nested.length)} ${nested.length === 1 ? "moves
|
|
|
4719
4718
|
onOpenTag: openTag,
|
|
4720
4719
|
onOpenFact
|
|
4721
4720
|
};
|
|
4722
|
-
const n =
|
|
4721
|
+
const n = chunkLFVD3CS5_cjs.tagsPageNouns();
|
|
4723
4722
|
const action = view === "person" || view === "organisation" ? {
|
|
4724
4723
|
label: "Extract",
|
|
4725
|
-
title: `Extract ${
|
|
4724
|
+
title: `Extract ${chunkLFVD3CS5_cjs.entitiesPhrase().toLowerCase()} from ${n.documents.toLowerCase()}`,
|
|
4726
4725
|
icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Sparkles, { className: "h-4 w-4" }),
|
|
4727
4726
|
run: () => setExtracting(true),
|
|
4728
4727
|
testId: "tags-extract-entities"
|
|
@@ -4762,7 +4761,7 @@ ${nested.length} nested ${tagNoun(nested.length)} ${nested.length === 1 ? "moves
|
|
|
4762
4761
|
onTabChange: () => {
|
|
4763
4762
|
},
|
|
4764
4763
|
variant: "underline",
|
|
4765
|
-
firstTabContent: /* @__PURE__ */ jsxRuntime.jsx(
|
|
4764
|
+
firstTabContent: /* @__PURE__ */ jsxRuntime.jsx(chunkP4NS4LV7_cjs.FilesFilterBar, { className: "flex-none", "data-testid": "tags-header-actions", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
4766
4765
|
chunk2EI7NCUA_cjs.FilterInput,
|
|
4767
4766
|
{
|
|
4768
4767
|
value: filterText,
|
|
@@ -4790,7 +4789,7 @@ ${nested.length} nested ${tagNoun(nested.length)} ${nested.length === 1 ? "moves
|
|
|
4790
4789
|
)
|
|
4791
4790
|
}
|
|
4792
4791
|
) }),
|
|
4793
|
-
centerContent: /* @__PURE__ */ jsxRuntime.jsx(
|
|
4792
|
+
centerContent: /* @__PURE__ */ jsxRuntime.jsx(chunkP4NS4LV7_cjs.FilesViewCenter, { children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
4794
4793
|
chunk2WLXQGWC_cjs.ViewToggle,
|
|
4795
4794
|
{
|
|
4796
4795
|
options: browser.TAG_KINDS.map((k) => ({
|
|
@@ -4872,7 +4871,7 @@ ${nested.length} nested ${tagNoun(nested.length)} ${nested.length === 1 ? "moves
|
|
|
4872
4871
|
}
|
|
4873
4872
|
),
|
|
4874
4873
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4875
|
-
|
|
4874
|
+
chunkLFVD3CS5_cjs.ExtractEntitiesDialog,
|
|
4876
4875
|
{
|
|
4877
4876
|
open: extracting,
|
|
4878
4877
|
onOpenChange: setExtracting,
|
|
@@ -5651,7 +5650,7 @@ function useFactFilters(notes, view, chat) {
|
|
|
5651
5650
|
(selected, setSelected, opts) => {
|
|
5652
5651
|
const applied = new Set(selected);
|
|
5653
5652
|
return /* @__PURE__ */ jsxRuntime.jsx(chunkYD3RN2FY_cjs.FactFieldRow, { label: "Labels", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
5654
|
-
|
|
5653
|
+
chunkP4NS4LV7_cjs.FieldLabelsSelect,
|
|
5655
5654
|
{
|
|
5656
5655
|
options: labelOptions,
|
|
5657
5656
|
appliedIds: applied,
|
|
@@ -5877,7 +5876,7 @@ var FactHeader = React7.memo(function FactHeader2({
|
|
|
5877
5876
|
if (params.enableSorting) params.progressSort(e.shiftKey);
|
|
5878
5877
|
},
|
|
5879
5878
|
children: [
|
|
5880
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5879
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkP4NS4LV7_cjs.FilterButton, { params, colId }),
|
|
5881
5880
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "order-2 min-w-0 flex-1 truncate", children: params.displayName }),
|
|
5882
5881
|
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "ag-sort-indicator-container order-2 flex-shrink-0", "aria-hidden": "true", children: [
|
|
5883
5882
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -6141,7 +6140,7 @@ function useFactsGrid({
|
|
|
6141
6140
|
var DEFAULT_TIMELINE_LABEL_WIDTH = 240;
|
|
6142
6141
|
function useFactsPageView() {
|
|
6143
6142
|
const [view, setView] = React7.useState("table");
|
|
6144
|
-
const [rowHeight, setRowHeight] = React7.useState(
|
|
6143
|
+
const [rowHeight, setRowHeight] = React7.useState(chunkP4NS4LV7_cjs.ROW_MIN);
|
|
6145
6144
|
const [labelWidth, setLabelWidth] = React7.useState(DEFAULT_TIMELINE_LABEL_WIDTH);
|
|
6146
6145
|
const [zoom, setZoom] = React7.useState(1);
|
|
6147
6146
|
const [filterText, setFilterText] = React7.useState("");
|
|
@@ -6505,7 +6504,7 @@ function ConnectedExportPanel({
|
|
|
6505
6504
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col h-full", "data-testid": "export-documents", children: [
|
|
6506
6505
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex-1 overflow-auto space-y-6 p-6", children: [
|
|
6507
6506
|
jobRunning && job && /* @__PURE__ */ jsxRuntime.jsx(
|
|
6508
|
-
|
|
6507
|
+
chunkP4NS4LV7_cjs.TransferProgressView,
|
|
6509
6508
|
{
|
|
6510
6509
|
title: `${job.mode === "move" ? "Moving" : "Copying"} to ${targetName(job.target_workspace_ext_id)}`,
|
|
6511
6510
|
processed: job.processed ?? 0,
|
|
@@ -6518,7 +6517,7 @@ function ConnectedExportPanel({
|
|
|
6518
6517
|
),
|
|
6519
6518
|
jobDone && job && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
6520
6519
|
react.isTransferResumable(job) && /* @__PURE__ */ jsxRuntime.jsx(
|
|
6521
|
-
|
|
6520
|
+
chunkP4NS4LV7_cjs.TransferResumeBanner,
|
|
6522
6521
|
{
|
|
6523
6522
|
message: `Stopped at ${job.processed} of ${job.total}. Resume to finish \u2014 nothing is copied twice.`,
|
|
6524
6523
|
onResume: () => handleResume(job),
|
|
@@ -6526,7 +6525,7 @@ function ConnectedExportPanel({
|
|
|
6526
6525
|
}
|
|
6527
6526
|
),
|
|
6528
6527
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6529
|
-
|
|
6528
|
+
chunkP4NS4LV7_cjs.ExportResultsReport,
|
|
6530
6529
|
{
|
|
6531
6530
|
summary: `${job.mode === "move" ? "Moved" : "Copied"} ${plural(
|
|
6532
6531
|
Number(job.counts?.copied ?? 0) + Number(job.counts?.removed ?? 0),
|
|
@@ -6539,7 +6538,7 @@ function ConnectedExportPanel({
|
|
|
6539
6538
|
] }),
|
|
6540
6539
|
!jobId && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
6541
6540
|
resumable && /* @__PURE__ */ jsxRuntime.jsx(
|
|
6542
|
-
|
|
6541
|
+
chunkP4NS4LV7_cjs.TransferResumeBanner,
|
|
6543
6542
|
{
|
|
6544
6543
|
message: `A ${resumable.mode} to ${targetName(resumable.target_workspace_ext_id)} stopped at ${resumable.processed} of ${resumable.total}.`,
|
|
6545
6544
|
onResume: () => handleResume(resumable),
|
|
@@ -6547,7 +6546,7 @@ function ConnectedExportPanel({
|
|
|
6547
6546
|
}
|
|
6548
6547
|
),
|
|
6549
6548
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6550
|
-
|
|
6549
|
+
chunkP4NS4LV7_cjs.TransferScopeChooser,
|
|
6551
6550
|
{
|
|
6552
6551
|
scope: scopeChoice,
|
|
6553
6552
|
onScopeChange: setScopeChoice,
|
|
@@ -6558,7 +6557,7 @@ function ConnectedExportPanel({
|
|
|
6558
6557
|
}
|
|
6559
6558
|
),
|
|
6560
6559
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6561
|
-
|
|
6560
|
+
chunkP4NS4LV7_cjs.TransferKindsPicker,
|
|
6562
6561
|
{
|
|
6563
6562
|
options: ALL_KINDS.map((kind) => ({
|
|
6564
6563
|
kind,
|
|
@@ -6571,9 +6570,9 @@ function ConnectedExportPanel({
|
|
|
6571
6570
|
)
|
|
6572
6571
|
}
|
|
6573
6572
|
),
|
|
6574
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6573
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkP4NS4LV7_cjs.TransferReferencesChooser, { value: references, onChange: setReferences }),
|
|
6575
6574
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6576
|
-
|
|
6575
|
+
chunkP4NS4LV7_cjs.ExportMethodChooser,
|
|
6577
6576
|
{
|
|
6578
6577
|
mode,
|
|
6579
6578
|
onModeChange: setMode,
|
|
@@ -6585,17 +6584,17 @@ function ConnectedExportPanel({
|
|
|
6585
6584
|
),
|
|
6586
6585
|
mode !== "download" && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
6587
6586
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6588
|
-
|
|
6587
|
+
chunkP4NS4LV7_cjs.ExportWorkspacePicker,
|
|
6589
6588
|
{
|
|
6590
6589
|
workspaces: workspaceOptions,
|
|
6591
6590
|
selectedId: targetId,
|
|
6592
6591
|
onSelect: setTargetId
|
|
6593
6592
|
}
|
|
6594
6593
|
),
|
|
6595
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6594
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkP4NS4LV7_cjs.TransferConflictChooser, { value: conflict, onChange: setConflict })
|
|
6596
6595
|
] }),
|
|
6597
6596
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6598
|
-
|
|
6597
|
+
chunkP4NS4LV7_cjs.TransferPlanSummary,
|
|
6599
6598
|
{
|
|
6600
6599
|
lines: summary.lines,
|
|
6601
6600
|
warnings: summary.warnings,
|
|
@@ -6612,7 +6611,7 @@ function ConnectedExportPanel({
|
|
|
6612
6611
|
] })
|
|
6613
6612
|
] }),
|
|
6614
6613
|
!jobId && /* @__PURE__ */ jsxRuntime.jsx(
|
|
6615
|
-
|
|
6614
|
+
chunkP4NS4LV7_cjs.ExportFooter,
|
|
6616
6615
|
{
|
|
6617
6616
|
onCancel: onClose,
|
|
6618
6617
|
onSubmit: handleSubmit,
|
|
@@ -6653,7 +6652,7 @@ function OpenExportDialog({
|
|
|
6653
6652
|
children: [
|
|
6654
6653
|
/* @__PURE__ */ jsxRuntime.jsxs(chunkULWRNGGE_cjs.ModalHeader, { children: [
|
|
6655
6654
|
/* @__PURE__ */ jsxRuntime.jsx(ui.DialogTitle, { children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
6656
|
-
|
|
6655
|
+
chunkP4NS4LV7_cjs.ExportModalTitle,
|
|
6657
6656
|
{
|
|
6658
6657
|
workspace: workspace ? {
|
|
6659
6658
|
icon: /* @__PURE__ */ jsxRuntime.jsx("span", { className: "touch-hit inline-flex", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -6821,7 +6820,7 @@ function ConnectedFactsPage({
|
|
|
6821
6820
|
setView(request.view === "list" ? "table" : request.view);
|
|
6822
6821
|
onRequestHandled?.("view");
|
|
6823
6822
|
}, [request?.view]);
|
|
6824
|
-
const factsRowHeight = pageView.rowHeight ===
|
|
6823
|
+
const factsRowHeight = pageView.rowHeight === chunkP4NS4LV7_cjs.ROW_MIN ? chunkP4NS4LV7_cjs.ROW_MIN : chunkP4NS4LV7_cjs.rowHeightForLines(chunkP4NS4LV7_cjs.linesForRowHeight(pageView.rowHeight));
|
|
6825
6824
|
const [isExportOpen, setIsExportOpen] = React7.useState(false);
|
|
6826
6825
|
const [filterOpen, setFilterOpen] = React7.useState(false);
|
|
6827
6826
|
const [factSection, setFactSection] = React7.useState(null);
|
|
@@ -6875,7 +6874,7 @@ function ConnectedFactsPage({
|
|
|
6875
6874
|
onNewFact: composing && !editingId ? () => void 0 : composer.startNewFact,
|
|
6876
6875
|
navSlotRef: setNavSlot,
|
|
6877
6876
|
navigator: view === "table" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
6878
|
-
|
|
6877
|
+
chunkLFVD3CS5_cjs.GridRowNavigator,
|
|
6879
6878
|
{
|
|
6880
6879
|
gridApi,
|
|
6881
6880
|
selectedId: editingId,
|
|
@@ -6888,7 +6887,7 @@ function ConnectedFactsPage({
|
|
|
6888
6887
|
tools: /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
6889
6888
|
view === "table" && /* @__PURE__ */ jsxRuntime.jsx(chunkYD3RN2FY_cjs.FactsFieldsButton, { getGridApi: () => gridApiRef.current }),
|
|
6890
6889
|
view === "table" && /* @__PURE__ */ jsxRuntime.jsx(
|
|
6891
|
-
|
|
6890
|
+
chunkP4NS4LV7_cjs.RowDensityControl,
|
|
6892
6891
|
{
|
|
6893
6892
|
rowHeight: factsRowHeight,
|
|
6894
6893
|
onRowHeightChange: pageView.setRowHeight,
|
|
@@ -7041,7 +7040,7 @@ function ConnectedFactsPage({
|
|
|
7041
7040
|
className: ui.cn("h-full", view !== "table" || notes.length === 0 ? "hidden" : void 0),
|
|
7042
7041
|
"data-testid": "facts-table-pane",
|
|
7043
7042
|
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
7044
|
-
|
|
7043
|
+
chunkLKK52DEY_cjs.GridView,
|
|
7045
7044
|
{
|
|
7046
7045
|
items: filteredNotes,
|
|
7047
7046
|
columnDefs: grid.factColumns,
|
|
@@ -8017,7 +8016,7 @@ function ConnectedPremiumModels() {
|
|
|
8017
8016
|
if (target !== void 0) save(target);
|
|
8018
8017
|
},
|
|
8019
8018
|
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
8020
|
-
|
|
8019
|
+
chunkLKK52DEY_cjs.GridView,
|
|
8021
8020
|
{
|
|
8022
8021
|
items: rows,
|
|
8023
8022
|
columnDefs: COLUMNS,
|
|
@@ -9554,7 +9553,7 @@ function ConnectedWorkspaceMembers({
|
|
|
9554
9553
|
minWidth: 150,
|
|
9555
9554
|
sortable: true,
|
|
9556
9555
|
valueGetter: (p) => p.data ? memberName(p.data.user) : "",
|
|
9557
|
-
cellRenderer: (p) => p.data ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
9556
|
+
cellRenderer: (p) => p.data ? /* @__PURE__ */ jsxRuntime.jsx(chunkWUG24K7P_cjs.MemberNameCell, { children: renderMember(p.data) }) : null
|
|
9558
9557
|
},
|
|
9559
9558
|
{
|
|
9560
9559
|
colId: "email",
|
|
@@ -9564,7 +9563,7 @@ function ConnectedWorkspaceMembers({
|
|
|
9564
9563
|
sortable: true,
|
|
9565
9564
|
valueGetter: (p) => p.data?.user.email ?? "",
|
|
9566
9565
|
// Plain text, not a mailto: the row's click selects it.
|
|
9567
|
-
cellRenderer: (p) => p.data?.user.email ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
9566
|
+
cellRenderer: (p) => p.data?.user.email ? /* @__PURE__ */ jsxRuntime.jsx(chunkWUG24K7P_cjs.MemberMutedText, { className: "truncate", title: p.data.user.email, children: p.data.user.email }) : null
|
|
9568
9567
|
},
|
|
9569
9568
|
{
|
|
9570
9569
|
colId: "role",
|
|
@@ -9578,7 +9577,7 @@ function ConnectedWorkspaceMembers({
|
|
|
9578
9577
|
if (!row2) return null;
|
|
9579
9578
|
const lock = roleLock(row2.user.external_id, selfId, isOwner);
|
|
9580
9579
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
9581
|
-
|
|
9580
|
+
chunkWUG24K7P_cjs.MemberRoleCell,
|
|
9582
9581
|
{
|
|
9583
9582
|
role: row2.role,
|
|
9584
9583
|
roles: ALL_ROLES,
|
|
@@ -9598,7 +9597,7 @@ function ConnectedWorkspaceMembers({
|
|
|
9598
9597
|
minWidth: 125,
|
|
9599
9598
|
sortable: true,
|
|
9600
9599
|
valueGetter: (p) => p.data ? new Date(p.data.joined_at).getTime() : "",
|
|
9601
|
-
cellRenderer: (p) => p.data ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
9600
|
+
cellRenderer: (p) => p.data ? /* @__PURE__ */ jsxRuntime.jsx(chunkWUG24K7P_cjs.MemberMutedText, { className: "cursor-default", children: ui.formatFriendlyDate(p.data.joined_at) }) : null
|
|
9602
9601
|
},
|
|
9603
9602
|
{
|
|
9604
9603
|
colId: "conversation_count",
|
|
@@ -9608,7 +9607,7 @@ function ConnectedWorkspaceMembers({
|
|
|
9608
9607
|
sortable: true,
|
|
9609
9608
|
type: "numericColumn",
|
|
9610
9609
|
valueGetter: (p) => p.data?.conversation_count ?? 0,
|
|
9611
|
-
cellRenderer: (p) => p.data ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
9610
|
+
cellRenderer: (p) => p.data ? /* @__PURE__ */ jsxRuntime.jsx(chunkWUG24K7P_cjs.MemberMutedText, { children: p.data.conversation_count }) : null
|
|
9612
9611
|
},
|
|
9613
9612
|
{
|
|
9614
9613
|
colId: "document_count",
|
|
@@ -9618,7 +9617,7 @@ function ConnectedWorkspaceMembers({
|
|
|
9618
9617
|
sortable: true,
|
|
9619
9618
|
type: "numericColumn",
|
|
9620
9619
|
valueGetter: (p) => p.data?.document_count ?? 0,
|
|
9621
|
-
cellRenderer: (p) => p.data ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
9620
|
+
cellRenderer: (p) => p.data ? /* @__PURE__ */ jsxRuntime.jsx(chunkWUG24K7P_cjs.MemberMutedText, { children: p.data.document_count }) : null
|
|
9622
9621
|
},
|
|
9623
9622
|
{
|
|
9624
9623
|
colId: "files_mb",
|
|
@@ -9631,7 +9630,7 @@ function ConnectedWorkspaceMembers({
|
|
|
9631
9630
|
cellRenderer: (p) => {
|
|
9632
9631
|
if (!p.data) return null;
|
|
9633
9632
|
const mb = p.data.files_mb ?? 0;
|
|
9634
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
9633
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(chunkWUG24K7P_cjs.MemberMutedText, { children: [
|
|
9635
9634
|
mb >= 100 ? Math.round(mb).toLocaleString("en-US") : mb.toFixed(1),
|
|
9636
9635
|
" MB"
|
|
9637
9636
|
] });
|
|
@@ -9671,10 +9670,10 @@ Note that ${members2} may have saved private content in the ${workspaceWord2} th
|
|
|
9671
9670
|
);
|
|
9672
9671
|
const canChangeRoleSelected = selected.some((m) => !roleLock(m.user.external_id, selfId, isOwner));
|
|
9673
9672
|
const ownerOnly = `Only available to ${workspaceWord2} owner`;
|
|
9674
|
-
if (isLoading) return /* @__PURE__ */ jsxRuntime.jsx(
|
|
9673
|
+
if (isLoading) return /* @__PURE__ */ jsxRuntime.jsx(chunkWUG24K7P_cjs.MemberListLoading, {});
|
|
9675
9674
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { "data-testid": "workspace-users", className: "relative flex flex-col", children: [
|
|
9676
9675
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex-1 overflow-auto", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
9677
|
-
|
|
9676
|
+
chunkLKK52DEY_cjs.GridView,
|
|
9678
9677
|
{
|
|
9679
9678
|
items: rows,
|
|
9680
9679
|
columnDefs,
|
|
@@ -9689,7 +9688,7 @@ Note that ${members2} may have saved private content in the ${workspaceWord2} th
|
|
|
9689
9688
|
}
|
|
9690
9689
|
) }),
|
|
9691
9690
|
!readOnly && /* @__PURE__ */ jsxRuntime.jsx(chunkV4ISCZJ7_cjs.SelectionBar, { count: selected.length, onClear: () => setSelected([]), children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
9692
|
-
|
|
9691
|
+
chunkWUG24K7P_cjs.MemberBulkActions,
|
|
9693
9692
|
{
|
|
9694
9693
|
roles: BULK_ROLES,
|
|
9695
9694
|
onChangeRole: (value) => void changeSelectedRoles(value),
|
|
@@ -9733,13 +9732,13 @@ function ConnectedWorkspaceSettings({
|
|
|
9733
9732
|
const [membersExpanded, setMembersExpanded] = React7.useState(false);
|
|
9734
9733
|
const [shareOpen, setShareOpen] = React7.useState(false);
|
|
9735
9734
|
if (!workspace) {
|
|
9736
|
-
return /* @__PURE__ */ jsxRuntime.jsx(chunkDAL6B556_cjs.PageLoading, { children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
9735
|
+
return /* @__PURE__ */ jsxRuntime.jsx(chunkDAL6B556_cjs.PageLoading, { children: /* @__PURE__ */ jsxRuntime.jsx(chunkLFVD3CS5_cjs.LoadingIndicator, { message: "Loading workspace..." }) });
|
|
9737
9736
|
}
|
|
9738
9737
|
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
9739
9738
|
/* @__PURE__ */ jsxRuntime.jsxs(chunkDAL6B556_cjs.WorkspacePageFrame, { testId, children: [
|
|
9740
9739
|
/* @__PURE__ */ jsxRuntime.jsxs(chunkDAL6B556_cjs.WorkspaceIdentityPanel, { children: [
|
|
9741
9740
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
9742
|
-
|
|
9741
|
+
chunkLFVD3CS5_cjs.EntityIdentityBar,
|
|
9743
9742
|
{
|
|
9744
9743
|
testId: "workspace-identity-bar",
|
|
9745
9744
|
canEdit: isOwner,
|
|
@@ -9756,7 +9755,7 @@ function ConnectedWorkspaceSettings({
|
|
|
9756
9755
|
label: "Name",
|
|
9757
9756
|
value: workspace.name,
|
|
9758
9757
|
placeholder: "Untitled",
|
|
9759
|
-
maxLength:
|
|
9758
|
+
maxLength: chunkLFVD3CS5_cjs.IDENTITY_NAME_MAX_LENGTH,
|
|
9760
9759
|
valueClassName: "truncate text-base font-semibold",
|
|
9761
9760
|
testId: "workspace-home-title",
|
|
9762
9761
|
hideLabel: true,
|
|
@@ -9992,7 +9991,7 @@ function ConnectedMailboxSyncDialog({
|
|
|
9992
9991
|
error: foldersError
|
|
9993
9992
|
} = react.useMailboxFolders(catalog.vendor_key, open && tokensBridged);
|
|
9994
9993
|
const foldersLoading = !tokensBridged || foldersQueryLoading;
|
|
9995
|
-
const folderTree =
|
|
9994
|
+
const folderTree = chunkWUG24K7P_cjs.buildMailFolderTree(folders);
|
|
9996
9995
|
const [expandAllNonce, setExpandAllNonce] = React7.useState(0);
|
|
9997
9996
|
const [collapseAllNonce, setCollapseAllNonce] = React7.useState(0);
|
|
9998
9997
|
const selectAllIds = folderTree.flatMap(
|
|
@@ -10123,7 +10122,7 @@ function ConnectedMailboxSyncDialog({
|
|
|
10123
10122
|
}
|
|
10124
10123
|
)
|
|
10125
10124
|
) : folders.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx(chunk7IQDS246_cjs.SyncNote, { children: "No folders found." }) : /* @__PURE__ */ jsxRuntime.jsx(chunk7IQDS246_cjs.SyncTreeFrame, { children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
10126
|
-
|
|
10125
|
+
chunkWUG24K7P_cjs.MailFolderTree,
|
|
10127
10126
|
{
|
|
10128
10127
|
nodes: folderTree,
|
|
10129
10128
|
selected: selectedFolders,
|
|
@@ -13556,7 +13555,7 @@ function useConnectedWorkspaceList({
|
|
|
13556
13555
|
};
|
|
13557
13556
|
}
|
|
13558
13557
|
var WorkspaceTableView = React7.lazy(
|
|
13559
|
-
() => import('../WorkspaceTableView-
|
|
13558
|
+
() => import('../WorkspaceTableView-S2ZHZ64L.cjs').then((m) => ({ default: m.WorkspaceTableView }))
|
|
13560
13559
|
);
|
|
13561
13560
|
var WORKSPACES_TAB_ID = "workspaces";
|
|
13562
13561
|
var defaultRenderMember2 = (user, size) => {
|
|
@@ -13608,7 +13607,7 @@ function ConnectedWorkspaceList({
|
|
|
13608
13607
|
else void openWorkspace(workspace.external_id, { name: workspace.name });
|
|
13609
13608
|
};
|
|
13610
13609
|
const createDisabledReason = list.canCreateProjects === false ? react.PROJECT_CREATION_DENIED_REASON : void 0;
|
|
13611
|
-
if (list.isLoading) return /* @__PURE__ */ jsxRuntime.jsx(
|
|
13610
|
+
if (list.isLoading) return /* @__PURE__ */ jsxRuntime.jsx(chunkLFVD3CS5_cjs.LoadingIndicator, { message: "Loading workspaces..." });
|
|
13612
13611
|
if (list.error) {
|
|
13613
13612
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
13614
13613
|
chunkM36FYCOE_cjs.HomeLoadError,
|
|
@@ -13681,7 +13680,7 @@ function ConnectedWorkspaceList({
|
|
|
13681
13680
|
workspaceState
|
|
13682
13681
|
}
|
|
13683
13682
|
) })
|
|
13684
|
-
) : /* @__PURE__ */ jsxRuntime.jsx(React7.Suspense, { fallback: /* @__PURE__ */ jsxRuntime.jsx(
|
|
13683
|
+
) : /* @__PURE__ */ jsxRuntime.jsx(React7.Suspense, { fallback: /* @__PURE__ */ jsxRuntime.jsx(chunkLFVD3CS5_cjs.LoadingIndicator, { message: "Loading grid..." }), children: /* @__PURE__ */ jsxRuntime.jsx(chunkM36FYCOE_cjs.HomeCenteredColumn, { children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
13685
13684
|
WorkspaceTableView,
|
|
13686
13685
|
{
|
|
13687
13686
|
list,
|
|
@@ -13983,7 +13982,7 @@ function ConnectedContactCardForm({
|
|
|
13983
13982
|
}) {
|
|
13984
13983
|
const { notify: notify17 } = chunkZLSMS6OK_cjs.useBlocksEnvironment();
|
|
13985
13984
|
const [form, setForm] = React7.useState(
|
|
13986
|
-
() => contact?.card ?
|
|
13985
|
+
() => contact?.card ? chunkWUG24K7P_cjs.contactToForm(contact.card) : chunkWUG24K7P_cjs.EMPTY_CONTACT_FORM
|
|
13987
13986
|
);
|
|
13988
13987
|
const [invite, setInvite] = React7.useState(false);
|
|
13989
13988
|
const [errors, setErrors] = React7.useState({});
|
|
@@ -13997,14 +13996,14 @@ function ConnectedContactCardForm({
|
|
|
13997
13996
|
const locked = !!contact && !contact.card;
|
|
13998
13997
|
const set = (key, value) => setForm((f) => ({ ...f, [key]: value }));
|
|
13999
13998
|
const submit = () => {
|
|
14000
|
-
const found =
|
|
14001
|
-
const email =
|
|
13999
|
+
const found = chunkWUG24K7P_cjs.validateContactForm(form);
|
|
14000
|
+
const email = chunkWUG24K7P_cjs.inviteEmail(form);
|
|
14002
14001
|
if (invite && !email && !found.emails) found.emails = "Add an e-mail address to invite";
|
|
14003
14002
|
setErrors(found);
|
|
14004
14003
|
setServerError(null);
|
|
14005
14004
|
setDuplicateOf(null);
|
|
14006
14005
|
if (Object.keys(found).length) return;
|
|
14007
|
-
const card =
|
|
14006
|
+
const card = chunkWUG24K7P_cjs.formToContactCard(form);
|
|
14008
14007
|
const onError = (err) => {
|
|
14009
14008
|
setServerError(browser.refusalReason(err, "Could not save"));
|
|
14010
14009
|
if (err instanceof browser.DuplicateContactError && err.contactId !== contact?.external_id)
|
|
@@ -14012,10 +14011,10 @@ function ConnectedContactCardForm({
|
|
|
14012
14011
|
};
|
|
14013
14012
|
const onInvited = (result) => {
|
|
14014
14013
|
if (result.status === "failed") {
|
|
14015
|
-
setServerError(result.outcome_detail ||
|
|
14014
|
+
setServerError(result.outcome_detail || chunkWUG24K7P_cjs.DEFAULT_CONTACT_OUTCOME_LABELS.failed);
|
|
14016
14015
|
return;
|
|
14017
14016
|
}
|
|
14018
|
-
notify17(
|
|
14017
|
+
notify17(chunkWUG24K7P_cjs.contactOutcomeMessage({ ...result, outcome: result.outcome ?? "invited" }), "success");
|
|
14019
14018
|
onDone();
|
|
14020
14019
|
};
|
|
14021
14020
|
if (invite && email) {
|
|
@@ -14071,7 +14070,7 @@ function ConnectedContactCardForm({
|
|
|
14071
14070
|
linked && contact && /* @__PURE__ */ jsxRuntime.jsxs("p", { className: "text-sm text-muted-foreground", "data-testid": "contact-linked-email", children: [
|
|
14072
14071
|
"ARBI: ",
|
|
14073
14072
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-medium text-foreground", children: contact.email }),
|
|
14074
|
-
|
|
14073
|
+
chunkWUG24K7P_cjs.contactStatusLabel(contact.status) && ` \xB7 ${chunkWUG24K7P_cjs.contactStatusLabel(contact.status)}`
|
|
14075
14074
|
] }),
|
|
14076
14075
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid gap-1", children: [
|
|
14077
14076
|
/* @__PURE__ */ jsxRuntime.jsx(ui.Label, { htmlFor: "contact-name", children: "Name" }),
|
|
@@ -14274,7 +14273,7 @@ function ImportVcfSummary({
|
|
|
14274
14273
|
/* @__PURE__ */ jsxRuntime.jsxs("p", { className: "min-w-0", children: [
|
|
14275
14274
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-medium text-foreground", children: o.file }),
|
|
14276
14275
|
": ",
|
|
14277
|
-
"error" in o ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-destructive", children: o.error }) : /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-muted-foreground", children:
|
|
14276
|
+
"error" in o ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-destructive", children: o.error }) : /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-muted-foreground", children: chunkWUG24K7P_cjs.summarizeImport(o.result) })
|
|
14278
14277
|
] }),
|
|
14279
14278
|
"result" in o && o.result.skipped.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs("details", { className: "text-xs text-muted-foreground", children: [
|
|
14280
14279
|
/* @__PURE__ */ jsxRuntime.jsx("summary", { className: "cursor-pointer", children: "Why cards were skipped" }),
|
|
@@ -14312,7 +14311,7 @@ function ConnectedContactsDirectory({
|
|
|
14312
14311
|
const [confirmDelete, setConfirmDelete] = React7.useState(null);
|
|
14313
14312
|
const [importState, setImportState] = React7.useState(null);
|
|
14314
14313
|
const contacts = React7.useMemo(() => data.filter((c) => !(c.user && ui.isAgent(c.user))), [data]);
|
|
14315
|
-
const shown = React7.useMemo(() => contacts.filter((c) =>
|
|
14314
|
+
const shown = React7.useMemo(() => contacts.filter((c) => chunkWUG24K7P_cjs.matchesContact(c, q)), [contacts, q]);
|
|
14316
14315
|
if (editing)
|
|
14317
14316
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
14318
14317
|
"section",
|
|
@@ -14331,7 +14330,7 @@ function ConnectedContactsDirectory({
|
|
|
14331
14330
|
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ArrowLeft, { className: "size-4" })
|
|
14332
14331
|
}
|
|
14333
14332
|
),
|
|
14334
|
-
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "truncate text-base font-semibold text-foreground", children: editing === "new" ? "New contact" :
|
|
14333
|
+
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "truncate text-base font-semibold text-foreground", children: editing === "new" ? "New contact" : chunkWUG24K7P_cjs.contactName(editing) || "Contact" })
|
|
14335
14334
|
] }),
|
|
14336
14335
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
14337
14336
|
ConnectedContactCardForm,
|
|
@@ -14403,8 +14402,8 @@ function ConnectedContactsDirectory({
|
|
|
14403
14402
|
"\u201D."
|
|
14404
14403
|
] }) : /* @__PURE__ */ jsxRuntime.jsx("ul", { className: "grid divide-y divide-border rounded-lg border border-border", children: shown.map((c, i) => {
|
|
14405
14404
|
const id = c.external_id ?? `row-${i}`;
|
|
14406
|
-
const name =
|
|
14407
|
-
const status =
|
|
14405
|
+
const name = chunkWUG24K7P_cjs.contactName(c);
|
|
14406
|
+
const status = chunkWUG24K7P_cjs.contactStatusLabel(c.status);
|
|
14408
14407
|
const peer = onMessage && c.status === "registered" ? c.user : null;
|
|
14409
14408
|
return /* @__PURE__ */ jsxRuntime.jsxs("li", { className: "flex items-center justify-between gap-2 px-3 py-2 text-sm", children: [
|
|
14410
14409
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
@@ -14434,7 +14433,7 @@ function ConnectedContactsDirectory({
|
|
|
14434
14433
|
)
|
|
14435
14434
|
] }),
|
|
14436
14435
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "truncate text-xs text-muted-foreground", children: [
|
|
14437
|
-
|
|
14436
|
+
chunkWUG24K7P_cjs.primaryEmail(c) !== name && chunkWUG24K7P_cjs.primaryEmail(c),
|
|
14438
14437
|
c.card?.organization,
|
|
14439
14438
|
c.card?.birthday && `Birthday ${c.card.birthday}`
|
|
14440
14439
|
].filter(Boolean).join(" \xB7 ") })
|
|
@@ -14505,36 +14504,36 @@ function ConnectedAddContacts({
|
|
|
14505
14504
|
const [rows, setRows] = React7.useState(null);
|
|
14506
14505
|
const selfEmail = arbi.isLoggedIn ? arbi.user.identity()?.email : null;
|
|
14507
14506
|
const submit = async () => {
|
|
14508
|
-
if (!
|
|
14507
|
+
if (!chunkWUG24K7P_cjs.emailTokens(text2).length) {
|
|
14509
14508
|
notify17("Please enter at least one email address", "error");
|
|
14510
14509
|
return;
|
|
14511
14510
|
}
|
|
14512
|
-
const plan =
|
|
14513
|
-
if (plan.send.length >
|
|
14514
|
-
notify17(`Maximum ${
|
|
14511
|
+
const plan = chunkWUG24K7P_cjs.planContactInvites(text2, contacts, selfEmail);
|
|
14512
|
+
if (plan.send.length > chunkWUG24K7P_cjs.MAX_INVITE_EMAILS) {
|
|
14513
|
+
notify17(`Maximum ${chunkWUG24K7P_cjs.MAX_INVITE_EMAILS} new emails allowed per batch`, "error");
|
|
14515
14514
|
return;
|
|
14516
14515
|
}
|
|
14517
14516
|
setRows(plan.rows);
|
|
14518
14517
|
if (!plan.send.length) {
|
|
14519
|
-
notify17(
|
|
14518
|
+
notify17(chunkWUG24K7P_cjs.summarizeUnsentInvites(plan.rows), "info");
|
|
14520
14519
|
onSuccess?.();
|
|
14521
14520
|
return;
|
|
14522
14521
|
}
|
|
14523
14522
|
try {
|
|
14524
14523
|
const response = await invite.mutateAsync(plan.send);
|
|
14525
|
-
setRows(
|
|
14526
|
-
const summary =
|
|
14524
|
+
setRows(chunkWUG24K7P_cjs.applyContactInviteResults(plan, response));
|
|
14525
|
+
const summary = chunkWUG24K7P_cjs.summarizeContactInvites(response);
|
|
14527
14526
|
notify17(summary.message, summary.failed ? "error" : "success");
|
|
14528
14527
|
onSuccess?.();
|
|
14529
14528
|
} catch (error) {
|
|
14530
14529
|
const message = browser.refusalReason(error, "Failed to add contacts");
|
|
14531
|
-
setRows(
|
|
14530
|
+
setRows(chunkWUG24K7P_cjs.failContactInvites(plan, message));
|
|
14532
14531
|
notify17(message, "error");
|
|
14533
14532
|
}
|
|
14534
14533
|
};
|
|
14535
14534
|
if (rows)
|
|
14536
14535
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
14537
|
-
|
|
14536
|
+
chunkWUG24K7P_cjs.AddContactsResults,
|
|
14538
14537
|
{
|
|
14539
14538
|
rows,
|
|
14540
14539
|
onDone: onClose,
|
|
@@ -14545,11 +14544,11 @@ function ConnectedAddContacts({
|
|
|
14545
14544
|
}
|
|
14546
14545
|
);
|
|
14547
14546
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
14548
|
-
|
|
14547
|
+
chunkWUG24K7P_cjs.AddContactsForm,
|
|
14549
14548
|
{
|
|
14550
14549
|
value: text2,
|
|
14551
14550
|
onChange: setText,
|
|
14552
|
-
emailCount:
|
|
14551
|
+
emailCount: chunkWUG24K7P_cjs.emailTokens(text2).length,
|
|
14553
14552
|
isPending: invite.isPending,
|
|
14554
14553
|
onSubmit: () => void submit(),
|
|
14555
14554
|
onCancel: onClose,
|
|
@@ -14629,7 +14628,7 @@ function recentConversations(conversations) {
|
|
|
14629
14628
|
return [...conversations].sort((a, b) => time(b.updated_at) - time(a.updated_at)).slice(0, RECENT_ROWS).map((c) => ({
|
|
14630
14629
|
id: c.external_id,
|
|
14631
14630
|
title: c.title?.trim() || "Untitled thread",
|
|
14632
|
-
subtitle: c.status ? [
|
|
14631
|
+
subtitle: c.status ? [chunkUR6DWL4L_cjs.STATUS_LABELS[chunkUR6DWL4L_cjs.asTaskStatus(c.status)], c.due_at ? `due ${shortDate(c.due_at)}` : null].filter(Boolean).join(" \xB7 ") : `${c.message_count} ${c.message_count === 1 ? "message" : "messages"}`,
|
|
14633
14632
|
time: timeAndDate(c.updated_at)
|
|
14634
14633
|
}));
|
|
14635
14634
|
}
|
|
@@ -15403,7 +15402,7 @@ function MailRecipientInput({
|
|
|
15403
15402
|
const { head, token } = currentToken(value);
|
|
15404
15403
|
const found = source.useSuggestions(token);
|
|
15405
15404
|
const options2 = React7.useMemo(() => {
|
|
15406
|
-
const chosen = new Set(
|
|
15405
|
+
const chosen = new Set(chunkWUG24K7P_cjs.parseMailRecipients(head).map((r) => r.email.toLowerCase()));
|
|
15407
15406
|
return found.filter((p) => !chosen.has(p.email.toLowerCase())).slice(0, 8);
|
|
15408
15407
|
}, [found, head]);
|
|
15409
15408
|
const open = focused && !dismissed && token.length > 0 && options2.length > 0;
|
|
@@ -15551,7 +15550,7 @@ function useWordBody({
|
|
|
15551
15550
|
}
|
|
15552
15551
|
var MailBodyEditor = React7.lazy(
|
|
15553
15552
|
() => import('../MailBodyEditor-D7MGJMLH.cjs').catch(() => ({
|
|
15554
|
-
default:
|
|
15553
|
+
default: chunkWUG24K7P_cjs.PlainMailBodyEditor
|
|
15555
15554
|
}))
|
|
15556
15555
|
);
|
|
15557
15556
|
var NativeDocxEditor = React7.lazy(
|
|
@@ -15644,9 +15643,9 @@ function MailComposerForm({
|
|
|
15644
15643
|
}, [drafts, draftId, subject]);
|
|
15645
15644
|
const body = () => ({
|
|
15646
15645
|
...initial,
|
|
15647
|
-
to:
|
|
15648
|
-
cc:
|
|
15649
|
-
bcc:
|
|
15646
|
+
to: chunkWUG24K7P_cjs.parseMailRecipients(to),
|
|
15647
|
+
cc: chunkWUG24K7P_cjs.parseMailRecipients(cc),
|
|
15648
|
+
bcc: chunkWUG24K7P_cjs.parseMailRecipients(bcc),
|
|
15650
15649
|
subject,
|
|
15651
15650
|
text: text2,
|
|
15652
15651
|
html,
|
|
@@ -16118,7 +16117,7 @@ function MailComposerForm({
|
|
|
16118
16117
|
}
|
|
16119
16118
|
),
|
|
16120
16119
|
documents && /* @__PURE__ */ jsxRuntime.jsx(
|
|
16121
|
-
|
|
16120
|
+
chunkWUG24K7P_cjs.MailDocumentPicker,
|
|
16122
16121
|
{
|
|
16123
16122
|
documents: documents.documents,
|
|
16124
16123
|
disabled: locked,
|
|
@@ -16237,7 +16236,7 @@ function ConnectedMailComposer({
|
|
|
16237
16236
|
openId,
|
|
16238
16237
|
async (from, id) => {
|
|
16239
16238
|
const message = await client.getMessage(from, id);
|
|
16240
|
-
return
|
|
16239
|
+
return chunkWUG24K7P_cjs.draftMailCompose(
|
|
16241
16240
|
message,
|
|
16242
16241
|
await hydrateMailAttachments(client, from, message.id, message.attachments, {
|
|
16243
16242
|
isOnline,
|
|
@@ -16251,11 +16250,11 @@ function ConnectedMailComposer({
|
|
|
16251
16250
|
const start = React7.useMemo(() => {
|
|
16252
16251
|
if (replyTo)
|
|
16253
16252
|
return original.data && account ? {
|
|
16254
|
-
...
|
|
16253
|
+
...chunkWUG24K7P_cjs.replyMailCompose(original.data, { account, folderRole: "inbox" }),
|
|
16255
16254
|
text: "",
|
|
16256
16255
|
html: ""
|
|
16257
16256
|
} : void 0;
|
|
16258
|
-
return reloaded ? draft.data : initial ?? (openId ? draft.data :
|
|
16257
|
+
return reloaded ? draft.data : initial ?? (openId ? draft.data : chunkWUG24K7P_cjs.emptyMailCompose());
|
|
16259
16258
|
}, [replyTo, original.data, account, reloaded, initial, openId, draft.data]);
|
|
16260
16259
|
if (!start)
|
|
16261
16260
|
return draft.error ?? original.error ? /* @__PURE__ */ jsxRuntime.jsx("p", { role: "alert", className: "p-4 text-sm text-destructive", children: (draft.error ?? original.error)?.message }) : /* @__PURE__ */ jsxRuntime.jsx("p", { className: "p-4 text-sm text-muted-foreground", children: "Loading draft\u2026" });
|
|
@@ -16562,7 +16561,7 @@ function ConnectedMailbox({
|
|
|
16562
16561
|
const message = detail.data;
|
|
16563
16562
|
React7.useEffect(() => {
|
|
16564
16563
|
if (!composeAttachments?.length) return;
|
|
16565
|
-
openCompose({ ...
|
|
16564
|
+
openCompose({ ...chunkWUG24K7P_cjs.emptyMailCompose(), attachments: composeAttachments });
|
|
16566
16565
|
onComposeOpened?.();
|
|
16567
16566
|
}, [composeAttachments]);
|
|
16568
16567
|
React7.useEffect(() => {
|
|
@@ -16694,7 +16693,7 @@ function ConnectedMailbox({
|
|
|
16694
16693
|
const editDraft = async () => {
|
|
16695
16694
|
if (!message) return;
|
|
16696
16695
|
try {
|
|
16697
|
-
openCompose(
|
|
16696
|
+
openCompose(chunkWUG24K7P_cjs.draftMailCompose(message, await hydrate(message.attachments)));
|
|
16698
16697
|
} catch (e) {
|
|
16699
16698
|
setActionError(e instanceof Error ? e.message : "Could not load draft attachments");
|
|
16700
16699
|
}
|
|
@@ -16703,7 +16702,7 @@ function ConnectedMailbox({
|
|
|
16703
16702
|
if (!message || !account) return;
|
|
16704
16703
|
try {
|
|
16705
16704
|
const attachments = forward ? await hydrate(message.attachments) : [];
|
|
16706
|
-
openCompose(
|
|
16705
|
+
openCompose(chunkWUG24K7P_cjs.replyMailCompose(message, { account, folderRole, forward, all, attachments }));
|
|
16707
16706
|
} catch (e) {
|
|
16708
16707
|
setActionError(e instanceof Error ? e.message : "Could not prepare forwarded attachments");
|
|
16709
16708
|
}
|
|
@@ -16734,7 +16733,7 @@ function ConnectedMailbox({
|
|
|
16734
16733
|
onTabChange: () => {
|
|
16735
16734
|
},
|
|
16736
16735
|
compactBreakpoint: 360,
|
|
16737
|
-
firstTabContent: account ? /* @__PURE__ */ jsxRuntime.jsxs(
|
|
16736
|
+
firstTabContent: account ? /* @__PURE__ */ jsxRuntime.jsxs(chunkP4NS4LV7_cjs.FilesFilterBar, { children: [
|
|
16738
16737
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
16739
16738
|
chunk2EI7NCUA_cjs.FilterInput,
|
|
16740
16739
|
{
|
|
@@ -16769,7 +16768,7 @@ function ConnectedMailbox({
|
|
|
16769
16768
|
}
|
|
16770
16769
|
),
|
|
16771
16770
|
folderList && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex shrink-0 items-center gap-2", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
16772
|
-
|
|
16771
|
+
chunkP4NS4LV7_cjs.FolderFilterButton,
|
|
16773
16772
|
{
|
|
16774
16773
|
label: folderList.find((f) => f.id === folderId)?.name ?? "Folders",
|
|
16775
16774
|
isActive: false,
|
|
@@ -16777,7 +16776,7 @@ function ConnectedMailbox({
|
|
|
16777
16776
|
onOpenChange: setFolderMenuOpen,
|
|
16778
16777
|
testId: "mail-folder-button",
|
|
16779
16778
|
children: folderList.map((item) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
16780
|
-
|
|
16779
|
+
chunkP4NS4LV7_cjs.FolderPickerRow,
|
|
16781
16780
|
{
|
|
16782
16781
|
label: item.name,
|
|
16783
16782
|
count: item.unread > 0 ? item.unread : void 0,
|
|
@@ -16823,7 +16822,7 @@ function ConnectedMailbox({
|
|
|
16823
16822
|
{
|
|
16824
16823
|
size: "sm",
|
|
16825
16824
|
disabled: !ready || !!compose,
|
|
16826
|
-
onClick: () => openCompose(
|
|
16825
|
+
onClick: () => openCompose(chunkWUG24K7P_cjs.emptyMailCompose()),
|
|
16827
16826
|
children: [
|
|
16828
16827
|
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.Plus, { className: "mr-1.5 size-4" }),
|
|
16829
16828
|
"Email"
|
|
@@ -16902,7 +16901,7 @@ function ConnectedMailbox({
|
|
|
16902
16901
|
onEdit: (value) => openCompose({ ...value })
|
|
16903
16902
|
}),
|
|
16904
16903
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: deviceFolder ? "hidden" : "min-h-0 flex-1", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
16905
|
-
|
|
16904
|
+
chunkWUG24K7P_cjs.MailGrid,
|
|
16906
16905
|
{
|
|
16907
16906
|
messages: filteredMessages,
|
|
16908
16907
|
loading: list.isPending && list.fetchStatus !== "idle",
|
|
@@ -16966,7 +16965,7 @@ function ConnectedMailbox({
|
|
|
16966
16965
|
},
|
|
16967
16966
|
`${account?.id}-${composeSession}`
|
|
16968
16967
|
) : message && selected ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
16969
|
-
|
|
16968
|
+
chunkWUG24K7P_cjs.MailMessageView,
|
|
16970
16969
|
{
|
|
16971
16970
|
account,
|
|
16972
16971
|
message,
|
|
@@ -17103,7 +17102,7 @@ function ConnectedMailMessage({
|
|
|
17103
17102
|
const attachments = forward ? await hydrateMailAttachments(client, account, message.id, message.attachments, {
|
|
17104
17103
|
isOnline
|
|
17105
17104
|
}) : [];
|
|
17106
|
-
onCompose(
|
|
17105
|
+
onCompose(chunkWUG24K7P_cjs.replyMailCompose(message, { account, folderRole, forward, all, attachments }));
|
|
17107
17106
|
} catch (e) {
|
|
17108
17107
|
setError(e instanceof Error ? e.message : "Could not prepare forwarded attachments");
|
|
17109
17108
|
}
|
|
@@ -17111,7 +17110,7 @@ function ConnectedMailMessage({
|
|
|
17111
17110
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex h-full min-h-0 flex-col", children: [
|
|
17112
17111
|
error && /* @__PURE__ */ jsxRuntime.jsx("p", { role: "alert", className: "px-4 pt-3 text-sm text-destructive", children: error }),
|
|
17113
17112
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
17114
|
-
|
|
17113
|
+
chunkWUG24K7P_cjs.MailMessageView,
|
|
17115
17114
|
{
|
|
17116
17115
|
account,
|
|
17117
17116
|
message,
|
|
@@ -17122,7 +17121,7 @@ function ConnectedMailMessage({
|
|
|
17122
17121
|
onBack: onClose,
|
|
17123
17122
|
onEditDraft: () => void hydrateMailAttachments(client, account, message.id, message.attachments, {
|
|
17124
17123
|
isOnline
|
|
17125
|
-
}).then((attachments) => onCompose(
|
|
17124
|
+
}).then((attachments) => onCompose(chunkWUG24K7P_cjs.draftMailCompose(message, attachments))).catch((e) => setError(e.message)),
|
|
17126
17125
|
onReply: (forward, all) => void reply(forward, all),
|
|
17127
17126
|
onReplyWithArbi: onReplyWithArbi && account.provider === "native" ? () => onReplyWithArbi(message, account) : void 0,
|
|
17128
17127
|
onUpdate: (body) => void update(body),
|
|
@@ -18511,7 +18510,7 @@ function EventEditorDialog({
|
|
|
18511
18510
|
const { notify: notify17, runtimeConfig } = chunkZLSMS6OK_cjs.useBlocksEnvironment();
|
|
18512
18511
|
const attachmentDocuments = documents.map((document2) => ({
|
|
18513
18512
|
doc_id: document2.external_id,
|
|
18514
|
-
title:
|
|
18513
|
+
title: chunkRZ3EBN7G_cjs.toWorkflowFieldDocument(document2).title,
|
|
18515
18514
|
url: chunk725OETK3_cjs.buildDeepLinkUrl(
|
|
18516
18515
|
{ workspaceId: workspaceId ?? void 0, documentId: document2.external_id },
|
|
18517
18516
|
runtimeConfig.deploymentDomain
|
|
@@ -20639,7 +20638,7 @@ var useFilesPrefs = zustand.create()(
|
|
|
20639
20638
|
(state) => state.viewModes[prefsKey] === viewMode ? state : { viewModes: { ...state.viewModes, [prefsKey]: viewMode } }
|
|
20640
20639
|
),
|
|
20641
20640
|
// New users start at the compact minimum (more rows at once).
|
|
20642
|
-
rowHeight:
|
|
20641
|
+
rowHeight: chunkP4NS4LV7_cjs.DOCUMENTS_ROW_HEIGHT_INITIAL,
|
|
20643
20642
|
setRowHeight: (rowHeight) => set({ rowHeight })
|
|
20644
20643
|
}),
|
|
20645
20644
|
{
|
|
@@ -20711,7 +20710,7 @@ var COMPACT_BELOW = 132;
|
|
|
20711
20710
|
var NO_DOCUMENTS = [];
|
|
20712
20711
|
function useFilesWorkspace() {
|
|
20713
20712
|
const { workspaceId, userId, live } = chunkT55BHIB7_cjs.useConnectedWorkspace();
|
|
20714
|
-
const { members, role } =
|
|
20713
|
+
const { members, role } = chunkRZ3EBN7G_cjs.useConnectedWorkspaceRole();
|
|
20715
20714
|
const { data: workspaces } = react.useWorkspaces({ enabled: live });
|
|
20716
20715
|
const workspaceName = workspaces?.find((w) => w.external_id === workspaceId)?.name;
|
|
20717
20716
|
return {
|
|
@@ -20786,8 +20785,8 @@ var ConnectedFilesExplorer = React7.forwardRef(function ConnectedFilesExplorer2(
|
|
|
20786
20785
|
const { folders, files } = React7.useMemo(() => {
|
|
20787
20786
|
const result = isSearching ? {
|
|
20788
20787
|
folders: [],
|
|
20789
|
-
files:
|
|
20790
|
-
} :
|
|
20788
|
+
files: chunkP4NS4LV7_cjs.searchExplorerDocuments(documents, search, sort)
|
|
20789
|
+
} : chunkP4NS4LV7_cjs.buildExplorerEntries(documents, currentPath, sort, [...pendingFolders]);
|
|
20791
20790
|
if (sortReversed) result.files = [...result.files].reverse();
|
|
20792
20791
|
return result;
|
|
20793
20792
|
}, [documents, currentPath, sort, isSearching, search, sortReversed, pendingFolders]);
|
|
@@ -20798,7 +20797,7 @@ var ConnectedFilesExplorer = React7.forwardRef(function ConnectedFilesExplorer2(
|
|
|
20798
20797
|
const orderedFileIds = React7.useMemo(() => files.map((d) => d.external_id), [files]);
|
|
20799
20798
|
const folderDocs = React7.useMemo(() => {
|
|
20800
20799
|
const map = /* @__PURE__ */ new Map();
|
|
20801
|
-
for (const f of folders) map.set(f.path.join("/"),
|
|
20800
|
+
for (const f of folders) map.set(f.path.join("/"), chunkP4NS4LV7_cjs.collectFolderDocs(documents, f.path));
|
|
20802
20801
|
return map;
|
|
20803
20802
|
}, [folders, documents]);
|
|
20804
20803
|
const folderSelection = React7.useMemo(() => {
|
|
@@ -20946,7 +20945,7 @@ var ConnectedFilesExplorer = React7.forwardRef(function ConnectedFilesExplorer2(
|
|
|
20946
20945
|
let name = base;
|
|
20947
20946
|
let i = 2;
|
|
20948
20947
|
while (siblings.has(name.toLowerCase())) name = `${base} ${i++}`;
|
|
20949
|
-
const path =
|
|
20948
|
+
const path = chunkP4NS4LV7_cjs.joinFolderPath([...currentPath, name]);
|
|
20950
20949
|
if (!path) return;
|
|
20951
20950
|
addPendingFolder(wsId, path);
|
|
20952
20951
|
setEditingFolderPath(path);
|
|
@@ -20982,10 +20981,10 @@ var ConnectedFilesExplorer = React7.forwardRef(function ConnectedFilesExplorer2(
|
|
|
20982
20981
|
notify17(`A folder named "${name}" already exists here.`, "error");
|
|
20983
20982
|
return;
|
|
20984
20983
|
}
|
|
20985
|
-
const oldPath =
|
|
20984
|
+
const oldPath = chunkP4NS4LV7_cjs.joinFolderPath(folder.path);
|
|
20986
20985
|
const newPrefix = [...folder.path.slice(0, -1), name];
|
|
20987
|
-
const newPath =
|
|
20988
|
-
const docs =
|
|
20986
|
+
const newPath = chunkP4NS4LV7_cjs.joinFolderPath(newPrefix);
|
|
20987
|
+
const docs = chunkP4NS4LV7_cjs.collectFolderDocs(documents, folder.path);
|
|
20989
20988
|
try {
|
|
20990
20989
|
if (await renameFolder(docs, folder.path, newPrefix) > 0) {
|
|
20991
20990
|
notify17(`Renamed folder to "${name}"`, "success");
|
|
@@ -21044,7 +21043,7 @@ var ConnectedFilesExplorer = React7.forwardRef(function ConnectedFilesExplorer2(
|
|
|
21044
21043
|
const handleToggleFolder = React7.useCallback(
|
|
21045
21044
|
(folder, e) => {
|
|
21046
21045
|
e.stopPropagation();
|
|
21047
|
-
const ids =
|
|
21046
|
+
const ids = chunkP4NS4LV7_cjs.collectFolderDocs(documents, folder.path).map((d) => d.external_id);
|
|
21048
21047
|
if (ids.length === 0) return;
|
|
21049
21048
|
if (ids.every((id) => selectedSet.has(id))) {
|
|
21050
21049
|
const remove = new Set(ids);
|
|
@@ -21105,9 +21104,9 @@ var ConnectedFilesExplorer = React7.forwardRef(function ConnectedFilesExplorer2(
|
|
|
21105
21104
|
);
|
|
21106
21105
|
const handleDelete = React7.useCallback(
|
|
21107
21106
|
async (doc) => {
|
|
21108
|
-
const name =
|
|
21107
|
+
const name = chunkP4NS4LV7_cjs.getExplorerDisplayName(doc);
|
|
21109
21108
|
const confirmed = await confirm({
|
|
21110
|
-
message: `Delete "${name}"? ${
|
|
21109
|
+
message: `Delete "${name}"? ${chunkP4NS4LV7_cjs.RECENTLY_DELETED_HINT}`,
|
|
21111
21110
|
title: "Delete file"
|
|
21112
21111
|
});
|
|
21113
21112
|
if (!confirmed) return;
|
|
@@ -21127,7 +21126,7 @@ var ConnectedFilesExplorer = React7.forwardRef(function ConnectedFilesExplorer2(
|
|
|
21127
21126
|
);
|
|
21128
21127
|
const handleFolderDownload = React7.useCallback(
|
|
21129
21128
|
(folder) => {
|
|
21130
|
-
const docs =
|
|
21129
|
+
const docs = chunkP4NS4LV7_cjs.collectFolderDocs(documents, folder.path);
|
|
21131
21130
|
if (docs.length > 0) void downloadDocuments(docs);
|
|
21132
21131
|
},
|
|
21133
21132
|
[documents, downloadDocuments]
|
|
@@ -21136,7 +21135,7 @@ var ConnectedFilesExplorer = React7.forwardRef(function ConnectedFilesExplorer2(
|
|
|
21136
21135
|
if (onFolderMove) return onFolderMove;
|
|
21137
21136
|
if (!onMoveSelected) return void 0;
|
|
21138
21137
|
return (folder) => {
|
|
21139
|
-
const ids =
|
|
21138
|
+
const ids = chunkP4NS4LV7_cjs.collectFolderDocs(documents, folder.path).map((d) => d.external_id);
|
|
21140
21139
|
if (ids.length === 0) return;
|
|
21141
21140
|
onSelectionChange(ids);
|
|
21142
21141
|
onMoveSelected();
|
|
@@ -21144,14 +21143,14 @@ var ConnectedFilesExplorer = React7.forwardRef(function ConnectedFilesExplorer2(
|
|
|
21144
21143
|
}, [documents, onFolderMove, onMoveSelected, onSelectionChange]);
|
|
21145
21144
|
const handleFolderDelete = React7.useCallback(
|
|
21146
21145
|
async (folder) => {
|
|
21147
|
-
const docs =
|
|
21146
|
+
const docs = chunkP4NS4LV7_cjs.collectFolderDocs(documents, folder.path);
|
|
21148
21147
|
if (docs.length === 0) {
|
|
21149
|
-
const path =
|
|
21148
|
+
const path = chunkP4NS4LV7_cjs.joinFolderPath(folder.path);
|
|
21150
21149
|
if (wsId && path) removePendingFolder(wsId, path);
|
|
21151
21150
|
return;
|
|
21152
21151
|
}
|
|
21153
21152
|
const confirmed = await confirm({
|
|
21154
|
-
message: `Delete folder "${folder.name}" and its ${docs.length} item${docs.length === 1 ? "" : "s"}? ${
|
|
21153
|
+
message: `Delete folder "${folder.name}" and its ${docs.length} item${docs.length === 1 ? "" : "s"}? ${chunkP4NS4LV7_cjs.RECENTLY_DELETED_HINT_PLURAL}`,
|
|
21155
21154
|
title: "Delete folder"
|
|
21156
21155
|
});
|
|
21157
21156
|
if (!confirmed) return;
|
|
@@ -21168,8 +21167,8 @@ var ConnectedFilesExplorer = React7.forwardRef(function ConnectedFilesExplorer2(
|
|
|
21168
21167
|
[confirm, documents, deleteDocuments, onSelectionChange, removePendingFolder, wsId, notify17]
|
|
21169
21168
|
);
|
|
21170
21169
|
const canDeleteFolder = React7.useCallback(
|
|
21171
|
-
(folder) => canUpload &&
|
|
21172
|
-
(doc) =>
|
|
21170
|
+
(folder) => canUpload && chunkP4NS4LV7_cjs.collectFolderDocs(documents, folder.path).every(
|
|
21171
|
+
(doc) => chunkP4NS4LV7_cjs.canDeleteDocument(doc, userId, role)
|
|
21173
21172
|
),
|
|
21174
21173
|
[canUpload, documents, userId, role]
|
|
21175
21174
|
);
|
|
@@ -21228,7 +21227,7 @@ var ConnectedFilesExplorer = React7.forwardRef(function ConnectedFilesExplorer2(
|
|
|
21228
21227
|
setActiveDragId(null);
|
|
21229
21228
|
const data = event.over?.data.current;
|
|
21230
21229
|
if (data?.type === "folder" && data.path) {
|
|
21231
|
-
const targetFolder =
|
|
21230
|
+
const targetFolder = chunkP4NS4LV7_cjs.joinFolderPath(data.path);
|
|
21232
21231
|
const moving = dragIdsRef.current.filter((id) => {
|
|
21233
21232
|
const doc = documents.find((d) => d.external_id === id);
|
|
21234
21233
|
return doc && (doc.folder ?? null) !== targetFolder;
|
|
@@ -21268,7 +21267,7 @@ var ConnectedFilesExplorer = React7.forwardRef(function ConnectedFilesExplorer2(
|
|
|
21268
21267
|
const dropped = Array.from(e.dataTransfer.files ?? []);
|
|
21269
21268
|
if (dropped.length > 0) {
|
|
21270
21269
|
e.preventDefault();
|
|
21271
|
-
onUploadFiles(dropped,
|
|
21270
|
+
onUploadFiles(dropped, chunkP4NS4LV7_cjs.joinFolderPath(currentPath));
|
|
21272
21271
|
}
|
|
21273
21272
|
},
|
|
21274
21273
|
[canUpload, currentPath, onUploadFiles]
|
|
@@ -21285,9 +21284,9 @@ var ConnectedFilesExplorer = React7.forwardRef(function ConnectedFilesExplorer2(
|
|
|
21285
21284
|
onDragEnd: handleDragEnd,
|
|
21286
21285
|
onDragCancel: () => setActiveDragId(null),
|
|
21287
21286
|
children: [
|
|
21288
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
21287
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkP4NS4LV7_cjs.ExplorerFrame, { "data-testid": "documents-explorer", children: /* @__PURE__ */ jsxRuntime.jsxs(chunkP4NS4LV7_cjs.ExplorerStage, { children: [
|
|
21289
21288
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
21290
|
-
|
|
21289
|
+
chunkP4NS4LV7_cjs.ExplorerScroller,
|
|
21291
21290
|
{
|
|
21292
21291
|
ref: scrollRef,
|
|
21293
21292
|
onClick: handleBackgroundClick,
|
|
@@ -21297,15 +21296,15 @@ var ConnectedFilesExplorer = React7.forwardRef(function ConnectedFilesExplorer2(
|
|
|
21297
21296
|
onDragLeave: handleNativeDragLeave,
|
|
21298
21297
|
onDrop: handleNativeDrop,
|
|
21299
21298
|
"data-testid": "explorer-scroll",
|
|
21300
|
-
children: isLoading && documents.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
21301
|
-
|
|
21299
|
+
children: isLoading && documents.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx(chunkP4NS4LV7_cjs.ExplorerLoadingTiles, {}) : entries.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
21300
|
+
chunkP4NS4LV7_cjs.ExplorerEmpty,
|
|
21302
21301
|
{
|
|
21303
21302
|
title: isSearching ? `No files match "${search.trim()}"` : "This folder is empty",
|
|
21304
21303
|
description: isSearching ? "Try a different search." : canUpload ? "Drop files here or use Upload to add documents." : "No documents here yet."
|
|
21305
21304
|
}
|
|
21306
21305
|
) : containerWidth === 0 ? (
|
|
21307
21306
|
// Not measured yet: rendering now would flash one stretched column.
|
|
21308
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
21307
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkP4NS4LV7_cjs.ExplorerLoadingTiles, {})
|
|
21309
21308
|
) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
21310
21309
|
"div",
|
|
21311
21310
|
{
|
|
@@ -21366,7 +21365,7 @@ var ConnectedFilesExplorer = React7.forwardRef(function ConnectedFilesExplorer2(
|
|
|
21366
21365
|
dragging: activeDragId === doc.external_id,
|
|
21367
21366
|
dndActive: activeDragId !== null,
|
|
21368
21367
|
renaming: renamingId === doc.external_id,
|
|
21369
|
-
canDelete:
|
|
21368
|
+
canDelete: chunkP4NS4LV7_cjs.canDeleteDocument(doc, userId, role),
|
|
21370
21369
|
thumbnailUrl: thumbnailsById.get(doc.external_id),
|
|
21371
21370
|
modifiedBy: userById.get(
|
|
21372
21371
|
doc.updated_by_ext_id ?? doc.created_by_ext_id
|
|
@@ -21395,9 +21394,9 @@ var ConnectedFilesExplorer = React7.forwardRef(function ConnectedFilesExplorer2(
|
|
|
21395
21394
|
)
|
|
21396
21395
|
}
|
|
21397
21396
|
),
|
|
21398
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
21397
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkP4NS4LV7_cjs.ExplorerMarquee, { ref: marqueeOverlayRef, "data-testid": "explorer-marquee" }),
|
|
21399
21398
|
isFileDragOver && /* @__PURE__ */ jsxRuntime.jsx(
|
|
21400
|
-
|
|
21399
|
+
chunkP4NS4LV7_cjs.ExplorerDropOverlay,
|
|
21401
21400
|
{
|
|
21402
21401
|
label: `Drop to upload${currentPath.length > 0 ? ` to "${currentPath[currentPath.length - 1]}"` : ""}`
|
|
21403
21402
|
}
|
|
@@ -21411,7 +21410,7 @@ var ConnectedFilesExplorer = React7.forwardRef(function ConnectedFilesExplorer2(
|
|
|
21411
21410
|
function DragPreview({ doc, count: count2 }) {
|
|
21412
21411
|
const Icon = ui.getFileTypeIcon(doc.file_name, { mime: doc.file_type });
|
|
21413
21412
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
21414
|
-
|
|
21413
|
+
chunkP4NS4LV7_cjs.ExplorerDragPreview,
|
|
21415
21414
|
{
|
|
21416
21415
|
icon: /* @__PURE__ */ jsxRuntime.jsx(Icon, { size: 20 }),
|
|
21417
21416
|
title: ui.getDocumentTitle(doc, doc.file_name ?? "Untitled"),
|
|
@@ -21497,7 +21496,7 @@ function ConnectedUploadDropzone({
|
|
|
21497
21496
|
const onFiles = browse(fileInputRef);
|
|
21498
21497
|
const onFolder = browse(folderInputRef);
|
|
21499
21498
|
const dropTarget = /* @__PURE__ */ jsxRuntime.jsx(
|
|
21500
|
-
|
|
21499
|
+
chunkP4NS4LV7_cjs.UploadDropArea,
|
|
21501
21500
|
{
|
|
21502
21501
|
isActive: dragActive,
|
|
21503
21502
|
isDisabled: disabled,
|
|
@@ -21511,11 +21510,11 @@ function ConnectedUploadDropzone({
|
|
|
21511
21510
|
onClick: (e) => {
|
|
21512
21511
|
if (e.target === e.currentTarget) onFiles();
|
|
21513
21512
|
},
|
|
21514
|
-
actions: compact ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
21513
|
+
actions: compact ? /* @__PURE__ */ jsxRuntime.jsx(chunkP4NS4LV7_cjs.UploadBrowseButtons, { onFiles, onFolder, isDisabled: disabled }) : void 0
|
|
21515
21514
|
}
|
|
21516
21515
|
);
|
|
21517
21516
|
const urlDialog = (trigger) => onUrlsSubmit ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
21518
|
-
|
|
21517
|
+
chunkP4NS4LV7_cjs.UrlInputDialog,
|
|
21519
21518
|
{
|
|
21520
21519
|
onUrlsSubmit,
|
|
21521
21520
|
processing: disabled,
|
|
@@ -21528,12 +21527,12 @@ function ConnectedUploadDropzone({
|
|
|
21528
21527
|
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
21529
21528
|
dropTarget,
|
|
21530
21529
|
compactLeadingAction,
|
|
21531
|
-
onUrlsSubmit && /* @__PURE__ */ jsxRuntime.jsx(
|
|
21530
|
+
onUrlsSubmit && /* @__PURE__ */ jsxRuntime.jsx(chunkP4NS4LV7_cjs.UploadSourceSection, { isIsolated: true, className: "flex flex-wrap justify-center gap-2", children: urlDialog(/* @__PURE__ */ jsxRuntime.jsx(chunkP4NS4LV7_cjs.UploadUrlButton, { isDisabled: disabled, isCompact: true })) })
|
|
21532
21531
|
] });
|
|
21533
21532
|
}
|
|
21534
21533
|
if (!source) {
|
|
21535
21534
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
21536
|
-
|
|
21535
|
+
chunkP4NS4LV7_cjs.UploadSourcePicker,
|
|
21537
21536
|
{
|
|
21538
21537
|
isDisabled: disabled,
|
|
21539
21538
|
options: [
|
|
@@ -21569,14 +21568,14 @@ function ConnectedUploadDropzone({
|
|
|
21569
21568
|
}
|
|
21570
21569
|
if (source === "computer") {
|
|
21571
21570
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
21572
|
-
|
|
21571
|
+
chunkP4NS4LV7_cjs.UploadSourceSection,
|
|
21573
21572
|
{
|
|
21574
21573
|
testId: "upload-source-computer",
|
|
21575
21574
|
className: "flex w-full flex-col gap-3 pointer-coarse:flex-col-reverse",
|
|
21576
21575
|
children: [
|
|
21577
21576
|
dropTarget,
|
|
21578
21577
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
21579
|
-
|
|
21578
|
+
chunkP4NS4LV7_cjs.UploadBrowseButtons,
|
|
21580
21579
|
{
|
|
21581
21580
|
layout: "grid",
|
|
21582
21581
|
onFiles,
|
|
@@ -21589,15 +21588,15 @@ function ConnectedUploadDropzone({
|
|
|
21589
21588
|
);
|
|
21590
21589
|
}
|
|
21591
21590
|
if (source === "internet" && onUrlsSubmit) {
|
|
21592
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
21591
|
+
return /* @__PURE__ */ jsxRuntime.jsx(chunkP4NS4LV7_cjs.UploadSourceSection, { testId: "upload-source-internet", className: "flex flex-wrap gap-2", children: /* @__PURE__ */ jsxRuntime.jsx(chunkP4NS4LV7_cjs.UploadSourceSection, { isIsolated: true, children: urlDialog(/* @__PURE__ */ jsxRuntime.jsx(chunkP4NS4LV7_cjs.UploadUrlButton, { isDisabled: disabled })) }) });
|
|
21593
21592
|
}
|
|
21594
21593
|
if (source === "email" && accounts) {
|
|
21595
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
21594
|
+
return /* @__PURE__ */ jsxRuntime.jsx(chunkP4NS4LV7_cjs.UploadSourceSection, { testId: "upload-source-email", isIsolated: true, children: accounts });
|
|
21596
21595
|
}
|
|
21597
21596
|
return null;
|
|
21598
21597
|
})();
|
|
21599
21598
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
21600
|
-
|
|
21599
|
+
chunkP4NS4LV7_cjs.UploadFrame,
|
|
21601
21600
|
{
|
|
21602
21601
|
isCompact: compact,
|
|
21603
21602
|
isDimmed: disabled || processingMessage !== null,
|
|
@@ -21704,7 +21703,7 @@ function plural3(count2) {
|
|
|
21704
21703
|
function DefaultFooter({ submit, shared, onSharedChange }) {
|
|
21705
21704
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex shrink-0 items-center justify-end gap-4 border-t border-border px-4 py-3 sm:px-6", children: [
|
|
21706
21705
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
21707
|
-
|
|
21706
|
+
chunkP4NS4LV7_cjs.ShareToggle,
|
|
21708
21707
|
{
|
|
21709
21708
|
isVisible: shared,
|
|
21710
21709
|
onToggle: onSharedChange,
|
|
@@ -21869,7 +21868,7 @@ ${summary}`,
|
|
|
21869
21868
|
}
|
|
21870
21869
|
);
|
|
21871
21870
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex min-h-0 flex-1 flex-col", "data-testid": "upload-documents", children: [
|
|
21872
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "min-h-0 flex-1 overflow-y-auto pb-2", children: uploading === null ? /* @__PURE__ */ jsxRuntime.jsxs(
|
|
21871
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "min-h-0 flex-1 overflow-y-auto pb-2", children: uploading === null ? /* @__PURE__ */ jsxRuntime.jsxs(chunkP4NS4LV7_cjs.UploadContainer, { className: "w-full px-4 pb-4 pt-2 sm:px-6", children: [
|
|
21873
21872
|
files.length === 0 && /* @__PURE__ */ jsxRuntime.jsx(
|
|
21874
21873
|
ConnectedUploadDropzone,
|
|
21875
21874
|
{
|
|
@@ -21885,7 +21884,7 @@ ${summary}`,
|
|
|
21885
21884
|
}
|
|
21886
21885
|
),
|
|
21887
21886
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
21888
|
-
|
|
21887
|
+
chunkP4NS4LV7_cjs.SelectedFilesList,
|
|
21889
21888
|
{
|
|
21890
21889
|
renderFileIcon,
|
|
21891
21890
|
files,
|
|
@@ -21894,10 +21893,10 @@ ${summary}`,
|
|
|
21894
21893
|
formatFileSize: formatFileSize3
|
|
21895
21894
|
}
|
|
21896
21895
|
),
|
|
21897
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
21898
|
-
error && /* @__PURE__ */ jsxRuntime.jsx(
|
|
21899
|
-
] }) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
21900
|
-
|
|
21896
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkP4NS4LV7_cjs.RejectedFilesList, { files: refused, onClear: () => setRefused([]) }),
|
|
21897
|
+
error && /* @__PURE__ */ jsxRuntime.jsx(chunkP4NS4LV7_cjs.UploadErrorMessage, { message: error })
|
|
21898
|
+
] }) : /* @__PURE__ */ jsxRuntime.jsx(chunkP4NS4LV7_cjs.UploadContainer, { className: "w-full p-4 sm:p-6", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
21899
|
+
chunkP4NS4LV7_cjs.UploadProgress,
|
|
21901
21900
|
{
|
|
21902
21901
|
fileCount: count2,
|
|
21903
21902
|
entityLabel: plural3(count2),
|
|
@@ -21939,7 +21938,7 @@ function AddFromAccountsButton({
|
|
|
21939
21938
|
className: "gap-2",
|
|
21940
21939
|
"data-testid": dataTestId,
|
|
21941
21940
|
children: [
|
|
21942
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex items-center gap-1", children: marks.map((m) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
21941
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex items-center gap-1", children: marks.map((m) => /* @__PURE__ */ jsxRuntime.jsx(chunkP4NS4LV7_cjs.VendorLogo, { vendorKey: m.vendorKey, product: m.product, className: "h-4 w-4" }, m.key)) }),
|
|
21943
21942
|
"Add from accounts"
|
|
21944
21943
|
]
|
|
21945
21944
|
}
|
|
@@ -21969,7 +21968,7 @@ function EmptyWorkspaceUpload({
|
|
|
21969
21968
|
compactLeadingAction: onImportFromEmail && /* @__PURE__ */ jsxRuntime.jsx(AddFromAccountsButton, { onImportFromEmail })
|
|
21970
21969
|
}
|
|
21971
21970
|
),
|
|
21972
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
21971
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkP4NS4LV7_cjs.PrivacyExplainerModal, {})
|
|
21973
21972
|
] })
|
|
21974
21973
|
}
|
|
21975
21974
|
);
|
|
@@ -22000,9 +21999,9 @@ function ConnectedTagEntity({
|
|
|
22000
21999
|
onEditClick();
|
|
22001
22000
|
}
|
|
22002
22001
|
};
|
|
22003
|
-
const tooltipContent = showTooltip ? /* @__PURE__ */ jsxRuntime.jsxs(
|
|
22002
|
+
const tooltipContent = showTooltip ? /* @__PURE__ */ jsxRuntime.jsxs(chunkLFVD3CS5_cjs.EntityTooltip, { children: [
|
|
22004
22003
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
22005
|
-
|
|
22004
|
+
chunkLFVD3CS5_cjs.EntityTooltipHeader,
|
|
22006
22005
|
{
|
|
22007
22006
|
lead: /* @__PURE__ */ jsxRuntime.jsx(
|
|
22008
22007
|
"span",
|
|
@@ -22077,7 +22076,7 @@ var CheckboxCellRenderer = React7.memo(function CheckboxCellRenderer2({
|
|
|
22077
22076
|
if (!params.data) return null;
|
|
22078
22077
|
const isChecked = params.value === true;
|
|
22079
22078
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
22080
|
-
|
|
22079
|
+
chunkP4NS4LV7_cjs.CheckboxCell,
|
|
22081
22080
|
{
|
|
22082
22081
|
isChecked,
|
|
22083
22082
|
color: tagColor,
|
|
@@ -22100,12 +22099,12 @@ var TagHeaderComponent = React7.memo(function TagHeaderComponent2({
|
|
|
22100
22099
|
return () => params.column.removeEventListener("sortChanged", updateSort);
|
|
22101
22100
|
}, [params.column]);
|
|
22102
22101
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
22103
|
-
|
|
22102
|
+
chunkP4NS4LV7_cjs.TagColumnHeader,
|
|
22104
22103
|
{
|
|
22105
22104
|
isCentered: isCheckbox,
|
|
22106
22105
|
sort,
|
|
22107
22106
|
onSort: params.enableSorting ? (additive) => params.progressSort(additive) : void 0,
|
|
22108
|
-
filter: /* @__PURE__ */ jsxRuntime.jsx(
|
|
22107
|
+
filter: /* @__PURE__ */ jsxRuntime.jsx(chunkP4NS4LV7_cjs.FilterButton, { params, colId: tag.external_id }),
|
|
22109
22108
|
label: /* @__PURE__ */ jsxRuntime.jsx(ConnectedTagEntity, { tag, size: "sm" })
|
|
22110
22109
|
}
|
|
22111
22110
|
);
|
|
@@ -22194,7 +22193,7 @@ function createTagColumn({
|
|
|
22194
22193
|
}
|
|
22195
22194
|
) : void 0,
|
|
22196
22195
|
// Use default rendering for text/number/select - shows value with truncation
|
|
22197
|
-
cellEditor: isSelect ?
|
|
22196
|
+
cellEditor: isSelect ? chunkP4NS4LV7_cjs.MultiSelectCellEditor : isText ? "agLargeTextCellEditor" : void 0,
|
|
22198
22197
|
cellEditorParams: isSelect ? createMultiSelectCellEditorParams(tag.tag_type.options || []) : isText ? { rows: 8, cols: 50 } : void 0,
|
|
22199
22198
|
cellEditorPopup: isText || isSelect,
|
|
22200
22199
|
// Text and Select tags use popup editor for better UX
|
|
@@ -22311,8 +22310,8 @@ function createDocumentColumns({
|
|
|
22311
22310
|
onToggleShared,
|
|
22312
22311
|
notify: notify17
|
|
22313
22312
|
}) {
|
|
22314
|
-
const isRowEditableByOwner = (params) =>
|
|
22315
|
-
const isRowEditableByMember = (params) =>
|
|
22313
|
+
const isRowEditableByOwner = (params) => chunkP4NS4LV7_cjs.canChangeVisibility(params.data, currentUserExtId);
|
|
22314
|
+
const isRowEditableByMember = (params) => chunkP4NS4LV7_cjs.canEditDocumentFields(params.data, currentUserExtId, workspaceRole);
|
|
22316
22315
|
const documentNameCellRenderer = (params) => {
|
|
22317
22316
|
const doc = params.data;
|
|
22318
22317
|
if (!doc) return null;
|
|
@@ -22517,7 +22516,7 @@ function createDocumentColumns({
|
|
|
22517
22516
|
singleClickEdit: true,
|
|
22518
22517
|
cellEditor: "agSelectCellEditor",
|
|
22519
22518
|
cellEditorParams: {
|
|
22520
|
-
values: [...
|
|
22519
|
+
values: [...chunkP4NS4LV7_cjs.DOCUMENT_TYPE_OPTIONS]
|
|
22521
22520
|
},
|
|
22522
22521
|
context: { icon: lucideReact.Sparkles },
|
|
22523
22522
|
valueGetter: (params) => ui.getDocumentNature(params.data) || "",
|
|
@@ -23055,7 +23054,7 @@ function useDocumentTable({
|
|
|
23055
23054
|
}
|
|
23056
23055
|
const stabilizedTagIds = prevTagIdsRef.current;
|
|
23057
23056
|
const stabilizedTagNames = prevTagNamesRef.current;
|
|
23058
|
-
const defaultVisibleColumns = React7.useMemo(() => [...
|
|
23057
|
+
const defaultVisibleColumns = React7.useMemo(() => [...chunkP4NS4LV7_cjs.DEFAULT_DOCUMENT_COLUMNS], []);
|
|
23059
23058
|
const toggleShared = React7.useCallback((docId, shared) => {
|
|
23060
23059
|
updateDocRef.current.mutate({ documents: [{ external_id: docId, shared }] });
|
|
23061
23060
|
}, []);
|
|
@@ -23318,10 +23317,10 @@ function ConnectedFilesBulkActions({
|
|
|
23318
23317
|
const bulk = useDocumentBulkActions(selectedDocuments);
|
|
23319
23318
|
const count2 = selectedDocuments.length;
|
|
23320
23319
|
const noun = ui.getEntityLabel("DOCUMENT", count2 === 1 ? "SINGULAR" : "PLURAL");
|
|
23321
|
-
const shareState =
|
|
23320
|
+
const shareState = chunkP4NS4LV7_cjs.shareStateOf(bulk.freshSelectedDocuments);
|
|
23322
23321
|
const handleToggleShare = async (shouldShare) => {
|
|
23323
23322
|
if (shouldShare) return bulk.share();
|
|
23324
|
-
const confirmed = await
|
|
23323
|
+
const confirmed = await chunkP4NS4LV7_cjs.confirmHideFromMembers(
|
|
23325
23324
|
confirm,
|
|
23326
23325
|
bulk.freshSelectedDocuments.length,
|
|
23327
23326
|
members
|
|
@@ -23344,7 +23343,7 @@ function ConnectedFilesBulkActions({
|
|
|
23344
23343
|
const { openDocumentsChat, openFieldsManager } = actions;
|
|
23345
23344
|
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
23346
23345
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
23347
|
-
|
|
23346
|
+
chunkP4NS4LV7_cjs.BulkActionsBar,
|
|
23348
23347
|
{
|
|
23349
23348
|
count: count2,
|
|
23350
23349
|
onClear: onClearSelection,
|
|
@@ -23369,7 +23368,7 @@ function ConnectedFilesBulkActions({
|
|
|
23369
23368
|
onDelete: () => setConfirming("delete"),
|
|
23370
23369
|
shareState,
|
|
23371
23370
|
shareLabels: shareState === "shared" ? { share: "Make private" } : void 0,
|
|
23372
|
-
shareTooltip:
|
|
23371
|
+
shareTooltip: chunkP4NS4LV7_cjs.shareTooltipFor(shareState, bulk.freshSelectedDocuments.length === 1),
|
|
23373
23372
|
onToggleShare: (shouldShare) => void handleToggleShare(shouldShare)
|
|
23374
23373
|
}
|
|
23375
23374
|
),
|
|
@@ -23384,7 +23383,7 @@ function ConnectedFilesBulkActions({
|
|
|
23384
23383
|
onClearSelection();
|
|
23385
23384
|
},
|
|
23386
23385
|
title: `Delete ${count2} ${noun}`,
|
|
23387
|
-
description: `Delete ${namedTargets(selectedDocuments)}? ${count2 === 1 ?
|
|
23386
|
+
description: `Delete ${namedTargets(selectedDocuments)}? ${count2 === 1 ? chunkP4NS4LV7_cjs.RECENTLY_DELETED_HINT : chunkP4NS4LV7_cjs.RECENTLY_DELETED_HINT_PLURAL}`,
|
|
23388
23387
|
confirmText: "Delete",
|
|
23389
23388
|
variant: "destructive"
|
|
23390
23389
|
}
|
|
@@ -24081,7 +24080,7 @@ function useDocumentFilters({
|
|
|
24081
24080
|
const folderPath = React7.useMemo(() => {
|
|
24082
24081
|
for (const [key, state] of documentFilters) {
|
|
24083
24082
|
if (key.startsWith("folder:") && key !== "folder:none" && state === "include") {
|
|
24084
|
-
return
|
|
24083
|
+
return chunkP4NS4LV7_cjs.parseFolderSegments(key.slice("folder:".length));
|
|
24085
24084
|
}
|
|
24086
24085
|
}
|
|
24087
24086
|
return [];
|
|
@@ -24090,7 +24089,7 @@ function useDocumentFilters({
|
|
|
24090
24089
|
(path) => {
|
|
24091
24090
|
const next = new Map(documentFilters);
|
|
24092
24091
|
for (const key of next.keys()) if (key.startsWith("folder:")) next.set(key, null);
|
|
24093
|
-
const joined =
|
|
24092
|
+
const joined = chunkP4NS4LV7_cjs.joinFolderPath(path);
|
|
24094
24093
|
if (joined) next.set(`folder:${joined}`, "include");
|
|
24095
24094
|
setDocumentFilters(next);
|
|
24096
24095
|
},
|
|
@@ -24382,7 +24381,7 @@ function ConnectedAiReview({
|
|
|
24382
24381
|
}, [kind]);
|
|
24383
24382
|
const description = phase === "ask" ? `Ask one question \u2014 ARBI answers it for each of the ${docCount} ${scope} document${plural5(docCount)}.` : aiCellsTotal > 0 ? reviewProgress(aiCellsDone, aiCellsEmpty, aiCellsTotal) : `Applied to ${rows.length} document${plural5(rows.length)}`;
|
|
24384
24383
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
24385
|
-
|
|
24384
|
+
chunkP4NS4LV7_cjs.AiReviewDialogView,
|
|
24386
24385
|
{
|
|
24387
24386
|
open,
|
|
24388
24387
|
onOpenChange: handleOpenChange,
|
|
@@ -24450,12 +24449,12 @@ function ConnectedMoveToFolder({
|
|
|
24450
24449
|
setIsSubmitting(true);
|
|
24451
24450
|
try {
|
|
24452
24451
|
if (folderToMove) {
|
|
24453
|
-
const docsInFolder =
|
|
24452
|
+
const docsInFolder = chunkP4NS4LV7_cjs.collectFolderDocs(allDocs, folderToMove.path);
|
|
24454
24453
|
if (docsInFolder.length === 0) {
|
|
24455
24454
|
onClose();
|
|
24456
24455
|
return;
|
|
24457
24456
|
}
|
|
24458
|
-
const newPrefixSegments = targetFolder ? [...
|
|
24457
|
+
const newPrefixSegments = targetFolder ? [...chunkP4NS4LV7_cjs.parseFolderSegments(targetFolder), folderToMove.name] : [folderToMove.name];
|
|
24459
24458
|
await renameFolder(docsInFolder, folderToMove.path, newPrefixSegments);
|
|
24460
24459
|
const dest = targetFolder ? `"${targetFolder}/${folderToMove.name}"` : `"${folderToMove.name}" (root)`;
|
|
24461
24460
|
notify17(`Moved folder to ${dest}`, "success");
|
|
@@ -24482,7 +24481,7 @@ function ConnectedMoveToFolder({
|
|
|
24482
24481
|
const isFolderMode = !!folderToMove;
|
|
24483
24482
|
const folders = useDocumentFolders(allDocs, targetFolder);
|
|
24484
24483
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
24485
|
-
|
|
24484
|
+
chunkP4NS4LV7_cjs.MoveToFolderDialog,
|
|
24486
24485
|
{
|
|
24487
24486
|
open: isOpen,
|
|
24488
24487
|
onClose,
|
|
@@ -24492,7 +24491,7 @@ function ConnectedMoveToFolder({
|
|
|
24492
24491
|
isSubmitting,
|
|
24493
24492
|
onConfirm: handleMove,
|
|
24494
24493
|
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
24495
|
-
|
|
24494
|
+
chunkP4NS4LV7_cjs.FolderCommandList,
|
|
24496
24495
|
{
|
|
24497
24496
|
folders,
|
|
24498
24497
|
value: targetFolder,
|
|
@@ -24888,7 +24887,7 @@ function ConnectedFieldsEditor({
|
|
|
24888
24887
|
const [sortBy, setSortBy] = React7.useState("name-asc");
|
|
24889
24888
|
const [filterText, setFilterText] = React7.useState("");
|
|
24890
24889
|
const fieldRows = React7.useMemo(
|
|
24891
|
-
() => browser.flattenTagTree(
|
|
24890
|
+
() => browser.flattenTagTree(chunkP4NS4LV7_cjs.sortFields(chunkP4NS4LV7_cjs.filterFieldsByName(tags, filterText), sortBy)),
|
|
24892
24891
|
[tags, filterText, sortBy]
|
|
24893
24892
|
);
|
|
24894
24893
|
const exportItems = React7.useMemo(
|
|
@@ -24908,7 +24907,7 @@ function ConnectedFieldsEditor({
|
|
|
24908
24907
|
setIsDeleting(false);
|
|
24909
24908
|
}
|
|
24910
24909
|
};
|
|
24911
|
-
const copy =
|
|
24910
|
+
const copy = chunkP4NS4LV7_cjs.fieldsApplyBarCopy({
|
|
24912
24911
|
nouns,
|
|
24913
24912
|
targetNoun,
|
|
24914
24913
|
fieldCount,
|
|
@@ -24917,9 +24916,9 @@ function ConnectedFieldsEditor({
|
|
|
24917
24916
|
isApplying,
|
|
24918
24917
|
isClearing
|
|
24919
24918
|
});
|
|
24920
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
24919
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(chunkP4NS4LV7_cjs.FieldsEditorRoot, { children: [
|
|
24921
24920
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
24922
|
-
|
|
24921
|
+
chunkP4NS4LV7_cjs.FieldsEditorToolbar,
|
|
24923
24922
|
{
|
|
24924
24923
|
nouns,
|
|
24925
24924
|
onNew: () => {
|
|
@@ -24947,11 +24946,11 @@ function ConnectedFieldsEditor({
|
|
|
24947
24946
|
onSortByChange: setSortBy
|
|
24948
24947
|
}
|
|
24949
24948
|
),
|
|
24950
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
24949
|
+
/* @__PURE__ */ jsxRuntime.jsxs(chunkP4NS4LV7_cjs.FieldsEditorList, { children: [
|
|
24951
24950
|
fieldRows.map(({ tag, depth, childCount }) => {
|
|
24952
24951
|
const isEditingThis = editingTagId === tag.external_id;
|
|
24953
24952
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
24954
|
-
|
|
24953
|
+
chunkP4NS4LV7_cjs.FieldRow,
|
|
24955
24954
|
{
|
|
24956
24955
|
tagId: tag.external_id,
|
|
24957
24956
|
name: tag.name,
|
|
@@ -25004,10 +25003,10 @@ function ConnectedFieldsEditor({
|
|
|
25004
25003
|
tag.external_id
|
|
25005
25004
|
);
|
|
25006
25005
|
}),
|
|
25007
|
-
fieldRows.length === 0 && !isCreatingTag && /* @__PURE__ */ jsxRuntime.jsx(
|
|
25006
|
+
fieldRows.length === 0 && !isCreatingTag && /* @__PURE__ */ jsxRuntime.jsx(chunkP4NS4LV7_cjs.FieldsEmptyState, { children: chunkP4NS4LV7_cjs.fieldsEmptyText({ nouns, filterText, hasKind: !!kind }) })
|
|
25008
25007
|
] }),
|
|
25009
25008
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
25010
|
-
|
|
25009
|
+
chunkP4NS4LV7_cjs.FieldsApplyBar,
|
|
25011
25010
|
{
|
|
25012
25011
|
hint: copy.hint,
|
|
25013
25012
|
applyLabel: copy.applyLabel,
|
|
@@ -25084,8 +25083,8 @@ function ConnectedFieldsManager({
|
|
|
25084
25083
|
}
|
|
25085
25084
|
);
|
|
25086
25085
|
const body = /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
25087
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
25088
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
25086
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkP4NS4LV7_cjs.FieldsManagerDefinition, { children: DEFINITIONS[activeKind] }),
|
|
25087
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkP4NS4LV7_cjs.FieldsManagerBody, { children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
25089
25088
|
ConnectedFieldsEditor,
|
|
25090
25089
|
{
|
|
25091
25090
|
group: activeKind,
|
|
@@ -25104,7 +25103,7 @@ function ConnectedFieldsManager({
|
|
|
25104
25103
|
"data-testid": "fields-manager-dialog",
|
|
25105
25104
|
children: [
|
|
25106
25105
|
/* @__PURE__ */ jsxRuntime.jsxs(ui.DialogHeader, { className: "px-4 py-3 border-b", children: [
|
|
25107
|
-
/* @__PURE__ */ jsxRuntime.jsx(ui.DialogTitle, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
25106
|
+
/* @__PURE__ */ jsxRuntime.jsx(ui.DialogTitle, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(chunkP4NS4LV7_cjs.FieldsManagerTitle, { title }) }),
|
|
25108
25107
|
/* @__PURE__ */ jsxRuntime.jsx(ui.DialogDescription, { className: "sr-only", children: "Create, edit, and delete labels and annotations for your workspace documents." })
|
|
25109
25108
|
] }),
|
|
25110
25109
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "px-4 py-2 border-b", children: tabHeader }),
|
|
@@ -25115,7 +25114,7 @@ function ConnectedFieldsManager({
|
|
|
25115
25114
|
}
|
|
25116
25115
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col h-full", children: [
|
|
25117
25116
|
/* @__PURE__ */ jsxRuntime.jsxs(chunk7IQDS246_cjs.DraggableHeader, { children: [
|
|
25118
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
25117
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkP4NS4LV7_cjs.FieldsManagerTitle, { title, className: "px-4 pt-3.5 pb-2" }),
|
|
25119
25118
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "px-3", children: tabHeader })
|
|
25120
25119
|
] }),
|
|
25121
25120
|
body
|
|
@@ -25368,7 +25367,7 @@ function ConnectedBulkTagEditor({
|
|
|
25368
25367
|
const documentsLabel = ui.getEntityLabel("DOCUMENT", "PLURAL").toLowerCase();
|
|
25369
25368
|
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
25370
25369
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
25371
|
-
|
|
25370
|
+
chunkP4NS4LV7_cjs.BulkTagEditorDialog,
|
|
25372
25371
|
{
|
|
25373
25372
|
open,
|
|
25374
25373
|
onClose,
|
|
@@ -25426,7 +25425,7 @@ function ConnectedBulkTagEditor({
|
|
|
25426
25425
|
}
|
|
25427
25426
|
),
|
|
25428
25427
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
25429
|
-
|
|
25428
|
+
chunkP4NS4LV7_cjs.BulkReplaceDialog,
|
|
25430
25429
|
{
|
|
25431
25430
|
open: showGenerateConfirmation,
|
|
25432
25431
|
onClose: () => setShowGenerateConfirmation(false),
|
|
@@ -25456,7 +25455,7 @@ function FolderPicker({
|
|
|
25456
25455
|
onSelect
|
|
25457
25456
|
}) {
|
|
25458
25457
|
const folders = useDocumentFolders(documents, value);
|
|
25459
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
25458
|
+
return /* @__PURE__ */ jsxRuntime.jsx(chunkP4NS4LV7_cjs.FolderCommandList, { folders, value, onSelect, showRemove: !!value });
|
|
25460
25459
|
}
|
|
25461
25460
|
function RelatedDocuments({
|
|
25462
25461
|
doc,
|
|
@@ -25489,7 +25488,7 @@ function DocTagAttribution({ doctag }) {
|
|
|
25489
25488
|
updater && `Updated ${ui.formatFriendlyDate(doctag.updated_at)} by ${updater.given_name || updater.email}`
|
|
25490
25489
|
].filter((line) => !!line);
|
|
25491
25490
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
25492
|
-
|
|
25491
|
+
chunkP4NS4LV7_cjs.FieldAttribution,
|
|
25493
25492
|
{
|
|
25494
25493
|
avatar: /* @__PURE__ */ jsxRuntime.jsx(DocumentUser, { user: lastUser, tooltip: false }),
|
|
25495
25494
|
date: ui.formatFriendlyDate(updater ? doctag.updated_at : doctag.created_at),
|
|
@@ -25519,7 +25518,7 @@ function LabelsCombobox({
|
|
|
25519
25518
|
else if (!appliedTagIds.has(existing.external_id)) onToggle(existing);
|
|
25520
25519
|
};
|
|
25521
25520
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
25522
|
-
|
|
25521
|
+
chunkP4NS4LV7_cjs.FieldLabelsSelect,
|
|
25523
25522
|
{
|
|
25524
25523
|
options: options2,
|
|
25525
25524
|
appliedIds: appliedTagIds,
|
|
@@ -25541,15 +25540,15 @@ var METADATA_FIELDS = {
|
|
|
25541
25540
|
};
|
|
25542
25541
|
var INPUT_CLASS = "text-sm bg-muted/40 focus:bg-background transition-colors";
|
|
25543
25542
|
var READ_ONLY_FIELDS = {
|
|
25544
|
-
file_name: (doc) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
25545
|
-
status: (doc) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
25546
|
-
n_pages: (doc) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
25547
|
-
created_at: (doc) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
25548
|
-
updated_at: (doc) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
25549
|
-
file_type: (doc) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
25550
|
-
file_size: (doc) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
25551
|
-
doc_id: (doc) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
25552
|
-
content_hash: (doc) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
25543
|
+
file_name: (doc) => /* @__PURE__ */ jsxRuntime.jsx(chunkP4NS4LV7_cjs.FieldValue, { tone: "strong", children: doc.file_name || "N/A" }),
|
|
25544
|
+
status: (doc) => /* @__PURE__ */ jsxRuntime.jsx(chunkP4NS4LV7_cjs.FieldValue, { tone: "muted", children: doc.status || "N/A" }),
|
|
25545
|
+
n_pages: (doc) => /* @__PURE__ */ jsxRuntime.jsx(chunkP4NS4LV7_cjs.FieldValue, { tone: "muted", children: doc.n_pages || "N/A" }),
|
|
25546
|
+
created_at: (doc) => /* @__PURE__ */ jsxRuntime.jsx(chunkP4NS4LV7_cjs.FieldValue, { tone: "muted", children: doc.created_at ? ui.formatFriendlyDate(doc.created_at) : "N/A" }),
|
|
25547
|
+
updated_at: (doc) => /* @__PURE__ */ jsxRuntime.jsx(chunkP4NS4LV7_cjs.FieldValue, { tone: "muted", children: doc.updated_at ? ui.formatFriendlyDate(doc.updated_at) : "N/A" }),
|
|
25548
|
+
file_type: (doc) => /* @__PURE__ */ jsxRuntime.jsx(chunkP4NS4LV7_cjs.FieldValue, { tone: "muted", children: ui.friendlyFileType(doc.file_type, doc.file_name) }),
|
|
25549
|
+
file_size: (doc) => /* @__PURE__ */ jsxRuntime.jsx(chunkP4NS4LV7_cjs.FieldValue, { tone: "muted", children: doc.file_size ? `${Math.round(doc.file_size / 1024)} KB` : "N/A" }),
|
|
25550
|
+
doc_id: (doc) => /* @__PURE__ */ jsxRuntime.jsx(chunkP4NS4LV7_cjs.FieldValue, { tone: "muted", isMono: true, children: doc.external_id || "N/A" }),
|
|
25551
|
+
content_hash: (doc) => /* @__PURE__ */ jsxRuntime.jsx(chunkP4NS4LV7_cjs.FieldValue, { tone: "muted", isMono: true, isTruncated: true, children: doc.content_hash || "N/A" })
|
|
25553
25552
|
};
|
|
25554
25553
|
function documentFieldContent(options2) {
|
|
25555
25554
|
const { columnId, doc, canEdit, workspaceTags, getColumnLabel, getColumnIcon } = options2;
|
|
@@ -25572,7 +25571,7 @@ function documentFieldContent(options2) {
|
|
|
25572
25571
|
placeholder: `Add ${getColumnLabel(columnId).toLowerCase()}\u2026`,
|
|
25573
25572
|
className: INPUT_CLASS
|
|
25574
25573
|
}
|
|
25575
|
-
) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
25574
|
+
) : /* @__PURE__ */ jsxRuntime.jsx(chunkP4NS4LV7_cjs.FieldValue, { children: metadata(doc) || "N/A" })
|
|
25576
25575
|
);
|
|
25577
25576
|
}
|
|
25578
25577
|
const readOnly = READ_ONLY_FIELDS[columnId];
|
|
@@ -25581,7 +25580,7 @@ function documentFieldContent(options2) {
|
|
|
25581
25580
|
if (columnId === "folder") {
|
|
25582
25581
|
return standard(
|
|
25583
25582
|
canEdit ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
25584
|
-
|
|
25583
|
+
chunkP4NS4LV7_cjs.FieldFolderSelect,
|
|
25585
25584
|
{
|
|
25586
25585
|
folder: doc.folder,
|
|
25587
25586
|
picker: /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -25593,7 +25592,7 @@ function documentFieldContent(options2) {
|
|
|
25593
25592
|
}
|
|
25594
25593
|
)
|
|
25595
25594
|
}
|
|
25596
|
-
) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
25595
|
+
) : /* @__PURE__ */ jsxRuntime.jsx(chunkP4NS4LV7_cjs.FieldFolderValue, { folder: doc.folder })
|
|
25597
25596
|
);
|
|
25598
25597
|
}
|
|
25599
25598
|
if (columnId === "related") {
|
|
@@ -25635,7 +25634,7 @@ function documentFieldContent(options2) {
|
|
|
25635
25634
|
let value;
|
|
25636
25635
|
if (tag.tag_type.type === "select") {
|
|
25637
25636
|
value = /* @__PURE__ */ jsxRuntime.jsx(
|
|
25638
|
-
|
|
25637
|
+
chunkP4NS4LV7_cjs.FieldNativeSelect,
|
|
25639
25638
|
{
|
|
25640
25639
|
value: doctag?.note || "",
|
|
25641
25640
|
options: tag.tag_type.options,
|
|
@@ -25669,7 +25668,7 @@ function documentFieldContent(options2) {
|
|
|
25669
25668
|
return {
|
|
25670
25669
|
label: tag.name,
|
|
25671
25670
|
tag,
|
|
25672
|
-
children: doctag ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
25671
|
+
children: doctag ? /* @__PURE__ */ jsxRuntime.jsx(chunkP4NS4LV7_cjs.FieldWithAttribution, { attribution: /* @__PURE__ */ jsxRuntime.jsx(DocTagAttribution, { doctag }), children: value }) : value
|
|
25673
25672
|
};
|
|
25674
25673
|
}
|
|
25675
25674
|
|
|
@@ -25772,7 +25771,7 @@ function ViewSelector({
|
|
|
25772
25771
|
columns: defaultColumns,
|
|
25773
25772
|
icon: lucideReact.Table,
|
|
25774
25773
|
// Both built-ins load at the minimal (compact) row height.
|
|
25775
|
-
rowHeight:
|
|
25774
|
+
rowHeight: chunkP4NS4LV7_cjs.DOCUMENTS_ROW_HEIGHT_INITIAL,
|
|
25776
25775
|
// [] = loading this view unpins everything.
|
|
25777
25776
|
pinnedLeft: []
|
|
25778
25777
|
},
|
|
@@ -25783,15 +25782,15 @@ function ViewSelector({
|
|
|
25783
25782
|
// batch-select checkbox and Title stay fixed left while scrolling.
|
|
25784
25783
|
columns: defaultColumns,
|
|
25785
25784
|
icon: lucideReact.Columns3,
|
|
25786
|
-
rowHeight:
|
|
25785
|
+
rowHeight: chunkP4NS4LV7_cjs.DOCUMENTS_ROW_HEIGHT_INITIAL,
|
|
25787
25786
|
pinnedLeft: DOCUMENT_VIEW_PINNED
|
|
25788
25787
|
},
|
|
25789
25788
|
{
|
|
25790
25789
|
key: "email-default",
|
|
25791
25790
|
label: "Email view",
|
|
25792
|
-
columns: [...
|
|
25791
|
+
columns: [...chunkP4NS4LV7_cjs.EMAIL_VIEW_COLUMNS],
|
|
25793
25792
|
icon: lucideReact.Mail,
|
|
25794
|
-
rowHeight:
|
|
25793
|
+
rowHeight: chunkP4NS4LV7_cjs.DOCUMENTS_ROW_HEIGHT_INITIAL,
|
|
25795
25794
|
pinnedLeft: []
|
|
25796
25795
|
}
|
|
25797
25796
|
],
|
|
@@ -25815,7 +25814,7 @@ function ViewSelector({
|
|
|
25815
25814
|
},
|
|
25816
25815
|
[confirm, workspaceId, deleteView, notify17]
|
|
25817
25816
|
);
|
|
25818
|
-
const menu =
|
|
25817
|
+
const menu = chunkP4NS4LV7_cjs.useGridViews({
|
|
25819
25818
|
getGridApi,
|
|
25820
25819
|
defaultColumns,
|
|
25821
25820
|
builtins,
|
|
@@ -25830,7 +25829,7 @@ function ViewSelector({
|
|
|
25830
25829
|
onDeleteView,
|
|
25831
25830
|
isSaving
|
|
25832
25831
|
});
|
|
25833
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
25832
|
+
return /* @__PURE__ */ jsxRuntime.jsx(chunkP4NS4LV7_cjs.ViewSelectorMenu, { ...menu });
|
|
25834
25833
|
}
|
|
25835
25834
|
function DocumentsFilterBarActions({
|
|
25836
25835
|
isModal,
|
|
@@ -25870,7 +25869,7 @@ function DocumentsFilterBarActions({
|
|
|
25870
25869
|
),
|
|
25871
25870
|
documentsViewMode === "grid" && // The phone list is a fixed two-line layout, so row density only applies from sm up.
|
|
25872
25871
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "hidden sm:block", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
25873
|
-
|
|
25872
|
+
chunkP4NS4LV7_cjs.RowDensityControl,
|
|
25874
25873
|
{
|
|
25875
25874
|
rowHeight: documentsRowHeight,
|
|
25876
25875
|
onRowHeightChange: onDocumentsRowHeightChange
|
|
@@ -26038,7 +26037,7 @@ function DocumentsUploadButton({
|
|
|
26038
26037
|
[hasAccountProviders, onSelectSource, onEmailWorkspace, onCreateNew, onTakePhoto]
|
|
26039
26038
|
);
|
|
26040
26039
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
26041
|
-
|
|
26040
|
+
chunkP4NS4LV7_cjs.FilesAddMenu,
|
|
26042
26041
|
{
|
|
26043
26042
|
items,
|
|
26044
26043
|
isCompact,
|
|
@@ -26059,7 +26058,7 @@ function PersistedGridView(props) {
|
|
|
26059
26058
|
},
|
|
26060
26059
|
[persistState, gridId, setGridState]
|
|
26061
26060
|
);
|
|
26062
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
26061
|
+
return /* @__PURE__ */ jsxRuntime.jsx(chunkLKK52DEY_cjs.GridView, { ...props, gridState, onGridStateChange });
|
|
26063
26062
|
}
|
|
26064
26063
|
function ProgressiveLoadingChip() {
|
|
26065
26064
|
const isLoading = react.useDocumentsLoading();
|
|
@@ -26157,7 +26156,7 @@ function ConnectedFilesPage({
|
|
|
26157
26156
|
const deleteDocuments = react.useDeleteDocuments();
|
|
26158
26157
|
const isDocumentsPending = isLoading && documents.length === 0;
|
|
26159
26158
|
const { workspaceId, userId, live } = chunkT55BHIB7_cjs.useConnectedWorkspace();
|
|
26160
|
-
const { role, members } =
|
|
26159
|
+
const { role, members } = chunkRZ3EBN7G_cjs.useConnectedWorkspaceRole();
|
|
26161
26160
|
const { data: workspaces } = react.useWorkspaces({ enabled: live });
|
|
26162
26161
|
const workspaceName = workspaces?.find((w) => w.external_id === workspaceId)?.name;
|
|
26163
26162
|
const isMember = role != null;
|
|
@@ -26267,17 +26266,17 @@ function ConnectedFilesPage({
|
|
|
26267
26266
|
}, [relatedDocsMap, onRelatedDocsChange]);
|
|
26268
26267
|
const defaultVisibleColumns = React7.useMemo(
|
|
26269
26268
|
() => [
|
|
26270
|
-
...
|
|
26269
|
+
...chunkP4NS4LV7_cjs.DEFAULT_DOCUMENT_COLUMNS,
|
|
26271
26270
|
...allTags.filter(browser.isAnnotationTag).map((tag) => tag.external_id)
|
|
26272
26271
|
],
|
|
26273
26272
|
[allTags]
|
|
26274
26273
|
);
|
|
26275
26274
|
const handleReorderColumns = React7.useCallback((ids, gridApi2) => {
|
|
26276
|
-
if (gridApi2)
|
|
26275
|
+
if (gridApi2) chunkP4NS4LV7_cjs.applyColumnLayout(gridApi2, ids);
|
|
26277
26276
|
}, []);
|
|
26278
26277
|
const handleLoadView = React7.useCallback(
|
|
26279
26278
|
(view, gridApi2) => {
|
|
26280
|
-
|
|
26279
|
+
chunkP4NS4LV7_cjs.applyViewColumns(gridApi2, view, handleReorderColumns);
|
|
26281
26280
|
if (typeof view.tile_size === "number") setExplorerTileSize(view.tile_size);
|
|
26282
26281
|
if (typeof view.row_height === "number") setRowHeight(view.row_height);
|
|
26283
26282
|
},
|
|
@@ -26370,7 +26369,7 @@ function ConnectedFilesPage({
|
|
|
26370
26369
|
);
|
|
26371
26370
|
const currentDocument = viewingDocumentId ? filteredDocuments.find((d) => d.external_id === viewingDocumentId) ?? documents.find((d) => d.external_id === viewingDocumentId) ?? null : null;
|
|
26372
26371
|
const navigatorDocuments = React7.useMemo(
|
|
26373
|
-
() =>
|
|
26372
|
+
() => chunkP4NS4LV7_cjs.sortExplorerFiles(filteredDocuments, explorerSort, explorerSortReversed),
|
|
26374
26373
|
[filteredDocuments, explorerSort, explorerSortReversed]
|
|
26375
26374
|
);
|
|
26376
26375
|
const navigatorOnNavigate = React7.useCallback(
|
|
@@ -26437,7 +26436,7 @@ function ConnectedFilesPage({
|
|
|
26437
26436
|
},
|
|
26438
26437
|
rowHeight
|
|
26439
26438
|
};
|
|
26440
|
-
const documentsTabActions = /* @__PURE__ */ jsxRuntime.jsxs(
|
|
26439
|
+
const documentsTabActions = /* @__PURE__ */ jsxRuntime.jsxs(chunkP4NS4LV7_cjs.FilesFilterBar, { children: [
|
|
26441
26440
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
26442
26441
|
chunk2EI7NCUA_cjs.FilterInput,
|
|
26443
26442
|
{
|
|
@@ -26472,7 +26471,7 @@ function ConnectedFilesPage({
|
|
|
26472
26471
|
),
|
|
26473
26472
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex shrink-0 items-center gap-2", children: [
|
|
26474
26473
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
26475
|
-
|
|
26474
|
+
chunkP4NS4LV7_cjs.DocumentsFolderButton,
|
|
26476
26475
|
{
|
|
26477
26476
|
documents,
|
|
26478
26477
|
documentFilters,
|
|
@@ -26480,7 +26479,7 @@ function ConnectedFilesPage({
|
|
|
26480
26479
|
onNewFolder: canUpload ? handleNewFolder : void 0
|
|
26481
26480
|
}
|
|
26482
26481
|
),
|
|
26483
|
-
onOpenTags && /* @__PURE__ */ jsxRuntime.jsx(
|
|
26482
|
+
onOpenTags && /* @__PURE__ */ jsxRuntime.jsx(chunkP4NS4LV7_cjs.FilesTagsButton, { onClick: onOpenTags }),
|
|
26484
26483
|
headerExtras
|
|
26485
26484
|
] })
|
|
26486
26485
|
] });
|
|
@@ -26503,9 +26502,9 @@ function ConnectedFilesPage({
|
|
|
26503
26502
|
);
|
|
26504
26503
|
const reviewGridId = isModal ? "documents-modal-grid-v6" : "documents-main-grid-v6";
|
|
26505
26504
|
const showBulkBar = (viewMode === "grid" || viewMode === "explorer" || viewMode === "navigator") && documents.length > 0;
|
|
26506
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
26505
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(chunkP4NS4LV7_cjs.FilesPage, { isModal, ref: setPageEl, children: [
|
|
26507
26506
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
26508
|
-
|
|
26507
|
+
chunkP4NS4LV7_cjs.UrlInputDialog,
|
|
26509
26508
|
{
|
|
26510
26509
|
open: urlDialogOpen,
|
|
26511
26510
|
onOpenChange: setUrlDialogOpen,
|
|
@@ -26514,7 +26513,7 @@ function ConnectedFilesPage({
|
|
|
26514
26513
|
titleIcon: workspaceIcon
|
|
26515
26514
|
}
|
|
26516
26515
|
),
|
|
26517
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
26516
|
+
/* @__PURE__ */ jsxRuntime.jsxs(chunkP4NS4LV7_cjs.FilesPageHeader, { children: [
|
|
26518
26517
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
26519
26518
|
chunkMEMWZ72Y_cjs.TabHeader,
|
|
26520
26519
|
{
|
|
@@ -26535,7 +26534,7 @@ function ConnectedFilesPage({
|
|
|
26535
26534
|
activeTabId: "documents",
|
|
26536
26535
|
onTabChange: () => handleViewModeChange(lastDocsViewRef.current),
|
|
26537
26536
|
firstTabContent: isNarrowFilterRow ? null : documentsTabActions,
|
|
26538
|
-
centerContent: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
26537
|
+
centerContent: /* @__PURE__ */ jsxRuntime.jsxs(chunkP4NS4LV7_cjs.FilesViewCenter, { className: isNarrowFilterRow ? "min-w-0" : void 0, children: [
|
|
26539
26538
|
!isNarrowFilterRow && viewToggle,
|
|
26540
26539
|
/* @__PURE__ */ jsxRuntime.jsx(ProgressiveLoadingChip, {})
|
|
26541
26540
|
] }),
|
|
@@ -26565,14 +26564,14 @@ function ConnectedFilesPage({
|
|
|
26565
26564
|
}
|
|
26566
26565
|
),
|
|
26567
26566
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
26568
|
-
|
|
26567
|
+
chunkP4NS4LV7_cjs.FilesToolbar,
|
|
26569
26568
|
{
|
|
26570
26569
|
className: "px-3 pb-2",
|
|
26571
26570
|
rightActions: viewMode === "grid" || viewMode === "explorer" || viewMode === "navigator" ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
26572
26571
|
viewMode === "grid" ? (
|
|
26573
26572
|
// ‹ n / N › over the table's displayed rows; a step opens the document.
|
|
26574
26573
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
26575
|
-
|
|
26574
|
+
chunkLFVD3CS5_cjs.GridRowNavigator,
|
|
26576
26575
|
{
|
|
26577
26576
|
gridApi,
|
|
26578
26577
|
selectedId: viewingDocumentId ?? selectedDocumentIds[0] ?? null,
|
|
@@ -26587,7 +26586,7 @@ function ConnectedFilesPage({
|
|
|
26587
26586
|
) : viewMode === "explorer" ? (
|
|
26588
26587
|
// The same over the explorer's tiles.
|
|
26589
26588
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
26590
|
-
|
|
26589
|
+
chunkP4NS4LV7_cjs.ExplorerFileNavigator,
|
|
26591
26590
|
{
|
|
26592
26591
|
fileIds: explorerFileIds,
|
|
26593
26592
|
selectedId: viewingDocumentId ?? selectedDocumentIds[0] ?? null,
|
|
@@ -26626,7 +26625,7 @@ function ConnectedFilesPage({
|
|
|
26626
26625
|
}
|
|
26627
26626
|
),
|
|
26628
26627
|
viewMode === "navigator" && currentDocument && /* @__PURE__ */ jsxRuntime.jsx(
|
|
26629
|
-
|
|
26628
|
+
chunkP4NS4LV7_cjs.NavigatorPickerBar,
|
|
26630
26629
|
{
|
|
26631
26630
|
currentDocument,
|
|
26632
26631
|
documents: navigatorDocuments,
|
|
@@ -26638,11 +26637,11 @@ function ConnectedFilesPage({
|
|
|
26638
26637
|
}
|
|
26639
26638
|
)
|
|
26640
26639
|
] }),
|
|
26641
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
26640
|
+
/* @__PURE__ */ jsxRuntime.jsxs(chunkP4NS4LV7_cjs.FilesPageMain, { children: [
|
|
26642
26641
|
viewMode === "grid" && /* @__PURE__ */ jsxRuntime.jsx(
|
|
26643
|
-
|
|
26642
|
+
chunkP4NS4LV7_cjs.DocumentGrid,
|
|
26644
26643
|
{
|
|
26645
|
-
layout:
|
|
26644
|
+
layout: chunkP4NS4LV7_cjs.resolveDocumentGridLayout(isNarrowFilterRow, isModal, isTabletWidth),
|
|
26646
26645
|
presets: gridPresets,
|
|
26647
26646
|
GridComponent,
|
|
26648
26647
|
showEmptyWorkspace: documents.length === 0 && !isLoading && isMember,
|
|
@@ -26735,7 +26734,7 @@ function ConnectedFilesPage({
|
|
|
26735
26734
|
onProduce
|
|
26736
26735
|
}
|
|
26737
26736
|
),
|
|
26738
|
-
isModal && onClose && /* @__PURE__ */ jsxRuntime.jsx(
|
|
26737
|
+
isModal && onClose && /* @__PURE__ */ jsxRuntime.jsx(chunkP4NS4LV7_cjs.FilesModalFooter, { children: /* @__PURE__ */ jsxRuntime.jsx(ui.Button, { variant: "outline", onClick: onClose, children: "Close" }) }),
|
|
26739
26738
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
26740
26739
|
chunkSI222Z3A_cjs.ConfirmDialog,
|
|
26741
26740
|
{
|
|
@@ -26746,7 +26745,7 @@ function ConnectedFilesPage({
|
|
|
26746
26745
|
requestDelete(null);
|
|
26747
26746
|
},
|
|
26748
26747
|
title: "Delete Document",
|
|
26749
|
-
description: deleteRequest ? `Delete "${ui.getDocumentTitle(deleteRequest, "this document")}"? ${
|
|
26748
|
+
description: deleteRequest ? `Delete "${ui.getDocumentTitle(deleteRequest, "this document")}"? ${chunkP4NS4LV7_cjs.RECENTLY_DELETED_HINT}` : "",
|
|
26750
26749
|
confirmText: "Delete",
|
|
26751
26750
|
variant: "destructive"
|
|
26752
26751
|
}
|
|
@@ -27231,10 +27230,10 @@ function ConnectedChatThread({
|
|
|
27231
27230
|
};
|
|
27232
27231
|
const History = host.ThreadHistory;
|
|
27233
27232
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
27234
|
-
|
|
27233
|
+
chunkWUG24K7P_cjs.DmThreadFrame,
|
|
27235
27234
|
{
|
|
27236
27235
|
accessBanner: pendingAccessRequest ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
27237
|
-
|
|
27236
|
+
chunkWUG24K7P_cjs.DmAccessRequestBanner,
|
|
27238
27237
|
{
|
|
27239
27238
|
name: peer?.given_name ?? "They",
|
|
27240
27239
|
onReview: () => host.onReviewAccessRequest?.(pendingAccessRequest)
|
|
@@ -28110,7 +28109,7 @@ function ConnectedConfigForm({ availableModels, ...rest }) {
|
|
|
28110
28109
|
({ value, onChange }) => /* @__PURE__ */ jsxRuntime.jsx(ConnectedModelSelector, { value, onValueChange: onChange, className: "w-full" }),
|
|
28111
28110
|
[]
|
|
28112
28111
|
);
|
|
28113
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
28112
|
+
return /* @__PURE__ */ jsxRuntime.jsx(chunkUR6DWL4L_cjs.ConfigForm, { ...rest, renderModelSelect: hasModels ? renderModelSelect : void 0 });
|
|
28114
28113
|
}
|
|
28115
28114
|
function ConnectedAgentConfigForm({ agentExtId, agentName, onSaved }) {
|
|
28116
28115
|
const { notify: notify17 } = chunkZLSMS6OK_cjs.useBlocksEnvironment();
|
|
@@ -28227,7 +28226,7 @@ function ConnectedAuthorizeAgent({ onClose, editAgent }) {
|
|
|
28227
28226
|
}, [name, selectedWorkspaces, role, createAgent, addWorkspaceUsers, arbi, notify17]);
|
|
28228
28227
|
if (editAgent) {
|
|
28229
28228
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
28230
|
-
|
|
28229
|
+
chunkUR6DWL4L_cjs.AgentEditView,
|
|
28231
28230
|
{
|
|
28232
28231
|
agentName: editAgent.name,
|
|
28233
28232
|
config: /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -28243,7 +28242,7 @@ function ConnectedAuthorizeAgent({ onClose, editAgent }) {
|
|
|
28243
28242
|
}
|
|
28244
28243
|
if (view === "main") {
|
|
28245
28244
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
28246
|
-
|
|
28245
|
+
chunkUR6DWL4L_cjs.AgentMainView,
|
|
28247
28246
|
{
|
|
28248
28247
|
onConnectExternal: () => setView("connect"),
|
|
28249
28248
|
config: mainAgent ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -28259,11 +28258,11 @@ function ConnectedAuthorizeAgent({ onClose, editAgent }) {
|
|
|
28259
28258
|
}
|
|
28260
28259
|
if (result) {
|
|
28261
28260
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
28262
|
-
|
|
28261
|
+
chunkUR6DWL4L_cjs.AgentCreatedView,
|
|
28263
28262
|
{
|
|
28264
28263
|
email: result.email,
|
|
28265
28264
|
signingKey: result.signingKey,
|
|
28266
|
-
instructions: /* @__PURE__ */ jsxRuntime.jsx(
|
|
28265
|
+
instructions: /* @__PURE__ */ jsxRuntime.jsx(chunkUR6DWL4L_cjs.AgentConnectInstructions, { email: result.email, signingKey: result.signingKey }),
|
|
28267
28266
|
config: /* @__PURE__ */ jsxRuntime.jsx(ConnectedAgentConfigForm, { agentExtId: result.extId, agentName: result.name }),
|
|
28268
28267
|
isConfigOpen: configOpen,
|
|
28269
28268
|
onToggleConfig: () => setConfigOpen((v) => !v),
|
|
@@ -28272,7 +28271,7 @@ function ConnectedAuthorizeAgent({ onClose, editAgent }) {
|
|
|
28272
28271
|
);
|
|
28273
28272
|
}
|
|
28274
28273
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
28275
|
-
|
|
28274
|
+
chunkUR6DWL4L_cjs.AgentCreateView,
|
|
28276
28275
|
{
|
|
28277
28276
|
name,
|
|
28278
28277
|
onNameChange: setName,
|
|
@@ -29054,7 +29053,7 @@ var ConversationEntity = React7.memo(function ConversationEntity2({
|
|
|
29054
29053
|
);
|
|
29055
29054
|
const icon2 = /* @__PURE__ */ jsxRuntime.jsx(ui.ThreadVisibilityIcon, { shared: isShared, className: `${iconSizeClass} shrink-0` });
|
|
29056
29055
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
29057
|
-
|
|
29056
|
+
chunkUR6DWL4L_cjs.EntityChip,
|
|
29058
29057
|
{
|
|
29059
29058
|
variant,
|
|
29060
29059
|
icon: icon2,
|
|
@@ -29076,7 +29075,7 @@ function WorkflowRunStatusCell({ conversation }) {
|
|
|
29076
29075
|
});
|
|
29077
29076
|
const { data: members = [] } = react.useWorkspaceUsers();
|
|
29078
29077
|
const me = react.useArbiSession().user?.external_id;
|
|
29079
|
-
const steps =
|
|
29078
|
+
const steps = chunkUR6DWL4L_cjs.fromPlanSteps(conversation.plan?.steps ?? []);
|
|
29080
29079
|
const states = chunkEZLZ3MDU_cjs.stepStatesFromActivity(activity.data ?? []);
|
|
29081
29080
|
const nameOf = (id) => {
|
|
29082
29081
|
if (id === me) return "you";
|
|
@@ -29084,7 +29083,7 @@ function WorkflowRunStatusCell({ conversation }) {
|
|
|
29084
29083
|
return person ? ui.getUserDisplayName(person) : void 0;
|
|
29085
29084
|
};
|
|
29086
29085
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
29087
|
-
|
|
29086
|
+
chunkUR6DWL4L_cjs.WorkflowRunStatus,
|
|
29088
29087
|
{
|
|
29089
29088
|
steps,
|
|
29090
29089
|
states,
|
|
@@ -29118,7 +29117,7 @@ function ConversationStatusCell({ conversation }) {
|
|
|
29118
29117
|
if (conversation.plan?.steps?.length && !isLiveGenerating)
|
|
29119
29118
|
return /* @__PURE__ */ jsxRuntime.jsx(WorkflowRunStatusCell, { conversation });
|
|
29120
29119
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
29121
|
-
|
|
29120
|
+
chunkUR6DWL4L_cjs.ThreadStatusLine,
|
|
29122
29121
|
{
|
|
29123
29122
|
state: threadStateOf(conversation, isLiveGenerating),
|
|
29124
29123
|
className: "h-full",
|
|
@@ -29406,7 +29405,7 @@ function useThreadLabels(canEditShared) {
|
|
|
29406
29405
|
).map((label) => label.id)
|
|
29407
29406
|
);
|
|
29408
29407
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
29409
|
-
|
|
29408
|
+
chunkP4NS4LV7_cjs.BulkLabelSelectView,
|
|
29410
29409
|
{
|
|
29411
29410
|
options: options2,
|
|
29412
29411
|
appliedIds: all,
|
|
@@ -29450,16 +29449,16 @@ function useConnectedThreadActivity(conversationId) {
|
|
|
29450
29449
|
const openWorkflow = chunkZLSMS6OK_cjs.useOpenWorkflow();
|
|
29451
29450
|
const workspaceExtId = react.useArbiSessionState((s) => s.workspaceId);
|
|
29452
29451
|
const task = conversations.find((c) => c.external_id === conversationId);
|
|
29453
|
-
const latestMessageAt =
|
|
29452
|
+
const latestMessageAt = chunkUR6DWL4L_cjs.latestMessageTime(messageHistory);
|
|
29454
29453
|
const events = (activity.data ?? []).filter(
|
|
29455
|
-
(event) => !
|
|
29454
|
+
(event) => !chunkUR6DWL4L_cjs.isSupersededStop(event, latestMessageAt)
|
|
29456
29455
|
);
|
|
29457
29456
|
const personName = (extId) => {
|
|
29458
29457
|
const person = members.find((m) => m.user.external_id === extId)?.user;
|
|
29459
29458
|
return person ? ui.getUserDisplayName(person) : "someone";
|
|
29460
29459
|
};
|
|
29461
|
-
const planSteps =
|
|
29462
|
-
const entries =
|
|
29460
|
+
const planSteps = chunkUR6DWL4L_cjs.fromPlanSteps(task?.plan?.steps ?? []);
|
|
29461
|
+
const entries = chunkUR6DWL4L_cjs.compactThreadActivity(events, (id) => planSteps.find((s) => s.id === id)?.title);
|
|
29463
29462
|
const items = entries.map(({ event, label, recipients }) => {
|
|
29464
29463
|
const messageActivity = [
|
|
29465
29464
|
"created",
|
|
@@ -29485,7 +29484,7 @@ function useConnectedThreadActivity(conversationId) {
|
|
|
29485
29484
|
const messageId = sourceMessage ?? [...messageHistory].reverse().find((message) => Date.parse(message.created_at ?? "") <= Date.parse(event.created_at))?.external_id ?? messageHistory[0]?.external_id;
|
|
29486
29485
|
const doc = docId ? docs.find((d) => d.external_id === docId) : void 0;
|
|
29487
29486
|
const mailDraftId = event.kind === "notified" && event.detail?.event === "mail_draft_ready" && typeof event.detail?.mail_id === "string" ? event.detail.mail_id : void 0;
|
|
29488
|
-
const missed = event.kind === "notified" && recipients.length ?
|
|
29487
|
+
const missed = event.kind === "notified" && recipients.length ? chunkUR6DWL4L_cjs.unnotifiedMentions(
|
|
29489
29488
|
messageHistory.find((message) => message.external_id === sourceMessage)?.mentions,
|
|
29490
29489
|
recipients,
|
|
29491
29490
|
event.actor_ext_id
|
|
@@ -29518,7 +29517,7 @@ function useConnectedThreadActivity(conversationId) {
|
|
|
29518
29517
|
) : void 0,
|
|
29519
29518
|
docId,
|
|
29520
29519
|
docTitle: doc ? ui.getDocumentTitle(doc) : void 0,
|
|
29521
|
-
label: mailDraftId ? "Left a draft email" : event.kind === "notified" && recipients.length ?
|
|
29520
|
+
label: mailDraftId ? "Left a draft email" : event.kind === "notified" && recipients.length ? chunkUR6DWL4L_cjs.notifiedLabel(recipients.map(personName), missed.map(personName)) : label,
|
|
29522
29521
|
description: [
|
|
29523
29522
|
name,
|
|
29524
29523
|
label,
|
|
@@ -29532,7 +29531,7 @@ function useConnectedThreadActivity(conversationId) {
|
|
|
29532
29531
|
stepChip: eventStep ? stepChipOf(eventStep, event.kind, stepDocument) : void 0,
|
|
29533
29532
|
// No avatar tooltip: the entry is already a button (or titled row) that carries the same
|
|
29534
29533
|
// details, and a tooltip trigger inside it would be a nested <button>.
|
|
29535
|
-
avatar: assistant ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
29534
|
+
avatar: assistant ? /* @__PURE__ */ jsxRuntime.jsx(chunkUR6DWL4L_cjs.AssistantEntity, { variant: "icon", size: 20, showTooltip: false }) : member ? /* @__PURE__ */ jsxRuntime.jsx(DocumentUser, { user: member, tooltip: false }) : /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Clock, { className: "size-4 text-muted-foreground" }),
|
|
29536
29535
|
time: react.formatRelativeTime(event.created_at, { style: "short" }),
|
|
29537
29536
|
exactTime: ui.formatFriendlyDate(event.created_at),
|
|
29538
29537
|
onOpenDocument: docId && doc ? () => openDocument(docId) : void 0,
|
|
@@ -29581,7 +29580,7 @@ function useConnectedThreadActivity(conversationId) {
|
|
|
29581
29580
|
onSelect: () => navigateToConversation(source)
|
|
29582
29581
|
});
|
|
29583
29582
|
}
|
|
29584
|
-
const links =
|
|
29583
|
+
const links = chunkUR6DWL4L_cjs.linkedRunsFromActivity(activity.data);
|
|
29585
29584
|
const threadName = (id, workflowId) => conversations.find((c) => c.external_id === id)?.title || workflows.find((w) => w.external_id === workflowId)?.name || "Linked thread";
|
|
29586
29585
|
const signals = links.raised.map((raised) => ({
|
|
29587
29586
|
step: raised.step,
|
|
@@ -29596,7 +29595,7 @@ function useConnectedThreadActivity(conversationId) {
|
|
|
29596
29595
|
if (links.startedBy) {
|
|
29597
29596
|
const { conversationId: parentId, step, signal } = links.startedBy;
|
|
29598
29597
|
const parent = conversations.find((c) => c.external_id === parentId);
|
|
29599
|
-
const parentSteps =
|
|
29598
|
+
const parentSteps = chunkUR6DWL4L_cjs.fromPlanSteps(parent?.plan?.steps ?? []);
|
|
29600
29599
|
startedBy = {
|
|
29601
29600
|
stepTitle: parentSteps.find((s) => s.id === step)?.title ?? step ?? "a step",
|
|
29602
29601
|
threadTitle: parent?.title || "another thread",
|
|
@@ -29629,7 +29628,7 @@ function ConnectedThreadTaskBar({
|
|
|
29629
29628
|
const person = members.find((m) => m.user.external_id === id)?.user;
|
|
29630
29629
|
return person ? ui.getUserDisplayName(person) : void 0;
|
|
29631
29630
|
};
|
|
29632
|
-
const steps =
|
|
29631
|
+
const steps = chunkUR6DWL4L_cjs.fromPlanSteps(task?.plan?.steps ?? []);
|
|
29633
29632
|
const states = chunkEZLZ3MDU_cjs.stepStatesFromActivity(activity.data ?? []);
|
|
29634
29633
|
const runInputs = task?.skill_inputs ?? {};
|
|
29635
29634
|
const stepCall = (body) => actOnStep.mutateAsync({ conversationId, body });
|
|
@@ -29655,7 +29654,7 @@ function ConnectedThreadTaskBar({
|
|
|
29655
29654
|
task?.plan?.steps?.length ? (
|
|
29656
29655
|
// A workflow run: its named steps, with what happened in the thread under each.
|
|
29657
29656
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
29658
|
-
|
|
29657
|
+
chunkUR6DWL4L_cjs.WorkflowThreadStrip,
|
|
29659
29658
|
{
|
|
29660
29659
|
steps,
|
|
29661
29660
|
states,
|
|
@@ -29682,7 +29681,7 @@ function ConnectedThreadTaskBar({
|
|
|
29682
29681
|
renderStepAction: (step, phase) => (
|
|
29683
29682
|
// A signer or a draft's person acts on their step even on a thread they cannot edit.
|
|
29684
29683
|
canEdit || phase === "waiting" || phase === "done" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
29685
|
-
|
|
29684
|
+
chunkUR6DWL4L_cjs.WorkflowStepAction,
|
|
29686
29685
|
{
|
|
29687
29686
|
step,
|
|
29688
29687
|
phase,
|
|
@@ -29703,8 +29702,8 @@ function ConnectedThreadTaskBar({
|
|
|
29703
29702
|
}
|
|
29704
29703
|
)
|
|
29705
29704
|
) : items.length || startedBy ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
29706
|
-
startedBy && /* @__PURE__ */ jsxRuntime.jsx(
|
|
29707
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
29705
|
+
startedBy && /* @__PURE__ */ jsxRuntime.jsx(chunkUR6DWL4L_cjs.WorkflowThreadStartedBy, { origin: startedBy }),
|
|
29706
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkUR6DWL4L_cjs.TaskFlow, { items: items.filter((item) => !item.step) })
|
|
29708
29707
|
] }) : (
|
|
29709
29708
|
// Ordinary chats record no activity events, so an empty ribbon says nothing rather than
|
|
29710
29709
|
// "No recorded activity yet" while the answer and its steps are right there in the thread.
|
|
@@ -29738,7 +29737,7 @@ function ConnectedThreadTaskBar({
|
|
|
29738
29737
|
) }),
|
|
29739
29738
|
/* @__PURE__ */ jsxRuntime.jsxs(ui.DropdownMenuContent, { align: "end", children: [
|
|
29740
29739
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
29741
|
-
|
|
29740
|
+
chunkLFVD3CS5_cjs.ThreadFollowMenuItem,
|
|
29742
29741
|
{
|
|
29743
29742
|
following: follow.following,
|
|
29744
29743
|
onFollowingChange: (on) => (
|
|
@@ -29817,25 +29816,25 @@ function useSkillsEnabled() {
|
|
|
29817
29816
|
// src/connection/workflows/useWorkflowDefinitions.ts
|
|
29818
29817
|
function useWorkflowDefinitions() {
|
|
29819
29818
|
const { data: listings } = react.useSkills();
|
|
29820
|
-
const usage =
|
|
29819
|
+
const usage = chunkUR6DWL4L_cjs.useWorkflowUsage();
|
|
29821
29820
|
const skillsEnabled = useSkillsEnabled();
|
|
29822
29821
|
return React7.useMemo(() => {
|
|
29823
29822
|
const { host: builtins, skills: fromServer } = chunk76L6LOP3_cjs.mergeSkillWorkflows(
|
|
29824
|
-
|
|
29823
|
+
chunkUR6DWL4L_cjs.WEB_WORKFLOWS,
|
|
29825
29824
|
listings ?? []
|
|
29826
29825
|
);
|
|
29827
29826
|
const all = [...builtins, ...fromServer];
|
|
29828
29827
|
const byId = new Map(all.map((w) => [w.id, w]));
|
|
29829
|
-
const pinned =
|
|
29828
|
+
const pinned = chunkUR6DWL4L_cjs.DASHBOARD_PINNED.flatMap((id) => {
|
|
29830
29829
|
const w = byId.get(id);
|
|
29831
29830
|
return w ? [w] : [];
|
|
29832
29831
|
});
|
|
29833
29832
|
return {
|
|
29834
29833
|
skills: all,
|
|
29835
29834
|
skillsEnabled,
|
|
29836
|
-
start: skillsEnabled ? [...builtins, ...
|
|
29837
|
-
dashboard: [...pinned, ...
|
|
29838
|
-
forTasks: [
|
|
29835
|
+
start: skillsEnabled ? [...builtins, ...chunkUR6DWL4L_cjs.sortByRecentUse(fromServer, usage)] : [],
|
|
29836
|
+
dashboard: [...pinned, ...chunkUR6DWL4L_cjs.DASHBOARD_OPERATIONS],
|
|
29837
|
+
forTasks: [chunkUR6DWL4L_cjs.CUSTOM_TASK, ...all.filter((w) => w.schedulable), chunkUR6DWL4L_cjs.REMIND_TASK]
|
|
29839
29838
|
};
|
|
29840
29839
|
}, [listings, usage, skillsEnabled]);
|
|
29841
29840
|
}
|
|
@@ -29863,7 +29862,7 @@ function useWorkflowTasks() {
|
|
|
29863
29862
|
);
|
|
29864
29863
|
const create3 = React7.useCallback(
|
|
29865
29864
|
async (ctx, forceWorkflow = false) => {
|
|
29866
|
-
const request =
|
|
29865
|
+
const request = chunkUR6DWL4L_cjs.taskComposerToCreateRequest(
|
|
29867
29866
|
{ ...ctx, documentTitles, plan: ctx.plan ?? null },
|
|
29868
29867
|
activeWorkspaceId ?? void 0,
|
|
29869
29868
|
forceWorkflow
|
|
@@ -29905,7 +29904,7 @@ function useWorkflowTasks() {
|
|
|
29905
29904
|
);
|
|
29906
29905
|
const update = React7.useCallback(
|
|
29907
29906
|
async (task, ctx) => {
|
|
29908
|
-
const patch =
|
|
29907
|
+
const patch = chunkUR6DWL4L_cjs.taskComposerToUpdateRequest({ ...ctx, plan: ctx.plan ?? null });
|
|
29909
29908
|
if (task.is_owner === false) delete patch.shared;
|
|
29910
29909
|
await updateConversation.mutateAsync({ conversationId: task.external_id, patch });
|
|
29911
29910
|
},
|
|
@@ -29913,7 +29912,7 @@ function useWorkflowTasks() {
|
|
|
29913
29912
|
);
|
|
29914
29913
|
const updateWorkflow = React7.useCallback(
|
|
29915
29914
|
async (workflow, ctx) => {
|
|
29916
|
-
const patch =
|
|
29915
|
+
const patch = chunkUR6DWL4L_cjs.composerToWorkflowUpdate({ ...ctx, documentTitles, plan: ctx.plan ?? null });
|
|
29917
29916
|
if (workflow.is_owner === false) delete patch.shared;
|
|
29918
29917
|
const workspaceId = workflow.workspace_ext_id ?? activeWorkspaceId;
|
|
29919
29918
|
const updated = await updateWorkflowMutation.mutateAsync({
|
|
@@ -30028,7 +30027,7 @@ function ConnectedTaskComposer({
|
|
|
30028
30027
|
const { tasks: allTasks } = react.useWorkItems();
|
|
30029
30028
|
const { data: documents = [] } = react.useDocuments();
|
|
30030
30029
|
const { create: create3, update, updateWorkflow, isPending } = useWorkflowTasks();
|
|
30031
|
-
const scopeSource =
|
|
30030
|
+
const scopeSource = chunkRZ3EBN7G_cjs.useConnectedWorkflowScopeSource();
|
|
30032
30031
|
const activeWorkspaceId = react.useArbiSessionState((s) => s.workspaceId);
|
|
30033
30032
|
const activeWorkspace = React7.useMemo(
|
|
30034
30033
|
() => workspaces.find((w) => w.external_id === activeWorkspaceId) ?? null,
|
|
@@ -30045,7 +30044,7 @@ function ConnectedTaskComposer({
|
|
|
30045
30044
|
const label = (t) => t.title?.trim() || "Untitled task";
|
|
30046
30045
|
if (isWorkflow) return allTasks.map((t) => ({ id: t.external_id, name: label(t) }));
|
|
30047
30046
|
const subject = task ?? { external_id: "__new__" };
|
|
30048
|
-
return
|
|
30047
|
+
return chunkUR6DWL4L_cjs.moveTargets(
|
|
30049
30048
|
[...allTasks.filter((t) => t.external_id !== subject.external_id), subject],
|
|
30050
30049
|
subject
|
|
30051
30050
|
).map((t) => ({ id: t.external_id, name: label(t) }));
|
|
@@ -30060,33 +30059,33 @@ function ConnectedTaskComposer({
|
|
|
30060
30059
|
);
|
|
30061
30060
|
const initialValues = React7.useMemo(() => {
|
|
30062
30061
|
const ids = {
|
|
30063
|
-
customWorkflowId:
|
|
30064
|
-
reminderWorkflowId:
|
|
30062
|
+
customWorkflowId: chunkUR6DWL4L_cjs.CUSTOM_TASK_ID,
|
|
30063
|
+
reminderWorkflowId: chunkUR6DWL4L_cjs.REMIND_TASK_ID,
|
|
30065
30064
|
definitions: forTasks
|
|
30066
30065
|
};
|
|
30067
30066
|
const base = launchWorkflow ? {
|
|
30068
|
-
...
|
|
30067
|
+
...chunkUR6DWL4L_cjs.workflowToComposerValues(launchWorkflow, ids),
|
|
30069
30068
|
when: "once",
|
|
30070
30069
|
runAt: "",
|
|
30071
30070
|
rrule: "",
|
|
30072
30071
|
eventKind: "",
|
|
30073
30072
|
afterTaskId: "",
|
|
30074
30073
|
name: ""
|
|
30075
|
-
} : editingWorkflow ?
|
|
30074
|
+
} : editingWorkflow ? chunkUR6DWL4L_cjs.workflowToComposerValues(editingWorkflow, ids) : task ? chunkUR6DWL4L_cjs.taskToComposerValues(task, ids) : isWorkflow ? {
|
|
30076
30075
|
// Run now is the default start; scheduling is the fallback in the same field.
|
|
30077
30076
|
assignee: "agent",
|
|
30078
|
-
workflowId: initialWorkflowId ??
|
|
30077
|
+
workflowId: initialWorkflowId ?? chunkUR6DWL4L_cjs.CUSTOM_TASK_ID,
|
|
30079
30078
|
when: startLater ? "once" : "now",
|
|
30080
30079
|
...initialPrompt ? {
|
|
30081
30080
|
inputs: {
|
|
30082
|
-
[initialWorkflowId ===
|
|
30081
|
+
[initialWorkflowId === chunkUR6DWL4L_cjs.REMIND_TASK_ID ? "message" : "instruction"]: initialPrompt
|
|
30083
30082
|
}
|
|
30084
30083
|
} : {},
|
|
30085
30084
|
// A scheduled run needs an agent: the owner's Assistant unless another is picked.
|
|
30086
30085
|
...startLater && defaultAgentId ? { agentId: defaultAgentId } : {}
|
|
30087
30086
|
} : initialAgentExtId ? (
|
|
30088
30087
|
// Assigning an agent means agentic work: the free instruction, and tell me when done.
|
|
30089
|
-
{ agentId: initialAgentExtId, workflowId:
|
|
30088
|
+
{ agentId: initialAgentExtId, workflowId: chunkUR6DWL4L_cjs.CUSTOM_TASK_ID, notifyOnComplete: true }
|
|
30090
30089
|
) : {};
|
|
30091
30090
|
return {
|
|
30092
30091
|
timezone: chunkQUMUAJ2P_cjs.detectTimeZone(),
|
|
@@ -30147,7 +30146,7 @@ function ConnectedTaskComposer({
|
|
|
30147
30146
|
const ctx = {
|
|
30148
30147
|
workflow: chosen,
|
|
30149
30148
|
values: submitted,
|
|
30150
|
-
plan: chosen.id ===
|
|
30149
|
+
plan: chosen.id === chunkUR6DWL4L_cjs.CUSTOM_TASK_ID ? plan : null
|
|
30151
30150
|
};
|
|
30152
30151
|
try {
|
|
30153
30152
|
if (isWorkflow && editingWorkflow && !options2?.runOnce) {
|
|
@@ -30183,7 +30182,7 @@ function ConnectedTaskComposer({
|
|
|
30183
30182
|
}
|
|
30184
30183
|
};
|
|
30185
30184
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
30186
|
-
|
|
30185
|
+
chunkUR6DWL4L_cjs.TaskComposer,
|
|
30187
30186
|
{
|
|
30188
30187
|
open,
|
|
30189
30188
|
onOpenChange,
|
|
@@ -30197,15 +30196,15 @@ function ConnectedTaskComposer({
|
|
|
30197
30196
|
tasks: taskOptions,
|
|
30198
30197
|
initialValues,
|
|
30199
30198
|
timezones,
|
|
30200
|
-
eventOptions:
|
|
30199
|
+
eventOptions: chunkUR6DWL4L_cjs.AUTOMATION_EVENTS,
|
|
30201
30200
|
eventWorkflowOptions: workspaceAutomations.filter((item) => item.external_id !== editingWorkflow?.external_id).map((item) => ({ id: item.external_id, label: item.name })),
|
|
30202
30201
|
isPending,
|
|
30203
30202
|
planDrafting: planWork.isPending,
|
|
30204
30203
|
hasPlan: plan !== null,
|
|
30205
|
-
renderIcon:
|
|
30204
|
+
renderIcon: chunkUR6DWL4L_cjs.renderWorkflowIcon,
|
|
30206
30205
|
scopeSource,
|
|
30207
30206
|
renderDocuments: (field, value, onChange) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
30208
|
-
|
|
30207
|
+
chunkRZ3EBN7G_cjs.ConnectedWorkflowDocumentsField,
|
|
30209
30208
|
{
|
|
30210
30209
|
field,
|
|
30211
30210
|
value,
|
|
@@ -30236,8 +30235,8 @@ function ConnectedTaskComposer({
|
|
|
30236
30235
|
...plan ? { addAndStart: "Approve plan and start", addAndSchedule: "Approve plan and schedule" } : {}
|
|
30237
30236
|
},
|
|
30238
30237
|
onSubmit: submit,
|
|
30239
|
-
goal: (values) => values.workflowId ===
|
|
30240
|
-
|
|
30238
|
+
goal: (values) => values.workflowId === chunkUR6DWL4L_cjs.CUSTOM_TASK_ID ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
30239
|
+
chunkUR6DWL4L_cjs.TaskPlan,
|
|
30241
30240
|
{
|
|
30242
30241
|
plan,
|
|
30243
30242
|
onChange: setPlan,
|
|
@@ -30437,7 +30436,7 @@ function ConnectedTaskStartDialog({
|
|
|
30437
30436
|
};
|
|
30438
30437
|
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
30439
30438
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
30440
|
-
|
|
30439
|
+
chunkUR6DWL4L_cjs.TaskStartDialog,
|
|
30441
30440
|
{
|
|
30442
30441
|
open: open && !later,
|
|
30443
30442
|
onOpenChange: (next) => {
|
|
@@ -30469,7 +30468,7 @@ function ConnectedTaskStartDialog({
|
|
|
30469
30468
|
kind: "workflow",
|
|
30470
30469
|
startLater: true,
|
|
30471
30470
|
initialPrompt: later.prompt,
|
|
30472
|
-
initialWorkflowId: later.todo ?
|
|
30471
|
+
initialWorkflowId: later.todo ? chunkUR6DWL4L_cjs.REMIND_TASK_ID : void 0,
|
|
30473
30472
|
initialShared: later.shared,
|
|
30474
30473
|
launchWorkflow: later.workflow
|
|
30475
30474
|
}
|
|
@@ -30483,7 +30482,7 @@ function ConnectedThreadLauncher({ autoFocus }) {
|
|
|
30483
30482
|
const [later, setLater] = React7.useState(null);
|
|
30484
30483
|
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
30485
30484
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
30486
|
-
|
|
30485
|
+
chunkUR6DWL4L_cjs.ThreadLauncher,
|
|
30487
30486
|
{
|
|
30488
30487
|
workflows: task.workflows,
|
|
30489
30488
|
people: task.people,
|
|
@@ -30520,7 +30519,7 @@ function ConnectedThreadLauncher({ autoFocus }) {
|
|
|
30520
30519
|
kind: "workflow",
|
|
30521
30520
|
startLater: true,
|
|
30522
30521
|
initialPrompt: later.prompt,
|
|
30523
|
-
initialWorkflowId: later.todo ?
|
|
30522
|
+
initialWorkflowId: later.todo ? chunkUR6DWL4L_cjs.REMIND_TASK_ID : void 0,
|
|
30524
30523
|
initialShared: later.shared,
|
|
30525
30524
|
launchWorkflow: later.workflow
|
|
30526
30525
|
}
|
|
@@ -30549,13 +30548,13 @@ function ConnectedNewThreadDialog({
|
|
|
30549
30548
|
});
|
|
30550
30549
|
const parentOptions = React7.useMemo(() => {
|
|
30551
30550
|
const leaf = { external_id: "__new__" };
|
|
30552
|
-
return
|
|
30551
|
+
return chunkUR6DWL4L_cjs.moveTargets([...tasks, leaf], leaf).map((t) => ({
|
|
30553
30552
|
id: t.external_id,
|
|
30554
30553
|
name: t.title?.trim() || "Untitled task"
|
|
30555
30554
|
}));
|
|
30556
30555
|
}, [tasks]);
|
|
30557
30556
|
const submit = async (values) => {
|
|
30558
|
-
const request =
|
|
30557
|
+
const request = chunkUR6DWL4L_cjs.newThreadToRequest(values);
|
|
30559
30558
|
try {
|
|
30560
30559
|
if (!workspaceId) throw new Error("Open a workspace to add a task.");
|
|
30561
30560
|
if (!request.startAssistant && request.todo) {
|
|
@@ -30596,7 +30595,7 @@ function ConnectedNewThreadDialog({
|
|
|
30596
30595
|
}
|
|
30597
30596
|
};
|
|
30598
30597
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
30599
|
-
|
|
30598
|
+
chunkUR6DWL4L_cjs.NewThreadDialog,
|
|
30600
30599
|
{
|
|
30601
30600
|
open,
|
|
30602
30601
|
onOpenChange,
|
|
@@ -30631,7 +30630,7 @@ function useRenderTaskPerson() {
|
|
|
30631
30630
|
return React7.useCallback(
|
|
30632
30631
|
(person) => {
|
|
30633
30632
|
const user = person.id ? byId.get(person.id) : void 0;
|
|
30634
|
-
return user ? /* @__PURE__ */ jsxRuntime.jsx(DocumentUser, { user, variant: "pill" }) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
30633
|
+
return user ? /* @__PURE__ */ jsxRuntime.jsx(DocumentUser, { user, variant: "pill" }) : /* @__PURE__ */ jsxRuntime.jsx(chunkG6GUMZOZ_cjs.PersonPill, { person });
|
|
30635
30634
|
},
|
|
30636
30635
|
[byId]
|
|
30637
30636
|
);
|
|
@@ -30641,14 +30640,14 @@ var referencesOf = (inputs) => {
|
|
|
30641
30640
|
return value?.documents ?? [];
|
|
30642
30641
|
};
|
|
30643
30642
|
var PROMPT_BINDINGS = {
|
|
30644
|
-
[
|
|
30643
|
+
[chunkUR6DWL4L_cjs.GENERATE_IMAGE_ID]: {
|
|
30645
30644
|
attachScope: false,
|
|
30646
30645
|
tools: (inputs) => {
|
|
30647
30646
|
const aspectRatio = typeof inputs.aspect_ratio === "string" ? inputs.aspect_ratio : "";
|
|
30648
30647
|
return {
|
|
30649
30648
|
retrieval_chunk: browser.buildRetrievalChunkTool([]),
|
|
30650
30649
|
retrieval_full_context: browser.buildRetrievalFullContextTool(referencesOf(inputs)),
|
|
30651
|
-
...aspectRatio && aspectRatio !==
|
|
30650
|
+
...aspectRatio && aspectRatio !== chunkUR6DWL4L_cjs.IMAGE_ASPECT_AUTO ? {
|
|
30652
30651
|
image_generation: {
|
|
30653
30652
|
name: "image_generation",
|
|
30654
30653
|
description: "image generation",
|
|
@@ -30669,7 +30668,7 @@ var text = (inputs, name) => {
|
|
|
30669
30668
|
function useLaunchWorkflow({ landing: surfaceLanding } = {}) {
|
|
30670
30669
|
const { data: documents = [] } = react.useDocuments();
|
|
30671
30670
|
const { data: workspaceTags = [] } = react.useTags();
|
|
30672
|
-
const tags = React7.useMemo(() =>
|
|
30671
|
+
const tags = React7.useMemo(() => chunkG6GUMZOZ_cjs.documentScopeLabels(workspaceTags), [workspaceTags]);
|
|
30673
30672
|
const createTag = react.useCreateTag();
|
|
30674
30673
|
const updateTag = react.useUpdateTag();
|
|
30675
30674
|
const generate = react.useGenerateDocTags();
|
|
@@ -30680,8 +30679,8 @@ function useLaunchWorkflow({ landing: surfaceLanding } = {}) {
|
|
|
30680
30679
|
const annotate = React7.useCallback(
|
|
30681
30680
|
async ({ inputs, scope }) => {
|
|
30682
30681
|
const description = text(inputs, "description");
|
|
30683
|
-
const name = text(inputs, "name") ||
|
|
30684
|
-
const matching =
|
|
30682
|
+
const name = text(inputs, "name") || chunkUR6DWL4L_cjs.deriveAnnotationName(description);
|
|
30683
|
+
const matching = chunkG6GUMZOZ_cjs.matchWorkflowScope(documents, scope);
|
|
30685
30684
|
if (!name || !description || matching.length === 0) return;
|
|
30686
30685
|
try {
|
|
30687
30686
|
const existing = tags.find((t) => t.name.toLowerCase() === name.toLowerCase());
|
|
@@ -30724,9 +30723,9 @@ function useLaunchWorkflow({ landing: surfaceLanding } = {}) {
|
|
|
30724
30723
|
async (launch) => {
|
|
30725
30724
|
const { workflow, inputs, scope, agentId } = launch;
|
|
30726
30725
|
if (workflow.run.kind === "operation") {
|
|
30727
|
-
if (workflow.id ===
|
|
30726
|
+
if (workflow.id === chunkUR6DWL4L_cjs.ANNOTATE_ID) {
|
|
30728
30727
|
await annotate(launch);
|
|
30729
|
-
|
|
30728
|
+
chunkUR6DWL4L_cjs.recordWorkflowUse(workflow.id);
|
|
30730
30729
|
return;
|
|
30731
30730
|
}
|
|
30732
30731
|
throw new Error(`No host handler for workflow "${workflow.id}"`);
|
|
@@ -30736,7 +30735,7 @@ function useLaunchWorkflow({ landing: surfaceLanding } = {}) {
|
|
|
30736
30735
|
);
|
|
30737
30736
|
const prompt = chunk76L6LOP3_cjs.composeWorkflowPrompt(workflow, inputs, { documentTitles });
|
|
30738
30737
|
if (!prompt) return;
|
|
30739
|
-
|
|
30738
|
+
chunkUR6DWL4L_cjs.recordWorkflowUse(workflow.id);
|
|
30740
30739
|
if (agentId) {
|
|
30741
30740
|
try {
|
|
30742
30741
|
const created = await createTask({
|
|
@@ -30781,7 +30780,7 @@ function useLaunchWorkflow({ landing: surfaceLanding } = {}) {
|
|
|
30781
30780
|
const binding = PROMPT_BINDINGS[workflow.id];
|
|
30782
30781
|
if (!inPlace) openNewConversation();
|
|
30783
30782
|
if (binding?.attachScope !== false && !chunk76L6LOP3_cjs.isEmptyWorkflowScope(scope)) {
|
|
30784
|
-
const ids =
|
|
30783
|
+
const ids = chunkG6GUMZOZ_cjs.matchWorkflowScope(documents, scope).map((d) => d.external_id);
|
|
30785
30784
|
if (ids.length > 0) {
|
|
30786
30785
|
session.setConversationDocuments(
|
|
30787
30786
|
inPlace ? session.getState().conversationId ?? "new" : "new",
|
|
@@ -30822,7 +30821,7 @@ function resolveLaunchInputs(workflow, request) {
|
|
|
30822
30821
|
function useWorkflowLaunch() {
|
|
30823
30822
|
const { skills } = useWorkflowDefinitions();
|
|
30824
30823
|
const launch = React7.useCallback(
|
|
30825
|
-
(workflowId, options2 = {}) =>
|
|
30824
|
+
(workflowId, options2 = {}) => chunkUR6DWL4L_cjs.openWorkflowLaunch({ workflowId, ...options2 }),
|
|
30826
30825
|
[]
|
|
30827
30826
|
);
|
|
30828
30827
|
const itemsFor = React7.useCallback(
|
|
@@ -30860,30 +30859,30 @@ function ConnectedWorkflowStart({
|
|
|
30860
30859
|
const onLaunch = useLaunchWorkflow({ landing });
|
|
30861
30860
|
const { openUpload } = chunkZLSMS6OK_cjs.useBlocksEnvironment();
|
|
30862
30861
|
const { data: workspaceTags = [] } = react.useTags();
|
|
30863
|
-
const tags = React7.useMemo(() =>
|
|
30862
|
+
const tags = React7.useMemo(() => chunkG6GUMZOZ_cjs.documentScopeLabels(workspaceTags), [workspaceTags]);
|
|
30864
30863
|
const fieldPlaceholder = React7.useCallback(
|
|
30865
30864
|
(field, inputs, workflow) => {
|
|
30866
|
-
if (workflow.id !==
|
|
30867
|
-
const derived =
|
|
30865
|
+
if (workflow.id !== chunkUR6DWL4L_cjs.ANNOTATE_ID || field.name !== "name") return void 0;
|
|
30866
|
+
const derived = chunkUR6DWL4L_cjs.deriveAnnotationName(String(inputs.description ?? ""));
|
|
30868
30867
|
return derived ? `Otherwise \u201C${derived}\u201D` : "Taken from the description";
|
|
30869
30868
|
},
|
|
30870
30869
|
[]
|
|
30871
30870
|
);
|
|
30872
30871
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
30873
|
-
|
|
30872
|
+
chunkRZ3EBN7G_cjs.ConnectedWorkflowLauncher,
|
|
30874
30873
|
{
|
|
30875
30874
|
...rest,
|
|
30876
30875
|
workflows,
|
|
30877
30876
|
onLaunch,
|
|
30878
|
-
renderIcon:
|
|
30877
|
+
renderIcon: chunkUR6DWL4L_cjs.renderWorkflowIcon,
|
|
30879
30878
|
onAddFiles: openUpload,
|
|
30880
30879
|
agentLabels: AGENT_LABELS,
|
|
30881
30880
|
addFilesAction,
|
|
30882
30881
|
fieldPlaceholder,
|
|
30883
|
-
submitLabel: ({ workflow, matchedCount }) => workflow.id ===
|
|
30882
|
+
submitLabel: ({ workflow, matchedCount }) => workflow.id === chunkUR6DWL4L_cjs.ANNOTATE_ID && matchedCount !== null ? `Annotate ${matchedCount} document${matchedCount !== 1 ? "s" : ""}` : void 0,
|
|
30884
30883
|
renderNotice: ({ workflow, inputs }) => {
|
|
30885
|
-
if (workflow.id !==
|
|
30886
|
-
const name = String(inputs.name ?? "").trim() ||
|
|
30884
|
+
if (workflow.id !== chunkUR6DWL4L_cjs.ANNOTATE_ID) return null;
|
|
30885
|
+
const name = String(inputs.name ?? "").trim() || chunkUR6DWL4L_cjs.deriveAnnotationName(String(inputs.description ?? ""));
|
|
30887
30886
|
const existing = name ? tags.find((t) => t.name.toLowerCase() === name.toLowerCase()) : void 0;
|
|
30888
30887
|
if (!existing) return null;
|
|
30889
30888
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
@@ -30907,8 +30906,8 @@ function ConnectedWorkflowStart({
|
|
|
30907
30906
|
);
|
|
30908
30907
|
}
|
|
30909
30908
|
function Inner() {
|
|
30910
|
-
const request =
|
|
30911
|
-
const close =
|
|
30909
|
+
const request = chunkUR6DWL4L_cjs.useWorkflowLaunchRequest();
|
|
30910
|
+
const close = chunkUR6DWL4L_cjs.closeWorkflowLaunch;
|
|
30912
30911
|
const { skills } = useWorkflowDefinitions();
|
|
30913
30912
|
const run = useLaunchWorkflow({ landing: request?.landing });
|
|
30914
30913
|
const workflow = skills.find((w) => w.id === request?.workflowId);
|
|
@@ -30946,7 +30945,7 @@ function Inner() {
|
|
|
30946
30945
|
);
|
|
30947
30946
|
}
|
|
30948
30947
|
function WorkflowLaunchHost() {
|
|
30949
|
-
return
|
|
30948
|
+
return chunkUR6DWL4L_cjs.useWorkflowLaunchRequest() ? /* @__PURE__ */ jsxRuntime.jsx(Inner, {}) : null;
|
|
30950
30949
|
}
|
|
30951
30950
|
var START_VISIBLE = 8;
|
|
30952
30951
|
var START_SEARCH_ABOVE = 8;
|
|
@@ -30966,7 +30965,7 @@ function ConnectedConversationStart() {
|
|
|
30966
30965
|
const browse = openSkillsBrowser ? [
|
|
30967
30966
|
{
|
|
30968
30967
|
id: "browse-all",
|
|
30969
|
-
iconNode:
|
|
30968
|
+
iconNode: chunkUR6DWL4L_cjs.renderWorkflowIcon("library"),
|
|
30970
30969
|
title: "Browse all",
|
|
30971
30970
|
description: "See every skill, make a copy, add your own",
|
|
30972
30971
|
onSelect: () => openSkillsBrowser(),
|
|
@@ -31079,7 +31078,7 @@ function getToolParams(detail) {
|
|
|
31079
31078
|
return params;
|
|
31080
31079
|
}
|
|
31081
31080
|
function StepModelIcon({ modelName, tag }) {
|
|
31082
|
-
const cfg = tag === "Premium" ? null :
|
|
31081
|
+
const cfg = tag === "Premium" ? null : chunkUR6DWL4L_cjs.getModelIcon(modelName, tag);
|
|
31083
31082
|
if (tag !== "Premium" && !cfg) return null;
|
|
31084
31083
|
return /* @__PURE__ */ jsxRuntime.jsxs(ui.Tooltip, { children: [
|
|
31085
31084
|
/* @__PURE__ */ jsxRuntime.jsx(ui.TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex-shrink-0", children: tag === "Premium" ? /* @__PURE__ */ jsxRuntime.jsx(ui.ProviderIcon, { modelName: modelName ?? void 0, size: 11 }) : cfg && /* @__PURE__ */ jsxRuntime.jsx(cfg.icon, { className: cfg.className, style: { width: 11, height: 11 } }) }) }),
|
|
@@ -31194,15 +31193,15 @@ var AgentStepsComponent = ({
|
|
|
31194
31193
|
const lastStepIndex = mergedSteps[mergedSteps.length - 1].index;
|
|
31195
31194
|
const renderRow = (step, depth, isLastInList) => {
|
|
31196
31195
|
const i = posByIndex.get(step.index);
|
|
31197
|
-
const presentation =
|
|
31196
|
+
const presentation = chunkUR6DWL4L_cjs.getAgentStepPresentation(step, docInfo);
|
|
31198
31197
|
const { tool, Icon } = presentation;
|
|
31199
31198
|
const { label, summary, isMultiLine, details } = browser.getStepDisplay(step, docInfo);
|
|
31200
|
-
const accent =
|
|
31199
|
+
const accent = chunkUR6DWL4L_cjs.stepAccent(step, tool);
|
|
31201
31200
|
const duration = stepDurations[i];
|
|
31202
31201
|
const isLastStep = step.index === lastStepIndex;
|
|
31203
31202
|
const isActive = step.index === currentStepIndex;
|
|
31204
31203
|
const tier = step.step === "goal" ? step.model_recommendation : null;
|
|
31205
|
-
const TierIcon = tier ?
|
|
31204
|
+
const TierIcon = tier ? chunkUR6DWL4L_cjs.MODEL_TIER_ICON_MAP[tier] : null;
|
|
31206
31205
|
const useLiveDuration = isLastStep && liveTimer != null && step.t != null;
|
|
31207
31206
|
const durationNode = useLiveDuration ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
31208
31207
|
MessageLiveSeconds,
|
|
@@ -31226,7 +31225,7 @@ var AgentStepsComponent = ({
|
|
|
31226
31225
|
})) : null;
|
|
31227
31226
|
const folded = childrenByParent.get(step.index);
|
|
31228
31227
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
31229
|
-
|
|
31228
|
+
chunkUR6DWL4L_cjs.StepRow,
|
|
31230
31229
|
{
|
|
31231
31230
|
index: step.index,
|
|
31232
31231
|
number: displayNumber.get(step.index) ?? String(i + 1),
|
|
@@ -31240,7 +31239,7 @@ var AgentStepsComponent = ({
|
|
|
31240
31239
|
titleTestId: isActive ? "agent-expanded-current-step-description" : void 0,
|
|
31241
31240
|
badge: TierIcon ? /* @__PURE__ */ jsxRuntime.jsxs(ui.Tooltip, { children: [
|
|
31242
31241
|
/* @__PURE__ */ jsxRuntime.jsx(ui.TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex shrink-0 items-center self-center", children: /* @__PURE__ */ jsxRuntime.jsx(TierIcon, { size: 12, className: accent.fg, "aria-hidden": true }) }) }),
|
|
31243
|
-
/* @__PURE__ */ jsxRuntime.jsx(ui.TooltipContent, { side: "top", children:
|
|
31242
|
+
/* @__PURE__ */ jsxRuntime.jsx(ui.TooltipContent, { side: "top", children: chunkUR6DWL4L_cjs.MODEL_TIER_LABELS[tier] ?? tier })
|
|
31244
31243
|
] }) : void 0,
|
|
31245
31244
|
meta: /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
31246
31245
|
isDeveloper && /* @__PURE__ */ jsxRuntime.jsx(StepModelIcon, { modelName: step.usage?.model, tag: getModelTag(step.usage?.model) }),
|
|
@@ -31255,14 +31254,14 @@ var AgentStepsComponent = ({
|
|
|
31255
31254
|
summary && !isActive && (step.narration ? (
|
|
31256
31255
|
/* Narration is PROSE (headings, bold, lists): render markdown, not raw asterisks.
|
|
31257
31256
|
Tool summaries stay plain text: one-line headlines where a clamp matters. */
|
|
31258
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
31259
|
-
) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
31260
|
-
details.map((d, di) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
31261
|
-
showOutcome && /* @__PURE__ */ jsxRuntime.jsx(
|
|
31262
|
-
toolParams.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(
|
|
31263
|
-
criteriaView && /* @__PURE__ */ jsxRuntime.jsx(
|
|
31257
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkUR6DWL4L_cjs.StepNarration, { index: step.index, children: /* @__PURE__ */ jsxRuntime.jsx(chunk6MHGFCIW_cjs.ConnectedMarkdown, { isStreaming: false, children: summary }) })
|
|
31258
|
+
) : /* @__PURE__ */ jsxRuntime.jsx(chunkUR6DWL4L_cjs.StepSummary, { index: step.index, multiLine: isMultiLine, children: summary })),
|
|
31259
|
+
details.map((d, di) => /* @__PURE__ */ jsxRuntime.jsx(chunkUR6DWL4L_cjs.StepDetail, { index: step.index, children: d }, di)),
|
|
31260
|
+
showOutcome && /* @__PURE__ */ jsxRuntime.jsx(chunkUR6DWL4L_cjs.StepOutcome, { index: step.index, failed: outcomeFailed, children: step.outcome }),
|
|
31261
|
+
toolParams.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(chunkUR6DWL4L_cjs.StepParams, { children: toolParams.map((p) => `${p.key}=${p.value}`).join(" ") }),
|
|
31262
|
+
criteriaView && /* @__PURE__ */ jsxRuntime.jsx(chunkUR6DWL4L_cjs.GoalCriteria, { criteria: criteriaView }),
|
|
31264
31263
|
folded && folded.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(
|
|
31265
|
-
|
|
31264
|
+
chunkUR6DWL4L_cjs.SubStepGroup,
|
|
31266
31265
|
{
|
|
31267
31266
|
parentIndex: step.index,
|
|
31268
31267
|
summary: summariseSubSteps(folded),
|
|
@@ -31288,7 +31287,7 @@ var AgentStepsComponent = ({
|
|
|
31288
31287
|
leftParts.push(`${browser.formatTokens(totalInputTokens)} in`);
|
|
31289
31288
|
if (totalOutputTokens > 0) leftParts.push(`${browser.formatTokens(totalOutputTokens)} out`);
|
|
31290
31289
|
summaryNode = /* @__PURE__ */ jsxRuntime.jsx(
|
|
31291
|
-
|
|
31290
|
+
chunkUR6DWL4L_cjs.StepTraceSummary,
|
|
31292
31291
|
{
|
|
31293
31292
|
left: leftParts.join(" \xB7 "),
|
|
31294
31293
|
isNearBudget: browser.isNearAiUsageBudget(contextUsage),
|
|
@@ -31296,7 +31295,7 @@ var AgentStepsComponent = ({
|
|
|
31296
31295
|
}
|
|
31297
31296
|
);
|
|
31298
31297
|
}
|
|
31299
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
31298
|
+
return /* @__PURE__ */ jsxRuntime.jsx(chunkUR6DWL4L_cjs.StepTrace, { className, summary: summaryNode, children: displayRows.map((row2, i) => {
|
|
31300
31299
|
if (row2.lane) {
|
|
31301
31300
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
31302
31301
|
LaneBinding,
|
|
@@ -31333,7 +31332,7 @@ function LaneBinding({
|
|
|
31333
31332
|
const running = !closed && isStreaming;
|
|
31334
31333
|
const latest = inner[inner.length - 1];
|
|
31335
31334
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
31336
|
-
|
|
31335
|
+
chunkUR6DWL4L_cjs.SubAgentLane,
|
|
31337
31336
|
{
|
|
31338
31337
|
handle,
|
|
31339
31338
|
number,
|
|
@@ -31456,7 +31455,7 @@ function AgentBarShell({
|
|
|
31456
31455
|
}, [isStepsExpanded, steps]);
|
|
31457
31456
|
const visibleStepCount = React7.useMemo(() => browser.topLevelAgentSteps(steps ?? []).length, [steps]);
|
|
31458
31457
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
31459
|
-
|
|
31458
|
+
chunkUR6DWL4L_cjs.AgentBar,
|
|
31460
31459
|
{
|
|
31461
31460
|
className,
|
|
31462
31461
|
testId,
|
|
@@ -31512,7 +31511,7 @@ function AgentControlBar({
|
|
|
31512
31511
|
const isPaused = controlState === "paused" || controlState === "resuming";
|
|
31513
31512
|
const steps = agentSteps ?? [];
|
|
31514
31513
|
const currentStep = browser.getCurrentStep(steps);
|
|
31515
|
-
const currentPresentation =
|
|
31514
|
+
const currentPresentation = chunkUR6DWL4L_cjs.getCurrentAgentStepPresentation(steps);
|
|
31516
31515
|
const CurrentStepIcon = currentPresentation?.Icon;
|
|
31517
31516
|
const stepLabel2 = currentPresentation?.description ?? "Agent working\u2026";
|
|
31518
31517
|
const runningLanes = browser.extractSubagentLanes(steps).filter((l) => l.status === "running");
|
|
@@ -31529,7 +31528,7 @@ function AgentControlBar({
|
|
|
31529
31528
|
}
|
|
31530
31529
|
);
|
|
31531
31530
|
const status = /* @__PURE__ */ jsxRuntime.jsx(
|
|
31532
|
-
|
|
31531
|
+
chunkUR6DWL4L_cjs.AgentBarStatus,
|
|
31533
31532
|
{
|
|
31534
31533
|
state: showState ? controlState : void 0,
|
|
31535
31534
|
stateLabel: STATE_LABEL[controlState],
|
|
@@ -31571,7 +31570,7 @@ function AgentControlBar({
|
|
|
31571
31570
|
];
|
|
31572
31571
|
const controls = /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
31573
31572
|
onStop && /* @__PURE__ */ jsxRuntime.jsx(
|
|
31574
|
-
|
|
31573
|
+
chunkUR6DWL4L_cjs.AgentBarIconButton,
|
|
31575
31574
|
{
|
|
31576
31575
|
onClick: onStop,
|
|
31577
31576
|
title: "Stop",
|
|
@@ -31580,22 +31579,22 @@ function AgentControlBar({
|
|
|
31580
31579
|
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Square, { className: "h-3 w-3", fill: "currentColor" })
|
|
31581
31580
|
}
|
|
31582
31581
|
),
|
|
31583
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
31582
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkUR6DWL4L_cjs.AgentBarMenu, { items: menuItems })
|
|
31584
31583
|
] });
|
|
31585
31584
|
const displayedQueuedMessages = (transientQueuedMessages ?? []).filter(
|
|
31586
31585
|
(message) => !message.serverId || !queuedMessages.some((queued) => queued.external_id === message.serverId)
|
|
31587
31586
|
);
|
|
31588
31587
|
const queuedNotes = displayedQueuedMessages.filter((message) => message.content);
|
|
31589
|
-
const below = probeAnswer || queuedNotes.length > 0 ? /* @__PURE__ */ jsxRuntime.jsxs(
|
|
31588
|
+
const below = probeAnswer || queuedNotes.length > 0 ? /* @__PURE__ */ jsxRuntime.jsxs(chunkUR6DWL4L_cjs.AgentBarNotes, { children: [
|
|
31590
31589
|
queuedNotes.map((message, index) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
31591
|
-
|
|
31590
|
+
chunkUR6DWL4L_cjs.AgentBarQueuedNote,
|
|
31592
31591
|
{
|
|
31593
31592
|
text: message.content ?? "",
|
|
31594
31593
|
isAcknowledged: message.acknowledged
|
|
31595
31594
|
},
|
|
31596
31595
|
index
|
|
31597
31596
|
)),
|
|
31598
|
-
probeAnswer && /* @__PURE__ */ jsxRuntime.jsx(
|
|
31597
|
+
probeAnswer && /* @__PURE__ */ jsxRuntime.jsx(chunkUR6DWL4L_cjs.AgentBarProbeAnswer, { answer: probeAnswer.answer })
|
|
31599
31598
|
] }) : null;
|
|
31600
31599
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
31601
31600
|
AgentBarShell,
|
|
@@ -31652,7 +31651,7 @@ function RunningSubagentsRoster({
|
|
|
31652
31651
|
if (leafId) selectThread(leafId);
|
|
31653
31652
|
};
|
|
31654
31653
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
31655
|
-
|
|
31654
|
+
chunkUR6DWL4L_cjs.SubagentRoster,
|
|
31656
31655
|
{
|
|
31657
31656
|
lanes: rosterLanes,
|
|
31658
31657
|
className,
|
|
@@ -32394,7 +32393,7 @@ function WorkflowStepMessage({
|
|
|
32394
32393
|
const { conversations } = react.useConversationItems();
|
|
32395
32394
|
const activity = react.useConversationActivity(conversationId ?? void 0, { live: true });
|
|
32396
32395
|
const plan = conversations.find((c) => c.external_id === conversationId)?.plan;
|
|
32397
|
-
const steps =
|
|
32396
|
+
const steps = chunkUR6DWL4L_cjs.fromPlanSteps(plan?.steps ?? []);
|
|
32398
32397
|
const found = steps.find((s) => s.id === step);
|
|
32399
32398
|
const states = chunkEZLZ3MDU_cjs.stepStatesFromActivity(activity.data ?? []);
|
|
32400
32399
|
const { data: documents = [] } = react.useDocuments();
|
|
@@ -32566,7 +32565,7 @@ var MessageComponent = ({
|
|
|
32566
32565
|
const isQueuedAnswer = !isUser && message.status === "queued" && !isGenerating;
|
|
32567
32566
|
const isAwaitingAnswer = (isGenerating || isRunningOnServer) && !isStopped && !!message.pendingUserInput;
|
|
32568
32567
|
const showWorkingIndicator = (isGenerating || isRunningOnServer) && !isQueuedAnswer && !responseContent.trim() && !linkedArtifact && !isAwaitingAnswer;
|
|
32569
|
-
const workingStepLabel = showWorkingIndicator ?
|
|
32568
|
+
const workingStepLabel = showWorkingIndicator ? chunkUR6DWL4L_cjs.getCurrentAgentStepPresentation(message.agentSteps ?? [])?.description : void 0;
|
|
32570
32569
|
const workingStepStart = showWorkingIndicator ? browser.getCurrentStep(message.agentSteps ?? [])?.t ?? 0 : 0;
|
|
32571
32570
|
const showEmptyAnswer = !isUser && !isGenerating && !isRunningOnServer && !isFailed && !isStopped && !responseContent.trim() && !linkedArtifact;
|
|
32572
32571
|
const isEmptyStopped = isStopped && !responseContent.trim();
|
|
@@ -32870,7 +32869,7 @@ var MessageComponent = ({
|
|
|
32870
32869
|
},
|
|
32871
32870
|
"data-testid": `message-model-${messageId}`,
|
|
32872
32871
|
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
32873
|
-
|
|
32872
|
+
chunkUR6DWL4L_cjs.AssistantEntity,
|
|
32874
32873
|
{
|
|
32875
32874
|
name: modelDisplayName,
|
|
32876
32875
|
modelName,
|
|
@@ -32983,7 +32982,7 @@ var MessageComponent = ({
|
|
|
32983
32982
|
// Stays the ARBI identity while streaming: the model name arrives
|
|
32984
32983
|
// with the first step that reports one and would swap the author
|
|
32985
32984
|
// mid-answer. The model is shown in the footer once settled.
|
|
32986
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
32985
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkUR6DWL4L_cjs.AssistantEntity, { size: 16, pillSize: "sm" })
|
|
32987
32986
|
),
|
|
32988
32987
|
timeLabel,
|
|
32989
32988
|
isSettled: settledForHeader,
|
|
@@ -33448,7 +33447,7 @@ function ConnectedMessageList({ messages }) {
|
|
|
33448
33447
|
start: virtualItem.start,
|
|
33449
33448
|
messageId: entry.id,
|
|
33450
33449
|
setSize: transcript.length,
|
|
33451
|
-
children: entry.item.card ?? /* @__PURE__ */ jsxRuntime.jsx(
|
|
33450
|
+
children: entry.item.card ?? /* @__PURE__ */ jsxRuntime.jsx(chunkUR6DWL4L_cjs.ThreadActivity, { item: entry.item, children: entry.item.onOpenDocument && /* @__PURE__ */ jsxRuntime.jsx(
|
|
33452
33451
|
"button",
|
|
33453
33452
|
{
|
|
33454
33453
|
className: "mt-1 hover:underline text-primary",
|
|
@@ -33550,7 +33549,7 @@ function ConnectedConversationEmpty({
|
|
|
33550
33549
|
compactLeadingAction: onImportFromEmail && /* @__PURE__ */ jsxRuntime.jsx(AddFromAccountsButton, { onImportFromEmail })
|
|
33551
33550
|
}
|
|
33552
33551
|
),
|
|
33553
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
33552
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkP4NS4LV7_cjs.PrivacyExplainerModal, {})
|
|
33554
33553
|
] })
|
|
33555
33554
|
}
|
|
33556
33555
|
);
|
|
@@ -34343,7 +34342,7 @@ function ConnectedConversation({
|
|
|
34343
34342
|
}, [isGenerating]);
|
|
34344
34343
|
const slashWorkflows = useSlashSkillWorkflows({ landing: "current-chat" });
|
|
34345
34344
|
const composerSkills = React7.useMemo(
|
|
34346
|
-
() => ({ builtin:
|
|
34345
|
+
() => ({ builtin: chunkUR6DWL4L_cjs.BUILTIN_SKILLS, openFor: slashWorkflows.openFor }),
|
|
34347
34346
|
[slashWorkflows.openFor]
|
|
34348
34347
|
);
|
|
34349
34348
|
const browseSkills = React7.useMemo(
|
|
@@ -34418,7 +34417,7 @@ function ConnectedConversation({
|
|
|
34418
34417
|
/* @__PURE__ */ jsxRuntime.jsx(chunkZ3IB6UMJ_cjs.CallConversationEmpty, { callExtId: meetingCallExtId }),
|
|
34419
34418
|
/* @__PURE__ */ jsxRuntime.jsx(chunkZ3IB6UMJ_cjs.ProvisionalSpeakers, { ids: provisionalSpeakers })
|
|
34420
34419
|
] })
|
|
34421
|
-
) : currentTask && currentTask.status != null ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
34420
|
+
) : currentTask && currentTask.status != null ? /* @__PURE__ */ jsxRuntime.jsx(chunkUR6DWL4L_cjs.TaskEmptyState, { task: currentTask }) : pendingFirstTurn && isGenerating ? /* @__PURE__ */ jsxRuntime.jsx(ConnectedMessageArea, { ref: containerRef, messages: pendingFirstTurn }) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
34422
34421
|
ConnectedConversationEmpty,
|
|
34423
34422
|
{
|
|
34424
34423
|
hasDocuments: allWorkspaceDocuments.length > 0,
|
|
@@ -35881,7 +35880,7 @@ function SsoResendVerificationButton({
|
|
|
35881
35880
|
onClick: async () => handleResendEmailVerification(),
|
|
35882
35881
|
disabled: loading || disabled,
|
|
35883
35882
|
"aria-label": "Resend verification email",
|
|
35884
|
-
children: loading ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
35883
|
+
children: loading ? /* @__PURE__ */ jsxRuntime.jsx(chunkLFVD3CS5_cjs.LoadingIndicator, {}) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
35885
35884
|
"Didn't get a verification email? ",
|
|
35886
35885
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-semibold", children: "Resend" })
|
|
35887
35886
|
] })
|
|
@@ -36818,27 +36817,27 @@ function ConnectedOAuthConsentPage({
|
|
|
36818
36817
|
oauthErrorRedirect(params.redirectUri, params.state, "access_denied");
|
|
36819
36818
|
}
|
|
36820
36819
|
if (error && !params) {
|
|
36821
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
36820
|
+
return /* @__PURE__ */ jsxRuntime.jsx(chunkUR6DWL4L_cjs.ConsentPage, { children: /* @__PURE__ */ jsxRuntime.jsx(chunkUR6DWL4L_cjs.ConsentMessage, { tone: "error", title: "Invalid Request", children: error }) });
|
|
36822
36821
|
}
|
|
36823
36822
|
if (!params) {
|
|
36824
36823
|
return null;
|
|
36825
36824
|
}
|
|
36826
36825
|
if (clientInfo?.isLocalAgentFlow) {
|
|
36827
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
36826
|
+
return /* @__PURE__ */ jsxRuntime.jsx(chunkUR6DWL4L_cjs.ConsentPage, { children: /* @__PURE__ */ jsxRuntime.jsx(chunkUR6DWL4L_cjs.ConsentMessage, { tone: "warning", title: "Close this tab", children: "This tab opened alongside the correct authorization page. Please close this tab and complete the connection in the other tab that opened at the same time." }) });
|
|
36828
36827
|
}
|
|
36829
36828
|
if (!isAuthenticated2) {
|
|
36830
36829
|
return null;
|
|
36831
36830
|
}
|
|
36832
36831
|
if (callbackUrl) {
|
|
36833
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
36834
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
36832
|
+
return /* @__PURE__ */ jsxRuntime.jsx(chunkUR6DWL4L_cjs.ConsentPage, { children: /* @__PURE__ */ jsxRuntime.jsxs(chunkUR6DWL4L_cjs.ConsentCard, { size: "md", children: [
|
|
36833
|
+
/* @__PURE__ */ jsxRuntime.jsxs(chunkUR6DWL4L_cjs.ConsentHeader, { icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ClipboardList, {}), title: "Almost there", children: [
|
|
36835
36834
|
"A new tab has opened to complete the connection. If it succeeded, you can close this page. If you see a connection error there, paste the URL below into Claude Cowork \u2014",
|
|
36836
36835
|
" ",
|
|
36837
36836
|
copied ? "it's already copied to your clipboard." : "copy it first."
|
|
36838
36837
|
] }),
|
|
36839
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
36840
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
36841
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
36838
|
+
/* @__PURE__ */ jsxRuntime.jsxs(chunkUR6DWL4L_cjs.ConsentSection, { title: "Callback URL", children: [
|
|
36839
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkUR6DWL4L_cjs.CopyableUrl, { url: callbackUrl, copied, onCopy: handleCopy }),
|
|
36840
|
+
/* @__PURE__ */ jsxRuntime.jsxs(chunkUR6DWL4L_cjs.ConsentText, { variant: "hint", children: [
|
|
36842
36841
|
"In Claude Code, paste the URL at the prompt that says",
|
|
36843
36842
|
" ",
|
|
36844
36843
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-mono text-foreground", children: '"paste the full redirect URL here"' }),
|
|
@@ -36847,17 +36846,17 @@ function ConnectedOAuthConsentPage({
|
|
|
36847
36846
|
] })
|
|
36848
36847
|
] }) });
|
|
36849
36848
|
}
|
|
36850
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
36851
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
36852
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
36849
|
+
return /* @__PURE__ */ jsxRuntime.jsx(chunkUR6DWL4L_cjs.ConsentPage, { children: /* @__PURE__ */ jsxRuntime.jsxs(chunkUR6DWL4L_cjs.ConsentCard, { children: [
|
|
36850
|
+
/* @__PURE__ */ jsxRuntime.jsxs(chunkUR6DWL4L_cjs.ConsentHeader, { icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Link2, {}), title: `Connect to ${appName}`, children: [
|
|
36851
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkUR6DWL4L_cjs.ConsentStrong, { children: clientInfo?.name ?? params.clientId }),
|
|
36853
36852
|
" is requesting access to your ",
|
|
36854
36853
|
appName,
|
|
36855
36854
|
" workspace."
|
|
36856
36855
|
] }),
|
|
36857
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
36858
|
-
error && /* @__PURE__ */ jsxRuntime.jsx(
|
|
36859
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
36860
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
36856
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkUR6DWL4L_cjs.ConsentSection, { title: "This will allow", children: /* @__PURE__ */ jsxRuntime.jsx(chunkUR6DWL4L_cjs.ConsentPermissionList, { items: permissions }) }),
|
|
36857
|
+
error && /* @__PURE__ */ jsxRuntime.jsx(chunkUR6DWL4L_cjs.ConsentNotice, { tone: "error", children: error }),
|
|
36858
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkUR6DWL4L_cjs.ConsentActions, { isLoading: loading, onDeny: handleDeny, onAllow: handleAllow }),
|
|
36859
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkUR6DWL4L_cjs.ConsentFootnote, { children: footnote })
|
|
36861
36860
|
] }) });
|
|
36862
36861
|
}
|
|
36863
36862
|
|
|
@@ -36947,43 +36946,43 @@ Object.defineProperty(exports, "useWorkspaceDocs", {
|
|
|
36947
36946
|
});
|
|
36948
36947
|
Object.defineProperty(exports, "ConnectedWorkflowDocumentsField", {
|
|
36949
36948
|
enumerable: true,
|
|
36950
|
-
get: function () { return
|
|
36949
|
+
get: function () { return chunkRZ3EBN7G_cjs.ConnectedWorkflowDocumentsField; }
|
|
36951
36950
|
});
|
|
36952
36951
|
Object.defineProperty(exports, "ConnectedWorkflowLauncher", {
|
|
36953
36952
|
enumerable: true,
|
|
36954
|
-
get: function () { return
|
|
36953
|
+
get: function () { return chunkRZ3EBN7G_cjs.ConnectedWorkflowLauncher; }
|
|
36955
36954
|
});
|
|
36956
36955
|
Object.defineProperty(exports, "ConnectedWorkflowsTable", {
|
|
36957
36956
|
enumerable: true,
|
|
36958
|
-
get: function () { return
|
|
36957
|
+
get: function () { return chunkRZ3EBN7G_cjs.ConnectedWorkflowsTable; }
|
|
36959
36958
|
});
|
|
36960
36959
|
Object.defineProperty(exports, "DEFAULT_CONNECTED_WORKFLOWS_TABLE_LABELS", {
|
|
36961
36960
|
enumerable: true,
|
|
36962
|
-
get: function () { return
|
|
36961
|
+
get: function () { return chunkRZ3EBN7G_cjs.DEFAULT_CONNECTED_WORKFLOWS_TABLE_LABELS; }
|
|
36963
36962
|
});
|
|
36964
36963
|
Object.defineProperty(exports, "toWorkflowFieldDocument", {
|
|
36965
36964
|
enumerable: true,
|
|
36966
|
-
get: function () { return
|
|
36965
|
+
get: function () { return chunkRZ3EBN7G_cjs.toWorkflowFieldDocument; }
|
|
36967
36966
|
});
|
|
36968
36967
|
Object.defineProperty(exports, "useConnectedAgentOptions", {
|
|
36969
36968
|
enumerable: true,
|
|
36970
|
-
get: function () { return
|
|
36969
|
+
get: function () { return chunkRZ3EBN7G_cjs.useConnectedAgentOptions; }
|
|
36971
36970
|
});
|
|
36972
36971
|
Object.defineProperty(exports, "useConnectedWorkflowScopeSource", {
|
|
36973
36972
|
enumerable: true,
|
|
36974
|
-
get: function () { return
|
|
36973
|
+
get: function () { return chunkRZ3EBN7G_cjs.useConnectedWorkflowScopeSource; }
|
|
36975
36974
|
});
|
|
36976
36975
|
Object.defineProperty(exports, "useConnectedWorkspaceRole", {
|
|
36977
36976
|
enumerable: true,
|
|
36978
|
-
get: function () { return
|
|
36977
|
+
get: function () { return chunkRZ3EBN7G_cjs.useConnectedWorkspaceRole; }
|
|
36979
36978
|
});
|
|
36980
36979
|
Object.defineProperty(exports, "useDocxCommentTarget", {
|
|
36981
36980
|
enumerable: true,
|
|
36982
|
-
get: function () { return
|
|
36981
|
+
get: function () { return chunkRZ3EBN7G_cjs.useDocxCommentTarget; }
|
|
36983
36982
|
});
|
|
36984
36983
|
Object.defineProperty(exports, "useNativeDocxSupport", {
|
|
36985
36984
|
enumerable: true,
|
|
36986
|
-
get: function () { return
|
|
36985
|
+
get: function () { return chunkRZ3EBN7G_cjs.useNativeDocxSupport; }
|
|
36987
36986
|
});
|
|
36988
36987
|
Object.defineProperty(exports, "ConnectedDocumentToolsProvider", {
|
|
36989
36988
|
enumerable: true,
|