@arbidocs/react 0.3.185 → 0.4.1

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.
Files changed (41) hide show
  1. package/dist/{chunk-YJAYST7S.js → chunk-3CLGHHME.js} +880 -240
  2. package/dist/chunk-3CLGHHME.js.map +1 -0
  3. package/dist/chunk-6ALMBER7.js +176 -0
  4. package/dist/chunk-6ALMBER7.js.map +1 -0
  5. package/dist/chunk-BXP6S34V.cjs +284 -0
  6. package/dist/chunk-BXP6S34V.cjs.map +1 -0
  7. package/dist/chunk-EJ2BMHYK.js +272 -0
  8. package/dist/chunk-EJ2BMHYK.js.map +1 -0
  9. package/dist/{chunk-IZPXHVPJ.cjs → chunk-OU2QLIKS.cjs} +969 -344
  10. package/dist/chunk-OU2QLIKS.cjs.map +1 -0
  11. package/dist/chunk-RZQACYNQ.cjs +218 -0
  12. package/dist/chunk-RZQACYNQ.cjs.map +1 -0
  13. package/dist/{index-4WwLZsQO.d.cts → index-CcbVSNSP.d.cts} +40 -2
  14. package/dist/{index-4WwLZsQO.d.ts → index-CcbVSNSP.d.ts} +40 -2
  15. package/dist/index.cjs +589 -1070
  16. package/dist/index.cjs.map +1 -1
  17. package/dist/index.d.cts +11 -155
  18. package/dist/index.d.ts +11 -155
  19. package/dist/index.js +223 -725
  20. package/dist/index.js.map +1 -1
  21. package/dist/shell/index.cjs +13 -4
  22. package/dist/shell/index.d.cts +1 -1
  23. package/dist/shell/index.d.ts +1 -1
  24. package/dist/shell/index.js +2 -1
  25. package/dist/ui/index.cjs +211 -190
  26. package/dist/ui/index.d.cts +204 -3
  27. package/dist/ui/index.d.ts +204 -3
  28. package/dist/ui/index.js +2 -1
  29. package/dist/viewers/index.cjs +327 -76
  30. package/dist/viewers/index.cjs.map +1 -1
  31. package/dist/viewers/index.d.cts +90 -4
  32. package/dist/viewers/index.d.ts +90 -4
  33. package/dist/viewers/index.js +316 -78
  34. package/dist/viewers/index.js.map +1 -1
  35. package/package.json +4 -3
  36. package/dist/chunk-3MLQUKT4.cjs +0 -97
  37. package/dist/chunk-3MLQUKT4.cjs.map +0 -1
  38. package/dist/chunk-IZPXHVPJ.cjs.map +0 -1
  39. package/dist/chunk-J3XEKOV5.js +0 -87
  40. package/dist/chunk-J3XEKOV5.js.map +0 -1
  41. package/dist/chunk-YJAYST7S.js.map +0 -1
package/dist/index.cjs CHANGED
@@ -1,7 +1,8 @@
1
1
  'use strict';
2
2
 
3
- var chunk3MLQUKT4_cjs = require('./chunk-3MLQUKT4.cjs');
4
- var chunkIZPXHVPJ_cjs = require('./chunk-IZPXHVPJ.cjs');
3
+ var chunkBXP6S34V_cjs = require('./chunk-BXP6S34V.cjs');
4
+ var chunkOU2QLIKS_cjs = require('./chunk-OU2QLIKS.cjs');
5
+ var chunkRZQACYNQ_cjs = require('./chunk-RZQACYNQ.cjs');
5
6
  var chunk7IOCMCC5_cjs = require('./chunk-7IOCMCC5.cjs');
6
7
  var React = require('react');
7
8
  var reactQuery = require('@tanstack/react-query');
@@ -12,6 +13,7 @@ var client = require('@arbidocs/client');
12
13
  var zustand = require('zustand');
13
14
  var diff = require('diff');
14
15
  var framerMotion = require('framer-motion');
16
+ var reactDom = require('react-dom');
15
17
  var ReactMarkdown = require('react-markdown');
16
18
  var Cropper = require('react-easy-crop');
17
19
  var agGridReact = require('ag-grid-react');
@@ -989,7 +991,7 @@ function MessageBubble({ message, theme }) {
989
991
  [theme]
990
992
  );
991
993
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
992
- /* @__PURE__ */ jsxRuntime.jsx("div", { style: messageBubbleStyle(theme, message.role), children: /* @__PURE__ */ jsxRuntime.jsx(chunkIZPXHVPJ_cjs.MarkdownRenderer, { components: markdownComponents, children: message.text }) }),
994
+ /* @__PURE__ */ jsxRuntime.jsx("div", { style: messageBubbleStyle(theme, message.role), children: /* @__PURE__ */ jsxRuntime.jsx(chunkOU2QLIKS_cjs.MarkdownRenderer, { components: markdownComponents, children: message.text }) }),
993
995
  activeSummary && activeResolved && /* @__PURE__ */ jsxRuntime.jsxs("div", { style: citePanelStyle(theme), children: [
994
996
  /* @__PURE__ */ jsxRuntime.jsxs("div", { style: citePanelHeaderStyle(theme), children: [
995
997
  /* @__PURE__ */ jsxRuntime.jsxs("strong", { children: [
@@ -1373,12 +1375,12 @@ var ChatBubble = React.memo(function ChatBubble2({
1373
1375
  }
1374
1376
  );
1375
1377
  }
1376
- const bubbleRadius = chunkIZPXHVPJ_cjs.cn(
1378
+ const bubbleRadius = chunkRZQACYNQ_cjs.cn(
1377
1379
  "rounded-2xl",
1378
1380
  isSent && isLastOfRun && "rounded-br-sm",
1379
1381
  !isSent && isLastOfRun && "rounded-bl-sm"
1380
1382
  );
1381
- const bubbleSurface = isSent ? chunkIZPXHVPJ_cjs.cn("bg-ai-accent-soft text-foreground chat-bubble-sent", classNames?.ownBubble) : chunkIZPXHVPJ_cjs.cn("border border-border bg-card text-card-foreground", classNames?.peerBubble);
1383
+ const bubbleSurface = isSent ? chunkRZQACYNQ_cjs.cn("bg-ai-accent-soft text-foreground chat-bubble-sent", classNames?.ownBubble) : chunkRZQACYNQ_cjs.cn("border border-border bg-card text-card-foreground", classNames?.peerBubble);
1382
1384
  const highlightClass = highlighted && "ring-2 ring-blue-400 dark:ring-blue-600";
1383
1385
  const copyLinkButton = onCopyLink && /* @__PURE__ */ jsxRuntime.jsx(
1384
1386
  "button",
@@ -1386,7 +1388,7 @@ var ChatBubble = React.memo(function ChatBubble2({
1386
1388
  onClick: onCopyLink,
1387
1389
  onFocus: () => setIsFocused(true),
1388
1390
  onBlur: () => setIsFocused(false),
1389
- className: chunkIZPXHVPJ_cjs.cn(
1391
+ className: chunkRZQACYNQ_cjs.cn(
1390
1392
  "self-end p-1 transition-opacity focus:outline-none focus-visible:ring-1 focus-visible:ring-ring rounded",
1391
1393
  showActions ? "opacity-100 text-foreground" : "opacity-0 text-muted-foreground"
1392
1394
  ),
@@ -1399,7 +1401,7 @@ var ChatBubble = React.memo(function ChatBubble2({
1399
1401
  {
1400
1402
  id,
1401
1403
  "data-testid": testId,
1402
- className: chunkIZPXHVPJ_cjs.cn(
1404
+ className: chunkRZQACYNQ_cjs.cn(
1403
1405
  "flex w-full items-end",
1404
1406
  isLastOfRun ? "mb-2" : "mb-0.5",
1405
1407
  isSent ? "justify-end" : "justify-start"
@@ -1415,7 +1417,7 @@ var ChatBubble = React.memo(function ChatBubble2({
1415
1417
  onClick: onDelete,
1416
1418
  onFocus: () => setIsFocused(true),
1417
1419
  onBlur: () => setIsFocused(false),
1418
- className: chunkIZPXHVPJ_cjs.cn(
1420
+ className: chunkRZQACYNQ_cjs.cn(
1419
1421
  "self-end p-1 transition-opacity focus:outline-none focus-visible:ring-1 focus-visible:ring-ring rounded",
1420
1422
  showActions ? "opacity-100 text-destructive" : "opacity-0 text-muted-foreground"
1421
1423
  ),
@@ -1427,7 +1429,7 @@ var ChatBubble = React.memo(function ChatBubble2({
1427
1429
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-col max-w-[80%] md:max-w-[60%]", children: /* @__PURE__ */ jsxRuntime.jsxs(
1428
1430
  "div",
1429
1431
  {
1430
- className: chunkIZPXHVPJ_cjs.cn(
1432
+ className: chunkRZQACYNQ_cjs.cn(
1431
1433
  "px-3.5 py-2 break-words shadow-sm transition-shadow",
1432
1434
  bubbleRadius,
1433
1435
  bubbleSurface,
@@ -1438,13 +1440,13 @@ var ChatBubble = React.memo(function ChatBubble2({
1438
1440
  isLastOfRun && /* @__PURE__ */ jsxRuntime.jsxs(
1439
1441
  "div",
1440
1442
  {
1441
- className: chunkIZPXHVPJ_cjs.cn(
1443
+ className: chunkRZQACYNQ_cjs.cn(
1442
1444
  "flex items-center gap-1.5 mt-0.5",
1443
1445
  isSent ? "justify-end" : "justify-start"
1444
1446
  ),
1445
1447
  children: [
1446
- senderName && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[11px] font-medium leading-none opacity-90", children: senderName }),
1447
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[11px] leading-none opacity-70", children: formatTimestamp(timestamp) }),
1448
+ senderName && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-xs font-medium leading-none opacity-90", children: senderName }),
1449
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-xs leading-none opacity-70", children: formatTimestamp(timestamp) }),
1448
1450
  isSent && (read ? /* @__PURE__ */ jsxRuntime.jsx(lucideReact.CheckCheck, { className: "w-3.5 h-3.5 flex-shrink-0 opacity-80" }) : /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Check, { className: "w-3.5 h-3.5 flex-shrink-0 opacity-60" }))
1449
1451
  ]
1450
1452
  }
@@ -1459,7 +1461,7 @@ var ChatBubble = React.memo(function ChatBubble2({
1459
1461
  onClick: onDelete,
1460
1462
  onFocus: () => setIsFocused(true),
1461
1463
  onBlur: () => setIsFocused(false),
1462
- className: chunkIZPXHVPJ_cjs.cn(
1464
+ className: chunkRZQACYNQ_cjs.cn(
1463
1465
  "self-end p-1 transition-opacity focus:outline-none focus-visible:ring-1 focus-visible:ring-ring rounded",
1464
1466
  showActions ? "opacity-100 text-destructive" : "opacity-0 text-muted-foreground"
1465
1467
  ),
@@ -1812,9 +1814,9 @@ function AiAnswer({
1812
1814
  setTimeout(() => setCopied(false), 1600);
1813
1815
  };
1814
1816
  if (status === "idle" && !hasText) {
1815
- return emptyHint ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: chunkIZPXHVPJ_cjs.cn("text-sm text-muted-foreground", className), "data-testid": `${testId}-empty`, children: emptyHint }) : null;
1817
+ return emptyHint ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: chunkRZQACYNQ_cjs.cn("text-sm text-muted-foreground", className), "data-testid": `${testId}-empty`, children: emptyHint }) : null;
1816
1818
  }
1817
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: chunkIZPXHVPJ_cjs.cn("space-y-3", className), "data-testid": testId, "data-status": status, children: [
1819
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: chunkRZQACYNQ_cjs.cn("space-y-3", className), "data-testid": testId, "data-status": status, children: [
1818
1820
  running && /* @__PURE__ */ jsxRuntime.jsxs(
1819
1821
  "div",
1820
1822
  {
@@ -1838,7 +1840,7 @@ function AiAnswer({
1838
1840
  }
1839
1841
  ),
1840
1842
  hasText && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
1841
- /* @__PURE__ */ jsxRuntime.jsx(chunkIZPXHVPJ_cjs.AiMarkdown, { isStreaming: running, children: text }),
1843
+ /* @__PURE__ */ jsxRuntime.jsx(chunkOU2QLIKS_cjs.AiMarkdown, { isStreaming: running, children: text }),
1842
1844
  !running && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between border-t border-border pt-2.5", children: [
1843
1845
  /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "inline-flex items-center gap-1.5 text-xs text-muted-foreground", children: [
1844
1846
  /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ShieldCheck, { className: "size-3.5 text-ai-accent" }),
@@ -1883,7 +1885,7 @@ function AiActionCard({
1883
1885
  const p = typeof prompt === "function" ? prompt() : prompt;
1884
1886
  void task.run(p, docIds);
1885
1887
  };
1886
- return /* @__PURE__ */ jsxRuntime.jsxs(chunkIZPXHVPJ_cjs.Card, { variant: "elevated", className: "rounded-xl p-5", "data-testid": testId, children: [
1888
+ return /* @__PURE__ */ jsxRuntime.jsxs(chunkOU2QLIKS_cjs.Card, { variant: "elevated", className: "rounded-xl p-5", "data-testid": testId, children: [
1887
1889
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start justify-between gap-4", children: [
1888
1890
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start gap-3", children: [
1889
1891
  /* @__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 +1895,7 @@ function AiActionCard({
1893
1895
  ] })
1894
1896
  ] }),
1895
1897
  /* @__PURE__ */ jsxRuntime.jsxs(
1896
- chunkIZPXHVPJ_cjs.Button,
1898
+ chunkOU2QLIKS_cjs.Button,
1897
1899
  {
1898
1900
  variant: task.isDone ? "outline" : "accent",
1899
1901
  size: "sm",
@@ -1940,7 +1942,7 @@ function ArtifactCanvas({
1940
1942
  return /* @__PURE__ */ jsxRuntime.jsxs(
1941
1943
  "div",
1942
1944
  {
1943
- className: chunkIZPXHVPJ_cjs.cn(
1945
+ className: chunkRZQACYNQ_cjs.cn(
1944
1946
  "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
1947
  className
1946
1948
  ),
@@ -1956,7 +1958,7 @@ function ArtifactCanvas({
1956
1958
  return /* @__PURE__ */ jsxRuntime.jsxs(
1957
1959
  "div",
1958
1960
  {
1959
- className: chunkIZPXHVPJ_cjs.cn(
1961
+ className: chunkRZQACYNQ_cjs.cn(
1960
1962
  "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
1963
  className
1962
1964
  ),
@@ -1977,7 +1979,7 @@ function ArtifactCanvas({
1977
1979
  return /* @__PURE__ */ jsxRuntime.jsxs(
1978
1980
  "div",
1979
1981
  {
1980
- className: chunkIZPXHVPJ_cjs.cn(
1982
+ className: chunkRZQACYNQ_cjs.cn(
1981
1983
  "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
1984
  className
1983
1985
  ),
@@ -2009,7 +2011,7 @@ function ArtifactCanvas({
2009
2011
  return /* @__PURE__ */ jsxRuntime.jsxs(
2010
2012
  "div",
2011
2013
  {
2012
- className: chunkIZPXHVPJ_cjs.cn(
2014
+ className: chunkRZQACYNQ_cjs.cn(
2013
2015
  "flex h-full flex-col overflow-hidden rounded-xl border border-border bg-card",
2014
2016
  className
2015
2017
  ),
@@ -2025,11 +2027,11 @@ function ArtifactCanvas({
2025
2027
  children: active.title
2026
2028
  }
2027
2029
  ),
2028
- isRedline && /* @__PURE__ */ jsxRuntime.jsxs(chunkIZPXHVPJ_cjs.Badge, { variant: "accent", className: "gap-1", children: [
2030
+ isRedline && /* @__PURE__ */ jsxRuntime.jsxs(chunkOU2QLIKS_cjs.Badge, { variant: "accent", className: "gap-1", children: [
2029
2031
  /* @__PURE__ */ jsxRuntime.jsx(lucideReact.GitCompareArrows, { className: "size-3" }),
2030
2032
  " Redline"
2031
2033
  ] }),
2032
- /* @__PURE__ */ jsxRuntime.jsxs(chunkIZPXHVPJ_cjs.Badge, { variant: "secondary", children: [
2034
+ /* @__PURE__ */ jsxRuntime.jsxs(chunkOU2QLIKS_cjs.Badge, { variant: "secondary", children: [
2033
2035
  "v",
2034
2036
  active.version
2035
2037
  ] }),
@@ -2070,7 +2072,7 @@ function ArtifactCanvas({
2070
2072
  "button",
2071
2073
  {
2072
2074
  onClick: () => setActiveId(a.doc_ext_id),
2073
- className: chunkIZPXHVPJ_cjs.cn(
2075
+ className: chunkRZQACYNQ_cjs.cn(
2074
2076
  "shrink-0 rounded-md px-2.5 py-1 text-xs font-medium",
2075
2077
  a.doc_ext_id === active.doc_ext_id ? "bg-ai-accent-soft text-ai-accent" : "text-muted-foreground hover:bg-accent"
2076
2078
  ),
@@ -2085,7 +2087,7 @@ function ArtifactCanvas({
2085
2087
  animate: { opacity: 1, y: 0 },
2086
2088
  transition: { duration: 0.2 },
2087
2089
  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(chunkIZPXHVPJ_cjs.AiMarkdown, { children: active.content })
2090
+ children: active.mode === "html" ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-sm", dangerouslySetInnerHTML: { __html: active.content } }) : active.mode === "text" ? /* @__PURE__ */ jsxRuntime.jsx("pre", { className: "whitespace-pre-wrap font-mono text-xs text-foreground", children: active.content }) : /* @__PURE__ */ jsxRuntime.jsx(chunkOU2QLIKS_cjs.AiMarkdown, { children: active.content })
2089
2091
  },
2090
2092
  active.doc_ext_id
2091
2093
  ) }) })
@@ -2102,7 +2104,7 @@ function MessageArtifactCard({
2102
2104
  const Icon = isImage ? lucideReact.Image : lucideReact.FileText;
2103
2105
  const statusText = isImage ? isComplete ? "Image ready" : "Generating\u2026" : isComplete ? "Draft ready" : "Drafting\u2026";
2104
2106
  return /* @__PURE__ */ jsxRuntime.jsxs(
2105
- chunkIZPXHVPJ_cjs.Card,
2107
+ chunkOU2QLIKS_cjs.Card,
2106
2108
  {
2107
2109
  variant: "outline",
2108
2110
  className: "mt-3 flex items-center gap-3 px-3 py-2.5",
@@ -2145,7 +2147,7 @@ function DocSearch({
2145
2147
  const submit = () => {
2146
2148
  if (value.trim()) void search(value, "hybrid");
2147
2149
  };
2148
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: chunkIZPXHVPJ_cjs.cn("space-y-3", className), "data-testid": "doc-search", children: [
2150
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: chunkRZQACYNQ_cjs.cn("space-y-3", className), "data-testid": "doc-search", children: [
2149
2151
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative", children: [
2150
2152
  /* @__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
2153
  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 +2180,10 @@ function DocSearch({
2178
2180
  status === "done" && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-2", "data-testid": "doc-search-results", children: [
2179
2181
  /* @__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
2182
  results.slice(0, 8).map((r, i) => /* @__PURE__ */ jsxRuntime.jsxs(
2181
- chunkIZPXHVPJ_cjs.Card,
2183
+ chunkOU2QLIKS_cjs.Card,
2182
2184
  {
2183
2185
  variant: "elevated",
2184
- className: chunkIZPXHVPJ_cjs.cn(
2186
+ className: chunkRZQACYNQ_cjs.cn(
2185
2187
  "rounded-xl p-3",
2186
2188
  onOpenDoc && r.docId && "cursor-pointer transition-colors hover:border-ai-accent/40"
2187
2189
  ),
@@ -2191,11 +2193,11 @@ function DocSearch({
2191
2193
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-1 flex items-center gap-2", children: [
2192
2194
  /* @__PURE__ */ jsxRuntime.jsx(lucideReact.FileText, { className: "size-3.5 text-ai-accent" }),
2193
2195
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "truncate text-xs font-medium text-foreground", children: r.docTitle ?? "Document" }),
2194
- r.page != null && /* @__PURE__ */ jsxRuntime.jsxs(chunkIZPXHVPJ_cjs.Badge, { variant: "secondary", children: [
2196
+ r.page != null && /* @__PURE__ */ jsxRuntime.jsxs(chunkOU2QLIKS_cjs.Badge, { variant: "secondary", children: [
2195
2197
  "p.",
2196
2198
  r.page
2197
2199
  ] }),
2198
- r.score != null && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "ml-auto text-[10px] text-muted-foreground", children: [
2200
+ r.score != null && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "ml-auto text-xs text-muted-foreground", children: [
2199
2201
  "score ",
2200
2202
  r.score.toFixed(2)
2201
2203
  ] })
@@ -2272,7 +2274,7 @@ function DocumentReview({
2272
2274
  "div",
2273
2275
  {
2274
2276
  "data-testid": "document-review",
2275
- className: chunkIZPXHVPJ_cjs.cn(
2277
+ className: chunkRZQACYNQ_cjs.cn(
2276
2278
  "flex h-full min-h-0 flex-col overflow-hidden rounded-lg border bg-card",
2277
2279
  className
2278
2280
  ),
@@ -2285,7 +2287,7 @@ function DocumentReview({
2285
2287
  findings.length ? ` \xB7 ${findings.length} findings` : ""
2286
2288
  ] })
2287
2289
  ] }),
2288
- doc?.status ? /* @__PURE__ */ jsxRuntime.jsx(chunkIZPXHVPJ_cjs.Badge, { variant: "secondary", children: doc.status }) : null,
2290
+ doc?.status ? /* @__PURE__ */ jsxRuntime.jsx(chunkOU2QLIKS_cjs.Badge, { variant: "secondary", children: doc.status }) : null,
2289
2291
  onClose ? /* @__PURE__ */ jsxRuntime.jsx(
2290
2292
  "button",
2291
2293
  {
@@ -2322,7 +2324,7 @@ function DocumentReview({
2322
2324
  className: "w-full cursor-pointer rounded-md border p-2 text-left text-xs transition hover:border-ring hover:bg-muted/50 focus:outline-none focus-visible:ring-2 focus-visible:ring-ring",
2323
2325
  children: [
2324
2326
  /* @__PURE__ */ jsxRuntime.jsx(
2325
- chunkIZPXHVPJ_cjs.TagEntity,
2327
+ chunkOU2QLIKS_cjs.TagEntity,
2326
2328
  {
2327
2329
  size: "sm",
2328
2330
  tag: {
@@ -2356,7 +2358,7 @@ function DocumentReview({
2356
2358
  {
2357
2359
  "data-chunk-id": cid,
2358
2360
  "data-testid": isActive ? "review-chunk-active" : highlighted ? "review-chunk-cited" : "review-chunk",
2359
- className: chunkIZPXHVPJ_cjs.cn(
2361
+ className: chunkRZQACYNQ_cjs.cn(
2360
2362
  "scroll-mt-4 rounded-md px-2 py-1 transition-colors",
2361
2363
  highlighted && "bg-[var(--color-ai-accent-soft,theme(colors.amber.100))] ring-1 ring-inset ring-border",
2362
2364
  // The externally-selected search passage wins the
@@ -2367,7 +2369,7 @@ function DocumentReview({
2367
2369
  ),
2368
2370
  children: [
2369
2371
  highlighted ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-1", children: /* @__PURE__ */ jsxRuntime.jsx(
2370
- chunkIZPXHVPJ_cjs.TagEntity,
2372
+ chunkOU2QLIKS_cjs.TagEntity,
2371
2373
  {
2372
2374
  size: "sm",
2373
2375
  tag: {
@@ -2376,7 +2378,7 @@ function DocumentReview({
2376
2378
  }
2377
2379
  }
2378
2380
  ) }) : null,
2379
- /* @__PURE__ */ jsxRuntime.jsx(chunkIZPXHVPJ_cjs.MarkdownRenderer, { className: "prose prose-sm max-w-none dark:prose-invert", children: c.content })
2381
+ /* @__PURE__ */ jsxRuntime.jsx(chunkOU2QLIKS_cjs.MarkdownRenderer, { className: "prose prose-sm max-w-none dark:prose-invert", children: c.content })
2380
2382
  ]
2381
2383
  },
2382
2384
  cid ?? i
@@ -2388,79 +2390,6 @@ function DocumentReview({
2388
2390
  }
2389
2391
  );
2390
2392
  }
2391
- var TIERS = [
2392
- { min: 0.7, tone: "bg-emerald-500", label: "High relevance" },
2393
- { min: 0.4, tone: "bg-amber-500", label: "Medium relevance" },
2394
- { min: -Infinity, tone: "bg-muted-foreground/40", label: "Low relevance" }
2395
- ];
2396
- function RelevanceDot({ score }) {
2397
- if (score == null) return null;
2398
- const tier = TIERS.find((t) => score >= t.min) ?? TIERS[TIERS.length - 1];
2399
- return /* @__PURE__ */ jsxRuntime.jsx(
2400
- "span",
2401
- {
2402
- role: "img",
2403
- "aria-label": tier.label,
2404
- title: `${tier.label} (${score.toFixed(2)})`,
2405
- className: chunkIZPXHVPJ_cjs.cn("size-1.5 shrink-0 rounded-full", tier.tone),
2406
- "data-testid": "passage-relevance"
2407
- }
2408
- );
2409
- }
2410
- function PassageCard({
2411
- header,
2412
- score,
2413
- headerRight,
2414
- active,
2415
- onClick,
2416
- footer,
2417
- className,
2418
- children,
2419
- "data-testid": testId
2420
- }) {
2421
- const body = /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
2422
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-1.5 flex items-center gap-2", children: [
2423
- header,
2424
- (score != null || headerRight) && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ml-auto flex shrink-0 items-center gap-2", children: [
2425
- /* @__PURE__ */ jsxRuntime.jsx(RelevanceDot, { score }),
2426
- headerRight
2427
- ] })
2428
- ] }),
2429
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "[&_mark]:rounded-sm [&_mark]:bg-ai-accent/20 [&_mark]:px-0.5 [&_mark]:font-medium [&_mark]:text-foreground", children })
2430
- ] });
2431
- return /* @__PURE__ */ jsxRuntime.jsxs(
2432
- "div",
2433
- {
2434
- className: chunkIZPXHVPJ_cjs.cn(
2435
- "group rounded-lg border border-border bg-card p-3 text-left transition-colors",
2436
- onClick && "hover:border-ai-accent/40 focus-within:ring-2 focus-within:ring-ai-accent/40",
2437
- active && "border-ai-accent/60 ring-1 ring-ai-accent/30",
2438
- className
2439
- ),
2440
- children: [
2441
- onClick ? /* @__PURE__ */ jsxRuntime.jsx(
2442
- "div",
2443
- {
2444
- role: "button",
2445
- tabIndex: 0,
2446
- onClick,
2447
- onKeyDown: (e) => {
2448
- if (e.key === "Enter" || e.key === " ") {
2449
- e.preventDefault();
2450
- onClick(e);
2451
- }
2452
- },
2453
- "aria-current": active || void 0,
2454
- "data-testid": testId,
2455
- className: "cursor-pointer focus:outline-none",
2456
- children: body
2457
- }
2458
- ) : /* @__PURE__ */ jsxRuntime.jsx("div", { "aria-current": active || void 0, "data-testid": testId, children: body }),
2459
- footer
2460
- ]
2461
- }
2462
- );
2463
- }
2464
2393
  function queryTerms(query) {
2465
2394
  const terms = /* @__PURE__ */ new Set();
2466
2395
  for (const phrase of query.match(/"([^"]+)"/g) ?? []) {
@@ -2489,7 +2418,7 @@ function ResultRow({
2489
2418
  onSelect
2490
2419
  }) {
2491
2420
  return /* @__PURE__ */ jsxRuntime.jsx(
2492
- PassageCard,
2421
+ chunkOU2QLIKS_cjs.PassageCard,
2493
2422
  {
2494
2423
  onClick: onSelect,
2495
2424
  active: isActive,
@@ -2498,7 +2427,7 @@ function ResultRow({
2498
2427
  header: /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
2499
2428
  /* @__PURE__ */ jsxRuntime.jsx(lucideReact.FileText, { className: "size-3.5 shrink-0 text-ai-accent" }),
2500
2429
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "truncate text-xs font-medium text-foreground", children: result.docTitle ?? "Document" }),
2501
- result.page != null && /* @__PURE__ */ jsxRuntime.jsxs(chunkIZPXHVPJ_cjs.Badge, { variant: "secondary", children: [
2430
+ result.page != null && /* @__PURE__ */ jsxRuntime.jsxs(chunkOU2QLIKS_cjs.Badge, { variant: "secondary", children: [
2502
2431
  "p.",
2503
2432
  result.page
2504
2433
  ] })
@@ -2537,11 +2466,11 @@ function SemanticSearch({
2537
2466
  }, [value, search, searchMode]);
2538
2467
  const selectedDoc = selected?.docId ? docMap.get(selected.docId) : void 0;
2539
2468
  const hasResults = status === "done" && results.length > 0;
2540
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { "data-testid": testId, className: chunkIZPXHVPJ_cjs.cn("flex min-h-0 flex-col gap-4 md:flex-row", className), children: [
2469
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { "data-testid": testId, className: chunkRZQACYNQ_cjs.cn("flex min-h-0 flex-col gap-4 md:flex-row", className), children: [
2541
2470
  /* @__PURE__ */ jsxRuntime.jsxs(
2542
2471
  "div",
2543
2472
  {
2544
- className: chunkIZPXHVPJ_cjs.cn(
2473
+ className: chunkRZQACYNQ_cjs.cn(
2545
2474
  "flex min-h-0 flex-col gap-3 md:w-[22rem] md:shrink-0",
2546
2475
  selected && "hidden md:flex"
2547
2476
  ),
@@ -2604,11 +2533,11 @@ function SemanticSearch({
2604
2533
  /* @__PURE__ */ jsxRuntime.jsx(
2605
2534
  "div",
2606
2535
  {
2607
- className: chunkIZPXHVPJ_cjs.cn("min-h-0 min-w-0 flex-1", !selected && "hidden md:block"),
2536
+ className: chunkRZQACYNQ_cjs.cn("min-h-0 min-w-0 flex-1", !selected && "hidden md:block"),
2608
2537
  "data-testid": "arbi-semantic-search-viewer",
2609
2538
  children: selected && selected.docId ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex h-full min-h-0 flex-col gap-2", children: [
2610
2539
  /* @__PURE__ */ jsxRuntime.jsxs(
2611
- chunkIZPXHVPJ_cjs.Button,
2540
+ chunkOU2QLIKS_cjs.Button,
2612
2541
  {
2613
2542
  variant: "ghost",
2614
2543
  size: "sm",
@@ -2667,7 +2596,7 @@ Question: ${question}`,
2667
2596
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0 space-y-3", "data-testid": "doc-qa", children: [
2668
2597
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex min-w-0 items-center gap-2", children: [
2669
2598
  /* @__PURE__ */ jsxRuntime.jsx(
2670
- chunkIZPXHVPJ_cjs.Input,
2599
+ chunkOU2QLIKS_cjs.Input,
2671
2600
  {
2672
2601
  value: q,
2673
2602
  onChange: (e) => setQ(e.target.value),
@@ -2678,7 +2607,7 @@ Question: ${question}`,
2678
2607
  }
2679
2608
  ),
2680
2609
  /* @__PURE__ */ jsxRuntime.jsx(
2681
- chunkIZPXHVPJ_cjs.Button,
2610
+ chunkOU2QLIKS_cjs.Button,
2682
2611
  {
2683
2612
  variant: "accent",
2684
2613
  size: "icon",
@@ -2690,7 +2619,7 @@ Question: ${question}`,
2690
2619
  }
2691
2620
  ),
2692
2621
  /* @__PURE__ */ jsxRuntime.jsxs(
2693
- chunkIZPXHVPJ_cjs.Button,
2622
+ chunkOU2QLIKS_cjs.Button,
2694
2623
  {
2695
2624
  variant: "outline",
2696
2625
  size: "sm",
@@ -2752,7 +2681,8 @@ var CitationRendererComponent = ({
2752
2681
  onActivateChunk,
2753
2682
  useCitationState,
2754
2683
  onCloseCitation,
2755
- onDismissCitation
2684
+ onDismissCitation,
2685
+ notify: notify2
2756
2686
  }) => {
2757
2687
  const chunkMap = React.useMemo(() => {
2758
2688
  const map = /* @__PURE__ */ new Map();
@@ -2804,6 +2734,7 @@ var CitationRendererComponent = ({
2804
2734
  useCitationState,
2805
2735
  onCloseCitation,
2806
2736
  onDismissCitation,
2737
+ notify: notify2,
2807
2738
  children
2808
2739
  },
2809
2740
  citationKey
@@ -2821,9 +2752,10 @@ var CitationRendererComponent = ({
2821
2752
  ExternalLink,
2822
2753
  useCitationState,
2823
2754
  onCloseCitation,
2824
- onDismissCitation
2755
+ onDismissCitation,
2756
+ notify2
2825
2757
  ]);
2826
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: chunkIZPXHVPJ_cjs.cn("citation-container", className), "data-testid": "citation-renderer", children: renderMarkdown({ components: markdownComponents, isStreaming, children: content }) });
2758
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: chunkRZQACYNQ_cjs.cn("citation-container", className), "data-testid": "citation-renderer", children: renderMarkdown({ components: markdownComponents, isStreaming, children: content }) });
2827
2759
  };
2828
2760
  var CitationPopover = ({
2829
2761
  citationNum,
@@ -2835,28 +2767,51 @@ var CitationPopover = ({
2835
2767
  useCitationState,
2836
2768
  onCloseCitation,
2837
2769
  onDismissCitation,
2770
+ notify: notify2,
2838
2771
  children
2839
2772
  }) => {
2840
2773
  const { activeCitationKey, viewingPassageId, isOnConversationPage } = useCitationState();
2841
2774
  const isActive = activeCitationKey === `${messageId}-${citationNum}`;
2842
2775
  const open = isActive && isOnConversationPage;
2843
- const chatContainer = React.useMemo(
2844
- () => document.querySelector('main[data-testid^="conversation-"]'),
2845
- []
2846
- );
2776
+ React.useEffect(() => {
2777
+ if (isActive && !isOnConversationPage) onDismissCitation();
2778
+ }, [isActive, isOnConversationPage, onDismissCitation]);
2847
2779
  const triggerRef = React.useRef(null);
2848
- const [alignOffset, setAlignOffset] = React.useState(0);
2780
+ const dialogRef = React.useRef(null);
2781
+ const restoreFocusRef = React.useRef(false);
2782
+ const dismiss = React.useCallback(() => {
2783
+ restoreFocusRef.current = true;
2784
+ onDismissCitation();
2785
+ }, [onDismissCitation]);
2786
+ React.useEffect(() => {
2787
+ if (!open) return;
2788
+ dialogRef.current?.focus({ preventScroll: true });
2789
+ return () => {
2790
+ if (!restoreFocusRef.current) return;
2791
+ restoreFocusRef.current = false;
2792
+ triggerRef.current?.focus({ preventScroll: true });
2793
+ };
2794
+ }, [open]);
2795
+ React.useEffect(() => {
2796
+ if (!open) return;
2797
+ const onKeyDown = (e) => {
2798
+ if (e.key === "Escape") dismiss();
2799
+ };
2800
+ document.addEventListener("keydown", onKeyDown);
2801
+ return () => document.removeEventListener("keydown", onKeyDown);
2802
+ }, [open, dismiss]);
2803
+ const [dock, setDock] = React.useState({ left: 0, top: 0, width: 0 });
2804
+ React.useLayoutEffect(() => {
2805
+ if (!open) return;
2806
+ const edge = (document.querySelector('[data-testid="message-input-container"]') ?? document.querySelector('main[data-testid^="conversation-"]') ?? document.body).getBoundingClientRect();
2807
+ setDock({ left: edge.left, top: edge.top, width: edge.width });
2808
+ }, [open]);
2849
2809
  const handleOpen = React.useCallback(() => {
2850
- if (triggerRef.current && chatContainer) {
2851
- const triggerLeft = triggerRef.current.getBoundingClientRect().left;
2852
- const chatLeft = chatContainer.getBoundingClientRect().left;
2853
- setAlignOffset(-(triggerLeft - chatLeft));
2854
- }
2855
2810
  onOpen();
2856
2811
  if (chunks.length > 0) {
2857
2812
  onChunkClick(chunks[0]);
2858
2813
  }
2859
- }, [onOpen, onChunkClick, chunks, chatContainer]);
2814
+ }, [onOpen, onChunkClick, chunks]);
2860
2815
  const byDoc = React.useMemo(() => {
2861
2816
  const map = /* @__PURE__ */ new Map();
2862
2817
  chunks.forEach((chunk) => {
@@ -2867,151 +2822,185 @@ var CitationPopover = ({
2867
2822
  });
2868
2823
  return Array.from(map.entries()).map(([docId, val]) => ({ docId, ...val }));
2869
2824
  }, [chunks]);
2870
- return /* @__PURE__ */ jsxRuntime.jsxs(
2871
- chunkIZPXHVPJ_cjs.Popover,
2825
+ const first = chunks[0];
2826
+ const firstText = first ? first.content.replace(/\n+/g, " ").trim() : "";
2827
+ const firstTitle = first ? first.metadata.doc_title ?? first.metadata.doc_ext_id ?? "" : "";
2828
+ const firstPage = first?.metadata.page_number;
2829
+ const copyCitation = React.useCallback(async () => {
2830
+ const source = [firstTitle, firstPage != null ? `p.${firstPage}` : null].filter(Boolean).join(", ");
2831
+ try {
2832
+ await navigator.clipboard.writeText(source ? `\u201C${firstText}\u201D (${source})` : firstText);
2833
+ notify2?.("Citation copied", "success");
2834
+ } catch {
2835
+ notify2?.("Could not copy the citation", "error");
2836
+ }
2837
+ }, [firstText, firstTitle, firstPage, notify2]);
2838
+ const items = isStreaming || chunks.length === 0 ? [] : [
2872
2839
  {
2873
- open,
2874
- onOpenChange: (next) => {
2875
- if (isStreaming) return;
2876
- if (next) {
2877
- handleOpen();
2878
- } else {
2879
- onCloseCitation();
2880
- }
2881
- },
2882
- children: [
2883
- /* @__PURE__ */ jsxRuntime.jsx(chunkIZPXHVPJ_cjs.PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(
2884
- CitationLink,
2885
- {
2886
- ref: triggerRef,
2887
- citationNum,
2888
- isActive,
2889
- isStreaming,
2890
- children
2891
- }
2892
- ) }),
2893
- /* @__PURE__ */ jsxRuntime.jsxs(
2894
- chunkIZPXHVPJ_cjs.PopoverContent,
2895
- {
2896
- 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",
2897
- align: "start",
2898
- alignOffset,
2899
- side: "bottom",
2900
- sideOffset: 6,
2901
- avoidCollisions: true,
2902
- container: chatContainer,
2903
- collisionBoundary: chatContainer,
2904
- collisionPadding: { top: 8, bottom: 8, left: 8, right: 8 },
2905
- "data-testid": `citation-popover-${citationNum}`,
2906
- onInteractOutside: (e) => e.preventDefault(),
2907
- onEscapeKeyDown: (e) => e.preventDefault(),
2908
- onCloseAutoFocus: (e) => e.preventDefault(),
2909
- children: [
2910
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "px-3 py-2 border-b border-border sticky top-0 bg-popover z-10 flex items-center justify-between gap-2", children: [
2911
- /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-xs font-semibold text-muted-foreground tracking-wide", children: [
2912
- "Citation ",
2913
- citationNum,
2914
- " (",
2915
- chunks.length,
2916
- " passage",
2917
- chunks.length !== 1 ? "s" : "",
2918
- ")"
2840
+ id: "open",
2841
+ label: "Open in viewer",
2842
+ primary: true,
2843
+ onSelect: handleOpen,
2844
+ testId: `citation-open-${citationNum}`
2845
+ },
2846
+ {
2847
+ id: "copy",
2848
+ label: "Copy citation",
2849
+ onSelect: () => void copyCitation(),
2850
+ testId: `citation-copy-${citationNum}`
2851
+ }
2852
+ ];
2853
+ const preview = first ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "max-w-xs", "data-testid": `citation-preview-${citationNum}`, children: [
2854
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "block text-xs font-medium text-foreground", children: firstTitle }),
2855
+ firstPage != null && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "block text-xs text-muted-foreground", children: [
2856
+ "Page ",
2857
+ firstPage
2858
+ ] }),
2859
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "mt-1 line-clamp-4 block text-xs italic text-muted-foreground", children: /* @__PURE__ */ jsxRuntime.jsx(ReactMarkdown__default.default, { components: INLINE_MD_COMPONENTS, children: firstText }) }),
2860
+ chunks.length > 1 && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "mt-1 block text-xs text-muted-foreground", children: [
2861
+ "+",
2862
+ chunks.length - 1,
2863
+ " more passage",
2864
+ chunks.length > 2 ? "s" : ""
2865
+ ] })
2866
+ ] }) : void 0;
2867
+ return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
2868
+ /* @__PURE__ */ jsxRuntime.jsx(
2869
+ CitationLink,
2870
+ {
2871
+ triggerRef,
2872
+ citationNum,
2873
+ isActive,
2874
+ isStreaming,
2875
+ items,
2876
+ preview,
2877
+ children
2878
+ }
2879
+ ),
2880
+ open && reactDom.createPortal(
2881
+ /* @__PURE__ */ jsxRuntime.jsx(
2882
+ "div",
2883
+ {
2884
+ className: "pointer-events-none fixed z-[42] flex justify-center px-2",
2885
+ style: {
2886
+ left: dock.left,
2887
+ width: dock.width,
2888
+ bottom: window.innerHeight - dock.top + 8
2889
+ },
2890
+ children: /* @__PURE__ */ jsxRuntime.jsxs(
2891
+ "div",
2892
+ {
2893
+ ref: dialogRef,
2894
+ role: "dialog",
2895
+ tabIndex: -1,
2896
+ "aria-label": `Citation ${citationNum}`,
2897
+ className: "pointer-events-auto z-[42] max-h-[45vh] outline-none w-[min(100%,48rem)] min-w-0 overflow-y-auto rounded-md border border-border bg-popover p-0 text-popover-foreground shadow-xl",
2898
+ "data-testid": `citation-popover-${citationNum}`,
2899
+ children: [
2900
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "px-3 py-2 pointer-coarse:py-0 border-b border-border sticky top-0 bg-popover z-10 flex items-center justify-between gap-2", children: [
2901
+ /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-xs font-semibold text-muted-foreground tracking-wide", children: [
2902
+ "Citation ",
2903
+ citationNum,
2904
+ " (",
2905
+ chunks.length,
2906
+ " passage",
2907
+ chunks.length !== 1 ? "s" : "",
2908
+ ")"
2909
+ ] }),
2910
+ /* @__PURE__ */ jsxRuntime.jsx(
2911
+ "button",
2912
+ {
2913
+ onClick: dismiss,
2914
+ className: "-m-1.5 flex shrink-0 items-center justify-center rounded p-1.5 text-muted-foreground transition-colors hover:bg-muted hover:text-foreground pointer-coarse:m-0 pointer-coarse:size-11 pointer-coarse:p-0",
2915
+ "aria-label": "Close",
2916
+ "data-testid": `citation-popover-close-${citationNum}`,
2917
+ children: /* @__PURE__ */ jsxRuntime.jsx(
2918
+ "svg",
2919
+ {
2920
+ width: "14",
2921
+ height: "14",
2922
+ viewBox: "0 0 12 12",
2923
+ fill: "none",
2924
+ xmlns: "http://www.w3.org/2000/svg",
2925
+ children: /* @__PURE__ */ jsxRuntime.jsx(
2926
+ "path",
2927
+ {
2928
+ d: "M1 1L11 11M11 1L1 11",
2929
+ stroke: "currentColor",
2930
+ strokeWidth: "1.5",
2931
+ strokeLinecap: "round"
2932
+ }
2933
+ )
2934
+ }
2935
+ )
2936
+ }
2937
+ )
2919
2938
  ] }),
2920
- /* @__PURE__ */ jsxRuntime.jsx(
2921
- "button",
2922
- {
2923
- onClick: onDismissCitation,
2924
- className: "-m-1.5 flex shrink-0 items-center justify-center rounded p-1.5 text-muted-foreground transition-colors hover:bg-muted hover:text-foreground",
2925
- "aria-label": "Close",
2926
- "data-testid": `citation-popover-close-${citationNum}`,
2927
- children: /* @__PURE__ */ jsxRuntime.jsx(
2928
- "svg",
2929
- {
2930
- width: "14",
2931
- height: "14",
2932
- viewBox: "0 0 12 12",
2933
- fill: "none",
2934
- xmlns: "http://www.w3.org/2000/svg",
2935
- children: /* @__PURE__ */ jsxRuntime.jsx(
2936
- "path",
2937
- {
2938
- d: "M1 1L11 11M11 1L1 11",
2939
- stroke: "currentColor",
2940
- strokeWidth: "1.5",
2941
- strokeLinecap: "round"
2942
- }
2943
- )
2944
- }
2945
- )
2946
- }
2947
- )
2948
- ] }),
2949
- (() => {
2950
- let idx = 0;
2951
- return byDoc.map(({ docId, title, chunks: docChunks }) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "px-3 py-2 border-b border-border last:border-0", children: [
2952
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs font-medium text-primary mb-1 truncate", title, children: title }),
2939
+ byDoc.map(({ docId, title, chunks: docChunks }) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "px-3 py-2 border-b border-border last:border-0", children: [
2940
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm font-semibold text-foreground mb-1 truncate", title, children: title }),
2953
2941
  docChunks.map((chunk) => {
2954
- idx++;
2955
2942
  const isSelected = viewingPassageId === chunk.metadata.chunk_ext_id;
2956
- return /* @__PURE__ */ jsxRuntime.jsxs(
2943
+ return /* @__PURE__ */ jsxRuntime.jsx(
2957
2944
  "button",
2958
2945
  {
2959
2946
  "data-testid": `citation-chunk-${chunk.metadata.chunk_ext_id}`,
2960
2947
  onClick: () => onChunkClick(chunk),
2961
- className: chunkIZPXHVPJ_cjs.cn(
2962
- "w-full text-left text-xs rounded px-2 py-1.5 transition-colors flex items-start gap-2 mb-1 last:mb-0",
2963
- 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"
2948
+ className: chunkRZQACYNQ_cjs.cn(
2949
+ "w-full text-left text-sm rounded-md px-2 py-1.5 pointer-coarse:min-h-11 pointer-coarse:py-3 transition-colors flex items-start gap-2 mb-1 last:mb-0",
2950
+ isSelected ? "bg-ai-soft text-foreground ring-1 ring-ai-accent/40" : "text-muted-foreground hover:text-primary hover:bg-muted"
2964
2951
  ),
2965
- children: [
2966
- /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "shrink-0 text-[10px] font-mono bg-muted text-muted-foreground rounded px-1 py-0.5 mt-0.5", children: [
2967
- idx,
2968
- "."
2969
- ] }),
2970
- chunk.metadata.page_number != null && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "shrink-0 text-[10px] font-mono bg-muted text-muted-foreground rounded-full px-1.5 py-0.5 mt-0.5", children: [
2971
- "p.",
2952
+ children: /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "min-w-0 flex-1", children: [
2953
+ chunk.metadata.page_number != null && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "block text-xs text-muted-foreground", children: [
2954
+ "Page ",
2972
2955
  chunk.metadata.page_number
2973
2956
  ] }),
2974
- /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "min-w-0 flex-1 overflow-hidden whitespace-nowrap text-ellipsis block", children: [
2975
- /* @__PURE__ */ jsxRuntime.jsx("span", { children: "(\u201C" }),
2976
- " ",
2977
- /* @__PURE__ */ jsxRuntime.jsx(ReactMarkdown__default.default, { components: INLINE_MD_COMPONENTS, children: chunk.content.replace(/\n+/g, " ").trim() }),
2978
- " ",
2979
- /* @__PURE__ */ jsxRuntime.jsx("span", { children: "\u201D)" })
2980
- ] })
2981
- ]
2957
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "line-clamp-3 italic", children: /* @__PURE__ */ jsxRuntime.jsx(ReactMarkdown__default.default, { components: INLINE_MD_COMPONENTS, children: chunk.content.replace(/\n+/g, " ").trim() }) })
2958
+ ] })
2982
2959
  },
2983
2960
  chunk.metadata.chunk_ext_id
2984
2961
  );
2985
2962
  })
2986
- ] }, docId));
2987
- })()
2988
- ]
2989
- }
2990
- )
2991
- ]
2992
- }
2993
- );
2994
- };
2995
- var CitationLink = React__default.default.forwardRef(
2996
- ({ citationNum, isActive, isStreaming, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(
2997
- "span",
2998
- {
2999
- ref,
3000
- className: chunkIZPXHVPJ_cjs.cn(
3001
- "cited-text transition-colors px-0.5 rounded inline-block",
3002
- isStreaming ? "cursor-default" : "cursor-pointer",
3003
- 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"
2963
+ ] }, docId))
2964
+ ]
2965
+ }
2966
+ )
2967
+ }
3004
2968
  ),
3005
- "data-testid": `citation-link-${citationNum}`,
3006
- ...props,
3007
- children: [
3008
- children,
3009
- /* @__PURE__ */ jsxRuntime.jsx("sup", { className: "relative -top-2", children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: "inline-flex items-center justify-center min-w-4 h-4 px-1 text-[10px] border border-muted bg-muted text-primary rounded font-normal cursor-pointer antialiased tabular-nums font-heading", children: citationNum }) })
3010
- ]
3011
- }
3012
- )
2969
+ document.body
2970
+ )
2971
+ ] });
2972
+ };
2973
+ var CitationLink = ({
2974
+ citationNum,
2975
+ isActive,
2976
+ isStreaming,
2977
+ items,
2978
+ preview,
2979
+ triggerRef,
2980
+ children
2981
+ }) => /* @__PURE__ */ jsxRuntime.jsxs(
2982
+ chunkOU2QLIKS_cjs.MarkMenu,
2983
+ {
2984
+ triggerRef,
2985
+ items,
2986
+ preview: isStreaming ? void 0 : preview,
2987
+ menuLabel: `Citation ${citationNum}`,
2988
+ testId: `citation-link-${citationNum}`,
2989
+ tabIndex: isStreaming ? -1 : 0,
2990
+ "data-mark-kind": "citation",
2991
+ className: chunkRZQACYNQ_cjs.cn(
2992
+ "cited-text relative rounded-sm px-0.5 transition-colors",
2993
+ // 44px touch hit area without changing the text layout.
2994
+ "pointer-coarse:after:absolute pointer-coarse:after:content-[''] pointer-coarse:after:-inset-x-3 pointer-coarse:after:-inset-y-4",
2995
+ isStreaming ? "cursor-default" : "cursor-pointer",
2996
+ isActive ? "bg-ai-soft text-foreground" : "bg-ai-soft/30 hover:bg-ai-soft/70"
2997
+ ),
2998
+ children: [
2999
+ children,
3000
+ /* @__PURE__ */ jsxRuntime.jsx("sup", { className: "ml-px align-super text-[0.7em] font-semibold leading-none tabular-nums text-ai-ink", children: citationNum })
3001
+ ]
3002
+ }
3013
3003
  );
3014
- CitationLink.displayName = "CitationLink";
3015
3004
  var CitationRenderer = React__default.default.memo(CitationRendererComponent);
3016
3005
  var DocIcon = ({ size = 16, className = "" }) => {
3017
3006
  return /* @__PURE__ */ jsxRuntime.jsxs(
@@ -3028,8 +3017,8 @@ var DocIcon = ({ size = 16, className = "" }) => {
3028
3017
  "path",
3029
3018
  {
3030
3019
  d: "M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8l-6-6z",
3031
- fill: chunkIZPXHVPJ_cjs.FILE_TYPE_COLORS.doc,
3032
- stroke: chunkIZPXHVPJ_cjs.FILE_TYPE_COLORS.doc,
3020
+ fill: chunkOU2QLIKS_cjs.FILE_TYPE_COLORS.doc,
3021
+ stroke: chunkOU2QLIKS_cjs.FILE_TYPE_COLORS.doc,
3033
3022
  strokeWidth: "1",
3034
3023
  strokeLinecap: "round",
3035
3024
  strokeLinejoin: "round"
@@ -3040,7 +3029,7 @@ var DocIcon = ({ size = 16, className = "" }) => {
3040
3029
  {
3041
3030
  d: "M14 2v6h6",
3042
3031
  fill: "none",
3043
- stroke: chunkIZPXHVPJ_cjs.FILE_TYPE_COLORS.white,
3032
+ stroke: chunkOU2QLIKS_cjs.FILE_TYPE_COLORS.white,
3044
3033
  strokeWidth: "1",
3045
3034
  strokeLinecap: "round",
3046
3035
  strokeLinejoin: "round"
@@ -3078,8 +3067,8 @@ var HtmlIcon = ({ size = 16, className = "" }) => {
3078
3067
  "path",
3079
3068
  {
3080
3069
  d: "M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8l-6-6z",
3081
- fill: chunkIZPXHVPJ_cjs.FILE_TYPE_COLORS.html,
3082
- stroke: chunkIZPXHVPJ_cjs.FILE_TYPE_COLORS.html,
3070
+ fill: chunkOU2QLIKS_cjs.FILE_TYPE_COLORS.html,
3071
+ stroke: chunkOU2QLIKS_cjs.FILE_TYPE_COLORS.html,
3083
3072
  strokeWidth: "1",
3084
3073
  strokeLinecap: "round",
3085
3074
  strokeLinejoin: "round"
@@ -3090,7 +3079,7 @@ var HtmlIcon = ({ size = 16, className = "" }) => {
3090
3079
  {
3091
3080
  d: "M14 2v6h6",
3092
3081
  fill: "none",
3093
- stroke: chunkIZPXHVPJ_cjs.FILE_TYPE_COLORS.white,
3082
+ stroke: chunkOU2QLIKS_cjs.FILE_TYPE_COLORS.white,
3094
3083
  strokeWidth: "1",
3095
3084
  strokeLinecap: "round",
3096
3085
  strokeLinejoin: "round"
@@ -3128,8 +3117,8 @@ var TxtIcon = ({ size = 16, className = "" }) => {
3128
3117
  "path",
3129
3118
  {
3130
3119
  d: "M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8l-6-6z",
3131
- fill: chunkIZPXHVPJ_cjs.FILE_TYPE_COLORS.txt,
3132
- stroke: chunkIZPXHVPJ_cjs.FILE_TYPE_COLORS.txt,
3120
+ fill: chunkOU2QLIKS_cjs.FILE_TYPE_COLORS.txt,
3121
+ stroke: chunkOU2QLIKS_cjs.FILE_TYPE_COLORS.txt,
3133
3122
  strokeWidth: "1",
3134
3123
  strokeLinecap: "round",
3135
3124
  strokeLinejoin: "round"
@@ -3140,7 +3129,7 @@ var TxtIcon = ({ size = 16, className = "" }) => {
3140
3129
  {
3141
3130
  d: "M14 2v6h6",
3142
3131
  fill: "none",
3143
- stroke: chunkIZPXHVPJ_cjs.FILE_TYPE_COLORS.white,
3132
+ stroke: chunkOU2QLIKS_cjs.FILE_TYPE_COLORS.white,
3144
3133
  strokeWidth: "1",
3145
3134
  strokeLinecap: "round",
3146
3135
  strokeLinejoin: "round"
@@ -3178,8 +3167,8 @@ var XlsIcon = ({ size = 16, className = "" }) => {
3178
3167
  "path",
3179
3168
  {
3180
3169
  d: "M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8l-6-6z",
3181
- fill: chunkIZPXHVPJ_cjs.FILE_TYPE_COLORS.xls,
3182
- stroke: chunkIZPXHVPJ_cjs.FILE_TYPE_COLORS.xls,
3170
+ fill: chunkOU2QLIKS_cjs.FILE_TYPE_COLORS.xls,
3171
+ stroke: chunkOU2QLIKS_cjs.FILE_TYPE_COLORS.xls,
3183
3172
  strokeWidth: "1",
3184
3173
  strokeLinecap: "round",
3185
3174
  strokeLinejoin: "round"
@@ -3190,7 +3179,7 @@ var XlsIcon = ({ size = 16, className = "" }) => {
3190
3179
  {
3191
3180
  d: "M14 2v6h6",
3192
3181
  fill: "none",
3193
- stroke: chunkIZPXHVPJ_cjs.FILE_TYPE_COLORS.white,
3182
+ stroke: chunkOU2QLIKS_cjs.FILE_TYPE_COLORS.white,
3194
3183
  strokeWidth: "1",
3195
3184
  strokeLinecap: "round",
3196
3185
  strokeLinejoin: "round"
@@ -3228,8 +3217,8 @@ var FileIcon = ({ size = 16, className = "" }) => {
3228
3217
  "path",
3229
3218
  {
3230
3219
  d: "M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8l-6-6z",
3231
- fill: chunkIZPXHVPJ_cjs.FILE_TYPE_COLORS.generic,
3232
- stroke: chunkIZPXHVPJ_cjs.FILE_TYPE_COLORS.generic,
3220
+ fill: chunkOU2QLIKS_cjs.FILE_TYPE_COLORS.generic,
3221
+ stroke: chunkOU2QLIKS_cjs.FILE_TYPE_COLORS.generic,
3233
3222
  strokeWidth: "1",
3234
3223
  strokeLinecap: "round",
3235
3224
  strokeLinejoin: "round"
@@ -3240,7 +3229,7 @@ var FileIcon = ({ size = 16, className = "" }) => {
3240
3229
  {
3241
3230
  d: "M14 2v6h6",
3242
3231
  fill: "none",
3243
- stroke: chunkIZPXHVPJ_cjs.FILE_TYPE_COLORS.white,
3232
+ stroke: chunkOU2QLIKS_cjs.FILE_TYPE_COLORS.white,
3244
3233
  strokeWidth: "1",
3245
3234
  strokeLinecap: "round",
3246
3235
  strokeLinejoin: "round"
@@ -3596,7 +3585,7 @@ var ArbiBotIcon = ({ size = 24, className = "" }) => {
3596
3585
  );
3597
3586
  };
3598
3587
  function getNotificationTypeMeta(type) {
3599
- const WorkspaceIcon = chunkIZPXHVPJ_cjs.getEntityIcon("WORKSPACE");
3588
+ const WorkspaceIcon = chunkOU2QLIKS_cjs.getEntityIcon("WORKSPACE");
3600
3589
  switch (type) {
3601
3590
  case "user_message":
3602
3591
  return { Icon: lucideReact.MessageCircleMore, iconClassName: "text-primary", label: "Message" };
@@ -3711,7 +3700,7 @@ function describeActivity(content) {
3711
3700
  }
3712
3701
  default:
3713
3702
  return {
3714
- Icon: parsed.workspace_ext_id ? chunkIZPXHVPJ_cjs.getEntityIcon("WORKSPACE") : lucideReact.Activity,
3703
+ Icon: parsed.workspace_ext_id ? chunkOU2QLIKS_cjs.getEntityIcon("WORKSPACE") : lucideReact.Activity,
3715
3704
  iconClassName: "text-muted-foreground",
3716
3705
  title: humaniseEvent(parsed.event)
3717
3706
  };
@@ -3743,20 +3732,20 @@ function ActivityFeed({
3743
3732
  }) {
3744
3733
  const { data, isLoading, isError } = useActivity({ limit, enabled });
3745
3734
  if (isLoading) {
3746
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: chunkIZPXHVPJ_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: [
3735
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: chunkRZQACYNQ_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: [
3747
3736
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "h-4 w-4 shrink-0 animate-pulse rounded-full bg-muted" }),
3748
3737
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "h-3 flex-1 animate-pulse rounded bg-muted" })
3749
3738
  ] }, i)) });
3750
3739
  }
3751
3740
  if (isError) {
3752
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: chunkIZPXHVPJ_cjs.cn("text-sm text-muted-foreground", className), "data-testid": testId, children: "Couldn\u2019t load activity." });
3741
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: chunkRZQACYNQ_cjs.cn("text-sm text-muted-foreground", className), "data-testid": testId, children: "Couldn\u2019t load activity." });
3753
3742
  }
3754
3743
  const items = data ?? [];
3755
3744
  if (items.length === 0) {
3756
3745
  return /* @__PURE__ */ jsxRuntime.jsxs(
3757
3746
  "div",
3758
3747
  {
3759
- className: chunkIZPXHVPJ_cjs.cn("flex items-center gap-2 text-sm text-muted-foreground", className),
3748
+ className: chunkRZQACYNQ_cjs.cn("flex items-center gap-2 text-sm text-muted-foreground", className),
3760
3749
  "data-testid": testId,
3761
3750
  children: [
3762
3751
  /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Activity, { className: "h-4 w-4 shrink-0" }),
@@ -3765,7 +3754,7 @@ function ActivityFeed({
3765
3754
  }
3766
3755
  );
3767
3756
  }
3768
- return /* @__PURE__ */ jsxRuntime.jsx("ul", { className: chunkIZPXHVPJ_cjs.cn("divide-y divide-border", className), "data-testid": testId, children: items.map((item) => {
3757
+ return /* @__PURE__ */ jsxRuntime.jsx("ul", { className: chunkRZQACYNQ_cjs.cn("divide-y divide-border", className), "data-testid": testId, children: items.map((item) => {
3769
3758
  const desc = describeActivity(item.content);
3770
3759
  return /* @__PURE__ */ jsxRuntime.jsxs(
3771
3760
  "li",
@@ -3773,7 +3762,7 @@ function ActivityFeed({
3773
3762
  className: "flex items-center gap-3 py-2",
3774
3763
  "data-testid": "activity-feed-item",
3775
3764
  children: [
3776
- /* @__PURE__ */ jsxRuntime.jsx(desc.Icon, { className: chunkIZPXHVPJ_cjs.cn("h-4 w-4 shrink-0", desc.iconClassName) }),
3765
+ /* @__PURE__ */ jsxRuntime.jsx(desc.Icon, { className: chunkRZQACYNQ_cjs.cn("h-4 w-4 shrink-0", desc.iconClassName) }),
3777
3766
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "min-w-0 flex-1 truncate text-sm text-foreground", children: desc.title }),
3778
3767
  /* @__PURE__ */ jsxRuntime.jsx("time", { className: "shrink-0 text-xs tabular-nums text-muted-foreground", children: formatRelative(item.created_at) })
3779
3768
  ]
@@ -3799,178 +3788,6 @@ function userDisplayName(user) {
3799
3788
  function isAgentUser(user) {
3800
3789
  return user.external_id.startsWith("agt-");
3801
3790
  }
3802
- var RELATIVE = new Intl.RelativeTimeFormat(void 0, { numeric: "auto" });
3803
- var DIVISIONS = [
3804
- { amount: 60, unit: "seconds" },
3805
- { amount: 60, unit: "minutes" },
3806
- { amount: 24, unit: "hours" },
3807
- { amount: 7, unit: "days" },
3808
- { amount: 4.34524, unit: "weeks" },
3809
- { amount: 12, unit: "months" },
3810
- { amount: Number.POSITIVE_INFINITY, unit: "years" }
3811
- ];
3812
- function formatRelativeTime(iso) {
3813
- const then = Date.parse(iso);
3814
- if (Number.isNaN(then)) return "";
3815
- let duration = (then - Date.now()) / 1e3;
3816
- if (Math.abs(duration) < 45) return "just now";
3817
- for (const division of DIVISIONS) {
3818
- if (Math.abs(duration) < division.amount) {
3819
- return RELATIVE.format(Math.round(duration), division.unit);
3820
- }
3821
- duration /= division.amount;
3822
- }
3823
- return "";
3824
- }
3825
- var GLYPH = {
3826
- success: lucideReact.CheckCircle2,
3827
- error: lucideReact.XCircle,
3828
- warning: lucideReact.AlertTriangle,
3829
- info: lucideReact.Info
3830
- };
3831
- function NotificationBell({
3832
- onNavigate,
3833
- onMarkRead,
3834
- onMarkAllRead,
3835
- muted = false,
3836
- onToggleMute,
3837
- toneClassNames,
3838
- emptyText = "You're all caught up.",
3839
- onViewAll,
3840
- viewAllLabel = "View all",
3841
- testId = "notifications"
3842
- }) {
3843
- const notifications = chunk3MLQUKT4_cjs.useNotify((s) => s.notifications);
3844
- const unread = chunk3MLQUKT4_cjs.useNotify(chunk3MLQUKT4_cjs.selectUnread);
3845
- const markAllRead = chunk3MLQUKT4_cjs.useNotify((s) => s.markAllRead);
3846
- const markRead = chunk3MLQUKT4_cjs.useNotify((s) => s.markRead);
3847
- const tone = (v) => toneClassNames?.[v] ?? chunk3MLQUKT4_cjs.DEFAULT_NOTIFY_TONE[v];
3848
- const visible = notifications.filter((n) => !n.ambient);
3849
- return /* @__PURE__ */ jsxRuntime.jsxs(chunkIZPXHVPJ_cjs.DropdownMenu, { children: [
3850
- /* @__PURE__ */ jsxRuntime.jsx(chunkIZPXHVPJ_cjs.DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsxs(
3851
- "button",
3852
- {
3853
- className: "relative flex size-9 items-center justify-center rounded-md text-muted-foreground transition-colors hover:bg-accent hover:text-foreground",
3854
- "data-testid": testId,
3855
- "aria-label": `Notifications${unread ? ` (${unread} unread)` : ""}`,
3856
- children: [
3857
- /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Bell, { className: "size-5" }),
3858
- unread > 0 && /* @__PURE__ */ jsxRuntime.jsx(
3859
- "span",
3860
- {
3861
- className: "absolute -right-0.5 -top-0.5 flex min-w-4 items-center justify-center rounded-full bg-secondary px-1 text-[10px] font-semibold leading-4 text-secondary-foreground",
3862
- "data-testid": `${testId}-badge`,
3863
- children: unread > 9 ? "9+" : unread
3864
- }
3865
- )
3866
- ]
3867
- }
3868
- ) }),
3869
- /* @__PURE__ */ jsxRuntime.jsxs(
3870
- chunkIZPXHVPJ_cjs.DropdownMenuContent,
3871
- {
3872
- align: "end",
3873
- sideOffset: 8,
3874
- collisionPadding: 12,
3875
- className: "w-[360px] rounded-lg border-border/60 p-0 shadow-lg",
3876
- "data-testid": `${testId}-panel`,
3877
- children: [
3878
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between gap-3 border-b border-border px-3.5 py-2.5", children: [
3879
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm font-semibold text-foreground", children: "Notifications" }),
3880
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-3", children: [
3881
- unread > 0 && /* @__PURE__ */ jsxRuntime.jsxs(
3882
- "button",
3883
- {
3884
- onClick: () => {
3885
- markAllRead();
3886
- onMarkAllRead?.();
3887
- },
3888
- className: "flex items-center gap-1 text-xs font-medium text-primary transition-colors hover:opacity-80",
3889
- "data-testid": `${testId}-mark-all`,
3890
- children: [
3891
- /* @__PURE__ */ jsxRuntime.jsx(lucideReact.CheckCheck, { className: "size-3.5" }),
3892
- " Mark all read"
3893
- ]
3894
- }
3895
- ),
3896
- onToggleMute && /* @__PURE__ */ jsxRuntime.jsx(
3897
- "button",
3898
- {
3899
- onClick: onToggleMute,
3900
- "aria-pressed": muted,
3901
- title: muted ? "Unmute notifications" : "Mute notifications",
3902
- "aria-label": muted ? "Unmute notifications" : "Mute notifications",
3903
- className: chunkIZPXHVPJ_cjs.cn(
3904
- "flex size-6 items-center justify-center rounded-md transition-colors hover:bg-accent",
3905
- muted ? "text-foreground" : "text-muted-foreground hover:text-foreground"
3906
- ),
3907
- "data-testid": `${testId}-mute`,
3908
- children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.BellOff, { className: "size-3.5" })
3909
- }
3910
- ),
3911
- /* @__PURE__ */ jsxRuntime.jsx(
3912
- chunkIZPXHVPJ_cjs.DropdownMenuItem,
3913
- {
3914
- className: "flex size-6 items-center justify-center rounded-md p-0 text-muted-foreground transition-colors hover:bg-accent hover:text-foreground focus:bg-accent",
3915
- "aria-label": "Close notifications",
3916
- "data-testid": `${testId}-close`,
3917
- children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.X, { className: "size-3.5" })
3918
- }
3919
- )
3920
- ] })
3921
- ] }),
3922
- muted && /* @__PURE__ */ jsxRuntime.jsx(
3923
- "p",
3924
- {
3925
- className: "border-b border-border/60 bg-amber-500/10 px-3.5 py-1.5 text-[11px] text-muted-foreground",
3926
- "data-testid": `${testId}-muted-note`,
3927
- children: "Toasts are muted \u2014 everything still lands here."
3928
- }
3929
- ),
3930
- 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(chunkIZPXHVPJ_cjs.ScrollArea, { className: "max-h-[380px]", children: /* @__PURE__ */ jsxRuntime.jsx("ul", { "data-testid": `${testId}-list`, children: visible.map((n) => {
3931
- const Glyph = GLYPH[n.variant];
3932
- return /* @__PURE__ */ jsxRuntime.jsx("li", { children: /* @__PURE__ */ jsxRuntime.jsxs(
3933
- "button",
3934
- {
3935
- onClick: () => {
3936
- markRead(n.id);
3937
- if (!n.read) onMarkRead?.(n.id);
3938
- if (n.onSelect) n.onSelect();
3939
- else if (n.href) onNavigate?.(n.href);
3940
- },
3941
- className: chunkIZPXHVPJ_cjs.cn(
3942
- "flex w-full items-start gap-3 border-b border-border/60 px-3.5 py-3 text-left transition-colors hover:bg-accent",
3943
- !n.read && "bg-accent/40"
3944
- ),
3945
- "data-testid": `${testId}-item`,
3946
- children: [
3947
- /* @__PURE__ */ jsxRuntime.jsx(Glyph, { className: chunkIZPXHVPJ_cjs.cn("mt-0.5 size-4 shrink-0", tone(n.variant)) }),
3948
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0 flex-1", children: [
3949
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm font-medium leading-snug text-foreground", children: n.title }),
3950
- n.description && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-0.5 line-clamp-2 text-xs leading-relaxed text-muted-foreground", children: n.description }),
3951
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-1 text-[11px] text-muted-foreground/80", children: formatRelativeTime(new Date(n.ts).toISOString()) })
3952
- ] }),
3953
- !n.read && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "mt-1.5 size-2 shrink-0 rounded-full bg-primary" })
3954
- ]
3955
- }
3956
- ) }, n.id);
3957
- }) }) }),
3958
- onViewAll && // A real menu item, not a bare button: selecting it must CLOSE the
3959
- // dropdown on its way to the full surface.
3960
- /* @__PURE__ */ jsxRuntime.jsx(
3961
- chunkIZPXHVPJ_cjs.DropdownMenuItem,
3962
- {
3963
- onClick: onViewAll,
3964
- className: "justify-center rounded-none border-t border-border px-3.5 py-2.5 text-xs font-medium text-primary focus:text-primary",
3965
- "data-testid": `${testId}-view-all`,
3966
- children: viewAllLabel
3967
- }
3968
- )
3969
- ]
3970
- }
3971
- )
3972
- ] });
3973
- }
3974
3791
  var DM_QUERY_KEY = ["arbi", "directMessages"];
3975
3792
  var CONTACTS_QUERY_KEY = ["arbi", "contacts"];
3976
3793
  function mergeContacts(threads, contacts) {
@@ -4100,7 +3917,7 @@ function DmAvatar({ user, className, size = "lg" }) {
4100
3917
  const presence = useArbiWsStore((s) => s.presence[user.external_id]);
4101
3918
  const displayStatus = presence === void 0 ? void 0 : presence === "online" ? "connected" : "disconnected";
4102
3919
  return /* @__PURE__ */ jsxRuntime.jsx(
4103
- chunkIZPXHVPJ_cjs.UserEntity,
3920
+ chunkOU2QLIKS_cjs.UserEntity,
4104
3921
  {
4105
3922
  variant: "icon",
4106
3923
  size,
@@ -4110,7 +3927,7 @@ function DmAvatar({ user, className, size = "lg" }) {
4110
3927
  initials: userInitials(user),
4111
3928
  displayName: userDisplayName(user),
4112
3929
  picture: user.picture,
4113
- avatarStyle: chunkIZPXHVPJ_cjs.getEntityColorStyles(user.external_id),
3930
+ avatarStyle: chunkOU2QLIKS_cjs.getEntityColorStyles(user.external_id),
4114
3931
  isAgent: isAgentUser(user),
4115
3932
  displayStatus
4116
3933
  }
@@ -4128,7 +3945,7 @@ function ConversationList({
4128
3945
  return /* @__PURE__ */ jsxRuntime.jsxs(
4129
3946
  "aside",
4130
3947
  {
4131
- className: chunkIZPXHVPJ_cjs.cn(
3948
+ className: chunkRZQACYNQ_cjs.cn(
4132
3949
  "flex min-h-0 flex-col border-b border-border md:w-80 md:shrink-0 md:border-b-0 md:border-r",
4133
3950
  className
4134
3951
  ),
@@ -4156,20 +3973,20 @@ function ConversationList({
4156
3973
  /* @__PURE__ */ jsxRuntime.jsx(
4157
3974
  "span",
4158
3975
  {
4159
- className: chunkIZPXHVPJ_cjs.cn(
3976
+ className: chunkRZQACYNQ_cjs.cn(
4160
3977
  "truncate text-sm text-foreground",
4161
3978
  unread ? "font-bold" : "font-semibold"
4162
3979
  ),
4163
3980
  children: userDisplayName(peer)
4164
3981
  }
4165
3982
  ),
4166
- c.badge ?? (isAgentUser(peer) ? /* @__PURE__ */ jsxRuntime.jsx(chunkIZPXHVPJ_cjs.AgentBadge, {}) : null)
3983
+ c.badge ?? (isAgentUser(peer) ? /* @__PURE__ */ jsxRuntime.jsx(chunkOU2QLIKS_cjs.AgentBadge, {}) : null)
4167
3984
  ] }),
4168
3985
  c.statusLabel ? /* @__PURE__ */ jsxRuntime.jsx(
4169
- chunkIZPXHVPJ_cjs.Badge,
3986
+ chunkOU2QLIKS_cjs.Badge,
4170
3987
  {
4171
3988
  variant: "outline",
4172
- className: "shrink-0 rounded-full px-2 py-0 text-[10px] font-medium text-muted-foreground",
3989
+ className: "shrink-0 rounded-full px-2 py-0 text-xs font-medium text-muted-foreground",
4173
3990
  children: c.statusLabel
4174
3991
  }
4175
3992
  ) : unreadCount > 0 ? (
@@ -4177,11 +3994,11 @@ function ConversationList({
4177
3994
  // shouted louder than the message it was counting.
4178
3995
  // Enough to catch the eye scanning the list, no more.
4179
3996
  /* @__PURE__ */ jsxRuntime.jsx(
4180
- chunkIZPXHVPJ_cjs.Badge,
3997
+ chunkOU2QLIKS_cjs.Badge,
4181
3998
  {
4182
3999
  variant: "accent",
4183
- className: chunkIZPXHVPJ_cjs.cn(
4184
- "min-w-[1.125rem] justify-center rounded-full px-1 py-0 text-[10px] font-medium leading-[1.125rem] shadow-none",
4000
+ className: chunkRZQACYNQ_cjs.cn(
4001
+ "min-w-[1.125rem] justify-center rounded-full px-1 py-0 text-xs font-medium leading-[1.125rem] shadow-none",
4185
4002
  classNames?.unreadBadge
4186
4003
  ),
4187
4004
  children: unreadCount
@@ -4206,18 +4023,18 @@ function ConversationList({
4206
4023
  /* @__PURE__ */ jsxRuntime.jsx(
4207
4024
  "p",
4208
4025
  {
4209
- className: chunkIZPXHVPJ_cjs.cn(
4026
+ className: chunkRZQACYNQ_cjs.cn(
4210
4027
  "min-w-0 flex-1 truncate text-xs",
4211
4028
  unread ? "font-medium text-foreground" : "text-muted-foreground"
4212
4029
  ),
4213
4030
  children: c.subtitle ?? preview
4214
4031
  }
4215
4032
  ),
4216
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "shrink-0 text-[11px] text-muted-foreground", children: lastMessage ? formatRelativeTime(lastMessage.createdAt) : "" })
4033
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "shrink-0 text-xs text-muted-foreground", children: lastMessage ? chunkBXP6S34V_cjs.formatRelativeTime(lastMessage.createdAt) : "" })
4217
4034
  ] })
4218
4035
  ] })
4219
4036
  ] });
4220
- const rowClass = chunkIZPXHVPJ_cjs.cn(
4037
+ const rowClass = chunkRZQACYNQ_cjs.cn(
4221
4038
  // Each row is its own opaque surface. Left transparent it takes
4222
4039
  // the panel's colour, and the chips stop reading as cards at all
4223
4040
  // — which is the whole point of them.
@@ -4228,7 +4045,7 @@ function ConversationList({
4228
4045
  newSection && /* @__PURE__ */ jsxRuntime.jsx(
4229
4046
  "p",
4230
4047
  {
4231
- className: "bg-muted/40 px-4 py-1.5 text-[11px] font-medium uppercase tracking-wide text-muted-foreground",
4048
+ className: "bg-muted/40 px-4 py-1.5 text-xs font-medium uppercase tracking-wide text-muted-foreground",
4232
4049
  "data-testid": "arbi-dm-section",
4233
4050
  children: c.sectionLabel
4234
4051
  }
@@ -4304,7 +4121,7 @@ function MessageBubble2({
4304
4121
  isLastOfRun,
4305
4122
  senderName: message.isMine ? "You" : userDisplayName(message.sender),
4306
4123
  classNames,
4307
- formatTimestamp: formatRelativeTime
4124
+ formatTimestamp: chunkBXP6S34V_cjs.formatRelativeTime
4308
4125
  }
4309
4126
  );
4310
4127
  }
@@ -4346,7 +4163,7 @@ function MessageThread({
4346
4163
  /* @__PURE__ */ jsxRuntime.jsx("p", { className: "truncate text-xs text-muted-foreground", children: peer.email })
4347
4164
  ] })
4348
4165
  ] }),
4349
- /* @__PURE__ */ jsxRuntime.jsx(chunkIZPXHVPJ_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: [
4166
+ /* @__PURE__ */ jsxRuntime.jsx(chunkRZQACYNQ_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: [
4350
4167
  items.map(({ message: m, isLastOfRun, isFirstOfDay }) => /* @__PURE__ */ jsxRuntime.jsxs(React.Fragment, { children: [
4351
4168
  isFirstOfDay && formatDay && /* @__PURE__ */ jsxRuntime.jsx(DateSeparator, { children: formatDay(m.createdAt) }),
4352
4169
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -4396,7 +4213,7 @@ function DmComposer({
4396
4213
  children,
4397
4214
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-end gap-2", children: [
4398
4215
  /* @__PURE__ */ jsxRuntime.jsx(
4399
- chunkIZPXHVPJ_cjs.Textarea,
4216
+ chunkOU2QLIKS_cjs.Textarea,
4400
4217
  {
4401
4218
  ref: inputRef,
4402
4219
  value: draft,
@@ -4410,12 +4227,12 @@ function DmComposer({
4410
4227
  }
4411
4228
  ),
4412
4229
  /* @__PURE__ */ jsxRuntime.jsxs(
4413
- chunkIZPXHVPJ_cjs.Button,
4230
+ chunkOU2QLIKS_cjs.Button,
4414
4231
  {
4415
4232
  type: "button",
4416
4233
  onClick: () => void submit(),
4417
4234
  disabled: disabled || busy || !draft.trim(),
4418
- className: chunkIZPXHVPJ_cjs.cn(classNames?.sendButton),
4235
+ className: chunkRZQACYNQ_cjs.cn(classNames?.sendButton),
4419
4236
  "data-testid": "arbi-dm-send",
4420
4237
  "aria-label": "Send message",
4421
4238
  children: [
@@ -4468,7 +4285,7 @@ function DirectMessages({
4468
4285
  {
4469
4286
  "data-testid": "arbi-dm",
4470
4287
  style: { height: "calc(100vh - 16rem)", minHeight: "28rem" },
4471
- className: chunkIZPXHVPJ_cjs.cn(
4288
+ className: chunkRZQACYNQ_cjs.cn(
4472
4289
  "relative flex flex-col overflow-hidden rounded-xl border border-border bg-card md:flex-row",
4473
4290
  className
4474
4291
  ),
@@ -4536,7 +4353,7 @@ function ImageCropper({
4536
4353
  },
4537
4354
  [onCropComplete, activeAspect]
4538
4355
  );
4539
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: chunkIZPXHVPJ_cjs.cn("flex flex-col gap-3", className), children: [
4356
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: chunkRZQACYNQ_cjs.cn("flex flex-col gap-3", className), children: [
4540
4357
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative h-72 w-full overflow-hidden rounded-md bg-foreground/95", children: /* @__PURE__ */ jsxRuntime.jsx(
4541
4358
  Cropper__default.default,
4542
4359
  {
@@ -4553,7 +4370,7 @@ function ImageCropper({
4553
4370
  }
4554
4371
  ) }),
4555
4372
  aspectOptions && aspectOptions.length > 1 ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-wrap items-center gap-1", "data-testid": "image-cropper-aspects", children: [
4556
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "mr-1 text-[11px] font-semibold uppercase tracking-wider text-muted-foreground", children: "Ratio" }),
4373
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "mr-1 text-xs font-semibold uppercase tracking-wider text-muted-foreground", children: "Ratio" }),
4557
4374
  aspectOptions.map((opt) => {
4558
4375
  const on = opt.value === activeAspect;
4559
4376
  return /* @__PURE__ */ jsxRuntime.jsx(
@@ -4562,7 +4379,7 @@ function ImageCropper({
4562
4379
  type: "button",
4563
4380
  onClick: () => setActiveAspect(opt.value),
4564
4381
  "data-testid": `image-cropper-aspect-${opt.label}`,
4565
- className: chunkIZPXHVPJ_cjs.cn(
4382
+ className: chunkRZQACYNQ_cjs.cn(
4566
4383
  "rounded-md px-2 py-1 text-xs font-medium transition-colors",
4567
4384
  on ? "bg-primary text-primary-foreground" : "text-muted-foreground hover:bg-accent hover:text-foreground"
4568
4385
  ),
@@ -4573,9 +4390,9 @@ function ImageCropper({
4573
4390
  })
4574
4391
  ] }) : null,
4575
4392
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-1.5", children: [
4576
- /* @__PURE__ */ jsxRuntime.jsx("label", { className: "text-[11px] font-semibold uppercase tracking-wider text-muted-foreground", children: "Zoom" }),
4393
+ /* @__PURE__ */ jsxRuntime.jsx("label", { className: "text-xs font-semibold uppercase tracking-wider text-muted-foreground", children: "Zoom" }),
4577
4394
  /* @__PURE__ */ jsxRuntime.jsx(
4578
- chunkIZPXHVPJ_cjs.Slider,
4395
+ chunkOU2QLIKS_cjs.Slider,
4579
4396
  {
4580
4397
  value: [zoom],
4581
4398
  onValueChange: ([v]) => setZoom(v ?? 1),
@@ -4652,8 +4469,8 @@ function ImageCropModal({
4652
4469
  setBusy(false);
4653
4470
  }
4654
4471
  };
4655
- return /* @__PURE__ */ jsxRuntime.jsx(chunkIZPXHVPJ_cjs.Dialog, { open, onOpenChange: (next) => !next ? onCancel() : void 0, children: /* @__PURE__ */ jsxRuntime.jsxs(chunkIZPXHVPJ_cjs.DialogContent, { className: "sm:max-w-md", "data-testid": "image-crop-modal", children: [
4656
- /* @__PURE__ */ jsxRuntime.jsx(chunkIZPXHVPJ_cjs.DialogHeader, { children: /* @__PURE__ */ jsxRuntime.jsx(chunkIZPXHVPJ_cjs.DialogTitle, { children: title }) }),
4472
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkOU2QLIKS_cjs.Dialog, { open, onOpenChange: (next) => !next ? onCancel() : void 0, children: /* @__PURE__ */ jsxRuntime.jsxs(chunkOU2QLIKS_cjs.DialogContent, { className: "sm:max-w-md", "data-testid": "image-crop-modal", children: [
4473
+ /* @__PURE__ */ jsxRuntime.jsx(chunkOU2QLIKS_cjs.DialogHeader, { children: /* @__PURE__ */ jsxRuntime.jsx(chunkOU2QLIKS_cjs.DialogTitle, { children: title }) }),
4657
4474
  image ? /* @__PURE__ */ jsxRuntime.jsx(
4658
4475
  ImageCropper,
4659
4476
  {
@@ -4664,9 +4481,9 @@ function ImageCropModal({
4664
4481
  onCropComplete: setArea
4665
4482
  }
4666
4483
  ) : null,
4667
- /* @__PURE__ */ jsxRuntime.jsxs(chunkIZPXHVPJ_cjs.DialogFooter, { className: "gap-2 sm:gap-2", children: [
4668
- /* @__PURE__ */ jsxRuntime.jsx(chunkIZPXHVPJ_cjs.Button, { variant: "ghost", onClick: onCancel, disabled: busy, children: "Cancel" }),
4669
- /* @__PURE__ */ jsxRuntime.jsxs(chunkIZPXHVPJ_cjs.Button, { onClick: handleSave, disabled: !area || busy, "data-testid": "image-crop-save", children: [
4484
+ /* @__PURE__ */ jsxRuntime.jsxs(chunkOU2QLIKS_cjs.DialogFooter, { className: "gap-2 sm:gap-2", children: [
4485
+ /* @__PURE__ */ jsxRuntime.jsx(chunkOU2QLIKS_cjs.Button, { variant: "ghost", onClick: onCancel, disabled: busy, children: "Cancel" }),
4486
+ /* @__PURE__ */ jsxRuntime.jsxs(chunkOU2QLIKS_cjs.Button, { onClick: handleSave, disabled: !area || busy, "data-testid": "image-crop-save", children: [
4670
4487
  busy ? /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Loader2, { className: "mr-1 size-4 animate-spin" }) : null,
4671
4488
  saveLabel
4672
4489
  ] })
@@ -4732,18 +4549,18 @@ function CommandPalette({
4732
4549
  if (!q || task.isRunning) return;
4733
4550
  void task.run(buildAskPrompt(q), askDocIds, { model });
4734
4551
  };
4735
- return /* @__PURE__ */ jsxRuntime.jsx(chunkIZPXHVPJ_cjs.Dialog, { open, onOpenChange, children: /* @__PURE__ */ jsxRuntime.jsxs(
4736
- chunkIZPXHVPJ_cjs.DialogContent,
4552
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkOU2QLIKS_cjs.Dialog, { open, onOpenChange, children: /* @__PURE__ */ jsxRuntime.jsxs(
4553
+ chunkOU2QLIKS_cjs.DialogContent,
4737
4554
  {
4738
- className: chunkIZPXHVPJ_cjs.cn(
4555
+ className: chunkRZQACYNQ_cjs.cn(
4739
4556
  "top-[12%] max-w-2xl translate-y-0 gap-0 overflow-hidden p-0",
4740
4557
  classNames?.dialog
4741
4558
  ),
4742
4559
  "data-testid": testId,
4743
4560
  children: [
4744
- /* @__PURE__ */ jsxRuntime.jsx(chunkIZPXHVPJ_cjs.DialogTitle, { className: "sr-only", children: "Command palette" }),
4561
+ /* @__PURE__ */ jsxRuntime.jsx(chunkOU2QLIKS_cjs.DialogTitle, { className: "sr-only", children: "Command palette" }),
4745
4562
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-3 border-b border-border px-4", children: [
4746
- /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Sparkles, { className: chunkIZPXHVPJ_cjs.cn("size-4 shrink-0 text-ai-accent", classNames?.leadingIcon) }),
4563
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Sparkles, { className: chunkRZQACYNQ_cjs.cn("size-4 shrink-0 text-ai-accent", classNames?.leadingIcon) }),
4747
4564
  /* @__PURE__ */ jsxRuntime.jsx(
4748
4565
  "input",
4749
4566
  {
@@ -4757,14 +4574,14 @@ function CommandPalette({
4757
4574
  }
4758
4575
  },
4759
4576
  placeholder,
4760
- className: chunkIZPXHVPJ_cjs.cn(
4577
+ className: chunkRZQACYNQ_cjs.cn(
4761
4578
  "h-14 flex-1 bg-transparent text-base outline-none placeholder:text-muted-foreground",
4762
4579
  classNames?.input
4763
4580
  ),
4764
4581
  "data-testid": `${testId}-input`
4765
4582
  }
4766
4583
  ),
4767
- /* @__PURE__ */ jsxRuntime.jsx("kbd", { className: "hidden rounded border border-border px-1.5 py-0.5 text-[10px] text-muted-foreground sm:inline", children: "\u2318K" })
4584
+ /* @__PURE__ */ jsxRuntime.jsx("kbd", { className: "hidden rounded border border-border px-1.5 py-0.5 text-xs text-muted-foreground sm:inline", children: "\u2318K" })
4768
4585
  ] }),
4769
4586
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "max-h-[60vh] overflow-y-auto p-2", children: [
4770
4587
  query.trim() && !showingAnswer && /* @__PURE__ */ jsxRuntime.jsxs(
@@ -4772,7 +4589,7 @@ function CommandPalette({
4772
4589
  {
4773
4590
  type: "button",
4774
4591
  onClick: ask,
4775
- className: chunkIZPXHVPJ_cjs.cn(
4592
+ className: chunkRZQACYNQ_cjs.cn(
4776
4593
  "mb-1 flex w-full items-center gap-3 rounded-lg px-3 py-2.5 text-left hover:bg-accent",
4777
4594
  classNames?.askAction
4778
4595
  ),
@@ -4781,7 +4598,7 @@ function CommandPalette({
4781
4598
  /* @__PURE__ */ jsxRuntime.jsx(
4782
4599
  "span",
4783
4600
  {
4784
- className: chunkIZPXHVPJ_cjs.cn(
4601
+ className: chunkRZQACYNQ_cjs.cn(
4785
4602
  "flex size-8 items-center justify-center rounded-md bg-ai-surface text-ai-accent",
4786
4603
  classNames?.askChip
4787
4604
  ),
@@ -4812,7 +4629,7 @@ function CommandPalette({
4812
4629
  }
4813
4630
  ),
4814
4631
  task.isDone && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-3 flex justify-end", children: /* @__PURE__ */ jsxRuntime.jsx(
4815
- chunkIZPXHVPJ_cjs.Button,
4632
+ chunkOU2QLIKS_cjs.Button,
4816
4633
  {
4817
4634
  variant: "outline",
4818
4635
  size: "sm",
@@ -4823,14 +4640,14 @@ function CommandPalette({
4823
4640
  ) })
4824
4641
  ] }),
4825
4642
  !showingAnswer && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
4826
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "px-3 pb-1 pt-2 text-[10px] font-semibold uppercase tracking-wide text-muted-foreground", children: query.trim() ? "Jump to" : "Go to" }),
4643
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "px-3 pb-1 pt-2 text-xs font-semibold uppercase tracking-wide text-muted-foreground", children: query.trim() ? "Jump to" : "Go to" }),
4827
4644
  navMatches.length === 0 && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "px-3 py-2 text-sm text-muted-foreground", children: "No pages match \u2014 press Enter to ask AI." }),
4828
4645
  navMatches.map((item) => /* @__PURE__ */ jsxRuntime.jsxs(
4829
4646
  "button",
4830
4647
  {
4831
4648
  type: "button",
4832
4649
  onClick: () => go(item.to),
4833
- className: chunkIZPXHVPJ_cjs.cn(
4650
+ className: chunkRZQACYNQ_cjs.cn(
4834
4651
  "flex w-full items-center gap-3 rounded-lg px-3 py-2 text-left hover:bg-accent",
4835
4652
  classNames?.navItem
4836
4653
  ),
@@ -4844,7 +4661,7 @@ function CommandPalette({
4844
4661
  item.id
4845
4662
  )),
4846
4663
  searchable && query.trim().length >= 2 && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
4847
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "px-3 pb-1 pt-3 text-[10px] font-semibold uppercase tracking-wide text-muted-foreground", children: "Documents" }),
4664
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "px-3 pb-1 pt-3 text-xs font-semibold uppercase tracking-wide text-muted-foreground", children: "Documents" }),
4848
4665
  searchStatus === "done" && docHits.length === 0 && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "px-3 py-2 text-sm text-muted-foreground", children: "No passages matched." }),
4849
4666
  docHits.map((hit, i) => /* @__PURE__ */ jsxRuntime.jsxs(
4850
4667
  "button",
@@ -4908,114 +4725,6 @@ function CommandPaletteProvider({
4908
4725
  /* @__PURE__ */ jsxRuntime.jsx(CommandPalette, { open: isOpen, onOpenChange: setIsOpen, ...paletteProps })
4909
4726
  ] });
4910
4727
  }
4911
- function nameInitials(name) {
4912
- const parts = name.trim().split(/\s+/).filter(Boolean);
4913
- if (!parts.length) return "?";
4914
- return parts.slice(0, 2).map((p) => p[0]?.toUpperCase() ?? "").join("");
4915
- }
4916
- var STATUS_DOT = {
4917
- online: "bg-emerald-500",
4918
- busy: "bg-amber-500",
4919
- offline: "bg-destructive"
4920
- };
4921
- function UserMenu({
4922
- user,
4923
- status,
4924
- items = [],
4925
- onLogout,
4926
- logoutLabel = "Sign out",
4927
- align = "end",
4928
- classNames,
4929
- testId = "user-menu",
4930
- logoutTestId
4931
- }) {
4932
- return /* @__PURE__ */ jsxRuntime.jsxs(chunkIZPXHVPJ_cjs.DropdownMenu, { children: [
4933
- /* @__PURE__ */ jsxRuntime.jsx(chunkIZPXHVPJ_cjs.DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsxs(
4934
- "button",
4935
- {
4936
- className: chunkIZPXHVPJ_cjs.cn(
4937
- "flex items-center gap-2 rounded-md px-1.5 py-1 transition-colors hover:bg-accent",
4938
- classNames?.trigger
4939
- ),
4940
- "data-testid": testId,
4941
- children: [
4942
- /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "relative", children: [
4943
- /* @__PURE__ */ jsxRuntime.jsxs(chunkIZPXHVPJ_cjs.Avatar, { className: "size-8", children: [
4944
- user.picture ? /* @__PURE__ */ jsxRuntime.jsx(chunkIZPXHVPJ_cjs.AvatarImage, { src: user.picture, alt: user.name }) : null,
4945
- /* @__PURE__ */ jsxRuntime.jsx(
4946
- chunkIZPXHVPJ_cjs.AvatarFallback,
4947
- {
4948
- className: chunkIZPXHVPJ_cjs.cn("bg-primary text-primary-foreground", classNames?.fallback),
4949
- children: nameInitials(user.name)
4950
- }
4951
- )
4952
- ] }),
4953
- status && /* @__PURE__ */ jsxRuntime.jsx(
4954
- "span",
4955
- {
4956
- className: chunkIZPXHVPJ_cjs.cn(
4957
- "absolute -bottom-0.5 -right-0.5 size-2.5 rounded-full border-2 border-background",
4958
- STATUS_DOT[status.tone]
4959
- ),
4960
- title: status.detail ? `${status.label} \xB7 ${status.detail}` : status.label,
4961
- "data-testid": status.testId ? `${status.testId}-dot` : void 0
4962
- }
4963
- )
4964
- ] }),
4965
- /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronDown, { className: "size-4 text-muted-foreground" })
4966
- ]
4967
- }
4968
- ) }),
4969
- /* @__PURE__ */ jsxRuntime.jsxs(
4970
- chunkIZPXHVPJ_cjs.DropdownMenuContent,
4971
- {
4972
- align,
4973
- sideOffset: 8,
4974
- collisionPadding: 12,
4975
- className: "w-56 rounded-lg border-border/60 shadow-lg",
4976
- "data-testid": "user-menu-panel",
4977
- children: [
4978
- /* @__PURE__ */ jsxRuntime.jsxs(chunkIZPXHVPJ_cjs.DropdownMenuLabel, { className: "relative pr-8", children: [
4979
- /* @__PURE__ */ jsxRuntime.jsx(
4980
- chunkIZPXHVPJ_cjs.DropdownMenuItem,
4981
- {
4982
- className: "absolute right-1 top-1 flex size-6 items-center justify-center rounded-md p-0 text-muted-foreground transition-colors hover:bg-accent hover:text-foreground focus:bg-accent",
4983
- "aria-label": "Close account menu",
4984
- "data-testid": "user-menu-close",
4985
- children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.X, { className: "size-3.5" })
4986
- }
4987
- ),
4988
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "font-medium text-foreground", children: user.name }),
4989
- user.email && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-xs font-normal text-muted-foreground", children: user.email }),
4990
- status && /* @__PURE__ */ jsxRuntime.jsxs(
4991
- "div",
4992
- {
4993
- className: "mt-1 text-xs font-normal text-muted-foreground",
4994
- "data-testid": status.testId,
4995
- children: [
4996
- /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "flex items-center gap-1.5", children: [
4997
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: chunkIZPXHVPJ_cjs.cn("size-2 shrink-0 rounded-full", STATUS_DOT[status.tone]) }),
4998
- status.label
4999
- ] }),
5000
- 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 })
5001
- ]
5002
- }
5003
- )
5004
- ] }),
5005
- /* @__PURE__ */ jsxRuntime.jsx(chunkIZPXHVPJ_cjs.DropdownMenuSeparator, {}),
5006
- items.map((item) => /* @__PURE__ */ jsxRuntime.jsxs(chunkIZPXHVPJ_cjs.DropdownMenuItem, { onClick: item.onSelect, "data-testid": item.testId, children: [
5007
- item.icon && /* @__PURE__ */ jsxRuntime.jsx(item.icon, { className: "size-4" }),
5008
- item.label
5009
- ] }, item.label)),
5010
- /* @__PURE__ */ jsxRuntime.jsxs(chunkIZPXHVPJ_cjs.DropdownMenuItem, { onClick: onLogout, "data-testid": logoutTestId ?? `${testId}-logout`, children: [
5011
- /* @__PURE__ */ jsxRuntime.jsx(lucideReact.LogOut, { className: "size-4" }),
5012
- logoutLabel
5013
- ] })
5014
- ]
5015
- }
5016
- )
5017
- ] });
5018
- }
5019
4728
  var useArbiUiStore = zustand.create((set) => ({
5020
4729
  selectedDocIds: [],
5021
4730
  setSelectedDocIds: (ids) => set({ selectedDocIds: ids }),
@@ -5118,7 +4827,7 @@ function DocumentTable({
5118
4827
  const doc = p.data;
5119
4828
  if (!doc) return null;
5120
4829
  return /* @__PURE__ */ jsxRuntime.jsx(
5121
- chunkIZPXHVPJ_cjs.DocumentEntity,
4830
+ chunkOU2QLIKS_cjs.DocumentEntity,
5122
4831
  {
5123
4832
  doc,
5124
4833
  size: "base",
@@ -5141,7 +4850,7 @@ function DocumentTable({
5141
4850
  cellRenderer: (p) => {
5142
4851
  const status = p.data?.status;
5143
4852
  if (!status) return null;
5144
- return /* @__PURE__ */ jsxRuntime.jsx(chunkIZPXHVPJ_cjs.Badge, { variant: STATUS_VARIANTS[status.toLowerCase()] ?? "secondary", children: status });
4853
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkOU2QLIKS_cjs.Badge, { variant: STATUS_VARIANTS[status.toLowerCase()] ?? "secondary", children: status });
5145
4854
  }
5146
4855
  },
5147
4856
  {
@@ -5155,7 +4864,7 @@ function DocumentTable({
5155
4864
  const doctags = p.data?.doctags ?? [];
5156
4865
  if (doctags.length === 0) return null;
5157
4866
  return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-wrap items-center gap-1 py-1", children: doctags.map((dt) => /* @__PURE__ */ jsxRuntime.jsx(
5158
- chunkIZPXHVPJ_cjs.TagEntity,
4867
+ chunkOU2QLIKS_cjs.TagEntity,
5159
4868
  {
5160
4869
  size: "sm",
5161
4870
  tag: {
@@ -5226,218 +4935,6 @@ function DocumentTable({
5226
4935
  }
5227
4936
  ) });
5228
4937
  }
5229
- var ACTIVE_STATUSES = /* @__PURE__ */ new Set([
5230
- "queued",
5231
- "processing",
5232
- "parsing",
5233
- "encrypting",
5234
- "indexing",
5235
- "analysing"
5236
- ]);
5237
- var TERMINAL_STATUSES2 = /* @__PURE__ */ new Set(["completed", "failed", "skipped", "empty", "low-content"]);
5238
- var STATUS_LABEL = {
5239
- queued: "Queued",
5240
- processing: "Processing",
5241
- parsing: "Parsing",
5242
- encrypting: "Encrypting",
5243
- indexing: "Indexing",
5244
- analysing: "Analysing"
5245
- };
5246
- var IMAGE_EXTENSIONS = /* @__PURE__ */ new Set(["jpg", "jpeg", "png", "gif", "bmp", "tiff", "tif", "webp"]);
5247
- var VIDEO_EXTENSIONS = /* @__PURE__ */ new Set(["mp4", "mpeg", "mpg", "webm", "mov", "avi", "mkv"]);
5248
- var AUDIO_EXTENSIONS = /* @__PURE__ */ new Set(["mp3", "wav", "m4a", "aac", "ogg", "flac"]);
5249
- var EMAIL_EXTENSIONS = /* @__PURE__ */ new Set(["eml", "msg"]);
5250
- function fileIcon(fileName, size) {
5251
- const ext = fileName?.split(".").pop()?.toLowerCase();
5252
- if (ext && VIDEO_EXTENSIONS.has(ext)) return /* @__PURE__ */ jsxRuntime.jsx(chunkIZPXHVPJ_cjs.VidIcon, { size });
5253
- if (ext && AUDIO_EXTENSIONS.has(ext)) return /* @__PURE__ */ jsxRuntime.jsx(chunkIZPXHVPJ_cjs.AudIcon, { size });
5254
- if (ext && IMAGE_EXTENSIONS.has(ext)) return /* @__PURE__ */ jsxRuntime.jsx(chunkIZPXHVPJ_cjs.ImgIcon, { size });
5255
- if (ext && EMAIL_EXTENSIONS.has(ext)) return /* @__PURE__ */ jsxRuntime.jsx(chunkIZPXHVPJ_cjs.EmlIcon, { size });
5256
- return /* @__PURE__ */ jsxRuntime.jsx(chunkIZPXHVPJ_cjs.PdfIcon, { size });
5257
- }
5258
- function RenameField({
5259
- seed,
5260
- onCommit,
5261
- onCancel,
5262
- testId
5263
- }) {
5264
- const done = React__default.default.useRef(false);
5265
- const commit = (value) => {
5266
- if (done.current) return;
5267
- done.current = true;
5268
- const trimmed = value.trim();
5269
- if (trimmed && trimmed !== seed) onCommit(trimmed);
5270
- else onCancel();
5271
- };
5272
- return /* @__PURE__ */ jsxRuntime.jsx(
5273
- "input",
5274
- {
5275
- autoFocus: true,
5276
- defaultValue: seed,
5277
- "data-testid": testId,
5278
- onFocus: (e) => e.currentTarget.select(),
5279
- onClick: (e) => e.stopPropagation(),
5280
- onKeyDown: (e) => {
5281
- if (e.key === "Enter") {
5282
- e.preventDefault();
5283
- commit(e.currentTarget.value);
5284
- } else if (e.key === "Escape") {
5285
- e.preventDefault();
5286
- done.current = true;
5287
- onCancel();
5288
- }
5289
- },
5290
- onBlur: (e) => commit(e.currentTarget.value),
5291
- className: "w-full rounded border border-primary bg-background px-1 py-0.5 text-xs text-foreground outline-none"
5292
- }
5293
- );
5294
- }
5295
- function StatusMarker({ status, testId }) {
5296
- let icon = null;
5297
- let title = "";
5298
- switch (status) {
5299
- case "completed":
5300
- icon = /* @__PURE__ */ jsxRuntime.jsx(lucideReact.CheckCircle, { className: "size-4 text-success", strokeWidth: 2.75 });
5301
- title = "Ready";
5302
- break;
5303
- case "failed":
5304
- icon = /* @__PURE__ */ jsxRuntime.jsx(lucideReact.XCircle, { className: "size-4 text-destructive", strokeWidth: 2.75 });
5305
- title = "Failed";
5306
- break;
5307
- case "skipped":
5308
- icon = /* @__PURE__ */ jsxRuntime.jsx(lucideReact.SkipForward, { className: "size-4 text-muted-foreground", strokeWidth: 2.75 });
5309
- title = "Skipped";
5310
- break;
5311
- case "empty":
5312
- icon = /* @__PURE__ */ jsxRuntime.jsx(lucideReact.FileX, { className: "size-4 text-warning", strokeWidth: 2.75 });
5313
- title = "Empty \u2014 no extractable content";
5314
- break;
5315
- case "low-content":
5316
- icon = /* @__PURE__ */ jsxRuntime.jsx(lucideReact.AlertTriangle, { className: "size-4 text-warning", strokeWidth: 2.75 });
5317
- title = "Low content \u2014 minimal extractable content";
5318
- break;
5319
- default:
5320
- return null;
5321
- }
5322
- return /* @__PURE__ */ jsxRuntime.jsx(
5323
- "span",
5324
- {
5325
- title,
5326
- "data-testid": testId,
5327
- className: "flex size-6 items-center justify-center rounded-full bg-background shadow-sm",
5328
- children: icon
5329
- }
5330
- );
5331
- }
5332
- function DocumentCard({
5333
- doc,
5334
- thumbnailUrl,
5335
- status,
5336
- selected = false,
5337
- onToggleSelect,
5338
- viewing = false,
5339
- onOpen,
5340
- actions,
5341
- renaming = false,
5342
- onCommitRename,
5343
- onCancelRename,
5344
- tooltipContent,
5345
- marker,
5346
- testId = "document-card",
5347
- className
5348
- }) {
5349
- const normalised = (status ?? "").toLowerCase();
5350
- const isProcessing = ACTIVE_STATUSES.has(normalised);
5351
- const showStatusMarker = !isProcessing && TERMINAL_STATUSES2.has(normalised);
5352
- const [thumbFailed, setThumbFailed] = React__default.default.useState(false);
5353
- const [thumbLandscape, setThumbLandscape] = React__default.default.useState(false);
5354
- const showThumbnail = !!thumbnailUrl && !thumbFailed && !isProcessing;
5355
- return /* @__PURE__ */ jsxRuntime.jsxs(
5356
- "div",
5357
- {
5358
- "data-testid": testId,
5359
- className: chunkIZPXHVPJ_cjs.cn(
5360
- // Square corners and a portrait-page aspect (height = 1.3 × width), so a
5361
- // cover-page thumbnail reads edge-to-edge.
5362
- "group relative aspect-[10/13] select-none overflow-hidden border bg-muted/20 transition",
5363
- selected ? "border-primary bg-primary/10" : "border-border shadow-sm hover:border-border/80 hover:bg-muted/50",
5364
- className
5365
- ),
5366
- children: [
5367
- showThumbnail ? /* @__PURE__ */ jsxRuntime.jsx(
5368
- "img",
5369
- {
5370
- src: thumbnailUrl,
5371
- alt: "",
5372
- loading: "lazy",
5373
- draggable: false,
5374
- onError: () => setThumbFailed(true),
5375
- onLoad: (e) => setThumbLandscape(e.currentTarget.naturalWidth > e.currentTarget.naturalHeight),
5376
- className: chunkIZPXHVPJ_cjs.cn(
5377
- "absolute inset-0 size-full bg-white",
5378
- thumbLandscape ? "object-contain" : "object-cover object-top"
5379
- )
5380
- }
5381
- ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute inset-0 flex items-center justify-center text-muted-foreground", children: fileIcon(doc.file_name, 44) }),
5382
- isProcessing && /* @__PURE__ */ jsxRuntime.jsxs(
5383
- "div",
5384
- {
5385
- "data-testid": `${testId}-processing`,
5386
- className: "absolute inset-0 z-10 flex flex-col items-center justify-center gap-1.5 bg-background/80 px-3",
5387
- children: [
5388
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "h-1.5 w-full overflow-hidden rounded-sm bg-muted", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "h-full w-1/3 animate-pulse rounded-sm bg-primary" }) }),
5389
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-xs font-medium text-primary", children: STATUS_LABEL[normalised] ?? normalised })
5390
- ]
5391
- }
5392
- ),
5393
- onToggleSelect && /* @__PURE__ */ jsxRuntime.jsx(
5394
- chunkIZPXHVPJ_cjs.Checkbox,
5395
- {
5396
- checked: selected,
5397
- onCheckedChange: () => onToggleSelect(),
5398
- onClick: (e) => e.stopPropagation(),
5399
- "aria-label": selected ? "Deselect" : "Select",
5400
- "data-testid": `${testId}-select`,
5401
- className: chunkIZPXHVPJ_cjs.cn(
5402
- "absolute left-1.5 top-1.5 z-20 size-6 rounded-none border-muted-foreground/60 bg-background shadow-sm transition",
5403
- selected ? "opacity-100" : "opacity-40 group-hover:opacity-100"
5404
- )
5405
- }
5406
- ),
5407
- actions && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute right-1.5 top-1.5 z-20", children: actions }),
5408
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "absolute inset-x-1.5 bottom-1.5 z-20 flex flex-col gap-1", children: [
5409
- (marker || showStatusMarker) && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center", children: [
5410
- marker,
5411
- showStatusMarker && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ml-auto flex", children: /* @__PURE__ */ jsxRuntime.jsx(StatusMarker, { status: normalised, testId: `${testId}-status` }) })
5412
- ] }),
5413
- renaming ? /* @__PURE__ */ jsxRuntime.jsx(
5414
- RenameField,
5415
- {
5416
- seed: doc.doc_metadata?.title || doc.file_name || "",
5417
- onCommit: (name) => onCommitRename?.(name),
5418
- onCancel: () => onCancelRename?.(),
5419
- testId: `${testId}-rename-input`
5420
- }
5421
- ) : /* @__PURE__ */ jsxRuntime.jsx(
5422
- chunkIZPXHVPJ_cjs.DocumentEntity,
5423
- {
5424
- doc,
5425
- fullWidth: true,
5426
- viewing,
5427
- tooltipContent,
5428
- labelClassName: "font-semibold",
5429
- className: "w-full min-w-0 max-w-full bg-background/90 backdrop-blur-sm",
5430
- onClick: (e) => {
5431
- e.stopPropagation();
5432
- onOpen?.();
5433
- }
5434
- }
5435
- )
5436
- ] })
5437
- ]
5438
- }
5439
- );
5440
- }
5441
4938
  function DocumentCardMenu({
5442
4939
  docId,
5443
4940
  fileName,
@@ -5473,8 +4970,8 @@ function DocumentCardMenu({
5473
4970
  mutationFn: () => arbi.documents.delete([docId]),
5474
4971
  onSuccess: invalidateDocuments
5475
4972
  });
5476
- return /* @__PURE__ */ jsxRuntime.jsxs(chunkIZPXHVPJ_cjs.DropdownMenu, { children: [
5477
- /* @__PURE__ */ jsxRuntime.jsx(chunkIZPXHVPJ_cjs.DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(
4973
+ return /* @__PURE__ */ jsxRuntime.jsxs(chunkRZQACYNQ_cjs.DropdownMenu, { children: [
4974
+ /* @__PURE__ */ jsxRuntime.jsx(chunkRZQACYNQ_cjs.DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(
5478
4975
  "button",
5479
4976
  {
5480
4977
  type: "button",
@@ -5485,17 +4982,17 @@ function DocumentCardMenu({
5485
4982
  children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.MoreHorizontal, { className: "size-4" })
5486
4983
  }
5487
4984
  ) }),
5488
- /* @__PURE__ */ jsxRuntime.jsxs(chunkIZPXHVPJ_cjs.DropdownMenuContent, { align: "start", onClick: (e) => e.stopPropagation(), className: "w-44", children: [
5489
- onOpen && /* @__PURE__ */ jsxRuntime.jsxs(chunkIZPXHVPJ_cjs.DropdownMenuItem, { onSelect: onOpen, "data-testid": `${testId}-open`, children: [
4985
+ /* @__PURE__ */ jsxRuntime.jsxs(chunkRZQACYNQ_cjs.DropdownMenuContent, { align: "start", onClick: (e) => e.stopPropagation(), className: "w-44", children: [
4986
+ onOpen && /* @__PURE__ */ jsxRuntime.jsxs(chunkRZQACYNQ_cjs.DropdownMenuItem, { onSelect: onOpen, "data-testid": `${testId}-open`, children: [
5490
4987
  /* @__PURE__ */ jsxRuntime.jsx(lucideReact.SquarePen, { className: "mr-2 size-4" }),
5491
4988
  "Open"
5492
4989
  ] }),
5493
- onRename && /* @__PURE__ */ jsxRuntime.jsxs(chunkIZPXHVPJ_cjs.DropdownMenuItem, { onSelect: onRename, "data-testid": `${testId}-rename`, children: [
4990
+ onRename && /* @__PURE__ */ jsxRuntime.jsxs(chunkRZQACYNQ_cjs.DropdownMenuItem, { onSelect: onRename, "data-testid": `${testId}-rename`, children: [
5494
4991
  /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Pencil, { className: "mr-2 size-4" }),
5495
4992
  "Rename"
5496
4993
  ] }),
5497
4994
  /* @__PURE__ */ jsxRuntime.jsxs(
5498
- chunkIZPXHVPJ_cjs.DropdownMenuItem,
4995
+ chunkRZQACYNQ_cjs.DropdownMenuItem,
5499
4996
  {
5500
4997
  onSelect: () => download.mutate(),
5501
4998
  disabled: download.isPending,
@@ -5507,9 +5004,9 @@ function DocumentCardMenu({
5507
5004
  }
5508
5005
  ),
5509
5006
  canDelete && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
5510
- /* @__PURE__ */ jsxRuntime.jsx(chunkIZPXHVPJ_cjs.DropdownMenuSeparator, {}),
5007
+ /* @__PURE__ */ jsxRuntime.jsx(chunkRZQACYNQ_cjs.DropdownMenuSeparator, {}),
5511
5008
  /* @__PURE__ */ jsxRuntime.jsxs(
5512
- chunkIZPXHVPJ_cjs.DropdownMenuItem,
5009
+ chunkRZQACYNQ_cjs.DropdownMenuItem,
5513
5010
  {
5514
5011
  onSelect: () => remove.mutate(),
5515
5012
  disabled: remove.isPending,
@@ -5534,7 +5031,7 @@ function TileTooltip({ title, labels }) {
5534
5031
  labels.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-wrap gap-1 border-t border-border/60 pt-1.5", children: labels.map((label) => /* @__PURE__ */ jsxRuntime.jsx(
5535
5032
  "span",
5536
5033
  {
5537
- className: "rounded bg-muted px-1.5 py-0.5 text-[10px] font-medium text-foreground/80",
5034
+ className: "rounded bg-muted px-1.5 py-0.5 text-xs font-medium text-foreground/80",
5538
5035
  children: label
5539
5036
  },
5540
5037
  label
@@ -5609,7 +5106,7 @@ function DocumentGallery({
5609
5106
  return /* @__PURE__ */ jsxRuntime.jsx(
5610
5107
  "div",
5611
5108
  {
5612
- className: chunkIZPXHVPJ_cjs.cn(
5109
+ className: chunkRZQACYNQ_cjs.cn(
5613
5110
  "flex items-center justify-center p-8 text-sm text-muted-foreground",
5614
5111
  className
5615
5112
  ),
@@ -5621,7 +5118,7 @@ function DocumentGallery({
5621
5118
  return /* @__PURE__ */ jsxRuntime.jsx(
5622
5119
  "div",
5623
5120
  {
5624
- className: chunkIZPXHVPJ_cjs.cn(
5121
+ className: chunkRZQACYNQ_cjs.cn(
5625
5122
  "flex items-center justify-center p-8 text-sm text-muted-foreground",
5626
5123
  className
5627
5124
  ),
@@ -5633,7 +5130,7 @@ function DocumentGallery({
5633
5130
  "div",
5634
5131
  {
5635
5132
  "data-testid": "document-gallery",
5636
- className: chunkIZPXHVPJ_cjs.cn("grid gap-3", className),
5133
+ className: chunkRZQACYNQ_cjs.cn("grid gap-3", className),
5637
5134
  style: { gridTemplateColumns: `repeat(auto-fill, minmax(${minTileWidth}px, 1fr))` },
5638
5135
  children: rows.map((doc) => {
5639
5136
  const id = doc.external_id;
@@ -5643,7 +5140,7 @@ function DocumentGallery({
5643
5140
  (dt) => tagNameById.get(dt.tag_ext_id) ?? dt.tag_ext_id.slice(0, 8)
5644
5141
  );
5645
5142
  return /* @__PURE__ */ jsxRuntime.jsx("div", { "data-doc-id": id, "data-testid": "document-gallery-card", children: /* @__PURE__ */ jsxRuntime.jsx(
5646
- DocumentCard,
5143
+ chunkOU2QLIKS_cjs.DocumentCard,
5647
5144
  {
5648
5145
  doc,
5649
5146
  thumbnailUrl: thumbs[id],
@@ -5680,7 +5177,7 @@ function VoiceNoteRecorder({
5680
5177
  isSaving = false,
5681
5178
  transcribe
5682
5179
  }) {
5683
- const recorder = chunkIZPXHVPJ_cjs.useAudioRecorder();
5180
+ const recorder = chunkOU2QLIKS_cjs.useAudioRecorder();
5684
5181
  const [transcript, setTranscript] = React.useState(null);
5685
5182
  const [isTranscribing, setIsTranscribing] = React.useState(false);
5686
5183
  React.useEffect(() => {
@@ -5712,7 +5209,7 @@ function VoiceNoteRecorder({
5712
5209
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex h-full flex-col items-center justify-center gap-6 p-8", children: [
5713
5210
  recorder.state === "idle" && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
5714
5211
  /* @__PURE__ */ jsxRuntime.jsx(
5715
- chunkIZPXHVPJ_cjs.Button,
5212
+ chunkOU2QLIKS_cjs.Button,
5716
5213
  {
5717
5214
  type: "button",
5718
5215
  size: "lg",
@@ -5726,7 +5223,7 @@ function VoiceNoteRecorder({
5726
5223
  ] }),
5727
5224
  (recorder.state === "recording" || recorder.state === "paused") && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
5728
5225
  /* @__PURE__ */ jsxRuntime.jsx(
5729
- chunkIZPXHVPJ_cjs.MicWaveformIndicator,
5226
+ chunkOU2QLIKS_cjs.MicWaveformIndicator,
5730
5227
  {
5731
5228
  level: recorder.level,
5732
5229
  elapsedMs: recorder.elapsedMs,
@@ -5735,7 +5232,7 @@ function VoiceNoteRecorder({
5735
5232
  ),
5736
5233
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-3", children: [
5737
5234
  recorder.state === "recording" ? /* @__PURE__ */ jsxRuntime.jsxs(
5738
- chunkIZPXHVPJ_cjs.Button,
5235
+ chunkOU2QLIKS_cjs.Button,
5739
5236
  {
5740
5237
  type: "button",
5741
5238
  variant: "outline",
@@ -5747,7 +5244,7 @@ function VoiceNoteRecorder({
5747
5244
  ]
5748
5245
  }
5749
5246
  ) : /* @__PURE__ */ jsxRuntime.jsxs(
5750
- chunkIZPXHVPJ_cjs.Button,
5247
+ chunkOU2QLIKS_cjs.Button,
5751
5248
  {
5752
5249
  type: "button",
5753
5250
  variant: "outline",
@@ -5759,7 +5256,7 @@ function VoiceNoteRecorder({
5759
5256
  ]
5760
5257
  }
5761
5258
  ),
5762
- /* @__PURE__ */ jsxRuntime.jsxs(chunkIZPXHVPJ_cjs.Button, { type: "button", onClick: recorder.stop, "data-testid": "voice-note-stop-button", children: [
5259
+ /* @__PURE__ */ jsxRuntime.jsxs(chunkOU2QLIKS_cjs.Button, { type: "button", onClick: recorder.stop, "data-testid": "voice-note-stop-button", children: [
5763
5260
  /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Square, { className: "mr-1.5 h-3.5 w-3.5 fill-current" }),
5764
5261
  "Stop"
5765
5262
  ] })
@@ -5783,7 +5280,7 @@ function VoiceNoteRecorder({
5783
5280
  ),
5784
5281
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-3", children: [
5785
5282
  /* @__PURE__ */ jsxRuntime.jsxs(
5786
- chunkIZPXHVPJ_cjs.Button,
5283
+ chunkOU2QLIKS_cjs.Button,
5787
5284
  {
5788
5285
  type: "button",
5789
5286
  variant: "outline",
@@ -5797,7 +5294,7 @@ function VoiceNoteRecorder({
5797
5294
  }
5798
5295
  ),
5799
5296
  /* @__PURE__ */ jsxRuntime.jsxs(
5800
- chunkIZPXHVPJ_cjs.Button,
5297
+ chunkOU2QLIKS_cjs.Button,
5801
5298
  {
5802
5299
  type: "button",
5803
5300
  variant: "outline",
@@ -5811,7 +5308,7 @@ function VoiceNoteRecorder({
5811
5308
  }
5812
5309
  ),
5813
5310
  /* @__PURE__ */ jsxRuntime.jsxs(
5814
- chunkIZPXHVPJ_cjs.Button,
5311
+ chunkOU2QLIKS_cjs.Button,
5815
5312
  {
5816
5313
  type: "button",
5817
5314
  onClick: handleSave,
@@ -5848,7 +5345,7 @@ function DraftTitleControls({
5848
5345
  }
5849
5346
  ),
5850
5347
  /* @__PURE__ */ jsxRuntime.jsx(
5851
- chunkIZPXHVPJ_cjs.IconToggle,
5348
+ chunkOU2QLIKS_cjs.IconToggle,
5852
5349
  {
5853
5350
  icon: lucideReact.Sparkles,
5854
5351
  isActive: autoRename,
@@ -5882,7 +5379,7 @@ function useCameraStream(constraints = { video: true, audio: false }) {
5882
5379
  streamRef.current = media;
5883
5380
  setStream(media);
5884
5381
  } catch (err) {
5885
- setError(chunkIZPXHVPJ_cjs.classifyMediaError(err, "camera"));
5382
+ setError(chunkOU2QLIKS_cjs.classifyMediaError(err, "camera"));
5886
5383
  } finally {
5887
5384
  setIsStarting(false);
5888
5385
  }
@@ -6013,7 +5510,7 @@ function PhotoCapture({ onSave, onDiscard, onError, isSaving = false }) {
6013
5510
  }
6014
5511
  ) }),
6015
5512
  /* @__PURE__ */ jsxRuntime.jsx(
6016
- chunkIZPXHVPJ_cjs.Button,
5513
+ chunkOU2QLIKS_cjs.Button,
6017
5514
  {
6018
5515
  type: "button",
6019
5516
  size: "lg",
@@ -6031,7 +5528,7 @@ function PhotoCapture({ onSave, onDiscard, onError, isSaving = false }) {
6031
5528
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full max-w-md", children: /* @__PURE__ */ jsxRuntime.jsx(chunk7IOCMCC5_cjs.ImageViewer, { blob: capturedBlob, alt: "Captured photo" }) }),
6032
5529
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-3", children: [
6033
5530
  /* @__PURE__ */ jsxRuntime.jsxs(
6034
- chunkIZPXHVPJ_cjs.Button,
5531
+ chunkOU2QLIKS_cjs.Button,
6035
5532
  {
6036
5533
  type: "button",
6037
5534
  variant: "outline",
@@ -6045,7 +5542,7 @@ function PhotoCapture({ onSave, onDiscard, onError, isSaving = false }) {
6045
5542
  }
6046
5543
  ),
6047
5544
  /* @__PURE__ */ jsxRuntime.jsxs(
6048
- chunkIZPXHVPJ_cjs.Button,
5545
+ chunkOU2QLIKS_cjs.Button,
6049
5546
  {
6050
5547
  type: "button",
6051
5548
  variant: "outline",
@@ -6059,7 +5556,7 @@ function PhotoCapture({ onSave, onDiscard, onError, isSaving = false }) {
6059
5556
  }
6060
5557
  ),
6061
5558
  /* @__PURE__ */ jsxRuntime.jsxs(
6062
- chunkIZPXHVPJ_cjs.Button,
5559
+ chunkOU2QLIKS_cjs.Button,
6063
5560
  {
6064
5561
  type: "button",
6065
5562
  onClick: handleSave,
@@ -6118,10 +5615,10 @@ function VideoCapture({ onSave, onDiscard, onError, isSaving = false }) {
6118
5615
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "relative inline-flex h-2 w-2 rounded-full bg-red-500" })
6119
5616
  ] }),
6120
5617
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-xs font-semibold uppercase tracking-wide text-red-500", children: "Rec" }),
6121
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-mono text-xs tabular-nums text-muted-foreground", children: chunkIZPXHVPJ_cjs.formatElapsed(recorder.elapsedMs) })
5618
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-mono text-xs tabular-nums text-muted-foreground", children: chunkOU2QLIKS_cjs.formatElapsed(recorder.elapsedMs) })
6122
5619
  ] }),
6123
5620
  recorder.state === "recording" ? /* @__PURE__ */ jsxRuntime.jsx(
6124
- chunkIZPXHVPJ_cjs.Button,
5621
+ chunkOU2QLIKS_cjs.Button,
6125
5622
  {
6126
5623
  type: "button",
6127
5624
  size: "lg",
@@ -6131,7 +5628,7 @@ function VideoCapture({ onSave, onDiscard, onError, isSaving = false }) {
6131
5628
  children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Square, { className: "h-5 w-5 fill-current" })
6132
5629
  }
6133
5630
  ) : /* @__PURE__ */ jsxRuntime.jsx(
6134
- chunkIZPXHVPJ_cjs.Button,
5631
+ chunkOU2QLIKS_cjs.Button,
6135
5632
  {
6136
5633
  type: "button",
6137
5634
  size: "lg",
@@ -6148,7 +5645,7 @@ function VideoCapture({ onSave, onDiscard, onError, isSaving = false }) {
6148
5645
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full max-w-md", children: /* @__PURE__ */ jsxRuntime.jsx(chunk7IOCMCC5_cjs.VideoViewer, { blob: recorder.blob, title: "Captured video" }) }),
6149
5646
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-3", children: [
6150
5647
  /* @__PURE__ */ jsxRuntime.jsxs(
6151
- chunkIZPXHVPJ_cjs.Button,
5648
+ chunkOU2QLIKS_cjs.Button,
6152
5649
  {
6153
5650
  type: "button",
6154
5651
  variant: "outline",
@@ -6162,7 +5659,7 @@ function VideoCapture({ onSave, onDiscard, onError, isSaving = false }) {
6162
5659
  }
6163
5660
  ),
6164
5661
  /* @__PURE__ */ jsxRuntime.jsxs(
6165
- chunkIZPXHVPJ_cjs.Button,
5662
+ chunkOU2QLIKS_cjs.Button,
6166
5663
  {
6167
5664
  type: "button",
6168
5665
  variant: "outline",
@@ -6176,7 +5673,7 @@ function VideoCapture({ onSave, onDiscard, onError, isSaving = false }) {
6176
5673
  }
6177
5674
  ),
6178
5675
  /* @__PURE__ */ jsxRuntime.jsxs(
6179
- chunkIZPXHVPJ_cjs.Button,
5676
+ chunkOU2QLIKS_cjs.Button,
6180
5677
  {
6181
5678
  type: "button",
6182
5679
  onClick: handleSave,
@@ -6219,631 +5716,659 @@ function hasVideoTrack(blob) {
6219
5716
 
6220
5717
  Object.defineProperty(exports, "DEFAULT_NOTIFY_TONE", {
6221
5718
  enumerable: true,
6222
- get: function () { return chunk3MLQUKT4_cjs.DEFAULT_NOTIFY_TONE; }
5719
+ get: function () { return chunkBXP6S34V_cjs.DEFAULT_NOTIFY_TONE; }
5720
+ });
5721
+ Object.defineProperty(exports, "NotificationBell", {
5722
+ enumerable: true,
5723
+ get: function () { return chunkBXP6S34V_cjs.NotificationBell; }
6223
5724
  });
6224
5725
  Object.defineProperty(exports, "Toaster", {
6225
5726
  enumerable: true,
6226
- get: function () { return chunk3MLQUKT4_cjs.Toaster; }
5727
+ get: function () { return chunkBXP6S34V_cjs.Toaster; }
5728
+ });
5729
+ Object.defineProperty(exports, "formatRelativeTime", {
5730
+ enumerable: true,
5731
+ get: function () { return chunkBXP6S34V_cjs.formatRelativeTime; }
6227
5732
  });
6228
5733
  Object.defineProperty(exports, "notify", {
6229
5734
  enumerable: true,
6230
- get: function () { return chunk3MLQUKT4_cjs.notify; }
5735
+ get: function () { return chunkBXP6S34V_cjs.notify; }
6231
5736
  });
6232
5737
  Object.defineProperty(exports, "seedNotifications", {
6233
5738
  enumerable: true,
6234
- get: function () { return chunk3MLQUKT4_cjs.seedNotifications; }
5739
+ get: function () { return chunkBXP6S34V_cjs.seedNotifications; }
6235
5740
  });
6236
5741
  Object.defineProperty(exports, "selectUnread", {
6237
5742
  enumerable: true,
6238
- get: function () { return chunk3MLQUKT4_cjs.selectUnread; }
5743
+ get: function () { return chunkBXP6S34V_cjs.selectUnread; }
6239
5744
  });
6240
5745
  Object.defineProperty(exports, "toast", {
6241
5746
  enumerable: true,
6242
- get: function () { return chunk3MLQUKT4_cjs.toast; }
5747
+ get: function () { return chunkBXP6S34V_cjs.toast; }
6243
5748
  });
6244
5749
  Object.defineProperty(exports, "useNotify", {
6245
5750
  enumerable: true,
6246
- get: function () { return chunk3MLQUKT4_cjs.useNotify; }
5751
+ get: function () { return chunkBXP6S34V_cjs.useNotify; }
6247
5752
  });
6248
5753
  Object.defineProperty(exports, "AgentBadge", {
6249
5754
  enumerable: true,
6250
- get: function () { return chunkIZPXHVPJ_cjs.AgentBadge; }
5755
+ get: function () { return chunkOU2QLIKS_cjs.AgentBadge; }
6251
5756
  });
6252
5757
  Object.defineProperty(exports, "AiMarkdown", {
6253
5758
  enumerable: true,
6254
- get: function () { return chunkIZPXHVPJ_cjs.AiMarkdown; }
5759
+ get: function () { return chunkOU2QLIKS_cjs.AiMarkdown; }
6255
5760
  });
6256
5761
  Object.defineProperty(exports, "ArbiBotHeadIcon", {
6257
5762
  enumerable: true,
6258
- get: function () { return chunkIZPXHVPJ_cjs.ArbiBotHeadIcon; }
5763
+ get: function () { return chunkOU2QLIKS_cjs.ArbiBotHeadIcon; }
6259
5764
  });
6260
5765
  Object.defineProperty(exports, "AudIcon", {
6261
5766
  enumerable: true,
6262
- get: function () { return chunkIZPXHVPJ_cjs.AudIcon; }
5767
+ get: function () { return chunkOU2QLIKS_cjs.AudIcon; }
6263
5768
  });
6264
5769
  Object.defineProperty(exports, "Avatar", {
6265
5770
  enumerable: true,
6266
- get: function () { return chunkIZPXHVPJ_cjs.Avatar; }
5771
+ get: function () { return chunkOU2QLIKS_cjs.Avatar; }
6267
5772
  });
6268
5773
  Object.defineProperty(exports, "AvatarFallback", {
6269
5774
  enumerable: true,
6270
- get: function () { return chunkIZPXHVPJ_cjs.AvatarFallback; }
5775
+ get: function () { return chunkOU2QLIKS_cjs.AvatarFallback; }
6271
5776
  });
6272
5777
  Object.defineProperty(exports, "AvatarImage", {
6273
5778
  enumerable: true,
6274
- get: function () { return chunkIZPXHVPJ_cjs.AvatarImage; }
5779
+ get: function () { return chunkOU2QLIKS_cjs.AvatarImage; }
6275
5780
  });
6276
5781
  Object.defineProperty(exports, "BASE_COLORS", {
6277
5782
  enumerable: true,
6278
- get: function () { return chunkIZPXHVPJ_cjs.BASE_COLORS; }
5783
+ get: function () { return chunkOU2QLIKS_cjs.BASE_COLORS; }
6279
5784
  });
6280
5785
  Object.defineProperty(exports, "Badge", {
6281
5786
  enumerable: true,
6282
- get: function () { return chunkIZPXHVPJ_cjs.Badge; }
5787
+ get: function () { return chunkOU2QLIKS_cjs.Badge; }
6283
5788
  });
6284
5789
  Object.defineProperty(exports, "Button", {
6285
5790
  enumerable: true,
6286
- get: function () { return chunkIZPXHVPJ_cjs.Button; }
5791
+ get: function () { return chunkOU2QLIKS_cjs.Button; }
6287
5792
  });
6288
5793
  Object.defineProperty(exports, "Card", {
6289
5794
  enumerable: true,
6290
- get: function () { return chunkIZPXHVPJ_cjs.Card; }
5795
+ get: function () { return chunkOU2QLIKS_cjs.Card; }
6291
5796
  });
6292
5797
  Object.defineProperty(exports, "CardContent", {
6293
5798
  enumerable: true,
6294
- get: function () { return chunkIZPXHVPJ_cjs.CardContent; }
5799
+ get: function () { return chunkOU2QLIKS_cjs.CardContent; }
6295
5800
  });
6296
5801
  Object.defineProperty(exports, "CardDescription", {
6297
5802
  enumerable: true,
6298
- get: function () { return chunkIZPXHVPJ_cjs.CardDescription; }
5803
+ get: function () { return chunkOU2QLIKS_cjs.CardDescription; }
6299
5804
  });
6300
5805
  Object.defineProperty(exports, "CardFooter", {
6301
5806
  enumerable: true,
6302
- get: function () { return chunkIZPXHVPJ_cjs.CardFooter; }
5807
+ get: function () { return chunkOU2QLIKS_cjs.CardFooter; }
6303
5808
  });
6304
5809
  Object.defineProperty(exports, "CardHeader", {
6305
5810
  enumerable: true,
6306
- get: function () { return chunkIZPXHVPJ_cjs.CardHeader; }
5811
+ get: function () { return chunkOU2QLIKS_cjs.CardHeader; }
6307
5812
  });
6308
5813
  Object.defineProperty(exports, "CardTitle", {
6309
5814
  enumerable: true,
6310
- get: function () { return chunkIZPXHVPJ_cjs.CardTitle; }
5815
+ get: function () { return chunkOU2QLIKS_cjs.CardTitle; }
6311
5816
  });
6312
5817
  Object.defineProperty(exports, "Checkbox", {
6313
5818
  enumerable: true,
6314
- get: function () { return chunkIZPXHVPJ_cjs.Checkbox; }
5819
+ get: function () { return chunkOU2QLIKS_cjs.Checkbox; }
6315
5820
  });
6316
5821
  Object.defineProperty(exports, "Collapsible", {
6317
5822
  enumerable: true,
6318
- get: function () { return chunkIZPXHVPJ_cjs.Collapsible; }
5823
+ get: function () { return chunkOU2QLIKS_cjs.Collapsible; }
6319
5824
  });
6320
5825
  Object.defineProperty(exports, "CollapsibleContent", {
6321
5826
  enumerable: true,
6322
- get: function () { return chunkIZPXHVPJ_cjs.CollapsibleContent; }
5827
+ get: function () { return chunkOU2QLIKS_cjs.CollapsibleContent; }
6323
5828
  });
6324
5829
  Object.defineProperty(exports, "CollapsibleTrigger", {
6325
5830
  enumerable: true,
6326
- get: function () { return chunkIZPXHVPJ_cjs.CollapsibleTrigger; }
5831
+ get: function () { return chunkOU2QLIKS_cjs.CollapsibleTrigger; }
6327
5832
  });
6328
5833
  Object.defineProperty(exports, "Command", {
6329
5834
  enumerable: true,
6330
- get: function () { return chunkIZPXHVPJ_cjs.Command; }
5835
+ get: function () { return chunkOU2QLIKS_cjs.Command; }
6331
5836
  });
6332
5837
  Object.defineProperty(exports, "CommandDialog", {
6333
5838
  enumerable: true,
6334
- get: function () { return chunkIZPXHVPJ_cjs.CommandDialog; }
5839
+ get: function () { return chunkOU2QLIKS_cjs.CommandDialog; }
6335
5840
  });
6336
5841
  Object.defineProperty(exports, "CommandEmpty", {
6337
5842
  enumerable: true,
6338
- get: function () { return chunkIZPXHVPJ_cjs.CommandEmpty; }
5843
+ get: function () { return chunkOU2QLIKS_cjs.CommandEmpty; }
6339
5844
  });
6340
5845
  Object.defineProperty(exports, "CommandGroup", {
6341
5846
  enumerable: true,
6342
- get: function () { return chunkIZPXHVPJ_cjs.CommandGroup; }
5847
+ get: function () { return chunkOU2QLIKS_cjs.CommandGroup; }
6343
5848
  });
6344
5849
  Object.defineProperty(exports, "CommandInput", {
6345
5850
  enumerable: true,
6346
- get: function () { return chunkIZPXHVPJ_cjs.CommandInput; }
5851
+ get: function () { return chunkOU2QLIKS_cjs.CommandInput; }
6347
5852
  });
6348
5853
  Object.defineProperty(exports, "CommandItem", {
6349
5854
  enumerable: true,
6350
- get: function () { return chunkIZPXHVPJ_cjs.CommandItem; }
5855
+ get: function () { return chunkOU2QLIKS_cjs.CommandItem; }
6351
5856
  });
6352
5857
  Object.defineProperty(exports, "CommandList", {
6353
5858
  enumerable: true,
6354
- get: function () { return chunkIZPXHVPJ_cjs.CommandList; }
5859
+ get: function () { return chunkOU2QLIKS_cjs.CommandList; }
6355
5860
  });
6356
5861
  Object.defineProperty(exports, "CommandSeparator", {
6357
5862
  enumerable: true,
6358
- get: function () { return chunkIZPXHVPJ_cjs.CommandSeparator; }
5863
+ get: function () { return chunkOU2QLIKS_cjs.CommandSeparator; }
6359
5864
  });
6360
5865
  Object.defineProperty(exports, "CommandShortcut", {
6361
5866
  enumerable: true,
6362
- get: function () { return chunkIZPXHVPJ_cjs.CommandShortcut; }
5867
+ get: function () { return chunkOU2QLIKS_cjs.CommandShortcut; }
6363
5868
  });
6364
5869
  Object.defineProperty(exports, "Dialog", {
6365
5870
  enumerable: true,
6366
- get: function () { return chunkIZPXHVPJ_cjs.Dialog; }
5871
+ get: function () { return chunkOU2QLIKS_cjs.Dialog; }
6367
5872
  });
6368
5873
  Object.defineProperty(exports, "DialogClose", {
6369
5874
  enumerable: true,
6370
- get: function () { return chunkIZPXHVPJ_cjs.DialogClose; }
5875
+ get: function () { return chunkOU2QLIKS_cjs.DialogClose; }
6371
5876
  });
6372
5877
  Object.defineProperty(exports, "DialogContent", {
6373
5878
  enumerable: true,
6374
- get: function () { return chunkIZPXHVPJ_cjs.DialogContent; }
5879
+ get: function () { return chunkOU2QLIKS_cjs.DialogContent; }
6375
5880
  });
6376
5881
  Object.defineProperty(exports, "DialogDescription", {
6377
5882
  enumerable: true,
6378
- get: function () { return chunkIZPXHVPJ_cjs.DialogDescription; }
5883
+ get: function () { return chunkOU2QLIKS_cjs.DialogDescription; }
6379
5884
  });
6380
5885
  Object.defineProperty(exports, "DialogFooter", {
6381
5886
  enumerable: true,
6382
- get: function () { return chunkIZPXHVPJ_cjs.DialogFooter; }
5887
+ get: function () { return chunkOU2QLIKS_cjs.DialogFooter; }
6383
5888
  });
6384
5889
  Object.defineProperty(exports, "DialogHeader", {
6385
5890
  enumerable: true,
6386
- get: function () { return chunkIZPXHVPJ_cjs.DialogHeader; }
5891
+ get: function () { return chunkOU2QLIKS_cjs.DialogHeader; }
6387
5892
  });
6388
5893
  Object.defineProperty(exports, "DialogOverlay", {
6389
5894
  enumerable: true,
6390
- get: function () { return chunkIZPXHVPJ_cjs.DialogOverlay; }
5895
+ get: function () { return chunkOU2QLIKS_cjs.DialogOverlay; }
6391
5896
  });
6392
5897
  Object.defineProperty(exports, "DialogPortal", {
6393
5898
  enumerable: true,
6394
- get: function () { return chunkIZPXHVPJ_cjs.DialogPortal; }
5899
+ get: function () { return chunkOU2QLIKS_cjs.DialogPortal; }
6395
5900
  });
6396
5901
  Object.defineProperty(exports, "DialogTitle", {
6397
5902
  enumerable: true,
6398
- get: function () { return chunkIZPXHVPJ_cjs.DialogTitle; }
5903
+ get: function () { return chunkOU2QLIKS_cjs.DialogTitle; }
6399
5904
  });
6400
5905
  Object.defineProperty(exports, "DialogTrigger", {
6401
5906
  enumerable: true,
6402
- get: function () { return chunkIZPXHVPJ_cjs.DialogTrigger; }
5907
+ get: function () { return chunkOU2QLIKS_cjs.DialogTrigger; }
6403
5908
  });
6404
5909
  Object.defineProperty(exports, "DictateProvider", {
6405
5910
  enumerable: true,
6406
- get: function () { return chunkIZPXHVPJ_cjs.DictateProvider; }
5911
+ get: function () { return chunkOU2QLIKS_cjs.DictateProvider; }
6407
5912
  });
6408
- Object.defineProperty(exports, "DocumentEntity", {
6409
- enumerable: true,
6410
- get: function () { return chunkIZPXHVPJ_cjs.DocumentEntity; }
6411
- });
6412
- Object.defineProperty(exports, "DropdownMenu", {
6413
- enumerable: true,
6414
- get: function () { return chunkIZPXHVPJ_cjs.DropdownMenu; }
6415
- });
6416
- Object.defineProperty(exports, "DropdownMenuCheckboxItem", {
6417
- enumerable: true,
6418
- get: function () { return chunkIZPXHVPJ_cjs.DropdownMenuCheckboxItem; }
6419
- });
6420
- Object.defineProperty(exports, "DropdownMenuContent", {
6421
- enumerable: true,
6422
- get: function () { return chunkIZPXHVPJ_cjs.DropdownMenuContent; }
6423
- });
6424
- Object.defineProperty(exports, "DropdownMenuGroup", {
5913
+ Object.defineProperty(exports, "DocumentCard", {
6425
5914
  enumerable: true,
6426
- get: function () { return chunkIZPXHVPJ_cjs.DropdownMenuGroup; }
5915
+ get: function () { return chunkOU2QLIKS_cjs.DocumentCard; }
6427
5916
  });
6428
- Object.defineProperty(exports, "DropdownMenuItem", {
6429
- enumerable: true,
6430
- get: function () { return chunkIZPXHVPJ_cjs.DropdownMenuItem; }
6431
- });
6432
- Object.defineProperty(exports, "DropdownMenuLabel", {
6433
- enumerable: true,
6434
- get: function () { return chunkIZPXHVPJ_cjs.DropdownMenuLabel; }
6435
- });
6436
- Object.defineProperty(exports, "DropdownMenuPortal", {
6437
- enumerable: true,
6438
- get: function () { return chunkIZPXHVPJ_cjs.DropdownMenuPortal; }
6439
- });
6440
- Object.defineProperty(exports, "DropdownMenuRadioGroup", {
6441
- enumerable: true,
6442
- get: function () { return chunkIZPXHVPJ_cjs.DropdownMenuRadioGroup; }
6443
- });
6444
- Object.defineProperty(exports, "DropdownMenuRadioItem", {
6445
- enumerable: true,
6446
- get: function () { return chunkIZPXHVPJ_cjs.DropdownMenuRadioItem; }
6447
- });
6448
- Object.defineProperty(exports, "DropdownMenuSeparator", {
6449
- enumerable: true,
6450
- get: function () { return chunkIZPXHVPJ_cjs.DropdownMenuSeparator; }
6451
- });
6452
- Object.defineProperty(exports, "DropdownMenuShortcut", {
6453
- enumerable: true,
6454
- get: function () { return chunkIZPXHVPJ_cjs.DropdownMenuShortcut; }
6455
- });
6456
- Object.defineProperty(exports, "DropdownMenuSub", {
6457
- enumerable: true,
6458
- get: function () { return chunkIZPXHVPJ_cjs.DropdownMenuSub; }
6459
- });
6460
- Object.defineProperty(exports, "DropdownMenuSubContent", {
6461
- enumerable: true,
6462
- get: function () { return chunkIZPXHVPJ_cjs.DropdownMenuSubContent; }
6463
- });
6464
- Object.defineProperty(exports, "DropdownMenuSubTrigger", {
6465
- enumerable: true,
6466
- get: function () { return chunkIZPXHVPJ_cjs.DropdownMenuSubTrigger; }
6467
- });
6468
- Object.defineProperty(exports, "DropdownMenuTrigger", {
5917
+ Object.defineProperty(exports, "DocumentEntity", {
6469
5918
  enumerable: true,
6470
- get: function () { return chunkIZPXHVPJ_cjs.DropdownMenuTrigger; }
5919
+ get: function () { return chunkOU2QLIKS_cjs.DocumentEntity; }
6471
5920
  });
6472
5921
  Object.defineProperty(exports, "ENTITY_MAPPINGS", {
6473
5922
  enumerable: true,
6474
- get: function () { return chunkIZPXHVPJ_cjs.ENTITY_MAPPINGS; }
5923
+ get: function () { return chunkOU2QLIKS_cjs.ENTITY_MAPPINGS; }
6475
5924
  });
6476
5925
  Object.defineProperty(exports, "EmlIcon", {
6477
5926
  enumerable: true,
6478
- get: function () { return chunkIZPXHVPJ_cjs.EmlIcon; }
5927
+ get: function () { return chunkOU2QLIKS_cjs.EmlIcon; }
6479
5928
  });
6480
5929
  Object.defineProperty(exports, "EntityIcon", {
6481
5930
  enumerable: true,
6482
- get: function () { return chunkIZPXHVPJ_cjs.EntityIcon; }
5931
+ get: function () { return chunkOU2QLIKS_cjs.EntityIcon; }
6483
5932
  });
6484
5933
  Object.defineProperty(exports, "EntityPill", {
6485
5934
  enumerable: true,
6486
- get: function () { return chunkIZPXHVPJ_cjs.EntityPill; }
5935
+ get: function () { return chunkOU2QLIKS_cjs.EntityPill; }
6487
5936
  });
6488
5937
  Object.defineProperty(exports, "FILE_TYPE_COLORS", {
6489
5938
  enumerable: true,
6490
- get: function () { return chunkIZPXHVPJ_cjs.FILE_TYPE_COLORS; }
5939
+ get: function () { return chunkOU2QLIKS_cjs.FILE_TYPE_COLORS; }
6491
5940
  });
6492
5941
  Object.defineProperty(exports, "HoverCard", {
6493
5942
  enumerable: true,
6494
- get: function () { return chunkIZPXHVPJ_cjs.HoverCard; }
5943
+ get: function () { return chunkOU2QLIKS_cjs.HoverCard; }
6495
5944
  });
6496
5945
  Object.defineProperty(exports, "HoverCardContent", {
6497
5946
  enumerable: true,
6498
- get: function () { return chunkIZPXHVPJ_cjs.HoverCardContent; }
5947
+ get: function () { return chunkOU2QLIKS_cjs.HoverCardContent; }
6499
5948
  });
6500
5949
  Object.defineProperty(exports, "HoverCardTrigger", {
6501
5950
  enumerable: true,
6502
- get: function () { return chunkIZPXHVPJ_cjs.HoverCardTrigger; }
5951
+ get: function () { return chunkOU2QLIKS_cjs.HoverCardTrigger; }
6503
5952
  });
6504
5953
  Object.defineProperty(exports, "IconToggle", {
6505
5954
  enumerable: true,
6506
- get: function () { return chunkIZPXHVPJ_cjs.IconToggle; }
5955
+ get: function () { return chunkOU2QLIKS_cjs.IconToggle; }
6507
5956
  });
6508
5957
  Object.defineProperty(exports, "ImgIcon", {
6509
5958
  enumerable: true,
6510
- get: function () { return chunkIZPXHVPJ_cjs.ImgIcon; }
5959
+ get: function () { return chunkOU2QLIKS_cjs.ImgIcon; }
6511
5960
  });
6512
5961
  Object.defineProperty(exports, "InlineMicButton", {
6513
5962
  enumerable: true,
6514
- get: function () { return chunkIZPXHVPJ_cjs.InlineMicButton; }
5963
+ get: function () { return chunkOU2QLIKS_cjs.InlineMicButton; }
6515
5964
  });
6516
5965
  Object.defineProperty(exports, "Input", {
6517
5966
  enumerable: true,
6518
- get: function () { return chunkIZPXHVPJ_cjs.Input; }
5967
+ get: function () { return chunkOU2QLIKS_cjs.Input; }
6519
5968
  });
6520
5969
  Object.defineProperty(exports, "Label", {
6521
5970
  enumerable: true,
6522
- get: function () { return chunkIZPXHVPJ_cjs.Label; }
5971
+ get: function () { return chunkOU2QLIKS_cjs.Label; }
5972
+ });
5973
+ Object.defineProperty(exports, "MarkMenu", {
5974
+ enumerable: true,
5975
+ get: function () { return chunkOU2QLIKS_cjs.MarkMenu; }
6523
5976
  });
6524
5977
  Object.defineProperty(exports, "MarkdownRenderer", {
6525
5978
  enumerable: true,
6526
- get: function () { return chunkIZPXHVPJ_cjs.MarkdownRenderer; }
5979
+ get: function () { return chunkOU2QLIKS_cjs.MarkdownRenderer; }
6527
5980
  });
6528
5981
  Object.defineProperty(exports, "MarkdownStreamingContext", {
6529
5982
  enumerable: true,
6530
- get: function () { return chunkIZPXHVPJ_cjs.MarkdownStreamingContext; }
5983
+ get: function () { return chunkOU2QLIKS_cjs.MarkdownStreamingContext; }
6531
5984
  });
6532
5985
  Object.defineProperty(exports, "MicRecordingOverlay", {
6533
5986
  enumerable: true,
6534
- get: function () { return chunkIZPXHVPJ_cjs.MicRecordingOverlay; }
5987
+ get: function () { return chunkOU2QLIKS_cjs.MicRecordingOverlay; }
6535
5988
  });
6536
5989
  Object.defineProperty(exports, "MicWaveformIndicator", {
6537
5990
  enumerable: true,
6538
- get: function () { return chunkIZPXHVPJ_cjs.MicWaveformIndicator; }
5991
+ get: function () { return chunkOU2QLIKS_cjs.MicWaveformIndicator; }
6539
5992
  });
6540
5993
  Object.defineProperty(exports, "NEUTRAL_GRAY", {
6541
5994
  enumerable: true,
6542
- get: function () { return chunkIZPXHVPJ_cjs.NEUTRAL_GRAY; }
5995
+ get: function () { return chunkOU2QLIKS_cjs.NEUTRAL_GRAY; }
6543
5996
  });
6544
5997
  Object.defineProperty(exports, "PLACEHOLDER_COLOR", {
6545
5998
  enumerable: true,
6546
- get: function () { return chunkIZPXHVPJ_cjs.PLACEHOLDER_COLOR; }
5999
+ get: function () { return chunkOU2QLIKS_cjs.PLACEHOLDER_COLOR; }
6000
+ });
6001
+ Object.defineProperty(exports, "PassageCard", {
6002
+ enumerable: true,
6003
+ get: function () { return chunkOU2QLIKS_cjs.PassageCard; }
6547
6004
  });
6548
6005
  Object.defineProperty(exports, "PdfIcon", {
6549
6006
  enumerable: true,
6550
- get: function () { return chunkIZPXHVPJ_cjs.PdfIcon; }
6007
+ get: function () { return chunkOU2QLIKS_cjs.PdfIcon; }
6551
6008
  });
6552
6009
  Object.defineProperty(exports, "Popover", {
6553
6010
  enumerable: true,
6554
- get: function () { return chunkIZPXHVPJ_cjs.Popover; }
6011
+ get: function () { return chunkOU2QLIKS_cjs.Popover; }
6555
6012
  });
6556
6013
  Object.defineProperty(exports, "PopoverAnchor", {
6557
6014
  enumerable: true,
6558
- get: function () { return chunkIZPXHVPJ_cjs.PopoverAnchor; }
6015
+ get: function () { return chunkOU2QLIKS_cjs.PopoverAnchor; }
6559
6016
  });
6560
6017
  Object.defineProperty(exports, "PopoverContent", {
6561
6018
  enumerable: true,
6562
- get: function () { return chunkIZPXHVPJ_cjs.PopoverContent; }
6019
+ get: function () { return chunkOU2QLIKS_cjs.PopoverContent; }
6563
6020
  });
6564
6021
  Object.defineProperty(exports, "PopoverTrigger", {
6565
6022
  enumerable: true,
6566
- get: function () { return chunkIZPXHVPJ_cjs.PopoverTrigger; }
6023
+ get: function () { return chunkOU2QLIKS_cjs.PopoverTrigger; }
6567
6024
  });
6568
6025
  Object.defineProperty(exports, "PresenceLabel", {
6569
6026
  enumerable: true,
6570
- get: function () { return chunkIZPXHVPJ_cjs.PresenceLabel; }
6027
+ get: function () { return chunkOU2QLIKS_cjs.PresenceLabel; }
6571
6028
  });
6572
6029
  Object.defineProperty(exports, "Progress", {
6573
6030
  enumerable: true,
6574
- get: function () { return chunkIZPXHVPJ_cjs.Progress; }
6031
+ get: function () { return chunkOU2QLIKS_cjs.Progress; }
6575
6032
  });
6576
6033
  Object.defineProperty(exports, "ProjectEntity", {
6577
6034
  enumerable: true,
6578
- get: function () { return chunkIZPXHVPJ_cjs.ProjectEntity; }
6035
+ get: function () { return chunkOU2QLIKS_cjs.ProjectEntity; }
6579
6036
  });
6580
6037
  Object.defineProperty(exports, "RadioGroup", {
6581
6038
  enumerable: true,
6582
- get: function () { return chunkIZPXHVPJ_cjs.RadioGroup; }
6039
+ get: function () { return chunkOU2QLIKS_cjs.RadioGroup; }
6583
6040
  });
6584
6041
  Object.defineProperty(exports, "RadioGroupItem", {
6585
6042
  enumerable: true,
6586
- get: function () { return chunkIZPXHVPJ_cjs.RadioGroupItem; }
6043
+ get: function () { return chunkOU2QLIKS_cjs.RadioGroupItem; }
6587
6044
  });
6588
6045
  Object.defineProperty(exports, "RagDot", {
6589
6046
  enumerable: true,
6590
- get: function () { return chunkIZPXHVPJ_cjs.RagDot; }
6047
+ get: function () { return chunkOU2QLIKS_cjs.RagDot; }
6591
6048
  });
6592
- Object.defineProperty(exports, "ScrollArea", {
6049
+ Object.defineProperty(exports, "RelevanceDot", {
6593
6050
  enumerable: true,
6594
- get: function () { return chunkIZPXHVPJ_cjs.ScrollArea; }
6595
- });
6596
- Object.defineProperty(exports, "ScrollBar", {
6597
- enumerable: true,
6598
- get: function () { return chunkIZPXHVPJ_cjs.ScrollBar; }
6051
+ get: function () { return chunkOU2QLIKS_cjs.RelevanceDot; }
6599
6052
  });
6600
6053
  Object.defineProperty(exports, "Select", {
6601
6054
  enumerable: true,
6602
- get: function () { return chunkIZPXHVPJ_cjs.Select; }
6055
+ get: function () { return chunkOU2QLIKS_cjs.Select; }
6603
6056
  });
6604
6057
  Object.defineProperty(exports, "SelectContent", {
6605
6058
  enumerable: true,
6606
- get: function () { return chunkIZPXHVPJ_cjs.SelectContent; }
6059
+ get: function () { return chunkOU2QLIKS_cjs.SelectContent; }
6607
6060
  });
6608
6061
  Object.defineProperty(exports, "SelectGroup", {
6609
6062
  enumerable: true,
6610
- get: function () { return chunkIZPXHVPJ_cjs.SelectGroup; }
6063
+ get: function () { return chunkOU2QLIKS_cjs.SelectGroup; }
6611
6064
  });
6612
6065
  Object.defineProperty(exports, "SelectItem", {
6613
6066
  enumerable: true,
6614
- get: function () { return chunkIZPXHVPJ_cjs.SelectItem; }
6067
+ get: function () { return chunkOU2QLIKS_cjs.SelectItem; }
6615
6068
  });
6616
6069
  Object.defineProperty(exports, "SelectLabel", {
6617
6070
  enumerable: true,
6618
- get: function () { return chunkIZPXHVPJ_cjs.SelectLabel; }
6071
+ get: function () { return chunkOU2QLIKS_cjs.SelectLabel; }
6619
6072
  });
6620
6073
  Object.defineProperty(exports, "SelectScrollDownButton", {
6621
6074
  enumerable: true,
6622
- get: function () { return chunkIZPXHVPJ_cjs.SelectScrollDownButton; }
6075
+ get: function () { return chunkOU2QLIKS_cjs.SelectScrollDownButton; }
6623
6076
  });
6624
6077
  Object.defineProperty(exports, "SelectScrollUpButton", {
6625
6078
  enumerable: true,
6626
- get: function () { return chunkIZPXHVPJ_cjs.SelectScrollUpButton; }
6079
+ get: function () { return chunkOU2QLIKS_cjs.SelectScrollUpButton; }
6627
6080
  });
6628
6081
  Object.defineProperty(exports, "SelectSeparator", {
6629
6082
  enumerable: true,
6630
- get: function () { return chunkIZPXHVPJ_cjs.SelectSeparator; }
6083
+ get: function () { return chunkOU2QLIKS_cjs.SelectSeparator; }
6631
6084
  });
6632
6085
  Object.defineProperty(exports, "SelectTrigger", {
6633
6086
  enumerable: true,
6634
- get: function () { return chunkIZPXHVPJ_cjs.SelectTrigger; }
6087
+ get: function () { return chunkOU2QLIKS_cjs.SelectTrigger; }
6635
6088
  });
6636
6089
  Object.defineProperty(exports, "SelectValue", {
6637
6090
  enumerable: true,
6638
- get: function () { return chunkIZPXHVPJ_cjs.SelectValue; }
6091
+ get: function () { return chunkOU2QLIKS_cjs.SelectValue; }
6639
6092
  });
6640
6093
  Object.defineProperty(exports, "Separator", {
6641
6094
  enumerable: true,
6642
- get: function () { return chunkIZPXHVPJ_cjs.Separator; }
6095
+ get: function () { return chunkOU2QLIKS_cjs.Separator; }
6643
6096
  });
6644
6097
  Object.defineProperty(exports, "Slider", {
6645
6098
  enumerable: true,
6646
- get: function () { return chunkIZPXHVPJ_cjs.Slider; }
6099
+ get: function () { return chunkOU2QLIKS_cjs.Slider; }
6647
6100
  });
6648
6101
  Object.defineProperty(exports, "StatusPill", {
6649
6102
  enumerable: true,
6650
- get: function () { return chunkIZPXHVPJ_cjs.StatusPill; }
6103
+ get: function () { return chunkOU2QLIKS_cjs.StatusPill; }
6651
6104
  });
6652
6105
  Object.defineProperty(exports, "Switch", {
6653
6106
  enumerable: true,
6654
- get: function () { return chunkIZPXHVPJ_cjs.Switch; }
6107
+ get: function () { return chunkOU2QLIKS_cjs.Switch; }
6655
6108
  });
6656
6109
  Object.defineProperty(exports, "TAG_TYPE_ICONS", {
6657
6110
  enumerable: true,
6658
- get: function () { return chunkIZPXHVPJ_cjs.TAG_TYPE_ICONS; }
6111
+ get: function () { return chunkOU2QLIKS_cjs.TAG_TYPE_ICONS; }
6659
6112
  });
6660
6113
  Object.defineProperty(exports, "TAG_TYPE_LABELS", {
6661
6114
  enumerable: true,
6662
- get: function () { return chunkIZPXHVPJ_cjs.TAG_TYPE_LABELS; }
6115
+ get: function () { return chunkOU2QLIKS_cjs.TAG_TYPE_LABELS; }
6663
6116
  });
6664
6117
  Object.defineProperty(exports, "Table", {
6665
6118
  enumerable: true,
6666
- get: function () { return chunkIZPXHVPJ_cjs.Table; }
6119
+ get: function () { return chunkOU2QLIKS_cjs.Table; }
6667
6120
  });
6668
6121
  Object.defineProperty(exports, "TableBody", {
6669
6122
  enumerable: true,
6670
- get: function () { return chunkIZPXHVPJ_cjs.TableBody; }
6123
+ get: function () { return chunkOU2QLIKS_cjs.TableBody; }
6671
6124
  });
6672
6125
  Object.defineProperty(exports, "TableCaption", {
6673
6126
  enumerable: true,
6674
- get: function () { return chunkIZPXHVPJ_cjs.TableCaption; }
6127
+ get: function () { return chunkOU2QLIKS_cjs.TableCaption; }
6675
6128
  });
6676
6129
  Object.defineProperty(exports, "TableCell", {
6677
6130
  enumerable: true,
6678
- get: function () { return chunkIZPXHVPJ_cjs.TableCell; }
6131
+ get: function () { return chunkOU2QLIKS_cjs.TableCell; }
6679
6132
  });
6680
6133
  Object.defineProperty(exports, "TableFooter", {
6681
6134
  enumerable: true,
6682
- get: function () { return chunkIZPXHVPJ_cjs.TableFooter; }
6135
+ get: function () { return chunkOU2QLIKS_cjs.TableFooter; }
6683
6136
  });
6684
6137
  Object.defineProperty(exports, "TableHead", {
6685
6138
  enumerable: true,
6686
- get: function () { return chunkIZPXHVPJ_cjs.TableHead; }
6139
+ get: function () { return chunkOU2QLIKS_cjs.TableHead; }
6687
6140
  });
6688
6141
  Object.defineProperty(exports, "TableHeader", {
6689
6142
  enumerable: true,
6690
- get: function () { return chunkIZPXHVPJ_cjs.TableHeader; }
6143
+ get: function () { return chunkOU2QLIKS_cjs.TableHeader; }
6691
6144
  });
6692
6145
  Object.defineProperty(exports, "TableRow", {
6693
6146
  enumerable: true,
6694
- get: function () { return chunkIZPXHVPJ_cjs.TableRow; }
6147
+ get: function () { return chunkOU2QLIKS_cjs.TableRow; }
6695
6148
  });
6696
6149
  Object.defineProperty(exports, "Tabs", {
6697
6150
  enumerable: true,
6698
- get: function () { return chunkIZPXHVPJ_cjs.Tabs; }
6151
+ get: function () { return chunkOU2QLIKS_cjs.Tabs; }
6699
6152
  });
6700
6153
  Object.defineProperty(exports, "TabsContent", {
6701
6154
  enumerable: true,
6702
- get: function () { return chunkIZPXHVPJ_cjs.TabsContent; }
6155
+ get: function () { return chunkOU2QLIKS_cjs.TabsContent; }
6703
6156
  });
6704
6157
  Object.defineProperty(exports, "TabsList", {
6705
6158
  enumerable: true,
6706
- get: function () { return chunkIZPXHVPJ_cjs.TabsList; }
6159
+ get: function () { return chunkOU2QLIKS_cjs.TabsList; }
6707
6160
  });
6708
6161
  Object.defineProperty(exports, "TabsTrigger", {
6709
6162
  enumerable: true,
6710
- get: function () { return chunkIZPXHVPJ_cjs.TabsTrigger; }
6163
+ get: function () { return chunkOU2QLIKS_cjs.TabsTrigger; }
6711
6164
  });
6712
6165
  Object.defineProperty(exports, "TagEntity", {
6713
6166
  enumerable: true,
6714
- get: function () { return chunkIZPXHVPJ_cjs.TagEntity; }
6167
+ get: function () { return chunkOU2QLIKS_cjs.TagEntity; }
6715
6168
  });
6716
6169
  Object.defineProperty(exports, "Textarea", {
6717
6170
  enumerable: true,
6718
- get: function () { return chunkIZPXHVPJ_cjs.Textarea; }
6171
+ get: function () { return chunkOU2QLIKS_cjs.Textarea; }
6719
6172
  });
6720
6173
  Object.defineProperty(exports, "Toggle", {
6721
6174
  enumerable: true,
6722
- get: function () { return chunkIZPXHVPJ_cjs.Toggle; }
6175
+ get: function () { return chunkOU2QLIKS_cjs.Toggle; }
6723
6176
  });
6724
6177
  Object.defineProperty(exports, "ToggleGroup", {
6725
6178
  enumerable: true,
6726
- get: function () { return chunkIZPXHVPJ_cjs.ToggleGroup; }
6179
+ get: function () { return chunkOU2QLIKS_cjs.ToggleGroup; }
6727
6180
  });
6728
6181
  Object.defineProperty(exports, "ToggleGroupItem", {
6729
6182
  enumerable: true,
6730
- get: function () { return chunkIZPXHVPJ_cjs.ToggleGroupItem; }
6183
+ get: function () { return chunkOU2QLIKS_cjs.ToggleGroupItem; }
6731
6184
  });
6732
6185
  Object.defineProperty(exports, "Tooltip", {
6733
6186
  enumerable: true,
6734
- get: function () { return chunkIZPXHVPJ_cjs.Tooltip; }
6187
+ get: function () { return chunkOU2QLIKS_cjs.Tooltip; }
6735
6188
  });
6736
6189
  Object.defineProperty(exports, "TooltipContent", {
6737
6190
  enumerable: true,
6738
- get: function () { return chunkIZPXHVPJ_cjs.TooltipContent; }
6191
+ get: function () { return chunkOU2QLIKS_cjs.TooltipContent; }
6739
6192
  });
6740
6193
  Object.defineProperty(exports, "TooltipProvider", {
6741
6194
  enumerable: true,
6742
- get: function () { return chunkIZPXHVPJ_cjs.TooltipProvider; }
6195
+ get: function () { return chunkOU2QLIKS_cjs.TooltipProvider; }
6743
6196
  });
6744
6197
  Object.defineProperty(exports, "TooltipTrigger", {
6745
6198
  enumerable: true,
6746
- get: function () { return chunkIZPXHVPJ_cjs.TooltipTrigger; }
6199
+ get: function () { return chunkOU2QLIKS_cjs.TooltipTrigger; }
6747
6200
  });
6748
6201
  Object.defineProperty(exports, "UserEntity", {
6749
6202
  enumerable: true,
6750
- get: function () { return chunkIZPXHVPJ_cjs.UserEntity; }
6203
+ get: function () { return chunkOU2QLIKS_cjs.UserEntity; }
6204
+ });
6205
+ Object.defineProperty(exports, "UserMenu", {
6206
+ enumerable: true,
6207
+ get: function () { return chunkOU2QLIKS_cjs.UserMenu; }
6751
6208
  });
6752
6209
  Object.defineProperty(exports, "VISIBILITY_ICONS", {
6753
6210
  enumerable: true,
6754
- get: function () { return chunkIZPXHVPJ_cjs.VISIBILITY_ICONS; }
6211
+ get: function () { return chunkOU2QLIKS_cjs.VISIBILITY_ICONS; }
6755
6212
  });
6756
6213
  Object.defineProperty(exports, "VidIcon", {
6757
6214
  enumerable: true,
6758
- get: function () { return chunkIZPXHVPJ_cjs.VidIcon; }
6215
+ get: function () { return chunkOU2QLIKS_cjs.VidIcon; }
6759
6216
  });
6760
6217
  Object.defineProperty(exports, "VisibilityIcon", {
6761
6218
  enumerable: true,
6762
- get: function () { return chunkIZPXHVPJ_cjs.VisibilityIcon; }
6219
+ get: function () { return chunkOU2QLIKS_cjs.VisibilityIcon; }
6763
6220
  });
6764
6221
  Object.defineProperty(exports, "badgeVariants", {
6765
6222
  enumerable: true,
6766
- get: function () { return chunkIZPXHVPJ_cjs.badgeVariants; }
6223
+ get: function () { return chunkOU2QLIKS_cjs.badgeVariants; }
6767
6224
  });
6768
6225
  Object.defineProperty(exports, "buttonVariants", {
6769
6226
  enumerable: true,
6770
- get: function () { return chunkIZPXHVPJ_cjs.buttonVariants; }
6227
+ get: function () { return chunkOU2QLIKS_cjs.buttonVariants; }
6771
6228
  });
6772
6229
  Object.defineProperty(exports, "cardVariants", {
6773
6230
  enumerable: true,
6774
- get: function () { return chunkIZPXHVPJ_cjs.cardVariants; }
6775
- });
6776
- Object.defineProperty(exports, "cn", {
6777
- enumerable: true,
6778
- get: function () { return chunkIZPXHVPJ_cjs.cn; }
6231
+ get: function () { return chunkOU2QLIKS_cjs.cardVariants; }
6779
6232
  });
6780
6233
  Object.defineProperty(exports, "configureEntityRegistry", {
6781
6234
  enumerable: true,
6782
- get: function () { return chunkIZPXHVPJ_cjs.configureEntityRegistry; }
6235
+ get: function () { return chunkOU2QLIKS_cjs.configureEntityRegistry; }
6783
6236
  });
6784
6237
  Object.defineProperty(exports, "configureRagLabels", {
6785
6238
  enumerable: true,
6786
- get: function () { return chunkIZPXHVPJ_cjs.configureRagLabels; }
6239
+ get: function () { return chunkOU2QLIKS_cjs.configureRagLabels; }
6787
6240
  });
6788
6241
  Object.defineProperty(exports, "configureStatusRegistry", {
6789
6242
  enumerable: true,
6790
- get: function () { return chunkIZPXHVPJ_cjs.configureStatusRegistry; }
6243
+ get: function () { return chunkOU2QLIKS_cjs.configureStatusRegistry; }
6791
6244
  });
6792
6245
  Object.defineProperty(exports, "formatElapsed", {
6793
6246
  enumerable: true,
6794
- get: function () { return chunkIZPXHVPJ_cjs.formatElapsed; }
6247
+ get: function () { return chunkOU2QLIKS_cjs.formatElapsed; }
6795
6248
  });
6796
6249
  Object.defineProperty(exports, "getDocIcon", {
6797
6250
  enumerable: true,
6798
- get: function () { return chunkIZPXHVPJ_cjs.getDocIcon; }
6251
+ get: function () { return chunkOU2QLIKS_cjs.getDocIcon; }
6799
6252
  });
6800
6253
  Object.defineProperty(exports, "getEntityColor", {
6801
6254
  enumerable: true,
6802
- get: function () { return chunkIZPXHVPJ_cjs.getEntityColor; }
6255
+ get: function () { return chunkOU2QLIKS_cjs.getEntityColor; }
6803
6256
  });
6804
6257
  Object.defineProperty(exports, "getEntityColorStyles", {
6805
6258
  enumerable: true,
6806
- get: function () { return chunkIZPXHVPJ_cjs.getEntityColorStyles; }
6259
+ get: function () { return chunkOU2QLIKS_cjs.getEntityColorStyles; }
6807
6260
  });
6808
6261
  Object.defineProperty(exports, "getEntityIcon", {
6809
6262
  enumerable: true,
6810
- get: function () { return chunkIZPXHVPJ_cjs.getEntityIcon; }
6263
+ get: function () { return chunkOU2QLIKS_cjs.getEntityIcon; }
6811
6264
  });
6812
6265
  Object.defineProperty(exports, "getEntityLabel", {
6813
6266
  enumerable: true,
6814
- get: function () { return chunkIZPXHVPJ_cjs.getEntityLabel; }
6267
+ get: function () { return chunkOU2QLIKS_cjs.getEntityLabel; }
6815
6268
  });
6816
6269
  Object.defineProperty(exports, "getStatusVariant", {
6817
6270
  enumerable: true,
6818
- get: function () { return chunkIZPXHVPJ_cjs.getStatusVariant; }
6271
+ get: function () { return chunkOU2QLIKS_cjs.getStatusVariant; }
6819
6272
  });
6820
6273
  Object.defineProperty(exports, "getTagTypeIcon", {
6821
6274
  enumerable: true,
6822
- get: function () { return chunkIZPXHVPJ_cjs.getTagTypeIcon; }
6275
+ get: function () { return chunkOU2QLIKS_cjs.getTagTypeIcon; }
6823
6276
  });
6824
6277
  Object.defineProperty(exports, "getTagTypeLabel", {
6825
6278
  enumerable: true,
6826
- get: function () { return chunkIZPXHVPJ_cjs.getTagTypeLabel; }
6279
+ get: function () { return chunkOU2QLIKS_cjs.getTagTypeLabel; }
6827
6280
  });
6828
6281
  Object.defineProperty(exports, "getWorkspaceColor", {
6829
6282
  enumerable: true,
6830
- get: function () { return chunkIZPXHVPJ_cjs.getWorkspaceColor; }
6283
+ get: function () { return chunkOU2QLIKS_cjs.getWorkspaceColor; }
6831
6284
  });
6832
6285
  Object.defineProperty(exports, "markdownBaseComponents", {
6833
6286
  enumerable: true,
6834
- get: function () { return chunkIZPXHVPJ_cjs.markdownBaseComponents; }
6287
+ get: function () { return chunkOU2QLIKS_cjs.markdownBaseComponents; }
6835
6288
  });
6836
6289
  Object.defineProperty(exports, "splitMarkdownBlocks", {
6837
6290
  enumerable: true,
6838
- get: function () { return chunkIZPXHVPJ_cjs.splitMarkdownBlocks; }
6291
+ get: function () { return chunkOU2QLIKS_cjs.splitMarkdownBlocks; }
6839
6292
  });
6840
6293
  Object.defineProperty(exports, "toggleVariants", {
6841
6294
  enumerable: true,
6842
- get: function () { return chunkIZPXHVPJ_cjs.toggleVariants; }
6295
+ get: function () { return chunkOU2QLIKS_cjs.toggleVariants; }
6843
6296
  });
6844
6297
  Object.defineProperty(exports, "useAudioRecorder", {
6845
6298
  enumerable: true,
6846
- get: function () { return chunkIZPXHVPJ_cjs.useAudioRecorder; }
6299
+ get: function () { return chunkOU2QLIKS_cjs.useAudioRecorder; }
6300
+ });
6301
+ Object.defineProperty(exports, "DropdownMenu", {
6302
+ enumerable: true,
6303
+ get: function () { return chunkRZQACYNQ_cjs.DropdownMenu; }
6304
+ });
6305
+ Object.defineProperty(exports, "DropdownMenuCheckboxItem", {
6306
+ enumerable: true,
6307
+ get: function () { return chunkRZQACYNQ_cjs.DropdownMenuCheckboxItem; }
6308
+ });
6309
+ Object.defineProperty(exports, "DropdownMenuContent", {
6310
+ enumerable: true,
6311
+ get: function () { return chunkRZQACYNQ_cjs.DropdownMenuContent; }
6312
+ });
6313
+ Object.defineProperty(exports, "DropdownMenuGroup", {
6314
+ enumerable: true,
6315
+ get: function () { return chunkRZQACYNQ_cjs.DropdownMenuGroup; }
6316
+ });
6317
+ Object.defineProperty(exports, "DropdownMenuItem", {
6318
+ enumerable: true,
6319
+ get: function () { return chunkRZQACYNQ_cjs.DropdownMenuItem; }
6320
+ });
6321
+ Object.defineProperty(exports, "DropdownMenuLabel", {
6322
+ enumerable: true,
6323
+ get: function () { return chunkRZQACYNQ_cjs.DropdownMenuLabel; }
6324
+ });
6325
+ Object.defineProperty(exports, "DropdownMenuPortal", {
6326
+ enumerable: true,
6327
+ get: function () { return chunkRZQACYNQ_cjs.DropdownMenuPortal; }
6328
+ });
6329
+ Object.defineProperty(exports, "DropdownMenuRadioGroup", {
6330
+ enumerable: true,
6331
+ get: function () { return chunkRZQACYNQ_cjs.DropdownMenuRadioGroup; }
6332
+ });
6333
+ Object.defineProperty(exports, "DropdownMenuRadioItem", {
6334
+ enumerable: true,
6335
+ get: function () { return chunkRZQACYNQ_cjs.DropdownMenuRadioItem; }
6336
+ });
6337
+ Object.defineProperty(exports, "DropdownMenuSeparator", {
6338
+ enumerable: true,
6339
+ get: function () { return chunkRZQACYNQ_cjs.DropdownMenuSeparator; }
6340
+ });
6341
+ Object.defineProperty(exports, "DropdownMenuShortcut", {
6342
+ enumerable: true,
6343
+ get: function () { return chunkRZQACYNQ_cjs.DropdownMenuShortcut; }
6344
+ });
6345
+ Object.defineProperty(exports, "DropdownMenuSub", {
6346
+ enumerable: true,
6347
+ get: function () { return chunkRZQACYNQ_cjs.DropdownMenuSub; }
6348
+ });
6349
+ Object.defineProperty(exports, "DropdownMenuSubContent", {
6350
+ enumerable: true,
6351
+ get: function () { return chunkRZQACYNQ_cjs.DropdownMenuSubContent; }
6352
+ });
6353
+ Object.defineProperty(exports, "DropdownMenuSubTrigger", {
6354
+ enumerable: true,
6355
+ get: function () { return chunkRZQACYNQ_cjs.DropdownMenuSubTrigger; }
6356
+ });
6357
+ Object.defineProperty(exports, "DropdownMenuTrigger", {
6358
+ enumerable: true,
6359
+ get: function () { return chunkRZQACYNQ_cjs.DropdownMenuTrigger; }
6360
+ });
6361
+ Object.defineProperty(exports, "ScrollArea", {
6362
+ enumerable: true,
6363
+ get: function () { return chunkRZQACYNQ_cjs.ScrollArea; }
6364
+ });
6365
+ Object.defineProperty(exports, "ScrollBar", {
6366
+ enumerable: true,
6367
+ get: function () { return chunkRZQACYNQ_cjs.ScrollBar; }
6368
+ });
6369
+ Object.defineProperty(exports, "cn", {
6370
+ enumerable: true,
6371
+ get: function () { return chunkRZQACYNQ_cjs.cn; }
6847
6372
  });
6848
6373
  Object.defineProperty(exports, "ArbiProvider", {
6849
6374
  enumerable: true,
@@ -6889,7 +6414,6 @@ exports.DmComposer = DmComposer;
6889
6414
  exports.DocIcon = DocIcon;
6890
6415
  exports.DocQaPanel = DocQaPanel;
6891
6416
  exports.DocSearch = DocSearch;
6892
- exports.DocumentCard = DocumentCard;
6893
6417
  exports.DocumentCardMenu = DocumentCardMenu;
6894
6418
  exports.DocumentGallery = DocumentGallery;
6895
6419
  exports.DocumentReview = DocumentReview;
@@ -6907,17 +6431,13 @@ exports.LinkedInIcon = LinkedInIcon;
6907
6431
  exports.MessageArtifactCard = MessageArtifactCard;
6908
6432
  exports.MessageBubble = MessageBubble2;
6909
6433
  exports.MessageThread = MessageThread;
6910
- exports.NotificationBell = NotificationBell;
6911
6434
  exports.OpenAIIcon = OpenAIIcon;
6912
- exports.PassageCard = PassageCard;
6913
6435
  exports.PhotoCapture = PhotoCapture;
6914
6436
  exports.ProviderIcon = ProviderIcon;
6915
6437
  exports.RUN_WINDOW_MS = RUN_WINDOW_MS;
6916
- exports.RelevanceDot = RelevanceDot;
6917
6438
  exports.SemanticSearch = SemanticSearch;
6918
6439
  exports.TxtIcon = TxtIcon;
6919
6440
  exports.TypingIndicator = TypingIndicator;
6920
- exports.UserMenu = UserMenu;
6921
6441
  exports.VideoCapture = VideoCapture;
6922
6442
  exports.VoiceNoteRecorder = VoiceNoteRecorder;
6923
6443
  exports.XlsIcon = XlsIcon;
@@ -6927,7 +6447,6 @@ exports.captureFrameAsBlob = captureFrameAsBlob;
6927
6447
  exports.cropImage = cropImage;
6928
6448
  exports.dayKey = dayKey;
6929
6449
  exports.describeActivity = describeActivity;
6930
- exports.formatRelativeTime = formatRelativeTime;
6931
6450
  exports.getNotificationTypeMeta = getNotificationTypeMeta;
6932
6451
  exports.getWorkspaceActionText = getWorkspaceActionText;
6933
6452
  exports.getWorkspaceSentPhrase = getWorkspaceSentPhrase;