@arbidocs/react 0.3.174 → 0.3.176
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/dist/chunk-7IOCMCC5.cjs +99 -0
- package/dist/chunk-7IOCMCC5.cjs.map +1 -0
- package/dist/{chunk-ZYHVJM4V.cjs → chunk-FIPS3VPH.cjs} +15 -9
- package/dist/chunk-FIPS3VPH.cjs.map +1 -0
- package/dist/{chunk-QZAXTBVW.js → chunk-I256BUCX.js} +15 -10
- package/dist/chunk-I256BUCX.js.map +1 -0
- package/dist/chunk-JKO3NR5L.js +93 -0
- package/dist/chunk-JKO3NR5L.js.map +1 -0
- package/dist/index.cjs +686 -331
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +135 -1
- package/dist/index.d.ts +135 -1
- package/dist/index.js +357 -7
- package/dist/index.js.map +1 -1
- package/dist/ui/index.cjs +109 -109
- package/dist/ui/index.js +1 -1
- package/dist/viewers/index.cjs +14 -58
- package/dist/viewers/index.cjs.map +1 -1
- package/dist/viewers/index.js +3 -53
- package/dist/viewers/index.js.map +1 -1
- package/package.json +3 -3
- package/dist/chunk-Q6XAXIT3.js +0 -43
- package/dist/chunk-Q6XAXIT3.js.map +0 -1
- package/dist/chunk-QZAXTBVW.js.map +0 -1
- package/dist/chunk-RWCMW36I.cjs +0 -47
- package/dist/chunk-RWCMW36I.cjs.map +0 -1
- package/dist/chunk-ZYHVJM4V.cjs.map +0 -1
package/dist/index.cjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
var
|
|
3
|
+
var chunkFIPS3VPH_cjs = require('./chunk-FIPS3VPH.cjs');
|
|
4
|
+
var chunk7IOCMCC5_cjs = require('./chunk-7IOCMCC5.cjs');
|
|
5
5
|
var React2 = require('react');
|
|
6
6
|
var reactQuery = require('@tanstack/react-query');
|
|
7
7
|
var jsxRuntime = require('react/jsx-runtime');
|
|
@@ -346,7 +346,7 @@ function agentStatusStyle(theme) {
|
|
|
346
346
|
};
|
|
347
347
|
}
|
|
348
348
|
function AuthScreen({ theme, labels, onLogin }) {
|
|
349
|
-
const arbi =
|
|
349
|
+
const arbi = chunk7IOCMCC5_cjs.useArbi();
|
|
350
350
|
const [mode, setMode] = React2.useState("login");
|
|
351
351
|
const [step, setStep] = React2.useState("email");
|
|
352
352
|
const [email, setEmail] = React2.useState("");
|
|
@@ -603,7 +603,7 @@ var arbiQueryKeys = {
|
|
|
603
603
|
userUsageToday: () => ["arbi", "userUsageToday"]
|
|
604
604
|
};
|
|
605
605
|
function useWorkspaces(options) {
|
|
606
|
-
const arbi =
|
|
606
|
+
const arbi = chunk7IOCMCC5_cjs.useArbi();
|
|
607
607
|
return reactQuery.useQuery({
|
|
608
608
|
queryKey: arbiQueryKeys.workspaces(),
|
|
609
609
|
queryFn: () => arbi.workspaces.list(),
|
|
@@ -611,7 +611,7 @@ function useWorkspaces(options) {
|
|
|
611
611
|
});
|
|
612
612
|
}
|
|
613
613
|
function useDocuments(workspaceId, options) {
|
|
614
|
-
const arbi =
|
|
614
|
+
const arbi = chunk7IOCMCC5_cjs.useArbi();
|
|
615
615
|
return reactQuery.useQuery({
|
|
616
616
|
queryKey: arbiQueryKeys.documents(workspaceId ?? ""),
|
|
617
617
|
queryFn: () => arbi.documents.list(),
|
|
@@ -619,7 +619,7 @@ function useDocuments(workspaceId, options) {
|
|
|
619
619
|
});
|
|
620
620
|
}
|
|
621
621
|
function useConversations(workspaceId, options) {
|
|
622
|
-
const arbi =
|
|
622
|
+
const arbi = chunk7IOCMCC5_cjs.useArbi();
|
|
623
623
|
return reactQuery.useQuery({
|
|
624
624
|
queryKey: arbiQueryKeys.conversations(workspaceId ?? ""),
|
|
625
625
|
queryFn: () => arbi.conversations.list(),
|
|
@@ -627,7 +627,7 @@ function useConversations(workspaceId, options) {
|
|
|
627
627
|
});
|
|
628
628
|
}
|
|
629
629
|
function useTags(workspaceId, options) {
|
|
630
|
-
const arbi =
|
|
630
|
+
const arbi = chunk7IOCMCC5_cjs.useArbi();
|
|
631
631
|
return reactQuery.useQuery({
|
|
632
632
|
queryKey: arbiQueryKeys.tags(workspaceId ?? ""),
|
|
633
633
|
queryFn: () => arbi.tags.list(),
|
|
@@ -635,7 +635,7 @@ function useTags(workspaceId, options) {
|
|
|
635
635
|
});
|
|
636
636
|
}
|
|
637
637
|
function useThumbnails(docIds, options) {
|
|
638
|
-
const arbi =
|
|
638
|
+
const arbi = chunk7IOCMCC5_cjs.useArbi();
|
|
639
639
|
return reactQuery.useQuery({
|
|
640
640
|
queryKey: arbiQueryKeys.thumbnails(docIds),
|
|
641
641
|
queryFn: () => arbi.documents.getThumbnails(docIds),
|
|
@@ -644,7 +644,7 @@ function useThumbnails(docIds, options) {
|
|
|
644
644
|
});
|
|
645
645
|
}
|
|
646
646
|
function useParsedDocument(docId, stage = "final", options) {
|
|
647
|
-
const arbi =
|
|
647
|
+
const arbi = chunk7IOCMCC5_cjs.useArbi();
|
|
648
648
|
return reactQuery.useQuery({
|
|
649
649
|
queryKey: arbiQueryKeys.parsedDoc(docId ?? "", stage),
|
|
650
650
|
queryFn: () => arbi.documents.getParsedContent(docId, stage),
|
|
@@ -652,13 +652,13 @@ function useParsedDocument(docId, stage = "final", options) {
|
|
|
652
652
|
});
|
|
653
653
|
}
|
|
654
654
|
function useAssistantQuery() {
|
|
655
|
-
const arbi =
|
|
655
|
+
const arbi = chunk7IOCMCC5_cjs.useArbi();
|
|
656
656
|
return reactQuery.useMutation({
|
|
657
657
|
mutationFn: ({ question, ...options }) => arbi.assistant.query(question, options)
|
|
658
658
|
});
|
|
659
659
|
}
|
|
660
660
|
function useAgents(options) {
|
|
661
|
-
const arbi =
|
|
661
|
+
const arbi = chunk7IOCMCC5_cjs.useArbi();
|
|
662
662
|
return reactQuery.useQuery({
|
|
663
663
|
queryKey: arbiQueryKeys.agents(),
|
|
664
664
|
queryFn: () => arbi.agents.list(),
|
|
@@ -666,13 +666,13 @@ function useAgents(options) {
|
|
|
666
666
|
});
|
|
667
667
|
}
|
|
668
668
|
function useDeleteAgents() {
|
|
669
|
-
const arbi =
|
|
669
|
+
const arbi = chunk7IOCMCC5_cjs.useArbi();
|
|
670
670
|
return reactQuery.useMutation({
|
|
671
671
|
mutationFn: ({ agentExtIds }) => arbi.agents.delete(agentExtIds)
|
|
672
672
|
});
|
|
673
673
|
}
|
|
674
674
|
function useSessions(options) {
|
|
675
|
-
const arbi =
|
|
675
|
+
const arbi = chunk7IOCMCC5_cjs.useArbi();
|
|
676
676
|
return reactQuery.useQuery({
|
|
677
677
|
queryKey: arbiQueryKeys.sessions(),
|
|
678
678
|
queryFn: () => arbi.sessions.list(),
|
|
@@ -680,7 +680,7 @@ function useSessions(options) {
|
|
|
680
680
|
});
|
|
681
681
|
}
|
|
682
682
|
function useHealth(options) {
|
|
683
|
-
const arbi =
|
|
683
|
+
const arbi = chunk7IOCMCC5_cjs.useArbi();
|
|
684
684
|
return reactQuery.useQuery({
|
|
685
685
|
queryKey: arbiQueryKeys.health(),
|
|
686
686
|
queryFn: () => arbi.health.check(),
|
|
@@ -688,7 +688,7 @@ function useHealth(options) {
|
|
|
688
688
|
});
|
|
689
689
|
}
|
|
690
690
|
function useTasks(options) {
|
|
691
|
-
const arbi =
|
|
691
|
+
const arbi = chunk7IOCMCC5_cjs.useArbi();
|
|
692
692
|
return reactQuery.useQuery({
|
|
693
693
|
queryKey: arbiQueryKeys.tasks(),
|
|
694
694
|
queryFn: () => arbi.tasks.list(),
|
|
@@ -696,7 +696,7 @@ function useTasks(options) {
|
|
|
696
696
|
});
|
|
697
697
|
}
|
|
698
698
|
function useFacts(workspaceId, options) {
|
|
699
|
-
const arbi =
|
|
699
|
+
const arbi = chunk7IOCMCC5_cjs.useArbi();
|
|
700
700
|
return reactQuery.useQuery({
|
|
701
701
|
queryKey: arbiQueryKeys.facts(workspaceId ?? ""),
|
|
702
702
|
queryFn: () => arbi.facts.list({ pinnedOnly: options?.pinnedOnly }),
|
|
@@ -704,7 +704,7 @@ function useFacts(workspaceId, options) {
|
|
|
704
704
|
});
|
|
705
705
|
}
|
|
706
706
|
function useConfigs(options) {
|
|
707
|
-
const arbi =
|
|
707
|
+
const arbi = chunk7IOCMCC5_cjs.useArbi();
|
|
708
708
|
return reactQuery.useQuery({
|
|
709
709
|
queryKey: arbiQueryKeys.configs(),
|
|
710
710
|
queryFn: () => arbi.agentConfig.list(),
|
|
@@ -712,7 +712,7 @@ function useConfigs(options) {
|
|
|
712
712
|
});
|
|
713
713
|
}
|
|
714
714
|
function useActivity(options) {
|
|
715
|
-
const arbi =
|
|
715
|
+
const arbi = chunk7IOCMCC5_cjs.useArbi();
|
|
716
716
|
return reactQuery.useQuery({
|
|
717
717
|
queryKey: arbiQueryKeys.activity(),
|
|
718
718
|
queryFn: () => arbi.dm.listActivity({ limit: options?.limit, offset: options?.offset }),
|
|
@@ -720,7 +720,7 @@ function useActivity(options) {
|
|
|
720
720
|
});
|
|
721
721
|
}
|
|
722
722
|
function useProjects(options) {
|
|
723
|
-
const arbi =
|
|
723
|
+
const arbi = chunk7IOCMCC5_cjs.useArbi();
|
|
724
724
|
return reactQuery.useQuery({
|
|
725
725
|
queryKey: arbiQueryKeys.projects(),
|
|
726
726
|
queryFn: () => arbi.projects.list(),
|
|
@@ -728,7 +728,7 @@ function useProjects(options) {
|
|
|
728
728
|
});
|
|
729
729
|
}
|
|
730
730
|
function useProjectUsage(projectExtId, monthsBack = 0, options) {
|
|
731
|
-
const arbi =
|
|
731
|
+
const arbi = chunk7IOCMCC5_cjs.useArbi();
|
|
732
732
|
return reactQuery.useQuery({
|
|
733
733
|
queryKey: arbiQueryKeys.projectUsage(projectExtId ?? "", monthsBack),
|
|
734
734
|
queryFn: () => arbi.projects.usage(projectExtId, monthsBack),
|
|
@@ -736,7 +736,7 @@ function useProjectUsage(projectExtId, monthsBack = 0, options) {
|
|
|
736
736
|
});
|
|
737
737
|
}
|
|
738
738
|
function useProjectsUsage(projectExtIds, monthsBack = 0, options) {
|
|
739
|
-
const arbi =
|
|
739
|
+
const arbi = chunk7IOCMCC5_cjs.useArbi();
|
|
740
740
|
const enabled = (options?.enabled ?? true) && arbi.isLoggedIn;
|
|
741
741
|
const results = reactQuery.useQueries({
|
|
742
742
|
queries: projectExtIds.map((id) => ({
|
|
@@ -801,7 +801,7 @@ function useProjectsUsage(projectExtIds, monthsBack = 0, options) {
|
|
|
801
801
|
}, [signature]);
|
|
802
802
|
}
|
|
803
803
|
function useProjectInvoices(projectExtId, options) {
|
|
804
|
-
const arbi =
|
|
804
|
+
const arbi = chunk7IOCMCC5_cjs.useArbi();
|
|
805
805
|
return reactQuery.useQuery({
|
|
806
806
|
queryKey: arbiQueryKeys.projectInvoices(projectExtId ?? ""),
|
|
807
807
|
queryFn: () => arbi.projects.invoices(projectExtId),
|
|
@@ -809,7 +809,7 @@ function useProjectInvoices(projectExtId, options) {
|
|
|
809
809
|
});
|
|
810
810
|
}
|
|
811
811
|
function useUserUsageToday(options) {
|
|
812
|
-
const arbi =
|
|
812
|
+
const arbi = chunk7IOCMCC5_cjs.useArbi();
|
|
813
813
|
return reactQuery.useQuery({
|
|
814
814
|
queryKey: arbiQueryKeys.userUsageToday(),
|
|
815
815
|
queryFn: () => arbi.user.usageToday(),
|
|
@@ -817,7 +817,7 @@ function useUserUsageToday(options) {
|
|
|
817
817
|
});
|
|
818
818
|
}
|
|
819
819
|
function WorkspaceScreen({ theme, labels, onSelect }) {
|
|
820
|
-
const arbi =
|
|
820
|
+
const arbi = chunk7IOCMCC5_cjs.useArbi();
|
|
821
821
|
const { data: workspaces, isLoading } = useWorkspaces();
|
|
822
822
|
const [mode, setMode] = React2.useState("select");
|
|
823
823
|
const [selected, setSelected] = React2.useState("");
|
|
@@ -989,7 +989,7 @@ function MessageBubble({ message, theme }) {
|
|
|
989
989
|
[theme]
|
|
990
990
|
);
|
|
991
991
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
992
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { style: messageBubbleStyle(theme, message.role), children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
992
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { style: messageBubbleStyle(theme, message.role), children: /* @__PURE__ */ jsxRuntime.jsx(chunkFIPS3VPH_cjs.MarkdownRenderer, { components: markdownComponents, children: message.text }) }),
|
|
993
993
|
activeSummary && activeResolved && /* @__PURE__ */ jsxRuntime.jsxs("div", { style: citePanelStyle(theme), children: [
|
|
994
994
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { style: citePanelHeaderStyle(theme), children: [
|
|
995
995
|
/* @__PURE__ */ jsxRuntime.jsxs("strong", { children: [
|
|
@@ -1054,7 +1054,7 @@ function citeChunkStyle(theme) {
|
|
|
1054
1054
|
};
|
|
1055
1055
|
}
|
|
1056
1056
|
function ChatView({ workspaceId, theme, labels }) {
|
|
1057
|
-
const arbi =
|
|
1057
|
+
const arbi = chunk7IOCMCC5_cjs.useArbi();
|
|
1058
1058
|
const { data: docs, refetch: refetchDocs } = useDocuments(workspaceId);
|
|
1059
1059
|
const mutation = useAssistantQuery();
|
|
1060
1060
|
const [messages, setMessages] = React2.useState([]);
|
|
@@ -1234,7 +1234,7 @@ function ChatView({ workspaceId, theme, labels }) {
|
|
|
1234
1234
|
] });
|
|
1235
1235
|
}
|
|
1236
1236
|
function ChatWidget({ theme, labels, initialWorkspaceId, width, height }) {
|
|
1237
|
-
const arbi =
|
|
1237
|
+
const arbi = chunk7IOCMCC5_cjs.useArbi();
|
|
1238
1238
|
const [screen, setScreen] = React2.useState("auth");
|
|
1239
1239
|
const [workspaceId, setWorkspaceId] = React2.useState(initialWorkspaceId);
|
|
1240
1240
|
const resolveWorkspace = React2.useCallback(async () => {
|
|
@@ -1324,7 +1324,7 @@ function ArbiChat({
|
|
|
1324
1324
|
}),
|
|
1325
1325
|
[]
|
|
1326
1326
|
);
|
|
1327
|
-
return /* @__PURE__ */ jsxRuntime.jsx(reactQuery.QueryClientProvider, { client: queryClient, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1327
|
+
return /* @__PURE__ */ jsxRuntime.jsx(reactQuery.QueryClientProvider, { client: queryClient, children: /* @__PURE__ */ jsxRuntime.jsx(chunk7IOCMCC5_cjs.ArbiProvider, { url, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1328
1328
|
ArbiChatPanel,
|
|
1329
1329
|
{
|
|
1330
1330
|
workspaceId,
|
|
@@ -1373,12 +1373,12 @@ var ChatBubble = React2.memo(function ChatBubble2({
|
|
|
1373
1373
|
}
|
|
1374
1374
|
);
|
|
1375
1375
|
}
|
|
1376
|
-
const bubbleRadius =
|
|
1376
|
+
const bubbleRadius = chunkFIPS3VPH_cjs.cn(
|
|
1377
1377
|
"rounded-2xl",
|
|
1378
1378
|
isSent && isLastOfRun && "rounded-br-sm",
|
|
1379
1379
|
!isSent && isLastOfRun && "rounded-bl-sm"
|
|
1380
1380
|
);
|
|
1381
|
-
const bubbleSurface = isSent ?
|
|
1381
|
+
const bubbleSurface = isSent ? chunkFIPS3VPH_cjs.cn("bg-ai-accent-soft text-foreground chat-bubble-sent", classNames?.ownBubble) : chunkFIPS3VPH_cjs.cn("border border-border bg-card text-card-foreground", classNames?.peerBubble);
|
|
1382
1382
|
const highlightClass = highlighted && "ring-2 ring-blue-400 dark:ring-blue-600";
|
|
1383
1383
|
const copyLinkButton = onCopyLink && /* @__PURE__ */ jsxRuntime.jsx(
|
|
1384
1384
|
"button",
|
|
@@ -1386,7 +1386,7 @@ var ChatBubble = React2.memo(function ChatBubble2({
|
|
|
1386
1386
|
onClick: onCopyLink,
|
|
1387
1387
|
onFocus: () => setIsFocused(true),
|
|
1388
1388
|
onBlur: () => setIsFocused(false),
|
|
1389
|
-
className:
|
|
1389
|
+
className: chunkFIPS3VPH_cjs.cn(
|
|
1390
1390
|
"self-end p-1 transition-opacity focus:outline-none focus-visible:ring-1 focus-visible:ring-ring rounded",
|
|
1391
1391
|
showActions ? "opacity-100 text-foreground" : "opacity-0 text-muted-foreground"
|
|
1392
1392
|
),
|
|
@@ -1399,7 +1399,7 @@ var ChatBubble = React2.memo(function ChatBubble2({
|
|
|
1399
1399
|
{
|
|
1400
1400
|
id,
|
|
1401
1401
|
"data-testid": testId,
|
|
1402
|
-
className:
|
|
1402
|
+
className: chunkFIPS3VPH_cjs.cn(
|
|
1403
1403
|
"flex w-full items-end",
|
|
1404
1404
|
isLastOfRun ? "mb-2" : "mb-0.5",
|
|
1405
1405
|
isSent ? "justify-end" : "justify-start"
|
|
@@ -1415,7 +1415,7 @@ var ChatBubble = React2.memo(function ChatBubble2({
|
|
|
1415
1415
|
onClick: onDelete,
|
|
1416
1416
|
onFocus: () => setIsFocused(true),
|
|
1417
1417
|
onBlur: () => setIsFocused(false),
|
|
1418
|
-
className:
|
|
1418
|
+
className: chunkFIPS3VPH_cjs.cn(
|
|
1419
1419
|
"self-end p-1 transition-opacity focus:outline-none focus-visible:ring-1 focus-visible:ring-ring rounded",
|
|
1420
1420
|
showActions ? "opacity-100 text-destructive" : "opacity-0 text-muted-foreground"
|
|
1421
1421
|
),
|
|
@@ -1427,7 +1427,7 @@ var ChatBubble = React2.memo(function ChatBubble2({
|
|
|
1427
1427
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-col max-w-[80%] md:max-w-[60%]", children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1428
1428
|
"div",
|
|
1429
1429
|
{
|
|
1430
|
-
className:
|
|
1430
|
+
className: chunkFIPS3VPH_cjs.cn(
|
|
1431
1431
|
"px-3.5 py-2 break-words shadow-sm transition-shadow",
|
|
1432
1432
|
bubbleRadius,
|
|
1433
1433
|
bubbleSurface,
|
|
@@ -1438,7 +1438,7 @@ var ChatBubble = React2.memo(function ChatBubble2({
|
|
|
1438
1438
|
isLastOfRun && /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1439
1439
|
"div",
|
|
1440
1440
|
{
|
|
1441
|
-
className:
|
|
1441
|
+
className: chunkFIPS3VPH_cjs.cn(
|
|
1442
1442
|
"flex items-center gap-1.5 mt-0.5",
|
|
1443
1443
|
isSent ? "justify-end" : "justify-start"
|
|
1444
1444
|
),
|
|
@@ -1459,7 +1459,7 @@ var ChatBubble = React2.memo(function ChatBubble2({
|
|
|
1459
1459
|
onClick: onDelete,
|
|
1460
1460
|
onFocus: () => setIsFocused(true),
|
|
1461
1461
|
onBlur: () => setIsFocused(false),
|
|
1462
|
-
className:
|
|
1462
|
+
className: chunkFIPS3VPH_cjs.cn(
|
|
1463
1463
|
"self-end p-1 transition-opacity focus:outline-none focus-visible:ring-1 focus-visible:ring-ring rounded",
|
|
1464
1464
|
showActions ? "opacity-100 text-destructive" : "opacity-0 text-muted-foreground"
|
|
1465
1465
|
),
|
|
@@ -1492,7 +1492,7 @@ function useArbiWsContext() {
|
|
|
1492
1492
|
return ctx;
|
|
1493
1493
|
}
|
|
1494
1494
|
function ArbiWebSocketProvider({ enabled = true, children }) {
|
|
1495
|
-
const arbi =
|
|
1495
|
+
const arbi = chunk7IOCMCC5_cjs.useArbi();
|
|
1496
1496
|
const subscribersRef = React2.useRef(/* @__PURE__ */ new Set());
|
|
1497
1497
|
const setStatus = useArbiWsStore((s) => s.setStatus);
|
|
1498
1498
|
const applyTaskUpdate = useArbiWsStore((s) => s.applyTaskUpdate);
|
|
@@ -1714,7 +1714,7 @@ function useAiTask() {
|
|
|
1714
1714
|
};
|
|
1715
1715
|
}
|
|
1716
1716
|
function useSemanticSearch(docIds) {
|
|
1717
|
-
const arbi =
|
|
1717
|
+
const arbi = chunk7IOCMCC5_cjs.useArbi();
|
|
1718
1718
|
const [query, setQuery] = React2.useState("");
|
|
1719
1719
|
const mutation = reactQuery.useMutation({
|
|
1720
1720
|
mutationFn: async ({ query: q, mode }) => {
|
|
@@ -1812,9 +1812,9 @@ function AiAnswer({
|
|
|
1812
1812
|
setTimeout(() => setCopied(false), 1600);
|
|
1813
1813
|
};
|
|
1814
1814
|
if (status === "idle" && !hasText) {
|
|
1815
|
-
return emptyHint ? /* @__PURE__ */ jsxRuntime.jsx("p", { className:
|
|
1815
|
+
return emptyHint ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: chunkFIPS3VPH_cjs.cn("text-sm text-muted-foreground", className), "data-testid": `${testId}-empty`, children: emptyHint }) : null;
|
|
1816
1816
|
}
|
|
1817
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className:
|
|
1817
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: chunkFIPS3VPH_cjs.cn("space-y-3", className), "data-testid": testId, "data-status": status, children: [
|
|
1818
1818
|
running && /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1819
1819
|
"div",
|
|
1820
1820
|
{
|
|
@@ -1838,7 +1838,7 @@ function AiAnswer({
|
|
|
1838
1838
|
}
|
|
1839
1839
|
),
|
|
1840
1840
|
hasText && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
1841
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1841
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkFIPS3VPH_cjs.AiMarkdown, { isStreaming: running, children: text }),
|
|
1842
1842
|
!running && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between border-t border-border pt-2.5", children: [
|
|
1843
1843
|
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "inline-flex items-center gap-1.5 text-xs text-muted-foreground", children: [
|
|
1844
1844
|
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.ShieldCheck, { className: "size-3.5 text-ai-accent" }),
|
|
@@ -1883,7 +1883,7 @@ function AiActionCard({
|
|
|
1883
1883
|
const p = typeof prompt === "function" ? prompt() : prompt;
|
|
1884
1884
|
void task.run(p, docIds);
|
|
1885
1885
|
};
|
|
1886
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1886
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(chunkFIPS3VPH_cjs.Card, { variant: "elevated", className: "rounded-xl p-5", "data-testid": testId, children: [
|
|
1887
1887
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start justify-between gap-4", children: [
|
|
1888
1888
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start gap-3", children: [
|
|
1889
1889
|
/* @__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" }) }),
|
|
@@ -1893,7 +1893,7 @@ function AiActionCard({
|
|
|
1893
1893
|
] })
|
|
1894
1894
|
] }),
|
|
1895
1895
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
1896
|
-
|
|
1896
|
+
chunkFIPS3VPH_cjs.Button,
|
|
1897
1897
|
{
|
|
1898
1898
|
variant: task.isDone ? "outline" : "accent",
|
|
1899
1899
|
size: "sm",
|
|
@@ -1940,7 +1940,7 @@ function ArtifactCanvas({
|
|
|
1940
1940
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1941
1941
|
"div",
|
|
1942
1942
|
{
|
|
1943
|
-
className:
|
|
1943
|
+
className: chunkFIPS3VPH_cjs.cn(
|
|
1944
1944
|
"flex h-full min-h-[280px] flex-col items-center justify-center rounded-xl border border-destructive/30 bg-destructive/5 p-8 text-center",
|
|
1945
1945
|
className
|
|
1946
1946
|
),
|
|
@@ -1956,7 +1956,7 @@ function ArtifactCanvas({
|
|
|
1956
1956
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1957
1957
|
"div",
|
|
1958
1958
|
{
|
|
1959
|
-
className:
|
|
1959
|
+
className: chunkFIPS3VPH_cjs.cn(
|
|
1960
1960
|
"flex h-full min-h-[280px] flex-col items-center justify-center rounded-xl border border-border bg-ai-surface/40 p-8 text-center",
|
|
1961
1961
|
className
|
|
1962
1962
|
),
|
|
@@ -1977,7 +1977,7 @@ function ArtifactCanvas({
|
|
|
1977
1977
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1978
1978
|
"div",
|
|
1979
1979
|
{
|
|
1980
|
-
className:
|
|
1980
|
+
className: chunkFIPS3VPH_cjs.cn(
|
|
1981
1981
|
"flex h-full min-h-[280px] flex-col items-center justify-center rounded-xl border border-dashed border-border bg-secondary/30 p-8 text-center",
|
|
1982
1982
|
className
|
|
1983
1983
|
),
|
|
@@ -2009,7 +2009,7 @@ function ArtifactCanvas({
|
|
|
2009
2009
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2010
2010
|
"div",
|
|
2011
2011
|
{
|
|
2012
|
-
className:
|
|
2012
|
+
className: chunkFIPS3VPH_cjs.cn(
|
|
2013
2013
|
"flex h-full flex-col overflow-hidden rounded-xl border border-border bg-card",
|
|
2014
2014
|
className
|
|
2015
2015
|
),
|
|
@@ -2025,11 +2025,11 @@ function ArtifactCanvas({
|
|
|
2025
2025
|
children: active.title
|
|
2026
2026
|
}
|
|
2027
2027
|
),
|
|
2028
|
-
isRedline && /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2028
|
+
isRedline && /* @__PURE__ */ jsxRuntime.jsxs(chunkFIPS3VPH_cjs.Badge, { variant: "accent", className: "gap-1", children: [
|
|
2029
2029
|
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.GitCompareArrows, { className: "size-3" }),
|
|
2030
2030
|
" Redline"
|
|
2031
2031
|
] }),
|
|
2032
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
2032
|
+
/* @__PURE__ */ jsxRuntime.jsxs(chunkFIPS3VPH_cjs.Badge, { variant: "secondary", children: [
|
|
2033
2033
|
"v",
|
|
2034
2034
|
active.version
|
|
2035
2035
|
] }),
|
|
@@ -2070,7 +2070,7 @@ function ArtifactCanvas({
|
|
|
2070
2070
|
"button",
|
|
2071
2071
|
{
|
|
2072
2072
|
onClick: () => setActiveId(a.doc_ext_id),
|
|
2073
|
-
className:
|
|
2073
|
+
className: chunkFIPS3VPH_cjs.cn(
|
|
2074
2074
|
"shrink-0 rounded-md px-2.5 py-1 text-xs font-medium",
|
|
2075
2075
|
a.doc_ext_id === active.doc_ext_id ? "bg-ai-accent-soft text-ai-accent" : "text-muted-foreground hover:bg-accent"
|
|
2076
2076
|
),
|
|
@@ -2085,7 +2085,7 @@ function ArtifactCanvas({
|
|
|
2085
2085
|
animate: { opacity: 1, y: 0 },
|
|
2086
2086
|
transition: { duration: 0.2 },
|
|
2087
2087
|
className: "mx-auto max-w-2xl rounded-lg bg-card p-8 shadow-sm ring-1 ring-border",
|
|
2088
|
-
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(
|
|
2088
|
+
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(chunkFIPS3VPH_cjs.AiMarkdown, { children: active.content })
|
|
2089
2089
|
},
|
|
2090
2090
|
active.doc_ext_id
|
|
2091
2091
|
) }) })
|
|
@@ -2102,7 +2102,7 @@ function MessageArtifactCard({
|
|
|
2102
2102
|
const Icon = isImage ? lucideReact.Image : lucideReact.FileText;
|
|
2103
2103
|
const statusText = isImage ? isComplete ? "Image ready" : "Generating\u2026" : isComplete ? "Draft ready" : "Drafting\u2026";
|
|
2104
2104
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2105
|
-
|
|
2105
|
+
chunkFIPS3VPH_cjs.Card,
|
|
2106
2106
|
{
|
|
2107
2107
|
variant: "outline",
|
|
2108
2108
|
className: "mt-3 flex items-center gap-3 px-3 py-2.5",
|
|
@@ -2145,7 +2145,7 @@ function DocSearch({
|
|
|
2145
2145
|
const submit = () => {
|
|
2146
2146
|
if (value.trim()) void search(value, "hybrid");
|
|
2147
2147
|
};
|
|
2148
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className:
|
|
2148
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: chunkFIPS3VPH_cjs.cn("space-y-3", className), "data-testid": "doc-search", children: [
|
|
2149
2149
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative", children: [
|
|
2150
2150
|
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.Search, { className: "pointer-events-none absolute left-3 top-1/2 size-4 -translate-y-1/2 text-muted-foreground" }),
|
|
2151
2151
|
isRunning && /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Loader2, { className: "absolute right-3 top-1/2 size-4 -translate-y-1/2 animate-spin text-ai-accent" }),
|
|
@@ -2178,10 +2178,10 @@ function DocSearch({
|
|
|
2178
2178
|
status === "done" && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-2", "data-testid": "doc-search-results", children: [
|
|
2179
2179
|
/* @__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` }),
|
|
2180
2180
|
results.slice(0, 8).map((r, i) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2181
|
-
|
|
2181
|
+
chunkFIPS3VPH_cjs.Card,
|
|
2182
2182
|
{
|
|
2183
2183
|
variant: "elevated",
|
|
2184
|
-
className:
|
|
2184
|
+
className: chunkFIPS3VPH_cjs.cn(
|
|
2185
2185
|
"rounded-xl p-3",
|
|
2186
2186
|
onOpenDoc && r.docId && "cursor-pointer transition-colors hover:border-ai-accent/40"
|
|
2187
2187
|
),
|
|
@@ -2191,7 +2191,7 @@ function DocSearch({
|
|
|
2191
2191
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-1 flex items-center gap-2", children: [
|
|
2192
2192
|
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.FileText, { className: "size-3.5 text-ai-accent" }),
|
|
2193
2193
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "truncate text-xs font-medium text-foreground", children: r.docTitle ?? "Document" }),
|
|
2194
|
-
r.page != null && /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2194
|
+
r.page != null && /* @__PURE__ */ jsxRuntime.jsxs(chunkFIPS3VPH_cjs.Badge, { variant: "secondary", children: [
|
|
2195
2195
|
"p.",
|
|
2196
2196
|
r.page
|
|
2197
2197
|
] }),
|
|
@@ -2232,7 +2232,7 @@ var EntityPill = React2.forwardRef(function EntityPill2({
|
|
|
2232
2232
|
const shapeClass = shape === "pill" ? "rounded-full" : "rounded-md";
|
|
2233
2233
|
const sizeClasses2 = size === "base" ? "gap-1.5 px-1.5 py-0.5" : "gap-1 px-1";
|
|
2234
2234
|
const textSizeClass = size === "base" ? "text-base" : "text-sm";
|
|
2235
|
-
const baseClasses =
|
|
2235
|
+
const baseClasses = chunkFIPS3VPH_cjs.cn(
|
|
2236
2236
|
"group/pill items-center",
|
|
2237
2237
|
fullWidth ? "flex w-full" : "inline-flex",
|
|
2238
2238
|
sizeClasses2,
|
|
@@ -2262,7 +2262,7 @@ var EntityPill = React2.forwardRef(function EntityPill2({
|
|
|
2262
2262
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2263
2263
|
"span",
|
|
2264
2264
|
{
|
|
2265
|
-
className:
|
|
2265
|
+
className: chunkFIPS3VPH_cjs.cn(
|
|
2266
2266
|
textSizeClass,
|
|
2267
2267
|
"font-medium truncate leading-tight min-w-0",
|
|
2268
2268
|
labelMaxWidth,
|
|
@@ -2273,9 +2273,9 @@ var EntityPill = React2.forwardRef(function EntityPill2({
|
|
|
2273
2273
|
),
|
|
2274
2274
|
secondaryText && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-xs text-muted-foreground flex-shrink-0 leading-none", children: secondaryText })
|
|
2275
2275
|
] });
|
|
2276
|
-
const tooltipWrap = (content, tip, side = tooltipSide, triggerClassName, triggerProps) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2276
|
+
const tooltipWrap = (content, tip, side = tooltipSide, triggerClassName, triggerProps) => /* @__PURE__ */ jsxRuntime.jsxs(chunkFIPS3VPH_cjs.Tooltip, { children: [
|
|
2277
2277
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2278
|
-
|
|
2278
|
+
chunkFIPS3VPH_cjs.TooltipTrigger,
|
|
2279
2279
|
{
|
|
2280
2280
|
onFocusCapture: (e) => e.stopPropagation(),
|
|
2281
2281
|
className: triggerClassName,
|
|
@@ -2283,9 +2283,9 @@ var EntityPill = React2.forwardRef(function EntityPill2({
|
|
|
2283
2283
|
children: content
|
|
2284
2284
|
}
|
|
2285
2285
|
),
|
|
2286
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2286
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkFIPS3VPH_cjs.TooltipContent, { side, className: "p-2", children: tip })
|
|
2287
2287
|
] });
|
|
2288
|
-
const mainAreaClass =
|
|
2288
|
+
const mainAreaClass = chunkFIPS3VPH_cjs.cn("inline-flex items-center gap-1", fullWidth && "min-w-0 flex-1");
|
|
2289
2289
|
if (onMoreClick || moreContent) {
|
|
2290
2290
|
let mainArea;
|
|
2291
2291
|
if (tooltipContent) {
|
|
@@ -2293,7 +2293,7 @@ var EntityPill = React2.forwardRef(function EntityPill2({
|
|
|
2293
2293
|
mainContent,
|
|
2294
2294
|
tooltipContent,
|
|
2295
2295
|
tooltipSide,
|
|
2296
|
-
|
|
2296
|
+
chunkFIPS3VPH_cjs.cn(mainAreaClass, disabled && "opacity-60"),
|
|
2297
2297
|
{
|
|
2298
2298
|
type: "button",
|
|
2299
2299
|
onClick: href ? onClick : disabled ? void 0 : onClick,
|
|
@@ -2319,7 +2319,7 @@ var EntityPill = React2.forwardRef(function EntityPill2({
|
|
|
2319
2319
|
type: "button",
|
|
2320
2320
|
onClick: disabled ? void 0 : onClick,
|
|
2321
2321
|
disabled,
|
|
2322
|
-
className:
|
|
2322
|
+
className: chunkFIPS3VPH_cjs.cn("inline-flex items-center gap-1", disabled && "opacity-60"),
|
|
2323
2323
|
children: mainContent
|
|
2324
2324
|
}
|
|
2325
2325
|
);
|
|
@@ -2343,7 +2343,7 @@ var EntityPill = React2.forwardRef(function EntityPill2({
|
|
|
2343
2343
|
"span",
|
|
2344
2344
|
{
|
|
2345
2345
|
ref,
|
|
2346
|
-
className:
|
|
2346
|
+
className: chunkFIPS3VPH_cjs.cn(
|
|
2347
2347
|
baseClasses,
|
|
2348
2348
|
(onClick || href) && !disabled && interactiveClasses,
|
|
2349
2349
|
highlight && highlightClasses
|
|
@@ -2372,7 +2372,7 @@ var EntityPill = React2.forwardRef(function EntityPill2({
|
|
|
2372
2372
|
),
|
|
2373
2373
|
tooltipContent,
|
|
2374
2374
|
tooltipSide,
|
|
2375
|
-
|
|
2375
|
+
chunkFIPS3VPH_cjs.cn(baseClasses, interactiveClasses),
|
|
2376
2376
|
{ "data-testid": testId }
|
|
2377
2377
|
);
|
|
2378
2378
|
}
|
|
@@ -2380,7 +2380,7 @@ var EntityPill = React2.forwardRef(function EntityPill2({
|
|
|
2380
2380
|
mainContent,
|
|
2381
2381
|
tooltipContent,
|
|
2382
2382
|
tooltipSide,
|
|
2383
|
-
|
|
2383
|
+
chunkFIPS3VPH_cjs.cn(
|
|
2384
2384
|
baseClasses,
|
|
2385
2385
|
onClick && !disabled ? interactiveClasses : "",
|
|
2386
2386
|
disabled ? disabledClasses : "",
|
|
@@ -2403,7 +2403,7 @@ var EntityPill = React2.forwardRef(function EntityPill2({
|
|
|
2403
2403
|
href,
|
|
2404
2404
|
target: "_blank",
|
|
2405
2405
|
rel: "noopener noreferrer",
|
|
2406
|
-
className:
|
|
2406
|
+
className: chunkFIPS3VPH_cjs.cn(baseClasses, interactiveClasses),
|
|
2407
2407
|
"data-testid": testId,
|
|
2408
2408
|
onClick,
|
|
2409
2409
|
children: mainContent
|
|
@@ -2418,7 +2418,7 @@ var EntityPill = React2.forwardRef(function EntityPill2({
|
|
|
2418
2418
|
type: "button",
|
|
2419
2419
|
onClick: disabled ? void 0 : onClick,
|
|
2420
2420
|
disabled,
|
|
2421
|
-
className:
|
|
2421
|
+
className: chunkFIPS3VPH_cjs.cn(
|
|
2422
2422
|
baseClasses,
|
|
2423
2423
|
disabled ? disabledClasses : interactiveClasses,
|
|
2424
2424
|
highlight && highlightClasses
|
|
@@ -2432,7 +2432,7 @@ var EntityPill = React2.forwardRef(function EntityPill2({
|
|
|
2432
2432
|
"span",
|
|
2433
2433
|
{
|
|
2434
2434
|
ref,
|
|
2435
|
-
className:
|
|
2435
|
+
className: chunkFIPS3VPH_cjs.cn(baseClasses, highlight && highlightClasses),
|
|
2436
2436
|
"data-testid": testId,
|
|
2437
2437
|
children: mainContent
|
|
2438
2438
|
}
|
|
@@ -2531,7 +2531,7 @@ function TagEntity({
|
|
|
2531
2531
|
] }),
|
|
2532
2532
|
tag.doctag_count != null && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
|
|
2533
2533
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-muted-foreground", children: "Documents:" }),
|
|
2534
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2534
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkFIPS3VPH_cjs.Badge, { variant: "secondary", className: "h-5 min-w-[20px] justify-center", children: tag.doctag_count ?? 0 })
|
|
2535
2535
|
] }),
|
|
2536
2536
|
tag.shared != null && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center gap-2", children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-muted-foreground", children: tag.shared ? "Shared" : "Private" }) })
|
|
2537
2537
|
] })
|
|
@@ -2616,7 +2616,7 @@ function DocumentReview({
|
|
|
2616
2616
|
"div",
|
|
2617
2617
|
{
|
|
2618
2618
|
"data-testid": "document-review",
|
|
2619
|
-
className:
|
|
2619
|
+
className: chunkFIPS3VPH_cjs.cn(
|
|
2620
2620
|
"flex h-full min-h-0 flex-col overflow-hidden rounded-lg border bg-card",
|
|
2621
2621
|
className
|
|
2622
2622
|
),
|
|
@@ -2629,7 +2629,7 @@ function DocumentReview({
|
|
|
2629
2629
|
findings.length ? ` \xB7 ${findings.length} findings` : ""
|
|
2630
2630
|
] })
|
|
2631
2631
|
] }),
|
|
2632
|
-
doc?.status ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
2632
|
+
doc?.status ? /* @__PURE__ */ jsxRuntime.jsx(chunkFIPS3VPH_cjs.Badge, { variant: "secondary", children: doc.status }) : null,
|
|
2633
2633
|
onClose ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
2634
2634
|
"button",
|
|
2635
2635
|
{
|
|
@@ -2700,7 +2700,7 @@ function DocumentReview({
|
|
|
2700
2700
|
{
|
|
2701
2701
|
"data-chunk-id": cid,
|
|
2702
2702
|
"data-testid": isActive ? "review-chunk-active" : highlighted ? "review-chunk-cited" : "review-chunk",
|
|
2703
|
-
className:
|
|
2703
|
+
className: chunkFIPS3VPH_cjs.cn(
|
|
2704
2704
|
"scroll-mt-4 rounded-md px-2 py-1 transition-colors",
|
|
2705
2705
|
highlighted && "bg-[var(--color-ai-accent-soft,theme(colors.amber.100))] ring-1 ring-inset ring-border",
|
|
2706
2706
|
// The externally-selected search passage wins the
|
|
@@ -2720,7 +2720,7 @@ function DocumentReview({
|
|
|
2720
2720
|
}
|
|
2721
2721
|
}
|
|
2722
2722
|
) }) : null,
|
|
2723
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2723
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkFIPS3VPH_cjs.MarkdownRenderer, { className: "prose prose-sm max-w-none dark:prose-invert", children: c.content })
|
|
2724
2724
|
]
|
|
2725
2725
|
},
|
|
2726
2726
|
cid ?? i
|
|
@@ -2746,7 +2746,7 @@ function RelevanceDot({ score }) {
|
|
|
2746
2746
|
role: "img",
|
|
2747
2747
|
"aria-label": tier.label,
|
|
2748
2748
|
title: `${tier.label} (${score.toFixed(2)})`,
|
|
2749
|
-
className:
|
|
2749
|
+
className: chunkFIPS3VPH_cjs.cn("size-1.5 shrink-0 rounded-full", tier.tone),
|
|
2750
2750
|
"data-testid": "passage-relevance"
|
|
2751
2751
|
}
|
|
2752
2752
|
);
|
|
@@ -2775,7 +2775,7 @@ function PassageCard({
|
|
|
2775
2775
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2776
2776
|
"div",
|
|
2777
2777
|
{
|
|
2778
|
-
className:
|
|
2778
|
+
className: chunkFIPS3VPH_cjs.cn(
|
|
2779
2779
|
"group rounded-lg border border-border bg-card p-3 text-left transition-colors",
|
|
2780
2780
|
onClick && "hover:border-ai-accent/40 focus-within:ring-2 focus-within:ring-ai-accent/40",
|
|
2781
2781
|
active && "border-ai-accent/60 ring-1 ring-ai-accent/30",
|
|
@@ -2842,7 +2842,7 @@ function ResultRow({
|
|
|
2842
2842
|
header: /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
2843
2843
|
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.FileText, { className: "size-3.5 shrink-0 text-ai-accent" }),
|
|
2844
2844
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "truncate text-xs font-medium text-foreground", children: result.docTitle ?? "Document" }),
|
|
2845
|
-
result.page != null && /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2845
|
+
result.page != null && /* @__PURE__ */ jsxRuntime.jsxs(chunkFIPS3VPH_cjs.Badge, { variant: "secondary", children: [
|
|
2846
2846
|
"p.",
|
|
2847
2847
|
result.page
|
|
2848
2848
|
] })
|
|
@@ -2881,11 +2881,11 @@ function SemanticSearch({
|
|
|
2881
2881
|
}, [value, search, searchMode]);
|
|
2882
2882
|
const selectedDoc = selected?.docId ? docMap.get(selected.docId) : void 0;
|
|
2883
2883
|
const hasResults = status === "done" && results.length > 0;
|
|
2884
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { "data-testid": testId, className:
|
|
2884
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { "data-testid": testId, className: chunkFIPS3VPH_cjs.cn("flex min-h-0 flex-col gap-4 md:flex-row", className), children: [
|
|
2885
2885
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
2886
2886
|
"div",
|
|
2887
2887
|
{
|
|
2888
|
-
className:
|
|
2888
|
+
className: chunkFIPS3VPH_cjs.cn(
|
|
2889
2889
|
"flex min-h-0 flex-col gap-3 md:w-[22rem] md:shrink-0",
|
|
2890
2890
|
selected && "hidden md:flex"
|
|
2891
2891
|
),
|
|
@@ -2948,11 +2948,11 @@ function SemanticSearch({
|
|
|
2948
2948
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2949
2949
|
"div",
|
|
2950
2950
|
{
|
|
2951
|
-
className:
|
|
2951
|
+
className: chunkFIPS3VPH_cjs.cn("min-h-0 min-w-0 flex-1", !selected && "hidden md:block"),
|
|
2952
2952
|
"data-testid": "arbi-semantic-search-viewer",
|
|
2953
2953
|
children: selected && selected.docId ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex h-full min-h-0 flex-col gap-2", children: [
|
|
2954
2954
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
2955
|
-
|
|
2955
|
+
chunkFIPS3VPH_cjs.Button,
|
|
2956
2956
|
{
|
|
2957
2957
|
variant: "ghost",
|
|
2958
2958
|
size: "sm",
|
|
@@ -3011,7 +3011,7 @@ Question: ${question}`,
|
|
|
3011
3011
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0 space-y-3", "data-testid": "doc-qa", children: [
|
|
3012
3012
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex min-w-0 items-center gap-2", children: [
|
|
3013
3013
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3014
|
-
|
|
3014
|
+
chunkFIPS3VPH_cjs.Input,
|
|
3015
3015
|
{
|
|
3016
3016
|
value: q,
|
|
3017
3017
|
onChange: (e) => setQ(e.target.value),
|
|
@@ -3022,7 +3022,7 @@ Question: ${question}`,
|
|
|
3022
3022
|
}
|
|
3023
3023
|
),
|
|
3024
3024
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3025
|
-
|
|
3025
|
+
chunkFIPS3VPH_cjs.Button,
|
|
3026
3026
|
{
|
|
3027
3027
|
variant: "accent",
|
|
3028
3028
|
size: "icon",
|
|
@@ -3034,7 +3034,7 @@ Question: ${question}`,
|
|
|
3034
3034
|
}
|
|
3035
3035
|
),
|
|
3036
3036
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
3037
|
-
|
|
3037
|
+
chunkFIPS3VPH_cjs.Button,
|
|
3038
3038
|
{
|
|
3039
3039
|
variant: "outline",
|
|
3040
3040
|
size: "sm",
|
|
@@ -3167,7 +3167,7 @@ var CitationRendererComponent = ({
|
|
|
3167
3167
|
onCloseCitation,
|
|
3168
3168
|
onDismissCitation
|
|
3169
3169
|
]);
|
|
3170
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className:
|
|
3170
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: chunkFIPS3VPH_cjs.cn("citation-container", className), "data-testid": "citation-renderer", children: renderMarkdown({ components: markdownComponents, isStreaming, children: content }) });
|
|
3171
3171
|
};
|
|
3172
3172
|
var CitationPopover = ({
|
|
3173
3173
|
citationNum,
|
|
@@ -3212,7 +3212,7 @@ var CitationPopover = ({
|
|
|
3212
3212
|
return Array.from(map.entries()).map(([docId, val]) => ({ docId, ...val }));
|
|
3213
3213
|
}, [chunks]);
|
|
3214
3214
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
3215
|
-
|
|
3215
|
+
chunkFIPS3VPH_cjs.Popover,
|
|
3216
3216
|
{
|
|
3217
3217
|
open,
|
|
3218
3218
|
onOpenChange: (next) => {
|
|
@@ -3224,7 +3224,7 @@ var CitationPopover = ({
|
|
|
3224
3224
|
}
|
|
3225
3225
|
},
|
|
3226
3226
|
children: [
|
|
3227
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3227
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkFIPS3VPH_cjs.PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
3228
3228
|
CitationLink,
|
|
3229
3229
|
{
|
|
3230
3230
|
ref: triggerRef,
|
|
@@ -3235,7 +3235,7 @@ var CitationPopover = ({
|
|
|
3235
3235
|
}
|
|
3236
3236
|
) }),
|
|
3237
3237
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
3238
|
-
|
|
3238
|
+
chunkFIPS3VPH_cjs.PopoverContent,
|
|
3239
3239
|
{
|
|
3240
3240
|
className: "z-[42] w-[min(var(--radix-popover-content-available-width),48rem)] min-w-0 p-0 max-h-[75vh] overflow-y-auto border-2 border-border shadow-xl",
|
|
3241
3241
|
align: "start",
|
|
@@ -3302,7 +3302,7 @@ var CitationPopover = ({
|
|
|
3302
3302
|
{
|
|
3303
3303
|
"data-testid": `citation-chunk-${chunk.metadata.chunk_ext_id}`,
|
|
3304
3304
|
onClick: () => onChunkClick(chunk),
|
|
3305
|
-
className:
|
|
3305
|
+
className: chunkFIPS3VPH_cjs.cn(
|
|
3306
3306
|
"w-full text-left text-xs rounded px-2 py-1.5 transition-colors flex items-start gap-2 mb-1 last:mb-0",
|
|
3307
3307
|
isSelected ? "bg-yellow-100 dark:bg-yellow-900/30 text-yellow-900 dark:text-yellow-100" : "text-muted-foreground hover:text-primary hover:bg-muted"
|
|
3308
3308
|
),
|
|
@@ -3341,7 +3341,7 @@ var CitationLink = React2__default.default.forwardRef(
|
|
|
3341
3341
|
"span",
|
|
3342
3342
|
{
|
|
3343
3343
|
ref,
|
|
3344
|
-
className:
|
|
3344
|
+
className: chunkFIPS3VPH_cjs.cn(
|
|
3345
3345
|
"cited-text transition-colors px-0.5 rounded inline-block",
|
|
3346
3346
|
isStreaming ? "cursor-default" : "cursor-pointer",
|
|
3347
3347
|
isActive ? "bg-yellow-100 dark:bg-yellow-900/30 hover:bg-yellow-200 dark:hover:bg-yellow-900/40" : "hover:bg-yellow-50 dark:hover:bg-yellow-900/20"
|
|
@@ -4306,7 +4306,7 @@ function DocumentEntity({
|
|
|
4306
4306
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4307
4307
|
"span",
|
|
4308
4308
|
{
|
|
4309
|
-
className:
|
|
4309
|
+
className: chunkFIPS3VPH_cjs.cn(
|
|
4310
4310
|
"transition-opacity",
|
|
4311
4311
|
viewing ? "opacity-0" : "group-hover/pill:opacity-0 group-has-[[data-state=open]]/pill:opacity-0"
|
|
4312
4312
|
),
|
|
@@ -4316,7 +4316,7 @@ function DocumentEntity({
|
|
|
4316
4316
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4317
4317
|
lucideReact.Eye,
|
|
4318
4318
|
{
|
|
4319
|
-
className:
|
|
4319
|
+
className: chunkFIPS3VPH_cjs.cn(
|
|
4320
4320
|
"absolute inset-0 m-auto transition-opacity",
|
|
4321
4321
|
eyeSizeClass,
|
|
4322
4322
|
viewing ? "text-primary-foreground opacity-100" : "text-primary opacity-0 group-hover/pill:opacity-100 group-has-[[data-state=open]]/pill:opacity-100"
|
|
@@ -4399,7 +4399,7 @@ function ProjectEntity({
|
|
|
4399
4399
|
const variant = resolveVariant(relation, paid, hasCollaborators);
|
|
4400
4400
|
const { pill, icon: iconClass } = VARIANT_STYLES[variant];
|
|
4401
4401
|
const iconSizeClass = size === "base" ? "h-4 w-4" : "h-3.5 w-3.5";
|
|
4402
|
-
const iconNode = icon ?? /* @__PURE__ */ jsxRuntime.jsx(lucideReact.CreditCard, { className:
|
|
4402
|
+
const iconNode = icon ?? /* @__PURE__ */ jsxRuntime.jsx(lucideReact.CreditCard, { className: chunkFIPS3VPH_cjs.cn(iconSizeClass, iconClass) });
|
|
4403
4403
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
4404
4404
|
EntityPill,
|
|
4405
4405
|
{
|
|
@@ -4407,7 +4407,7 @@ function ProjectEntity({
|
|
|
4407
4407
|
label: label ?? name,
|
|
4408
4408
|
size,
|
|
4409
4409
|
shape: "rounded",
|
|
4410
|
-
className:
|
|
4410
|
+
className: chunkFIPS3VPH_cjs.cn(pill, className),
|
|
4411
4411
|
onClick,
|
|
4412
4412
|
tooltipContent
|
|
4413
4413
|
}
|
|
@@ -4473,11 +4473,11 @@ var UserEntity = React2.memo(function UserEntity2({
|
|
|
4473
4473
|
}) {
|
|
4474
4474
|
if (empty) {
|
|
4475
4475
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
4476
|
-
|
|
4476
|
+
chunkFIPS3VPH_cjs.Avatar,
|
|
4477
4477
|
{
|
|
4478
|
-
className:
|
|
4478
|
+
className: chunkFIPS3VPH_cjs.cn(sizeClasses[size], "border border-border", className),
|
|
4479
4479
|
"data-testid": "user-entity",
|
|
4480
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
4480
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(chunkFIPS3VPH_cjs.AvatarFallback, { className: "bg-status-empty text-muted-foreground text-xs font-semibold", children: "?" })
|
|
4481
4481
|
}
|
|
4482
4482
|
);
|
|
4483
4483
|
}
|
|
@@ -4486,20 +4486,20 @@ var UserEntity = React2.memo(function UserEntity2({
|
|
|
4486
4486
|
const showUnread = hasUnreadMessages && !isMe && !isAgent;
|
|
4487
4487
|
const surfaceStyle = avatarStyle ?? agentStyle;
|
|
4488
4488
|
const avatarCore = /* @__PURE__ */ jsxRuntime.jsxs(
|
|
4489
|
-
|
|
4489
|
+
chunkFIPS3VPH_cjs.Avatar,
|
|
4490
4490
|
{
|
|
4491
|
-
className:
|
|
4491
|
+
className: chunkFIPS3VPH_cjs.cn(
|
|
4492
4492
|
sizeClasses[size],
|
|
4493
4493
|
isAgent ? "rounded-full border-2 border-dashed" : "border border-white"
|
|
4494
4494
|
),
|
|
4495
4495
|
style: surfaceStyle,
|
|
4496
4496
|
"data-testid": "user-entity",
|
|
4497
4497
|
children: [
|
|
4498
|
-
picture && /* @__PURE__ */ jsxRuntime.jsx(
|
|
4498
|
+
picture && /* @__PURE__ */ jsxRuntime.jsx(chunkFIPS3VPH_cjs.AvatarImage, { src: picture, alt: initials }),
|
|
4499
4499
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4500
|
-
|
|
4500
|
+
chunkFIPS3VPH_cjs.AvatarFallback,
|
|
4501
4501
|
{
|
|
4502
|
-
className:
|
|
4502
|
+
className: chunkFIPS3VPH_cjs.cn(
|
|
4503
4503
|
textSizeClasses[size],
|
|
4504
4504
|
"font-semibold leading-none",
|
|
4505
4505
|
isAgent ? "rounded-full bg-transparent" : `text-white ${colorClass}`
|
|
@@ -4514,7 +4514,7 @@ var UserEntity = React2.memo(function UserEntity2({
|
|
|
4514
4514
|
const statusDot = showUnread || displayStatus ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
4515
4515
|
"span",
|
|
4516
4516
|
{
|
|
4517
|
-
className:
|
|
4517
|
+
className: chunkFIPS3VPH_cjs.cn(
|
|
4518
4518
|
"absolute rounded-full border-white",
|
|
4519
4519
|
presenceDotClasses[size],
|
|
4520
4520
|
presencePositionClasses[size],
|
|
@@ -4530,7 +4530,7 @@ var UserEntity = React2.memo(function UserEntity2({
|
|
|
4530
4530
|
const avatarElement = statusDot ? /* @__PURE__ */ jsxRuntime.jsxs(
|
|
4531
4531
|
"div",
|
|
4532
4532
|
{
|
|
4533
|
-
className:
|
|
4533
|
+
className: chunkFIPS3VPH_cjs.cn(
|
|
4534
4534
|
"relative inline-block",
|
|
4535
4535
|
sizeClasses[size],
|
|
4536
4536
|
variant === "pill" ? "" : className
|
|
@@ -4540,12 +4540,12 @@ var UserEntity = React2.memo(function UserEntity2({
|
|
|
4540
4540
|
statusDot
|
|
4541
4541
|
]
|
|
4542
4542
|
}
|
|
4543
|
-
) : /* @__PURE__ */ jsxRuntime.jsx("div", { className:
|
|
4543
|
+
) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: chunkFIPS3VPH_cjs.cn("inline-block", variant === "pill" ? "" : className), children: avatarCore });
|
|
4544
4544
|
const pillAvatar = (
|
|
4545
4545
|
// shrink-0: when the pill is squeezed the NAME truncates away — the avatar
|
|
4546
4546
|
// must never collapse under it and overflow onto neighbouring text.
|
|
4547
|
-
/* @__PURE__ */ jsxRuntime.jsxs("span", { className:
|
|
4548
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className:
|
|
4547
|
+
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: chunkFIPS3VPH_cjs.cn("relative inline-block shrink-0", sizeClasses[size]), children: [
|
|
4548
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: chunkFIPS3VPH_cjs.cn("block transition-opacity", canMessage && "group-hover/pill:opacity-0"), children: avatarCore }),
|
|
4549
4549
|
canMessage && /* @__PURE__ */ jsxRuntime.jsx(
|
|
4550
4550
|
"span",
|
|
4551
4551
|
{
|
|
@@ -4568,19 +4568,19 @@ var UserEntity = React2.memo(function UserEntity2({
|
|
|
4568
4568
|
const clickable = interactive && !!onClick;
|
|
4569
4569
|
const clickableClass = "cursor-pointer rounded-md px-1 py-0.5 -mx-1 transition-colors hover:bg-muted/60";
|
|
4570
4570
|
if (resolvedTooltip) {
|
|
4571
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
4571
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(chunkFIPS3VPH_cjs.Tooltip, { children: [
|
|
4572
4572
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4573
|
-
|
|
4573
|
+
chunkFIPS3VPH_cjs.TooltipTrigger,
|
|
4574
4574
|
{
|
|
4575
4575
|
type: "button",
|
|
4576
4576
|
onClick: clickable ? onClick : void 0,
|
|
4577
4577
|
onFocusCapture: (e) => e.stopPropagation(),
|
|
4578
|
-
className:
|
|
4578
|
+
className: chunkFIPS3VPH_cjs.cn(rowClass, clickable && clickableClass, className),
|
|
4579
4579
|
"data-testid": "user-entity-pill",
|
|
4580
4580
|
children: row
|
|
4581
4581
|
}
|
|
4582
4582
|
),
|
|
4583
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4583
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkFIPS3VPH_cjs.TooltipContent, { className: "p-2", children: resolvedTooltip })
|
|
4584
4584
|
] });
|
|
4585
4585
|
}
|
|
4586
4586
|
if (clickable) {
|
|
@@ -4589,18 +4589,18 @@ var UserEntity = React2.memo(function UserEntity2({
|
|
|
4589
4589
|
{
|
|
4590
4590
|
type: "button",
|
|
4591
4591
|
onClick,
|
|
4592
|
-
className:
|
|
4592
|
+
className: chunkFIPS3VPH_cjs.cn(rowClass, clickableClass, className),
|
|
4593
4593
|
"data-testid": "user-entity-pill",
|
|
4594
4594
|
children: row
|
|
4595
4595
|
}
|
|
4596
4596
|
);
|
|
4597
4597
|
}
|
|
4598
|
-
return /* @__PURE__ */ jsxRuntime.jsx("span", { className:
|
|
4598
|
+
return /* @__PURE__ */ jsxRuntime.jsx("span", { className: chunkFIPS3VPH_cjs.cn(rowClass, className), "data-testid": "user-entity-pill", children: row });
|
|
4599
4599
|
}
|
|
4600
4600
|
if (showTooltip) {
|
|
4601
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
4602
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4603
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4601
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(chunkFIPS3VPH_cjs.Tooltip, { children: [
|
|
4602
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkFIPS3VPH_cjs.TooltipTrigger, { onFocusCapture: (e) => e.stopPropagation(), className: "inline-flex", children: avatarElement }),
|
|
4603
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkFIPS3VPH_cjs.TooltipContent, { className: "p-2", children: tooltipContent })
|
|
4604
4604
|
] });
|
|
4605
4605
|
}
|
|
4606
4606
|
return avatarElement;
|
|
@@ -4610,7 +4610,7 @@ function AgentBadge({ className }) {
|
|
|
4610
4610
|
"span",
|
|
4611
4611
|
{
|
|
4612
4612
|
"data-testid": "agent-badge",
|
|
4613
|
-
className:
|
|
4613
|
+
className: chunkFIPS3VPH_cjs.cn(
|
|
4614
4614
|
"inline-flex shrink-0 items-center gap-1 rounded-full border border-ai-accent/50",
|
|
4615
4615
|
"bg-ai-accent-soft px-2 py-0.5 text-[11px] font-bold uppercase tracking-wider text-ai-accent",
|
|
4616
4616
|
className
|
|
@@ -4641,12 +4641,12 @@ function PresenceLabel({
|
|
|
4641
4641
|
"span",
|
|
4642
4642
|
{
|
|
4643
4643
|
"data-testid": "presence-label",
|
|
4644
|
-
className:
|
|
4644
|
+
className: chunkFIPS3VPH_cjs.cn("inline-flex shrink-0 items-center gap-1 text-xs", className),
|
|
4645
4645
|
children: [
|
|
4646
4646
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4647
4647
|
"span",
|
|
4648
4648
|
{
|
|
4649
|
-
className:
|
|
4649
|
+
className: chunkFIPS3VPH_cjs.cn(
|
|
4650
4650
|
"size-1.5 rounded-full",
|
|
4651
4651
|
online ? "bg-status-online" : "bg-muted-foreground/50"
|
|
4652
4652
|
),
|
|
@@ -4669,7 +4669,7 @@ function isPackageBadgeVariant(v) {
|
|
|
4669
4669
|
return PACKAGE_BADGE_VARIANTS.some((known) => known === v);
|
|
4670
4670
|
}
|
|
4671
4671
|
function PackageStatusBadge({ variant, ...rest }) {
|
|
4672
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
4672
|
+
return /* @__PURE__ */ jsxRuntime.jsx(chunkFIPS3VPH_cjs.Badge, { variant: isPackageBadgeVariant(variant) ? variant : "outline", ...rest });
|
|
4673
4673
|
}
|
|
4674
4674
|
var registry = {
|
|
4675
4675
|
variants: {},
|
|
@@ -4698,8 +4698,8 @@ function RagDot({
|
|
|
4698
4698
|
className
|
|
4699
4699
|
}) {
|
|
4700
4700
|
const color = rag === "red" ? "bg-destructive" : rag === "amber" ? "bg-warning" : "bg-success";
|
|
4701
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("span", { className:
|
|
4702
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className:
|
|
4701
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("span", { className: chunkFIPS3VPH_cjs.cn("inline-flex items-center gap-1.5", className), "data-testid": `rag-${rag}`, children: [
|
|
4702
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: chunkFIPS3VPH_cjs.cn("size-2 rounded-full", color) }),
|
|
4703
4703
|
withLabel && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-xs text-muted-foreground", children: RAG_LABELS[rag] })
|
|
4704
4704
|
] });
|
|
4705
4705
|
}
|
|
@@ -5174,20 +5174,20 @@ function ActivityFeed({
|
|
|
5174
5174
|
}) {
|
|
5175
5175
|
const { data, isLoading, isError } = useActivity({ limit, enabled });
|
|
5176
5176
|
if (isLoading) {
|
|
5177
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className:
|
|
5177
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: chunkFIPS3VPH_cjs.cn("space-y-2", className), "data-testid": testId, "aria-busy": "true", children: Array.from({ length: 3 }).map((_, i) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-3 py-1.5", children: [
|
|
5178
5178
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "h-4 w-4 shrink-0 animate-pulse rounded-full bg-muted" }),
|
|
5179
5179
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "h-3 flex-1 animate-pulse rounded bg-muted" })
|
|
5180
5180
|
] }, i)) });
|
|
5181
5181
|
}
|
|
5182
5182
|
if (isError) {
|
|
5183
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className:
|
|
5183
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: chunkFIPS3VPH_cjs.cn("text-sm text-muted-foreground", className), "data-testid": testId, children: "Couldn\u2019t load activity." });
|
|
5184
5184
|
}
|
|
5185
5185
|
const items = data ?? [];
|
|
5186
5186
|
if (items.length === 0) {
|
|
5187
5187
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
5188
5188
|
"div",
|
|
5189
5189
|
{
|
|
5190
|
-
className:
|
|
5190
|
+
className: chunkFIPS3VPH_cjs.cn("flex items-center gap-2 text-sm text-muted-foreground", className),
|
|
5191
5191
|
"data-testid": testId,
|
|
5192
5192
|
children: [
|
|
5193
5193
|
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.Activity, { className: "h-4 w-4 shrink-0" }),
|
|
@@ -5196,7 +5196,7 @@ function ActivityFeed({
|
|
|
5196
5196
|
}
|
|
5197
5197
|
);
|
|
5198
5198
|
}
|
|
5199
|
-
return /* @__PURE__ */ jsxRuntime.jsx("ul", { className:
|
|
5199
|
+
return /* @__PURE__ */ jsxRuntime.jsx("ul", { className: chunkFIPS3VPH_cjs.cn("divide-y divide-border", className), "data-testid": testId, children: items.map((item) => {
|
|
5200
5200
|
const desc = describeActivity(item.content);
|
|
5201
5201
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
5202
5202
|
"li",
|
|
@@ -5204,7 +5204,7 @@ function ActivityFeed({
|
|
|
5204
5204
|
className: "flex items-center gap-3 py-2",
|
|
5205
5205
|
"data-testid": "activity-feed-item",
|
|
5206
5206
|
children: [
|
|
5207
|
-
/* @__PURE__ */ jsxRuntime.jsx(desc.Icon, { className:
|
|
5207
|
+
/* @__PURE__ */ jsxRuntime.jsx(desc.Icon, { className: chunkFIPS3VPH_cjs.cn("h-4 w-4 shrink-0", desc.iconClassName) }),
|
|
5208
5208
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "min-w-0 flex-1 truncate text-sm text-foreground", children: desc.title }),
|
|
5209
5209
|
/* @__PURE__ */ jsxRuntime.jsx("time", { className: "shrink-0 text-xs tabular-nums text-muted-foreground", children: formatRelative(item.created_at) })
|
|
5210
5210
|
]
|
|
@@ -5336,8 +5336,8 @@ function NotificationBell({
|
|
|
5336
5336
|
const markRead = useNotify((s) => s.markRead);
|
|
5337
5337
|
const tone = (v) => toneClassNames?.[v] ?? DEFAULT_NOTIFY_TONE[v];
|
|
5338
5338
|
const visible = notifications.filter((n) => !n.ambient);
|
|
5339
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
5340
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5339
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(chunkFIPS3VPH_cjs.DropdownMenu, { children: [
|
|
5340
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkFIPS3VPH_cjs.DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
5341
5341
|
"button",
|
|
5342
5342
|
{
|
|
5343
5343
|
className: "relative flex size-9 items-center justify-center rounded-md text-muted-foreground transition-colors hover:bg-accent hover:text-foreground",
|
|
@@ -5357,7 +5357,7 @@ function NotificationBell({
|
|
|
5357
5357
|
}
|
|
5358
5358
|
) }),
|
|
5359
5359
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
5360
|
-
|
|
5360
|
+
chunkFIPS3VPH_cjs.DropdownMenuContent,
|
|
5361
5361
|
{
|
|
5362
5362
|
align: "end",
|
|
5363
5363
|
sideOffset: 8,
|
|
@@ -5390,13 +5390,22 @@ function NotificationBell({
|
|
|
5390
5390
|
"aria-pressed": muted,
|
|
5391
5391
|
title: muted ? "Unmute notifications" : "Mute notifications",
|
|
5392
5392
|
"aria-label": muted ? "Unmute notifications" : "Mute notifications",
|
|
5393
|
-
className:
|
|
5393
|
+
className: chunkFIPS3VPH_cjs.cn(
|
|
5394
5394
|
"flex size-6 items-center justify-center rounded-md transition-colors hover:bg-accent",
|
|
5395
5395
|
muted ? "text-foreground" : "text-muted-foreground hover:text-foreground"
|
|
5396
5396
|
),
|
|
5397
5397
|
"data-testid": `${testId}-mute`,
|
|
5398
5398
|
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.BellOff, { className: "size-3.5" })
|
|
5399
5399
|
}
|
|
5400
|
+
),
|
|
5401
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5402
|
+
chunkFIPS3VPH_cjs.DropdownMenuItem,
|
|
5403
|
+
{
|
|
5404
|
+
className: "flex size-6 items-center justify-center rounded-md p-0 text-muted-foreground transition-colors hover:bg-accent hover:text-foreground focus:bg-accent",
|
|
5405
|
+
"aria-label": "Close notifications",
|
|
5406
|
+
"data-testid": `${testId}-close`,
|
|
5407
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.X, { className: "size-3.5" })
|
|
5408
|
+
}
|
|
5400
5409
|
)
|
|
5401
5410
|
] })
|
|
5402
5411
|
] }),
|
|
@@ -5408,7 +5417,7 @@ function NotificationBell({
|
|
|
5408
5417
|
children: "Toasts are muted \u2014 everything still lands here."
|
|
5409
5418
|
}
|
|
5410
5419
|
),
|
|
5411
|
-
visible.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "px-3.5 py-10 text-center text-sm text-muted-foreground", children: emptyText }) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
5420
|
+
visible.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "px-3.5 py-10 text-center text-sm text-muted-foreground", children: emptyText }) : /* @__PURE__ */ jsxRuntime.jsx(chunkFIPS3VPH_cjs.ScrollArea, { className: "max-h-[380px]", children: /* @__PURE__ */ jsxRuntime.jsx("ul", { "data-testid": `${testId}-list`, children: visible.map((n) => {
|
|
5412
5421
|
const Glyph = GLYPH[n.variant];
|
|
5413
5422
|
return /* @__PURE__ */ jsxRuntime.jsx("li", { children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
5414
5423
|
"button",
|
|
@@ -5419,13 +5428,13 @@ function NotificationBell({
|
|
|
5419
5428
|
if (n.onSelect) n.onSelect();
|
|
5420
5429
|
else if (n.href) onNavigate?.(n.href);
|
|
5421
5430
|
},
|
|
5422
|
-
className:
|
|
5431
|
+
className: chunkFIPS3VPH_cjs.cn(
|
|
5423
5432
|
"flex w-full items-start gap-3 border-b border-border/60 px-3.5 py-3 text-left transition-colors hover:bg-accent",
|
|
5424
5433
|
!n.read && "bg-accent/40"
|
|
5425
5434
|
),
|
|
5426
5435
|
"data-testid": `${testId}-item`,
|
|
5427
5436
|
children: [
|
|
5428
|
-
/* @__PURE__ */ jsxRuntime.jsx(Glyph, { className:
|
|
5437
|
+
/* @__PURE__ */ jsxRuntime.jsx(Glyph, { className: chunkFIPS3VPH_cjs.cn("mt-0.5 size-4 shrink-0", tone(n.variant)) }),
|
|
5429
5438
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0 flex-1", children: [
|
|
5430
5439
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm font-medium leading-snug text-foreground", children: n.title }),
|
|
5431
5440
|
n.description && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-0.5 line-clamp-2 text-xs leading-relaxed text-muted-foreground", children: n.description }),
|
|
@@ -5439,7 +5448,7 @@ function NotificationBell({
|
|
|
5439
5448
|
onViewAll && // A real menu item, not a bare button: selecting it must CLOSE the
|
|
5440
5449
|
// dropdown on its way to the full surface.
|
|
5441
5450
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5442
|
-
|
|
5451
|
+
chunkFIPS3VPH_cjs.DropdownMenuItem,
|
|
5443
5452
|
{
|
|
5444
5453
|
onClick: onViewAll,
|
|
5445
5454
|
className: "justify-center rounded-none border-t border-border px-3.5 py-2.5 text-xs font-medium text-primary focus:text-primary",
|
|
@@ -5528,7 +5537,7 @@ function groupConversations(notifications, myExtId) {
|
|
|
5528
5537
|
return conversations;
|
|
5529
5538
|
}
|
|
5530
5539
|
function useDirectMessages(options) {
|
|
5531
|
-
const arbi =
|
|
5540
|
+
const arbi = chunk7IOCMCC5_cjs.useArbi();
|
|
5532
5541
|
const queryClient = reactQuery.useQueryClient();
|
|
5533
5542
|
const enabled = options?.enabled ?? arbi.isLoggedIn;
|
|
5534
5543
|
const query = reactQuery.useQuery({
|
|
@@ -5627,7 +5636,7 @@ function ConversationList({
|
|
|
5627
5636
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
5628
5637
|
"aside",
|
|
5629
5638
|
{
|
|
5630
|
-
className:
|
|
5639
|
+
className: chunkFIPS3VPH_cjs.cn(
|
|
5631
5640
|
"flex min-h-0 flex-col border-b border-border md:w-80 md:shrink-0 md:border-b-0 md:border-r",
|
|
5632
5641
|
className
|
|
5633
5642
|
),
|
|
@@ -5655,7 +5664,7 @@ function ConversationList({
|
|
|
5655
5664
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5656
5665
|
"span",
|
|
5657
5666
|
{
|
|
5658
|
-
className:
|
|
5667
|
+
className: chunkFIPS3VPH_cjs.cn(
|
|
5659
5668
|
"truncate text-sm text-foreground",
|
|
5660
5669
|
unread ? "font-bold" : "font-semibold"
|
|
5661
5670
|
),
|
|
@@ -5665,7 +5674,7 @@ function ConversationList({
|
|
|
5665
5674
|
c.badge ?? (isAgentUser(peer) ? /* @__PURE__ */ jsxRuntime.jsx(AgentBadge, {}) : null)
|
|
5666
5675
|
] }),
|
|
5667
5676
|
c.statusLabel ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
5668
|
-
|
|
5677
|
+
chunkFIPS3VPH_cjs.Badge,
|
|
5669
5678
|
{
|
|
5670
5679
|
variant: "outline",
|
|
5671
5680
|
className: "shrink-0 rounded-full px-2 py-0 text-[10px] font-medium text-muted-foreground",
|
|
@@ -5676,10 +5685,10 @@ function ConversationList({
|
|
|
5676
5685
|
// shouted louder than the message it was counting.
|
|
5677
5686
|
// Enough to catch the eye scanning the list, no more.
|
|
5678
5687
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5679
|
-
|
|
5688
|
+
chunkFIPS3VPH_cjs.Badge,
|
|
5680
5689
|
{
|
|
5681
5690
|
variant: "accent",
|
|
5682
|
-
className:
|
|
5691
|
+
className: chunkFIPS3VPH_cjs.cn(
|
|
5683
5692
|
"min-w-[1.125rem] justify-center rounded-full px-1 py-0 text-[10px] font-medium leading-[1.125rem] shadow-none",
|
|
5684
5693
|
classNames?.unreadBadge
|
|
5685
5694
|
),
|
|
@@ -5705,7 +5714,7 @@ function ConversationList({
|
|
|
5705
5714
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5706
5715
|
"p",
|
|
5707
5716
|
{
|
|
5708
|
-
className:
|
|
5717
|
+
className: chunkFIPS3VPH_cjs.cn(
|
|
5709
5718
|
"min-w-0 flex-1 truncate text-xs",
|
|
5710
5719
|
unread ? "font-medium text-foreground" : "text-muted-foreground"
|
|
5711
5720
|
),
|
|
@@ -5716,7 +5725,7 @@ function ConversationList({
|
|
|
5716
5725
|
] })
|
|
5717
5726
|
] })
|
|
5718
5727
|
] });
|
|
5719
|
-
const rowClass =
|
|
5728
|
+
const rowClass = chunkFIPS3VPH_cjs.cn(
|
|
5720
5729
|
// Each row is its own opaque surface. Left transparent it takes
|
|
5721
5730
|
// the panel's colour, and the chips stop reading as cards at all
|
|
5722
5731
|
// — which is the whole point of them.
|
|
@@ -5845,7 +5854,7 @@ function MessageThread({
|
|
|
5845
5854
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "truncate text-xs text-muted-foreground", children: peer.email })
|
|
5846
5855
|
] })
|
|
5847
5856
|
] }),
|
|
5848
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5857
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkFIPS3VPH_cjs.ScrollArea, { className: "min-h-0 flex-1 bg-background", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col px-4 py-4", "data-testid": "arbi-dm-thread", children: [
|
|
5849
5858
|
items.map(({ message: m, isLastOfRun, isFirstOfDay }) => /* @__PURE__ */ jsxRuntime.jsxs(React2.Fragment, { children: [
|
|
5850
5859
|
isFirstOfDay && formatDay && /* @__PURE__ */ jsxRuntime.jsx(DateSeparator, { children: formatDay(m.createdAt) }),
|
|
5851
5860
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -5895,7 +5904,7 @@ function DmComposer({
|
|
|
5895
5904
|
children,
|
|
5896
5905
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-end gap-2", children: [
|
|
5897
5906
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5898
|
-
|
|
5907
|
+
chunkFIPS3VPH_cjs.Textarea,
|
|
5899
5908
|
{
|
|
5900
5909
|
ref: inputRef,
|
|
5901
5910
|
value: draft,
|
|
@@ -5909,12 +5918,12 @@ function DmComposer({
|
|
|
5909
5918
|
}
|
|
5910
5919
|
),
|
|
5911
5920
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
5912
|
-
|
|
5921
|
+
chunkFIPS3VPH_cjs.Button,
|
|
5913
5922
|
{
|
|
5914
5923
|
type: "button",
|
|
5915
5924
|
onClick: () => void submit(),
|
|
5916
5925
|
disabled: disabled || busy || !draft.trim(),
|
|
5917
|
-
className:
|
|
5926
|
+
className: chunkFIPS3VPH_cjs.cn(classNames?.sendButton),
|
|
5918
5927
|
"data-testid": "arbi-dm-send",
|
|
5919
5928
|
"aria-label": "Send message",
|
|
5920
5929
|
children: [
|
|
@@ -5967,7 +5976,7 @@ function DirectMessages({
|
|
|
5967
5976
|
{
|
|
5968
5977
|
"data-testid": "arbi-dm",
|
|
5969
5978
|
style: { height: "calc(100vh - 16rem)", minHeight: "28rem" },
|
|
5970
|
-
className:
|
|
5979
|
+
className: chunkFIPS3VPH_cjs.cn(
|
|
5971
5980
|
"relative flex flex-col overflow-hidden rounded-xl border border-border bg-card md:flex-row",
|
|
5972
5981
|
className
|
|
5973
5982
|
),
|
|
@@ -6035,7 +6044,7 @@ function ImageCropper({
|
|
|
6035
6044
|
},
|
|
6036
6045
|
[onCropComplete, activeAspect]
|
|
6037
6046
|
);
|
|
6038
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className:
|
|
6047
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: chunkFIPS3VPH_cjs.cn("flex flex-col gap-3", className), children: [
|
|
6039
6048
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative h-72 w-full overflow-hidden rounded-md bg-foreground/95", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
6040
6049
|
Cropper__default.default,
|
|
6041
6050
|
{
|
|
@@ -6061,7 +6070,7 @@ function ImageCropper({
|
|
|
6061
6070
|
type: "button",
|
|
6062
6071
|
onClick: () => setActiveAspect(opt.value),
|
|
6063
6072
|
"data-testid": `image-cropper-aspect-${opt.label}`,
|
|
6064
|
-
className:
|
|
6073
|
+
className: chunkFIPS3VPH_cjs.cn(
|
|
6065
6074
|
"rounded-md px-2 py-1 text-xs font-medium transition-colors",
|
|
6066
6075
|
on ? "bg-primary text-primary-foreground" : "text-muted-foreground hover:bg-accent hover:text-foreground"
|
|
6067
6076
|
),
|
|
@@ -6074,7 +6083,7 @@ function ImageCropper({
|
|
|
6074
6083
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-1.5", children: [
|
|
6075
6084
|
/* @__PURE__ */ jsxRuntime.jsx("label", { className: "text-[11px] font-semibold uppercase tracking-wider text-muted-foreground", children: "Zoom" }),
|
|
6076
6085
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6077
|
-
|
|
6086
|
+
chunkFIPS3VPH_cjs.Slider,
|
|
6078
6087
|
{
|
|
6079
6088
|
value: [zoom],
|
|
6080
6089
|
onValueChange: ([v]) => setZoom(v ?? 1),
|
|
@@ -6151,8 +6160,8 @@ function ImageCropModal({
|
|
|
6151
6160
|
setBusy(false);
|
|
6152
6161
|
}
|
|
6153
6162
|
};
|
|
6154
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
6155
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6163
|
+
return /* @__PURE__ */ jsxRuntime.jsx(chunkFIPS3VPH_cjs.Dialog, { open, onOpenChange: (next) => !next ? onCancel() : void 0, children: /* @__PURE__ */ jsxRuntime.jsxs(chunkFIPS3VPH_cjs.DialogContent, { className: "sm:max-w-md", "data-testid": "image-crop-modal", children: [
|
|
6164
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkFIPS3VPH_cjs.DialogHeader, { children: /* @__PURE__ */ jsxRuntime.jsx(chunkFIPS3VPH_cjs.DialogTitle, { children: title }) }),
|
|
6156
6165
|
image ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
6157
6166
|
ImageCropper,
|
|
6158
6167
|
{
|
|
@@ -6163,9 +6172,9 @@ function ImageCropModal({
|
|
|
6163
6172
|
onCropComplete: setArea
|
|
6164
6173
|
}
|
|
6165
6174
|
) : null,
|
|
6166
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
6167
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6168
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
6175
|
+
/* @__PURE__ */ jsxRuntime.jsxs(chunkFIPS3VPH_cjs.DialogFooter, { className: "gap-2 sm:gap-2", children: [
|
|
6176
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkFIPS3VPH_cjs.Button, { variant: "ghost", onClick: onCancel, disabled: busy, children: "Cancel" }),
|
|
6177
|
+
/* @__PURE__ */ jsxRuntime.jsxs(chunkFIPS3VPH_cjs.Button, { onClick: handleSave, disabled: !area || busy, "data-testid": "image-crop-save", children: [
|
|
6169
6178
|
busy ? /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Loader2, { className: "mr-1 size-4 animate-spin" }) : null,
|
|
6170
6179
|
saveLabel
|
|
6171
6180
|
] })
|
|
@@ -6231,18 +6240,18 @@ function CommandPalette({
|
|
|
6231
6240
|
if (!q || task.isRunning) return;
|
|
6232
6241
|
void task.run(buildAskPrompt(q), askDocIds, { model });
|
|
6233
6242
|
};
|
|
6234
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
6235
|
-
|
|
6243
|
+
return /* @__PURE__ */ jsxRuntime.jsx(chunkFIPS3VPH_cjs.Dialog, { open, onOpenChange, children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
6244
|
+
chunkFIPS3VPH_cjs.DialogContent,
|
|
6236
6245
|
{
|
|
6237
|
-
className:
|
|
6246
|
+
className: chunkFIPS3VPH_cjs.cn(
|
|
6238
6247
|
"top-[12%] max-w-2xl translate-y-0 gap-0 overflow-hidden p-0",
|
|
6239
6248
|
classNames?.dialog
|
|
6240
6249
|
),
|
|
6241
6250
|
"data-testid": testId,
|
|
6242
6251
|
children: [
|
|
6243
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6252
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkFIPS3VPH_cjs.DialogTitle, { className: "sr-only", children: "Command palette" }),
|
|
6244
6253
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-3 border-b border-border px-4", children: [
|
|
6245
|
-
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.Sparkles, { className:
|
|
6254
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.Sparkles, { className: chunkFIPS3VPH_cjs.cn("size-4 shrink-0 text-ai-accent", classNames?.leadingIcon) }),
|
|
6246
6255
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6247
6256
|
"input",
|
|
6248
6257
|
{
|
|
@@ -6256,7 +6265,7 @@ function CommandPalette({
|
|
|
6256
6265
|
}
|
|
6257
6266
|
},
|
|
6258
6267
|
placeholder,
|
|
6259
|
-
className:
|
|
6268
|
+
className: chunkFIPS3VPH_cjs.cn(
|
|
6260
6269
|
"h-14 flex-1 bg-transparent text-base outline-none placeholder:text-muted-foreground",
|
|
6261
6270
|
classNames?.input
|
|
6262
6271
|
),
|
|
@@ -6271,7 +6280,7 @@ function CommandPalette({
|
|
|
6271
6280
|
{
|
|
6272
6281
|
type: "button",
|
|
6273
6282
|
onClick: ask,
|
|
6274
|
-
className:
|
|
6283
|
+
className: chunkFIPS3VPH_cjs.cn(
|
|
6275
6284
|
"mb-1 flex w-full items-center gap-3 rounded-lg px-3 py-2.5 text-left hover:bg-accent",
|
|
6276
6285
|
classNames?.askAction
|
|
6277
6286
|
),
|
|
@@ -6280,7 +6289,7 @@ function CommandPalette({
|
|
|
6280
6289
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6281
6290
|
"span",
|
|
6282
6291
|
{
|
|
6283
|
-
className:
|
|
6292
|
+
className: chunkFIPS3VPH_cjs.cn(
|
|
6284
6293
|
"flex size-8 items-center justify-center rounded-md bg-ai-surface text-ai-accent",
|
|
6285
6294
|
classNames?.askChip
|
|
6286
6295
|
),
|
|
@@ -6311,7 +6320,7 @@ function CommandPalette({
|
|
|
6311
6320
|
}
|
|
6312
6321
|
),
|
|
6313
6322
|
task.isDone && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-3 flex justify-end", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
6314
|
-
|
|
6323
|
+
chunkFIPS3VPH_cjs.Button,
|
|
6315
6324
|
{
|
|
6316
6325
|
variant: "outline",
|
|
6317
6326
|
size: "sm",
|
|
@@ -6329,7 +6338,7 @@ function CommandPalette({
|
|
|
6329
6338
|
{
|
|
6330
6339
|
type: "button",
|
|
6331
6340
|
onClick: () => go(item.to),
|
|
6332
|
-
className:
|
|
6341
|
+
className: chunkFIPS3VPH_cjs.cn(
|
|
6333
6342
|
"flex w-full items-center gap-3 rounded-lg px-3 py-2 text-left hover:bg-accent",
|
|
6334
6343
|
classNames?.navItem
|
|
6335
6344
|
),
|
|
@@ -6428,23 +6437,23 @@ function UserMenu({
|
|
|
6428
6437
|
testId = "user-menu",
|
|
6429
6438
|
logoutTestId
|
|
6430
6439
|
}) {
|
|
6431
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
6432
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6440
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(chunkFIPS3VPH_cjs.DropdownMenu, { children: [
|
|
6441
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkFIPS3VPH_cjs.DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
6433
6442
|
"button",
|
|
6434
6443
|
{
|
|
6435
|
-
className:
|
|
6444
|
+
className: chunkFIPS3VPH_cjs.cn(
|
|
6436
6445
|
"flex items-center gap-2 rounded-md px-1.5 py-1 transition-colors hover:bg-accent",
|
|
6437
6446
|
classNames?.trigger
|
|
6438
6447
|
),
|
|
6439
6448
|
"data-testid": testId,
|
|
6440
6449
|
children: [
|
|
6441
6450
|
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "relative", children: [
|
|
6442
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
6443
|
-
user.picture ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
6451
|
+
/* @__PURE__ */ jsxRuntime.jsxs(chunkFIPS3VPH_cjs.Avatar, { className: "size-8", children: [
|
|
6452
|
+
user.picture ? /* @__PURE__ */ jsxRuntime.jsx(chunkFIPS3VPH_cjs.AvatarImage, { src: user.picture, alt: user.name }) : null,
|
|
6444
6453
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6445
|
-
|
|
6454
|
+
chunkFIPS3VPH_cjs.AvatarFallback,
|
|
6446
6455
|
{
|
|
6447
|
-
className:
|
|
6456
|
+
className: chunkFIPS3VPH_cjs.cn("bg-primary text-primary-foreground", classNames?.fallback),
|
|
6448
6457
|
children: nameInitials(user.name)
|
|
6449
6458
|
}
|
|
6450
6459
|
)
|
|
@@ -6452,7 +6461,7 @@ function UserMenu({
|
|
|
6452
6461
|
status && /* @__PURE__ */ jsxRuntime.jsx(
|
|
6453
6462
|
"span",
|
|
6454
6463
|
{
|
|
6455
|
-
className:
|
|
6464
|
+
className: chunkFIPS3VPH_cjs.cn(
|
|
6456
6465
|
"absolute -bottom-0.5 -right-0.5 size-2.5 rounded-full border-2 border-background",
|
|
6457
6466
|
STATUS_DOT[status.tone]
|
|
6458
6467
|
),
|
|
@@ -6466,14 +6475,24 @@ function UserMenu({
|
|
|
6466
6475
|
}
|
|
6467
6476
|
) }),
|
|
6468
6477
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
6469
|
-
|
|
6478
|
+
chunkFIPS3VPH_cjs.DropdownMenuContent,
|
|
6470
6479
|
{
|
|
6471
6480
|
align,
|
|
6472
6481
|
sideOffset: 8,
|
|
6473
6482
|
collisionPadding: 12,
|
|
6474
6483
|
className: "w-56 rounded-lg border-border/60 shadow-lg",
|
|
6484
|
+
"data-testid": "user-menu-panel",
|
|
6475
6485
|
children: [
|
|
6476
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
6486
|
+
/* @__PURE__ */ jsxRuntime.jsxs(chunkFIPS3VPH_cjs.DropdownMenuLabel, { className: "relative pr-8", children: [
|
|
6487
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6488
|
+
chunkFIPS3VPH_cjs.DropdownMenuItem,
|
|
6489
|
+
{
|
|
6490
|
+
className: "absolute right-1 top-1 flex size-6 items-center justify-center rounded-md p-0 text-muted-foreground transition-colors hover:bg-accent hover:text-foreground focus:bg-accent",
|
|
6491
|
+
"aria-label": "Close account menu",
|
|
6492
|
+
"data-testid": "user-menu-close",
|
|
6493
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.X, { className: "size-3.5" })
|
|
6494
|
+
}
|
|
6495
|
+
),
|
|
6477
6496
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "font-medium text-foreground", children: user.name }),
|
|
6478
6497
|
user.email && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-xs font-normal text-muted-foreground", children: user.email }),
|
|
6479
6498
|
status && /* @__PURE__ */ jsxRuntime.jsxs(
|
|
@@ -6483,7 +6502,7 @@ function UserMenu({
|
|
|
6483
6502
|
"data-testid": status.testId,
|
|
6484
6503
|
children: [
|
|
6485
6504
|
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "flex items-center gap-1.5", children: [
|
|
6486
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className:
|
|
6505
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: chunkFIPS3VPH_cjs.cn("size-2 shrink-0 rounded-full", STATUS_DOT[status.tone]) }),
|
|
6487
6506
|
status.label
|
|
6488
6507
|
] }),
|
|
6489
6508
|
status.detail && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-0.5 truncate pl-3.5 text-[10px] leading-tight text-muted-foreground/70", children: status.detail })
|
|
@@ -6491,12 +6510,12 @@ function UserMenu({
|
|
|
6491
6510
|
}
|
|
6492
6511
|
)
|
|
6493
6512
|
] }),
|
|
6494
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6495
|
-
items.map((item) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
6513
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkFIPS3VPH_cjs.DropdownMenuSeparator, {}),
|
|
6514
|
+
items.map((item) => /* @__PURE__ */ jsxRuntime.jsxs(chunkFIPS3VPH_cjs.DropdownMenuItem, { onClick: item.onSelect, "data-testid": item.testId, children: [
|
|
6496
6515
|
item.icon && /* @__PURE__ */ jsxRuntime.jsx(item.icon, { className: "size-4" }),
|
|
6497
6516
|
item.label
|
|
6498
6517
|
] }, item.label)),
|
|
6499
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
6518
|
+
/* @__PURE__ */ jsxRuntime.jsxs(chunkFIPS3VPH_cjs.DropdownMenuItem, { onClick: onLogout, "data-testid": logoutTestId ?? `${testId}-logout`, children: [
|
|
6500
6519
|
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.LogOut, { className: "size-4" }),
|
|
6501
6520
|
logoutLabel
|
|
6502
6521
|
] })
|
|
@@ -6631,7 +6650,7 @@ function DocumentTable({
|
|
|
6631
6650
|
cellRenderer: (p) => {
|
|
6632
6651
|
const status = p.data?.status;
|
|
6633
6652
|
if (!status) return null;
|
|
6634
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
6653
|
+
return /* @__PURE__ */ jsxRuntime.jsx(chunkFIPS3VPH_cjs.Badge, { variant: STATUS_VARIANTS[status.toLowerCase()] ?? "secondary", children: status });
|
|
6635
6654
|
}
|
|
6636
6655
|
},
|
|
6637
6656
|
{
|
|
@@ -6846,7 +6865,7 @@ function DocumentCard({
|
|
|
6846
6865
|
"div",
|
|
6847
6866
|
{
|
|
6848
6867
|
"data-testid": testId,
|
|
6849
|
-
className:
|
|
6868
|
+
className: chunkFIPS3VPH_cjs.cn(
|
|
6850
6869
|
// Square corners and a portrait-page aspect (height = 1.3 × width), so a
|
|
6851
6870
|
// cover-page thumbnail reads edge-to-edge.
|
|
6852
6871
|
"group relative aspect-[10/13] select-none overflow-hidden border bg-muted/20 transition",
|
|
@@ -6863,7 +6882,7 @@ function DocumentCard({
|
|
|
6863
6882
|
draggable: false,
|
|
6864
6883
|
onError: () => setThumbFailed(true),
|
|
6865
6884
|
onLoad: (e) => setThumbLandscape(e.currentTarget.naturalWidth > e.currentTarget.naturalHeight),
|
|
6866
|
-
className:
|
|
6885
|
+
className: chunkFIPS3VPH_cjs.cn(
|
|
6867
6886
|
"absolute inset-0 size-full bg-white",
|
|
6868
6887
|
thumbLandscape ? "object-contain" : "object-cover object-top"
|
|
6869
6888
|
)
|
|
@@ -6881,14 +6900,14 @@ function DocumentCard({
|
|
|
6881
6900
|
}
|
|
6882
6901
|
),
|
|
6883
6902
|
onToggleSelect && /* @__PURE__ */ jsxRuntime.jsx(
|
|
6884
|
-
|
|
6903
|
+
chunkFIPS3VPH_cjs.Checkbox,
|
|
6885
6904
|
{
|
|
6886
6905
|
checked: selected,
|
|
6887
6906
|
onCheckedChange: () => onToggleSelect(),
|
|
6888
6907
|
onClick: (e) => e.stopPropagation(),
|
|
6889
6908
|
"aria-label": selected ? "Deselect" : "Select",
|
|
6890
6909
|
"data-testid": `${testId}-select`,
|
|
6891
|
-
className:
|
|
6910
|
+
className: chunkFIPS3VPH_cjs.cn(
|
|
6892
6911
|
"absolute left-1.5 top-1.5 z-20 size-6 rounded-none border-muted-foreground/60 bg-background shadow-sm transition",
|
|
6893
6912
|
selected ? "opacity-100" : "opacity-40 group-hover:opacity-100"
|
|
6894
6913
|
)
|
|
@@ -6937,7 +6956,7 @@ function DocumentCardMenu({
|
|
|
6937
6956
|
canDelete = true,
|
|
6938
6957
|
testId = "document-card-menu"
|
|
6939
6958
|
}) {
|
|
6940
|
-
const arbi =
|
|
6959
|
+
const arbi = chunk7IOCMCC5_cjs.useArbi();
|
|
6941
6960
|
const queryClient = reactQuery.useQueryClient();
|
|
6942
6961
|
const invalidateDocuments = () => {
|
|
6943
6962
|
const workspaceId = arbi.getWorkspaceId();
|
|
@@ -6964,8 +6983,8 @@ function DocumentCardMenu({
|
|
|
6964
6983
|
mutationFn: () => arbi.documents.delete([docId]),
|
|
6965
6984
|
onSuccess: invalidateDocuments
|
|
6966
6985
|
});
|
|
6967
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
6968
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6986
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(chunkFIPS3VPH_cjs.DropdownMenu, { children: [
|
|
6987
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkFIPS3VPH_cjs.DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
6969
6988
|
"button",
|
|
6970
6989
|
{
|
|
6971
6990
|
type: "button",
|
|
@@ -6976,17 +6995,17 @@ function DocumentCardMenu({
|
|
|
6976
6995
|
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.MoreHorizontal, { className: "size-4" })
|
|
6977
6996
|
}
|
|
6978
6997
|
) }),
|
|
6979
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
6980
|
-
onOpen && /* @__PURE__ */ jsxRuntime.jsxs(
|
|
6998
|
+
/* @__PURE__ */ jsxRuntime.jsxs(chunkFIPS3VPH_cjs.DropdownMenuContent, { align: "start", onClick: (e) => e.stopPropagation(), className: "w-44", children: [
|
|
6999
|
+
onOpen && /* @__PURE__ */ jsxRuntime.jsxs(chunkFIPS3VPH_cjs.DropdownMenuItem, { onSelect: onOpen, "data-testid": `${testId}-open`, children: [
|
|
6981
7000
|
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.SquarePen, { className: "mr-2 size-4" }),
|
|
6982
7001
|
"Open"
|
|
6983
7002
|
] }),
|
|
6984
|
-
onRename && /* @__PURE__ */ jsxRuntime.jsxs(
|
|
7003
|
+
onRename && /* @__PURE__ */ jsxRuntime.jsxs(chunkFIPS3VPH_cjs.DropdownMenuItem, { onSelect: onRename, "data-testid": `${testId}-rename`, children: [
|
|
6985
7004
|
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.Pencil, { className: "mr-2 size-4" }),
|
|
6986
7005
|
"Rename"
|
|
6987
7006
|
] }),
|
|
6988
7007
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
6989
|
-
|
|
7008
|
+
chunkFIPS3VPH_cjs.DropdownMenuItem,
|
|
6990
7009
|
{
|
|
6991
7010
|
onSelect: () => download.mutate(),
|
|
6992
7011
|
disabled: download.isPending,
|
|
@@ -6998,9 +7017,9 @@ function DocumentCardMenu({
|
|
|
6998
7017
|
}
|
|
6999
7018
|
),
|
|
7000
7019
|
canDelete && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
7001
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
7020
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkFIPS3VPH_cjs.DropdownMenuSeparator, {}),
|
|
7002
7021
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
7003
|
-
|
|
7022
|
+
chunkFIPS3VPH_cjs.DropdownMenuItem,
|
|
7004
7023
|
{
|
|
7005
7024
|
onSelect: () => remove.mutate(),
|
|
7006
7025
|
disabled: remove.isPending,
|
|
@@ -7081,7 +7100,7 @@ function DocumentGallery({
|
|
|
7081
7100
|
},
|
|
7082
7101
|
[onOpenDocument, setViewingDocId]
|
|
7083
7102
|
);
|
|
7084
|
-
const arbi =
|
|
7103
|
+
const arbi = chunk7IOCMCC5_cjs.useArbi();
|
|
7085
7104
|
const queryClient = reactQuery.useQueryClient();
|
|
7086
7105
|
const [renamingId, setRenamingId] = React2__default.default.useState(null);
|
|
7087
7106
|
const rename = reactQuery.useMutation({
|
|
@@ -7100,7 +7119,7 @@ function DocumentGallery({
|
|
|
7100
7119
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
7101
7120
|
"div",
|
|
7102
7121
|
{
|
|
7103
|
-
className:
|
|
7122
|
+
className: chunkFIPS3VPH_cjs.cn(
|
|
7104
7123
|
"flex items-center justify-center p-8 text-sm text-muted-foreground",
|
|
7105
7124
|
className
|
|
7106
7125
|
),
|
|
@@ -7112,7 +7131,7 @@ function DocumentGallery({
|
|
|
7112
7131
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
7113
7132
|
"div",
|
|
7114
7133
|
{
|
|
7115
|
-
className:
|
|
7134
|
+
className: chunkFIPS3VPH_cjs.cn(
|
|
7116
7135
|
"flex items-center justify-center p-8 text-sm text-muted-foreground",
|
|
7117
7136
|
className
|
|
7118
7137
|
),
|
|
@@ -7124,7 +7143,7 @@ function DocumentGallery({
|
|
|
7124
7143
|
"div",
|
|
7125
7144
|
{
|
|
7126
7145
|
"data-testid": "document-gallery",
|
|
7127
|
-
className:
|
|
7146
|
+
className: chunkFIPS3VPH_cjs.cn("grid gap-3", className),
|
|
7128
7147
|
style: { gridTemplateColumns: `repeat(auto-fill, minmax(${minTileWidth}px, 1fr))` },
|
|
7129
7148
|
children: rows.map((doc) => {
|
|
7130
7149
|
const id = doc.external_id;
|
|
@@ -7171,7 +7190,7 @@ function VoiceNoteRecorder({
|
|
|
7171
7190
|
isSaving = false,
|
|
7172
7191
|
transcribe
|
|
7173
7192
|
}) {
|
|
7174
|
-
const recorder =
|
|
7193
|
+
const recorder = chunkFIPS3VPH_cjs.useAudioRecorder();
|
|
7175
7194
|
const [transcript, setTranscript] = React2.useState(null);
|
|
7176
7195
|
const [isTranscribing, setIsTranscribing] = React2.useState(false);
|
|
7177
7196
|
React2.useEffect(() => {
|
|
@@ -7203,7 +7222,7 @@ function VoiceNoteRecorder({
|
|
|
7203
7222
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex h-full flex-col items-center justify-center gap-6 p-8", children: [
|
|
7204
7223
|
recorder.state === "idle" && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
7205
7224
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
7206
|
-
|
|
7225
|
+
chunkFIPS3VPH_cjs.Button,
|
|
7207
7226
|
{
|
|
7208
7227
|
type: "button",
|
|
7209
7228
|
size: "lg",
|
|
@@ -7217,7 +7236,7 @@ function VoiceNoteRecorder({
|
|
|
7217
7236
|
] }),
|
|
7218
7237
|
(recorder.state === "recording" || recorder.state === "paused") && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
7219
7238
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
7220
|
-
|
|
7239
|
+
chunkFIPS3VPH_cjs.MicWaveformIndicator,
|
|
7221
7240
|
{
|
|
7222
7241
|
level: recorder.level,
|
|
7223
7242
|
elapsedMs: recorder.elapsedMs,
|
|
@@ -7226,7 +7245,7 @@ function VoiceNoteRecorder({
|
|
|
7226
7245
|
),
|
|
7227
7246
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-3", children: [
|
|
7228
7247
|
recorder.state === "recording" ? /* @__PURE__ */ jsxRuntime.jsxs(
|
|
7229
|
-
|
|
7248
|
+
chunkFIPS3VPH_cjs.Button,
|
|
7230
7249
|
{
|
|
7231
7250
|
type: "button",
|
|
7232
7251
|
variant: "outline",
|
|
@@ -7238,7 +7257,7 @@ function VoiceNoteRecorder({
|
|
|
7238
7257
|
]
|
|
7239
7258
|
}
|
|
7240
7259
|
) : /* @__PURE__ */ jsxRuntime.jsxs(
|
|
7241
|
-
|
|
7260
|
+
chunkFIPS3VPH_cjs.Button,
|
|
7242
7261
|
{
|
|
7243
7262
|
type: "button",
|
|
7244
7263
|
variant: "outline",
|
|
@@ -7250,14 +7269,14 @@ function VoiceNoteRecorder({
|
|
|
7250
7269
|
]
|
|
7251
7270
|
}
|
|
7252
7271
|
),
|
|
7253
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
7272
|
+
/* @__PURE__ */ jsxRuntime.jsxs(chunkFIPS3VPH_cjs.Button, { type: "button", onClick: recorder.stop, "data-testid": "voice-note-stop-button", children: [
|
|
7254
7273
|
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.Square, { className: "mr-1.5 h-3.5 w-3.5 fill-current" }),
|
|
7255
7274
|
"Stop"
|
|
7256
7275
|
] })
|
|
7257
7276
|
] })
|
|
7258
7277
|
] }),
|
|
7259
7278
|
recorder.state === "stopped" && recorder.blob && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
7260
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full max-w-md", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
7279
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full max-w-md", children: /* @__PURE__ */ jsxRuntime.jsx(chunk7IOCMCC5_cjs.AudioViewer, { blob: recorder.blob, title }) }),
|
|
7261
7280
|
(isTranscribing || transcript) && /* @__PURE__ */ jsxRuntime.jsx(
|
|
7262
7281
|
"div",
|
|
7263
7282
|
{
|
|
@@ -7274,7 +7293,7 @@ function VoiceNoteRecorder({
|
|
|
7274
7293
|
),
|
|
7275
7294
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-3", children: [
|
|
7276
7295
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
7277
|
-
|
|
7296
|
+
chunkFIPS3VPH_cjs.Button,
|
|
7278
7297
|
{
|
|
7279
7298
|
type: "button",
|
|
7280
7299
|
variant: "outline",
|
|
@@ -7288,7 +7307,7 @@ function VoiceNoteRecorder({
|
|
|
7288
7307
|
}
|
|
7289
7308
|
),
|
|
7290
7309
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
7291
|
-
|
|
7310
|
+
chunkFIPS3VPH_cjs.Button,
|
|
7292
7311
|
{
|
|
7293
7312
|
type: "button",
|
|
7294
7313
|
variant: "outline",
|
|
@@ -7302,7 +7321,7 @@ function VoiceNoteRecorder({
|
|
|
7302
7321
|
}
|
|
7303
7322
|
),
|
|
7304
7323
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
7305
|
-
|
|
7324
|
+
chunkFIPS3VPH_cjs.Button,
|
|
7306
7325
|
{
|
|
7307
7326
|
type: "button",
|
|
7308
7327
|
onClick: handleSave,
|
|
@@ -7339,7 +7358,7 @@ function DraftTitleControls({
|
|
|
7339
7358
|
}
|
|
7340
7359
|
),
|
|
7341
7360
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
7342
|
-
|
|
7361
|
+
chunkFIPS3VPH_cjs.IconToggle,
|
|
7343
7362
|
{
|
|
7344
7363
|
icon: lucideReact.Sparkles,
|
|
7345
7364
|
isActive: autoRename,
|
|
@@ -7352,6 +7371,337 @@ function DraftTitleControls({
|
|
|
7352
7371
|
)
|
|
7353
7372
|
] });
|
|
7354
7373
|
}
|
|
7374
|
+
function useCameraStream(constraints = { video: true, audio: false }) {
|
|
7375
|
+
const [stream, setStream] = React2.useState(null);
|
|
7376
|
+
const [isStarting, setIsStarting] = React2.useState(false);
|
|
7377
|
+
const [error, setError] = React2.useState(null);
|
|
7378
|
+
const streamRef = React2.useRef(null);
|
|
7379
|
+
const stop = React2.useCallback(() => {
|
|
7380
|
+
streamRef.current?.getTracks().forEach((t) => t.stop());
|
|
7381
|
+
streamRef.current = null;
|
|
7382
|
+
setStream(null);
|
|
7383
|
+
}, []);
|
|
7384
|
+
const constraintsRef = React2.useRef(constraints);
|
|
7385
|
+
constraintsRef.current = constraints;
|
|
7386
|
+
const start = React2.useCallback(async () => {
|
|
7387
|
+
if (streamRef.current) return;
|
|
7388
|
+
setError(null);
|
|
7389
|
+
setIsStarting(true);
|
|
7390
|
+
try {
|
|
7391
|
+
const media = await navigator.mediaDevices.getUserMedia(constraintsRef.current);
|
|
7392
|
+
streamRef.current = media;
|
|
7393
|
+
setStream(media);
|
|
7394
|
+
} catch (err) {
|
|
7395
|
+
setError(chunkFIPS3VPH_cjs.classifyMediaError(err, "camera"));
|
|
7396
|
+
} finally {
|
|
7397
|
+
setIsStarting(false);
|
|
7398
|
+
}
|
|
7399
|
+
}, []);
|
|
7400
|
+
React2.useEffect(() => () => stop(), [stop]);
|
|
7401
|
+
return { stream, isStarting, error, start, stop };
|
|
7402
|
+
}
|
|
7403
|
+
var ELAPSED_TICK_MS = 200;
|
|
7404
|
+
function useVideoRecorder(stream) {
|
|
7405
|
+
const [state, setState] = React2.useState("idle");
|
|
7406
|
+
const [elapsedMs, setElapsedMs] = React2.useState(0);
|
|
7407
|
+
const [blob, setBlob] = React2.useState(null);
|
|
7408
|
+
const [mimeType, setMimeType] = React2.useState(null);
|
|
7409
|
+
const mediaRecorderRef = React2.useRef(null);
|
|
7410
|
+
const chunksRef = React2.useRef([]);
|
|
7411
|
+
const startedAtRef = React2.useRef(0);
|
|
7412
|
+
const tickRef = React2.useRef(null);
|
|
7413
|
+
const stateRef = React2.useRef("idle");
|
|
7414
|
+
stateRef.current = state;
|
|
7415
|
+
const stopTicking = React2.useCallback(() => {
|
|
7416
|
+
if (tickRef.current !== null) clearInterval(tickRef.current);
|
|
7417
|
+
tickRef.current = null;
|
|
7418
|
+
}, []);
|
|
7419
|
+
React2.useEffect(() => stopTicking, [stopTicking]);
|
|
7420
|
+
const start = React2.useCallback(() => {
|
|
7421
|
+
if (!stream || stateRef.current === "recording") return;
|
|
7422
|
+
const mt = MediaRecorder.isTypeSupported("video/webm") ? "video/webm" : "video/mp4";
|
|
7423
|
+
const recorder = new MediaRecorder(stream, { mimeType: mt });
|
|
7424
|
+
chunksRef.current = [];
|
|
7425
|
+
recorder.ondataavailable = (e) => {
|
|
7426
|
+
if (e.data.size > 0) chunksRef.current.push(e.data);
|
|
7427
|
+
};
|
|
7428
|
+
mediaRecorderRef.current = recorder;
|
|
7429
|
+
setMimeType(mt);
|
|
7430
|
+
setBlob(null);
|
|
7431
|
+
startedAtRef.current = performance.now();
|
|
7432
|
+
setElapsedMs(0);
|
|
7433
|
+
recorder.start();
|
|
7434
|
+
setState("recording");
|
|
7435
|
+
tickRef.current = setInterval(() => {
|
|
7436
|
+
setElapsedMs(performance.now() - startedAtRef.current);
|
|
7437
|
+
}, ELAPSED_TICK_MS);
|
|
7438
|
+
}, [stream]);
|
|
7439
|
+
const stop = React2.useCallback(() => {
|
|
7440
|
+
const recorder = mediaRecorderRef.current;
|
|
7441
|
+
if (!recorder || recorder.state === "inactive") return;
|
|
7442
|
+
const finalElapsed = performance.now() - startedAtRef.current;
|
|
7443
|
+
stopTicking();
|
|
7444
|
+
recorder.onstop = () => {
|
|
7445
|
+
const finalBlob = chunksRef.current.length ? new Blob(chunksRef.current, { type: recorder.mimeType }) : null;
|
|
7446
|
+
setBlob(finalBlob);
|
|
7447
|
+
setElapsedMs(finalElapsed);
|
|
7448
|
+
setState("stopped");
|
|
7449
|
+
};
|
|
7450
|
+
recorder.stop();
|
|
7451
|
+
}, [stopTicking]);
|
|
7452
|
+
const reset = React2.useCallback(() => {
|
|
7453
|
+
setState("idle");
|
|
7454
|
+
setBlob(null);
|
|
7455
|
+
setElapsedMs(0);
|
|
7456
|
+
setMimeType(null);
|
|
7457
|
+
}, []);
|
|
7458
|
+
return { state, elapsedMs, blob, mimeType, start, stop, reset };
|
|
7459
|
+
}
|
|
7460
|
+
|
|
7461
|
+
// src/documents/capture-frame.ts
|
|
7462
|
+
function captureFrameAsBlob(video, mimeType = "image/png") {
|
|
7463
|
+
return new Promise((resolve, reject) => {
|
|
7464
|
+
const canvas = document.createElement("canvas");
|
|
7465
|
+
canvas.width = video.videoWidth;
|
|
7466
|
+
canvas.height = video.videoHeight;
|
|
7467
|
+
const ctx = canvas.getContext("2d");
|
|
7468
|
+
if (!ctx) {
|
|
7469
|
+
reject(new Error("Canvas 2D context is not available"));
|
|
7470
|
+
return;
|
|
7471
|
+
}
|
|
7472
|
+
ctx.drawImage(video, 0, 0, canvas.width, canvas.height);
|
|
7473
|
+
canvas.toBlob((blob) => {
|
|
7474
|
+
if (blob) resolve(blob);
|
|
7475
|
+
else reject(new Error("Failed to capture the photo"));
|
|
7476
|
+
}, mimeType);
|
|
7477
|
+
});
|
|
7478
|
+
}
|
|
7479
|
+
function PhotoCapture({ onSave, onDiscard, onError, isSaving = false }) {
|
|
7480
|
+
const camera = useCameraStream({ video: true, audio: false });
|
|
7481
|
+
const videoRef = React2.useRef(null);
|
|
7482
|
+
const [capturedBlob, setCapturedBlob] = React2.useState(null);
|
|
7483
|
+
const [captureError, setCaptureError] = React2.useState(null);
|
|
7484
|
+
React2.useEffect(() => {
|
|
7485
|
+
void camera.start();
|
|
7486
|
+
}, []);
|
|
7487
|
+
React2.useEffect(() => {
|
|
7488
|
+
if (camera.error) onError?.(camera.error);
|
|
7489
|
+
}, [camera.error]);
|
|
7490
|
+
React2.useEffect(() => {
|
|
7491
|
+
const video = videoRef.current;
|
|
7492
|
+
if (!video) return;
|
|
7493
|
+
video.srcObject = camera.stream;
|
|
7494
|
+
if (camera.stream) void video.play().catch(() => {
|
|
7495
|
+
});
|
|
7496
|
+
}, [camera.stream]);
|
|
7497
|
+
const handleShutter = () => {
|
|
7498
|
+
const video = videoRef.current;
|
|
7499
|
+
if (!video) return;
|
|
7500
|
+
setCaptureError(null);
|
|
7501
|
+
captureFrameAsBlob(video).then(setCapturedBlob).catch((err) => {
|
|
7502
|
+
const message = err instanceof Error ? err.message : "Failed to capture the photo";
|
|
7503
|
+
setCaptureError(message);
|
|
7504
|
+
onError?.(message);
|
|
7505
|
+
});
|
|
7506
|
+
};
|
|
7507
|
+
const handleRetake = () => setCapturedBlob(null);
|
|
7508
|
+
const handleSave = () => {
|
|
7509
|
+
if (!capturedBlob) return;
|
|
7510
|
+
void onSave(capturedBlob, "image/png");
|
|
7511
|
+
};
|
|
7512
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex h-full flex-col items-center justify-center gap-6 p-8", children: [
|
|
7513
|
+
!capturedBlob && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
7514
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full max-w-md overflow-hidden rounded-lg bg-muted/30", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
7515
|
+
"video",
|
|
7516
|
+
{
|
|
7517
|
+
ref: videoRef,
|
|
7518
|
+
autoPlay: true,
|
|
7519
|
+
muted: true,
|
|
7520
|
+
playsInline: true,
|
|
7521
|
+
className: "w-full max-h-[60vh] object-contain",
|
|
7522
|
+
"data-testid": "photo-capture-preview"
|
|
7523
|
+
}
|
|
7524
|
+
) }),
|
|
7525
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
7526
|
+
chunkFIPS3VPH_cjs.Button,
|
|
7527
|
+
{
|
|
7528
|
+
type: "button",
|
|
7529
|
+
size: "lg",
|
|
7530
|
+
className: "h-16 w-16 rounded-full p-0",
|
|
7531
|
+
onClick: handleShutter,
|
|
7532
|
+
disabled: !camera.stream,
|
|
7533
|
+
"data-testid": "photo-capture-shutter-button",
|
|
7534
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Camera, { className: "h-6 w-6" })
|
|
7535
|
+
}
|
|
7536
|
+
),
|
|
7537
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-muted-foreground", children: camera.isStarting ? "Starting camera\u2026" : camera.stream ? "Press to take a photo" : "Waiting for camera access\u2026" }),
|
|
7538
|
+
captureError && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-red-text", children: captureError })
|
|
7539
|
+
] }),
|
|
7540
|
+
capturedBlob && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
7541
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full max-w-md", children: /* @__PURE__ */ jsxRuntime.jsx(chunk7IOCMCC5_cjs.ImageViewer, { blob: capturedBlob, alt: "Captured photo" }) }),
|
|
7542
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-3", children: [
|
|
7543
|
+
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
7544
|
+
chunkFIPS3VPH_cjs.Button,
|
|
7545
|
+
{
|
|
7546
|
+
type: "button",
|
|
7547
|
+
variant: "outline",
|
|
7548
|
+
onClick: onDiscard,
|
|
7549
|
+
disabled: isSaving,
|
|
7550
|
+
"data-testid": "photo-capture-discard-button",
|
|
7551
|
+
children: [
|
|
7552
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.Trash2, { className: "mr-1.5 h-4 w-4" }),
|
|
7553
|
+
"Discard"
|
|
7554
|
+
]
|
|
7555
|
+
}
|
|
7556
|
+
),
|
|
7557
|
+
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
7558
|
+
chunkFIPS3VPH_cjs.Button,
|
|
7559
|
+
{
|
|
7560
|
+
type: "button",
|
|
7561
|
+
variant: "outline",
|
|
7562
|
+
onClick: handleRetake,
|
|
7563
|
+
disabled: isSaving,
|
|
7564
|
+
"data-testid": "photo-capture-retake-button",
|
|
7565
|
+
children: [
|
|
7566
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.RotateCcw, { className: "mr-1.5 h-4 w-4" }),
|
|
7567
|
+
"Retake"
|
|
7568
|
+
]
|
|
7569
|
+
}
|
|
7570
|
+
),
|
|
7571
|
+
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
7572
|
+
chunkFIPS3VPH_cjs.Button,
|
|
7573
|
+
{
|
|
7574
|
+
type: "button",
|
|
7575
|
+
onClick: handleSave,
|
|
7576
|
+
disabled: isSaving,
|
|
7577
|
+
"data-testid": "photo-capture-save-button",
|
|
7578
|
+
children: [
|
|
7579
|
+
isSaving ? /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Loader2, { className: "mr-1.5 h-4 w-4 animate-spin" }) : /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Check, { className: "mr-1.5 h-4 w-4" }),
|
|
7580
|
+
isSaving ? "Saving\u2026" : "Save"
|
|
7581
|
+
]
|
|
7582
|
+
}
|
|
7583
|
+
)
|
|
7584
|
+
] })
|
|
7585
|
+
] })
|
|
7586
|
+
] });
|
|
7587
|
+
}
|
|
7588
|
+
function VideoCapture({ onSave, onDiscard, onError, isSaving = false }) {
|
|
7589
|
+
const camera = useCameraStream({ video: true, audio: true });
|
|
7590
|
+
const recorder = useVideoRecorder(camera.stream);
|
|
7591
|
+
const videoRef = React2.useRef(null);
|
|
7592
|
+
React2.useEffect(() => {
|
|
7593
|
+
void camera.start();
|
|
7594
|
+
}, []);
|
|
7595
|
+
React2.useEffect(() => {
|
|
7596
|
+
if (camera.error) onError?.(camera.error);
|
|
7597
|
+
}, [camera.error]);
|
|
7598
|
+
React2.useEffect(() => {
|
|
7599
|
+
const video = videoRef.current;
|
|
7600
|
+
if (!video || recorder.state === "stopped") return;
|
|
7601
|
+
video.srcObject = camera.stream;
|
|
7602
|
+
if (camera.stream) void video.play().catch(() => {
|
|
7603
|
+
});
|
|
7604
|
+
}, [camera.stream, recorder.state]);
|
|
7605
|
+
const handleRetake = () => {
|
|
7606
|
+
recorder.reset();
|
|
7607
|
+
};
|
|
7608
|
+
const handleSave = () => {
|
|
7609
|
+
if (!recorder.blob) return;
|
|
7610
|
+
void onSave(recorder.blob, recorder.mimeType);
|
|
7611
|
+
};
|
|
7612
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex h-full flex-col items-center justify-center gap-6 p-8", children: [
|
|
7613
|
+
recorder.state !== "stopped" && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
7614
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full max-w-md overflow-hidden rounded-lg bg-muted/30", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
7615
|
+
"video",
|
|
7616
|
+
{
|
|
7617
|
+
ref: videoRef,
|
|
7618
|
+
autoPlay: true,
|
|
7619
|
+
muted: true,
|
|
7620
|
+
playsInline: true,
|
|
7621
|
+
className: "w-full max-h-[60vh] object-contain",
|
|
7622
|
+
"data-testid": "video-capture-preview"
|
|
7623
|
+
}
|
|
7624
|
+
) }),
|
|
7625
|
+
recorder.state === "recording" && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", "data-testid": "video-capture-rec-indicator", children: [
|
|
7626
|
+
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "relative flex h-2 w-2", children: [
|
|
7627
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "absolute inline-flex h-full w-full animate-ping rounded-full bg-red-500 opacity-75" }),
|
|
7628
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "relative inline-flex h-2 w-2 rounded-full bg-red-500" })
|
|
7629
|
+
] }),
|
|
7630
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-xs font-semibold uppercase tracking-wide text-red-500", children: "Rec" }),
|
|
7631
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-mono text-xs tabular-nums text-muted-foreground", children: chunkFIPS3VPH_cjs.formatElapsed(recorder.elapsedMs) })
|
|
7632
|
+
] }),
|
|
7633
|
+
recorder.state === "recording" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
7634
|
+
chunkFIPS3VPH_cjs.Button,
|
|
7635
|
+
{
|
|
7636
|
+
type: "button",
|
|
7637
|
+
size: "lg",
|
|
7638
|
+
className: "h-16 w-16 rounded-full p-0",
|
|
7639
|
+
onClick: recorder.stop,
|
|
7640
|
+
"data-testid": "video-capture-stop-button",
|
|
7641
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Square, { className: "h-5 w-5 fill-current" })
|
|
7642
|
+
}
|
|
7643
|
+
) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
7644
|
+
chunkFIPS3VPH_cjs.Button,
|
|
7645
|
+
{
|
|
7646
|
+
type: "button",
|
|
7647
|
+
size: "lg",
|
|
7648
|
+
className: "h-16 w-16 rounded-full p-0",
|
|
7649
|
+
onClick: recorder.start,
|
|
7650
|
+
disabled: !camera.stream,
|
|
7651
|
+
"data-testid": "video-capture-record-button",
|
|
7652
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Circle, { className: "h-6 w-6 fill-current" })
|
|
7653
|
+
}
|
|
7654
|
+
),
|
|
7655
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-muted-foreground", children: recorder.state === "recording" ? "Tap to stop recording" : camera.isStarting ? "Starting camera\u2026" : camera.stream ? "Tap to start recording" : "Waiting for camera access\u2026" })
|
|
7656
|
+
] }),
|
|
7657
|
+
recorder.state === "stopped" && recorder.blob && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
7658
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full max-w-md", children: /* @__PURE__ */ jsxRuntime.jsx(chunk7IOCMCC5_cjs.VideoViewer, { blob: recorder.blob, title: "Captured video" }) }),
|
|
7659
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-3", children: [
|
|
7660
|
+
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
7661
|
+
chunkFIPS3VPH_cjs.Button,
|
|
7662
|
+
{
|
|
7663
|
+
type: "button",
|
|
7664
|
+
variant: "outline",
|
|
7665
|
+
onClick: onDiscard,
|
|
7666
|
+
disabled: isSaving,
|
|
7667
|
+
"data-testid": "video-capture-discard-button",
|
|
7668
|
+
children: [
|
|
7669
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.Trash2, { className: "mr-1.5 h-4 w-4" }),
|
|
7670
|
+
"Discard"
|
|
7671
|
+
]
|
|
7672
|
+
}
|
|
7673
|
+
),
|
|
7674
|
+
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
7675
|
+
chunkFIPS3VPH_cjs.Button,
|
|
7676
|
+
{
|
|
7677
|
+
type: "button",
|
|
7678
|
+
variant: "outline",
|
|
7679
|
+
onClick: handleRetake,
|
|
7680
|
+
disabled: isSaving,
|
|
7681
|
+
"data-testid": "video-capture-retake-button",
|
|
7682
|
+
children: [
|
|
7683
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.RotateCcw, { className: "mr-1.5 h-4 w-4" }),
|
|
7684
|
+
"Record again"
|
|
7685
|
+
]
|
|
7686
|
+
}
|
|
7687
|
+
),
|
|
7688
|
+
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
7689
|
+
chunkFIPS3VPH_cjs.Button,
|
|
7690
|
+
{
|
|
7691
|
+
type: "button",
|
|
7692
|
+
onClick: handleSave,
|
|
7693
|
+
disabled: isSaving,
|
|
7694
|
+
"data-testid": "video-capture-save-button",
|
|
7695
|
+
children: [
|
|
7696
|
+
isSaving ? /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Loader2, { className: "mr-1.5 h-4 w-4 animate-spin" }) : /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Check, { className: "mr-1.5 h-4 w-4" }),
|
|
7697
|
+
isSaving ? "Saving\u2026" : "Save"
|
|
7698
|
+
]
|
|
7699
|
+
}
|
|
7700
|
+
)
|
|
7701
|
+
] })
|
|
7702
|
+
] })
|
|
7703
|
+
] });
|
|
7704
|
+
}
|
|
7355
7705
|
|
|
7356
7706
|
// src/documents/has-video-track.ts
|
|
7357
7707
|
function hasVideoTrack(blob) {
|
|
@@ -7377,465 +7727,465 @@ function hasVideoTrack(blob) {
|
|
|
7377
7727
|
});
|
|
7378
7728
|
}
|
|
7379
7729
|
|
|
7380
|
-
Object.defineProperty(exports, "ArbiProvider", {
|
|
7381
|
-
enumerable: true,
|
|
7382
|
-
get: function () { return chunkRWCMW36I_cjs.ArbiProvider; }
|
|
7383
|
-
});
|
|
7384
|
-
Object.defineProperty(exports, "useArbi", {
|
|
7385
|
-
enumerable: true,
|
|
7386
|
-
get: function () { return chunkRWCMW36I_cjs.useArbi; }
|
|
7387
|
-
});
|
|
7388
7730
|
Object.defineProperty(exports, "AiMarkdown", {
|
|
7389
7731
|
enumerable: true,
|
|
7390
|
-
get: function () { return
|
|
7732
|
+
get: function () { return chunkFIPS3VPH_cjs.AiMarkdown; }
|
|
7391
7733
|
});
|
|
7392
7734
|
Object.defineProperty(exports, "Avatar", {
|
|
7393
7735
|
enumerable: true,
|
|
7394
|
-
get: function () { return
|
|
7736
|
+
get: function () { return chunkFIPS3VPH_cjs.Avatar; }
|
|
7395
7737
|
});
|
|
7396
7738
|
Object.defineProperty(exports, "AvatarFallback", {
|
|
7397
7739
|
enumerable: true,
|
|
7398
|
-
get: function () { return
|
|
7740
|
+
get: function () { return chunkFIPS3VPH_cjs.AvatarFallback; }
|
|
7399
7741
|
});
|
|
7400
7742
|
Object.defineProperty(exports, "AvatarImage", {
|
|
7401
7743
|
enumerable: true,
|
|
7402
|
-
get: function () { return
|
|
7744
|
+
get: function () { return chunkFIPS3VPH_cjs.AvatarImage; }
|
|
7403
7745
|
});
|
|
7404
7746
|
Object.defineProperty(exports, "Badge", {
|
|
7405
7747
|
enumerable: true,
|
|
7406
|
-
get: function () { return
|
|
7748
|
+
get: function () { return chunkFIPS3VPH_cjs.Badge; }
|
|
7407
7749
|
});
|
|
7408
7750
|
Object.defineProperty(exports, "Button", {
|
|
7409
7751
|
enumerable: true,
|
|
7410
|
-
get: function () { return
|
|
7752
|
+
get: function () { return chunkFIPS3VPH_cjs.Button; }
|
|
7411
7753
|
});
|
|
7412
7754
|
Object.defineProperty(exports, "Card", {
|
|
7413
7755
|
enumerable: true,
|
|
7414
|
-
get: function () { return
|
|
7756
|
+
get: function () { return chunkFIPS3VPH_cjs.Card; }
|
|
7415
7757
|
});
|
|
7416
7758
|
Object.defineProperty(exports, "CardContent", {
|
|
7417
7759
|
enumerable: true,
|
|
7418
|
-
get: function () { return
|
|
7760
|
+
get: function () { return chunkFIPS3VPH_cjs.CardContent; }
|
|
7419
7761
|
});
|
|
7420
7762
|
Object.defineProperty(exports, "CardDescription", {
|
|
7421
7763
|
enumerable: true,
|
|
7422
|
-
get: function () { return
|
|
7764
|
+
get: function () { return chunkFIPS3VPH_cjs.CardDescription; }
|
|
7423
7765
|
});
|
|
7424
7766
|
Object.defineProperty(exports, "CardFooter", {
|
|
7425
7767
|
enumerable: true,
|
|
7426
|
-
get: function () { return
|
|
7768
|
+
get: function () { return chunkFIPS3VPH_cjs.CardFooter; }
|
|
7427
7769
|
});
|
|
7428
7770
|
Object.defineProperty(exports, "CardHeader", {
|
|
7429
7771
|
enumerable: true,
|
|
7430
|
-
get: function () { return
|
|
7772
|
+
get: function () { return chunkFIPS3VPH_cjs.CardHeader; }
|
|
7431
7773
|
});
|
|
7432
7774
|
Object.defineProperty(exports, "CardTitle", {
|
|
7433
7775
|
enumerable: true,
|
|
7434
|
-
get: function () { return
|
|
7776
|
+
get: function () { return chunkFIPS3VPH_cjs.CardTitle; }
|
|
7435
7777
|
});
|
|
7436
7778
|
Object.defineProperty(exports, "Checkbox", {
|
|
7437
7779
|
enumerable: true,
|
|
7438
|
-
get: function () { return
|
|
7780
|
+
get: function () { return chunkFIPS3VPH_cjs.Checkbox; }
|
|
7439
7781
|
});
|
|
7440
7782
|
Object.defineProperty(exports, "Collapsible", {
|
|
7441
7783
|
enumerable: true,
|
|
7442
|
-
get: function () { return
|
|
7784
|
+
get: function () { return chunkFIPS3VPH_cjs.Collapsible; }
|
|
7443
7785
|
});
|
|
7444
7786
|
Object.defineProperty(exports, "CollapsibleContent", {
|
|
7445
7787
|
enumerable: true,
|
|
7446
|
-
get: function () { return
|
|
7788
|
+
get: function () { return chunkFIPS3VPH_cjs.CollapsibleContent; }
|
|
7447
7789
|
});
|
|
7448
7790
|
Object.defineProperty(exports, "CollapsibleTrigger", {
|
|
7449
7791
|
enumerable: true,
|
|
7450
|
-
get: function () { return
|
|
7792
|
+
get: function () { return chunkFIPS3VPH_cjs.CollapsibleTrigger; }
|
|
7451
7793
|
});
|
|
7452
7794
|
Object.defineProperty(exports, "Command", {
|
|
7453
7795
|
enumerable: true,
|
|
7454
|
-
get: function () { return
|
|
7796
|
+
get: function () { return chunkFIPS3VPH_cjs.Command; }
|
|
7455
7797
|
});
|
|
7456
7798
|
Object.defineProperty(exports, "CommandDialog", {
|
|
7457
7799
|
enumerable: true,
|
|
7458
|
-
get: function () { return
|
|
7800
|
+
get: function () { return chunkFIPS3VPH_cjs.CommandDialog; }
|
|
7459
7801
|
});
|
|
7460
7802
|
Object.defineProperty(exports, "CommandEmpty", {
|
|
7461
7803
|
enumerable: true,
|
|
7462
|
-
get: function () { return
|
|
7804
|
+
get: function () { return chunkFIPS3VPH_cjs.CommandEmpty; }
|
|
7463
7805
|
});
|
|
7464
7806
|
Object.defineProperty(exports, "CommandGroup", {
|
|
7465
7807
|
enumerable: true,
|
|
7466
|
-
get: function () { return
|
|
7808
|
+
get: function () { return chunkFIPS3VPH_cjs.CommandGroup; }
|
|
7467
7809
|
});
|
|
7468
7810
|
Object.defineProperty(exports, "CommandInput", {
|
|
7469
7811
|
enumerable: true,
|
|
7470
|
-
get: function () { return
|
|
7812
|
+
get: function () { return chunkFIPS3VPH_cjs.CommandInput; }
|
|
7471
7813
|
});
|
|
7472
7814
|
Object.defineProperty(exports, "CommandItem", {
|
|
7473
7815
|
enumerable: true,
|
|
7474
|
-
get: function () { return
|
|
7816
|
+
get: function () { return chunkFIPS3VPH_cjs.CommandItem; }
|
|
7475
7817
|
});
|
|
7476
7818
|
Object.defineProperty(exports, "CommandList", {
|
|
7477
7819
|
enumerable: true,
|
|
7478
|
-
get: function () { return
|
|
7820
|
+
get: function () { return chunkFIPS3VPH_cjs.CommandList; }
|
|
7479
7821
|
});
|
|
7480
7822
|
Object.defineProperty(exports, "CommandSeparator", {
|
|
7481
7823
|
enumerable: true,
|
|
7482
|
-
get: function () { return
|
|
7824
|
+
get: function () { return chunkFIPS3VPH_cjs.CommandSeparator; }
|
|
7483
7825
|
});
|
|
7484
7826
|
Object.defineProperty(exports, "CommandShortcut", {
|
|
7485
7827
|
enumerable: true,
|
|
7486
|
-
get: function () { return
|
|
7828
|
+
get: function () { return chunkFIPS3VPH_cjs.CommandShortcut; }
|
|
7487
7829
|
});
|
|
7488
7830
|
Object.defineProperty(exports, "Dialog", {
|
|
7489
7831
|
enumerable: true,
|
|
7490
|
-
get: function () { return
|
|
7832
|
+
get: function () { return chunkFIPS3VPH_cjs.Dialog; }
|
|
7491
7833
|
});
|
|
7492
7834
|
Object.defineProperty(exports, "DialogClose", {
|
|
7493
7835
|
enumerable: true,
|
|
7494
|
-
get: function () { return
|
|
7836
|
+
get: function () { return chunkFIPS3VPH_cjs.DialogClose; }
|
|
7495
7837
|
});
|
|
7496
7838
|
Object.defineProperty(exports, "DialogContent", {
|
|
7497
7839
|
enumerable: true,
|
|
7498
|
-
get: function () { return
|
|
7840
|
+
get: function () { return chunkFIPS3VPH_cjs.DialogContent; }
|
|
7499
7841
|
});
|
|
7500
7842
|
Object.defineProperty(exports, "DialogDescription", {
|
|
7501
7843
|
enumerable: true,
|
|
7502
|
-
get: function () { return
|
|
7844
|
+
get: function () { return chunkFIPS3VPH_cjs.DialogDescription; }
|
|
7503
7845
|
});
|
|
7504
7846
|
Object.defineProperty(exports, "DialogFooter", {
|
|
7505
7847
|
enumerable: true,
|
|
7506
|
-
get: function () { return
|
|
7848
|
+
get: function () { return chunkFIPS3VPH_cjs.DialogFooter; }
|
|
7507
7849
|
});
|
|
7508
7850
|
Object.defineProperty(exports, "DialogHeader", {
|
|
7509
7851
|
enumerable: true,
|
|
7510
|
-
get: function () { return
|
|
7852
|
+
get: function () { return chunkFIPS3VPH_cjs.DialogHeader; }
|
|
7511
7853
|
});
|
|
7512
7854
|
Object.defineProperty(exports, "DialogOverlay", {
|
|
7513
7855
|
enumerable: true,
|
|
7514
|
-
get: function () { return
|
|
7856
|
+
get: function () { return chunkFIPS3VPH_cjs.DialogOverlay; }
|
|
7515
7857
|
});
|
|
7516
7858
|
Object.defineProperty(exports, "DialogPortal", {
|
|
7517
7859
|
enumerable: true,
|
|
7518
|
-
get: function () { return
|
|
7860
|
+
get: function () { return chunkFIPS3VPH_cjs.DialogPortal; }
|
|
7519
7861
|
});
|
|
7520
7862
|
Object.defineProperty(exports, "DialogTitle", {
|
|
7521
7863
|
enumerable: true,
|
|
7522
|
-
get: function () { return
|
|
7864
|
+
get: function () { return chunkFIPS3VPH_cjs.DialogTitle; }
|
|
7523
7865
|
});
|
|
7524
7866
|
Object.defineProperty(exports, "DialogTrigger", {
|
|
7525
7867
|
enumerable: true,
|
|
7526
|
-
get: function () { return
|
|
7868
|
+
get: function () { return chunkFIPS3VPH_cjs.DialogTrigger; }
|
|
7527
7869
|
});
|
|
7528
7870
|
Object.defineProperty(exports, "DictateProvider", {
|
|
7529
7871
|
enumerable: true,
|
|
7530
|
-
get: function () { return
|
|
7872
|
+
get: function () { return chunkFIPS3VPH_cjs.DictateProvider; }
|
|
7531
7873
|
});
|
|
7532
7874
|
Object.defineProperty(exports, "DropdownMenu", {
|
|
7533
7875
|
enumerable: true,
|
|
7534
|
-
get: function () { return
|
|
7876
|
+
get: function () { return chunkFIPS3VPH_cjs.DropdownMenu; }
|
|
7535
7877
|
});
|
|
7536
7878
|
Object.defineProperty(exports, "DropdownMenuCheckboxItem", {
|
|
7537
7879
|
enumerable: true,
|
|
7538
|
-
get: function () { return
|
|
7880
|
+
get: function () { return chunkFIPS3VPH_cjs.DropdownMenuCheckboxItem; }
|
|
7539
7881
|
});
|
|
7540
7882
|
Object.defineProperty(exports, "DropdownMenuContent", {
|
|
7541
7883
|
enumerable: true,
|
|
7542
|
-
get: function () { return
|
|
7884
|
+
get: function () { return chunkFIPS3VPH_cjs.DropdownMenuContent; }
|
|
7543
7885
|
});
|
|
7544
7886
|
Object.defineProperty(exports, "DropdownMenuGroup", {
|
|
7545
7887
|
enumerable: true,
|
|
7546
|
-
get: function () { return
|
|
7888
|
+
get: function () { return chunkFIPS3VPH_cjs.DropdownMenuGroup; }
|
|
7547
7889
|
});
|
|
7548
7890
|
Object.defineProperty(exports, "DropdownMenuItem", {
|
|
7549
7891
|
enumerable: true,
|
|
7550
|
-
get: function () { return
|
|
7892
|
+
get: function () { return chunkFIPS3VPH_cjs.DropdownMenuItem; }
|
|
7551
7893
|
});
|
|
7552
7894
|
Object.defineProperty(exports, "DropdownMenuLabel", {
|
|
7553
7895
|
enumerable: true,
|
|
7554
|
-
get: function () { return
|
|
7896
|
+
get: function () { return chunkFIPS3VPH_cjs.DropdownMenuLabel; }
|
|
7555
7897
|
});
|
|
7556
7898
|
Object.defineProperty(exports, "DropdownMenuPortal", {
|
|
7557
7899
|
enumerable: true,
|
|
7558
|
-
get: function () { return
|
|
7900
|
+
get: function () { return chunkFIPS3VPH_cjs.DropdownMenuPortal; }
|
|
7559
7901
|
});
|
|
7560
7902
|
Object.defineProperty(exports, "DropdownMenuRadioGroup", {
|
|
7561
7903
|
enumerable: true,
|
|
7562
|
-
get: function () { return
|
|
7904
|
+
get: function () { return chunkFIPS3VPH_cjs.DropdownMenuRadioGroup; }
|
|
7563
7905
|
});
|
|
7564
7906
|
Object.defineProperty(exports, "DropdownMenuRadioItem", {
|
|
7565
7907
|
enumerable: true,
|
|
7566
|
-
get: function () { return
|
|
7908
|
+
get: function () { return chunkFIPS3VPH_cjs.DropdownMenuRadioItem; }
|
|
7567
7909
|
});
|
|
7568
7910
|
Object.defineProperty(exports, "DropdownMenuSeparator", {
|
|
7569
7911
|
enumerable: true,
|
|
7570
|
-
get: function () { return
|
|
7912
|
+
get: function () { return chunkFIPS3VPH_cjs.DropdownMenuSeparator; }
|
|
7571
7913
|
});
|
|
7572
7914
|
Object.defineProperty(exports, "DropdownMenuShortcut", {
|
|
7573
7915
|
enumerable: true,
|
|
7574
|
-
get: function () { return
|
|
7916
|
+
get: function () { return chunkFIPS3VPH_cjs.DropdownMenuShortcut; }
|
|
7575
7917
|
});
|
|
7576
7918
|
Object.defineProperty(exports, "DropdownMenuSub", {
|
|
7577
7919
|
enumerable: true,
|
|
7578
|
-
get: function () { return
|
|
7920
|
+
get: function () { return chunkFIPS3VPH_cjs.DropdownMenuSub; }
|
|
7579
7921
|
});
|
|
7580
7922
|
Object.defineProperty(exports, "DropdownMenuSubContent", {
|
|
7581
7923
|
enumerable: true,
|
|
7582
|
-
get: function () { return
|
|
7924
|
+
get: function () { return chunkFIPS3VPH_cjs.DropdownMenuSubContent; }
|
|
7583
7925
|
});
|
|
7584
7926
|
Object.defineProperty(exports, "DropdownMenuSubTrigger", {
|
|
7585
7927
|
enumerable: true,
|
|
7586
|
-
get: function () { return
|
|
7928
|
+
get: function () { return chunkFIPS3VPH_cjs.DropdownMenuSubTrigger; }
|
|
7587
7929
|
});
|
|
7588
7930
|
Object.defineProperty(exports, "DropdownMenuTrigger", {
|
|
7589
7931
|
enumerable: true,
|
|
7590
|
-
get: function () { return
|
|
7932
|
+
get: function () { return chunkFIPS3VPH_cjs.DropdownMenuTrigger; }
|
|
7591
7933
|
});
|
|
7592
7934
|
Object.defineProperty(exports, "HoverCard", {
|
|
7593
7935
|
enumerable: true,
|
|
7594
|
-
get: function () { return
|
|
7936
|
+
get: function () { return chunkFIPS3VPH_cjs.HoverCard; }
|
|
7595
7937
|
});
|
|
7596
7938
|
Object.defineProperty(exports, "HoverCardContent", {
|
|
7597
7939
|
enumerable: true,
|
|
7598
|
-
get: function () { return
|
|
7940
|
+
get: function () { return chunkFIPS3VPH_cjs.HoverCardContent; }
|
|
7599
7941
|
});
|
|
7600
7942
|
Object.defineProperty(exports, "HoverCardTrigger", {
|
|
7601
7943
|
enumerable: true,
|
|
7602
|
-
get: function () { return
|
|
7944
|
+
get: function () { return chunkFIPS3VPH_cjs.HoverCardTrigger; }
|
|
7603
7945
|
});
|
|
7604
7946
|
Object.defineProperty(exports, "IconToggle", {
|
|
7605
7947
|
enumerable: true,
|
|
7606
|
-
get: function () { return
|
|
7948
|
+
get: function () { return chunkFIPS3VPH_cjs.IconToggle; }
|
|
7607
7949
|
});
|
|
7608
7950
|
Object.defineProperty(exports, "InlineMicButton", {
|
|
7609
7951
|
enumerable: true,
|
|
7610
|
-
get: function () { return
|
|
7952
|
+
get: function () { return chunkFIPS3VPH_cjs.InlineMicButton; }
|
|
7611
7953
|
});
|
|
7612
7954
|
Object.defineProperty(exports, "Input", {
|
|
7613
7955
|
enumerable: true,
|
|
7614
|
-
get: function () { return
|
|
7956
|
+
get: function () { return chunkFIPS3VPH_cjs.Input; }
|
|
7615
7957
|
});
|
|
7616
7958
|
Object.defineProperty(exports, "Label", {
|
|
7617
7959
|
enumerable: true,
|
|
7618
|
-
get: function () { return
|
|
7960
|
+
get: function () { return chunkFIPS3VPH_cjs.Label; }
|
|
7619
7961
|
});
|
|
7620
7962
|
Object.defineProperty(exports, "MarkdownRenderer", {
|
|
7621
7963
|
enumerable: true,
|
|
7622
|
-
get: function () { return
|
|
7964
|
+
get: function () { return chunkFIPS3VPH_cjs.MarkdownRenderer; }
|
|
7623
7965
|
});
|
|
7624
7966
|
Object.defineProperty(exports, "MarkdownStreamingContext", {
|
|
7625
7967
|
enumerable: true,
|
|
7626
|
-
get: function () { return
|
|
7968
|
+
get: function () { return chunkFIPS3VPH_cjs.MarkdownStreamingContext; }
|
|
7627
7969
|
});
|
|
7628
7970
|
Object.defineProperty(exports, "MicRecordingOverlay", {
|
|
7629
7971
|
enumerable: true,
|
|
7630
|
-
get: function () { return
|
|
7972
|
+
get: function () { return chunkFIPS3VPH_cjs.MicRecordingOverlay; }
|
|
7631
7973
|
});
|
|
7632
7974
|
Object.defineProperty(exports, "MicWaveformIndicator", {
|
|
7633
7975
|
enumerable: true,
|
|
7634
|
-
get: function () { return
|
|
7976
|
+
get: function () { return chunkFIPS3VPH_cjs.MicWaveformIndicator; }
|
|
7635
7977
|
});
|
|
7636
7978
|
Object.defineProperty(exports, "Popover", {
|
|
7637
7979
|
enumerable: true,
|
|
7638
|
-
get: function () { return
|
|
7980
|
+
get: function () { return chunkFIPS3VPH_cjs.Popover; }
|
|
7639
7981
|
});
|
|
7640
7982
|
Object.defineProperty(exports, "PopoverAnchor", {
|
|
7641
7983
|
enumerable: true,
|
|
7642
|
-
get: function () { return
|
|
7984
|
+
get: function () { return chunkFIPS3VPH_cjs.PopoverAnchor; }
|
|
7643
7985
|
});
|
|
7644
7986
|
Object.defineProperty(exports, "PopoverContent", {
|
|
7645
7987
|
enumerable: true,
|
|
7646
|
-
get: function () { return
|
|
7988
|
+
get: function () { return chunkFIPS3VPH_cjs.PopoverContent; }
|
|
7647
7989
|
});
|
|
7648
7990
|
Object.defineProperty(exports, "PopoverTrigger", {
|
|
7649
7991
|
enumerable: true,
|
|
7650
|
-
get: function () { return
|
|
7992
|
+
get: function () { return chunkFIPS3VPH_cjs.PopoverTrigger; }
|
|
7651
7993
|
});
|
|
7652
7994
|
Object.defineProperty(exports, "Progress", {
|
|
7653
7995
|
enumerable: true,
|
|
7654
|
-
get: function () { return
|
|
7996
|
+
get: function () { return chunkFIPS3VPH_cjs.Progress; }
|
|
7655
7997
|
});
|
|
7656
7998
|
Object.defineProperty(exports, "RadioGroup", {
|
|
7657
7999
|
enumerable: true,
|
|
7658
|
-
get: function () { return
|
|
8000
|
+
get: function () { return chunkFIPS3VPH_cjs.RadioGroup; }
|
|
7659
8001
|
});
|
|
7660
8002
|
Object.defineProperty(exports, "RadioGroupItem", {
|
|
7661
8003
|
enumerable: true,
|
|
7662
|
-
get: function () { return
|
|
8004
|
+
get: function () { return chunkFIPS3VPH_cjs.RadioGroupItem; }
|
|
7663
8005
|
});
|
|
7664
8006
|
Object.defineProperty(exports, "ScrollArea", {
|
|
7665
8007
|
enumerable: true,
|
|
7666
|
-
get: function () { return
|
|
8008
|
+
get: function () { return chunkFIPS3VPH_cjs.ScrollArea; }
|
|
7667
8009
|
});
|
|
7668
8010
|
Object.defineProperty(exports, "ScrollBar", {
|
|
7669
8011
|
enumerable: true,
|
|
7670
|
-
get: function () { return
|
|
8012
|
+
get: function () { return chunkFIPS3VPH_cjs.ScrollBar; }
|
|
7671
8013
|
});
|
|
7672
8014
|
Object.defineProperty(exports, "Select", {
|
|
7673
8015
|
enumerable: true,
|
|
7674
|
-
get: function () { return
|
|
8016
|
+
get: function () { return chunkFIPS3VPH_cjs.Select; }
|
|
7675
8017
|
});
|
|
7676
8018
|
Object.defineProperty(exports, "SelectContent", {
|
|
7677
8019
|
enumerable: true,
|
|
7678
|
-
get: function () { return
|
|
8020
|
+
get: function () { return chunkFIPS3VPH_cjs.SelectContent; }
|
|
7679
8021
|
});
|
|
7680
8022
|
Object.defineProperty(exports, "SelectGroup", {
|
|
7681
8023
|
enumerable: true,
|
|
7682
|
-
get: function () { return
|
|
8024
|
+
get: function () { return chunkFIPS3VPH_cjs.SelectGroup; }
|
|
7683
8025
|
});
|
|
7684
8026
|
Object.defineProperty(exports, "SelectItem", {
|
|
7685
8027
|
enumerable: true,
|
|
7686
|
-
get: function () { return
|
|
8028
|
+
get: function () { return chunkFIPS3VPH_cjs.SelectItem; }
|
|
7687
8029
|
});
|
|
7688
8030
|
Object.defineProperty(exports, "SelectLabel", {
|
|
7689
8031
|
enumerable: true,
|
|
7690
|
-
get: function () { return
|
|
8032
|
+
get: function () { return chunkFIPS3VPH_cjs.SelectLabel; }
|
|
7691
8033
|
});
|
|
7692
8034
|
Object.defineProperty(exports, "SelectScrollDownButton", {
|
|
7693
8035
|
enumerable: true,
|
|
7694
|
-
get: function () { return
|
|
8036
|
+
get: function () { return chunkFIPS3VPH_cjs.SelectScrollDownButton; }
|
|
7695
8037
|
});
|
|
7696
8038
|
Object.defineProperty(exports, "SelectScrollUpButton", {
|
|
7697
8039
|
enumerable: true,
|
|
7698
|
-
get: function () { return
|
|
8040
|
+
get: function () { return chunkFIPS3VPH_cjs.SelectScrollUpButton; }
|
|
7699
8041
|
});
|
|
7700
8042
|
Object.defineProperty(exports, "SelectSeparator", {
|
|
7701
8043
|
enumerable: true,
|
|
7702
|
-
get: function () { return
|
|
8044
|
+
get: function () { return chunkFIPS3VPH_cjs.SelectSeparator; }
|
|
7703
8045
|
});
|
|
7704
8046
|
Object.defineProperty(exports, "SelectTrigger", {
|
|
7705
8047
|
enumerable: true,
|
|
7706
|
-
get: function () { return
|
|
8048
|
+
get: function () { return chunkFIPS3VPH_cjs.SelectTrigger; }
|
|
7707
8049
|
});
|
|
7708
8050
|
Object.defineProperty(exports, "SelectValue", {
|
|
7709
8051
|
enumerable: true,
|
|
7710
|
-
get: function () { return
|
|
8052
|
+
get: function () { return chunkFIPS3VPH_cjs.SelectValue; }
|
|
7711
8053
|
});
|
|
7712
8054
|
Object.defineProperty(exports, "Separator", {
|
|
7713
8055
|
enumerable: true,
|
|
7714
|
-
get: function () { return
|
|
8056
|
+
get: function () { return chunkFIPS3VPH_cjs.Separator; }
|
|
7715
8057
|
});
|
|
7716
8058
|
Object.defineProperty(exports, "Slider", {
|
|
7717
8059
|
enumerable: true,
|
|
7718
|
-
get: function () { return
|
|
8060
|
+
get: function () { return chunkFIPS3VPH_cjs.Slider; }
|
|
7719
8061
|
});
|
|
7720
8062
|
Object.defineProperty(exports, "Switch", {
|
|
7721
8063
|
enumerable: true,
|
|
7722
|
-
get: function () { return
|
|
8064
|
+
get: function () { return chunkFIPS3VPH_cjs.Switch; }
|
|
7723
8065
|
});
|
|
7724
8066
|
Object.defineProperty(exports, "Table", {
|
|
7725
8067
|
enumerable: true,
|
|
7726
|
-
get: function () { return
|
|
8068
|
+
get: function () { return chunkFIPS3VPH_cjs.Table; }
|
|
7727
8069
|
});
|
|
7728
8070
|
Object.defineProperty(exports, "TableBody", {
|
|
7729
8071
|
enumerable: true,
|
|
7730
|
-
get: function () { return
|
|
8072
|
+
get: function () { return chunkFIPS3VPH_cjs.TableBody; }
|
|
7731
8073
|
});
|
|
7732
8074
|
Object.defineProperty(exports, "TableCaption", {
|
|
7733
8075
|
enumerable: true,
|
|
7734
|
-
get: function () { return
|
|
8076
|
+
get: function () { return chunkFIPS3VPH_cjs.TableCaption; }
|
|
7735
8077
|
});
|
|
7736
8078
|
Object.defineProperty(exports, "TableCell", {
|
|
7737
8079
|
enumerable: true,
|
|
7738
|
-
get: function () { return
|
|
8080
|
+
get: function () { return chunkFIPS3VPH_cjs.TableCell; }
|
|
7739
8081
|
});
|
|
7740
8082
|
Object.defineProperty(exports, "TableFooter", {
|
|
7741
8083
|
enumerable: true,
|
|
7742
|
-
get: function () { return
|
|
8084
|
+
get: function () { return chunkFIPS3VPH_cjs.TableFooter; }
|
|
7743
8085
|
});
|
|
7744
8086
|
Object.defineProperty(exports, "TableHead", {
|
|
7745
8087
|
enumerable: true,
|
|
7746
|
-
get: function () { return
|
|
8088
|
+
get: function () { return chunkFIPS3VPH_cjs.TableHead; }
|
|
7747
8089
|
});
|
|
7748
8090
|
Object.defineProperty(exports, "TableHeader", {
|
|
7749
8091
|
enumerable: true,
|
|
7750
|
-
get: function () { return
|
|
8092
|
+
get: function () { return chunkFIPS3VPH_cjs.TableHeader; }
|
|
7751
8093
|
});
|
|
7752
8094
|
Object.defineProperty(exports, "TableRow", {
|
|
7753
8095
|
enumerable: true,
|
|
7754
|
-
get: function () { return
|
|
8096
|
+
get: function () { return chunkFIPS3VPH_cjs.TableRow; }
|
|
7755
8097
|
});
|
|
7756
8098
|
Object.defineProperty(exports, "Tabs", {
|
|
7757
8099
|
enumerable: true,
|
|
7758
|
-
get: function () { return
|
|
8100
|
+
get: function () { return chunkFIPS3VPH_cjs.Tabs; }
|
|
7759
8101
|
});
|
|
7760
8102
|
Object.defineProperty(exports, "TabsContent", {
|
|
7761
8103
|
enumerable: true,
|
|
7762
|
-
get: function () { return
|
|
8104
|
+
get: function () { return chunkFIPS3VPH_cjs.TabsContent; }
|
|
7763
8105
|
});
|
|
7764
8106
|
Object.defineProperty(exports, "TabsList", {
|
|
7765
8107
|
enumerable: true,
|
|
7766
|
-
get: function () { return
|
|
8108
|
+
get: function () { return chunkFIPS3VPH_cjs.TabsList; }
|
|
7767
8109
|
});
|
|
7768
8110
|
Object.defineProperty(exports, "TabsTrigger", {
|
|
7769
8111
|
enumerable: true,
|
|
7770
|
-
get: function () { return
|
|
8112
|
+
get: function () { return chunkFIPS3VPH_cjs.TabsTrigger; }
|
|
7771
8113
|
});
|
|
7772
8114
|
Object.defineProperty(exports, "Textarea", {
|
|
7773
8115
|
enumerable: true,
|
|
7774
|
-
get: function () { return
|
|
8116
|
+
get: function () { return chunkFIPS3VPH_cjs.Textarea; }
|
|
7775
8117
|
});
|
|
7776
8118
|
Object.defineProperty(exports, "Toggle", {
|
|
7777
8119
|
enumerable: true,
|
|
7778
|
-
get: function () { return
|
|
8120
|
+
get: function () { return chunkFIPS3VPH_cjs.Toggle; }
|
|
7779
8121
|
});
|
|
7780
8122
|
Object.defineProperty(exports, "ToggleGroup", {
|
|
7781
8123
|
enumerable: true,
|
|
7782
|
-
get: function () { return
|
|
8124
|
+
get: function () { return chunkFIPS3VPH_cjs.ToggleGroup; }
|
|
7783
8125
|
});
|
|
7784
8126
|
Object.defineProperty(exports, "ToggleGroupItem", {
|
|
7785
8127
|
enumerable: true,
|
|
7786
|
-
get: function () { return
|
|
8128
|
+
get: function () { return chunkFIPS3VPH_cjs.ToggleGroupItem; }
|
|
7787
8129
|
});
|
|
7788
8130
|
Object.defineProperty(exports, "Tooltip", {
|
|
7789
8131
|
enumerable: true,
|
|
7790
|
-
get: function () { return
|
|
8132
|
+
get: function () { return chunkFIPS3VPH_cjs.Tooltip; }
|
|
7791
8133
|
});
|
|
7792
8134
|
Object.defineProperty(exports, "TooltipContent", {
|
|
7793
8135
|
enumerable: true,
|
|
7794
|
-
get: function () { return
|
|
8136
|
+
get: function () { return chunkFIPS3VPH_cjs.TooltipContent; }
|
|
7795
8137
|
});
|
|
7796
8138
|
Object.defineProperty(exports, "TooltipProvider", {
|
|
7797
8139
|
enumerable: true,
|
|
7798
|
-
get: function () { return
|
|
8140
|
+
get: function () { return chunkFIPS3VPH_cjs.TooltipProvider; }
|
|
7799
8141
|
});
|
|
7800
8142
|
Object.defineProperty(exports, "TooltipTrigger", {
|
|
7801
8143
|
enumerable: true,
|
|
7802
|
-
get: function () { return
|
|
8144
|
+
get: function () { return chunkFIPS3VPH_cjs.TooltipTrigger; }
|
|
7803
8145
|
});
|
|
7804
8146
|
Object.defineProperty(exports, "badgeVariants", {
|
|
7805
8147
|
enumerable: true,
|
|
7806
|
-
get: function () { return
|
|
8148
|
+
get: function () { return chunkFIPS3VPH_cjs.badgeVariants; }
|
|
7807
8149
|
});
|
|
7808
8150
|
Object.defineProperty(exports, "buttonVariants", {
|
|
7809
8151
|
enumerable: true,
|
|
7810
|
-
get: function () { return
|
|
8152
|
+
get: function () { return chunkFIPS3VPH_cjs.buttonVariants; }
|
|
7811
8153
|
});
|
|
7812
8154
|
Object.defineProperty(exports, "cardVariants", {
|
|
7813
8155
|
enumerable: true,
|
|
7814
|
-
get: function () { return
|
|
8156
|
+
get: function () { return chunkFIPS3VPH_cjs.cardVariants; }
|
|
7815
8157
|
});
|
|
7816
8158
|
Object.defineProperty(exports, "cn", {
|
|
7817
8159
|
enumerable: true,
|
|
7818
|
-
get: function () { return
|
|
8160
|
+
get: function () { return chunkFIPS3VPH_cjs.cn; }
|
|
7819
8161
|
});
|
|
7820
8162
|
Object.defineProperty(exports, "formatElapsed", {
|
|
7821
8163
|
enumerable: true,
|
|
7822
|
-
get: function () { return
|
|
8164
|
+
get: function () { return chunkFIPS3VPH_cjs.formatElapsed; }
|
|
7823
8165
|
});
|
|
7824
8166
|
Object.defineProperty(exports, "markdownBaseComponents", {
|
|
7825
8167
|
enumerable: true,
|
|
7826
|
-
get: function () { return
|
|
8168
|
+
get: function () { return chunkFIPS3VPH_cjs.markdownBaseComponents; }
|
|
7827
8169
|
});
|
|
7828
8170
|
Object.defineProperty(exports, "splitMarkdownBlocks", {
|
|
7829
8171
|
enumerable: true,
|
|
7830
|
-
get: function () { return
|
|
8172
|
+
get: function () { return chunkFIPS3VPH_cjs.splitMarkdownBlocks; }
|
|
7831
8173
|
});
|
|
7832
8174
|
Object.defineProperty(exports, "toggleVariants", {
|
|
7833
8175
|
enumerable: true,
|
|
7834
|
-
get: function () { return
|
|
8176
|
+
get: function () { return chunkFIPS3VPH_cjs.toggleVariants; }
|
|
7835
8177
|
});
|
|
7836
8178
|
Object.defineProperty(exports, "useAudioRecorder", {
|
|
7837
8179
|
enumerable: true,
|
|
7838
|
-
get: function () { return
|
|
8180
|
+
get: function () { return chunkFIPS3VPH_cjs.useAudioRecorder; }
|
|
8181
|
+
});
|
|
8182
|
+
Object.defineProperty(exports, "ArbiProvider", {
|
|
8183
|
+
enumerable: true,
|
|
8184
|
+
get: function () { return chunk7IOCMCC5_cjs.ArbiProvider; }
|
|
8185
|
+
});
|
|
8186
|
+
Object.defineProperty(exports, "useArbi", {
|
|
8187
|
+
enumerable: true,
|
|
8188
|
+
get: function () { return chunk7IOCMCC5_cjs.useArbi; }
|
|
7839
8189
|
});
|
|
7840
8190
|
Object.defineProperty(exports, "Arbi", {
|
|
7841
8191
|
enumerable: true,
|
|
@@ -7913,6 +8263,7 @@ exports.OpenAIIcon = OpenAIIcon;
|
|
|
7913
8263
|
exports.PLACEHOLDER_COLOR = PLACEHOLDER_COLOR;
|
|
7914
8264
|
exports.PassageCard = PassageCard;
|
|
7915
8265
|
exports.PdfIcon = PdfIcon;
|
|
8266
|
+
exports.PhotoCapture = PhotoCapture;
|
|
7916
8267
|
exports.PresenceLabel = PresenceLabel;
|
|
7917
8268
|
exports.ProjectEntity = ProjectEntity;
|
|
7918
8269
|
exports.ProviderIcon = ProviderIcon;
|
|
@@ -7931,11 +8282,13 @@ exports.UserEntity = UserEntity;
|
|
|
7931
8282
|
exports.UserMenu = UserMenu;
|
|
7932
8283
|
exports.VISIBILITY_ICONS = VISIBILITY_ICONS;
|
|
7933
8284
|
exports.VidIcon = VidIcon;
|
|
8285
|
+
exports.VideoCapture = VideoCapture;
|
|
7934
8286
|
exports.VisibilityIcon = VisibilityIcon;
|
|
7935
8287
|
exports.VoiceNoteRecorder = VoiceNoteRecorder;
|
|
7936
8288
|
exports.XlsIcon = XlsIcon;
|
|
7937
8289
|
exports.annotateThread = annotateThread;
|
|
7938
8290
|
exports.arbiQueryKeys = arbiQueryKeys;
|
|
8291
|
+
exports.captureFrameAsBlob = captureFrameAsBlob;
|
|
7939
8292
|
exports.configureEntityRegistry = configureEntityRegistry;
|
|
7940
8293
|
exports.configureRagLabels = configureRagLabels;
|
|
7941
8294
|
exports.configureStatusRegistry = configureStatusRegistry;
|
|
@@ -7978,6 +8331,7 @@ exports.useArbiWsStore = useArbiWsStore;
|
|
|
7978
8331
|
exports.useArbiWsTask = useArbiWsTask;
|
|
7979
8332
|
exports.useArbiWsTasks = useArbiWsTasks;
|
|
7980
8333
|
exports.useAssistantQuery = useAssistantQuery;
|
|
8334
|
+
exports.useCameraStream = useCameraStream;
|
|
7981
8335
|
exports.useCommandPalette = useCommandPalette;
|
|
7982
8336
|
exports.useConfigs = useConfigs;
|
|
7983
8337
|
exports.useConversations = useConversations;
|
|
@@ -7998,6 +8352,7 @@ exports.useTags = useTags;
|
|
|
7998
8352
|
exports.useTasks = useTasks;
|
|
7999
8353
|
exports.useThumbnails = useThumbnails;
|
|
8000
8354
|
exports.useUserUsageToday = useUserUsageToday;
|
|
8355
|
+
exports.useVideoRecorder = useVideoRecorder;
|
|
8001
8356
|
exports.useWorkspaceDocs = useWorkspaceDocs;
|
|
8002
8357
|
exports.useWorkspaces = useWorkspaces;
|
|
8003
8358
|
exports.userDisplayName = userDisplayName;
|