@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.
Files changed (95) hide show
  1. package/dist/{ConnectedNativeDocxComparison-VZLB7WWW.cjs → ConnectedNativeDocxComparison-E2QVYVVI.cjs} +8 -7
  2. package/dist/{ConnectedNativeDocxComparison-VZLB7WWW.cjs.map → ConnectedNativeDocxComparison-E2QVYVVI.cjs.map} +1 -1
  3. package/dist/{ConnectedNativeDocxComparison-4MI22H2R.js → ConnectedNativeDocxComparison-KPAQMOIF.js} +7 -6
  4. package/dist/{ConnectedNativeDocxComparison-4MI22H2R.js.map → ConnectedNativeDocxComparison-KPAQMOIF.js.map} +1 -1
  5. package/dist/{ConnectedNativeDocxEditor-YBHAQQSY.js → ConnectedNativeDocxEditor-5PF7J3CP.js} +6 -5
  6. package/dist/{ConnectedNativeDocxEditor-YBHAQQSY.js.map → ConnectedNativeDocxEditor-5PF7J3CP.js.map} +1 -1
  7. package/dist/{ConnectedNativeDocxEditor-74PFGTMR.cjs → ConnectedNativeDocxEditor-XV3K77ZB.cjs} +8 -7
  8. package/dist/{ConnectedNativeDocxEditor-74PFGTMR.cjs.map → ConnectedNativeDocxEditor-XV3K77ZB.cjs.map} +1 -1
  9. package/dist/{ConnectedStreamedWordArtifact-63ME4QD5.cjs → ConnectedStreamedWordArtifact-3N5CIXZU.cjs} +8 -7
  10. package/dist/ConnectedStreamedWordArtifact-3N5CIXZU.cjs.map +1 -0
  11. package/dist/{ConnectedStreamedWordArtifact-ELHQ2VYL.js → ConnectedStreamedWordArtifact-L45BLBRH.js} +7 -6
  12. package/dist/{ConnectedStreamedWordArtifact-ELHQ2VYL.js.map → ConnectedStreamedWordArtifact-L45BLBRH.js.map} +1 -1
  13. package/dist/{WorkspaceTableView-3TIMUU2J.js → WorkspaceTableView-EZAFYKAJ.js} +4 -3
  14. package/dist/WorkspaceTableView-EZAFYKAJ.js.map +1 -0
  15. package/dist/{WorkspaceTableView-FROHEPCT.cjs → WorkspaceTableView-MQXVE3JB.cjs} +4 -3
  16. package/dist/WorkspaceTableView-MQXVE3JB.cjs.map +1 -0
  17. package/dist/agents/index.cjs +327 -326
  18. package/dist/agents/index.js +5 -4
  19. package/dist/calendar/EventAttachments.d.ts +17 -0
  20. package/dist/calendar/EventEditor.d.ts +1 -1
  21. package/dist/calendar/conference.d.ts +2 -0
  22. package/dist/calendar/index.cjs +117 -120
  23. package/dist/calendar/index.d.ts +0 -1
  24. package/dist/calendar/index.js +2 -1
  25. package/dist/calendar/types.d.ts +15 -35
  26. package/dist/{chunk-2A2QX3MS.js → chunk-3SKLWW5D.js} +4 -3
  27. package/dist/chunk-3SKLWW5D.js.map +1 -0
  28. package/dist/{chunk-Z7KGBVKI.js → chunk-6NSGSEYS.js} +5 -5
  29. package/dist/{chunk-Z7KGBVKI.js.map → chunk-6NSGSEYS.js.map} +1 -1
  30. package/dist/{chunk-FEYRHZYB.js → chunk-6SPVTPUQ.js} +3 -3
  31. package/dist/{chunk-FEYRHZYB.js.map → chunk-6SPVTPUQ.js.map} +1 -1
  32. package/dist/{chunk-M6Z7HTJ2.cjs → chunk-6TE3QA3Y.cjs} +6 -5
  33. package/dist/chunk-6TE3QA3Y.cjs.map +1 -0
  34. package/dist/{chunk-BJ24VPOA.js → chunk-AFIJCK66.js} +210 -214
  35. package/dist/chunk-AFIJCK66.js.map +1 -0
  36. package/dist/{chunk-2VHYOTWW.cjs → chunk-AQPZ4QMV.cjs} +3 -201
  37. package/dist/chunk-AQPZ4QMV.cjs.map +1 -0
  38. package/dist/{chunk-TUODUKDK.cjs → chunk-DP4GMPI3.cjs} +4 -4
  39. package/dist/{chunk-TUODUKDK.cjs.map → chunk-DP4GMPI3.cjs.map} +1 -1
  40. package/dist/{chunk-IK4AWPDW.js → chunk-ELH375VC.js} +3 -3
  41. package/dist/{chunk-IK4AWPDW.js.map → chunk-ELH375VC.js.map} +1 -1
  42. package/dist/{chunk-X5FS27BM.js → chunk-FJCSJLTM.js} +4 -4
  43. package/dist/{chunk-X5FS27BM.js.map → chunk-FJCSJLTM.js.map} +1 -1
  44. package/dist/{chunk-AQ2XKOQ7.js → chunk-FT22URKT.js} +4 -4
  45. package/dist/{chunk-AQ2XKOQ7.js.map → chunk-FT22URKT.js.map} +1 -1
  46. package/dist/{chunk-NUSBINUM.js → chunk-G4GLDQLY.js} +7 -203
  47. package/dist/chunk-G4GLDQLY.js.map +1 -0
  48. package/dist/{chunk-2CTG4DHL.cjs → chunk-I7GQO43N.cjs} +7 -7
  49. package/dist/{chunk-2CTG4DHL.cjs.map → chunk-I7GQO43N.cjs.map} +1 -1
  50. package/dist/{chunk-PSTA227J.cjs → chunk-NG6AGVZ4.cjs} +10 -10
  51. package/dist/{chunk-PSTA227J.cjs.map → chunk-NG6AGVZ4.cjs.map} +1 -1
  52. package/dist/{chunk-M7LMEVXY.cjs → chunk-PFJIGGNN.cjs} +50 -50
  53. package/dist/{chunk-M7LMEVXY.cjs.map → chunk-PFJIGGNN.cjs.map} +1 -1
  54. package/dist/{chunk-LLYZGH3L.cjs → chunk-PXVSZRCA.cjs} +208 -213
  55. package/dist/chunk-PXVSZRCA.cjs.map +1 -0
  56. package/dist/{chunk-AY66THUZ.cjs → chunk-RPWWMOYP.cjs} +9 -9
  57. package/dist/{chunk-AY66THUZ.cjs.map → chunk-RPWWMOYP.cjs.map} +1 -1
  58. package/dist/{chunk-3IQUMSJI.js → chunk-VMMRK4SR.js} +3 -3
  59. package/dist/{chunk-3IQUMSJI.js.map → chunk-VMMRK4SR.js.map} +1 -1
  60. package/dist/chunk-VZOOGA47.cjs +210 -0
  61. package/dist/chunk-VZOOGA47.cjs.map +1 -0
  62. package/dist/chunk-WNDIVNPT.js +207 -0
  63. package/dist/chunk-WNDIVNPT.js.map +1 -0
  64. package/dist/{chunk-6HPBSKXG.cjs → chunk-XUKQQCOK.cjs} +4 -4
  65. package/dist/{chunk-6HPBSKXG.cjs.map → chunk-XUKQQCOK.cjs.map} +1 -1
  66. package/dist/connect/docx.cjs +10 -9
  67. package/dist/connect/docx.js +6 -5
  68. package/dist/connect/index.cjs +381 -381
  69. package/dist/connect/index.cjs.map +1 -1
  70. package/dist/connect/index.js +90 -90
  71. package/dist/connect/index.js.map +1 -1
  72. package/dist/connect/viewer.cjs +3 -3
  73. package/dist/connect/viewer.js +3 -3
  74. package/dist/index.cjs +382 -381
  75. package/dist/index.cjs.map +1 -1
  76. package/dist/index.js +6 -5
  77. package/dist/index.js.map +1 -1
  78. package/dist/settings/index.cjs +10 -9
  79. package/dist/settings/index.js +2 -1
  80. package/dist/workflow-canvas/index.cjs +18 -17
  81. package/dist/workflow-canvas/index.cjs.map +1 -1
  82. package/dist/workflow-canvas/index.js +5 -4
  83. package/dist/workflow-canvas/index.js.map +1 -1
  84. package/node_modules/@arbidocs/coedit/package.json +1 -1
  85. package/package.json +5 -5
  86. package/dist/ConnectedStreamedWordArtifact-63ME4QD5.cjs.map +0 -1
  87. package/dist/WorkspaceTableView-3TIMUU2J.js.map +0 -1
  88. package/dist/WorkspaceTableView-FROHEPCT.cjs.map +0 -1
  89. package/dist/calendar/RoomFinder.d.ts +0 -2
  90. package/dist/chunk-2A2QX3MS.js.map +0 -1
  91. package/dist/chunk-2VHYOTWW.cjs.map +0 -1
  92. package/dist/chunk-BJ24VPOA.js.map +0 -1
  93. package/dist/chunk-LLYZGH3L.cjs.map +0 -1
  94. package/dist/chunk-M6Z7HTJ2.cjs.map +0 -1
  95. package/dist/chunk-NUSBINUM.js.map +0 -1
@@ -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 chunkPSTA227J_cjs = require('../chunk-PSTA227J.cjs');
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 chunk2CTG4DHL_cjs = require('../chunk-2CTG4DHL.cjs');
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 chunkAY66THUZ_cjs = require('../chunk-AY66THUZ.cjs');
43
+ var chunkRPWWMOYP_cjs = require('../chunk-RPWWMOYP.cjs');
44
44
  var chunkRFIBUWLF_cjs = require('../chunk-RFIBUWLF.cjs');
45
- var chunkM6Z7HTJ2_cjs = require('../chunk-M6Z7HTJ2.cjs');
45
+ var chunk6TE3QA3Y_cjs = require('../chunk-6TE3QA3Y.cjs');
46
46
  var chunkBYCGAAV5_cjs = require('../chunk-BYCGAAV5.cjs');
47
- var chunk2VHYOTWW_cjs = require('../chunk-2VHYOTWW.cjs');
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 chunkLLYZGH3L_cjs = require('../chunk-LLYZGH3L.cjs');
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
- chunk2CTG4DHL_cjs.WorkspaceActivityList,
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
- chunk2VHYOTWW_cjs.TriStateFilterMenu,
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
- chunk2CTG4DHL_cjs.WorkspaceNotificationMenu,
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" ? chunk2CTG4DHL_cjs.ThreadFollowMenuItem : chunk2CTG4DHL_cjs.ThreadFollowButton;
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(() => chunkAY66THUZ_cjs.importSkillFile(file));
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(() => chunkAY66THUZ_cjs.importSkillFromUrl(url));
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(() => chunkAY66THUZ_cjs.buildLibrarySkills(builtins, listings ?? []), [builtins, listings]);
1045
+ const all = React7.useMemo(() => chunkRPWWMOYP_cjs.buildLibrarySkills(builtins, listings ?? []), [builtins, listings]);
1045
1046
  const shown = React7.useMemo(
1046
- () => chunkAY66THUZ_cjs.filterLibrarySkills(all, { query, source, type }),
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: chunkAY66THUZ_cjs.SKILL_SOURCE_LABELS.builtin, count: count2("builtin") },
1058
- { id: "mine", label: chunkAY66THUZ_cjs.SKILL_SOURCE_LABELS.mine, count: count2("mine") },
1059
- { id: "shared", label: chunkAY66THUZ_cjs.SKILL_SOURCE_LABELS.shared, count: count2("shared") }
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: chunkAY66THUZ_cjs.SKILL_TYPE_LABELS[t] ?? t }))
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 chunkAY66THUZ_cjs.workflowToSkillMarkdown(skill.workflow);
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
- chunkAY66THUZ_cjs.SKILL_MAIN_FILENAME
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(chunkAY66THUZ_cjs.SkillViewToggle, { value: view, onChange: setView })
1177
+ /* @__PURE__ */ jsxRuntime.jsx(chunkRPWWMOYP_cjs.SkillViewToggle, { value: view, onChange: setView })
1177
1178
  ] }),
1178
1179
  /* @__PURE__ */ jsxRuntime.jsx(
1179
- chunkAY66THUZ_cjs.SkillFilterChips,
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
- chunkAY66THUZ_cjs.SkillFilterChips,
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
- chunkAY66THUZ_cjs.SkillTile,
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 ? `${chunkAY66THUZ_cjs.SKILL_SOURCE_LABELS.mine}, shared` : chunkAY66THUZ_cjs.SKILL_SOURCE_LABELS[skill.source],
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
- chunkAY66THUZ_cjs.SkillGenerateForm,
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
- chunkAY66THUZ_cjs.SkillLibraryDetail,
1303
+ chunkRPWWMOYP_cjs.SkillLibraryDetail,
1303
1304
  {
1304
1305
  skill: current,
1305
1306
  icon,
1306
- instructions: current.docExtId ? currentText ? chunkAY66THUZ_cjs.parseSkillFrontmatter(currentText, chunkAY66THUZ_cjs.SKILL_MAIN_FILENAME).content : "" : current.workflow.run.kind === "prompt" ? current.workflow.run.promptTemplate : "",
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 = chunkAY66THUZ_cjs.parseSkillFrontmatter(text2, chunkAY66THUZ_cjs.SKILL_MAIN_FILENAME);
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 = chunkAY66THUZ_cjs.skillSlug(name);
1356
+ const slug = chunkRPWWMOYP_cjs.skillSlug(name);
1356
1357
  try {
1357
- await onSave(slug, chunkAY66THUZ_cjs.serializeSkill({ name: slug, description, body }), isEditing);
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
- chunkAY66THUZ_cjs.SkillEditForm,
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 = chunkAY66THUZ_cjs.DEFAULT_AGENT_CAPABILITIES,
1400
- templates = chunkAY66THUZ_cjs.DEFAULT_AGENT_TEMPLATES,
1401
- types = chunkAY66THUZ_cjs.DEFAULT_AGENT_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 ? chunkAY66THUZ_cjs.stripPersonaPreamble(String(agents.PERSONA ?? "")) : "",
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 (!chunkAY66THUZ_cjs.isValidAgentName(values.name)) {
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: chunkAY66THUZ_cjs.composePersona(name, values.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
- chunkAY66THUZ_cjs.AgentCreator,
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
- chunkAY66THUZ_cjs.AgentAvatarField,
1538
+ chunkRPWWMOYP_cjs.AgentAvatarField,
1538
1539
  {
1539
1540
  picture,
1540
1541
  isBusy: avatarBusy,
1541
- canGenerate: isEdit || chunkAY66THUZ_cjs.isValidAgentName(values.name),
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(chunkAY66THUZ_cjs.AgentConnectInstructions, { email: connect.email, signingKey: connect.signingKey })
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
- chunkAY66THUZ_cjs.TaskRunsDialog,
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 } = chunkPSTA227J_cjs.useConnectedWorkspaceRole();
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(chunkM6Z7HTJ2_cjs.PersonPill, { person });
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
- chunkAY66THUZ_cjs.TaskActivityDialog,
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) : chunkAY66THUZ_cjs.fromPlanSteps(conversation?.plan?.steps ?? []),
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: chunkAY66THUZ_cjs.toPlanSteps(workflow, {
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 = chunkAY66THUZ_cjs.useWorkflowView({
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(chunkPSTA227J_cjs.ConnectedNativeDocxEditor, { documentId: id, title: title ?? labels.wordTitle }) })
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
- chunkAY66THUZ_cjs.WorkflowRunner,
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
- chunkAY66THUZ_cjs.WorkflowStepBar,
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 = chunk2CTG4DHL_cjs.tagTableDocx(data, {
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
- chunk2CTG4DHL_cjs.TagTable,
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 = chunk2CTG4DHL_cjs.glossaryEntries(sources, { labelId: narrowed?.id });
2935
- const blob = format === "docx" ? new Blob([chunk2CTG4DHL_cjs.glossaryDocx(entries, { title })], { type: chunkQT3A4PFC_cjs.DOCX_MIME_TYPE }) : new Blob([chunk2CTG4DHL_cjs.glossaryMarkdown(entries, { title })], { type: "text/markdown" });
2936
- documentTools.downloadBlob(blob, chunk2CTG4DHL_cjs.glossaryFileName(title, format));
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
- chunk2CTG4DHL_cjs.SharedCell,
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
- chunk2VHYOTWW_cjs.TriStateFilterMenu,
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: chunk2CTG4DHL_cjs.tagKindDescription(kind),
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
- chunk2CTG4DHL_cjs.entitiesPhrase().toLowerCase(),
4445
+ chunkI7GQO43N_cjs.entitiesPhrase().toLowerCase(),
4445
4446
  " from ",
4446
- chunk2CTG4DHL_cjs.documentCount(extractingCount),
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: chunk2CTG4DHL_cjs.tagTableLabels(kind),
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: chunk2CTG4DHL_cjs.tagTableLabels(tag.kind),
4567
+ labels: chunkI7GQO43N_cjs.tagTableLabels(tag.kind),
4567
4568
  testId: "tags-rows"
4568
4569
  }
4569
4570
  ),
4570
4571
  /* @__PURE__ */ jsxRuntime.jsx(
4571
- chunk2CTG4DHL_cjs.TagDetail,
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: chunk2CTG4DHL_cjs.tagNoteLabel(tag.kind),
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: chunk2CTG4DHL_cjs.tagDetailLabels(),
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 = chunk2CTG4DHL_cjs.tagsPageNouns();
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 ${chunk2CTG4DHL_cjs.entitiesPhrase().toLowerCase()} from ${chunk2CTG4DHL_cjs.documentCount(docIds.length)}. You will be notified when it is done.`,
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 ${chunk2CTG4DHL_cjs.entitiesPhrase().toLowerCase()}`), "error");
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
- chunk2CTG4DHL_cjs.TagPicker,
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 = chunk2CTG4DHL_cjs.tagsPageNouns();
4719
+ const n = chunkI7GQO43N_cjs.tagsPageNouns();
4719
4720
  const action = view === "person" || view === "organisation" ? {
4720
4721
  label: "Extract",
4721
- title: `Extract ${chunk2CTG4DHL_cjs.entitiesPhrase().toLowerCase()} from ${n.documents.toLowerCase()}`,
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
- chunk2CTG4DHL_cjs.ExtractEntitiesDialog,
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
- chunk2VHYOTWW_cjs.TriStateFilterMenu,
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
- chunk2CTG4DHL_cjs.GridRowNavigator,
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
- chunk2VHYOTWW_cjs.DocumentPicker,
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(chunk2CTG4DHL_cjs.LoadingIndicator, { message: "Loading workspace..." }) });
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
- chunk2CTG4DHL_cjs.EntityIdentityBar,
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: chunk2CTG4DHL_cjs.IDENTITY_NAME_MAX_LENGTH,
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
- chunk2VHYOTWW_cjs.TriStateFilterMenu,
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-FROHEPCT.cjs').then((m) => ({ default: m.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(chunk2CTG4DHL_cjs.LoadingIndicator, { message: "Loading workspaces..." });
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(chunk2CTG4DHL_cjs.LoadingIndicator, { message: "Loading grid..." }), children: /* @__PURE__ */ jsxRuntime.jsx(chunkNJ72FUE2_cjs.HomeCenteredColumn, { children: /* @__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 ? [chunkAY66THUZ_cjs.STATUS_LABELS[chunkAY66THUZ_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
+ 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
- chunk2VHYOTWW_cjs.TriStateFilterMenu,
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 = chunkLLYZGH3L_cjs.normalizeFeedUrl(url);
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}: ${chunkLLYZGH3L_cjs.describeCalendarError(err)}`, "error");
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: ${chunkLLYZGH3L_cjs.describeCalendarError(r.error)}`, "error") : notify17("Calendar synced", "success"),
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: chunkLLYZGH3L_cjs.describeCalendarError(account.last_error) }),
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(chunkLLYZGH3L_cjs.describeCalendarError(err, "Could not connect"))
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(chunkLLYZGH3L_cjs.describeCalendarError(err, "Could not connect the account"));
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(chunkLLYZGH3L_cjs.describeCalendarError(err, "Could not connect the account"));
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: chunkLLYZGH3L_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
+ 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) => chunkLLYZGH3L_cjs.WEEKDAY_NAMES[d]?.slice(0, 3)).join(", ");
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 ? chunkLLYZGH3L_cjs.bookingToForm(page) : chunkLLYZGH3L_cjs.emptyBookingForm(defaultTimeZone)
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 = chunkLLYZGH3L_cjs.validateBookingForm(form);
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(chunkLLYZGH3L_cjs.formToBookingBody(form), {
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(chunkLLYZGH3L_cjs.bookingLink(saved), "Booking link");
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." : chunkLLYZGH3L_cjs.describeCalendarError(err, "Could not save")
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 : chunkLLYZGH3L_cjs.slugify(title) }));
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: chunkLLYZGH3L_cjs.zoneOptions(form.timeZone).map((z) => /* @__PURE__ */ jsxRuntime.jsx("option", { value: z, children: z.replace(/_/g, " ") }, z))
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(chunkLLYZGH3L_cjs.WeeklyHoursEditor, { value: form.weekly, onChange: (weekly) => set("weekly", weekly) }),
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: chunkLLYZGH3L_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
+ 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(chunkLLYZGH3L_cjs.bookingLink(p), "Booking link"),
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: chunkLLYZGH3L_cjs.bookingLink(p), target: "_blank", rel: "noreferrer", children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ExternalLink, { className: "size-4" }) }) }),
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: ${chunkLLYZGH3L_cjs.describeCalendarError(err)}`, "error"),
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(chunkLLYZGH3L_cjs.describeCalendarError(err, "Could not create"))
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) => chunkLLYZGH3L_cjs.formatBusy(b.start, b.end, zone)).join(", ")
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(() => chunkLLYZGH3L_cjs.defaultRoomWindow(zone));
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: chunkLLYZGH3L_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
+ 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(() => chunkLLYZGH3L_cjs.toSettingsValue(settings));
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(chunkLLYZGH3L_cjs.toSettingsValue(settings));
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
- chunkLLYZGH3L_cjs.CalendarSettingsForm,
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 ? chunkLLYZGH3L_cjs.describeCalendarError(save.error) : null,
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 = chunkLLYZGH3L_cjs.isAllDayDraft(draft);
17330
+ const allDay = chunkPXVSZRCA_cjs.isAllDayDraft(draft);
17330
17331
  const range = React7.useMemo(() => {
17331
17332
  try {
17332
- const { startMs, endMs } = chunkLLYZGH3L_cjs.draftRangeUtc(draft, timeZone);
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 ? chunkLLYZGH3L_cjs.freeBusyToRows(freeBusy.data, date, labelOf, roomEmails) : [],
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 & rooms"
17384
+ " Scheduling assistant"
17396
17385
  ]
17397
17386
  }
17398
17387
  );
17399
- return /* @__PURE__ */ jsxRuntime.jsxs(
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
- date && /* @__PURE__ */ jsxRuntime.jsx(
17406
- chunkLLYZGH3L_cjs.SchedulingAssistant,
17407
- {
17408
- date,
17409
- timeZone,
17410
- rows,
17411
- selection: range ? { startUtc: range.start, endUtc: range.end } : null,
17412
- dayStartHour: Math.max(0, Math.min(workingStartHour, 8) - 1),
17413
- dayEndHour: 21,
17414
- loading: freeBusy.isFetching,
17415
- suggestions,
17416
- finding: findTime.isPending,
17417
- onDateChange: setDayOverride,
17418
- onFindTime: () => dayStart && findTime.mutate(
17419
- {
17420
- attendees: ids,
17421
- duration_minutes: Math.max(5, Math.min(duration, 24 * 60)),
17422
- start: new Date(
17423
- Math.max(Date.now(), Date.parse(dayStart) - 864e5)
17424
- ).toISOString(),
17425
- end: new Date(Date.parse(dayStart) + 7 * 864e5).toISOString(),
17426
- working_hours_only: true,
17427
- time_zone: timeZone,
17428
- limit: 8
17429
- },
17430
- {
17431
- onSuccess: (s) => setSuggestions(chunkLLYZGH3L_cjs.toSuggestionViews(s)),
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
- /* @__PURE__ */ jsxRuntime.jsx(
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
- chunkLLYZGH3L_cjs.EventEditor,
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 chunkLLYZGH3L_cjs.formatEventWhen(
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
- chunkLLYZGH3L_cjs.ProposeTimeDialog,
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: chunkLLYZGH3L_cjs.describeCalendarError(publish.error, "Could not publish the calendar") }),
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?:\/\//i.test(url)) window.open(url, "_blank", "noopener,noreferrer");
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(chunkLLYZGH3L_cjs.attendeeKey(a), {
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(chunkLLYZGH3L_cjs.attendeeKey(a))),
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[chunkLLYZGH3L_cjs.attendeeKey(a)] = inv.role ?? "attendee";
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?:\/\//i.test(url)) window.open(url, "_blank", "noopener,noreferrer");
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 = chunkLLYZGH3L_cjs.upcomingOf(events, Date.now(), { showDeclined, hidden }).slice(0, limit);
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
- chunkLLYZGH3L_cjs.conferenceUrl(e) && /* @__PURE__ */ jsxRuntime.jsxs(
18170
+ chunkPXVSZRCA_cjs.conferenceUrl(e) && /* @__PURE__ */ jsxRuntime.jsxs(
18171
18171
  ui.Button,
18172
18172
  {
18173
18173
  type: "button",
18174
18174
  size: "sm",
18175
- variant: chunkLLYZGH3L_cjs.canJoinEvent(e) ? "default" : "ghost",
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, chunkLLYZGH3L_cjs.conferenceUrl(e)),
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
- chunkLLYZGH3L_cjs.isWebinarConference(e.conference) ? "Join webinar" : "Join"
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 ? chunkLLYZGH3L_cjs.attendeeKey(a) in roles : arbiUsers.has(chunkLLYZGH3L_cjs.attendeeKey(a)),
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) => chunkLLYZGH3L_cjs.describeCalendarError(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 = chunkLLYZGH3L_cjs.calendarToListItem(c);
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 = chunkLLYZGH3L_cjs.buildGridEvents(events, calendars, overlays, {
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 = chunkLLYZGH3L_cjs.pendingCreateToGrid(item.requestId, item.op.body, zone);
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 || !chunkLLYZGH3L_cjs.isWebinarConference(c) || !c?.url || !original.conference?.url) return;
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 = chunkLLYZGH3L_cjs.conferenceUrl(event);
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 = chunkLLYZGH3L_cjs.newEventDraft(settings, { slot, calendarId: defaultCalendarId });
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 = chunkLLYZGH3L_cjs.newEventDraft(settings, { calendarId: defaultCalendarId });
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 = chunkLLYZGH3L_cjs.parseOverlayLink(item.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 (!chunkLLYZGH3L_cjs.needsScope(event)) {
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 } = chunkLLYZGH3L_cjs.buildTimeChangeRequest(event, change, scope, zone);
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 = chunkLLYZGH3L_cjs.eventToDraft(event, master);
18557
- if (calls && draft.conference?.url && chunkLLYZGH3L_cjs.isWebinarConference(draft.conference)) {
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(chunkLLYZGH3L_cjs.buildDeleteTarget(event, scope), {
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 (chunkLLYZGH3L_cjs.needsScope(event)) withScope(event, "delete", run);
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 = chunkLLYZGH3L_cjs.validateDraft(editor.draft, zone);
18585
+ const problem = chunkPXVSZRCA_cjs.validateDraft(editor.draft, zone);
18586
18586
  if (problem) {
18587
- setEditor({ ...editor, error: chunkLLYZGH3L_cjs.CALENDAR_DEFAULT_LABELS[problem] });
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(chunkLLYZGH3L_cjs.buildCreateBody(draft), {
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 } = chunkLLYZGH3L_cjs.buildEditRequest(event, editor.original, draft, scope);
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
- chunkLLYZGH3L_cjs.MiniMonth,
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
- chunkLLYZGH3L_cjs.CalendarList,
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
- chunkLLYZGH3L_cjs.CalendarGrid,
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: () => chunkLLYZGH3L_cjs.printCalendar({
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
- chunkLLYZGH3L_cjs.EventDetails,
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: chunkLLYZGH3L_cjs.canJoinEvent(selectedEvent),
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" && chunkLLYZGH3L_cjs.conferenceUrl(selectedEvent) ? () => {
18933
+ onOpenMeetingChat: calls && selectedEvent.conference?.type === "arbi" && chunkPXVSZRCA_cjs.conferenceUrl(selectedEvent) ? () => {
18934
18934
  setSelected(null);
18935
- calls.openChat(chunkLLYZGH3L_cjs.conferenceUrl(selectedEvent));
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
- chunkLLYZGH3L_cjs.ScopeDialog,
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
- chunkLLYZGH3L_cjs.CalendarFormDialog,
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
- chunkLLYZGH3L_cjs.ProposeTimeDialog,
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(chunkLLYZGH3L_cjs.isCalendarAttachment);
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 ? chunkLLYZGH3L_cjs.parseIcsInvite(ics, zone) : null;
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 ? chunkLLYZGH3L_cjs.formatEventWhen(
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." : chunkLLYZGH3L_cjs.publicBookingMessage(err)
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: chunkLLYZGH3L_cjs.formatSlotRange(confirmation.start, confirmation.end, zone) })
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(() => chunkLLYZGH3L_cjs.groupSlotsByDay(page?.slots ?? [], zone), [page?.slots, zone]);
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(chunkLLYZGH3L_cjs.publicBookingMessage(err));
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: chunkLLYZGH3L_cjs.publicBookingMessage(loadError) }),
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 ? chunkLLYZGH3L_cjs.formatSlotRange(
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: chunkLLYZGH3L_cjs.zoneOptions(zone).map((z) => /* @__PURE__ */ jsxRuntime.jsx("option", { value: z, children: z.replace(/_/g, " ") }, z))
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: chunkLLYZGH3L_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: [
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 } = chunkPSTA227J_cjs.useConnectedWorkspaceRole();
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(chunk2CTG4DHL_cjs.EntityTooltip, { children: [
20943
+ const tooltipContent = showTooltip ? /* @__PURE__ */ jsxRuntime.jsxs(chunkI7GQO43N_cjs.EntityTooltip, { children: [
20944
20944
  /* @__PURE__ */ jsxRuntime.jsx(
20945
- chunk2CTG4DHL_cjs.EntityTooltipHeader,
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 } = chunkPSTA227J_cjs.useConnectedWorkspaceRole();
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
- chunk2VHYOTWW_cjs.TriStateFilterMenu,
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
- chunk2CTG4DHL_cjs.GridRowNavigator,
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(chunkAY66THUZ_cjs.ConfigForm, { ...rest, renderModelSelect: hasModels ? renderModelSelect : void 0 });
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
- chunkAY66THUZ_cjs.AgentEditView,
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
- chunkAY66THUZ_cjs.AgentMainView,
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
- chunkAY66THUZ_cjs.AgentCreatedView,
27202
+ chunkRPWWMOYP_cjs.AgentCreatedView,
27203
27203
  {
27204
27204
  email: result.email,
27205
27205
  signingKey: result.signingKey,
27206
- instructions: /* @__PURE__ */ jsxRuntime.jsx(chunkAY66THUZ_cjs.AgentConnectInstructions, { email: result.email, signingKey: result.signingKey }),
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
- chunkAY66THUZ_cjs.AgentCreateView,
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
- chunkAY66THUZ_cjs.EntityChip,
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 = chunkAY66THUZ_cjs.fromPlanSteps(conversation.plan?.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
- chunkAY66THUZ_cjs.WorkflowRunStatus,
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
- chunkAY66THUZ_cjs.ThreadStatusLine,
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 = chunkAY66THUZ_cjs.latestMessageTime(messageHistory);
28394
+ const latestMessageAt = chunkRPWWMOYP_cjs.latestMessageTime(messageHistory);
28395
28395
  const events = (activity.data ?? []).filter(
28396
- (event) => !chunkAY66THUZ_cjs.isSupersededStop(event, latestMessageAt)
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 = chunkAY66THUZ_cjs.fromPlanSteps(task?.plan?.steps ?? []);
28403
- const entries = chunkAY66THUZ_cjs.compactThreadActivity(events, (id) => planSteps.find((s) => s.id === id)?.title);
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 ? chunkAY66THUZ_cjs.unnotifiedMentions(
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 ? chunkAY66THUZ_cjs.notifiedLabel(recipients.map(personName), missed.map(personName)) : label,
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(chunkAY66THUZ_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" }),
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 = chunkAY66THUZ_cjs.linkedRunsFromActivity(activity.data);
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 = chunkAY66THUZ_cjs.fromPlanSteps(parent?.plan?.steps ?? []);
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 = chunkAY66THUZ_cjs.fromPlanSteps(task?.plan?.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
- chunkAY66THUZ_cjs.WorkflowThreadStrip,
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
- chunkAY66THUZ_cjs.WorkflowStepAction,
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(chunkAY66THUZ_cjs.WorkflowThreadStartedBy, { origin: startedBy }),
28648
- /* @__PURE__ */ jsxRuntime.jsx(chunkAY66THUZ_cjs.TaskFlow, { items: items.filter((item) => !item.step) })
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
- chunk2CTG4DHL_cjs.ThreadFollowMenuItem,
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 = chunkAY66THUZ_cjs.useWorkflowUsage();
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
- chunkAY66THUZ_cjs.WEB_WORKFLOWS,
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 = chunkAY66THUZ_cjs.DASHBOARD_PINNED.flatMap((id) => {
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, ...chunkAY66THUZ_cjs.sortByRecentUse(fromServer, usage)] : [],
28778
- dashboard: [...pinned, ...chunkAY66THUZ_cjs.DASHBOARD_OPERATIONS],
28779
- forTasks: [chunkAY66THUZ_cjs.CUSTOM_TASK, ...all.filter((w) => w.schedulable), chunkAY66THUZ_cjs.REMIND_TASK]
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 = chunkAY66THUZ_cjs.taskComposerToCreateRequest(
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 = chunkAY66THUZ_cjs.taskComposerToUpdateRequest({ ...ctx, plan: ctx.plan ?? null });
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 = chunkAY66THUZ_cjs.composerToWorkflowUpdate({ ...ctx, documentTitles, plan: ctx.plan ?? null });
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 = chunkPSTA227J_cjs.useConnectedWorkflowScopeSource();
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 chunkAY66THUZ_cjs.moveTargets(
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: chunkAY66THUZ_cjs.CUSTOM_TASK_ID,
29006
- reminderWorkflowId: chunkAY66THUZ_cjs.REMIND_TASK_ID,
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
- ...chunkAY66THUZ_cjs.workflowToComposerValues(launchWorkflow, ids),
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 ? chunkAY66THUZ_cjs.workflowToComposerValues(editingWorkflow, ids) : task ? chunkAY66THUZ_cjs.taskToComposerValues(task, ids) : isWorkflow ? {
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 ?? chunkAY66THUZ_cjs.CUSTOM_TASK_ID,
29020
+ workflowId: initialWorkflowId ?? chunkRPWWMOYP_cjs.CUSTOM_TASK_ID,
29021
29021
  when: startLater ? "once" : "now",
29022
29022
  ...initialPrompt ? {
29023
29023
  inputs: {
29024
- [initialWorkflowId === chunkAY66THUZ_cjs.REMIND_TASK_ID ? "message" : "instruction"]: initialPrompt
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: chunkAY66THUZ_cjs.CUSTOM_TASK_ID, notifyOnComplete: true }
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 === chunkAY66THUZ_cjs.CUSTOM_TASK_ID ? plan : null
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
- chunkAY66THUZ_cjs.TaskComposer,
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: chunkAY66THUZ_cjs.AUTOMATION_EVENTS,
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: chunkAY66THUZ_cjs.renderWorkflowIcon,
29147
+ renderIcon: chunkRPWWMOYP_cjs.renderWorkflowIcon,
29148
29148
  scopeSource,
29149
29149
  renderDocuments: (field, value, onChange) => /* @__PURE__ */ jsxRuntime.jsx(
29150
- chunkPSTA227J_cjs.ConnectedWorkflowDocumentsField,
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 === chunkAY66THUZ_cjs.CUSTOM_TASK_ID ? /* @__PURE__ */ jsxRuntime.jsx(
29182
- chunkAY66THUZ_cjs.TaskPlan,
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
- chunkAY66THUZ_cjs.TaskStartDialog,
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 ? chunkAY66THUZ_cjs.REMIND_TASK_ID : void 0,
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
- chunkAY66THUZ_cjs.ThreadLauncher,
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 ? chunkAY66THUZ_cjs.REMIND_TASK_ID : void 0,
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 chunkAY66THUZ_cjs.moveTargets([...tasks, leaf], leaf).map((t) => ({
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 = chunkAY66THUZ_cjs.newThreadToRequest(values);
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
- chunkAY66THUZ_cjs.NewThreadDialog,
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(chunkM6Z7HTJ2_cjs.PersonPill, { person });
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
- [chunkAY66THUZ_cjs.GENERATE_IMAGE_ID]: {
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 !== chunkAY66THUZ_cjs.IMAGE_ASPECT_AUTO ? {
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(() => chunkM6Z7HTJ2_cjs.documentScopeLabels(workspaceTags), [workspaceTags]);
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") || chunkAY66THUZ_cjs.deriveAnnotationName(description);
29626
- const matching = chunkM6Z7HTJ2_cjs.matchWorkflowScope(documents, scope);
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 === chunkAY66THUZ_cjs.ANNOTATE_ID) {
29669
+ if (workflow.id === chunkRPWWMOYP_cjs.ANNOTATE_ID) {
29670
29670
  await annotate(launch);
29671
- chunkAY66THUZ_cjs.recordWorkflowUse(workflow.id);
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
- chunkAY66THUZ_cjs.recordWorkflowUse(workflow.id);
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 = chunkM6Z7HTJ2_cjs.matchWorkflowScope(documents, scope).map((d) => d.external_id);
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 = {}) => chunkAY66THUZ_cjs.openWorkflowLaunch({ 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(() => chunkM6Z7HTJ2_cjs.documentScopeLabels(workspaceTags), [workspaceTags]);
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 !== chunkAY66THUZ_cjs.ANNOTATE_ID || field.name !== "name") return void 0;
29809
- const derived = chunkAY66THUZ_cjs.deriveAnnotationName(String(inputs.description ?? ""));
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
- chunkPSTA227J_cjs.ConnectedWorkflowLauncher,
29815
+ chunkNG6AGVZ4_cjs.ConnectedWorkflowLauncher,
29816
29816
  {
29817
29817
  ...rest,
29818
29818
  workflows,
29819
29819
  onLaunch,
29820
- renderIcon: chunkAY66THUZ_cjs.renderWorkflowIcon,
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 === chunkAY66THUZ_cjs.ANNOTATE_ID && matchedCount !== null ? `Annotate ${matchedCount} document${matchedCount !== 1 ? "s" : ""}` : void 0,
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 !== chunkAY66THUZ_cjs.ANNOTATE_ID) return null;
29828
- const name = String(inputs.name ?? "").trim() || chunkAY66THUZ_cjs.deriveAnnotationName(String(inputs.description ?? ""));
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 = chunkAY66THUZ_cjs.useWorkflowLaunchRequest();
29853
- const close = chunkAY66THUZ_cjs.closeWorkflowLaunch;
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 chunkAY66THUZ_cjs.useWorkflowLaunchRequest() ? /* @__PURE__ */ jsxRuntime.jsx(Inner, {}) : null;
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: chunkAY66THUZ_cjs.renderWorkflowIcon("library"),
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 : chunkAY66THUZ_cjs.getModelIcon(modelName, tag);
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 = chunkAY66THUZ_cjs.getAgentStepPresentation(step, docInfo);
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 = chunkAY66THUZ_cjs.stepAccent(step, tool);
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 ? chunkAY66THUZ_cjs.MODEL_TIER_ICON_MAP[tier] : null;
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
- chunkAY66THUZ_cjs.StepRow,
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: chunkAY66THUZ_cjs.MODEL_TIER_LABELS[tier] ?? tier })
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(chunkAY66THUZ_cjs.StepNarration, { index: step.index, children: /* @__PURE__ */ jsxRuntime.jsx(chunkWB4B6TSW_cjs.ConnectedMarkdown, { isStreaming: false, children: summary }) })
30201
- ) : /* @__PURE__ */ jsxRuntime.jsx(chunkAY66THUZ_cjs.StepSummary, { index: step.index, multiLine: isMultiLine, children: summary })),
30202
- details.map((d, di) => /* @__PURE__ */ jsxRuntime.jsx(chunkAY66THUZ_cjs.StepDetail, { index: step.index, children: d }, di)),
30203
- showOutcome && /* @__PURE__ */ jsxRuntime.jsx(chunkAY66THUZ_cjs.StepOutcome, { index: step.index, failed: outcomeFailed, children: step.outcome }),
30204
- toolParams.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(chunkAY66THUZ_cjs.StepParams, { children: toolParams.map((p) => `${p.key}=${p.value}`).join(" ") }),
30205
- criteriaView && /* @__PURE__ */ jsxRuntime.jsx(chunkAY66THUZ_cjs.GoalCriteria, { criteria: criteriaView }),
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
- chunkAY66THUZ_cjs.SubStepGroup,
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
- chunkAY66THUZ_cjs.StepTraceSummary,
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(chunkAY66THUZ_cjs.StepTrace, { className, summary: summaryNode, children: displayRows.map((row, i) => {
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
- chunkAY66THUZ_cjs.SubAgentLane,
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
- chunkAY66THUZ_cjs.AgentBar,
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 = chunkAY66THUZ_cjs.getCurrentAgentStepPresentation(steps);
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
- chunkAY66THUZ_cjs.AgentBarStatus,
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
- chunkAY66THUZ_cjs.AgentBarIconButton,
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(chunkAY66THUZ_cjs.AgentBarMenu, { items: menuItems })
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(chunkAY66THUZ_cjs.AgentBarNotes, { children: [
30531
+ const below = probeAnswer || queuedNotes.length > 0 ? /* @__PURE__ */ jsxRuntime.jsxs(chunkRPWWMOYP_cjs.AgentBarNotes, { children: [
30532
30532
  queuedNotes.map((message, index) => /* @__PURE__ */ jsxRuntime.jsx(
30533
- chunkAY66THUZ_cjs.AgentBarQueuedNote,
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(chunkAY66THUZ_cjs.AgentBarProbeAnswer, { answer: probeAnswer.answer })
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
- chunkAY66THUZ_cjs.SubagentRoster,
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 = chunkAY66THUZ_cjs.fromPlanSteps(plan?.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 ? chunkAY66THUZ_cjs.getCurrentAgentStepPresentation(message.agentSteps ?? [])?.description : void 0;
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
- chunkAY66THUZ_cjs.AssistantEntity,
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(chunkAY66THUZ_cjs.AssistantEntity, { size: 16, pillSize: "sm" })
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(chunkAY66THUZ_cjs.ThreadActivity, { item: entry.item, children: entry.item.onOpenDocument && /* @__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: chunkAY66THUZ_cjs.BUILTIN_SKILLS, openFor: slashWorkflows.openFor }),
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(chunkAY66THUZ_cjs.TaskEmptyState, { task: currentTask }) : pendingFirstTurn && isGenerating ? /* @__PURE__ */ jsxRuntime.jsx(ConnectedMessageArea, { ref: containerRef, messages: pendingFirstTurn }) : /* @__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(chunk2CTG4DHL_cjs.LoadingIndicator, {}) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
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 chunkPSTA227J_cjs.ConnectedWorkflowDocumentsField; }
35646
+ get: function () { return chunkNG6AGVZ4_cjs.ConnectedWorkflowDocumentsField; }
35647
35647
  });
35648
35648
  Object.defineProperty(exports, "ConnectedWorkflowLauncher", {
35649
35649
  enumerable: true,
35650
- get: function () { return chunkPSTA227J_cjs.ConnectedWorkflowLauncher; }
35650
+ get: function () { return chunkNG6AGVZ4_cjs.ConnectedWorkflowLauncher; }
35651
35651
  });
35652
35652
  Object.defineProperty(exports, "ConnectedWorkflowsTable", {
35653
35653
  enumerable: true,
35654
- get: function () { return chunkPSTA227J_cjs.ConnectedWorkflowsTable; }
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 chunkPSTA227J_cjs.DEFAULT_CONNECTED_WORKFLOWS_TABLE_LABELS; }
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 chunkPSTA227J_cjs.toWorkflowFieldDocument; }
35662
+ get: function () { return chunkNG6AGVZ4_cjs.toWorkflowFieldDocument; }
35663
35663
  });
35664
35664
  Object.defineProperty(exports, "useConnectedAgentOptions", {
35665
35665
  enumerable: true,
35666
- get: function () { return chunkPSTA227J_cjs.useConnectedAgentOptions; }
35666
+ get: function () { return chunkNG6AGVZ4_cjs.useConnectedAgentOptions; }
35667
35667
  });
35668
35668
  Object.defineProperty(exports, "useConnectedWorkflowScopeSource", {
35669
35669
  enumerable: true,
35670
- get: function () { return chunkPSTA227J_cjs.useConnectedWorkflowScopeSource; }
35670
+ get: function () { return chunkNG6AGVZ4_cjs.useConnectedWorkflowScopeSource; }
35671
35671
  });
35672
35672
  Object.defineProperty(exports, "useConnectedWorkspaceRole", {
35673
35673
  enumerable: true,
35674
- get: function () { return chunkPSTA227J_cjs.useConnectedWorkspaceRole; }
35674
+ get: function () { return chunkNG6AGVZ4_cjs.useConnectedWorkspaceRole; }
35675
35675
  });
35676
35676
  Object.defineProperty(exports, "useDocxCommentTarget", {
35677
35677
  enumerable: true,
35678
- get: function () { return chunkPSTA227J_cjs.useDocxCommentTarget; }
35678
+ get: function () { return chunkNG6AGVZ4_cjs.useDocxCommentTarget; }
35679
35679
  });
35680
35680
  Object.defineProperty(exports, "useNativeDocxSupport", {
35681
35681
  enumerable: true,
35682
- get: function () { return chunkPSTA227J_cjs.useNativeDocxSupport; }
35682
+ get: function () { return chunkNG6AGVZ4_cjs.useNativeDocxSupport; }
35683
35683
  });
35684
35684
  Object.defineProperty(exports, "ConnectedDocumentToolsProvider", {
35685
35685
  enumerable: true,