@arbidocs/blocks 0.5.125 → 0.5.127
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/README.md +19 -0
- package/dist/{ClippingMediaViewer-ZFEX5A3U.cjs → ClippingMediaViewer-47BAXNLO.cjs} +10 -11
- package/dist/ClippingMediaViewer-47BAXNLO.cjs.map +1 -0
- package/dist/{ClippingPdfViewer-3LRTEPHV.cjs → ClippingPdfViewer-D5BYHEAH.cjs} +16 -14
- package/dist/ClippingPdfViewer-D5BYHEAH.cjs.map +1 -0
- package/dist/ConnectedCallDock-XJOYVVAH.cjs +6 -6
- package/dist/ConnectedCallRoom-CUDYAPQK.cjs +6 -6
- package/dist/{ConnectedNativeDocxComparison-7QQ55JIO.cjs → ConnectedNativeDocxComparison-JUF2TI2P.cjs} +12 -12
- package/dist/{ConnectedNativeDocxComparison-7QQ55JIO.cjs.map → ConnectedNativeDocxComparison-JUF2TI2P.cjs.map} +1 -1
- package/dist/{ConnectedPresentation-L32JPRFI.cjs → ConnectedPresentation-SI3L77J4.cjs} +35 -36
- package/dist/ConnectedPresentation-SI3L77J4.cjs.map +1 -0
- package/dist/{ConnectedProductionSetDialog-4EAY6KAZ.cjs → ConnectedProductionSetDialog-LHB4VQWC.cjs} +3 -3
- package/dist/{ConnectedProductionSetDialog-4EAY6KAZ.cjs.map → ConnectedProductionSetDialog-LHB4VQWC.cjs.map} +1 -1
- package/dist/{ConnectedSlidesTab-P7GGNUTO.cjs → ConnectedSlidesTab-E76OVY34.cjs} +38 -44
- package/dist/ConnectedSlidesTab-E76OVY34.cjs.map +1 -0
- package/dist/{ConnectedStreamedWordArtifact-7NJ3N52V.cjs → ConnectedStreamedWordArtifact-Q64DRRQD.cjs} +12 -12
- package/dist/{ConnectedStreamedWordArtifact-7NJ3N52V.cjs.map → ConnectedStreamedWordArtifact-Q64DRRQD.cjs.map} +1 -1
- package/dist/{DocumentReviewCard-BFPOFQXI.cjs → DocumentReviewCard-M53XFLI2.cjs} +16 -16
- package/dist/{DocumentReviewCard-BFPOFQXI.cjs.map → DocumentReviewCard-M53XFLI2.cjs.map} +1 -1
- package/dist/{FilesViewerDialog-MHUVEZ7M.cjs → FilesViewerDialog-V6FSRQTP.cjs} +33 -34
- package/dist/FilesViewerDialog-V6FSRQTP.cjs.map +1 -0
- package/dist/{NativeDocxEditor-SIRYPMBN.cjs → NativeDocxEditor-2PTEK6ND.cjs} +6 -6
- package/dist/{NativeDocxEditor-SIRYPMBN.cjs.map → NativeDocxEditor-2PTEK6ND.cjs.map} +1 -1
- package/dist/{SpotlightStrip-ED22UYTM.cjs → SpotlightStrip-QQ2WUI32.cjs} +28 -29
- package/dist/SpotlightStrip-QQ2WUI32.cjs.map +1 -0
- package/dist/{WorkspaceTableView-MIFYXV3G.cjs → WorkspaceTableView-3XYAV4BV.cjs} +8 -8
- package/dist/{WorkspaceTableView-MIFYXV3G.cjs.map → WorkspaceTableView-3XYAV4BV.cjs.map} +1 -1
- package/dist/agents/index.cjs +215 -215
- package/dist/ai-IEIR7SC2.cjs +3 -3
- package/dist/auth/index.cjs +1 -1
- package/dist/calls/index.cjs +2 -2
- package/dist/chat/index.cjs +6 -6
- package/dist/{chunk-GAMRVB3I.cjs → chunk-23I5EUZA.cjs} +65 -10
- package/dist/chunk-23I5EUZA.cjs.map +1 -0
- package/dist/{chunk-ZZZITHGK.cjs → chunk-26SFI2BH.cjs} +16 -3
- package/dist/chunk-26SFI2BH.cjs.map +1 -0
- package/dist/{chunk-OGK377NL.cjs → chunk-2SU37RZA.cjs} +409 -42
- package/dist/chunk-2SU37RZA.cjs.map +1 -0
- package/dist/{chunk-CQ2RJYE2.cjs → chunk-3IH55CDE.cjs} +3 -3
- package/dist/{chunk-CQ2RJYE2.cjs.map → chunk-3IH55CDE.cjs.map} +1 -1
- package/dist/{chunk-AS6QZETU.cjs → chunk-5QERK4PK.cjs} +35 -35
- package/dist/{chunk-AS6QZETU.cjs.map → chunk-5QERK4PK.cjs.map} +1 -1
- package/dist/{chunk-AISYXX4M.cjs → chunk-7NLO7ASW.cjs} +4 -4
- package/dist/{chunk-AISYXX4M.cjs.map → chunk-7NLO7ASW.cjs.map} +1 -1
- package/dist/{chunk-QIK7E6VF.cjs → chunk-7PN3YENO.cjs} +4 -4
- package/dist/{chunk-QIK7E6VF.cjs.map → chunk-7PN3YENO.cjs.map} +1 -1
- package/dist/{chunk-JY7UUZQG.cjs → chunk-7Q46YAX4.cjs} +74 -71
- package/dist/chunk-7Q46YAX4.cjs.map +1 -0
- package/dist/{chunk-J3FFSEKO.cjs → chunk-ADDQKZ5I.cjs} +4 -4
- package/dist/{chunk-J3FFSEKO.cjs.map → chunk-ADDQKZ5I.cjs.map} +1 -1
- package/dist/{chunk-L6HTZIBD.cjs → chunk-ALK3PUUB.cjs} +3 -3
- package/dist/{chunk-L6HTZIBD.cjs.map → chunk-ALK3PUUB.cjs.map} +1 -1
- package/dist/{chunk-3ZZZO4F7.cjs → chunk-BY3QA3S5.cjs} +9 -9
- package/dist/{chunk-3ZZZO4F7.cjs.map → chunk-BY3QA3S5.cjs.map} +1 -1
- package/dist/{chunk-3UP32FM3.cjs → chunk-CQQQIZU4.cjs} +5 -5
- package/dist/{chunk-3UP32FM3.cjs.map → chunk-CQQQIZU4.cjs.map} +1 -1
- package/dist/{chunk-YOEP3I4V.cjs → chunk-E3L5DB5F.cjs} +5 -5
- package/dist/{chunk-YOEP3I4V.cjs.map → chunk-E3L5DB5F.cjs.map} +1 -1
- package/dist/{chunk-UA7HOLAZ.cjs → chunk-ESVRVZ53.cjs} +5 -5
- package/dist/{chunk-UA7HOLAZ.cjs.map → chunk-ESVRVZ53.cjs.map} +1 -1
- package/dist/{chunk-2K6IMIVL.cjs → chunk-GNZAH6UI.cjs} +3 -3
- package/dist/{chunk-2K6IMIVL.cjs.map → chunk-GNZAH6UI.cjs.map} +1 -1
- package/dist/{chunk-KA3F6TIH.cjs → chunk-IWHP7FAB.cjs} +12 -5
- package/dist/chunk-IWHP7FAB.cjs.map +1 -0
- package/dist/{chunk-ORNLCBNE.cjs → chunk-JVEDKKNO.cjs} +43 -4
- package/dist/chunk-JVEDKKNO.cjs.map +1 -0
- package/dist/{chunk-6JMW3IJ2.cjs → chunk-JVLOIIA7.cjs} +103 -100
- package/dist/chunk-JVLOIIA7.cjs.map +1 -0
- package/dist/{chunk-UUENH4BJ.cjs → chunk-KXIRVKCJ.cjs} +3 -3
- package/dist/{chunk-UUENH4BJ.cjs.map → chunk-KXIRVKCJ.cjs.map} +1 -1
- package/dist/{chunk-YVO6Z5BS.cjs → chunk-M6WVIGYP.cjs} +10 -10
- package/dist/{chunk-YVO6Z5BS.cjs.map → chunk-M6WVIGYP.cjs.map} +1 -1
- package/dist/{chunk-PSB64T43.cjs → chunk-MLA2BJ2Y.cjs} +28 -28
- package/dist/{chunk-PSB64T43.cjs.map → chunk-MLA2BJ2Y.cjs.map} +1 -1
- package/dist/{chunk-B3R62764.cjs → chunk-MMSHIIKG.cjs} +6 -6
- package/dist/{chunk-B3R62764.cjs.map → chunk-MMSHIIKG.cjs.map} +1 -1
- package/dist/{chunk-ENOPKX7E.cjs → chunk-MXBXZXXQ.cjs} +3 -3
- package/dist/{chunk-ENOPKX7E.cjs.map → chunk-MXBXZXXQ.cjs.map} +1 -1
- package/dist/chunk-NTDQQLDD.cjs +18 -0
- package/dist/{chunk-IRGRMJPP.cjs.map → chunk-NTDQQLDD.cjs.map} +1 -1
- package/dist/{chunk-PVJ5ODDB.cjs → chunk-Q6IKXWPG.cjs} +4 -4
- package/dist/{chunk-PVJ5ODDB.cjs.map → chunk-Q6IKXWPG.cjs.map} +1 -1
- package/dist/{chunk-4LP5MJGQ.cjs → chunk-QG2U2JGX.cjs} +4 -4
- package/dist/{chunk-4LP5MJGQ.cjs.map → chunk-QG2U2JGX.cjs.map} +1 -1
- package/dist/{chunk-MVXHTAJ4.cjs → chunk-QWVUBTW3.cjs} +9 -9
- package/dist/{chunk-MVXHTAJ4.cjs.map → chunk-QWVUBTW3.cjs.map} +1 -1
- package/dist/{chunk-OHWHYVKG.cjs → chunk-T73BHNQX.cjs} +3 -3
- package/dist/{chunk-OHWHYVKG.cjs.map → chunk-T73BHNQX.cjs.map} +1 -1
- package/dist/{chunk-PWBRE7JA.cjs → chunk-VLQCLQAS.cjs} +23 -10
- package/dist/chunk-VLQCLQAS.cjs.map +1 -0
- package/dist/{chunk-ADPRIBSH.cjs → chunk-X7ALF4MP.cjs} +7 -7
- package/dist/{chunk-ADPRIBSH.cjs.map → chunk-X7ALF4MP.cjs.map} +1 -1
- package/dist/{chunk-7RJZIPLE.cjs → chunk-YP5EBGLU.cjs} +33 -33
- package/dist/{chunk-7RJZIPLE.cjs.map → chunk-YP5EBGLU.cjs.map} +1 -1
- package/dist/{chunk-TSFNLY3K.cjs → chunk-ZCU72Q76.cjs} +192 -166
- package/dist/chunk-ZCU72Q76.cjs.map +1 -0
- package/dist/{chunk-BLIO3B7Z.cjs → chunk-ZYGAXD3N.cjs} +3 -3
- package/dist/{chunk-BLIO3B7Z.cjs.map → chunk-ZYGAXD3N.cjs.map} +1 -1
- package/dist/connect/docx.cjs +16 -16
- package/dist/connect/index.cjs +1095 -1114
- package/dist/connect/index.cjs.map +1 -1
- package/dist/connect/viewer.cjs +26 -27
- package/dist/connection/ai.d.ts +1 -0
- package/dist/connection/docx/ConnectedNativeDocxEditor.js +4 -5
- package/dist/connection/docx/ConnectedNativeDocxEditor.js.map +2 -2
- package/dist/connection/docx/save-native-version.d.ts +3 -0
- package/dist/connection/docx/save-native-version.js +19 -0
- package/dist/connection/docx/save-native-version.js.map +7 -0
- package/dist/connection/presentation/ClippingPdfViewer.js +8 -5
- package/dist/connection/presentation/ClippingPdfViewer.js.map +2 -2
- package/dist/connection/presentation/ConnectedSlidesTab.js +8 -13
- package/dist/connection/presentation/ConnectedSlidesTab.js.map +2 -2
- package/dist/connection/presentation/usePresentationController.js +24 -15
- package/dist/connection/presentation/usePresentationController.js.map +2 -2
- package/dist/connection/presentation/usePresentationFiles.d.ts +2 -1
- package/dist/connection/presentation/usePresentationFiles.js +15 -6
- package/dist/connection/presentation/usePresentationFiles.js.map +2 -2
- package/dist/connection/remote-control/ConnectedRemoteControlConsent.js +6 -3
- package/dist/connection/remote-control/ConnectedRemoteControlConsent.js.map +2 -2
- package/dist/connection/remote-control/ConnectedRemoteControlIndicator.js +12 -2
- package/dist/connection/remote-control/ConnectedRemoteControlIndicator.js.map +2 -2
- package/dist/connection/remote-control/ConnectedRemoteControlSwitch.js +1 -1
- package/dist/connection/remote-control/ConnectedRemoteControlSwitch.js.map +1 -1
- package/dist/connection/remote-control/browser-diagnostics.d.ts +7 -0
- package/dist/connection/remote-control/browser-diagnostics.js +109 -0
- package/dist/connection/remote-control/browser-diagnostics.js.map +7 -0
- package/dist/connection/remote-control/remoteControl.d.ts +9 -1
- package/dist/connection/remote-control/remoteControl.js +130 -10
- package/dist/connection/remote-control/remoteControl.js.map +2 -2
- package/dist/connection/remote-control/screen-sharing.d.ts +11 -0
- package/dist/connection/remote-control/screen-sharing.js +78 -0
- package/dist/connection/remote-control/screen-sharing.js.map +7 -0
- package/dist/connection/report-problem/screen-capture.d.ts +1 -0
- package/dist/connection/report-problem/screen-capture.js +2 -1
- package/dist/connection/report-problem/screen-capture.js.map +2 -2
- package/dist/connection/search/ConnectedSearchPage.d.ts +0 -11
- package/dist/connection/search/ConnectedSearchPage.js +3 -0
- package/dist/connection/search/ConnectedSearchPage.js.map +2 -2
- package/dist/connection/search/SearchResultRows.js +75 -43
- package/dist/connection/search/SearchResultRows.js.map +2 -2
- package/dist/connection/viewer/CleanViewControl.d.ts +3 -1
- package/dist/connection/viewer/CleanViewControl.js +5 -1
- package/dist/connection/viewer/CleanViewControl.js.map +2 -2
- package/dist/connection/viewer/ConnectedDocumentViewer.js +1 -1
- package/dist/connection/viewer/ConnectedDocumentViewer.js.map +2 -2
- package/dist/connection/viewer/useCleanView.d.ts +1 -1
- package/dist/connection/viewer/useCleanView.js +2 -2
- package/dist/connection/viewer/useCleanView.js.map +2 -2
- package/dist/connection/viewer/useViewedDocument.d.ts +1 -0
- package/dist/document-tools/index.cjs +20 -20
- package/dist/docx/NativeDocxEditor.d.ts +2 -1
- package/dist/docx/NativeDocxEditor.js +34 -7
- package/dist/docx/NativeDocxEditor.js.map +2 -2
- package/dist/docx/index.cjs +38 -38
- package/dist/docx/useVersionAutosave.d.ts +10 -0
- package/dist/docx/useVersionAutosave.js +36 -0
- package/dist/docx/useVersionAutosave.js.map +7 -0
- package/dist/embed/index.cjs +19 -19
- package/dist/facts/index.cjs +64 -64
- package/dist/files/index.cjs +223 -223
- package/dist/index.cjs +542 -542
- package/dist/presentation/ClipCaptureOverlay.js +14 -1
- package/dist/presentation/ClipCaptureOverlay.js.map +2 -2
- package/dist/presentation/ClipImage.js +7 -4
- package/dist/presentation/ClipImage.js.map +2 -2
- package/dist/presentation/ClipTray.js +11 -7
- package/dist/presentation/ClipTray.js.map +2 -2
- package/dist/presentation/SlidesEditor.js +6 -2
- package/dist/presentation/SlidesEditor.js.map +2 -2
- package/dist/presentation/store.d.ts +2 -0
- package/dist/presentation/store.js +15 -0
- package/dist/presentation/store.js.map +3 -3
- package/dist/settings/index.cjs +146 -146
- package/dist/shell/RemoteControlPill.d.ts +2 -1
- package/dist/shell/RemoteControlPill.js +10 -3
- package/dist/shell/RemoteControlPill.js.map +2 -2
- package/dist/shell/index.cjs +21 -21
- package/dist/site/index.cjs +6 -6
- package/dist/studio/index.cjs +9 -9
- package/dist/workflow-canvas/index.cjs +34 -34
- package/node_modules/@arbidocs/coedit/package.json +1 -1
- package/package.json +5 -5
- package/dist/ClippingMediaViewer-ZFEX5A3U.cjs.map +0 -1
- package/dist/ClippingPdfViewer-3LRTEPHV.cjs.map +0 -1
- package/dist/ConnectedPresentation-L32JPRFI.cjs.map +0 -1
- package/dist/ConnectedSlidesTab-P7GGNUTO.cjs.map +0 -1
- package/dist/FilesViewerDialog-MHUVEZ7M.cjs.map +0 -1
- package/dist/SpotlightStrip-ED22UYTM.cjs.map +0 -1
- package/dist/chunk-6JMW3IJ2.cjs.map +0 -1
- package/dist/chunk-GAMRVB3I.cjs.map +0 -1
- package/dist/chunk-GFUOCGY6.cjs +0 -32
- package/dist/chunk-GFUOCGY6.cjs.map +0 -1
- package/dist/chunk-IRGRMJPP.cjs +0 -18
- package/dist/chunk-JY7UUZQG.cjs.map +0 -1
- package/dist/chunk-KA3F6TIH.cjs.map +0 -1
- package/dist/chunk-OGK377NL.cjs.map +0 -1
- package/dist/chunk-ORNLCBNE.cjs.map +0 -1
- package/dist/chunk-PWBRE7JA.cjs.map +0 -1
- package/dist/chunk-TSFNLY3K.cjs.map +0 -1
- package/dist/chunk-ZZZITHGK.cjs.map +0 -1
|
@@ -5,7 +5,7 @@ var chunk4ONPEVTP_cjs = require('./chunk-4ONPEVTP.cjs');
|
|
|
5
5
|
var chunkV3KLUWQQ_cjs = require('./chunk-V3KLUWQQ.cjs');
|
|
6
6
|
var chunkP5AQYC4D_cjs = require('./chunk-P5AQYC4D.cjs');
|
|
7
7
|
var chunkWAV762GP_cjs = require('./chunk-WAV762GP.cjs');
|
|
8
|
-
var
|
|
8
|
+
var chunkZYGAXD3N_cjs = require('./chunk-ZYGAXD3N.cjs');
|
|
9
9
|
var chunkJJZOL5MG_cjs = require('./chunk-JJZOL5MG.cjs');
|
|
10
10
|
var chunk3YEXZX4H_cjs = require('./chunk-3YEXZX4H.cjs');
|
|
11
11
|
var chunkVZOOGA47_cjs = require('./chunk-VZOOGA47.cjs');
|
|
@@ -14,8 +14,8 @@ var chunkJR2YSBD5_cjs = require('./chunk-JR2YSBD5.cjs');
|
|
|
14
14
|
var chunk3YZKDCWY_cjs = require('./chunk-3YZKDCWY.cjs');
|
|
15
15
|
var chunkQGVOT7E4_cjs = require('./chunk-QGVOT7E4.cjs');
|
|
16
16
|
var chunkIPSHAMO2_cjs = require('./chunk-IPSHAMO2.cjs');
|
|
17
|
-
var chunkLJJJ6CYH_cjs = require('./chunk-LJJJ6CYH.cjs');
|
|
18
17
|
var chunkTKHCIHE2_cjs = require('./chunk-TKHCIHE2.cjs');
|
|
18
|
+
var chunkLJJJ6CYH_cjs = require('./chunk-LJJJ6CYH.cjs');
|
|
19
19
|
var react$1 = require('react');
|
|
20
20
|
var react = require('@arbidocs/react');
|
|
21
21
|
var jsxRuntime = require('react/jsx-runtime');
|
|
@@ -197,6 +197,22 @@ function ConnectedWorkflowsTable({
|
|
|
197
197
|
}
|
|
198
198
|
);
|
|
199
199
|
}
|
|
200
|
+
|
|
201
|
+
// src/connection/docx/save-native-version.ts
|
|
202
|
+
async function saveNativeVersion(request, documentId, state, autosave = false) {
|
|
203
|
+
const send = async (rolling) => (await request(`/${encodeURIComponent(documentId)}/save`, {
|
|
204
|
+
method: "POST",
|
|
205
|
+
headers: { "Content-Type": "application/json" },
|
|
206
|
+
body: JSON.stringify({ state, ...rolling ? { autosave: true } : {} })
|
|
207
|
+
})).json();
|
|
208
|
+
try {
|
|
209
|
+
return await send(autosave);
|
|
210
|
+
} catch (error) {
|
|
211
|
+
if (!autosave || !error || typeof error !== "object" || !("status" in error) || error.status !== 422)
|
|
212
|
+
throw error;
|
|
213
|
+
return send(false);
|
|
214
|
+
}
|
|
215
|
+
}
|
|
200
216
|
var isTopLevel = (doc) => !doc.parent_ext_id;
|
|
201
217
|
function ReferencePicker({
|
|
202
218
|
documents,
|
|
@@ -354,7 +370,7 @@ function ConnectedNativeDocxEditor({
|
|
|
354
370
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex h-full min-h-0 flex-col", children: [
|
|
355
371
|
openFailed && /* @__PURE__ */ jsxRuntime.jsx("p", { role: "status", className: "text-muted-foreground border-b px-3 py-2 text-xs", children: "Co-editing isn't available for this document right now, so this is a read-only copy of the last saved version." }),
|
|
356
372
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "min-h-0 flex-1", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
357
|
-
|
|
373
|
+
chunkZYGAXD3N_cjs.NativeDocxEditor,
|
|
358
374
|
{
|
|
359
375
|
...props,
|
|
360
376
|
snapshot: props.snapshot || openFailed,
|
|
@@ -402,16 +418,13 @@ function useConnectedNativeDocxAdapter(fontBaseUrl = "/native-docx/fonts") {
|
|
|
402
418
|
await ensureWorkspaceOpen();
|
|
403
419
|
return (await arbi.editor.request(`/${encodeURIComponent(id)}/session`, { method: "POST" })).json();
|
|
404
420
|
},
|
|
405
|
-
save:
|
|
406
|
-
method: "POST",
|
|
407
|
-
headers: { "Content-Type": "application/json" },
|
|
408
|
-
body: JSON.stringify({ state })
|
|
409
|
-
})).json(),
|
|
421
|
+
save: (id, state, autosave) => saveNativeVersion(arbi.editor.request, id, state, autosave),
|
|
410
422
|
loadFonts: () => import('./fonts-4PRWZQIU.cjs').then((m) => m.loadDocxFonts(fontBaseUrl)),
|
|
411
423
|
baseUrl: arbi.getConnectionInfo()?.baseUrl || window.location.origin,
|
|
412
424
|
author,
|
|
413
425
|
subscribeTokenChanges: tokenChanges(arbi),
|
|
414
426
|
onDirtyChange: support.onDirtyChange,
|
|
427
|
+
registerTurnFlush: react.registerDocumentTurnFlush,
|
|
415
428
|
// The document's row moves to the saved version in place: through the host when it keeps
|
|
416
429
|
// the lists (its document tools refresh them), else here.
|
|
417
430
|
onVersionSaved: async (id, version) => {
|
|
@@ -486,5 +499,5 @@ exports.useConnectedNativeDocxAdapter = useConnectedNativeDocxAdapter;
|
|
|
486
499
|
exports.useConnectedWorkspaceRole = useConnectedWorkspaceRole;
|
|
487
500
|
exports.useDocxCommentTarget = useDocxCommentTarget;
|
|
488
501
|
exports.useNativeDocxSupport = useNativeDocxSupport;
|
|
489
|
-
//# sourceMappingURL=chunk-
|
|
490
|
-
//# sourceMappingURL=chunk-
|
|
502
|
+
//# sourceMappingURL=chunk-VLQCLQAS.cjs.map
|
|
503
|
+
//# sourceMappingURL=chunk-VLQCLQAS.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/connection/docx/support.ts","../src/connection/ConnectedWorkflowsTable.tsx","../src/connection/docx/save-native-version.ts","../src/connection/docx/useConnectedDocxReferences.tsx","../src/connection/docx/useConnectedHouseTemplate.ts","../src/connection/docx/ConnectedNativeDocxEditor.tsx"],"names":["useHost","useConnectedWorkspace","useWorkspaceUsers","fmtDate","useBlocksEnvironment","useOpenWorkflow","useMemo","workflowSteps","useWorkflows","useConnectedConversations","useAgents","useUpdateWorkflow","useDeleteWorkflow","useRunWorkflow","useState","isScheduledWorkflow","useEffect","jsx","WorkflowsTable","workflowSignal","workflowTriggerType","toWorkflowFieldDocument","DocumentPicker","useArbi","useListedDocuments","useRef","buildDeepLinkUrl","parseDeepLinkPath","useSetWorkspaceHouseTemplate","useWorkspaces","supportsHouseTemplates","workspaceHouseTemplateId","useHouseTemplateCandidates","contentPath","isCandidate","useRegisterOpenDocument","jsxs","NativeDocxEditor","useQueryClient","useOptionalDocumentTools","registerDocumentTurnFlush","refreshDocuments","fetchSavedSignature","storeSavedSignature"],"mappings":"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","file":"chunk-VLQCLQAS.cjs","sourcesContent":["/**\n * What a host adds to the connected Word editor that the platform API alone cannot give: the\n * workspace's definitions (facts labelled \"Definitions\"), image generation (an assistant run), the\n * host's leave-page guard, and a comment to open the editor at. It is the host configuration's\n * `docx`; every field is optional, and without one the editor simply offers less (no Defined term,\n * no Generate image).\n */\n\nimport { useHost } from '../../provider/host'\nimport type { DefinitionSource } from '../../tags/definitions'\nimport type { DocxImageGeneration } from '../../docx/layout/GenerateImage'\n\nexport interface NativeDocxSupport {\n /** The workspace's definitions. Present: Insert offers Defined term and `@@` the type-ahead. */\n definitions?: () => Promise<DefinitionSource[]>\n /** The platform's image generation. Present: Insert offers Generate image. */\n imageGeneration?: DocxImageGeneration\n /** The open editor has (or no longer has) unsaved changes. */\n onDirtyChange?: (dirty: boolean) => void\n /** A comment thread to open when its document opens (a notification's link), as a hook. */\n useCommentTarget?: () => { documentId: string; commentId: string } | null\n}\n\nconst NO_SUPPORT: NativeDocxSupport = {}\nconst NO_TARGET = () => null\n\nexport function useNativeDocxSupport(): NativeDocxSupport {\n return useHost().docx ?? NO_SUPPORT\n}\n\n/** The comment thread to open with its document (none without the host's). */\nexport function useDocxCommentTarget(): { documentId: string; commentId: string } | null {\n const useTarget = useNativeDocxSupport().useCommentTarget ?? NO_TARGET\n return useTarget()\n}\n","/**\n * The saved workflows bound to the connection: when each starts, its last run (a link to the thread\n * it created) and next run, who runs it, pause and resume, share, run now, delete (one or many), and\n * the workflow's history. The host opens a workflow (its builder) and its history; threads open\n * through the environment's `openConversation`, failures are told through its `notify`.\n *\n * The host's catalogue (the host configuration's `workflows.catalogue`), when it has one, is listed\n * in its categories above the saved workflows: an entry opens in the builder (`onOpenTemplate`) or\n * runs (the environment's `openWorkflow(id, { view: 'run' })`). A filtered list (`filter`) is about\n * saved workflows only and leaves the catalogue out.\n */\n\nimport { useEffect, useMemo, useState } from 'react'\nimport {\n useAgents,\n useDeleteWorkflow,\n useRunWorkflow,\n useUpdateWorkflow,\n useWorkflows,\n useWorkspaceUsers,\n type WorkflowResponse,\n} from '@arbidocs/react'\nimport { WorkflowsTable, type WorkflowsTableProps } from '../agents/tasks/WorkflowsTable'\nimport type { WorkflowCatalogueRow } from '../agents/tasks/WorkflowCatalogueSections'\nimport {\n isScheduledWorkflow,\n workflowSignal,\n workflowTriggerType,\n} from '../agents/tasks/workflowRows'\nimport { workflowSteps } from '../agents/workflows/run'\nimport { fmtDate } from '../lib/format'\nimport { useBlocksEnvironment } from '../provider/environment'\nimport { useOpenWorkflow } from './workflows/useOpenWorkflow'\nimport { useHost } from '../provider/host'\nimport { useConnectedWorkspace } from './ConnectionProvider'\nimport { useConnectedConversations } from './workspaceData'\n\n/** The viewer's role in the open workspace, and the workspace's members. */\nexport function useConnectedWorkspaceRole() {\n const { workspaceId, live, userId, ensureWorkspaceOpen } = useConnectedWorkspace()\n const { data: members = [] } = useWorkspaceUsers(workspaceId ?? undefined, {\n enabled: live && !!workspaceId,\n beforeFetch: ensureWorkspaceOpen,\n })\n const role = members.find((m) => m.user.external_id === userId)?.role\n return {\n members,\n role,\n /** An owner or a collaborator edits, pauses, resumes and runs what is shared with the workspace. */\n canEditShared: role === 'owner' || role === 'collaborator',\n /** With an item's creator, the only one who deletes it. */\n isWorkspaceOwner: role === 'owner',\n }\n}\n\nexport interface ConnectedWorkflowsTableLabels {\n /** A change (pause, share, delete) that failed without a message. */\n updateFailed: string\n deleteTitle: string\n deleteOne: (name: string) => string\n deleteMany: (count: number) => string\n /** A run that failed: its history has the error report. */\n runFailed: string\n /** A run that created no thread. */\n noThread: string\n /** A document action that started (it has no thread): what is happening. */\n documentAction: (workflow: WorkflowResponse) => string\n untitledTask: string\n /** When a workflow that starts on a step signal starts (the default trigger text). */\n signalTrigger: (signal: string) => string\n}\n\nexport const DEFAULT_CONNECTED_WORKFLOWS_TABLE_LABELS: ConnectedWorkflowsTableLabels = {\n updateFailed: 'Could not update the workflow',\n deleteTitle: 'Delete workflow',\n deleteOne: (name) => `Delete “${name}”? Threads it already created stay.`,\n deleteMany: (count) => `Delete ${count} workflows? Threads they already created stay.`,\n runFailed: 'The workflow failed. You can send an error report from its history.',\n noThread: 'The workflow did not create a thread.',\n documentAction: (workflow) =>\n workflow.action?.type === 'email_documents'\n ? 'Preparing your document email'\n : 'Reviewing documents',\n untitledTask: 'Untitled thread',\n signalTrigger: (signal) => `When a step signals ${signal}`,\n}\n\ntype TableProps = WorkflowsTableProps<WorkflowResponse>\n\nexport interface ConnectedWorkflowsTableProps extends Omit<\n TableProps,\n | 'workflows'\n | 'isLoading'\n | 'busyId'\n | 'describeTrigger'\n | 'formatDate'\n | 'onToggleActive'\n | 'onToggleShared'\n | 'onDelete'\n | 'onDeleteMany'\n | 'onToggleActiveMany'\n | 'onRun'\n | 'onOpenThread'\n | 'lastRuns'\n | 'agentNames'\n | 'taskNames'\n | 'canEditShared'\n | 'isWorkspaceOwner'\n | 'catalogue'\n | 'categories'\n | 'renderIcon'\n> {\n /**\n * Which saved workflows to list: `scheduled` (those that start on a date or a repeat), or a\n * predicate. Default: all.\n */\n filter?: 'scheduled' | ((workflow: WorkflowResponse) => boolean)\n /**\n * When a workflow starts, in the host's words. Default: the step signal it starts on, else its\n * trigger type.\n */\n describeTrigger?: TableProps['describeTrigger']\n formatDate?: TableProps['formatDate']\n connectedLabels?: Partial<ConnectedWorkflowsTableLabels>\n}\n\nconst messageOf = (error: unknown) => (error instanceof Error ? error.message : '')\n\nexport function ConnectedWorkflowsTable({\n filter,\n describeTrigger,\n formatDate = fmtDate,\n onViewRuns,\n connectedLabels,\n onRunTemplate,\n ...tableProps\n}: ConnectedWorkflowsTableProps) {\n const l = { ...DEFAULT_CONNECTED_WORKFLOWS_TABLE_LABELS, ...connectedLabels }\n const { notify, confirm, openConversation } = useBlocksEnvironment()\n const openWorkflow = useOpenWorkflow()\n const host = useHost().workflows\n // A filtered list (the scheduled workflows) is about saved workflows only.\n const catalogueEntries = filter ? undefined : host?.catalogue\n const catalogue = useMemo(\n () =>\n catalogueEntries?.map(({ workflow, category, note, runnable }): WorkflowCatalogueRow => ({\n id: workflow.id,\n title: workflow.title,\n description: workflow.description,\n icon: workflow.icon,\n category,\n stepCount: workflowSteps(workflow).length,\n note,\n runnable,\n })),\n [catalogueEntries]\n )\n const { canEditShared, isWorkspaceOwner } = useConnectedWorkspaceRole()\n const { data: saved = [], isLoading } = useWorkflows({ live: true })\n const { data: conversations, refetch } = useConnectedConversations({ live: true })\n const { data: agents = [] } = useAgents()\n const update = useUpdateWorkflow()\n const remove = useDeleteWorkflow()\n const run = useRunWorkflow()\n const [busyId, setBusyId] = useState<string | null>(null)\n\n const workflows = useMemo(() => {\n const keep = filter === 'scheduled' ? isScheduledWorkflow : filter\n return keep ? saved.filter(keep) : saved\n }, [saved, filter])\n // A clock or an event fired a workflow: the thread it created is new to the conversation list.\n const firingStamp = saved.map((w) => `${w.external_id}:${w.last_fired_at ?? ''}`).join('|')\n useEffect(() => {\n void refetch?.()\n }, [firingStamp, refetch])\n\n const lastRuns = useMemo(() => {\n const out: NonNullable<TableProps['lastRuns']> = {}\n for (const c of conversations) {\n const id = c.workflow_ext_id\n if (id && (!out[id] || Date.parse(c.created_at) > Date.parse(out[id].at)))\n out[id] = { conversationId: c.external_id, at: c.created_at, threadStatus: c.status }\n }\n return out\n }, [conversations])\n const agentNames = useMemo(\n () => Object.fromEntries(agents.map((a) => [a.external_id, a.given_name || a.email])),\n [agents]\n )\n const taskNames = useMemo(\n () =>\n Object.fromEntries(\n conversations\n .filter((c) => c.status != null)\n .map((c) => [c.external_id, c.title || l.untitledTask])\n ),\n [conversations, l.untitledTask]\n )\n\n const act = async (workflow: WorkflowResponse, action: () => Promise<unknown>) => {\n setBusyId(workflow.external_id)\n try {\n await action()\n } catch (error) {\n notify(messageOf(error) || l.updateFailed, 'error')\n } finally {\n setBusyId(null)\n }\n }\n const setActive = (workflow: WorkflowResponse, active: boolean) =>\n act(workflow, () => update.mutateAsync({ workflowId: workflow.external_id, patch: { active } }))\n const deleteAll = async (items: WorkflowResponse[]) => {\n if (!items.length) return\n const ok = await confirm({\n title: l.deleteTitle,\n message: items.length === 1 ? l.deleteOne(items[0].name) : l.deleteMany(items.length),\n })\n if (!ok) return\n for (const workflow of items)\n await act(workflow, () => remove.mutateAsync(workflow.external_id))\n }\n\n return (\n <WorkflowsTable\n {...tableProps}\n workflows={workflows}\n isLoading={isLoading}\n busyId={busyId}\n describeTrigger={\n describeTrigger ??\n ((w) => {\n const signal = workflowSignal(w)\n return signal ? l.signalTrigger(signal) : workflowTriggerType(w).replaceAll('_', ' ')\n })\n }\n catalogue={catalogue}\n categories={host?.categories}\n renderIcon={host?.renderIcon}\n onRunTemplate={onRunTemplate ?? (openWorkflow && ((id) => openWorkflow(id, { view: 'run' })))}\n formatDate={formatDate}\n agentNames={agentNames}\n taskNames={taskNames}\n lastRuns={lastRuns}\n canEditShared={canEditShared}\n isWorkspaceOwner={isWorkspaceOwner}\n onOpenThread={(conversationId) => openConversation(conversationId)}\n onViewRuns={onViewRuns}\n onToggleActive={(workflow, active) => void setActive(workflow, active)}\n onToggleActiveMany={(items, active) => {\n void (async () => {\n for (const workflow of items) await setActive(workflow, active)\n })()\n }}\n onToggleShared={(workflow, shared) =>\n void act(workflow, () =>\n update.mutateAsync({ workflowId: workflow.external_id, patch: { shared } })\n )\n }\n onDelete={(workflow) => void deleteAll([workflow])}\n onDeleteMany={(items) => void deleteAll(items)}\n onRun={(workflow) =>\n void act(workflow, async () => {\n const result = await run.mutateAsync(workflow.external_id)\n if (result.conversation_ext_id) openConversation(result.conversation_ext_id)\n if (result.error) {\n onViewRuns?.(workflow)\n notify(l.runFailed, 'error')\n return\n }\n if (result.execution_id && !result.conversation_ext_id) {\n // A document action runs without a thread: its history shows how it goes.\n onViewRuns?.(workflow)\n notify(l.documentAction(workflow), 'success')\n return\n }\n if (!result.conversation_ext_id) throw new Error(l.noThread)\n })\n }\n />\n )\n}\n","import type { NativeDocxAdapter } from '../../docx/NativeDocxEditor'\n\n/** Older servers reject the new body field; retain their ordinary version save during rollout. */\nexport async function saveNativeVersion(\n request: NativeDocxAdapter['request'],\n documentId: string,\n state?: string,\n autosave = false\n): ReturnType<NativeDocxAdapter['save']> {\n const send = async (rolling: boolean) =>\n (\n await request(`/${encodeURIComponent(documentId)}/save`, {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ state, ...(rolling ? { autosave: true } : {}) }),\n })\n ).json()\n try {\n return await send(autosave)\n } catch (error) {\n if (\n !autosave ||\n !error ||\n typeof error !== 'object' ||\n !('status' in error) ||\n error.status !== 422\n )\n throw error\n return send(false)\n }\n}\n","/**\n * The Word editor's references to the workspace's other documents: the documents and their\n * passages (the same parsed passages a fact's citations quote), the ARBI address of a passage\n * (`/wrk-…/doc-…/cnk-…`, the deep link that opens a document at a passage, so the link works from\n * Word too), and opening one wherever the host shows documents, highlighted like a citation.\n */\nimport { useMemo, useRef } from 'react'\nimport { useArbi } from '@arbidocs/react'\nimport type { DocxReferencesAdapter } from '../../docx/references/CrossReferences'\nimport { DocumentPicker } from '../../settings/DocumentPicker'\nimport { buildDeepLinkUrl, parseDeepLinkPath } from '../../lib/deep-link'\nimport { useBlocksEnvironment } from '../../provider/environment'\nimport { useConnectedWorkspace } from '../ConnectionProvider'\nimport { toWorkflowFieldDocument } from '../ConnectedWorkflowLauncher'\nimport { useListedDocuments, type ConnectedDocument } from '../workspaceData'\n\ninterface ParsedChunk {\n content?: string | null\n metadata?: { chunk_ext_id?: string | null; page_number?: number | null } | null\n}\n\n/** Top-level documents only: an attachment opens with its parent. */\nconst isTopLevel = (doc: ConnectedDocument) => !doc.parent_ext_id\n\nfunction ReferencePicker({\n documents,\n selectedId,\n onSelect,\n}: {\n documents: ConnectedDocument[]\n selectedId: string | null\n onSelect: (documentId: string) => void\n}) {\n const groups = useMemo(() => {\n const docs = documents\n .filter(isTopLevel)\n .map(toWorkflowFieldDocument)\n .sort((a, b) => a.title.toLowerCase().localeCompare(b.title.toLowerCase()))\n return [{ id: 'all', heading: 'In this workspace', docs }]\n }, [documents])\n const selected = groups[0].docs.find((d) => d.id === selectedId)\n return (\n <DocumentPicker\n groups={groups}\n value={selectedId ?? ''}\n onValueChange={onSelect}\n selected={selected}\n labels={{ placeholder: 'Search documents…' }}\n />\n )\n}\n\nexport function useConnectedDocxReferences(): DocxReferencesAdapter {\n const arbi = useArbi()\n const { workspaceId } = useConnectedWorkspace()\n const { openDocument, runtimeConfig } = useBlocksEnvironment()\n const { data: documents } = useListedDocuments()\n // Read when called (the picker, a link): the list grows while the editor is open.\n const documentsRef = useRef(documents)\n documentsRef.current = documents\n return useMemo<DocxReferencesAdapter>(\n () => ({\n documents: async () =>\n documentsRef.current\n .filter(isTopLevel)\n .map((d) => ({ id: d.external_id, title: toWorkflowFieldDocument(d).title })),\n passages: async (documentId) => {\n const parsed = await arbi.documents.getParsedContent(documentId, 'final')\n return ((parsed.chunks ?? []) as ParsedChunk[]).flatMap((chunk) =>\n chunk.metadata?.chunk_ext_id && chunk.content?.trim()\n ? [\n {\n chunkId: chunk.metadata.chunk_ext_id,\n page: chunk.metadata.page_number ?? null,\n text: chunk.content,\n },\n ]\n : []\n )\n },\n linkFor: ({ documentId, chunkId, page }) => {\n const url = buildDeepLinkUrl(\n { workspaceId: workspaceId ?? undefined, documentId, chunkId },\n runtimeConfig.deploymentDomain\n )\n return page ? `${url}?page=${page}` : url\n },\n targetOf: (href) => {\n let url: URL\n try {\n url = new URL(href, window.location.origin)\n } catch {\n return null\n }\n const { documentId, chunkId } = parseDeepLinkPath(url.pathname)\n if (!documentId || !chunkId) return null\n const page = Number(url.searchParams.get('page')) || null\n return { documentId, chunkId, page }\n },\n open: ({ documentId, chunkId, page }) =>\n openDocument(documentId, { passageId: chunkId, page: page ?? undefined }),\n renderDocumentPicker: (onSelect, selectedId) => (\n <ReferencePicker\n documents={documentsRef.current}\n selectedId={selectedId}\n onSelect={onSelect}\n />\n ),\n }),\n [arbi, workspaceId, openDocument, runtimeConfig.deploymentDomain]\n )\n}\n","/**\n * The house template for the open workspace: its own (a document of the workspace), else the\n * deployment's default, else ARBI's built-in legal template. A workspace owner can make a document\n * the house template once the server supports it.\n */\nimport { useMemo } from 'react'\nimport {\n supportsHouseTemplates,\n useArbi,\n useHouseTemplateCandidates,\n useSetWorkspaceHouseTemplate,\n useWorkspaces,\n workspaceHouseTemplateId,\n} from '@arbidocs/react'\nimport { contentPath } from '../../docx/content-path'\nimport type { HouseTemplate, HouseTemplateHost } from '../../docx/template/HouseTemplate'\nimport { isCandidate } from '../../docx/template/candidates'\nimport { useConnectedWorkspace } from '../ConnectionProvider'\nimport { useConnectedWorkspaceRole } from '../ConnectedWorkflowsTable'\n\nexport function useConnectedHouseTemplate(): HouseTemplateHost {\n const arbi = useArbi()\n const { mutateAsync: setWorkspaceTemplate } = useSetWorkspaceHouseTemplate()\n const { workspaceId, live, ensureWorkspaceOpen } = useConnectedWorkspace()\n const { data: workspaces } = useWorkspaces({ enabled: live })\n const workspace = workspaces?.find((w) => w.external_id === workspaceId)\n const { isWorkspaceOwner } = useConnectedWorkspaceRole()\n const supported = supportsHouseTemplates(workspace)\n const templateId = workspaceHouseTemplateId(workspace)\n // Only an eligible document (shared, Word, here or in a public workspace) is offered as the template.\n const { data: candidates } = useHouseTemplateCandidates(\n workspaceId,\n supported && isWorkspaceOwner\n )\n return useMemo<HouseTemplateHost>(\n () => ({\n load: async (): Promise<HouseTemplate> => {\n if (templateId) {\n await ensureWorkspaceOpen()\n const response = await arbi.editor.request(contentPath(templateId))\n const [record] = await arbi.documents.get([templateId]).catch(() => [])\n return {\n bytes: new Uint8Array(await response.arrayBuffer()),\n name: record?.file_name ?? 'House template.docx',\n source: 'workspace',\n documentId: templateId,\n }\n }\n if (supported) {\n const deployment = await arbi.houseTemplates.deployment()\n if (deployment) return { ...deployment, source: 'deployment' }\n }\n // The built-in template comes with the Word editor's template code: loaded on demand.\n return (await import('../../docx/template/HouseTemplate')).builtinHouseTemplate()\n },\n setFromDocument:\n supported && isWorkspaceOwner\n ? async (documentId) => {\n await ensureWorkspaceOpen()\n await setWorkspaceTemplate(documentId)\n }\n : undefined,\n isEligible: (documentId) => isCandidate(candidates, documentId),\n }),\n [\n arbi,\n setWorkspaceTemplate,\n supported,\n templateId,\n isWorkspaceOwner,\n candidates,\n ensureWorkspaceOpen,\n ]\n )\n}\n","import { saveNativeVersion } from './save-native-version'\nimport { useMemo, useRef, useState } from 'react'\nimport { useQueryClient } from '@tanstack/react-query'\nimport { refreshDocuments, useArbi, useWorkspaceUsers } from '@arbidocs/react'\nimport {\n fetchSavedSignature,\n storeSavedSignature,\n useOptionalDocumentTools,\n} from '@arbidocs/react/document-tools'\nimport type { NativeDocxAdapter, NativeDocxEditorProps } from '../../docx/NativeDocxEditor'\nimport { NativeDocxEditor } from '../../docx/lazy'\nimport { registerDocumentTurnFlush } from '@arbidocs/react'\nimport { useRegisterOpenDocument } from '@arbidocs/react/shell'\nimport { useBlocksEnvironment } from '../../provider/environment'\nimport { useConnectedWorkspace } from '../ConnectionProvider'\nimport { useDocxCommentTarget, useNativeDocxSupport } from './support'\nimport { useConnectedDocxReferences } from './useConnectedDocxReferences'\nimport { useConnectedHouseTemplate } from './useConnectedHouseTemplate'\n\nexport type ConnectedNativeDocxEditorProps = Omit<NativeDocxEditorProps, 'adapter' | 'compact'> & {\n fontBaseUrl?: string\n}\n\n/**\n * The native Word editor on the signed-in ARBI session, under any host (`defaultHost`'s sign-in\n * layer, or the host's own `arbi` and session state). Until a live session has opened, a failure to\n * open one falls back to the saved copy, read-only, so the document is still readable; later token\n * refreshes are not guarded (switching modes would drop unsaved edits).\n */\nexport function ConnectedNativeDocxEditor({\n fontBaseUrl = '/native-docx/fonts',\n ...props\n}: ConnectedNativeDocxEditorProps) {\n const adapter = useConnectedNativeDocxAdapter(fontBaseUrl)\n const { workspaceId } = useConnectedWorkspace()\n const commentTarget = useDocxCommentTarget()\n const [openFailed, setOpenFailed] = useState(false)\n const hasOpened = useRef(false)\n const guardedAdapter = useMemo<NativeDocxAdapter>(\n () => ({\n ...adapter,\n open: async (documentId) => {\n try {\n const session = await adapter.open(documentId)\n hasOpened.current = true\n return session\n } catch (error) {\n if (!hasOpened.current) setOpenFailed(true)\n throw error\n }\n },\n }),\n [adapter]\n )\n // Drafting mode: the saved Word document being edited is what the chat is about. A history\n // snapshot, a streamed preview, an unsaved draft and an embedded body field are not.\n const live = !props.snapshot && !props.stream && !props.draftContent\n useRegisterOpenDocument({ documentId: live ? props.documentId : null, workspaceId })\n const initialCommentId =\n props.initialCommentId ??\n (commentTarget?.documentId === props.documentId ? commentTarget.commentId : undefined)\n return (\n <div className=\"flex h-full min-h-0 flex-col\">\n {openFailed && (\n <p role=\"status\" className=\"text-muted-foreground border-b px-3 py-2 text-xs\">\n Co-editing isn't available for this document right now, so this is a read-only copy\n of the last saved version.\n </p>\n )}\n <div className=\"min-h-0 flex-1\">\n <NativeDocxEditor\n {...props}\n snapshot={props.snapshot || openFailed}\n initialCommentId={initialCommentId}\n adapter={guardedAdapter}\n />\n </div>\n </div>\n )\n}\n\n/** The access token changed (a refresh): the live room is told the new one. */\nfunction tokenChanges(arbi: ReturnType<typeof useArbi>) {\n return (listener: () => void) => {\n if (!arbi.isLoggedIn) return () => {}\n const session = arbi.getClient().session\n let token = session.getState().accessToken\n return session.subscribe((state) => {\n if (state.accessToken === token) return\n token = state.accessToken\n listener()\n })\n }\n}\n\n/**\n * The native Word adapter on the signed-in session: the editor transport, the people to mention,\n * cross-references, the house template, and the host's extras (its host config's `docx`).\n */\nexport function useConnectedNativeDocxAdapter(fontBaseUrl = '/native-docx/fonts') {\n const arbi = useArbi()\n const { workspaceId, live, user, ensureWorkspaceOpen } = useConnectedWorkspace()\n const queries = useQueryClient()\n const { notify } = useBlocksEnvironment()\n const tools = useOptionalDocumentTools()\n const support = useNativeDocxSupport()\n const references = useConnectedDocxReferences()\n const houseTemplate = useConnectedHouseTemplate()\n const { data: members } = useWorkspaceUsers(workspaceId ?? undefined, {\n enabled: live && !!workspaceId,\n beforeFetch: ensureWorkspaceOpen,\n })\n const onDocumentsChanged = tools?.onDocumentsChanged\n // Tracked changes and comments are authored by the user's first name.\n const author = (live && arbi.user.profile()?.givenName) || user?.name || 'You'\n const adapter = useMemo<NativeDocxAdapter>(\n () => ({\n request: async (path, options) => {\n await ensureWorkspaceOpen()\n return arbi.editor.request(path, options)\n },\n open: async (id) => {\n await ensureWorkspaceOpen()\n return (\n await arbi.editor.request(`/${encodeURIComponent(id)}/session`, { method: 'POST' })\n ).json()\n },\n save: (id, state, autosave) => saveNativeVersion(arbi.editor.request, id, state, autosave),\n loadFonts: () => import('../../docx/fonts').then((m) => m.loadDocxFonts(fontBaseUrl)),\n baseUrl: arbi.getConnectionInfo()?.baseUrl || window.location.origin,\n author,\n subscribeTokenChanges: tokenChanges(arbi),\n onDirtyChange: support.onDirtyChange,\n registerTurnFlush: registerDocumentTurnFlush,\n // The document's row moves to the saved version in place: through the host when it keeps\n // the lists (its document tools refresh them), else here.\n onVersionSaved: async (id, version) => {\n if (onDocumentsChanged) await onDocumentsChanged([id], 'version')\n if (version || !onDocumentsChanged) {\n const fresh = await refreshDocuments(queries, arbi, [id])\n if (\n version &&\n !fresh.some((doc) => doc.external_id === id && (doc.current_version ?? 0) >= version)\n ) {\n throw new Error(\n 'The version was saved, but its current status could not be confirmed. Please try again.'\n )\n }\n }\n },\n notify,\n mentions: members?.map(({ user: member }) => ({\n id: member.external_id,\n name: [member.given_name, member.family_name].filter(Boolean).join(' '),\n kind: member.external_id.startsWith('agt-') ? 'agent' : 'human',\n })),\n savedSignature: {\n load: () => fetchSavedSignature(arbi.getClient().fetch),\n save: (signature) => storeSavedSignature(arbi.getClient().fetch, signature),\n defaultName: user?.name ?? '',\n },\n signatureSigners: members\n ?.filter(({ user: member }) => member.external_id.startsWith('usr-'))\n .map(({ user: member }) => ({\n email: member.email,\n name: [member.given_name, member.family_name].filter(Boolean).join(' '),\n })),\n requestAgent: async (id, request) => {\n const response = await arbi.editor.request(`/${encodeURIComponent(id)}/mentions`, {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({\n comment_id: request.commentId,\n instruction: request.instruction,\n request_id: request.requestId,\n recipient_ids: request.recipientIds,\n }),\n })\n const delivery = (await response.json()) as { response_ids: string[] }\n notify('Mention delivered.', 'success')\n return { responseIds: delivery.response_ids || [] }\n },\n getAgentStatus: async (responseId) => (await arbi.assistant.getResponse(responseId)).status,\n definitions: support.definitions,\n references,\n imageGeneration: support.imageGeneration,\n houseTemplate,\n }),\n [\n arbi,\n author,\n members,\n ensureWorkspaceOpen,\n fontBaseUrl,\n queries,\n notify,\n onDocumentsChanged,\n support,\n references,\n houseTemplate,\n user?.name,\n ]\n )\n return adapter\n}\n"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
'use strict';
|
|
3
3
|
|
|
4
|
-
var
|
|
4
|
+
var chunkJVEDKKNO_cjs = require('./chunk-JVEDKKNO.cjs');
|
|
5
5
|
var react = require('react');
|
|
6
6
|
|
|
7
7
|
// src/presentation/stage-videos.ts
|
|
@@ -36,22 +36,22 @@ function usePresenterKeys(view, presenting, selection) {
|
|
|
36
36
|
if (event.defaultPrevented || event.metaKey || event.ctrlKey || event.altKey) return;
|
|
37
37
|
const target = event.target;
|
|
38
38
|
if (target?.closest?.('input, textarea, select, [contenteditable="true"]')) return;
|
|
39
|
-
const state =
|
|
39
|
+
const state = chunkJVEDKKNO_cjs.usePresentation.getState();
|
|
40
40
|
const key = event.key;
|
|
41
41
|
const onSlide = selected && state.slides[state.current]?.items.some((i) => i.clipId === selected);
|
|
42
42
|
const box = selected?.startsWith("box-") ? state.slides.flatMap((slide) => slide.boxes).find((entry) => entry.id === selected) : void 0;
|
|
43
43
|
if (box && key.startsWith("Arrow")) {
|
|
44
44
|
const step = event.shiftKey ? BIG_NUDGE : NUDGE;
|
|
45
45
|
const dx = key === "ArrowLeft" ? -step : key === "ArrowRight" ? step : 0;
|
|
46
|
-
const dy = (key === "ArrowUp" ? -step : key === "ArrowDown" ? step : 0) *
|
|
47
|
-
state.updateBox(box.id, (entry) => ({ ...entry, frame:
|
|
46
|
+
const dy = (key === "ArrowUp" ? -step : key === "ArrowDown" ? step : 0) * chunkJVEDKKNO_cjs.STAGE_ASPECT;
|
|
47
|
+
state.updateBox(box.id, (entry) => ({ ...entry, frame: chunkJVEDKKNO_cjs.moveBox(entry.frame, dx, dy) }));
|
|
48
48
|
} else if (box && (key === "Delete" || key === "Backspace")) {
|
|
49
49
|
state.removeBox(box.id);
|
|
50
50
|
clear?.();
|
|
51
51
|
} else if (onSlide && key.startsWith("Arrow")) {
|
|
52
52
|
const step = event.shiftKey ? BIG_NUDGE : NUDGE;
|
|
53
53
|
const dx = key === "ArrowLeft" ? -step : key === "ArrowRight" ? step : 0;
|
|
54
|
-
const dy = (key === "ArrowUp" ? -step : key === "ArrowDown" ? step : 0) *
|
|
54
|
+
const dy = (key === "ArrowUp" ? -step : key === "ArrowDown" ? step : 0) * chunkJVEDKKNO_cjs.STAGE_ASPECT;
|
|
55
55
|
state.nudge(selected, dx, dy);
|
|
56
56
|
} else if (onSlide && (key === "Delete" || key === "Backspace")) {
|
|
57
57
|
state.unplace(selected);
|
|
@@ -74,5 +74,5 @@ function usePresenterKeys(view, presenting, selection) {
|
|
|
74
74
|
exports.STAGE_VIDEO_ATTRIBUTE = STAGE_VIDEO_ATTRIBUTE;
|
|
75
75
|
exports.toggleFullscreen = toggleFullscreen;
|
|
76
76
|
exports.usePresenterKeys = usePresenterKeys;
|
|
77
|
-
//# sourceMappingURL=chunk-
|
|
78
|
-
//# sourceMappingURL=chunk-
|
|
77
|
+
//# sourceMappingURL=chunk-X7ALF4MP.cjs.map
|
|
78
|
+
//# sourceMappingURL=chunk-X7ALF4MP.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/presentation/stage-videos.ts","../src/presentation/usePresenterKeys.ts"],"names":["useEffect","usePresentation","STAGE_ASPECT","moveBox"],"mappings":"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","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../src/presentation/stage-videos.ts","../src/presentation/usePresenterKeys.ts"],"names":["useEffect","usePresentation","STAGE_ASPECT","moveBox"],"mappings":"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","file":"chunk-X7ALF4MP.cjs","sourcesContent":["/** The presented stage's videos, which the presenter plays and pauses with Space. */\n\n/** Marks the stage's videos, for the presenter's Space key. */\nexport const STAGE_VIDEO_ATTRIBUTE = 'data-presentation-video'\n\n/** Play the presented stage's videos, or pause them if any is playing. */\nexport function toggleStageVideos(doc: Document): boolean {\n const videos = Array.from(\n doc.querySelectorAll<HTMLVideoElement>(`video[${STAGE_VIDEO_ATTRIBUTE}]`)\n )\n if (!videos.length) return false\n const playing = videos.some((video) => !video.paused)\n for (const video of videos) {\n if (playing) video.pause()\n else void video.play().catch(() => undefined)\n }\n return true\n}\n","/**\n * The keys of the presentation window. A presenter (or a presentation clicker, which sends Page Up /\n * Page Down and \".\" or \"b\"): previous / next slide and blank the stage; while presenting, F for\n * full screen and Escape back to editing. While editing with a clip selected: the arrows nudge it\n * (Shift: further), Delete takes it off the slide and Escape deselects it.\n */\n\nimport { useEffect } from 'react'\nimport { toggleStageVideos } from './stage-videos'\nimport { STAGE_ASPECT } from './model'\nimport { usePresentation } from './store'\nimport { moveBox } from './boxes'\n\n/** A nudge, as a fraction of the stage width (vertical nudges move as far on screen). */\nconst NUDGE = 0.005\nconst BIG_NUDGE = 0.04\n\n/** Full screen on or off for a window's page (from a key or click in that window). */\nexport function toggleFullscreen(view: Window): void {\n const doc = view.document\n if (doc.fullscreenElement) void doc.exitFullscreen()\n else void doc.documentElement.requestFullscreen?.()\n}\n\nexport interface PresenterSelection {\n clipId: string | null\n clear: () => void\n}\n\nexport function usePresenterKeys(\n view: Window | null | undefined,\n presenting: boolean,\n selection?: PresenterSelection\n): void {\n const selected = presenting ? null : (selection?.clipId ?? null)\n const clear = selection?.clear\n useEffect(() => {\n if (!view) return\n const onKeyDown = (event: KeyboardEvent) => {\n if (event.defaultPrevented || event.metaKey || event.ctrlKey || event.altKey) return\n const target = event.target as HTMLElement | null\n if (target?.closest?.('input, textarea, select, [contenteditable=\"true\"]')) return\n const state = usePresentation.getState()\n const key = event.key\n const onSlide =\n selected && state.slides[state.current]?.items.some((i) => i.clipId === selected)\n const box = selected?.startsWith('box-')\n ? state.slides.flatMap((slide) => slide.boxes).find((entry) => entry.id === selected)\n : undefined\n if (box && key.startsWith('Arrow')) {\n const step = event.shiftKey ? BIG_NUDGE : NUDGE\n const dx = key === 'ArrowLeft' ? -step : key === 'ArrowRight' ? step : 0\n const dy = (key === 'ArrowUp' ? -step : key === 'ArrowDown' ? step : 0) * STAGE_ASPECT\n state.updateBox(box.id, (entry) => ({ ...entry, frame: moveBox(entry.frame, dx, dy) }))\n } else if (box && (key === 'Delete' || key === 'Backspace')) {\n state.removeBox(box.id)\n clear?.()\n } else if (onSlide && key.startsWith('Arrow')) {\n const step = event.shiftKey ? BIG_NUDGE : NUDGE\n const dx = key === 'ArrowLeft' ? -step : key === 'ArrowRight' ? step : 0\n const dy = (key === 'ArrowUp' ? -step : key === 'ArrowDown' ? step : 0) * STAGE_ASPECT\n state.nudge(selected, dx, dy)\n } else if (onSlide && (key === 'Delete' || key === 'Backspace')) {\n state.unplace(selected)\n clear?.()\n } else if (selected && key === 'Escape') clear?.()\n // Editing (in the app's own window too): only a selected clip takes keys.\n else if (!presenting) return\n else if (key === 'ArrowRight' || key === 'PageDown') state.goTo(state.current + 1)\n else if (key === 'ArrowLeft' || key === 'PageUp') state.goTo(state.current - 1)\n else if (key === 'b' || key === 'B' || key === '.') state.setBlank(!state.blank)\n else if (presenting && (key === 'f' || key === 'F')) toggleFullscreen(view)\n // Space plays or pauses the slide's videos.\n else if (presenting && key === ' ' && toggleStageVideos(view.document)) {\n // handled\n }\n // Out of full screen the browser takes the first Escape; the next one stops presenting.\n else if (presenting && key === 'Escape') state.setPresenting(false)\n else return\n event.preventDefault()\n }\n view.addEventListener('keydown', onKeyDown)\n return () => view.removeEventListener('keydown', onKeyDown)\n }, [view, presenting, selected, clear])\n}\n"]}
|
|
@@ -3,30 +3,30 @@
|
|
|
3
3
|
|
|
4
4
|
var chunkYZ6YOOTF_cjs = require('./chunk-YZ6YOOTF.cjs');
|
|
5
5
|
var chunkKWJW5TMH_cjs = require('./chunk-KWJW5TMH.cjs');
|
|
6
|
-
var
|
|
7
|
-
var
|
|
8
|
-
var chunkAISYXX4M_cjs = require('./chunk-AISYXX4M.cjs');
|
|
9
|
-
var chunkQIK7E6VF_cjs = require('./chunk-QIK7E6VF.cjs');
|
|
6
|
+
var chunk7NLO7ASW_cjs = require('./chunk-7NLO7ASW.cjs');
|
|
7
|
+
var chunk7PN3YENO_cjs = require('./chunk-7PN3YENO.cjs');
|
|
10
8
|
var chunkUFT22LAB_cjs = require('./chunk-UFT22LAB.cjs');
|
|
11
|
-
var
|
|
12
|
-
var
|
|
9
|
+
var chunkT73BHNQX_cjs = require('./chunk-T73BHNQX.cjs');
|
|
10
|
+
var chunkVLQCLQAS_cjs = require('./chunk-VLQCLQAS.cjs');
|
|
13
11
|
var chunkP5AQYC4D_cjs = require('./chunk-P5AQYC4D.cjs');
|
|
14
12
|
var chunkWAV762GP_cjs = require('./chunk-WAV762GP.cjs');
|
|
13
|
+
var chunkJH6JTI76_cjs = require('./chunk-JH6JTI76.cjs');
|
|
15
14
|
var chunkZ3LFF3YT_cjs = require('./chunk-Z3LFF3YT.cjs');
|
|
16
15
|
var chunkNSD37OF5_cjs = require('./chunk-NSD37OF5.cjs');
|
|
17
|
-
var
|
|
18
|
-
var chunkJJZOL5MG_cjs = require('./chunk-JJZOL5MG.cjs');
|
|
16
|
+
var chunkCQQQIZU4_cjs = require('./chunk-CQQQIZU4.cjs');
|
|
19
17
|
var chunkTP5PGWIO_cjs = require('./chunk-TP5PGWIO.cjs');
|
|
20
18
|
var chunk7JLJH5CW_cjs = require('./chunk-7JLJH5CW.cjs');
|
|
19
|
+
var chunkJJZOL5MG_cjs = require('./chunk-JJZOL5MG.cjs');
|
|
21
20
|
var chunkWXUU3COI_cjs = require('./chunk-WXUU3COI.cjs');
|
|
21
|
+
var chunkQUMUAJ2P_cjs = require('./chunk-QUMUAJ2P.cjs');
|
|
22
22
|
var chunkHQDR43JC_cjs = require('./chunk-HQDR43JC.cjs');
|
|
23
23
|
var chunkJR2YSBD5_cjs = require('./chunk-JR2YSBD5.cjs');
|
|
24
24
|
var chunk5SKHK3BG_cjs = require('./chunk-5SKHK3BG.cjs');
|
|
25
25
|
var chunkIDCD5TEZ_cjs = require('./chunk-IDCD5TEZ.cjs');
|
|
26
26
|
var chunkHSLPFBK2_cjs = require('./chunk-HSLPFBK2.cjs');
|
|
27
27
|
var chunkQGVOT7E4_cjs = require('./chunk-QGVOT7E4.cjs');
|
|
28
|
-
var chunkIPSHAMO2_cjs = require('./chunk-IPSHAMO2.cjs');
|
|
29
28
|
var chunkQRAQZTJE_cjs = require('./chunk-QRAQZTJE.cjs');
|
|
29
|
+
var chunkIPSHAMO2_cjs = require('./chunk-IPSHAMO2.cjs');
|
|
30
30
|
var chunkTKHCIHE2_cjs = require('./chunk-TKHCIHE2.cjs');
|
|
31
31
|
var chunkULWRNGGE_cjs = require('./chunk-ULWRNGGE.cjs');
|
|
32
32
|
var react = require('@arbidocs/react');
|
|
@@ -148,7 +148,7 @@ function ConnectedTaskComposer({
|
|
|
148
148
|
const label = (t) => t.title?.trim() || "Untitled task";
|
|
149
149
|
if (isWorkflow) return allTasks.map((t) => ({ id: t.external_id, name: label(t) }));
|
|
150
150
|
const subject = task ?? { external_id: "__new__" };
|
|
151
|
-
return
|
|
151
|
+
return chunkCQQQIZU4_cjs.moveTargets(
|
|
152
152
|
[...allTasks.filter((t) => t.external_id !== subject.external_id), subject],
|
|
153
153
|
subject
|
|
154
154
|
).map((t) => ({ id: t.external_id, name: label(t) }));
|
|
@@ -286,7 +286,7 @@ function ConnectedTaskComposer({
|
|
|
286
286
|
}
|
|
287
287
|
};
|
|
288
288
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
289
|
-
|
|
289
|
+
chunkCQQQIZU4_cjs.TaskComposer,
|
|
290
290
|
{
|
|
291
291
|
open,
|
|
292
292
|
onOpenChange,
|
|
@@ -340,7 +340,7 @@ function ConnectedTaskComposer({
|
|
|
340
340
|
},
|
|
341
341
|
onSubmit: submit,
|
|
342
342
|
goal: (values) => values.workflowId === chunk7JLJH5CW_cjs.CUSTOM_TASK_ID ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
343
|
-
|
|
343
|
+
chunkCQQQIZU4_cjs.TaskPlan,
|
|
344
344
|
{
|
|
345
345
|
plan,
|
|
346
346
|
onChange: setPlan,
|
|
@@ -386,7 +386,7 @@ function ConnectedWorkflowHistory({
|
|
|
386
386
|
const { openConversation } = chunkTKHCIHE2_cjs.useBlocksEnvironment();
|
|
387
387
|
const { data: runs = [], isLoading } = react.useWorkflowRuns(workflow?.external_id);
|
|
388
388
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
389
|
-
|
|
389
|
+
chunkCQQQIZU4_cjs.TaskRunsDialog,
|
|
390
390
|
{
|
|
391
391
|
inline,
|
|
392
392
|
hideHeader,
|
|
@@ -421,7 +421,7 @@ function ConnectedTaskActivityDialog({
|
|
|
421
421
|
const activity = react.useConversationActivity(conversationId, { live });
|
|
422
422
|
const { data: agents = [] } = react.useAgents();
|
|
423
423
|
const { userId } = chunkJR2YSBD5_cjs.useConnectedWorkspace();
|
|
424
|
-
const { members } =
|
|
424
|
+
const { members } = chunkVLQCLQAS_cjs.useConnectedWorkspaceRole();
|
|
425
425
|
const renderPerson = react$1.useCallback(
|
|
426
426
|
(id) => {
|
|
427
427
|
const isMe = !!id && id === userId;
|
|
@@ -437,7 +437,7 @@ function ConnectedTaskActivityDialog({
|
|
|
437
437
|
[agents]
|
|
438
438
|
);
|
|
439
439
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
440
|
-
|
|
440
|
+
chunkCQQQIZU4_cjs.TaskActivityDialog,
|
|
441
441
|
{
|
|
442
442
|
open: true,
|
|
443
443
|
onOpenChange: (open) => !open && onClose(),
|
|
@@ -474,7 +474,7 @@ function useRenderTaskPerson() {
|
|
|
474
474
|
return react$1.useCallback(
|
|
475
475
|
(person) => {
|
|
476
476
|
const user = person.id ? byId.get(person.id) : void 0;
|
|
477
|
-
return user ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
477
|
+
return user ? /* @__PURE__ */ jsxRuntime.jsx(chunk7PN3YENO_cjs.DocumentUser, { user, variant: "pill" }) : /* @__PURE__ */ jsxRuntime.jsx(chunkJJZOL5MG_cjs.PersonPill, { person });
|
|
478
478
|
},
|
|
479
479
|
[byId]
|
|
480
480
|
);
|
|
@@ -487,7 +487,7 @@ function ConnectedThreadTaskBar({
|
|
|
487
487
|
renderIcon
|
|
488
488
|
}) {
|
|
489
489
|
const { conversations } = react.useConversationItems();
|
|
490
|
-
const { activity, items, related, signals, startedBy } =
|
|
490
|
+
const { activity, items, related, signals, startedBy } = chunk7NLO7ASW_cjs.useConnectedThreadActivity(conversationId);
|
|
491
491
|
const canEditShared = react.useCanEditShared();
|
|
492
492
|
const update = react.useUpdateConversation();
|
|
493
493
|
const actOnStep = react.useActOnStep();
|
|
@@ -535,7 +535,7 @@ function ConnectedThreadTaskBar({
|
|
|
535
535
|
).finally(() => setBusy(false));
|
|
536
536
|
};
|
|
537
537
|
const strip = /* @__PURE__ */ jsxRuntime.jsx(
|
|
538
|
-
|
|
538
|
+
chunkCQQQIZU4_cjs.WorkflowThreadStrip,
|
|
539
539
|
{
|
|
540
540
|
renderIcon,
|
|
541
541
|
...variant === "steps" ? { maxSpan: 3, current: currentStepId, onSelectStep } : {},
|
|
@@ -564,7 +564,7 @@ function ConnectedThreadTaskBar({
|
|
|
564
564
|
renderStepAction: (step, phase) => (
|
|
565
565
|
// A signer or a draft's person acts on their step even on a thread they cannot edit.
|
|
566
566
|
canEdit || phase === "waiting" || phase === "done" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
567
|
-
|
|
567
|
+
chunkCQQQIZU4_cjs.WorkflowStepAction,
|
|
568
568
|
{
|
|
569
569
|
step,
|
|
570
570
|
phase,
|
|
@@ -602,7 +602,7 @@ function ConnectedThreadTaskBar({
|
|
|
602
602
|
// A workflow run: its named steps, with what happened in the thread under each.
|
|
603
603
|
strip
|
|
604
604
|
) : items.length || startedBy ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
605
|
-
startedBy && /* @__PURE__ */ jsxRuntime.jsx(
|
|
605
|
+
startedBy && /* @__PURE__ */ jsxRuntime.jsx(chunkCQQQIZU4_cjs.WorkflowThreadStartedBy, { origin: startedBy }),
|
|
606
606
|
/* @__PURE__ */ jsxRuntime.jsx(chunkTP5PGWIO_cjs.TaskFlow, { items: items.filter((item) => !item.step) })
|
|
607
607
|
] }) : (
|
|
608
608
|
// Ordinary chats record no activity events, so an empty ribbon says nothing rather than
|
|
@@ -688,7 +688,7 @@ function ConnectedThreadTaskBar({
|
|
|
688
688
|
] }),
|
|
689
689
|
error && /* @__PURE__ */ jsxRuntime.jsx("span", { role: "alert", className: "text-xs text-destructive", children: error }),
|
|
690
690
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
691
|
-
|
|
691
|
+
chunkT73BHNQX_cjs.RenameDialog,
|
|
692
692
|
{
|
|
693
693
|
open: renameOpen,
|
|
694
694
|
onClose: () => setRenameOpen(false),
|
|
@@ -721,7 +721,7 @@ ${labels.map((l) => `${l.key}=${l.name}`).join("\n")}`;
|
|
|
721
721
|
if (known) return known;
|
|
722
722
|
const setUp = (async () => {
|
|
723
723
|
const existing = await arbi.tags.list({ workspaceId });
|
|
724
|
-
const { ids, missing } =
|
|
724
|
+
const { ids, missing } = chunkCQQQIZU4_cjs.matchRequiredLabels(labels, existing);
|
|
725
725
|
for (const label of missing) {
|
|
726
726
|
const tag = await createTag({
|
|
727
727
|
name: label.name,
|
|
@@ -973,7 +973,7 @@ function useWorkflowRunTarget({
|
|
|
973
973
|
}) {
|
|
974
974
|
const { workspaceId: open } = chunkJR2YSBD5_cjs.useConnectedWorkspace();
|
|
975
975
|
const session = react.useArbiSessionStore();
|
|
976
|
-
const selectWorkspace =
|
|
976
|
+
const selectWorkspace = chunk7NLO7ASW_cjs.useSelectWorkspace();
|
|
977
977
|
const createProject = react.useCreateProject();
|
|
978
978
|
const { mutateAsync: updateProject } = react.useUpdateProjectFields();
|
|
979
979
|
const { mutateAsync: updateWorkspace } = react.useUpdateWorkspace();
|
|
@@ -1475,7 +1475,7 @@ function useWorkflowThread(workflow, options = {}) {
|
|
|
1475
1475
|
const createThread = react$1.useCallback(
|
|
1476
1476
|
async (values, done) => {
|
|
1477
1477
|
const prepared = await options.beforeStart?.();
|
|
1478
|
-
const planned = prepared?.labelIds ?
|
|
1478
|
+
const planned = prepared?.labelIds ? chunkCQQQIZU4_cjs.withLabelIds(workflow, prepared.labelIds) : workflow;
|
|
1479
1479
|
const created = await createWork.mutateAsync({
|
|
1480
1480
|
title: chunkQGVOT7E4_cjs.runThreadTitle(workflow, values).slice(0, 60),
|
|
1481
1481
|
description: workflow.description || null,
|
|
@@ -1576,7 +1576,7 @@ function useWorkflowThread(workflow, options = {}) {
|
|
|
1576
1576
|
const anyRunning = Object.values(states).some((s) => s.status === "running");
|
|
1577
1577
|
const needsStart = !threadId || idle && !anyRunning;
|
|
1578
1578
|
const runError = idle ? conversation?.last_error ?? null : null;
|
|
1579
|
-
const view =
|
|
1579
|
+
const view = chunkCQQQIZU4_cjs.useWorkflowView({
|
|
1580
1580
|
steps,
|
|
1581
1581
|
states,
|
|
1582
1582
|
inputs,
|
|
@@ -1712,7 +1712,7 @@ function WorkflowWordDialog({
|
|
|
1712
1712
|
title: title ?? labels.wordTitle,
|
|
1713
1713
|
size: "xl",
|
|
1714
1714
|
testId: "workflow-word-dialog",
|
|
1715
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(chunkULWRNGGE_cjs.ModalScaffold.Body, { className: "h-[70dvh] p-0", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1715
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(chunkULWRNGGE_cjs.ModalScaffold.Body, { className: "h-[70dvh] p-0", children: /* @__PURE__ */ jsxRuntime.jsx(chunkVLQCLQAS_cjs.ConnectedNativeDocxEditor, { documentId: id, title: title ?? labels.wordTitle }) })
|
|
1716
1716
|
}
|
|
1717
1717
|
);
|
|
1718
1718
|
}
|
|
@@ -1868,7 +1868,7 @@ function WorkflowRunBody({
|
|
|
1868
1868
|
const session = react.useArbiSessionStore();
|
|
1869
1869
|
const openRef = react$1.useRef(workspaceId);
|
|
1870
1870
|
openRef.current = workspaceId;
|
|
1871
|
-
const required =
|
|
1871
|
+
const required = chunkCQQQIZU4_cjs.requiredLabelsOf(given);
|
|
1872
1872
|
const ownEnsureLabels = useEnsureRequiredLabels();
|
|
1873
1873
|
const ensureLabels = page?.ensureLabels ?? ownEnsureLabels;
|
|
1874
1874
|
const [startedLabelIds, setStartedLabelIds] = react$1.useState({});
|
|
@@ -1883,7 +1883,7 @@ function WorkflowRunBody({
|
|
|
1883
1883
|
const fromStep = pageTarget ? projectStepOf(projectFrom) : void 0;
|
|
1884
1884
|
const projectStep = fromStep?.step;
|
|
1885
1885
|
const workflow = react$1.useMemo(
|
|
1886
|
-
() => withCommitStep(
|
|
1886
|
+
() => withCommitStep(chunkCQQQIZU4_cjs.withLabelIds(given, labelIds), projectStep),
|
|
1887
1887
|
[given, labelIds, projectStep]
|
|
1888
1888
|
);
|
|
1889
1889
|
const hostBeforeStart = options?.beforeStart;
|
|
@@ -2076,7 +2076,7 @@ function WorkflowRunBody({
|
|
|
2076
2076
|
) : null;
|
|
2077
2077
|
};
|
|
2078
2078
|
const runner = (compact) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
2079
|
-
|
|
2079
|
+
chunkCQQQIZU4_cjs.WorkflowRunner,
|
|
2080
2080
|
{
|
|
2081
2081
|
people,
|
|
2082
2082
|
...runnerProps,
|
|
@@ -2137,7 +2137,7 @@ function WorkflowRunBody({
|
|
|
2137
2137
|
pageBar,
|
|
2138
2138
|
inThread && conversationId ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
2139
2139
|
!page && /* @__PURE__ */ jsxRuntime.jsx(
|
|
2140
|
-
|
|
2140
|
+
chunkCQQQIZU4_cjs.WorkflowStepBar,
|
|
2141
2141
|
{
|
|
2142
2142
|
run: view,
|
|
2143
2143
|
levels: chunkQGVOT7E4_cjs.stepLevels(view.steps),
|
|
@@ -2377,7 +2377,7 @@ function ConnectedWorkflowRunPage({
|
|
|
2377
2377
|
workspaceId,
|
|
2378
2378
|
onProjectCreated
|
|
2379
2379
|
});
|
|
2380
|
-
const required =
|
|
2380
|
+
const required = chunkCQQQIZU4_cjs.requiredLabelsOf(workflow);
|
|
2381
2381
|
const ensure = useEnsureRequiredLabels();
|
|
2382
2382
|
const labels = useRequiredLabels(required, target.target, ensure, target.stage === "ready");
|
|
2383
2383
|
const fromStep = !!projectStepOf(projectFrom);
|
|
@@ -2502,5 +2502,5 @@ exports.useRequiredLabels = useRequiredLabels;
|
|
|
2502
2502
|
exports.useTaskPeople = useTaskPeople;
|
|
2503
2503
|
exports.useWorkflowsPageState = useWorkflowsPageState;
|
|
2504
2504
|
exports.workflowRunView = workflowRunView;
|
|
2505
|
-
//# sourceMappingURL=chunk-
|
|
2506
|
-
//# sourceMappingURL=chunk-
|
|
2505
|
+
//# sourceMappingURL=chunk-YP5EBGLU.cjs.map
|
|
2506
|
+
//# sourceMappingURL=chunk-YP5EBGLU.cjs.map
|