@arbidocs/blocks 0.5.38 → 0.5.40
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 +10 -0
- package/dist/{ConnectedCallDock-V7DPSE6X.cjs → ConnectedCallDock-NGHSDLJS.cjs} +4 -4
- package/dist/{ConnectedCallDock-V7DPSE6X.cjs.map → ConnectedCallDock-NGHSDLJS.cjs.map} +1 -1
- package/dist/{ConnectedCallDock-CT3D6LLI.js → ConnectedCallDock-YJSO52N4.js} +4 -4
- package/dist/{ConnectedCallDock-CT3D6LLI.js.map → ConnectedCallDock-YJSO52N4.js.map} +1 -1
- package/dist/{ConnectedCallRoom-TNOCSTX2.cjs → ConnectedCallRoom-4XGFFYHE.cjs} +4 -4
- package/dist/{ConnectedCallRoom-TNOCSTX2.cjs.map → ConnectedCallRoom-4XGFFYHE.cjs.map} +1 -1
- package/dist/{ConnectedCallRoom-A27AM7IQ.js → ConnectedCallRoom-T6NS2MY4.js} +4 -4
- package/dist/{ConnectedCallRoom-A27AM7IQ.js.map → ConnectedCallRoom-T6NS2MY4.js.map} +1 -1
- package/dist/{ConnectedNativeDocxComparison-RWKFPJPJ.js → ConnectedNativeDocxComparison-52KQKJGY.js} +7 -7
- package/dist/{ConnectedNativeDocxComparison-RWKFPJPJ.js.map → ConnectedNativeDocxComparison-52KQKJGY.js.map} +1 -1
- package/dist/{ConnectedNativeDocxComparison-H2OZMWHT.cjs → ConnectedNativeDocxComparison-UVLZGS2V.cjs} +8 -8
- package/dist/{ConnectedNativeDocxComparison-H2OZMWHT.cjs.map → ConnectedNativeDocxComparison-UVLZGS2V.cjs.map} +1 -1
- package/dist/{ConnectedNativeDocxEditor-43BI5LN6.js → ConnectedNativeDocxEditor-BRBL3MOV.js} +6 -6
- package/dist/{ConnectedNativeDocxEditor-43BI5LN6.js.map → ConnectedNativeDocxEditor-BRBL3MOV.js.map} +1 -1
- package/dist/{ConnectedNativeDocxEditor-6DQEM6SD.cjs → ConnectedNativeDocxEditor-KHR5I7W6.cjs} +8 -8
- package/dist/{ConnectedNativeDocxEditor-6DQEM6SD.cjs.map → ConnectedNativeDocxEditor-KHR5I7W6.cjs.map} +1 -1
- package/dist/{ConnectedStreamedWordArtifact-3VKYIG6C.cjs → ConnectedStreamedWordArtifact-DSVFI7BX.cjs} +8 -8
- package/dist/ConnectedStreamedWordArtifact-DSVFI7BX.cjs.map +1 -0
- package/dist/{ConnectedStreamedWordArtifact-TEB332E3.js → ConnectedStreamedWordArtifact-EQUE6WT5.js} +7 -7
- package/dist/ConnectedStreamedWordArtifact-EQUE6WT5.js.map +1 -0
- package/dist/{WorkspaceTableView-KG546U7M.cjs → WorkspaceTableView-2CGEO5KK.cjs} +6 -6
- package/dist/{WorkspaceTableView-KG546U7M.cjs.map → WorkspaceTableView-2CGEO5KK.cjs.map} +1 -1
- package/dist/{WorkspaceTableView-OSFIWJ5C.js → WorkspaceTableView-3ARFQYNO.js} +4 -4
- package/dist/{WorkspaceTableView-OSFIWJ5C.js.map → WorkspaceTableView-3ARFQYNO.js.map} +1 -1
- package/dist/agents/index.cjs +376 -376
- package/dist/agents/index.js +2 -2
- package/dist/calls/index.cjs +35 -35
- package/dist/calls/index.js +7 -7
- package/dist/chat/index.cjs +89 -89
- package/dist/chat/index.js +2 -2
- package/dist/{chunk-BRYRZOS3.cjs → chunk-3YZ3RUSB.cjs} +4 -4
- package/dist/{chunk-BRYRZOS3.cjs.map → chunk-3YZ3RUSB.cjs.map} +1 -1
- package/dist/{chunk-VPWCARVO.js → chunk-4DDPMLGU.js} +4 -4
- package/dist/{chunk-VPWCARVO.js.map → chunk-4DDPMLGU.js.map} +1 -1
- package/dist/{chunk-24H5WTGM.js → chunk-4U4NXFV5.js} +4 -4
- package/dist/{chunk-24H5WTGM.js.map → chunk-4U4NXFV5.js.map} +1 -1
- package/dist/{chunk-6EQSP77K.cjs → chunk-5ZHAHJ4H.cjs} +5 -5
- package/dist/{chunk-6EQSP77K.cjs.map → chunk-5ZHAHJ4H.cjs.map} +1 -1
- package/dist/{chunk-BIWPXSGS.cjs → chunk-6AJJJ5HR.cjs} +7 -7
- package/dist/{chunk-BIWPXSGS.cjs.map → chunk-6AJJJ5HR.cjs.map} +1 -1
- package/dist/{chunk-2YCCCXYV.js → chunk-7LN3ISPG.js} +3 -3
- package/dist/{chunk-2YCCCXYV.js.map → chunk-7LN3ISPG.js.map} +1 -1
- package/dist/{chunk-5NTSJV5H.cjs → chunk-BY2EW2QU.cjs} +16 -91
- package/dist/chunk-BY2EW2QU.cjs.map +1 -0
- package/dist/{chunk-FHB4G77H.js → chunk-CEO7YI7I.js} +3 -3
- package/dist/{chunk-FHB4G77H.js.map → chunk-CEO7YI7I.js.map} +1 -1
- package/dist/{chunk-LTO4JYU3.cjs → chunk-DWWRLKEZ.cjs} +188 -2
- package/dist/chunk-DWWRLKEZ.cjs.map +1 -0
- package/dist/chunk-E3IEZMRK.cjs +507 -0
- package/dist/chunk-E3IEZMRK.cjs.map +1 -0
- package/dist/{chunk-MLHOG7YH.js → chunk-EFDZRAW6.js} +3 -3
- package/dist/{chunk-MLHOG7YH.js.map → chunk-EFDZRAW6.js.map} +1 -1
- package/dist/chunk-FOIDBAZB.js +497 -0
- package/dist/chunk-FOIDBAZB.js.map +1 -0
- package/dist/{chunk-MB3S2ETI.cjs → chunk-G2BKHCI2.cjs} +2 -2
- package/dist/chunk-G2BKHCI2.cjs.map +1 -0
- package/dist/{chunk-EFSL4O3B.cjs → chunk-GT5FCYV5.cjs} +7 -7
- package/dist/{chunk-EFSL4O3B.cjs.map → chunk-GT5FCYV5.cjs.map} +1 -1
- package/dist/{chunk-QWKT4DO6.cjs → chunk-GX5MKJ3F.cjs} +433 -2
- package/dist/chunk-GX5MKJ3F.cjs.map +1 -0
- package/dist/{chunk-C3YIVBTU.cjs → chunk-HDEOORSV.cjs} +9 -9
- package/dist/{chunk-C3YIVBTU.cjs.map → chunk-HDEOORSV.cjs.map} +1 -1
- package/dist/{chunk-T4P237N6.js → chunk-ILBBV2ZY.js} +2 -2
- package/dist/chunk-ILBBV2ZY.js.map +1 -0
- package/dist/{chunk-XFSEPGF7.cjs → chunk-K53QRFPJ.cjs} +4 -4
- package/dist/{chunk-XFSEPGF7.cjs.map → chunk-K53QRFPJ.cjs.map} +1 -1
- package/dist/{chunk-NOKTUWTN.cjs → chunk-K7S5BMAB.cjs} +7 -7
- package/dist/{chunk-NOKTUWTN.cjs.map → chunk-K7S5BMAB.cjs.map} +1 -1
- package/dist/{chunk-FY4C7HU5.cjs → chunk-O3MRE2HL.cjs} +2233 -8
- package/dist/chunk-O3MRE2HL.cjs.map +1 -0
- package/dist/{chunk-N3HVTMQK.js → chunk-OPZBIGW4.js} +3 -3
- package/dist/{chunk-N3HVTMQK.js.map → chunk-OPZBIGW4.js.map} +1 -1
- package/dist/{chunk-JVXHVFUA.cjs → chunk-P6HVJP6Z.cjs} +4 -4
- package/dist/{chunk-JVXHVFUA.cjs.map → chunk-P6HVJP6Z.cjs.map} +1 -1
- package/dist/{chunk-PXYP3DM5.js → chunk-PD4AKBYZ.js} +432 -6
- package/dist/chunk-PD4AKBYZ.js.map +1 -0
- package/dist/{chunk-VKY4SQMH.js → chunk-REHG7VRQ.js} +5 -5
- package/dist/{chunk-VKY4SQMH.js.map → chunk-REHG7VRQ.js.map} +1 -1
- package/dist/{chunk-M4MZPH2S.js → chunk-SEZEEHLU.js} +190 -6
- package/dist/chunk-SEZEEHLU.js.map +1 -0
- package/dist/{chunk-5JEM3BWT.js → chunk-SYP2A4GQ.js} +4 -4
- package/dist/{chunk-5JEM3BWT.js.map → chunk-SYP2A4GQ.js.map} +1 -1
- package/dist/{chunk-QFYRXQTD.js → chunk-TTPXMCJL.js} +6 -80
- package/dist/chunk-TTPXMCJL.js.map +1 -0
- package/dist/{chunk-VMLEISRZ.cjs → chunk-UZVXVTTB.cjs} +17 -17
- package/dist/{chunk-VMLEISRZ.cjs.map → chunk-UZVXVTTB.cjs.map} +1 -1
- package/dist/{chunk-YDY4GIC2.cjs → chunk-V7JDMKNQ.cjs} +4 -4
- package/dist/{chunk-YDY4GIC2.cjs.map → chunk-V7JDMKNQ.cjs.map} +1 -1
- package/dist/{chunk-YPR4FSDJ.js → chunk-VA3YYR7R.js} +8 -192
- package/dist/chunk-VA3YYR7R.js.map +1 -0
- package/dist/{chunk-NUV5F6MM.js → chunk-WAIHNFUH.js} +3 -3
- package/dist/{chunk-NUV5F6MM.js.map → chunk-WAIHNFUH.js.map} +1 -1
- package/dist/{chunk-H5BFOVVL.cjs → chunk-WRERJFEV.cjs} +2 -188
- package/dist/chunk-WRERJFEV.cjs.map +1 -0
- package/dist/{chunk-4DKI37QQ.js → chunk-YAGSGBVM.js} +2213 -13
- package/dist/chunk-YAGSGBVM.js.map +1 -0
- package/dist/{chunk-K6W2GWCN.js → chunk-ZAYUJFPI.js} +3 -3
- package/dist/{chunk-K6W2GWCN.js.map → chunk-ZAYUJFPI.js.map} +1 -1
- package/dist/connect/docx.cjs +10 -10
- package/dist/connect/docx.js +6 -6
- package/dist/connect/index.cjs +1237 -591
- package/dist/connect/index.cjs.map +1 -1
- package/dist/connect/index.d.ts +3 -0
- package/dist/connect/index.js +665 -23
- package/dist/connect/index.js.map +1 -1
- package/dist/connect/viewer.cjs +27 -27
- package/dist/connect/viewer.js +10 -10
- package/dist/connection/panels/ConnectedPanelHost.d.ts +48 -0
- package/dist/connection/panels/useSessionPanelMode.d.ts +18 -0
- package/dist/connection/threads-page/ConnectedThreadsPage.d.ts +14 -0
- package/dist/connection/threads-page/ThreadSearch.d.ts +24 -0
- package/dist/connection/workflows/index.d.ts +1 -0
- package/dist/connection/workflows/useWorkflowsPageState.d.ts +134 -0
- package/dist/index.cjs +610 -594
- package/dist/index.js +9 -9
- package/dist/provider/host.d.ts +3 -0
- package/dist/shell/PanelPortal.d.ts +30 -0
- package/dist/shell/index.cjs +78 -61
- package/dist/shell/index.d.ts +3 -0
- package/dist/shell/index.js +3 -2
- package/dist/shell/panel-host.d.ts +8 -0
- package/dist/shell/panel-windows.d.ts +33 -0
- package/dist/studio/index.cjs +5 -5
- package/dist/studio/index.js +3 -3
- package/dist/workflow-canvas/index.cjs +21 -21
- package/dist/workflow-canvas/index.js +5 -5
- package/node_modules/@arbidocs/coedit/package.json +1 -1
- package/package.json +5 -5
- package/dist/ConnectedStreamedWordArtifact-3VKYIG6C.cjs.map +0 -1
- package/dist/ConnectedStreamedWordArtifact-TEB332E3.js.map +0 -1
- package/dist/chunk-4DKI37QQ.js.map +0 -1
- package/dist/chunk-5NTSJV5H.cjs.map +0 -1
- package/dist/chunk-EZSYYENN.js +0 -2700
- package/dist/chunk-EZSYYENN.js.map +0 -1
- package/dist/chunk-FY4C7HU5.cjs.map +0 -1
- package/dist/chunk-H5BFOVVL.cjs.map +0 -1
- package/dist/chunk-LTO4JYU3.cjs.map +0 -1
- package/dist/chunk-M4MZPH2S.js.map +0 -1
- package/dist/chunk-MB3S2ETI.cjs.map +0 -1
- package/dist/chunk-PUX4M22Q.cjs +0 -2735
- package/dist/chunk-PUX4M22Q.cjs.map +0 -1
- package/dist/chunk-PXYP3DM5.js.map +0 -1
- package/dist/chunk-QFYRXQTD.js.map +0 -1
- package/dist/chunk-QWKT4DO6.cjs.map +0 -1
- package/dist/chunk-T4P237N6.js.map +0 -1
- package/dist/chunk-YPR4FSDJ.js.map +0 -1
package/dist/connect/viewer.cjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
'use strict';
|
|
3
3
|
|
|
4
|
-
var
|
|
4
|
+
var chunkGT5FCYV5_cjs = require('../chunk-GT5FCYV5.cjs');
|
|
5
5
|
var chunkWALADS2S_cjs = require('../chunk-WALADS2S.cjs');
|
|
6
6
|
require('../chunk-2WLXQGWC.cjs');
|
|
7
7
|
require('../chunk-223D4727.cjs');
|
|
@@ -10,10 +10,10 @@ var chunk2XLVE2XD_cjs = require('../chunk-2XLVE2XD.cjs');
|
|
|
10
10
|
var chunkUWIILWDI_cjs = require('../chunk-UWIILWDI.cjs');
|
|
11
11
|
require('../chunk-IRY63R4L.cjs');
|
|
12
12
|
require('../chunk-ZESMRGDV.cjs');
|
|
13
|
-
require('../chunk-
|
|
13
|
+
require('../chunk-BY2EW2QU.cjs');
|
|
14
14
|
var chunkTM2D4XT4_cjs = require('../chunk-TM2D4XT4.cjs');
|
|
15
15
|
require('../chunk-5Y6V7F6W.cjs');
|
|
16
|
-
require('../chunk-
|
|
16
|
+
require('../chunk-GX5MKJ3F.cjs');
|
|
17
17
|
var chunkY42LJ4TF_cjs = require('../chunk-Y42LJ4TF.cjs');
|
|
18
18
|
var chunkVLCY46K6_cjs = require('../chunk-VLCY46K6.cjs');
|
|
19
19
|
require('../chunk-SIB6C7P7.cjs');
|
|
@@ -26,9 +26,9 @@ require('../chunk-LKK52DEY.cjs');
|
|
|
26
26
|
var chunk2YV7FBLO_cjs = require('../chunk-2YV7FBLO.cjs');
|
|
27
27
|
require('../chunk-VG24E4JJ.cjs');
|
|
28
28
|
require('../chunk-QVBZESYQ.cjs');
|
|
29
|
-
var
|
|
30
|
-
var
|
|
31
|
-
require('../chunk-
|
|
29
|
+
var chunkHDEOORSV_cjs = require('../chunk-HDEOORSV.cjs');
|
|
30
|
+
var chunkP6HVJP6Z_cjs = require('../chunk-P6HVJP6Z.cjs');
|
|
31
|
+
require('../chunk-G2BKHCI2.cjs');
|
|
32
32
|
var chunkMEMWZ72Y_cjs = require('../chunk-MEMWZ72Y.cjs');
|
|
33
33
|
require('../chunk-ZW6FPIFC.cjs');
|
|
34
34
|
require('../chunk-5UHAWSEX.cjs');
|
|
@@ -150,13 +150,13 @@ function fileExtension(fileName) {
|
|
|
150
150
|
function useViewedDocument(documentId) {
|
|
151
151
|
const [webmHasVideoTrack, setWebmHasVideoTrack] = React.useState(null);
|
|
152
152
|
React.useEffect(() => setWebmHasVideoTrack(null), [documentId]);
|
|
153
|
-
const streamingDoc =
|
|
153
|
+
const streamingDoc = chunkGT5FCYV5_cjs.useViewerStreamingDocument(documentId);
|
|
154
154
|
const isStreaming = !!streamingDoc && !streamingDoc.isComplete;
|
|
155
|
-
const draftDoc =
|
|
155
|
+
const draftDoc = chunkGT5FCYV5_cjs.useViewerDraftDocument(documentId);
|
|
156
156
|
const isDraft = !!draftDoc;
|
|
157
157
|
const isCaptureDraft = draftDoc?.kind === "audio" || draftDoc?.kind === "photo" || draftDoc?.kind === "video";
|
|
158
158
|
const isTextDraft = draftDoc?.kind === "text";
|
|
159
|
-
const { workspaceId, live } =
|
|
159
|
+
const { workspaceId, live } = chunkP6HVJP6Z_cjs.useConnectedWorkspace();
|
|
160
160
|
const { data: record } = react.useDocument(documentId, {
|
|
161
161
|
enabled: live && !!workspaceId && !isStreaming && !isDraft,
|
|
162
162
|
// A new version (Save version, a signed copy) is processed before its PDF exists: keep
|
|
@@ -164,7 +164,7 @@ function useViewedDocument(documentId) {
|
|
|
164
164
|
pollWhileProcessing: true
|
|
165
165
|
});
|
|
166
166
|
const documentData = record?.external_id === documentId ? record : void 0;
|
|
167
|
-
const { data: tags } =
|
|
167
|
+
const { data: tags } = chunkHDEOORSV_cjs.useConnectedTags();
|
|
168
168
|
const labelSummaries = React.useMemo(
|
|
169
169
|
() => chunkWALADS2S_cjs.summariseDocTags(documentData?.doctags ?? [], tags.filter(chunkWALADS2S_cjs.isDocumentLabel)),
|
|
170
170
|
[documentData, tags]
|
|
@@ -421,7 +421,7 @@ function useViewerTabs(doc, isCompact, hasHistory = false) {
|
|
|
421
421
|
}
|
|
422
422
|
function useViewerVersions(docId) {
|
|
423
423
|
const plainId = docId ? artifacts.parseVersionRef(docId).docId : "";
|
|
424
|
-
const { data: documents } =
|
|
424
|
+
const { data: documents } = chunkHDEOORSV_cjs.useConnectedDocuments();
|
|
425
425
|
const listed = React.useMemo(
|
|
426
426
|
() => plainId ? documents.find((d) => d.external_id === plainId) : void 0,
|
|
427
427
|
[documents, plainId]
|
|
@@ -592,10 +592,10 @@ function PassageTagPanel({
|
|
|
592
592
|
onClose,
|
|
593
593
|
onViewTaggedChunks
|
|
594
594
|
}) {
|
|
595
|
-
const { createTag } =
|
|
595
|
+
const { createTag } = chunkGT5FCYV5_cjs.useDocumentViewerSupport();
|
|
596
596
|
const [editingNoteTagId, setEditingNoteTagId] = React.useState(null);
|
|
597
597
|
const [noteValue, setNoteValue] = React.useState("");
|
|
598
|
-
const { data: allTags } =
|
|
598
|
+
const { data: allTags } = chunkHDEOORSV_cjs.useConnectedTags();
|
|
599
599
|
const workspaceTags = React.useMemo(() => allTags.filter(isDocumentTag), [allTags]);
|
|
600
600
|
const { getChunkTagState, toggleChunkTag, updateChunkTagNote, isLoading } = useChunkTagging({
|
|
601
601
|
documentId,
|
|
@@ -836,7 +836,7 @@ var ParsedPassage = React.memo(function ParsedPassage2({
|
|
|
836
836
|
items: passageItems
|
|
837
837
|
}
|
|
838
838
|
) : void 0,
|
|
839
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
839
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(chunkGT5FCYV5_cjs.ConnectedMarkdown, { children: chunk.content })
|
|
840
840
|
}
|
|
841
841
|
);
|
|
842
842
|
});
|
|
@@ -969,7 +969,7 @@ ${text}
|
|
|
969
969
|
};
|
|
970
970
|
}
|
|
971
971
|
function useDocumentLabels(documentId, doctags, orderedChunkIds) {
|
|
972
|
-
const { data: allTags } =
|
|
972
|
+
const { data: allTags } = chunkHDEOORSV_cjs.useConnectedTags();
|
|
973
973
|
const workspaceTags = React.useMemo(() => allTags.filter(isDocumentTag), [allTags]);
|
|
974
974
|
const documentDoctags = React.useMemo(() => doctags ?? [], [doctags]);
|
|
975
975
|
const tagSummaries = React.useMemo(
|
|
@@ -1064,7 +1064,7 @@ function useCitationSelection({
|
|
|
1064
1064
|
orderedChunkIds,
|
|
1065
1065
|
pageOf
|
|
1066
1066
|
}) {
|
|
1067
|
-
const passageCitation =
|
|
1067
|
+
const passageCitation = chunkGT5FCYV5_cjs.useViewerPassageCitation();
|
|
1068
1068
|
const activeCitationContext = passageCitation?.active ?? null;
|
|
1069
1069
|
const setPendingPassagesForCitation = passageCitation?.pick ?? noop;
|
|
1070
1070
|
const setUnselectedPassagesForCitation = passageCitation?.unpick ?? noop;
|
|
@@ -1420,8 +1420,8 @@ function ParsedTextView({
|
|
|
1420
1420
|
zoom = 1,
|
|
1421
1421
|
onZoomChange
|
|
1422
1422
|
}) {
|
|
1423
|
-
const { workspaceId } =
|
|
1424
|
-
const { openInNavigator } =
|
|
1423
|
+
const { workspaceId } = chunkP6HVJP6Z_cjs.useConnectedWorkspace();
|
|
1424
|
+
const { openInNavigator } = chunkGT5FCYV5_cjs.useDocumentViewerSupport();
|
|
1425
1425
|
const containerRef = React.useRef(null);
|
|
1426
1426
|
const { data: documentRecord } = react.useDocument(artifacts.parseVersionRef(documentId).docId, {
|
|
1427
1427
|
enabled: !!documentId && !!workspaceId
|
|
@@ -1584,7 +1584,7 @@ var GuidedSigningViewer = React.lazy(
|
|
|
1584
1584
|
function SessionPdfViewer(props) {
|
|
1585
1585
|
const session = react.useArbiSessionStore();
|
|
1586
1586
|
const viewingId = react.useArbiSessionState((s) => s.viewingDocument?.id);
|
|
1587
|
-
const isDetached =
|
|
1587
|
+
const isDetached = chunkGT5FCYV5_cjs.useViewerIsDetached();
|
|
1588
1588
|
const onPageChange = React.useCallback(
|
|
1589
1589
|
(page) => {
|
|
1590
1590
|
if (viewingId) session.setViewingDocument({ id: viewingId, page });
|
|
@@ -1718,17 +1718,17 @@ function ViewerPdfPane({
|
|
|
1718
1718
|
return /* @__PURE__ */ jsxRuntime.jsx(SessionPdfViewer, { ...viewerProps, file: pdfBlob });
|
|
1719
1719
|
}
|
|
1720
1720
|
var NativeDocxEditor = React.lazy(
|
|
1721
|
-
() => import('../ConnectedNativeDocxEditor-
|
|
1721
|
+
() => import('../ConnectedNativeDocxEditor-KHR5I7W6.cjs').then((m) => ({
|
|
1722
1722
|
default: m.ConnectedNativeDocxEditor
|
|
1723
1723
|
}))
|
|
1724
1724
|
);
|
|
1725
1725
|
var StreamedWordArtifact = React.lazy(
|
|
1726
|
-
() => import('../ConnectedStreamedWordArtifact-
|
|
1726
|
+
() => import('../ConnectedStreamedWordArtifact-DSVFI7BX.cjs').then((m) => ({
|
|
1727
1727
|
default: m.ConnectedStreamedWordArtifact
|
|
1728
1728
|
}))
|
|
1729
1729
|
);
|
|
1730
1730
|
var NativeDocxComparison = React.lazy(
|
|
1731
|
-
() => import('../ConnectedNativeDocxComparison-
|
|
1731
|
+
() => import('../ConnectedNativeDocxComparison-UVLZGS2V.cjs').then((m) => ({
|
|
1732
1732
|
default: m.ConnectedNativeDocxComparison
|
|
1733
1733
|
}))
|
|
1734
1734
|
);
|
|
@@ -1743,7 +1743,7 @@ function ConnectedDocumentViewer(props) {
|
|
|
1743
1743
|
resetKey: openedId,
|
|
1744
1744
|
labels: { title: "This document couldn't be displayed" },
|
|
1745
1745
|
testId: "document-viewer-error",
|
|
1746
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1746
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(chunkGT5FCYV5_cjs.ConnectedDocumentToolsProvider, { children: /* @__PURE__ */ jsxRuntime.jsx(DocumentViewerContent, { ...props, openedId }) })
|
|
1747
1747
|
}
|
|
1748
1748
|
);
|
|
1749
1749
|
}
|
|
@@ -1754,11 +1754,11 @@ function DocumentViewerContent({
|
|
|
1754
1754
|
}) {
|
|
1755
1755
|
const arbi = react.useArbi();
|
|
1756
1756
|
const session = react.useArbiSessionStore();
|
|
1757
|
-
const support =
|
|
1757
|
+
const support = chunkGT5FCYV5_cjs.useDocumentViewerSupport();
|
|
1758
1758
|
const formatDate = support.formatDate ?? chunkUFEXJIEY_cjs.fmtDate;
|
|
1759
1759
|
const tools = documentTools.useDocumentTools();
|
|
1760
1760
|
const { openConversation, openNewConversation, notify } = chunkB3NYBMDR_cjs.useBlocksEnvironment();
|
|
1761
|
-
const { userId: currentUserId } =
|
|
1761
|
+
const { userId: currentUserId } = chunkP6HVJP6Z_cjs.useConnectedWorkspace();
|
|
1762
1762
|
const documentId = artifacts.parseVersionRef(openedId).docId;
|
|
1763
1763
|
const [totalPages, setTotalPages] = React.useState(0);
|
|
1764
1764
|
const [isCompact, setIsCompact] = React.useState(false);
|
|
@@ -1784,7 +1784,7 @@ function DocumentViewerContent({
|
|
|
1784
1784
|
const setViewingDocumentId = (id) => session.setViewingDocument({ id });
|
|
1785
1785
|
const setActiveTab = (tab) => session.setDocumentViewer({ tab });
|
|
1786
1786
|
const setCompareDocumentId = (id) => session.setDocumentViewer({ compareId: id });
|
|
1787
|
-
const { data: conversations } =
|
|
1787
|
+
const { data: conversations } = chunkHDEOORSV_cjs.useConnectedConversations();
|
|
1788
1788
|
const snapshotRef = artifacts.parseVersionRef(openedId).version ? openedId : null;
|
|
1789
1789
|
const { versions, translations } = useViewerVersions(documentId);
|
|
1790
1790
|
const currentVersionId = versions.find((v) => v.isCurrent)?.id ?? documentId;
|
|
@@ -2410,7 +2410,7 @@ function DocumentViewerContent({
|
|
|
2410
2410
|
|
|
2411
2411
|
Object.defineProperty(exports, "ConnectedDocumentToolsProvider", {
|
|
2412
2412
|
enumerable: true,
|
|
2413
|
-
get: function () { return
|
|
2413
|
+
get: function () { return chunkGT5FCYV5_cjs.ConnectedDocumentToolsProvider; }
|
|
2414
2414
|
});
|
|
2415
2415
|
exports.ConnectedDocumentViewer = ConnectedDocumentViewer;
|
|
2416
2416
|
//# sourceMappingURL=viewer.cjs.map
|
package/dist/connect/viewer.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { ConnectedMarkdown, ConnectedDocumentToolsProvider, useDocumentViewerSupport, useViewerStreamingDocument, useViewerDraftDocument, useViewerIsDetached, useViewerPassageCitation } from '../chunk-
|
|
3
|
-
export { ConnectedDocumentToolsProvider } from '../chunk-
|
|
2
|
+
import { ConnectedMarkdown, ConnectedDocumentToolsProvider, useDocumentViewerSupport, useViewerStreamingDocument, useViewerDraftDocument, useViewerIsDetached, useViewerPassageCitation } from '../chunk-4DDPMLGU.js';
|
|
3
|
+
export { ConnectedDocumentToolsProvider } from '../chunk-4DDPMLGU.js';
|
|
4
4
|
import { HtmlPassage, ViewerTitle, ViewerTabBar, ViewerImageActions, canChangeVisibility, ViewerFrame, ViewerMessage, DocumentLabelBar, ViewerControlBar, ViewerZoomControl, PdfPageNav, ViewerPageCounter, summariseDocTags, isDocumentLabel, ViewerPreviewUnavailable, ViewerLoadError, HtmlViewerRoot, CitedRunNav, HtmlViewerSurface, HtmlPage, HtmlViewerEmpty, TagPassagePanel } from '../chunk-P6MVDOCL.js';
|
|
5
5
|
import '../chunk-JJA6GQKH.js';
|
|
6
6
|
import '../chunk-RC6VTY2H.js';
|
|
@@ -9,10 +9,10 @@ import { SignatureStatus, SignDocumentDialog } from '../chunk-PQU6LE7U.js';
|
|
|
9
9
|
import { ViewerStatusNote, ViewerHeaderStart, ViewerHeaderEnd, ViewerPane } from '../chunk-6HKLTYNN.js';
|
|
10
10
|
import '../chunk-MZA7GMOH.js';
|
|
11
11
|
import '../chunk-IA5BYEO7.js';
|
|
12
|
-
import '../chunk-
|
|
12
|
+
import '../chunk-TTPXMCJL.js';
|
|
13
13
|
import { ErrorBoundary } from '../chunk-EQ3WRY2N.js';
|
|
14
14
|
import '../chunk-JMQLTMJ7.js';
|
|
15
|
-
import '../chunk-
|
|
15
|
+
import '../chunk-PD4AKBYZ.js';
|
|
16
16
|
import { PassageMark, NoteMark, LabelMark, PassagePill } from '../chunk-QG7XCD5U.js';
|
|
17
17
|
import { ShareControl } from '../chunk-K4BGOPGG.js';
|
|
18
18
|
import '../chunk-M4S75AEJ.js';
|
|
@@ -25,9 +25,9 @@ import '../chunk-7F5Z4K5W.js';
|
|
|
25
25
|
import { ArtifactCompareBar, ArtifactPreview, ArtifactCodeView, VersionTimeline } from '../chunk-65S53MZK.js';
|
|
26
26
|
import '../chunk-NS4JD2VR.js';
|
|
27
27
|
import '../chunk-LOJVUGBJ.js';
|
|
28
|
-
import { useConnectedConversations, useConnectedDocuments, useConnectedTags } from '../chunk-
|
|
29
|
-
import { useConnectedWorkspace } from '../chunk-
|
|
30
|
-
import '../chunk-
|
|
28
|
+
import { useConnectedConversations, useConnectedDocuments, useConnectedTags } from '../chunk-SYP2A4GQ.js';
|
|
29
|
+
import { useConnectedWorkspace } from '../chunk-7LN3ISPG.js';
|
|
30
|
+
import '../chunk-ILBBV2ZY.js';
|
|
31
31
|
import { TabHeader } from '../chunk-ABEKUV6L.js';
|
|
32
32
|
import '../chunk-P6GHJSLR.js';
|
|
33
33
|
import '../chunk-OKERRHLH.js';
|
|
@@ -1713,17 +1713,17 @@ function ViewerPdfPane({
|
|
|
1713
1713
|
return /* @__PURE__ */ jsx(SessionPdfViewer, { ...viewerProps, file: pdfBlob });
|
|
1714
1714
|
}
|
|
1715
1715
|
var NativeDocxEditor = lazy(
|
|
1716
|
-
() => import('../ConnectedNativeDocxEditor-
|
|
1716
|
+
() => import('../ConnectedNativeDocxEditor-BRBL3MOV.js').then((m) => ({
|
|
1717
1717
|
default: m.ConnectedNativeDocxEditor
|
|
1718
1718
|
}))
|
|
1719
1719
|
);
|
|
1720
1720
|
var StreamedWordArtifact = lazy(
|
|
1721
|
-
() => import('../ConnectedStreamedWordArtifact-
|
|
1721
|
+
() => import('../ConnectedStreamedWordArtifact-EQUE6WT5.js').then((m) => ({
|
|
1722
1722
|
default: m.ConnectedStreamedWordArtifact
|
|
1723
1723
|
}))
|
|
1724
1724
|
);
|
|
1725
1725
|
var NativeDocxComparison = lazy(
|
|
1726
|
-
() => import('../ConnectedNativeDocxComparison-
|
|
1726
|
+
() => import('../ConnectedNativeDocxComparison-52KQKJGY.js').then((m) => ({
|
|
1727
1727
|
default: m.ConnectedNativeDocxComparison
|
|
1728
1728
|
}))
|
|
1729
1729
|
);
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ConnectedPanelHost Component
|
|
3
|
+
*
|
|
4
|
+
* Panel that supports four display modes via PanelPortal: docked, main, overlay, and popout.
|
|
5
|
+
*
|
|
6
|
+
* Binds panel placement (mode persistence, focus, Escape, slide-out animation, portals) to the
|
|
7
|
+
* presentational `FloatingPanel` block in `@arbidocs/blocks`, which owns the header, body and
|
|
8
|
+
* footer. For components that manage their own header (e.g., DocumentViewer), pass children as a
|
|
9
|
+
* render function to receive the modeSwitcher element.
|
|
10
|
+
*/
|
|
11
|
+
import type { PanelMode } from './useSessionPanelMode';
|
|
12
|
+
export interface ConnectedPanelHostProps {
|
|
13
|
+
/** Unique ID for persisting panel mode */
|
|
14
|
+
panelId: string;
|
|
15
|
+
/** Whether the panel is open */
|
|
16
|
+
isOpen: boolean;
|
|
17
|
+
/** Callback when panel is closed */
|
|
18
|
+
onClose: () => void;
|
|
19
|
+
/** Icon to display in header */
|
|
20
|
+
headerIcon?: React.ReactNode;
|
|
21
|
+
/** Panel title */
|
|
22
|
+
title: string;
|
|
23
|
+
/** Subtitle shown below title */
|
|
24
|
+
subtitle?: string;
|
|
25
|
+
/** Actions to display in header */
|
|
26
|
+
headerActions?: React.ReactNode;
|
|
27
|
+
/** Panel content — can be a render function receiving the modeSwitcher element */
|
|
28
|
+
children: React.ReactNode | ((controls: {
|
|
29
|
+
modeSwitcher: React.ReactNode;
|
|
30
|
+
}) => React.ReactNode);
|
|
31
|
+
/** Footer content (e.g., Cancel/Apply buttons) */
|
|
32
|
+
footer?: React.ReactNode;
|
|
33
|
+
/** Default display mode */
|
|
34
|
+
defaultMode?: PanelMode;
|
|
35
|
+
/** Custom label for the docked/main tab (overrides title) */
|
|
36
|
+
tabLabel?: React.ReactNode;
|
|
37
|
+
/** When true, hides the popout button and resets any persisted popout mode */
|
|
38
|
+
disablePopout?: boolean;
|
|
39
|
+
/**
|
|
40
|
+
* Override the close-button data-testid. Defaults to `dialog-close-button`
|
|
41
|
+
* for backwards compatibility. Use a panel-specific value when multiple
|
|
42
|
+
* floating panels can be open at once and tests need to disambiguate.
|
|
43
|
+
*/
|
|
44
|
+
closeTestId?: string;
|
|
45
|
+
/** Initial overlay width in px (overlay mode only). */
|
|
46
|
+
defaultWidth?: number;
|
|
47
|
+
}
|
|
48
|
+
export declare function ConnectedPanelHost({ panelId, isOpen, onClose, headerIcon, title, subtitle, headerActions, children, footer, defaultMode, tabLabel, disablePopout, closeTestId, defaultWidth, }: ConnectedPanelHostProps): import("react").JSX.Element | null;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* useSessionPanelMode Hook
|
|
3
|
+
*
|
|
4
|
+
* Reads and writes a panel's display mode (floating/docked/popout) from the shared session.
|
|
5
|
+
*
|
|
6
|
+
* defaultMode is applied every time the panel opens (isOpen transitions to true),
|
|
7
|
+
* so a panel with defaultMode="docked" will always dock on open — even if it was
|
|
8
|
+
* previously kicked to floating by another panel docking.
|
|
9
|
+
*
|
|
10
|
+
* Users can still switch modes manually; the switch is respected until the panel
|
|
11
|
+
* closes and reopens.
|
|
12
|
+
*/
|
|
13
|
+
import { type ArbiPanelMode } from '@arbidocs/react';
|
|
14
|
+
export type PanelMode = ArbiPanelMode;
|
|
15
|
+
export declare function useSessionPanelMode(panelId: string, defaultMode?: PanelMode, isOpen?: boolean): {
|
|
16
|
+
mode: ArbiPanelMode;
|
|
17
|
+
setPanelMode: (newMode: PanelMode) => void;
|
|
18
|
+
};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { type TaskInboxWorkflowActions } from '../../agents/tasks';
|
|
2
|
+
export interface ConnectedThreadsPageProps {
|
|
3
|
+
showHeader?: boolean;
|
|
4
|
+
/** Search messages above the list; results replace the list after submitting. */
|
|
5
|
+
search?: boolean;
|
|
6
|
+
ResultsBoundary?: React.ComponentType<{
|
|
7
|
+
children: React.ReactNode;
|
|
8
|
+
}>;
|
|
9
|
+
/** Focus the launcher on arrival (the header's New Task brought you here). */
|
|
10
|
+
focusLauncher?: boolean;
|
|
11
|
+
layout?: 'list' | 'inbox';
|
|
12
|
+
workflowActions?: TaskInboxWorkflowActions;
|
|
13
|
+
}
|
|
14
|
+
export declare function ConnectedThreadsPage({ showHeader, search, ResultsBoundary, focusLauncher, layout, workflowActions, }: ConnectedThreadsPageProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ConversationSearch Component
|
|
3
|
+
*
|
|
4
|
+
* First-class hybrid (keyword + semantic) search across the workspace's past
|
|
5
|
+
* conversation messages. Mirrors SmartSearch's visual idiom (search input +
|
|
6
|
+
* relevance accents) but operates on the dedicated messages
|
|
7
|
+
* vector index and groups results by conversation. Clicking a result opens
|
|
8
|
+
* that conversation.
|
|
9
|
+
*
|
|
10
|
+
* Self-contained on purpose: document SmartSearch is deeply coupled to the
|
|
11
|
+
* document/tag model, so conversation search lives in its own surface and
|
|
12
|
+
* shares only the small UI primitives. The same component can later be mounted
|
|
13
|
+
* as a "Search" tab under Conversations if desired.
|
|
14
|
+
*/
|
|
15
|
+
import React from 'react';
|
|
16
|
+
interface ThreadSearchProps {
|
|
17
|
+
ResultsBoundary?: React.ComponentType<{
|
|
18
|
+
children: React.ReactNode;
|
|
19
|
+
}>;
|
|
20
|
+
/** Shown beneath the toolbar until a search is run (e.g. the history list). */
|
|
21
|
+
children?: React.ReactNode;
|
|
22
|
+
}
|
|
23
|
+
export declare function ThreadSearch({ children, ResultsBoundary }: ThreadSearchProps): React.JSX.Element;
|
|
24
|
+
export {};
|
|
@@ -13,3 +13,4 @@ export { WorkflowLaunchHost } from './WorkflowLaunchHost';
|
|
|
13
13
|
export { ConnectedWorkflowStart, type ConnectedWorkflowStartProps } from './ConnectedWorkflowStart';
|
|
14
14
|
export { ConnectedConversationStart } from './ConnectedConversationStart';
|
|
15
15
|
export { useSlashSkillWorkflows, parseTypedSkill } from './useSlashSkillWorkflows';
|
|
16
|
+
export { useWorkflowsPageState, type WorkflowBuilderSelection, type WorkflowsPageStateOptions, } from './useWorkflowsPageState';
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
import { type WorkflowResponse } from '@arbidocs/react';
|
|
2
|
+
/** A saved workflow, a new one, or a host catalogue entry opened as a template. */
|
|
3
|
+
export type WorkflowBuilderSelection = {
|
|
4
|
+
kind: 'saved';
|
|
5
|
+
id: string;
|
|
6
|
+
} | {
|
|
7
|
+
kind: 'new';
|
|
8
|
+
} | {
|
|
9
|
+
kind: 'template';
|
|
10
|
+
id: string;
|
|
11
|
+
};
|
|
12
|
+
export interface WorkflowsPageStateOptions {
|
|
13
|
+
initialBuilder?: WorkflowBuilderSelection;
|
|
14
|
+
/** A host deep link to consume once the saved workflow has loaded. */
|
|
15
|
+
historyWorkflowId?: string | null;
|
|
16
|
+
onHistoryWorkflowConsumed?: () => void;
|
|
17
|
+
}
|
|
18
|
+
/** Shared selection lifecycle for workflow tables, builders and history views. No routing or layout. */
|
|
19
|
+
export declare function useWorkflowsPageState({ initialBuilder, historyWorkflowId, onHistoryWorkflowConsumed, }?: WorkflowsPageStateOptions): {
|
|
20
|
+
workflows: {
|
|
21
|
+
external_id: string;
|
|
22
|
+
name: string;
|
|
23
|
+
description: string;
|
|
24
|
+
active: boolean;
|
|
25
|
+
shared: boolean;
|
|
26
|
+
workspace_ext_id?: string | null;
|
|
27
|
+
rrule?: string | null;
|
|
28
|
+
timezone: string;
|
|
29
|
+
run_at?: string | null;
|
|
30
|
+
next_fire_at?: string | null;
|
|
31
|
+
event_kind?: string | null;
|
|
32
|
+
event_filter?: {
|
|
33
|
+
[key: string]: unknown;
|
|
34
|
+
} | null;
|
|
35
|
+
after_conversation_ext_id?: string | null;
|
|
36
|
+
on_demand: boolean;
|
|
37
|
+
action?: import("@arbidocs/client").components["schemas"]["DocumentAutomationAction"] | null;
|
|
38
|
+
prompt: string;
|
|
39
|
+
skill_ref?: string | null;
|
|
40
|
+
skill_inputs?: {
|
|
41
|
+
[key: string]: unknown;
|
|
42
|
+
} | null;
|
|
43
|
+
plan?: import("@arbidocs/client").components["schemas"]["TaskPlan"] | null;
|
|
44
|
+
agent_ext_id?: string | null;
|
|
45
|
+
auth_mode: import("@arbidocs/client").components["schemas"]["src__models__workflow__AuthMode"];
|
|
46
|
+
fact_ext_id?: string | null;
|
|
47
|
+
last_fired_at?: string | null;
|
|
48
|
+
last_error?: string | null;
|
|
49
|
+
last_run_status?: string | null;
|
|
50
|
+
owner_ext_id?: string | null;
|
|
51
|
+
is_owner: boolean;
|
|
52
|
+
created_at: string;
|
|
53
|
+
updated_at: string;
|
|
54
|
+
}[];
|
|
55
|
+
builder: WorkflowBuilderSelection | null;
|
|
56
|
+
builderKey: number;
|
|
57
|
+
openBuilder: (selection: WorkflowBuilderSelection) => void;
|
|
58
|
+
closeBuilder: () => void;
|
|
59
|
+
builderSaved: (id: string) => void;
|
|
60
|
+
historyFor: {
|
|
61
|
+
external_id: string;
|
|
62
|
+
name: string;
|
|
63
|
+
description: string;
|
|
64
|
+
active: boolean;
|
|
65
|
+
shared: boolean;
|
|
66
|
+
workspace_ext_id?: string | null;
|
|
67
|
+
rrule?: string | null;
|
|
68
|
+
timezone: string;
|
|
69
|
+
run_at?: string | null;
|
|
70
|
+
next_fire_at?: string | null;
|
|
71
|
+
event_kind?: string | null;
|
|
72
|
+
event_filter?: {
|
|
73
|
+
[key: string]: unknown;
|
|
74
|
+
} | null;
|
|
75
|
+
after_conversation_ext_id?: string | null;
|
|
76
|
+
on_demand: boolean;
|
|
77
|
+
action?: import("@arbidocs/client").components["schemas"]["DocumentAutomationAction"] | null;
|
|
78
|
+
prompt: string;
|
|
79
|
+
skill_ref?: string | null;
|
|
80
|
+
skill_inputs?: {
|
|
81
|
+
[key: string]: unknown;
|
|
82
|
+
} | null;
|
|
83
|
+
plan?: import("@arbidocs/client").components["schemas"]["TaskPlan"] | null;
|
|
84
|
+
agent_ext_id?: string | null;
|
|
85
|
+
auth_mode: import("@arbidocs/client").components["schemas"]["src__models__workflow__AuthMode"];
|
|
86
|
+
fact_ext_id?: string | null;
|
|
87
|
+
last_fired_at?: string | null;
|
|
88
|
+
last_error?: string | null;
|
|
89
|
+
last_run_status?: string | null;
|
|
90
|
+
owner_ext_id?: string | null;
|
|
91
|
+
is_owner: boolean;
|
|
92
|
+
created_at: string;
|
|
93
|
+
updated_at: string;
|
|
94
|
+
} | null;
|
|
95
|
+
historyTabs: {
|
|
96
|
+
external_id: string;
|
|
97
|
+
name: string;
|
|
98
|
+
description: string;
|
|
99
|
+
active: boolean;
|
|
100
|
+
shared: boolean;
|
|
101
|
+
workspace_ext_id?: string | null;
|
|
102
|
+
rrule?: string | null;
|
|
103
|
+
timezone: string;
|
|
104
|
+
run_at?: string | null;
|
|
105
|
+
next_fire_at?: string | null;
|
|
106
|
+
event_kind?: string | null;
|
|
107
|
+
event_filter?: {
|
|
108
|
+
[key: string]: unknown;
|
|
109
|
+
} | null;
|
|
110
|
+
after_conversation_ext_id?: string | null;
|
|
111
|
+
on_demand: boolean;
|
|
112
|
+
action?: import("@arbidocs/client").components["schemas"]["DocumentAutomationAction"] | null;
|
|
113
|
+
prompt: string;
|
|
114
|
+
skill_ref?: string | null;
|
|
115
|
+
skill_inputs?: {
|
|
116
|
+
[key: string]: unknown;
|
|
117
|
+
} | null;
|
|
118
|
+
plan?: import("@arbidocs/client").components["schemas"]["TaskPlan"] | null;
|
|
119
|
+
agent_ext_id?: string | null;
|
|
120
|
+
auth_mode: import("@arbidocs/client").components["schemas"]["src__models__workflow__AuthMode"];
|
|
121
|
+
fact_ext_id?: string | null;
|
|
122
|
+
last_fired_at?: string | null;
|
|
123
|
+
last_error?: string | null;
|
|
124
|
+
last_run_status?: string | null;
|
|
125
|
+
owner_ext_id?: string | null;
|
|
126
|
+
is_owner: boolean;
|
|
127
|
+
created_at: string;
|
|
128
|
+
updated_at: string;
|
|
129
|
+
}[];
|
|
130
|
+
activeHistoryId: string | null;
|
|
131
|
+
openHistory: (workflow: WorkflowResponse | null) => void;
|
|
132
|
+
closeHistoryTab: (id: string) => void;
|
|
133
|
+
selectHistoryTab: import("react").Dispatch<import("react").SetStateAction<string | null>>;
|
|
134
|
+
};
|