@arbidocs/blocks 0.5.90 → 0.5.91

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 (127) hide show
  1. package/dist/{ConnectedCallDock-FNJRJ653.js → ConnectedCallDock-PJE7EZ6T.js} +4 -4
  2. package/dist/{ConnectedCallDock-FNJRJ653.js.map → ConnectedCallDock-PJE7EZ6T.js.map} +1 -1
  3. package/dist/{ConnectedCallDock-W66NDZIJ.cjs → ConnectedCallDock-ZRSZYSLO.cjs} +4 -4
  4. package/dist/{ConnectedCallDock-W66NDZIJ.cjs.map → ConnectedCallDock-ZRSZYSLO.cjs.map} +1 -1
  5. package/dist/ConnectedCallRoom-S7DO2MP6.js +2 -2
  6. package/dist/ConnectedCallRoom-XK2RPNO6.cjs +2 -2
  7. package/dist/{ConnectedMailInviteCard-RSNELYZX.cjs → ConnectedMailInviteCard-OBDYWUFM.cjs} +5 -5
  8. package/dist/{ConnectedMailInviteCard-RSNELYZX.cjs.map → ConnectedMailInviteCard-OBDYWUFM.cjs.map} +1 -1
  9. package/dist/{ConnectedMailInviteCard-2TXUPVV7.js → ConnectedMailInviteCard-YYPLRL6G.js} +4 -4
  10. package/dist/{ConnectedMailInviteCard-2TXUPVV7.js.map → ConnectedMailInviteCard-YYPLRL6G.js.map} +1 -1
  11. package/dist/{ConnectedNativeDocxComparison-77BRPLGW.js → ConnectedNativeDocxComparison-2RIERXLW.js} +11 -11
  12. package/dist/{ConnectedNativeDocxComparison-77BRPLGW.js.map → ConnectedNativeDocxComparison-2RIERXLW.js.map} +1 -1
  13. package/dist/{ConnectedNativeDocxComparison-7G57TZC7.cjs → ConnectedNativeDocxComparison-46C7LYGT.cjs} +12 -12
  14. package/dist/{ConnectedNativeDocxComparison-7G57TZC7.cjs.map → ConnectedNativeDocxComparison-46C7LYGT.cjs.map} +1 -1
  15. package/dist/{ConnectedNativeDocxEditor-YKLNR2FO.cjs → ConnectedNativeDocxEditor-6XMB2XT7.cjs} +12 -12
  16. package/dist/{ConnectedNativeDocxEditor-YKLNR2FO.cjs.map → ConnectedNativeDocxEditor-6XMB2XT7.cjs.map} +1 -1
  17. package/dist/{ConnectedNativeDocxEditor-JSZURNVZ.js → ConnectedNativeDocxEditor-K6X63CPL.js} +10 -10
  18. package/dist/{ConnectedNativeDocxEditor-JSZURNVZ.js.map → ConnectedNativeDocxEditor-K6X63CPL.js.map} +1 -1
  19. package/dist/{ConnectedProductionSetDialog-ZEKYUQXE.js → ConnectedProductionSetDialog-JXQLGDIH.js} +3 -3
  20. package/dist/{ConnectedProductionSetDialog-ZEKYUQXE.js.map → ConnectedProductionSetDialog-JXQLGDIH.js.map} +1 -1
  21. package/dist/{ConnectedProductionSetDialog-MQ5OLTSR.cjs → ConnectedProductionSetDialog-T3Q32XPJ.cjs} +3 -3
  22. package/dist/{ConnectedProductionSetDialog-MQ5OLTSR.cjs.map → ConnectedProductionSetDialog-T3Q32XPJ.cjs.map} +1 -1
  23. package/dist/{ConnectedStreamedWordArtifact-TMVTOSEP.js → ConnectedStreamedWordArtifact-6UMLSR3G.js} +11 -11
  24. package/dist/ConnectedStreamedWordArtifact-6UMLSR3G.js.map +1 -0
  25. package/dist/{ConnectedStreamedWordArtifact-WOE4WNJO.cjs → ConnectedStreamedWordArtifact-GFFLCGF7.cjs} +12 -12
  26. package/dist/ConnectedStreamedWordArtifact-GFFLCGF7.cjs.map +1 -0
  27. package/dist/{DocumentReviewCard-FOYUZWAW.js → DocumentReviewCard-SAKLHM4Y.js} +4 -4
  28. package/dist/{DocumentReviewCard-FOYUZWAW.js.map → DocumentReviewCard-SAKLHM4Y.js.map} +1 -1
  29. package/dist/{DocumentReviewCard-JY2WZCEK.cjs → DocumentReviewCard-XGYMO5YS.cjs} +4 -4
  30. package/dist/{DocumentReviewCard-JY2WZCEK.cjs.map → DocumentReviewCard-XGYMO5YS.cjs.map} +1 -1
  31. package/dist/{FilesViewerDialog-SVT7CVAZ.cjs → FilesViewerDialog-3C6JUMVS.cjs} +11 -11
  32. package/dist/{FilesViewerDialog-SVT7CVAZ.cjs.map → FilesViewerDialog-3C6JUMVS.cjs.map} +1 -1
  33. package/dist/{FilesViewerDialog-MPMYI5NP.js → FilesViewerDialog-HNBRY7RQ.js} +10 -10
  34. package/dist/{FilesViewerDialog-MPMYI5NP.js.map → FilesViewerDialog-HNBRY7RQ.js.map} +1 -1
  35. package/dist/WorkspaceTableView-DFN4WGRI.js +1 -1
  36. package/dist/WorkspaceTableView-UOP3EB2F.cjs +1 -1
  37. package/dist/agents/index.cjs +254 -254
  38. package/dist/agents/index.js +4 -4
  39. package/dist/calendar/index.cjs +116 -116
  40. package/dist/calendar/index.js +1 -1
  41. package/dist/calls/index.cjs +2 -2
  42. package/dist/calls/index.js +2 -2
  43. package/dist/chat/index.cjs +18 -18
  44. package/dist/chat/index.js +2 -2
  45. package/dist/{chunk-WVCTH42C.cjs → chunk-3TECBO75.cjs} +12 -12
  46. package/dist/{chunk-WVCTH42C.cjs.map → chunk-3TECBO75.cjs.map} +1 -1
  47. package/dist/{chunk-AJ4TBTA3.js → chunk-4KARJ4CC.js} +3 -3
  48. package/dist/{chunk-AJ4TBTA3.js.map → chunk-4KARJ4CC.js.map} +1 -1
  49. package/dist/{chunk-PIFTGL57.js → chunk-4RFNQRUD.js} +5 -5
  50. package/dist/{chunk-PIFTGL57.js.map → chunk-4RFNQRUD.js.map} +1 -1
  51. package/dist/{chunk-K2AVKRZI.cjs → chunk-4VUKYB32.cjs} +4 -4
  52. package/dist/{chunk-K2AVKRZI.cjs.map → chunk-4VUKYB32.cjs.map} +1 -1
  53. package/dist/{chunk-7MFZS24I.cjs → chunk-5YBH5CQD.cjs} +9 -9
  54. package/dist/{chunk-7MFZS24I.cjs.map → chunk-5YBH5CQD.cjs.map} +1 -1
  55. package/dist/{chunk-JSWF2AMA.js → chunk-636KUL53.js} +4 -4
  56. package/dist/{chunk-JSWF2AMA.js.map → chunk-636KUL53.js.map} +1 -1
  57. package/dist/{chunk-B5FFLDK7.js → chunk-6T4ZMGGT.js} +3 -3
  58. package/dist/{chunk-B5FFLDK7.js.map → chunk-6T4ZMGGT.js.map} +1 -1
  59. package/dist/{chunk-7E3SUV4J.cjs → chunk-6Y7MHSIT.cjs} +3 -3
  60. package/dist/{chunk-7E3SUV4J.cjs.map → chunk-6Y7MHSIT.cjs.map} +1 -1
  61. package/dist/{chunk-KUBNSEQP.cjs → chunk-CLPDKHSP.cjs} +10 -10
  62. package/dist/{chunk-KUBNSEQP.cjs.map → chunk-CLPDKHSP.cjs.map} +1 -1
  63. package/dist/{chunk-UPG4IEQV.js → chunk-EXZPKMMP.js} +11 -11
  64. package/dist/{chunk-UPG4IEQV.js.map → chunk-EXZPKMMP.js.map} +1 -1
  65. package/dist/{chunk-IMINN6RD.js → chunk-FKPFKSDT.js} +3 -3
  66. package/dist/{chunk-IMINN6RD.js.map → chunk-FKPFKSDT.js.map} +1 -1
  67. package/dist/{chunk-WVEYUH6C.cjs → chunk-GNKQVCMW.cjs} +6 -6
  68. package/dist/{chunk-WVEYUH6C.cjs.map → chunk-GNKQVCMW.cjs.map} +1 -1
  69. package/dist/{chunk-EZGK7FLE.js → chunk-GUGSUCIK.js} +3 -3
  70. package/dist/{chunk-EZGK7FLE.js.map → chunk-GUGSUCIK.js.map} +1 -1
  71. package/dist/{chunk-GS5OCYNQ.cjs → chunk-HMS3GRMI.cjs} +3 -3
  72. package/dist/{chunk-GS5OCYNQ.cjs.map → chunk-HMS3GRMI.cjs.map} +1 -1
  73. package/dist/{chunk-I6SPGHFY.cjs → chunk-HUE76NAI.cjs} +2 -2
  74. package/dist/{chunk-I6SPGHFY.cjs.map → chunk-HUE76NAI.cjs.map} +1 -1
  75. package/dist/{chunk-KFKRZ5WX.js → chunk-IXA534S4.js} +7 -7
  76. package/dist/{chunk-KFKRZ5WX.js.map → chunk-IXA534S4.js.map} +1 -1
  77. package/dist/{chunk-MTSXOBK2.js → chunk-KPD7WAXP.js} +3 -3
  78. package/dist/{chunk-MTSXOBK2.js.map → chunk-KPD7WAXP.js.map} +1 -1
  79. package/dist/{chunk-KLRYWHLD.cjs → chunk-KXRGVY3M.cjs} +4 -4
  80. package/dist/{chunk-KLRYWHLD.cjs.map → chunk-KXRGVY3M.cjs.map} +1 -1
  81. package/dist/{chunk-6GSKZGLR.cjs → chunk-NZ26UYEQ.cjs} +11 -11
  82. package/dist/{chunk-6GSKZGLR.cjs.map → chunk-NZ26UYEQ.cjs.map} +1 -1
  83. package/dist/{chunk-LTRFQ2IC.js → chunk-PYLG3M6G.js} +2 -2
  84. package/dist/{chunk-LTRFQ2IC.js.map → chunk-PYLG3M6G.js.map} +1 -1
  85. package/dist/{chunk-F3KBCQKH.cjs → chunk-RCOJ7JG5.cjs} +4 -4
  86. package/dist/{chunk-F3KBCQKH.cjs.map → chunk-RCOJ7JG5.cjs.map} +1 -1
  87. package/dist/{chunk-FHJOI5GV.js → chunk-TSP5JJ56.js} +3 -3
  88. package/dist/{chunk-FHJOI5GV.js.map → chunk-TSP5JJ56.js.map} +1 -1
  89. package/dist/{chunk-SUP6LS22.js → chunk-TVLY7FTU.js} +3 -3
  90. package/dist/{chunk-SUP6LS22.js.map → chunk-TVLY7FTU.js.map} +1 -1
  91. package/dist/{chunk-LFXUJNXJ.cjs → chunk-VJLW3UPL.cjs} +6 -6
  92. package/dist/{chunk-LFXUJNXJ.cjs.map → chunk-VJLW3UPL.cjs.map} +1 -1
  93. package/dist/{chunk-D3ABKS7T.cjs → chunk-VK5Q5JXU.cjs} +3 -3
  94. package/dist/{chunk-D3ABKS7T.cjs.map → chunk-VK5Q5JXU.cjs.map} +1 -1
  95. package/dist/{chunk-B36GZ4FJ.js → chunk-WWMVVAA5.js} +6 -6
  96. package/dist/{chunk-B36GZ4FJ.js.map → chunk-WWMVVAA5.js.map} +1 -1
  97. package/dist/{chunk-VEG4LR55.cjs → chunk-YACOI5ZU.cjs} +48 -48
  98. package/dist/{chunk-VEG4LR55.cjs.map → chunk-YACOI5ZU.cjs.map} +1 -1
  99. package/dist/{chunk-6U6IY7DB.js → chunk-YIJ4MFYM.js} +3 -3
  100. package/dist/{chunk-6U6IY7DB.js.map → chunk-YIJ4MFYM.js.map} +1 -1
  101. package/dist/connect/docx.cjs +15 -15
  102. package/dist/connect/docx.js +11 -11
  103. package/dist/connect/index.cjs +432 -431
  104. package/dist/connect/index.cjs.map +1 -1
  105. package/dist/connect/index.js +40 -39
  106. package/dist/connect/index.js.map +1 -1
  107. package/dist/connect/viewer.cjs +9 -9
  108. package/dist/connect/viewer.js +8 -8
  109. package/dist/connection/files/ConnectedBulkTagCrumbs.d.ts +6 -1
  110. package/dist/embed/index.cjs +15 -15
  111. package/dist/embed/index.js +9 -9
  112. package/dist/facts/index.cjs +44 -44
  113. package/dist/facts/index.js +3 -3
  114. package/dist/index.cjs +430 -430
  115. package/dist/index.js +13 -13
  116. package/dist/settings/index.cjs +1 -1
  117. package/dist/settings/index.js +1 -1
  118. package/dist/site/index.cjs +5 -5
  119. package/dist/site/index.js +1 -1
  120. package/dist/studio/index.cjs +1 -1
  121. package/dist/studio/index.js +1 -1
  122. package/dist/workflow-canvas/index.cjs +32 -32
  123. package/dist/workflow-canvas/index.js +17 -17
  124. package/node_modules/@arbidocs/coedit/package.json +1 -1
  125. package/package.json +5 -5
  126. package/dist/ConnectedStreamedWordArtifact-TMVTOSEP.js.map +0 -1
  127. package/dist/ConnectedStreamedWordArtifact-WOE4WNJO.cjs.map +0 -1
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  'use strict';
3
3
 
4
- var chunkI6SPGHFY_cjs = require('./chunk-I6SPGHFY.cjs');
4
+ var chunkHUE76NAI_cjs = require('./chunk-HUE76NAI.cjs');
5
5
  var chunkQUMUAJ2P_cjs = require('./chunk-QUMUAJ2P.cjs');
6
6
  var chunkUIXY4HKM_cjs = require('./chunk-UIXY4HKM.cjs');
7
7
  var react$1 = require('react');
@@ -24,11 +24,11 @@ function ConnectedMailInviteCard({
24
24
  onOpenEvent
25
25
  }) {
26
26
  const { notify } = chunkUIXY4HKM_cjs.useBlocksEnvironment();
27
- const part = attachments.find(chunkI6SPGHFY_cjs.isCalendarAttachment);
27
+ const part = attachments.find(chunkHUE76NAI_cjs.isCalendarAttachment);
28
28
  const { data: settings } = react.useCalendarSettings(!!part);
29
29
  const zone = chunkQUMUAJ2P_cjs.safeZone(settings?.time_zone, chunkQUMUAJ2P_cjs.detectTimeZone());
30
30
  const { data: ics } = react.useMailAttachmentText(accountId, messageId, part, { enabled: isOnline });
31
- const invite = ics ? chunkI6SPGHFY_cjs.parseIcsInvite(ics, zone) : null;
31
+ const invite = ics ? chunkHUE76NAI_cjs.parseIcsInvite(ics, zone) : null;
32
32
  const lookup = react.useCalendarEventByUid(invite?.uid && invite.method !== "REPLY" ? invite.uid : null);
33
33
  const respond = react.useRespondToEvent();
34
34
  const [partstat, setPartstat] = react$1.useState(null);
@@ -36,7 +36,7 @@ function ConnectedMailInviteCard({
36
36
  react$1.useEffect(() => setPartstat(event?.my_partstat ?? null), [event?.my_partstat]);
37
37
  if (!part || !invite) return null;
38
38
  const cancelled = invite.method === "CANCEL" || invite.status === "CANCELLED";
39
- const when = invite.startUtc && invite.endUtc ? chunkI6SPGHFY_cjs.formatEventWhen(
39
+ const when = invite.startUtc && invite.endUtc ? chunkHUE76NAI_cjs.formatEventWhen(
40
40
  {
41
41
  all_day: invite.allDay,
42
42
  start_utc: invite.startUtc,
@@ -132,5 +132,5 @@ function ConnectedMailInviteCard({
132
132
  }
133
133
 
134
134
  exports.ConnectedMailInviteCard = ConnectedMailInviteCard;
135
- //# sourceMappingURL=chunk-WVEYUH6C.cjs.map
136
- //# sourceMappingURL=chunk-WVEYUH6C.cjs.map
135
+ //# sourceMappingURL=chunk-GNKQVCMW.cjs.map
136
+ //# sourceMappingURL=chunk-GNKQVCMW.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/connection/calendar/ConnectedMailInviteCard.tsx"],"names":["useBlocksEnvironment","isCalendarAttachment","useCalendarSettings","safeZone","detectTimeZone","useMailAttachmentText","parseIcsInvite","useCalendarEventByUid","useRespondToEvent","useState","useEffect","formatEventWhen","isQueuedCalendarWrite","jsxs","jsx","CalendarDays","cn","Fragment","Button"],"mappings":"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","file":"chunk-WVEYUH6C.cjs","sourcesContent":["/**\n * Invitation card in the Mail message view: when the message carries an iCalendar part, show the event\n * (parsed client-side) and, if it is in my calendar (GET /lookup?uid=), Accept / Maybe / Decline and\n * Open in calendar. Self-contained so the mail view only mounts it.\n */\nimport { useEffect, useState } from 'react'\nimport { CalendarDays } from 'lucide-react'\nimport { Button, cn } from '@arbidocs/react/ui'\nimport {\n isQueuedCalendarWrite,\n useCalendarEventByUid,\n useCalendarSettings,\n useMailAttachmentText,\n useRespondToEvent,\n type MailAttachment,\n} from '@arbidocs/react'\nimport {\n detectTimeZone,\n formatEventWhen,\n isCalendarAttachment,\n parseIcsInvite,\n safeZone,\n} from '../../calendar'\nimport { useBlocksEnvironment } from '../../provider/environment'\n\nexport interface ConnectedMailInviteCardProps {\n accountId: string\n messageId: string\n attachments: MailAttachment[]\n isOnline: boolean\n /** Open the event in the host's calendar (\"Open in calendar\"); without it the button is hidden. */\n onOpenEvent?: (event: { id: string }) => void\n}\n\nconst PARTSTAT_TEXT: Record<string, string> = {\n accepted: 'You accepted',\n declined: 'You declined',\n tentative: 'You said maybe',\n needs_action: 'Not answered yet',\n}\n\nexport function ConnectedMailInviteCard({\n accountId,\n messageId,\n attachments,\n isOnline,\n onOpenEvent,\n}: ConnectedMailInviteCardProps) {\n const { notify } = useBlocksEnvironment()\n const part = attachments.find(isCalendarAttachment)\n const { data: settings } = useCalendarSettings(!!part)\n const zone = safeZone(settings?.time_zone, detectTimeZone())\n const { data: ics } = useMailAttachmentText(accountId, messageId, part, { enabled: isOnline })\n const invite = ics ? parseIcsInvite(ics, zone) : null\n const lookup = useCalendarEventByUid(invite?.uid && invite.method !== 'REPLY' ? invite.uid : null)\n const respond = useRespondToEvent()\n const [partstat, setPartstat] = useState<string | null>(null)\n const event = lookup.data ?? null\n useEffect(() => setPartstat(event?.my_partstat ?? null), [event?.my_partstat])\n\n if (!part || !invite) return null\n const cancelled = invite.method === 'CANCEL' || invite.status === 'CANCELLED'\n const when =\n invite.startUtc && invite.endUtc\n ? formatEventWhen(\n {\n all_day: invite.allDay,\n start_utc: invite.startUtc,\n end_utc: invite.endUtc,\n start: { date: invite.startDate },\n end: { date: invite.endDate },\n },\n zone\n )\n : ''\n const canRespond = !!event && !event.is_organizer && event.my_partstat != null && !cancelled\n\n const answer = (p: 'accepted' | 'tentative' | 'declined') =>\n event &&\n respond.mutate(\n { id: event.id, partstat: p },\n {\n onSuccess: (updated) =>\n setPartstat(isQueuedCalendarWrite(updated) ? p : (updated.my_partstat ?? p)),\n onError: (err) => notify(`Could not send your response: ${err.message}`, 'error'),\n }\n )\n\n return (\n <div\n className=\"mb-4 flex gap-3 rounded-lg border border-border bg-muted/20 p-3\"\n data-testid=\"mail-invite-card\"\n >\n <CalendarDays className=\"mt-0.5 size-5 shrink-0 text-primary\" aria-hidden />\n <div className=\"min-w-0 flex-1 space-y-1.5\">\n <div\n className={cn('font-medium', cancelled && 'line-through')}\n data-testid=\"mail-invite-title\"\n >\n {invite.title || 'Untitled event'}\n </div>\n <div className=\"text-sm text-muted-foreground\">{when}</div>\n {invite.location && <div className=\"text-sm text-muted-foreground\">{invite.location}</div>}\n {invite.organizer && (\n <div className=\"text-xs text-muted-foreground\">\n Organiser: {invite.organizer.name || invite.organizer.email}\n </div>\n )}\n {cancelled && <div className=\"text-sm text-destructive\">This event was cancelled.</div>}\n {invite.method === 'REPLY' && (\n <div className=\"text-sm text-muted-foreground\">A guest replied to your invitation.</div>\n )}\n {!cancelled && invite.method !== 'REPLY' && !lookup.isLoading && !event && isOnline && (\n <div className=\"text-xs text-muted-foreground\">Not in your calendar yet.</div>\n )}\n {canRespond && partstat && (\n <div className=\"text-xs text-muted-foreground\" data-testid=\"mail-invite-status\">\n {PARTSTAT_TEXT[partstat] ?? partstat}\n </div>\n )}\n <div className=\"flex flex-wrap gap-1.5 pt-1\">\n {canRespond && (\n <>\n <Button\n size=\"sm\"\n variant={partstat === 'accepted' ? 'default' : 'outline'}\n disabled={!isOnline || respond.isPending}\n onClick={() => answer('accepted')}\n data-testid=\"mail-invite-accept\"\n >\n Accept\n </Button>\n <Button\n size=\"sm\"\n variant={partstat === 'tentative' ? 'default' : 'outline'}\n disabled={!isOnline || respond.isPending}\n onClick={() => answer('tentative')}\n >\n Maybe\n </Button>\n <Button\n size=\"sm\"\n variant={partstat === 'declined' ? 'default' : 'outline'}\n disabled={!isOnline || respond.isPending}\n onClick={() => answer('declined')}\n >\n Decline\n </Button>\n </>\n )}\n {event && onOpenEvent && (\n <Button\n size=\"sm\"\n variant=\"ghost\"\n onClick={() => onOpenEvent({ id: event.id })}\n data-testid=\"mail-invite-open\"\n >\n Open in calendar\n </Button>\n )}\n </div>\n </div>\n </div>\n )\n}\n"]}
1
+ {"version":3,"sources":["../src/connection/calendar/ConnectedMailInviteCard.tsx"],"names":["useBlocksEnvironment","isCalendarAttachment","useCalendarSettings","safeZone","detectTimeZone","useMailAttachmentText","parseIcsInvite","useCalendarEventByUid","useRespondToEvent","useState","useEffect","formatEventWhen","isQueuedCalendarWrite","jsxs","jsx","CalendarDays","cn","Fragment","Button"],"mappings":"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","file":"chunk-GNKQVCMW.cjs","sourcesContent":["/**\n * Invitation card in the Mail message view: when the message carries an iCalendar part, show the event\n * (parsed client-side) and, if it is in my calendar (GET /lookup?uid=), Accept / Maybe / Decline and\n * Open in calendar. Self-contained so the mail view only mounts it.\n */\nimport { useEffect, useState } from 'react'\nimport { CalendarDays } from 'lucide-react'\nimport { Button, cn } from '@arbidocs/react/ui'\nimport {\n isQueuedCalendarWrite,\n useCalendarEventByUid,\n useCalendarSettings,\n useMailAttachmentText,\n useRespondToEvent,\n type MailAttachment,\n} from '@arbidocs/react'\nimport {\n detectTimeZone,\n formatEventWhen,\n isCalendarAttachment,\n parseIcsInvite,\n safeZone,\n} from '../../calendar'\nimport { useBlocksEnvironment } from '../../provider/environment'\n\nexport interface ConnectedMailInviteCardProps {\n accountId: string\n messageId: string\n attachments: MailAttachment[]\n isOnline: boolean\n /** Open the event in the host's calendar (\"Open in calendar\"); without it the button is hidden. */\n onOpenEvent?: (event: { id: string }) => void\n}\n\nconst PARTSTAT_TEXT: Record<string, string> = {\n accepted: 'You accepted',\n declined: 'You declined',\n tentative: 'You said maybe',\n needs_action: 'Not answered yet',\n}\n\nexport function ConnectedMailInviteCard({\n accountId,\n messageId,\n attachments,\n isOnline,\n onOpenEvent,\n}: ConnectedMailInviteCardProps) {\n const { notify } = useBlocksEnvironment()\n const part = attachments.find(isCalendarAttachment)\n const { data: settings } = useCalendarSettings(!!part)\n const zone = safeZone(settings?.time_zone, detectTimeZone())\n const { data: ics } = useMailAttachmentText(accountId, messageId, part, { enabled: isOnline })\n const invite = ics ? parseIcsInvite(ics, zone) : null\n const lookup = useCalendarEventByUid(invite?.uid && invite.method !== 'REPLY' ? invite.uid : null)\n const respond = useRespondToEvent()\n const [partstat, setPartstat] = useState<string | null>(null)\n const event = lookup.data ?? null\n useEffect(() => setPartstat(event?.my_partstat ?? null), [event?.my_partstat])\n\n if (!part || !invite) return null\n const cancelled = invite.method === 'CANCEL' || invite.status === 'CANCELLED'\n const when =\n invite.startUtc && invite.endUtc\n ? formatEventWhen(\n {\n all_day: invite.allDay,\n start_utc: invite.startUtc,\n end_utc: invite.endUtc,\n start: { date: invite.startDate },\n end: { date: invite.endDate },\n },\n zone\n )\n : ''\n const canRespond = !!event && !event.is_organizer && event.my_partstat != null && !cancelled\n\n const answer = (p: 'accepted' | 'tentative' | 'declined') =>\n event &&\n respond.mutate(\n { id: event.id, partstat: p },\n {\n onSuccess: (updated) =>\n setPartstat(isQueuedCalendarWrite(updated) ? p : (updated.my_partstat ?? p)),\n onError: (err) => notify(`Could not send your response: ${err.message}`, 'error'),\n }\n )\n\n return (\n <div\n className=\"mb-4 flex gap-3 rounded-lg border border-border bg-muted/20 p-3\"\n data-testid=\"mail-invite-card\"\n >\n <CalendarDays className=\"mt-0.5 size-5 shrink-0 text-primary\" aria-hidden />\n <div className=\"min-w-0 flex-1 space-y-1.5\">\n <div\n className={cn('font-medium', cancelled && 'line-through')}\n data-testid=\"mail-invite-title\"\n >\n {invite.title || 'Untitled event'}\n </div>\n <div className=\"text-sm text-muted-foreground\">{when}</div>\n {invite.location && <div className=\"text-sm text-muted-foreground\">{invite.location}</div>}\n {invite.organizer && (\n <div className=\"text-xs text-muted-foreground\">\n Organiser: {invite.organizer.name || invite.organizer.email}\n </div>\n )}\n {cancelled && <div className=\"text-sm text-destructive\">This event was cancelled.</div>}\n {invite.method === 'REPLY' && (\n <div className=\"text-sm text-muted-foreground\">A guest replied to your invitation.</div>\n )}\n {!cancelled && invite.method !== 'REPLY' && !lookup.isLoading && !event && isOnline && (\n <div className=\"text-xs text-muted-foreground\">Not in your calendar yet.</div>\n )}\n {canRespond && partstat && (\n <div className=\"text-xs text-muted-foreground\" data-testid=\"mail-invite-status\">\n {PARTSTAT_TEXT[partstat] ?? partstat}\n </div>\n )}\n <div className=\"flex flex-wrap gap-1.5 pt-1\">\n {canRespond && (\n <>\n <Button\n size=\"sm\"\n variant={partstat === 'accepted' ? 'default' : 'outline'}\n disabled={!isOnline || respond.isPending}\n onClick={() => answer('accepted')}\n data-testid=\"mail-invite-accept\"\n >\n Accept\n </Button>\n <Button\n size=\"sm\"\n variant={partstat === 'tentative' ? 'default' : 'outline'}\n disabled={!isOnline || respond.isPending}\n onClick={() => answer('tentative')}\n >\n Maybe\n </Button>\n <Button\n size=\"sm\"\n variant={partstat === 'declined' ? 'default' : 'outline'}\n disabled={!isOnline || respond.isPending}\n onClick={() => answer('declined')}\n >\n Decline\n </Button>\n </>\n )}\n {event && onOpenEvent && (\n <Button\n size=\"sm\"\n variant=\"ghost\"\n onClick={() => onOpenEvent({ id: event.id })}\n data-testid=\"mail-invite-open\"\n >\n Open in calendar\n </Button>\n )}\n </div>\n </div>\n </div>\n )\n}\n"]}
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { useWorkflowView } from './chunk-FHJOI5GV.js';
2
+ import { useWorkflowView } from './chunk-TSP5JJ56.js';
3
3
  import { workflowSteps, initialRunInputs, stepPhase, composeStepPrompt } from './chunk-MMSBCSGH.js';
4
4
  import { useState, useRef, useEffect } from 'react';
5
5
 
@@ -56,5 +56,5 @@ function useWorkflowPreview(workflow, { answer = "{prompt}", delayMs = 400, reso
56
56
  }
57
57
 
58
58
  export { useWorkflowPreview };
59
- //# sourceMappingURL=chunk-EZGK7FLE.js.map
60
- //# sourceMappingURL=chunk-EZGK7FLE.js.map
59
+ //# sourceMappingURL=chunk-GUGSUCIK.js.map
60
+ //# sourceMappingURL=chunk-GUGSUCIK.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/agents/workflows/useWorkflowPreview.ts"],"names":[],"mappings":"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","file":"chunk-EZGK7FLE.js","sourcesContent":["/**\n * A stepped workflow run on screen only (the builder's preview): agent steps run one at a time,\n * the way the server does, and answer with the prompt they would send; action steps just finish.\n * No thread, no agent.\n */\n\nimport { useEffect, useRef, useState } from 'react'\nimport {\n composeStepPrompt,\n initialRunInputs,\n stepPhase,\n workflowSteps,\n type StepComposeOptions,\n} from './run'\nimport type { WorkflowDefinition, WorkflowInputs, WorkflowStepState } from './types'\nimport { useWorkflowView, type WorkflowRunView } from './useWorkflowView'\n\nexport interface UseWorkflowPreviewOptions extends StepComposeOptions {\n /** What a stand-in agent step answers; `{prompt}` is replaced with the prompt it would send. */\n answer?: string\n /** How long a stand-in step takes. */\n delayMs?: number\n}\n\nexport function useWorkflowPreview(\n workflow: WorkflowDefinition,\n { answer = '{prompt}', delayMs = 400, resolveWorkflow, compose }: UseWorkflowPreviewOptions = {}\n): WorkflowRunView {\n const steps = workflowSteps(workflow)\n const [inputs, setInputs] = useState<WorkflowInputs>(() => initialRunInputs(workflow))\n const [states, setStates] = useState<Record<string, WorkflowStepState>>({})\n const set = (id: string, state: WorkflowStepState) => setStates((s) => ({ ...s, [id]: state }))\n\n // A stand-in step's timer outlives the re-render its start causes; it is cleared on unmount, and\n // a step it cut short starts again (StrictMode mounts twice).\n const timers = useRef(new Map<string, ReturnType<typeof setTimeout>>())\n useEffect(() => {\n const pending = timers.current\n return () => {\n for (const t of pending.values()) clearTimeout(t)\n pending.clear()\n setStates((s) =>\n Object.fromEntries(\n Object.entries(s).map(([id, v]) => [\n id,\n v.status === 'running' ? { status: 'pending' } : v,\n ])\n )\n )\n }\n }, [])\n\n // One turn at a time: start the first ready agent step when nothing is running.\n useEffect(() => {\n if (Object.values(states).some((s) => s.status === 'running')) return\n // An action step (a signature, an email, a review) stands in the same way, with no answer.\n const next = steps.find(\n (s) =>\n (s.kind === 'agent' || s.kind === 'action') && stepPhase(steps, states, s.id) === 'ready'\n )\n if (!next || (next.kind !== 'agent' && next.kind !== 'action')) return\n const prompt =\n next.kind === 'agent'\n ? composeStepPrompt(workflow, next, inputs, { resolveWorkflow, compose })\n : ''\n set(next.id, { status: 'running', startedAt: new Date().toISOString() })\n timers.current.set(\n next.id,\n setTimeout(() => {\n timers.current.delete(next.id)\n set(\n next.id,\n next.kind === 'agent'\n ? { status: 'done', text: answer.replace('{prompt}', prompt) }\n : { status: 'done' }\n )\n }, delayMs)\n )\n // `inputs` are read when a step starts, not watched.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [states, steps, workflow])\n\n return useWorkflowView({\n steps,\n states,\n inputs,\n setInput: (name, value) => setInputs((i) => ({ ...i, [name]: value })),\n complete: async (step) => set(step.id, { status: 'done' }),\n skip: async (id) => set(id, { status: 'skipped' }),\n retry: async (id) => set(id, { status: 'pending' }),\n isLocked: (id) => states[id]?.status === 'done',\n })\n}\n"]}
1
+ {"version":3,"sources":["../src/agents/workflows/useWorkflowPreview.ts"],"names":[],"mappings":"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","file":"chunk-GUGSUCIK.js","sourcesContent":["/**\n * A stepped workflow run on screen only (the builder's preview): agent steps run one at a time,\n * the way the server does, and answer with the prompt they would send; action steps just finish.\n * No thread, no agent.\n */\n\nimport { useEffect, useRef, useState } from 'react'\nimport {\n composeStepPrompt,\n initialRunInputs,\n stepPhase,\n workflowSteps,\n type StepComposeOptions,\n} from './run'\nimport type { WorkflowDefinition, WorkflowInputs, WorkflowStepState } from './types'\nimport { useWorkflowView, type WorkflowRunView } from './useWorkflowView'\n\nexport interface UseWorkflowPreviewOptions extends StepComposeOptions {\n /** What a stand-in agent step answers; `{prompt}` is replaced with the prompt it would send. */\n answer?: string\n /** How long a stand-in step takes. */\n delayMs?: number\n}\n\nexport function useWorkflowPreview(\n workflow: WorkflowDefinition,\n { answer = '{prompt}', delayMs = 400, resolveWorkflow, compose }: UseWorkflowPreviewOptions = {}\n): WorkflowRunView {\n const steps = workflowSteps(workflow)\n const [inputs, setInputs] = useState<WorkflowInputs>(() => initialRunInputs(workflow))\n const [states, setStates] = useState<Record<string, WorkflowStepState>>({})\n const set = (id: string, state: WorkflowStepState) => setStates((s) => ({ ...s, [id]: state }))\n\n // A stand-in step's timer outlives the re-render its start causes; it is cleared on unmount, and\n // a step it cut short starts again (StrictMode mounts twice).\n const timers = useRef(new Map<string, ReturnType<typeof setTimeout>>())\n useEffect(() => {\n const pending = timers.current\n return () => {\n for (const t of pending.values()) clearTimeout(t)\n pending.clear()\n setStates((s) =>\n Object.fromEntries(\n Object.entries(s).map(([id, v]) => [\n id,\n v.status === 'running' ? { status: 'pending' } : v,\n ])\n )\n )\n }\n }, [])\n\n // One turn at a time: start the first ready agent step when nothing is running.\n useEffect(() => {\n if (Object.values(states).some((s) => s.status === 'running')) return\n // An action step (a signature, an email, a review) stands in the same way, with no answer.\n const next = steps.find(\n (s) =>\n (s.kind === 'agent' || s.kind === 'action') && stepPhase(steps, states, s.id) === 'ready'\n )\n if (!next || (next.kind !== 'agent' && next.kind !== 'action')) return\n const prompt =\n next.kind === 'agent'\n ? composeStepPrompt(workflow, next, inputs, { resolveWorkflow, compose })\n : ''\n set(next.id, { status: 'running', startedAt: new Date().toISOString() })\n timers.current.set(\n next.id,\n setTimeout(() => {\n timers.current.delete(next.id)\n set(\n next.id,\n next.kind === 'agent'\n ? { status: 'done', text: answer.replace('{prompt}', prompt) }\n : { status: 'done' }\n )\n }, delayMs)\n )\n // `inputs` are read when a step starts, not watched.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [states, steps, workflow])\n\n return useWorkflowView({\n steps,\n states,\n inputs,\n setInput: (name, value) => setInputs((i) => ({ ...i, [name]: value })),\n complete: async (step) => set(step.id, { status: 'done' }),\n skip: async (id) => set(id, { status: 'skipped' }),\n retry: async (id) => set(id, { status: 'pending' }),\n isLocked: (id) => states[id]?.status === 'done',\n })\n}\n"]}
@@ -7,9 +7,9 @@ var chunkAHDJXIUB_cjs = require('./chunk-AHDJXIUB.cjs');
7
7
  var chunk4PA6VCCR_cjs = require('./chunk-4PA6VCCR.cjs');
8
8
  var chunkRL2HI6NP_cjs = require('./chunk-RL2HI6NP.cjs');
9
9
  var chunk6UZC4XVV_cjs = require('./chunk-6UZC4XVV.cjs');
10
+ var chunkVZOOGA47_cjs = require('./chunk-VZOOGA47.cjs');
10
11
  var chunkSJSGSHIT_cjs = require('./chunk-SJSGSHIT.cjs');
11
12
  var chunkZW6FPIFC_cjs = require('./chunk-ZW6FPIFC.cjs');
12
- var chunkVZOOGA47_cjs = require('./chunk-VZOOGA47.cjs');
13
13
  var chunk5GQOIQCB_cjs = require('./chunk-5GQOIQCB.cjs');
14
14
  var chunkUDSHVNU3_cjs = require('./chunk-UDSHVNU3.cjs');
15
15
  var chunkIPSHAMO2_cjs = require('./chunk-IPSHAMO2.cjs');
@@ -1719,5 +1719,5 @@ exports.buildWorkflowScopeSource = buildWorkflowScopeSource;
1719
1719
  exports.createWorkflowColumns = createWorkflowColumns;
1720
1720
  exports.documentScopeLabels = documentScopeLabels;
1721
1721
  exports.matchWorkflowScope = matchWorkflowScope;
1722
- //# sourceMappingURL=chunk-GS5OCYNQ.cjs.map
1723
- //# sourceMappingURL=chunk-GS5OCYNQ.cjs.map
1722
+ //# sourceMappingURL=chunk-HMS3GRMI.cjs.map
1723
+ //# sourceMappingURL=chunk-HMS3GRMI.cjs.map