@arbidocs/react 0.3.172 → 0.3.174
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-PAJGQHFM.js → chunk-QZAXTBVW.js} +487 -11
- package/dist/chunk-QZAXTBVW.js.map +1 -0
- package/dist/{chunk-5DV7FW6T.cjs → chunk-ZYHVJM4V.cjs} +491 -8
- package/dist/chunk-ZYHVJM4V.cjs.map +1 -0
- package/dist/index.cjs +390 -510
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +103 -3
- package/dist/index.d.ts +103 -3
- package/dist/index.js +75 -221
- package/dist/index.js.map +1 -1
- package/dist/ui/index.cjs +115 -107
- package/dist/ui/index.d.cts +216 -154
- package/dist/ui/index.d.ts +216 -154
- package/dist/ui/index.js +1 -1
- package/package.json +3 -3
- package/dist/chunk-5DV7FW6T.cjs.map +0 -1
- package/dist/chunk-PAJGQHFM.js.map +0 -1
package/dist/index.cjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var chunk5DV7FW6T_cjs = require('./chunk-5DV7FW6T.cjs');
|
|
4
3
|
var chunkRWCMW36I_cjs = require('./chunk-RWCMW36I.cjs');
|
|
4
|
+
var chunkZYHVJM4V_cjs = require('./chunk-ZYHVJM4V.cjs');
|
|
5
5
|
var React2 = require('react');
|
|
6
6
|
var reactQuery = require('@tanstack/react-query');
|
|
7
7
|
var jsxRuntime = require('react/jsx-runtime');
|
|
@@ -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(chunkZYHVJM4V_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: [
|
|
@@ -1373,12 +1373,12 @@ var ChatBubble = React2.memo(function ChatBubble2({
|
|
|
1373
1373
|
}
|
|
1374
1374
|
);
|
|
1375
1375
|
}
|
|
1376
|
-
const bubbleRadius =
|
|
1376
|
+
const bubbleRadius = chunkZYHVJM4V_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 ? chunkZYHVJM4V_cjs.cn("bg-ai-accent-soft text-foreground chat-bubble-sent", classNames?.ownBubble) : chunkZYHVJM4V_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: chunkZYHVJM4V_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: chunkZYHVJM4V_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: chunkZYHVJM4V_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: chunkZYHVJM4V_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: chunkZYHVJM4V_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: chunkZYHVJM4V_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
|
),
|
|
@@ -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: chunkZYHVJM4V_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: chunkZYHVJM4V_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(chunkZYHVJM4V_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(chunkZYHVJM4V_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
|
+
chunkZYHVJM4V_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: chunkZYHVJM4V_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: chunkZYHVJM4V_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: chunkZYHVJM4V_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: chunkZYHVJM4V_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(chunkZYHVJM4V_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(chunkZYHVJM4V_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: chunkZYHVJM4V_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(chunkZYHVJM4V_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
|
+
chunkZYHVJM4V_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: chunkZYHVJM4V_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
|
+
chunkZYHVJM4V_cjs.Card,
|
|
2182
2182
|
{
|
|
2183
2183
|
variant: "elevated",
|
|
2184
|
-
className:
|
|
2184
|
+
className: chunkZYHVJM4V_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(chunkZYHVJM4V_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 = chunkZYHVJM4V_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: chunkZYHVJM4V_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(chunkZYHVJM4V_cjs.Tooltip, { children: [
|
|
2277
2277
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2278
|
-
|
|
2278
|
+
chunkZYHVJM4V_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(chunkZYHVJM4V_cjs.TooltipContent, { side, className: "p-2", children: tip })
|
|
2287
2287
|
] });
|
|
2288
|
-
const mainAreaClass =
|
|
2288
|
+
const mainAreaClass = chunkZYHVJM4V_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
|
+
chunkZYHVJM4V_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: chunkZYHVJM4V_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: chunkZYHVJM4V_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
|
+
chunkZYHVJM4V_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
|
+
chunkZYHVJM4V_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: chunkZYHVJM4V_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: chunkZYHVJM4V_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: chunkZYHVJM4V_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(chunkZYHVJM4V_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: chunkZYHVJM4V_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(chunkZYHVJM4V_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: chunkZYHVJM4V_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(chunkZYHVJM4V_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: chunkZYHVJM4V_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: chunkZYHVJM4V_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(chunkZYHVJM4V_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: chunkZYHVJM4V_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: chunkZYHVJM4V_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: chunkZYHVJM4V_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
|
+
chunkZYHVJM4V_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
|
+
chunkZYHVJM4V_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
|
+
chunkZYHVJM4V_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
|
+
chunkZYHVJM4V_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: chunkZYHVJM4V_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
|
+
chunkZYHVJM4V_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(chunkZYHVJM4V_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
|
+
chunkZYHVJM4V_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: chunkZYHVJM4V_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: chunkZYHVJM4V_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: chunkZYHVJM4V_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: chunkZYHVJM4V_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: chunkZYHVJM4V_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: chunkZYHVJM4V_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
|
+
chunkZYHVJM4V_cjs.Avatar,
|
|
4477
4477
|
{
|
|
4478
|
-
className:
|
|
4478
|
+
className: chunkZYHVJM4V_cjs.cn(sizeClasses[size], "border border-border", className),
|
|
4479
4479
|
"data-testid": "user-entity",
|
|
4480
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
4480
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(chunkZYHVJM4V_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
|
+
chunkZYHVJM4V_cjs.Avatar,
|
|
4490
4490
|
{
|
|
4491
|
-
className:
|
|
4491
|
+
className: chunkZYHVJM4V_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(chunkZYHVJM4V_cjs.AvatarImage, { src: picture, alt: initials }),
|
|
4499
4499
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4500
|
-
|
|
4500
|
+
chunkZYHVJM4V_cjs.AvatarFallback,
|
|
4501
4501
|
{
|
|
4502
|
-
className:
|
|
4502
|
+
className: chunkZYHVJM4V_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: chunkZYHVJM4V_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: chunkZYHVJM4V_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: chunkZYHVJM4V_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: chunkZYHVJM4V_cjs.cn("relative inline-block shrink-0", sizeClasses[size]), children: [
|
|
4548
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: chunkZYHVJM4V_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(chunkZYHVJM4V_cjs.Tooltip, { children: [
|
|
4572
4572
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4573
|
-
|
|
4573
|
+
chunkZYHVJM4V_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: chunkZYHVJM4V_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(chunkZYHVJM4V_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: chunkZYHVJM4V_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: chunkZYHVJM4V_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(chunkZYHVJM4V_cjs.Tooltip, { children: [
|
|
4602
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkZYHVJM4V_cjs.TooltipTrigger, { onFocusCapture: (e) => e.stopPropagation(), className: "inline-flex", children: avatarElement }),
|
|
4603
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkZYHVJM4V_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: chunkZYHVJM4V_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: chunkZYHVJM4V_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: chunkZYHVJM4V_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(chunkZYHVJM4V_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: chunkZYHVJM4V_cjs.cn("inline-flex items-center gap-1.5", className), "data-testid": `rag-${rag}`, children: [
|
|
4702
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: chunkZYHVJM4V_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: chunkZYHVJM4V_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: chunkZYHVJM4V_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: chunkZYHVJM4V_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: chunkZYHVJM4V_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: chunkZYHVJM4V_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(chunkZYHVJM4V_cjs.DropdownMenu, { children: [
|
|
5340
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkZYHVJM4V_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
|
+
chunkZYHVJM4V_cjs.DropdownMenuContent,
|
|
5361
5361
|
{
|
|
5362
5362
|
align: "end",
|
|
5363
5363
|
sideOffset: 8,
|
|
@@ -5390,7 +5390,7 @@ 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: chunkZYHVJM4V_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
|
),
|
|
@@ -5408,7 +5408,7 @@ function NotificationBell({
|
|
|
5408
5408
|
children: "Toasts are muted \u2014 everything still lands here."
|
|
5409
5409
|
}
|
|
5410
5410
|
),
|
|
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(
|
|
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(chunkZYHVJM4V_cjs.ScrollArea, { className: "max-h-[380px]", children: /* @__PURE__ */ jsxRuntime.jsx("ul", { "data-testid": `${testId}-list`, children: visible.map((n) => {
|
|
5412
5412
|
const Glyph = GLYPH[n.variant];
|
|
5413
5413
|
return /* @__PURE__ */ jsxRuntime.jsx("li", { children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
5414
5414
|
"button",
|
|
@@ -5419,13 +5419,13 @@ function NotificationBell({
|
|
|
5419
5419
|
if (n.onSelect) n.onSelect();
|
|
5420
5420
|
else if (n.href) onNavigate?.(n.href);
|
|
5421
5421
|
},
|
|
5422
|
-
className:
|
|
5422
|
+
className: chunkZYHVJM4V_cjs.cn(
|
|
5423
5423
|
"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
5424
|
!n.read && "bg-accent/40"
|
|
5425
5425
|
),
|
|
5426
5426
|
"data-testid": `${testId}-item`,
|
|
5427
5427
|
children: [
|
|
5428
|
-
/* @__PURE__ */ jsxRuntime.jsx(Glyph, { className:
|
|
5428
|
+
/* @__PURE__ */ jsxRuntime.jsx(Glyph, { className: chunkZYHVJM4V_cjs.cn("mt-0.5 size-4 shrink-0", tone(n.variant)) }),
|
|
5429
5429
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0 flex-1", children: [
|
|
5430
5430
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm font-medium leading-snug text-foreground", children: n.title }),
|
|
5431
5431
|
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 +5439,7 @@ function NotificationBell({
|
|
|
5439
5439
|
onViewAll && // A real menu item, not a bare button: selecting it must CLOSE the
|
|
5440
5440
|
// dropdown on its way to the full surface.
|
|
5441
5441
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5442
|
-
|
|
5442
|
+
chunkZYHVJM4V_cjs.DropdownMenuItem,
|
|
5443
5443
|
{
|
|
5444
5444
|
onClick: onViewAll,
|
|
5445
5445
|
className: "justify-center rounded-none border-t border-border px-3.5 py-2.5 text-xs font-medium text-primary focus:text-primary",
|
|
@@ -5627,7 +5627,7 @@ function ConversationList({
|
|
|
5627
5627
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
5628
5628
|
"aside",
|
|
5629
5629
|
{
|
|
5630
|
-
className:
|
|
5630
|
+
className: chunkZYHVJM4V_cjs.cn(
|
|
5631
5631
|
"flex min-h-0 flex-col border-b border-border md:w-80 md:shrink-0 md:border-b-0 md:border-r",
|
|
5632
5632
|
className
|
|
5633
5633
|
),
|
|
@@ -5655,7 +5655,7 @@ function ConversationList({
|
|
|
5655
5655
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5656
5656
|
"span",
|
|
5657
5657
|
{
|
|
5658
|
-
className:
|
|
5658
|
+
className: chunkZYHVJM4V_cjs.cn(
|
|
5659
5659
|
"truncate text-sm text-foreground",
|
|
5660
5660
|
unread ? "font-bold" : "font-semibold"
|
|
5661
5661
|
),
|
|
@@ -5665,7 +5665,7 @@ function ConversationList({
|
|
|
5665
5665
|
c.badge ?? (isAgentUser(peer) ? /* @__PURE__ */ jsxRuntime.jsx(AgentBadge, {}) : null)
|
|
5666
5666
|
] }),
|
|
5667
5667
|
c.statusLabel ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
5668
|
-
|
|
5668
|
+
chunkZYHVJM4V_cjs.Badge,
|
|
5669
5669
|
{
|
|
5670
5670
|
variant: "outline",
|
|
5671
5671
|
className: "shrink-0 rounded-full px-2 py-0 text-[10px] font-medium text-muted-foreground",
|
|
@@ -5676,10 +5676,10 @@ function ConversationList({
|
|
|
5676
5676
|
// shouted louder than the message it was counting.
|
|
5677
5677
|
// Enough to catch the eye scanning the list, no more.
|
|
5678
5678
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5679
|
-
|
|
5679
|
+
chunkZYHVJM4V_cjs.Badge,
|
|
5680
5680
|
{
|
|
5681
5681
|
variant: "accent",
|
|
5682
|
-
className:
|
|
5682
|
+
className: chunkZYHVJM4V_cjs.cn(
|
|
5683
5683
|
"min-w-[1.125rem] justify-center rounded-full px-1 py-0 text-[10px] font-medium leading-[1.125rem] shadow-none",
|
|
5684
5684
|
classNames?.unreadBadge
|
|
5685
5685
|
),
|
|
@@ -5705,7 +5705,7 @@ function ConversationList({
|
|
|
5705
5705
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5706
5706
|
"p",
|
|
5707
5707
|
{
|
|
5708
|
-
className:
|
|
5708
|
+
className: chunkZYHVJM4V_cjs.cn(
|
|
5709
5709
|
"min-w-0 flex-1 truncate text-xs",
|
|
5710
5710
|
unread ? "font-medium text-foreground" : "text-muted-foreground"
|
|
5711
5711
|
),
|
|
@@ -5716,7 +5716,7 @@ function ConversationList({
|
|
|
5716
5716
|
] })
|
|
5717
5717
|
] })
|
|
5718
5718
|
] });
|
|
5719
|
-
const rowClass =
|
|
5719
|
+
const rowClass = chunkZYHVJM4V_cjs.cn(
|
|
5720
5720
|
// Each row is its own opaque surface. Left transparent it takes
|
|
5721
5721
|
// the panel's colour, and the chips stop reading as cards at all
|
|
5722
5722
|
// — which is the whole point of them.
|
|
@@ -5845,7 +5845,7 @@ function MessageThread({
|
|
|
5845
5845
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "truncate text-xs text-muted-foreground", children: peer.email })
|
|
5846
5846
|
] })
|
|
5847
5847
|
] }),
|
|
5848
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5848
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkZYHVJM4V_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
5849
|
items.map(({ message: m, isLastOfRun, isFirstOfDay }) => /* @__PURE__ */ jsxRuntime.jsxs(React2.Fragment, { children: [
|
|
5850
5850
|
isFirstOfDay && formatDay && /* @__PURE__ */ jsxRuntime.jsx(DateSeparator, { children: formatDay(m.createdAt) }),
|
|
5851
5851
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -5895,7 +5895,7 @@ function DmComposer({
|
|
|
5895
5895
|
children,
|
|
5896
5896
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-end gap-2", children: [
|
|
5897
5897
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5898
|
-
|
|
5898
|
+
chunkZYHVJM4V_cjs.Textarea,
|
|
5899
5899
|
{
|
|
5900
5900
|
ref: inputRef,
|
|
5901
5901
|
value: draft,
|
|
@@ -5909,12 +5909,12 @@ function DmComposer({
|
|
|
5909
5909
|
}
|
|
5910
5910
|
),
|
|
5911
5911
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
5912
|
-
|
|
5912
|
+
chunkZYHVJM4V_cjs.Button,
|
|
5913
5913
|
{
|
|
5914
5914
|
type: "button",
|
|
5915
5915
|
onClick: () => void submit(),
|
|
5916
5916
|
disabled: disabled || busy || !draft.trim(),
|
|
5917
|
-
className:
|
|
5917
|
+
className: chunkZYHVJM4V_cjs.cn(classNames?.sendButton),
|
|
5918
5918
|
"data-testid": "arbi-dm-send",
|
|
5919
5919
|
"aria-label": "Send message",
|
|
5920
5920
|
children: [
|
|
@@ -5967,7 +5967,7 @@ function DirectMessages({
|
|
|
5967
5967
|
{
|
|
5968
5968
|
"data-testid": "arbi-dm",
|
|
5969
5969
|
style: { height: "calc(100vh - 16rem)", minHeight: "28rem" },
|
|
5970
|
-
className:
|
|
5970
|
+
className: chunkZYHVJM4V_cjs.cn(
|
|
5971
5971
|
"relative flex flex-col overflow-hidden rounded-xl border border-border bg-card md:flex-row",
|
|
5972
5972
|
className
|
|
5973
5973
|
),
|
|
@@ -6035,7 +6035,7 @@ function ImageCropper({
|
|
|
6035
6035
|
},
|
|
6036
6036
|
[onCropComplete, activeAspect]
|
|
6037
6037
|
);
|
|
6038
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className:
|
|
6038
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: chunkZYHVJM4V_cjs.cn("flex flex-col gap-3", className), children: [
|
|
6039
6039
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative h-72 w-full overflow-hidden rounded-md bg-foreground/95", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
6040
6040
|
Cropper__default.default,
|
|
6041
6041
|
{
|
|
@@ -6061,7 +6061,7 @@ function ImageCropper({
|
|
|
6061
6061
|
type: "button",
|
|
6062
6062
|
onClick: () => setActiveAspect(opt.value),
|
|
6063
6063
|
"data-testid": `image-cropper-aspect-${opt.label}`,
|
|
6064
|
-
className:
|
|
6064
|
+
className: chunkZYHVJM4V_cjs.cn(
|
|
6065
6065
|
"rounded-md px-2 py-1 text-xs font-medium transition-colors",
|
|
6066
6066
|
on ? "bg-primary text-primary-foreground" : "text-muted-foreground hover:bg-accent hover:text-foreground"
|
|
6067
6067
|
),
|
|
@@ -6074,7 +6074,7 @@ function ImageCropper({
|
|
|
6074
6074
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-1.5", children: [
|
|
6075
6075
|
/* @__PURE__ */ jsxRuntime.jsx("label", { className: "text-[11px] font-semibold uppercase tracking-wider text-muted-foreground", children: "Zoom" }),
|
|
6076
6076
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6077
|
-
|
|
6077
|
+
chunkZYHVJM4V_cjs.Slider,
|
|
6078
6078
|
{
|
|
6079
6079
|
value: [zoom],
|
|
6080
6080
|
onValueChange: ([v]) => setZoom(v ?? 1),
|
|
@@ -6151,8 +6151,8 @@ function ImageCropModal({
|
|
|
6151
6151
|
setBusy(false);
|
|
6152
6152
|
}
|
|
6153
6153
|
};
|
|
6154
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
6155
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6154
|
+
return /* @__PURE__ */ jsxRuntime.jsx(chunkZYHVJM4V_cjs.Dialog, { open, onOpenChange: (next) => !next ? onCancel() : void 0, children: /* @__PURE__ */ jsxRuntime.jsxs(chunkZYHVJM4V_cjs.DialogContent, { className: "sm:max-w-md", "data-testid": "image-crop-modal", children: [
|
|
6155
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkZYHVJM4V_cjs.DialogHeader, { children: /* @__PURE__ */ jsxRuntime.jsx(chunkZYHVJM4V_cjs.DialogTitle, { children: title }) }),
|
|
6156
6156
|
image ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
6157
6157
|
ImageCropper,
|
|
6158
6158
|
{
|
|
@@ -6163,9 +6163,9 @@ function ImageCropModal({
|
|
|
6163
6163
|
onCropComplete: setArea
|
|
6164
6164
|
}
|
|
6165
6165
|
) : null,
|
|
6166
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
6167
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6168
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
6166
|
+
/* @__PURE__ */ jsxRuntime.jsxs(chunkZYHVJM4V_cjs.DialogFooter, { className: "gap-2 sm:gap-2", children: [
|
|
6167
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkZYHVJM4V_cjs.Button, { variant: "ghost", onClick: onCancel, disabled: busy, children: "Cancel" }),
|
|
6168
|
+
/* @__PURE__ */ jsxRuntime.jsxs(chunkZYHVJM4V_cjs.Button, { onClick: handleSave, disabled: !area || busy, "data-testid": "image-crop-save", children: [
|
|
6169
6169
|
busy ? /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Loader2, { className: "mr-1 size-4 animate-spin" }) : null,
|
|
6170
6170
|
saveLabel
|
|
6171
6171
|
] })
|
|
@@ -6231,18 +6231,18 @@ function CommandPalette({
|
|
|
6231
6231
|
if (!q || task.isRunning) return;
|
|
6232
6232
|
void task.run(buildAskPrompt(q), askDocIds, { model });
|
|
6233
6233
|
};
|
|
6234
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
6235
|
-
|
|
6234
|
+
return /* @__PURE__ */ jsxRuntime.jsx(chunkZYHVJM4V_cjs.Dialog, { open, onOpenChange, children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
6235
|
+
chunkZYHVJM4V_cjs.DialogContent,
|
|
6236
6236
|
{
|
|
6237
|
-
className:
|
|
6237
|
+
className: chunkZYHVJM4V_cjs.cn(
|
|
6238
6238
|
"top-[12%] max-w-2xl translate-y-0 gap-0 overflow-hidden p-0",
|
|
6239
6239
|
classNames?.dialog
|
|
6240
6240
|
),
|
|
6241
6241
|
"data-testid": testId,
|
|
6242
6242
|
children: [
|
|
6243
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6243
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkZYHVJM4V_cjs.DialogTitle, { className: "sr-only", children: "Command palette" }),
|
|
6244
6244
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-3 border-b border-border px-4", children: [
|
|
6245
|
-
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.Sparkles, { className:
|
|
6245
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.Sparkles, { className: chunkZYHVJM4V_cjs.cn("size-4 shrink-0 text-ai-accent", classNames?.leadingIcon) }),
|
|
6246
6246
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6247
6247
|
"input",
|
|
6248
6248
|
{
|
|
@@ -6256,7 +6256,7 @@ function CommandPalette({
|
|
|
6256
6256
|
}
|
|
6257
6257
|
},
|
|
6258
6258
|
placeholder,
|
|
6259
|
-
className:
|
|
6259
|
+
className: chunkZYHVJM4V_cjs.cn(
|
|
6260
6260
|
"h-14 flex-1 bg-transparent text-base outline-none placeholder:text-muted-foreground",
|
|
6261
6261
|
classNames?.input
|
|
6262
6262
|
),
|
|
@@ -6271,7 +6271,7 @@ function CommandPalette({
|
|
|
6271
6271
|
{
|
|
6272
6272
|
type: "button",
|
|
6273
6273
|
onClick: ask,
|
|
6274
|
-
className:
|
|
6274
|
+
className: chunkZYHVJM4V_cjs.cn(
|
|
6275
6275
|
"mb-1 flex w-full items-center gap-3 rounded-lg px-3 py-2.5 text-left hover:bg-accent",
|
|
6276
6276
|
classNames?.askAction
|
|
6277
6277
|
),
|
|
@@ -6280,7 +6280,7 @@ function CommandPalette({
|
|
|
6280
6280
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6281
6281
|
"span",
|
|
6282
6282
|
{
|
|
6283
|
-
className:
|
|
6283
|
+
className: chunkZYHVJM4V_cjs.cn(
|
|
6284
6284
|
"flex size-8 items-center justify-center rounded-md bg-ai-surface text-ai-accent",
|
|
6285
6285
|
classNames?.askChip
|
|
6286
6286
|
),
|
|
@@ -6311,7 +6311,7 @@ function CommandPalette({
|
|
|
6311
6311
|
}
|
|
6312
6312
|
),
|
|
6313
6313
|
task.isDone && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-3 flex justify-end", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
6314
|
-
|
|
6314
|
+
chunkZYHVJM4V_cjs.Button,
|
|
6315
6315
|
{
|
|
6316
6316
|
variant: "outline",
|
|
6317
6317
|
size: "sm",
|
|
@@ -6329,7 +6329,7 @@ function CommandPalette({
|
|
|
6329
6329
|
{
|
|
6330
6330
|
type: "button",
|
|
6331
6331
|
onClick: () => go(item.to),
|
|
6332
|
-
className:
|
|
6332
|
+
className: chunkZYHVJM4V_cjs.cn(
|
|
6333
6333
|
"flex w-full items-center gap-3 rounded-lg px-3 py-2 text-left hover:bg-accent",
|
|
6334
6334
|
classNames?.navItem
|
|
6335
6335
|
),
|
|
@@ -6428,23 +6428,23 @@ function UserMenu({
|
|
|
6428
6428
|
testId = "user-menu",
|
|
6429
6429
|
logoutTestId
|
|
6430
6430
|
}) {
|
|
6431
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
6432
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6431
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(chunkZYHVJM4V_cjs.DropdownMenu, { children: [
|
|
6432
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkZYHVJM4V_cjs.DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
6433
6433
|
"button",
|
|
6434
6434
|
{
|
|
6435
|
-
className:
|
|
6435
|
+
className: chunkZYHVJM4V_cjs.cn(
|
|
6436
6436
|
"flex items-center gap-2 rounded-md px-1.5 py-1 transition-colors hover:bg-accent",
|
|
6437
6437
|
classNames?.trigger
|
|
6438
6438
|
),
|
|
6439
6439
|
"data-testid": testId,
|
|
6440
6440
|
children: [
|
|
6441
6441
|
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "relative", children: [
|
|
6442
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
6443
|
-
user.picture ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
6442
|
+
/* @__PURE__ */ jsxRuntime.jsxs(chunkZYHVJM4V_cjs.Avatar, { className: "size-8", children: [
|
|
6443
|
+
user.picture ? /* @__PURE__ */ jsxRuntime.jsx(chunkZYHVJM4V_cjs.AvatarImage, { src: user.picture, alt: user.name }) : null,
|
|
6444
6444
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6445
|
-
|
|
6445
|
+
chunkZYHVJM4V_cjs.AvatarFallback,
|
|
6446
6446
|
{
|
|
6447
|
-
className:
|
|
6447
|
+
className: chunkZYHVJM4V_cjs.cn("bg-primary text-primary-foreground", classNames?.fallback),
|
|
6448
6448
|
children: nameInitials(user.name)
|
|
6449
6449
|
}
|
|
6450
6450
|
)
|
|
@@ -6452,7 +6452,7 @@ function UserMenu({
|
|
|
6452
6452
|
status && /* @__PURE__ */ jsxRuntime.jsx(
|
|
6453
6453
|
"span",
|
|
6454
6454
|
{
|
|
6455
|
-
className:
|
|
6455
|
+
className: chunkZYHVJM4V_cjs.cn(
|
|
6456
6456
|
"absolute -bottom-0.5 -right-0.5 size-2.5 rounded-full border-2 border-background",
|
|
6457
6457
|
STATUS_DOT[status.tone]
|
|
6458
6458
|
),
|
|
@@ -6466,14 +6466,14 @@ function UserMenu({
|
|
|
6466
6466
|
}
|
|
6467
6467
|
) }),
|
|
6468
6468
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
6469
|
-
|
|
6469
|
+
chunkZYHVJM4V_cjs.DropdownMenuContent,
|
|
6470
6470
|
{
|
|
6471
6471
|
align,
|
|
6472
6472
|
sideOffset: 8,
|
|
6473
6473
|
collisionPadding: 12,
|
|
6474
6474
|
className: "w-56 rounded-lg border-border/60 shadow-lg",
|
|
6475
6475
|
children: [
|
|
6476
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
6476
|
+
/* @__PURE__ */ jsxRuntime.jsxs(chunkZYHVJM4V_cjs.DropdownMenuLabel, { children: [
|
|
6477
6477
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "font-medium text-foreground", children: user.name }),
|
|
6478
6478
|
user.email && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-xs font-normal text-muted-foreground", children: user.email }),
|
|
6479
6479
|
status && /* @__PURE__ */ jsxRuntime.jsxs(
|
|
@@ -6483,7 +6483,7 @@ function UserMenu({
|
|
|
6483
6483
|
"data-testid": status.testId,
|
|
6484
6484
|
children: [
|
|
6485
6485
|
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "flex items-center gap-1.5", children: [
|
|
6486
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className:
|
|
6486
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: chunkZYHVJM4V_cjs.cn("size-2 shrink-0 rounded-full", STATUS_DOT[status.tone]) }),
|
|
6487
6487
|
status.label
|
|
6488
6488
|
] }),
|
|
6489
6489
|
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 +6491,12 @@ function UserMenu({
|
|
|
6491
6491
|
}
|
|
6492
6492
|
)
|
|
6493
6493
|
] }),
|
|
6494
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6495
|
-
items.map((item) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
6494
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkZYHVJM4V_cjs.DropdownMenuSeparator, {}),
|
|
6495
|
+
items.map((item) => /* @__PURE__ */ jsxRuntime.jsxs(chunkZYHVJM4V_cjs.DropdownMenuItem, { onClick: item.onSelect, "data-testid": item.testId, children: [
|
|
6496
6496
|
item.icon && /* @__PURE__ */ jsxRuntime.jsx(item.icon, { className: "size-4" }),
|
|
6497
6497
|
item.label
|
|
6498
6498
|
] }, item.label)),
|
|
6499
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
6499
|
+
/* @__PURE__ */ jsxRuntime.jsxs(chunkZYHVJM4V_cjs.DropdownMenuItem, { onClick: onLogout, "data-testid": logoutTestId ?? `${testId}-logout`, children: [
|
|
6500
6500
|
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.LogOut, { className: "size-4" }),
|
|
6501
6501
|
logoutLabel
|
|
6502
6502
|
] })
|
|
@@ -6631,7 +6631,7 @@ function DocumentTable({
|
|
|
6631
6631
|
cellRenderer: (p) => {
|
|
6632
6632
|
const status = p.data?.status;
|
|
6633
6633
|
if (!status) return null;
|
|
6634
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
6634
|
+
return /* @__PURE__ */ jsxRuntime.jsx(chunkZYHVJM4V_cjs.Badge, { variant: STATUS_VARIANTS[status.toLowerCase()] ?? "secondary", children: status });
|
|
6635
6635
|
}
|
|
6636
6636
|
},
|
|
6637
6637
|
{
|
|
@@ -6846,7 +6846,7 @@ function DocumentCard({
|
|
|
6846
6846
|
"div",
|
|
6847
6847
|
{
|
|
6848
6848
|
"data-testid": testId,
|
|
6849
|
-
className:
|
|
6849
|
+
className: chunkZYHVJM4V_cjs.cn(
|
|
6850
6850
|
// Square corners and a portrait-page aspect (height = 1.3 × width), so a
|
|
6851
6851
|
// cover-page thumbnail reads edge-to-edge.
|
|
6852
6852
|
"group relative aspect-[10/13] select-none overflow-hidden border bg-muted/20 transition",
|
|
@@ -6863,7 +6863,7 @@ function DocumentCard({
|
|
|
6863
6863
|
draggable: false,
|
|
6864
6864
|
onError: () => setThumbFailed(true),
|
|
6865
6865
|
onLoad: (e) => setThumbLandscape(e.currentTarget.naturalWidth > e.currentTarget.naturalHeight),
|
|
6866
|
-
className:
|
|
6866
|
+
className: chunkZYHVJM4V_cjs.cn(
|
|
6867
6867
|
"absolute inset-0 size-full bg-white",
|
|
6868
6868
|
thumbLandscape ? "object-contain" : "object-cover object-top"
|
|
6869
6869
|
)
|
|
@@ -6881,14 +6881,14 @@ function DocumentCard({
|
|
|
6881
6881
|
}
|
|
6882
6882
|
),
|
|
6883
6883
|
onToggleSelect && /* @__PURE__ */ jsxRuntime.jsx(
|
|
6884
|
-
|
|
6884
|
+
chunkZYHVJM4V_cjs.Checkbox,
|
|
6885
6885
|
{
|
|
6886
6886
|
checked: selected,
|
|
6887
6887
|
onCheckedChange: () => onToggleSelect(),
|
|
6888
6888
|
onClick: (e) => e.stopPropagation(),
|
|
6889
6889
|
"aria-label": selected ? "Deselect" : "Select",
|
|
6890
6890
|
"data-testid": `${testId}-select`,
|
|
6891
|
-
className:
|
|
6891
|
+
className: chunkZYHVJM4V_cjs.cn(
|
|
6892
6892
|
"absolute left-1.5 top-1.5 z-20 size-6 rounded-none border-muted-foreground/60 bg-background shadow-sm transition",
|
|
6893
6893
|
selected ? "opacity-100" : "opacity-40 group-hover:opacity-100"
|
|
6894
6894
|
)
|
|
@@ -6964,8 +6964,8 @@ function DocumentCardMenu({
|
|
|
6964
6964
|
mutationFn: () => arbi.documents.delete([docId]),
|
|
6965
6965
|
onSuccess: invalidateDocuments
|
|
6966
6966
|
});
|
|
6967
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
6968
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6967
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(chunkZYHVJM4V_cjs.DropdownMenu, { children: [
|
|
6968
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkZYHVJM4V_cjs.DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
6969
6969
|
"button",
|
|
6970
6970
|
{
|
|
6971
6971
|
type: "button",
|
|
@@ -6976,17 +6976,17 @@ function DocumentCardMenu({
|
|
|
6976
6976
|
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.MoreHorizontal, { className: "size-4" })
|
|
6977
6977
|
}
|
|
6978
6978
|
) }),
|
|
6979
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
6980
|
-
onOpen && /* @__PURE__ */ jsxRuntime.jsxs(
|
|
6979
|
+
/* @__PURE__ */ jsxRuntime.jsxs(chunkZYHVJM4V_cjs.DropdownMenuContent, { align: "start", onClick: (e) => e.stopPropagation(), className: "w-44", children: [
|
|
6980
|
+
onOpen && /* @__PURE__ */ jsxRuntime.jsxs(chunkZYHVJM4V_cjs.DropdownMenuItem, { onSelect: onOpen, "data-testid": `${testId}-open`, children: [
|
|
6981
6981
|
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.SquarePen, { className: "mr-2 size-4" }),
|
|
6982
6982
|
"Open"
|
|
6983
6983
|
] }),
|
|
6984
|
-
onRename && /* @__PURE__ */ jsxRuntime.jsxs(
|
|
6984
|
+
onRename && /* @__PURE__ */ jsxRuntime.jsxs(chunkZYHVJM4V_cjs.DropdownMenuItem, { onSelect: onRename, "data-testid": `${testId}-rename`, children: [
|
|
6985
6985
|
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.Pencil, { className: "mr-2 size-4" }),
|
|
6986
6986
|
"Rename"
|
|
6987
6987
|
] }),
|
|
6988
6988
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
6989
|
-
|
|
6989
|
+
chunkZYHVJM4V_cjs.DropdownMenuItem,
|
|
6990
6990
|
{
|
|
6991
6991
|
onSelect: () => download.mutate(),
|
|
6992
6992
|
disabled: download.isPending,
|
|
@@ -6998,9 +6998,9 @@ function DocumentCardMenu({
|
|
|
6998
6998
|
}
|
|
6999
6999
|
),
|
|
7000
7000
|
canDelete && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
7001
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
7001
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkZYHVJM4V_cjs.DropdownMenuSeparator, {}),
|
|
7002
7002
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
7003
|
-
|
|
7003
|
+
chunkZYHVJM4V_cjs.DropdownMenuItem,
|
|
7004
7004
|
{
|
|
7005
7005
|
onSelect: () => remove.mutate(),
|
|
7006
7006
|
disabled: remove.isPending,
|
|
@@ -7100,7 +7100,7 @@ function DocumentGallery({
|
|
|
7100
7100
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
7101
7101
|
"div",
|
|
7102
7102
|
{
|
|
7103
|
-
className:
|
|
7103
|
+
className: chunkZYHVJM4V_cjs.cn(
|
|
7104
7104
|
"flex items-center justify-center p-8 text-sm text-muted-foreground",
|
|
7105
7105
|
className
|
|
7106
7106
|
),
|
|
@@ -7112,7 +7112,7 @@ function DocumentGallery({
|
|
|
7112
7112
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
7113
7113
|
"div",
|
|
7114
7114
|
{
|
|
7115
|
-
className:
|
|
7115
|
+
className: chunkZYHVJM4V_cjs.cn(
|
|
7116
7116
|
"flex items-center justify-center p-8 text-sm text-muted-foreground",
|
|
7117
7117
|
className
|
|
7118
7118
|
),
|
|
@@ -7124,7 +7124,7 @@ function DocumentGallery({
|
|
|
7124
7124
|
"div",
|
|
7125
7125
|
{
|
|
7126
7126
|
"data-testid": "document-gallery",
|
|
7127
|
-
className:
|
|
7127
|
+
className: chunkZYHVJM4V_cjs.cn("grid gap-3", className),
|
|
7128
7128
|
style: { gridTemplateColumns: `repeat(auto-fill, minmax(${minTileWidth}px, 1fr))` },
|
|
7129
7129
|
children: rows.map((doc) => {
|
|
7130
7130
|
const id = doc.external_id;
|
|
@@ -7163,233 +7163,39 @@ function DocumentGallery({
|
|
|
7163
7163
|
}
|
|
7164
7164
|
);
|
|
7165
7165
|
}
|
|
7166
|
-
var LEVEL_UPDATE_INTERVAL_MS = 50;
|
|
7167
|
-
function classifyMicError(err) {
|
|
7168
|
-
const name = err instanceof DOMException ? err.name : void 0;
|
|
7169
|
-
if (name === "NotAllowedError" || name === "SecurityError") {
|
|
7170
|
-
return "Microphone access is blocked. Allow microphone permission in your browser settings to use voice input.";
|
|
7171
|
-
}
|
|
7172
|
-
if (name === "NotFoundError" || name === "DevicesNotFoundError") {
|
|
7173
|
-
return "No microphone found on this device.";
|
|
7174
|
-
}
|
|
7175
|
-
if (!navigator.mediaDevices?.getUserMedia) {
|
|
7176
|
-
return "Voice input is not supported in this browser.";
|
|
7177
|
-
}
|
|
7178
|
-
return "Could not start recording. Please try again.";
|
|
7179
|
-
}
|
|
7180
|
-
function useAudioRecorder() {
|
|
7181
|
-
const [state, setState] = React2.useState("idle");
|
|
7182
|
-
const [level, setLevel] = React2.useState(0);
|
|
7183
|
-
const [elapsedMs, setElapsedMs] = React2.useState(0);
|
|
7184
|
-
const [blob, setBlob] = React2.useState(null);
|
|
7185
|
-
const [mimeType, setMimeType] = React2.useState(null);
|
|
7186
|
-
const [error, setError] = React2.useState(null);
|
|
7187
|
-
const mediaRecorderRef = React2.useRef(null);
|
|
7188
|
-
const chunksRef = React2.useRef([]);
|
|
7189
|
-
const streamRef = React2.useRef(null);
|
|
7190
|
-
const stateRef = React2.useRef("idle");
|
|
7191
|
-
stateRef.current = state;
|
|
7192
|
-
const segmentStartRef = React2.useRef(0);
|
|
7193
|
-
const accumulatedMsRef = React2.useRef(0);
|
|
7194
|
-
const audioContextRef = React2.useRef(null);
|
|
7195
|
-
const analyserRef = React2.useRef(null);
|
|
7196
|
-
const levelRafRef = React2.useRef(null);
|
|
7197
|
-
const stopMeter = React2.useCallback(() => {
|
|
7198
|
-
if (levelRafRef.current !== null) cancelAnimationFrame(levelRafRef.current);
|
|
7199
|
-
levelRafRef.current = null;
|
|
7200
|
-
analyserRef.current = null;
|
|
7201
|
-
void audioContextRef.current?.close().catch(() => {
|
|
7202
|
-
});
|
|
7203
|
-
audioContextRef.current = null;
|
|
7204
|
-
}, []);
|
|
7205
|
-
const startMeter = React2.useCallback((stream) => {
|
|
7206
|
-
const audioContext = new AudioContext();
|
|
7207
|
-
const source = audioContext.createMediaStreamSource(stream);
|
|
7208
|
-
const analyser = audioContext.createAnalyser();
|
|
7209
|
-
analyser.fftSize = 256;
|
|
7210
|
-
source.connect(analyser);
|
|
7211
|
-
audioContextRef.current = audioContext;
|
|
7212
|
-
analyserRef.current = analyser;
|
|
7213
|
-
const data = new Uint8Array(analyser.frequencyBinCount);
|
|
7214
|
-
let lastUpdate = 0;
|
|
7215
|
-
const tick = (t) => {
|
|
7216
|
-
const active = analyserRef.current;
|
|
7217
|
-
if (!active) return;
|
|
7218
|
-
if (t - lastUpdate >= LEVEL_UPDATE_INTERVAL_MS) {
|
|
7219
|
-
lastUpdate = t;
|
|
7220
|
-
active.getByteTimeDomainData(data);
|
|
7221
|
-
let sumSquares = 0;
|
|
7222
|
-
for (let i = 0; i < data.length; i++) {
|
|
7223
|
-
const centered = (data[i] - 128) / 128;
|
|
7224
|
-
sumSquares += centered * centered;
|
|
7225
|
-
}
|
|
7226
|
-
const rms = Math.sqrt(sumSquares / data.length);
|
|
7227
|
-
setLevel(Math.sqrt(Math.min(1, rms * 8)));
|
|
7228
|
-
setElapsedMs(accumulatedMsRef.current + (t - segmentStartRef.current));
|
|
7229
|
-
}
|
|
7230
|
-
levelRafRef.current = requestAnimationFrame(tick);
|
|
7231
|
-
};
|
|
7232
|
-
levelRafRef.current = requestAnimationFrame(tick);
|
|
7233
|
-
}, []);
|
|
7234
|
-
const stopTracks = React2.useCallback(() => {
|
|
7235
|
-
streamRef.current?.getTracks().forEach((t) => t.stop());
|
|
7236
|
-
streamRef.current = null;
|
|
7237
|
-
}, []);
|
|
7238
|
-
React2.useEffect(
|
|
7239
|
-
() => () => {
|
|
7240
|
-
stopTracks();
|
|
7241
|
-
stopMeter();
|
|
7242
|
-
},
|
|
7243
|
-
[stopTracks, stopMeter]
|
|
7244
|
-
);
|
|
7245
|
-
const start = React2.useCallback(async () => {
|
|
7246
|
-
if (stateRef.current === "recording" || stateRef.current === "paused") return;
|
|
7247
|
-
setError(null);
|
|
7248
|
-
try {
|
|
7249
|
-
const stream = await navigator.mediaDevices.getUserMedia({ audio: true });
|
|
7250
|
-
streamRef.current = stream;
|
|
7251
|
-
const mt = MediaRecorder.isTypeSupported("audio/webm") ? "audio/webm" : "audio/mp4";
|
|
7252
|
-
const recorder = new MediaRecorder(stream, { mimeType: mt });
|
|
7253
|
-
chunksRef.current = [];
|
|
7254
|
-
recorder.ondataavailable = (e) => {
|
|
7255
|
-
if (e.data.size > 0) chunksRef.current.push(e.data);
|
|
7256
|
-
};
|
|
7257
|
-
mediaRecorderRef.current = recorder;
|
|
7258
|
-
setMimeType(mt);
|
|
7259
|
-
setBlob(null);
|
|
7260
|
-
accumulatedMsRef.current = 0;
|
|
7261
|
-
segmentStartRef.current = performance.now();
|
|
7262
|
-
recorder.start();
|
|
7263
|
-
setState("recording");
|
|
7264
|
-
startMeter(stream);
|
|
7265
|
-
} catch (err) {
|
|
7266
|
-
stopTracks();
|
|
7267
|
-
setError(classifyMicError(err));
|
|
7268
|
-
}
|
|
7269
|
-
}, [startMeter, stopTracks]);
|
|
7270
|
-
const pause = React2.useCallback(() => {
|
|
7271
|
-
const recorder = mediaRecorderRef.current;
|
|
7272
|
-
if (!recorder || recorder.state !== "recording") return;
|
|
7273
|
-
recorder.pause();
|
|
7274
|
-
accumulatedMsRef.current += performance.now() - segmentStartRef.current;
|
|
7275
|
-
stopMeter();
|
|
7276
|
-
setLevel(0);
|
|
7277
|
-
setState("paused");
|
|
7278
|
-
}, [stopMeter]);
|
|
7279
|
-
const resume = React2.useCallback(() => {
|
|
7280
|
-
const recorder = mediaRecorderRef.current;
|
|
7281
|
-
if (!recorder || recorder.state !== "paused") return;
|
|
7282
|
-
recorder.resume();
|
|
7283
|
-
segmentStartRef.current = performance.now();
|
|
7284
|
-
setState("recording");
|
|
7285
|
-
if (streamRef.current) startMeter(streamRef.current);
|
|
7286
|
-
}, [startMeter]);
|
|
7287
|
-
const stop = React2.useCallback(() => {
|
|
7288
|
-
const recorder = mediaRecorderRef.current;
|
|
7289
|
-
if (!recorder || recorder.state === "inactive") return;
|
|
7290
|
-
const finalElapsed = recorder.state === "paused" ? accumulatedMsRef.current : accumulatedMsRef.current + (performance.now() - segmentStartRef.current);
|
|
7291
|
-
stopMeter();
|
|
7292
|
-
recorder.onstop = () => {
|
|
7293
|
-
stopTracks();
|
|
7294
|
-
const finalBlob = chunksRef.current.length ? new Blob(chunksRef.current, { type: recorder.mimeType }) : null;
|
|
7295
|
-
setBlob(finalBlob);
|
|
7296
|
-
setElapsedMs(finalElapsed);
|
|
7297
|
-
setLevel(0);
|
|
7298
|
-
setState("stopped");
|
|
7299
|
-
};
|
|
7300
|
-
recorder.stop();
|
|
7301
|
-
}, [stopMeter, stopTracks]);
|
|
7302
|
-
const reset = React2.useCallback(() => {
|
|
7303
|
-
setState("idle");
|
|
7304
|
-
setBlob(null);
|
|
7305
|
-
setElapsedMs(0);
|
|
7306
|
-
setLevel(0);
|
|
7307
|
-
setMimeType(null);
|
|
7308
|
-
setError(null);
|
|
7309
|
-
}, []);
|
|
7310
|
-
return { state, level, elapsedMs, blob, mimeType, error, start, pause, resume, stop, reset };
|
|
7311
|
-
}
|
|
7312
|
-
|
|
7313
|
-
// src/documents/format-elapsed.ts
|
|
7314
|
-
function formatElapsed(ms) {
|
|
7315
|
-
const totalSeconds = Math.max(0, Math.floor(ms / 1e3));
|
|
7316
|
-
const minutes = Math.floor(totalSeconds / 60);
|
|
7317
|
-
const seconds = totalSeconds % 60;
|
|
7318
|
-
return `${String(minutes).padStart(2, "0")}:${String(seconds).padStart(2, "0")}`;
|
|
7319
|
-
}
|
|
7320
|
-
var BAR_WEIGHTS = [
|
|
7321
|
-
0.25,
|
|
7322
|
-
0.32,
|
|
7323
|
-
0.48,
|
|
7324
|
-
0.62,
|
|
7325
|
-
0.82,
|
|
7326
|
-
0.56,
|
|
7327
|
-
0.92,
|
|
7328
|
-
0.72,
|
|
7329
|
-
1,
|
|
7330
|
-
0.86,
|
|
7331
|
-
0.62,
|
|
7332
|
-
0.96,
|
|
7333
|
-
0.76,
|
|
7334
|
-
0.5,
|
|
7335
|
-
0.84,
|
|
7336
|
-
0.66,
|
|
7337
|
-
0.42,
|
|
7338
|
-
0.56,
|
|
7339
|
-
0.36,
|
|
7340
|
-
0.28,
|
|
7341
|
-
0.22
|
|
7342
|
-
];
|
|
7343
|
-
var MIN_BAR_PX = 3;
|
|
7344
|
-
var MAX_BAR_PX = 40;
|
|
7345
|
-
function MicWaveformIndicator({
|
|
7346
|
-
level,
|
|
7347
|
-
elapsedMs,
|
|
7348
|
-
paused = false
|
|
7349
|
-
}) {
|
|
7350
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col items-center gap-3", "data-testid": "mic-waveform-indicator", children: [
|
|
7351
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
|
|
7352
|
-
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "relative flex h-2 w-2", children: [
|
|
7353
|
-
!paused && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "absolute inline-flex h-full w-full animate-ping rounded-full bg-red-500 opacity-75" }),
|
|
7354
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
7355
|
-
"span",
|
|
7356
|
-
{
|
|
7357
|
-
className: `relative inline-flex h-2 w-2 rounded-full ${paused ? "bg-muted-foreground" : "bg-red-500"}`
|
|
7358
|
-
}
|
|
7359
|
-
)
|
|
7360
|
-
] }),
|
|
7361
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
7362
|
-
"span",
|
|
7363
|
-
{
|
|
7364
|
-
className: `text-xs font-semibold uppercase tracking-wide ${paused ? "text-muted-foreground" : "text-red-500"}`,
|
|
7365
|
-
children: paused ? "Paused" : "Rec"
|
|
7366
|
-
}
|
|
7367
|
-
),
|
|
7368
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-mono text-xs tabular-nums text-muted-foreground", children: formatElapsed(elapsedMs) })
|
|
7369
|
-
] }),
|
|
7370
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex h-10 items-end gap-[3px]", "data-testid": "mic-waveform-indicator-bars", children: BAR_WEIGHTS.map((weight, i) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
7371
|
-
"span",
|
|
7372
|
-
{
|
|
7373
|
-
className: "w-1 rounded-full bg-secondary transition-[height] duration-75 ease-out",
|
|
7374
|
-
style: {
|
|
7375
|
-
height: Math.min(MAX_BAR_PX, Math.max(MIN_BAR_PX, level * weight * MAX_BAR_PX))
|
|
7376
|
-
}
|
|
7377
|
-
},
|
|
7378
|
-
i
|
|
7379
|
-
)) })
|
|
7380
|
-
] });
|
|
7381
|
-
}
|
|
7382
7166
|
function VoiceNoteRecorder({
|
|
7383
7167
|
onSave,
|
|
7384
7168
|
onDiscard,
|
|
7385
7169
|
onError,
|
|
7386
|
-
title = "Voice
|
|
7387
|
-
isSaving = false
|
|
7170
|
+
title = "Voice Memo",
|
|
7171
|
+
isSaving = false,
|
|
7172
|
+
transcribe
|
|
7388
7173
|
}) {
|
|
7389
|
-
const recorder = useAudioRecorder();
|
|
7174
|
+
const recorder = chunkZYHVJM4V_cjs.useAudioRecorder();
|
|
7175
|
+
const [transcript, setTranscript] = React2.useState(null);
|
|
7176
|
+
const [isTranscribing, setIsTranscribing] = React2.useState(false);
|
|
7390
7177
|
React2.useEffect(() => {
|
|
7391
7178
|
if (recorder.error) onError?.(recorder.error);
|
|
7392
7179
|
}, [recorder.error]);
|
|
7180
|
+
React2.useEffect(() => {
|
|
7181
|
+
if (recorder.state !== "stopped" || !recorder.blob) {
|
|
7182
|
+
setTranscript(null);
|
|
7183
|
+
setIsTranscribing(false);
|
|
7184
|
+
return;
|
|
7185
|
+
}
|
|
7186
|
+
if (!transcribe) return;
|
|
7187
|
+
let cancelled = false;
|
|
7188
|
+
setIsTranscribing(true);
|
|
7189
|
+
transcribe(recorder.blob).then((text) => {
|
|
7190
|
+
if (!cancelled) setTranscript(text);
|
|
7191
|
+
}).catch(() => {
|
|
7192
|
+
}).finally(() => {
|
|
7193
|
+
if (!cancelled) setIsTranscribing(false);
|
|
7194
|
+
});
|
|
7195
|
+
return () => {
|
|
7196
|
+
cancelled = true;
|
|
7197
|
+
};
|
|
7198
|
+
}, [recorder.state, recorder.blob]);
|
|
7393
7199
|
const handleSave = () => {
|
|
7394
7200
|
if (!recorder.blob) return;
|
|
7395
7201
|
void onSave(recorder.blob, recorder.mimeType);
|
|
@@ -7397,7 +7203,7 @@ function VoiceNoteRecorder({
|
|
|
7397
7203
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex h-full flex-col items-center justify-center gap-6 p-8", children: [
|
|
7398
7204
|
recorder.state === "idle" && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
7399
7205
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
7400
|
-
|
|
7206
|
+
chunkZYHVJM4V_cjs.Button,
|
|
7401
7207
|
{
|
|
7402
7208
|
type: "button",
|
|
7403
7209
|
size: "lg",
|
|
@@ -7411,7 +7217,7 @@ function VoiceNoteRecorder({
|
|
|
7411
7217
|
] }),
|
|
7412
7218
|
(recorder.state === "recording" || recorder.state === "paused") && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
7413
7219
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
7414
|
-
MicWaveformIndicator,
|
|
7220
|
+
chunkZYHVJM4V_cjs.MicWaveformIndicator,
|
|
7415
7221
|
{
|
|
7416
7222
|
level: recorder.level,
|
|
7417
7223
|
elapsedMs: recorder.elapsedMs,
|
|
@@ -7420,7 +7226,7 @@ function VoiceNoteRecorder({
|
|
|
7420
7226
|
),
|
|
7421
7227
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-3", children: [
|
|
7422
7228
|
recorder.state === "recording" ? /* @__PURE__ */ jsxRuntime.jsxs(
|
|
7423
|
-
|
|
7229
|
+
chunkZYHVJM4V_cjs.Button,
|
|
7424
7230
|
{
|
|
7425
7231
|
type: "button",
|
|
7426
7232
|
variant: "outline",
|
|
@@ -7432,7 +7238,7 @@ function VoiceNoteRecorder({
|
|
|
7432
7238
|
]
|
|
7433
7239
|
}
|
|
7434
7240
|
) : /* @__PURE__ */ jsxRuntime.jsxs(
|
|
7435
|
-
|
|
7241
|
+
chunkZYHVJM4V_cjs.Button,
|
|
7436
7242
|
{
|
|
7437
7243
|
type: "button",
|
|
7438
7244
|
variant: "outline",
|
|
@@ -7444,7 +7250,7 @@ function VoiceNoteRecorder({
|
|
|
7444
7250
|
]
|
|
7445
7251
|
}
|
|
7446
7252
|
),
|
|
7447
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
7253
|
+
/* @__PURE__ */ jsxRuntime.jsxs(chunkZYHVJM4V_cjs.Button, { type: "button", onClick: recorder.stop, "data-testid": "voice-note-stop-button", children: [
|
|
7448
7254
|
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.Square, { className: "mr-1.5 h-3.5 w-3.5 fill-current" }),
|
|
7449
7255
|
"Stop"
|
|
7450
7256
|
] })
|
|
@@ -7452,9 +7258,23 @@ function VoiceNoteRecorder({
|
|
|
7452
7258
|
] }),
|
|
7453
7259
|
recorder.state === "stopped" && recorder.blob && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
7454
7260
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full max-w-md", children: /* @__PURE__ */ jsxRuntime.jsx(chunkRWCMW36I_cjs.AudioViewer, { blob: recorder.blob, title }) }),
|
|
7261
|
+
(isTranscribing || transcript) && /* @__PURE__ */ jsxRuntime.jsx(
|
|
7262
|
+
"div",
|
|
7263
|
+
{
|
|
7264
|
+
className: "w-full max-w-md rounded-md border border-border bg-muted/30 p-3 text-sm text-muted-foreground",
|
|
7265
|
+
"data-testid": "voice-note-rough-transcript",
|
|
7266
|
+
children: isTranscribing ? /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "flex items-center gap-1.5", children: [
|
|
7267
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.Loader2, { className: "h-3.5 w-3.5 animate-spin" }),
|
|
7268
|
+
"Transcribing\u2026"
|
|
7269
|
+
] }) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
7270
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mb-1 text-xs font-semibold uppercase tracking-wide", children: "Rough transcript" }),
|
|
7271
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { children: transcript })
|
|
7272
|
+
] })
|
|
7273
|
+
}
|
|
7274
|
+
),
|
|
7455
7275
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-3", children: [
|
|
7456
7276
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
7457
|
-
|
|
7277
|
+
chunkZYHVJM4V_cjs.Button,
|
|
7458
7278
|
{
|
|
7459
7279
|
type: "button",
|
|
7460
7280
|
variant: "outline",
|
|
@@ -7468,7 +7288,7 @@ function VoiceNoteRecorder({
|
|
|
7468
7288
|
}
|
|
7469
7289
|
),
|
|
7470
7290
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
7471
|
-
|
|
7291
|
+
chunkZYHVJM4V_cjs.Button,
|
|
7472
7292
|
{
|
|
7473
7293
|
type: "button",
|
|
7474
7294
|
variant: "outline",
|
|
@@ -7482,7 +7302,7 @@ function VoiceNoteRecorder({
|
|
|
7482
7302
|
}
|
|
7483
7303
|
),
|
|
7484
7304
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
7485
|
-
|
|
7305
|
+
chunkZYHVJM4V_cjs.Button,
|
|
7486
7306
|
{
|
|
7487
7307
|
type: "button",
|
|
7488
7308
|
onClick: handleSave,
|
|
@@ -7498,6 +7318,40 @@ function VoiceNoteRecorder({
|
|
|
7498
7318
|
] })
|
|
7499
7319
|
] });
|
|
7500
7320
|
}
|
|
7321
|
+
var AUTO_RENAME_COLORS = { text: "text-amber-700", bg: "bg-amber-500" };
|
|
7322
|
+
function DraftTitleControls({
|
|
7323
|
+
title,
|
|
7324
|
+
onTitleChange,
|
|
7325
|
+
placeholder,
|
|
7326
|
+
autoRename,
|
|
7327
|
+
onAutoRenameChange
|
|
7328
|
+
}) {
|
|
7329
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex min-w-0 flex-shrink-0 items-center gap-1.5", children: [
|
|
7330
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
7331
|
+
"input",
|
|
7332
|
+
{
|
|
7333
|
+
type: "text",
|
|
7334
|
+
value: title,
|
|
7335
|
+
onChange: (e) => onTitleChange(e.target.value),
|
|
7336
|
+
placeholder,
|
|
7337
|
+
className: "min-w-0 max-w-[220px] rounded-md bg-muted px-2 py-1 text-sm font-medium outline-none focus-visible:ring-1 focus-visible:ring-primary",
|
|
7338
|
+
"data-testid": "draft-title-input"
|
|
7339
|
+
}
|
|
7340
|
+
),
|
|
7341
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
7342
|
+
chunkZYHVJM4V_cjs.IconToggle,
|
|
7343
|
+
{
|
|
7344
|
+
icon: lucideReact.Sparkles,
|
|
7345
|
+
isActive: autoRename,
|
|
7346
|
+
onToggle: onAutoRenameChange,
|
|
7347
|
+
colors: AUTO_RENAME_COLORS,
|
|
7348
|
+
tooltipActive: "Auto-name from content is on \u2014 generates a title once saved",
|
|
7349
|
+
tooltipInactive: "Auto-name from content is off \u2014 uses the name typed above",
|
|
7350
|
+
"data-testid": "draft-auto-rename-toggle"
|
|
7351
|
+
}
|
|
7352
|
+
)
|
|
7353
|
+
] });
|
|
7354
|
+
}
|
|
7501
7355
|
|
|
7502
7356
|
// src/documents/has-video-track.ts
|
|
7503
7357
|
function hasVideoTrack(blob) {
|
|
@@ -7523,437 +7377,465 @@ function hasVideoTrack(blob) {
|
|
|
7523
7377
|
});
|
|
7524
7378
|
}
|
|
7525
7379
|
|
|
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
|
+
});
|
|
7526
7388
|
Object.defineProperty(exports, "AiMarkdown", {
|
|
7527
7389
|
enumerable: true,
|
|
7528
|
-
get: function () { return
|
|
7390
|
+
get: function () { return chunkZYHVJM4V_cjs.AiMarkdown; }
|
|
7529
7391
|
});
|
|
7530
7392
|
Object.defineProperty(exports, "Avatar", {
|
|
7531
7393
|
enumerable: true,
|
|
7532
|
-
get: function () { return
|
|
7394
|
+
get: function () { return chunkZYHVJM4V_cjs.Avatar; }
|
|
7533
7395
|
});
|
|
7534
7396
|
Object.defineProperty(exports, "AvatarFallback", {
|
|
7535
7397
|
enumerable: true,
|
|
7536
|
-
get: function () { return
|
|
7398
|
+
get: function () { return chunkZYHVJM4V_cjs.AvatarFallback; }
|
|
7537
7399
|
});
|
|
7538
7400
|
Object.defineProperty(exports, "AvatarImage", {
|
|
7539
7401
|
enumerable: true,
|
|
7540
|
-
get: function () { return
|
|
7402
|
+
get: function () { return chunkZYHVJM4V_cjs.AvatarImage; }
|
|
7541
7403
|
});
|
|
7542
7404
|
Object.defineProperty(exports, "Badge", {
|
|
7543
7405
|
enumerable: true,
|
|
7544
|
-
get: function () { return
|
|
7406
|
+
get: function () { return chunkZYHVJM4V_cjs.Badge; }
|
|
7545
7407
|
});
|
|
7546
7408
|
Object.defineProperty(exports, "Button", {
|
|
7547
7409
|
enumerable: true,
|
|
7548
|
-
get: function () { return
|
|
7410
|
+
get: function () { return chunkZYHVJM4V_cjs.Button; }
|
|
7549
7411
|
});
|
|
7550
7412
|
Object.defineProperty(exports, "Card", {
|
|
7551
7413
|
enumerable: true,
|
|
7552
|
-
get: function () { return
|
|
7414
|
+
get: function () { return chunkZYHVJM4V_cjs.Card; }
|
|
7553
7415
|
});
|
|
7554
7416
|
Object.defineProperty(exports, "CardContent", {
|
|
7555
7417
|
enumerable: true,
|
|
7556
|
-
get: function () { return
|
|
7418
|
+
get: function () { return chunkZYHVJM4V_cjs.CardContent; }
|
|
7557
7419
|
});
|
|
7558
7420
|
Object.defineProperty(exports, "CardDescription", {
|
|
7559
7421
|
enumerable: true,
|
|
7560
|
-
get: function () { return
|
|
7422
|
+
get: function () { return chunkZYHVJM4V_cjs.CardDescription; }
|
|
7561
7423
|
});
|
|
7562
7424
|
Object.defineProperty(exports, "CardFooter", {
|
|
7563
7425
|
enumerable: true,
|
|
7564
|
-
get: function () { return
|
|
7426
|
+
get: function () { return chunkZYHVJM4V_cjs.CardFooter; }
|
|
7565
7427
|
});
|
|
7566
7428
|
Object.defineProperty(exports, "CardHeader", {
|
|
7567
7429
|
enumerable: true,
|
|
7568
|
-
get: function () { return
|
|
7430
|
+
get: function () { return chunkZYHVJM4V_cjs.CardHeader; }
|
|
7569
7431
|
});
|
|
7570
7432
|
Object.defineProperty(exports, "CardTitle", {
|
|
7571
7433
|
enumerable: true,
|
|
7572
|
-
get: function () { return
|
|
7434
|
+
get: function () { return chunkZYHVJM4V_cjs.CardTitle; }
|
|
7573
7435
|
});
|
|
7574
7436
|
Object.defineProperty(exports, "Checkbox", {
|
|
7575
7437
|
enumerable: true,
|
|
7576
|
-
get: function () { return
|
|
7438
|
+
get: function () { return chunkZYHVJM4V_cjs.Checkbox; }
|
|
7577
7439
|
});
|
|
7578
7440
|
Object.defineProperty(exports, "Collapsible", {
|
|
7579
7441
|
enumerable: true,
|
|
7580
|
-
get: function () { return
|
|
7442
|
+
get: function () { return chunkZYHVJM4V_cjs.Collapsible; }
|
|
7581
7443
|
});
|
|
7582
7444
|
Object.defineProperty(exports, "CollapsibleContent", {
|
|
7583
7445
|
enumerable: true,
|
|
7584
|
-
get: function () { return
|
|
7446
|
+
get: function () { return chunkZYHVJM4V_cjs.CollapsibleContent; }
|
|
7585
7447
|
});
|
|
7586
7448
|
Object.defineProperty(exports, "CollapsibleTrigger", {
|
|
7587
7449
|
enumerable: true,
|
|
7588
|
-
get: function () { return
|
|
7450
|
+
get: function () { return chunkZYHVJM4V_cjs.CollapsibleTrigger; }
|
|
7589
7451
|
});
|
|
7590
7452
|
Object.defineProperty(exports, "Command", {
|
|
7591
7453
|
enumerable: true,
|
|
7592
|
-
get: function () { return
|
|
7454
|
+
get: function () { return chunkZYHVJM4V_cjs.Command; }
|
|
7593
7455
|
});
|
|
7594
7456
|
Object.defineProperty(exports, "CommandDialog", {
|
|
7595
7457
|
enumerable: true,
|
|
7596
|
-
get: function () { return
|
|
7458
|
+
get: function () { return chunkZYHVJM4V_cjs.CommandDialog; }
|
|
7597
7459
|
});
|
|
7598
7460
|
Object.defineProperty(exports, "CommandEmpty", {
|
|
7599
7461
|
enumerable: true,
|
|
7600
|
-
get: function () { return
|
|
7462
|
+
get: function () { return chunkZYHVJM4V_cjs.CommandEmpty; }
|
|
7601
7463
|
});
|
|
7602
7464
|
Object.defineProperty(exports, "CommandGroup", {
|
|
7603
7465
|
enumerable: true,
|
|
7604
|
-
get: function () { return
|
|
7466
|
+
get: function () { return chunkZYHVJM4V_cjs.CommandGroup; }
|
|
7605
7467
|
});
|
|
7606
7468
|
Object.defineProperty(exports, "CommandInput", {
|
|
7607
7469
|
enumerable: true,
|
|
7608
|
-
get: function () { return
|
|
7470
|
+
get: function () { return chunkZYHVJM4V_cjs.CommandInput; }
|
|
7609
7471
|
});
|
|
7610
7472
|
Object.defineProperty(exports, "CommandItem", {
|
|
7611
7473
|
enumerable: true,
|
|
7612
|
-
get: function () { return
|
|
7474
|
+
get: function () { return chunkZYHVJM4V_cjs.CommandItem; }
|
|
7613
7475
|
});
|
|
7614
7476
|
Object.defineProperty(exports, "CommandList", {
|
|
7615
7477
|
enumerable: true,
|
|
7616
|
-
get: function () { return
|
|
7478
|
+
get: function () { return chunkZYHVJM4V_cjs.CommandList; }
|
|
7617
7479
|
});
|
|
7618
7480
|
Object.defineProperty(exports, "CommandSeparator", {
|
|
7619
7481
|
enumerable: true,
|
|
7620
|
-
get: function () { return
|
|
7482
|
+
get: function () { return chunkZYHVJM4V_cjs.CommandSeparator; }
|
|
7621
7483
|
});
|
|
7622
7484
|
Object.defineProperty(exports, "CommandShortcut", {
|
|
7623
7485
|
enumerable: true,
|
|
7624
|
-
get: function () { return
|
|
7486
|
+
get: function () { return chunkZYHVJM4V_cjs.CommandShortcut; }
|
|
7625
7487
|
});
|
|
7626
7488
|
Object.defineProperty(exports, "Dialog", {
|
|
7627
7489
|
enumerable: true,
|
|
7628
|
-
get: function () { return
|
|
7490
|
+
get: function () { return chunkZYHVJM4V_cjs.Dialog; }
|
|
7629
7491
|
});
|
|
7630
7492
|
Object.defineProperty(exports, "DialogClose", {
|
|
7631
7493
|
enumerable: true,
|
|
7632
|
-
get: function () { return
|
|
7494
|
+
get: function () { return chunkZYHVJM4V_cjs.DialogClose; }
|
|
7633
7495
|
});
|
|
7634
7496
|
Object.defineProperty(exports, "DialogContent", {
|
|
7635
7497
|
enumerable: true,
|
|
7636
|
-
get: function () { return
|
|
7498
|
+
get: function () { return chunkZYHVJM4V_cjs.DialogContent; }
|
|
7637
7499
|
});
|
|
7638
7500
|
Object.defineProperty(exports, "DialogDescription", {
|
|
7639
7501
|
enumerable: true,
|
|
7640
|
-
get: function () { return
|
|
7502
|
+
get: function () { return chunkZYHVJM4V_cjs.DialogDescription; }
|
|
7641
7503
|
});
|
|
7642
7504
|
Object.defineProperty(exports, "DialogFooter", {
|
|
7643
7505
|
enumerable: true,
|
|
7644
|
-
get: function () { return
|
|
7506
|
+
get: function () { return chunkZYHVJM4V_cjs.DialogFooter; }
|
|
7645
7507
|
});
|
|
7646
7508
|
Object.defineProperty(exports, "DialogHeader", {
|
|
7647
7509
|
enumerable: true,
|
|
7648
|
-
get: function () { return
|
|
7510
|
+
get: function () { return chunkZYHVJM4V_cjs.DialogHeader; }
|
|
7649
7511
|
});
|
|
7650
7512
|
Object.defineProperty(exports, "DialogOverlay", {
|
|
7651
7513
|
enumerable: true,
|
|
7652
|
-
get: function () { return
|
|
7514
|
+
get: function () { return chunkZYHVJM4V_cjs.DialogOverlay; }
|
|
7653
7515
|
});
|
|
7654
7516
|
Object.defineProperty(exports, "DialogPortal", {
|
|
7655
7517
|
enumerable: true,
|
|
7656
|
-
get: function () { return
|
|
7518
|
+
get: function () { return chunkZYHVJM4V_cjs.DialogPortal; }
|
|
7657
7519
|
});
|
|
7658
7520
|
Object.defineProperty(exports, "DialogTitle", {
|
|
7659
7521
|
enumerable: true,
|
|
7660
|
-
get: function () { return
|
|
7522
|
+
get: function () { return chunkZYHVJM4V_cjs.DialogTitle; }
|
|
7661
7523
|
});
|
|
7662
7524
|
Object.defineProperty(exports, "DialogTrigger", {
|
|
7663
7525
|
enumerable: true,
|
|
7664
|
-
get: function () { return
|
|
7526
|
+
get: function () { return chunkZYHVJM4V_cjs.DialogTrigger; }
|
|
7527
|
+
});
|
|
7528
|
+
Object.defineProperty(exports, "DictateProvider", {
|
|
7529
|
+
enumerable: true,
|
|
7530
|
+
get: function () { return chunkZYHVJM4V_cjs.DictateProvider; }
|
|
7665
7531
|
});
|
|
7666
7532
|
Object.defineProperty(exports, "DropdownMenu", {
|
|
7667
7533
|
enumerable: true,
|
|
7668
|
-
get: function () { return
|
|
7534
|
+
get: function () { return chunkZYHVJM4V_cjs.DropdownMenu; }
|
|
7669
7535
|
});
|
|
7670
7536
|
Object.defineProperty(exports, "DropdownMenuCheckboxItem", {
|
|
7671
7537
|
enumerable: true,
|
|
7672
|
-
get: function () { return
|
|
7538
|
+
get: function () { return chunkZYHVJM4V_cjs.DropdownMenuCheckboxItem; }
|
|
7673
7539
|
});
|
|
7674
7540
|
Object.defineProperty(exports, "DropdownMenuContent", {
|
|
7675
7541
|
enumerable: true,
|
|
7676
|
-
get: function () { return
|
|
7542
|
+
get: function () { return chunkZYHVJM4V_cjs.DropdownMenuContent; }
|
|
7677
7543
|
});
|
|
7678
7544
|
Object.defineProperty(exports, "DropdownMenuGroup", {
|
|
7679
7545
|
enumerable: true,
|
|
7680
|
-
get: function () { return
|
|
7546
|
+
get: function () { return chunkZYHVJM4V_cjs.DropdownMenuGroup; }
|
|
7681
7547
|
});
|
|
7682
7548
|
Object.defineProperty(exports, "DropdownMenuItem", {
|
|
7683
7549
|
enumerable: true,
|
|
7684
|
-
get: function () { return
|
|
7550
|
+
get: function () { return chunkZYHVJM4V_cjs.DropdownMenuItem; }
|
|
7685
7551
|
});
|
|
7686
7552
|
Object.defineProperty(exports, "DropdownMenuLabel", {
|
|
7687
7553
|
enumerable: true,
|
|
7688
|
-
get: function () { return
|
|
7554
|
+
get: function () { return chunkZYHVJM4V_cjs.DropdownMenuLabel; }
|
|
7689
7555
|
});
|
|
7690
7556
|
Object.defineProperty(exports, "DropdownMenuPortal", {
|
|
7691
7557
|
enumerable: true,
|
|
7692
|
-
get: function () { return
|
|
7558
|
+
get: function () { return chunkZYHVJM4V_cjs.DropdownMenuPortal; }
|
|
7693
7559
|
});
|
|
7694
7560
|
Object.defineProperty(exports, "DropdownMenuRadioGroup", {
|
|
7695
7561
|
enumerable: true,
|
|
7696
|
-
get: function () { return
|
|
7562
|
+
get: function () { return chunkZYHVJM4V_cjs.DropdownMenuRadioGroup; }
|
|
7697
7563
|
});
|
|
7698
7564
|
Object.defineProperty(exports, "DropdownMenuRadioItem", {
|
|
7699
7565
|
enumerable: true,
|
|
7700
|
-
get: function () { return
|
|
7566
|
+
get: function () { return chunkZYHVJM4V_cjs.DropdownMenuRadioItem; }
|
|
7701
7567
|
});
|
|
7702
7568
|
Object.defineProperty(exports, "DropdownMenuSeparator", {
|
|
7703
7569
|
enumerable: true,
|
|
7704
|
-
get: function () { return
|
|
7570
|
+
get: function () { return chunkZYHVJM4V_cjs.DropdownMenuSeparator; }
|
|
7705
7571
|
});
|
|
7706
7572
|
Object.defineProperty(exports, "DropdownMenuShortcut", {
|
|
7707
7573
|
enumerable: true,
|
|
7708
|
-
get: function () { return
|
|
7574
|
+
get: function () { return chunkZYHVJM4V_cjs.DropdownMenuShortcut; }
|
|
7709
7575
|
});
|
|
7710
7576
|
Object.defineProperty(exports, "DropdownMenuSub", {
|
|
7711
7577
|
enumerable: true,
|
|
7712
|
-
get: function () { return
|
|
7578
|
+
get: function () { return chunkZYHVJM4V_cjs.DropdownMenuSub; }
|
|
7713
7579
|
});
|
|
7714
7580
|
Object.defineProperty(exports, "DropdownMenuSubContent", {
|
|
7715
7581
|
enumerable: true,
|
|
7716
|
-
get: function () { return
|
|
7582
|
+
get: function () { return chunkZYHVJM4V_cjs.DropdownMenuSubContent; }
|
|
7717
7583
|
});
|
|
7718
7584
|
Object.defineProperty(exports, "DropdownMenuSubTrigger", {
|
|
7719
7585
|
enumerable: true,
|
|
7720
|
-
get: function () { return
|
|
7586
|
+
get: function () { return chunkZYHVJM4V_cjs.DropdownMenuSubTrigger; }
|
|
7721
7587
|
});
|
|
7722
7588
|
Object.defineProperty(exports, "DropdownMenuTrigger", {
|
|
7723
7589
|
enumerable: true,
|
|
7724
|
-
get: function () { return
|
|
7590
|
+
get: function () { return chunkZYHVJM4V_cjs.DropdownMenuTrigger; }
|
|
7725
7591
|
});
|
|
7726
7592
|
Object.defineProperty(exports, "HoverCard", {
|
|
7727
7593
|
enumerable: true,
|
|
7728
|
-
get: function () { return
|
|
7594
|
+
get: function () { return chunkZYHVJM4V_cjs.HoverCard; }
|
|
7729
7595
|
});
|
|
7730
7596
|
Object.defineProperty(exports, "HoverCardContent", {
|
|
7731
7597
|
enumerable: true,
|
|
7732
|
-
get: function () { return
|
|
7598
|
+
get: function () { return chunkZYHVJM4V_cjs.HoverCardContent; }
|
|
7733
7599
|
});
|
|
7734
7600
|
Object.defineProperty(exports, "HoverCardTrigger", {
|
|
7735
7601
|
enumerable: true,
|
|
7736
|
-
get: function () { return
|
|
7602
|
+
get: function () { return chunkZYHVJM4V_cjs.HoverCardTrigger; }
|
|
7603
|
+
});
|
|
7604
|
+
Object.defineProperty(exports, "IconToggle", {
|
|
7605
|
+
enumerable: true,
|
|
7606
|
+
get: function () { return chunkZYHVJM4V_cjs.IconToggle; }
|
|
7607
|
+
});
|
|
7608
|
+
Object.defineProperty(exports, "InlineMicButton", {
|
|
7609
|
+
enumerable: true,
|
|
7610
|
+
get: function () { return chunkZYHVJM4V_cjs.InlineMicButton; }
|
|
7737
7611
|
});
|
|
7738
7612
|
Object.defineProperty(exports, "Input", {
|
|
7739
7613
|
enumerable: true,
|
|
7740
|
-
get: function () { return
|
|
7614
|
+
get: function () { return chunkZYHVJM4V_cjs.Input; }
|
|
7741
7615
|
});
|
|
7742
7616
|
Object.defineProperty(exports, "Label", {
|
|
7743
7617
|
enumerable: true,
|
|
7744
|
-
get: function () { return
|
|
7618
|
+
get: function () { return chunkZYHVJM4V_cjs.Label; }
|
|
7745
7619
|
});
|
|
7746
7620
|
Object.defineProperty(exports, "MarkdownRenderer", {
|
|
7747
7621
|
enumerable: true,
|
|
7748
|
-
get: function () { return
|
|
7622
|
+
get: function () { return chunkZYHVJM4V_cjs.MarkdownRenderer; }
|
|
7749
7623
|
});
|
|
7750
7624
|
Object.defineProperty(exports, "MarkdownStreamingContext", {
|
|
7751
7625
|
enumerable: true,
|
|
7752
|
-
get: function () { return
|
|
7626
|
+
get: function () { return chunkZYHVJM4V_cjs.MarkdownStreamingContext; }
|
|
7627
|
+
});
|
|
7628
|
+
Object.defineProperty(exports, "MicRecordingOverlay", {
|
|
7629
|
+
enumerable: true,
|
|
7630
|
+
get: function () { return chunkZYHVJM4V_cjs.MicRecordingOverlay; }
|
|
7631
|
+
});
|
|
7632
|
+
Object.defineProperty(exports, "MicWaveformIndicator", {
|
|
7633
|
+
enumerable: true,
|
|
7634
|
+
get: function () { return chunkZYHVJM4V_cjs.MicWaveformIndicator; }
|
|
7753
7635
|
});
|
|
7754
7636
|
Object.defineProperty(exports, "Popover", {
|
|
7755
7637
|
enumerable: true,
|
|
7756
|
-
get: function () { return
|
|
7638
|
+
get: function () { return chunkZYHVJM4V_cjs.Popover; }
|
|
7757
7639
|
});
|
|
7758
7640
|
Object.defineProperty(exports, "PopoverAnchor", {
|
|
7759
7641
|
enumerable: true,
|
|
7760
|
-
get: function () { return
|
|
7642
|
+
get: function () { return chunkZYHVJM4V_cjs.PopoverAnchor; }
|
|
7761
7643
|
});
|
|
7762
7644
|
Object.defineProperty(exports, "PopoverContent", {
|
|
7763
7645
|
enumerable: true,
|
|
7764
|
-
get: function () { return
|
|
7646
|
+
get: function () { return chunkZYHVJM4V_cjs.PopoverContent; }
|
|
7765
7647
|
});
|
|
7766
7648
|
Object.defineProperty(exports, "PopoverTrigger", {
|
|
7767
7649
|
enumerable: true,
|
|
7768
|
-
get: function () { return
|
|
7650
|
+
get: function () { return chunkZYHVJM4V_cjs.PopoverTrigger; }
|
|
7769
7651
|
});
|
|
7770
7652
|
Object.defineProperty(exports, "Progress", {
|
|
7771
7653
|
enumerable: true,
|
|
7772
|
-
get: function () { return
|
|
7654
|
+
get: function () { return chunkZYHVJM4V_cjs.Progress; }
|
|
7773
7655
|
});
|
|
7774
7656
|
Object.defineProperty(exports, "RadioGroup", {
|
|
7775
7657
|
enumerable: true,
|
|
7776
|
-
get: function () { return
|
|
7658
|
+
get: function () { return chunkZYHVJM4V_cjs.RadioGroup; }
|
|
7777
7659
|
});
|
|
7778
7660
|
Object.defineProperty(exports, "RadioGroupItem", {
|
|
7779
7661
|
enumerable: true,
|
|
7780
|
-
get: function () { return
|
|
7662
|
+
get: function () { return chunkZYHVJM4V_cjs.RadioGroupItem; }
|
|
7781
7663
|
});
|
|
7782
7664
|
Object.defineProperty(exports, "ScrollArea", {
|
|
7783
7665
|
enumerable: true,
|
|
7784
|
-
get: function () { return
|
|
7666
|
+
get: function () { return chunkZYHVJM4V_cjs.ScrollArea; }
|
|
7785
7667
|
});
|
|
7786
7668
|
Object.defineProperty(exports, "ScrollBar", {
|
|
7787
7669
|
enumerable: true,
|
|
7788
|
-
get: function () { return
|
|
7670
|
+
get: function () { return chunkZYHVJM4V_cjs.ScrollBar; }
|
|
7789
7671
|
});
|
|
7790
7672
|
Object.defineProperty(exports, "Select", {
|
|
7791
7673
|
enumerable: true,
|
|
7792
|
-
get: function () { return
|
|
7674
|
+
get: function () { return chunkZYHVJM4V_cjs.Select; }
|
|
7793
7675
|
});
|
|
7794
7676
|
Object.defineProperty(exports, "SelectContent", {
|
|
7795
7677
|
enumerable: true,
|
|
7796
|
-
get: function () { return
|
|
7678
|
+
get: function () { return chunkZYHVJM4V_cjs.SelectContent; }
|
|
7797
7679
|
});
|
|
7798
7680
|
Object.defineProperty(exports, "SelectGroup", {
|
|
7799
7681
|
enumerable: true,
|
|
7800
|
-
get: function () { return
|
|
7682
|
+
get: function () { return chunkZYHVJM4V_cjs.SelectGroup; }
|
|
7801
7683
|
});
|
|
7802
7684
|
Object.defineProperty(exports, "SelectItem", {
|
|
7803
7685
|
enumerable: true,
|
|
7804
|
-
get: function () { return
|
|
7686
|
+
get: function () { return chunkZYHVJM4V_cjs.SelectItem; }
|
|
7805
7687
|
});
|
|
7806
7688
|
Object.defineProperty(exports, "SelectLabel", {
|
|
7807
7689
|
enumerable: true,
|
|
7808
|
-
get: function () { return
|
|
7690
|
+
get: function () { return chunkZYHVJM4V_cjs.SelectLabel; }
|
|
7809
7691
|
});
|
|
7810
7692
|
Object.defineProperty(exports, "SelectScrollDownButton", {
|
|
7811
7693
|
enumerable: true,
|
|
7812
|
-
get: function () { return
|
|
7694
|
+
get: function () { return chunkZYHVJM4V_cjs.SelectScrollDownButton; }
|
|
7813
7695
|
});
|
|
7814
7696
|
Object.defineProperty(exports, "SelectScrollUpButton", {
|
|
7815
7697
|
enumerable: true,
|
|
7816
|
-
get: function () { return
|
|
7698
|
+
get: function () { return chunkZYHVJM4V_cjs.SelectScrollUpButton; }
|
|
7817
7699
|
});
|
|
7818
7700
|
Object.defineProperty(exports, "SelectSeparator", {
|
|
7819
7701
|
enumerable: true,
|
|
7820
|
-
get: function () { return
|
|
7702
|
+
get: function () { return chunkZYHVJM4V_cjs.SelectSeparator; }
|
|
7821
7703
|
});
|
|
7822
7704
|
Object.defineProperty(exports, "SelectTrigger", {
|
|
7823
7705
|
enumerable: true,
|
|
7824
|
-
get: function () { return
|
|
7706
|
+
get: function () { return chunkZYHVJM4V_cjs.SelectTrigger; }
|
|
7825
7707
|
});
|
|
7826
7708
|
Object.defineProperty(exports, "SelectValue", {
|
|
7827
7709
|
enumerable: true,
|
|
7828
|
-
get: function () { return
|
|
7710
|
+
get: function () { return chunkZYHVJM4V_cjs.SelectValue; }
|
|
7829
7711
|
});
|
|
7830
7712
|
Object.defineProperty(exports, "Separator", {
|
|
7831
7713
|
enumerable: true,
|
|
7832
|
-
get: function () { return
|
|
7714
|
+
get: function () { return chunkZYHVJM4V_cjs.Separator; }
|
|
7833
7715
|
});
|
|
7834
7716
|
Object.defineProperty(exports, "Slider", {
|
|
7835
7717
|
enumerable: true,
|
|
7836
|
-
get: function () { return
|
|
7718
|
+
get: function () { return chunkZYHVJM4V_cjs.Slider; }
|
|
7837
7719
|
});
|
|
7838
7720
|
Object.defineProperty(exports, "Switch", {
|
|
7839
7721
|
enumerable: true,
|
|
7840
|
-
get: function () { return
|
|
7722
|
+
get: function () { return chunkZYHVJM4V_cjs.Switch; }
|
|
7841
7723
|
});
|
|
7842
7724
|
Object.defineProperty(exports, "Table", {
|
|
7843
7725
|
enumerable: true,
|
|
7844
|
-
get: function () { return
|
|
7726
|
+
get: function () { return chunkZYHVJM4V_cjs.Table; }
|
|
7845
7727
|
});
|
|
7846
7728
|
Object.defineProperty(exports, "TableBody", {
|
|
7847
7729
|
enumerable: true,
|
|
7848
|
-
get: function () { return
|
|
7730
|
+
get: function () { return chunkZYHVJM4V_cjs.TableBody; }
|
|
7849
7731
|
});
|
|
7850
7732
|
Object.defineProperty(exports, "TableCaption", {
|
|
7851
7733
|
enumerable: true,
|
|
7852
|
-
get: function () { return
|
|
7734
|
+
get: function () { return chunkZYHVJM4V_cjs.TableCaption; }
|
|
7853
7735
|
});
|
|
7854
7736
|
Object.defineProperty(exports, "TableCell", {
|
|
7855
7737
|
enumerable: true,
|
|
7856
|
-
get: function () { return
|
|
7738
|
+
get: function () { return chunkZYHVJM4V_cjs.TableCell; }
|
|
7857
7739
|
});
|
|
7858
7740
|
Object.defineProperty(exports, "TableFooter", {
|
|
7859
7741
|
enumerable: true,
|
|
7860
|
-
get: function () { return
|
|
7742
|
+
get: function () { return chunkZYHVJM4V_cjs.TableFooter; }
|
|
7861
7743
|
});
|
|
7862
7744
|
Object.defineProperty(exports, "TableHead", {
|
|
7863
7745
|
enumerable: true,
|
|
7864
|
-
get: function () { return
|
|
7746
|
+
get: function () { return chunkZYHVJM4V_cjs.TableHead; }
|
|
7865
7747
|
});
|
|
7866
7748
|
Object.defineProperty(exports, "TableHeader", {
|
|
7867
7749
|
enumerable: true,
|
|
7868
|
-
get: function () { return
|
|
7750
|
+
get: function () { return chunkZYHVJM4V_cjs.TableHeader; }
|
|
7869
7751
|
});
|
|
7870
7752
|
Object.defineProperty(exports, "TableRow", {
|
|
7871
7753
|
enumerable: true,
|
|
7872
|
-
get: function () { return
|
|
7754
|
+
get: function () { return chunkZYHVJM4V_cjs.TableRow; }
|
|
7873
7755
|
});
|
|
7874
7756
|
Object.defineProperty(exports, "Tabs", {
|
|
7875
7757
|
enumerable: true,
|
|
7876
|
-
get: function () { return
|
|
7758
|
+
get: function () { return chunkZYHVJM4V_cjs.Tabs; }
|
|
7877
7759
|
});
|
|
7878
7760
|
Object.defineProperty(exports, "TabsContent", {
|
|
7879
7761
|
enumerable: true,
|
|
7880
|
-
get: function () { return
|
|
7762
|
+
get: function () { return chunkZYHVJM4V_cjs.TabsContent; }
|
|
7881
7763
|
});
|
|
7882
7764
|
Object.defineProperty(exports, "TabsList", {
|
|
7883
7765
|
enumerable: true,
|
|
7884
|
-
get: function () { return
|
|
7766
|
+
get: function () { return chunkZYHVJM4V_cjs.TabsList; }
|
|
7885
7767
|
});
|
|
7886
7768
|
Object.defineProperty(exports, "TabsTrigger", {
|
|
7887
7769
|
enumerable: true,
|
|
7888
|
-
get: function () { return
|
|
7770
|
+
get: function () { return chunkZYHVJM4V_cjs.TabsTrigger; }
|
|
7889
7771
|
});
|
|
7890
7772
|
Object.defineProperty(exports, "Textarea", {
|
|
7891
7773
|
enumerable: true,
|
|
7892
|
-
get: function () { return
|
|
7774
|
+
get: function () { return chunkZYHVJM4V_cjs.Textarea; }
|
|
7893
7775
|
});
|
|
7894
7776
|
Object.defineProperty(exports, "Toggle", {
|
|
7895
7777
|
enumerable: true,
|
|
7896
|
-
get: function () { return
|
|
7778
|
+
get: function () { return chunkZYHVJM4V_cjs.Toggle; }
|
|
7897
7779
|
});
|
|
7898
7780
|
Object.defineProperty(exports, "ToggleGroup", {
|
|
7899
7781
|
enumerable: true,
|
|
7900
|
-
get: function () { return
|
|
7782
|
+
get: function () { return chunkZYHVJM4V_cjs.ToggleGroup; }
|
|
7901
7783
|
});
|
|
7902
7784
|
Object.defineProperty(exports, "ToggleGroupItem", {
|
|
7903
7785
|
enumerable: true,
|
|
7904
|
-
get: function () { return
|
|
7786
|
+
get: function () { return chunkZYHVJM4V_cjs.ToggleGroupItem; }
|
|
7905
7787
|
});
|
|
7906
7788
|
Object.defineProperty(exports, "Tooltip", {
|
|
7907
7789
|
enumerable: true,
|
|
7908
|
-
get: function () { return
|
|
7790
|
+
get: function () { return chunkZYHVJM4V_cjs.Tooltip; }
|
|
7909
7791
|
});
|
|
7910
7792
|
Object.defineProperty(exports, "TooltipContent", {
|
|
7911
7793
|
enumerable: true,
|
|
7912
|
-
get: function () { return
|
|
7794
|
+
get: function () { return chunkZYHVJM4V_cjs.TooltipContent; }
|
|
7913
7795
|
});
|
|
7914
7796
|
Object.defineProperty(exports, "TooltipProvider", {
|
|
7915
7797
|
enumerable: true,
|
|
7916
|
-
get: function () { return
|
|
7798
|
+
get: function () { return chunkZYHVJM4V_cjs.TooltipProvider; }
|
|
7917
7799
|
});
|
|
7918
7800
|
Object.defineProperty(exports, "TooltipTrigger", {
|
|
7919
7801
|
enumerable: true,
|
|
7920
|
-
get: function () { return
|
|
7802
|
+
get: function () { return chunkZYHVJM4V_cjs.TooltipTrigger; }
|
|
7921
7803
|
});
|
|
7922
7804
|
Object.defineProperty(exports, "badgeVariants", {
|
|
7923
7805
|
enumerable: true,
|
|
7924
|
-
get: function () { return
|
|
7806
|
+
get: function () { return chunkZYHVJM4V_cjs.badgeVariants; }
|
|
7925
7807
|
});
|
|
7926
7808
|
Object.defineProperty(exports, "buttonVariants", {
|
|
7927
7809
|
enumerable: true,
|
|
7928
|
-
get: function () { return
|
|
7810
|
+
get: function () { return chunkZYHVJM4V_cjs.buttonVariants; }
|
|
7929
7811
|
});
|
|
7930
7812
|
Object.defineProperty(exports, "cardVariants", {
|
|
7931
7813
|
enumerable: true,
|
|
7932
|
-
get: function () { return
|
|
7814
|
+
get: function () { return chunkZYHVJM4V_cjs.cardVariants; }
|
|
7933
7815
|
});
|
|
7934
7816
|
Object.defineProperty(exports, "cn", {
|
|
7935
7817
|
enumerable: true,
|
|
7936
|
-
get: function () { return
|
|
7818
|
+
get: function () { return chunkZYHVJM4V_cjs.cn; }
|
|
7819
|
+
});
|
|
7820
|
+
Object.defineProperty(exports, "formatElapsed", {
|
|
7821
|
+
enumerable: true,
|
|
7822
|
+
get: function () { return chunkZYHVJM4V_cjs.formatElapsed; }
|
|
7937
7823
|
});
|
|
7938
7824
|
Object.defineProperty(exports, "markdownBaseComponents", {
|
|
7939
7825
|
enumerable: true,
|
|
7940
|
-
get: function () { return
|
|
7826
|
+
get: function () { return chunkZYHVJM4V_cjs.markdownBaseComponents; }
|
|
7941
7827
|
});
|
|
7942
7828
|
Object.defineProperty(exports, "splitMarkdownBlocks", {
|
|
7943
7829
|
enumerable: true,
|
|
7944
|
-
get: function () { return
|
|
7830
|
+
get: function () { return chunkZYHVJM4V_cjs.splitMarkdownBlocks; }
|
|
7945
7831
|
});
|
|
7946
7832
|
Object.defineProperty(exports, "toggleVariants", {
|
|
7947
7833
|
enumerable: true,
|
|
7948
|
-
get: function () { return
|
|
7834
|
+
get: function () { return chunkZYHVJM4V_cjs.toggleVariants; }
|
|
7949
7835
|
});
|
|
7950
|
-
Object.defineProperty(exports, "
|
|
7951
|
-
enumerable: true,
|
|
7952
|
-
get: function () { return chunkRWCMW36I_cjs.ArbiProvider; }
|
|
7953
|
-
});
|
|
7954
|
-
Object.defineProperty(exports, "useArbi", {
|
|
7836
|
+
Object.defineProperty(exports, "useAudioRecorder", {
|
|
7955
7837
|
enumerable: true,
|
|
7956
|
-
get: function () { return
|
|
7838
|
+
get: function () { return chunkZYHVJM4V_cjs.useAudioRecorder; }
|
|
7957
7839
|
});
|
|
7958
7840
|
Object.defineProperty(exports, "Arbi", {
|
|
7959
7841
|
enumerable: true,
|
|
@@ -8006,6 +7888,7 @@ exports.DocumentEntity = DocumentEntity;
|
|
|
8006
7888
|
exports.DocumentGallery = DocumentGallery;
|
|
8007
7889
|
exports.DocumentReview = DocumentReview;
|
|
8008
7890
|
exports.DocumentTable = DocumentTable;
|
|
7891
|
+
exports.DraftTitleControls = DraftTitleControls;
|
|
8009
7892
|
exports.ENTITY_MAPPINGS = ENTITY_MAPPINGS;
|
|
8010
7893
|
exports.EmlIcon = EmlIcon;
|
|
8011
7894
|
exports.EntityIcon = EntityIcon;
|
|
@@ -8024,7 +7907,6 @@ exports.LinkedInIcon = LinkedInIcon;
|
|
|
8024
7907
|
exports.MessageArtifactCard = MessageArtifactCard;
|
|
8025
7908
|
exports.MessageBubble = MessageBubble2;
|
|
8026
7909
|
exports.MessageThread = MessageThread;
|
|
8027
|
-
exports.MicWaveformIndicator = MicWaveformIndicator;
|
|
8028
7910
|
exports.NEUTRAL_GRAY = NEUTRAL_GRAY2;
|
|
8029
7911
|
exports.NotificationBell = NotificationBell;
|
|
8030
7912
|
exports.OpenAIIcon = OpenAIIcon;
|
|
@@ -8060,7 +7942,6 @@ exports.configureStatusRegistry = configureStatusRegistry;
|
|
|
8060
7942
|
exports.cropImage = cropImage;
|
|
8061
7943
|
exports.dayKey = dayKey;
|
|
8062
7944
|
exports.describeActivity = describeActivity;
|
|
8063
|
-
exports.formatElapsed = formatElapsed;
|
|
8064
7945
|
exports.formatRelativeTime = formatRelativeTime;
|
|
8065
7946
|
exports.getDocIcon = getDocIcon;
|
|
8066
7947
|
exports.getEntityColor = getEntityColor2;
|
|
@@ -8097,7 +7978,6 @@ exports.useArbiWsStore = useArbiWsStore;
|
|
|
8097
7978
|
exports.useArbiWsTask = useArbiWsTask;
|
|
8098
7979
|
exports.useArbiWsTasks = useArbiWsTasks;
|
|
8099
7980
|
exports.useAssistantQuery = useAssistantQuery;
|
|
8100
|
-
exports.useAudioRecorder = useAudioRecorder;
|
|
8101
7981
|
exports.useCommandPalette = useCommandPalette;
|
|
8102
7982
|
exports.useConfigs = useConfigs;
|
|
8103
7983
|
exports.useConversations = useConversations;
|