@arbidocs/blocks 0.5.8 → 0.5.10
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-VZLB7WWW.cjs → ConnectedNativeDocxComparison-E2QVYVVI.cjs} +8 -7
- package/dist/{ConnectedNativeDocxComparison-VZLB7WWW.cjs.map → ConnectedNativeDocxComparison-E2QVYVVI.cjs.map} +1 -1
- package/dist/{ConnectedNativeDocxComparison-4MI22H2R.js → ConnectedNativeDocxComparison-KPAQMOIF.js} +7 -6
- package/dist/{ConnectedNativeDocxComparison-4MI22H2R.js.map → ConnectedNativeDocxComparison-KPAQMOIF.js.map} +1 -1
- package/dist/{ConnectedNativeDocxEditor-YBHAQQSY.js → ConnectedNativeDocxEditor-5PF7J3CP.js} +6 -5
- package/dist/{ConnectedNativeDocxEditor-YBHAQQSY.js.map → ConnectedNativeDocxEditor-5PF7J3CP.js.map} +1 -1
- package/dist/{ConnectedNativeDocxEditor-74PFGTMR.cjs → ConnectedNativeDocxEditor-XV3K77ZB.cjs} +8 -7
- package/dist/{ConnectedNativeDocxEditor-74PFGTMR.cjs.map → ConnectedNativeDocxEditor-XV3K77ZB.cjs.map} +1 -1
- package/dist/{ConnectedStreamedWordArtifact-63ME4QD5.cjs → ConnectedStreamedWordArtifact-3N5CIXZU.cjs} +8 -7
- package/dist/ConnectedStreamedWordArtifact-3N5CIXZU.cjs.map +1 -0
- package/dist/{ConnectedStreamedWordArtifact-ELHQ2VYL.js → ConnectedStreamedWordArtifact-L45BLBRH.js} +7 -6
- package/dist/{ConnectedStreamedWordArtifact-ELHQ2VYL.js.map → ConnectedStreamedWordArtifact-L45BLBRH.js.map} +1 -1
- package/dist/{WorkspaceTableView-3TIMUU2J.js → WorkspaceTableView-EZAFYKAJ.js} +4 -3
- package/dist/WorkspaceTableView-EZAFYKAJ.js.map +1 -0
- package/dist/{WorkspaceTableView-FROHEPCT.cjs → WorkspaceTableView-MQXVE3JB.cjs} +4 -3
- package/dist/WorkspaceTableView-MQXVE3JB.cjs.map +1 -0
- package/dist/agents/index.cjs +327 -326
- package/dist/agents/index.js +5 -4
- package/dist/calendar/EventAttachments.d.ts +17 -0
- package/dist/calendar/EventEditor.d.ts +1 -1
- package/dist/calendar/conference.d.ts +2 -0
- package/dist/calendar/index.cjs +117 -120
- package/dist/calendar/index.d.ts +0 -1
- package/dist/calendar/index.js +2 -1
- package/dist/calendar/types.d.ts +15 -35
- package/dist/{chunk-2A2QX3MS.js → chunk-3SKLWW5D.js} +4 -3
- package/dist/chunk-3SKLWW5D.js.map +1 -0
- package/dist/{chunk-Z7KGBVKI.js → chunk-6NSGSEYS.js} +5 -5
- package/dist/{chunk-Z7KGBVKI.js.map → chunk-6NSGSEYS.js.map} +1 -1
- package/dist/{chunk-FEYRHZYB.js → chunk-6SPVTPUQ.js} +3 -3
- package/dist/{chunk-FEYRHZYB.js.map → chunk-6SPVTPUQ.js.map} +1 -1
- package/dist/{chunk-M6Z7HTJ2.cjs → chunk-6TE3QA3Y.cjs} +6 -5
- package/dist/chunk-6TE3QA3Y.cjs.map +1 -0
- package/dist/{chunk-BJ24VPOA.js → chunk-AFIJCK66.js} +210 -214
- package/dist/chunk-AFIJCK66.js.map +1 -0
- package/dist/{chunk-2VHYOTWW.cjs → chunk-AQPZ4QMV.cjs} +3 -201
- package/dist/chunk-AQPZ4QMV.cjs.map +1 -0
- package/dist/{chunk-TUODUKDK.cjs → chunk-DP4GMPI3.cjs} +4 -4
- package/dist/{chunk-TUODUKDK.cjs.map → chunk-DP4GMPI3.cjs.map} +1 -1
- package/dist/{chunk-IK4AWPDW.js → chunk-ELH375VC.js} +3 -3
- package/dist/{chunk-IK4AWPDW.js.map → chunk-ELH375VC.js.map} +1 -1
- package/dist/{chunk-X5FS27BM.js → chunk-FJCSJLTM.js} +4 -4
- package/dist/{chunk-X5FS27BM.js.map → chunk-FJCSJLTM.js.map} +1 -1
- package/dist/{chunk-AQ2XKOQ7.js → chunk-FT22URKT.js} +4 -4
- package/dist/{chunk-AQ2XKOQ7.js.map → chunk-FT22URKT.js.map} +1 -1
- package/dist/{chunk-NUSBINUM.js → chunk-G4GLDQLY.js} +7 -203
- package/dist/chunk-G4GLDQLY.js.map +1 -0
- package/dist/{chunk-2CTG4DHL.cjs → chunk-I7GQO43N.cjs} +7 -7
- package/dist/{chunk-2CTG4DHL.cjs.map → chunk-I7GQO43N.cjs.map} +1 -1
- package/dist/{chunk-PSTA227J.cjs → chunk-NG6AGVZ4.cjs} +10 -10
- package/dist/{chunk-PSTA227J.cjs.map → chunk-NG6AGVZ4.cjs.map} +1 -1
- package/dist/{chunk-M7LMEVXY.cjs → chunk-PFJIGGNN.cjs} +50 -50
- package/dist/{chunk-M7LMEVXY.cjs.map → chunk-PFJIGGNN.cjs.map} +1 -1
- package/dist/{chunk-LLYZGH3L.cjs → chunk-PXVSZRCA.cjs} +208 -213
- package/dist/chunk-PXVSZRCA.cjs.map +1 -0
- package/dist/{chunk-AY66THUZ.cjs → chunk-RPWWMOYP.cjs} +9 -9
- package/dist/{chunk-AY66THUZ.cjs.map → chunk-RPWWMOYP.cjs.map} +1 -1
- package/dist/{chunk-3IQUMSJI.js → chunk-VMMRK4SR.js} +3 -3
- package/dist/{chunk-3IQUMSJI.js.map → chunk-VMMRK4SR.js.map} +1 -1
- package/dist/chunk-VZOOGA47.cjs +210 -0
- package/dist/chunk-VZOOGA47.cjs.map +1 -0
- package/dist/chunk-WNDIVNPT.js +207 -0
- package/dist/chunk-WNDIVNPT.js.map +1 -0
- package/dist/{chunk-6HPBSKXG.cjs → chunk-XUKQQCOK.cjs} +4 -4
- package/dist/{chunk-6HPBSKXG.cjs.map → chunk-XUKQQCOK.cjs.map} +1 -1
- package/dist/connect/docx.cjs +10 -9
- package/dist/connect/docx.js +6 -5
- package/dist/connect/index.cjs +381 -381
- package/dist/connect/index.cjs.map +1 -1
- package/dist/connect/index.js +90 -90
- package/dist/connect/index.js.map +1 -1
- package/dist/connect/viewer.cjs +3 -3
- package/dist/connect/viewer.js +3 -3
- package/dist/index.cjs +382 -381
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +6 -5
- package/dist/index.js.map +1 -1
- package/dist/settings/index.cjs +10 -9
- package/dist/settings/index.js +2 -1
- package/dist/workflow-canvas/index.cjs +18 -17
- package/dist/workflow-canvas/index.cjs.map +1 -1
- package/dist/workflow-canvas/index.js +5 -4
- package/dist/workflow-canvas/index.js.map +1 -1
- package/node_modules/@arbidocs/coedit/package.json +1 -1
- package/package.json +5 -5
- package/dist/ConnectedStreamedWordArtifact-63ME4QD5.cjs.map +0 -1
- package/dist/WorkspaceTableView-3TIMUU2J.js.map +0 -1
- package/dist/WorkspaceTableView-FROHEPCT.cjs.map +0 -1
- package/dist/calendar/RoomFinder.d.ts +0 -2
- package/dist/chunk-2A2QX3MS.js.map +0 -1
- package/dist/chunk-2VHYOTWW.cjs.map +0 -1
- package/dist/chunk-BJ24VPOA.js.map +0 -1
- package/dist/chunk-LLYZGH3L.cjs.map +0 -1
- package/dist/chunk-M6Z7HTJ2.cjs.map +0 -1
- package/dist/chunk-NUSBINUM.js.map +0 -1
package/dist/connect/index.cjs
CHANGED
|
@@ -10,7 +10,7 @@ var chunkOU3RGQFX_cjs = require('../chunk-OU3RGQFX.cjs');
|
|
|
10
10
|
require('../chunk-REH7PX3N.cjs');
|
|
11
11
|
var chunkDAEDRTIN_cjs = require('../chunk-DAEDRTIN.cjs');
|
|
12
12
|
var chunk54RSCDE6_cjs = require('../chunk-54RSCDE6.cjs');
|
|
13
|
-
var
|
|
13
|
+
var chunkNG6AGVZ4_cjs = require('../chunk-NG6AGVZ4.cjs');
|
|
14
14
|
var chunkWB4B6TSW_cjs = require('../chunk-WB4B6TSW.cjs');
|
|
15
15
|
var chunkQIY3ZHD2_cjs = require('../chunk-QIY3ZHD2.cjs');
|
|
16
16
|
var chunk2WLXQGWC_cjs = require('../chunk-2WLXQGWC.cjs');
|
|
@@ -22,7 +22,7 @@ require('../chunk-464YPRAE.cjs');
|
|
|
22
22
|
require('../chunk-US356PMS.cjs');
|
|
23
23
|
var chunk5FYU7ZIU_cjs = require('../chunk-5FYU7ZIU.cjs');
|
|
24
24
|
require('../chunk-JPWPR6QU.cjs');
|
|
25
|
-
var
|
|
25
|
+
var chunkI7GQO43N_cjs = require('../chunk-I7GQO43N.cjs');
|
|
26
26
|
var chunkXAJIKT6Y_cjs = require('../chunk-XAJIKT6Y.cjs');
|
|
27
27
|
var chunkGOWXP5KT_cjs = require('../chunk-GOWXP5KT.cjs');
|
|
28
28
|
var chunk67L2XS3P_cjs = require('../chunk-67L2XS3P.cjs');
|
|
@@ -40,11 +40,11 @@ require('../chunk-VLCY46K6.cjs');
|
|
|
40
40
|
require('../chunk-D54JXTPG.cjs');
|
|
41
41
|
var chunkQT3A4PFC_cjs = require('../chunk-QT3A4PFC.cjs');
|
|
42
42
|
var chunkRC25WMVB_cjs = require('../chunk-RC25WMVB.cjs');
|
|
43
|
-
var
|
|
43
|
+
var chunkRPWWMOYP_cjs = require('../chunk-RPWWMOYP.cjs');
|
|
44
44
|
var chunkRFIBUWLF_cjs = require('../chunk-RFIBUWLF.cjs');
|
|
45
|
-
var
|
|
45
|
+
var chunk6TE3QA3Y_cjs = require('../chunk-6TE3QA3Y.cjs');
|
|
46
46
|
var chunkBYCGAAV5_cjs = require('../chunk-BYCGAAV5.cjs');
|
|
47
|
-
var
|
|
47
|
+
var chunkAQPZ4QMV_cjs = require('../chunk-AQPZ4QMV.cjs');
|
|
48
48
|
require('../chunk-SIB6C7P7.cjs');
|
|
49
49
|
require('../chunk-DVUZTGVL.cjs');
|
|
50
50
|
var chunkV4ISCZJ7_cjs = require('../chunk-V4ISCZJ7.cjs');
|
|
@@ -55,8 +55,9 @@ var chunkC2CWWEHO_cjs = require('../chunk-C2CWWEHO.cjs');
|
|
|
55
55
|
var chunkQVBZESYQ_cjs = require('../chunk-QVBZESYQ.cjs');
|
|
56
56
|
var chunkEWRRV37Z_cjs = require('../chunk-EWRRV37Z.cjs');
|
|
57
57
|
var chunkADOKTJHV_cjs = require('../chunk-ADOKTJHV.cjs');
|
|
58
|
-
var
|
|
58
|
+
var chunkPXVSZRCA_cjs = require('../chunk-PXVSZRCA.cjs');
|
|
59
59
|
var chunkBIXHB4LV_cjs = require('../chunk-BIXHB4LV.cjs');
|
|
60
|
+
var chunkVZOOGA47_cjs = require('../chunk-VZOOGA47.cjs');
|
|
60
61
|
var chunkZOUVLJLV_cjs = require('../chunk-ZOUVLJLV.cjs');
|
|
61
62
|
var chunkWT2AGQYY_cjs = require('../chunk-WT2AGQYY.cjs');
|
|
62
63
|
var chunkQGSVHWXR_cjs = require('../chunk-QGSVHWXR.cjs');
|
|
@@ -183,7 +184,7 @@ function ConnectedWorkspaceActivity({
|
|
|
183
184
|
[feed.data]
|
|
184
185
|
);
|
|
185
186
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
186
|
-
|
|
187
|
+
chunkI7GQO43N_cjs.WorkspaceActivityList,
|
|
187
188
|
{
|
|
188
189
|
...listProps,
|
|
189
190
|
items,
|
|
@@ -593,7 +594,7 @@ function NotificationCenter({
|
|
|
593
594
|
// Filter-aware: the filtered total whenever a filter applies.
|
|
594
595
|
count: filtered.length,
|
|
595
596
|
actions: /* @__PURE__ */ jsxRuntime.jsx(
|
|
596
|
-
|
|
597
|
+
chunkAQPZ4QMV_cjs.TriStateFilterMenu,
|
|
597
598
|
{
|
|
598
599
|
testId: "notifications-filter-button",
|
|
599
600
|
title: "Filter",
|
|
@@ -861,7 +862,7 @@ function ConnectedWorkspaceNotificationMenu({
|
|
|
861
862
|
}, [error, notify17]);
|
|
862
863
|
if (!workspaceId) return null;
|
|
863
864
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
864
|
-
|
|
865
|
+
chunkI7GQO43N_cjs.WorkspaceNotificationMenu,
|
|
865
866
|
{
|
|
866
867
|
...menuProps,
|
|
867
868
|
level,
|
|
@@ -880,7 +881,7 @@ function ConnectedThreadFollow({
|
|
|
880
881
|
enabled: live
|
|
881
882
|
});
|
|
882
883
|
if (!conversationId) return null;
|
|
883
|
-
const Control = as === "menu-item" ?
|
|
884
|
+
const Control = as === "menu-item" ? chunkI7GQO43N_cjs.ThreadFollowMenuItem : chunkI7GQO43N_cjs.ThreadFollowButton;
|
|
884
885
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
885
886
|
Control,
|
|
886
887
|
{
|
|
@@ -953,7 +954,7 @@ function ConnectedSkillUpload({ onDone, labels, className }) {
|
|
|
953
954
|
onChange: (e) => {
|
|
954
955
|
const file = e.target.files?.[0];
|
|
955
956
|
e.target.value = "";
|
|
956
|
-
if (file) void add(() =>
|
|
957
|
+
if (file) void add(() => chunkRPWWMOYP_cjs.importSkillFile(file));
|
|
957
958
|
}
|
|
958
959
|
}
|
|
959
960
|
),
|
|
@@ -978,7 +979,7 @@ function ConnectedSkillUpload({ onDone, labels, className }) {
|
|
|
978
979
|
className: "space-y-2",
|
|
979
980
|
onSubmit: (e) => {
|
|
980
981
|
e.preventDefault();
|
|
981
|
-
if (url.trim()) void add(() =>
|
|
982
|
+
if (url.trim()) void add(() => chunkRPWWMOYP_cjs.importSkillFromUrl(url));
|
|
982
983
|
},
|
|
983
984
|
children: [
|
|
984
985
|
/* @__PURE__ */ jsxRuntime.jsx(ui.Label, { htmlFor: "skills-add-url", children: l.fromLink }),
|
|
@@ -1041,9 +1042,9 @@ function ConnectedSkillsLibrary({
|
|
|
1041
1042
|
const [type, setType] = React7.useState("all");
|
|
1042
1043
|
const [view, setView] = React7.useState("gallery");
|
|
1043
1044
|
const [isBusy, setIsBusy] = React7.useState(false);
|
|
1044
|
-
const all = React7.useMemo(() =>
|
|
1045
|
+
const all = React7.useMemo(() => chunkRPWWMOYP_cjs.buildLibrarySkills(builtins, listings ?? []), [builtins, listings]);
|
|
1045
1046
|
const shown = React7.useMemo(
|
|
1046
|
-
() =>
|
|
1047
|
+
() => chunkRPWWMOYP_cjs.filterLibrarySkills(all, { query, source, type }),
|
|
1047
1048
|
[all, query, source, type]
|
|
1048
1049
|
);
|
|
1049
1050
|
const current = all.find((s) => s.slug === selected) ?? null;
|
|
@@ -1054,21 +1055,21 @@ function ConnectedSkillsLibrary({
|
|
|
1054
1055
|
const count2 = (s) => all.filter((x) => x.source === s).length;
|
|
1055
1056
|
const sourceOptions = [
|
|
1056
1057
|
{ id: "all", label: "All", count: all.length },
|
|
1057
|
-
{ id: "builtin", label:
|
|
1058
|
-
{ id: "mine", label:
|
|
1059
|
-
{ id: "shared", label:
|
|
1058
|
+
{ id: "builtin", label: chunkRPWWMOYP_cjs.SKILL_SOURCE_LABELS.builtin, count: count2("builtin") },
|
|
1059
|
+
{ id: "mine", label: chunkRPWWMOYP_cjs.SKILL_SOURCE_LABELS.mine, count: count2("mine") },
|
|
1060
|
+
{ id: "shared", label: chunkRPWWMOYP_cjs.SKILL_SOURCE_LABELS.shared, count: count2("shared") }
|
|
1060
1061
|
];
|
|
1061
1062
|
const types = [...new Set(all.map((s) => s.type))];
|
|
1062
1063
|
const typeOptions = [
|
|
1063
1064
|
{ id: "all", label: "Any kind" },
|
|
1064
|
-
...types.map((t) => ({ id: t, label:
|
|
1065
|
+
...types.map((t) => ({ id: t, label: chunkRPWWMOYP_cjs.SKILL_TYPE_LABELS[t] ?? t }))
|
|
1065
1066
|
];
|
|
1066
1067
|
const pick = (slug) => {
|
|
1067
1068
|
setSelected(slug);
|
|
1068
1069
|
setMode("detail");
|
|
1069
1070
|
};
|
|
1070
1071
|
const markdownOf = async (skill) => {
|
|
1071
|
-
if (!skill.docExtId) return
|
|
1072
|
+
if (!skill.docExtId) return chunkRPWWMOYP_cjs.workflowToSkillMarkdown(skill.workflow);
|
|
1072
1073
|
const response = await arbi.documents.download(skill.docExtId);
|
|
1073
1074
|
if (!response.ok) throw new Error(`Could not read the skill (${response.status})`);
|
|
1074
1075
|
return response.text();
|
|
@@ -1132,7 +1133,7 @@ function ConnectedSkillsLibrary({
|
|
|
1132
1133
|
try {
|
|
1133
1134
|
documentTools.downloadBlob(
|
|
1134
1135
|
new Blob([await markdownOf(skill)], { type: "text/markdown" }),
|
|
1135
|
-
|
|
1136
|
+
chunkRPWWMOYP_cjs.SKILL_MAIN_FILENAME
|
|
1136
1137
|
);
|
|
1137
1138
|
} catch (error) {
|
|
1138
1139
|
notify17(errorText(error, "Could not export the skill"), "error");
|
|
@@ -1173,10 +1174,10 @@ function ConnectedSkillsLibrary({
|
|
|
1173
1174
|
}
|
|
1174
1175
|
)
|
|
1175
1176
|
] }),
|
|
1176
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1177
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkRPWWMOYP_cjs.SkillViewToggle, { value: view, onChange: setView })
|
|
1177
1178
|
] }),
|
|
1178
1179
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1179
|
-
|
|
1180
|
+
chunkRPWWMOYP_cjs.SkillFilterChips,
|
|
1180
1181
|
{
|
|
1181
1182
|
label: "Show",
|
|
1182
1183
|
value: source,
|
|
@@ -1185,7 +1186,7 @@ function ConnectedSkillsLibrary({
|
|
|
1185
1186
|
}
|
|
1186
1187
|
),
|
|
1187
1188
|
types.length > 1 && /* @__PURE__ */ jsxRuntime.jsx(
|
|
1188
|
-
|
|
1189
|
+
chunkRPWWMOYP_cjs.SkillFilterChips,
|
|
1189
1190
|
{
|
|
1190
1191
|
label: "Kind",
|
|
1191
1192
|
value: type,
|
|
@@ -1232,12 +1233,12 @@ function ConnectedSkillsLibrary({
|
|
|
1232
1233
|
view === "gallery" ? "grid grid-cols-[repeat(auto-fill,minmax(9.5rem,1fr))]" : "flex flex-col"
|
|
1233
1234
|
),
|
|
1234
1235
|
children: shown.map((skill) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
1235
|
-
|
|
1236
|
+
chunkRPWWMOYP_cjs.SkillTile,
|
|
1236
1237
|
{
|
|
1237
1238
|
name: skill.title,
|
|
1238
1239
|
testId: `skill-tile-${skill.slug}`,
|
|
1239
1240
|
description: skill.description,
|
|
1240
|
-
sourceLabel: skill.isShared ? `${
|
|
1241
|
+
sourceLabel: skill.isShared ? `${chunkRPWWMOYP_cjs.SKILL_SOURCE_LABELS.mine}, shared` : chunkRPWWMOYP_cjs.SKILL_SOURCE_LABELS[skill.source],
|
|
1241
1242
|
type: skill.type,
|
|
1242
1243
|
icon,
|
|
1243
1244
|
layout: view,
|
|
@@ -1272,7 +1273,7 @@ function ConnectedSkillsLibrary({
|
|
|
1272
1273
|
}
|
|
1273
1274
|
),
|
|
1274
1275
|
mode === "new" && /* @__PURE__ */ jsxRuntime.jsx(
|
|
1275
|
-
|
|
1276
|
+
chunkRPWWMOYP_cjs.SkillGenerateForm,
|
|
1276
1277
|
{
|
|
1277
1278
|
icon,
|
|
1278
1279
|
onGenerate: (desc) => {
|
|
@@ -1299,11 +1300,11 @@ function ConnectedSkillsLibrary({
|
|
|
1299
1300
|
),
|
|
1300
1301
|
mode === "add" && /* @__PURE__ */ jsxRuntime.jsx(ConnectedSkillUpload, { onDone: done }),
|
|
1301
1302
|
mode === "detail" && current && /* @__PURE__ */ jsxRuntime.jsx(
|
|
1302
|
-
|
|
1303
|
+
chunkRPWWMOYP_cjs.SkillLibraryDetail,
|
|
1303
1304
|
{
|
|
1304
1305
|
skill: current,
|
|
1305
1306
|
icon,
|
|
1306
|
-
instructions: current.docExtId ? currentText ?
|
|
1307
|
+
instructions: current.docExtId ? currentText ? chunkRPWWMOYP_cjs.parseSkillFrontmatter(currentText, chunkRPWWMOYP_cjs.SKILL_MAIN_FILENAME).content : "" : current.workflow.run.kind === "prompt" ? current.workflow.run.promptTemplate : "",
|
|
1307
1308
|
isLoading: !!current.docExtId && textLoading,
|
|
1308
1309
|
actions: {
|
|
1309
1310
|
onRun: () => onRun(current.slug),
|
|
@@ -1338,7 +1339,7 @@ function SkillEditor({
|
|
|
1338
1339
|
const [seeded, setSeeded] = React7.useState(!isEditing);
|
|
1339
1340
|
const [nameError, setNameError] = React7.useState(null);
|
|
1340
1341
|
if (isEditing && !seeded && text2 !== void 0) {
|
|
1341
|
-
const parsed =
|
|
1342
|
+
const parsed = chunkRPWWMOYP_cjs.parseSkillFrontmatter(text2, chunkRPWWMOYP_cjs.SKILL_MAIN_FILENAME);
|
|
1342
1343
|
setDescription(parsed.description ?? "");
|
|
1343
1344
|
setBody(parsed.content ?? "");
|
|
1344
1345
|
setSeeded(true);
|
|
@@ -1352,15 +1353,15 @@ function SkillEditor({
|
|
|
1352
1353
|
notify17("Add a short description.", "error");
|
|
1353
1354
|
return;
|
|
1354
1355
|
}
|
|
1355
|
-
const slug =
|
|
1356
|
+
const slug = chunkRPWWMOYP_cjs.skillSlug(name);
|
|
1356
1357
|
try {
|
|
1357
|
-
await onSave(slug,
|
|
1358
|
+
await onSave(slug, chunkRPWWMOYP_cjs.serializeSkill({ name: slug, description, body }), isEditing);
|
|
1358
1359
|
} catch (err) {
|
|
1359
1360
|
notify17(errorText(err, "Could not save the skill"), "error");
|
|
1360
1361
|
}
|
|
1361
1362
|
};
|
|
1362
1363
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1363
|
-
|
|
1364
|
+
chunkRPWWMOYP_cjs.SkillEditForm,
|
|
1364
1365
|
{
|
|
1365
1366
|
name,
|
|
1366
1367
|
onNameChange: setName,
|
|
@@ -1396,9 +1397,9 @@ function ConnectedAgentCreator({
|
|
|
1396
1397
|
agent,
|
|
1397
1398
|
initialName,
|
|
1398
1399
|
onSaved,
|
|
1399
|
-
capabilities =
|
|
1400
|
-
templates =
|
|
1401
|
-
types =
|
|
1400
|
+
capabilities = chunkRPWWMOYP_cjs.DEFAULT_AGENT_CAPABILITIES,
|
|
1401
|
+
templates = chunkRPWWMOYP_cjs.DEFAULT_AGENT_TEMPLATES,
|
|
1402
|
+
types = chunkRPWWMOYP_cjs.DEFAULT_AGENT_TYPES,
|
|
1402
1403
|
canRevokeWorkspaces = false,
|
|
1403
1404
|
labels
|
|
1404
1405
|
}) {
|
|
@@ -1440,7 +1441,7 @@ function ConnectedAgentCreator({
|
|
|
1440
1441
|
const initialValues = React7.useMemo(
|
|
1441
1442
|
() => ({
|
|
1442
1443
|
name: agent?.given_name ?? initialName ?? "",
|
|
1443
|
-
persona: isEdit ?
|
|
1444
|
+
persona: isEdit ? chunkRPWWMOYP_cjs.stripPersonaPreamble(String(agents.PERSONA ?? "")) : "",
|
|
1444
1445
|
modelName: String(agents.AGENT_MODEL_NAME ?? ""),
|
|
1445
1446
|
capabilities: Object.fromEntries(capabilities.map(({ key }) => [key, Boolean(agents[key])])),
|
|
1446
1447
|
type: "builtin",
|
|
@@ -1459,7 +1460,7 @@ function ConnectedAgentCreator({
|
|
|
1459
1460
|
try {
|
|
1460
1461
|
let agentExtId = agent?.external_id ?? early?.id ?? "";
|
|
1461
1462
|
if (!agentExtId) {
|
|
1462
|
-
if (!
|
|
1463
|
+
if (!chunkRPWWMOYP_cjs.isValidAgentName(values.name)) {
|
|
1463
1464
|
notify17("Give the agent a name first.", "error");
|
|
1464
1465
|
return;
|
|
1465
1466
|
}
|
|
@@ -1495,7 +1496,7 @@ function ConnectedAgentCreator({
|
|
|
1495
1496
|
title: `agent-${name}`,
|
|
1496
1497
|
sections: {
|
|
1497
1498
|
Agents: {
|
|
1498
|
-
PERSONA:
|
|
1499
|
+
PERSONA: chunkRPWWMOYP_cjs.composePersona(name, values.persona),
|
|
1499
1500
|
...values.modelName ? { AGENT_MODEL_NAME: values.modelName } : {},
|
|
1500
1501
|
...Object.fromEntries(capabilities.map(({ key }) => [key, !!values.capabilities[key]])),
|
|
1501
1502
|
ENABLED_SKILLS: values.capabilities.SKILLS_ENABLED && skills.length ? skills : null,
|
|
@@ -1518,7 +1519,7 @@ function ConnectedAgentCreator({
|
|
|
1518
1519
|
};
|
|
1519
1520
|
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
1520
1521
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1521
|
-
|
|
1522
|
+
chunkRPWWMOYP_cjs.AgentCreator,
|
|
1522
1523
|
{
|
|
1523
1524
|
open: ready,
|
|
1524
1525
|
onOpenChange,
|
|
@@ -1534,11 +1535,11 @@ function ConnectedAgentCreator({
|
|
|
1534
1535
|
) : void 0,
|
|
1535
1536
|
revokingWorkspaceId: revokeAccess.isPending ? revokeAccess.variables?.workspaceId : void 0,
|
|
1536
1537
|
avatar: (values) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
1537
|
-
|
|
1538
|
+
chunkRPWWMOYP_cjs.AgentAvatarField,
|
|
1538
1539
|
{
|
|
1539
1540
|
picture,
|
|
1540
1541
|
isBusy: avatarBusy,
|
|
1541
|
-
canGenerate: isEdit ||
|
|
1542
|
+
canGenerate: isEdit || chunkRPWWMOYP_cjs.isValidAgentName(values.name),
|
|
1542
1543
|
onGenerate: () => handleGenerateAvatar(values)
|
|
1543
1544
|
}
|
|
1544
1545
|
),
|
|
@@ -1590,7 +1591,7 @@ function ConnectedAgentCreator({
|
|
|
1590
1591
|
/* @__PURE__ */ jsxRuntime.jsx(ui.DialogTitle, { children: "Connect your agent" }),
|
|
1591
1592
|
/* @__PURE__ */ jsxRuntime.jsx(ui.DialogDescription, { children: "This key is shown once. Run the script on the machine that will host the agent." })
|
|
1592
1593
|
] }),
|
|
1593
|
-
connect && /* @__PURE__ */ jsxRuntime.jsx(
|
|
1594
|
+
connect && /* @__PURE__ */ jsxRuntime.jsx(chunkRPWWMOYP_cjs.AgentConnectInstructions, { email: connect.email, signingKey: connect.signingKey })
|
|
1594
1595
|
]
|
|
1595
1596
|
}
|
|
1596
1597
|
) })
|
|
@@ -1627,7 +1628,7 @@ function ConnectedWorkflowHistory({
|
|
|
1627
1628
|
const { openConversation } = chunk6TJQTDQI_cjs.useBlocksEnvironment();
|
|
1628
1629
|
const { data: runs = [], isLoading } = react.useWorkflowRuns(workflow?.external_id);
|
|
1629
1630
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1630
|
-
|
|
1631
|
+
chunkRPWWMOYP_cjs.TaskRunsDialog,
|
|
1631
1632
|
{
|
|
1632
1633
|
inline,
|
|
1633
1634
|
hideHeader,
|
|
@@ -1663,14 +1664,14 @@ function ConnectedTaskActivityDialog({
|
|
|
1663
1664
|
const activity = react.useConversationActivity(conversationId, { live });
|
|
1664
1665
|
const { data: agents = [] } = react.useAgents();
|
|
1665
1666
|
const { userId } = chunk3LDVSHRD_cjs.useConnectedWorkspace();
|
|
1666
|
-
const { members } =
|
|
1667
|
+
const { members } = chunkNG6AGVZ4_cjs.useConnectedWorkspaceRole();
|
|
1667
1668
|
const renderPerson = React7.useCallback(
|
|
1668
1669
|
(id) => {
|
|
1669
1670
|
const isMe = !!id && id === userId;
|
|
1670
1671
|
const member = members.find((m) => m.user.external_id === id)?.user;
|
|
1671
1672
|
const name = member && [member.given_name, member.family_name].filter(Boolean).join(" ") || member?.email;
|
|
1672
1673
|
const person = { id, label: isMe ? "You" : name || "Someone", isMe };
|
|
1673
|
-
return renderTaskPerson ? renderTaskPerson(person) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
1674
|
+
return renderTaskPerson ? renderTaskPerson(person) : /* @__PURE__ */ jsxRuntime.jsx(chunk6TE3QA3Y_cjs.PersonPill, { person });
|
|
1674
1675
|
},
|
|
1675
1676
|
[renderTaskPerson, userId, members]
|
|
1676
1677
|
);
|
|
@@ -1679,7 +1680,7 @@ function ConnectedTaskActivityDialog({
|
|
|
1679
1680
|
[agents]
|
|
1680
1681
|
);
|
|
1681
1682
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1682
|
-
|
|
1683
|
+
chunkRPWWMOYP_cjs.TaskActivityDialog,
|
|
1683
1684
|
{
|
|
1684
1685
|
open: true,
|
|
1685
1686
|
onOpenChange: (open) => !open && onClose(),
|
|
@@ -1825,7 +1826,7 @@ function useWorkflowThread(workflow, options2 = {}) {
|
|
|
1825
1826
|
);
|
|
1826
1827
|
const conversation = conversations.data?.find((c) => c.external_id === threadId);
|
|
1827
1828
|
const steps = React7.useMemo(
|
|
1828
|
-
() => chunkDHOIO3B7_cjs.workflowSteps(workflow).length > 0 ? chunkDHOIO3B7_cjs.workflowSteps(workflow) :
|
|
1829
|
+
() => chunkDHOIO3B7_cjs.workflowSteps(workflow).length > 0 ? chunkDHOIO3B7_cjs.workflowSteps(workflow) : chunkRPWWMOYP_cjs.fromPlanSteps(conversation?.plan?.steps ?? []),
|
|
1829
1830
|
[workflow, conversation?.plan?.steps]
|
|
1830
1831
|
);
|
|
1831
1832
|
const activity = react.useConversationActivity(threadId, { live: !!threadId });
|
|
@@ -1885,7 +1886,7 @@ function useWorkflowThread(workflow, options2 = {}) {
|
|
|
1885
1886
|
criteria: [],
|
|
1886
1887
|
max_passes: 3,
|
|
1887
1888
|
documents: [],
|
|
1888
|
-
steps:
|
|
1889
|
+
steps: chunkRPWWMOYP_cjs.toPlanSteps(workflow, {
|
|
1889
1890
|
inputs: values,
|
|
1890
1891
|
resolveWorkflow: options2.resolveWorkflow,
|
|
1891
1892
|
compose: options2.compose
|
|
@@ -1972,7 +1973,7 @@ function useWorkflowThread(workflow, options2 = {}) {
|
|
|
1972
1973
|
const anyRunning = Object.values(states).some((s) => s.status === "running");
|
|
1973
1974
|
const needsStart = !threadId || idle && !anyRunning;
|
|
1974
1975
|
const runError = idle ? conversation?.last_error ?? null : null;
|
|
1975
|
-
const view =
|
|
1976
|
+
const view = chunkRPWWMOYP_cjs.useWorkflowView({
|
|
1976
1977
|
steps,
|
|
1977
1978
|
states,
|
|
1978
1979
|
inputs,
|
|
@@ -2138,7 +2139,7 @@ function WorkflowWordDialog({
|
|
|
2138
2139
|
title: title ?? labels.wordTitle,
|
|
2139
2140
|
size: "xl",
|
|
2140
2141
|
testId: "workflow-word-dialog",
|
|
2141
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(chunkULWRNGGE_cjs.ModalScaffold.Body, { className: "h-[70dvh] p-0", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
2142
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(chunkULWRNGGE_cjs.ModalScaffold.Body, { className: "h-[70dvh] p-0", children: /* @__PURE__ */ jsxRuntime.jsx(chunkNG6AGVZ4_cjs.ConnectedNativeDocxEditor, { documentId: id, title: title ?? labels.wordTitle }) })
|
|
2142
2143
|
}
|
|
2143
2144
|
);
|
|
2144
2145
|
}
|
|
@@ -2447,7 +2448,7 @@ function ConnectedWorkflowRunner({
|
|
|
2447
2448
|
);
|
|
2448
2449
|
};
|
|
2449
2450
|
const runner = (compact) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
2450
|
-
|
|
2451
|
+
chunkRPWWMOYP_cjs.WorkflowRunner,
|
|
2451
2452
|
{
|
|
2452
2453
|
people,
|
|
2453
2454
|
...runnerProps,
|
|
@@ -2493,7 +2494,7 @@ function ConnectedWorkflowRunner({
|
|
|
2493
2494
|
) }),
|
|
2494
2495
|
inThread && conversationId ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
2495
2496
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2496
|
-
|
|
2497
|
+
chunkRPWWMOYP_cjs.WorkflowStepBar,
|
|
2497
2498
|
{
|
|
2498
2499
|
run: view,
|
|
2499
2500
|
levels: chunkDHOIO3B7_cjs.stepLevels(view.steps),
|
|
@@ -2784,7 +2785,7 @@ function ConnectedTagTable({
|
|
|
2784
2785
|
const fail = (fallback) => (e) => notify17(browser.refusalReason(e, fallback), "error");
|
|
2785
2786
|
const snapshot2 = (data) => {
|
|
2786
2787
|
const title = exportTitle ?? ui.tagKindTitle(kind, { plural: true });
|
|
2787
|
-
const bytes =
|
|
2788
|
+
const bytes = chunkI7GQO43N_cjs.tagTableDocx(data, {
|
|
2788
2789
|
title,
|
|
2789
2790
|
nameOf: (id) => people.find((p) => p.value === id)?.label
|
|
2790
2791
|
});
|
|
@@ -2793,7 +2794,7 @@ function ConnectedTagTable({
|
|
|
2793
2794
|
return { blob: new Blob([bytes], { type: chunkQT3A4PFC_cjs.DOCX_MIME_TYPE }), name };
|
|
2794
2795
|
};
|
|
2795
2796
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
2796
|
-
|
|
2797
|
+
chunkI7GQO43N_cjs.TagTable,
|
|
2797
2798
|
{
|
|
2798
2799
|
...props,
|
|
2799
2800
|
table,
|
|
@@ -2931,9 +2932,9 @@ function GlossaryExport({ labelId, nameOf }) {
|
|
|
2931
2932
|
const narrowed = agreements.find((a) => a.id === narrowTo);
|
|
2932
2933
|
const title = narrowed ? `Glossary - ${narrowed.name}` : "Glossary";
|
|
2933
2934
|
const download = (format) => {
|
|
2934
|
-
const entries =
|
|
2935
|
-
const blob = format === "docx" ? new Blob([
|
|
2936
|
-
documentTools.downloadBlob(blob,
|
|
2935
|
+
const entries = chunkI7GQO43N_cjs.glossaryEntries(sources, { labelId: narrowed?.id });
|
|
2936
|
+
const blob = format === "docx" ? new Blob([chunkI7GQO43N_cjs.glossaryDocx(entries, { title })], { type: chunkQT3A4PFC_cjs.DOCX_MIME_TYPE }) : new Blob([chunkI7GQO43N_cjs.glossaryMarkdown(entries, { title })], { type: "text/markdown" });
|
|
2937
|
+
documentTools.downloadBlob(blob, chunkI7GQO43N_cjs.glossaryFileName(title, format));
|
|
2937
2938
|
};
|
|
2938
2939
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", "data-testid": "tags-glossary", children: [
|
|
2939
2940
|
agreements.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs(
|
|
@@ -3719,7 +3720,7 @@ var DocumentSharedCell = React7.memo(function DocumentSharedCell2({
|
|
|
3719
3720
|
[document2.external_id, onToggle]
|
|
3720
3721
|
);
|
|
3721
3722
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
3722
|
-
|
|
3723
|
+
chunkI7GQO43N_cjs.SharedCell,
|
|
3723
3724
|
{
|
|
3724
3725
|
item: document2,
|
|
3725
3726
|
onToggle: handleToggle,
|
|
@@ -4276,7 +4277,7 @@ function TagCombineFilter({
|
|
|
4276
4277
|
return { options: options3, groups: groups2 };
|
|
4277
4278
|
}, [tags, kinds]);
|
|
4278
4279
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
4279
|
-
|
|
4280
|
+
chunkAQPZ4QMV_cjs.TriStateFilterMenu,
|
|
4280
4281
|
{
|
|
4281
4282
|
testId: "tags-filter-button",
|
|
4282
4283
|
open,
|
|
@@ -4430,7 +4431,7 @@ function KindSection({
|
|
|
4430
4431
|
{
|
|
4431
4432
|
testId: `tags-kind-${kind}`,
|
|
4432
4433
|
title: ui.tagKindTitle(kind, { plural: true }),
|
|
4433
|
-
description:
|
|
4434
|
+
description: chunkI7GQO43N_cjs.tagKindDescription(kind),
|
|
4434
4435
|
actions: picker,
|
|
4435
4436
|
children: [
|
|
4436
4437
|
browser.isEntityTag({ kind }) && extractingCount > 0 && /* @__PURE__ */ jsxRuntime.jsxs(
|
|
@@ -4441,9 +4442,9 @@ function KindSection({
|
|
|
4441
4442
|
children: [
|
|
4442
4443
|
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.Loader2, { className: "size-4 animate-spin" }),
|
|
4443
4444
|
"Extracting ",
|
|
4444
|
-
|
|
4445
|
+
chunkI7GQO43N_cjs.entitiesPhrase().toLowerCase(),
|
|
4445
4446
|
" from ",
|
|
4446
|
-
|
|
4447
|
+
chunkI7GQO43N_cjs.documentCount(extractingCount),
|
|
4447
4448
|
"\u2026"
|
|
4448
4449
|
]
|
|
4449
4450
|
}
|
|
@@ -4461,7 +4462,7 @@ function KindSection({
|
|
|
4461
4462
|
onOpenDocument: (id) => openDocument(id),
|
|
4462
4463
|
onOpenFact: ctx.onOpenFact,
|
|
4463
4464
|
onOpenThread: (id) => openConversation(id),
|
|
4464
|
-
labels:
|
|
4465
|
+
labels: chunkI7GQO43N_cjs.tagTableLabels(kind),
|
|
4465
4466
|
testId: `tags-table-${kind}`
|
|
4466
4467
|
}
|
|
4467
4468
|
)
|
|
@@ -4563,12 +4564,12 @@ function TagSection({
|
|
|
4563
4564
|
onOpenDocument: (id) => openDocument(id),
|
|
4564
4565
|
onOpenFact: ctx.onOpenFact,
|
|
4565
4566
|
onOpenThread: (id) => openConversation(id),
|
|
4566
|
-
labels:
|
|
4567
|
+
labels: chunkI7GQO43N_cjs.tagTableLabels(tag.kind),
|
|
4567
4568
|
testId: "tags-rows"
|
|
4568
4569
|
}
|
|
4569
4570
|
),
|
|
4570
4571
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4571
|
-
|
|
4572
|
+
chunkI7GQO43N_cjs.TagDetail,
|
|
4572
4573
|
{
|
|
4573
4574
|
row: detailRow && narrowTagRow(detailRow, ctx.filter.matches),
|
|
4574
4575
|
fields: schema.data?.fields ?? [],
|
|
@@ -4580,10 +4581,10 @@ function TagSection({
|
|
|
4580
4581
|
onOpenDocument: (id) => openDocument(id),
|
|
4581
4582
|
onOpenFact: ctx.onOpenFact,
|
|
4582
4583
|
onOpenThread: (id) => openConversation(id),
|
|
4583
|
-
noteLabel:
|
|
4584
|
+
noteLabel: chunkI7GQO43N_cjs.tagNoteLabel(tag.kind),
|
|
4584
4585
|
noteIsValue: tag.kind === "annotation",
|
|
4585
4586
|
renderPassages: (d, label) => renderPassages(d.doc_ext_id, label),
|
|
4586
|
-
labels:
|
|
4587
|
+
labels: chunkI7GQO43N_cjs.tagDetailLabels(),
|
|
4587
4588
|
testId: "tags-detail"
|
|
4588
4589
|
}
|
|
4589
4590
|
)
|
|
@@ -4671,7 +4672,7 @@ function ConnectedTagsPage({
|
|
|
4671
4672
|
const onDelete = async (t) => {
|
|
4672
4673
|
const nested = browser.getChildTags([...tags], t.external_id);
|
|
4673
4674
|
const uses = browser.tagUseCount(t);
|
|
4674
|
-
const n2 =
|
|
4675
|
+
const n2 = chunkI7GQO43N_cjs.tagsPageNouns();
|
|
4675
4676
|
const tagNoun = (count2) => (count2 === 1 ? n2.tag : n2.tags).toLowerCase();
|
|
4676
4677
|
const carriers = uses === 1 ? `${n2.document}, ${n2.fact} or ${n2.thread}` : `${n2.documents}, ${n2.facts} and ${n2.threads}`;
|
|
4677
4678
|
const message = `Delete ${ui.tagKindNouns(t.kind).singular} "${t.name}"?` + (uses > 0 ? `
|
|
@@ -4692,16 +4693,16 @@ ${nested.length} nested ${tagNoun(nested.length)} ${nested.length === 1 ? "moves
|
|
|
4692
4693
|
try {
|
|
4693
4694
|
await extract.mutateAsync(docIds);
|
|
4694
4695
|
notify17(
|
|
4695
|
-
`Extracting ${
|
|
4696
|
+
`Extracting ${chunkI7GQO43N_cjs.entitiesPhrase().toLowerCase()} from ${chunkI7GQO43N_cjs.documentCount(docIds.length)}. You will be notified when it is done.`,
|
|
4696
4697
|
"info"
|
|
4697
4698
|
);
|
|
4698
4699
|
} catch (error) {
|
|
4699
|
-
notify17(browser.refusalReason(error, `Could not extract ${
|
|
4700
|
+
notify17(browser.refusalReason(error, `Could not extract ${chunkI7GQO43N_cjs.entitiesPhrase().toLowerCase()}`), "error");
|
|
4700
4701
|
throw error;
|
|
4701
4702
|
}
|
|
4702
4703
|
};
|
|
4703
4704
|
const picker = /* @__PURE__ */ jsxRuntime.jsx(
|
|
4704
|
-
|
|
4705
|
+
chunkI7GQO43N_cjs.TagPicker,
|
|
4705
4706
|
{
|
|
4706
4707
|
tags: viewTags,
|
|
4707
4708
|
selectedId: tag?.external_id,
|
|
@@ -4715,10 +4716,10 @@ ${nested.length} nested ${tagNoun(nested.length)} ${nested.length === 1 ? "moves
|
|
|
4715
4716
|
onOpenTag: openTag,
|
|
4716
4717
|
onOpenFact
|
|
4717
4718
|
};
|
|
4718
|
-
const n =
|
|
4719
|
+
const n = chunkI7GQO43N_cjs.tagsPageNouns();
|
|
4719
4720
|
const action = view === "person" || view === "organisation" ? {
|
|
4720
4721
|
label: "Extract",
|
|
4721
|
-
title: `Extract ${
|
|
4722
|
+
title: `Extract ${chunkI7GQO43N_cjs.entitiesPhrase().toLowerCase()} from ${n.documents.toLowerCase()}`,
|
|
4722
4723
|
icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Sparkles, { className: "h-4 w-4" }),
|
|
4723
4724
|
run: () => setExtracting(true),
|
|
4724
4725
|
testId: "tags-extract-entities"
|
|
@@ -4868,7 +4869,7 @@ ${nested.length} nested ${tagNoun(nested.length)} ${nested.length === 1 ? "moves
|
|
|
4868
4869
|
}
|
|
4869
4870
|
),
|
|
4870
4871
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4871
|
-
|
|
4872
|
+
chunkI7GQO43N_cjs.ExtractEntitiesDialog,
|
|
4872
4873
|
{
|
|
4873
4874
|
open: extracting,
|
|
4874
4875
|
onOpenChange: setExtracting,
|
|
@@ -6851,7 +6852,7 @@ function ConnectedFactsPage({
|
|
|
6851
6852
|
searchFields: filters.factsSearchFields,
|
|
6852
6853
|
onSearchFieldsChange: filters.setFactsSearchFields,
|
|
6853
6854
|
quickFilter: /* @__PURE__ */ jsxRuntime.jsx(
|
|
6854
|
-
|
|
6855
|
+
chunkAQPZ4QMV_cjs.TriStateFilterMenu,
|
|
6855
6856
|
{
|
|
6856
6857
|
testId: "facts-bar-filter-button",
|
|
6857
6858
|
open: filterOpen,
|
|
@@ -6871,7 +6872,7 @@ function ConnectedFactsPage({
|
|
|
6871
6872
|
onNewFact: composing && !editingId ? () => void 0 : composer.startNewFact,
|
|
6872
6873
|
navSlotRef: setNavSlot,
|
|
6873
6874
|
navigator: view === "table" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
6874
|
-
|
|
6875
|
+
chunkI7GQO43N_cjs.GridRowNavigator,
|
|
6875
6876
|
{
|
|
6876
6877
|
gridApi,
|
|
6877
6878
|
selectedId: editingId,
|
|
@@ -6940,7 +6941,7 @@ function ConnectedFactsPage({
|
|
|
6940
6941
|
{
|
|
6941
6942
|
toggle: sourcesToggle,
|
|
6942
6943
|
picker: /* @__PURE__ */ jsxRuntime.jsx(
|
|
6943
|
-
|
|
6944
|
+
chunkVZOOGA47_cjs.DocumentPicker,
|
|
6944
6945
|
{
|
|
6945
6946
|
groups: pickerGroups,
|
|
6946
6947
|
value: "",
|
|
@@ -8777,13 +8778,13 @@ function ConnectedWorkspaceSettings({
|
|
|
8777
8778
|
const [membersExpanded, setMembersExpanded] = React7.useState(false);
|
|
8778
8779
|
const [shareOpen, setShareOpen] = React7.useState(false);
|
|
8779
8780
|
if (!workspace) {
|
|
8780
|
-
return /* @__PURE__ */ jsxRuntime.jsx(chunk2ETLLFQV_cjs.PageLoading, { children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
8781
|
+
return /* @__PURE__ */ jsxRuntime.jsx(chunk2ETLLFQV_cjs.PageLoading, { children: /* @__PURE__ */ jsxRuntime.jsx(chunkI7GQO43N_cjs.LoadingIndicator, { message: "Loading workspace..." }) });
|
|
8781
8782
|
}
|
|
8782
8783
|
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
8783
8784
|
/* @__PURE__ */ jsxRuntime.jsxs(chunk2ETLLFQV_cjs.WorkspacePageFrame, { testId, children: [
|
|
8784
8785
|
/* @__PURE__ */ jsxRuntime.jsxs(chunk2ETLLFQV_cjs.WorkspaceIdentityPanel, { children: [
|
|
8785
8786
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
8786
|
-
|
|
8787
|
+
chunkI7GQO43N_cjs.EntityIdentityBar,
|
|
8787
8788
|
{
|
|
8788
8789
|
testId: "workspace-identity-bar",
|
|
8789
8790
|
canEdit: isOwner,
|
|
@@ -8800,7 +8801,7 @@ function ConnectedWorkspaceSettings({
|
|
|
8800
8801
|
label: "Name",
|
|
8801
8802
|
value: workspace.name,
|
|
8802
8803
|
placeholder: "Untitled",
|
|
8803
|
-
maxLength:
|
|
8804
|
+
maxLength: chunkI7GQO43N_cjs.IDENTITY_NAME_MAX_LENGTH,
|
|
8804
8805
|
valueClassName: "truncate text-base font-semibold",
|
|
8805
8806
|
testId: "workspace-home-title",
|
|
8806
8807
|
hideLabel: true,
|
|
@@ -12475,7 +12476,7 @@ function WorkspaceFilterMenu({ list }) {
|
|
|
12475
12476
|
return { options: options3, groups: groups2 };
|
|
12476
12477
|
}, [workspaces, projects, selfId, pinned]);
|
|
12477
12478
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
12478
|
-
|
|
12479
|
+
chunkAQPZ4QMV_cjs.TriStateFilterMenu,
|
|
12479
12480
|
{
|
|
12480
12481
|
testId: "workspace-filter-button",
|
|
12481
12482
|
open,
|
|
@@ -12600,7 +12601,7 @@ function useConnectedWorkspaceList({
|
|
|
12600
12601
|
};
|
|
12601
12602
|
}
|
|
12602
12603
|
var WorkspaceTableView = React7.lazy(
|
|
12603
|
-
() => import('../WorkspaceTableView-
|
|
12604
|
+
() => import('../WorkspaceTableView-MQXVE3JB.cjs').then((m) => ({ default: m.WorkspaceTableView }))
|
|
12604
12605
|
);
|
|
12605
12606
|
var WORKSPACES_TAB_ID = "workspaces";
|
|
12606
12607
|
var defaultRenderMember2 = (user, size) => {
|
|
@@ -12652,7 +12653,7 @@ function ConnectedWorkspaceList({
|
|
|
12652
12653
|
else void openWorkspace(workspace.external_id, { name: workspace.name });
|
|
12653
12654
|
};
|
|
12654
12655
|
const createDisabledReason = list.canCreateProjects === false ? react.PROJECT_CREATION_DENIED_REASON : void 0;
|
|
12655
|
-
if (list.isLoading) return /* @__PURE__ */ jsxRuntime.jsx(
|
|
12656
|
+
if (list.isLoading) return /* @__PURE__ */ jsxRuntime.jsx(chunkI7GQO43N_cjs.LoadingIndicator, { message: "Loading workspaces..." });
|
|
12656
12657
|
if (list.error) {
|
|
12657
12658
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
12658
12659
|
chunkNJ72FUE2_cjs.HomeLoadError,
|
|
@@ -12725,7 +12726,7 @@ function ConnectedWorkspaceList({
|
|
|
12725
12726
|
workspaceState
|
|
12726
12727
|
}
|
|
12727
12728
|
) })
|
|
12728
|
-
) : /* @__PURE__ */ jsxRuntime.jsx(React7.Suspense, { fallback: /* @__PURE__ */ jsxRuntime.jsx(
|
|
12729
|
+
) : /* @__PURE__ */ jsxRuntime.jsx(React7.Suspense, { fallback: /* @__PURE__ */ jsxRuntime.jsx(chunkI7GQO43N_cjs.LoadingIndicator, { message: "Loading grid..." }), children: /* @__PURE__ */ jsxRuntime.jsx(chunkNJ72FUE2_cjs.HomeCenteredColumn, { children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
12729
12730
|
WorkspaceTableView,
|
|
12730
12731
|
{
|
|
12731
12732
|
list,
|
|
@@ -13572,7 +13573,7 @@ function recentConversations(conversations) {
|
|
|
13572
13573
|
return [...conversations].sort((a, b) => time(b.updated_at) - time(a.updated_at)).slice(0, RECENT_ROWS).map((c) => ({
|
|
13573
13574
|
id: c.external_id,
|
|
13574
13575
|
title: c.title?.trim() || "Untitled thread",
|
|
13575
|
-
subtitle: c.status ? [
|
|
13576
|
+
subtitle: c.status ? [chunkRPWWMOYP_cjs.STATUS_LABELS[chunkRPWWMOYP_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"}`,
|
|
13576
13577
|
time: timeAndDate(c.updated_at)
|
|
13577
13578
|
}));
|
|
13578
13579
|
}
|
|
@@ -15691,7 +15692,7 @@ function ConnectedMailbox({
|
|
|
15691
15692
|
testIds: { root: "mail-search", input: "mail-filter-input" },
|
|
15692
15693
|
className: "min-w-28 flex-1 sm:max-w-72",
|
|
15693
15694
|
filter: /* @__PURE__ */ jsxRuntime.jsx(
|
|
15694
|
-
|
|
15695
|
+
chunkAQPZ4QMV_cjs.TriStateFilterMenu,
|
|
15695
15696
|
{
|
|
15696
15697
|
testId: "mail-bar-filter-button",
|
|
15697
15698
|
open: filterMenuOpen,
|
|
@@ -16092,7 +16093,7 @@ function SubscribeDialog({
|
|
|
16092
16093
|
subscribe2.reset();
|
|
16093
16094
|
}
|
|
16094
16095
|
}, [open]);
|
|
16095
|
-
const normalized =
|
|
16096
|
+
const normalized = chunkPXVSZRCA_cjs.normalizeFeedUrl(url);
|
|
16096
16097
|
return /* @__PURE__ */ jsxRuntime.jsx(ui.Dialog, { open, onOpenChange: (o) => !o && onClose(), children: /* @__PURE__ */ jsxRuntime.jsxs(ui.DialogContent, { className: "sm:max-w-md", "data-testid": "calendar-subscribe-dialog", children: [
|
|
16097
16098
|
/* @__PURE__ */ jsxRuntime.jsxs(ui.DialogHeader, { children: [
|
|
16098
16099
|
/* @__PURE__ */ jsxRuntime.jsx(ui.DialogTitle, { children: "Subscribe to a calendar" }),
|
|
@@ -16304,7 +16305,7 @@ function AccountRow({ account }) {
|
|
|
16304
16305
|
const update = react.useUpdateCalendarAccount();
|
|
16305
16306
|
const disconnect = react.useDisconnectCalendarAccount();
|
|
16306
16307
|
const [confirming, setConfirming] = React7.useState(false);
|
|
16307
|
-
const fail = (what) => (err) => notify17(`${what}: ${
|
|
16308
|
+
const fail = (what) => (err) => notify17(`${what}: ${chunkPXVSZRCA_cjs.describeCalendarError(err)}`, "error");
|
|
16308
16309
|
const reconnect = !!startOAuth && account.status === "needs_reauth" && (account.kind === "google" || account.kind === "microsoft");
|
|
16309
16310
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
16310
16311
|
"li",
|
|
@@ -16346,7 +16347,7 @@ function AccountRow({ account }) {
|
|
|
16346
16347
|
variant: "outline",
|
|
16347
16348
|
disabled: sync.isPending,
|
|
16348
16349
|
onClick: () => sync.mutate(account.id, {
|
|
16349
|
-
onSuccess: (r) => r?.error ? notify17(`Sync failed: ${
|
|
16350
|
+
onSuccess: (r) => r?.error ? notify17(`Sync failed: ${chunkPXVSZRCA_cjs.describeCalendarError(r.error)}`, "error") : notify17("Calendar synced", "success"),
|
|
16350
16351
|
onError: fail("Sync failed")
|
|
16351
16352
|
}),
|
|
16352
16353
|
"data-testid": `calendar-account-sync-${account.id}`,
|
|
@@ -16390,7 +16391,7 @@ function AccountRow({ account }) {
|
|
|
16390
16391
|
KIND_LABEL[account.kind],
|
|
16391
16392
|
"."
|
|
16392
16393
|
] }),
|
|
16393
|
-
account.last_error && /* @__PURE__ */ jsxRuntime.jsx("p", { role: "alert", className: "rounded bg-destructive/10 px-2 py-1 text-xs text-destructive", children:
|
|
16394
|
+
account.last_error && /* @__PURE__ */ jsxRuntime.jsx("p", { role: "alert", className: "rounded bg-destructive/10 px-2 py-1 text-xs text-destructive", children: chunkPXVSZRCA_cjs.describeCalendarError(account.last_error) }),
|
|
16394
16395
|
/* @__PURE__ */ jsxRuntime.jsxs("label", { className: "flex items-start gap-2 text-xs text-muted-foreground", children: [
|
|
16395
16396
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
16396
16397
|
ui.Switch,
|
|
@@ -16448,7 +16449,7 @@ function CalDavForm({ onDone }) {
|
|
|
16448
16449
|
notify17("CalDAV account connected", "success");
|
|
16449
16450
|
onDone();
|
|
16450
16451
|
},
|
|
16451
|
-
onError: (err) => setError(
|
|
16452
|
+
onError: (err) => setError(chunkPXVSZRCA_cjs.describeCalendarError(err, "Could not connect"))
|
|
16452
16453
|
}
|
|
16453
16454
|
);
|
|
16454
16455
|
},
|
|
@@ -16543,7 +16544,7 @@ function CalendarAccountsPanel({ className }) {
|
|
|
16543
16544
|
const [oauthError, setOauthError] = React7.useState(null);
|
|
16544
16545
|
const resumed = react.useResumeCalendarAccountConnect(({ account, error: err }) => {
|
|
16545
16546
|
if (account) notify17(`${KIND_LABEL[account.kind]} connected`, "success");
|
|
16546
|
-
if (err) setOauthError(
|
|
16547
|
+
if (err) setOauthError(chunkPXVSZRCA_cjs.describeCalendarError(err, "Could not connect the account"));
|
|
16547
16548
|
});
|
|
16548
16549
|
const connect = async (kind) => {
|
|
16549
16550
|
setOauthError(null);
|
|
@@ -16557,7 +16558,7 @@ function CalendarAccountsPanel({ className }) {
|
|
|
16557
16558
|
await startOAuth?.(kind, background);
|
|
16558
16559
|
}
|
|
16559
16560
|
} catch (err) {
|
|
16560
|
-
setOauthError(
|
|
16561
|
+
setOauthError(chunkPXVSZRCA_cjs.describeCalendarError(err, "Could not connect the account"));
|
|
16561
16562
|
} finally {
|
|
16562
16563
|
setPendingKind(null);
|
|
16563
16564
|
}
|
|
@@ -16569,7 +16570,7 @@ function CalendarAccountsPanel({ className }) {
|
|
|
16569
16570
|
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-base font-semibold text-foreground", children: "Connected calendars" }),
|
|
16570
16571
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-muted-foreground", children: "Bring your Google, Outlook or CalDAV calendars into ARBI. Changes sync both ways." })
|
|
16571
16572
|
] }),
|
|
16572
|
-
isLoading ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-muted-foreground", children: "Loading accounts\u2026" }) : error ? /* @__PURE__ */ jsxRuntime.jsx("p", { role: "alert", className: "text-sm text-destructive", children:
|
|
16573
|
+
isLoading ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-muted-foreground", children: "Loading accounts\u2026" }) : error ? /* @__PURE__ */ jsxRuntime.jsx("p", { role: "alert", className: "text-sm text-destructive", children: chunkPXVSZRCA_cjs.describeCalendarError(error, "Could not load accounts") }) : accounts.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "rounded-lg border border-dashed border-border p-4 text-sm text-muted-foreground", children: "No calendar accounts connected yet." }) : /* @__PURE__ */ jsxRuntime.jsx("ul", { className: "grid gap-2", children: accounts.map((a) => /* @__PURE__ */ jsxRuntime.jsx(AccountRow, { account: a }, a.id)) }),
|
|
16573
16574
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid gap-2", children: [
|
|
16574
16575
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-wrap gap-2", children: [
|
|
16575
16576
|
oauth && ["google", "microsoft"].map((kind) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
@@ -16626,13 +16627,13 @@ var selectClass3 = "h-9 w-full rounded-md border border-input bg-background px-2
|
|
|
16626
16627
|
function summarizeWeekly(page) {
|
|
16627
16628
|
const days = [...new Set((page.weekly ?? []).map((w) => Number(w.day)))].sort();
|
|
16628
16629
|
if (!days.length) return "No hours set";
|
|
16629
|
-
return days.map((d) =>
|
|
16630
|
+
return days.map((d) => chunkPXVSZRCA_cjs.WEEKDAY_NAMES[d]?.slice(0, 3)).join(", ");
|
|
16630
16631
|
}
|
|
16631
16632
|
function BookingPageForm({ page, defaultTimeZone, onDone }) {
|
|
16632
16633
|
const { notify: notify17 } = chunk6TJQTDQI_cjs.useBlocksEnvironment();
|
|
16633
16634
|
const copyText = useCalendarCopy();
|
|
16634
16635
|
const [form, setForm] = React7.useState(
|
|
16635
|
-
() => page ?
|
|
16636
|
+
() => page ? chunkPXVSZRCA_cjs.bookingToForm(page) : chunkPXVSZRCA_cjs.emptyBookingForm(defaultTimeZone)
|
|
16636
16637
|
);
|
|
16637
16638
|
const [slugTouched, setSlugTouched] = React7.useState(!!page);
|
|
16638
16639
|
const [errors, setErrors] = React7.useState({});
|
|
@@ -16663,18 +16664,18 @@ function BookingPageForm({ page, defaultTimeZone, onDone }) {
|
|
|
16663
16664
|
className: "grid gap-4",
|
|
16664
16665
|
onSubmit: (e) => {
|
|
16665
16666
|
e.preventDefault();
|
|
16666
|
-
const found =
|
|
16667
|
+
const found = chunkPXVSZRCA_cjs.validateBookingForm(form);
|
|
16667
16668
|
setErrors(found);
|
|
16668
16669
|
setServerError(null);
|
|
16669
16670
|
if (Object.keys(found).length) return;
|
|
16670
|
-
save.mutate(
|
|
16671
|
+
save.mutate(chunkPXVSZRCA_cjs.formToBookingBody(form), {
|
|
16671
16672
|
onSuccess: (saved) => {
|
|
16672
16673
|
notify17(page ? "Booking page saved" : "Booking page published", "success");
|
|
16673
|
-
if (!page) void copyText(
|
|
16674
|
+
if (!page) void copyText(chunkPXVSZRCA_cjs.bookingLink(saved), "Booking link");
|
|
16674
16675
|
onDone();
|
|
16675
16676
|
},
|
|
16676
16677
|
onError: (err) => setServerError(
|
|
16677
|
-
err.status === 409 ? "That link is taken. Choose another." :
|
|
16678
|
+
err.status === 409 ? "That link is taken. Choose another." : chunkPXVSZRCA_cjs.describeCalendarError(err, "Could not save")
|
|
16678
16679
|
)
|
|
16679
16680
|
});
|
|
16680
16681
|
},
|
|
@@ -16691,7 +16692,7 @@ function BookingPageForm({ page, defaultTimeZone, onDone }) {
|
|
|
16691
16692
|
value: form.title,
|
|
16692
16693
|
onChange: (e) => {
|
|
16693
16694
|
const title = e.target.value;
|
|
16694
|
-
setForm((f) => ({ ...f, title, slug: slugTouched ? f.slug :
|
|
16695
|
+
setForm((f) => ({ ...f, title, slug: slugTouched ? f.slug : chunkPXVSZRCA_cjs.slugify(title) }));
|
|
16695
16696
|
},
|
|
16696
16697
|
"aria-invalid": !!errors.title,
|
|
16697
16698
|
"data-testid": "booking-title"
|
|
@@ -16758,14 +16759,14 @@ function BookingPageForm({ page, defaultTimeZone, onDone }) {
|
|
|
16758
16759
|
className: selectClass3,
|
|
16759
16760
|
value: form.timeZone,
|
|
16760
16761
|
onChange: (e) => set("timeZone", e.target.value),
|
|
16761
|
-
children:
|
|
16762
|
+
children: chunkPXVSZRCA_cjs.zoneOptions(form.timeZone).map((z) => /* @__PURE__ */ jsxRuntime.jsx("option", { value: z, children: z.replace(/_/g, " ") }, z))
|
|
16762
16763
|
}
|
|
16763
16764
|
)
|
|
16764
16765
|
] })
|
|
16765
16766
|
] }),
|
|
16766
16767
|
/* @__PURE__ */ jsxRuntime.jsxs("fieldset", { className: "grid gap-2", children: [
|
|
16767
16768
|
/* @__PURE__ */ jsxRuntime.jsx("legend", { className: "mb-1 text-sm font-medium text-foreground", children: "Weekly hours" }),
|
|
16768
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
16769
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkPXVSZRCA_cjs.WeeklyHoursEditor, { value: form.weekly, onChange: (weekly) => set("weekly", weekly) }),
|
|
16769
16770
|
errors.weekly && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-xs text-destructive", children: errors.weekly }),
|
|
16770
16771
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-muted-foreground", children: "Only times free in your calendars within these hours are offered." })
|
|
16771
16772
|
] }),
|
|
@@ -16844,7 +16845,7 @@ function BookingPagesPanel({ defaultTimeZone, className }) {
|
|
|
16844
16845
|
" New booking page"
|
|
16845
16846
|
] })
|
|
16846
16847
|
] }),
|
|
16847
|
-
isLoading ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-muted-foreground", children: "Loading\u2026" }) : error ? /* @__PURE__ */ jsxRuntime.jsx("p", { role: "alert", className: "text-sm text-destructive", children:
|
|
16848
|
+
isLoading ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-muted-foreground", children: "Loading\u2026" }) : error ? /* @__PURE__ */ jsxRuntime.jsx("p", { role: "alert", className: "text-sm text-destructive", children: chunkPXVSZRCA_cjs.describeCalendarError(error, "Could not load booking pages") }) : pages.length === 0 ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid justify-items-center gap-2 rounded-lg border border-dashed border-border p-6 text-center text-sm text-muted-foreground", children: [
|
|
16848
16849
|
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.CalendarCheck, { className: "size-6" }),
|
|
16849
16850
|
/* @__PURE__ */ jsxRuntime.jsx("p", { children: "No booking pages yet." })
|
|
16850
16851
|
] }) : /* @__PURE__ */ jsxRuntime.jsx("ul", { className: "grid gap-2", children: pages.map((p) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -16873,11 +16874,11 @@ function BookingPagesPanel({ defaultTimeZone, className }) {
|
|
|
16873
16874
|
{
|
|
16874
16875
|
size: "sm",
|
|
16875
16876
|
variant: "outline",
|
|
16876
|
-
onClick: () => void copyText(
|
|
16877
|
+
onClick: () => void copyText(chunkPXVSZRCA_cjs.bookingLink(p), "Booking link"),
|
|
16877
16878
|
children: "Copy link"
|
|
16878
16879
|
}
|
|
16879
16880
|
),
|
|
16880
|
-
/* @__PURE__ */ jsxRuntime.jsx(ui.Button, { size: "sm", variant: "ghost", asChild: true, "aria-label": `Open ${p.title}`, children: /* @__PURE__ */ jsxRuntime.jsx("a", { href:
|
|
16881
|
+
/* @__PURE__ */ jsxRuntime.jsx(ui.Button, { size: "sm", variant: "ghost", asChild: true, "aria-label": `Open ${p.title}`, children: /* @__PURE__ */ jsxRuntime.jsx("a", { href: chunkPXVSZRCA_cjs.bookingLink(p), target: "_blank", rel: "noreferrer", children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ExternalLink, { className: "size-4" }) }) }),
|
|
16881
16882
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
16882
16883
|
ui.Button,
|
|
16883
16884
|
{
|
|
@@ -16896,7 +16897,7 @@ function BookingPagesPanel({ defaultTimeZone, className }) {
|
|
|
16896
16897
|
variant: "destructive",
|
|
16897
16898
|
disabled: remove.isPending,
|
|
16898
16899
|
onClick: () => remove.mutate(p.slug, {
|
|
16899
|
-
onError: (err) => notify17(`Could not delete: ${
|
|
16900
|
+
onError: (err) => notify17(`Could not delete: ${chunkPXVSZRCA_cjs.describeCalendarError(err)}`, "error"),
|
|
16900
16901
|
onSettled: () => setConfirmDelete(null)
|
|
16901
16902
|
}),
|
|
16902
16903
|
children: "Delete"
|
|
@@ -16959,7 +16960,7 @@ function CreateRoomForm({ zone, onDone }) {
|
|
|
16959
16960
|
notify17(`Created ${room.name} (${room.email})`, "success");
|
|
16960
16961
|
onDone();
|
|
16961
16962
|
},
|
|
16962
|
-
onError: (err) => setError(
|
|
16963
|
+
onError: (err) => setError(chunkPXVSZRCA_cjs.describeCalendarError(err, "Could not create"))
|
|
16963
16964
|
}
|
|
16964
16965
|
);
|
|
16965
16966
|
},
|
|
@@ -17072,7 +17073,7 @@ function RoomRow({ room, zone, checked }) {
|
|
|
17072
17073
|
),
|
|
17073
17074
|
checked && !!room.busy?.length && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-1 text-xs text-muted-foreground", children: [
|
|
17074
17075
|
"Busy ",
|
|
17075
|
-
(room.busy ?? []).map((b) =>
|
|
17076
|
+
(room.busy ?? []).map((b) => chunkPXVSZRCA_cjs.formatBusy(b.start, b.end, zone)).join(", ")
|
|
17076
17077
|
] })
|
|
17077
17078
|
] }),
|
|
17078
17079
|
checked && room.free !== null && room.free !== void 0 && /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -17097,7 +17098,7 @@ function RoomsDirectoryPanel({
|
|
|
17097
17098
|
}) {
|
|
17098
17099
|
const { data: settings } = react.useCalendarSettings(!timeZone);
|
|
17099
17100
|
const zone = chunkBIXHB4LV_cjs.safeZone(timeZone || settings?.time_zone, chunkBIXHB4LV_cjs.detectTimeZone());
|
|
17100
|
-
const [initial] = React7.useState(() =>
|
|
17101
|
+
const [initial] = React7.useState(() => chunkPXVSZRCA_cjs.defaultRoomWindow(zone));
|
|
17101
17102
|
const [minCapacity, setMinCapacity] = React7.useState("");
|
|
17102
17103
|
const [feature, setFeature] = React7.useState("");
|
|
17103
17104
|
const [building, setBuilding] = React7.useState("");
|
|
@@ -17228,7 +17229,7 @@ function RoomsDirectoryPanel({
|
|
|
17228
17229
|
windowError && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-xs text-destructive", children: windowError })
|
|
17229
17230
|
] })
|
|
17230
17231
|
] }),
|
|
17231
|
-
error ? /* @__PURE__ */ jsxRuntime.jsx("p", { role: "alert", className: "text-sm text-destructive", children:
|
|
17232
|
+
error ? /* @__PURE__ */ jsxRuntime.jsx("p", { role: "alert", className: "text-sm text-destructive", children: chunkPXVSZRCA_cjs.describeCalendarError(error, "Could not load rooms") }) : sorted.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "rounded-lg border border-dashed border-border p-4 text-sm text-muted-foreground", children: isFetching ? "Loading rooms\u2026" : "No rooms match." }) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
17232
17233
|
"ul",
|
|
17233
17234
|
{
|
|
17234
17235
|
className: "grid divide-y divide-border rounded-lg border border-border",
|
|
@@ -17253,11 +17254,11 @@ function CalendarSettingsDialog({
|
|
|
17253
17254
|
}) {
|
|
17254
17255
|
const { notify: notify17 } = chunk6TJQTDQI_cjs.useBlocksEnvironment();
|
|
17255
17256
|
const save = react.useSaveCalendarSettings();
|
|
17256
|
-
const [value, setValue] = React7.useState(() =>
|
|
17257
|
+
const [value, setValue] = React7.useState(() => chunkPXVSZRCA_cjs.toSettingsValue(settings));
|
|
17257
17258
|
const [tab, setTab] = React7.useState(initialTab);
|
|
17258
17259
|
React7.useEffect(() => {
|
|
17259
17260
|
if (open) {
|
|
17260
|
-
setValue(
|
|
17261
|
+
setValue(chunkPXVSZRCA_cjs.toSettingsValue(settings));
|
|
17261
17262
|
setTab(initialTab);
|
|
17262
17263
|
save.reset();
|
|
17263
17264
|
}
|
|
@@ -17291,13 +17292,13 @@ function CalendarSettingsDialog({
|
|
|
17291
17292
|
}
|
|
17292
17293
|
),
|
|
17293
17294
|
/* @__PURE__ */ jsxRuntime.jsx(ui.TabsContent, { value: "general", className: "pt-3", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
17294
|
-
|
|
17295
|
+
chunkPXVSZRCA_cjs.CalendarSettingsForm,
|
|
17295
17296
|
{
|
|
17296
17297
|
value,
|
|
17297
17298
|
onChange: setValue,
|
|
17298
17299
|
calendars: calendars.filter((c) => c.canWrite),
|
|
17299
17300
|
saving: save.isPending,
|
|
17300
|
-
error: save.error ?
|
|
17301
|
+
error: save.error ? chunkPXVSZRCA_cjs.describeCalendarError(save.error) : null,
|
|
17301
17302
|
onCancel: onClose,
|
|
17302
17303
|
onSave: () => save.mutate({ ...settings, ...value }, {
|
|
17303
17304
|
onSuccess: () => {
|
|
@@ -17326,10 +17327,10 @@ function EventScheduling({
|
|
|
17326
17327
|
const { notify: notify17 } = chunk6TJQTDQI_cjs.useBlocksEnvironment();
|
|
17327
17328
|
const arbi = react.useArbi();
|
|
17328
17329
|
const me = arbi.isLoggedIn ? arbi.user.identity()?.email ?? null : null;
|
|
17329
|
-
const allDay =
|
|
17330
|
+
const allDay = chunkPXVSZRCA_cjs.isAllDayDraft(draft);
|
|
17330
17331
|
const range = React7.useMemo(() => {
|
|
17331
17332
|
try {
|
|
17332
|
-
const { startMs, endMs } =
|
|
17333
|
+
const { startMs, endMs } = chunkPXVSZRCA_cjs.draftRangeUtc(draft, timeZone);
|
|
17333
17334
|
if (!Number.isFinite(startMs) || !Number.isFinite(endMs) || endMs <= startMs) return null;
|
|
17334
17335
|
return { start: new Date(startMs).toISOString(), end: new Date(endMs).toISOString() };
|
|
17335
17336
|
} catch {
|
|
@@ -17361,22 +17362,10 @@ function EventScheduling({
|
|
|
17361
17362
|
} : null;
|
|
17362
17363
|
const freeBusy = react.useFreeBusy(open ? ids : [], fbWindow?.start ?? null, fbWindow?.end ?? null);
|
|
17363
17364
|
const rows = React7.useMemo(
|
|
17364
|
-
() => date && freeBusy.data ?
|
|
17365
|
+
() => date && freeBusy.data ? chunkPXVSZRCA_cjs.freeBusyToRows(freeBusy.data, date, labelOf, roomEmails) : [],
|
|
17365
17366
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
17366
17367
|
[freeBusy.data, date, roomEmails, attendees, me]
|
|
17367
17368
|
);
|
|
17368
|
-
const [filters, setFilters] = React7.useState({
|
|
17369
|
-
minCapacity: null,
|
|
17370
|
-
feature: ""
|
|
17371
|
-
});
|
|
17372
|
-
const rooms = react.useRooms(
|
|
17373
|
-
open && range ? {
|
|
17374
|
-
start: range.start,
|
|
17375
|
-
end: range.end,
|
|
17376
|
-
min_capacity: filters.minCapacity ?? void 0,
|
|
17377
|
-
feature: filters.feature.trim() ? [filters.feature.trim()] : void 0
|
|
17378
|
-
} : null
|
|
17379
|
-
);
|
|
17380
17369
|
const findTime = react.useFindTime();
|
|
17381
17370
|
const [suggestions, setSuggestions] = React7.useState(null);
|
|
17382
17371
|
const duration = range ? Math.round((Date.parse(range.end) - Date.parse(range.start)) / 6e4) : 30;
|
|
@@ -17392,81 +17381,51 @@ function EventScheduling({
|
|
|
17392
17381
|
"data-testid": "calendar-open-scheduling",
|
|
17393
17382
|
children: [
|
|
17394
17383
|
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.CalendarSearch, { className: "mr-1 size-4" }),
|
|
17395
|
-
" Scheduling assistant
|
|
17384
|
+
" Scheduling assistant"
|
|
17396
17385
|
]
|
|
17397
17386
|
}
|
|
17398
17387
|
);
|
|
17399
|
-
return /* @__PURE__ */ jsxRuntime.
|
|
17388
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
17400
17389
|
"div",
|
|
17401
17390
|
{
|
|
17402
17391
|
className: "space-y-4 rounded-md border border-border p-3",
|
|
17403
17392
|
"data-testid": "calendar-scheduling-section",
|
|
17404
|
-
children:
|
|
17405
|
-
|
|
17406
|
-
|
|
17407
|
-
|
|
17408
|
-
|
|
17409
|
-
|
|
17410
|
-
|
|
17411
|
-
|
|
17412
|
-
|
|
17413
|
-
|
|
17414
|
-
|
|
17415
|
-
|
|
17416
|
-
|
|
17417
|
-
|
|
17418
|
-
|
|
17419
|
-
|
|
17420
|
-
|
|
17421
|
-
|
|
17422
|
-
|
|
17423
|
-
|
|
17424
|
-
|
|
17425
|
-
|
|
17426
|
-
|
|
17427
|
-
|
|
17428
|
-
|
|
17429
|
-
|
|
17430
|
-
|
|
17431
|
-
|
|
17432
|
-
onError: (err) => notify17(`Could not find times: ${err.message}`, "error")
|
|
17433
|
-
}
|
|
17434
|
-
),
|
|
17435
|
-
onPickSuggestion: (s) => {
|
|
17436
|
-
onChange(chunkLLYZGH3L_cjs.applySuggestion(draft, s, timeZone));
|
|
17437
|
-
setDayOverride(null);
|
|
17393
|
+
children: date && /* @__PURE__ */ jsxRuntime.jsx(
|
|
17394
|
+
chunkPXVSZRCA_cjs.SchedulingAssistant,
|
|
17395
|
+
{
|
|
17396
|
+
date,
|
|
17397
|
+
timeZone,
|
|
17398
|
+
rows,
|
|
17399
|
+
selection: range ? { startUtc: range.start, endUtc: range.end } : null,
|
|
17400
|
+
dayStartHour: Math.max(0, Math.min(workingStartHour, 8) - 1),
|
|
17401
|
+
dayEndHour: 21,
|
|
17402
|
+
loading: freeBusy.isFetching,
|
|
17403
|
+
suggestions,
|
|
17404
|
+
finding: findTime.isPending,
|
|
17405
|
+
onDateChange: setDayOverride,
|
|
17406
|
+
onFindTime: () => dayStart && findTime.mutate(
|
|
17407
|
+
{
|
|
17408
|
+
attendees: ids,
|
|
17409
|
+
duration_minutes: Math.max(5, Math.min(duration, 24 * 60)),
|
|
17410
|
+
start: new Date(
|
|
17411
|
+
Math.max(Date.now(), Date.parse(dayStart) - 864e5)
|
|
17412
|
+
).toISOString(),
|
|
17413
|
+
end: new Date(Date.parse(dayStart) + 7 * 864e5).toISOString(),
|
|
17414
|
+
working_hours_only: true,
|
|
17415
|
+
time_zone: timeZone,
|
|
17416
|
+
limit: 8
|
|
17417
|
+
},
|
|
17418
|
+
{
|
|
17419
|
+
onSuccess: (s) => setSuggestions(chunkPXVSZRCA_cjs.toSuggestionViews(s)),
|
|
17420
|
+
onError: (err) => notify17(`Could not find times: ${err.message}`, "error")
|
|
17438
17421
|
}
|
|
17422
|
+
),
|
|
17423
|
+
onPickSuggestion: (s) => {
|
|
17424
|
+
onChange(chunkPXVSZRCA_cjs.applySuggestion(draft, s, timeZone));
|
|
17425
|
+
setDayOverride(null);
|
|
17439
17426
|
}
|
|
17440
|
-
|
|
17441
|
-
|
|
17442
|
-
chunkLLYZGH3L_cjs.RoomFinder,
|
|
17443
|
-
{
|
|
17444
|
-
rooms: (rooms.data ?? []).map((r) => ({
|
|
17445
|
-
id: r.id,
|
|
17446
|
-
name: r.name,
|
|
17447
|
-
email: r.email,
|
|
17448
|
-
capacity: r.capacity,
|
|
17449
|
-
building: r.building,
|
|
17450
|
-
floor: r.floor,
|
|
17451
|
-
features: r.features,
|
|
17452
|
-
free: r.free
|
|
17453
|
-
})),
|
|
17454
|
-
loading: rooms.isFetching,
|
|
17455
|
-
minCapacity: filters.minCapacity,
|
|
17456
|
-
feature: filters.feature,
|
|
17457
|
-
onFiltersChange: setFilters,
|
|
17458
|
-
addedEmails: attendees.map((a) => a.email ?? "").filter(Boolean),
|
|
17459
|
-
onAdd: (room) => onChange({
|
|
17460
|
-
...draft,
|
|
17461
|
-
location: draft.location || room.name,
|
|
17462
|
-
attendees: [
|
|
17463
|
-
...attendees,
|
|
17464
|
-
{ email: room.email, name: room.name, kind: "room", role: "non_participant" }
|
|
17465
|
-
]
|
|
17466
|
-
})
|
|
17467
|
-
}
|
|
17468
|
-
)
|
|
17469
|
-
]
|
|
17427
|
+
}
|
|
17428
|
+
)
|
|
17470
17429
|
}
|
|
17471
17430
|
);
|
|
17472
17431
|
}
|
|
@@ -17485,6 +17444,43 @@ function EventEditorDialog({
|
|
|
17485
17444
|
}) {
|
|
17486
17445
|
const [attendeeQuery, setAttendeeQuery] = React7.useState("");
|
|
17487
17446
|
const people = react.useSearchContacts(editor ? attendeeQuery : "");
|
|
17447
|
+
const { workspaceId, live } = chunk3LDVSHRD_cjs.useConnectedWorkspace();
|
|
17448
|
+
const { data: documents } = chunkQGSVHWXR_cjs.useConnectedDocuments();
|
|
17449
|
+
const { data: workspaces = [] } = react.useWorkspaces({ enabled: live });
|
|
17450
|
+
const uploadFiles = react.useUploadFiles();
|
|
17451
|
+
const { notify: notify17, runtimeConfig } = chunk6TJQTDQI_cjs.useBlocksEnvironment();
|
|
17452
|
+
const attachmentDocuments = documents.map((document2) => ({
|
|
17453
|
+
doc_id: document2.external_id,
|
|
17454
|
+
title: chunkNG6AGVZ4_cjs.toWorkflowFieldDocument(document2).title,
|
|
17455
|
+
url: chunkUUMUCWFR_cjs.buildDeepLinkUrl(
|
|
17456
|
+
{ workspaceId: workspaceId ?? void 0, documentId: document2.external_id },
|
|
17457
|
+
runtimeConfig.deploymentDomain
|
|
17458
|
+
)
|
|
17459
|
+
}));
|
|
17460
|
+
const attachmentWorkspaces = workspaces.filter((workspace) => workspace.is_member).map((workspace) => ({ id: workspace.external_id, name: workspace.name }));
|
|
17461
|
+
if (workspaceId && !attachmentWorkspaces.some((workspace) => workspace.id === workspaceId))
|
|
17462
|
+
attachmentWorkspaces.unshift({ id: workspaceId, name: "Current workspace" });
|
|
17463
|
+
const uploadAttachments = async (files, targetWorkspaceId) => {
|
|
17464
|
+
const { docIds, skipped } = await uploadFiles({
|
|
17465
|
+
files,
|
|
17466
|
+
workspaceExtId: targetWorkspaceId,
|
|
17467
|
+
shared: true,
|
|
17468
|
+
generateTagIds: []
|
|
17469
|
+
});
|
|
17470
|
+
if (skipped.length) {
|
|
17471
|
+
notify17(`Could not attach ${skipped.map((item) => item.file_name).join(", ")}`, "warning");
|
|
17472
|
+
}
|
|
17473
|
+
const skippedNames = new Set(skipped.map((item) => item.file_name));
|
|
17474
|
+
return files.filter((file) => !skippedNames.has(file.name)).slice(0, docIds.length).map((file, index) => ({
|
|
17475
|
+
doc_id: docIds[index],
|
|
17476
|
+
title: file.name,
|
|
17477
|
+
mime_type: file.type || null,
|
|
17478
|
+
url: chunkUUMUCWFR_cjs.buildDeepLinkUrl(
|
|
17479
|
+
{ workspaceId: targetWorkspaceId, documentId: docIds[index] },
|
|
17480
|
+
runtimeConfig.deploymentDomain
|
|
17481
|
+
)
|
|
17482
|
+
}));
|
|
17483
|
+
};
|
|
17488
17484
|
const setDraft = (draft) => onChange((e) => e ? { ...e, draft, error: null } : e);
|
|
17489
17485
|
return /* @__PURE__ */ jsxRuntime.jsx(ui.Dialog, { open: !!editor, onOpenChange: (open) => !open && onChange(() => null), children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
17490
17486
|
ui.DialogContent,
|
|
@@ -17508,7 +17504,7 @@ function EventEditorDialog({
|
|
|
17508
17504
|
"Add an ARBI call (the link is created when you save)"
|
|
17509
17505
|
] }),
|
|
17510
17506
|
editor && /* @__PURE__ */ jsxRuntime.jsx(
|
|
17511
|
-
|
|
17507
|
+
chunkPXVSZRCA_cjs.EventEditor,
|
|
17512
17508
|
{
|
|
17513
17509
|
value: editor.draft,
|
|
17514
17510
|
onChange: setDraft,
|
|
@@ -17539,6 +17535,10 @@ function EventEditorDialog({
|
|
|
17539
17535
|
onChange: setDraft
|
|
17540
17536
|
}
|
|
17541
17537
|
),
|
|
17538
|
+
attachmentDocuments,
|
|
17539
|
+
attachmentWorkspaces,
|
|
17540
|
+
currentWorkspaceId: workspaceId,
|
|
17541
|
+
onUploadAttachments: uploadAttachments,
|
|
17542
17542
|
saving,
|
|
17543
17543
|
error: editor.error
|
|
17544
17544
|
}
|
|
@@ -17549,7 +17549,7 @@ function EventEditorDialog({
|
|
|
17549
17549
|
}
|
|
17550
17550
|
function when(inv, zone) {
|
|
17551
17551
|
if (!inv.start_utc || !inv.end_utc) return "";
|
|
17552
|
-
return
|
|
17552
|
+
return chunkPXVSZRCA_cjs.formatEventWhen(
|
|
17553
17553
|
{ all_day: false, start_utc: inv.start_utc, end_utc: inv.end_utc, start: {}, end: {} },
|
|
17554
17554
|
zone
|
|
17555
17555
|
);
|
|
@@ -17712,7 +17712,7 @@ function InvitationsPanel({ timeZone, onOpenEvent }) {
|
|
|
17712
17712
|
}
|
|
17713
17713
|
),
|
|
17714
17714
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
17715
|
-
|
|
17715
|
+
chunkPXVSZRCA_cjs.ProposeTimeDialog,
|
|
17716
17716
|
{
|
|
17717
17717
|
open: !!proposeFor,
|
|
17718
17718
|
startUtc: proposeFor?.start_utc ?? null,
|
|
@@ -17791,7 +17791,7 @@ function PublishCalendarDialog({
|
|
|
17791
17791
|
}
|
|
17792
17792
|
)
|
|
17793
17793
|
] }),
|
|
17794
|
-
publish.error && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-destructive", role: "alert", children:
|
|
17794
|
+
publish.error && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-destructive", role: "alert", children: chunkPXVSZRCA_cjs.describeCalendarError(publish.error, "Could not publish the calendar") }),
|
|
17795
17795
|
/* @__PURE__ */ jsxRuntime.jsxs(ui.DialogFooter, { children: [
|
|
17796
17796
|
/* @__PURE__ */ jsxRuntime.jsx(ui.Button, { type: "button", variant: "ghost", onClick: onClose, children: "Cancel" }),
|
|
17797
17797
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -17957,7 +17957,7 @@ function ShareCalendarDialog({
|
|
|
17957
17957
|
|
|
17958
17958
|
// src/connection/calendar/types.ts
|
|
17959
17959
|
function openMeetingLink(url) {
|
|
17960
|
-
if (/^https
|
|
17960
|
+
if (/^(https?:\/\/|tel:)/i.test(url)) window.open(url, "_blank", "noopener,noreferrer");
|
|
17961
17961
|
}
|
|
17962
17962
|
function resolveAttendeeUsers(attendees, known, me) {
|
|
17963
17963
|
const byId = new Map(known.map((u) => [u.external_id, u]));
|
|
@@ -17967,7 +17967,7 @@ function resolveAttendeeUsers(attendees, known, me) {
|
|
|
17967
17967
|
if (a.kind === "room" || a.kind === "resource") continue;
|
|
17968
17968
|
const u = a.user_id && byId.get(a.user_id) || a.email && byEmail.get(a.email.toLowerCase());
|
|
17969
17969
|
if (!u || u.is_agent || !u.encryption_public_key || u.external_id === me) continue;
|
|
17970
|
-
out.set(
|
|
17970
|
+
out.set(chunkPXVSZRCA_cjs.attendeeKey(a), {
|
|
17971
17971
|
external_id: u.external_id,
|
|
17972
17972
|
encryption_public_key: u.encryption_public_key
|
|
17973
17973
|
});
|
|
@@ -17993,7 +17993,7 @@ async function resolveAttendeeUsersRemote(arbi, attendees, known, me) {
|
|
|
17993
17993
|
try {
|
|
17994
17994
|
const found = await arbi.calendar.peopleKeys({ emails, user_ids: userIds });
|
|
17995
17995
|
const extra = resolveAttendeeUsers(
|
|
17996
|
-
people.filter((a) => !local.has(
|
|
17996
|
+
people.filter((a) => !local.has(chunkPXVSZRCA_cjs.attendeeKey(a))),
|
|
17997
17997
|
found.map((f) => ({
|
|
17998
17998
|
external_id: f.user_id,
|
|
17999
17999
|
email: f.email,
|
|
@@ -18070,7 +18070,7 @@ async function loadEventWebinar(arbi, url, attendees) {
|
|
|
18070
18070
|
const a = attendees.find(
|
|
18071
18071
|
(x) => x.user_id === inv.user_ext_id || !!x.email && x.email.toLowerCase() === inv.email?.toLowerCase()
|
|
18072
18072
|
);
|
|
18073
|
-
if (a) roles[
|
|
18073
|
+
if (a) roles[chunkPXVSZRCA_cjs.attendeeKey(a)] = inv.role ?? "attendee";
|
|
18074
18074
|
}
|
|
18075
18075
|
return roles;
|
|
18076
18076
|
}
|
|
@@ -18102,7 +18102,7 @@ async function joinEventMeeting(arbi, url) {
|
|
|
18102
18102
|
});
|
|
18103
18103
|
return;
|
|
18104
18104
|
}
|
|
18105
|
-
if (/^https
|
|
18105
|
+
if (/^(https?:\/\/|tel:)/i.test(url)) window.open(url, "_blank", "noopener,noreferrer");
|
|
18106
18106
|
}
|
|
18107
18107
|
function ConnectedUpcomingEvents({
|
|
18108
18108
|
timeZone,
|
|
@@ -18128,7 +18128,7 @@ function ConnectedUpcomingEvents({
|
|
|
18128
18128
|
() => new Set(calendars.filter((c) => c.hidden).map((c) => c.id)),
|
|
18129
18129
|
[calendars]
|
|
18130
18130
|
);
|
|
18131
|
-
const list =
|
|
18131
|
+
const list = chunkPXVSZRCA_cjs.upcomingOf(events, Date.now(), { showDeclined, hidden }).slice(0, limit);
|
|
18132
18132
|
let lastDay = "";
|
|
18133
18133
|
return /* @__PURE__ */ jsxRuntime.jsxs("section", { className: ui.cn("space-y-1 text-sm", className), "data-testid": "calendar-upcoming", children: [
|
|
18134
18134
|
/* @__PURE__ */ jsxRuntime.jsx("h4", { className: "px-1 text-xs font-semibold uppercase tracking-wider text-muted-foreground", children: "Upcoming" }),
|
|
@@ -18167,20 +18167,20 @@ function ConnectedUpcomingEvents({
|
|
|
18167
18167
|
]
|
|
18168
18168
|
}
|
|
18169
18169
|
),
|
|
18170
|
-
|
|
18170
|
+
chunkPXVSZRCA_cjs.conferenceUrl(e) && /* @__PURE__ */ jsxRuntime.jsxs(
|
|
18171
18171
|
ui.Button,
|
|
18172
18172
|
{
|
|
18173
18173
|
type: "button",
|
|
18174
18174
|
size: "sm",
|
|
18175
|
-
variant:
|
|
18175
|
+
variant: chunkPXVSZRCA_cjs.canJoinEvent(e) ? "default" : "ghost",
|
|
18176
18176
|
className: "h-6 px-2 text-xs",
|
|
18177
|
-
onClick: () => onJoin ? onJoin(e) : void joinEventMeeting(arbi,
|
|
18177
|
+
onClick: () => onJoin ? onJoin(e) : void joinEventMeeting(arbi, chunkPXVSZRCA_cjs.conferenceUrl(e)),
|
|
18178
18178
|
"aria-label": `Join ${e.title}`,
|
|
18179
18179
|
"data-testid": "calendar-upcoming-join",
|
|
18180
18180
|
children: [
|
|
18181
18181
|
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.Video, { className: "mr-1 size-3" }),
|
|
18182
18182
|
" ",
|
|
18183
|
-
|
|
18183
|
+
chunkPXVSZRCA_cjs.isWebinarConference(e.conference) ? "Join webinar" : "Join"
|
|
18184
18184
|
]
|
|
18185
18185
|
}
|
|
18186
18186
|
)
|
|
@@ -18207,7 +18207,7 @@ function useWebinarAttendee(draft, calls) {
|
|
|
18207
18207
|
}, [pending, attendees, calls]);
|
|
18208
18208
|
const roles = conference?.url ? conference.roles : null;
|
|
18209
18209
|
return React7.useCallback(
|
|
18210
|
-
(a) => roles ?
|
|
18210
|
+
(a) => roles ? chunkPXVSZRCA_cjs.attendeeKey(a) in roles : arbiUsers.has(chunkPXVSZRCA_cjs.attendeeKey(a)),
|
|
18211
18211
|
[roles, arbiUsers]
|
|
18212
18212
|
);
|
|
18213
18213
|
}
|
|
@@ -18295,7 +18295,7 @@ var isPhoneNow = () => typeof window !== "undefined" && !!window.matchMedia?.(PH
|
|
|
18295
18295
|
function useIsPhone2() {
|
|
18296
18296
|
return React7.useSyncExternalStore(subscribePhone, isPhoneNow, () => false);
|
|
18297
18297
|
}
|
|
18298
|
-
var errorText3 = (err) =>
|
|
18298
|
+
var errorText3 = (err) => chunkPXVSZRCA_cjs.describeCalendarError(err);
|
|
18299
18299
|
var PRINT_VIEW = {
|
|
18300
18300
|
day: "day",
|
|
18301
18301
|
week: "week",
|
|
@@ -18340,19 +18340,19 @@ function ConnectedCalendar({
|
|
|
18340
18340
|
const kindOf = /* @__PURE__ */ new Map();
|
|
18341
18341
|
for (const acc of accounts ?? []) for (const id of acc.calendars ?? []) kindOf.set(id, acc.kind);
|
|
18342
18342
|
return calendars.map((c) => {
|
|
18343
|
-
const item =
|
|
18343
|
+
const item = chunkPXVSZRCA_cjs.calendarToListItem(c);
|
|
18344
18344
|
return item.provider ? item : { ...item, provider: kindOf.get(c.id) ?? null };
|
|
18345
18345
|
});
|
|
18346
18346
|
}, [calendars, accounts]);
|
|
18347
18347
|
const gridEvents = React7.useMemo(() => {
|
|
18348
|
-
const out =
|
|
18348
|
+
const out = chunkPXVSZRCA_cjs.buildGridEvents(events, calendars, overlays, {
|
|
18349
18349
|
zone,
|
|
18350
18350
|
showDeclined: !!settings.show_declined
|
|
18351
18351
|
});
|
|
18352
18352
|
const pending = [];
|
|
18353
18353
|
for (const item of outbox ?? []) {
|
|
18354
18354
|
if (item.op.kind !== "create" || item.state === "sent") continue;
|
|
18355
|
-
const g =
|
|
18355
|
+
const g = chunkPXVSZRCA_cjs.pendingCreateToGrid(item.requestId, item.op.body, zone);
|
|
18356
18356
|
if (g) pending.push(g);
|
|
18357
18357
|
}
|
|
18358
18358
|
return pending.length ? [...out, ...pending] : out;
|
|
@@ -18406,13 +18406,13 @@ function ConnectedCalendar({
|
|
|
18406
18406
|
};
|
|
18407
18407
|
const saveWebinarRoles = (original, draft) => {
|
|
18408
18408
|
const c = draft.conference;
|
|
18409
|
-
if (!calls || !
|
|
18409
|
+
if (!calls || !chunkPXVSZRCA_cjs.isWebinarConference(c) || !c?.url || !original.conference?.url) return;
|
|
18410
18410
|
if (JSON.stringify(original.conference.roles ?? {}) === JSON.stringify(c.roles ?? {})) return;
|
|
18411
18411
|
calls.saveWebinarRoles(c.url, c.roles, draft.attendees ?? []).catch((err) => notifyError("Could not update the webinar roles", err));
|
|
18412
18412
|
};
|
|
18413
18413
|
const isWebinarAttendee = useWebinarAttendee(editor?.draft, calls);
|
|
18414
18414
|
const joinMeeting = (event) => {
|
|
18415
|
-
const url =
|
|
18415
|
+
const url = chunkPXVSZRCA_cjs.conferenceUrl(event);
|
|
18416
18416
|
if (!url) return;
|
|
18417
18417
|
if (calls) calls.join(url);
|
|
18418
18418
|
else openMeetingLink(url);
|
|
@@ -18457,7 +18457,7 @@ function ConnectedCalendar({
|
|
|
18457
18457
|
);
|
|
18458
18458
|
const openCreate = React7.useCallback(
|
|
18459
18459
|
(slot) => {
|
|
18460
|
-
const draft =
|
|
18460
|
+
const draft = chunkPXVSZRCA_cjs.newEventDraft(settings, { slot, calendarId: defaultCalendarId });
|
|
18461
18461
|
setEditor({ mode: "create", original: draft, draft, error: null });
|
|
18462
18462
|
},
|
|
18463
18463
|
[settings, defaultCalendarId]
|
|
@@ -18465,7 +18465,7 @@ function ConnectedCalendar({
|
|
|
18465
18465
|
React7.useEffect(() => {
|
|
18466
18466
|
if (!pendingComposer) return;
|
|
18467
18467
|
setPendingComposer(null);
|
|
18468
|
-
const base =
|
|
18468
|
+
const base = chunkPXVSZRCA_cjs.newEventDraft(settings, { calendarId: defaultCalendarId });
|
|
18469
18469
|
const draft = {
|
|
18470
18470
|
...base,
|
|
18471
18471
|
title: pendingComposer.title ?? "",
|
|
@@ -18487,7 +18487,7 @@ function ConnectedCalendar({
|
|
|
18487
18487
|
});
|
|
18488
18488
|
}, [pendingComposer, setPendingComposer, settings, defaultCalendarId, callsEnabled]);
|
|
18489
18489
|
const openOverlay = (item) => {
|
|
18490
|
-
const link =
|
|
18490
|
+
const link = chunkPXVSZRCA_cjs.parseOverlayLink(item.link);
|
|
18491
18491
|
if (!link) return;
|
|
18492
18492
|
if (onOpenOverlay) onOpenOverlay(link);
|
|
18493
18493
|
else if (link.kind === "conversation") openConversation(link.id);
|
|
@@ -18502,7 +18502,7 @@ function ConnectedCalendar({
|
|
|
18502
18502
|
if (overlay) openOverlay(overlay);
|
|
18503
18503
|
};
|
|
18504
18504
|
const withScope = (event, action, run, cancel) => {
|
|
18505
|
-
if (!
|
|
18505
|
+
if (!chunkPXVSZRCA_cjs.needsScope(event)) {
|
|
18506
18506
|
run("all");
|
|
18507
18507
|
return;
|
|
18508
18508
|
}
|
|
@@ -18529,7 +18529,7 @@ function ConnectedCalendar({
|
|
|
18529
18529
|
event,
|
|
18530
18530
|
"edit",
|
|
18531
18531
|
(scope) => {
|
|
18532
|
-
const { target, body } =
|
|
18532
|
+
const { target, body } = chunkPXVSZRCA_cjs.buildTimeChangeRequest(event, change, scope, zone);
|
|
18533
18533
|
updateEvent.mutate(
|
|
18534
18534
|
{ target, body },
|
|
18535
18535
|
{
|
|
@@ -18553,8 +18553,8 @@ function ConnectedCalendar({
|
|
|
18553
18553
|
master = null;
|
|
18554
18554
|
}
|
|
18555
18555
|
}
|
|
18556
|
-
let draft =
|
|
18557
|
-
if (calls && draft.conference?.url &&
|
|
18556
|
+
let draft = chunkPXVSZRCA_cjs.eventToDraft(event, master);
|
|
18557
|
+
if (calls && draft.conference?.url && chunkPXVSZRCA_cjs.isWebinarConference(draft.conference)) {
|
|
18558
18558
|
try {
|
|
18559
18559
|
const roles = await calls.loadWebinarRoles(draft.conference.url, draft.attendees ?? []);
|
|
18560
18560
|
if (roles) draft = { ...draft, conference: { ...draft.conference, kind: "webinar", roles } };
|
|
@@ -18565,7 +18565,7 @@ function ConnectedCalendar({
|
|
|
18565
18565
|
setEditor({ mode: "edit", event, original: draft, draft, error: null });
|
|
18566
18566
|
};
|
|
18567
18567
|
const removeEvent = (event) => {
|
|
18568
|
-
const run = (scope) => deleteEvent.mutate(
|
|
18568
|
+
const run = (scope) => deleteEvent.mutate(chunkPXVSZRCA_cjs.buildDeleteTarget(event, scope), {
|
|
18569
18569
|
onSuccess: () => {
|
|
18570
18570
|
setSelected(null);
|
|
18571
18571
|
setEditor(null);
|
|
@@ -18573,7 +18573,7 @@ function ConnectedCalendar({
|
|
|
18573
18573
|
onError: (err) => notifyError("Could not delete the event", err)
|
|
18574
18574
|
});
|
|
18575
18575
|
const invitee = event.is_organizer === false && event.my_partstat != null;
|
|
18576
|
-
if (
|
|
18576
|
+
if (chunkPXVSZRCA_cjs.needsScope(event)) withScope(event, "delete", run);
|
|
18577
18577
|
else
|
|
18578
18578
|
void confirm({
|
|
18579
18579
|
message: invitee ? `Remove \u201C${event.title || "this event"}\u201D from your calendar? The organiser is told you declined.` : `Delete \u201C${event.title || "this event"}\u201D?`,
|
|
@@ -18582,9 +18582,9 @@ function ConnectedCalendar({
|
|
|
18582
18582
|
};
|
|
18583
18583
|
const saveEditor = () => {
|
|
18584
18584
|
if (!editor) return;
|
|
18585
|
-
const problem =
|
|
18585
|
+
const problem = chunkPXVSZRCA_cjs.validateDraft(editor.draft, zone);
|
|
18586
18586
|
if (problem) {
|
|
18587
|
-
setEditor({ ...editor, error:
|
|
18587
|
+
setEditor({ ...editor, error: chunkPXVSZRCA_cjs.CALENDAR_DEFAULT_LABELS[problem] });
|
|
18588
18588
|
return;
|
|
18589
18589
|
}
|
|
18590
18590
|
if (editor.mode === "create") {
|
|
@@ -18598,7 +18598,7 @@ function ConnectedCalendar({
|
|
|
18598
18598
|
);
|
|
18599
18599
|
return;
|
|
18600
18600
|
}
|
|
18601
|
-
createEvent.mutate(
|
|
18601
|
+
createEvent.mutate(chunkPXVSZRCA_cjs.buildCreateBody(draft), {
|
|
18602
18602
|
onSuccess: (event2) => {
|
|
18603
18603
|
shareCall(draft);
|
|
18604
18604
|
setEditor(null);
|
|
@@ -18623,7 +18623,7 @@ function ConnectedCalendar({
|
|
|
18623
18623
|
);
|
|
18624
18624
|
return;
|
|
18625
18625
|
}
|
|
18626
|
-
const { target, body, moveTo } =
|
|
18626
|
+
const { target, body, moveTo } = chunkPXVSZRCA_cjs.buildEditRequest(event, editor.original, draft, scope);
|
|
18627
18627
|
try {
|
|
18628
18628
|
let id = event.id;
|
|
18629
18629
|
let queued = false;
|
|
@@ -18743,7 +18743,7 @@ function ConnectedCalendar({
|
|
|
18743
18743
|
}
|
|
18744
18744
|
),
|
|
18745
18745
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
18746
|
-
|
|
18746
|
+
chunkPXVSZRCA_cjs.MiniMonth,
|
|
18747
18747
|
{
|
|
18748
18748
|
date,
|
|
18749
18749
|
weekStart: settings.week_start,
|
|
@@ -18754,7 +18754,7 @@ function ConnectedCalendar({
|
|
|
18754
18754
|
}
|
|
18755
18755
|
),
|
|
18756
18756
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
18757
|
-
|
|
18757
|
+
chunkPXVSZRCA_cjs.CalendarList,
|
|
18758
18758
|
{
|
|
18759
18759
|
calendars: listItems,
|
|
18760
18760
|
overlays: {
|
|
@@ -18815,7 +18815,7 @@ function ConnectedCalendar({
|
|
|
18815
18815
|
}
|
|
18816
18816
|
),
|
|
18817
18817
|
/* @__PURE__ */ jsxRuntime.jsx("main", { className: "flex min-h-0 min-w-0 flex-1 flex-col", "data-testid": "calendar-main", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
18818
|
-
|
|
18818
|
+
chunkPXVSZRCA_cjs.CalendarGrid,
|
|
18819
18819
|
{
|
|
18820
18820
|
events: gridEvents,
|
|
18821
18821
|
view,
|
|
@@ -18852,7 +18852,7 @@ function ConnectedCalendar({
|
|
|
18852
18852
|
"aria-label": "Print",
|
|
18853
18853
|
title: "Print",
|
|
18854
18854
|
"data-testid": "calendar-print-button",
|
|
18855
|
-
onClick: () =>
|
|
18855
|
+
onClick: () => chunkPXVSZRCA_cjs.printCalendar({
|
|
18856
18856
|
events: (events ?? []).filter(
|
|
18857
18857
|
(e) => !calendars.find((c) => c.id === e.calendar_id)?.hidden
|
|
18858
18858
|
),
|
|
@@ -18914,13 +18914,13 @@ function ConnectedCalendar({
|
|
|
18914
18914
|
/* @__PURE__ */ jsxRuntime.jsx(ui.DialogTitle, { className: "sr-only", children: selectedEvent?.title || "Event" }),
|
|
18915
18915
|
/* @__PURE__ */ jsxRuntime.jsx(ui.DialogDescription, { className: "sr-only", children: "Event details" }),
|
|
18916
18916
|
selectedEvent && /* @__PURE__ */ jsxRuntime.jsx(
|
|
18917
|
-
|
|
18917
|
+
chunkPXVSZRCA_cjs.EventDetails,
|
|
18918
18918
|
{
|
|
18919
18919
|
event: selectedEvent,
|
|
18920
18920
|
timeZone: zone,
|
|
18921
18921
|
calendarName: selectedCalendar?.name ?? null,
|
|
18922
18922
|
calendarColor: selectedCalendar?.color ?? null,
|
|
18923
|
-
canJoin:
|
|
18923
|
+
canJoin: chunkPXVSZRCA_cjs.canJoinEvent(selectedEvent),
|
|
18924
18924
|
onClose: () => setSelected(null),
|
|
18925
18925
|
onEdit: selectedEvent.can_edit && !selectedEvent.restricted ? () => void openEdit(selectedEvent) : void 0,
|
|
18926
18926
|
onDelete: selectedEvent.can_edit || selectedEvent.is_organizer === false && selectedEvent.my_partstat != null ? () => removeEvent(selectedEvent) : void 0,
|
|
@@ -18930,9 +18930,9 @@ function ConnectedCalendar({
|
|
|
18930
18930
|
setSelected(null);
|
|
18931
18931
|
joinMeeting(selectedEvent);
|
|
18932
18932
|
} : void 0,
|
|
18933
|
-
onOpenMeetingChat: calls && selectedEvent.conference?.type === "arbi" &&
|
|
18933
|
+
onOpenMeetingChat: calls && selectedEvent.conference?.type === "arbi" && chunkPXVSZRCA_cjs.conferenceUrl(selectedEvent) ? () => {
|
|
18934
18934
|
setSelected(null);
|
|
18935
|
-
calls.openChat(
|
|
18935
|
+
calls.openChat(chunkPXVSZRCA_cjs.conferenceUrl(selectedEvent));
|
|
18936
18936
|
} : void 0
|
|
18937
18937
|
}
|
|
18938
18938
|
)
|
|
@@ -18958,7 +18958,7 @@ function ConnectedCalendar({
|
|
|
18958
18958
|
}
|
|
18959
18959
|
),
|
|
18960
18960
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
18961
|
-
|
|
18961
|
+
chunkPXVSZRCA_cjs.ScopeDialog,
|
|
18962
18962
|
{
|
|
18963
18963
|
open: !!scopePrompt,
|
|
18964
18964
|
action: scopePrompt?.action ?? "edit",
|
|
@@ -18968,7 +18968,7 @@ function ConnectedCalendar({
|
|
|
18968
18968
|
}
|
|
18969
18969
|
),
|
|
18970
18970
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
18971
|
-
|
|
18971
|
+
chunkPXVSZRCA_cjs.CalendarFormDialog,
|
|
18972
18972
|
{
|
|
18973
18973
|
open: !!calendarForm,
|
|
18974
18974
|
mode: calendarForm?.mode ?? "create",
|
|
@@ -19019,7 +19019,7 @@ function ConnectedCalendar({
|
|
|
19019
19019
|
),
|
|
19020
19020
|
/* @__PURE__ */ jsxRuntime.jsx(HolidaysDialog, { open: addDialog === "holidays", onClose: () => setAddDialog(null) }),
|
|
19021
19021
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
19022
|
-
|
|
19022
|
+
chunkPXVSZRCA_cjs.ProposeTimeDialog,
|
|
19023
19023
|
{
|
|
19024
19024
|
open: !!proposeFor,
|
|
19025
19025
|
startUtc: proposeFor?.start_utc ?? null,
|
|
@@ -19066,11 +19066,11 @@ function ConnectedMailInviteCard({
|
|
|
19066
19066
|
onOpenEvent
|
|
19067
19067
|
}) {
|
|
19068
19068
|
const { notify: notify17 } = chunk6TJQTDQI_cjs.useBlocksEnvironment();
|
|
19069
|
-
const part = attachments.find(
|
|
19069
|
+
const part = attachments.find(chunkPXVSZRCA_cjs.isCalendarAttachment);
|
|
19070
19070
|
const { data: settings } = react.useCalendarSettings(!!part);
|
|
19071
19071
|
const zone = chunkBIXHB4LV_cjs.safeZone(settings?.time_zone, chunkBIXHB4LV_cjs.detectTimeZone());
|
|
19072
19072
|
const { data: ics } = react.useMailAttachmentText(accountId, messageId, part, { enabled: isOnline });
|
|
19073
|
-
const invite = ics ?
|
|
19073
|
+
const invite = ics ? chunkPXVSZRCA_cjs.parseIcsInvite(ics, zone) : null;
|
|
19074
19074
|
const lookup = react.useCalendarEventByUid(invite?.uid && invite.method !== "REPLY" ? invite.uid : null);
|
|
19075
19075
|
const respond = react.useRespondToEvent();
|
|
19076
19076
|
const [partstat, setPartstat] = React7.useState(null);
|
|
@@ -19078,7 +19078,7 @@ function ConnectedMailInviteCard({
|
|
|
19078
19078
|
React7.useEffect(() => setPartstat(event?.my_partstat ?? null), [event?.my_partstat]);
|
|
19079
19079
|
if (!part || !invite) return null;
|
|
19080
19080
|
const cancelled = invite.method === "CANCEL" || invite.status === "CANCELLED";
|
|
19081
|
-
const when2 = invite.startUtc && invite.endUtc ?
|
|
19081
|
+
const when2 = invite.startUtc && invite.endUtc ? chunkPXVSZRCA_cjs.formatEventWhen(
|
|
19082
19082
|
{
|
|
19083
19083
|
all_day: invite.allDay,
|
|
19084
19084
|
start_utc: invite.startUtc,
|
|
@@ -19222,7 +19222,7 @@ function CancelView({ slug, token }) {
|
|
|
19222
19222
|
react.cancelPublicBooking(apiBaseUrl, slug, token).then(() => setState("done")).catch((err) => {
|
|
19223
19223
|
setState("idle");
|
|
19224
19224
|
setError(
|
|
19225
|
-
err instanceof react.PublicBookingError && err.status === 404 ? "This booking was not found \u2014 it may already be cancelled." :
|
|
19225
|
+
err instanceof react.PublicBookingError && err.status === 404 ? "This booking was not found \u2014 it may already be cancelled." : chunkPXVSZRCA_cjs.publicBookingMessage(err)
|
|
19226
19226
|
);
|
|
19227
19227
|
});
|
|
19228
19228
|
},
|
|
@@ -19251,7 +19251,7 @@ function Confirmation({
|
|
|
19251
19251
|
] }),
|
|
19252
19252
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid gap-1 text-sm", children: [
|
|
19253
19253
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "font-medium", children: confirmation.title }),
|
|
19254
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-muted-foreground", "data-testid": "book-confirmed-when", children:
|
|
19254
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-muted-foreground", "data-testid": "book-confirmed-when", children: chunkPXVSZRCA_cjs.formatSlotRange(confirmation.start, confirmation.end, zone) })
|
|
19255
19255
|
] }),
|
|
19256
19256
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-muted-foreground", children: "A confirmation has been sent to your e-mail." }),
|
|
19257
19257
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -19313,7 +19313,7 @@ function ConnectedPublicBooking({ slug, cancelToken }) {
|
|
|
19313
19313
|
};
|
|
19314
19314
|
}, [apiBaseUrl, slug, duration, offset, reload, cancelToken]);
|
|
19315
19315
|
const chosenDuration = duration ?? page?.durations[0] ?? 30;
|
|
19316
|
-
const days = React7.useMemo(() =>
|
|
19316
|
+
const days = React7.useMemo(() => chunkPXVSZRCA_cjs.groupSlotsByDay(page?.slots ?? [], zone), [page?.slots, zone]);
|
|
19317
19317
|
const submit = React7.useCallback(async () => {
|
|
19318
19318
|
if (!picked) return;
|
|
19319
19319
|
setSubmitting(true);
|
|
@@ -19329,7 +19329,7 @@ function ConnectedPublicBooking({ slug, cancelToken }) {
|
|
|
19329
19329
|
})
|
|
19330
19330
|
);
|
|
19331
19331
|
} catch (err) {
|
|
19332
|
-
setSubmitError(
|
|
19332
|
+
setSubmitError(chunkPXVSZRCA_cjs.publicBookingMessage(err));
|
|
19333
19333
|
if (err instanceof react.PublicBookingError && err.status === 409) {
|
|
19334
19334
|
setPicked(null);
|
|
19335
19335
|
setReload((n) => n + 1);
|
|
@@ -19353,11 +19353,11 @@ function ConnectedPublicBooking({ slug, cancelToken }) {
|
|
|
19353
19353
|
}
|
|
19354
19354
|
) : /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid gap-3", "data-testid": "book-error", children: [
|
|
19355
19355
|
/* @__PURE__ */ jsxRuntime.jsx("h1", { className: "text-lg font-semibold", children: loadError instanceof react.PublicBookingError && loadError.status === 404 ? "Page not found" : "Could not load this page" }),
|
|
19356
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { role: "alert", className: "text-sm text-muted-foreground", children:
|
|
19356
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { role: "alert", className: "text-sm text-muted-foreground", children: chunkPXVSZRCA_cjs.publicBookingMessage(loadError) }),
|
|
19357
19357
|
!(loadError instanceof react.PublicBookingError && loadError.status === 404) && /* @__PURE__ */ jsxRuntime.jsx(ui.Button, { variant: "outline", onClick: () => setReload((n) => n + 1), children: "Try again" })
|
|
19358
19358
|
] }) });
|
|
19359
19359
|
}
|
|
19360
|
-
const pickedLabel = picked ?
|
|
19360
|
+
const pickedLabel = picked ? chunkPXVSZRCA_cjs.formatSlotRange(
|
|
19361
19361
|
picked,
|
|
19362
19362
|
new Date(new Date(picked).getTime() + chosenDuration * 6e4).toISOString(),
|
|
19363
19363
|
zone
|
|
@@ -19482,7 +19482,7 @@ function ConnectedPublicBooking({ slug, cancelToken }) {
|
|
|
19482
19482
|
onChange: (e) => setZone(e.target.value),
|
|
19483
19483
|
"aria-label": "Your time zone",
|
|
19484
19484
|
"data-testid": "book-zone",
|
|
19485
|
-
children:
|
|
19485
|
+
children: chunkPXVSZRCA_cjs.zoneOptions(zone).map((z) => /* @__PURE__ */ jsxRuntime.jsx("option", { value: z, children: z.replace(/_/g, " ") }, z))
|
|
19486
19486
|
}
|
|
19487
19487
|
)
|
|
19488
19488
|
] })
|
|
@@ -19491,7 +19491,7 @@ function ConnectedPublicBooking({ slug, cancelToken }) {
|
|
|
19491
19491
|
loading ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2 text-sm text-muted-foreground", children: [
|
|
19492
19492
|
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.Loader2, { className: "size-4 animate-spin" }),
|
|
19493
19493
|
" Finding free times\u2026"
|
|
19494
|
-
] }) : loadError ? /* @__PURE__ */ jsxRuntime.jsx("p", { role: "alert", className: "text-sm text-destructive", "data-testid": "book-error", children:
|
|
19494
|
+
] }) : loadError ? /* @__PURE__ */ jsxRuntime.jsx("p", { role: "alert", className: "text-sm text-destructive", "data-testid": "book-error", children: chunkPXVSZRCA_cjs.publicBookingMessage(loadError) }) : days.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-muted-foreground", "data-testid": "book-no-slots", children: "No free times in these two weeks." }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid gap-4", "data-testid": "book-days", children: days.map((day) => /* @__PURE__ */ jsxRuntime.jsxs("section", { className: "grid gap-2", "data-testid": `book-day-${day.date}`, children: [
|
|
19495
19495
|
/* @__PURE__ */ jsxRuntime.jsx("h2", { className: "text-sm font-medium", children: day.label }),
|
|
19496
19496
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-3 gap-2 sm:grid-cols-4 md:grid-cols-5", children: day.slots.map((s) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
19497
19497
|
ui.Button,
|
|
@@ -19651,7 +19651,7 @@ var COMPACT_BELOW = 132;
|
|
|
19651
19651
|
var NO_DOCUMENTS = [];
|
|
19652
19652
|
function useFilesWorkspace() {
|
|
19653
19653
|
const { workspaceId, userId, live } = chunk3LDVSHRD_cjs.useConnectedWorkspace();
|
|
19654
|
-
const { members, role } =
|
|
19654
|
+
const { members, role } = chunkNG6AGVZ4_cjs.useConnectedWorkspaceRole();
|
|
19655
19655
|
const { data: workspaces } = react.useWorkspaces({ enabled: live });
|
|
19656
19656
|
const workspaceName = workspaces?.find((w) => w.external_id === workspaceId)?.name;
|
|
19657
19657
|
return {
|
|
@@ -20940,9 +20940,9 @@ function ConnectedTagEntity({
|
|
|
20940
20940
|
onEditClick();
|
|
20941
20941
|
}
|
|
20942
20942
|
};
|
|
20943
|
-
const tooltipContent = showTooltip ? /* @__PURE__ */ jsxRuntime.jsxs(
|
|
20943
|
+
const tooltipContent = showTooltip ? /* @__PURE__ */ jsxRuntime.jsxs(chunkI7GQO43N_cjs.EntityTooltip, { children: [
|
|
20944
20944
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
20945
|
-
|
|
20945
|
+
chunkI7GQO43N_cjs.EntityTooltipHeader,
|
|
20946
20946
|
{
|
|
20947
20947
|
lead: /* @__PURE__ */ jsxRuntime.jsx(
|
|
20948
20948
|
"span",
|
|
@@ -25097,7 +25097,7 @@ function ConnectedFilesPage({
|
|
|
25097
25097
|
const deleteDocuments = react.useDeleteDocuments();
|
|
25098
25098
|
const isDocumentsPending = isLoading && documents.length === 0;
|
|
25099
25099
|
const { workspaceId, userId, live } = chunk3LDVSHRD_cjs.useConnectedWorkspace();
|
|
25100
|
-
const { role, members } =
|
|
25100
|
+
const { role, members } = chunkNG6AGVZ4_cjs.useConnectedWorkspaceRole();
|
|
25101
25101
|
const { data: workspaces } = react.useWorkspaces({ enabled: live });
|
|
25102
25102
|
const workspaceName = workspaces?.find((w) => w.external_id === workspaceId)?.name;
|
|
25103
25103
|
const isMember = role != null;
|
|
@@ -25394,7 +25394,7 @@ function ConnectedFilesPage({
|
|
|
25394
25394
|
},
|
|
25395
25395
|
className: "min-w-28 flex-1 sm:max-w-72",
|
|
25396
25396
|
filter: /* @__PURE__ */ jsxRuntime.jsx(
|
|
25397
|
-
|
|
25397
|
+
chunkAQPZ4QMV_cjs.TriStateFilterMenu,
|
|
25398
25398
|
{
|
|
25399
25399
|
testId: "documents-bar-filter-button",
|
|
25400
25400
|
open: filterMenuOpen,
|
|
@@ -25512,7 +25512,7 @@ function ConnectedFilesPage({
|
|
|
25512
25512
|
viewMode === "grid" ? (
|
|
25513
25513
|
// ‹ n / N › over the table's displayed rows; a step opens the document.
|
|
25514
25514
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
25515
|
-
|
|
25515
|
+
chunkI7GQO43N_cjs.GridRowNavigator,
|
|
25516
25516
|
{
|
|
25517
25517
|
gridApi,
|
|
25518
25518
|
selectedId: viewingDocumentId ?? selectedDocumentIds[0] ?? null,
|
|
@@ -27050,7 +27050,7 @@ function ConnectedConfigForm({ availableModels, ...rest }) {
|
|
|
27050
27050
|
({ value, onChange }) => /* @__PURE__ */ jsxRuntime.jsx(ConnectedModelSelector, { value, onValueChange: onChange, className: "w-full" }),
|
|
27051
27051
|
[]
|
|
27052
27052
|
);
|
|
27053
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
27053
|
+
return /* @__PURE__ */ jsxRuntime.jsx(chunkRPWWMOYP_cjs.ConfigForm, { ...rest, renderModelSelect: hasModels ? renderModelSelect : void 0 });
|
|
27054
27054
|
}
|
|
27055
27055
|
function ConnectedAgentConfigForm({ agentExtId, agentName, onSaved }) {
|
|
27056
27056
|
const { notify: notify17 } = chunk6TJQTDQI_cjs.useBlocksEnvironment();
|
|
@@ -27167,7 +27167,7 @@ function ConnectedAuthorizeAgent({ onClose, editAgent }) {
|
|
|
27167
27167
|
}, [name, selectedWorkspaces, role, createAgent, addWorkspaceUsers, arbi, notify17]);
|
|
27168
27168
|
if (editAgent) {
|
|
27169
27169
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
27170
|
-
|
|
27170
|
+
chunkRPWWMOYP_cjs.AgentEditView,
|
|
27171
27171
|
{
|
|
27172
27172
|
agentName: editAgent.name,
|
|
27173
27173
|
config: /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -27183,7 +27183,7 @@ function ConnectedAuthorizeAgent({ onClose, editAgent }) {
|
|
|
27183
27183
|
}
|
|
27184
27184
|
if (view === "main") {
|
|
27185
27185
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
27186
|
-
|
|
27186
|
+
chunkRPWWMOYP_cjs.AgentMainView,
|
|
27187
27187
|
{
|
|
27188
27188
|
onConnectExternal: () => setView("connect"),
|
|
27189
27189
|
config: mainAgent ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -27199,11 +27199,11 @@ function ConnectedAuthorizeAgent({ onClose, editAgent }) {
|
|
|
27199
27199
|
}
|
|
27200
27200
|
if (result) {
|
|
27201
27201
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
27202
|
-
|
|
27202
|
+
chunkRPWWMOYP_cjs.AgentCreatedView,
|
|
27203
27203
|
{
|
|
27204
27204
|
email: result.email,
|
|
27205
27205
|
signingKey: result.signingKey,
|
|
27206
|
-
instructions: /* @__PURE__ */ jsxRuntime.jsx(
|
|
27206
|
+
instructions: /* @__PURE__ */ jsxRuntime.jsx(chunkRPWWMOYP_cjs.AgentConnectInstructions, { email: result.email, signingKey: result.signingKey }),
|
|
27207
27207
|
config: /* @__PURE__ */ jsxRuntime.jsx(ConnectedAgentConfigForm, { agentExtId: result.extId, agentName: result.name }),
|
|
27208
27208
|
isConfigOpen: configOpen,
|
|
27209
27209
|
onToggleConfig: () => setConfigOpen((v) => !v),
|
|
@@ -27212,7 +27212,7 @@ function ConnectedAuthorizeAgent({ onClose, editAgent }) {
|
|
|
27212
27212
|
);
|
|
27213
27213
|
}
|
|
27214
27214
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
27215
|
-
|
|
27215
|
+
chunkRPWWMOYP_cjs.AgentCreateView,
|
|
27216
27216
|
{
|
|
27217
27217
|
name,
|
|
27218
27218
|
onNameChange: setName,
|
|
@@ -27994,7 +27994,7 @@ var ConversationEntity = React7.memo(function ConversationEntity2({
|
|
|
27994
27994
|
);
|
|
27995
27995
|
const icon2 = /* @__PURE__ */ jsxRuntime.jsx(ui.ThreadVisibilityIcon, { shared: isShared, className: `${iconSizeClass} shrink-0` });
|
|
27996
27996
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
27997
|
-
|
|
27997
|
+
chunkRPWWMOYP_cjs.EntityChip,
|
|
27998
27998
|
{
|
|
27999
27999
|
variant,
|
|
28000
28000
|
icon: icon2,
|
|
@@ -28016,7 +28016,7 @@ function WorkflowRunStatusCell({ conversation }) {
|
|
|
28016
28016
|
});
|
|
28017
28017
|
const { data: members = [] } = react.useWorkspaceUsers();
|
|
28018
28018
|
const me = react.useArbiSession().user?.external_id;
|
|
28019
|
-
const steps =
|
|
28019
|
+
const steps = chunkRPWWMOYP_cjs.fromPlanSteps(conversation.plan?.steps ?? []);
|
|
28020
28020
|
const states = chunkDHOIO3B7_cjs.stepStatesFromActivity(activity.data ?? []);
|
|
28021
28021
|
const nameOf = (id) => {
|
|
28022
28022
|
if (id === me) return "you";
|
|
@@ -28024,7 +28024,7 @@ function WorkflowRunStatusCell({ conversation }) {
|
|
|
28024
28024
|
return person ? ui.getUserDisplayName(person) : void 0;
|
|
28025
28025
|
};
|
|
28026
28026
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
28027
|
-
|
|
28027
|
+
chunkRPWWMOYP_cjs.WorkflowRunStatus,
|
|
28028
28028
|
{
|
|
28029
28029
|
steps,
|
|
28030
28030
|
states,
|
|
@@ -28058,7 +28058,7 @@ function ConversationStatusCell({ conversation }) {
|
|
|
28058
28058
|
if (conversation.plan?.steps?.length && !isLiveGenerating)
|
|
28059
28059
|
return /* @__PURE__ */ jsxRuntime.jsx(WorkflowRunStatusCell, { conversation });
|
|
28060
28060
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
28061
|
-
|
|
28061
|
+
chunkRPWWMOYP_cjs.ThreadStatusLine,
|
|
28062
28062
|
{
|
|
28063
28063
|
state: threadStateOf(conversation, isLiveGenerating),
|
|
28064
28064
|
className: "h-full",
|
|
@@ -28391,16 +28391,16 @@ function useConnectedThreadActivity(conversationId) {
|
|
|
28391
28391
|
const openWorkflow = (environment.useOpenWorkflow ?? noWorkflowPage)();
|
|
28392
28392
|
const workspaceExtId = react.useArbiSessionState((s) => s.workspaceId);
|
|
28393
28393
|
const task = conversations.find((c) => c.external_id === conversationId);
|
|
28394
|
-
const latestMessageAt =
|
|
28394
|
+
const latestMessageAt = chunkRPWWMOYP_cjs.latestMessageTime(messageHistory);
|
|
28395
28395
|
const events = (activity.data ?? []).filter(
|
|
28396
|
-
(event) => !
|
|
28396
|
+
(event) => !chunkRPWWMOYP_cjs.isSupersededStop(event, latestMessageAt)
|
|
28397
28397
|
);
|
|
28398
28398
|
const personName = (extId) => {
|
|
28399
28399
|
const person = members.find((m) => m.user.external_id === extId)?.user;
|
|
28400
28400
|
return person ? ui.getUserDisplayName(person) : "someone";
|
|
28401
28401
|
};
|
|
28402
|
-
const planSteps =
|
|
28403
|
-
const entries =
|
|
28402
|
+
const planSteps = chunkRPWWMOYP_cjs.fromPlanSteps(task?.plan?.steps ?? []);
|
|
28403
|
+
const entries = chunkRPWWMOYP_cjs.compactThreadActivity(events, (id) => planSteps.find((s) => s.id === id)?.title);
|
|
28404
28404
|
const items = entries.map(({ event, label, recipients }) => {
|
|
28405
28405
|
const messageActivity = [
|
|
28406
28406
|
"created",
|
|
@@ -28426,7 +28426,7 @@ function useConnectedThreadActivity(conversationId) {
|
|
|
28426
28426
|
const messageId = sourceMessage ?? [...messageHistory].reverse().find((message) => Date.parse(message.created_at ?? "") <= Date.parse(event.created_at))?.external_id ?? messageHistory[0]?.external_id;
|
|
28427
28427
|
const doc = docId ? docs.find((d) => d.external_id === docId) : void 0;
|
|
28428
28428
|
const mailDraftId = event.kind === "notified" && event.detail?.event === "mail_draft_ready" && typeof event.detail?.mail_id === "string" ? event.detail.mail_id : void 0;
|
|
28429
|
-
const missed = event.kind === "notified" && recipients.length ?
|
|
28429
|
+
const missed = event.kind === "notified" && recipients.length ? chunkRPWWMOYP_cjs.unnotifiedMentions(
|
|
28430
28430
|
messageHistory.find((message) => message.external_id === sourceMessage)?.mentions,
|
|
28431
28431
|
recipients,
|
|
28432
28432
|
event.actor_ext_id
|
|
@@ -28459,7 +28459,7 @@ function useConnectedThreadActivity(conversationId) {
|
|
|
28459
28459
|
) : void 0,
|
|
28460
28460
|
docId,
|
|
28461
28461
|
docTitle: doc ? ui.getDocumentTitle(doc) : void 0,
|
|
28462
|
-
label: mailDraftId ? "Left a draft email" : event.kind === "notified" && recipients.length ?
|
|
28462
|
+
label: mailDraftId ? "Left a draft email" : event.kind === "notified" && recipients.length ? chunkRPWWMOYP_cjs.notifiedLabel(recipients.map(personName), missed.map(personName)) : label,
|
|
28463
28463
|
description: [
|
|
28464
28464
|
name,
|
|
28465
28465
|
label,
|
|
@@ -28473,7 +28473,7 @@ function useConnectedThreadActivity(conversationId) {
|
|
|
28473
28473
|
stepChip: eventStep ? stepChipOf(eventStep, event.kind, stepDocument) : void 0,
|
|
28474
28474
|
// No avatar tooltip: the entry is already a button (or titled row) that carries the same
|
|
28475
28475
|
// details, and a tooltip trigger inside it would be a nested <button>.
|
|
28476
|
-
avatar: assistant ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
28476
|
+
avatar: assistant ? /* @__PURE__ */ jsxRuntime.jsx(chunkRPWWMOYP_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" }),
|
|
28477
28477
|
time: react.formatRelativeTime(event.created_at, { style: "short" }),
|
|
28478
28478
|
exactTime: ui.formatFriendlyDate(event.created_at),
|
|
28479
28479
|
onOpenDocument: docId && doc ? () => openDocument(docId) : void 0,
|
|
@@ -28522,7 +28522,7 @@ function useConnectedThreadActivity(conversationId) {
|
|
|
28522
28522
|
onSelect: () => navigateToConversation(source)
|
|
28523
28523
|
});
|
|
28524
28524
|
}
|
|
28525
|
-
const links =
|
|
28525
|
+
const links = chunkRPWWMOYP_cjs.linkedRunsFromActivity(activity.data);
|
|
28526
28526
|
const threadName = (id, workflowId) => conversations.find((c) => c.external_id === id)?.title || workflows.find((w) => w.external_id === workflowId)?.name || "Linked thread";
|
|
28527
28527
|
const signals = links.raised.map((raised) => ({
|
|
28528
28528
|
step: raised.step,
|
|
@@ -28537,7 +28537,7 @@ function useConnectedThreadActivity(conversationId) {
|
|
|
28537
28537
|
if (links.startedBy) {
|
|
28538
28538
|
const { conversationId: parentId, step, signal } = links.startedBy;
|
|
28539
28539
|
const parent = conversations.find((c) => c.external_id === parentId);
|
|
28540
|
-
const parentSteps =
|
|
28540
|
+
const parentSteps = chunkRPWWMOYP_cjs.fromPlanSteps(parent?.plan?.steps ?? []);
|
|
28541
28541
|
startedBy = {
|
|
28542
28542
|
stepTitle: parentSteps.find((s) => s.id === step)?.title ?? step ?? "a step",
|
|
28543
28543
|
threadTitle: parent?.title || "another thread",
|
|
@@ -28570,7 +28570,7 @@ function ConnectedThreadTaskBar({
|
|
|
28570
28570
|
const person = members.find((m) => m.user.external_id === id)?.user;
|
|
28571
28571
|
return person ? ui.getUserDisplayName(person) : void 0;
|
|
28572
28572
|
};
|
|
28573
|
-
const steps =
|
|
28573
|
+
const steps = chunkRPWWMOYP_cjs.fromPlanSteps(task?.plan?.steps ?? []);
|
|
28574
28574
|
const states = chunkDHOIO3B7_cjs.stepStatesFromActivity(activity.data ?? []);
|
|
28575
28575
|
const runInputs = task?.skill_inputs ?? {};
|
|
28576
28576
|
const stepCall = (body) => actOnStep.mutateAsync({ conversationId, body });
|
|
@@ -28596,7 +28596,7 @@ function ConnectedThreadTaskBar({
|
|
|
28596
28596
|
task?.plan?.steps?.length ? (
|
|
28597
28597
|
// A workflow run: its named steps, with what happened in the thread under each.
|
|
28598
28598
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
28599
|
-
|
|
28599
|
+
chunkRPWWMOYP_cjs.WorkflowThreadStrip,
|
|
28600
28600
|
{
|
|
28601
28601
|
steps,
|
|
28602
28602
|
states,
|
|
@@ -28623,7 +28623,7 @@ function ConnectedThreadTaskBar({
|
|
|
28623
28623
|
renderStepAction: (step, phase) => (
|
|
28624
28624
|
// A signer or a draft's person acts on their step even on a thread they cannot edit.
|
|
28625
28625
|
canEdit || phase === "waiting" || phase === "done" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
28626
|
-
|
|
28626
|
+
chunkRPWWMOYP_cjs.WorkflowStepAction,
|
|
28627
28627
|
{
|
|
28628
28628
|
step,
|
|
28629
28629
|
phase,
|
|
@@ -28644,8 +28644,8 @@ function ConnectedThreadTaskBar({
|
|
|
28644
28644
|
}
|
|
28645
28645
|
)
|
|
28646
28646
|
) : items.length || startedBy ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
28647
|
-
startedBy && /* @__PURE__ */ jsxRuntime.jsx(
|
|
28648
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
28647
|
+
startedBy && /* @__PURE__ */ jsxRuntime.jsx(chunkRPWWMOYP_cjs.WorkflowThreadStartedBy, { origin: startedBy }),
|
|
28648
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkRPWWMOYP_cjs.TaskFlow, { items: items.filter((item) => !item.step) })
|
|
28649
28649
|
] }) : (
|
|
28650
28650
|
// Ordinary chats record no activity events, so an empty ribbon says nothing rather than
|
|
28651
28651
|
// "No recorded activity yet" while the answer and its steps are right there in the thread.
|
|
@@ -28679,7 +28679,7 @@ function ConnectedThreadTaskBar({
|
|
|
28679
28679
|
) }),
|
|
28680
28680
|
/* @__PURE__ */ jsxRuntime.jsxs(ui.DropdownMenuContent, { align: "end", children: [
|
|
28681
28681
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
28682
|
-
|
|
28682
|
+
chunkI7GQO43N_cjs.ThreadFollowMenuItem,
|
|
28683
28683
|
{
|
|
28684
28684
|
following: follow.following,
|
|
28685
28685
|
onFollowingChange: (on) => (
|
|
@@ -28758,25 +28758,25 @@ function useSkillsEnabled() {
|
|
|
28758
28758
|
// src/connection/workflows/useWorkflowDefinitions.ts
|
|
28759
28759
|
function useWorkflowDefinitions() {
|
|
28760
28760
|
const { data: listings } = react.useSkills();
|
|
28761
|
-
const usage =
|
|
28761
|
+
const usage = chunkRPWWMOYP_cjs.useWorkflowUsage();
|
|
28762
28762
|
const skillsEnabled = useSkillsEnabled();
|
|
28763
28763
|
return React7.useMemo(() => {
|
|
28764
28764
|
const { host: builtins, skills: fromServer } = chunk76L6LOP3_cjs.mergeSkillWorkflows(
|
|
28765
|
-
|
|
28765
|
+
chunkRPWWMOYP_cjs.WEB_WORKFLOWS,
|
|
28766
28766
|
listings ?? []
|
|
28767
28767
|
);
|
|
28768
28768
|
const all = [...builtins, ...fromServer];
|
|
28769
28769
|
const byId = new Map(all.map((w) => [w.id, w]));
|
|
28770
|
-
const pinned =
|
|
28770
|
+
const pinned = chunkRPWWMOYP_cjs.DASHBOARD_PINNED.flatMap((id) => {
|
|
28771
28771
|
const w = byId.get(id);
|
|
28772
28772
|
return w ? [w] : [];
|
|
28773
28773
|
});
|
|
28774
28774
|
return {
|
|
28775
28775
|
skills: all,
|
|
28776
28776
|
skillsEnabled,
|
|
28777
|
-
start: skillsEnabled ? [...builtins, ...
|
|
28778
|
-
dashboard: [...pinned, ...
|
|
28779
|
-
forTasks: [
|
|
28777
|
+
start: skillsEnabled ? [...builtins, ...chunkRPWWMOYP_cjs.sortByRecentUse(fromServer, usage)] : [],
|
|
28778
|
+
dashboard: [...pinned, ...chunkRPWWMOYP_cjs.DASHBOARD_OPERATIONS],
|
|
28779
|
+
forTasks: [chunkRPWWMOYP_cjs.CUSTOM_TASK, ...all.filter((w) => w.schedulable), chunkRPWWMOYP_cjs.REMIND_TASK]
|
|
28780
28780
|
};
|
|
28781
28781
|
}, [listings, usage, skillsEnabled]);
|
|
28782
28782
|
}
|
|
@@ -28804,7 +28804,7 @@ function useWorkflowTasks() {
|
|
|
28804
28804
|
);
|
|
28805
28805
|
const create3 = React7.useCallback(
|
|
28806
28806
|
async (ctx, forceWorkflow = false) => {
|
|
28807
|
-
const request =
|
|
28807
|
+
const request = chunkRPWWMOYP_cjs.taskComposerToCreateRequest(
|
|
28808
28808
|
{ ...ctx, documentTitles, plan: ctx.plan ?? null },
|
|
28809
28809
|
activeWorkspaceId ?? void 0,
|
|
28810
28810
|
forceWorkflow
|
|
@@ -28846,7 +28846,7 @@ function useWorkflowTasks() {
|
|
|
28846
28846
|
);
|
|
28847
28847
|
const update = React7.useCallback(
|
|
28848
28848
|
async (task, ctx) => {
|
|
28849
|
-
const patch =
|
|
28849
|
+
const patch = chunkRPWWMOYP_cjs.taskComposerToUpdateRequest({ ...ctx, plan: ctx.plan ?? null });
|
|
28850
28850
|
if (task.is_owner === false) delete patch.shared;
|
|
28851
28851
|
await updateConversation.mutateAsync({ conversationId: task.external_id, patch });
|
|
28852
28852
|
},
|
|
@@ -28854,7 +28854,7 @@ function useWorkflowTasks() {
|
|
|
28854
28854
|
);
|
|
28855
28855
|
const updateWorkflow = React7.useCallback(
|
|
28856
28856
|
async (workflow, ctx) => {
|
|
28857
|
-
const patch =
|
|
28857
|
+
const patch = chunkRPWWMOYP_cjs.composerToWorkflowUpdate({ ...ctx, documentTitles, plan: ctx.plan ?? null });
|
|
28858
28858
|
if (workflow.is_owner === false) delete patch.shared;
|
|
28859
28859
|
const workspaceId = workflow.workspace_ext_id ?? activeWorkspaceId;
|
|
28860
28860
|
const updated = await updateWorkflowMutation.mutateAsync({
|
|
@@ -28970,7 +28970,7 @@ function ConnectedTaskComposer({
|
|
|
28970
28970
|
const { tasks: allTasks } = react.useWorkItems();
|
|
28971
28971
|
const { data: documents = [] } = react.useDocuments();
|
|
28972
28972
|
const { create: create3, update, updateWorkflow, isPending } = useWorkflowTasks();
|
|
28973
|
-
const scopeSource =
|
|
28973
|
+
const scopeSource = chunkNG6AGVZ4_cjs.useConnectedWorkflowScopeSource();
|
|
28974
28974
|
const activeWorkspaceId = react.useArbiSessionState((s) => s.workspaceId);
|
|
28975
28975
|
const activeWorkspace = React7.useMemo(
|
|
28976
28976
|
() => workspaces.find((w) => w.external_id === activeWorkspaceId) ?? null,
|
|
@@ -28987,7 +28987,7 @@ function ConnectedTaskComposer({
|
|
|
28987
28987
|
const label = (t) => t.title?.trim() || "Untitled task";
|
|
28988
28988
|
if (isWorkflow) return allTasks.map((t) => ({ id: t.external_id, name: label(t) }));
|
|
28989
28989
|
const subject = task ?? { external_id: "__new__" };
|
|
28990
|
-
return
|
|
28990
|
+
return chunkRPWWMOYP_cjs.moveTargets(
|
|
28991
28991
|
[...allTasks.filter((t) => t.external_id !== subject.external_id), subject],
|
|
28992
28992
|
subject
|
|
28993
28993
|
).map((t) => ({ id: t.external_id, name: label(t) }));
|
|
@@ -29002,33 +29002,33 @@ function ConnectedTaskComposer({
|
|
|
29002
29002
|
);
|
|
29003
29003
|
const initialValues = React7.useMemo(() => {
|
|
29004
29004
|
const ids = {
|
|
29005
|
-
customWorkflowId:
|
|
29006
|
-
reminderWorkflowId:
|
|
29005
|
+
customWorkflowId: chunkRPWWMOYP_cjs.CUSTOM_TASK_ID,
|
|
29006
|
+
reminderWorkflowId: chunkRPWWMOYP_cjs.REMIND_TASK_ID,
|
|
29007
29007
|
definitions: forTasks
|
|
29008
29008
|
};
|
|
29009
29009
|
const base = launchWorkflow ? {
|
|
29010
|
-
...
|
|
29010
|
+
...chunkRPWWMOYP_cjs.workflowToComposerValues(launchWorkflow, ids),
|
|
29011
29011
|
when: "once",
|
|
29012
29012
|
runAt: "",
|
|
29013
29013
|
rrule: "",
|
|
29014
29014
|
eventKind: "",
|
|
29015
29015
|
afterTaskId: "",
|
|
29016
29016
|
name: ""
|
|
29017
|
-
} : editingWorkflow ?
|
|
29017
|
+
} : editingWorkflow ? chunkRPWWMOYP_cjs.workflowToComposerValues(editingWorkflow, ids) : task ? chunkRPWWMOYP_cjs.taskToComposerValues(task, ids) : isWorkflow ? {
|
|
29018
29018
|
// Run now is the default start; scheduling is the fallback in the same field.
|
|
29019
29019
|
assignee: "agent",
|
|
29020
|
-
workflowId: initialWorkflowId ??
|
|
29020
|
+
workflowId: initialWorkflowId ?? chunkRPWWMOYP_cjs.CUSTOM_TASK_ID,
|
|
29021
29021
|
when: startLater ? "once" : "now",
|
|
29022
29022
|
...initialPrompt ? {
|
|
29023
29023
|
inputs: {
|
|
29024
|
-
[initialWorkflowId ===
|
|
29024
|
+
[initialWorkflowId === chunkRPWWMOYP_cjs.REMIND_TASK_ID ? "message" : "instruction"]: initialPrompt
|
|
29025
29025
|
}
|
|
29026
29026
|
} : {},
|
|
29027
29027
|
// A scheduled run needs an agent: the owner's Assistant unless another is picked.
|
|
29028
29028
|
...startLater && defaultAgentId ? { agentId: defaultAgentId } : {}
|
|
29029
29029
|
} : initialAgentExtId ? (
|
|
29030
29030
|
// Assigning an agent means agentic work: the free instruction, and tell me when done.
|
|
29031
|
-
{ agentId: initialAgentExtId, workflowId:
|
|
29031
|
+
{ agentId: initialAgentExtId, workflowId: chunkRPWWMOYP_cjs.CUSTOM_TASK_ID, notifyOnComplete: true }
|
|
29032
29032
|
) : {};
|
|
29033
29033
|
return {
|
|
29034
29034
|
timezone: chunkBIXHB4LV_cjs.detectTimeZone(),
|
|
@@ -29089,7 +29089,7 @@ function ConnectedTaskComposer({
|
|
|
29089
29089
|
const ctx = {
|
|
29090
29090
|
workflow: chosen,
|
|
29091
29091
|
values: submitted,
|
|
29092
|
-
plan: chosen.id ===
|
|
29092
|
+
plan: chosen.id === chunkRPWWMOYP_cjs.CUSTOM_TASK_ID ? plan : null
|
|
29093
29093
|
};
|
|
29094
29094
|
try {
|
|
29095
29095
|
if (isWorkflow && editingWorkflow && !options2?.runOnce) {
|
|
@@ -29125,7 +29125,7 @@ function ConnectedTaskComposer({
|
|
|
29125
29125
|
}
|
|
29126
29126
|
};
|
|
29127
29127
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
29128
|
-
|
|
29128
|
+
chunkRPWWMOYP_cjs.TaskComposer,
|
|
29129
29129
|
{
|
|
29130
29130
|
open,
|
|
29131
29131
|
onOpenChange,
|
|
@@ -29139,15 +29139,15 @@ function ConnectedTaskComposer({
|
|
|
29139
29139
|
tasks: taskOptions,
|
|
29140
29140
|
initialValues,
|
|
29141
29141
|
timezones,
|
|
29142
|
-
eventOptions:
|
|
29142
|
+
eventOptions: chunkRPWWMOYP_cjs.AUTOMATION_EVENTS,
|
|
29143
29143
|
eventWorkflowOptions: workspaceAutomations.filter((item) => item.external_id !== editingWorkflow?.external_id).map((item) => ({ id: item.external_id, label: item.name })),
|
|
29144
29144
|
isPending,
|
|
29145
29145
|
planDrafting: planWork.isPending,
|
|
29146
29146
|
hasPlan: plan !== null,
|
|
29147
|
-
renderIcon:
|
|
29147
|
+
renderIcon: chunkRPWWMOYP_cjs.renderWorkflowIcon,
|
|
29148
29148
|
scopeSource,
|
|
29149
29149
|
renderDocuments: (field, value, onChange) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
29150
|
-
|
|
29150
|
+
chunkNG6AGVZ4_cjs.ConnectedWorkflowDocumentsField,
|
|
29151
29151
|
{
|
|
29152
29152
|
field,
|
|
29153
29153
|
value,
|
|
@@ -29178,8 +29178,8 @@ function ConnectedTaskComposer({
|
|
|
29178
29178
|
...plan ? { addAndStart: "Approve plan and start", addAndSchedule: "Approve plan and schedule" } : {}
|
|
29179
29179
|
},
|
|
29180
29180
|
onSubmit: submit,
|
|
29181
|
-
goal: (values) => values.workflowId ===
|
|
29182
|
-
|
|
29181
|
+
goal: (values) => values.workflowId === chunkRPWWMOYP_cjs.CUSTOM_TASK_ID ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
29182
|
+
chunkRPWWMOYP_cjs.TaskPlan,
|
|
29183
29183
|
{
|
|
29184
29184
|
plan,
|
|
29185
29185
|
onChange: setPlan,
|
|
@@ -29379,7 +29379,7 @@ function ConnectedTaskStartDialog({
|
|
|
29379
29379
|
};
|
|
29380
29380
|
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
29381
29381
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
29382
|
-
|
|
29382
|
+
chunkRPWWMOYP_cjs.TaskStartDialog,
|
|
29383
29383
|
{
|
|
29384
29384
|
open: open && !later,
|
|
29385
29385
|
onOpenChange: (next) => {
|
|
@@ -29411,7 +29411,7 @@ function ConnectedTaskStartDialog({
|
|
|
29411
29411
|
kind: "workflow",
|
|
29412
29412
|
startLater: true,
|
|
29413
29413
|
initialPrompt: later.prompt,
|
|
29414
|
-
initialWorkflowId: later.todo ?
|
|
29414
|
+
initialWorkflowId: later.todo ? chunkRPWWMOYP_cjs.REMIND_TASK_ID : void 0,
|
|
29415
29415
|
initialShared: later.shared,
|
|
29416
29416
|
launchWorkflow: later.workflow
|
|
29417
29417
|
}
|
|
@@ -29425,7 +29425,7 @@ function ConnectedThreadLauncher({ autoFocus }) {
|
|
|
29425
29425
|
const [later, setLater] = React7.useState(null);
|
|
29426
29426
|
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
29427
29427
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
29428
|
-
|
|
29428
|
+
chunkRPWWMOYP_cjs.ThreadLauncher,
|
|
29429
29429
|
{
|
|
29430
29430
|
workflows: task.workflows,
|
|
29431
29431
|
people: task.people,
|
|
@@ -29462,7 +29462,7 @@ function ConnectedThreadLauncher({ autoFocus }) {
|
|
|
29462
29462
|
kind: "workflow",
|
|
29463
29463
|
startLater: true,
|
|
29464
29464
|
initialPrompt: later.prompt,
|
|
29465
|
-
initialWorkflowId: later.todo ?
|
|
29465
|
+
initialWorkflowId: later.todo ? chunkRPWWMOYP_cjs.REMIND_TASK_ID : void 0,
|
|
29466
29466
|
initialShared: later.shared,
|
|
29467
29467
|
launchWorkflow: later.workflow
|
|
29468
29468
|
}
|
|
@@ -29491,13 +29491,13 @@ function ConnectedNewThreadDialog({
|
|
|
29491
29491
|
});
|
|
29492
29492
|
const parentOptions = React7.useMemo(() => {
|
|
29493
29493
|
const leaf = { external_id: "__new__" };
|
|
29494
|
-
return
|
|
29494
|
+
return chunkRPWWMOYP_cjs.moveTargets([...tasks, leaf], leaf).map((t) => ({
|
|
29495
29495
|
id: t.external_id,
|
|
29496
29496
|
name: t.title?.trim() || "Untitled task"
|
|
29497
29497
|
}));
|
|
29498
29498
|
}, [tasks]);
|
|
29499
29499
|
const submit = async (values) => {
|
|
29500
|
-
const request =
|
|
29500
|
+
const request = chunkRPWWMOYP_cjs.newThreadToRequest(values);
|
|
29501
29501
|
try {
|
|
29502
29502
|
if (!workspaceId) throw new Error("Open a workspace to add a task.");
|
|
29503
29503
|
if (!request.startAssistant && request.todo) {
|
|
@@ -29538,7 +29538,7 @@ function ConnectedNewThreadDialog({
|
|
|
29538
29538
|
}
|
|
29539
29539
|
};
|
|
29540
29540
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
29541
|
-
|
|
29541
|
+
chunkRPWWMOYP_cjs.NewThreadDialog,
|
|
29542
29542
|
{
|
|
29543
29543
|
open,
|
|
29544
29544
|
onOpenChange,
|
|
@@ -29573,7 +29573,7 @@ function useRenderTaskPerson() {
|
|
|
29573
29573
|
return React7.useCallback(
|
|
29574
29574
|
(person) => {
|
|
29575
29575
|
const user = person.id ? byId.get(person.id) : void 0;
|
|
29576
|
-
return user ? /* @__PURE__ */ jsxRuntime.jsx(DocumentUser, { user, variant: "pill" }) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
29576
|
+
return user ? /* @__PURE__ */ jsxRuntime.jsx(DocumentUser, { user, variant: "pill" }) : /* @__PURE__ */ jsxRuntime.jsx(chunk6TE3QA3Y_cjs.PersonPill, { person });
|
|
29577
29577
|
},
|
|
29578
29578
|
[byId]
|
|
29579
29579
|
);
|
|
@@ -29583,14 +29583,14 @@ var referencesOf = (inputs) => {
|
|
|
29583
29583
|
return value?.documents ?? [];
|
|
29584
29584
|
};
|
|
29585
29585
|
var PROMPT_BINDINGS = {
|
|
29586
|
-
[
|
|
29586
|
+
[chunkRPWWMOYP_cjs.GENERATE_IMAGE_ID]: {
|
|
29587
29587
|
attachScope: false,
|
|
29588
29588
|
tools: (inputs) => {
|
|
29589
29589
|
const aspectRatio = typeof inputs.aspect_ratio === "string" ? inputs.aspect_ratio : "";
|
|
29590
29590
|
return {
|
|
29591
29591
|
retrieval_chunk: browser.buildRetrievalChunkTool([]),
|
|
29592
29592
|
retrieval_full_context: browser.buildRetrievalFullContextTool(referencesOf(inputs)),
|
|
29593
|
-
...aspectRatio && aspectRatio !==
|
|
29593
|
+
...aspectRatio && aspectRatio !== chunkRPWWMOYP_cjs.IMAGE_ASPECT_AUTO ? {
|
|
29594
29594
|
image_generation: {
|
|
29595
29595
|
name: "image_generation",
|
|
29596
29596
|
description: "image generation",
|
|
@@ -29611,7 +29611,7 @@ var text = (inputs, name) => {
|
|
|
29611
29611
|
function useLaunchWorkflow({ landing: surfaceLanding } = {}) {
|
|
29612
29612
|
const { data: documents = [] } = react.useDocuments();
|
|
29613
29613
|
const { data: workspaceTags = [] } = react.useTags();
|
|
29614
|
-
const tags = React7.useMemo(() =>
|
|
29614
|
+
const tags = React7.useMemo(() => chunk6TE3QA3Y_cjs.documentScopeLabels(workspaceTags), [workspaceTags]);
|
|
29615
29615
|
const createTag = react.useCreateTag();
|
|
29616
29616
|
const updateTag = react.useUpdateTag();
|
|
29617
29617
|
const generate = react.useGenerateDocTags();
|
|
@@ -29622,8 +29622,8 @@ function useLaunchWorkflow({ landing: surfaceLanding } = {}) {
|
|
|
29622
29622
|
const annotate = React7.useCallback(
|
|
29623
29623
|
async ({ inputs, scope }) => {
|
|
29624
29624
|
const description = text(inputs, "description");
|
|
29625
|
-
const name = text(inputs, "name") ||
|
|
29626
|
-
const matching =
|
|
29625
|
+
const name = text(inputs, "name") || chunkRPWWMOYP_cjs.deriveAnnotationName(description);
|
|
29626
|
+
const matching = chunk6TE3QA3Y_cjs.matchWorkflowScope(documents, scope);
|
|
29627
29627
|
if (!name || !description || matching.length === 0) return;
|
|
29628
29628
|
try {
|
|
29629
29629
|
const existing = tags.find((t) => t.name.toLowerCase() === name.toLowerCase());
|
|
@@ -29666,9 +29666,9 @@ function useLaunchWorkflow({ landing: surfaceLanding } = {}) {
|
|
|
29666
29666
|
async (launch) => {
|
|
29667
29667
|
const { workflow, inputs, scope, agentId } = launch;
|
|
29668
29668
|
if (workflow.run.kind === "operation") {
|
|
29669
|
-
if (workflow.id ===
|
|
29669
|
+
if (workflow.id === chunkRPWWMOYP_cjs.ANNOTATE_ID) {
|
|
29670
29670
|
await annotate(launch);
|
|
29671
|
-
|
|
29671
|
+
chunkRPWWMOYP_cjs.recordWorkflowUse(workflow.id);
|
|
29672
29672
|
return;
|
|
29673
29673
|
}
|
|
29674
29674
|
throw new Error(`No host handler for workflow "${workflow.id}"`);
|
|
@@ -29678,7 +29678,7 @@ function useLaunchWorkflow({ landing: surfaceLanding } = {}) {
|
|
|
29678
29678
|
);
|
|
29679
29679
|
const prompt = chunk76L6LOP3_cjs.composeWorkflowPrompt(workflow, inputs, { documentTitles });
|
|
29680
29680
|
if (!prompt) return;
|
|
29681
|
-
|
|
29681
|
+
chunkRPWWMOYP_cjs.recordWorkflowUse(workflow.id);
|
|
29682
29682
|
if (agentId) {
|
|
29683
29683
|
try {
|
|
29684
29684
|
const created = await createTask({
|
|
@@ -29723,7 +29723,7 @@ function useLaunchWorkflow({ landing: surfaceLanding } = {}) {
|
|
|
29723
29723
|
const binding = PROMPT_BINDINGS[workflow.id];
|
|
29724
29724
|
if (!inPlace) openNewConversation();
|
|
29725
29725
|
if (binding?.attachScope !== false && !chunk76L6LOP3_cjs.isEmptyWorkflowScope(scope)) {
|
|
29726
|
-
const ids =
|
|
29726
|
+
const ids = chunk6TE3QA3Y_cjs.matchWorkflowScope(documents, scope).map((d) => d.external_id);
|
|
29727
29727
|
if (ids.length > 0) {
|
|
29728
29728
|
session.setConversationDocuments(
|
|
29729
29729
|
inPlace ? session.getState().conversationId ?? "new" : "new",
|
|
@@ -29764,7 +29764,7 @@ function resolveLaunchInputs(workflow, request) {
|
|
|
29764
29764
|
function useWorkflowLaunch() {
|
|
29765
29765
|
const { skills } = useWorkflowDefinitions();
|
|
29766
29766
|
const launch = React7.useCallback(
|
|
29767
|
-
(workflowId, options2 = {}) =>
|
|
29767
|
+
(workflowId, options2 = {}) => chunkRPWWMOYP_cjs.openWorkflowLaunch({ workflowId, ...options2 }),
|
|
29768
29768
|
[]
|
|
29769
29769
|
);
|
|
29770
29770
|
const itemsFor = React7.useCallback(
|
|
@@ -29802,30 +29802,30 @@ function ConnectedWorkflowStart({
|
|
|
29802
29802
|
const onLaunch = useLaunchWorkflow({ landing });
|
|
29803
29803
|
const { openUpload } = chunk6TJQTDQI_cjs.useBlocksEnvironment();
|
|
29804
29804
|
const { data: workspaceTags = [] } = react.useTags();
|
|
29805
|
-
const tags = React7.useMemo(() =>
|
|
29805
|
+
const tags = React7.useMemo(() => chunk6TE3QA3Y_cjs.documentScopeLabels(workspaceTags), [workspaceTags]);
|
|
29806
29806
|
const fieldPlaceholder = React7.useCallback(
|
|
29807
29807
|
(field, inputs, workflow) => {
|
|
29808
|
-
if (workflow.id !==
|
|
29809
|
-
const derived =
|
|
29808
|
+
if (workflow.id !== chunkRPWWMOYP_cjs.ANNOTATE_ID || field.name !== "name") return void 0;
|
|
29809
|
+
const derived = chunkRPWWMOYP_cjs.deriveAnnotationName(String(inputs.description ?? ""));
|
|
29810
29810
|
return derived ? `Otherwise \u201C${derived}\u201D` : "Taken from the description";
|
|
29811
29811
|
},
|
|
29812
29812
|
[]
|
|
29813
29813
|
);
|
|
29814
29814
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
29815
|
-
|
|
29815
|
+
chunkNG6AGVZ4_cjs.ConnectedWorkflowLauncher,
|
|
29816
29816
|
{
|
|
29817
29817
|
...rest,
|
|
29818
29818
|
workflows,
|
|
29819
29819
|
onLaunch,
|
|
29820
|
-
renderIcon:
|
|
29820
|
+
renderIcon: chunkRPWWMOYP_cjs.renderWorkflowIcon,
|
|
29821
29821
|
onAddFiles: openUpload,
|
|
29822
29822
|
agentLabels: AGENT_LABELS,
|
|
29823
29823
|
addFilesAction,
|
|
29824
29824
|
fieldPlaceholder,
|
|
29825
|
-
submitLabel: ({ workflow, matchedCount }) => workflow.id ===
|
|
29825
|
+
submitLabel: ({ workflow, matchedCount }) => workflow.id === chunkRPWWMOYP_cjs.ANNOTATE_ID && matchedCount !== null ? `Annotate ${matchedCount} document${matchedCount !== 1 ? "s" : ""}` : void 0,
|
|
29826
29826
|
renderNotice: ({ workflow, inputs }) => {
|
|
29827
|
-
if (workflow.id !==
|
|
29828
|
-
const name = String(inputs.name ?? "").trim() ||
|
|
29827
|
+
if (workflow.id !== chunkRPWWMOYP_cjs.ANNOTATE_ID) return null;
|
|
29828
|
+
const name = String(inputs.name ?? "").trim() || chunkRPWWMOYP_cjs.deriveAnnotationName(String(inputs.description ?? ""));
|
|
29829
29829
|
const existing = name ? tags.find((t) => t.name.toLowerCase() === name.toLowerCase()) : void 0;
|
|
29830
29830
|
if (!existing) return null;
|
|
29831
29831
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
@@ -29849,8 +29849,8 @@ function ConnectedWorkflowStart({
|
|
|
29849
29849
|
);
|
|
29850
29850
|
}
|
|
29851
29851
|
function Inner() {
|
|
29852
|
-
const request =
|
|
29853
|
-
const close =
|
|
29852
|
+
const request = chunkRPWWMOYP_cjs.useWorkflowLaunchRequest();
|
|
29853
|
+
const close = chunkRPWWMOYP_cjs.closeWorkflowLaunch;
|
|
29854
29854
|
const { skills } = useWorkflowDefinitions();
|
|
29855
29855
|
const run = useLaunchWorkflow({ landing: request?.landing });
|
|
29856
29856
|
const workflow = skills.find((w) => w.id === request?.workflowId);
|
|
@@ -29888,7 +29888,7 @@ function Inner() {
|
|
|
29888
29888
|
);
|
|
29889
29889
|
}
|
|
29890
29890
|
function WorkflowLaunchHost() {
|
|
29891
|
-
return
|
|
29891
|
+
return chunkRPWWMOYP_cjs.useWorkflowLaunchRequest() ? /* @__PURE__ */ jsxRuntime.jsx(Inner, {}) : null;
|
|
29892
29892
|
}
|
|
29893
29893
|
var START_VISIBLE = 8;
|
|
29894
29894
|
var START_SEARCH_ABOVE = 8;
|
|
@@ -29908,7 +29908,7 @@ function ConnectedConversationStart() {
|
|
|
29908
29908
|
const browse = openSkillsBrowser ? [
|
|
29909
29909
|
{
|
|
29910
29910
|
id: "browse-all",
|
|
29911
|
-
iconNode:
|
|
29911
|
+
iconNode: chunkRPWWMOYP_cjs.renderWorkflowIcon("library"),
|
|
29912
29912
|
title: "Browse all",
|
|
29913
29913
|
description: "See every skill, make a copy, add your own",
|
|
29914
29914
|
onSelect: () => openSkillsBrowser(),
|
|
@@ -30021,7 +30021,7 @@ function getToolParams(detail) {
|
|
|
30021
30021
|
return params;
|
|
30022
30022
|
}
|
|
30023
30023
|
function StepModelIcon({ modelName, tag }) {
|
|
30024
|
-
const cfg = tag === "Premium" ? null :
|
|
30024
|
+
const cfg = tag === "Premium" ? null : chunkRPWWMOYP_cjs.getModelIcon(modelName, tag);
|
|
30025
30025
|
if (tag !== "Premium" && !cfg) return null;
|
|
30026
30026
|
return /* @__PURE__ */ jsxRuntime.jsxs(ui.Tooltip, { children: [
|
|
30027
30027
|
/* @__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 } }) }) }),
|
|
@@ -30136,15 +30136,15 @@ var AgentStepsComponent = ({
|
|
|
30136
30136
|
const lastStepIndex = mergedSteps[mergedSteps.length - 1].index;
|
|
30137
30137
|
const renderRow = (step, depth, isLastInList) => {
|
|
30138
30138
|
const i = posByIndex.get(step.index);
|
|
30139
|
-
const presentation =
|
|
30139
|
+
const presentation = chunkRPWWMOYP_cjs.getAgentStepPresentation(step, docInfo);
|
|
30140
30140
|
const { tool, Icon } = presentation;
|
|
30141
30141
|
const { label, summary, isMultiLine, details } = browser.getStepDisplay(step, docInfo);
|
|
30142
|
-
const accent =
|
|
30142
|
+
const accent = chunkRPWWMOYP_cjs.stepAccent(step, tool);
|
|
30143
30143
|
const duration = stepDurations[i];
|
|
30144
30144
|
const isLastStep = step.index === lastStepIndex;
|
|
30145
30145
|
const isActive = step.index === currentStepIndex;
|
|
30146
30146
|
const tier = step.step === "goal" ? step.model_recommendation : null;
|
|
30147
|
-
const TierIcon = tier ?
|
|
30147
|
+
const TierIcon = tier ? chunkRPWWMOYP_cjs.MODEL_TIER_ICON_MAP[tier] : null;
|
|
30148
30148
|
const useLiveDuration = isLastStep && liveTimer != null && step.t != null;
|
|
30149
30149
|
const durationNode = useLiveDuration ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
30150
30150
|
MessageLiveSeconds,
|
|
@@ -30168,7 +30168,7 @@ var AgentStepsComponent = ({
|
|
|
30168
30168
|
})) : null;
|
|
30169
30169
|
const folded = childrenByParent.get(step.index);
|
|
30170
30170
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
30171
|
-
|
|
30171
|
+
chunkRPWWMOYP_cjs.StepRow,
|
|
30172
30172
|
{
|
|
30173
30173
|
index: step.index,
|
|
30174
30174
|
number: displayNumber.get(step.index) ?? String(i + 1),
|
|
@@ -30182,7 +30182,7 @@ var AgentStepsComponent = ({
|
|
|
30182
30182
|
titleTestId: isActive ? "agent-expanded-current-step-description" : void 0,
|
|
30183
30183
|
badge: TierIcon ? /* @__PURE__ */ jsxRuntime.jsxs(ui.Tooltip, { children: [
|
|
30184
30184
|
/* @__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 }) }) }),
|
|
30185
|
-
/* @__PURE__ */ jsxRuntime.jsx(ui.TooltipContent, { side: "top", children:
|
|
30185
|
+
/* @__PURE__ */ jsxRuntime.jsx(ui.TooltipContent, { side: "top", children: chunkRPWWMOYP_cjs.MODEL_TIER_LABELS[tier] ?? tier })
|
|
30186
30186
|
] }) : void 0,
|
|
30187
30187
|
meta: /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
30188
30188
|
isDeveloper && /* @__PURE__ */ jsxRuntime.jsx(StepModelIcon, { modelName: step.usage?.model, tag: getModelTag(step.usage?.model) }),
|
|
@@ -30197,14 +30197,14 @@ var AgentStepsComponent = ({
|
|
|
30197
30197
|
summary && !isActive && (step.narration ? (
|
|
30198
30198
|
/* Narration is PROSE (headings, bold, lists): render markdown, not raw asterisks.
|
|
30199
30199
|
Tool summaries stay plain text: one-line headlines where a clamp matters. */
|
|
30200
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
30201
|
-
) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
30202
|
-
details.map((d, di) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
30203
|
-
showOutcome && /* @__PURE__ */ jsxRuntime.jsx(
|
|
30204
|
-
toolParams.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(
|
|
30205
|
-
criteriaView && /* @__PURE__ */ jsxRuntime.jsx(
|
|
30200
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkRPWWMOYP_cjs.StepNarration, { index: step.index, children: /* @__PURE__ */ jsxRuntime.jsx(chunkWB4B6TSW_cjs.ConnectedMarkdown, { isStreaming: false, children: summary }) })
|
|
30201
|
+
) : /* @__PURE__ */ jsxRuntime.jsx(chunkRPWWMOYP_cjs.StepSummary, { index: step.index, multiLine: isMultiLine, children: summary })),
|
|
30202
|
+
details.map((d, di) => /* @__PURE__ */ jsxRuntime.jsx(chunkRPWWMOYP_cjs.StepDetail, { index: step.index, children: d }, di)),
|
|
30203
|
+
showOutcome && /* @__PURE__ */ jsxRuntime.jsx(chunkRPWWMOYP_cjs.StepOutcome, { index: step.index, failed: outcomeFailed, children: step.outcome }),
|
|
30204
|
+
toolParams.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(chunkRPWWMOYP_cjs.StepParams, { children: toolParams.map((p) => `${p.key}=${p.value}`).join(" ") }),
|
|
30205
|
+
criteriaView && /* @__PURE__ */ jsxRuntime.jsx(chunkRPWWMOYP_cjs.GoalCriteria, { criteria: criteriaView }),
|
|
30206
30206
|
folded && folded.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(
|
|
30207
|
-
|
|
30207
|
+
chunkRPWWMOYP_cjs.SubStepGroup,
|
|
30208
30208
|
{
|
|
30209
30209
|
parentIndex: step.index,
|
|
30210
30210
|
summary: summariseSubSteps(folded),
|
|
@@ -30230,7 +30230,7 @@ var AgentStepsComponent = ({
|
|
|
30230
30230
|
leftParts.push(`${browser.formatTokens(totalInputTokens)} in`);
|
|
30231
30231
|
if (totalOutputTokens > 0) leftParts.push(`${browser.formatTokens(totalOutputTokens)} out`);
|
|
30232
30232
|
summaryNode = /* @__PURE__ */ jsxRuntime.jsx(
|
|
30233
|
-
|
|
30233
|
+
chunkRPWWMOYP_cjs.StepTraceSummary,
|
|
30234
30234
|
{
|
|
30235
30235
|
left: leftParts.join(" \xB7 "),
|
|
30236
30236
|
isNearBudget: browser.isNearAiUsageBudget(contextUsage),
|
|
@@ -30238,7 +30238,7 @@ var AgentStepsComponent = ({
|
|
|
30238
30238
|
}
|
|
30239
30239
|
);
|
|
30240
30240
|
}
|
|
30241
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
30241
|
+
return /* @__PURE__ */ jsxRuntime.jsx(chunkRPWWMOYP_cjs.StepTrace, { className, summary: summaryNode, children: displayRows.map((row, i) => {
|
|
30242
30242
|
if (row.lane) {
|
|
30243
30243
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
30244
30244
|
LaneBinding,
|
|
@@ -30275,7 +30275,7 @@ function LaneBinding({
|
|
|
30275
30275
|
const running = !closed && isStreaming;
|
|
30276
30276
|
const latest = inner[inner.length - 1];
|
|
30277
30277
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
30278
|
-
|
|
30278
|
+
chunkRPWWMOYP_cjs.SubAgentLane,
|
|
30279
30279
|
{
|
|
30280
30280
|
handle,
|
|
30281
30281
|
number,
|
|
@@ -30398,7 +30398,7 @@ function AgentBarShell({
|
|
|
30398
30398
|
}, [isStepsExpanded, steps]);
|
|
30399
30399
|
const visibleStepCount = React7.useMemo(() => browser.topLevelAgentSteps(steps ?? []).length, [steps]);
|
|
30400
30400
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
30401
|
-
|
|
30401
|
+
chunkRPWWMOYP_cjs.AgentBar,
|
|
30402
30402
|
{
|
|
30403
30403
|
className,
|
|
30404
30404
|
testId,
|
|
@@ -30454,7 +30454,7 @@ function AgentControlBar({
|
|
|
30454
30454
|
const isPaused = controlState === "paused" || controlState === "resuming";
|
|
30455
30455
|
const steps = agentSteps ?? [];
|
|
30456
30456
|
const currentStep = browser.getCurrentStep(steps);
|
|
30457
|
-
const currentPresentation =
|
|
30457
|
+
const currentPresentation = chunkRPWWMOYP_cjs.getCurrentAgentStepPresentation(steps);
|
|
30458
30458
|
const CurrentStepIcon = currentPresentation?.Icon;
|
|
30459
30459
|
const stepLabel2 = currentPresentation?.description ?? "Agent working\u2026";
|
|
30460
30460
|
const runningLanes = browser.extractSubagentLanes(steps).filter((l) => l.status === "running");
|
|
@@ -30471,7 +30471,7 @@ function AgentControlBar({
|
|
|
30471
30471
|
}
|
|
30472
30472
|
);
|
|
30473
30473
|
const status = /* @__PURE__ */ jsxRuntime.jsx(
|
|
30474
|
-
|
|
30474
|
+
chunkRPWWMOYP_cjs.AgentBarStatus,
|
|
30475
30475
|
{
|
|
30476
30476
|
state: showState ? controlState : void 0,
|
|
30477
30477
|
stateLabel: STATE_LABEL[controlState],
|
|
@@ -30513,7 +30513,7 @@ function AgentControlBar({
|
|
|
30513
30513
|
];
|
|
30514
30514
|
const controls = /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
30515
30515
|
onStop && /* @__PURE__ */ jsxRuntime.jsx(
|
|
30516
|
-
|
|
30516
|
+
chunkRPWWMOYP_cjs.AgentBarIconButton,
|
|
30517
30517
|
{
|
|
30518
30518
|
onClick: onStop,
|
|
30519
30519
|
title: "Stop",
|
|
@@ -30522,22 +30522,22 @@ function AgentControlBar({
|
|
|
30522
30522
|
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Square, { className: "h-3 w-3", fill: "currentColor" })
|
|
30523
30523
|
}
|
|
30524
30524
|
),
|
|
30525
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
30525
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkRPWWMOYP_cjs.AgentBarMenu, { items: menuItems })
|
|
30526
30526
|
] });
|
|
30527
30527
|
const displayedQueuedMessages = (transientQueuedMessages ?? []).filter(
|
|
30528
30528
|
(message) => !message.serverId || !queuedMessages.some((queued) => queued.external_id === message.serverId)
|
|
30529
30529
|
);
|
|
30530
30530
|
const queuedNotes = displayedQueuedMessages.filter((message) => message.content);
|
|
30531
|
-
const below = probeAnswer || queuedNotes.length > 0 ? /* @__PURE__ */ jsxRuntime.jsxs(
|
|
30531
|
+
const below = probeAnswer || queuedNotes.length > 0 ? /* @__PURE__ */ jsxRuntime.jsxs(chunkRPWWMOYP_cjs.AgentBarNotes, { children: [
|
|
30532
30532
|
queuedNotes.map((message, index) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
30533
|
-
|
|
30533
|
+
chunkRPWWMOYP_cjs.AgentBarQueuedNote,
|
|
30534
30534
|
{
|
|
30535
30535
|
text: message.content ?? "",
|
|
30536
30536
|
isAcknowledged: message.acknowledged
|
|
30537
30537
|
},
|
|
30538
30538
|
index
|
|
30539
30539
|
)),
|
|
30540
|
-
probeAnswer && /* @__PURE__ */ jsxRuntime.jsx(
|
|
30540
|
+
probeAnswer && /* @__PURE__ */ jsxRuntime.jsx(chunkRPWWMOYP_cjs.AgentBarProbeAnswer, { answer: probeAnswer.answer })
|
|
30541
30541
|
] }) : null;
|
|
30542
30542
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
30543
30543
|
AgentBarShell,
|
|
@@ -30594,7 +30594,7 @@ function RunningSubagentsRoster({
|
|
|
30594
30594
|
if (leafId) selectThread(leafId);
|
|
30595
30595
|
};
|
|
30596
30596
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
30597
|
-
|
|
30597
|
+
chunkRPWWMOYP_cjs.SubagentRoster,
|
|
30598
30598
|
{
|
|
30599
30599
|
lanes: rosterLanes,
|
|
30600
30600
|
className,
|
|
@@ -31336,7 +31336,7 @@ function WorkflowStepMessage({
|
|
|
31336
31336
|
const { conversations } = react.useConversationItems();
|
|
31337
31337
|
const activity = react.useConversationActivity(conversationId ?? void 0, { live: true });
|
|
31338
31338
|
const plan = conversations.find((c) => c.external_id === conversationId)?.plan;
|
|
31339
|
-
const steps =
|
|
31339
|
+
const steps = chunkRPWWMOYP_cjs.fromPlanSteps(plan?.steps ?? []);
|
|
31340
31340
|
const found = steps.find((s) => s.id === step);
|
|
31341
31341
|
const states = chunkDHOIO3B7_cjs.stepStatesFromActivity(activity.data ?? []);
|
|
31342
31342
|
const { data: documents = [] } = react.useDocuments();
|
|
@@ -31508,7 +31508,7 @@ var MessageComponent = ({
|
|
|
31508
31508
|
const isQueuedAnswer = !isUser && message.status === "queued" && !isGenerating;
|
|
31509
31509
|
const isAwaitingAnswer = (isGenerating || isRunningOnServer) && !isStopped && !!message.pendingUserInput;
|
|
31510
31510
|
const showWorkingIndicator = (isGenerating || isRunningOnServer) && !isQueuedAnswer && !responseContent.trim() && !linkedArtifact && !isAwaitingAnswer;
|
|
31511
|
-
const workingStepLabel = showWorkingIndicator ?
|
|
31511
|
+
const workingStepLabel = showWorkingIndicator ? chunkRPWWMOYP_cjs.getCurrentAgentStepPresentation(message.agentSteps ?? [])?.description : void 0;
|
|
31512
31512
|
const workingStepStart = showWorkingIndicator ? browser.getCurrentStep(message.agentSteps ?? [])?.t ?? 0 : 0;
|
|
31513
31513
|
const showEmptyAnswer = !isUser && !isGenerating && !isRunningOnServer && !isFailed && !isStopped && !responseContent.trim() && !linkedArtifact;
|
|
31514
31514
|
const isEmptyStopped = isStopped && !responseContent.trim();
|
|
@@ -31812,7 +31812,7 @@ var MessageComponent = ({
|
|
|
31812
31812
|
},
|
|
31813
31813
|
"data-testid": `message-model-${messageId}`,
|
|
31814
31814
|
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
31815
|
-
|
|
31815
|
+
chunkRPWWMOYP_cjs.AssistantEntity,
|
|
31816
31816
|
{
|
|
31817
31817
|
name: modelDisplayName,
|
|
31818
31818
|
modelName,
|
|
@@ -31925,7 +31925,7 @@ var MessageComponent = ({
|
|
|
31925
31925
|
// Stays the ARBI identity while streaming: the model name arrives
|
|
31926
31926
|
// with the first step that reports one and would swap the author
|
|
31927
31927
|
// mid-answer. The model is shown in the footer once settled.
|
|
31928
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
31928
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkRPWWMOYP_cjs.AssistantEntity, { size: 16, pillSize: "sm" })
|
|
31929
31929
|
),
|
|
31930
31930
|
timeLabel,
|
|
31931
31931
|
isSettled: settledForHeader,
|
|
@@ -32390,7 +32390,7 @@ function ConnectedMessageList({ messages }) {
|
|
|
32390
32390
|
start: virtualItem.start,
|
|
32391
32391
|
messageId: entry.id,
|
|
32392
32392
|
setSize: transcript.length,
|
|
32393
|
-
children: entry.item.card ?? /* @__PURE__ */ jsxRuntime.jsx(
|
|
32393
|
+
children: entry.item.card ?? /* @__PURE__ */ jsxRuntime.jsx(chunkRPWWMOYP_cjs.ThreadActivity, { item: entry.item, children: entry.item.onOpenDocument && /* @__PURE__ */ jsxRuntime.jsx(
|
|
32394
32394
|
"button",
|
|
32395
32395
|
{
|
|
32396
32396
|
className: "mt-1 hover:underline text-primary",
|
|
@@ -33274,7 +33274,7 @@ function ConnectedConversation({
|
|
|
33274
33274
|
}, [isGenerating]);
|
|
33275
33275
|
const slashWorkflows = useSlashSkillWorkflows({ landing: "current-chat" });
|
|
33276
33276
|
const composerSkills = React7.useMemo(
|
|
33277
|
-
() => ({ builtin:
|
|
33277
|
+
() => ({ builtin: chunkRPWWMOYP_cjs.BUILTIN_SKILLS, openFor: slashWorkflows.openFor }),
|
|
33278
33278
|
[slashWorkflows.openFor]
|
|
33279
33279
|
);
|
|
33280
33280
|
const browseSkills = React7.useMemo(
|
|
@@ -33348,7 +33348,7 @@ function ConnectedConversation({
|
|
|
33348
33348
|
/* @__PURE__ */ jsxRuntime.jsx(chunkZOUVLJLV_cjs.CallConversationEmpty, { callExtId: meetingCallExtId }),
|
|
33349
33349
|
/* @__PURE__ */ jsxRuntime.jsx(chunkZOUVLJLV_cjs.ProvisionalSpeakers, { ids: provisionalSpeakers })
|
|
33350
33350
|
] })
|
|
33351
|
-
) : currentTask && currentTask.status != null ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
33351
|
+
) : currentTask && currentTask.status != null ? /* @__PURE__ */ jsxRuntime.jsx(chunkRPWWMOYP_cjs.TaskEmptyState, { task: currentTask }) : pendingFirstTurn && isGenerating ? /* @__PURE__ */ jsxRuntime.jsx(ConnectedMessageArea, { ref: containerRef, messages: pendingFirstTurn }) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
33352
33352
|
ConnectedConversationEmpty,
|
|
33353
33353
|
{
|
|
33354
33354
|
hasDocuments: allWorkspaceDocuments.length > 0,
|
|
@@ -34769,7 +34769,7 @@ function SsoResendVerificationButton({
|
|
|
34769
34769
|
onClick: async () => handleResendEmailVerification(),
|
|
34770
34770
|
disabled: loading || disabled,
|
|
34771
34771
|
"aria-label": "Resend verification email",
|
|
34772
|
-
children: loading ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
34772
|
+
children: loading ? /* @__PURE__ */ jsxRuntime.jsx(chunkI7GQO43N_cjs.LoadingIndicator, {}) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
34773
34773
|
"Didn't get a verification email? ",
|
|
34774
34774
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-semibold", children: "Resend" })
|
|
34775
34775
|
] })
|
|
@@ -35643,43 +35643,43 @@ Object.defineProperty(exports, "useWorkspaceDocs", {
|
|
|
35643
35643
|
});
|
|
35644
35644
|
Object.defineProperty(exports, "ConnectedWorkflowDocumentsField", {
|
|
35645
35645
|
enumerable: true,
|
|
35646
|
-
get: function () { return
|
|
35646
|
+
get: function () { return chunkNG6AGVZ4_cjs.ConnectedWorkflowDocumentsField; }
|
|
35647
35647
|
});
|
|
35648
35648
|
Object.defineProperty(exports, "ConnectedWorkflowLauncher", {
|
|
35649
35649
|
enumerable: true,
|
|
35650
|
-
get: function () { return
|
|
35650
|
+
get: function () { return chunkNG6AGVZ4_cjs.ConnectedWorkflowLauncher; }
|
|
35651
35651
|
});
|
|
35652
35652
|
Object.defineProperty(exports, "ConnectedWorkflowsTable", {
|
|
35653
35653
|
enumerable: true,
|
|
35654
|
-
get: function () { return
|
|
35654
|
+
get: function () { return chunkNG6AGVZ4_cjs.ConnectedWorkflowsTable; }
|
|
35655
35655
|
});
|
|
35656
35656
|
Object.defineProperty(exports, "DEFAULT_CONNECTED_WORKFLOWS_TABLE_LABELS", {
|
|
35657
35657
|
enumerable: true,
|
|
35658
|
-
get: function () { return
|
|
35658
|
+
get: function () { return chunkNG6AGVZ4_cjs.DEFAULT_CONNECTED_WORKFLOWS_TABLE_LABELS; }
|
|
35659
35659
|
});
|
|
35660
35660
|
Object.defineProperty(exports, "toWorkflowFieldDocument", {
|
|
35661
35661
|
enumerable: true,
|
|
35662
|
-
get: function () { return
|
|
35662
|
+
get: function () { return chunkNG6AGVZ4_cjs.toWorkflowFieldDocument; }
|
|
35663
35663
|
});
|
|
35664
35664
|
Object.defineProperty(exports, "useConnectedAgentOptions", {
|
|
35665
35665
|
enumerable: true,
|
|
35666
|
-
get: function () { return
|
|
35666
|
+
get: function () { return chunkNG6AGVZ4_cjs.useConnectedAgentOptions; }
|
|
35667
35667
|
});
|
|
35668
35668
|
Object.defineProperty(exports, "useConnectedWorkflowScopeSource", {
|
|
35669
35669
|
enumerable: true,
|
|
35670
|
-
get: function () { return
|
|
35670
|
+
get: function () { return chunkNG6AGVZ4_cjs.useConnectedWorkflowScopeSource; }
|
|
35671
35671
|
});
|
|
35672
35672
|
Object.defineProperty(exports, "useConnectedWorkspaceRole", {
|
|
35673
35673
|
enumerable: true,
|
|
35674
|
-
get: function () { return
|
|
35674
|
+
get: function () { return chunkNG6AGVZ4_cjs.useConnectedWorkspaceRole; }
|
|
35675
35675
|
});
|
|
35676
35676
|
Object.defineProperty(exports, "useDocxCommentTarget", {
|
|
35677
35677
|
enumerable: true,
|
|
35678
|
-
get: function () { return
|
|
35678
|
+
get: function () { return chunkNG6AGVZ4_cjs.useDocxCommentTarget; }
|
|
35679
35679
|
});
|
|
35680
35680
|
Object.defineProperty(exports, "useNativeDocxSupport", {
|
|
35681
35681
|
enumerable: true,
|
|
35682
|
-
get: function () { return
|
|
35682
|
+
get: function () { return chunkNG6AGVZ4_cjs.useNativeDocxSupport; }
|
|
35683
35683
|
});
|
|
35684
35684
|
Object.defineProperty(exports, "ConnectedDocumentToolsProvider", {
|
|
35685
35685
|
enumerable: true,
|