@arbidocs/react 0.5.77 → 0.5.79
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 +31 -6
- package/dist/artifacts/index.cjs +11 -11
- package/dist/artifacts/index.js +4 -4
- package/dist/calls/livekit/index.cjs +43 -43
- package/dist/calls/livekit/index.js +4 -4
- package/dist/{chunk-LBAGMNGG.js → chunk-4MNYCQ3L.js} +3 -3
- package/dist/{chunk-LBAGMNGG.js.map → chunk-4MNYCQ3L.js.map} +1 -1
- package/dist/{chunk-RDERZWMO.cjs → chunk-5IN5OGBT.cjs} +33 -33
- package/dist/{chunk-RDERZWMO.cjs.map → chunk-5IN5OGBT.cjs.map} +1 -1
- package/dist/{chunk-O2HDONQE.js → chunk-5UJ4ZKJN.js} +3 -3
- package/dist/{chunk-O2HDONQE.js.map → chunk-5UJ4ZKJN.js.map} +1 -1
- package/dist/{chunk-2MECTZLS.js → chunk-DFA2W3YH.js} +5 -5
- package/dist/{chunk-2MECTZLS.js.map → chunk-DFA2W3YH.js.map} +1 -1
- package/dist/{chunk-IHKQPOPK.cjs → chunk-I3VG2ZOT.cjs} +3 -3
- package/dist/{chunk-IHKQPOPK.cjs.map → chunk-I3VG2ZOT.cjs.map} +1 -1
- package/dist/{chunk-PMHFLOXY.cjs → chunk-KNO6K35X.cjs} +50 -50
- package/dist/{chunk-PMHFLOXY.cjs.map → chunk-KNO6K35X.cjs.map} +1 -1
- package/dist/{chunk-33PVGKXT.js → chunk-OZWAKXB2.js} +232 -70
- package/dist/chunk-OZWAKXB2.js.map +1 -0
- package/dist/{chunk-MWW54PY6.cjs → chunk-RW3URTNE.cjs} +20 -20
- package/dist/{chunk-MWW54PY6.cjs.map → chunk-RW3URTNE.cjs.map} +1 -1
- package/dist/{chunk-AOEJ744V.js → chunk-TK7ERJPE.js} +5 -2
- package/dist/{chunk-AOEJ744V.js.map → chunk-TK7ERJPE.js.map} +1 -1
- package/dist/{chunk-GQAXAZN7.cjs → chunk-U4PWVSCT.cjs} +5 -2
- package/dist/{chunk-GQAXAZN7.cjs.map → chunk-U4PWVSCT.cjs.map} +1 -1
- package/dist/{chunk-6RSVGLQY.cjs → chunk-UHXU5MHV.cjs} +265 -99
- package/dist/chunk-UHXU5MHV.cjs.map +1 -0
- package/dist/{chunk-JHN4PKWX.js → chunk-YJEZEPUB.js} +3 -3
- package/dist/{chunk-JHN4PKWX.js.map → chunk-YJEZEPUB.js.map} +1 -1
- package/dist/document-tools/core.cjs +82 -82
- package/dist/document-tools/core.d.cts +2 -2
- package/dist/document-tools/core.d.ts +2 -2
- package/dist/document-tools/core.js +2 -2
- package/dist/document-tools/index.cjs +82 -82
- package/dist/document-tools/index.d.cts +1 -1
- package/dist/document-tools/index.d.ts +1 -1
- package/dist/document-tools/index.js +2 -2
- package/dist/index.cjs +1344 -1181
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +352 -550
- package/dist/index.d.ts +352 -550
- package/dist/index.js +176 -32
- package/dist/index.js.map +1 -1
- package/dist/{query-keys.d-BFKQVevT.d.ts → query-keys.d-Dm0NL9nr.d.cts} +3 -0
- package/dist/{query-keys.d-BFKQVevT.d.cts → query-keys.d-Dm0NL9nr.d.ts} +3 -0
- package/dist/ui/index.cjs +165 -165
- package/dist/ui/index.js +2 -2
- package/package.json +5 -3
- package/dist/chunk-33PVGKXT.js.map +0 -1
- package/dist/chunk-6RSVGLQY.cjs.map +0 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { arbiQueryKeys } from './chunk-AOEJ744V.js';
|
|
2
|
-
import { useArbiHost, useArbi } from './chunk-2Y6LJNWA.js';
|
|
3
1
|
import { OWN_SESSION_SLOT } from './chunk-DPYBZDJB.js';
|
|
2
|
+
import { arbiQueryKeys } from './chunk-TK7ERJPE.js';
|
|
3
|
+
import { useArbiHost, useArbi } from './chunk-2Y6LJNWA.js';
|
|
4
4
|
import { parseVersionRef } from './chunk-NNWMHMEC.js';
|
|
5
5
|
import { getUserEncryptionKeypair, sealedBoxDecrypt, sealedBoxEncrypt } from '@arbidocs/client';
|
|
6
6
|
import { useSyncExternalStore, useCallback, useMemo, useRef, useEffect } from 'react';
|
|
@@ -706,6 +706,194 @@ function createArbiChatStore({
|
|
|
706
706
|
};
|
|
707
707
|
}
|
|
708
708
|
|
|
709
|
+
// src/session/documents.ts
|
|
710
|
+
var VIEWER_TABS = [
|
|
711
|
+
"pdf",
|
|
712
|
+
"edit",
|
|
713
|
+
"html",
|
|
714
|
+
"docx",
|
|
715
|
+
"xlsx",
|
|
716
|
+
"versions",
|
|
717
|
+
"preview"
|
|
718
|
+
];
|
|
719
|
+
var DEFAULT_DOCUMENT_VIEWER_STATE = {
|
|
720
|
+
tab: "pdf",
|
|
721
|
+
compareId: null,
|
|
722
|
+
tabRequest: null,
|
|
723
|
+
textScale: 1,
|
|
724
|
+
phonePdfChosen: false,
|
|
725
|
+
commentTarget: null,
|
|
726
|
+
unsavedChanges: false,
|
|
727
|
+
detached: false
|
|
728
|
+
};
|
|
729
|
+
var NO_PASSAGE_CITATION = {
|
|
730
|
+
active: null,
|
|
731
|
+
highlighted: [],
|
|
732
|
+
picked: [],
|
|
733
|
+
unpicked: []
|
|
734
|
+
};
|
|
735
|
+
var EMPTY_DOCUMENT_STATE = {
|
|
736
|
+
viewingDocument: null,
|
|
737
|
+
documentViewer: DEFAULT_DOCUMENT_VIEWER_STATE,
|
|
738
|
+
selectedDocumentIds: [],
|
|
739
|
+
documentsToSelect: null,
|
|
740
|
+
pinnedDocumentId: null,
|
|
741
|
+
relatedDocuments: /* @__PURE__ */ new Map(),
|
|
742
|
+
draftDocuments: {},
|
|
743
|
+
passageCitation: NO_PASSAGE_CITATION
|
|
744
|
+
};
|
|
745
|
+
var DRAFT_TITLES = {
|
|
746
|
+
text: "New Doc",
|
|
747
|
+
audio: "New Audio",
|
|
748
|
+
photo: "New Photo",
|
|
749
|
+
video: "New Video"
|
|
750
|
+
};
|
|
751
|
+
function nextViewingDocument(current, input) {
|
|
752
|
+
if (!input) return null;
|
|
753
|
+
const same = current?.id === input.id;
|
|
754
|
+
return {
|
|
755
|
+
id: input.id,
|
|
756
|
+
page: input.page !== void 0 ? input.page : same ? current?.page ?? null : null,
|
|
757
|
+
passageId: input.passageId !== void 0 ? input.passageId : current?.passageId ?? null
|
|
758
|
+
};
|
|
759
|
+
}
|
|
760
|
+
var isRecord3 = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
|
|
761
|
+
var isPage = (value) => typeof value === "number" && Number.isInteger(value) && value >= 1;
|
|
762
|
+
function parseSavedDocuments(saved) {
|
|
763
|
+
if (!isRecord3(saved) || saved.version !== 1) return null;
|
|
764
|
+
const viewing = isRecord3(saved.viewingDocument) ? saved.viewingDocument : null;
|
|
765
|
+
return {
|
|
766
|
+
version: 1,
|
|
767
|
+
viewingDocument: viewing && typeof viewing.id === "string" && viewing.id ? { id: viewing.id, page: isPage(viewing.page) ? viewing.page : null } : null,
|
|
768
|
+
pinnedDocumentId: typeof saved.pinnedDocumentId === "string" ? saved.pinnedDocumentId : null,
|
|
769
|
+
tab: VIEWER_TABS.includes(saved.tab) ? saved.tab : DEFAULT_DOCUMENT_VIEWER_STATE.tab,
|
|
770
|
+
textScale: typeof saved.textScale === "number" && Number.isFinite(saved.textScale) && saved.textScale > 0 ? saved.textScale : DEFAULT_DOCUMENT_VIEWER_STATE.textScale
|
|
771
|
+
};
|
|
772
|
+
}
|
|
773
|
+
function savedDocumentsOf(state) {
|
|
774
|
+
return {
|
|
775
|
+
version: 1,
|
|
776
|
+
viewingDocument: state.viewingDocument ? { id: state.viewingDocument.id, page: state.viewingDocument.page } : null,
|
|
777
|
+
pinnedDocumentId: state.pinnedDocumentId,
|
|
778
|
+
tab: state.documentViewer.tab,
|
|
779
|
+
textScale: state.documentViewer.textScale
|
|
780
|
+
};
|
|
781
|
+
}
|
|
782
|
+
function restoreSavedDocuments(base, saved) {
|
|
783
|
+
return {
|
|
784
|
+
...base,
|
|
785
|
+
viewingDocument: saved.viewingDocument ? { id: saved.viewingDocument.id, page: saved.viewingDocument.page, passageId: null } : null,
|
|
786
|
+
pinnedDocumentId: saved.pinnedDocumentId,
|
|
787
|
+
documentViewer: { ...base.documentViewer, tab: saved.tab, textScale: saved.textScale }
|
|
788
|
+
};
|
|
789
|
+
}
|
|
790
|
+
function createArbiDocumentSessionStore({
|
|
791
|
+
initial = {},
|
|
792
|
+
persist,
|
|
793
|
+
showViewer
|
|
794
|
+
} = {}) {
|
|
795
|
+
let state = { ...EMPTY_DOCUMENT_STATE, ...initial };
|
|
796
|
+
if (persist) {
|
|
797
|
+
const saved = parseSavedDocuments(persist.load());
|
|
798
|
+
if (saved) state = restoreSavedDocuments(state, saved);
|
|
799
|
+
}
|
|
800
|
+
const listeners = /* @__PURE__ */ new Set();
|
|
801
|
+
const update = (patch) => {
|
|
802
|
+
const previous = state;
|
|
803
|
+
state = { ...state, ...patch };
|
|
804
|
+
if (persist && (state.viewingDocument !== previous.viewingDocument || state.pinnedDocumentId !== previous.pinnedDocumentId || state.documentViewer.tab !== previous.documentViewer.tab || state.documentViewer.textScale !== previous.documentViewer.textScale))
|
|
805
|
+
persist.save(savedDocumentsOf(state));
|
|
806
|
+
listeners.forEach((listener) => listener());
|
|
807
|
+
};
|
|
808
|
+
const setDocumentViewer = (change) => {
|
|
809
|
+
const next = { ...state.documentViewer, ...change };
|
|
810
|
+
const keys = Object.keys(change);
|
|
811
|
+
if (keys.some((key) => next[key] !== state.documentViewer[key]))
|
|
812
|
+
update({ documentViewer: next });
|
|
813
|
+
};
|
|
814
|
+
const updateDraft = (id, change) => {
|
|
815
|
+
const draft = state.draftDocuments[id];
|
|
816
|
+
if (draft) update({ draftDocuments: { ...state.draftDocuments, [id]: change(draft) } });
|
|
817
|
+
};
|
|
818
|
+
return {
|
|
819
|
+
getState: () => state,
|
|
820
|
+
subscribe: (listener) => {
|
|
821
|
+
listeners.add(listener);
|
|
822
|
+
return () => listeners.delete(listener);
|
|
823
|
+
},
|
|
824
|
+
setViewingDocument: (input) => update({ viewingDocument: nextViewingDocument(state.viewingDocument, input) }),
|
|
825
|
+
setDocumentViewer,
|
|
826
|
+
setSelectedDocumentIds: (ids) => update({ selectedDocumentIds: ids }),
|
|
827
|
+
setDocumentsToSelect: (ids) => update({ documentsToSelect: ids }),
|
|
828
|
+
setPinnedDocumentId: (pinnedDocumentId) => update({ pinnedDocumentId }),
|
|
829
|
+
setRelatedDocuments: (relatedDocuments) => update({ relatedDocuments }),
|
|
830
|
+
setPassageCitation: (change) => update({ passageCitation: { ...state.passageCitation, ...change } }),
|
|
831
|
+
showNewDocument: (documentId, tab) => {
|
|
832
|
+
update({
|
|
833
|
+
viewingDocument: { id: documentId, page: null, passageId: null },
|
|
834
|
+
documentViewer: tab ? { ...state.documentViewer, tab } : state.documentViewer
|
|
835
|
+
});
|
|
836
|
+
showViewer?.();
|
|
837
|
+
},
|
|
838
|
+
startDraftDocument: (kind) => {
|
|
839
|
+
const id = `draft-${crypto.randomUUID()}`;
|
|
840
|
+
const draft = {
|
|
841
|
+
id,
|
|
842
|
+
title: DRAFT_TITLES[kind],
|
|
843
|
+
kind,
|
|
844
|
+
content: "",
|
|
845
|
+
mediaBlob: null,
|
|
846
|
+
createdAt: (/* @__PURE__ */ new Date()).toISOString()
|
|
847
|
+
};
|
|
848
|
+
update({
|
|
849
|
+
draftDocuments: { ...state.draftDocuments, [id]: draft },
|
|
850
|
+
viewingDocument: { id, page: null, passageId: null },
|
|
851
|
+
// A text draft is written in the editor; a capture's recorder replaces the tabs.
|
|
852
|
+
documentViewer: kind === "text" ? { ...state.documentViewer, tab: "edit" } : state.documentViewer
|
|
853
|
+
});
|
|
854
|
+
showViewer?.();
|
|
855
|
+
return id;
|
|
856
|
+
},
|
|
857
|
+
updateDraftDocument: (id, change) => updateDraft(id, (draft) => ({ ...draft, ...change })),
|
|
858
|
+
setDraftDocumentKind: (id, kind) => updateDraft(id, (draft) => ({
|
|
859
|
+
...draft,
|
|
860
|
+
kind,
|
|
861
|
+
mediaBlob: null,
|
|
862
|
+
title: Object.values(DRAFT_TITLES).includes(draft.title) ? DRAFT_TITLES[kind] : draft.title
|
|
863
|
+
})),
|
|
864
|
+
clearDraftDocument: (id) => {
|
|
865
|
+
if (!(id in state.draftDocuments)) return;
|
|
866
|
+
const rest = { ...state.draftDocuments };
|
|
867
|
+
delete rest[id];
|
|
868
|
+
update({ draftDocuments: rest });
|
|
869
|
+
},
|
|
870
|
+
leave: () => update({
|
|
871
|
+
viewingDocument: null,
|
|
872
|
+
selectedDocumentIds: [],
|
|
873
|
+
documentsToSelect: null,
|
|
874
|
+
pinnedDocumentId: null,
|
|
875
|
+
relatedDocuments: /* @__PURE__ */ new Map(),
|
|
876
|
+
passageCitation: NO_PASSAGE_CITATION,
|
|
877
|
+
documentViewer: {
|
|
878
|
+
...state.documentViewer,
|
|
879
|
+
compareId: null,
|
|
880
|
+
tabRequest: null,
|
|
881
|
+
commentTarget: null,
|
|
882
|
+
unsavedChanges: false,
|
|
883
|
+
detached: false
|
|
884
|
+
}
|
|
885
|
+
}),
|
|
886
|
+
reset: () => update({
|
|
887
|
+
...EMPTY_DOCUMENT_STATE,
|
|
888
|
+
relatedDocuments: /* @__PURE__ */ new Map(),
|
|
889
|
+
documentViewer: {
|
|
890
|
+
...DEFAULT_DOCUMENT_VIEWER_STATE,
|
|
891
|
+
textScale: state.documentViewer.textScale
|
|
892
|
+
}
|
|
893
|
+
})
|
|
894
|
+
};
|
|
895
|
+
}
|
|
896
|
+
|
|
709
897
|
// src/session/layout.ts
|
|
710
898
|
var PANEL_MODES = ["main", "docked", "overlay", "popout"];
|
|
711
899
|
var defaultPinned = () => typeof window === "undefined" || window.innerWidth >= 640;
|
|
@@ -731,22 +919,22 @@ function defaultLayoutState() {
|
|
|
731
919
|
grid: { states: {}, rowHeights: {}, labelWidths: {}, savedViews: {} }
|
|
732
920
|
};
|
|
733
921
|
}
|
|
734
|
-
var
|
|
735
|
-
var recordOf2 = (value, keep) =>
|
|
922
|
+
var isRecord4 = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
|
|
923
|
+
var recordOf2 = (value, keep) => isRecord4(value) ? Object.fromEntries(Object.entries(value).filter(([, v]) => keep(v))) : {};
|
|
736
924
|
var isString2 = (v) => typeof v === "string";
|
|
737
925
|
var isNumber = (v) => typeof v === "number" && Number.isFinite(v);
|
|
738
926
|
var isAny = (v) => v !== void 0;
|
|
739
927
|
var isMode = (v) => PANEL_MODES.includes(v);
|
|
740
|
-
var isSize = (v) =>
|
|
928
|
+
var isSize = (v) => isRecord4(v) && isNumber(v.width) && isNumber(v.height);
|
|
741
929
|
var isList = (v) => Array.isArray(v);
|
|
742
930
|
var stringOrNull3 = (v) => isString2(v) ? v : null;
|
|
743
931
|
function parseSavedLayout(saved) {
|
|
744
|
-
if (!
|
|
745
|
-
const shell =
|
|
746
|
-
const panels =
|
|
747
|
-
const tabs =
|
|
748
|
-
const views =
|
|
749
|
-
const grid =
|
|
932
|
+
if (!isRecord4(saved) || saved.version !== 1) return null;
|
|
933
|
+
const shell = isRecord4(saved.shell) ? saved.shell : {};
|
|
934
|
+
const panels = isRecord4(shell.panels) ? shell.panels : {};
|
|
935
|
+
const tabs = isRecord4(saved.tabs) ? saved.tabs : {};
|
|
936
|
+
const views = isRecord4(saved.views) ? saved.views : {};
|
|
937
|
+
const grid = isRecord4(saved.grid) ? saved.grid : {};
|
|
750
938
|
const defaults = defaultLayoutState();
|
|
751
939
|
return {
|
|
752
940
|
version: 1,
|
|
@@ -768,7 +956,7 @@ function parseSavedLayout(saved) {
|
|
|
768
956
|
values: recordOf2(views.values, isAny)
|
|
769
957
|
},
|
|
770
958
|
grid: {
|
|
771
|
-
states: recordOf2(grid.states,
|
|
959
|
+
states: recordOf2(grid.states, isRecord4),
|
|
772
960
|
rowHeights: recordOf2(grid.rowHeights, isNumber),
|
|
773
961
|
labelWidths: recordOf2(grid.labelWidths, isNumber),
|
|
774
962
|
savedViews: recordOf2(grid.savedViews, isList)
|
|
@@ -1095,19 +1283,6 @@ function readWorkspaceLastOpened(lastOpenedKey = WORKSPACE_LAST_OPENED_KEY) {
|
|
|
1095
1283
|
}
|
|
1096
1284
|
|
|
1097
1285
|
// src/session/store.ts
|
|
1098
|
-
var DEFAULT_DOCUMENT_VIEWER_STATE = {
|
|
1099
|
-
tab: "pdf",
|
|
1100
|
-
compareId: null,
|
|
1101
|
-
tabRequest: null,
|
|
1102
|
-
textScale: 1,
|
|
1103
|
-
phonePdfChosen: false
|
|
1104
|
-
};
|
|
1105
|
-
var EMPTY_DOCUMENT_STATE = {
|
|
1106
|
-
viewingDocument: null,
|
|
1107
|
-
documentViewer: DEFAULT_DOCUMENT_VIEWER_STATE,
|
|
1108
|
-
selectedDocumentIds: [],
|
|
1109
|
-
pinnedDocumentId: null
|
|
1110
|
-
};
|
|
1111
1286
|
var EMPTY_SESSION_STATE = {
|
|
1112
1287
|
workspaceId: null,
|
|
1113
1288
|
workspaceStatus: "closed",
|
|
@@ -1119,40 +1294,6 @@ var selectViewingDocumentId = (state) => state.viewingDocument ? parseVersionRef
|
|
|
1119
1294
|
var conversationKey = (state) => state.conversationId ?? "new";
|
|
1120
1295
|
var selectDraft = (state) => state.drafts[conversationKey(state)] ?? "";
|
|
1121
1296
|
var selectIsGenerating = (conversationId) => (state) => !!conversationId && !!state.generating[conversationId]?.isGenerating;
|
|
1122
|
-
function nextViewingDocument(current, input) {
|
|
1123
|
-
if (!input) return null;
|
|
1124
|
-
const same = current?.id === input.id;
|
|
1125
|
-
return {
|
|
1126
|
-
id: input.id,
|
|
1127
|
-
page: input.page !== void 0 ? input.page : same ? current?.page ?? null : null,
|
|
1128
|
-
passageId: input.passageId !== void 0 ? input.passageId : current?.passageId ?? null
|
|
1129
|
-
};
|
|
1130
|
-
}
|
|
1131
|
-
function createArbiDocumentSessionStore(initial = {}) {
|
|
1132
|
-
let state = { ...EMPTY_DOCUMENT_STATE, ...initial };
|
|
1133
|
-
const listeners = /* @__PURE__ */ new Set();
|
|
1134
|
-
const update = (patch) => {
|
|
1135
|
-
state = { ...state, ...patch };
|
|
1136
|
-
listeners.forEach((listener) => listener());
|
|
1137
|
-
};
|
|
1138
|
-
return {
|
|
1139
|
-
getState: () => state,
|
|
1140
|
-
subscribe: (listener) => {
|
|
1141
|
-
listeners.add(listener);
|
|
1142
|
-
return () => listeners.delete(listener);
|
|
1143
|
-
},
|
|
1144
|
-
setViewingDocument: (input) => update({ viewingDocument: nextViewingDocument(state.viewingDocument, input) }),
|
|
1145
|
-
setDocumentViewer: (change) => {
|
|
1146
|
-
const next = { ...state.documentViewer, ...change };
|
|
1147
|
-
const keys = Object.keys(change);
|
|
1148
|
-
if (keys.some((key) => next[key] !== state.documentViewer[key]))
|
|
1149
|
-
update({ documentViewer: next });
|
|
1150
|
-
},
|
|
1151
|
-
setSelectedDocumentIds: (ids) => update({ selectedDocumentIds: ids }),
|
|
1152
|
-
setPinnedDocumentId: (pinnedDocumentId) => update({ pinnedDocumentId }),
|
|
1153
|
-
leave: () => update({ viewingDocument: null, selectedDocumentIds: [], pinnedDocumentId: null })
|
|
1154
|
-
};
|
|
1155
|
-
}
|
|
1156
1297
|
function layoutActionsOf(layout) {
|
|
1157
1298
|
const actions = { ...layout };
|
|
1158
1299
|
delete actions.getLayout;
|
|
@@ -1177,6 +1318,14 @@ function chatActionsOf(chat) {
|
|
|
1177
1318
|
delete actions.reset;
|
|
1178
1319
|
return actions;
|
|
1179
1320
|
}
|
|
1321
|
+
function documentActionsOf(documents) {
|
|
1322
|
+
const actions = { ...documents };
|
|
1323
|
+
delete actions.getState;
|
|
1324
|
+
delete actions.subscribe;
|
|
1325
|
+
delete actions.leave;
|
|
1326
|
+
delete actions.reset;
|
|
1327
|
+
return actions;
|
|
1328
|
+
}
|
|
1180
1329
|
function composeArbiSessionStore({
|
|
1181
1330
|
layout,
|
|
1182
1331
|
workspace,
|
|
@@ -1201,6 +1350,7 @@ function composeArbiSessionStore({
|
|
|
1201
1350
|
return {
|
|
1202
1351
|
...layoutActionsOf(layout),
|
|
1203
1352
|
...chatActionsOf(chat),
|
|
1353
|
+
...documentActionsOf(documents),
|
|
1204
1354
|
getState,
|
|
1205
1355
|
layoutHydrated: () => layout.hydrated(),
|
|
1206
1356
|
isLayoutHydrated: () => layout.isHydrated(),
|
|
@@ -1223,11 +1373,7 @@ function composeArbiSessionStore({
|
|
|
1223
1373
|
workspace.setWorkspaceStatus("closed");
|
|
1224
1374
|
chat.leave();
|
|
1225
1375
|
documents.leave();
|
|
1226
|
-
})
|
|
1227
|
-
setViewingDocument: (input) => documents.setViewingDocument(input),
|
|
1228
|
-
setDocumentViewer: (change) => documents.setDocumentViewer(change),
|
|
1229
|
-
setSelectedDocumentIds: (ids) => documents.setSelectedDocumentIds(ids),
|
|
1230
|
-
setPinnedDocumentId: (id) => documents.setPinnedDocumentId(id)
|
|
1376
|
+
})
|
|
1231
1377
|
};
|
|
1232
1378
|
}
|
|
1233
1379
|
function createArbiSessionStore(initial = {}, {
|
|
@@ -1244,7 +1390,11 @@ function createArbiSessionStore(initial = {}, {
|
|
|
1244
1390
|
viewingDocument,
|
|
1245
1391
|
documentViewer,
|
|
1246
1392
|
selectedDocumentIds,
|
|
1393
|
+
documentsToSelect,
|
|
1247
1394
|
pinnedDocumentId,
|
|
1395
|
+
relatedDocuments,
|
|
1396
|
+
draftDocuments,
|
|
1397
|
+
passageCitation,
|
|
1248
1398
|
...chatInitial
|
|
1249
1399
|
} = initial;
|
|
1250
1400
|
delete chatInitial.workspaceId;
|
|
@@ -1255,9 +1405,21 @@ function createArbiSessionStore(initial = {}, {
|
|
|
1255
1405
|
layout,
|
|
1256
1406
|
workspace,
|
|
1257
1407
|
chat: createArbiChatStore({ layout, draftStorage, initial: chatInitial }),
|
|
1258
|
-
documents: createArbiDocumentSessionStore(
|
|
1259
|
-
defined({
|
|
1260
|
-
|
|
1408
|
+
documents: createArbiDocumentSessionStore({
|
|
1409
|
+
initial: defined({
|
|
1410
|
+
viewingDocument,
|
|
1411
|
+
documentViewer: documentViewer && {
|
|
1412
|
+
...EMPTY_DOCUMENT_STATE.documentViewer,
|
|
1413
|
+
...documentViewer
|
|
1414
|
+
},
|
|
1415
|
+
selectedDocumentIds,
|
|
1416
|
+
documentsToSelect,
|
|
1417
|
+
pinnedDocumentId,
|
|
1418
|
+
relatedDocuments,
|
|
1419
|
+
draftDocuments,
|
|
1420
|
+
passageCitation
|
|
1421
|
+
})
|
|
1422
|
+
})
|
|
1261
1423
|
});
|
|
1262
1424
|
}
|
|
1263
1425
|
var SAVE_DELAY_MS = 500;
|
|
@@ -1973,6 +2135,6 @@ function useUserUsageToday(options) {
|
|
|
1973
2135
|
});
|
|
1974
2136
|
}
|
|
1975
2137
|
|
|
1976
|
-
export { DEFAULT_DOCUMENT_VIEWER_STATE, EMPTY_CHAT_STATE, EMPTY_SESSION_STATE, MAX_THREAD_TABS, MIN_QUEUED_MESSAGE_VISIBILITY_MS, PROJECT_CREATION_DENIED_REASON, WORKSPACE_LAST_OPENED_KEY, WORKSPACE_STORAGE_KEY, agentControl, browserWorkspaceStorage, clearSealedDrafts, closePanelIn, composeArbiSessionStore, conversationKey, createArbiChatStore, createArbiDocumentSessionStore, createArbiLayoutStore, createArbiSessionStore, createArbiWorkspaceStore, createDebouncedWriter, createSealedDraftStorage, createStoragePersist, createUiStateStorage, defaultLayoutState, dmTabId, flushOnPageExit, isPanelOpen, isUsageMetered, layoutActionsOf, nextViewingDocument, openPanelIn, panelPlace, parseSavedChat, parseSavedLayout, queuedMessages, readWorkspaceLastOpened, restoreLayout, savedChatOf, savedLayoutOf, selectDraft, selectIsGenerating, selectViewingDocumentId, threadTabId, useActivity, useAgents, useArbiSession, useArbiSessionState, useArbiSessionStore, useAssistantQuery, useAvailableModels, useBoxRole, useBuiltinCommands, useCanCreateProjects, useConfig, useConfigs, useConversationThreads, useConversations, useCurrentUser, useDeleteAgents, useDocumentVersionList, useFirmPool, useHealth, useMessageDetails, useParsedDocument, useProjectInvoices, useProjectUsage, useProjects, useProjectsUsage, useSessionPageTab, useSessionView, useSignedInSession, useTags, useThumbnails, useTopUpFirmPool, useTransientView, useUserUsageToday, useWorkspaceActivity, useWorkspaces };
|
|
1977
|
-
//# sourceMappingURL=chunk-
|
|
1978
|
-
//# sourceMappingURL=chunk-
|
|
2138
|
+
export { DEFAULT_DOCUMENT_VIEWER_STATE, EMPTY_CHAT_STATE, EMPTY_DOCUMENT_STATE, EMPTY_SESSION_STATE, MAX_THREAD_TABS, MIN_QUEUED_MESSAGE_VISIBILITY_MS, PROJECT_CREATION_DENIED_REASON, WORKSPACE_LAST_OPENED_KEY, WORKSPACE_STORAGE_KEY, agentControl, browserWorkspaceStorage, clearSealedDrafts, closePanelIn, composeArbiSessionStore, conversationKey, createArbiChatStore, createArbiDocumentSessionStore, createArbiLayoutStore, createArbiSessionStore, createArbiWorkspaceStore, createDebouncedWriter, createSealedDraftStorage, createStoragePersist, createUiStateStorage, defaultLayoutState, dmTabId, flushOnPageExit, isPanelOpen, isUsageMetered, layoutActionsOf, nextViewingDocument, openPanelIn, panelPlace, parseSavedChat, parseSavedDocuments, parseSavedLayout, queuedMessages, readWorkspaceLastOpened, restoreLayout, restoreSavedDocuments, savedChatOf, savedDocumentsOf, savedLayoutOf, selectDraft, selectIsGenerating, selectViewingDocumentId, threadTabId, useActivity, useAgents, useArbiSession, useArbiSessionState, useArbiSessionStore, useAssistantQuery, useAvailableModels, useBoxRole, useBuiltinCommands, useCanCreateProjects, useConfig, useConfigs, useConversationThreads, useConversations, useCurrentUser, useDeleteAgents, useDocumentVersionList, useFirmPool, useHealth, useMessageDetails, useParsedDocument, useProjectInvoices, useProjectUsage, useProjects, useProjectsUsage, useSessionPageTab, useSessionView, useSignedInSession, useTags, useThumbnails, useTopUpFirmPool, useTransientView, useUserUsageToday, useWorkspaceActivity, useWorkspaces };
|
|
2139
|
+
//# sourceMappingURL=chunk-OZWAKXB2.js.map
|
|
2140
|
+
//# sourceMappingURL=chunk-OZWAKXB2.js.map
|