@tangle-network/agent-app 0.45.32 → 0.45.34

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 (61) hide show
  1. package/dist/{DesignCanvas-RSWQCXM3.js → DesignCanvas-EODMDQMT.js} +2 -2
  2. package/dist/{DesignCanvasEditor-XZMGIST7.js → DesignCanvasEditor-DRRZ6ZD3.js} +4 -4
  3. package/dist/{InvitationsPanel-CJ7DR4F7.js → InvitationsPanel-BATXZHY4.js} +2 -2
  4. package/dist/{MembersPanel-BB4OD2KB.js → MembersPanel-XNLF3SA4.js} +2 -2
  5. package/dist/agent-session-controls-1q1XR3j8.d.ts +257 -0
  6. package/dist/assistant/index.d.ts +1 -1
  7. package/dist/assistant/index.js +11 -10
  8. package/dist/assistant/index.js.map +1 -1
  9. package/dist/chat-react/index.d.ts +1 -1
  10. package/dist/chat-react/index.js +1 -1
  11. package/dist/{chunk-YIQHOAHN.js → chunk-3UBAO3N5.js} +3 -3
  12. package/dist/{chunk-YIQHOAHN.js.map → chunk-3UBAO3N5.js.map} +1 -1
  13. package/dist/{chunk-PURHUAOR.js → chunk-556RB3XI.js} +5 -5
  14. package/dist/chunk-556RB3XI.js.map +1 -0
  15. package/dist/{chunk-HZ4WCA37.js → chunk-5MZXWPFN.js} +9 -9
  16. package/dist/chunk-5MZXWPFN.js.map +1 -0
  17. package/dist/{chunk-FNM7JYME.js → chunk-5N434BGF.js} +17 -17
  18. package/dist/chunk-5N434BGF.js.map +1 -0
  19. package/dist/{chunk-5SXS3YAB.js → chunk-7MV23XBW.js} +2 -2
  20. package/dist/chunk-7MV23XBW.js.map +1 -0
  21. package/dist/{chunk-IFYJDX3J.js → chunk-AIHKKLKY.js} +47 -46
  22. package/dist/chunk-AIHKKLKY.js.map +1 -0
  23. package/dist/{chunk-S564OFTL.js → chunk-F4XLTVQ3.js} +3 -3
  24. package/dist/{chunk-S564OFTL.js.map → chunk-F4XLTVQ3.js.map} +1 -1
  25. package/dist/{chunk-LSQR6HM6.js → chunk-IN6LNZ7O.js} +35 -34
  26. package/dist/chunk-IN6LNZ7O.js.map +1 -0
  27. package/dist/chunk-MIZMWCKW.js +904 -0
  28. package/dist/chunk-MIZMWCKW.js.map +1 -0
  29. package/dist/{chunk-QGOU3VXH.js → chunk-UXRJAUJL.js} +3 -3
  30. package/dist/design-canvas-react/index.js +8 -8
  31. package/dist/design-canvas-react/index.js.map +1 -1
  32. package/dist/design-canvas-react/lazy.js +1 -1
  33. package/dist/studio-react/index.js +27 -27
  34. package/dist/studio-react/index.js.map +1 -1
  35. package/dist/teams-react/index.js +2 -2
  36. package/dist/teams-react/lazy.js +2 -2
  37. package/dist/theme/index.js +1 -1
  38. package/dist/theme/tailwind-preset.d.ts +5 -1
  39. package/dist/theme/tailwind-preset.js +11 -2
  40. package/dist/theme/tailwind-preset.js.map +1 -1
  41. package/dist/theme/tokens.css +126 -79
  42. package/dist/web-react/async/index.js +1 -1
  43. package/dist/web-react/index.d.ts +31 -91
  44. package/dist/web-react/index.js +13 -3
  45. package/dist/work-product-react/index.js +3 -3
  46. package/dist/work-product-react/index.js.map +1 -1
  47. package/package.json +1 -1
  48. package/dist/agent-session-controls-BwImzYKC.d.ts +0 -129
  49. package/dist/chunk-5SXS3YAB.js.map +0 -1
  50. package/dist/chunk-FNM7JYME.js.map +0 -1
  51. package/dist/chunk-HZ4WCA37.js.map +0 -1
  52. package/dist/chunk-IFYJDX3J.js.map +0 -1
  53. package/dist/chunk-L7FHRORY.js +0 -763
  54. package/dist/chunk-L7FHRORY.js.map +0 -1
  55. package/dist/chunk-LSQR6HM6.js.map +0 -1
  56. package/dist/chunk-PURHUAOR.js.map +0 -1
  57. /package/dist/{DesignCanvas-RSWQCXM3.js.map → DesignCanvas-EODMDQMT.js.map} +0 -0
  58. /package/dist/{DesignCanvasEditor-XZMGIST7.js.map → DesignCanvasEditor-DRRZ6ZD3.js.map} +0 -0
  59. /package/dist/{InvitationsPanel-CJ7DR4F7.js.map → InvitationsPanel-BATXZHY4.js.map} +0 -0
  60. /package/dist/{MembersPanel-BB4OD2KB.js.map → MembersPanel-XNLF3SA4.js.map} +0 -0
  61. /package/dist/{chunk-QGOU3VXH.js.map → chunk-UXRJAUJL.js.map} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/teams-react/components/InvitationsPanel.tsx"],"sourcesContent":["/**\n * Email-invitation panel: invite by email + role, and a history of every\n * invitation (pending / accepted / expired / revoked) with its email-delivery\n * status. Pending rows expose copy-link / resend / revoke. Fully callback-driven\n * — the host supplies the data and the async `onInvite` / `onResend` / `onRevoke`\n * callbacks (backed by `./teams/invitations-api`), so this imports no app router,\n * fetch client, or toast. Styled with the shipped Tangle Quiet tokens (`var(--*)`).\n *\n * Mount alongside a list-only `MembersPanel` (`showInviteForm={false}`): the\n * members panel shows accepted members, this owns the invite flow + pending list.\n */\n\nimport { useState } from 'react'\nimport type { WorkspaceRole } from '../../teams/roles'\nimport { hasWorkspaceRole } from '../../teams/roles'\nimport type { InvitationView, InvitationsPanelProps } from '../contracts'\n\nconst ASSIGNABLE: { value: WorkspaceRole; label: string }[] = [\n { value: 'viewer', label: 'Viewer' },\n { value: 'editor', label: 'Editor' },\n { value: 'admin', label: 'Admin' },\n]\n\nconst BADGE_BASE = 'inline-flex items-center rounded border px-2 py-0.5 text-[11px] font-semibold uppercase tracking-[0.05em]'\n\n// Lifecycle status: green = in, amber = awaiting, red = killed, muted = lapsed.\nconst STATUS_BADGE: Record<InvitationView['status'], string> = {\n accepted: 'border-[var(--surface-success-border)] bg-[var(--surface-success-bg)] text-[var(--surface-success-text)]',\n pending: 'border-[var(--surface-warning-border)] bg-[var(--surface-warning-bg)] text-[var(--surface-warning-text)]',\n revoked: 'border-[var(--surface-danger-border)] bg-[var(--surface-danger-bg)] text-[var(--surface-danger-text)]',\n expired: 'border-[var(--border-default)] text-[var(--text-muted)]',\n}\n\n// Delivery status: red = bounced, amber = not yet attempted, muted = the normal happy path.\nconst EMAIL_BADGE: Record<InvitationView['emailStatus'], string> = {\n sent: 'border-[var(--border-default)] text-[var(--text-muted)]',\n not_sent: 'border-[var(--surface-warning-border)] bg-[var(--surface-warning-bg)] text-[var(--surface-warning-text)]',\n failed: 'border-[var(--surface-danger-border)] bg-[var(--surface-danger-bg)] text-[var(--surface-danger-text)]',\n}\n\nexport function InvitationsPanel({\n invitations,\n currentRole,\n onInvite,\n onResend,\n onRevoke,\n onCopy,\n onNotice,\n}: InvitationsPanelProps) {\n const [inviteEmail, setInviteEmail] = useState('')\n const [inviteRole, setInviteRole] = useState<WorkspaceRole>('editor')\n const [inviting, setInviting] = useState(false)\n const [busyId, setBusyId] = useState<string | null>(null)\n\n const canManage = hasWorkspaceRole(currentRole, 'admin')\n\n function notify(kind: 'success' | 'error', message: string) {\n onNotice?.({ kind, message })\n }\n\n async function submitInvite() {\n const email = inviteEmail.trim()\n if (!email || inviting) return\n setInviting(true)\n try {\n await onInvite({ email, role: inviteRole })\n notify('success', `Invitation sent to ${email}`)\n setInviteEmail('')\n } catch (err) {\n notify('error', err instanceof Error ? err.message : 'Failed to invite')\n } finally {\n setInviting(false)\n }\n }\n\n async function copyLink(inviteUrl: string) {\n try {\n if (onCopy) await onCopy({ inviteUrl })\n else await navigator.clipboard.writeText(inviteUrl)\n notify('success', 'Invite link copied')\n } catch (err) {\n notify('error', err instanceof Error ? err.message : 'Failed to copy link')\n }\n }\n\n async function resend(invitationId: string) {\n setBusyId(invitationId)\n try {\n await onResend({ invitationId })\n notify('success', 'Invitation resent')\n } catch (err) {\n notify('error', err instanceof Error ? err.message : 'Failed to resend invitation')\n } finally {\n setBusyId(null)\n }\n }\n\n async function revoke(invitationId: string) {\n setBusyId(invitationId)\n try {\n await onRevoke({ invitationId })\n notify('success', 'Invitation revoked')\n } catch (err) {\n notify('error', err instanceof Error ? err.message : 'Failed to revoke invitation')\n } finally {\n setBusyId(null)\n }\n }\n\n return (\n <section className=\"flex flex-col gap-4\">\n {canManage && (\n <div className=\"flex flex-col gap-1.5\">\n <label className=\"text-xs font-medium text-[var(--text-muted)]\">Invite by email</label>\n <div className=\"flex gap-2\">\n <input\n type=\"email\"\n placeholder=\"colleague@example.com\"\n value={inviteEmail}\n aria-label=\"Invite email address\"\n onChange={(event) => setInviteEmail(event.target.value)}\n onKeyDown={(event) => { if (event.key === 'Enter') void submitInvite() }}\n className=\"flex-1 rounded border border-[var(--border-default)] bg-[var(--bg-input)] px-3 py-1.5 text-sm text-[var(--text-primary)] placeholder:text-[var(--text-muted)]\"\n />\n <select\n value={inviteRole}\n aria-label=\"Invite role\"\n onChange={(event) => setInviteRole(event.target.value as WorkspaceRole)}\n className=\"rounded border border-[var(--border-default)] bg-[var(--bg-input)] px-2 py-1.5 text-xs text-[var(--text-secondary)]\"\n >\n {ASSIGNABLE.map((option) => (\n <option key={option.value} value={option.value}>{option.label}</option>\n ))}\n </select>\n <button\n type=\"button\"\n onClick={() => void submitInvite()}\n disabled={inviting || !inviteEmail.trim()}\n className=\"rounded bg-[var(--brand-primary)] px-3 py-1.5 text-sm text-white disabled:opacity-50\"\n >\n {inviting ? 'Inviting…' : 'Invite'}\n </button>\n </div>\n </div>\n )}\n\n <div className=\"flex flex-col gap-2 border-t border-[var(--border-default)] pt-3\">\n <div className=\"flex items-center justify-between\">\n <h4 className=\"text-xs font-semibold text-[var(--text-primary)]\">Invitation history</h4>\n <span className=\"text-xs text-[var(--text-muted)]\">{invitations.length} total</span>\n </div>\n {invitations.length === 0 ? (\n <p className=\"text-sm text-[var(--text-muted)]\">No invitations yet.</p>\n ) : (\n invitations.map((invitation) => (\n <InvitationRow\n key={invitation.id}\n invitation={invitation}\n canManage={canManage}\n busy={busyId === invitation.id}\n onCopy={() => void copyLink(invitation.inviteUrl)}\n onResend={() => void resend(invitation.id)}\n onRevoke={() => void revoke(invitation.id)}\n />\n ))\n )}\n </div>\n </section>\n )\n}\n\ninterface InvitationRowProps {\n invitation: InvitationView\n canManage: boolean\n busy: boolean\n onCopy(): void\n onResend(): void\n onRevoke(): void\n}\n\nfunction InvitationRow({ invitation, canManage, busy, onCopy, onResend, onRevoke }: InvitationRowProps) {\n const isPending = invitation.status === 'pending'\n const emailFailed = invitation.emailStatus === 'failed'\n const expiry = new Date(invitation.expiresAt).toLocaleDateString('en-US', {\n month: 'short',\n day: 'numeric',\n year: 'numeric',\n })\n\n return (\n <div className=\"rounded-lg border border-[var(--border-default)] p-3\">\n <div className=\"flex items-start justify-between gap-3\">\n <div className=\"min-w-0\">\n <p className=\"truncate text-sm font-medium text-[var(--text-primary)]\">{invitation.email}</p>\n <p className=\"text-xs capitalize text-[var(--text-muted)]\">\n {invitation.permissions} · expires {expiry}\n </p>\n {emailFailed && (\n <p className=\"mt-1 text-xs text-[var(--surface-danger-text)]\">Email was not sent — copy the link to share it.</p>\n )}\n </div>\n <div className=\"flex shrink-0 items-center gap-2\">\n <span className={`${BADGE_BASE} ${STATUS_BADGE[invitation.status]}`}>\n {invitation.status}\n </span>\n <span className={`${BADGE_BASE} ${EMAIL_BADGE[invitation.emailStatus]}`}>\n {invitation.emailStatus.replace('_', ' ')}\n </span>\n </div>\n </div>\n {canManage && isPending && (\n <div className=\"mt-3 flex items-center justify-end gap-2\">\n <button\n type=\"button\"\n onClick={onCopy}\n disabled={busy}\n className=\"rounded border border-[var(--border-default)] px-2 py-1 text-xs text-[var(--text-secondary)] hover:text-[var(--text-primary)] disabled:opacity-50\"\n >\n Copy link\n </button>\n <button\n type=\"button\"\n onClick={onResend}\n disabled={busy}\n className=\"rounded border border-[var(--border-default)] px-2 py-1 text-xs text-[var(--text-secondary)] hover:text-[var(--text-primary)] disabled:opacity-50\"\n >\n {busy ? 'Working…' : 'Resend'}\n </button>\n <button\n type=\"button\"\n onClick={onRevoke}\n disabled={busy}\n className=\"rounded px-2 py-1 text-xs text-[var(--text-danger)] hover:bg-[var(--border-default)] disabled:opacity-50\"\n >\n Revoke\n </button>\n </div>\n )}\n </div>\n )\n}\n"],"mappings":"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","names":[]}
@@ -4,12 +4,13 @@ import {
4
4
  import {
5
5
  WorkProductCard,
6
6
  workProductPartsFromMessageParts
7
- } from "./chunk-HZ4WCA37.js";
7
+ } from "./chunk-5MZXWPFN.js";
8
8
  import {
9
9
  ChevronDown,
10
+ OVERLAY_SHADOW,
10
11
  POPOVER_OPTION_FOCUS,
11
12
  usePending
12
- } from "./chunk-L7FHRORY.js";
13
+ } from "./chunk-MIZMWCKW.js";
13
14
  import {
14
15
  UNTITLED_SESSION_LABEL,
15
16
  mergeSessionPages,
@@ -278,7 +279,7 @@ function InteractionActionButton({
278
279
  disabled,
279
280
  children
280
281
  }) {
281
- const variantClasses = variant === "primary" ? "bg-primary text-primary-foreground shadow-sm hover:bg-primary/90" : "border border-border bg-transparent text-foreground hover:bg-accent/40";
282
+ const variantClasses = variant === "primary" ? "bg-primary text-primary-foreground shadow-sm hover:bg-primary/90" : "border border-border bg-transparent text-foreground hover:bg-accent";
282
283
  return /* @__PURE__ */ jsx2(
283
284
  "button",
284
285
  {
@@ -303,7 +304,7 @@ function QuestionOptionList({
303
304
  return /* @__PURE__ */ jsx2(Fragment, { children: options.map((option, optionIndex) => {
304
305
  const inputId = `${idPrefix}-${optionIndex}`;
305
306
  const checked = selectedValues.includes(option.value);
306
- return /* @__PURE__ */ jsxs("label", { htmlFor: inputId, className: "flex cursor-pointer gap-2 rounded-lg border border-border/70 p-3 transition-colors hover:bg-muted/50", children: [
307
+ return /* @__PURE__ */ jsxs("label", { htmlFor: inputId, className: "flex cursor-pointer gap-2 rounded-lg border border-border/70 p-3 transition-colors hover:bg-accent", children: [
307
308
  /* @__PURE__ */ jsx2(
308
309
  "input",
309
310
  {
@@ -1055,7 +1056,7 @@ function AttachmentChip({ part, resolveFileUrl, fetchFile }) {
1055
1056
  const Icon = status === "error" ? WarningGlyph : iconForMediaType(part.mediaType);
1056
1057
  const className = [
1057
1058
  "inline-flex items-center gap-1 rounded-md border px-2 py-0.5 text-[11px]",
1058
- status === "error" ? "border-destructive/40 bg-destructive/10 text-destructive" : "border-border bg-muted/60 text-muted-foreground"
1059
+ status === "error" ? "border-destructive/40 bg-destructive/10 text-destructive" : "border-border bg-secondary text-muted-foreground"
1059
1060
  ].join(" ");
1060
1061
  return /* @__PURE__ */ jsxs4(
1061
1062
  "button",
@@ -1585,7 +1586,7 @@ function ChatComposer({
1585
1586
  pendingFiles.length > 0 && /* @__PURE__ */ jsx7("div", { className: "mb-2 flex flex-wrap gap-1.5", children: [...folderChips, ...fileChips].map((f) => /* @__PURE__ */ jsxs5(
1586
1587
  "span",
1587
1588
  {
1588
- className: `inline-flex items-center gap-1.5 rounded-full border px-2.5 py-1 text-xs ${f.status === "error" ? "border-destructive/40 text-destructive" : "border-border bg-muted/50 text-foreground"}`,
1589
+ className: `inline-flex items-center gap-1.5 rounded-full border px-2.5 py-1 text-xs ${f.status === "error" ? "border-destructive/40 text-destructive" : "border-border bg-secondary text-foreground"}`,
1589
1590
  children: [
1590
1591
  f.kind === "folder" ? /* @__PURE__ */ jsx7(FolderGlyph, { className: "h-3 w-3 shrink-0" }) : /* @__PURE__ */ jsx7(PaperclipGlyph, { className: "h-3 w-3 shrink-0" }),
1591
1592
  /* @__PURE__ */ jsx7("span", { className: "max-w-[150px] truncate", children: f.name }),
@@ -1639,7 +1640,7 @@ function ChatComposer({
1639
1640
  disabled,
1640
1641
  "aria-label": "Attach files",
1641
1642
  title: "Attach files",
1642
- className: "shrink-0 rounded-lg p-2 text-muted-foreground transition hover:bg-accent/40 hover:text-foreground disabled:opacity-50 focus:outline-none focus-visible:ring-2 focus-visible:ring-ring",
1643
+ className: "shrink-0 rounded-lg p-2 text-muted-foreground transition hover:bg-accent hover:text-foreground disabled:opacity-50 focus:outline-none focus-visible:ring-2 focus-visible:ring-ring",
1643
1644
  children: /* @__PURE__ */ jsx7(PaperclipGlyph, { className: "h-4 w-4" })
1644
1645
  }
1645
1646
  ),
@@ -1654,7 +1655,7 @@ function ChatComposer({
1654
1655
  disabled,
1655
1656
  "aria-label": "Attach folder",
1656
1657
  title: "Attach folder",
1657
- className: "shrink-0 rounded-lg p-2 text-muted-foreground transition hover:bg-accent/40 hover:text-foreground disabled:opacity-50 focus:outline-none focus-visible:ring-2 focus-visible:ring-ring",
1658
+ className: "shrink-0 rounded-lg p-2 text-muted-foreground transition hover:bg-accent hover:text-foreground disabled:opacity-50 focus:outline-none focus-visible:ring-2 focus-visible:ring-ring",
1658
1659
  children: /* @__PURE__ */ jsx7(FolderGlyph, { className: "h-4 w-4" })
1659
1660
  }
1660
1661
  ),
@@ -2369,7 +2370,7 @@ function FlowWaterfall({ trace }) {
2369
2370
  return /* @__PURE__ */ jsxs6("div", { className: "space-y-1", children: [
2370
2371
  rows.map((row, i) => /* @__PURE__ */ jsxs6("div", { className: "grid grid-cols-[minmax(0,2fr)_minmax(0,3fr)_auto] items-center gap-2", children: [
2371
2372
  /* @__PURE__ */ jsx8("span", { className: "truncate font-mono text-[11px] text-muted-foreground", title: row.name, children: row.name }),
2372
- /* @__PURE__ */ jsx8("div", { className: "relative h-2 rounded-sm bg-muted/40", children: /* @__PURE__ */ jsx8(
2373
+ /* @__PURE__ */ jsx8("div", { className: "relative h-2 rounded-sm bg-secondary", children: /* @__PURE__ */ jsx8(
2373
2374
  "div",
2374
2375
  {
2375
2376
  className: `absolute inset-y-0 rounded-sm ${row.ok ? BAR_CLASS[row.kind] : "bg-destructive/80"} ${row.approx ? "opacity-70" : ""}`,
@@ -2422,7 +2423,7 @@ function MissionActivityLane({ activity, startedAt, nowMs }) {
2422
2423
  ]
2423
2424
  }
2424
2425
  ),
2425
- expanded && /* @__PURE__ */ jsx8("div", { className: "rounded-md border border-border/50 bg-muted/10 p-2", children: /* @__PURE__ */ jsx8(
2426
+ expanded && /* @__PURE__ */ jsx8("div", { className: "rounded-md border border-border/50 bg-secondary p-2", children: /* @__PURE__ */ jsx8(
2426
2427
  FlowWaterfall,
2427
2428
  {
2428
2429
  trace: stepActivityFlowTrace(activity, {
@@ -2455,7 +2456,7 @@ function ActivityRow({
2455
2456
  /* @__PURE__ */ jsx8(
2456
2457
  "span",
2457
2458
  {
2458
- className: `shrink-0 rounded-full px-2 py-0.5 text-[10px] font-medium ${tone === "ok" ? "bg-success/10 text-success" : tone === "error" ? "bg-destructive/10 text-destructive" : tone === "live" ? "bg-warning/10 text-warning" : "bg-muted/60 text-muted-foreground"}`,
2459
+ className: `shrink-0 rounded-full px-2 py-0.5 text-[10px] font-medium ${tone === "ok" ? "bg-success/10 text-success" : tone === "error" ? "bg-destructive/10 text-destructive" : tone === "live" ? "bg-warning/10 text-warning" : "bg-secondary text-muted-foreground"}`,
2459
2460
  children: record.status
2460
2461
  }
2461
2462
  ),
@@ -2463,7 +2464,7 @@ function ActivityRow({
2463
2464
  /* @__PURE__ */ jsx8(ChevronGlyph, { className: `h-3 w-3 shrink-0 text-muted-foreground transition-transform ${open ? "rotate-180" : ""}` })
2464
2465
  ] }),
2465
2466
  open && /* @__PURE__ */ jsxs6("div", { className: "space-y-2.5 border-t border-border/40 px-3 py-2.5", children: [
2466
- record.durationMs !== void 0 && /* @__PURE__ */ jsx8("div", { className: "rounded-md border border-border/50 bg-muted/10 p-2", children: /* @__PURE__ */ jsx8(FlowWaterfall, { trace: stepActivityFlowTrace([record]) }) }),
2467
+ record.durationMs !== void 0 && /* @__PURE__ */ jsx8("div", { className: "rounded-md border border-border/50 bg-secondary p-2", children: /* @__PURE__ */ jsx8(FlowWaterfall, { trace: stepActivityFlowTrace([record]) }) }),
2467
2468
  /* @__PURE__ */ jsxs6("dl", { className: "grid grid-cols-[auto_1fr] gap-x-3 gap-y-1 font-mono text-[11px]", children: [
2468
2469
  /* @__PURE__ */ jsx8("dt", { className: "text-muted-foreground/60", children: "task" }),
2469
2470
  /* @__PURE__ */ jsx8("dd", { className: "truncate text-muted-foreground", children: record.taskId }),
@@ -2517,7 +2518,7 @@ function AgentActivityPanel({ fetchActivity, renderMissionRef, title = "Agent ac
2517
2518
  onClick: () => void load(),
2518
2519
  disabled: loading,
2519
2520
  "aria-label": "Refresh",
2520
- className: "rounded-md p-1.5 text-muted-foreground transition hover:bg-accent/30 hover:text-foreground disabled:opacity-50",
2521
+ className: "rounded-md p-1.5 text-muted-foreground transition hover:bg-accent hover:text-foreground disabled:opacity-50",
2521
2522
  children: /* @__PURE__ */ jsx8(RefreshGlyph, { className: `h-3.5 w-3.5 ${loading ? "animate-spin" : ""}` })
2522
2523
  }
2523
2524
  )
@@ -2532,7 +2533,7 @@ function AgentActivityPanel({ fetchActivity, renderMissionRef, title = "Agent ac
2532
2533
  type: "button",
2533
2534
  onClick: () => void load(cursor),
2534
2535
  disabled: loading,
2535
- className: "w-full rounded-md border border-border bg-card px-3 py-1.5 text-xs font-medium text-muted-foreground transition hover:bg-accent/30 disabled:opacity-50",
2536
+ className: "w-full rounded-md border border-border bg-card px-3 py-1.5 text-xs font-medium text-muted-foreground transition hover:bg-accent disabled:opacity-50",
2536
2537
  children: "Older runs"
2537
2538
  }
2538
2539
  )
@@ -2704,7 +2705,7 @@ import { jsx as jsx9, jsxs as jsxs7 } from "react/jsx-runtime";
2704
2705
  var BASIS_TONES = {
2705
2706
  extracted: "border-primary/30 bg-primary/10 text-primary",
2706
2707
  entered: "border-success/30 bg-success/10 text-success",
2707
- computed: "border-border bg-muted/50 text-foreground",
2708
+ computed: "border-border bg-secondary text-foreground",
2708
2709
  asserted: "border-warning/40 bg-warning/10 text-warning"
2709
2710
  };
2710
2711
  var STANDING_TONES = {
@@ -2815,7 +2816,7 @@ function SourceRow({
2815
2816
  {
2816
2817
  type: "button",
2817
2818
  onClick: () => onRetrySource(source, record),
2818
- className: "ml-2 rounded border border-border px-1.5 py-0.5 text-[11px] font-medium text-foreground hover:bg-accent/30 focus:outline-none focus-visible:ring-2 focus-visible:ring-ring",
2819
+ className: "ml-2 rounded border border-border px-1.5 py-0.5 text-[11px] font-medium text-foreground hover:bg-accent focus:outline-none focus-visible:ring-2 focus-visible:ring-ring",
2819
2820
  children: "Try again"
2820
2821
  }
2821
2822
  )
@@ -3396,7 +3397,7 @@ function DialogButton({
3396
3397
  disabled,
3397
3398
  variant = "primary"
3398
3399
  }) {
3399
- const tone = variant === "ghost" ? "text-muted-foreground hover:bg-accent/30 hover:text-foreground" : variant === "destructive" ? "bg-destructive text-destructive-foreground hover:opacity-90" : "bg-primary text-primary-foreground hover:opacity-90";
3400
+ const tone = variant === "ghost" ? "text-muted-foreground hover:bg-accent hover:text-foreground" : variant === "destructive" ? "bg-destructive text-destructive-foreground hover:opacity-90" : "bg-primary text-primary-foreground hover:opacity-90";
3400
3401
  return /* @__PURE__ */ jsx11(
3401
3402
  "button",
3402
3403
  {
@@ -3440,7 +3441,7 @@ function SessionDialog({
3440
3441
  role: "dialog",
3441
3442
  "aria-modal": "true",
3442
3443
  "aria-label": title,
3443
- className: "relative w-full max-w-sm rounded-xl border border-border bg-card p-5 shadow-lg",
3444
+ className: `relative w-full max-w-sm rounded-xl border border-border bg-popover p-5 ${OVERLAY_SHADOW}`,
3444
3445
  children: [
3445
3446
  /* @__PURE__ */ jsx11("h2", { className: "text-sm font-semibold text-foreground", children: title }),
3446
3447
  /* @__PURE__ */ jsx11("div", { className: "mt-3", children }),
@@ -3617,7 +3618,7 @@ function SessionHistoryPanel({
3617
3618
  type: "button",
3618
3619
  onClick: () => setSelectedIds(new Set(history.items.map((item) => item.id))),
3619
3620
  disabled: allVisibleSelected || history.items.length === 0,
3620
- className: "h-8 rounded-md border border-border px-2.5 text-xs font-medium text-foreground transition hover:bg-accent/30 disabled:opacity-50",
3621
+ className: "h-8 rounded-md border border-border px-2.5 text-xs font-medium text-foreground transition hover:bg-accent disabled:opacity-50",
3621
3622
  children: "Select all"
3622
3623
  }
3623
3624
  ),
@@ -3627,7 +3628,7 @@ function SessionHistoryPanel({
3627
3628
  type: "button",
3628
3629
  onClick: () => setSelectedIds(/* @__PURE__ */ new Set()),
3629
3630
  disabled: selectedCount === 0,
3630
- className: "h-8 rounded-md border border-border px-2.5 text-xs font-medium text-foreground transition hover:bg-accent/30 disabled:opacity-50",
3631
+ className: "h-8 rounded-md border border-border px-2.5 text-xs font-medium text-foreground transition hover:bg-accent disabled:opacity-50",
3631
3632
  children: "Deselect all"
3632
3633
  }
3633
3634
  ),
@@ -3670,7 +3671,7 @@ function SessionHistoryPanel({
3670
3671
  type: "button",
3671
3672
  onClick: () => openBulkAction({ kind: "older-than", days: parsedAgeDays }),
3672
3673
  disabled: !validAgeDays,
3673
- className: "h-8 rounded-md border border-border px-2.5 text-xs font-medium text-foreground transition hover:bg-accent/30 disabled:opacity-50",
3674
+ className: "h-8 rounded-md border border-border px-2.5 text-xs font-medium text-foreground transition hover:bg-accent disabled:opacity-50",
3674
3675
  children: [
3675
3676
  deleteLabel,
3676
3677
  " older"
@@ -3683,7 +3684,7 @@ function SessionHistoryPanel({
3683
3684
  type: "button",
3684
3685
  onClick: () => openBulkAction({ kind: "newer-than", days: parsedAgeDays }),
3685
3686
  disabled: !validAgeDays,
3686
- className: "h-8 rounded-md border border-border px-2.5 text-xs font-medium text-foreground transition hover:bg-accent/30 disabled:opacity-50",
3687
+ className: "h-8 rounded-md border border-border px-2.5 text-xs font-medium text-foreground transition hover:bg-accent disabled:opacity-50",
3687
3688
  children: [
3688
3689
  deleteLabel,
3689
3690
  " recent"
@@ -3775,7 +3776,7 @@ function ErrorBlock({ message, onRetry, inline }) {
3775
3776
  {
3776
3777
  type: "button",
3777
3778
  onClick: onRetry,
3778
- className: "h-8 rounded-md border border-border px-3 text-xs font-medium text-foreground transition hover:bg-accent/30",
3779
+ className: "h-8 rounded-md border border-border px-3 text-xs font-medium text-foreground transition hover:bg-accent",
3779
3780
  children: "Retry"
3780
3781
  }
3781
3782
  )
@@ -3803,7 +3804,7 @@ function SessionRow({
3803
3804
  const extras = extraActions?.(session) ?? [];
3804
3805
  const hasMenu = Boolean(onRename) || Boolean(onDelete) || extras.length > 0;
3805
3806
  const showUnread = Boolean(session.unread) && !responding;
3806
- return /* @__PURE__ */ jsxs9("div", { className: "group relative flex items-center gap-2 rounded-lg px-3 py-2.5 transition-colors hover:bg-accent/20", children: [
3807
+ return /* @__PURE__ */ jsxs9("div", { className: "group relative flex items-center gap-2 rounded-lg px-3 py-2.5 transition-colors hover:bg-accent", children: [
3807
3808
  selectable && /* @__PURE__ */ jsx11(
3808
3809
  "input",
3809
3810
  {
@@ -3841,7 +3842,7 @@ function SessionRow({
3841
3842
  ),
3842
3843
  menuOpen && /* @__PURE__ */ jsxs9(Fragment5, { children: [
3843
3844
  /* @__PURE__ */ jsx11("div", { className: "fixed inset-0 z-20", onClick: () => setMenuOpen(false), "aria-hidden": true }),
3844
- /* @__PURE__ */ jsxs9("div", { className: "absolute right-0 z-30 mt-1 w-36 overflow-hidden rounded-md border border-border bg-card py-1 shadow-lg", children: [
3845
+ /* @__PURE__ */ jsxs9("div", { className: `absolute right-0 z-30 mt-1 w-36 overflow-hidden rounded-md border border-border bg-popover py-1 ${OVERLAY_SHADOW}`, children: [
3845
3846
  onRename && /* @__PURE__ */ jsx11(
3846
3847
  "button",
3847
3848
  {
@@ -3850,7 +3851,7 @@ function SessionRow({
3850
3851
  setMenuOpen(false);
3851
3852
  onRename(session);
3852
3853
  },
3853
- className: "block w-full px-3 py-1.5 text-left text-xs text-foreground transition hover:bg-accent/30",
3854
+ className: "block w-full px-3 py-1.5 text-left text-xs text-foreground transition hover:bg-accent",
3854
3855
  children: renameLabel
3855
3856
  }
3856
3857
  ),
@@ -3862,7 +3863,7 @@ function SessionRow({
3862
3863
  setMenuOpen(false);
3863
3864
  action.onSelect();
3864
3865
  },
3865
- className: `block w-full px-3 py-1.5 text-left text-xs transition ${action.destructive ? "text-destructive hover:bg-destructive/10" : "text-foreground hover:bg-accent/30"}`,
3866
+ className: `block w-full px-3 py-1.5 text-left text-xs transition ${action.destructive ? "text-destructive hover:bg-destructive/10" : "text-foreground hover:bg-accent"}`,
3866
3867
  children: action.label
3867
3868
  },
3868
3869
  action.id
@@ -4528,7 +4529,7 @@ function RecordGrid({
4528
4529
  "Loading ",
4529
4530
  caption
4530
4531
  ] }),
4531
- Array.from({ length: Math.max(1, loadingRowCount) }, (_, index) => /* @__PURE__ */ jsx12("div", { className: "h-8 animate-pulse rounded-md bg-muted/50", "aria-hidden": true }, index))
4532
+ Array.from({ length: Math.max(1, loadingRowCount) }, (_, index) => /* @__PURE__ */ jsx12("div", { className: "h-8 animate-pulse rounded-md bg-secondary", "aria-hidden": true }, index))
4532
4533
  ]
4533
4534
  }
4534
4535
  )
@@ -4581,7 +4582,7 @@ function RecordGrid({
4581
4582
  {
4582
4583
  type: "button",
4583
4584
  onClick: empty.action.onClick,
4584
- className: "rounded-md border border-border px-3 py-1.5 text-sm font-medium text-foreground transition hover:bg-accent/30",
4585
+ className: "rounded-md border border-border px-3 py-1.5 text-sm font-medium text-foreground transition hover:bg-accent",
4585
4586
  children: empty.action.label
4586
4587
  }
4587
4588
  )),
@@ -4590,7 +4591,7 @@ function RecordGrid({
4590
4591
  {
4591
4592
  type: "button",
4592
4593
  onClick: openAdd,
4593
- className: "rounded-md border border-border px-3 py-1.5 text-sm font-medium text-foreground transition hover:bg-accent/30",
4594
+ className: "rounded-md border border-border px-3 py-1.5 text-sm font-medium text-foreground transition hover:bg-accent",
4594
4595
  children: addLabel
4595
4596
  }
4596
4597
  )
@@ -4730,7 +4731,7 @@ function RecordGrid({
4730
4731
  type: "button",
4731
4732
  "aria-label": `Keep ${rowLabel}`,
4732
4733
  onClick: () => setConfirmDelete(null),
4733
- className: "rounded-md border border-border px-2 py-1 text-xs font-medium text-muted-foreground transition hover:bg-accent/30",
4734
+ className: "rounded-md border border-border px-2 py-1 text-xs font-medium text-muted-foreground transition hover:bg-accent",
4734
4735
  children: "Cancel"
4735
4736
  }
4736
4737
  )
@@ -4784,7 +4785,7 @@ function RecordGrid({
4784
4785
  {
4785
4786
  type: "button",
4786
4787
  onClick: openAdd,
4787
- className: "inline-flex items-center gap-1.5 rounded-md border border-border px-3 py-1.5 text-sm font-medium text-foreground transition hover:bg-accent/30",
4788
+ className: "inline-flex items-center gap-1.5 rounded-md border border-border px-3 py-1.5 text-sm font-medium text-foreground transition hover:bg-accent",
4788
4789
  children: [
4789
4790
  /* @__PURE__ */ jsxs10(
4790
4791
  "svg",
@@ -4915,7 +4916,7 @@ function SourceMarker({ panelId, columnHeader, rowLabel, source, open, onToggle
4915
4916
  {
4916
4917
  id: panelId,
4917
4918
  role: "note",
4918
- className: "absolute left-0 top-5 z-10 w-64 rounded-lg border border-border bg-card p-3 text-left shadow-lg",
4919
+ className: `absolute left-0 top-5 z-10 w-64 rounded-lg border border-border bg-popover p-3 text-left ${OVERLAY_SHADOW}`,
4919
4920
  children: [
4920
4921
  source.quote && /* @__PURE__ */ jsxs10("span", { className: "block border-l-2 border-primary/50 pl-2 text-xs italic leading-snug text-foreground", children: [
4921
4922
  "\u201C",
@@ -5029,7 +5030,7 @@ function AddRecordForm({
5029
5030
  {
5030
5031
  type: "button",
5031
5032
  onClick: onCancel,
5032
- className: "rounded-md border border-border px-3 py-1.5 text-sm font-medium text-muted-foreground transition hover:bg-accent/30",
5033
+ className: "rounded-md border border-border px-3 py-1.5 text-sm font-medium text-muted-foreground transition hover:bg-accent",
5033
5034
  children: "Cancel"
5034
5035
  }
5035
5036
  )
@@ -5131,7 +5132,7 @@ function formatTokensPerSecond(msg) {
5131
5132
  return `${Math.round(msg.completionTokens / (msg.durationMs / 1e3))} tok/s`;
5132
5133
  }
5133
5134
  function RunDrillIn({ run, onClose }) {
5134
- return /* @__PURE__ */ jsxs11("div", { className: "fixed inset-y-0 right-0 z-50 flex w-[480px] max-w-full flex-col border-l border-border bg-card shadow-xl", children: [
5135
+ return /* @__PURE__ */ jsxs11("div", { className: `fixed inset-y-0 right-0 z-50 flex w-[480px] max-w-full flex-col border-l border-border bg-popover ${OVERLAY_SHADOW}`, children: [
5135
5136
  /* @__PURE__ */ jsxs11("div", { className: "flex items-center gap-2 border-b border-border px-4 py-3", children: [
5136
5137
  /* @__PURE__ */ jsx13(
5137
5138
  "span",
@@ -5149,7 +5150,7 @@ function RunDrillIn({ run, onClose }) {
5149
5150
  type: "button",
5150
5151
  onClick: onClose,
5151
5152
  "aria-label": "Close",
5152
- className: "rounded-md p-1.5 text-muted-foreground transition hover:bg-accent/30 hover:text-foreground",
5153
+ className: "rounded-md p-1.5 text-muted-foreground transition hover:bg-accent hover:text-foreground",
5153
5154
  children: /* @__PURE__ */ jsx13("svg", { className: "h-4 w-4", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", "aria-hidden": true, children: /* @__PURE__ */ jsx13("path", { d: "M18 6 6 18M6 6l12 12" }) })
5154
5155
  }
5155
5156
  )
@@ -5189,7 +5190,7 @@ function ChatEmptyState({
5189
5190
  {
5190
5191
  type: "button",
5191
5192
  onClick: door.onSelect,
5192
- className: "group flex min-h-[44px] flex-col items-start rounded-xl border border-border bg-card px-4 py-3 text-left transition hover:border-primary/40 hover:bg-accent/30",
5193
+ className: "group flex min-h-[44px] flex-col items-start rounded-xl border border-border bg-card px-4 py-3 text-left transition hover:border-primary/40 hover:bg-accent",
5193
5194
  children: [
5194
5195
  /* @__PURE__ */ jsx13("span", { className: "text-sm font-semibold text-foreground", children: door.label }),
5195
5196
  door.description && /* @__PURE__ */ jsx13("span", { className: "mt-0.5 text-[12px] leading-snug text-muted-foreground", children: door.description })
@@ -5343,7 +5344,7 @@ function ProposalCard({
5343
5344
  /* @__PURE__ */ jsx13("p", { className: "text-[10px] font-semibold uppercase tracking-wider text-warning-strong", children: "Needs your approval" }),
5344
5345
  /* @__PURE__ */ jsx13("p", { className: "mt-0.5 text-[15px] font-semibold leading-snug text-foreground", children: friendlyToolTitle(call) }),
5345
5346
  summary && /* @__PURE__ */ jsx13("p", { className: "mt-1 text-[13px] leading-relaxed text-muted-foreground", children: summary }),
5346
- meta.length > 0 && /* @__PURE__ */ jsx13("div", { className: "mt-1.5 flex flex-wrap items-center gap-1.5", children: meta.map((m, i) => /* @__PURE__ */ jsx13("span", { className: "rounded-full bg-muted/60 px-2 py-0.5 text-[11px] font-medium text-muted-foreground", children: m }, i)) })
5347
+ meta.length > 0 && /* @__PURE__ */ jsx13("div", { className: "mt-1.5 flex flex-wrap items-center gap-1.5", children: meta.map((m, i) => /* @__PURE__ */ jsx13("span", { className: "rounded-full bg-secondary px-2 py-0.5 text-[11px] font-medium text-muted-foreground", children: m }, i)) })
5347
5348
  ] })
5348
5349
  ] }),
5349
5350
  /* @__PURE__ */ jsxs11("div", { className: "flex flex-wrap items-center gap-2 px-4 pb-3.5 pt-3", children: [
@@ -5364,7 +5365,7 @@ function ProposalCard({
5364
5365
  type: "button",
5365
5366
  disabled: deciding,
5366
5367
  onClick: () => decide(() => approval.onReject(pending.proposalId, call.id)),
5367
- className: "inline-flex min-h-[40px] items-center justify-center rounded-lg border border-border bg-transparent px-4 py-2 text-sm font-medium text-muted-foreground transition hover:bg-accent/30 hover:text-foreground disabled:cursor-not-allowed disabled:opacity-60",
5368
+ className: "inline-flex min-h-[40px] items-center justify-center rounded-lg border border-border bg-transparent px-4 py-2 text-sm font-medium text-muted-foreground transition hover:bg-accent hover:text-foreground disabled:cursor-not-allowed disabled:opacity-60",
5368
5369
  children: "Reject"
5369
5370
  }
5370
5371
  )
@@ -5389,7 +5390,7 @@ function ProposalCard({
5389
5390
  function FollowupCard({ call }) {
5390
5391
  const a = call.args ?? {};
5391
5392
  const when = typeof a.when === "string" ? a.when : typeof a.at === "string" ? a.at : typeof a.schedule === "string" ? a.schedule : null;
5392
- return /* @__PURE__ */ jsxs11("div", { className: "w-fit min-w-[260px] max-w-full rounded-lg border border-border/60 border-l-2 border-l-primary/60 bg-muted/20 px-3 py-2 text-sm", children: [
5393
+ return /* @__PURE__ */ jsxs11("div", { className: "w-fit min-w-[260px] max-w-full rounded-lg border border-border/60 border-l-2 border-l-primary/60 bg-secondary px-3 py-2 text-sm", children: [
5393
5394
  /* @__PURE__ */ jsxs11("div", { className: "flex items-center gap-2", children: [
5394
5395
  /* @__PURE__ */ jsx13(ToolGlyph, { name: call.name, className: "h-3.5 w-3.5 shrink-0 text-primary/80" }),
5395
5396
  /* @__PURE__ */ jsx13("span", { className: "min-w-0 flex-1 truncate font-medium text-foreground", children: friendlyToolTitle(call) })
@@ -5428,7 +5429,7 @@ function ToolCallCard({
5428
5429
  return /* @__PURE__ */ jsxs11(
5429
5430
  "div",
5430
5431
  {
5431
- className: `w-fit min-w-[280px] max-w-full rounded-lg border text-xs transition ${failed ? "border-destructive/40 bg-destructive/5" : "border-border/60 bg-muted/20"}`,
5432
+ className: `w-fit min-w-[280px] max-w-full rounded-lg border text-xs transition ${failed ? "border-destructive/40 bg-destructive/5" : "border-border/60 bg-secondary"}`,
5432
5433
  children: [
5433
5434
  /* @__PURE__ */ jsxs11("div", { className: "flex w-full items-center gap-2 px-3 py-2", children: [
5434
5435
  /* @__PURE__ */ jsxs11(
@@ -5476,7 +5477,7 @@ function ToolCallCard({
5476
5477
  {
5477
5478
  type: "button",
5478
5479
  onClick: () => onOpenRun(call, message),
5479
- className: "mt-2 rounded border border-border bg-card px-2 py-1 text-[11px] font-medium transition hover:bg-accent/30",
5480
+ className: "mt-2 rounded border border-border bg-card px-2 py-1 text-[11px] font-medium transition hover:bg-accent",
5480
5481
  children: "Open full transcript \u2192"
5481
5482
  }
5482
5483
  )
@@ -5568,7 +5569,7 @@ function SegmentedBody({
5568
5569
  ) : !streaming && g.calls.length >= COLLAPSE_TOOL_RUN_AT && !g.calls.some(isImportantTool) ? /* @__PURE__ */ jsxs11(
5569
5570
  "details",
5570
5571
  {
5571
- className: "rounded-lg border-l-2 border-border/70 bg-muted/20 px-3 py-2",
5572
+ className: "rounded-lg border-l-2 border-border/70 bg-secondary px-3 py-2",
5572
5573
  children: [
5573
5574
  /* @__PURE__ */ jsxs11("summary", { className: "cursor-pointer select-none text-xs font-medium text-muted-foreground", children: [
5574
5575
  "Worked through ",
@@ -5620,7 +5621,7 @@ function CopyMessageButton({ text }) {
5620
5621
  onClick: copy,
5621
5622
  "aria-label": "Copy message",
5622
5623
  title: "Copy message",
5623
- className: "rounded p-0.5 text-muted-foreground transition hover:bg-accent/40 hover:text-foreground focus:outline-none focus-visible:ring-2 focus-visible:ring-ring",
5624
+ className: "rounded p-0.5 text-muted-foreground transition hover:bg-accent hover:text-foreground focus:outline-none focus-visible:ring-2 focus-visible:ring-ring",
5624
5625
  children: copied ? /* @__PURE__ */ jsx13("svg", { className: "h-3.5 w-3.5", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": true, children: /* @__PURE__ */ jsx13("polyline", { points: "20 6 9 17 4 12" }) }) : /* @__PURE__ */ jsxs11("svg", { className: "h-3.5 w-3.5", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": true, children: [
5625
5626
  /* @__PURE__ */ jsx13("rect", { x: "9", y: "9", width: "13", height: "13", rx: "2" }),
5626
5627
  /* @__PURE__ */ jsx13("path", { d: "M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1" })
@@ -5673,7 +5674,7 @@ function AssistantMessageImpl({
5673
5674
  formatTokensPerSecond(msg) && /* @__PURE__ */ jsx13("span", { children: formatTokensPerSecond(msg) }),
5674
5675
  formatModelCost(msg, models) && /* @__PURE__ */ jsx13("span", { children: formatModelCost(msg, models) })
5675
5676
  ] }),
5676
- reasoning && /* @__PURE__ */ jsxs11("details", { className: "mb-2 rounded-lg border-l-2 border-border/70 bg-muted/20 px-3 py-2", open: !hasAnswerText, children: [
5677
+ reasoning && /* @__PURE__ */ jsxs11("details", { className: "mb-2 rounded-lg border-l-2 border-border/70 bg-secondary px-3 py-2", open: !hasAnswerText, children: [
5677
5678
  /* @__PURE__ */ jsx13("summary", { className: "cursor-pointer select-none text-xs font-medium text-muted-foreground", children: !hasAnswerText ? /* @__PURE__ */ jsxs11("span", { className: "animate-pulse", children: [
5678
5679
  "Thinking",
5679
5680
  thinkingSeconds >= 3 ? ` \xB7 ${thinkingSeconds}s` : "\u2026"
@@ -5982,4 +5983,4 @@ export {
5982
5983
  useThinkingSeconds,
5983
5984
  ChatMessages
5984
5985
  };
5985
- //# sourceMappingURL=chunk-IFYJDX3J.js.map
5986
+ //# sourceMappingURL=chunk-AIHKKLKY.js.map