@arbidocs/react 0.5.52 → 0.5.54
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 +15 -0
- package/dist/artifacts/index.cjs +9 -9
- package/dist/artifacts/index.js +3 -3
- package/dist/calls/livekit/index.cjs +48 -48
- package/dist/calls/livekit/index.js +3 -3
- package/dist/{chunk-ME4TS33T.cjs → chunk-2JQ7QNOO.cjs} +31 -31
- package/dist/{chunk-ME4TS33T.cjs.map → chunk-2JQ7QNOO.cjs.map} +1 -1
- package/dist/{chunk-W7DQJT4T.cjs → chunk-3CVY5SGY.cjs} +159 -22
- package/dist/chunk-3CVY5SGY.cjs.map +1 -0
- package/dist/{chunk-KOLCL4KV.js → chunk-4TKNUJKD.js} +3 -3
- package/dist/{chunk-KOLCL4KV.js.map → chunk-4TKNUJKD.js.map} +1 -1
- package/dist/{chunk-MB34NKBZ.js → chunk-DFZECLD3.js} +2 -2
- package/dist/chunk-DFZECLD3.js.map +1 -0
- package/dist/{chunk-MJWUUDYT.js → chunk-JFL7BBZ6.js} +3 -3
- package/dist/{chunk-MJWUUDYT.js.map → chunk-JFL7BBZ6.js.map} +1 -1
- package/dist/{chunk-BIHGAW4G.js → chunk-PVUZULHI.js} +3 -3
- package/dist/{chunk-BIHGAW4G.js.map → chunk-PVUZULHI.js.map} +1 -1
- package/dist/{chunk-GAW2PLSL.cjs → chunk-UKEUDTOE.cjs} +16 -16
- package/dist/{chunk-GAW2PLSL.cjs.map → chunk-UKEUDTOE.cjs.map} +1 -1
- package/dist/{chunk-ONGNP4JM.cjs → chunk-V64EETLS.cjs} +4 -4
- package/dist/{chunk-ONGNP4JM.cjs.map → chunk-V64EETLS.cjs.map} +1 -1
- package/dist/{chunk-JQSHGBNI.js → chunk-WRMA2JYX.js} +139 -8
- package/dist/chunk-WRMA2JYX.js.map +1 -0
- package/dist/{chunk-YIUUTRMQ.cjs → chunk-YRY6DGRU.cjs} +2 -2
- package/dist/chunk-YRY6DGRU.cjs.map +1 -0
- package/dist/document-tools/index.cjs +41 -41
- package/dist/document-tools/index.js +3 -3
- package/dist/index.cjs +770 -780
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +204 -126
- package/dist/index.d.ts +204 -126
- package/dist/index.js +11 -43
- package/dist/index.js.map +1 -1
- package/dist/viewers/index.cjs +2 -2
- package/dist/viewers/index.js +1 -1
- package/package.json +3 -3
- package/dist/chunk-JQSHGBNI.js.map +0 -1
- package/dist/chunk-MB34NKBZ.js.map +0 -1
- package/dist/chunk-W7DQJT4T.cjs.map +0 -1
- package/dist/chunk-YIUUTRMQ.cjs.map +0 -1
|
@@ -1,15 +1,146 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunk2JQ7QNOO_cjs = require('./chunk-2JQ7QNOO.cjs');
|
|
4
4
|
var chunkRRWAX52L_cjs = require('./chunk-RRWAX52L.cjs');
|
|
5
5
|
var chunkVAMPYLQ4_cjs = require('./chunk-VAMPYLQ4.cjs');
|
|
6
6
|
var chunkEEIYXVM4_cjs = require('./chunk-EEIYXVM4.cjs');
|
|
7
|
-
var
|
|
8
|
-
var browser = require('@arbidocs/sdk/browser');
|
|
9
|
-
var react = require('react');
|
|
7
|
+
var chunkYRY6DGRU_cjs = require('./chunk-YRY6DGRU.cjs');
|
|
10
8
|
var reactQuery = require('@tanstack/react-query');
|
|
9
|
+
var react = require('react');
|
|
10
|
+
var browser = require('@arbidocs/sdk/browser');
|
|
11
11
|
var client = require('@arbidocs/client');
|
|
12
12
|
|
|
13
|
+
function useUserSettings(options) {
|
|
14
|
+
const arbi = chunkYRY6DGRU_cjs.useArbi();
|
|
15
|
+
return reactQuery.useQuery({
|
|
16
|
+
queryKey: chunkRRWAX52L_cjs.arbiQueryKeys.userSettings(),
|
|
17
|
+
queryFn: () => arbi.settings.get(),
|
|
18
|
+
// Edited about once a month, and every write here patches the cache: no refetch on each mount.
|
|
19
|
+
staleTime: 30 * 60 * 1e3,
|
|
20
|
+
enabled: (options?.enabled ?? true) && arbi.isLoggedIn
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
function useUpdateUserSettings() {
|
|
24
|
+
const arbi = chunkYRY6DGRU_cjs.useArbi();
|
|
25
|
+
const qc = reactQuery.useQueryClient();
|
|
26
|
+
return reactQuery.useMutation({
|
|
27
|
+
mutationFn: (patch) => arbi.settings.update(patch),
|
|
28
|
+
onMutate: async (patch) => {
|
|
29
|
+
await qc.cancelQueries({ queryKey: chunkRRWAX52L_cjs.arbiQueryKeys.userSettings() });
|
|
30
|
+
const previous = qc.getQueryData(chunkRRWAX52L_cjs.arbiQueryKeys.userSettings());
|
|
31
|
+
qc.setQueryData(
|
|
32
|
+
chunkRRWAX52L_cjs.arbiQueryKeys.userSettings(),
|
|
33
|
+
(old) => old ? { ...old, ...patch } : old
|
|
34
|
+
);
|
|
35
|
+
return { previous };
|
|
36
|
+
},
|
|
37
|
+
onError: (_err, _patch, context) => {
|
|
38
|
+
qc.setQueryData(chunkRRWAX52L_cjs.arbiQueryKeys.userSettings(), context?.previous);
|
|
39
|
+
},
|
|
40
|
+
onSettled: () => qc.invalidateQueries({ queryKey: chunkRRWAX52L_cjs.arbiQueryKeys.userSettings() })
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
var ALWAYS_ON = { on: true, set: () => {
|
|
44
|
+
} };
|
|
45
|
+
function useUnlisted() {
|
|
46
|
+
return ALWAYS_ON;
|
|
47
|
+
}
|
|
48
|
+
function useUserSettingSwitch(source) {
|
|
49
|
+
const { userSetting, default: fallback } = source;
|
|
50
|
+
const { data } = useUserSettings();
|
|
51
|
+
const { mutate } = useUpdateUserSettings();
|
|
52
|
+
const saved = data?.[userSetting];
|
|
53
|
+
const set = react.useCallback((on) => mutate({ [userSetting]: on }), [mutate, userSetting]);
|
|
54
|
+
return { on: saved ?? fallback, set };
|
|
55
|
+
}
|
|
56
|
+
function useLocalSwitch(source, feature) {
|
|
57
|
+
const { local, default: fallback } = source;
|
|
58
|
+
const saved = react.useSyncExternalStore(local.subscribe, () => local.get(feature));
|
|
59
|
+
const set = react.useCallback((on) => local.set(feature, on), [local, feature]);
|
|
60
|
+
return { on: saved ?? fallback, set };
|
|
61
|
+
}
|
|
62
|
+
function useFeatureSwitch(feature) {
|
|
63
|
+
const source = chunkYRY6DGRU_cjs.useArbiHost().features?.[feature];
|
|
64
|
+
const useSource = !source ? useUnlisted : "userSetting" in source ? useUserSettingSwitch : useLocalSwitch;
|
|
65
|
+
return useSource(source, feature);
|
|
66
|
+
}
|
|
67
|
+
function useFeature(feature) {
|
|
68
|
+
return useFeatureSwitch(feature).on;
|
|
69
|
+
}
|
|
70
|
+
function readLocalFeature(features, feature) {
|
|
71
|
+
const source = features[feature];
|
|
72
|
+
if (!source) return true;
|
|
73
|
+
if ("local" in source) return source.local.get(feature) ?? source.default;
|
|
74
|
+
return source.default;
|
|
75
|
+
}
|
|
76
|
+
function defaultStorage() {
|
|
77
|
+
try {
|
|
78
|
+
return typeof localStorage === "undefined" ? null : localStorage;
|
|
79
|
+
} catch {
|
|
80
|
+
return null;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
function parseValues(raw) {
|
|
84
|
+
if (raw === null) return null;
|
|
85
|
+
try {
|
|
86
|
+
const parsed = JSON.parse(raw);
|
|
87
|
+
if (typeof parsed !== "object" || parsed === null || Array.isArray(parsed)) return {};
|
|
88
|
+
return Object.fromEntries(
|
|
89
|
+
Object.entries(parsed).filter(([, value]) => typeof value === "boolean")
|
|
90
|
+
);
|
|
91
|
+
} catch {
|
|
92
|
+
return {};
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
function createLocalFeatureStore({
|
|
96
|
+
key,
|
|
97
|
+
storage = defaultStorage(),
|
|
98
|
+
migrate
|
|
99
|
+
}) {
|
|
100
|
+
const listeners3 = /* @__PURE__ */ new Set();
|
|
101
|
+
const read = () => {
|
|
102
|
+
try {
|
|
103
|
+
return storage?.getItem(key) ?? null;
|
|
104
|
+
} catch {
|
|
105
|
+
return null;
|
|
106
|
+
}
|
|
107
|
+
};
|
|
108
|
+
const write = () => {
|
|
109
|
+
try {
|
|
110
|
+
storage?.setItem(key, JSON.stringify(values));
|
|
111
|
+
} catch {
|
|
112
|
+
}
|
|
113
|
+
};
|
|
114
|
+
const notify2 = () => listeners3.forEach((listener) => listener());
|
|
115
|
+
const saved = parseValues(read());
|
|
116
|
+
let values = saved ?? {};
|
|
117
|
+
let hydrated = saved !== null || !migrate;
|
|
118
|
+
const ready = hydrated ? Promise.resolve() : migrate().catch((error) => {
|
|
119
|
+
console.warn(`[features] The saved ${key} could not be brought in`, error);
|
|
120
|
+
return null;
|
|
121
|
+
}).then((earlier) => {
|
|
122
|
+
values = { ...earlier ?? {}, ...values };
|
|
123
|
+
write();
|
|
124
|
+
hydrated = true;
|
|
125
|
+
notify2();
|
|
126
|
+
});
|
|
127
|
+
return {
|
|
128
|
+
get: (feature) => values[feature],
|
|
129
|
+
set(feature, on) {
|
|
130
|
+
if (values[feature] === on) return;
|
|
131
|
+
values = { ...values, [feature]: on };
|
|
132
|
+
write();
|
|
133
|
+
notify2();
|
|
134
|
+
},
|
|
135
|
+
subscribe(listener) {
|
|
136
|
+
listeners3.add(listener);
|
|
137
|
+
return () => listeners3.delete(listener);
|
|
138
|
+
},
|
|
139
|
+
isHydrated: () => hydrated,
|
|
140
|
+
hydrated: () => ready
|
|
141
|
+
};
|
|
142
|
+
}
|
|
143
|
+
|
|
13
144
|
// src/conversation-list.ts
|
|
14
145
|
function isConversationListKey(queryKey) {
|
|
15
146
|
return queryKey.length === 3 && queryKey[0] === "arbi" && queryKey[1] === "conversations";
|
|
@@ -675,7 +806,7 @@ function arbiAccountClient(arbi, overrides = {}) {
|
|
|
675
806
|
if (everywhere) await arbi.sessions.logoutAll();
|
|
676
807
|
else await arbi.logout();
|
|
677
808
|
} finally {
|
|
678
|
-
|
|
809
|
+
chunk2JQ7QNOO_cjs.clearSealedDrafts();
|
|
679
810
|
}
|
|
680
811
|
},
|
|
681
812
|
requestDeletion: () => arbi.account.requestDeletion(),
|
|
@@ -719,7 +850,7 @@ var NO_ACCOUNT = {
|
|
|
719
850
|
};
|
|
720
851
|
var ALWAYS = () => true;
|
|
721
852
|
function useAccountClient() {
|
|
722
|
-
const { account, arbi } =
|
|
853
|
+
const { account, arbi } = chunkYRY6DGRU_cjs.useArbiHost();
|
|
723
854
|
const fallback = react.useMemo(() => arbi ? arbiAccountClient(arbi) : null, [arbi]);
|
|
724
855
|
const useEnabled = account?.useEnabled ?? ALWAYS;
|
|
725
856
|
const enabled = useEnabled();
|
|
@@ -730,7 +861,7 @@ function useAccountClient() {
|
|
|
730
861
|
return { client: fallback, enabled: arbi.isLoggedIn };
|
|
731
862
|
}
|
|
732
863
|
function useEntitlements() {
|
|
733
|
-
const arbi =
|
|
864
|
+
const arbi = chunkYRY6DGRU_cjs.useArbi();
|
|
734
865
|
return reactQuery.useQuery({
|
|
735
866
|
queryKey: chunkRRWAX52L_cjs.arbiQueryKeys.entitlements(),
|
|
736
867
|
queryFn: () => arbi.account.entitlements(),
|
|
@@ -1867,7 +1998,7 @@ async function transcribeRecording(params) {
|
|
|
1867
1998
|
return { stored, failed };
|
|
1868
1999
|
}
|
|
1869
2000
|
function useCallsConfig() {
|
|
1870
|
-
const arbi =
|
|
2001
|
+
const arbi = chunkYRY6DGRU_cjs.useArbi();
|
|
1871
2002
|
const { data } = reactQuery.useQuery({
|
|
1872
2003
|
queryKey: chunkRRWAX52L_cjs.callQueryKeys.config(),
|
|
1873
2004
|
queryFn: () => arbi.calls.config(),
|
|
@@ -1887,7 +2018,7 @@ function useCallTranscriptionAvailable() {
|
|
|
1887
2018
|
return useCallsConfig()?.transcription_available === true;
|
|
1888
2019
|
}
|
|
1889
2020
|
function useCall(callExtId) {
|
|
1890
|
-
const arbi =
|
|
2021
|
+
const arbi = chunkYRY6DGRU_cjs.useArbi();
|
|
1891
2022
|
return reactQuery.useQuery({
|
|
1892
2023
|
queryKey: chunkRRWAX52L_cjs.callQueryKeys.call(callExtId ?? ""),
|
|
1893
2024
|
queryFn: () => arbi.calls.get(callExtId),
|
|
@@ -1897,7 +2028,7 @@ function useCall(callExtId) {
|
|
|
1897
2028
|
});
|
|
1898
2029
|
}
|
|
1899
2030
|
function useCallRecordings(callExtId, enabled = true) {
|
|
1900
|
-
const arbi =
|
|
2031
|
+
const arbi = chunkYRY6DGRU_cjs.useArbi();
|
|
1901
2032
|
return reactQuery.useQuery({
|
|
1902
2033
|
queryKey: chunkRRWAX52L_cjs.callQueryKeys.recordings(callExtId ?? ""),
|
|
1903
2034
|
queryFn: () => arbi.calls.recording.list(callExtId),
|
|
@@ -1906,7 +2037,7 @@ function useCallRecordings(callExtId, enabled = true) {
|
|
|
1906
2037
|
});
|
|
1907
2038
|
}
|
|
1908
2039
|
function useCallRecording(callExtId, recordingExtId) {
|
|
1909
|
-
const arbi =
|
|
2040
|
+
const arbi = chunkYRY6DGRU_cjs.useArbi();
|
|
1910
2041
|
return reactQuery.useQuery({
|
|
1911
2042
|
queryKey: chunkRRWAX52L_cjs.callQueryKeys.recording(callExtId ?? "", recordingExtId ?? ""),
|
|
1912
2043
|
queryFn: () => arbi.calls.recording.get(callExtId, recordingExtId),
|
|
@@ -1920,7 +2051,7 @@ function useRecordingWindows(callExtId, enabled) {
|
|
|
1920
2051
|
return react.useMemo(() => data ? recordingWindowsOf(data) : NO_WINDOWS, [data]);
|
|
1921
2052
|
}
|
|
1922
2053
|
function useCallInviteLinks(callExtId) {
|
|
1923
|
-
const arbi =
|
|
2054
|
+
const arbi = chunkYRY6DGRU_cjs.useArbi();
|
|
1924
2055
|
return reactQuery.useQuery({
|
|
1925
2056
|
queryKey: chunkRRWAX52L_cjs.callQueryKeys.inviteLinks(callExtId ?? ""),
|
|
1926
2057
|
queryFn: () => arbi.calls.inviteLinks.list(callExtId),
|
|
@@ -1929,7 +2060,7 @@ function useCallInviteLinks(callExtId) {
|
|
|
1929
2060
|
});
|
|
1930
2061
|
}
|
|
1931
2062
|
function useRecordingActions(call) {
|
|
1932
|
-
const arbi =
|
|
2063
|
+
const arbi = chunkYRY6DGRU_cjs.useArbi();
|
|
1933
2064
|
const queryClient = reactQuery.useQueryClient();
|
|
1934
2065
|
return react.useMemo(
|
|
1935
2066
|
() => ({
|
|
@@ -1950,7 +2081,7 @@ function useRecordingActions(call) {
|
|
|
1950
2081
|
);
|
|
1951
2082
|
}
|
|
1952
2083
|
function useRevokeCallInviteLink(callExtId) {
|
|
1953
|
-
const arbi =
|
|
2084
|
+
const arbi = chunkYRY6DGRU_cjs.useArbi();
|
|
1954
2085
|
const queryClient = reactQuery.useQueryClient();
|
|
1955
2086
|
return react.useCallback(
|
|
1956
2087
|
async (inviteExtId) => {
|
|
@@ -2012,7 +2143,7 @@ async function saveRecordingFilesToThread(arbi, params) {
|
|
|
2012
2143
|
});
|
|
2013
2144
|
}
|
|
2014
2145
|
function useSaveToThread() {
|
|
2015
|
-
const arbi =
|
|
2146
|
+
const arbi = chunkYRY6DGRU_cjs.useArbi();
|
|
2016
2147
|
const queryClient = reactQuery.useQueryClient();
|
|
2017
2148
|
return react.useMemo(() => {
|
|
2018
2149
|
const thenRefresh = async (run) => {
|
|
@@ -2299,9 +2430,9 @@ function isWorkspaceGuestOf(workspaces, workspaceExtId, me) {
|
|
|
2299
2430
|
return workspace?.users?.find((wu) => wu.user.external_id === me)?.role === "guest";
|
|
2300
2431
|
}
|
|
2301
2432
|
function useMeetingReadOnly(lockedWorkspaceExtId) {
|
|
2302
|
-
const arbi =
|
|
2433
|
+
const arbi = chunkYRY6DGRU_cjs.useArbi();
|
|
2303
2434
|
const me = arbi.isLoggedIn ? arbi.user.identity()?.externalId ?? null : null;
|
|
2304
|
-
const { data: workspaces } =
|
|
2435
|
+
const { data: workspaces } = chunk2JQ7QNOO_cjs.useWorkspaces({
|
|
2305
2436
|
enabled: !!lockedWorkspaceExtId && arbi.isLoggedIn
|
|
2306
2437
|
});
|
|
2307
2438
|
return isWorkspaceGuestOf(
|
|
@@ -2315,7 +2446,7 @@ function useMeetingReadOnly(lockedWorkspaceExtId) {
|
|
|
2315
2446
|
function useCallsEnabled() {
|
|
2316
2447
|
const serverEnabled = useServerCallsEnabled();
|
|
2317
2448
|
const experimental = useServerCallsExperimental();
|
|
2318
|
-
const switchedOn =
|
|
2449
|
+
const switchedOn = useFeature("calls");
|
|
2319
2450
|
return serverEnabled && (switchedOn || !experimental);
|
|
2320
2451
|
}
|
|
2321
2452
|
function useCanHostCalls() {
|
|
@@ -2324,9 +2455,9 @@ function useCanHostCalls() {
|
|
|
2324
2455
|
return callsEnabled && entitled;
|
|
2325
2456
|
}
|
|
2326
2457
|
function useOpenCallMeetingChat() {
|
|
2327
|
-
const arbi =
|
|
2458
|
+
const arbi = chunkYRY6DGRU_cjs.useArbi();
|
|
2328
2459
|
const queryClient = reactQuery.useQueryClient();
|
|
2329
|
-
const open =
|
|
2460
|
+
const open = chunkYRY6DGRU_cjs.useArbiHost().calls?.openMeetingChat;
|
|
2330
2461
|
return react.useCallback(
|
|
2331
2462
|
async (target) => {
|
|
2332
2463
|
try {
|
|
@@ -2399,6 +2530,7 @@ exports.clockTime = clockTime;
|
|
|
2399
2530
|
exports.compositeFiles = compositeFiles;
|
|
2400
2531
|
exports.compositeTrack = compositeTrack;
|
|
2401
2532
|
exports.conversationKeyForCall = conversationKeyForCall;
|
|
2533
|
+
exports.createLocalFeatureStore = createLocalFeatureStore;
|
|
2402
2534
|
exports.createMutedNotifier = createMutedNotifier;
|
|
2403
2535
|
exports.createTrackCutter = createTrackCutter;
|
|
2404
2536
|
exports.cutAtPauses = cutAtPauses;
|
|
@@ -2463,6 +2595,7 @@ exports.persistTranscriptSegment = persistTranscriptSegment;
|
|
|
2463
2595
|
exports.playheadAt = playheadAt;
|
|
2464
2596
|
exports.postRecordingDocsToThread = postRecordingDocsToThread;
|
|
2465
2597
|
exports.postTranscriptToThread = postTranscriptToThread;
|
|
2598
|
+
exports.readLocalFeature = readLocalFeature;
|
|
2466
2599
|
exports.recordingFiles = recordingFiles;
|
|
2467
2600
|
exports.recordingWindowsOf = recordingWindowsOf;
|
|
2468
2601
|
exports.rejoinAsAudience = rejoinAsAudience;
|
|
@@ -2516,6 +2649,8 @@ exports.useCallsConfig = useCallsConfig;
|
|
|
2516
2649
|
exports.useCallsEnabled = useCallsEnabled;
|
|
2517
2650
|
exports.useCanHostCalls = useCanHostCalls;
|
|
2518
2651
|
exports.useEntitlements = useEntitlements;
|
|
2652
|
+
exports.useFeature = useFeature;
|
|
2653
|
+
exports.useFeatureSwitch = useFeatureSwitch;
|
|
2519
2654
|
exports.useIsEntitled = useIsEntitled;
|
|
2520
2655
|
exports.useMeetingReadOnly = useMeetingReadOnly;
|
|
2521
2656
|
exports.useNameEditor = useNameEditor;
|
|
@@ -2528,7 +2663,9 @@ exports.useSaveToThread = useSaveToThread;
|
|
|
2528
2663
|
exports.useServerCallsEnabled = useServerCallsEnabled;
|
|
2529
2664
|
exports.useServerCallsExperimental = useServerCallsExperimental;
|
|
2530
2665
|
exports.useUpdateProfile = useUpdateProfile;
|
|
2666
|
+
exports.useUpdateUserSettings = useUpdateUserSettings;
|
|
2667
|
+
exports.useUserSettings = useUserSettings;
|
|
2531
2668
|
exports.wrapTrackKey = wrapTrackKey;
|
|
2532
2669
|
exports.writeSamples = writeSamples;
|
|
2533
|
-
//# sourceMappingURL=chunk-
|
|
2534
|
-
//# sourceMappingURL=chunk-
|
|
2670
|
+
//# sourceMappingURL=chunk-3CVY5SGY.cjs.map
|
|
2671
|
+
//# sourceMappingURL=chunk-3CVY5SGY.cjs.map
|