@arbidocs/blocks 0.4.126 → 0.4.128

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 (64) hide show
  1. package/dist/calls/index.cjs +2 -2
  2. package/dist/calls/index.js +1 -1
  3. package/dist/chat/index.cjs +89 -72
  4. package/dist/chat/index.d.ts +1 -0
  5. package/dist/chat/index.js +2 -1
  6. package/dist/chat/open-document.d.ts +66 -0
  7. package/dist/{chunk-DZI7WOUD.cjs → chunk-3BJLNKOB.cjs} +6 -2
  8. package/dist/chunk-3BJLNKOB.cjs.map +1 -0
  9. package/dist/{chunk-IXTQYFIF.js → chunk-6HCJ3ZEU.js} +34 -6
  10. package/dist/chunk-6HCJ3ZEU.js.map +1 -0
  11. package/dist/{chunk-HQH35JWC.js → chunk-7BJRLP3U.js} +6 -3
  12. package/dist/chunk-7BJRLP3U.js.map +1 -0
  13. package/dist/{chunk-6Z72CXZR.js → chunk-CJBN5HIS.js} +6 -2
  14. package/dist/chunk-CJBN5HIS.js.map +1 -0
  15. package/dist/{chunk-JJLMCV3T.js → chunk-ECERC6TI.js} +32 -28
  16. package/dist/chunk-ECERC6TI.js.map +1 -0
  17. package/dist/{chunk-4VCKYR4D.cjs → chunk-FSBY2S4V.cjs} +6 -3
  18. package/dist/chunk-FSBY2S4V.cjs.map +1 -0
  19. package/dist/chunk-GYCQ3FNL.js +60 -0
  20. package/dist/chunk-GYCQ3FNL.js.map +1 -0
  21. package/dist/{chunk-VMZXFYHK.cjs → chunk-NZUQFF35.cjs} +2 -2
  22. package/dist/{chunk-VMZXFYHK.cjs.map → chunk-NZUQFF35.cjs.map} +1 -1
  23. package/dist/{chunk-U6MPHCEB.cjs → chunk-O6IEZDRC.cjs} +33 -5
  24. package/dist/chunk-O6IEZDRC.cjs.map +1 -0
  25. package/dist/chunk-SWQX6CTT.cjs +65 -0
  26. package/dist/chunk-SWQX6CTT.cjs.map +1 -0
  27. package/dist/{chunk-GICUGQNN.cjs → chunk-ZAVEMQ37.cjs} +31 -27
  28. package/dist/chunk-ZAVEMQ37.cjs.map +1 -0
  29. package/dist/{chunk-Y4X3RBFI.js → chunk-ZCHSJUCI.js} +2 -2
  30. package/dist/{chunk-Y4X3RBFI.js.map → chunk-ZCHSJUCI.js.map} +1 -1
  31. package/dist/collaboration/index.cjs +15 -15
  32. package/dist/collaboration/index.js +1 -1
  33. package/dist/collaboration/mail/MailMessageView.d.ts +5 -1
  34. package/dist/connect/docx.cjs +4 -3
  35. package/dist/connect/docx.cjs.map +1 -1
  36. package/dist/connect/docx.js +3 -2
  37. package/dist/connect/docx.js.map +1 -1
  38. package/dist/connect/index.cjs +93 -36
  39. package/dist/connect/index.cjs.map +1 -1
  40. package/dist/connect/index.js +66 -9
  41. package/dist/connect/index.js.map +1 -1
  42. package/dist/connection/mail/types.d.ts +2 -6
  43. package/dist/index.cjs +113 -96
  44. package/dist/index.cjs.map +1 -1
  45. package/dist/index.js +4 -3
  46. package/dist/index.js.map +1 -1
  47. package/dist/settings/ConfirmDialog.d.ts +4 -1
  48. package/dist/settings/index.cjs +3 -3
  49. package/dist/settings/index.js +1 -1
  50. package/dist/studio/index.cjs +3 -2
  51. package/dist/studio/index.cjs.map +1 -1
  52. package/dist/studio/index.js +2 -1
  53. package/dist/studio/index.js.map +1 -1
  54. package/node_modules/@arbidocs/coedit/package.json +1 -1
  55. package/package.json +5 -5
  56. package/src/docx/README.md +7 -3
  57. package/dist/chunk-4VCKYR4D.cjs.map +0 -1
  58. package/dist/chunk-6Z72CXZR.js.map +0 -1
  59. package/dist/chunk-DZI7WOUD.cjs.map +0 -1
  60. package/dist/chunk-GICUGQNN.cjs.map +0 -1
  61. package/dist/chunk-HQH35JWC.js.map +0 -1
  62. package/dist/chunk-IXTQYFIF.js.map +0 -1
  63. package/dist/chunk-JJLMCV3T.js.map +0 -1
  64. package/dist/chunk-U6MPHCEB.cjs.map +0 -1
@@ -3,7 +3,7 @@
3
3
 
4
4
  var chunkDJM7DLCT_cjs = require('../chunk-DJM7DLCT.cjs');
5
5
  require('../chunk-7G2LJMUG.cjs');
6
- var chunkU6MPHCEB_cjs = require('../chunk-U6MPHCEB.cjs');
6
+ var chunkO6IEZDRC_cjs = require('../chunk-O6IEZDRC.cjs');
7
7
  var chunkVLCY46K6_cjs = require('../chunk-VLCY46K6.cjs');
8
8
  require('../chunk-C2CWWEHO.cjs');
9
9
  require('../chunk-ULWRNGGE.cjs');
@@ -175,59 +175,59 @@ Object.defineProperty(exports, "vCardFilename", {
175
175
  });
176
176
  Object.defineProperty(exports, "MailDeliveryBadge", {
177
177
  enumerable: true,
178
- get: function () { return chunkU6MPHCEB_cjs.MailDeliveryBadge; }
178
+ get: function () { return chunkO6IEZDRC_cjs.MailDeliveryBadge; }
179
179
  });
180
180
  Object.defineProperty(exports, "MailDeliveryList", {
181
181
  enumerable: true,
182
- get: function () { return chunkU6MPHCEB_cjs.MailDeliveryList; }
182
+ get: function () { return chunkO6IEZDRC_cjs.MailDeliveryList; }
183
183
  });
184
184
  Object.defineProperty(exports, "MailDocumentPicker", {
185
185
  enumerable: true,
186
- get: function () { return chunkU6MPHCEB_cjs.MailDocumentPicker; }
186
+ get: function () { return chunkO6IEZDRC_cjs.MailDocumentPicker; }
187
187
  });
188
188
  Object.defineProperty(exports, "MailGrid", {
189
189
  enumerable: true,
190
- get: function () { return chunkU6MPHCEB_cjs.MailGrid; }
190
+ get: function () { return chunkO6IEZDRC_cjs.MailGrid; }
191
191
  });
192
192
  Object.defineProperty(exports, "MailMessagePreview", {
193
193
  enumerable: true,
194
- get: function () { return chunkU6MPHCEB_cjs.MailMessagePreview; }
194
+ get: function () { return chunkO6IEZDRC_cjs.MailMessagePreview; }
195
195
  });
196
196
  Object.defineProperty(exports, "MailMessageView", {
197
197
  enumerable: true,
198
- get: function () { return chunkU6MPHCEB_cjs.MailMessageView; }
198
+ get: function () { return chunkO6IEZDRC_cjs.MailMessageView; }
199
199
  });
200
200
  Object.defineProperty(exports, "NEEDS_CONNECTION", {
201
201
  enumerable: true,
202
- get: function () { return chunkU6MPHCEB_cjs.NEEDS_CONNECTION; }
202
+ get: function () { return chunkO6IEZDRC_cjs.NEEDS_CONNECTION; }
203
203
  });
204
204
  Object.defineProperty(exports, "PlainMailBodyEditor", {
205
205
  enumerable: true,
206
- get: function () { return chunkU6MPHCEB_cjs.PlainMailBodyEditor; }
206
+ get: function () { return chunkO6IEZDRC_cjs.PlainMailBodyEditor; }
207
207
  });
208
208
  Object.defineProperty(exports, "draftMailCompose", {
209
209
  enumerable: true,
210
- get: function () { return chunkU6MPHCEB_cjs.draftMailCompose; }
210
+ get: function () { return chunkO6IEZDRC_cjs.draftMailCompose; }
211
211
  });
212
212
  Object.defineProperty(exports, "emptyMailCompose", {
213
213
  enumerable: true,
214
- get: function () { return chunkU6MPHCEB_cjs.emptyMailCompose; }
214
+ get: function () { return chunkO6IEZDRC_cjs.emptyMailCompose; }
215
215
  });
216
216
  Object.defineProperty(exports, "hasCalendarPart", {
217
217
  enumerable: true,
218
- get: function () { return chunkU6MPHCEB_cjs.hasCalendarPart; }
218
+ get: function () { return chunkO6IEZDRC_cjs.hasCalendarPart; }
219
219
  });
220
220
  Object.defineProperty(exports, "mailAddressLabel", {
221
221
  enumerable: true,
222
- get: function () { return chunkU6MPHCEB_cjs.mailAddressLabel; }
222
+ get: function () { return chunkO6IEZDRC_cjs.mailAddressLabel; }
223
223
  });
224
224
  Object.defineProperty(exports, "parseMailRecipients", {
225
225
  enumerable: true,
226
- get: function () { return chunkU6MPHCEB_cjs.parseMailRecipients; }
226
+ get: function () { return chunkO6IEZDRC_cjs.parseMailRecipients; }
227
227
  });
228
228
  Object.defineProperty(exports, "replyMailCompose", {
229
229
  enumerable: true,
230
- get: function () { return chunkU6MPHCEB_cjs.replyMailCompose; }
230
+ get: function () { return chunkO6IEZDRC_cjs.replyMailCompose; }
231
231
  });
232
232
  Object.defineProperty(exports, "DEFAULT_SHARE_CONTROL_LABELS", {
233
233
  enumerable: true,
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  export { ActionMenu, AddContactsForm, AddContactsResults, ContactCard, DEFAULT_ADD_CONTACTS_LABELS, DEFAULT_CONTACT_CARD_LABELS, DEFAULT_CONTACT_OUTCOME_LABELS, DEFAULT_DM_ACCESS_REQUEST_BANNER_LABELS, DEFAULT_DM_GRANT_ACCESS_DIALOG_LABELS, DEFAULT_DM_INVITE_CHIP_LABELS, DEFAULT_DM_THREAD_FRAME_LABELS, DEFAULT_MAIL_FOLDER_TREE_LABELS, DEFAULT_RECIPIENT_PICKER_LABELS, DmAccessRequestBanner, DmGrantAccessDialogView, DmInviteAvatar, DmInviteChip, DmNewTabIcon, DmThreadFrame, DmThreadHeader, MAX_INVITE_EMAILS, MailFolderTree, MemberBulkActions, MemberListLoading, MemberMutedText, MemberNameCell, MemberRoleCell, RecipientPicker, RoleSelect, WorkspaceDeleteButton, buildMailFolderTree, contactToVCard, descendantFolderIds, downloadVCard, isInboxFolder, parseEmails, toAddContactsRow, toAddContactsRows, toggleMailFolder, vCardFilename } from '../chunk-5HFPRI3W.js';
3
3
  import '../chunk-NBV56SGU.js';
4
- export { MailDeliveryBadge, MailDeliveryList, MailDocumentPicker, MailGrid, MailMessagePreview, MailMessageView, NEEDS_CONNECTION, PlainMailBodyEditor, draftMailCompose, emptyMailCompose, hasCalendarPart, mailAddressLabel, parseMailRecipients, replyMailCompose } from '../chunk-IXTQYFIF.js';
4
+ export { MailDeliveryBadge, MailDeliveryList, MailDocumentPicker, MailGrid, MailMessagePreview, MailMessageView, NEEDS_CONNECTION, PlainMailBodyEditor, draftMailCompose, emptyMailCompose, hasCalendarPart, mailAddressLabel, parseMailRecipients, replyMailCompose } from '../chunk-6HCJ3ZEU.js';
5
5
  export { DEFAULT_SHARE_CONTROL_LABELS, ShareControl } from '../chunk-K4BGOPGG.js';
6
6
  import '../chunk-N5YEF3LC.js';
7
7
  import '../chunk-TX2ZICS7.js';
@@ -24,6 +24,10 @@ export interface MailMessageViewProps {
24
24
  personLabel?: (person: MailAddress) => string;
25
25
  /** A calendar invite card, for a message that carries an .ics part. */
26
26
  renderInvite?: () => ReactNode;
27
+ /** In the Trash (ARBI mail): put it back in the folder it was trashed from. Absent: "Move to Inbox". */
28
+ onRestore?: () => void;
29
+ /** In the Trash (ARBI mail): delete it for good (the host confirms). Absent: not offered. */
30
+ onDeleteForever?: () => void;
27
31
  }
28
32
  /** An opened message: its actions, sender, recipients, delivery, attachments and body. */
29
- export declare function MailMessageView({ account, message, folderRole, folders, isOnline, loading, uploadPending, onBack, onEditDraft, onReply, onReplyWithArbi, onUpdate, onDownloadAttachment, onDownloadOriginal, onSaveToWorkspace, personLabel, renderInvite, }: MailMessageViewProps): import("react").JSX.Element;
33
+ export declare function MailMessageView({ account, message, folderRole, folders, isOnline, loading, uploadPending, onBack, onEditDraft, onReply, onReplyWithArbi, onUpdate, onDownloadAttachment, onDownloadOriginal, onSaveToWorkspace, personLabel, renderInvite, onRestore, onDeleteForever, }: MailMessageViewProps): import("react").JSX.Element;
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  'use strict';
3
3
 
4
- var chunkDZI7WOUD_cjs = require('../chunk-DZI7WOUD.cjs');
4
+ var chunk3BJLNKOB_cjs = require('../chunk-3BJLNKOB.cjs');
5
5
  require('../chunk-MUMH3Z6K.cjs');
6
6
  var chunk4TR5QCCX_cjs = require('../chunk-4TR5QCCX.cjs');
7
7
  require('../chunk-S24XEVPS.cjs');
@@ -9,6 +9,7 @@ require('../chunk-V5OAXIBN.cjs');
9
9
  require('../chunk-5FYU7ZIU.cjs');
10
10
  require('../chunk-I2QSDQQV.cjs');
11
11
  require('../chunk-RC25WMVB.cjs');
12
+ require('../chunk-SWQX6CTT.cjs');
12
13
  require('../chunk-7UTB4PHM.cjs');
13
14
  require('../chunk-MHVNT4J3.cjs');
14
15
  require('../chunk-DES3K4SD.cjs');
@@ -18,13 +19,13 @@ function ConnectedStreamedWordArtifact({
18
19
  fontBaseUrl,
19
20
  ...props
20
21
  }) {
21
- const adapter = chunkDZI7WOUD_cjs.useConnectedNativeDocxAdapter(fontBaseUrl);
22
+ const adapter = chunk3BJLNKOB_cjs.useConnectedNativeDocxAdapter(fontBaseUrl);
22
23
  return /* @__PURE__ */ jsxRuntime.jsx(chunk4TR5QCCX_cjs.StreamedWordArtifact, { ...props, adapter });
23
24
  }
24
25
 
25
26
  Object.defineProperty(exports, "ConnectedNativeDocxEditor", {
26
27
  enumerable: true,
27
- get: function () { return chunkDZI7WOUD_cjs.ConnectedNativeDocxEditor; }
28
+ get: function () { return chunk3BJLNKOB_cjs.ConnectedNativeDocxEditor; }
28
29
  });
29
30
  exports.ConnectedStreamedWordArtifact = ConnectedStreamedWordArtifact;
30
31
  //# sourceMappingURL=docx.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/connection/ConnectedStreamedWordArtifact.tsx"],"names":["useConnectedNativeDocxAdapter","jsx","StreamedWordArtifact"],"mappings":";;;;;;;;;;;;;;;AAGO,SAAS,6BAAA,CAA8B;AAAA,EAC5C,WAAA;AAAA,EACA,GAAG;AACL,CAAA,EAA0E;AACxE,EAAA,MAAM,OAAA,GAAUA,gDAA8B,WAAW,CAAA;AACzD,EAAA,uBAAOC,cAAA,CAACC,sCAAA,EAAA,EAAsB,GAAG,KAAA,EAAO,OAAA,EAAkB,CAAA;AAC5D","file":"docx.cjs","sourcesContent":["import { useConnectedNativeDocxAdapter } from './ConnectedNativeDocxEditor'\nimport { StreamedWordArtifact, type StreamedWordArtifactProps } from '../docx/StreamedWordArtifact'\n\nexport function ConnectedStreamedWordArtifact({\n fontBaseUrl,\n ...props\n}: Omit<StreamedWordArtifactProps, 'adapter'> & { fontBaseUrl?: string }) {\n const adapter = useConnectedNativeDocxAdapter(fontBaseUrl)\n return <StreamedWordArtifact {...props} adapter={adapter} />\n}\n"]}
1
+ {"version":3,"sources":["../../src/connection/ConnectedStreamedWordArtifact.tsx"],"names":["useConnectedNativeDocxAdapter","jsx","StreamedWordArtifact"],"mappings":";;;;;;;;;;;;;;;;AAGO,SAAS,6BAAA,CAA8B;AAAA,EAC5C,WAAA;AAAA,EACA,GAAG;AACL,CAAA,EAA0E;AACxE,EAAA,MAAM,OAAA,GAAUA,gDAA8B,WAAW,CAAA;AACzD,EAAA,uBAAOC,cAAA,CAACC,sCAAA,EAAA,EAAsB,GAAG,KAAA,EAAO,OAAA,EAAkB,CAAA;AAC5D","file":"docx.cjs","sourcesContent":["import { useConnectedNativeDocxAdapter } from './ConnectedNativeDocxEditor'\nimport { StreamedWordArtifact, type StreamedWordArtifactProps } from '../docx/StreamedWordArtifact'\n\nexport function ConnectedStreamedWordArtifact({\n fontBaseUrl,\n ...props\n}: Omit<StreamedWordArtifactProps, 'adapter'> & { fontBaseUrl?: string }) {\n const adapter = useConnectedNativeDocxAdapter(fontBaseUrl)\n return <StreamedWordArtifact {...props} adapter={adapter} />\n}\n"]}
@@ -1,6 +1,6 @@
1
1
  "use client";
2
- import { useConnectedNativeDocxAdapter } from '../chunk-6Z72CXZR.js';
3
- export { ConnectedNativeDocxEditor } from '../chunk-6Z72CXZR.js';
2
+ import { useConnectedNativeDocxAdapter } from '../chunk-CJBN5HIS.js';
3
+ export { ConnectedNativeDocxEditor } from '../chunk-CJBN5HIS.js';
4
4
  import '../chunk-OYMWV45N.js';
5
5
  import { StreamedWordArtifact } from '../chunk-MCKOZACC.js';
6
6
  import '../chunk-GYAUJ4KT.js';
@@ -8,6 +8,7 @@ import '../chunk-2FL7QJKJ.js';
8
8
  import '../chunk-HFZ45FD3.js';
9
9
  import '../chunk-QXMR5YHC.js';
10
10
  import '../chunk-AF6RDAJF.js';
11
+ import '../chunk-GYCQ3FNL.js';
11
12
  import '../chunk-AA3PT6KR.js';
12
13
  import '../chunk-7F6CBP3Z.js';
13
14
  import '../chunk-VUNV25KB.js';
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/connection/ConnectedStreamedWordArtifact.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;AAGO,SAAS,6BAAA,CAA8B;AAAA,EAC5C,WAAA;AAAA,EACA,GAAG;AACL,CAAA,EAA0E;AACxE,EAAA,MAAM,OAAA,GAAU,8BAA8B,WAAW,CAAA;AACzD,EAAA,uBAAO,GAAA,CAAC,oBAAA,EAAA,EAAsB,GAAG,KAAA,EAAO,OAAA,EAAkB,CAAA;AAC5D","file":"docx.js","sourcesContent":["import { useConnectedNativeDocxAdapter } from './ConnectedNativeDocxEditor'\nimport { StreamedWordArtifact, type StreamedWordArtifactProps } from '../docx/StreamedWordArtifact'\n\nexport function ConnectedStreamedWordArtifact({\n fontBaseUrl,\n ...props\n}: Omit<StreamedWordArtifactProps, 'adapter'> & { fontBaseUrl?: string }) {\n const adapter = useConnectedNativeDocxAdapter(fontBaseUrl)\n return <StreamedWordArtifact {...props} adapter={adapter} />\n}\n"]}
1
+ {"version":3,"sources":["../../src/connection/ConnectedStreamedWordArtifact.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;AAGO,SAAS,6BAAA,CAA8B;AAAA,EAC5C,WAAA;AAAA,EACA,GAAG;AACL,CAAA,EAA0E;AACxE,EAAA,MAAM,OAAA,GAAU,8BAA8B,WAAW,CAAA;AACzD,EAAA,uBAAO,GAAA,CAAC,oBAAA,EAAA,EAAsB,GAAG,KAAA,EAAO,OAAA,EAAkB,CAAA;AAC5D","file":"docx.js","sourcesContent":["import { useConnectedNativeDocxAdapter } from './ConnectedNativeDocxEditor'\nimport { StreamedWordArtifact, type StreamedWordArtifactProps } from '../docx/StreamedWordArtifact'\n\nexport function ConnectedStreamedWordArtifact({\n fontBaseUrl,\n ...props\n}: Omit<StreamedWordArtifactProps, 'adapter'> & { fontBaseUrl?: string }) {\n const adapter = useConnectedNativeDocxAdapter(fontBaseUrl)\n return <StreamedWordArtifact {...props} adapter={adapter} />\n}\n"]}
@@ -2,8 +2,8 @@
2
2
  'use strict';
3
3
 
4
4
  var chunkOR4CO743_cjs = require('../chunk-OR4CO743.cjs');
5
- var chunk4VCKYR4D_cjs = require('../chunk-4VCKYR4D.cjs');
6
- var chunkDZI7WOUD_cjs = require('../chunk-DZI7WOUD.cjs');
5
+ var chunkFSBY2S4V_cjs = require('../chunk-FSBY2S4V.cjs');
6
+ var chunk3BJLNKOB_cjs = require('../chunk-3BJLNKOB.cjs');
7
7
  var chunkMUMH3Z6K_cjs = require('../chunk-MUMH3Z6K.cjs');
8
8
  var chunkJH6JTI76_cjs = require('../chunk-JH6JTI76.cjs');
9
9
  require('../chunk-S24XEVPS.cjs');
@@ -11,7 +11,7 @@ require('../chunk-V5OAXIBN.cjs');
11
11
  require('../chunk-5FYU7ZIU.cjs');
12
12
  var chunkO4YPVYPO_cjs = require('../chunk-O4YPVYPO.cjs');
13
13
  var chunkD4YR56FV_cjs = require('../chunk-D4YR56FV.cjs');
14
- var chunkU6MPHCEB_cjs = require('../chunk-U6MPHCEB.cjs');
14
+ var chunkO6IEZDRC_cjs = require('../chunk-O6IEZDRC.cjs');
15
15
  var chunkI2QSDQQV_cjs = require('../chunk-I2QSDQQV.cjs');
16
16
  require('../chunk-RC25WMVB.cjs');
17
17
  var chunkLC2KJSUS_cjs = require('../chunk-LC2KJSUS.cjs');
@@ -22,10 +22,12 @@ var chunk2EI7NCUA_cjs = require('../chunk-2EI7NCUA.cjs');
22
22
  require('../chunk-C2CWWEHO.cjs');
23
23
  var chunkQVBZESYQ_cjs = require('../chunk-QVBZESYQ.cjs');
24
24
  require('../chunk-ADOKTJHV.cjs');
25
+ var chunkZAVEMQ37_cjs = require('../chunk-ZAVEMQ37.cjs');
25
26
  var chunk7RGLTF76_cjs = require('../chunk-7RGLTF76.cjs');
26
27
  var chunkULWRNGGE_cjs = require('../chunk-ULWRNGGE.cjs');
27
28
  var chunkWV4IDVDQ_cjs = require('../chunk-WV4IDVDQ.cjs');
28
29
  require('../chunk-B6MVQCXW.cjs');
30
+ var chunkSWQX6CTT_cjs = require('../chunk-SWQX6CTT.cjs');
29
31
  var chunkHM23LXUP_cjs = require('../chunk-HM23LXUP.cjs');
30
32
  require('../chunk-7UTB4PHM.cjs');
31
33
  require('../chunk-32HW2Q33.cjs');
@@ -328,7 +330,7 @@ function useAnswerRetry(missing, refetch) {
328
330
  function useWorkflowThread(workflow, options = {}) {
329
331
  const arbi = react$1.useArbi();
330
332
  const { ensureWorkspaceOpen, status } = chunkMUMH3Z6K_cjs.useConnection();
331
- const { wsId } = chunk4VCKYR4D_cjs.useWorkspaceDocs();
333
+ const { wsId } = chunkFSBY2S4V_cjs.useWorkspaceDocs();
332
334
  const [threadId, setThreadId] = react.useState(options.conversationId);
333
335
  const [localInputs, setLocalInputs] = react.useState(
334
336
  () => chunkHM23LXUP_cjs.initialRunInputs(workflow, options.initialInputs)
@@ -666,7 +668,7 @@ function WorkflowWordDialog({
666
668
  title: title ?? labels.wordTitle,
667
669
  size: "xl",
668
670
  testId: "workflow-word-dialog",
669
- children: /* @__PURE__ */ jsxRuntime.jsx(chunkULWRNGGE_cjs.ModalScaffold.Body, { className: "h-[70dvh] p-0", children: /* @__PURE__ */ jsxRuntime.jsx(chunkDZI7WOUD_cjs.ConnectedNativeDocxEditor, { documentId: id, title: title ?? labels.wordTitle }) })
671
+ children: /* @__PURE__ */ jsxRuntime.jsx(chunkULWRNGGE_cjs.ModalScaffold.Body, { className: "h-[70dvh] p-0", children: /* @__PURE__ */ jsxRuntime.jsx(chunk3BJLNKOB_cjs.ConnectedNativeDocxEditor, { documentId: id, title: title ?? labels.wordTitle }) })
670
672
  }
671
673
  );
672
674
  }
@@ -806,7 +808,7 @@ function ConnectedWorkflowRunner({
806
808
  const dl = { ...DEFAULT_WORKFLOW_RUNNER_DIALOG_LABELS, ...dialogLabels };
807
809
  const arbi = react$1.useArbi();
808
810
  const { ensureWorkspaceOpen, user } = chunkMUMH3Z6K_cjs.useConnection();
809
- const { wsId } = chunk4VCKYR4D_cjs.useWorkspaceDocs();
811
+ const { wsId } = chunkFSBY2S4V_cjs.useWorkspaceDocs();
810
812
  const { data: docs = [], refetch } = react$1.useDocuments(wsId);
811
813
  const [sending, setSending] = react.useState([]);
812
814
  const [added, setAdded] = react.useState({});
@@ -2134,10 +2136,7 @@ function useWordBody({
2134
2136
  // eslint-disable-next-line react-hooks/exhaustive-deps
2135
2137
  [word.adapter, client, documentKey]
2136
2138
  );
2137
- react.useEffect(() => {
2138
- if (!roomId) return;
2139
- return word.onRoomOpened?.(roomId) || void 0;
2140
- }, [roomId, word]);
2139
+ chunkSWQX6CTT_cjs.useRegisterOpenDocument({ documentId: roomId });
2141
2140
  const editor = react$1.useMailDraftEditor();
2142
2141
  const state = () => stateRef.current?.() ?? null;
2143
2142
  return {
@@ -2160,7 +2159,7 @@ function useWordBody({
2160
2159
  }
2161
2160
  var MailBodyEditor = react.lazy(
2162
2161
  () => import('../MailBodyEditor-D7MGJMLH.cjs').catch(() => ({
2163
- default: chunkU6MPHCEB_cjs.PlainMailBodyEditor
2162
+ default: chunkO6IEZDRC_cjs.PlainMailBodyEditor
2164
2163
  }))
2165
2164
  );
2166
2165
  var NativeDocxEditor = react.lazy(
@@ -2252,9 +2251,9 @@ function MailComposerForm({
2252
2251
  }, [drafts, draftId, subject]);
2253
2252
  const body = () => ({
2254
2253
  ...initial,
2255
- to: chunkU6MPHCEB_cjs.parseMailRecipients(to),
2256
- cc: chunkU6MPHCEB_cjs.parseMailRecipients(cc),
2257
- bcc: chunkU6MPHCEB_cjs.parseMailRecipients(bcc),
2254
+ to: chunkO6IEZDRC_cjs.parseMailRecipients(to),
2255
+ cc: chunkO6IEZDRC_cjs.parseMailRecipients(cc),
2256
+ bcc: chunkO6IEZDRC_cjs.parseMailRecipients(bcc),
2258
2257
  subject,
2259
2258
  text,
2260
2259
  html,
@@ -2701,7 +2700,7 @@ function MailComposerForm({
2701
2700
  }
2702
2701
  ),
2703
2702
  documents && /* @__PURE__ */ jsxRuntime.jsx(
2704
- chunkU6MPHCEB_cjs.MailDocumentPicker,
2703
+ chunkO6IEZDRC_cjs.MailDocumentPicker,
2705
2704
  {
2706
2705
  documents: documents.documents,
2707
2706
  disabled: locked,
@@ -2822,7 +2821,7 @@ function ConnectedMailComposer({
2822
2821
  openId,
2823
2822
  async (from, id) => {
2824
2823
  const message = await client.getMessage(from, id);
2825
- return chunkU6MPHCEB_cjs.draftMailCompose(
2824
+ return chunkO6IEZDRC_cjs.draftMailCompose(
2826
2825
  message,
2827
2826
  await hydrateMailAttachments(client, from, message.id, message.attachments, {
2828
2827
  isOnline,
@@ -2836,11 +2835,11 @@ function ConnectedMailComposer({
2836
2835
  const start = react.useMemo(() => {
2837
2836
  if (replyTo)
2838
2837
  return original.data && account ? {
2839
- ...chunkU6MPHCEB_cjs.replyMailCompose(original.data, { account, folderRole: "inbox" }),
2838
+ ...chunkO6IEZDRC_cjs.replyMailCompose(original.data, { account, folderRole: "inbox" }),
2840
2839
  text: "",
2841
2840
  html: ""
2842
2841
  } : void 0;
2843
- return reloaded ? draft.data : initial ?? (openId ? draft.data : chunkU6MPHCEB_cjs.emptyMailCompose());
2842
+ return reloaded ? draft.data : initial ?? (openId ? draft.data : chunkO6IEZDRC_cjs.emptyMailCompose());
2844
2843
  }, [replyTo, original.data, account, reloaded, initial, openId, draft.data]);
2845
2844
  if (!start)
2846
2845
  return draft.error ?? original.error ? /* @__PURE__ */ jsxRuntime.jsx("p", { role: "alert", className: "p-4 text-sm text-destructive", children: (draft.error ?? original.error)?.message }) : /* @__PURE__ */ jsxRuntime.jsx("p", { className: "p-4 text-sm text-muted-foreground", children: "Loading draft\u2026" });
@@ -3147,7 +3146,7 @@ function ConnectedMailbox({
3147
3146
  const message = detail.data;
3148
3147
  react.useEffect(() => {
3149
3148
  if (!composeAttachments?.length) return;
3150
- openCompose({ ...chunkU6MPHCEB_cjs.emptyMailCompose(), attachments: composeAttachments });
3149
+ openCompose({ ...chunkO6IEZDRC_cjs.emptyMailCompose(), attachments: composeAttachments });
3151
3150
  onComposeOpened?.();
3152
3151
  }, [composeAttachments]);
3153
3152
  react.useEffect(() => {
@@ -3187,6 +3186,34 @@ function ConnectedMailbox({
3187
3186
  body: JSON.stringify(body)
3188
3187
  }
3189
3188
  );
3189
+ const nativeTrash = account?.provider === "native" && folderRole === "trash";
3190
+ const [confirmDelete, setConfirmDelete] = react.useState(null);
3191
+ const [deleting, setDeleting] = react.useState(false);
3192
+ const deleteForever = async () => {
3193
+ if (!account || !isOnline || !confirmDelete) return;
3194
+ setDeleting(true);
3195
+ try {
3196
+ if (confirmDelete === "message" && selected) {
3197
+ await react$1.mailJson(
3198
+ client.fetch,
3199
+ `${react$1.accountPath(account.id)}/messages/${encodeURIComponent(selected)}`,
3200
+ { method: "DELETE" }
3201
+ );
3202
+ setSelected(null);
3203
+ } else if (confirmDelete === "trash") {
3204
+ await react$1.mailJson(client.fetch, `${react$1.accountPath(account.id)}/messages?folder=trash`, {
3205
+ method: "DELETE"
3206
+ });
3207
+ setSelected(null);
3208
+ }
3209
+ await cache.refreshAll();
3210
+ } catch (e) {
3211
+ setActionError(e instanceof Error ? e.message : "Could not delete");
3212
+ } finally {
3213
+ setDeleting(false);
3214
+ setConfirmDelete(null);
3215
+ }
3216
+ };
3190
3217
  const update = async (body) => {
3191
3218
  if (!selected || !account || !isOnline) return;
3192
3219
  try {
@@ -3247,7 +3274,7 @@ function ConnectedMailbox({
3247
3274
  const editDraft = async () => {
3248
3275
  if (!message) return;
3249
3276
  try {
3250
- openCompose(chunkU6MPHCEB_cjs.draftMailCompose(message, await hydrate(message.attachments)));
3277
+ openCompose(chunkO6IEZDRC_cjs.draftMailCompose(message, await hydrate(message.attachments)));
3251
3278
  } catch (e) {
3252
3279
  setActionError(e instanceof Error ? e.message : "Could not load draft attachments");
3253
3280
  }
@@ -3256,7 +3283,7 @@ function ConnectedMailbox({
3256
3283
  if (!message || !account) return;
3257
3284
  try {
3258
3285
  const attachments = forward ? await hydrate(message.attachments) : [];
3259
- openCompose(chunkU6MPHCEB_cjs.replyMailCompose(message, { account, folderRole, forward, all, attachments }));
3286
+ openCompose(chunkO6IEZDRC_cjs.replyMailCompose(message, { account, folderRole, forward, all, attachments }));
3260
3287
  } catch (e) {
3261
3288
  setActionError(e instanceof Error ? e.message : "Could not prepare forwarded attachments");
3262
3289
  }
@@ -3360,12 +3387,23 @@ function ConnectedMailbox({
3360
3387
  children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Settings, { className: "size-4" })
3361
3388
  }
3362
3389
  ),
3390
+ nativeTrash && /* @__PURE__ */ jsxRuntime.jsx(
3391
+ ui.Button,
3392
+ {
3393
+ size: "sm",
3394
+ variant: "ghost",
3395
+ disabled: !isOnline,
3396
+ "data-testid": "mail-empty-trash-button",
3397
+ onClick: () => setConfirmDelete("trash"),
3398
+ children: "Empty Trash"
3399
+ }
3400
+ ),
3363
3401
  /* @__PURE__ */ jsxRuntime.jsxs(
3364
3402
  ui.Button,
3365
3403
  {
3366
3404
  size: "sm",
3367
3405
  disabled: !ready || !!compose,
3368
- onClick: () => openCompose(chunkU6MPHCEB_cjs.emptyMailCompose()),
3406
+ onClick: () => openCompose(chunkO6IEZDRC_cjs.emptyMailCompose()),
3369
3407
  children: [
3370
3408
  /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Plus, { className: "mr-1.5 size-4" }),
3371
3409
  "Email"
@@ -3444,7 +3482,7 @@ function ConnectedMailbox({
3444
3482
  onEdit: (value) => openCompose({ ...value })
3445
3483
  }),
3446
3484
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: deviceFolder ? "hidden" : "min-h-0 flex-1", children: /* @__PURE__ */ jsxRuntime.jsx(
3447
- chunkU6MPHCEB_cjs.MailGrid,
3485
+ chunkO6IEZDRC_cjs.MailGrid,
3448
3486
  {
3449
3487
  messages: filteredMessages,
3450
3488
  loading: list.isPending && list.fetchStatus !== "idle",
@@ -3508,7 +3546,7 @@ function ConnectedMailbox({
3508
3546
  },
3509
3547
  `${account?.id}-${composeSession}`
3510
3548
  ) : message && selected ? /* @__PURE__ */ jsxRuntime.jsx(
3511
- chunkU6MPHCEB_cjs.MailMessageView,
3549
+ chunkO6IEZDRC_cjs.MailMessageView,
3512
3550
  {
3513
3551
  account,
3514
3552
  message,
@@ -3529,6 +3567,8 @@ function ConnectedMailbox({
3529
3567
  onReply: (forward, all) => void reply(forward, all),
3530
3568
  onReplyWithArbi: onReplyWithArbi && account.provider === "native" ? () => onReplyWithArbi(message, account) : void 0,
3531
3569
  onUpdate: (body) => void update(body),
3570
+ onRestore: nativeTrash ? () => void update({ action: "restore" }) : void 0,
3571
+ onDeleteForever: nativeTrash ? () => setConfirmDelete("message") : void 0,
3532
3572
  onDownloadAttachment: (a) => void downloadAttachment(a),
3533
3573
  onDownloadOriginal: () => void download(
3534
3574
  `${react$1.accountPath(account.id)}/messages/${message.id}/original`,
@@ -3580,6 +3620,19 @@ function ConnectedMailbox({
3580
3620
  settings: offline?.renderSettings?.(),
3581
3621
  onClose: () => setSettings(false)
3582
3622
  }
3623
+ ),
3624
+ /* @__PURE__ */ jsxRuntime.jsx(
3625
+ chunkZAVEMQ37_cjs.ConfirmDialog,
3626
+ {
3627
+ isOpen: confirmDelete !== null,
3628
+ onClose: () => setConfirmDelete(null),
3629
+ onConfirm: () => void deleteForever(),
3630
+ isLoading: deleting,
3631
+ title: confirmDelete === "trash" ? "Empty Trash?" : "Delete forever?",
3632
+ description: confirmDelete === "trash" ? "Every message in the Trash is deleted permanently and stops using your storage. This cannot be undone." : "This message is deleted permanently and stops using your storage. This cannot be undone.",
3633
+ confirmText: confirmDelete === "trash" ? "Empty Trash" : "Delete forever",
3634
+ testId: "mail-delete-forever-dialog"
3635
+ }
3583
3636
  )
3584
3637
  ] });
3585
3638
  }
@@ -3630,7 +3683,7 @@ function ConnectedMailMessage({
3630
3683
  const attachments = forward ? await hydrateMailAttachments(client, account, message.id, message.attachments, {
3631
3684
  isOnline
3632
3685
  }) : [];
3633
- onCompose(chunkU6MPHCEB_cjs.replyMailCompose(message, { account, folderRole, forward, all, attachments }));
3686
+ onCompose(chunkO6IEZDRC_cjs.replyMailCompose(message, { account, folderRole, forward, all, attachments }));
3634
3687
  } catch (e) {
3635
3688
  setError(e instanceof Error ? e.message : "Could not prepare forwarded attachments");
3636
3689
  }
@@ -3638,7 +3691,7 @@ function ConnectedMailMessage({
3638
3691
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex h-full min-h-0 flex-col", children: [
3639
3692
  error && /* @__PURE__ */ jsxRuntime.jsx("p", { role: "alert", className: "px-4 pt-3 text-sm text-destructive", children: error }),
3640
3693
  /* @__PURE__ */ jsxRuntime.jsx(
3641
- chunkU6MPHCEB_cjs.MailMessageView,
3694
+ chunkO6IEZDRC_cjs.MailMessageView,
3642
3695
  {
3643
3696
  account,
3644
3697
  message,
@@ -3649,7 +3702,7 @@ function ConnectedMailMessage({
3649
3702
  onBack: onClose,
3650
3703
  onEditDraft: () => void hydrateMailAttachments(client, account, message.id, message.attachments, {
3651
3704
  isOnline
3652
- }).then((attachments) => onCompose(chunkU6MPHCEB_cjs.draftMailCompose(message, attachments))).catch((e) => setError(e.message)),
3705
+ }).then((attachments) => onCompose(chunkO6IEZDRC_cjs.draftMailCompose(message, attachments))).catch((e) => setError(e.message)),
3653
3706
  onReply: (forward, all) => void reply(forward, all),
3654
3707
  onReplyWithArbi: onReplyWithArbi && account.provider === "native" ? () => onReplyWithArbi(message, account) : void 0,
3655
3708
  onUpdate: (body) => void update(body),
@@ -3663,7 +3716,11 @@ function ConnectedMailMessage({
3663
3716
  ] });
3664
3717
  }
3665
3718
  function ActiveChat({ agentId, workspaceId }) {
3666
- const chat = react$1.useArbiChat({ agentId, workspaceId });
3719
+ const chat = react$1.useArbiChat({
3720
+ agentId,
3721
+ workspaceId,
3722
+ activeArtifact: () => chunkSWQX6CTT_cjs.takeOpenDocumentForTurn({ workspaceId })
3723
+ });
3667
3724
  return /* @__PURE__ */ jsxRuntime.jsx(
3668
3725
  chunkWV4IDVDQ_cjs.ChatPage,
3669
3726
  {
@@ -3727,35 +3784,35 @@ function ConnectedAgentChatPanel({
3727
3784
 
3728
3785
  Object.defineProperty(exports, "ConnectedAssistantDock", {
3729
3786
  enumerable: true,
3730
- get: function () { return chunk4VCKYR4D_cjs.ConnectedAssistantDock; }
3787
+ get: function () { return chunkFSBY2S4V_cjs.ConnectedAssistantDock; }
3731
3788
  });
3732
3789
  Object.defineProperty(exports, "redlineStats", {
3733
3790
  enumerable: true,
3734
- get: function () { return chunk4VCKYR4D_cjs.redlineStats; }
3791
+ get: function () { return chunkFSBY2S4V_cjs.redlineStats; }
3735
3792
  });
3736
3793
  Object.defineProperty(exports, "textToArtifact", {
3737
3794
  enumerable: true,
3738
- get: function () { return chunk4VCKYR4D_cjs.textToArtifact; }
3795
+ get: function () { return chunkFSBY2S4V_cjs.textToArtifact; }
3739
3796
  });
3740
3797
  Object.defineProperty(exports, "toRedlineMarkdown", {
3741
3798
  enumerable: true,
3742
- get: function () { return chunk4VCKYR4D_cjs.toRedlineMarkdown; }
3799
+ get: function () { return chunkFSBY2S4V_cjs.toRedlineMarkdown; }
3743
3800
  });
3744
3801
  Object.defineProperty(exports, "useConnectedAiTask", {
3745
3802
  enumerable: true,
3746
- get: function () { return chunk4VCKYR4D_cjs.useConnectedAiTask; }
3803
+ get: function () { return chunkFSBY2S4V_cjs.useConnectedAiTask; }
3747
3804
  });
3748
3805
  Object.defineProperty(exports, "useConnectedChat", {
3749
3806
  enumerable: true,
3750
- get: function () { return chunk4VCKYR4D_cjs.useConnectedChat; }
3807
+ get: function () { return chunkFSBY2S4V_cjs.useConnectedChat; }
3751
3808
  });
3752
3809
  Object.defineProperty(exports, "useSemanticSearch", {
3753
3810
  enumerable: true,
3754
- get: function () { return chunk4VCKYR4D_cjs.useSemanticSearch; }
3811
+ get: function () { return chunkFSBY2S4V_cjs.useSemanticSearch; }
3755
3812
  });
3756
3813
  Object.defineProperty(exports, "useWorkspaceDocs", {
3757
3814
  enumerable: true,
3758
- get: function () { return chunk4VCKYR4D_cjs.useWorkspaceDocs; }
3815
+ get: function () { return chunkFSBY2S4V_cjs.useWorkspaceDocs; }
3759
3816
  });
3760
3817
  Object.defineProperty(exports, "ConnectionProvider", {
3761
3818
  enumerable: true,