@arbidocs/react 0.3.173 → 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/index.cjs CHANGED
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var chunkRWCMW36I_cjs = require('./chunk-RWCMW36I.cjs');
4
- var chunk5DV7FW6T_cjs = require('./chunk-5DV7FW6T.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(chunk5DV7FW6T_cjs.MarkdownRenderer, { components: markdownComponents, children: message.text }) }),
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 = chunk5DV7FW6T_cjs.cn(
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 ? chunk5DV7FW6T_cjs.cn("bg-ai-accent-soft text-foreground chat-bubble-sent", classNames?.ownBubble) : chunk5DV7FW6T_cjs.cn("border border-border bg-card text-card-foreground", classNames?.peerBubble);
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: chunk5DV7FW6T_cjs.cn(
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: chunk5DV7FW6T_cjs.cn(
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: chunk5DV7FW6T_cjs.cn(
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: chunk5DV7FW6T_cjs.cn(
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: chunk5DV7FW6T_cjs.cn(
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: chunk5DV7FW6T_cjs.cn(
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: chunk5DV7FW6T_cjs.cn("text-sm text-muted-foreground", className), "data-testid": `${testId}-empty`, children: emptyHint }) : null;
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: chunk5DV7FW6T_cjs.cn("space-y-3", className), "data-testid": testId, "data-status": status, children: [
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(chunk5DV7FW6T_cjs.AiMarkdown, { isStreaming: running, children: text }),
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(chunk5DV7FW6T_cjs.Card, { variant: "elevated", className: "rounded-xl p-5", "data-testid": testId, children: [
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
- chunk5DV7FW6T_cjs.Button,
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: chunk5DV7FW6T_cjs.cn(
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: chunk5DV7FW6T_cjs.cn(
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: chunk5DV7FW6T_cjs.cn(
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: chunk5DV7FW6T_cjs.cn(
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(chunk5DV7FW6T_cjs.Badge, { variant: "accent", className: "gap-1", children: [
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(chunk5DV7FW6T_cjs.Badge, { variant: "secondary", children: [
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: chunk5DV7FW6T_cjs.cn(
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(chunk5DV7FW6T_cjs.AiMarkdown, { children: active.content })
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
- chunk5DV7FW6T_cjs.Card,
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: chunk5DV7FW6T_cjs.cn("space-y-3", className), "data-testid": "doc-search", children: [
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
- chunk5DV7FW6T_cjs.Card,
2181
+ chunkZYHVJM4V_cjs.Card,
2182
2182
  {
2183
2183
  variant: "elevated",
2184
- className: chunk5DV7FW6T_cjs.cn(
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(chunk5DV7FW6T_cjs.Badge, { variant: "secondary", children: [
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 = chunk5DV7FW6T_cjs.cn(
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: chunk5DV7FW6T_cjs.cn(
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(chunk5DV7FW6T_cjs.Tooltip, { children: [
2276
+ const tooltipWrap = (content, tip, side = tooltipSide, triggerClassName, triggerProps) => /* @__PURE__ */ jsxRuntime.jsxs(chunkZYHVJM4V_cjs.Tooltip, { children: [
2277
2277
  /* @__PURE__ */ jsxRuntime.jsx(
2278
- chunk5DV7FW6T_cjs.TooltipTrigger,
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(chunk5DV7FW6T_cjs.TooltipContent, { side, className: "p-2", children: tip })
2286
+ /* @__PURE__ */ jsxRuntime.jsx(chunkZYHVJM4V_cjs.TooltipContent, { side, className: "p-2", children: tip })
2287
2287
  ] });
2288
- const mainAreaClass = chunk5DV7FW6T_cjs.cn("inline-flex items-center gap-1", fullWidth && "min-w-0 flex-1");
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
- chunk5DV7FW6T_cjs.cn(mainAreaClass, disabled && "opacity-60"),
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: chunk5DV7FW6T_cjs.cn("inline-flex items-center gap-1", disabled && "opacity-60"),
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: chunk5DV7FW6T_cjs.cn(
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
- chunk5DV7FW6T_cjs.cn(baseClasses, interactiveClasses),
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
- chunk5DV7FW6T_cjs.cn(
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: chunk5DV7FW6T_cjs.cn(baseClasses, interactiveClasses),
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: chunk5DV7FW6T_cjs.cn(
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: chunk5DV7FW6T_cjs.cn(baseClasses, highlight && highlightClasses),
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(chunk5DV7FW6T_cjs.Badge, { variant: "secondary", className: "h-5 min-w-[20px] justify-center", children: tag.doctag_count ?? 0 })
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: chunk5DV7FW6T_cjs.cn(
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(chunk5DV7FW6T_cjs.Badge, { variant: "secondary", children: doc.status }) : null,
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: chunk5DV7FW6T_cjs.cn(
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(chunk5DV7FW6T_cjs.MarkdownRenderer, { className: "prose prose-sm max-w-none dark:prose-invert", children: c.content })
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: chunk5DV7FW6T_cjs.cn("size-1.5 shrink-0 rounded-full", tier.tone),
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: chunk5DV7FW6T_cjs.cn(
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(chunk5DV7FW6T_cjs.Badge, { variant: "secondary", children: [
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: chunk5DV7FW6T_cjs.cn("flex min-h-0 flex-col gap-4 md:flex-row", className), children: [
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: chunk5DV7FW6T_cjs.cn(
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: chunk5DV7FW6T_cjs.cn("min-h-0 min-w-0 flex-1", !selected && "hidden md:block"),
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
- chunk5DV7FW6T_cjs.Button,
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
- chunk5DV7FW6T_cjs.Input,
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
- chunk5DV7FW6T_cjs.Button,
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
- chunk5DV7FW6T_cjs.Button,
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: chunk5DV7FW6T_cjs.cn("citation-container", className), "data-testid": "citation-renderer", children: renderMarkdown({ components: markdownComponents, isStreaming, children: content }) });
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
- chunk5DV7FW6T_cjs.Popover,
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(chunk5DV7FW6T_cjs.PopoverTrigger, { asChild: true, children: /* @__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
- chunk5DV7FW6T_cjs.PopoverContent,
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: chunk5DV7FW6T_cjs.cn(
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: chunk5DV7FW6T_cjs.cn(
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: chunk5DV7FW6T_cjs.cn(
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: chunk5DV7FW6T_cjs.cn(
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: chunk5DV7FW6T_cjs.cn(iconSizeClass, iconClass) });
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: chunk5DV7FW6T_cjs.cn(pill, 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
- chunk5DV7FW6T_cjs.Avatar,
4476
+ chunkZYHVJM4V_cjs.Avatar,
4477
4477
  {
4478
- className: chunk5DV7FW6T_cjs.cn(sizeClasses[size], "border border-border", className),
4478
+ className: chunkZYHVJM4V_cjs.cn(sizeClasses[size], "border border-border", className),
4479
4479
  "data-testid": "user-entity",
4480
- children: /* @__PURE__ */ jsxRuntime.jsx(chunk5DV7FW6T_cjs.AvatarFallback, { className: "bg-status-empty text-muted-foreground text-xs font-semibold", children: "?" })
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
- chunk5DV7FW6T_cjs.Avatar,
4489
+ chunkZYHVJM4V_cjs.Avatar,
4490
4490
  {
4491
- className: chunk5DV7FW6T_cjs.cn(
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(chunk5DV7FW6T_cjs.AvatarImage, { src: picture, alt: initials }),
4498
+ picture && /* @__PURE__ */ jsxRuntime.jsx(chunkZYHVJM4V_cjs.AvatarImage, { src: picture, alt: initials }),
4499
4499
  /* @__PURE__ */ jsxRuntime.jsx(
4500
- chunk5DV7FW6T_cjs.AvatarFallback,
4500
+ chunkZYHVJM4V_cjs.AvatarFallback,
4501
4501
  {
4502
- className: chunk5DV7FW6T_cjs.cn(
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: chunk5DV7FW6T_cjs.cn(
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: chunk5DV7FW6T_cjs.cn(
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: chunk5DV7FW6T_cjs.cn("inline-block", variant === "pill" ? "" : className), children: avatarCore });
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: chunk5DV7FW6T_cjs.cn("relative inline-block shrink-0", sizeClasses[size]), children: [
4548
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: chunk5DV7FW6T_cjs.cn("block transition-opacity", canMessage && "group-hover/pill:opacity-0"), children: avatarCore }),
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(chunk5DV7FW6T_cjs.Tooltip, { children: [
4571
+ return /* @__PURE__ */ jsxRuntime.jsxs(chunkZYHVJM4V_cjs.Tooltip, { children: [
4572
4572
  /* @__PURE__ */ jsxRuntime.jsx(
4573
- chunk5DV7FW6T_cjs.TooltipTrigger,
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: chunk5DV7FW6T_cjs.cn(rowClass, clickable && clickableClass, 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(chunk5DV7FW6T_cjs.TooltipContent, { className: "p-2", children: resolvedTooltip })
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: chunk5DV7FW6T_cjs.cn(rowClass, clickableClass, 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: chunk5DV7FW6T_cjs.cn(rowClass, className), "data-testid": "user-entity-pill", children: row });
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(chunk5DV7FW6T_cjs.Tooltip, { children: [
4602
- /* @__PURE__ */ jsxRuntime.jsx(chunk5DV7FW6T_cjs.TooltipTrigger, { onFocusCapture: (e) => e.stopPropagation(), className: "inline-flex", children: avatarElement }),
4603
- /* @__PURE__ */ jsxRuntime.jsx(chunk5DV7FW6T_cjs.TooltipContent, { className: "p-2", children: tooltipContent })
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: chunk5DV7FW6T_cjs.cn(
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: chunk5DV7FW6T_cjs.cn("inline-flex shrink-0 items-center gap-1 text-xs", 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: chunk5DV7FW6T_cjs.cn(
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(chunk5DV7FW6T_cjs.Badge, { variant: isPackageBadgeVariant(variant) ? variant : "outline", ...rest });
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: chunk5DV7FW6T_cjs.cn("inline-flex items-center gap-1.5", className), "data-testid": `rag-${rag}`, children: [
4702
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: chunk5DV7FW6T_cjs.cn("size-2 rounded-full", color) }),
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: chunk5DV7FW6T_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: [
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: chunk5DV7FW6T_cjs.cn("text-sm text-muted-foreground", className), "data-testid": testId, children: "Couldn\u2019t load activity." });
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: chunk5DV7FW6T_cjs.cn("flex items-center gap-2 text-sm text-muted-foreground", 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: chunk5DV7FW6T_cjs.cn("divide-y divide-border", className), "data-testid": testId, children: items.map((item) => {
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: chunk5DV7FW6T_cjs.cn("h-4 w-4 shrink-0", desc.iconClassName) }),
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(chunk5DV7FW6T_cjs.DropdownMenu, { children: [
5340
- /* @__PURE__ */ jsxRuntime.jsx(chunk5DV7FW6T_cjs.DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsxs(
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
- chunk5DV7FW6T_cjs.DropdownMenuContent,
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: chunk5DV7FW6T_cjs.cn(
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(chunk5DV7FW6T_cjs.ScrollArea, { className: "max-h-[380px]", children: /* @__PURE__ */ jsxRuntime.jsx("ul", { "data-testid": `${testId}-list`, children: visible.map((n) => {
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: chunk5DV7FW6T_cjs.cn(
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: chunk5DV7FW6T_cjs.cn("mt-0.5 size-4 shrink-0", tone(n.variant)) }),
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
- chunk5DV7FW6T_cjs.DropdownMenuItem,
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: chunk5DV7FW6T_cjs.cn(
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: chunk5DV7FW6T_cjs.cn(
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
- chunk5DV7FW6T_cjs.Badge,
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
- chunk5DV7FW6T_cjs.Badge,
5679
+ chunkZYHVJM4V_cjs.Badge,
5680
5680
  {
5681
5681
  variant: "accent",
5682
- className: chunk5DV7FW6T_cjs.cn(
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: chunk5DV7FW6T_cjs.cn(
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 = chunk5DV7FW6T_cjs.cn(
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(chunk5DV7FW6T_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: [
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
- chunk5DV7FW6T_cjs.Textarea,
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
- chunk5DV7FW6T_cjs.Button,
5912
+ chunkZYHVJM4V_cjs.Button,
5913
5913
  {
5914
5914
  type: "button",
5915
5915
  onClick: () => void submit(),
5916
5916
  disabled: disabled || busy || !draft.trim(),
5917
- className: chunk5DV7FW6T_cjs.cn(classNames?.sendButton),
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: chunk5DV7FW6T_cjs.cn(
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: chunk5DV7FW6T_cjs.cn("flex flex-col gap-3", className), children: [
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: chunk5DV7FW6T_cjs.cn(
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
- chunk5DV7FW6T_cjs.Slider,
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(chunk5DV7FW6T_cjs.Dialog, { open, onOpenChange: (next) => !next ? onCancel() : void 0, children: /* @__PURE__ */ jsxRuntime.jsxs(chunk5DV7FW6T_cjs.DialogContent, { className: "sm:max-w-md", "data-testid": "image-crop-modal", children: [
6155
- /* @__PURE__ */ jsxRuntime.jsx(chunk5DV7FW6T_cjs.DialogHeader, { children: /* @__PURE__ */ jsxRuntime.jsx(chunk5DV7FW6T_cjs.DialogTitle, { children: title }) }),
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(chunk5DV7FW6T_cjs.DialogFooter, { className: "gap-2 sm:gap-2", children: [
6167
- /* @__PURE__ */ jsxRuntime.jsx(chunk5DV7FW6T_cjs.Button, { variant: "ghost", onClick: onCancel, disabled: busy, children: "Cancel" }),
6168
- /* @__PURE__ */ jsxRuntime.jsxs(chunk5DV7FW6T_cjs.Button, { onClick: handleSave, disabled: !area || busy, "data-testid": "image-crop-save", children: [
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(chunk5DV7FW6T_cjs.Dialog, { open, onOpenChange, children: /* @__PURE__ */ jsxRuntime.jsxs(
6235
- chunk5DV7FW6T_cjs.DialogContent,
6234
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkZYHVJM4V_cjs.Dialog, { open, onOpenChange, children: /* @__PURE__ */ jsxRuntime.jsxs(
6235
+ chunkZYHVJM4V_cjs.DialogContent,
6236
6236
  {
6237
- className: chunk5DV7FW6T_cjs.cn(
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(chunk5DV7FW6T_cjs.DialogTitle, { className: "sr-only", children: "Command palette" }),
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: chunk5DV7FW6T_cjs.cn("size-4 shrink-0 text-ai-accent", classNames?.leadingIcon) }),
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: chunk5DV7FW6T_cjs.cn(
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: chunk5DV7FW6T_cjs.cn(
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: chunk5DV7FW6T_cjs.cn(
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
- chunk5DV7FW6T_cjs.Button,
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: chunk5DV7FW6T_cjs.cn(
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(chunk5DV7FW6T_cjs.DropdownMenu, { children: [
6432
- /* @__PURE__ */ jsxRuntime.jsx(chunk5DV7FW6T_cjs.DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsxs(
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: chunk5DV7FW6T_cjs.cn(
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(chunk5DV7FW6T_cjs.Avatar, { className: "size-8", children: [
6443
- user.picture ? /* @__PURE__ */ jsxRuntime.jsx(chunk5DV7FW6T_cjs.AvatarImage, { src: user.picture, alt: user.name }) : null,
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
- chunk5DV7FW6T_cjs.AvatarFallback,
6445
+ chunkZYHVJM4V_cjs.AvatarFallback,
6446
6446
  {
6447
- className: chunk5DV7FW6T_cjs.cn("bg-primary text-primary-foreground", classNames?.fallback),
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: chunk5DV7FW6T_cjs.cn(
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
- chunk5DV7FW6T_cjs.DropdownMenuContent,
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(chunk5DV7FW6T_cjs.DropdownMenuLabel, { children: [
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: chunk5DV7FW6T_cjs.cn("size-2 shrink-0 rounded-full", STATUS_DOT[status.tone]) }),
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(chunk5DV7FW6T_cjs.DropdownMenuSeparator, {}),
6495
- items.map((item) => /* @__PURE__ */ jsxRuntime.jsxs(chunk5DV7FW6T_cjs.DropdownMenuItem, { onClick: item.onSelect, "data-testid": item.testId, children: [
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(chunk5DV7FW6T_cjs.DropdownMenuItem, { onClick: onLogout, "data-testid": logoutTestId ?? `${testId}-logout`, children: [
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(chunk5DV7FW6T_cjs.Badge, { variant: STATUS_VARIANTS[status.toLowerCase()] ?? "secondary", children: status });
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: chunk5DV7FW6T_cjs.cn(
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: chunk5DV7FW6T_cjs.cn(
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
- chunk5DV7FW6T_cjs.Checkbox,
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: chunk5DV7FW6T_cjs.cn(
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(chunk5DV7FW6T_cjs.DropdownMenu, { children: [
6968
- /* @__PURE__ */ jsxRuntime.jsx(chunk5DV7FW6T_cjs.DropdownMenuTrigger, { asChild: true, children: /* @__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(chunk5DV7FW6T_cjs.DropdownMenuContent, { align: "start", onClick: (e) => e.stopPropagation(), className: "w-44", children: [
6980
- onOpen && /* @__PURE__ */ jsxRuntime.jsxs(chunk5DV7FW6T_cjs.DropdownMenuItem, { onSelect: onOpen, "data-testid": `${testId}-open`, children: [
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(chunk5DV7FW6T_cjs.DropdownMenuItem, { onSelect: onRename, "data-testid": `${testId}-rename`, children: [
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
- chunk5DV7FW6T_cjs.DropdownMenuItem,
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(chunk5DV7FW6T_cjs.DropdownMenuSeparator, {}),
7001
+ /* @__PURE__ */ jsxRuntime.jsx(chunkZYHVJM4V_cjs.DropdownMenuSeparator, {}),
7002
7002
  /* @__PURE__ */ jsxRuntime.jsxs(
7003
- chunk5DV7FW6T_cjs.DropdownMenuItem,
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: chunk5DV7FW6T_cjs.cn(
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: chunk5DV7FW6T_cjs.cn(
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: chunk5DV7FW6T_cjs.cn("grid gap-3", 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,231 +7163,15 @@ 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 note",
7170
+ title = "Voice Memo",
7387
7171
  isSaving = false,
7388
7172
  transcribe
7389
7173
  }) {
7390
- const recorder = useAudioRecorder();
7174
+ const recorder = chunkZYHVJM4V_cjs.useAudioRecorder();
7391
7175
  const [transcript, setTranscript] = React2.useState(null);
7392
7176
  const [isTranscribing, setIsTranscribing] = React2.useState(false);
7393
7177
  React2.useEffect(() => {
@@ -7419,7 +7203,7 @@ function VoiceNoteRecorder({
7419
7203
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex h-full flex-col items-center justify-center gap-6 p-8", children: [
7420
7204
  recorder.state === "idle" && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
7421
7205
  /* @__PURE__ */ jsxRuntime.jsx(
7422
- chunk5DV7FW6T_cjs.Button,
7206
+ chunkZYHVJM4V_cjs.Button,
7423
7207
  {
7424
7208
  type: "button",
7425
7209
  size: "lg",
@@ -7433,7 +7217,7 @@ function VoiceNoteRecorder({
7433
7217
  ] }),
7434
7218
  (recorder.state === "recording" || recorder.state === "paused") && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
7435
7219
  /* @__PURE__ */ jsxRuntime.jsx(
7436
- MicWaveformIndicator,
7220
+ chunkZYHVJM4V_cjs.MicWaveformIndicator,
7437
7221
  {
7438
7222
  level: recorder.level,
7439
7223
  elapsedMs: recorder.elapsedMs,
@@ -7442,7 +7226,7 @@ function VoiceNoteRecorder({
7442
7226
  ),
7443
7227
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-3", children: [
7444
7228
  recorder.state === "recording" ? /* @__PURE__ */ jsxRuntime.jsxs(
7445
- chunk5DV7FW6T_cjs.Button,
7229
+ chunkZYHVJM4V_cjs.Button,
7446
7230
  {
7447
7231
  type: "button",
7448
7232
  variant: "outline",
@@ -7454,7 +7238,7 @@ function VoiceNoteRecorder({
7454
7238
  ]
7455
7239
  }
7456
7240
  ) : /* @__PURE__ */ jsxRuntime.jsxs(
7457
- chunk5DV7FW6T_cjs.Button,
7241
+ chunkZYHVJM4V_cjs.Button,
7458
7242
  {
7459
7243
  type: "button",
7460
7244
  variant: "outline",
@@ -7466,7 +7250,7 @@ function VoiceNoteRecorder({
7466
7250
  ]
7467
7251
  }
7468
7252
  ),
7469
- /* @__PURE__ */ jsxRuntime.jsxs(chunk5DV7FW6T_cjs.Button, { type: "button", onClick: recorder.stop, "data-testid": "voice-note-stop-button", children: [
7253
+ /* @__PURE__ */ jsxRuntime.jsxs(chunkZYHVJM4V_cjs.Button, { type: "button", onClick: recorder.stop, "data-testid": "voice-note-stop-button", children: [
7470
7254
  /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Square, { className: "mr-1.5 h-3.5 w-3.5 fill-current" }),
7471
7255
  "Stop"
7472
7256
  ] })
@@ -7490,7 +7274,7 @@ function VoiceNoteRecorder({
7490
7274
  ),
7491
7275
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-3", children: [
7492
7276
  /* @__PURE__ */ jsxRuntime.jsxs(
7493
- chunk5DV7FW6T_cjs.Button,
7277
+ chunkZYHVJM4V_cjs.Button,
7494
7278
  {
7495
7279
  type: "button",
7496
7280
  variant: "outline",
@@ -7504,7 +7288,7 @@ function VoiceNoteRecorder({
7504
7288
  }
7505
7289
  ),
7506
7290
  /* @__PURE__ */ jsxRuntime.jsxs(
7507
- chunk5DV7FW6T_cjs.Button,
7291
+ chunkZYHVJM4V_cjs.Button,
7508
7292
  {
7509
7293
  type: "button",
7510
7294
  variant: "outline",
@@ -7518,7 +7302,7 @@ function VoiceNoteRecorder({
7518
7302
  }
7519
7303
  ),
7520
7304
  /* @__PURE__ */ jsxRuntime.jsxs(
7521
- chunk5DV7FW6T_cjs.Button,
7305
+ chunkZYHVJM4V_cjs.Button,
7522
7306
  {
7523
7307
  type: "button",
7524
7308
  onClick: handleSave,
@@ -7534,6 +7318,40 @@ function VoiceNoteRecorder({
7534
7318
  ] })
7535
7319
  ] });
7536
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
+ }
7537
7355
 
7538
7356
  // src/documents/has-video-track.ts
7539
7357
  function hasVideoTrack(blob) {
@@ -7569,427 +7387,455 @@ Object.defineProperty(exports, "useArbi", {
7569
7387
  });
7570
7388
  Object.defineProperty(exports, "AiMarkdown", {
7571
7389
  enumerable: true,
7572
- get: function () { return chunk5DV7FW6T_cjs.AiMarkdown; }
7390
+ get: function () { return chunkZYHVJM4V_cjs.AiMarkdown; }
7573
7391
  });
7574
7392
  Object.defineProperty(exports, "Avatar", {
7575
7393
  enumerable: true,
7576
- get: function () { return chunk5DV7FW6T_cjs.Avatar; }
7394
+ get: function () { return chunkZYHVJM4V_cjs.Avatar; }
7577
7395
  });
7578
7396
  Object.defineProperty(exports, "AvatarFallback", {
7579
7397
  enumerable: true,
7580
- get: function () { return chunk5DV7FW6T_cjs.AvatarFallback; }
7398
+ get: function () { return chunkZYHVJM4V_cjs.AvatarFallback; }
7581
7399
  });
7582
7400
  Object.defineProperty(exports, "AvatarImage", {
7583
7401
  enumerable: true,
7584
- get: function () { return chunk5DV7FW6T_cjs.AvatarImage; }
7402
+ get: function () { return chunkZYHVJM4V_cjs.AvatarImage; }
7585
7403
  });
7586
7404
  Object.defineProperty(exports, "Badge", {
7587
7405
  enumerable: true,
7588
- get: function () { return chunk5DV7FW6T_cjs.Badge; }
7406
+ get: function () { return chunkZYHVJM4V_cjs.Badge; }
7589
7407
  });
7590
7408
  Object.defineProperty(exports, "Button", {
7591
7409
  enumerable: true,
7592
- get: function () { return chunk5DV7FW6T_cjs.Button; }
7410
+ get: function () { return chunkZYHVJM4V_cjs.Button; }
7593
7411
  });
7594
7412
  Object.defineProperty(exports, "Card", {
7595
7413
  enumerable: true,
7596
- get: function () { return chunk5DV7FW6T_cjs.Card; }
7414
+ get: function () { return chunkZYHVJM4V_cjs.Card; }
7597
7415
  });
7598
7416
  Object.defineProperty(exports, "CardContent", {
7599
7417
  enumerable: true,
7600
- get: function () { return chunk5DV7FW6T_cjs.CardContent; }
7418
+ get: function () { return chunkZYHVJM4V_cjs.CardContent; }
7601
7419
  });
7602
7420
  Object.defineProperty(exports, "CardDescription", {
7603
7421
  enumerable: true,
7604
- get: function () { return chunk5DV7FW6T_cjs.CardDescription; }
7422
+ get: function () { return chunkZYHVJM4V_cjs.CardDescription; }
7605
7423
  });
7606
7424
  Object.defineProperty(exports, "CardFooter", {
7607
7425
  enumerable: true,
7608
- get: function () { return chunk5DV7FW6T_cjs.CardFooter; }
7426
+ get: function () { return chunkZYHVJM4V_cjs.CardFooter; }
7609
7427
  });
7610
7428
  Object.defineProperty(exports, "CardHeader", {
7611
7429
  enumerable: true,
7612
- get: function () { return chunk5DV7FW6T_cjs.CardHeader; }
7430
+ get: function () { return chunkZYHVJM4V_cjs.CardHeader; }
7613
7431
  });
7614
7432
  Object.defineProperty(exports, "CardTitle", {
7615
7433
  enumerable: true,
7616
- get: function () { return chunk5DV7FW6T_cjs.CardTitle; }
7434
+ get: function () { return chunkZYHVJM4V_cjs.CardTitle; }
7617
7435
  });
7618
7436
  Object.defineProperty(exports, "Checkbox", {
7619
7437
  enumerable: true,
7620
- get: function () { return chunk5DV7FW6T_cjs.Checkbox; }
7438
+ get: function () { return chunkZYHVJM4V_cjs.Checkbox; }
7621
7439
  });
7622
7440
  Object.defineProperty(exports, "Collapsible", {
7623
7441
  enumerable: true,
7624
- get: function () { return chunk5DV7FW6T_cjs.Collapsible; }
7442
+ get: function () { return chunkZYHVJM4V_cjs.Collapsible; }
7625
7443
  });
7626
7444
  Object.defineProperty(exports, "CollapsibleContent", {
7627
7445
  enumerable: true,
7628
- get: function () { return chunk5DV7FW6T_cjs.CollapsibleContent; }
7446
+ get: function () { return chunkZYHVJM4V_cjs.CollapsibleContent; }
7629
7447
  });
7630
7448
  Object.defineProperty(exports, "CollapsibleTrigger", {
7631
7449
  enumerable: true,
7632
- get: function () { return chunk5DV7FW6T_cjs.CollapsibleTrigger; }
7450
+ get: function () { return chunkZYHVJM4V_cjs.CollapsibleTrigger; }
7633
7451
  });
7634
7452
  Object.defineProperty(exports, "Command", {
7635
7453
  enumerable: true,
7636
- get: function () { return chunk5DV7FW6T_cjs.Command; }
7454
+ get: function () { return chunkZYHVJM4V_cjs.Command; }
7637
7455
  });
7638
7456
  Object.defineProperty(exports, "CommandDialog", {
7639
7457
  enumerable: true,
7640
- get: function () { return chunk5DV7FW6T_cjs.CommandDialog; }
7458
+ get: function () { return chunkZYHVJM4V_cjs.CommandDialog; }
7641
7459
  });
7642
7460
  Object.defineProperty(exports, "CommandEmpty", {
7643
7461
  enumerable: true,
7644
- get: function () { return chunk5DV7FW6T_cjs.CommandEmpty; }
7462
+ get: function () { return chunkZYHVJM4V_cjs.CommandEmpty; }
7645
7463
  });
7646
7464
  Object.defineProperty(exports, "CommandGroup", {
7647
7465
  enumerable: true,
7648
- get: function () { return chunk5DV7FW6T_cjs.CommandGroup; }
7466
+ get: function () { return chunkZYHVJM4V_cjs.CommandGroup; }
7649
7467
  });
7650
7468
  Object.defineProperty(exports, "CommandInput", {
7651
7469
  enumerable: true,
7652
- get: function () { return chunk5DV7FW6T_cjs.CommandInput; }
7470
+ get: function () { return chunkZYHVJM4V_cjs.CommandInput; }
7653
7471
  });
7654
7472
  Object.defineProperty(exports, "CommandItem", {
7655
7473
  enumerable: true,
7656
- get: function () { return chunk5DV7FW6T_cjs.CommandItem; }
7474
+ get: function () { return chunkZYHVJM4V_cjs.CommandItem; }
7657
7475
  });
7658
7476
  Object.defineProperty(exports, "CommandList", {
7659
7477
  enumerable: true,
7660
- get: function () { return chunk5DV7FW6T_cjs.CommandList; }
7478
+ get: function () { return chunkZYHVJM4V_cjs.CommandList; }
7661
7479
  });
7662
7480
  Object.defineProperty(exports, "CommandSeparator", {
7663
7481
  enumerable: true,
7664
- get: function () { return chunk5DV7FW6T_cjs.CommandSeparator; }
7482
+ get: function () { return chunkZYHVJM4V_cjs.CommandSeparator; }
7665
7483
  });
7666
7484
  Object.defineProperty(exports, "CommandShortcut", {
7667
7485
  enumerable: true,
7668
- get: function () { return chunk5DV7FW6T_cjs.CommandShortcut; }
7486
+ get: function () { return chunkZYHVJM4V_cjs.CommandShortcut; }
7669
7487
  });
7670
7488
  Object.defineProperty(exports, "Dialog", {
7671
7489
  enumerable: true,
7672
- get: function () { return chunk5DV7FW6T_cjs.Dialog; }
7490
+ get: function () { return chunkZYHVJM4V_cjs.Dialog; }
7673
7491
  });
7674
7492
  Object.defineProperty(exports, "DialogClose", {
7675
7493
  enumerable: true,
7676
- get: function () { return chunk5DV7FW6T_cjs.DialogClose; }
7494
+ get: function () { return chunkZYHVJM4V_cjs.DialogClose; }
7677
7495
  });
7678
7496
  Object.defineProperty(exports, "DialogContent", {
7679
7497
  enumerable: true,
7680
- get: function () { return chunk5DV7FW6T_cjs.DialogContent; }
7498
+ get: function () { return chunkZYHVJM4V_cjs.DialogContent; }
7681
7499
  });
7682
7500
  Object.defineProperty(exports, "DialogDescription", {
7683
7501
  enumerable: true,
7684
- get: function () { return chunk5DV7FW6T_cjs.DialogDescription; }
7502
+ get: function () { return chunkZYHVJM4V_cjs.DialogDescription; }
7685
7503
  });
7686
7504
  Object.defineProperty(exports, "DialogFooter", {
7687
7505
  enumerable: true,
7688
- get: function () { return chunk5DV7FW6T_cjs.DialogFooter; }
7506
+ get: function () { return chunkZYHVJM4V_cjs.DialogFooter; }
7689
7507
  });
7690
7508
  Object.defineProperty(exports, "DialogHeader", {
7691
7509
  enumerable: true,
7692
- get: function () { return chunk5DV7FW6T_cjs.DialogHeader; }
7510
+ get: function () { return chunkZYHVJM4V_cjs.DialogHeader; }
7693
7511
  });
7694
7512
  Object.defineProperty(exports, "DialogOverlay", {
7695
7513
  enumerable: true,
7696
- get: function () { return chunk5DV7FW6T_cjs.DialogOverlay; }
7514
+ get: function () { return chunkZYHVJM4V_cjs.DialogOverlay; }
7697
7515
  });
7698
7516
  Object.defineProperty(exports, "DialogPortal", {
7699
7517
  enumerable: true,
7700
- get: function () { return chunk5DV7FW6T_cjs.DialogPortal; }
7518
+ get: function () { return chunkZYHVJM4V_cjs.DialogPortal; }
7701
7519
  });
7702
7520
  Object.defineProperty(exports, "DialogTitle", {
7703
7521
  enumerable: true,
7704
- get: function () { return chunk5DV7FW6T_cjs.DialogTitle; }
7522
+ get: function () { return chunkZYHVJM4V_cjs.DialogTitle; }
7705
7523
  });
7706
7524
  Object.defineProperty(exports, "DialogTrigger", {
7707
7525
  enumerable: true,
7708
- get: function () { return chunk5DV7FW6T_cjs.DialogTrigger; }
7526
+ get: function () { return chunkZYHVJM4V_cjs.DialogTrigger; }
7527
+ });
7528
+ Object.defineProperty(exports, "DictateProvider", {
7529
+ enumerable: true,
7530
+ get: function () { return chunkZYHVJM4V_cjs.DictateProvider; }
7709
7531
  });
7710
7532
  Object.defineProperty(exports, "DropdownMenu", {
7711
7533
  enumerable: true,
7712
- get: function () { return chunk5DV7FW6T_cjs.DropdownMenu; }
7534
+ get: function () { return chunkZYHVJM4V_cjs.DropdownMenu; }
7713
7535
  });
7714
7536
  Object.defineProperty(exports, "DropdownMenuCheckboxItem", {
7715
7537
  enumerable: true,
7716
- get: function () { return chunk5DV7FW6T_cjs.DropdownMenuCheckboxItem; }
7538
+ get: function () { return chunkZYHVJM4V_cjs.DropdownMenuCheckboxItem; }
7717
7539
  });
7718
7540
  Object.defineProperty(exports, "DropdownMenuContent", {
7719
7541
  enumerable: true,
7720
- get: function () { return chunk5DV7FW6T_cjs.DropdownMenuContent; }
7542
+ get: function () { return chunkZYHVJM4V_cjs.DropdownMenuContent; }
7721
7543
  });
7722
7544
  Object.defineProperty(exports, "DropdownMenuGroup", {
7723
7545
  enumerable: true,
7724
- get: function () { return chunk5DV7FW6T_cjs.DropdownMenuGroup; }
7546
+ get: function () { return chunkZYHVJM4V_cjs.DropdownMenuGroup; }
7725
7547
  });
7726
7548
  Object.defineProperty(exports, "DropdownMenuItem", {
7727
7549
  enumerable: true,
7728
- get: function () { return chunk5DV7FW6T_cjs.DropdownMenuItem; }
7550
+ get: function () { return chunkZYHVJM4V_cjs.DropdownMenuItem; }
7729
7551
  });
7730
7552
  Object.defineProperty(exports, "DropdownMenuLabel", {
7731
7553
  enumerable: true,
7732
- get: function () { return chunk5DV7FW6T_cjs.DropdownMenuLabel; }
7554
+ get: function () { return chunkZYHVJM4V_cjs.DropdownMenuLabel; }
7733
7555
  });
7734
7556
  Object.defineProperty(exports, "DropdownMenuPortal", {
7735
7557
  enumerable: true,
7736
- get: function () { return chunk5DV7FW6T_cjs.DropdownMenuPortal; }
7558
+ get: function () { return chunkZYHVJM4V_cjs.DropdownMenuPortal; }
7737
7559
  });
7738
7560
  Object.defineProperty(exports, "DropdownMenuRadioGroup", {
7739
7561
  enumerable: true,
7740
- get: function () { return chunk5DV7FW6T_cjs.DropdownMenuRadioGroup; }
7562
+ get: function () { return chunkZYHVJM4V_cjs.DropdownMenuRadioGroup; }
7741
7563
  });
7742
7564
  Object.defineProperty(exports, "DropdownMenuRadioItem", {
7743
7565
  enumerable: true,
7744
- get: function () { return chunk5DV7FW6T_cjs.DropdownMenuRadioItem; }
7566
+ get: function () { return chunkZYHVJM4V_cjs.DropdownMenuRadioItem; }
7745
7567
  });
7746
7568
  Object.defineProperty(exports, "DropdownMenuSeparator", {
7747
7569
  enumerable: true,
7748
- get: function () { return chunk5DV7FW6T_cjs.DropdownMenuSeparator; }
7570
+ get: function () { return chunkZYHVJM4V_cjs.DropdownMenuSeparator; }
7749
7571
  });
7750
7572
  Object.defineProperty(exports, "DropdownMenuShortcut", {
7751
7573
  enumerable: true,
7752
- get: function () { return chunk5DV7FW6T_cjs.DropdownMenuShortcut; }
7574
+ get: function () { return chunkZYHVJM4V_cjs.DropdownMenuShortcut; }
7753
7575
  });
7754
7576
  Object.defineProperty(exports, "DropdownMenuSub", {
7755
7577
  enumerable: true,
7756
- get: function () { return chunk5DV7FW6T_cjs.DropdownMenuSub; }
7578
+ get: function () { return chunkZYHVJM4V_cjs.DropdownMenuSub; }
7757
7579
  });
7758
7580
  Object.defineProperty(exports, "DropdownMenuSubContent", {
7759
7581
  enumerable: true,
7760
- get: function () { return chunk5DV7FW6T_cjs.DropdownMenuSubContent; }
7582
+ get: function () { return chunkZYHVJM4V_cjs.DropdownMenuSubContent; }
7761
7583
  });
7762
7584
  Object.defineProperty(exports, "DropdownMenuSubTrigger", {
7763
7585
  enumerable: true,
7764
- get: function () { return chunk5DV7FW6T_cjs.DropdownMenuSubTrigger; }
7586
+ get: function () { return chunkZYHVJM4V_cjs.DropdownMenuSubTrigger; }
7765
7587
  });
7766
7588
  Object.defineProperty(exports, "DropdownMenuTrigger", {
7767
7589
  enumerable: true,
7768
- get: function () { return chunk5DV7FW6T_cjs.DropdownMenuTrigger; }
7590
+ get: function () { return chunkZYHVJM4V_cjs.DropdownMenuTrigger; }
7769
7591
  });
7770
7592
  Object.defineProperty(exports, "HoverCard", {
7771
7593
  enumerable: true,
7772
- get: function () { return chunk5DV7FW6T_cjs.HoverCard; }
7594
+ get: function () { return chunkZYHVJM4V_cjs.HoverCard; }
7773
7595
  });
7774
7596
  Object.defineProperty(exports, "HoverCardContent", {
7775
7597
  enumerable: true,
7776
- get: function () { return chunk5DV7FW6T_cjs.HoverCardContent; }
7598
+ get: function () { return chunkZYHVJM4V_cjs.HoverCardContent; }
7777
7599
  });
7778
7600
  Object.defineProperty(exports, "HoverCardTrigger", {
7779
7601
  enumerable: true,
7780
- get: function () { return chunk5DV7FW6T_cjs.HoverCardTrigger; }
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; }
7781
7611
  });
7782
7612
  Object.defineProperty(exports, "Input", {
7783
7613
  enumerable: true,
7784
- get: function () { return chunk5DV7FW6T_cjs.Input; }
7614
+ get: function () { return chunkZYHVJM4V_cjs.Input; }
7785
7615
  });
7786
7616
  Object.defineProperty(exports, "Label", {
7787
7617
  enumerable: true,
7788
- get: function () { return chunk5DV7FW6T_cjs.Label; }
7618
+ get: function () { return chunkZYHVJM4V_cjs.Label; }
7789
7619
  });
7790
7620
  Object.defineProperty(exports, "MarkdownRenderer", {
7791
7621
  enumerable: true,
7792
- get: function () { return chunk5DV7FW6T_cjs.MarkdownRenderer; }
7622
+ get: function () { return chunkZYHVJM4V_cjs.MarkdownRenderer; }
7793
7623
  });
7794
7624
  Object.defineProperty(exports, "MarkdownStreamingContext", {
7795
7625
  enumerable: true,
7796
- get: function () { return chunk5DV7FW6T_cjs.MarkdownStreamingContext; }
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; }
7797
7635
  });
7798
7636
  Object.defineProperty(exports, "Popover", {
7799
7637
  enumerable: true,
7800
- get: function () { return chunk5DV7FW6T_cjs.Popover; }
7638
+ get: function () { return chunkZYHVJM4V_cjs.Popover; }
7801
7639
  });
7802
7640
  Object.defineProperty(exports, "PopoverAnchor", {
7803
7641
  enumerable: true,
7804
- get: function () { return chunk5DV7FW6T_cjs.PopoverAnchor; }
7642
+ get: function () { return chunkZYHVJM4V_cjs.PopoverAnchor; }
7805
7643
  });
7806
7644
  Object.defineProperty(exports, "PopoverContent", {
7807
7645
  enumerable: true,
7808
- get: function () { return chunk5DV7FW6T_cjs.PopoverContent; }
7646
+ get: function () { return chunkZYHVJM4V_cjs.PopoverContent; }
7809
7647
  });
7810
7648
  Object.defineProperty(exports, "PopoverTrigger", {
7811
7649
  enumerable: true,
7812
- get: function () { return chunk5DV7FW6T_cjs.PopoverTrigger; }
7650
+ get: function () { return chunkZYHVJM4V_cjs.PopoverTrigger; }
7813
7651
  });
7814
7652
  Object.defineProperty(exports, "Progress", {
7815
7653
  enumerable: true,
7816
- get: function () { return chunk5DV7FW6T_cjs.Progress; }
7654
+ get: function () { return chunkZYHVJM4V_cjs.Progress; }
7817
7655
  });
7818
7656
  Object.defineProperty(exports, "RadioGroup", {
7819
7657
  enumerable: true,
7820
- get: function () { return chunk5DV7FW6T_cjs.RadioGroup; }
7658
+ get: function () { return chunkZYHVJM4V_cjs.RadioGroup; }
7821
7659
  });
7822
7660
  Object.defineProperty(exports, "RadioGroupItem", {
7823
7661
  enumerable: true,
7824
- get: function () { return chunk5DV7FW6T_cjs.RadioGroupItem; }
7662
+ get: function () { return chunkZYHVJM4V_cjs.RadioGroupItem; }
7825
7663
  });
7826
7664
  Object.defineProperty(exports, "ScrollArea", {
7827
7665
  enumerable: true,
7828
- get: function () { return chunk5DV7FW6T_cjs.ScrollArea; }
7666
+ get: function () { return chunkZYHVJM4V_cjs.ScrollArea; }
7829
7667
  });
7830
7668
  Object.defineProperty(exports, "ScrollBar", {
7831
7669
  enumerable: true,
7832
- get: function () { return chunk5DV7FW6T_cjs.ScrollBar; }
7670
+ get: function () { return chunkZYHVJM4V_cjs.ScrollBar; }
7833
7671
  });
7834
7672
  Object.defineProperty(exports, "Select", {
7835
7673
  enumerable: true,
7836
- get: function () { return chunk5DV7FW6T_cjs.Select; }
7674
+ get: function () { return chunkZYHVJM4V_cjs.Select; }
7837
7675
  });
7838
7676
  Object.defineProperty(exports, "SelectContent", {
7839
7677
  enumerable: true,
7840
- get: function () { return chunk5DV7FW6T_cjs.SelectContent; }
7678
+ get: function () { return chunkZYHVJM4V_cjs.SelectContent; }
7841
7679
  });
7842
7680
  Object.defineProperty(exports, "SelectGroup", {
7843
7681
  enumerable: true,
7844
- get: function () { return chunk5DV7FW6T_cjs.SelectGroup; }
7682
+ get: function () { return chunkZYHVJM4V_cjs.SelectGroup; }
7845
7683
  });
7846
7684
  Object.defineProperty(exports, "SelectItem", {
7847
7685
  enumerable: true,
7848
- get: function () { return chunk5DV7FW6T_cjs.SelectItem; }
7686
+ get: function () { return chunkZYHVJM4V_cjs.SelectItem; }
7849
7687
  });
7850
7688
  Object.defineProperty(exports, "SelectLabel", {
7851
7689
  enumerable: true,
7852
- get: function () { return chunk5DV7FW6T_cjs.SelectLabel; }
7690
+ get: function () { return chunkZYHVJM4V_cjs.SelectLabel; }
7853
7691
  });
7854
7692
  Object.defineProperty(exports, "SelectScrollDownButton", {
7855
7693
  enumerable: true,
7856
- get: function () { return chunk5DV7FW6T_cjs.SelectScrollDownButton; }
7694
+ get: function () { return chunkZYHVJM4V_cjs.SelectScrollDownButton; }
7857
7695
  });
7858
7696
  Object.defineProperty(exports, "SelectScrollUpButton", {
7859
7697
  enumerable: true,
7860
- get: function () { return chunk5DV7FW6T_cjs.SelectScrollUpButton; }
7698
+ get: function () { return chunkZYHVJM4V_cjs.SelectScrollUpButton; }
7861
7699
  });
7862
7700
  Object.defineProperty(exports, "SelectSeparator", {
7863
7701
  enumerable: true,
7864
- get: function () { return chunk5DV7FW6T_cjs.SelectSeparator; }
7702
+ get: function () { return chunkZYHVJM4V_cjs.SelectSeparator; }
7865
7703
  });
7866
7704
  Object.defineProperty(exports, "SelectTrigger", {
7867
7705
  enumerable: true,
7868
- get: function () { return chunk5DV7FW6T_cjs.SelectTrigger; }
7706
+ get: function () { return chunkZYHVJM4V_cjs.SelectTrigger; }
7869
7707
  });
7870
7708
  Object.defineProperty(exports, "SelectValue", {
7871
7709
  enumerable: true,
7872
- get: function () { return chunk5DV7FW6T_cjs.SelectValue; }
7710
+ get: function () { return chunkZYHVJM4V_cjs.SelectValue; }
7873
7711
  });
7874
7712
  Object.defineProperty(exports, "Separator", {
7875
7713
  enumerable: true,
7876
- get: function () { return chunk5DV7FW6T_cjs.Separator; }
7714
+ get: function () { return chunkZYHVJM4V_cjs.Separator; }
7877
7715
  });
7878
7716
  Object.defineProperty(exports, "Slider", {
7879
7717
  enumerable: true,
7880
- get: function () { return chunk5DV7FW6T_cjs.Slider; }
7718
+ get: function () { return chunkZYHVJM4V_cjs.Slider; }
7881
7719
  });
7882
7720
  Object.defineProperty(exports, "Switch", {
7883
7721
  enumerable: true,
7884
- get: function () { return chunk5DV7FW6T_cjs.Switch; }
7722
+ get: function () { return chunkZYHVJM4V_cjs.Switch; }
7885
7723
  });
7886
7724
  Object.defineProperty(exports, "Table", {
7887
7725
  enumerable: true,
7888
- get: function () { return chunk5DV7FW6T_cjs.Table; }
7726
+ get: function () { return chunkZYHVJM4V_cjs.Table; }
7889
7727
  });
7890
7728
  Object.defineProperty(exports, "TableBody", {
7891
7729
  enumerable: true,
7892
- get: function () { return chunk5DV7FW6T_cjs.TableBody; }
7730
+ get: function () { return chunkZYHVJM4V_cjs.TableBody; }
7893
7731
  });
7894
7732
  Object.defineProperty(exports, "TableCaption", {
7895
7733
  enumerable: true,
7896
- get: function () { return chunk5DV7FW6T_cjs.TableCaption; }
7734
+ get: function () { return chunkZYHVJM4V_cjs.TableCaption; }
7897
7735
  });
7898
7736
  Object.defineProperty(exports, "TableCell", {
7899
7737
  enumerable: true,
7900
- get: function () { return chunk5DV7FW6T_cjs.TableCell; }
7738
+ get: function () { return chunkZYHVJM4V_cjs.TableCell; }
7901
7739
  });
7902
7740
  Object.defineProperty(exports, "TableFooter", {
7903
7741
  enumerable: true,
7904
- get: function () { return chunk5DV7FW6T_cjs.TableFooter; }
7742
+ get: function () { return chunkZYHVJM4V_cjs.TableFooter; }
7905
7743
  });
7906
7744
  Object.defineProperty(exports, "TableHead", {
7907
7745
  enumerable: true,
7908
- get: function () { return chunk5DV7FW6T_cjs.TableHead; }
7746
+ get: function () { return chunkZYHVJM4V_cjs.TableHead; }
7909
7747
  });
7910
7748
  Object.defineProperty(exports, "TableHeader", {
7911
7749
  enumerable: true,
7912
- get: function () { return chunk5DV7FW6T_cjs.TableHeader; }
7750
+ get: function () { return chunkZYHVJM4V_cjs.TableHeader; }
7913
7751
  });
7914
7752
  Object.defineProperty(exports, "TableRow", {
7915
7753
  enumerable: true,
7916
- get: function () { return chunk5DV7FW6T_cjs.TableRow; }
7754
+ get: function () { return chunkZYHVJM4V_cjs.TableRow; }
7917
7755
  });
7918
7756
  Object.defineProperty(exports, "Tabs", {
7919
7757
  enumerable: true,
7920
- get: function () { return chunk5DV7FW6T_cjs.Tabs; }
7758
+ get: function () { return chunkZYHVJM4V_cjs.Tabs; }
7921
7759
  });
7922
7760
  Object.defineProperty(exports, "TabsContent", {
7923
7761
  enumerable: true,
7924
- get: function () { return chunk5DV7FW6T_cjs.TabsContent; }
7762
+ get: function () { return chunkZYHVJM4V_cjs.TabsContent; }
7925
7763
  });
7926
7764
  Object.defineProperty(exports, "TabsList", {
7927
7765
  enumerable: true,
7928
- get: function () { return chunk5DV7FW6T_cjs.TabsList; }
7766
+ get: function () { return chunkZYHVJM4V_cjs.TabsList; }
7929
7767
  });
7930
7768
  Object.defineProperty(exports, "TabsTrigger", {
7931
7769
  enumerable: true,
7932
- get: function () { return chunk5DV7FW6T_cjs.TabsTrigger; }
7770
+ get: function () { return chunkZYHVJM4V_cjs.TabsTrigger; }
7933
7771
  });
7934
7772
  Object.defineProperty(exports, "Textarea", {
7935
7773
  enumerable: true,
7936
- get: function () { return chunk5DV7FW6T_cjs.Textarea; }
7774
+ get: function () { return chunkZYHVJM4V_cjs.Textarea; }
7937
7775
  });
7938
7776
  Object.defineProperty(exports, "Toggle", {
7939
7777
  enumerable: true,
7940
- get: function () { return chunk5DV7FW6T_cjs.Toggle; }
7778
+ get: function () { return chunkZYHVJM4V_cjs.Toggle; }
7941
7779
  });
7942
7780
  Object.defineProperty(exports, "ToggleGroup", {
7943
7781
  enumerable: true,
7944
- get: function () { return chunk5DV7FW6T_cjs.ToggleGroup; }
7782
+ get: function () { return chunkZYHVJM4V_cjs.ToggleGroup; }
7945
7783
  });
7946
7784
  Object.defineProperty(exports, "ToggleGroupItem", {
7947
7785
  enumerable: true,
7948
- get: function () { return chunk5DV7FW6T_cjs.ToggleGroupItem; }
7786
+ get: function () { return chunkZYHVJM4V_cjs.ToggleGroupItem; }
7949
7787
  });
7950
7788
  Object.defineProperty(exports, "Tooltip", {
7951
7789
  enumerable: true,
7952
- get: function () { return chunk5DV7FW6T_cjs.Tooltip; }
7790
+ get: function () { return chunkZYHVJM4V_cjs.Tooltip; }
7953
7791
  });
7954
7792
  Object.defineProperty(exports, "TooltipContent", {
7955
7793
  enumerable: true,
7956
- get: function () { return chunk5DV7FW6T_cjs.TooltipContent; }
7794
+ get: function () { return chunkZYHVJM4V_cjs.TooltipContent; }
7957
7795
  });
7958
7796
  Object.defineProperty(exports, "TooltipProvider", {
7959
7797
  enumerable: true,
7960
- get: function () { return chunk5DV7FW6T_cjs.TooltipProvider; }
7798
+ get: function () { return chunkZYHVJM4V_cjs.TooltipProvider; }
7961
7799
  });
7962
7800
  Object.defineProperty(exports, "TooltipTrigger", {
7963
7801
  enumerable: true,
7964
- get: function () { return chunk5DV7FW6T_cjs.TooltipTrigger; }
7802
+ get: function () { return chunkZYHVJM4V_cjs.TooltipTrigger; }
7965
7803
  });
7966
7804
  Object.defineProperty(exports, "badgeVariants", {
7967
7805
  enumerable: true,
7968
- get: function () { return chunk5DV7FW6T_cjs.badgeVariants; }
7806
+ get: function () { return chunkZYHVJM4V_cjs.badgeVariants; }
7969
7807
  });
7970
7808
  Object.defineProperty(exports, "buttonVariants", {
7971
7809
  enumerable: true,
7972
- get: function () { return chunk5DV7FW6T_cjs.buttonVariants; }
7810
+ get: function () { return chunkZYHVJM4V_cjs.buttonVariants; }
7973
7811
  });
7974
7812
  Object.defineProperty(exports, "cardVariants", {
7975
7813
  enumerable: true,
7976
- get: function () { return chunk5DV7FW6T_cjs.cardVariants; }
7814
+ get: function () { return chunkZYHVJM4V_cjs.cardVariants; }
7977
7815
  });
7978
7816
  Object.defineProperty(exports, "cn", {
7979
7817
  enumerable: true,
7980
- get: function () { return chunk5DV7FW6T_cjs.cn; }
7818
+ get: function () { return chunkZYHVJM4V_cjs.cn; }
7819
+ });
7820
+ Object.defineProperty(exports, "formatElapsed", {
7821
+ enumerable: true,
7822
+ get: function () { return chunkZYHVJM4V_cjs.formatElapsed; }
7981
7823
  });
7982
7824
  Object.defineProperty(exports, "markdownBaseComponents", {
7983
7825
  enumerable: true,
7984
- get: function () { return chunk5DV7FW6T_cjs.markdownBaseComponents; }
7826
+ get: function () { return chunkZYHVJM4V_cjs.markdownBaseComponents; }
7985
7827
  });
7986
7828
  Object.defineProperty(exports, "splitMarkdownBlocks", {
7987
7829
  enumerable: true,
7988
- get: function () { return chunk5DV7FW6T_cjs.splitMarkdownBlocks; }
7830
+ get: function () { return chunkZYHVJM4V_cjs.splitMarkdownBlocks; }
7989
7831
  });
7990
7832
  Object.defineProperty(exports, "toggleVariants", {
7991
7833
  enumerable: true,
7992
- get: function () { return chunk5DV7FW6T_cjs.toggleVariants; }
7834
+ get: function () { return chunkZYHVJM4V_cjs.toggleVariants; }
7835
+ });
7836
+ Object.defineProperty(exports, "useAudioRecorder", {
7837
+ enumerable: true,
7838
+ get: function () { return chunkZYHVJM4V_cjs.useAudioRecorder; }
7993
7839
  });
7994
7840
  Object.defineProperty(exports, "Arbi", {
7995
7841
  enumerable: true,
@@ -8042,6 +7888,7 @@ exports.DocumentEntity = DocumentEntity;
8042
7888
  exports.DocumentGallery = DocumentGallery;
8043
7889
  exports.DocumentReview = DocumentReview;
8044
7890
  exports.DocumentTable = DocumentTable;
7891
+ exports.DraftTitleControls = DraftTitleControls;
8045
7892
  exports.ENTITY_MAPPINGS = ENTITY_MAPPINGS;
8046
7893
  exports.EmlIcon = EmlIcon;
8047
7894
  exports.EntityIcon = EntityIcon;
@@ -8060,7 +7907,6 @@ exports.LinkedInIcon = LinkedInIcon;
8060
7907
  exports.MessageArtifactCard = MessageArtifactCard;
8061
7908
  exports.MessageBubble = MessageBubble2;
8062
7909
  exports.MessageThread = MessageThread;
8063
- exports.MicWaveformIndicator = MicWaveformIndicator;
8064
7910
  exports.NEUTRAL_GRAY = NEUTRAL_GRAY2;
8065
7911
  exports.NotificationBell = NotificationBell;
8066
7912
  exports.OpenAIIcon = OpenAIIcon;
@@ -8096,7 +7942,6 @@ exports.configureStatusRegistry = configureStatusRegistry;
8096
7942
  exports.cropImage = cropImage;
8097
7943
  exports.dayKey = dayKey;
8098
7944
  exports.describeActivity = describeActivity;
8099
- exports.formatElapsed = formatElapsed;
8100
7945
  exports.formatRelativeTime = formatRelativeTime;
8101
7946
  exports.getDocIcon = getDocIcon;
8102
7947
  exports.getEntityColor = getEntityColor2;
@@ -8133,7 +7978,6 @@ exports.useArbiWsStore = useArbiWsStore;
8133
7978
  exports.useArbiWsTask = useArbiWsTask;
8134
7979
  exports.useArbiWsTasks = useArbiWsTasks;
8135
7980
  exports.useAssistantQuery = useAssistantQuery;
8136
- exports.useAudioRecorder = useAudioRecorder;
8137
7981
  exports.useCommandPalette = useCommandPalette;
8138
7982
  exports.useConfigs = useConfigs;
8139
7983
  exports.useConversations = useConversations;