@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.
- package/dist/{ConnectedCallDock-FNJRJ653.js → ConnectedCallDock-PJE7EZ6T.js} +4 -4
- package/dist/{ConnectedCallDock-FNJRJ653.js.map → ConnectedCallDock-PJE7EZ6T.js.map} +1 -1
- package/dist/{ConnectedCallDock-W66NDZIJ.cjs → ConnectedCallDock-ZRSZYSLO.cjs} +4 -4
- package/dist/{ConnectedCallDock-W66NDZIJ.cjs.map → ConnectedCallDock-ZRSZYSLO.cjs.map} +1 -1
- package/dist/ConnectedCallRoom-S7DO2MP6.js +2 -2
- package/dist/ConnectedCallRoom-XK2RPNO6.cjs +2 -2
- package/dist/{ConnectedMailInviteCard-RSNELYZX.cjs → ConnectedMailInviteCard-OBDYWUFM.cjs} +5 -5
- package/dist/{ConnectedMailInviteCard-RSNELYZX.cjs.map → ConnectedMailInviteCard-OBDYWUFM.cjs.map} +1 -1
- package/dist/{ConnectedMailInviteCard-2TXUPVV7.js → ConnectedMailInviteCard-YYPLRL6G.js} +4 -4
- package/dist/{ConnectedMailInviteCard-2TXUPVV7.js.map → ConnectedMailInviteCard-YYPLRL6G.js.map} +1 -1
- package/dist/{ConnectedNativeDocxComparison-77BRPLGW.js → ConnectedNativeDocxComparison-2RIERXLW.js} +11 -11
- package/dist/{ConnectedNativeDocxComparison-77BRPLGW.js.map → ConnectedNativeDocxComparison-2RIERXLW.js.map} +1 -1
- package/dist/{ConnectedNativeDocxComparison-7G57TZC7.cjs → ConnectedNativeDocxComparison-46C7LYGT.cjs} +12 -12
- package/dist/{ConnectedNativeDocxComparison-7G57TZC7.cjs.map → ConnectedNativeDocxComparison-46C7LYGT.cjs.map} +1 -1
- package/dist/{ConnectedNativeDocxEditor-YKLNR2FO.cjs → ConnectedNativeDocxEditor-6XMB2XT7.cjs} +12 -12
- package/dist/{ConnectedNativeDocxEditor-YKLNR2FO.cjs.map → ConnectedNativeDocxEditor-6XMB2XT7.cjs.map} +1 -1
- package/dist/{ConnectedNativeDocxEditor-JSZURNVZ.js → ConnectedNativeDocxEditor-K6X63CPL.js} +10 -10
- package/dist/{ConnectedNativeDocxEditor-JSZURNVZ.js.map → ConnectedNativeDocxEditor-K6X63CPL.js.map} +1 -1
- package/dist/{ConnectedProductionSetDialog-ZEKYUQXE.js → ConnectedProductionSetDialog-JXQLGDIH.js} +3 -3
- package/dist/{ConnectedProductionSetDialog-ZEKYUQXE.js.map → ConnectedProductionSetDialog-JXQLGDIH.js.map} +1 -1
- package/dist/{ConnectedProductionSetDialog-MQ5OLTSR.cjs → ConnectedProductionSetDialog-T3Q32XPJ.cjs} +3 -3
- package/dist/{ConnectedProductionSetDialog-MQ5OLTSR.cjs.map → ConnectedProductionSetDialog-T3Q32XPJ.cjs.map} +1 -1
- package/dist/{ConnectedStreamedWordArtifact-TMVTOSEP.js → ConnectedStreamedWordArtifact-6UMLSR3G.js} +11 -11
- package/dist/ConnectedStreamedWordArtifact-6UMLSR3G.js.map +1 -0
- package/dist/{ConnectedStreamedWordArtifact-WOE4WNJO.cjs → ConnectedStreamedWordArtifact-GFFLCGF7.cjs} +12 -12
- package/dist/ConnectedStreamedWordArtifact-GFFLCGF7.cjs.map +1 -0
- package/dist/{DocumentReviewCard-FOYUZWAW.js → DocumentReviewCard-SAKLHM4Y.js} +4 -4
- package/dist/{DocumentReviewCard-FOYUZWAW.js.map → DocumentReviewCard-SAKLHM4Y.js.map} +1 -1
- package/dist/{DocumentReviewCard-JY2WZCEK.cjs → DocumentReviewCard-XGYMO5YS.cjs} +4 -4
- package/dist/{DocumentReviewCard-JY2WZCEK.cjs.map → DocumentReviewCard-XGYMO5YS.cjs.map} +1 -1
- package/dist/{FilesViewerDialog-SVT7CVAZ.cjs → FilesViewerDialog-3C6JUMVS.cjs} +11 -11
- package/dist/{FilesViewerDialog-SVT7CVAZ.cjs.map → FilesViewerDialog-3C6JUMVS.cjs.map} +1 -1
- package/dist/{FilesViewerDialog-MPMYI5NP.js → FilesViewerDialog-HNBRY7RQ.js} +10 -10
- package/dist/{FilesViewerDialog-MPMYI5NP.js.map → FilesViewerDialog-HNBRY7RQ.js.map} +1 -1
- package/dist/WorkspaceTableView-DFN4WGRI.js +1 -1
- package/dist/WorkspaceTableView-UOP3EB2F.cjs +1 -1
- package/dist/agents/index.cjs +254 -254
- package/dist/agents/index.js +4 -4
- package/dist/calendar/index.cjs +116 -116
- package/dist/calendar/index.js +1 -1
- package/dist/calls/index.cjs +2 -2
- package/dist/calls/index.js +2 -2
- package/dist/chat/index.cjs +18 -18
- package/dist/chat/index.js +2 -2
- package/dist/{chunk-WVCTH42C.cjs → chunk-3TECBO75.cjs} +12 -12
- package/dist/{chunk-WVCTH42C.cjs.map → chunk-3TECBO75.cjs.map} +1 -1
- package/dist/{chunk-AJ4TBTA3.js → chunk-4KARJ4CC.js} +3 -3
- package/dist/{chunk-AJ4TBTA3.js.map → chunk-4KARJ4CC.js.map} +1 -1
- package/dist/{chunk-PIFTGL57.js → chunk-4RFNQRUD.js} +5 -5
- package/dist/{chunk-PIFTGL57.js.map → chunk-4RFNQRUD.js.map} +1 -1
- package/dist/{chunk-K2AVKRZI.cjs → chunk-4VUKYB32.cjs} +4 -4
- package/dist/{chunk-K2AVKRZI.cjs.map → chunk-4VUKYB32.cjs.map} +1 -1
- package/dist/{chunk-7MFZS24I.cjs → chunk-5YBH5CQD.cjs} +9 -9
- package/dist/{chunk-7MFZS24I.cjs.map → chunk-5YBH5CQD.cjs.map} +1 -1
- package/dist/{chunk-JSWF2AMA.js → chunk-636KUL53.js} +4 -4
- package/dist/{chunk-JSWF2AMA.js.map → chunk-636KUL53.js.map} +1 -1
- package/dist/{chunk-B5FFLDK7.js → chunk-6T4ZMGGT.js} +3 -3
- package/dist/{chunk-B5FFLDK7.js.map → chunk-6T4ZMGGT.js.map} +1 -1
- package/dist/{chunk-7E3SUV4J.cjs → chunk-6Y7MHSIT.cjs} +3 -3
- package/dist/{chunk-7E3SUV4J.cjs.map → chunk-6Y7MHSIT.cjs.map} +1 -1
- package/dist/{chunk-KUBNSEQP.cjs → chunk-CLPDKHSP.cjs} +10 -10
- package/dist/{chunk-KUBNSEQP.cjs.map → chunk-CLPDKHSP.cjs.map} +1 -1
- package/dist/{chunk-UPG4IEQV.js → chunk-EXZPKMMP.js} +11 -11
- package/dist/{chunk-UPG4IEQV.js.map → chunk-EXZPKMMP.js.map} +1 -1
- package/dist/{chunk-IMINN6RD.js → chunk-FKPFKSDT.js} +3 -3
- package/dist/{chunk-IMINN6RD.js.map → chunk-FKPFKSDT.js.map} +1 -1
- package/dist/{chunk-WVEYUH6C.cjs → chunk-GNKQVCMW.cjs} +6 -6
- package/dist/{chunk-WVEYUH6C.cjs.map → chunk-GNKQVCMW.cjs.map} +1 -1
- package/dist/{chunk-EZGK7FLE.js → chunk-GUGSUCIK.js} +3 -3
- package/dist/{chunk-EZGK7FLE.js.map → chunk-GUGSUCIK.js.map} +1 -1
- package/dist/{chunk-GS5OCYNQ.cjs → chunk-HMS3GRMI.cjs} +3 -3
- package/dist/{chunk-GS5OCYNQ.cjs.map → chunk-HMS3GRMI.cjs.map} +1 -1
- package/dist/{chunk-I6SPGHFY.cjs → chunk-HUE76NAI.cjs} +2 -2
- package/dist/{chunk-I6SPGHFY.cjs.map → chunk-HUE76NAI.cjs.map} +1 -1
- package/dist/{chunk-KFKRZ5WX.js → chunk-IXA534S4.js} +7 -7
- package/dist/{chunk-KFKRZ5WX.js.map → chunk-IXA534S4.js.map} +1 -1
- package/dist/{chunk-MTSXOBK2.js → chunk-KPD7WAXP.js} +3 -3
- package/dist/{chunk-MTSXOBK2.js.map → chunk-KPD7WAXP.js.map} +1 -1
- package/dist/{chunk-KLRYWHLD.cjs → chunk-KXRGVY3M.cjs} +4 -4
- package/dist/{chunk-KLRYWHLD.cjs.map → chunk-KXRGVY3M.cjs.map} +1 -1
- package/dist/{chunk-6GSKZGLR.cjs → chunk-NZ26UYEQ.cjs} +11 -11
- package/dist/{chunk-6GSKZGLR.cjs.map → chunk-NZ26UYEQ.cjs.map} +1 -1
- package/dist/{chunk-LTRFQ2IC.js → chunk-PYLG3M6G.js} +2 -2
- package/dist/{chunk-LTRFQ2IC.js.map → chunk-PYLG3M6G.js.map} +1 -1
- package/dist/{chunk-F3KBCQKH.cjs → chunk-RCOJ7JG5.cjs} +4 -4
- package/dist/{chunk-F3KBCQKH.cjs.map → chunk-RCOJ7JG5.cjs.map} +1 -1
- package/dist/{chunk-FHJOI5GV.js → chunk-TSP5JJ56.js} +3 -3
- package/dist/{chunk-FHJOI5GV.js.map → chunk-TSP5JJ56.js.map} +1 -1
- package/dist/{chunk-SUP6LS22.js → chunk-TVLY7FTU.js} +3 -3
- package/dist/{chunk-SUP6LS22.js.map → chunk-TVLY7FTU.js.map} +1 -1
- package/dist/{chunk-LFXUJNXJ.cjs → chunk-VJLW3UPL.cjs} +6 -6
- package/dist/{chunk-LFXUJNXJ.cjs.map → chunk-VJLW3UPL.cjs.map} +1 -1
- package/dist/{chunk-D3ABKS7T.cjs → chunk-VK5Q5JXU.cjs} +3 -3
- package/dist/{chunk-D3ABKS7T.cjs.map → chunk-VK5Q5JXU.cjs.map} +1 -1
- package/dist/{chunk-B36GZ4FJ.js → chunk-WWMVVAA5.js} +6 -6
- package/dist/{chunk-B36GZ4FJ.js.map → chunk-WWMVVAA5.js.map} +1 -1
- package/dist/{chunk-VEG4LR55.cjs → chunk-YACOI5ZU.cjs} +48 -48
- package/dist/{chunk-VEG4LR55.cjs.map → chunk-YACOI5ZU.cjs.map} +1 -1
- package/dist/{chunk-6U6IY7DB.js → chunk-YIJ4MFYM.js} +3 -3
- package/dist/{chunk-6U6IY7DB.js.map → chunk-YIJ4MFYM.js.map} +1 -1
- package/dist/connect/docx.cjs +15 -15
- package/dist/connect/docx.js +11 -11
- package/dist/connect/index.cjs +432 -431
- package/dist/connect/index.cjs.map +1 -1
- package/dist/connect/index.js +40 -39
- package/dist/connect/index.js.map +1 -1
- package/dist/connect/viewer.cjs +9 -9
- package/dist/connect/viewer.js +8 -8
- package/dist/connection/files/ConnectedBulkTagCrumbs.d.ts +6 -1
- package/dist/embed/index.cjs +15 -15
- package/dist/embed/index.js +9 -9
- package/dist/facts/index.cjs +44 -44
- package/dist/facts/index.js +3 -3
- package/dist/index.cjs +430 -430
- package/dist/index.js +13 -13
- package/dist/settings/index.cjs +1 -1
- package/dist/settings/index.js +1 -1
- package/dist/site/index.cjs +5 -5
- package/dist/site/index.js +1 -1
- package/dist/studio/index.cjs +1 -1
- package/dist/studio/index.js +1 -1
- package/dist/workflow-canvas/index.cjs +32 -32
- package/dist/workflow-canvas/index.js +17 -17
- package/node_modules/@arbidocs/coedit/package.json +1 -1
- package/package.json +5 -5
- package/dist/ConnectedStreamedWordArtifact-TMVTOSEP.js.map +0 -1
- package/dist/ConnectedStreamedWordArtifact-WOE4WNJO.cjs.map +0 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
'use strict';
|
|
3
3
|
|
|
4
|
-
var
|
|
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(
|
|
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 ?
|
|
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 ?
|
|
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-
|
|
136
|
-
//# sourceMappingURL=chunk-
|
|
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":";;;;;;;;;;;AAkCA,IAAM,aAAA,GAAwC;AAAA,EAC5C,QAAA,EAAU,cAAA;AAAA,EACV,QAAA,EAAU,cAAA;AAAA,EACV,SAAA,EAAW,gBAAA;AAAA,EACX,YAAA,EAAc;AAChB,CAAA;AAEO,SAAS,uBAAA,CAAwB;AAAA,EACtC,SAAA;AAAA,EACA,SAAA;AAAA,EACA,WAAA;AAAA,EACA,QAAA;AAAA,EACA;AACF,CAAA,EAAiC;AAC/B,EAAA,MAAM,EAAE,MAAA,EAAO,GAAIA,sCAAA,EAAqB;AACxC,EAAA,MAAM,IAAA,GAAO,WAAA,CAAY,IAAA,CAAKC,sCAAoB,CAAA;AAClD,EAAA,MAAM,EAAE,IAAA,EAAM,QAAA,KAAaC,yBAAA,CAAoB,CAAC,CAAC,IAAI,CAAA;AACrD,EAAA,MAAM,IAAA,GAAOC,0BAAA,CAAS,QAAA,EAAU,SAAA,EAAWC,kCAAgB,CAAA;AAC3D,EAAA,MAAM,EAAE,IAAA,EAAM,GAAA,EAAI,GAAIC,2BAAA,CAAsB,SAAA,EAAW,SAAA,EAAW,IAAA,EAAM,EAAE,OAAA,EAAS,QAAA,EAAU,CAAA;AAC7F,EAAA,MAAM,MAAA,GAAS,GAAA,GAAMC,gCAAA,CAAe,GAAA,EAAK,IAAI,CAAA,GAAI,IAAA;AACjD,EAAA,MAAM,MAAA,GAASC,4BAAsB,MAAA,EAAQ,GAAA,IAAO,OAAO,MAAA,KAAW,OAAA,GAAU,MAAA,CAAO,GAAA,GAAM,IAAI,CAAA;AACjG,EAAA,MAAM,UAAUC,uBAAA,EAAkB;AAClC,EAAA,MAAM,CAAC,QAAA,EAAU,WAAW,CAAA,GAAIC,iBAAwB,IAAI,CAAA;AAC5D,EAAA,MAAM,KAAA,GAAQ,OAAO,IAAA,IAAQ,IAAA;AAC7B,EAAAC,iBAAA,CAAU,MAAM,YAAY,KAAA,EAAO,WAAA,IAAe,IAAI,CAAA,EAAG,CAAC,KAAA,EAAO,WAAW,CAAC,CAAA;AAE7E,EAAA,IAAI,CAAC,IAAA,IAAQ,CAAC,MAAA,EAAQ,OAAO,IAAA;AAC7B,EAAA,MAAM,SAAA,GAAY,MAAA,CAAO,MAAA,KAAW,QAAA,IAAY,OAAO,MAAA,KAAW,WAAA;AAClE,EAAA,MAAM,IAAA,GACJ,MAAA,CAAO,QAAA,IAAY,MAAA,CAAO,MAAA,GACtBC,iCAAA;AAAA,IACE;AAAA,MACE,SAAS,MAAA,CAAO,MAAA;AAAA,MAChB,WAAW,MAAA,CAAO,QAAA;AAAA,MAClB,SAAS,MAAA,CAAO,MAAA;AAAA,MAChB,KAAA,EAAO,EAAE,IAAA,EAAM,MAAA,CAAO,SAAA,EAAU;AAAA,MAChC,GAAA,EAAK,EAAE,IAAA,EAAM,MAAA,CAAO,OAAA;AAAQ,KAC9B;AAAA,IACA;AAAA,GACF,GACA,EAAA;AACN,EAAA,MAAM,UAAA,GAAa,CAAC,CAAC,KAAA,IAAS,CAAC,MAAM,YAAA,IAAgB,KAAA,CAAM,WAAA,IAAe,IAAA,IAAQ,CAAC,SAAA;AAEnF,EAAA,MAAM,MAAA,GAAS,CAAC,CAAA,KACd,KAAA,IACA,OAAA,CAAQ,MAAA;AAAA,IACN,EAAE,EAAA,EAAI,KAAA,CAAM,EAAA,EAAI,UAAU,CAAA,EAAE;AAAA,IAC5B;AAAA,MACE,SAAA,EAAW,CAAC,OAAA,KACV,WAAA,CAAYC,2BAAA,CAAsB,OAAO,CAAA,GAAI,CAAA,GAAK,OAAA,CAAQ,WAAA,IAAe,CAAE,CAAA;AAAA,MAC7E,OAAA,EAAS,CAAC,GAAA,KAAQ,MAAA,CAAO,iCAAiC,GAAA,CAAI,OAAO,IAAI,OAAO;AAAA;AAClF,GACF;AAEF,EAAA,uBACEC,eAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAU,iEAAA;AAAA,MACV,aAAA,EAAY,kBAAA;AAAA,MAEZ,QAAA,EAAA;AAAA,wBAAAC,cAAA,CAACC,wBAAA,EAAA,EAAa,SAAA,EAAU,qCAAA,EAAsC,aAAA,EAAW,IAAA,EAAC,CAAA;AAAA,wBAC1EF,eAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,4BAAA,EACb,QAAA,EAAA;AAAA,0BAAAC,cAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cACC,SAAA,EAAWE,KAAA,CAAG,aAAA,EAAe,SAAA,IAAa,cAAc,CAAA;AAAA,cACxD,aAAA,EAAY,mBAAA;AAAA,cAEX,iBAAO,KAAA,IAAS;AAAA;AAAA,WACnB;AAAA,0BACAF,cAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,+BAAA,EAAiC,QAAA,EAAA,IAAA,EAAK,CAAA;AAAA,UACpD,OAAO,QAAA,oBAAYA,cAAA,CAAC,SAAI,SAAA,EAAU,+BAAA,EAAiC,iBAAO,QAAA,EAAS,CAAA;AAAA,UACnF,MAAA,CAAO,SAAA,oBACND,eAAA,CAAC,KAAA,EAAA,EAAI,WAAU,+BAAA,EAAgC,QAAA,EAAA;AAAA,YAAA,aAAA;AAAA,YACjC,MAAA,CAAO,SAAA,CAAU,IAAA,IAAQ,MAAA,CAAO,SAAA,CAAU;AAAA,WAAA,EACxD,CAAA;AAAA,UAED,SAAA,oBAAaC,cAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,4BAA2B,QAAA,EAAA,2BAAA,EAAyB,CAAA;AAAA,UAChF,OAAO,MAAA,KAAW,OAAA,mCAChB,KAAA,EAAA,EAAI,SAAA,EAAU,iCAAgC,QAAA,EAAA,qCAAA,EAAmC,CAAA;AAAA,UAEnF,CAAC,SAAA,IAAa,MAAA,CAAO,MAAA,KAAW,WAAW,CAAC,MAAA,CAAO,SAAA,IAAa,CAAC,SAAS,QAAA,oBACzEA,cAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,iCAAgC,QAAA,EAAA,2BAAA,EAAyB,CAAA;AAAA,UAEzE,UAAA,IAAc,QAAA,oBACbA,cAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,+BAAA,EAAgC,aAAA,EAAY,oBAAA,EACxD,QAAA,EAAA,aAAA,CAAc,QAAQ,CAAA,IAAK,QAAA,EAC9B,CAAA;AAAA,0BAEFD,eAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,6BAAA,EACZ,QAAA,EAAA;AAAA,YAAA,UAAA,oBACCA,eAAA,CAAAI,mBAAA,EAAA,EACE,QAAA,EAAA;AAAA,8BAAAH,cAAA;AAAA,gBAACI,SAAA;AAAA,gBAAA;AAAA,kBACC,IAAA,EAAK,IAAA;AAAA,kBACL,OAAA,EAAS,QAAA,KAAa,UAAA,GAAa,SAAA,GAAY,SAAA;AAAA,kBAC/C,QAAA,EAAU,CAAC,QAAA,IAAY,OAAA,CAAQ,SAAA;AAAA,kBAC/B,OAAA,EAAS,MAAM,MAAA,CAAO,UAAU,CAAA;AAAA,kBAChC,aAAA,EAAY,oBAAA;AAAA,kBACb,QAAA,EAAA;AAAA;AAAA,eAED;AAAA,8BACAJ,cAAA;AAAA,gBAACI,SAAA;AAAA,gBAAA;AAAA,kBACC,IAAA,EAAK,IAAA;AAAA,kBACL,OAAA,EAAS,QAAA,KAAa,WAAA,GAAc,SAAA,GAAY,SAAA;AAAA,kBAChD,QAAA,EAAU,CAAC,QAAA,IAAY,OAAA,CAAQ,SAAA;AAAA,kBAC/B,OAAA,EAAS,MAAM,MAAA,CAAO,WAAW,CAAA;AAAA,kBAClC,QAAA,EAAA;AAAA;AAAA,eAED;AAAA,8BACAJ,cAAA;AAAA,gBAACI,SAAA;AAAA,gBAAA;AAAA,kBACC,IAAA,EAAK,IAAA;AAAA,kBACL,OAAA,EAAS,QAAA,KAAa,UAAA,GAAa,SAAA,GAAY,SAAA;AAAA,kBAC/C,QAAA,EAAU,CAAC,QAAA,IAAY,OAAA,CAAQ,SAAA;AAAA,kBAC/B,OAAA,EAAS,MAAM,MAAA,CAAO,UAAU,CAAA;AAAA,kBACjC,QAAA,EAAA;AAAA;AAAA;AAED,aAAA,EACF,CAAA;AAAA,YAED,SAAS,WAAA,oBACRJ,cAAA;AAAA,cAACI,SAAA;AAAA,cAAA;AAAA,gBACC,IAAA,EAAK,IAAA;AAAA,gBACL,OAAA,EAAQ,OAAA;AAAA,gBACR,SAAS,MAAM,WAAA,CAAY,EAAE,EAAA,EAAI,KAAA,CAAM,IAAI,CAAA;AAAA,gBAC3C,aAAA,EAAY,kBAAA;AAAA,gBACb,QAAA,EAAA;AAAA;AAAA;AAED,WAAA,EAEJ;AAAA,SAAA,EACF;AAAA;AAAA;AAAA,GACF;AAEJ","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-
|
|
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-
|
|
60
|
-
//# sourceMappingURL=chunk-
|
|
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-
|
|
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-
|
|
1723
|
-
//# sourceMappingURL=chunk-
|
|
1722
|
+
//# sourceMappingURL=chunk-HMS3GRMI.cjs.map
|
|
1723
|
+
//# sourceMappingURL=chunk-HMS3GRMI.cjs.map
|