@arbidocs/react 0.4.2 → 0.4.3
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 +2 -0
- package/dist/{chunk-3CLGHHME.js → chunk-MIJRORQL.js} +395 -313
- package/dist/chunk-MIJRORQL.js.map +1 -0
- package/dist/{chunk-OU2QLIKS.cjs → chunk-ORKGCXG3.cjs} +444 -361
- package/dist/chunk-ORKGCXG3.cjs.map +1 -0
- package/dist/index.cjs +579 -1291
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +232 -143
- package/dist/index.d.ts +232 -143
- package/dist/index.js +355 -1077
- package/dist/index.js.map +1 -1
- package/dist/ui/index.cjs +126 -126
- package/dist/ui/index.d.cts +12 -12
- package/dist/ui/index.d.ts +12 -12
- package/dist/ui/index.js +1 -1
- package/package.json +3 -3
- package/dist/chunk-3CLGHHME.js.map +0 -1
- package/dist/chunk-OU2QLIKS.cjs.map +0 -1
package/dist/index.cjs
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var chunkBXP6S34V_cjs = require('./chunk-BXP6S34V.cjs');
|
|
4
|
-
var
|
|
4
|
+
var chunkORKGCXG3_cjs = require('./chunk-ORKGCXG3.cjs');
|
|
5
5
|
var chunkRZQACYNQ_cjs = require('./chunk-RZQACYNQ.cjs');
|
|
6
6
|
var chunk7IOCMCC5_cjs = require('./chunk-7IOCMCC5.cjs');
|
|
7
7
|
var React = require('react');
|
|
8
8
|
var reactQuery = require('@tanstack/react-query');
|
|
9
|
+
var lucideReact = require('lucide-react');
|
|
9
10
|
var jsxRuntime = require('react/jsx-runtime');
|
|
10
11
|
var browser = require('@arbidocs/sdk/browser');
|
|
11
|
-
var lucideReact = require('lucide-react');
|
|
12
12
|
var client = require('@arbidocs/client');
|
|
13
13
|
var zustand = require('zustand');
|
|
14
14
|
var diff = require('diff');
|
|
@@ -25,566 +25,6 @@ var React__default = /*#__PURE__*/_interopDefault(React);
|
|
|
25
25
|
var ReactMarkdown__default = /*#__PURE__*/_interopDefault(ReactMarkdown);
|
|
26
26
|
var Cropper__default = /*#__PURE__*/_interopDefault(Cropper);
|
|
27
27
|
|
|
28
|
-
// src/chat/styles.ts
|
|
29
|
-
var DEFAULT_THEME = {
|
|
30
|
-
primaryColor: "#00adef",
|
|
31
|
-
backgroundColor: "#ffffff",
|
|
32
|
-
surfaceColor: "#f9fafb",
|
|
33
|
-
textColor: "#111827",
|
|
34
|
-
mutedColor: "#6b7280",
|
|
35
|
-
borderColor: "#e5e7eb",
|
|
36
|
-
userBubbleColor: "#f3f4f6",
|
|
37
|
-
userBubbleTextColor: "#111827",
|
|
38
|
-
assistantBubbleColor: "rgba(0, 173, 239, 0.08)",
|
|
39
|
-
assistantBubbleTextColor: "#111827",
|
|
40
|
-
borderRadius: "8px",
|
|
41
|
-
fontFamily: "-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif"
|
|
42
|
-
};
|
|
43
|
-
var DEFAULT_LABELS = {
|
|
44
|
-
title: "Chat",
|
|
45
|
-
email: "Email",
|
|
46
|
-
password: "Password",
|
|
47
|
-
loginButton: "Log in",
|
|
48
|
-
loginButtonLoading: "Logging in...",
|
|
49
|
-
registerButton: "Create account",
|
|
50
|
-
sendCodeButton: "Email me a code",
|
|
51
|
-
haveCodeButton: "I have an invitation code",
|
|
52
|
-
verificationCode: "Verification code",
|
|
53
|
-
confirmPassword: "Confirm password",
|
|
54
|
-
firstName: "First name",
|
|
55
|
-
lastName: "Last name",
|
|
56
|
-
switchToRegister: "Create account",
|
|
57
|
-
switchToLogin: "Back to login",
|
|
58
|
-
selectWorkspace: "Select a workspace",
|
|
59
|
-
workspacePlaceholder: "Choose...",
|
|
60
|
-
continueButton: "Continue",
|
|
61
|
-
createWorkspace: "Create new workspace",
|
|
62
|
-
workspaceName: "Workspace name",
|
|
63
|
-
createButton: "Create",
|
|
64
|
-
changeWorkspace: "Change workspace",
|
|
65
|
-
documents: "Documents",
|
|
66
|
-
sendButton: "Send",
|
|
67
|
-
placeholder: "Ask a question...",
|
|
68
|
-
uploadButton: "Upload",
|
|
69
|
-
uploading: "Uploading...",
|
|
70
|
-
emptyNoDocs: "No documents found in this workspace.",
|
|
71
|
-
emptyNoSelection: "Select at least one document to start chatting.",
|
|
72
|
-
emptyReady: "Ask a question about your documents."
|
|
73
|
-
};
|
|
74
|
-
function getTheme(partial) {
|
|
75
|
-
return { ...DEFAULT_THEME, ...partial };
|
|
76
|
-
}
|
|
77
|
-
function getLabels(partial) {
|
|
78
|
-
return { ...DEFAULT_LABELS, ...partial };
|
|
79
|
-
}
|
|
80
|
-
function containerStyle(theme, width, height) {
|
|
81
|
-
return {
|
|
82
|
-
width: typeof width === "number" ? `${width}px` : width,
|
|
83
|
-
height: typeof height === "number" ? `${height}px` : height,
|
|
84
|
-
display: "flex",
|
|
85
|
-
flexDirection: "column",
|
|
86
|
-
fontFamily: theme.fontFamily,
|
|
87
|
-
fontSize: "14px",
|
|
88
|
-
lineHeight: "1.5",
|
|
89
|
-
color: theme.textColor,
|
|
90
|
-
backgroundColor: theme.backgroundColor,
|
|
91
|
-
border: `1px solid ${theme.borderColor}`,
|
|
92
|
-
borderRadius: theme.borderRadius,
|
|
93
|
-
overflow: "hidden",
|
|
94
|
-
boxSizing: "border-box"
|
|
95
|
-
};
|
|
96
|
-
}
|
|
97
|
-
function headerStyle(theme) {
|
|
98
|
-
return {
|
|
99
|
-
display: "flex",
|
|
100
|
-
alignItems: "center",
|
|
101
|
-
padding: "12px 16px",
|
|
102
|
-
fontWeight: 600,
|
|
103
|
-
fontSize: "15px",
|
|
104
|
-
borderBottom: `1px solid ${theme.borderColor}`,
|
|
105
|
-
flexShrink: 0
|
|
106
|
-
};
|
|
107
|
-
}
|
|
108
|
-
function bodyStyle() {
|
|
109
|
-
return {
|
|
110
|
-
flex: 1,
|
|
111
|
-
display: "flex",
|
|
112
|
-
flexDirection: "column",
|
|
113
|
-
overflow: "hidden"
|
|
114
|
-
};
|
|
115
|
-
}
|
|
116
|
-
function formContainerStyle() {
|
|
117
|
-
return {
|
|
118
|
-
flex: 1,
|
|
119
|
-
display: "flex",
|
|
120
|
-
flexDirection: "column",
|
|
121
|
-
justifyContent: "center",
|
|
122
|
-
padding: "24px 16px",
|
|
123
|
-
gap: "12px"
|
|
124
|
-
};
|
|
125
|
-
}
|
|
126
|
-
function labelStyle(theme) {
|
|
127
|
-
return {
|
|
128
|
-
fontSize: "13px",
|
|
129
|
-
fontWeight: 500,
|
|
130
|
-
color: theme.textColor,
|
|
131
|
-
marginBottom: "4px"
|
|
132
|
-
};
|
|
133
|
-
}
|
|
134
|
-
function inputStyle(theme) {
|
|
135
|
-
return {
|
|
136
|
-
width: "100%",
|
|
137
|
-
padding: "8px 12px",
|
|
138
|
-
fontSize: "14px",
|
|
139
|
-
fontFamily: theme.fontFamily,
|
|
140
|
-
color: theme.textColor,
|
|
141
|
-
backgroundColor: theme.backgroundColor,
|
|
142
|
-
border: `1px solid ${theme.borderColor}`,
|
|
143
|
-
borderRadius: "8px",
|
|
144
|
-
outline: "none",
|
|
145
|
-
boxSizing: "border-box"
|
|
146
|
-
};
|
|
147
|
-
}
|
|
148
|
-
function selectStyle(theme) {
|
|
149
|
-
return {
|
|
150
|
-
...inputStyle(theme),
|
|
151
|
-
cursor: "pointer",
|
|
152
|
-
appearance: "auto"
|
|
153
|
-
};
|
|
154
|
-
}
|
|
155
|
-
function buttonStyle(theme, disabled) {
|
|
156
|
-
return {
|
|
157
|
-
padding: "8px 16px",
|
|
158
|
-
fontSize: "14px",
|
|
159
|
-
fontWeight: 500,
|
|
160
|
-
fontFamily: theme.fontFamily,
|
|
161
|
-
color: "#ffffff",
|
|
162
|
-
backgroundColor: disabled ? theme.mutedColor : theme.primaryColor,
|
|
163
|
-
border: "none",
|
|
164
|
-
borderRadius: "8px",
|
|
165
|
-
cursor: disabled ? "not-allowed" : "pointer",
|
|
166
|
-
opacity: disabled ? 0.6 : 1,
|
|
167
|
-
transition: "opacity 150ms"
|
|
168
|
-
};
|
|
169
|
-
}
|
|
170
|
-
function errorStyle() {
|
|
171
|
-
return {
|
|
172
|
-
fontSize: "13px",
|
|
173
|
-
color: "#ef4444",
|
|
174
|
-
margin: "4px 0 0"
|
|
175
|
-
};
|
|
176
|
-
}
|
|
177
|
-
function messagesContainerStyle() {
|
|
178
|
-
return {
|
|
179
|
-
flex: 1,
|
|
180
|
-
overflowY: "auto",
|
|
181
|
-
padding: "12px 16px",
|
|
182
|
-
display: "flex",
|
|
183
|
-
flexDirection: "column",
|
|
184
|
-
gap: "8px"
|
|
185
|
-
};
|
|
186
|
-
}
|
|
187
|
-
function messageBubbleStyle(theme, role) {
|
|
188
|
-
const isUser = role === "user";
|
|
189
|
-
return {
|
|
190
|
-
maxWidth: "85%",
|
|
191
|
-
padding: "8px 12px",
|
|
192
|
-
borderRadius: "12px",
|
|
193
|
-
fontSize: "14px",
|
|
194
|
-
lineHeight: "1.5",
|
|
195
|
-
wordBreak: "break-word",
|
|
196
|
-
whiteSpace: "pre-wrap",
|
|
197
|
-
alignSelf: isUser ? "flex-end" : "flex-start",
|
|
198
|
-
backgroundColor: isUser ? theme.userBubbleColor : theme.assistantBubbleColor,
|
|
199
|
-
color: isUser ? theme.userBubbleTextColor : theme.assistantBubbleTextColor
|
|
200
|
-
};
|
|
201
|
-
}
|
|
202
|
-
function inputBarStyle(theme) {
|
|
203
|
-
return {
|
|
204
|
-
display: "flex",
|
|
205
|
-
gap: "8px",
|
|
206
|
-
padding: "12px 16px",
|
|
207
|
-
borderTop: `1px solid ${theme.borderColor}`,
|
|
208
|
-
flexShrink: 0
|
|
209
|
-
};
|
|
210
|
-
}
|
|
211
|
-
function chatInputStyle(theme) {
|
|
212
|
-
return {
|
|
213
|
-
...inputStyle(theme),
|
|
214
|
-
flex: 1
|
|
215
|
-
};
|
|
216
|
-
}
|
|
217
|
-
function sendButtonStyle(theme, disabled) {
|
|
218
|
-
return {
|
|
219
|
-
...buttonStyle(theme, disabled),
|
|
220
|
-
padding: "8px 14px",
|
|
221
|
-
flexShrink: 0
|
|
222
|
-
};
|
|
223
|
-
}
|
|
224
|
-
function docSelectorStyle(theme) {
|
|
225
|
-
return {
|
|
226
|
-
padding: "8px 16px",
|
|
227
|
-
borderBottom: `1px solid ${theme.borderColor}`,
|
|
228
|
-
flexShrink: 0
|
|
229
|
-
};
|
|
230
|
-
}
|
|
231
|
-
function docToggleStyle(theme) {
|
|
232
|
-
return {
|
|
233
|
-
display: "flex",
|
|
234
|
-
alignItems: "center",
|
|
235
|
-
gap: "6px",
|
|
236
|
-
fontSize: "13px",
|
|
237
|
-
fontWeight: 500,
|
|
238
|
-
color: theme.mutedColor,
|
|
239
|
-
cursor: "pointer",
|
|
240
|
-
background: "none",
|
|
241
|
-
border: "none",
|
|
242
|
-
padding: 0,
|
|
243
|
-
fontFamily: theme.fontFamily
|
|
244
|
-
};
|
|
245
|
-
}
|
|
246
|
-
function docListStyle() {
|
|
247
|
-
return {
|
|
248
|
-
marginTop: "6px",
|
|
249
|
-
display: "flex",
|
|
250
|
-
flexDirection: "column",
|
|
251
|
-
gap: "4px",
|
|
252
|
-
maxHeight: "120px",
|
|
253
|
-
overflowY: "auto"
|
|
254
|
-
};
|
|
255
|
-
}
|
|
256
|
-
function docItemStyle(theme) {
|
|
257
|
-
return {
|
|
258
|
-
display: "flex",
|
|
259
|
-
alignItems: "center",
|
|
260
|
-
gap: "6px",
|
|
261
|
-
fontSize: "13px",
|
|
262
|
-
color: theme.textColor,
|
|
263
|
-
cursor: "pointer",
|
|
264
|
-
textAlign: "left"
|
|
265
|
-
};
|
|
266
|
-
}
|
|
267
|
-
function emptyStateStyle(theme) {
|
|
268
|
-
return {
|
|
269
|
-
flex: 1,
|
|
270
|
-
display: "flex",
|
|
271
|
-
alignItems: "center",
|
|
272
|
-
justifyContent: "center",
|
|
273
|
-
color: theme.mutedColor,
|
|
274
|
-
fontSize: "13px",
|
|
275
|
-
padding: "24px",
|
|
276
|
-
textAlign: "center"
|
|
277
|
-
};
|
|
278
|
-
}
|
|
279
|
-
function loadingContainerStyle() {
|
|
280
|
-
return {
|
|
281
|
-
flex: 1,
|
|
282
|
-
display: "flex",
|
|
283
|
-
alignItems: "center",
|
|
284
|
-
justifyContent: "center",
|
|
285
|
-
gap: "8px",
|
|
286
|
-
fontSize: "13px"
|
|
287
|
-
};
|
|
288
|
-
}
|
|
289
|
-
function brandingStyle(theme) {
|
|
290
|
-
return {
|
|
291
|
-
display: "flex",
|
|
292
|
-
alignItems: "center",
|
|
293
|
-
justifyContent: "center",
|
|
294
|
-
gap: "4px",
|
|
295
|
-
padding: "6px 16px",
|
|
296
|
-
fontSize: "11px",
|
|
297
|
-
color: theme.mutedColor,
|
|
298
|
-
borderTop: `1px solid ${theme.borderColor}`,
|
|
299
|
-
flexShrink: 0,
|
|
300
|
-
userSelect: "none"
|
|
301
|
-
};
|
|
302
|
-
}
|
|
303
|
-
function brandingLinkStyle(theme) {
|
|
304
|
-
return {
|
|
305
|
-
color: theme.mutedColor,
|
|
306
|
-
fontWeight: 600,
|
|
307
|
-
textDecoration: "none"
|
|
308
|
-
};
|
|
309
|
-
}
|
|
310
|
-
function linkButtonStyle(theme) {
|
|
311
|
-
return {
|
|
312
|
-
background: "none",
|
|
313
|
-
border: "none",
|
|
314
|
-
padding: 0,
|
|
315
|
-
fontSize: "13px",
|
|
316
|
-
color: theme.primaryColor,
|
|
317
|
-
cursor: "pointer",
|
|
318
|
-
fontFamily: theme.fontFamily,
|
|
319
|
-
textDecoration: "underline"
|
|
320
|
-
};
|
|
321
|
-
}
|
|
322
|
-
function secondaryButtonStyle(theme, disabled) {
|
|
323
|
-
return {
|
|
324
|
-
padding: "4px 10px",
|
|
325
|
-
fontSize: "12px",
|
|
326
|
-
fontWeight: 500,
|
|
327
|
-
fontFamily: theme.fontFamily,
|
|
328
|
-
color: disabled ? theme.mutedColor : theme.primaryColor,
|
|
329
|
-
backgroundColor: "transparent",
|
|
330
|
-
border: `1px solid ${disabled ? theme.borderColor : theme.primaryColor}`,
|
|
331
|
-
borderRadius: "6px",
|
|
332
|
-
cursor: disabled ? "not-allowed" : "pointer",
|
|
333
|
-
opacity: disabled ? 0.6 : 1,
|
|
334
|
-
transition: "opacity 150ms",
|
|
335
|
-
whiteSpace: "nowrap"
|
|
336
|
-
};
|
|
337
|
-
}
|
|
338
|
-
function fileInputStyle() {
|
|
339
|
-
return { display: "none" };
|
|
340
|
-
}
|
|
341
|
-
function agentStatusStyle(theme) {
|
|
342
|
-
return {
|
|
343
|
-
fontSize: "12px",
|
|
344
|
-
color: theme.mutedColor,
|
|
345
|
-
fontStyle: "italic",
|
|
346
|
-
padding: "4px 0",
|
|
347
|
-
alignSelf: "flex-start"
|
|
348
|
-
};
|
|
349
|
-
}
|
|
350
|
-
function AuthScreen({ theme, labels, onLogin }) {
|
|
351
|
-
const arbi = chunk7IOCMCC5_cjs.useArbi();
|
|
352
|
-
const [mode, setMode] = React.useState("login");
|
|
353
|
-
const [step, setStep] = React.useState("email");
|
|
354
|
-
const [email, setEmail] = React.useState("");
|
|
355
|
-
const [password, setPassword] = React.useState("");
|
|
356
|
-
const [confirmPw, setConfirmPw] = React.useState("");
|
|
357
|
-
const [code, setCode] = React.useState("");
|
|
358
|
-
const [firstName, setFirstName] = React.useState("");
|
|
359
|
-
const [lastName, setLastName] = React.useState("");
|
|
360
|
-
const [loading, setLoading] = React.useState(false);
|
|
361
|
-
const [error, setError] = React.useState("");
|
|
362
|
-
const resetForm = () => {
|
|
363
|
-
setPassword("");
|
|
364
|
-
setConfirmPw("");
|
|
365
|
-
setCode("");
|
|
366
|
-
setFirstName("");
|
|
367
|
-
setLastName("");
|
|
368
|
-
setError("");
|
|
369
|
-
setStep("email");
|
|
370
|
-
};
|
|
371
|
-
const switchMode = (next) => {
|
|
372
|
-
resetForm();
|
|
373
|
-
setMode(next);
|
|
374
|
-
};
|
|
375
|
-
const handleLogin = async (e) => {
|
|
376
|
-
e.preventDefault();
|
|
377
|
-
setLoading(true);
|
|
378
|
-
setError("");
|
|
379
|
-
try {
|
|
380
|
-
await arbi.login(email, password);
|
|
381
|
-
onLogin();
|
|
382
|
-
} catch (err) {
|
|
383
|
-
setError(err instanceof Error ? err.message : "Login failed");
|
|
384
|
-
} finally {
|
|
385
|
-
setLoading(false);
|
|
386
|
-
}
|
|
387
|
-
};
|
|
388
|
-
const handleHaveCode = () => {
|
|
389
|
-
setError("");
|
|
390
|
-
setStep("verify");
|
|
391
|
-
};
|
|
392
|
-
const handleEmailCode = async () => {
|
|
393
|
-
if (!email) return;
|
|
394
|
-
setLoading(true);
|
|
395
|
-
setError("");
|
|
396
|
-
try {
|
|
397
|
-
await arbi.requestVerification(email);
|
|
398
|
-
setStep("verify");
|
|
399
|
-
} catch (err) {
|
|
400
|
-
setError(err instanceof Error ? err.message : "Failed to send verification code");
|
|
401
|
-
} finally {
|
|
402
|
-
setLoading(false);
|
|
403
|
-
}
|
|
404
|
-
};
|
|
405
|
-
const handleRegister = async (e) => {
|
|
406
|
-
e.preventDefault();
|
|
407
|
-
if (password !== confirmPw) {
|
|
408
|
-
setError("Passwords do not match");
|
|
409
|
-
return;
|
|
410
|
-
}
|
|
411
|
-
setLoading(true);
|
|
412
|
-
setError("");
|
|
413
|
-
try {
|
|
414
|
-
await arbi.register({ email, password, verificationCode: code, firstName, lastName });
|
|
415
|
-
await arbi.login(email, password);
|
|
416
|
-
onLogin();
|
|
417
|
-
} catch (err) {
|
|
418
|
-
setError(err instanceof Error ? err.message : "Registration failed");
|
|
419
|
-
} finally {
|
|
420
|
-
setLoading(false);
|
|
421
|
-
}
|
|
422
|
-
};
|
|
423
|
-
if (mode === "login") {
|
|
424
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("form", { onSubmit: handleLogin, style: formContainerStyle(), children: [
|
|
425
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
426
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { style: labelStyle(theme), children: labels.email }),
|
|
427
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
428
|
-
"input",
|
|
429
|
-
{
|
|
430
|
-
type: "email",
|
|
431
|
-
value: email,
|
|
432
|
-
onChange: (e) => setEmail(e.target.value),
|
|
433
|
-
placeholder: "you@example.com",
|
|
434
|
-
autoComplete: "email",
|
|
435
|
-
required: true,
|
|
436
|
-
style: inputStyle(theme)
|
|
437
|
-
}
|
|
438
|
-
)
|
|
439
|
-
] }),
|
|
440
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
441
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { style: labelStyle(theme), children: labels.password }),
|
|
442
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
443
|
-
"input",
|
|
444
|
-
{
|
|
445
|
-
type: "password",
|
|
446
|
-
value: password,
|
|
447
|
-
onChange: (e) => setPassword(e.target.value),
|
|
448
|
-
autoComplete: "current-password",
|
|
449
|
-
required: true,
|
|
450
|
-
style: inputStyle(theme)
|
|
451
|
-
}
|
|
452
|
-
)
|
|
453
|
-
] }),
|
|
454
|
-
/* @__PURE__ */ jsxRuntime.jsx("button", { type: "submit", disabled: loading, style: buttonStyle(theme, loading), children: loading ? labels.loginButtonLoading : labels.loginButton }),
|
|
455
|
-
error && /* @__PURE__ */ jsxRuntime.jsx("div", { style: errorStyle(), children: error }),
|
|
456
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { style: { textAlign: "center" }, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
457
|
-
"button",
|
|
458
|
-
{
|
|
459
|
-
type: "button",
|
|
460
|
-
onClick: () => switchMode("register"),
|
|
461
|
-
style: linkButtonStyle(theme),
|
|
462
|
-
children: labels.switchToRegister
|
|
463
|
-
}
|
|
464
|
-
) })
|
|
465
|
-
] });
|
|
466
|
-
}
|
|
467
|
-
if (step === "email") {
|
|
468
|
-
const noEmail = !email.trim();
|
|
469
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { style: formContainerStyle(), children: [
|
|
470
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
471
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { style: labelStyle(theme), children: labels.email }),
|
|
472
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
473
|
-
"input",
|
|
474
|
-
{
|
|
475
|
-
type: "email",
|
|
476
|
-
value: email,
|
|
477
|
-
onChange: (e) => setEmail(e.target.value),
|
|
478
|
-
placeholder: "you@example.com",
|
|
479
|
-
autoComplete: "email",
|
|
480
|
-
style: inputStyle(theme)
|
|
481
|
-
}
|
|
482
|
-
)
|
|
483
|
-
] }),
|
|
484
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { style: { display: "flex", gap: "8px" }, children: [
|
|
485
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
486
|
-
"button",
|
|
487
|
-
{
|
|
488
|
-
type: "button",
|
|
489
|
-
onClick: handleHaveCode,
|
|
490
|
-
disabled: noEmail,
|
|
491
|
-
style: { ...buttonStyle(theme, noEmail), flex: 1 },
|
|
492
|
-
children: labels.haveCodeButton
|
|
493
|
-
}
|
|
494
|
-
),
|
|
495
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
496
|
-
"button",
|
|
497
|
-
{
|
|
498
|
-
type: "button",
|
|
499
|
-
onClick: handleEmailCode,
|
|
500
|
-
disabled: noEmail || loading,
|
|
501
|
-
style: { ...buttonStyle(theme, noEmail || loading), flex: 1 },
|
|
502
|
-
children: loading ? "..." : labels.sendCodeButton
|
|
503
|
-
}
|
|
504
|
-
)
|
|
505
|
-
] }),
|
|
506
|
-
error && /* @__PURE__ */ jsxRuntime.jsx("div", { style: errorStyle(), children: error }),
|
|
507
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { style: { textAlign: "center" }, children: /* @__PURE__ */ jsxRuntime.jsx("button", { type: "button", onClick: () => switchMode("login"), style: linkButtonStyle(theme), children: labels.switchToLogin }) })
|
|
508
|
-
] });
|
|
509
|
-
}
|
|
510
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("form", { onSubmit: handleRegister, style: formContainerStyle(), children: [
|
|
511
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { style: { display: "flex", gap: "8px" }, children: [
|
|
512
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { style: { flex: 1 }, children: [
|
|
513
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { style: labelStyle(theme), children: labels.firstName }),
|
|
514
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
515
|
-
"input",
|
|
516
|
-
{
|
|
517
|
-
type: "text",
|
|
518
|
-
value: firstName,
|
|
519
|
-
onChange: (e) => setFirstName(e.target.value),
|
|
520
|
-
autoComplete: "given-name",
|
|
521
|
-
required: true,
|
|
522
|
-
style: inputStyle(theme)
|
|
523
|
-
}
|
|
524
|
-
)
|
|
525
|
-
] }),
|
|
526
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { style: { flex: 1 }, children: [
|
|
527
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { style: labelStyle(theme), children: labels.lastName }),
|
|
528
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
529
|
-
"input",
|
|
530
|
-
{
|
|
531
|
-
type: "text",
|
|
532
|
-
value: lastName,
|
|
533
|
-
onChange: (e) => setLastName(e.target.value),
|
|
534
|
-
autoComplete: "family-name",
|
|
535
|
-
required: true,
|
|
536
|
-
style: inputStyle(theme)
|
|
537
|
-
}
|
|
538
|
-
)
|
|
539
|
-
] })
|
|
540
|
-
] }),
|
|
541
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
542
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { style: labelStyle(theme), children: labels.verificationCode }),
|
|
543
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
544
|
-
"input",
|
|
545
|
-
{
|
|
546
|
-
type: "text",
|
|
547
|
-
value: code,
|
|
548
|
-
onChange: (e) => setCode(e.target.value),
|
|
549
|
-
autoComplete: "one-time-code",
|
|
550
|
-
required: true,
|
|
551
|
-
style: inputStyle(theme)
|
|
552
|
-
}
|
|
553
|
-
)
|
|
554
|
-
] }),
|
|
555
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
556
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { style: labelStyle(theme), children: labels.password }),
|
|
557
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
558
|
-
"input",
|
|
559
|
-
{
|
|
560
|
-
type: "password",
|
|
561
|
-
value: password,
|
|
562
|
-
onChange: (e) => setPassword(e.target.value),
|
|
563
|
-
autoComplete: "new-password",
|
|
564
|
-
required: true,
|
|
565
|
-
style: inputStyle(theme)
|
|
566
|
-
}
|
|
567
|
-
)
|
|
568
|
-
] }),
|
|
569
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
570
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { style: labelStyle(theme), children: labels.confirmPassword }),
|
|
571
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
572
|
-
"input",
|
|
573
|
-
{
|
|
574
|
-
type: "password",
|
|
575
|
-
value: confirmPw,
|
|
576
|
-
onChange: (e) => setConfirmPw(e.target.value),
|
|
577
|
-
autoComplete: "new-password",
|
|
578
|
-
required: true,
|
|
579
|
-
style: inputStyle(theme)
|
|
580
|
-
}
|
|
581
|
-
)
|
|
582
|
-
] }),
|
|
583
|
-
/* @__PURE__ */ jsxRuntime.jsx("button", { type: "submit", disabled: loading, style: buttonStyle(theme, loading), children: loading ? "..." : labels.registerButton }),
|
|
584
|
-
error && /* @__PURE__ */ jsxRuntime.jsx("div", { style: errorStyle(), children: error }),
|
|
585
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { style: { textAlign: "center" }, children: /* @__PURE__ */ jsxRuntime.jsx("button", { type: "button", onClick: () => switchMode("login"), style: linkButtonStyle(theme), children: labels.switchToLogin }) })
|
|
586
|
-
] });
|
|
587
|
-
}
|
|
588
28
|
var arbiQueryKeys = {
|
|
589
29
|
workspaces: () => ["arbi", "workspaces"],
|
|
590
30
|
documents: (workspaceId) => ["arbi", "documents", workspaceId],
|
|
@@ -818,524 +258,220 @@ function useUserUsageToday(options) {
|
|
|
818
258
|
enabled: options?.enabled ?? arbi.isLoggedIn
|
|
819
259
|
});
|
|
820
260
|
}
|
|
821
|
-
|
|
822
|
-
|
|
823
|
-
|
|
824
|
-
|
|
825
|
-
|
|
826
|
-
|
|
827
|
-
|
|
828
|
-
|
|
829
|
-
|
|
830
|
-
|
|
831
|
-
|
|
832
|
-
const
|
|
833
|
-
|
|
834
|
-
|
|
835
|
-
|
|
836
|
-
|
|
837
|
-
|
|
838
|
-
|
|
839
|
-
|
|
840
|
-
|
|
841
|
-
|
|
842
|
-
setLoading(false);
|
|
843
|
-
}
|
|
844
|
-
};
|
|
845
|
-
const handleCreate = async () => {
|
|
846
|
-
const name = newName.trim();
|
|
847
|
-
if (!name) return;
|
|
848
|
-
setLoading(true);
|
|
849
|
-
setError("");
|
|
850
|
-
try {
|
|
851
|
-
const projects = await arbi.projects.list();
|
|
852
|
-
const projectExtId = projects[0]?.external_id;
|
|
853
|
-
if (!projectExtId) {
|
|
854
|
-
throw new Error("No project available; create one before adding a workspace");
|
|
855
|
-
}
|
|
856
|
-
const ws = await arbi.workspaces.create(name, projectExtId);
|
|
857
|
-
await arbi.selectWorkspace(ws.external_id);
|
|
858
|
-
onSelect(ws.external_id);
|
|
859
|
-
} catch (err) {
|
|
860
|
-
setError(err instanceof Error ? err.message : "Failed to create workspace");
|
|
861
|
-
} finally {
|
|
862
|
-
setLoading(false);
|
|
863
|
-
}
|
|
864
|
-
};
|
|
865
|
-
if (mode === "create") {
|
|
866
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { style: formContainerStyle(), children: [
|
|
867
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
868
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { style: labelStyle(theme), children: labels.workspaceName }),
|
|
869
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
870
|
-
"input",
|
|
871
|
-
{
|
|
872
|
-
type: "text",
|
|
873
|
-
value: newName,
|
|
874
|
-
onChange: (e) => setNewName(e.target.value),
|
|
875
|
-
disabled: loading,
|
|
876
|
-
style: inputStyle(theme)
|
|
877
|
-
}
|
|
878
|
-
)
|
|
879
|
-
] }),
|
|
880
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
881
|
-
"button",
|
|
882
|
-
{
|
|
883
|
-
type: "button",
|
|
884
|
-
onClick: handleCreate,
|
|
885
|
-
disabled: !newName.trim() || loading,
|
|
886
|
-
style: buttonStyle(theme, !newName.trim() || loading),
|
|
887
|
-
children: loading ? "..." : labels.createButton
|
|
888
|
-
}
|
|
889
|
-
),
|
|
890
|
-
error && /* @__PURE__ */ jsxRuntime.jsx("div", { style: errorStyle(), children: error }),
|
|
891
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { style: { textAlign: "center" }, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
892
|
-
"button",
|
|
893
|
-
{
|
|
894
|
-
type: "button",
|
|
895
|
-
onClick: () => {
|
|
896
|
-
setError("");
|
|
897
|
-
setMode("select");
|
|
898
|
-
},
|
|
899
|
-
style: linkButtonStyle(theme),
|
|
900
|
-
children: "or select existing"
|
|
901
|
-
}
|
|
902
|
-
) })
|
|
903
|
-
] });
|
|
904
|
-
}
|
|
905
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { style: formContainerStyle(), children: [
|
|
906
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
907
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { style: labelStyle(theme), children: labels.selectWorkspace }),
|
|
908
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
909
|
-
"select",
|
|
910
|
-
{
|
|
911
|
-
value: selected,
|
|
912
|
-
onChange: (e) => setSelected(e.target.value),
|
|
913
|
-
disabled: loading,
|
|
914
|
-
style: selectStyle(theme),
|
|
915
|
-
children: [
|
|
916
|
-
/* @__PURE__ */ jsxRuntime.jsx("option", { value: "", disabled: true, children: labels.workspacePlaceholder }),
|
|
917
|
-
workspaces?.map((ws) => /* @__PURE__ */ jsxRuntime.jsx("option", { value: ws.external_id, children: ws.name }, ws.external_id))
|
|
918
|
-
]
|
|
919
|
-
}
|
|
920
|
-
)
|
|
921
|
-
] }),
|
|
922
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
923
|
-
"button",
|
|
924
|
-
{
|
|
925
|
-
type: "button",
|
|
926
|
-
onClick: handleConfirm,
|
|
927
|
-
disabled: !selected || loading,
|
|
928
|
-
style: buttonStyle(theme, !selected || loading),
|
|
929
|
-
children: loading ? "Connecting..." : labels.continueButton
|
|
930
|
-
}
|
|
931
|
-
),
|
|
932
|
-
error && /* @__PURE__ */ jsxRuntime.jsx("div", { style: errorStyle(), children: error }),
|
|
933
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { style: { textAlign: "center" }, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
934
|
-
"button",
|
|
935
|
-
{
|
|
936
|
-
type: "button",
|
|
937
|
-
onClick: () => {
|
|
938
|
-
setError("");
|
|
939
|
-
setMode("create");
|
|
940
|
-
},
|
|
941
|
-
style: linkButtonStyle(theme),
|
|
942
|
-
children: labels.createWorkspace
|
|
943
|
-
}
|
|
944
|
-
) })
|
|
945
|
-
] });
|
|
946
|
-
}
|
|
947
|
-
var CITE_RE = /\[([^\]]+)\]\(#cite-(\d+)\)/g;
|
|
948
|
-
function MessageBubble({ message, theme }) {
|
|
949
|
-
const [expandedCite, setExpandedCite] = React.useState(null);
|
|
950
|
-
const hasCitations = message.role === "assistant" && message.metadata && CITE_RE.test(message.text);
|
|
951
|
-
CITE_RE.lastIndex = 0;
|
|
952
|
-
const resolved = hasCitations ? browser.resolveCitations(message.metadata) : [];
|
|
953
|
-
const summaries = hasCitations ? browser.summarizeCitations(resolved) : [];
|
|
954
|
-
const summaryMap = new Map(summaries.map((s) => [s.citationNum, s]));
|
|
955
|
-
const activeSummary = expandedCite ? summaryMap.get(expandedCite) : null;
|
|
956
|
-
const activeResolved = expandedCite ? resolved.find((r) => r.citationNum === expandedCite) : null;
|
|
957
|
-
const markdownComponents = React.useMemo(
|
|
958
|
-
() => ({
|
|
959
|
-
a: ({ href, children, ...props }) => {
|
|
960
|
-
if (href?.startsWith("#cite-")) {
|
|
961
|
-
const num = href.slice("#cite-".length);
|
|
962
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("span", { children: [
|
|
963
|
-
children,
|
|
964
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
965
|
-
"sup",
|
|
966
|
-
{
|
|
967
|
-
onClick: (e) => {
|
|
968
|
-
e.stopPropagation();
|
|
969
|
-
setExpandedCite((prev) => prev === num ? null : num);
|
|
970
|
-
},
|
|
971
|
-
style: citeSupStyle(theme),
|
|
972
|
-
title: `Citation ${num}`,
|
|
973
|
-
children: num
|
|
974
|
-
}
|
|
975
|
-
)
|
|
976
|
-
] });
|
|
977
|
-
}
|
|
978
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
979
|
-
"a",
|
|
980
|
-
{
|
|
981
|
-
href,
|
|
982
|
-
target: "_blank",
|
|
983
|
-
rel: "noopener noreferrer",
|
|
984
|
-
style: { color: theme.primaryColor },
|
|
985
|
-
...props,
|
|
986
|
-
children
|
|
987
|
-
}
|
|
988
|
-
);
|
|
989
|
-
}
|
|
990
|
-
}),
|
|
991
|
-
[theme]
|
|
992
|
-
);
|
|
993
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
994
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { style: messageBubbleStyle(theme, message.role), children: /* @__PURE__ */ jsxRuntime.jsx(chunkOU2QLIKS_cjs.MarkdownRenderer, { components: markdownComponents, children: message.text }) }),
|
|
995
|
-
activeSummary && activeResolved && /* @__PURE__ */ jsxRuntime.jsxs("div", { style: citePanelStyle(theme), children: [
|
|
996
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { style: citePanelHeaderStyle(theme), children: [
|
|
997
|
-
/* @__PURE__ */ jsxRuntime.jsxs("strong", { children: [
|
|
998
|
-
"[",
|
|
999
|
-
activeSummary.citationNum,
|
|
1000
|
-
"]"
|
|
1001
|
-
] }),
|
|
1002
|
-
" ",
|
|
1003
|
-
activeSummary.docTitle,
|
|
1004
|
-
activeSummary.pageNumber != null && /* @__PURE__ */ jsxRuntime.jsxs("span", { style: { color: theme.mutedColor }, children: [
|
|
1005
|
-
" p.",
|
|
1006
|
-
activeSummary.pageNumber
|
|
1007
|
-
] })
|
|
1008
|
-
] }),
|
|
1009
|
-
activeResolved.chunks.map((chunk, i) => /* @__PURE__ */ jsxRuntime.jsx("div", { style: citeChunkStyle(theme), children: chunk.content }, i))
|
|
1010
|
-
] })
|
|
1011
|
-
] });
|
|
1012
|
-
}
|
|
1013
|
-
function citeSupStyle(theme) {
|
|
1014
|
-
return {
|
|
1015
|
-
display: "inline-flex",
|
|
1016
|
-
alignItems: "center",
|
|
1017
|
-
justifyContent: "center",
|
|
1018
|
-
fontSize: "10px",
|
|
1019
|
-
fontWeight: 600,
|
|
1020
|
-
color: theme.primaryColor,
|
|
1021
|
-
cursor: "pointer",
|
|
1022
|
-
marginLeft: "1px",
|
|
1023
|
-
minWidth: "14px",
|
|
1024
|
-
lineHeight: 1
|
|
1025
|
-
};
|
|
1026
|
-
}
|
|
1027
|
-
function citePanelStyle(theme) {
|
|
1028
|
-
return {
|
|
1029
|
-
marginTop: "4px",
|
|
1030
|
-
padding: "8px 10px",
|
|
1031
|
-
fontSize: "12px",
|
|
1032
|
-
lineHeight: "1.5",
|
|
1033
|
-
backgroundColor: theme.surfaceColor,
|
|
1034
|
-
border: `1px solid ${theme.borderColor}`,
|
|
1035
|
-
borderRadius: "8px",
|
|
1036
|
-
maxWidth: "85%"
|
|
1037
|
-
};
|
|
1038
|
-
}
|
|
1039
|
-
function citePanelHeaderStyle(theme) {
|
|
1040
|
-
return {
|
|
1041
|
-
fontSize: "12px",
|
|
1042
|
-
fontWeight: 500,
|
|
1043
|
-
color: theme.textColor,
|
|
1044
|
-
marginBottom: "4px"
|
|
1045
|
-
};
|
|
1046
|
-
}
|
|
1047
|
-
function citeChunkStyle(theme) {
|
|
1048
|
-
return {
|
|
1049
|
-
fontSize: "11px",
|
|
1050
|
-
color: theme.mutedColor,
|
|
1051
|
-
borderLeft: `2px solid ${theme.borderColor}`,
|
|
1052
|
-
paddingLeft: "8px",
|
|
1053
|
-
marginTop: "4px",
|
|
1054
|
-
whiteSpace: "pre-wrap",
|
|
1055
|
-
wordBreak: "break-word"
|
|
1056
|
-
};
|
|
1057
|
-
}
|
|
1058
|
-
function ChatView({ workspaceId, theme, labels }) {
|
|
261
|
+
|
|
262
|
+
// src/chat/useArbiChat.ts
|
|
263
|
+
var counter = 0;
|
|
264
|
+
var nextId = (prefix) => `${prefix}-${Date.now().toString(36)}-${(counter++).toString(36)}`;
|
|
265
|
+
var emptyThread = () => ({
|
|
266
|
+
id: nextId("thread"),
|
|
267
|
+
title: "",
|
|
268
|
+
messages: [],
|
|
269
|
+
responseId: null
|
|
270
|
+
});
|
|
271
|
+
function titleFromQuestion(question, maxLength = 48) {
|
|
272
|
+
const flat = question.replace(/\s+/g, " ").trim();
|
|
273
|
+
if (flat.length <= maxLength) return flat;
|
|
274
|
+
const cut = flat.slice(0, maxLength);
|
|
275
|
+
const lastSpace = cut.lastIndexOf(" ");
|
|
276
|
+
const words = lastSpace > maxLength / 2 ? cut.slice(0, lastSpace) : cut;
|
|
277
|
+
return `${words.replace(/[\s,;:.\-–—]+$/, "")}\u2026`;
|
|
278
|
+
}
|
|
279
|
+
var messageOf = (e, fallback) => e instanceof Error ? e.message : fallback;
|
|
280
|
+
function useArbiChat(options = {}) {
|
|
281
|
+
const { workspaceId, model, titleLength = 48 } = options;
|
|
1059
282
|
const arbi = chunk7IOCMCC5_cjs.useArbi();
|
|
1060
|
-
const { data: docs,
|
|
1061
|
-
const
|
|
1062
|
-
const
|
|
1063
|
-
const [
|
|
1064
|
-
const [
|
|
1065
|
-
const [
|
|
1066
|
-
const [
|
|
1067
|
-
const [
|
|
1068
|
-
const [
|
|
1069
|
-
const
|
|
1070
|
-
const messagesEndRef = React.useRef(null);
|
|
1071
|
-
const fileInputRef = React.useRef(null);
|
|
283
|
+
const { data: docs = [], isLoading: isLoadingDocuments, refetch } = useDocuments(workspaceId);
|
|
284
|
+
const query = useAssistantQuery();
|
|
285
|
+
const { mutateAsync } = query;
|
|
286
|
+
const [threads, setThreads] = React.useState(() => [emptyThread()]);
|
|
287
|
+
const [activeId, setActiveId] = React.useState(() => threads[0].id);
|
|
288
|
+
const [deselected, setDeselected] = React.useState(/* @__PURE__ */ new Set());
|
|
289
|
+
const [isRunning, setIsRunning] = React.useState(false);
|
|
290
|
+
const [isUploading, setIsUploading] = React.useState(false);
|
|
291
|
+
const [uploadError, setUploadError] = React.useState(null);
|
|
292
|
+
const scopeRef = React.useRef(workspaceId);
|
|
1072
293
|
React.useEffect(() => {
|
|
1073
|
-
if (
|
|
1074
|
-
|
|
1075
|
-
|
|
1076
|
-
|
|
1077
|
-
|
|
1078
|
-
|
|
1079
|
-
|
|
1080
|
-
|
|
1081
|
-
|
|
1082
|
-
|
|
1083
|
-
)
|
|
1084
|
-
|
|
1085
|
-
const handleUpload = React.useCallback(
|
|
1086
|
-
async (e) => {
|
|
1087
|
-
const files = e.target.files;
|
|
1088
|
-
if (!files || files.length === 0) return;
|
|
1089
|
-
setUploading(true);
|
|
1090
|
-
try {
|
|
1091
|
-
const newIds = [];
|
|
1092
|
-
for (const file of Array.from(files)) {
|
|
1093
|
-
const result = await arbi.documents.uploadFile(file, file.name);
|
|
1094
|
-
if (result.doc_ext_ids) newIds.push(...result.doc_ext_ids);
|
|
1095
|
-
}
|
|
1096
|
-
await refetchDocs();
|
|
1097
|
-
setSelectedDocs((prev) => [...prev, ...newIds]);
|
|
1098
|
-
} catch {
|
|
1099
|
-
} finally {
|
|
1100
|
-
setUploading(false);
|
|
1101
|
-
if (fileInputRef.current) fileInputRef.current.value = "";
|
|
1102
|
-
}
|
|
1103
|
-
},
|
|
1104
|
-
[arbi, refetchDocs]
|
|
294
|
+
if (scopeRef.current === workspaceId) return;
|
|
295
|
+
scopeRef.current = workspaceId;
|
|
296
|
+
const fresh = emptyThread();
|
|
297
|
+
setThreads([fresh]);
|
|
298
|
+
setActiveId(fresh.id);
|
|
299
|
+
setDeselected(/* @__PURE__ */ new Set());
|
|
300
|
+
setUploadError(null);
|
|
301
|
+
}, [workspaceId]);
|
|
302
|
+
const active = threads.find((t) => t.id === activeId) ?? threads[0];
|
|
303
|
+
const selectedIds = React.useMemo(
|
|
304
|
+
() => docs.map((d) => d.external_id).filter((id) => !!id && !deselected.has(id)),
|
|
305
|
+
[docs, deselected]
|
|
1105
306
|
);
|
|
1106
|
-
const
|
|
1107
|
-
(
|
|
1108
|
-
|
|
1109
|
-
|
|
1110
|
-
|
|
1111
|
-
|
|
1112
|
-
|
|
1113
|
-
|
|
1114
|
-
|
|
1115
|
-
|
|
1116
|
-
|
|
1117
|
-
|
|
1118
|
-
|
|
1119
|
-
|
|
1120
|
-
|
|
307
|
+
const documents = React.useMemo(
|
|
308
|
+
() => docs.filter((d) => !!d.external_id).map((d) => ({
|
|
309
|
+
id: d.external_id,
|
|
310
|
+
name: d.file_name ?? d.external_id,
|
|
311
|
+
isSelected: !deselected.has(d.external_id)
|
|
312
|
+
})),
|
|
313
|
+
[docs, deselected]
|
|
314
|
+
);
|
|
315
|
+
const patchThread = React.useCallback(
|
|
316
|
+
(id, patch) => setThreads((all) => all.map((t) => t.id === id ? patch(t) : t)),
|
|
317
|
+
[]
|
|
318
|
+
);
|
|
319
|
+
const patchMessage = React.useCallback(
|
|
320
|
+
(threadId, messageId, patch) => patchThread(threadId, (t) => ({
|
|
321
|
+
...t,
|
|
322
|
+
messages: t.messages.map((m) => m.id === messageId ? { ...m, ...patch } : m)
|
|
323
|
+
})),
|
|
324
|
+
[patchThread]
|
|
325
|
+
);
|
|
326
|
+
const ask = React.useCallback(
|
|
327
|
+
async (thread, text) => {
|
|
328
|
+
const userMessage = {
|
|
329
|
+
id: nextId("msg"),
|
|
330
|
+
role: "user",
|
|
331
|
+
content: text,
|
|
332
|
+
status: "complete"
|
|
333
|
+
};
|
|
334
|
+
const answer = {
|
|
335
|
+
id: nextId("msg"),
|
|
336
|
+
role: "assistant",
|
|
337
|
+
content: "",
|
|
338
|
+
status: "streaming"
|
|
339
|
+
};
|
|
340
|
+
patchThread(thread.id, (t) => ({
|
|
341
|
+
...t,
|
|
342
|
+
title: t.title || titleFromQuestion(text, titleLength),
|
|
343
|
+
messages: [...t.messages, userMessage, answer]
|
|
344
|
+
}));
|
|
345
|
+
setIsRunning(true);
|
|
346
|
+
let buffer = "";
|
|
347
|
+
let steps = 0;
|
|
348
|
+
let streamError = null;
|
|
349
|
+
try {
|
|
350
|
+
const result = await mutateAsync({
|
|
351
|
+
question: text,
|
|
352
|
+
docIds: selectedIds,
|
|
353
|
+
previousResponseId: thread.responseId,
|
|
354
|
+
model,
|
|
355
|
+
onToken: (token) => {
|
|
356
|
+
buffer += token;
|
|
357
|
+
patchMessage(thread.id, answer.id, { content: buffer });
|
|
358
|
+
},
|
|
1121
359
|
onOutputItemDone: (ev) => {
|
|
1122
|
-
const
|
|
1123
|
-
if (
|
|
1124
|
-
|
|
360
|
+
const type = ev.item.type;
|
|
361
|
+
if (type === "function_call" || type === "reasoning") {
|
|
362
|
+
steps += 1;
|
|
363
|
+
patchMessage(thread.id, answer.id, { stepCount: steps });
|
|
1125
364
|
}
|
|
1126
|
-
}
|
|
1127
|
-
},
|
|
1128
|
-
{
|
|
1129
|
-
onSuccess: (result) => {
|
|
1130
|
-
setStreaming("");
|
|
1131
|
-
setAgentStatus("");
|
|
1132
|
-
setMessages((prev) => [
|
|
1133
|
-
...prev,
|
|
1134
|
-
{ role: "assistant", text: result.text, metadata: result.metadata }
|
|
1135
|
-
]);
|
|
1136
|
-
setPreviousResponseId(result.assistantMessageExtId);
|
|
1137
365
|
},
|
|
1138
|
-
onError: (
|
|
1139
|
-
|
|
1140
|
-
setAgentStatus("");
|
|
1141
|
-
setMessages((prev) => [...prev, { role: "assistant", text: `Error: ${err.message}` }]);
|
|
366
|
+
onError: (message) => {
|
|
367
|
+
streamError = message;
|
|
1142
368
|
}
|
|
369
|
+
});
|
|
370
|
+
const finalText = result.text || buffer;
|
|
371
|
+
const failure = streamError || result.errors[0] || null;
|
|
372
|
+
if (failure && !finalText) {
|
|
373
|
+
patchMessage(thread.id, answer.id, { status: "error", error: failure });
|
|
374
|
+
} else {
|
|
375
|
+
patchMessage(thread.id, answer.id, {
|
|
376
|
+
status: "complete",
|
|
377
|
+
content: finalText,
|
|
378
|
+
stepCount: result.agentSteps.length || steps || void 0
|
|
379
|
+
});
|
|
380
|
+
patchThread(thread.id, (t) => ({
|
|
381
|
+
...t,
|
|
382
|
+
responseId: result.assistantMessageExtId ?? t.responseId
|
|
383
|
+
}));
|
|
1143
384
|
}
|
|
1144
|
-
)
|
|
385
|
+
} catch (e) {
|
|
386
|
+
patchMessage(thread.id, answer.id, {
|
|
387
|
+
status: "error",
|
|
388
|
+
error: messageOf(e, "The assistant request failed.")
|
|
389
|
+
});
|
|
390
|
+
} finally {
|
|
391
|
+
setIsRunning(false);
|
|
392
|
+
}
|
|
1145
393
|
},
|
|
1146
|
-
[
|
|
394
|
+
[mutateAsync, patchMessage, patchThread, selectedIds, model, titleLength]
|
|
1147
395
|
);
|
|
1148
|
-
const
|
|
1149
|
-
|
|
1150
|
-
|
|
1151
|
-
|
|
1152
|
-
|
|
1153
|
-
|
|
1154
|
-
|
|
1155
|
-
type: "file",
|
|
1156
|
-
multiple: true,
|
|
1157
|
-
accept: ".pdf,.txt,.md,.html,.doc,.docx,.rtf,.ppt,.pptx,.xls,.xlsx",
|
|
1158
|
-
onChange: handleUpload,
|
|
1159
|
-
style: fileInputStyle()
|
|
1160
|
-
}
|
|
1161
|
-
),
|
|
1162
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { style: docSelectorStyle(theme), children: [
|
|
1163
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { style: { display: "flex", alignItems: "center", justifyContent: "space-between" }, children: [
|
|
1164
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
1165
|
-
"button",
|
|
1166
|
-
{
|
|
1167
|
-
type: "button",
|
|
1168
|
-
onClick: () => setDocsExpanded((prev) => !prev),
|
|
1169
|
-
style: docToggleStyle(theme),
|
|
1170
|
-
children: [
|
|
1171
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { style: { fontSize: "10px" }, children: docsExpanded ? "\u25BC" : "\u25B6" }),
|
|
1172
|
-
labels.documents,
|
|
1173
|
-
" (",
|
|
1174
|
-
selectedDocs.length,
|
|
1175
|
-
"/",
|
|
1176
|
-
docs?.length ?? 0,
|
|
1177
|
-
" in chat)"
|
|
1178
|
-
]
|
|
1179
|
-
}
|
|
1180
|
-
),
|
|
1181
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1182
|
-
"button",
|
|
1183
|
-
{
|
|
1184
|
-
type: "button",
|
|
1185
|
-
onClick: () => fileInputRef.current?.click(),
|
|
1186
|
-
disabled: uploading,
|
|
1187
|
-
style: secondaryButtonStyle(theme, uploading),
|
|
1188
|
-
children: uploading ? labels.uploading : labels.uploadButton
|
|
1189
|
-
}
|
|
1190
|
-
)
|
|
1191
|
-
] }),
|
|
1192
|
-
docsExpanded && docs && docs.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { style: docListStyle(), children: docs.map((doc) => /* @__PURE__ */ jsxRuntime.jsxs("label", { style: docItemStyle(theme), children: [
|
|
1193
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1194
|
-
"input",
|
|
1195
|
-
{
|
|
1196
|
-
type: "checkbox",
|
|
1197
|
-
checked: selectedDocs.includes(doc.external_id),
|
|
1198
|
-
onChange: () => toggleDoc(doc.external_id)
|
|
1199
|
-
}
|
|
1200
|
-
),
|
|
1201
|
-
doc.file_name
|
|
1202
|
-
] }, doc.external_id)) })
|
|
1203
|
-
] }),
|
|
1204
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { style: messagesContainerStyle(), children: [
|
|
1205
|
-
messages.length === 0 && !streaming && /* @__PURE__ */ jsxRuntime.jsx("div", { style: emptyStateStyle(theme), children: noDocs ? labels.emptyNoDocs : noDocsSelected ? labels.emptyNoSelection : labels.emptyReady }),
|
|
1206
|
-
messages.map((msg, i) => /* @__PURE__ */ jsxRuntime.jsx(MessageBubble, { message: msg, theme }, i)),
|
|
1207
|
-
agentStatus && !streaming && /* @__PURE__ */ jsxRuntime.jsxs("div", { style: agentStatusStyle(theme), children: [
|
|
1208
|
-
agentStatus,
|
|
1209
|
-
"..."
|
|
1210
|
-
] }),
|
|
1211
|
-
streaming && /* @__PURE__ */ jsxRuntime.jsx(MessageBubble, { message: { role: "assistant", text: streaming }, theme }),
|
|
1212
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { ref: messagesEndRef })
|
|
1213
|
-
] }),
|
|
1214
|
-
/* @__PURE__ */ jsxRuntime.jsxs("form", { onSubmit: handleSubmit, style: inputBarStyle(theme), children: [
|
|
1215
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1216
|
-
"input",
|
|
1217
|
-
{
|
|
1218
|
-
type: "text",
|
|
1219
|
-
value: input,
|
|
1220
|
-
onChange: (e) => setInput(e.target.value),
|
|
1221
|
-
placeholder: noDocs || noDocsSelected ? "Select documents first..." : labels.placeholder,
|
|
1222
|
-
disabled: noDocs || noDocsSelected || mutation.isPending,
|
|
1223
|
-
style: chatInputStyle(theme)
|
|
1224
|
-
}
|
|
1225
|
-
),
|
|
1226
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1227
|
-
"button",
|
|
1228
|
-
{
|
|
1229
|
-
type: "submit",
|
|
1230
|
-
disabled: !input.trim() || noDocsSelected || mutation.isPending,
|
|
1231
|
-
style: sendButtonStyle(theme, !input.trim() || noDocsSelected || mutation.isPending),
|
|
1232
|
-
children: mutation.isPending ? "..." : labels.sendButton
|
|
1233
|
-
}
|
|
1234
|
-
)
|
|
1235
|
-
] })
|
|
1236
|
-
] });
|
|
1237
|
-
}
|
|
1238
|
-
function ChatWidget({ theme, labels, initialWorkspaceId, width, height }) {
|
|
1239
|
-
const arbi = chunk7IOCMCC5_cjs.useArbi();
|
|
1240
|
-
const [screen, setScreen] = React.useState("auth");
|
|
1241
|
-
const [workspaceId, setWorkspaceId] = React.useState(initialWorkspaceId);
|
|
1242
|
-
const resolveWorkspace = React.useCallback(async () => {
|
|
1243
|
-
if (initialWorkspaceId) {
|
|
1244
|
-
try {
|
|
1245
|
-
await arbi.selectWorkspace(initialWorkspaceId);
|
|
1246
|
-
setScreen("chat");
|
|
1247
|
-
return;
|
|
1248
|
-
} catch {
|
|
1249
|
-
setScreen("workspace");
|
|
1250
|
-
return;
|
|
1251
|
-
}
|
|
1252
|
-
}
|
|
1253
|
-
setScreen("workspace");
|
|
1254
|
-
}, [arbi, initialWorkspaceId]);
|
|
1255
|
-
const handleLogin = React.useCallback(() => resolveWorkspace(), [resolveWorkspace]);
|
|
1256
|
-
React.useEffect(() => {
|
|
1257
|
-
if (arbi.isLoggedIn) void resolveWorkspace();
|
|
1258
|
-
}, [arbi, resolveWorkspace]);
|
|
1259
|
-
const handleWorkspaceSelect = React.useCallback((id) => {
|
|
1260
|
-
setWorkspaceId(id);
|
|
1261
|
-
setScreen("chat");
|
|
1262
|
-
}, []);
|
|
1263
|
-
const handleChangeWorkspace = React.useCallback(() => {
|
|
1264
|
-
setScreen("workspace");
|
|
1265
|
-
}, []);
|
|
1266
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { style: containerStyle(theme, width, height), children: [
|
|
1267
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { style: { ...headerStyle(theme), justifyContent: "space-between" }, children: [
|
|
1268
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { children: labels.title }),
|
|
1269
|
-
screen === "chat" && !initialWorkspaceId && /* @__PURE__ */ jsxRuntime.jsx("button", { type: "button", onClick: handleChangeWorkspace, style: linkButtonStyle(theme), children: labels.changeWorkspace })
|
|
1270
|
-
] }),
|
|
1271
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { style: bodyStyle(), children: [
|
|
1272
|
-
screen === "auth" && /* @__PURE__ */ jsxRuntime.jsx(AuthScreen, { theme, labels, onLogin: handleLogin }),
|
|
1273
|
-
screen === "workspace" && /* @__PURE__ */ jsxRuntime.jsx(WorkspaceScreen, { theme, labels, onSelect: handleWorkspaceSelect }),
|
|
1274
|
-
screen === "chat" && workspaceId && /* @__PURE__ */ jsxRuntime.jsx(ChatView, { workspaceId, theme, labels })
|
|
1275
|
-
] }),
|
|
1276
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { style: brandingStyle(theme), children: [
|
|
1277
|
-
"Powered by",
|
|
1278
|
-
" ",
|
|
1279
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1280
|
-
"a",
|
|
1281
|
-
{
|
|
1282
|
-
href: "https://www.arbidocs.com",
|
|
1283
|
-
target: "_blank",
|
|
1284
|
-
rel: "noopener noreferrer",
|
|
1285
|
-
style: brandingLinkStyle(theme),
|
|
1286
|
-
children: "ARBI"
|
|
1287
|
-
}
|
|
1288
|
-
)
|
|
1289
|
-
] })
|
|
1290
|
-
] });
|
|
1291
|
-
}
|
|
1292
|
-
function ArbiChatPanel({
|
|
1293
|
-
workspaceId,
|
|
1294
|
-
theme: themeOverrides,
|
|
1295
|
-
labels: labelOverrides,
|
|
1296
|
-
width = "100%",
|
|
1297
|
-
height = "100%"
|
|
1298
|
-
}) {
|
|
1299
|
-
const theme = React.useMemo(() => getTheme(themeOverrides), [themeOverrides]);
|
|
1300
|
-
const labels = React.useMemo(() => getLabels(labelOverrides), [labelOverrides]);
|
|
1301
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1302
|
-
ChatWidget,
|
|
1303
|
-
{
|
|
1304
|
-
theme,
|
|
1305
|
-
labels,
|
|
1306
|
-
initialWorkspaceId: workspaceId,
|
|
1307
|
-
width,
|
|
1308
|
-
height
|
|
1309
|
-
}
|
|
396
|
+
const send = React.useCallback(
|
|
397
|
+
async (text) => {
|
|
398
|
+
const trimmed = text.trim();
|
|
399
|
+
if (!trimmed || isRunning) return;
|
|
400
|
+
await ask(active, trimmed);
|
|
401
|
+
},
|
|
402
|
+
[active, ask, isRunning]
|
|
1310
403
|
);
|
|
1311
|
-
|
|
1312
|
-
|
|
1313
|
-
|
|
1314
|
-
|
|
1315
|
-
|
|
1316
|
-
|
|
1317
|
-
|
|
1318
|
-
|
|
1319
|
-
|
|
1320
|
-
|
|
1321
|
-
(
|
|
1322
|
-
|
|
1323
|
-
|
|
1324
|
-
|
|
404
|
+
const lastMessage = active.messages[active.messages.length - 1];
|
|
405
|
+
const error = lastMessage?.status === "error" ? lastMessage.error ?? null : null;
|
|
406
|
+
const retry = React.useCallback(async () => {
|
|
407
|
+
if (isRunning) return;
|
|
408
|
+
const messages = active.messages;
|
|
409
|
+
const failed = messages[messages.length - 1];
|
|
410
|
+
const question = messages[messages.length - 2];
|
|
411
|
+
if (failed?.status !== "error" || question?.role !== "user") return;
|
|
412
|
+
const trimmed = { ...active, messages: messages.slice(0, -2) };
|
|
413
|
+
patchThread(active.id, () => trimmed);
|
|
414
|
+
await ask(trimmed, question.content);
|
|
415
|
+
}, [active, ask, isRunning, patchThread]);
|
|
416
|
+
const newThread = React.useCallback(() => {
|
|
417
|
+
if (active.messages.length === 0) return;
|
|
418
|
+
const fresh = emptyThread();
|
|
419
|
+
setThreads((all) => [fresh, ...all]);
|
|
420
|
+
setActiveId(fresh.id);
|
|
421
|
+
}, [active.messages.length]);
|
|
422
|
+
const deleteThread = React.useCallback(
|
|
423
|
+
(id) => {
|
|
424
|
+
const rest = threads.filter((t) => t.id !== id);
|
|
425
|
+
const next = rest.length > 0 ? rest : [emptyThread()];
|
|
426
|
+
setThreads(next);
|
|
427
|
+
if (id === activeId) setActiveId(next[0].id);
|
|
428
|
+
},
|
|
429
|
+
[threads, activeId]
|
|
430
|
+
);
|
|
431
|
+
const toggleDocument = React.useCallback((id) => {
|
|
432
|
+
setDeselected((prev) => {
|
|
433
|
+
const next = new Set(prev);
|
|
434
|
+
if (next.has(id)) next.delete(id);
|
|
435
|
+
else next.add(id);
|
|
436
|
+
return next;
|
|
437
|
+
});
|
|
438
|
+
}, []);
|
|
439
|
+
const selectAllDocuments = React.useCallback(() => setDeselected(/* @__PURE__ */ new Set()), []);
|
|
440
|
+
const upload = React.useCallback(
|
|
441
|
+
async (files) => {
|
|
442
|
+
if (files.length === 0) return;
|
|
443
|
+
setIsUploading(true);
|
|
444
|
+
setUploadError(null);
|
|
445
|
+
try {
|
|
446
|
+
for (const file of files) await arbi.documents.uploadFile(file, file.name);
|
|
447
|
+
await refetch();
|
|
448
|
+
} catch (e) {
|
|
449
|
+
setUploadError(messageOf(e, "The upload failed."));
|
|
450
|
+
} finally {
|
|
451
|
+
setIsUploading(false);
|
|
1325
452
|
}
|
|
1326
|
-
}
|
|
1327
|
-
[]
|
|
453
|
+
},
|
|
454
|
+
[arbi, refetch]
|
|
1328
455
|
);
|
|
1329
|
-
return
|
|
1330
|
-
|
|
1331
|
-
|
|
1332
|
-
|
|
1333
|
-
|
|
1334
|
-
|
|
1335
|
-
|
|
1336
|
-
|
|
1337
|
-
|
|
1338
|
-
|
|
456
|
+
return {
|
|
457
|
+
threads: threads.map(({ id, title }) => ({ id, title })),
|
|
458
|
+
activeThreadId: active.id,
|
|
459
|
+
messages: active.messages,
|
|
460
|
+
isRunning,
|
|
461
|
+
error,
|
|
462
|
+
documents,
|
|
463
|
+
isLoadingDocuments,
|
|
464
|
+
isUploading,
|
|
465
|
+
uploadError,
|
|
466
|
+
send,
|
|
467
|
+
retry,
|
|
468
|
+
selectThread: setActiveId,
|
|
469
|
+
newThread,
|
|
470
|
+
deleteThread,
|
|
471
|
+
toggleDocument,
|
|
472
|
+
selectAllDocuments,
|
|
473
|
+
upload
|
|
474
|
+
};
|
|
1339
475
|
}
|
|
1340
476
|
var TypingIndicator = React.memo(function TypingIndicator2() {
|
|
1341
477
|
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex w-full justify-start mb-2", "data-testid": "dm-typing-indicator", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "bg-card border border-primary rounded-2xl rounded-bl-md px-4 py-2.5", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex gap-1 items-center", children: [
|
|
@@ -1618,6 +754,144 @@ function useArbiDocumentSync(workspaceId) {
|
|
|
1618
754
|
}
|
|
1619
755
|
});
|
|
1620
756
|
}
|
|
757
|
+
|
|
758
|
+
// src/workspaces/shell-workspaces.ts
|
|
759
|
+
function getWorkspaceKind(workspace) {
|
|
760
|
+
if (workspace.is_public) return "common";
|
|
761
|
+
if ((workspace.users?.length ?? 0) > 1) return "shared";
|
|
762
|
+
return "private";
|
|
763
|
+
}
|
|
764
|
+
function memberName(user) {
|
|
765
|
+
const full = [user?.given_name, user?.family_name].filter(Boolean).join(" ").trim();
|
|
766
|
+
return full || user?.email || "";
|
|
767
|
+
}
|
|
768
|
+
function toShellWorkspace(workspace) {
|
|
769
|
+
const people = (workspace.users ?? []).filter((u) => !u.agent_ext_id);
|
|
770
|
+
return {
|
|
771
|
+
id: workspace.external_id,
|
|
772
|
+
name: workspace.name,
|
|
773
|
+
kind: getWorkspaceKind(workspace),
|
|
774
|
+
description: workspace.description,
|
|
775
|
+
projectName: workspace.project_name,
|
|
776
|
+
docCount: (workspace.shared_document_count ?? 0) + (workspace.private_document_count ?? 0),
|
|
777
|
+
memberCount: people.length,
|
|
778
|
+
members: people.map((u) => ({ name: memberName(u.user), picture: u.user?.picture })),
|
|
779
|
+
updatedAt: workspace.updated_at
|
|
780
|
+
};
|
|
781
|
+
}
|
|
782
|
+
function recency(workspace, lastOpened) {
|
|
783
|
+
const opened = lastOpened?.[workspace.id];
|
|
784
|
+
if (opened !== void 0) return opened;
|
|
785
|
+
const updated = Date.parse(workspace.updatedAt ?? "");
|
|
786
|
+
return Number.isNaN(updated) ? 0 : updated;
|
|
787
|
+
}
|
|
788
|
+
function resolveActiveWorkspace(items, selectedId, options = {}) {
|
|
789
|
+
const selected = selectedId ? items.find((w) => w.id === selectedId) : void 0;
|
|
790
|
+
if (selected) return selected;
|
|
791
|
+
if (options.isSeed && options.seedActiveId) {
|
|
792
|
+
const seeded = items.find((w) => w.id === options.seedActiveId);
|
|
793
|
+
if (seeded) return seeded;
|
|
794
|
+
}
|
|
795
|
+
return items[0];
|
|
796
|
+
}
|
|
797
|
+
function pickRecentWorkspaces(items, activeId, options = {}) {
|
|
798
|
+
const { limit = 4, lastOpened, formatLastSeen } = options;
|
|
799
|
+
return items.filter((w) => w.id !== activeId).map((w) => ({ w, at: recency(w, lastOpened) })).sort((a, b) => b.at - a.at).slice(0, limit).map(({ w, at }) => formatLastSeen ? { ...w, lastSeen: formatLastSeen(at) } : w);
|
|
800
|
+
}
|
|
801
|
+
|
|
802
|
+
// src/workspaces/useShellWorkspaces.ts
|
|
803
|
+
function useShellWorkspaces(options) {
|
|
804
|
+
const {
|
|
805
|
+
workspaces,
|
|
806
|
+
isLoading = false,
|
|
807
|
+
loadError,
|
|
808
|
+
selectedId,
|
|
809
|
+
seed,
|
|
810
|
+
decorate,
|
|
811
|
+
recentLimit,
|
|
812
|
+
lastOpened,
|
|
813
|
+
formatLastSeen
|
|
814
|
+
} = options;
|
|
815
|
+
const live = React.useMemo(
|
|
816
|
+
() => (workspaces ?? []).map((source) => {
|
|
817
|
+
const item = toShellWorkspace(source);
|
|
818
|
+
return decorate ? { ...item, ...decorate(item, source) } : item;
|
|
819
|
+
}),
|
|
820
|
+
[workspaces, decorate]
|
|
821
|
+
);
|
|
822
|
+
const isLive = live.length > 0;
|
|
823
|
+
const isSeed = !isLive && !isLoading && !!seed;
|
|
824
|
+
const items = React.useMemo(
|
|
825
|
+
() => isLive ? live : isSeed ? [...seed.workspaces] : [],
|
|
826
|
+
[isLive, live, isSeed, seed]
|
|
827
|
+
);
|
|
828
|
+
const active = React.useMemo(
|
|
829
|
+
() => resolveActiveWorkspace(items, selectedId, { isSeed, seedActiveId: seed?.activeId }),
|
|
830
|
+
[items, selectedId, isSeed, seed?.activeId]
|
|
831
|
+
);
|
|
832
|
+
const recent = React.useMemo(
|
|
833
|
+
() => pickRecentWorkspaces(items, active?.id, { limit: recentLimit, lastOpened, formatLastSeen }),
|
|
834
|
+
[items, active?.id, recentLimit, lastOpened, formatLastSeen]
|
|
835
|
+
);
|
|
836
|
+
const [openingId, setOpeningId] = React.useState(null);
|
|
837
|
+
const [openError, setOpenError] = React.useState(void 0);
|
|
838
|
+
const callbacks = React.useRef({
|
|
839
|
+
select: options.select,
|
|
840
|
+
onOpened: options.onOpened,
|
|
841
|
+
onOpenError: options.onOpenError
|
|
842
|
+
});
|
|
843
|
+
callbacks.current = {
|
|
844
|
+
select: options.select,
|
|
845
|
+
onOpened: options.onOpened,
|
|
846
|
+
onOpenError: options.onOpenError
|
|
847
|
+
};
|
|
848
|
+
const itemsRef = React.useRef(items);
|
|
849
|
+
itemsRef.current = items;
|
|
850
|
+
const open = React.useCallback(async (target) => {
|
|
851
|
+
const id = typeof target === "string" ? target : target.id;
|
|
852
|
+
const workspace = itemsRef.current.find((w) => w.id === id);
|
|
853
|
+
if (!workspace) return false;
|
|
854
|
+
setOpenError(void 0);
|
|
855
|
+
setOpeningId(id);
|
|
856
|
+
try {
|
|
857
|
+
await callbacks.current.select(workspace);
|
|
858
|
+
} catch (err) {
|
|
859
|
+
setOpenError(err);
|
|
860
|
+
setOpeningId(null);
|
|
861
|
+
callbacks.current.onOpenError?.(err, workspace);
|
|
862
|
+
return false;
|
|
863
|
+
}
|
|
864
|
+
setOpeningId(null);
|
|
865
|
+
callbacks.current.onOpened?.(workspace);
|
|
866
|
+
return true;
|
|
867
|
+
}, []);
|
|
868
|
+
return {
|
|
869
|
+
items,
|
|
870
|
+
active,
|
|
871
|
+
recent,
|
|
872
|
+
isLive,
|
|
873
|
+
isLoading,
|
|
874
|
+
error: openError ?? loadError ?? null,
|
|
875
|
+
openingId,
|
|
876
|
+
open
|
|
877
|
+
};
|
|
878
|
+
}
|
|
879
|
+
function useArbiShellWorkspaces(options = {}) {
|
|
880
|
+
const arbi = chunk7IOCMCC5_cjs.useArbi();
|
|
881
|
+
const query = useWorkspaces();
|
|
882
|
+
const { select, ...rest } = options;
|
|
883
|
+
const defaultSelect = React.useCallback(
|
|
884
|
+
(workspace) => arbi.selectWorkspace(workspace.id),
|
|
885
|
+
[arbi]
|
|
886
|
+
);
|
|
887
|
+
return useShellWorkspaces({
|
|
888
|
+
...rest,
|
|
889
|
+
workspaces: Array.isArray(query.data) ? query.data : void 0,
|
|
890
|
+
isLoading: query.isLoading,
|
|
891
|
+
loadError: query.error,
|
|
892
|
+
select: select ?? defaultSelect
|
|
893
|
+
});
|
|
894
|
+
}
|
|
1621
895
|
function useWorkspaceDocs(workspaceId) {
|
|
1622
896
|
const { data: docs = [], isLoading, isError } = useDocuments(workspaceId);
|
|
1623
897
|
const docIds = React.useMemo(
|
|
@@ -1840,7 +1114,7 @@ function AiAnswer({
|
|
|
1840
1114
|
}
|
|
1841
1115
|
),
|
|
1842
1116
|
hasText && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
1843
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1117
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkORKGCXG3_cjs.AiMarkdown, { isStreaming: running, children: text }),
|
|
1844
1118
|
!running && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between border-t border-border pt-2.5", children: [
|
|
1845
1119
|
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "inline-flex items-center gap-1.5 text-xs text-muted-foreground", children: [
|
|
1846
1120
|
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.ShieldCheck, { className: "size-3.5 text-ai-accent" }),
|
|
@@ -1885,7 +1159,7 @@ function AiActionCard({
|
|
|
1885
1159
|
const p = typeof prompt === "function" ? prompt() : prompt;
|
|
1886
1160
|
void task.run(p, docIds);
|
|
1887
1161
|
};
|
|
1888
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1162
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(chunkORKGCXG3_cjs.Card, { variant: "elevated", className: "rounded-xl p-5", "data-testid": testId, children: [
|
|
1889
1163
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start justify-between gap-4", children: [
|
|
1890
1164
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start gap-3", children: [
|
|
1891
1165
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex size-9 shrink-0 items-center justify-center rounded-lg bg-ai-accent-soft text-ai-accent", children: /* @__PURE__ */ jsxRuntime.jsx(Icon, { className: "size-4" }) }),
|
|
@@ -1895,7 +1169,7 @@ function AiActionCard({
|
|
|
1895
1169
|
] })
|
|
1896
1170
|
] }),
|
|
1897
1171
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
1898
|
-
|
|
1172
|
+
chunkORKGCXG3_cjs.Button,
|
|
1899
1173
|
{
|
|
1900
1174
|
variant: task.isDone ? "outline" : "accent",
|
|
1901
1175
|
size: "sm",
|
|
@@ -2027,11 +1301,11 @@ function ArtifactCanvas({
|
|
|
2027
1301
|
children: active.title
|
|
2028
1302
|
}
|
|
2029
1303
|
),
|
|
2030
|
-
isRedline && /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1304
|
+
isRedline && /* @__PURE__ */ jsxRuntime.jsxs(chunkORKGCXG3_cjs.Badge, { variant: "accent", className: "gap-1", children: [
|
|
2031
1305
|
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.GitCompareArrows, { className: "size-3" }),
|
|
2032
1306
|
" Redline"
|
|
2033
1307
|
] }),
|
|
2034
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
1308
|
+
/* @__PURE__ */ jsxRuntime.jsxs(chunkORKGCXG3_cjs.Badge, { variant: "secondary", children: [
|
|
2035
1309
|
"v",
|
|
2036
1310
|
active.version
|
|
2037
1311
|
] }),
|
|
@@ -2087,7 +1361,7 @@ function ArtifactCanvas({
|
|
|
2087
1361
|
animate: { opacity: 1, y: 0 },
|
|
2088
1362
|
transition: { duration: 0.2 },
|
|
2089
1363
|
className: "mx-auto max-w-2xl rounded-lg bg-card p-8 shadow-sm ring-1 ring-border",
|
|
2090
|
-
children: active.mode === "html" ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-sm", dangerouslySetInnerHTML: { __html: active.content } }) : active.mode === "text" ? /* @__PURE__ */ jsxRuntime.jsx("pre", { className: "whitespace-pre-wrap font-mono text-xs text-foreground", children: active.content }) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
1364
|
+
children: active.mode === "html" ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-sm", dangerouslySetInnerHTML: { __html: active.content } }) : active.mode === "text" ? /* @__PURE__ */ jsxRuntime.jsx("pre", { className: "whitespace-pre-wrap font-mono text-xs text-foreground", children: active.content }) : /* @__PURE__ */ jsxRuntime.jsx(chunkORKGCXG3_cjs.AiMarkdown, { children: active.content })
|
|
2091
1365
|
},
|
|
2092
1366
|
active.doc_ext_id
|
|
2093
1367
|
) }) })
|
|
@@ -2104,7 +1378,7 @@ function MessageArtifactCard({
|
|
|
2104
1378
|
const Icon = isImage ? lucideReact.Image : lucideReact.FileText;
|
|
2105
1379
|
const statusText = isImage ? isComplete ? "Image ready" : "Generating\u2026" : isComplete ? "Draft ready" : "Drafting\u2026";
|
|
2106
1380
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2107
|
-
|
|
1381
|
+
chunkORKGCXG3_cjs.Card,
|
|
2108
1382
|
{
|
|
2109
1383
|
variant: "outline",
|
|
2110
1384
|
className: "mt-3 flex items-center gap-3 px-3 py-2.5",
|
|
@@ -2180,7 +1454,7 @@ function DocSearch({
|
|
|
2180
1454
|
status === "done" && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-2", "data-testid": "doc-search-results", children: [
|
|
2181
1455
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-muted-foreground", children: results.length === 0 ? `No passages matched \u201C${query}\u201D.` : `${results.length} passage${results.length === 1 ? "" : "s"} for \u201C${query}\u201D` }),
|
|
2182
1456
|
results.slice(0, 8).map((r, i) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2183
|
-
|
|
1457
|
+
chunkORKGCXG3_cjs.Card,
|
|
2184
1458
|
{
|
|
2185
1459
|
variant: "elevated",
|
|
2186
1460
|
className: chunkRZQACYNQ_cjs.cn(
|
|
@@ -2193,7 +1467,7 @@ function DocSearch({
|
|
|
2193
1467
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-1 flex items-center gap-2", children: [
|
|
2194
1468
|
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.FileText, { className: "size-3.5 text-ai-accent" }),
|
|
2195
1469
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "truncate text-xs font-medium text-foreground", children: r.docTitle ?? "Document" }),
|
|
2196
|
-
r.page != null && /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1470
|
+
r.page != null && /* @__PURE__ */ jsxRuntime.jsxs(chunkORKGCXG3_cjs.Badge, { variant: "secondary", children: [
|
|
2197
1471
|
"p.",
|
|
2198
1472
|
r.page
|
|
2199
1473
|
] }),
|
|
@@ -2287,7 +1561,7 @@ function DocumentReview({
|
|
|
2287
1561
|
findings.length ? ` \xB7 ${findings.length} findings` : ""
|
|
2288
1562
|
] })
|
|
2289
1563
|
] }),
|
|
2290
|
-
doc?.status ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
1564
|
+
doc?.status ? /* @__PURE__ */ jsxRuntime.jsx(chunkORKGCXG3_cjs.Badge, { variant: "secondary", children: doc.status }) : null,
|
|
2291
1565
|
onClose ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
2292
1566
|
"button",
|
|
2293
1567
|
{
|
|
@@ -2324,7 +1598,7 @@ function DocumentReview({
|
|
|
2324
1598
|
className: "w-full cursor-pointer rounded-md border p-2 text-left text-xs transition hover:border-ring hover:bg-muted/50 focus:outline-none focus-visible:ring-2 focus-visible:ring-ring",
|
|
2325
1599
|
children: [
|
|
2326
1600
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2327
|
-
|
|
1601
|
+
chunkORKGCXG3_cjs.TagEntity,
|
|
2328
1602
|
{
|
|
2329
1603
|
size: "sm",
|
|
2330
1604
|
tag: {
|
|
@@ -2369,7 +1643,7 @@ function DocumentReview({
|
|
|
2369
1643
|
),
|
|
2370
1644
|
children: [
|
|
2371
1645
|
highlighted ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-1", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
2372
|
-
|
|
1646
|
+
chunkORKGCXG3_cjs.TagEntity,
|
|
2373
1647
|
{
|
|
2374
1648
|
size: "sm",
|
|
2375
1649
|
tag: {
|
|
@@ -2378,7 +1652,7 @@ function DocumentReview({
|
|
|
2378
1652
|
}
|
|
2379
1653
|
}
|
|
2380
1654
|
) }) : null,
|
|
2381
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1655
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkORKGCXG3_cjs.MarkdownRenderer, { className: "prose prose-sm max-w-none dark:prose-invert", children: c.content })
|
|
2382
1656
|
]
|
|
2383
1657
|
},
|
|
2384
1658
|
cid ?? i
|
|
@@ -2418,7 +1692,7 @@ function ResultRow({
|
|
|
2418
1692
|
onSelect
|
|
2419
1693
|
}) {
|
|
2420
1694
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
2421
|
-
|
|
1695
|
+
chunkORKGCXG3_cjs.PassageCard,
|
|
2422
1696
|
{
|
|
2423
1697
|
onClick: onSelect,
|
|
2424
1698
|
active: isActive,
|
|
@@ -2427,7 +1701,7 @@ function ResultRow({
|
|
|
2427
1701
|
header: /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
2428
1702
|
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.FileText, { className: "size-3.5 shrink-0 text-ai-accent" }),
|
|
2429
1703
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "truncate text-xs font-medium text-foreground", children: result.docTitle ?? "Document" }),
|
|
2430
|
-
result.page != null && /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1704
|
+
result.page != null && /* @__PURE__ */ jsxRuntime.jsxs(chunkORKGCXG3_cjs.Badge, { variant: "secondary", children: [
|
|
2431
1705
|
"p.",
|
|
2432
1706
|
result.page
|
|
2433
1707
|
] })
|
|
@@ -2537,7 +1811,7 @@ function SemanticSearch({
|
|
|
2537
1811
|
"data-testid": "arbi-semantic-search-viewer",
|
|
2538
1812
|
children: selected && selected.docId ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex h-full min-h-0 flex-col gap-2", children: [
|
|
2539
1813
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
2540
|
-
|
|
1814
|
+
chunkORKGCXG3_cjs.Button,
|
|
2541
1815
|
{
|
|
2542
1816
|
variant: "ghost",
|
|
2543
1817
|
size: "sm",
|
|
@@ -2596,7 +1870,7 @@ Question: ${question}`,
|
|
|
2596
1870
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0 space-y-3", "data-testid": "doc-qa", children: [
|
|
2597
1871
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex min-w-0 items-center gap-2", children: [
|
|
2598
1872
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2599
|
-
|
|
1873
|
+
chunkORKGCXG3_cjs.Input,
|
|
2600
1874
|
{
|
|
2601
1875
|
value: q,
|
|
2602
1876
|
onChange: (e) => setQ(e.target.value),
|
|
@@ -2607,7 +1881,7 @@ Question: ${question}`,
|
|
|
2607
1881
|
}
|
|
2608
1882
|
),
|
|
2609
1883
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2610
|
-
|
|
1884
|
+
chunkORKGCXG3_cjs.Button,
|
|
2611
1885
|
{
|
|
2612
1886
|
variant: "accent",
|
|
2613
1887
|
size: "icon",
|
|
@@ -2619,7 +1893,7 @@ Question: ${question}`,
|
|
|
2619
1893
|
}
|
|
2620
1894
|
),
|
|
2621
1895
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
2622
|
-
|
|
1896
|
+
chunkORKGCXG3_cjs.Button,
|
|
2623
1897
|
{
|
|
2624
1898
|
variant: "outline",
|
|
2625
1899
|
size: "sm",
|
|
@@ -2755,7 +2029,11 @@ var CitationRendererComponent = ({
|
|
|
2755
2029
|
onDismissCitation,
|
|
2756
2030
|
notify2
|
|
2757
2031
|
]);
|
|
2758
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: chunkRZQACYNQ_cjs.cn("citation-container", className), "data-testid": "citation-renderer", children: renderMarkdown({
|
|
2032
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: chunkRZQACYNQ_cjs.cn("citation-container", className), "data-testid": "citation-renderer", children: renderMarkdown({
|
|
2033
|
+
components: markdownComponents,
|
|
2034
|
+
isStreaming,
|
|
2035
|
+
children: chunkORKGCXG3_cjs.normalizeCitationMarkup(content)
|
|
2036
|
+
}) });
|
|
2759
2037
|
};
|
|
2760
2038
|
var CitationPopover = ({
|
|
2761
2039
|
citationNum,
|
|
@@ -2979,7 +2257,7 @@ var CitationLink = ({
|
|
|
2979
2257
|
triggerRef,
|
|
2980
2258
|
children
|
|
2981
2259
|
}) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2982
|
-
|
|
2260
|
+
chunkORKGCXG3_cjs.MarkMenu,
|
|
2983
2261
|
{
|
|
2984
2262
|
triggerRef,
|
|
2985
2263
|
items,
|
|
@@ -3017,8 +2295,8 @@ var DocIcon = ({ size = 16, className = "" }) => {
|
|
|
3017
2295
|
"path",
|
|
3018
2296
|
{
|
|
3019
2297
|
d: "M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8l-6-6z",
|
|
3020
|
-
fill:
|
|
3021
|
-
stroke:
|
|
2298
|
+
fill: chunkORKGCXG3_cjs.FILE_TYPE_COLORS.doc,
|
|
2299
|
+
stroke: chunkORKGCXG3_cjs.FILE_TYPE_COLORS.doc,
|
|
3022
2300
|
strokeWidth: "1",
|
|
3023
2301
|
strokeLinecap: "round",
|
|
3024
2302
|
strokeLinejoin: "round"
|
|
@@ -3029,7 +2307,7 @@ var DocIcon = ({ size = 16, className = "" }) => {
|
|
|
3029
2307
|
{
|
|
3030
2308
|
d: "M14 2v6h6",
|
|
3031
2309
|
fill: "none",
|
|
3032
|
-
stroke:
|
|
2310
|
+
stroke: chunkORKGCXG3_cjs.FILE_TYPE_COLORS.white,
|
|
3033
2311
|
strokeWidth: "1",
|
|
3034
2312
|
strokeLinecap: "round",
|
|
3035
2313
|
strokeLinejoin: "round"
|
|
@@ -3067,8 +2345,8 @@ var HtmlIcon = ({ size = 16, className = "" }) => {
|
|
|
3067
2345
|
"path",
|
|
3068
2346
|
{
|
|
3069
2347
|
d: "M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8l-6-6z",
|
|
3070
|
-
fill:
|
|
3071
|
-
stroke:
|
|
2348
|
+
fill: chunkORKGCXG3_cjs.FILE_TYPE_COLORS.html,
|
|
2349
|
+
stroke: chunkORKGCXG3_cjs.FILE_TYPE_COLORS.html,
|
|
3072
2350
|
strokeWidth: "1",
|
|
3073
2351
|
strokeLinecap: "round",
|
|
3074
2352
|
strokeLinejoin: "round"
|
|
@@ -3079,7 +2357,7 @@ var HtmlIcon = ({ size = 16, className = "" }) => {
|
|
|
3079
2357
|
{
|
|
3080
2358
|
d: "M14 2v6h6",
|
|
3081
2359
|
fill: "none",
|
|
3082
|
-
stroke:
|
|
2360
|
+
stroke: chunkORKGCXG3_cjs.FILE_TYPE_COLORS.white,
|
|
3083
2361
|
strokeWidth: "1",
|
|
3084
2362
|
strokeLinecap: "round",
|
|
3085
2363
|
strokeLinejoin: "round"
|
|
@@ -3117,8 +2395,8 @@ var TxtIcon = ({ size = 16, className = "" }) => {
|
|
|
3117
2395
|
"path",
|
|
3118
2396
|
{
|
|
3119
2397
|
d: "M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8l-6-6z",
|
|
3120
|
-
fill:
|
|
3121
|
-
stroke:
|
|
2398
|
+
fill: chunkORKGCXG3_cjs.FILE_TYPE_COLORS.txt,
|
|
2399
|
+
stroke: chunkORKGCXG3_cjs.FILE_TYPE_COLORS.txt,
|
|
3122
2400
|
strokeWidth: "1",
|
|
3123
2401
|
strokeLinecap: "round",
|
|
3124
2402
|
strokeLinejoin: "round"
|
|
@@ -3129,7 +2407,7 @@ var TxtIcon = ({ size = 16, className = "" }) => {
|
|
|
3129
2407
|
{
|
|
3130
2408
|
d: "M14 2v6h6",
|
|
3131
2409
|
fill: "none",
|
|
3132
|
-
stroke:
|
|
2410
|
+
stroke: chunkORKGCXG3_cjs.FILE_TYPE_COLORS.white,
|
|
3133
2411
|
strokeWidth: "1",
|
|
3134
2412
|
strokeLinecap: "round",
|
|
3135
2413
|
strokeLinejoin: "round"
|
|
@@ -3167,8 +2445,8 @@ var XlsIcon = ({ size = 16, className = "" }) => {
|
|
|
3167
2445
|
"path",
|
|
3168
2446
|
{
|
|
3169
2447
|
d: "M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8l-6-6z",
|
|
3170
|
-
fill:
|
|
3171
|
-
stroke:
|
|
2448
|
+
fill: chunkORKGCXG3_cjs.FILE_TYPE_COLORS.xls,
|
|
2449
|
+
stroke: chunkORKGCXG3_cjs.FILE_TYPE_COLORS.xls,
|
|
3172
2450
|
strokeWidth: "1",
|
|
3173
2451
|
strokeLinecap: "round",
|
|
3174
2452
|
strokeLinejoin: "round"
|
|
@@ -3179,7 +2457,7 @@ var XlsIcon = ({ size = 16, className = "" }) => {
|
|
|
3179
2457
|
{
|
|
3180
2458
|
d: "M14 2v6h6",
|
|
3181
2459
|
fill: "none",
|
|
3182
|
-
stroke:
|
|
2460
|
+
stroke: chunkORKGCXG3_cjs.FILE_TYPE_COLORS.white,
|
|
3183
2461
|
strokeWidth: "1",
|
|
3184
2462
|
strokeLinecap: "round",
|
|
3185
2463
|
strokeLinejoin: "round"
|
|
@@ -3217,8 +2495,8 @@ var FileIcon = ({ size = 16, className = "" }) => {
|
|
|
3217
2495
|
"path",
|
|
3218
2496
|
{
|
|
3219
2497
|
d: "M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8l-6-6z",
|
|
3220
|
-
fill:
|
|
3221
|
-
stroke:
|
|
2498
|
+
fill: chunkORKGCXG3_cjs.FILE_TYPE_COLORS.generic,
|
|
2499
|
+
stroke: chunkORKGCXG3_cjs.FILE_TYPE_COLORS.generic,
|
|
3222
2500
|
strokeWidth: "1",
|
|
3223
2501
|
strokeLinecap: "round",
|
|
3224
2502
|
strokeLinejoin: "round"
|
|
@@ -3229,7 +2507,7 @@ var FileIcon = ({ size = 16, className = "" }) => {
|
|
|
3229
2507
|
{
|
|
3230
2508
|
d: "M14 2v6h6",
|
|
3231
2509
|
fill: "none",
|
|
3232
|
-
stroke:
|
|
2510
|
+
stroke: chunkORKGCXG3_cjs.FILE_TYPE_COLORS.white,
|
|
3233
2511
|
strokeWidth: "1",
|
|
3234
2512
|
strokeLinecap: "round",
|
|
3235
2513
|
strokeLinejoin: "round"
|
|
@@ -3585,7 +2863,7 @@ var ArbiBotIcon = ({ size = 24, className = "" }) => {
|
|
|
3585
2863
|
);
|
|
3586
2864
|
};
|
|
3587
2865
|
function getNotificationTypeMeta(type) {
|
|
3588
|
-
const WorkspaceIcon =
|
|
2866
|
+
const WorkspaceIcon = chunkORKGCXG3_cjs.getEntityIcon("WORKSPACE");
|
|
3589
2867
|
switch (type) {
|
|
3590
2868
|
case "user_message":
|
|
3591
2869
|
return { Icon: lucideReact.MessageCircleMore, iconClassName: "text-primary", label: "Message" };
|
|
@@ -3700,7 +2978,7 @@ function describeActivity(content) {
|
|
|
3700
2978
|
}
|
|
3701
2979
|
default:
|
|
3702
2980
|
return {
|
|
3703
|
-
Icon: parsed.workspace_ext_id ?
|
|
2981
|
+
Icon: parsed.workspace_ext_id ? chunkORKGCXG3_cjs.getEntityIcon("WORKSPACE") : lucideReact.Activity,
|
|
3704
2982
|
iconClassName: "text-muted-foreground",
|
|
3705
2983
|
title: humaniseEvent(parsed.event)
|
|
3706
2984
|
};
|
|
@@ -3917,7 +3195,7 @@ function DmAvatar({ user, className, size = "lg" }) {
|
|
|
3917
3195
|
const presence = useArbiWsStore((s) => s.presence[user.external_id]);
|
|
3918
3196
|
const displayStatus = presence === void 0 ? void 0 : presence === "online" ? "connected" : "disconnected";
|
|
3919
3197
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
3920
|
-
|
|
3198
|
+
chunkORKGCXG3_cjs.UserEntity,
|
|
3921
3199
|
{
|
|
3922
3200
|
variant: "icon",
|
|
3923
3201
|
size,
|
|
@@ -3927,7 +3205,7 @@ function DmAvatar({ user, className, size = "lg" }) {
|
|
|
3927
3205
|
initials: userInitials(user),
|
|
3928
3206
|
displayName: userDisplayName(user),
|
|
3929
3207
|
picture: user.picture,
|
|
3930
|
-
avatarStyle:
|
|
3208
|
+
avatarStyle: chunkORKGCXG3_cjs.getEntityColorStyles(user.external_id),
|
|
3931
3209
|
isAgent: isAgentUser(user),
|
|
3932
3210
|
displayStatus
|
|
3933
3211
|
}
|
|
@@ -3980,10 +3258,10 @@ function ConversationList({
|
|
|
3980
3258
|
children: userDisplayName(peer)
|
|
3981
3259
|
}
|
|
3982
3260
|
),
|
|
3983
|
-
c.badge ?? (isAgentUser(peer) ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
3261
|
+
c.badge ?? (isAgentUser(peer) ? /* @__PURE__ */ jsxRuntime.jsx(chunkORKGCXG3_cjs.AgentBadge, {}) : null)
|
|
3984
3262
|
] }),
|
|
3985
3263
|
c.statusLabel ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
3986
|
-
|
|
3264
|
+
chunkORKGCXG3_cjs.Badge,
|
|
3987
3265
|
{
|
|
3988
3266
|
variant: "outline",
|
|
3989
3267
|
className: "shrink-0 rounded-full px-2 py-0 text-xs font-medium text-muted-foreground",
|
|
@@ -3994,7 +3272,7 @@ function ConversationList({
|
|
|
3994
3272
|
// shouted louder than the message it was counting.
|
|
3995
3273
|
// Enough to catch the eye scanning the list, no more.
|
|
3996
3274
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3997
|
-
|
|
3275
|
+
chunkORKGCXG3_cjs.Badge,
|
|
3998
3276
|
{
|
|
3999
3277
|
variant: "accent",
|
|
4000
3278
|
className: chunkRZQACYNQ_cjs.cn(
|
|
@@ -4101,7 +3379,7 @@ function annotateThread(messages, accessors, runWindowMs = RUN_WINDOW_MS) {
|
|
|
4101
3379
|
function DateSeparator({ children }) {
|
|
4102
3380
|
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "my-3 flex justify-center", "data-testid": "dm-date-separator", children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: "rounded-full bg-background/80 px-2 py-0.5 text-xs text-muted-foreground", children }) });
|
|
4103
3381
|
}
|
|
4104
|
-
function
|
|
3382
|
+
function MessageBubble({
|
|
4105
3383
|
message,
|
|
4106
3384
|
classNames,
|
|
4107
3385
|
isLastOfRun = true,
|
|
@@ -4167,7 +3445,7 @@ function MessageThread({
|
|
|
4167
3445
|
items.map(({ message: m, isLastOfRun, isFirstOfDay }) => /* @__PURE__ */ jsxRuntime.jsxs(React.Fragment, { children: [
|
|
4168
3446
|
isFirstOfDay && formatDay && /* @__PURE__ */ jsxRuntime.jsx(DateSeparator, { children: formatDay(m.createdAt) }),
|
|
4169
3447
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4170
|
-
|
|
3448
|
+
MessageBubble,
|
|
4171
3449
|
{
|
|
4172
3450
|
message: m,
|
|
4173
3451
|
classNames,
|
|
@@ -4213,7 +3491,7 @@ function DmComposer({
|
|
|
4213
3491
|
children,
|
|
4214
3492
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-end gap-2", children: [
|
|
4215
3493
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4216
|
-
|
|
3494
|
+
chunkORKGCXG3_cjs.Textarea,
|
|
4217
3495
|
{
|
|
4218
3496
|
ref: inputRef,
|
|
4219
3497
|
value: draft,
|
|
@@ -4227,7 +3505,7 @@ function DmComposer({
|
|
|
4227
3505
|
}
|
|
4228
3506
|
),
|
|
4229
3507
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
4230
|
-
|
|
3508
|
+
chunkORKGCXG3_cjs.Button,
|
|
4231
3509
|
{
|
|
4232
3510
|
type: "button",
|
|
4233
3511
|
onClick: () => void submit(),
|
|
@@ -4248,7 +3526,7 @@ function DmComposer({
|
|
|
4248
3526
|
function DirectMessages({
|
|
4249
3527
|
className,
|
|
4250
3528
|
classNames,
|
|
4251
|
-
emptyThread,
|
|
3529
|
+
emptyThread: emptyThread2,
|
|
4252
3530
|
emptyList
|
|
4253
3531
|
}) {
|
|
4254
3532
|
const {
|
|
@@ -4309,7 +3587,7 @@ function DirectMessages({
|
|
|
4309
3587
|
}
|
|
4310
3588
|
),
|
|
4311
3589
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex min-h-0 min-w-0 flex-1 flex-col", children: [
|
|
4312
|
-
/* @__PURE__ */ jsxRuntime.jsx(MessageThread, { conversation: selected, classNames, emptyState:
|
|
3590
|
+
/* @__PURE__ */ jsxRuntime.jsx(MessageThread, { conversation: selected, classNames, emptyState: emptyThread2 }),
|
|
4313
3591
|
selected ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
4314
3592
|
DmComposer,
|
|
4315
3593
|
{
|
|
@@ -4392,7 +3670,7 @@ function ImageCropper({
|
|
|
4392
3670
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-1.5", children: [
|
|
4393
3671
|
/* @__PURE__ */ jsxRuntime.jsx("label", { className: "text-xs font-semibold uppercase tracking-wider text-muted-foreground", children: "Zoom" }),
|
|
4394
3672
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4395
|
-
|
|
3673
|
+
chunkORKGCXG3_cjs.Slider,
|
|
4396
3674
|
{
|
|
4397
3675
|
value: [zoom],
|
|
4398
3676
|
onValueChange: ([v]) => setZoom(v ?? 1),
|
|
@@ -4469,8 +3747,8 @@ function ImageCropModal({
|
|
|
4469
3747
|
setBusy(false);
|
|
4470
3748
|
}
|
|
4471
3749
|
};
|
|
4472
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
4473
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3750
|
+
return /* @__PURE__ */ jsxRuntime.jsx(chunkORKGCXG3_cjs.Dialog, { open, onOpenChange: (next) => !next ? onCancel() : void 0, children: /* @__PURE__ */ jsxRuntime.jsxs(chunkORKGCXG3_cjs.DialogContent, { className: "sm:max-w-md", "data-testid": "image-crop-modal", children: [
|
|
3751
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkORKGCXG3_cjs.DialogHeader, { children: /* @__PURE__ */ jsxRuntime.jsx(chunkORKGCXG3_cjs.DialogTitle, { children: title }) }),
|
|
4474
3752
|
image ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
4475
3753
|
ImageCropper,
|
|
4476
3754
|
{
|
|
@@ -4481,9 +3759,9 @@ function ImageCropModal({
|
|
|
4481
3759
|
onCropComplete: setArea
|
|
4482
3760
|
}
|
|
4483
3761
|
) : null,
|
|
4484
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
4485
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4486
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
3762
|
+
/* @__PURE__ */ jsxRuntime.jsxs(chunkORKGCXG3_cjs.DialogFooter, { className: "gap-2 sm:gap-2", children: [
|
|
3763
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkORKGCXG3_cjs.Button, { variant: "ghost", onClick: onCancel, disabled: busy, children: "Cancel" }),
|
|
3764
|
+
/* @__PURE__ */ jsxRuntime.jsxs(chunkORKGCXG3_cjs.Button, { onClick: handleSave, disabled: !area || busy, "data-testid": "image-crop-save", children: [
|
|
4487
3765
|
busy ? /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Loader2, { className: "mr-1 size-4 animate-spin" }) : null,
|
|
4488
3766
|
saveLabel
|
|
4489
3767
|
] })
|
|
@@ -4549,8 +3827,8 @@ function CommandPalette({
|
|
|
4549
3827
|
if (!q || task.isRunning) return;
|
|
4550
3828
|
void task.run(buildAskPrompt(q), askDocIds, { model });
|
|
4551
3829
|
};
|
|
4552
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
4553
|
-
|
|
3830
|
+
return /* @__PURE__ */ jsxRuntime.jsx(chunkORKGCXG3_cjs.Dialog, { open, onOpenChange, children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
3831
|
+
chunkORKGCXG3_cjs.DialogContent,
|
|
4554
3832
|
{
|
|
4555
3833
|
className: chunkRZQACYNQ_cjs.cn(
|
|
4556
3834
|
"top-[12%] max-w-2xl translate-y-0 gap-0 overflow-hidden p-0",
|
|
@@ -4558,7 +3836,7 @@ function CommandPalette({
|
|
|
4558
3836
|
),
|
|
4559
3837
|
"data-testid": testId,
|
|
4560
3838
|
children: [
|
|
4561
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3839
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkORKGCXG3_cjs.DialogTitle, { className: "sr-only", children: "Command palette" }),
|
|
4562
3840
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-3 border-b border-border px-4", children: [
|
|
4563
3841
|
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.Sparkles, { className: chunkRZQACYNQ_cjs.cn("size-4 shrink-0 text-ai-accent", classNames?.leadingIcon) }),
|
|
4564
3842
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -4629,7 +3907,7 @@ function CommandPalette({
|
|
|
4629
3907
|
}
|
|
4630
3908
|
),
|
|
4631
3909
|
task.isDone && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-3 flex justify-end", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
4632
|
-
|
|
3910
|
+
chunkORKGCXG3_cjs.Button,
|
|
4633
3911
|
{
|
|
4634
3912
|
variant: "outline",
|
|
4635
3913
|
size: "sm",
|
|
@@ -4827,7 +4105,7 @@ function DocumentTable({
|
|
|
4827
4105
|
const doc = p.data;
|
|
4828
4106
|
if (!doc) return null;
|
|
4829
4107
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
4830
|
-
|
|
4108
|
+
chunkORKGCXG3_cjs.DocumentEntity,
|
|
4831
4109
|
{
|
|
4832
4110
|
doc,
|
|
4833
4111
|
size: "base",
|
|
@@ -4850,7 +4128,7 @@ function DocumentTable({
|
|
|
4850
4128
|
cellRenderer: (p) => {
|
|
4851
4129
|
const status = p.data?.status;
|
|
4852
4130
|
if (!status) return null;
|
|
4853
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
4131
|
+
return /* @__PURE__ */ jsxRuntime.jsx(chunkORKGCXG3_cjs.Badge, { variant: STATUS_VARIANTS[status.toLowerCase()] ?? "secondary", children: status });
|
|
4854
4132
|
}
|
|
4855
4133
|
},
|
|
4856
4134
|
{
|
|
@@ -4864,7 +4142,7 @@ function DocumentTable({
|
|
|
4864
4142
|
const doctags = p.data?.doctags ?? [];
|
|
4865
4143
|
if (doctags.length === 0) return null;
|
|
4866
4144
|
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-wrap items-center gap-1 py-1", children: doctags.map((dt) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
4867
|
-
|
|
4145
|
+
chunkORKGCXG3_cjs.TagEntity,
|
|
4868
4146
|
{
|
|
4869
4147
|
size: "sm",
|
|
4870
4148
|
tag: {
|
|
@@ -5140,7 +4418,7 @@ function DocumentGallery({
|
|
|
5140
4418
|
(dt) => tagNameById.get(dt.tag_ext_id) ?? dt.tag_ext_id.slice(0, 8)
|
|
5141
4419
|
);
|
|
5142
4420
|
return /* @__PURE__ */ jsxRuntime.jsx("div", { "data-doc-id": id, "data-testid": "document-gallery-card", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
5143
|
-
|
|
4421
|
+
chunkORKGCXG3_cjs.DocumentCard,
|
|
5144
4422
|
{
|
|
5145
4423
|
doc,
|
|
5146
4424
|
thumbnailUrl: thumbs[id],
|
|
@@ -5177,7 +4455,7 @@ function VoiceNoteRecorder({
|
|
|
5177
4455
|
isSaving = false,
|
|
5178
4456
|
transcribe
|
|
5179
4457
|
}) {
|
|
5180
|
-
const recorder =
|
|
4458
|
+
const recorder = chunkORKGCXG3_cjs.useAudioRecorder();
|
|
5181
4459
|
const [transcript, setTranscript] = React.useState(null);
|
|
5182
4460
|
const [isTranscribing, setIsTranscribing] = React.useState(false);
|
|
5183
4461
|
React.useEffect(() => {
|
|
@@ -5209,7 +4487,7 @@ function VoiceNoteRecorder({
|
|
|
5209
4487
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex h-full flex-col items-center justify-center gap-6 p-8", children: [
|
|
5210
4488
|
recorder.state === "idle" && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
5211
4489
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5212
|
-
|
|
4490
|
+
chunkORKGCXG3_cjs.Button,
|
|
5213
4491
|
{
|
|
5214
4492
|
type: "button",
|
|
5215
4493
|
size: "lg",
|
|
@@ -5223,7 +4501,7 @@ function VoiceNoteRecorder({
|
|
|
5223
4501
|
] }),
|
|
5224
4502
|
(recorder.state === "recording" || recorder.state === "paused") && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
5225
4503
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5226
|
-
|
|
4504
|
+
chunkORKGCXG3_cjs.MicWaveformIndicator,
|
|
5227
4505
|
{
|
|
5228
4506
|
level: recorder.level,
|
|
5229
4507
|
elapsedMs: recorder.elapsedMs,
|
|
@@ -5232,7 +4510,7 @@ function VoiceNoteRecorder({
|
|
|
5232
4510
|
),
|
|
5233
4511
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-3", children: [
|
|
5234
4512
|
recorder.state === "recording" ? /* @__PURE__ */ jsxRuntime.jsxs(
|
|
5235
|
-
|
|
4513
|
+
chunkORKGCXG3_cjs.Button,
|
|
5236
4514
|
{
|
|
5237
4515
|
type: "button",
|
|
5238
4516
|
variant: "outline",
|
|
@@ -5244,7 +4522,7 @@ function VoiceNoteRecorder({
|
|
|
5244
4522
|
]
|
|
5245
4523
|
}
|
|
5246
4524
|
) : /* @__PURE__ */ jsxRuntime.jsxs(
|
|
5247
|
-
|
|
4525
|
+
chunkORKGCXG3_cjs.Button,
|
|
5248
4526
|
{
|
|
5249
4527
|
type: "button",
|
|
5250
4528
|
variant: "outline",
|
|
@@ -5256,7 +4534,7 @@ function VoiceNoteRecorder({
|
|
|
5256
4534
|
]
|
|
5257
4535
|
}
|
|
5258
4536
|
),
|
|
5259
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
4537
|
+
/* @__PURE__ */ jsxRuntime.jsxs(chunkORKGCXG3_cjs.Button, { type: "button", onClick: recorder.stop, "data-testid": "voice-note-stop-button", children: [
|
|
5260
4538
|
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.Square, { className: "mr-1.5 h-3.5 w-3.5 fill-current" }),
|
|
5261
4539
|
"Stop"
|
|
5262
4540
|
] })
|
|
@@ -5280,7 +4558,7 @@ function VoiceNoteRecorder({
|
|
|
5280
4558
|
),
|
|
5281
4559
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-3", children: [
|
|
5282
4560
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
5283
|
-
|
|
4561
|
+
chunkORKGCXG3_cjs.Button,
|
|
5284
4562
|
{
|
|
5285
4563
|
type: "button",
|
|
5286
4564
|
variant: "outline",
|
|
@@ -5294,7 +4572,7 @@ function VoiceNoteRecorder({
|
|
|
5294
4572
|
}
|
|
5295
4573
|
),
|
|
5296
4574
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
5297
|
-
|
|
4575
|
+
chunkORKGCXG3_cjs.Button,
|
|
5298
4576
|
{
|
|
5299
4577
|
type: "button",
|
|
5300
4578
|
variant: "outline",
|
|
@@ -5308,7 +4586,7 @@ function VoiceNoteRecorder({
|
|
|
5308
4586
|
}
|
|
5309
4587
|
),
|
|
5310
4588
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
5311
|
-
|
|
4589
|
+
chunkORKGCXG3_cjs.Button,
|
|
5312
4590
|
{
|
|
5313
4591
|
type: "button",
|
|
5314
4592
|
onClick: handleSave,
|
|
@@ -5345,7 +4623,7 @@ function DraftTitleControls({
|
|
|
5345
4623
|
}
|
|
5346
4624
|
),
|
|
5347
4625
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5348
|
-
|
|
4626
|
+
chunkORKGCXG3_cjs.IconToggle,
|
|
5349
4627
|
{
|
|
5350
4628
|
icon: lucideReact.Sparkles,
|
|
5351
4629
|
isActive: autoRename,
|
|
@@ -5379,7 +4657,7 @@ function useCameraStream(constraints = { video: true, audio: false }) {
|
|
|
5379
4657
|
streamRef.current = media;
|
|
5380
4658
|
setStream(media);
|
|
5381
4659
|
} catch (err) {
|
|
5382
|
-
setError(
|
|
4660
|
+
setError(chunkORKGCXG3_cjs.classifyMediaError(err, "camera"));
|
|
5383
4661
|
} finally {
|
|
5384
4662
|
setIsStarting(false);
|
|
5385
4663
|
}
|
|
@@ -5510,7 +4788,7 @@ function PhotoCapture({ onSave, onDiscard, onError, isSaving = false }) {
|
|
|
5510
4788
|
}
|
|
5511
4789
|
) }),
|
|
5512
4790
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5513
|
-
|
|
4791
|
+
chunkORKGCXG3_cjs.Button,
|
|
5514
4792
|
{
|
|
5515
4793
|
type: "button",
|
|
5516
4794
|
size: "lg",
|
|
@@ -5528,7 +4806,7 @@ function PhotoCapture({ onSave, onDiscard, onError, isSaving = false }) {
|
|
|
5528
4806
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full max-w-md", children: /* @__PURE__ */ jsxRuntime.jsx(chunk7IOCMCC5_cjs.ImageViewer, { blob: capturedBlob, alt: "Captured photo" }) }),
|
|
5529
4807
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-3", children: [
|
|
5530
4808
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
5531
|
-
|
|
4809
|
+
chunkORKGCXG3_cjs.Button,
|
|
5532
4810
|
{
|
|
5533
4811
|
type: "button",
|
|
5534
4812
|
variant: "outline",
|
|
@@ -5542,7 +4820,7 @@ function PhotoCapture({ onSave, onDiscard, onError, isSaving = false }) {
|
|
|
5542
4820
|
}
|
|
5543
4821
|
),
|
|
5544
4822
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
5545
|
-
|
|
4823
|
+
chunkORKGCXG3_cjs.Button,
|
|
5546
4824
|
{
|
|
5547
4825
|
type: "button",
|
|
5548
4826
|
variant: "outline",
|
|
@@ -5556,7 +4834,7 @@ function PhotoCapture({ onSave, onDiscard, onError, isSaving = false }) {
|
|
|
5556
4834
|
}
|
|
5557
4835
|
),
|
|
5558
4836
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
5559
|
-
|
|
4837
|
+
chunkORKGCXG3_cjs.Button,
|
|
5560
4838
|
{
|
|
5561
4839
|
type: "button",
|
|
5562
4840
|
onClick: handleSave,
|
|
@@ -5615,10 +4893,10 @@ function VideoCapture({ onSave, onDiscard, onError, isSaving = false }) {
|
|
|
5615
4893
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "relative inline-flex h-2 w-2 rounded-full bg-red-500" })
|
|
5616
4894
|
] }),
|
|
5617
4895
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-xs font-semibold uppercase tracking-wide text-red-500", children: "Rec" }),
|
|
5618
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-mono text-xs tabular-nums text-muted-foreground", children:
|
|
4896
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-mono text-xs tabular-nums text-muted-foreground", children: chunkORKGCXG3_cjs.formatElapsed(recorder.elapsedMs) })
|
|
5619
4897
|
] }),
|
|
5620
4898
|
recorder.state === "recording" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
5621
|
-
|
|
4899
|
+
chunkORKGCXG3_cjs.Button,
|
|
5622
4900
|
{
|
|
5623
4901
|
type: "button",
|
|
5624
4902
|
size: "lg",
|
|
@@ -5628,7 +4906,7 @@ function VideoCapture({ onSave, onDiscard, onError, isSaving = false }) {
|
|
|
5628
4906
|
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Square, { className: "h-5 w-5 fill-current" })
|
|
5629
4907
|
}
|
|
5630
4908
|
) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
5631
|
-
|
|
4909
|
+
chunkORKGCXG3_cjs.Button,
|
|
5632
4910
|
{
|
|
5633
4911
|
type: "button",
|
|
5634
4912
|
size: "lg",
|
|
@@ -5645,7 +4923,7 @@ function VideoCapture({ onSave, onDiscard, onError, isSaving = false }) {
|
|
|
5645
4923
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full max-w-md", children: /* @__PURE__ */ jsxRuntime.jsx(chunk7IOCMCC5_cjs.VideoViewer, { blob: recorder.blob, title: "Captured video" }) }),
|
|
5646
4924
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-3", children: [
|
|
5647
4925
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
5648
|
-
|
|
4926
|
+
chunkORKGCXG3_cjs.Button,
|
|
5649
4927
|
{
|
|
5650
4928
|
type: "button",
|
|
5651
4929
|
variant: "outline",
|
|
@@ -5659,7 +4937,7 @@ function VideoCapture({ onSave, onDiscard, onError, isSaving = false }) {
|
|
|
5659
4937
|
}
|
|
5660
4938
|
),
|
|
5661
4939
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
5662
|
-
|
|
4940
|
+
chunkORKGCXG3_cjs.Button,
|
|
5663
4941
|
{
|
|
5664
4942
|
type: "button",
|
|
5665
4943
|
variant: "outline",
|
|
@@ -5673,7 +4951,7 @@ function VideoCapture({ onSave, onDiscard, onError, isSaving = false }) {
|
|
|
5673
4951
|
}
|
|
5674
4952
|
),
|
|
5675
4953
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
5676
|
-
|
|
4954
|
+
chunkORKGCXG3_cjs.Button,
|
|
5677
4955
|
{
|
|
5678
4956
|
type: "button",
|
|
5679
4957
|
onClick: handleSave,
|
|
@@ -5752,551 +5030,555 @@ Object.defineProperty(exports, "useNotify", {
|
|
|
5752
5030
|
});
|
|
5753
5031
|
Object.defineProperty(exports, "AgentBadge", {
|
|
5754
5032
|
enumerable: true,
|
|
5755
|
-
get: function () { return
|
|
5033
|
+
get: function () { return chunkORKGCXG3_cjs.AgentBadge; }
|
|
5756
5034
|
});
|
|
5757
5035
|
Object.defineProperty(exports, "AiMarkdown", {
|
|
5758
5036
|
enumerable: true,
|
|
5759
|
-
get: function () { return
|
|
5037
|
+
get: function () { return chunkORKGCXG3_cjs.AiMarkdown; }
|
|
5760
5038
|
});
|
|
5761
5039
|
Object.defineProperty(exports, "ArbiBotHeadIcon", {
|
|
5762
5040
|
enumerable: true,
|
|
5763
|
-
get: function () { return
|
|
5041
|
+
get: function () { return chunkORKGCXG3_cjs.ArbiBotHeadIcon; }
|
|
5764
5042
|
});
|
|
5765
5043
|
Object.defineProperty(exports, "AudIcon", {
|
|
5766
5044
|
enumerable: true,
|
|
5767
|
-
get: function () { return
|
|
5045
|
+
get: function () { return chunkORKGCXG3_cjs.AudIcon; }
|
|
5768
5046
|
});
|
|
5769
5047
|
Object.defineProperty(exports, "Avatar", {
|
|
5770
5048
|
enumerable: true,
|
|
5771
|
-
get: function () { return
|
|
5049
|
+
get: function () { return chunkORKGCXG3_cjs.Avatar; }
|
|
5772
5050
|
});
|
|
5773
5051
|
Object.defineProperty(exports, "AvatarFallback", {
|
|
5774
5052
|
enumerable: true,
|
|
5775
|
-
get: function () { return
|
|
5053
|
+
get: function () { return chunkORKGCXG3_cjs.AvatarFallback; }
|
|
5776
5054
|
});
|
|
5777
5055
|
Object.defineProperty(exports, "AvatarImage", {
|
|
5778
5056
|
enumerable: true,
|
|
5779
|
-
get: function () { return
|
|
5057
|
+
get: function () { return chunkORKGCXG3_cjs.AvatarImage; }
|
|
5780
5058
|
});
|
|
5781
5059
|
Object.defineProperty(exports, "BASE_COLORS", {
|
|
5782
5060
|
enumerable: true,
|
|
5783
|
-
get: function () { return
|
|
5061
|
+
get: function () { return chunkORKGCXG3_cjs.BASE_COLORS; }
|
|
5784
5062
|
});
|
|
5785
5063
|
Object.defineProperty(exports, "Badge", {
|
|
5786
5064
|
enumerable: true,
|
|
5787
|
-
get: function () { return
|
|
5065
|
+
get: function () { return chunkORKGCXG3_cjs.Badge; }
|
|
5788
5066
|
});
|
|
5789
5067
|
Object.defineProperty(exports, "Button", {
|
|
5790
5068
|
enumerable: true,
|
|
5791
|
-
get: function () { return
|
|
5069
|
+
get: function () { return chunkORKGCXG3_cjs.Button; }
|
|
5792
5070
|
});
|
|
5793
5071
|
Object.defineProperty(exports, "Card", {
|
|
5794
5072
|
enumerable: true,
|
|
5795
|
-
get: function () { return
|
|
5073
|
+
get: function () { return chunkORKGCXG3_cjs.Card; }
|
|
5796
5074
|
});
|
|
5797
5075
|
Object.defineProperty(exports, "CardContent", {
|
|
5798
5076
|
enumerable: true,
|
|
5799
|
-
get: function () { return
|
|
5077
|
+
get: function () { return chunkORKGCXG3_cjs.CardContent; }
|
|
5800
5078
|
});
|
|
5801
5079
|
Object.defineProperty(exports, "CardDescription", {
|
|
5802
5080
|
enumerable: true,
|
|
5803
|
-
get: function () { return
|
|
5081
|
+
get: function () { return chunkORKGCXG3_cjs.CardDescription; }
|
|
5804
5082
|
});
|
|
5805
5083
|
Object.defineProperty(exports, "CardFooter", {
|
|
5806
5084
|
enumerable: true,
|
|
5807
|
-
get: function () { return
|
|
5085
|
+
get: function () { return chunkORKGCXG3_cjs.CardFooter; }
|
|
5808
5086
|
});
|
|
5809
5087
|
Object.defineProperty(exports, "CardHeader", {
|
|
5810
5088
|
enumerable: true,
|
|
5811
|
-
get: function () { return
|
|
5089
|
+
get: function () { return chunkORKGCXG3_cjs.CardHeader; }
|
|
5812
5090
|
});
|
|
5813
5091
|
Object.defineProperty(exports, "CardTitle", {
|
|
5814
5092
|
enumerable: true,
|
|
5815
|
-
get: function () { return
|
|
5093
|
+
get: function () { return chunkORKGCXG3_cjs.CardTitle; }
|
|
5816
5094
|
});
|
|
5817
5095
|
Object.defineProperty(exports, "Checkbox", {
|
|
5818
5096
|
enumerable: true,
|
|
5819
|
-
get: function () { return
|
|
5097
|
+
get: function () { return chunkORKGCXG3_cjs.Checkbox; }
|
|
5820
5098
|
});
|
|
5821
5099
|
Object.defineProperty(exports, "Collapsible", {
|
|
5822
5100
|
enumerable: true,
|
|
5823
|
-
get: function () { return
|
|
5101
|
+
get: function () { return chunkORKGCXG3_cjs.Collapsible; }
|
|
5824
5102
|
});
|
|
5825
5103
|
Object.defineProperty(exports, "CollapsibleContent", {
|
|
5826
5104
|
enumerable: true,
|
|
5827
|
-
get: function () { return
|
|
5105
|
+
get: function () { return chunkORKGCXG3_cjs.CollapsibleContent; }
|
|
5828
5106
|
});
|
|
5829
5107
|
Object.defineProperty(exports, "CollapsibleTrigger", {
|
|
5830
5108
|
enumerable: true,
|
|
5831
|
-
get: function () { return
|
|
5109
|
+
get: function () { return chunkORKGCXG3_cjs.CollapsibleTrigger; }
|
|
5832
5110
|
});
|
|
5833
5111
|
Object.defineProperty(exports, "Command", {
|
|
5834
5112
|
enumerable: true,
|
|
5835
|
-
get: function () { return
|
|
5113
|
+
get: function () { return chunkORKGCXG3_cjs.Command; }
|
|
5836
5114
|
});
|
|
5837
5115
|
Object.defineProperty(exports, "CommandDialog", {
|
|
5838
5116
|
enumerable: true,
|
|
5839
|
-
get: function () { return
|
|
5117
|
+
get: function () { return chunkORKGCXG3_cjs.CommandDialog; }
|
|
5840
5118
|
});
|
|
5841
5119
|
Object.defineProperty(exports, "CommandEmpty", {
|
|
5842
5120
|
enumerable: true,
|
|
5843
|
-
get: function () { return
|
|
5121
|
+
get: function () { return chunkORKGCXG3_cjs.CommandEmpty; }
|
|
5844
5122
|
});
|
|
5845
5123
|
Object.defineProperty(exports, "CommandGroup", {
|
|
5846
5124
|
enumerable: true,
|
|
5847
|
-
get: function () { return
|
|
5125
|
+
get: function () { return chunkORKGCXG3_cjs.CommandGroup; }
|
|
5848
5126
|
});
|
|
5849
5127
|
Object.defineProperty(exports, "CommandInput", {
|
|
5850
5128
|
enumerable: true,
|
|
5851
|
-
get: function () { return
|
|
5129
|
+
get: function () { return chunkORKGCXG3_cjs.CommandInput; }
|
|
5852
5130
|
});
|
|
5853
5131
|
Object.defineProperty(exports, "CommandItem", {
|
|
5854
5132
|
enumerable: true,
|
|
5855
|
-
get: function () { return
|
|
5133
|
+
get: function () { return chunkORKGCXG3_cjs.CommandItem; }
|
|
5856
5134
|
});
|
|
5857
5135
|
Object.defineProperty(exports, "CommandList", {
|
|
5858
5136
|
enumerable: true,
|
|
5859
|
-
get: function () { return
|
|
5137
|
+
get: function () { return chunkORKGCXG3_cjs.CommandList; }
|
|
5860
5138
|
});
|
|
5861
5139
|
Object.defineProperty(exports, "CommandSeparator", {
|
|
5862
5140
|
enumerable: true,
|
|
5863
|
-
get: function () { return
|
|
5141
|
+
get: function () { return chunkORKGCXG3_cjs.CommandSeparator; }
|
|
5864
5142
|
});
|
|
5865
5143
|
Object.defineProperty(exports, "CommandShortcut", {
|
|
5866
5144
|
enumerable: true,
|
|
5867
|
-
get: function () { return
|
|
5145
|
+
get: function () { return chunkORKGCXG3_cjs.CommandShortcut; }
|
|
5868
5146
|
});
|
|
5869
5147
|
Object.defineProperty(exports, "Dialog", {
|
|
5870
5148
|
enumerable: true,
|
|
5871
|
-
get: function () { return
|
|
5149
|
+
get: function () { return chunkORKGCXG3_cjs.Dialog; }
|
|
5872
5150
|
});
|
|
5873
5151
|
Object.defineProperty(exports, "DialogClose", {
|
|
5874
5152
|
enumerable: true,
|
|
5875
|
-
get: function () { return
|
|
5153
|
+
get: function () { return chunkORKGCXG3_cjs.DialogClose; }
|
|
5876
5154
|
});
|
|
5877
5155
|
Object.defineProperty(exports, "DialogContent", {
|
|
5878
5156
|
enumerable: true,
|
|
5879
|
-
get: function () { return
|
|
5157
|
+
get: function () { return chunkORKGCXG3_cjs.DialogContent; }
|
|
5880
5158
|
});
|
|
5881
5159
|
Object.defineProperty(exports, "DialogDescription", {
|
|
5882
5160
|
enumerable: true,
|
|
5883
|
-
get: function () { return
|
|
5161
|
+
get: function () { return chunkORKGCXG3_cjs.DialogDescription; }
|
|
5884
5162
|
});
|
|
5885
5163
|
Object.defineProperty(exports, "DialogFooter", {
|
|
5886
5164
|
enumerable: true,
|
|
5887
|
-
get: function () { return
|
|
5165
|
+
get: function () { return chunkORKGCXG3_cjs.DialogFooter; }
|
|
5888
5166
|
});
|
|
5889
5167
|
Object.defineProperty(exports, "DialogHeader", {
|
|
5890
5168
|
enumerable: true,
|
|
5891
|
-
get: function () { return
|
|
5169
|
+
get: function () { return chunkORKGCXG3_cjs.DialogHeader; }
|
|
5892
5170
|
});
|
|
5893
5171
|
Object.defineProperty(exports, "DialogOverlay", {
|
|
5894
5172
|
enumerable: true,
|
|
5895
|
-
get: function () { return
|
|
5173
|
+
get: function () { return chunkORKGCXG3_cjs.DialogOverlay; }
|
|
5896
5174
|
});
|
|
5897
5175
|
Object.defineProperty(exports, "DialogPortal", {
|
|
5898
5176
|
enumerable: true,
|
|
5899
|
-
get: function () { return
|
|
5177
|
+
get: function () { return chunkORKGCXG3_cjs.DialogPortal; }
|
|
5900
5178
|
});
|
|
5901
5179
|
Object.defineProperty(exports, "DialogTitle", {
|
|
5902
5180
|
enumerable: true,
|
|
5903
|
-
get: function () { return
|
|
5181
|
+
get: function () { return chunkORKGCXG3_cjs.DialogTitle; }
|
|
5904
5182
|
});
|
|
5905
5183
|
Object.defineProperty(exports, "DialogTrigger", {
|
|
5906
5184
|
enumerable: true,
|
|
5907
|
-
get: function () { return
|
|
5185
|
+
get: function () { return chunkORKGCXG3_cjs.DialogTrigger; }
|
|
5908
5186
|
});
|
|
5909
5187
|
Object.defineProperty(exports, "DictateProvider", {
|
|
5910
5188
|
enumerable: true,
|
|
5911
|
-
get: function () { return
|
|
5189
|
+
get: function () { return chunkORKGCXG3_cjs.DictateProvider; }
|
|
5912
5190
|
});
|
|
5913
5191
|
Object.defineProperty(exports, "DocumentCard", {
|
|
5914
5192
|
enumerable: true,
|
|
5915
|
-
get: function () { return
|
|
5193
|
+
get: function () { return chunkORKGCXG3_cjs.DocumentCard; }
|
|
5916
5194
|
});
|
|
5917
5195
|
Object.defineProperty(exports, "DocumentEntity", {
|
|
5918
5196
|
enumerable: true,
|
|
5919
|
-
get: function () { return
|
|
5197
|
+
get: function () { return chunkORKGCXG3_cjs.DocumentEntity; }
|
|
5920
5198
|
});
|
|
5921
5199
|
Object.defineProperty(exports, "ENTITY_MAPPINGS", {
|
|
5922
5200
|
enumerable: true,
|
|
5923
|
-
get: function () { return
|
|
5201
|
+
get: function () { return chunkORKGCXG3_cjs.ENTITY_MAPPINGS; }
|
|
5924
5202
|
});
|
|
5925
5203
|
Object.defineProperty(exports, "EmlIcon", {
|
|
5926
5204
|
enumerable: true,
|
|
5927
|
-
get: function () { return
|
|
5205
|
+
get: function () { return chunkORKGCXG3_cjs.EmlIcon; }
|
|
5928
5206
|
});
|
|
5929
5207
|
Object.defineProperty(exports, "EntityIcon", {
|
|
5930
5208
|
enumerable: true,
|
|
5931
|
-
get: function () { return
|
|
5209
|
+
get: function () { return chunkORKGCXG3_cjs.EntityIcon; }
|
|
5932
5210
|
});
|
|
5933
5211
|
Object.defineProperty(exports, "EntityPill", {
|
|
5934
5212
|
enumerable: true,
|
|
5935
|
-
get: function () { return
|
|
5213
|
+
get: function () { return chunkORKGCXG3_cjs.EntityPill; }
|
|
5936
5214
|
});
|
|
5937
5215
|
Object.defineProperty(exports, "FILE_TYPE_COLORS", {
|
|
5938
5216
|
enumerable: true,
|
|
5939
|
-
get: function () { return
|
|
5217
|
+
get: function () { return chunkORKGCXG3_cjs.FILE_TYPE_COLORS; }
|
|
5940
5218
|
});
|
|
5941
5219
|
Object.defineProperty(exports, "HoverCard", {
|
|
5942
5220
|
enumerable: true,
|
|
5943
|
-
get: function () { return
|
|
5221
|
+
get: function () { return chunkORKGCXG3_cjs.HoverCard; }
|
|
5944
5222
|
});
|
|
5945
5223
|
Object.defineProperty(exports, "HoverCardContent", {
|
|
5946
5224
|
enumerable: true,
|
|
5947
|
-
get: function () { return
|
|
5225
|
+
get: function () { return chunkORKGCXG3_cjs.HoverCardContent; }
|
|
5948
5226
|
});
|
|
5949
5227
|
Object.defineProperty(exports, "HoverCardTrigger", {
|
|
5950
5228
|
enumerable: true,
|
|
5951
|
-
get: function () { return
|
|
5229
|
+
get: function () { return chunkORKGCXG3_cjs.HoverCardTrigger; }
|
|
5952
5230
|
});
|
|
5953
5231
|
Object.defineProperty(exports, "IconToggle", {
|
|
5954
5232
|
enumerable: true,
|
|
5955
|
-
get: function () { return
|
|
5233
|
+
get: function () { return chunkORKGCXG3_cjs.IconToggle; }
|
|
5956
5234
|
});
|
|
5957
5235
|
Object.defineProperty(exports, "ImgIcon", {
|
|
5958
5236
|
enumerable: true,
|
|
5959
|
-
get: function () { return
|
|
5237
|
+
get: function () { return chunkORKGCXG3_cjs.ImgIcon; }
|
|
5960
5238
|
});
|
|
5961
5239
|
Object.defineProperty(exports, "InlineMicButton", {
|
|
5962
5240
|
enumerable: true,
|
|
5963
|
-
get: function () { return
|
|
5241
|
+
get: function () { return chunkORKGCXG3_cjs.InlineMicButton; }
|
|
5964
5242
|
});
|
|
5965
5243
|
Object.defineProperty(exports, "Input", {
|
|
5966
5244
|
enumerable: true,
|
|
5967
|
-
get: function () { return
|
|
5245
|
+
get: function () { return chunkORKGCXG3_cjs.Input; }
|
|
5968
5246
|
});
|
|
5969
5247
|
Object.defineProperty(exports, "Label", {
|
|
5970
5248
|
enumerable: true,
|
|
5971
|
-
get: function () { return
|
|
5249
|
+
get: function () { return chunkORKGCXG3_cjs.Label; }
|
|
5972
5250
|
});
|
|
5973
5251
|
Object.defineProperty(exports, "MarkMenu", {
|
|
5974
5252
|
enumerable: true,
|
|
5975
|
-
get: function () { return
|
|
5253
|
+
get: function () { return chunkORKGCXG3_cjs.MarkMenu; }
|
|
5976
5254
|
});
|
|
5977
5255
|
Object.defineProperty(exports, "MarkdownRenderer", {
|
|
5978
5256
|
enumerable: true,
|
|
5979
|
-
get: function () { return
|
|
5257
|
+
get: function () { return chunkORKGCXG3_cjs.MarkdownRenderer; }
|
|
5980
5258
|
});
|
|
5981
5259
|
Object.defineProperty(exports, "MarkdownStreamingContext", {
|
|
5982
5260
|
enumerable: true,
|
|
5983
|
-
get: function () { return
|
|
5261
|
+
get: function () { return chunkORKGCXG3_cjs.MarkdownStreamingContext; }
|
|
5984
5262
|
});
|
|
5985
5263
|
Object.defineProperty(exports, "MicRecordingOverlay", {
|
|
5986
5264
|
enumerable: true,
|
|
5987
|
-
get: function () { return
|
|
5265
|
+
get: function () { return chunkORKGCXG3_cjs.MicRecordingOverlay; }
|
|
5988
5266
|
});
|
|
5989
5267
|
Object.defineProperty(exports, "MicWaveformIndicator", {
|
|
5990
5268
|
enumerable: true,
|
|
5991
|
-
get: function () { return
|
|
5269
|
+
get: function () { return chunkORKGCXG3_cjs.MicWaveformIndicator; }
|
|
5992
5270
|
});
|
|
5993
5271
|
Object.defineProperty(exports, "NEUTRAL_GRAY", {
|
|
5994
5272
|
enumerable: true,
|
|
5995
|
-
get: function () { return
|
|
5273
|
+
get: function () { return chunkORKGCXG3_cjs.NEUTRAL_GRAY; }
|
|
5996
5274
|
});
|
|
5997
5275
|
Object.defineProperty(exports, "PLACEHOLDER_COLOR", {
|
|
5998
5276
|
enumerable: true,
|
|
5999
|
-
get: function () { return
|
|
5277
|
+
get: function () { return chunkORKGCXG3_cjs.PLACEHOLDER_COLOR; }
|
|
6000
5278
|
});
|
|
6001
5279
|
Object.defineProperty(exports, "PassageCard", {
|
|
6002
5280
|
enumerable: true,
|
|
6003
|
-
get: function () { return
|
|
5281
|
+
get: function () { return chunkORKGCXG3_cjs.PassageCard; }
|
|
6004
5282
|
});
|
|
6005
5283
|
Object.defineProperty(exports, "PdfIcon", {
|
|
6006
5284
|
enumerable: true,
|
|
6007
|
-
get: function () { return
|
|
5285
|
+
get: function () { return chunkORKGCXG3_cjs.PdfIcon; }
|
|
6008
5286
|
});
|
|
6009
5287
|
Object.defineProperty(exports, "Popover", {
|
|
6010
5288
|
enumerable: true,
|
|
6011
|
-
get: function () { return
|
|
5289
|
+
get: function () { return chunkORKGCXG3_cjs.Popover; }
|
|
6012
5290
|
});
|
|
6013
5291
|
Object.defineProperty(exports, "PopoverAnchor", {
|
|
6014
5292
|
enumerable: true,
|
|
6015
|
-
get: function () { return
|
|
5293
|
+
get: function () { return chunkORKGCXG3_cjs.PopoverAnchor; }
|
|
6016
5294
|
});
|
|
6017
5295
|
Object.defineProperty(exports, "PopoverContent", {
|
|
6018
5296
|
enumerable: true,
|
|
6019
|
-
get: function () { return
|
|
5297
|
+
get: function () { return chunkORKGCXG3_cjs.PopoverContent; }
|
|
6020
5298
|
});
|
|
6021
5299
|
Object.defineProperty(exports, "PopoverTrigger", {
|
|
6022
5300
|
enumerable: true,
|
|
6023
|
-
get: function () { return
|
|
5301
|
+
get: function () { return chunkORKGCXG3_cjs.PopoverTrigger; }
|
|
6024
5302
|
});
|
|
6025
5303
|
Object.defineProperty(exports, "PresenceLabel", {
|
|
6026
5304
|
enumerable: true,
|
|
6027
|
-
get: function () { return
|
|
5305
|
+
get: function () { return chunkORKGCXG3_cjs.PresenceLabel; }
|
|
6028
5306
|
});
|
|
6029
5307
|
Object.defineProperty(exports, "Progress", {
|
|
6030
5308
|
enumerable: true,
|
|
6031
|
-
get: function () { return
|
|
5309
|
+
get: function () { return chunkORKGCXG3_cjs.Progress; }
|
|
6032
5310
|
});
|
|
6033
5311
|
Object.defineProperty(exports, "ProjectEntity", {
|
|
6034
5312
|
enumerable: true,
|
|
6035
|
-
get: function () { return
|
|
5313
|
+
get: function () { return chunkORKGCXG3_cjs.ProjectEntity; }
|
|
6036
5314
|
});
|
|
6037
5315
|
Object.defineProperty(exports, "RadioGroup", {
|
|
6038
5316
|
enumerable: true,
|
|
6039
|
-
get: function () { return
|
|
5317
|
+
get: function () { return chunkORKGCXG3_cjs.RadioGroup; }
|
|
6040
5318
|
});
|
|
6041
5319
|
Object.defineProperty(exports, "RadioGroupItem", {
|
|
6042
5320
|
enumerable: true,
|
|
6043
|
-
get: function () { return
|
|
5321
|
+
get: function () { return chunkORKGCXG3_cjs.RadioGroupItem; }
|
|
6044
5322
|
});
|
|
6045
5323
|
Object.defineProperty(exports, "RagDot", {
|
|
6046
5324
|
enumerable: true,
|
|
6047
|
-
get: function () { return
|
|
5325
|
+
get: function () { return chunkORKGCXG3_cjs.RagDot; }
|
|
6048
5326
|
});
|
|
6049
5327
|
Object.defineProperty(exports, "RelevanceDot", {
|
|
6050
5328
|
enumerable: true,
|
|
6051
|
-
get: function () { return
|
|
5329
|
+
get: function () { return chunkORKGCXG3_cjs.RelevanceDot; }
|
|
6052
5330
|
});
|
|
6053
5331
|
Object.defineProperty(exports, "Select", {
|
|
6054
5332
|
enumerable: true,
|
|
6055
|
-
get: function () { return
|
|
5333
|
+
get: function () { return chunkORKGCXG3_cjs.Select; }
|
|
6056
5334
|
});
|
|
6057
5335
|
Object.defineProperty(exports, "SelectContent", {
|
|
6058
5336
|
enumerable: true,
|
|
6059
|
-
get: function () { return
|
|
5337
|
+
get: function () { return chunkORKGCXG3_cjs.SelectContent; }
|
|
6060
5338
|
});
|
|
6061
5339
|
Object.defineProperty(exports, "SelectGroup", {
|
|
6062
5340
|
enumerable: true,
|
|
6063
|
-
get: function () { return
|
|
5341
|
+
get: function () { return chunkORKGCXG3_cjs.SelectGroup; }
|
|
6064
5342
|
});
|
|
6065
5343
|
Object.defineProperty(exports, "SelectItem", {
|
|
6066
5344
|
enumerable: true,
|
|
6067
|
-
get: function () { return
|
|
5345
|
+
get: function () { return chunkORKGCXG3_cjs.SelectItem; }
|
|
6068
5346
|
});
|
|
6069
5347
|
Object.defineProperty(exports, "SelectLabel", {
|
|
6070
5348
|
enumerable: true,
|
|
6071
|
-
get: function () { return
|
|
5349
|
+
get: function () { return chunkORKGCXG3_cjs.SelectLabel; }
|
|
6072
5350
|
});
|
|
6073
5351
|
Object.defineProperty(exports, "SelectScrollDownButton", {
|
|
6074
5352
|
enumerable: true,
|
|
6075
|
-
get: function () { return
|
|
5353
|
+
get: function () { return chunkORKGCXG3_cjs.SelectScrollDownButton; }
|
|
6076
5354
|
});
|
|
6077
5355
|
Object.defineProperty(exports, "SelectScrollUpButton", {
|
|
6078
5356
|
enumerable: true,
|
|
6079
|
-
get: function () { return
|
|
5357
|
+
get: function () { return chunkORKGCXG3_cjs.SelectScrollUpButton; }
|
|
6080
5358
|
});
|
|
6081
5359
|
Object.defineProperty(exports, "SelectSeparator", {
|
|
6082
5360
|
enumerable: true,
|
|
6083
|
-
get: function () { return
|
|
5361
|
+
get: function () { return chunkORKGCXG3_cjs.SelectSeparator; }
|
|
6084
5362
|
});
|
|
6085
5363
|
Object.defineProperty(exports, "SelectTrigger", {
|
|
6086
5364
|
enumerable: true,
|
|
6087
|
-
get: function () { return
|
|
5365
|
+
get: function () { return chunkORKGCXG3_cjs.SelectTrigger; }
|
|
6088
5366
|
});
|
|
6089
5367
|
Object.defineProperty(exports, "SelectValue", {
|
|
6090
5368
|
enumerable: true,
|
|
6091
|
-
get: function () { return
|
|
5369
|
+
get: function () { return chunkORKGCXG3_cjs.SelectValue; }
|
|
6092
5370
|
});
|
|
6093
5371
|
Object.defineProperty(exports, "Separator", {
|
|
6094
5372
|
enumerable: true,
|
|
6095
|
-
get: function () { return
|
|
5373
|
+
get: function () { return chunkORKGCXG3_cjs.Separator; }
|
|
6096
5374
|
});
|
|
6097
5375
|
Object.defineProperty(exports, "Slider", {
|
|
6098
5376
|
enumerable: true,
|
|
6099
|
-
get: function () { return
|
|
5377
|
+
get: function () { return chunkORKGCXG3_cjs.Slider; }
|
|
6100
5378
|
});
|
|
6101
5379
|
Object.defineProperty(exports, "StatusPill", {
|
|
6102
5380
|
enumerable: true,
|
|
6103
|
-
get: function () { return
|
|
5381
|
+
get: function () { return chunkORKGCXG3_cjs.StatusPill; }
|
|
6104
5382
|
});
|
|
6105
5383
|
Object.defineProperty(exports, "Switch", {
|
|
6106
5384
|
enumerable: true,
|
|
6107
|
-
get: function () { return
|
|
5385
|
+
get: function () { return chunkORKGCXG3_cjs.Switch; }
|
|
6108
5386
|
});
|
|
6109
5387
|
Object.defineProperty(exports, "TAG_TYPE_ICONS", {
|
|
6110
5388
|
enumerable: true,
|
|
6111
|
-
get: function () { return
|
|
5389
|
+
get: function () { return chunkORKGCXG3_cjs.TAG_TYPE_ICONS; }
|
|
6112
5390
|
});
|
|
6113
5391
|
Object.defineProperty(exports, "TAG_TYPE_LABELS", {
|
|
6114
5392
|
enumerable: true,
|
|
6115
|
-
get: function () { return
|
|
5393
|
+
get: function () { return chunkORKGCXG3_cjs.TAG_TYPE_LABELS; }
|
|
6116
5394
|
});
|
|
6117
5395
|
Object.defineProperty(exports, "Table", {
|
|
6118
5396
|
enumerable: true,
|
|
6119
|
-
get: function () { return
|
|
5397
|
+
get: function () { return chunkORKGCXG3_cjs.Table; }
|
|
6120
5398
|
});
|
|
6121
5399
|
Object.defineProperty(exports, "TableBody", {
|
|
6122
5400
|
enumerable: true,
|
|
6123
|
-
get: function () { return
|
|
5401
|
+
get: function () { return chunkORKGCXG3_cjs.TableBody; }
|
|
6124
5402
|
});
|
|
6125
5403
|
Object.defineProperty(exports, "TableCaption", {
|
|
6126
5404
|
enumerable: true,
|
|
6127
|
-
get: function () { return
|
|
5405
|
+
get: function () { return chunkORKGCXG3_cjs.TableCaption; }
|
|
6128
5406
|
});
|
|
6129
5407
|
Object.defineProperty(exports, "TableCell", {
|
|
6130
5408
|
enumerable: true,
|
|
6131
|
-
get: function () { return
|
|
5409
|
+
get: function () { return chunkORKGCXG3_cjs.TableCell; }
|
|
6132
5410
|
});
|
|
6133
5411
|
Object.defineProperty(exports, "TableFooter", {
|
|
6134
5412
|
enumerable: true,
|
|
6135
|
-
get: function () { return
|
|
5413
|
+
get: function () { return chunkORKGCXG3_cjs.TableFooter; }
|
|
6136
5414
|
});
|
|
6137
5415
|
Object.defineProperty(exports, "TableHead", {
|
|
6138
5416
|
enumerable: true,
|
|
6139
|
-
get: function () { return
|
|
5417
|
+
get: function () { return chunkORKGCXG3_cjs.TableHead; }
|
|
6140
5418
|
});
|
|
6141
5419
|
Object.defineProperty(exports, "TableHeader", {
|
|
6142
5420
|
enumerable: true,
|
|
6143
|
-
get: function () { return
|
|
5421
|
+
get: function () { return chunkORKGCXG3_cjs.TableHeader; }
|
|
6144
5422
|
});
|
|
6145
5423
|
Object.defineProperty(exports, "TableRow", {
|
|
6146
5424
|
enumerable: true,
|
|
6147
|
-
get: function () { return
|
|
5425
|
+
get: function () { return chunkORKGCXG3_cjs.TableRow; }
|
|
6148
5426
|
});
|
|
6149
5427
|
Object.defineProperty(exports, "Tabs", {
|
|
6150
5428
|
enumerable: true,
|
|
6151
|
-
get: function () { return
|
|
5429
|
+
get: function () { return chunkORKGCXG3_cjs.Tabs; }
|
|
6152
5430
|
});
|
|
6153
5431
|
Object.defineProperty(exports, "TabsContent", {
|
|
6154
5432
|
enumerable: true,
|
|
6155
|
-
get: function () { return
|
|
5433
|
+
get: function () { return chunkORKGCXG3_cjs.TabsContent; }
|
|
6156
5434
|
});
|
|
6157
5435
|
Object.defineProperty(exports, "TabsList", {
|
|
6158
5436
|
enumerable: true,
|
|
6159
|
-
get: function () { return
|
|
5437
|
+
get: function () { return chunkORKGCXG3_cjs.TabsList; }
|
|
6160
5438
|
});
|
|
6161
5439
|
Object.defineProperty(exports, "TabsTrigger", {
|
|
6162
5440
|
enumerable: true,
|
|
6163
|
-
get: function () { return
|
|
5441
|
+
get: function () { return chunkORKGCXG3_cjs.TabsTrigger; }
|
|
6164
5442
|
});
|
|
6165
5443
|
Object.defineProperty(exports, "TagEntity", {
|
|
6166
5444
|
enumerable: true,
|
|
6167
|
-
get: function () { return
|
|
5445
|
+
get: function () { return chunkORKGCXG3_cjs.TagEntity; }
|
|
6168
5446
|
});
|
|
6169
5447
|
Object.defineProperty(exports, "Textarea", {
|
|
6170
5448
|
enumerable: true,
|
|
6171
|
-
get: function () { return
|
|
5449
|
+
get: function () { return chunkORKGCXG3_cjs.Textarea; }
|
|
6172
5450
|
});
|
|
6173
5451
|
Object.defineProperty(exports, "Toggle", {
|
|
6174
5452
|
enumerable: true,
|
|
6175
|
-
get: function () { return
|
|
5453
|
+
get: function () { return chunkORKGCXG3_cjs.Toggle; }
|
|
6176
5454
|
});
|
|
6177
5455
|
Object.defineProperty(exports, "ToggleGroup", {
|
|
6178
5456
|
enumerable: true,
|
|
6179
|
-
get: function () { return
|
|
5457
|
+
get: function () { return chunkORKGCXG3_cjs.ToggleGroup; }
|
|
6180
5458
|
});
|
|
6181
5459
|
Object.defineProperty(exports, "ToggleGroupItem", {
|
|
6182
5460
|
enumerable: true,
|
|
6183
|
-
get: function () { return
|
|
5461
|
+
get: function () { return chunkORKGCXG3_cjs.ToggleGroupItem; }
|
|
6184
5462
|
});
|
|
6185
5463
|
Object.defineProperty(exports, "Tooltip", {
|
|
6186
5464
|
enumerable: true,
|
|
6187
|
-
get: function () { return
|
|
5465
|
+
get: function () { return chunkORKGCXG3_cjs.Tooltip; }
|
|
6188
5466
|
});
|
|
6189
5467
|
Object.defineProperty(exports, "TooltipContent", {
|
|
6190
5468
|
enumerable: true,
|
|
6191
|
-
get: function () { return
|
|
5469
|
+
get: function () { return chunkORKGCXG3_cjs.TooltipContent; }
|
|
6192
5470
|
});
|
|
6193
5471
|
Object.defineProperty(exports, "TooltipProvider", {
|
|
6194
5472
|
enumerable: true,
|
|
6195
|
-
get: function () { return
|
|
5473
|
+
get: function () { return chunkORKGCXG3_cjs.TooltipProvider; }
|
|
6196
5474
|
});
|
|
6197
5475
|
Object.defineProperty(exports, "TooltipTrigger", {
|
|
6198
5476
|
enumerable: true,
|
|
6199
|
-
get: function () { return
|
|
5477
|
+
get: function () { return chunkORKGCXG3_cjs.TooltipTrigger; }
|
|
6200
5478
|
});
|
|
6201
5479
|
Object.defineProperty(exports, "UserEntity", {
|
|
6202
5480
|
enumerable: true,
|
|
6203
|
-
get: function () { return
|
|
5481
|
+
get: function () { return chunkORKGCXG3_cjs.UserEntity; }
|
|
6204
5482
|
});
|
|
6205
5483
|
Object.defineProperty(exports, "UserMenu", {
|
|
6206
5484
|
enumerable: true,
|
|
6207
|
-
get: function () { return
|
|
5485
|
+
get: function () { return chunkORKGCXG3_cjs.UserMenu; }
|
|
6208
5486
|
});
|
|
6209
5487
|
Object.defineProperty(exports, "VISIBILITY_ICONS", {
|
|
6210
5488
|
enumerable: true,
|
|
6211
|
-
get: function () { return
|
|
5489
|
+
get: function () { return chunkORKGCXG3_cjs.VISIBILITY_ICONS; }
|
|
6212
5490
|
});
|
|
6213
5491
|
Object.defineProperty(exports, "VidIcon", {
|
|
6214
5492
|
enumerable: true,
|
|
6215
|
-
get: function () { return
|
|
5493
|
+
get: function () { return chunkORKGCXG3_cjs.VidIcon; }
|
|
6216
5494
|
});
|
|
6217
5495
|
Object.defineProperty(exports, "VisibilityIcon", {
|
|
6218
5496
|
enumerable: true,
|
|
6219
|
-
get: function () { return
|
|
5497
|
+
get: function () { return chunkORKGCXG3_cjs.VisibilityIcon; }
|
|
6220
5498
|
});
|
|
6221
5499
|
Object.defineProperty(exports, "badgeVariants", {
|
|
6222
5500
|
enumerable: true,
|
|
6223
|
-
get: function () { return
|
|
5501
|
+
get: function () { return chunkORKGCXG3_cjs.badgeVariants; }
|
|
6224
5502
|
});
|
|
6225
5503
|
Object.defineProperty(exports, "buttonVariants", {
|
|
6226
5504
|
enumerable: true,
|
|
6227
|
-
get: function () { return
|
|
5505
|
+
get: function () { return chunkORKGCXG3_cjs.buttonVariants; }
|
|
6228
5506
|
});
|
|
6229
5507
|
Object.defineProperty(exports, "cardVariants", {
|
|
6230
5508
|
enumerable: true,
|
|
6231
|
-
get: function () { return
|
|
5509
|
+
get: function () { return chunkORKGCXG3_cjs.cardVariants; }
|
|
6232
5510
|
});
|
|
6233
5511
|
Object.defineProperty(exports, "configureEntityRegistry", {
|
|
6234
5512
|
enumerable: true,
|
|
6235
|
-
get: function () { return
|
|
5513
|
+
get: function () { return chunkORKGCXG3_cjs.configureEntityRegistry; }
|
|
6236
5514
|
});
|
|
6237
5515
|
Object.defineProperty(exports, "configureRagLabels", {
|
|
6238
5516
|
enumerable: true,
|
|
6239
|
-
get: function () { return
|
|
5517
|
+
get: function () { return chunkORKGCXG3_cjs.configureRagLabels; }
|
|
6240
5518
|
});
|
|
6241
5519
|
Object.defineProperty(exports, "configureStatusRegistry", {
|
|
6242
5520
|
enumerable: true,
|
|
6243
|
-
get: function () { return
|
|
5521
|
+
get: function () { return chunkORKGCXG3_cjs.configureStatusRegistry; }
|
|
6244
5522
|
});
|
|
6245
5523
|
Object.defineProperty(exports, "formatElapsed", {
|
|
6246
5524
|
enumerable: true,
|
|
6247
|
-
get: function () { return
|
|
5525
|
+
get: function () { return chunkORKGCXG3_cjs.formatElapsed; }
|
|
6248
5526
|
});
|
|
6249
5527
|
Object.defineProperty(exports, "getDocIcon", {
|
|
6250
5528
|
enumerable: true,
|
|
6251
|
-
get: function () { return
|
|
5529
|
+
get: function () { return chunkORKGCXG3_cjs.getDocIcon; }
|
|
6252
5530
|
});
|
|
6253
5531
|
Object.defineProperty(exports, "getEntityColor", {
|
|
6254
5532
|
enumerable: true,
|
|
6255
|
-
get: function () { return
|
|
5533
|
+
get: function () { return chunkORKGCXG3_cjs.getEntityColor; }
|
|
6256
5534
|
});
|
|
6257
5535
|
Object.defineProperty(exports, "getEntityColorStyles", {
|
|
6258
5536
|
enumerable: true,
|
|
6259
|
-
get: function () { return
|
|
5537
|
+
get: function () { return chunkORKGCXG3_cjs.getEntityColorStyles; }
|
|
6260
5538
|
});
|
|
6261
5539
|
Object.defineProperty(exports, "getEntityIcon", {
|
|
6262
5540
|
enumerable: true,
|
|
6263
|
-
get: function () { return
|
|
5541
|
+
get: function () { return chunkORKGCXG3_cjs.getEntityIcon; }
|
|
6264
5542
|
});
|
|
6265
5543
|
Object.defineProperty(exports, "getEntityLabel", {
|
|
6266
5544
|
enumerable: true,
|
|
6267
|
-
get: function () { return
|
|
5545
|
+
get: function () { return chunkORKGCXG3_cjs.getEntityLabel; }
|
|
6268
5546
|
});
|
|
6269
5547
|
Object.defineProperty(exports, "getStatusVariant", {
|
|
6270
5548
|
enumerable: true,
|
|
6271
|
-
get: function () { return
|
|
5549
|
+
get: function () { return chunkORKGCXG3_cjs.getStatusVariant; }
|
|
6272
5550
|
});
|
|
6273
5551
|
Object.defineProperty(exports, "getTagTypeIcon", {
|
|
6274
5552
|
enumerable: true,
|
|
6275
|
-
get: function () { return
|
|
5553
|
+
get: function () { return chunkORKGCXG3_cjs.getTagTypeIcon; }
|
|
6276
5554
|
});
|
|
6277
5555
|
Object.defineProperty(exports, "getTagTypeLabel", {
|
|
6278
5556
|
enumerable: true,
|
|
6279
|
-
get: function () { return
|
|
5557
|
+
get: function () { return chunkORKGCXG3_cjs.getTagTypeLabel; }
|
|
6280
5558
|
});
|
|
6281
5559
|
Object.defineProperty(exports, "getWorkspaceColor", {
|
|
6282
5560
|
enumerable: true,
|
|
6283
|
-
get: function () { return
|
|
5561
|
+
get: function () { return chunkORKGCXG3_cjs.getWorkspaceColor; }
|
|
6284
5562
|
});
|
|
6285
5563
|
Object.defineProperty(exports, "markdownBaseComponents", {
|
|
6286
5564
|
enumerable: true,
|
|
6287
|
-
get: function () { return
|
|
5565
|
+
get: function () { return chunkORKGCXG3_cjs.markdownBaseComponents; }
|
|
5566
|
+
});
|
|
5567
|
+
Object.defineProperty(exports, "normalizeCitationMarkup", {
|
|
5568
|
+
enumerable: true,
|
|
5569
|
+
get: function () { return chunkORKGCXG3_cjs.normalizeCitationMarkup; }
|
|
6288
5570
|
});
|
|
6289
5571
|
Object.defineProperty(exports, "splitMarkdownBlocks", {
|
|
6290
5572
|
enumerable: true,
|
|
6291
|
-
get: function () { return
|
|
5573
|
+
get: function () { return chunkORKGCXG3_cjs.splitMarkdownBlocks; }
|
|
6292
5574
|
});
|
|
6293
5575
|
Object.defineProperty(exports, "toggleVariants", {
|
|
6294
5576
|
enumerable: true,
|
|
6295
|
-
get: function () { return
|
|
5577
|
+
get: function () { return chunkORKGCXG3_cjs.toggleVariants; }
|
|
6296
5578
|
});
|
|
6297
5579
|
Object.defineProperty(exports, "useAudioRecorder", {
|
|
6298
5580
|
enumerable: true,
|
|
6299
|
-
get: function () { return
|
|
5581
|
+
get: function () { return chunkORKGCXG3_cjs.useAudioRecorder; }
|
|
6300
5582
|
});
|
|
6301
5583
|
Object.defineProperty(exports, "DropdownMenu", {
|
|
6302
5584
|
enumerable: true,
|
|
@@ -6395,8 +5677,6 @@ exports.AiActionCard = AiActionCard;
|
|
|
6395
5677
|
exports.AiAnswer = AiAnswer;
|
|
6396
5678
|
exports.AppleIcon = AppleIcon;
|
|
6397
5679
|
exports.ArbiBotIcon = ArbiBotIcon;
|
|
6398
|
-
exports.ArbiChat = ArbiChat;
|
|
6399
|
-
exports.ArbiChatPanel = ArbiChatPanel;
|
|
6400
5680
|
exports.ArbiIcon = ArbiIcon;
|
|
6401
5681
|
exports.ArbiWebSocketProvider = ArbiWebSocketProvider;
|
|
6402
5682
|
exports.ArtifactCanvas = ArtifactCanvas;
|
|
@@ -6429,7 +5709,7 @@ exports.ImageCropModal = ImageCropModal;
|
|
|
6429
5709
|
exports.ImageCropper = ImageCropper;
|
|
6430
5710
|
exports.LinkedInIcon = LinkedInIcon;
|
|
6431
5711
|
exports.MessageArtifactCard = MessageArtifactCard;
|
|
6432
|
-
exports.MessageBubble =
|
|
5712
|
+
exports.MessageBubble = MessageBubble;
|
|
6433
5713
|
exports.MessageThread = MessageThread;
|
|
6434
5714
|
exports.OpenAIIcon = OpenAIIcon;
|
|
6435
5715
|
exports.PhotoCapture = PhotoCapture;
|
|
@@ -6449,18 +5729,25 @@ exports.dayKey = dayKey;
|
|
|
6449
5729
|
exports.describeActivity = describeActivity;
|
|
6450
5730
|
exports.getNotificationTypeMeta = getNotificationTypeMeta;
|
|
6451
5731
|
exports.getWorkspaceActionText = getWorkspaceActionText;
|
|
5732
|
+
exports.getWorkspaceKind = getWorkspaceKind;
|
|
6452
5733
|
exports.getWorkspaceSentPhrase = getWorkspaceSentPhrase;
|
|
6453
5734
|
exports.hasVideoTrack = hasVideoTrack;
|
|
6454
5735
|
exports.isWorkspaceNotificationType = isWorkspaceNotificationType;
|
|
6455
5736
|
exports.parseActivityContent = parseActivityContent;
|
|
5737
|
+
exports.pickRecentWorkspaces = pickRecentWorkspaces;
|
|
6456
5738
|
exports.redlineStats = redlineStats;
|
|
5739
|
+
exports.resolveActiveWorkspace = resolveActiveWorkspace;
|
|
6457
5740
|
exports.textToArtifact = textToArtifact;
|
|
5741
|
+
exports.titleFromQuestion = titleFromQuestion;
|
|
6458
5742
|
exports.toRedlineMarkdown = toRedlineMarkdown;
|
|
5743
|
+
exports.toShellWorkspace = toShellWorkspace;
|
|
6459
5744
|
exports.useActivity = useActivity;
|
|
6460
5745
|
exports.useAgents = useAgents;
|
|
6461
5746
|
exports.useAiTask = useAiTask;
|
|
5747
|
+
exports.useArbiChat = useArbiChat;
|
|
6462
5748
|
exports.useArbiConnected = useArbiConnected;
|
|
6463
5749
|
exports.useArbiDocumentSync = useArbiDocumentSync;
|
|
5750
|
+
exports.useArbiShellWorkspaces = useArbiShellWorkspaces;
|
|
6464
5751
|
exports.useArbiUiStore = useArbiUiStore;
|
|
6465
5752
|
exports.useArbiWebSocket = useArbiWebSocket;
|
|
6466
5753
|
exports.useArbiWsContext = useArbiWsContext;
|
|
@@ -6486,6 +5773,7 @@ exports.useProjects = useProjects;
|
|
|
6486
5773
|
exports.useProjectsUsage = useProjectsUsage;
|
|
6487
5774
|
exports.useSemanticSearch = useSemanticSearch;
|
|
6488
5775
|
exports.useSessions = useSessions;
|
|
5776
|
+
exports.useShellWorkspaces = useShellWorkspaces;
|
|
6489
5777
|
exports.useTags = useTags;
|
|
6490
5778
|
exports.useTasks = useTasks;
|
|
6491
5779
|
exports.useThumbnails = useThumbnails;
|