@cellarnode/ui 0.201.1 → 0.202.0

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 (155) hide show
  1. package/dist/agent/composer.d.ts +6 -1
  2. package/dist/agent/composer.d.ts.map +1 -1
  3. package/dist/agent/composer.js +43 -9
  4. package/dist/agent/composer.js.map +1 -1
  5. package/dist/agent/conversation.d.ts +20 -2
  6. package/dist/agent/conversation.d.ts.map +1 -1
  7. package/dist/agent/conversation.js +37 -5
  8. package/dist/agent/conversation.js.map +1 -1
  9. package/dist/agent/copy.d.ts +7 -0
  10. package/dist/agent/copy.d.ts.map +1 -1
  11. package/dist/agent/copy.js +9 -0
  12. package/dist/agent/copy.js.map +1 -1
  13. package/dist/agent/fixtures.d.ts +34 -0
  14. package/dist/agent/fixtures.d.ts.map +1 -1
  15. package/dist/agent/fixtures.js +77 -0
  16. package/dist/agent/fixtures.js.map +1 -1
  17. package/dist/agent/index.d.ts +18 -1
  18. package/dist/agent/index.d.ts.map +1 -1
  19. package/dist/agent/index.js +18 -1
  20. package/dist/agent/index.js.map +1 -1
  21. package/dist/agent/markdown.d.ts +64 -0
  22. package/dist/agent/markdown.d.ts.map +1 -0
  23. package/dist/agent/markdown.js +220 -0
  24. package/dist/agent/markdown.js.map +1 -0
  25. package/dist/agent/masked-value.d.ts +1 -0
  26. package/dist/agent/masked-value.d.ts.map +1 -1
  27. package/dist/agent/masked-value.js +4 -1
  28. package/dist/agent/masked-value.js.map +1 -1
  29. package/dist/agent/message.d.ts +26 -6
  30. package/dist/agent/message.d.ts.map +1 -1
  31. package/dist/agent/message.js +47 -11
  32. package/dist/agent/message.js.map +1 -1
  33. package/dist/agent/panel-frame.js +1 -1
  34. package/dist/agent/panel-frame.js.map +1 -1
  35. package/dist/agent/role-cards/card-kit.d.ts +111 -0
  36. package/dist/agent/role-cards/card-kit.d.ts.map +1 -0
  37. package/dist/agent/role-cards/card-kit.js +68 -0
  38. package/dist/agent/role-cards/card-kit.js.map +1 -0
  39. package/dist/agent/role-cards/data-table-card.d.ts +80 -0
  40. package/dist/agent/role-cards/data-table-card.d.ts.map +1 -0
  41. package/dist/agent/role-cards/data-table-card.js +214 -0
  42. package/dist/agent/role-cards/data-table-card.js.map +1 -0
  43. package/dist/agent/role-cards/fixtures.d.ts +124 -0
  44. package/dist/agent/role-cards/fixtures.d.ts.map +1 -0
  45. package/dist/agent/role-cards/fixtures.js +401 -0
  46. package/dist/agent/role-cards/fixtures.js.map +1 -0
  47. package/dist/agent/role-cards/host-contract.d.ts +214 -0
  48. package/dist/agent/role-cards/host-contract.d.ts.map +1 -0
  49. package/dist/agent/role-cards/host-contract.js +348 -0
  50. package/dist/agent/role-cards/host-contract.js.map +1 -0
  51. package/dist/agent/role-cards/inspector-drawer.d.ts +42 -0
  52. package/dist/agent/role-cards/inspector-drawer.d.ts.map +1 -0
  53. package/dist/agent/role-cards/inspector-drawer.js +68 -0
  54. package/dist/agent/role-cards/inspector-drawer.js.map +1 -0
  55. package/dist/agent/role-cards/inspector-fixtures.d.ts +84 -0
  56. package/dist/agent/role-cards/inspector-fixtures.d.ts.map +1 -0
  57. package/dist/agent/role-cards/inspector-fixtures.js +162 -0
  58. package/dist/agent/role-cards/inspector-fixtures.js.map +1 -0
  59. package/dist/agent/role-cards/inspector-record.d.ts +109 -0
  60. package/dist/agent/role-cards/inspector-record.d.ts.map +1 -0
  61. package/dist/agent/role-cards/inspector-record.js +346 -0
  62. package/dist/agent/role-cards/inspector-record.js.map +1 -0
  63. package/dist/agent/role-cards/inspector-view.d.ts +137 -0
  64. package/dist/agent/role-cards/inspector-view.d.ts.map +1 -0
  65. package/dist/agent/role-cards/inspector-view.js +261 -0
  66. package/dist/agent/role-cards/inspector-view.js.map +1 -0
  67. package/dist/agent/role-cards/match-card.d.ts +21 -0
  68. package/dist/agent/role-cards/match-card.d.ts.map +1 -0
  69. package/dist/agent/role-cards/match-card.js +30 -0
  70. package/dist/agent/role-cards/match-card.js.map +1 -0
  71. package/dist/agent/role-cards/offer-card.d.ts +27 -0
  72. package/dist/agent/role-cards/offer-card.d.ts.map +1 -0
  73. package/dist/agent/role-cards/offer-card.js +68 -0
  74. package/dist/agent/role-cards/offer-card.js.map +1 -0
  75. package/dist/agent/role-cards/opportunity-card.d.ts +26 -0
  76. package/dist/agent/role-cards/opportunity-card.d.ts.map +1 -0
  77. package/dist/agent/role-cards/opportunity-card.js +50 -0
  78. package/dist/agent/role-cards/opportunity-card.js.map +1 -0
  79. package/dist/agent/role-cards/product-card.d.ts +32 -0
  80. package/dist/agent/role-cards/product-card.d.ts.map +1 -0
  81. package/dist/agent/role-cards/product-card.js +50 -0
  82. package/dist/agent/role-cards/product-card.js.map +1 -0
  83. package/dist/agent/role-cards/proposal-diff.d.ts +38 -0
  84. package/dist/agent/role-cards/proposal-diff.d.ts.map +1 -0
  85. package/dist/agent/role-cards/proposal-diff.js +74 -0
  86. package/dist/agent/role-cards/proposal-diff.js.map +1 -0
  87. package/dist/agent/role-cards/registry.d.ts +43 -0
  88. package/dist/agent/role-cards/registry.d.ts.map +1 -0
  89. package/dist/agent/role-cards/registry.js +46 -0
  90. package/dist/agent/role-cards/registry.js.map +1 -0
  91. package/dist/agent/role-cards/score-meter.d.ts +12 -0
  92. package/dist/agent/role-cards/score-meter.d.ts.map +1 -0
  93. package/dist/agent/role-cards/score-meter.js +17 -0
  94. package/dist/agent/role-cards/score-meter.js.map +1 -0
  95. package/dist/agent/role-cards/surface-links.d.ts +54 -0
  96. package/dist/agent/role-cards/surface-links.d.ts.map +1 -0
  97. package/dist/agent/role-cards/surface-links.js +149 -0
  98. package/dist/agent/role-cards/surface-links.js.map +1 -0
  99. package/dist/agent/role-cards/text-safety.d.ts +24 -0
  100. package/dist/agent/role-cards/text-safety.d.ts.map +1 -0
  101. package/dist/agent/role-cards/text-safety.js +61 -0
  102. package/dist/agent/role-cards/text-safety.js.map +1 -0
  103. package/dist/agent/schema.d.ts +7 -0
  104. package/dist/agent/schema.d.ts.map +1 -1
  105. package/dist/agent/schema.js +25 -2
  106. package/dist/agent/schema.js.map +1 -1
  107. package/dist/agent/states.d.ts +1 -0
  108. package/dist/agent/states.d.ts.map +1 -1
  109. package/dist/agent/states.js +1 -1
  110. package/dist/agent/states.js.map +1 -1
  111. package/dist/agent/thinking.d.ts +13 -4
  112. package/dist/agent/thinking.d.ts.map +1 -1
  113. package/dist/agent/thinking.js +15 -6
  114. package/dist/agent/thinking.js.map +1 -1
  115. package/dist/agent/thread-list.d.ts +33 -2
  116. package/dist/agent/thread-list.d.ts.map +1 -1
  117. package/dist/agent/thread-list.js +158 -8
  118. package/dist/agent/thread-list.js.map +1 -1
  119. package/dist/agent/tool-activity-model.d.ts +136 -0
  120. package/dist/agent/tool-activity-model.d.ts.map +1 -0
  121. package/dist/agent/tool-activity-model.js +288 -0
  122. package/dist/agent/tool-activity-model.js.map +1 -0
  123. package/dist/agent/tool-activity.d.ts +55 -0
  124. package/dist/agent/tool-activity.d.ts.map +1 -0
  125. package/dist/agent/tool-activity.js +159 -0
  126. package/dist/agent/tool-activity.js.map +1 -0
  127. package/dist/agent/tool-call-card.d.ts +9 -1
  128. package/dist/agent/tool-call-card.d.ts.map +1 -1
  129. package/dist/agent/tool-call-card.js +7 -1
  130. package/dist/agent/tool-call-card.js.map +1 -1
  131. package/dist/agent/ui.js +1 -1
  132. package/dist/agent/ui.js.map +1 -1
  133. package/dist/agent/use-motion.d.ts +15 -0
  134. package/dist/agent/use-motion.d.ts.map +1 -0
  135. package/dist/agent/use-motion.js +52 -0
  136. package/dist/agent/use-motion.js.map +1 -0
  137. package/dist/chat/use-stick-to-bottom.d.ts +5 -0
  138. package/dist/chat/use-stick-to-bottom.d.ts.map +1 -1
  139. package/dist/chat/use-stick-to-bottom.js +11 -1
  140. package/dist/chat/use-stick-to-bottom.js.map +1 -1
  141. package/dist/components/sheet.d.ts +3 -1
  142. package/dist/components/sheet.d.ts.map +1 -1
  143. package/dist/components/sheet.js +2 -2
  144. package/dist/components/sheet.js.map +1 -1
  145. package/dist/portfolio-import/import-job-panels.d.ts +6 -0
  146. package/dist/portfolio-import/import-job-panels.d.ts.map +1 -1
  147. package/dist/portfolio-import/import-job-panels.js +11 -4
  148. package/dist/portfolio-import/import-job-panels.js.map +1 -1
  149. package/dist/portfolio-import/job-error-copy.d.ts +62 -0
  150. package/dist/portfolio-import/job-error-copy.d.ts.map +1 -0
  151. package/dist/portfolio-import/job-error-copy.js +78 -0
  152. package/dist/portfolio-import/job-error-copy.js.map +1 -0
  153. package/dist/realtime/organisation-events/schemas.d.ts +2 -2
  154. package/package.json +4 -1
  155. package/src/theme/tokens.css +66 -0
@@ -0,0 +1,159 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useId, useMemo, useState } from "react";
3
+ import { ArrowDown, Check, ChevronRight, CircleDashed, Lightbulb, LoaderCircle, RotateCw, TriangleAlert, } from "lucide-react";
4
+ import { cn } from "../lib/utils.js";
5
+ import { fmt, useCopy } from "./copy.js";
6
+ import { MaskedValue } from "./masked-value.js";
7
+ import { createToolNamer, formatToolResult, hasResult, resultOf, stepId, stepInFlight, } from "./tool-activity-model.js";
8
+ import { agentButton, focusRing, toneChip } from "./ui.js";
9
+ import { useChanged } from "./use-motion.js";
10
+ const DEFAULT_COPY = {
11
+ pending: "Queued",
12
+ running: "Running",
13
+ succeeded: "Done",
14
+ failed: "Failed",
15
+ retrying: "Retrying",
16
+ list: "Steps",
17
+ thought: "Thought",
18
+ thinking: "Thinking",
19
+ inProgress: "…",
20
+ shownBelow: "Shown below",
21
+ srStatusSeparator: ", ",
22
+ srCardSeparator: ": ",
23
+ arguments: "Arguments",
24
+ showResult: "Show result",
25
+ hideResult: "Hide result",
26
+ showAll: "Show all {count} lines",
27
+ showLess: "Show less",
28
+ retry: "Retry",
29
+ took: "Took {seconds}s",
30
+ steps: "{count} steps",
31
+ };
32
+ const STATUS = {
33
+ pending: { icon: CircleDashed, tone: "text-muted-foreground" },
34
+ running: { icon: LoaderCircle, spin: true, tone: "text-muted-foreground" },
35
+ succeeded: { icon: Check, tone: "text-muted-foreground" },
36
+ failed: { icon: TriangleAlert, tone: "text-[var(--tone-danger-fg)]" },
37
+ retrying: { icon: RotateCw, spin: true, tone: "text-muted-foreground" },
38
+ };
39
+ /** Past this many steps, a trail that was already finished when it appeared folds into one line. */
40
+ const FOLD_AFTER = 4;
41
+ const PREVIEW_LINES = 20;
42
+ /** Even "show all" stops here: a result of thousands of lines is not something to put in a chat bubble. */
43
+ const MAX_LINES = 400;
44
+ /**
45
+ * Small, quiet status mark. The mark that appears when a step finishes pops in on a WRAPPER, never on the icon itself: a
46
+ * spinning icon must keep its own animation, and two animations on one element would replace each other.
47
+ */
48
+ function StatusIcon({ status, kind, changed, }) {
49
+ const s = STATUS[status];
50
+ const Icon = kind === "thought" && status === "succeeded" ? Lightbulb : s.icon;
51
+ return (_jsx("span", { className: cn("inline-flex shrink-0", changed && "agent-pop"), children: _jsx(Icon, { "aria-hidden": true, className: cn("size-3.5", s.tone, s.spin && "animate-spin motion-reduce:animate-none") }) }, status));
52
+ }
53
+ function ResultPreview({ call, collapsed, c, }) {
54
+ const raw = resultOf(call);
55
+ const view = useMemo(() => formatToolResult(raw), [raw]);
56
+ const [shown, setShown] = useState(!collapsed);
57
+ const [all, setAll] = useState(false);
58
+ const id = useId();
59
+ if (!view)
60
+ return null;
61
+ const lines = view.text.split("\n");
62
+ const revealed = Math.min(lines.length, MAX_LINES);
63
+ const clipped = !all && lines.length > PREVIEW_LINES;
64
+ const text = all
65
+ ? lines.length > MAX_LINES
66
+ ? `${lines.slice(0, MAX_LINES).join("\n")}\n…`
67
+ : view.text
68
+ : clipped
69
+ ? `${lines.slice(0, PREVIEW_LINES).join("\n")}\n…`
70
+ : view.text;
71
+ return (_jsxs("div", { className: "flex flex-col items-start gap-1.5", children: [collapsed && (_jsxs("button", { type: "button", "aria-expanded": shown, "aria-controls": id, onClick: () => setShown((v) => !v), className: cn("inline-flex min-h-6 items-center gap-1 rounded-md text-xs/4 text-muted-foreground hover:text-foreground pointer-coarse:min-h-11", focusRing), children: [_jsx(ChevronRight, { "aria-hidden": true, className: cn("size-3.5 transition-transform duration-[var(--duration-micro)] motion-reduce:transition-none", shown && "rotate-90") }), shown ? c.hideResult : c.showResult] })), shown && (_jsxs("div", { id: id, className: "flex w-full min-w-0 flex-col items-start gap-1.5", children: [_jsx("pre", { tabIndex: 0, "data-kind": view.kind, className: cn("max-h-80 w-full overflow-auto rounded-lg bg-muted p-2.5 font-mono text-xs/5 break-words whitespace-pre-wrap text-foreground", focusRing), children: text }), lines.length > PREVIEW_LINES && (_jsx("button", { type: "button", onClick: () => setAll((v) => !v), className: cn("inline-flex min-h-6 items-center rounded-md text-xs/4 text-muted-foreground underline underline-offset-4 hover:text-foreground pointer-coarse:min-h-11", focusRing), children: all ? c.showLess : fmt(c.showAll, { count: revealed }) }))] }))] }));
72
+ }
73
+ function ToolDetails({ step, c, locale, }) {
74
+ const { call } = step;
75
+ const args = Object.entries(call.args ?? {});
76
+ return (_jsxs("div", { className: "agent-fade-in flex flex-col gap-1.5 pt-1 pb-1", children: [call.durationMs !== undefined && (_jsx("p", { className: "text-muted-foreground tabular-nums", children: fmt(c.took, { seconds: seconds(call.durationMs, locale) }) })), args.length > 0 && (_jsx("dl", { "aria-label": c.arguments, className: "grid grid-cols-[minmax(0,7rem)_1fr] gap-x-3 gap-y-1 rounded-lg bg-muted p-2.5", children: args.map(([k, v]) => (_jsxs("div", { className: "contents", children: [_jsx("dt", { className: "truncate font-mono text-muted-foreground", children: k }), _jsx("dd", { className: "min-w-0 font-mono break-words text-foreground", children: _jsx(MaskedValue, { value: v }) })] }, k))) })), call.status === "succeeded" && (_jsx(ResultPreview, { call: call, collapsed: step.shownBelow, c: c }))] }));
77
+ }
78
+ const plainSeconds = (s) => s.toFixed(1);
79
+ /** One formatter per locale tag for the life of the page (building an `Intl.NumberFormat` is not cheap); a bad tag is remembered too. */
80
+ const SECONDS_FORMATTERS = new Map();
81
+ function secondsFormatter(locale) {
82
+ const known = SECONDS_FORMATTERS.get(locale);
83
+ if (known)
84
+ return known;
85
+ let made;
86
+ try {
87
+ const format = new Intl.NumberFormat(locale, {
88
+ minimumFractionDigits: 1,
89
+ maximumFractionDigits: 1,
90
+ useGrouping: false,
91
+ });
92
+ made = (n) => format.format(n);
93
+ }
94
+ catch {
95
+ made = plainSeconds; // a malformed tag ("en_US") is the host's bug, not a reason to fail a render
96
+ }
97
+ SECONDS_FORMATTERS.set(locale, made);
98
+ return made;
99
+ }
100
+ /** Seconds with one decimal: "0.6" as JavaScript spells it, or in the host's locale ("0,6") when it gives one. */
101
+ const seconds = (ms, locale) => (locale === undefined ? plainSeconds : secondsFormatter(locale))(ms / 1000);
102
+ /** Cheap: looks at the keys and whether a result exists, never parses or prints it (this runs on every render). */
103
+ const hasToolDetails = (s) => Object.keys(s.call.args ?? {}).length > 0 ||
104
+ s.call.durationMs !== undefined ||
105
+ (s.call.status === "succeeded" && hasResult(s.call));
106
+ function StepRow({ step, namer, defaultOpen, onRetry, locale, c, }) {
107
+ const [open, setOpen] = useState(defaultOpen);
108
+ const panelId = useId();
109
+ const inFlight = stepInFlight(step);
110
+ const status = step.kind === "thought" ? (step.running ? "running" : "succeeded") : step.call.status;
111
+ const failedCall = step.kind === "tool" && step.call.status === "failed" ? step.call : undefined;
112
+ const tense = failedCall ? "failed" : inFlight ? "active" : "done";
113
+ const label = step.kind === "thought"
114
+ ? step.running
115
+ ? c.thinking
116
+ : c.thought
117
+ : namer.tool(step.call.name, tense);
118
+ const expandable = step.kind === "thought" ? step.summary.trim() !== "" : hasToolDetails(step);
119
+ const title = step.kind === "tool" ? step.call.name : undefined;
120
+ const swapped = useChanged(tense);
121
+ const statusChanged = useChanged(status);
122
+ const text = (_jsxs("span", { title: title, className: cn("min-w-0 truncate", swapped && "agent-swap-in", failedCall && "text-[var(--tone-danger-fg)]"), children: [label, inFlight ? c.inProgress : ""] }, tense));
123
+ const chip = step.kind === "tool" && step.shownBelow ? (_jsxs("span", { className: cn("inline-flex shrink-0 items-center gap-1 rounded-full px-2 py-0.5 text-xs/4", toneChip.neutral), children: [_jsx(ArrowDown, { "aria-hidden": true, className: "size-3" }), _jsxs("span", { className: "sr-only", children: [c.shownBelow, c.srCardSeparator] }), step.cardTitle || c.shownBelow] })) : null;
124
+ const statusSr = (_jsxs("span", { className: "sr-only", children: [c.srStatusSeparator, c[status]] }));
125
+ const rowClass = "inline-flex min-h-6 max-w-full items-center gap-2 text-left text-xs/5 text-muted-foreground";
126
+ return (_jsxs("li", { "data-status": status, "data-kind": step.kind, className: "flex flex-col", children: [expandable ? (_jsxs("button", { type: "button", "aria-expanded": open, "aria-controls": panelId, onClick: () => setOpen((v) => !v), className: cn(rowClass, "-ml-1 self-start rounded-md px-1 transition-colors duration-[var(--duration-micro)] hover:text-foreground motion-reduce:transition-none pointer-coarse:min-h-11", focusRing), children: [_jsx(StatusIcon, { status: status, kind: step.kind, changed: statusChanged }), text, chip, statusSr, _jsx(ChevronRight, { "aria-hidden": true, className: cn("size-3.5 shrink-0 transition-transform duration-[var(--duration-micro)] motion-reduce:transition-none", open && "rotate-90") })] })) : (_jsxs("div", { className: cn(rowClass, "self-start"), children: [_jsx(StatusIcon, { status: status, kind: step.kind, changed: statusChanged }), text, chip, statusSr] })), failedCall && (_jsxs("div", { className: "mt-0.5 flex items-start justify-between gap-2 pl-5.5", children: [_jsx("p", { className: "min-w-0 text-xs/5 break-words text-[var(--tone-danger-fg)]", children: failedCall.error }), onRetry && (_jsx("button", { type: "button", className: agentButton.quiet, onClick: () => onRetry(failedCall.id), children: c.retry }))] })), expandable && open && (_jsx("div", { id: panelId, className: "pl-5.5 text-xs/5", children: step.kind === "thought" ? (_jsx("p", { className: "agent-fade-in py-1 whitespace-pre-wrap text-muted-foreground", children: step.summary })) : (_jsx(ToolDetails, { step: step, c: c, locale: locale })) }))] }));
127
+ }
128
+ /**
129
+ * @internal The agent's work in a turn as a quiet vertical trail: one muted line per step ("Thought ›", "Checked MCP overview",
130
+ * "Searched organizations"), a small status icon each, in place of a card per tool call. The step in progress has a spinner
131
+ * (static under `prefers-reduced-motion`) and the in-progress suffix; the icon of a step that finishes pops in. A step opens to
132
+ * its arguments and a formatted, shortened result preview (the model-facing `untrusted`/`source` envelope is never shown). A step
133
+ * a domain card shows carries that card's name as a chip and keeps its preview behind a toggle. A failed step's error and Retry
134
+ * are always visible. A trail of more than four steps folds into one line ONLY if it was already finished when it appeared (a
135
+ * history trail): a trail that was live is never folded under the reader, and neither is one they have opened. A folded history
136
+ * trail that a live or failed step joins opens, and its fold line (it says the trail is done) is hidden until the trail settles.
137
+ * Approvals are never part of the trail.
138
+ */
139
+ export function AgentToolActivity({ steps, toolLabels, formatToolLabel, cardLabels, toolWording, onRetry, defaultOpen = false, locale, copy, className, }) {
140
+ const c = useCopy(DEFAULT_COPY, copy);
141
+ const namer = useMemo(() => createToolNamer({ toolLabels, formatToolLabel, cardLabels, toolWording }), [toolLabels, formatToolLabel, cardLabels, toolWording]);
142
+ const working = steps.some(stepInFlight);
143
+ const failed = steps.some((s) => s.kind === "tool" && s.call.status === "failed");
144
+ // Decided once, when the trail appears: a trail that is already finished and long is history and folds; one that was
145
+ // live (or has a failure, whose error and Retry stay visible) never does.
146
+ const [foldable] = useState(() => !working && !failed && steps.length > FOLD_AFTER);
147
+ const [folded, setFolded] = useState(() => foldable && !defaultOpen);
148
+ // A history trail that was folded when it mounted opens for good when a live step joins it (a reload mid-stream), or one
149
+ // that has failed (it can join already failed, without ever having been in flight): its error and Retry must be visible.
150
+ if ((working || failed) && folded)
151
+ setFolded(false);
152
+ // The fold line says the trail is done ("N steps"). While a step runs or has failed the list is held open, so a line that
153
+ // claimed otherwise (and a toggle that cannot toggle) would be wrong: it is hidden until the trail settles.
154
+ const showFold = foldable && !working && !failed;
155
+ const listId = useId();
156
+ const list = (_jsx("ul", { id: listId, "aria-label": c.list, className: "flex flex-col gap-0.5", children: steps.map((s) => (_jsx(StepRow, { step: s, namer: namer, defaultOpen: defaultOpen, onRetry: onRetry, locale: locale, c: c }, stepId(s)))) }));
157
+ return (_jsxs("div", { "data-status": working ? "running" : failed ? "failed" : "succeeded", className: cn("flex flex-col gap-0.5", className), children: [showFold && (_jsxs("button", { type: "button", "aria-expanded": !folded, "aria-controls": listId, onClick: () => setFolded((v) => !v), className: cn("-ml-1 inline-flex min-h-6 items-center gap-2 self-start rounded-md px-1 text-xs/5 text-muted-foreground transition-colors duration-[var(--duration-micro)] hover:text-foreground motion-reduce:transition-none pointer-coarse:min-h-11", focusRing), children: [_jsx(Check, { "aria-hidden": true, className: "size-3.5" }), _jsx("span", { className: "tabular-nums", children: fmt(c.steps, { count: steps.length }) }), _jsx(ChevronRight, { "aria-hidden": true, className: cn("size-3.5 transition-transform duration-[var(--duration-micro)] motion-reduce:transition-none", !folded && "rotate-90") })] })), (!foldable || !folded) && (_jsx("div", { className: foldable ? "agent-fade-in pl-1" : undefined, children: list }))] }));
158
+ }
159
+ //# sourceMappingURL=tool-activity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-activity.js","sourceRoot":"","sources":["../../src/agent/tool-activity.tsx"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import type { AgentToolCall } from "./schema.js";
2
+ /** @deprecated Part of `AgentToolCallCard`, which `AgentToolActivity` replaces. */
2
3
  export interface AgentToolCallCopy {
3
4
  pending: string;
4
5
  running: string;
@@ -11,6 +12,7 @@ export interface AgentToolCallCopy {
11
12
  duration: string;
12
13
  noArguments: string;
13
14
  }
15
+ /** @deprecated Part of `AgentToolCallCard`, which `AgentToolActivity` replaces. */
14
16
  export interface AgentToolCallCardProps {
15
17
  call: AgentToolCall;
16
18
  onRetry?: (id: string) => void;
@@ -19,6 +21,12 @@ export interface AgentToolCallCardProps {
19
21
  copy?: Partial<AgentToolCallCopy>;
20
22
  className?: string;
21
23
  }
22
- /** @internal Tool-call card: header, arguments disclosure (masked values marked), result slot, retry on failure. */
24
+ /**
25
+ * @internal Tool-call card: header, arguments disclosure (masked values marked), result slot, retry on failure.
26
+ *
27
+ * @deprecated `AgentMessage` no longer renders a card per tool call: a turn's calls are one `AgentToolActivity` row
28
+ * (humanised names, an unwrapped and shortened result, "shown below" when a card has the data). This stays exported for
29
+ * consumers that render a call on its own; it will go in a later release.
30
+ */
23
31
  export declare function AgentToolCallCard({ call, onRetry, children, copy, className, }: AgentToolCallCardProps): import("react/jsx-runtime").JSX.Element;
24
32
  //# sourceMappingURL=tool-call-card.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tool-call-card.d.ts","sourceRoot":"","sources":["../../src/agent/tool-call-card.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAG9C,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;CACrB;AAyBD,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,aAAa,CAAC;IACpB,OAAO,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,4CAA4C;IAC5C,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,IAAI,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,oHAAoH;AACpH,wBAAgB,iBAAiB,CAAC,EAChC,IAAI,EACJ,OAAO,EACP,QAAQ,EACR,IAAI,EACJ,SAAS,GACV,EAAE,sBAAsB,2CA2FxB"}
1
+ {"version":3,"file":"tool-call-card.d.ts","sourceRoot":"","sources":["../../src/agent/tool-call-card.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAG9C,mFAAmF;AACnF,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;CACrB;AAyBD,mFAAmF;AACnF,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,aAAa,CAAC;IACpB,OAAO,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,4CAA4C;IAC5C,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,IAAI,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,EAChC,IAAI,EACJ,OAAO,EACP,QAAQ,EACR,IAAI,EACJ,SAAS,GACV,EAAE,sBAAsB,2CA2FxB"}
@@ -24,7 +24,13 @@ const STATUS = {
24
24
  failed: { tone: "danger", icon: AlertCircle, key: "failed" },
25
25
  retrying: { tone: "warning", icon: RotateCw, key: "retrying", spin: true },
26
26
  };
27
- /** @internal Tool-call card: header, arguments disclosure (masked values marked), result slot, retry on failure. */
27
+ /**
28
+ * @internal Tool-call card: header, arguments disclosure (masked values marked), result slot, retry on failure.
29
+ *
30
+ * @deprecated `AgentMessage` no longer renders a card per tool call: a turn's calls are one `AgentToolActivity` row
31
+ * (humanised names, an unwrapped and shortened result, "shown below" when a card has the data). This stays exported for
32
+ * consumers that render a call on its own; it will go in a later release.
33
+ */
28
34
  export function AgentToolCallCard({ call, onRetry, children, copy, className, }) {
29
35
  const c = useCopy(DEFAULT_COPY, copy);
30
36
  const [open, setOpen] = useState(false);
@@ -1 +1 @@
1
- {"version":3,"file":"tool-call-card.js","sourceRoot":"","sources":["../../src/agent/tool-call-card.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tool-call-card.js","sourceRoot":"","sources":["../../src/agent/tool-call-card.tsx"],"names":[],"mappings":"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"}
package/dist/agent/ui.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { cn } from "../lib/utils.js";
2
2
  /** @internal Shared class recipes. Every colour routes through `--tone-*` or semantic tokens. */
3
3
  export const focusRing = "focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-ring";
4
- const buttonBase = "inline-flex min-h-8 min-w-8 items-center justify-center gap-1.5 rounded-lg px-3 text-sm/5 font-medium transition-[background-color,color,box-shadow] duration-[var(--duration-micro)] ease-[var(--ease-emphasized)] disabled:cursor-not-allowed disabled:opacity-50 aria-disabled:cursor-not-allowed aria-disabled:opacity-50 " +
4
+ const buttonBase = "inline-flex min-h-8 min-w-8 pointer-coarse:min-h-11 pointer-coarse:min-w-11 items-center justify-center gap-1.5 rounded-lg px-3 text-sm/5 font-medium transition-[background-color,color,box-shadow] duration-[var(--duration-micro)] ease-[var(--ease-emphasized)] disabled:cursor-not-allowed disabled:opacity-50 aria-disabled:cursor-not-allowed aria-disabled:opacity-50 " +
5
5
  focusRing;
6
6
  export const agentButton = {
7
7
  primary: cn(buttonBase, "bg-primary py-1.5 text-primary-foreground hover:bg-primary/90"),
@@ -1 +1 @@
1
- {"version":3,"file":"ui.js","sourceRoot":"","sources":["../../src/agent/ui.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAElC,iGAAiG;AACjG,MAAM,CAAC,MAAM,SAAS,GACpB,mFAAmF,CAAC;AAEtF,MAAM,UAAU,GACd,gUAAgU;IAChU,SAAS,CAAC;AAEZ,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,OAAO,EAAE,EAAE,CAAC,UAAU,EAAE,+DAA+D,CAAC;IACxF,MAAM,EAAE,EAAE,CACR,UAAU,EACV,0FAA0F,CAC3F;IACD,KAAK,EAAE,EAAE,CAAC,UAAU,EAAE,mDAAmD,CAAC;IAC1E,KAAK,EAAE,EAAE,CAAC,UAAU,EAAE,mEAAmE,CAAC;CAClF,CAAC;AAIX,MAAM,CAAC,MAAM,QAAQ,GAAyB;IAC5C,KAAK,EAAE,yDAAyD;IAChE,OAAO,EAAE,6DAA6D;IACtE,OAAO,EAAE,6DAA6D;IACtE,MAAM,EAAE,2DAA2D;IACnE,IAAI,EAAE,uDAAuD;IAC7D,OAAO,EAAE,6DAA6D;CACvE,CAAC;AAEF,2FAA2F;AAC3F,MAAM,CAAC,MAAM,KAAK,GAAG,uEAAuE,CAAC"}
1
+ {"version":3,"file":"ui.js","sourceRoot":"","sources":["../../src/agent/ui.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAElC,iGAAiG;AACjG,MAAM,CAAC,MAAM,SAAS,GACpB,mFAAmF,CAAC;AAEtF,MAAM,UAAU,GACd,gXAAgX;IAChX,SAAS,CAAC;AAEZ,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,OAAO,EAAE,EAAE,CAAC,UAAU,EAAE,+DAA+D,CAAC;IACxF,MAAM,EAAE,EAAE,CACR,UAAU,EACV,0FAA0F,CAC3F;IACD,KAAK,EAAE,EAAE,CAAC,UAAU,EAAE,mDAAmD,CAAC;IAC1E,KAAK,EAAE,EAAE,CAAC,UAAU,EAAE,mEAAmE,CAAC;CAClF,CAAC;AAIX,MAAM,CAAC,MAAM,QAAQ,GAAyB;IAC5C,KAAK,EAAE,yDAAyD;IAChE,OAAO,EAAE,6DAA6D;IACtE,OAAO,EAAE,6DAA6D;IACtE,MAAM,EAAE,2DAA2D;IACnE,IAAI,EAAE,uDAAuD;IAC7D,OAAO,EAAE,6DAA6D;CACvE,CAAC;AAEF,2FAA2F;AAC3F,MAAM,CAAC,MAAM,KAAK,GAAG,uEAAuE,CAAC"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * @internal Motion state for the agent chat. None of it decides whether motion is allowed: that is the CSS in
3
+ * `theme/tokens.css` (`prefers-reduced-motion: no-preference`). These only decide WHICH element animates, so that
4
+ * an element enters once and nothing animates twice.
5
+ */
6
+ /** True once `value` has changed from what the component first rendered with (never for the first value). */
7
+ export declare function useChanged<T>(value: T): boolean;
8
+ /**
9
+ * The ids that arrived after the list was first shown, one or two at a time. A thread loading its history, or switching
10
+ * to another thread, adds many at once and animates none of them.
11
+ */
12
+ export declare function useFreshIds(ids: readonly string[]): ReadonlySet<string>;
13
+ /** Whole seconds since mount while `enabled`. Ticks once a second; the caller keeps it out of live regions. */
14
+ export declare function useElapsedSeconds(enabled: boolean): number;
15
+ //# sourceMappingURL=use-motion.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-motion.d.ts","sourceRoot":"","sources":["../../src/agent/use-motion.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AAEH,6GAA6G;AAC7G,wBAAgB,UAAU,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAI/C;AAKD;;;GAGG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,SAAS,MAAM,EAAE,GAAG,WAAW,CAAC,MAAM,CAAC,CAkBvE;AAED,+GAA+G;AAC/G,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAY1D"}
@@ -0,0 +1,52 @@
1
+ import { useEffect, useState } from "react";
2
+ /**
3
+ * @internal Motion state for the agent chat. None of it decides whether motion is allowed: that is the CSS in
4
+ * `theme/tokens.css` (`prefers-reduced-motion: no-preference`). These only decide WHICH element animates, so that
5
+ * an element enters once and nothing animates twice.
6
+ */
7
+ /** True once `value` has changed from what the component first rendered with (never for the first value). */
8
+ export function useChanged(value) {
9
+ const [seen, setSeen] = useState({ value, changed: false });
10
+ if (!Object.is(seen.value, value))
11
+ setSeen({ value, changed: true });
12
+ return seen.changed;
13
+ }
14
+ /** More messages than this arriving in one render are history being loaded, not a conversation moving. */
15
+ const BULK_ARRIVAL = 2;
16
+ /**
17
+ * The ids that arrived after the list was first shown, one or two at a time. A thread loading its history, or switching
18
+ * to another thread, adds many at once and animates none of them.
19
+ */
20
+ export function useFreshIds(ids) {
21
+ const key = ids.join("\u0000");
22
+ const [state, setState] = useState(() => ({
23
+ key,
24
+ seen: new Set(ids),
25
+ fresh: new Set(),
26
+ }));
27
+ if (state.key !== key) {
28
+ const added = ids.filter((id) => !state.seen.has(id));
29
+ const seen = new Set(state.seen);
30
+ for (const id of ids)
31
+ seen.add(id);
32
+ setState({
33
+ key,
34
+ seen,
35
+ fresh: added.length > BULK_ARRIVAL ? state.fresh : new Set([...state.fresh, ...added]),
36
+ });
37
+ }
38
+ return state.fresh;
39
+ }
40
+ /** Whole seconds since mount while `enabled`. Ticks once a second; the caller keeps it out of live regions. */
41
+ export function useElapsedSeconds(enabled) {
42
+ const [seconds, setSeconds] = useState(0);
43
+ useEffect(() => {
44
+ if (!enabled)
45
+ return;
46
+ const startedAt = Date.now();
47
+ const id = window.setInterval(() => setSeconds(Math.floor((Date.now() - startedAt) / 1000)), 1000);
48
+ return () => window.clearInterval(id);
49
+ }, [enabled]);
50
+ return seconds;
51
+ }
52
+ //# sourceMappingURL=use-motion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-motion.js","sourceRoot":"","sources":["../../src/agent/use-motion.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAE5C;;;;GAIG;AAEH,6GAA6G;AAC7G,MAAM,UAAU,UAAU,CAAI,KAAQ;IACpC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;IAC5D,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC;QAAE,OAAO,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IACrE,OAAO,IAAI,CAAC,OAAO,CAAC;AACtB,CAAC;AAED,0GAA0G;AAC1G,MAAM,YAAY,GAAG,CAAC,CAAC;AAEvB;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,GAAsB;IAChD,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC/B,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC;QACxC,GAAG;QACH,IAAI,EAAE,IAAI,GAAG,CAAC,GAAG,CAAC;QAClB,KAAK,EAAE,IAAI,GAAG,EAAU;KACzB,CAAC,CAAC,CAAC;IACJ,IAAI,KAAK,CAAC,GAAG,KAAK,GAAG,EAAE,CAAC;QACtB,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QACtD,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACjC,KAAK,MAAM,EAAE,IAAI,GAAG;YAAE,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACnC,QAAQ,CAAC;YACP,GAAG;YACH,IAAI;YACJ,KAAK,EAAE,KAAK,CAAC,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,EAAE,GAAG,KAAK,CAAC,CAAC;SACvF,CAAC,CAAC;IACL,CAAC;IACD,OAAO,KAAK,CAAC,KAAK,CAAC;AACrB,CAAC;AAED,+GAA+G;AAC/G,MAAM,UAAU,iBAAiB,CAAC,OAAgB;IAChD,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC1C,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,OAAO;YAAE,OAAO;QACrB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,MAAM,EAAE,GAAG,MAAM,CAAC,WAAW,CAC3B,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,GAAG,IAAI,CAAC,CAAC,EAC7D,IAAI,CACL,CAAC;QACF,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;IACxC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IACd,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -34,11 +34,16 @@ export interface UseStickToBottomOptions {
34
34
  * caused it (a fling that lands at the bottom follows again).
35
35
  * - `release()` drops the intent for code that scrolls the list itself (for
36
36
  * example jumping to a quoted message); user input does this automatically.
37
+ * - `away` is that intent, readable while rendering: true once the viewer scrolled
38
+ * away from the bottom (or `release()` ran), false again when they come back, jump
39
+ * down, or the list is reused for another thread. It also covers a streaming message
40
+ * that keeps growing, which `hasNewBelow` (new messages only) does not.
37
41
  * - Prepended older messages keep the visible position. The scroller must set
38
42
  * `overflow-anchor: none` so browser anchoring does not also compensate.
39
43
  */
40
44
  export declare function useStickToBottom({ scrollerRef, contentRef, ids, lastIsOwn, active, hasMessages, }: UseStickToBottomOptions): {
41
45
  hasNewBelow: boolean;
46
+ away: boolean;
42
47
  scrollToBottom: () => void;
43
48
  release: () => void;
44
49
  };
@@ -1 +1 @@
1
- {"version":3,"file":"use-stick-to-bottom.d.ts","sourceRoot":"","sources":["../../src/chat/use-stick-to-bottom.ts"],"names":[],"mappings":"AAEA,yEAAyE;AACzE,eAAO,MAAM,4BAA4B,KAAK,CAAC;AAY/C,MAAM,WAAW,uBAAuB;IACtC,WAAW,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IACjD,kHAAkH;IAClH,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IAChD,+GAA+G;IAC/G,GAAG,EAAE,SAAS,MAAM,EAAE,CAAC;IACvB,oFAAoF;IACpF,SAAS,EAAE,OAAO,CAAC;IACnB,iGAAiG;IACjG,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,qFAAqF;IACrF,WAAW,EAAE,OAAO,CAAC;CACtB;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,WAAW,EACX,UAAU,EACV,GAAG,EACH,SAAS,EACT,MAAa,EACb,WAAW,GACZ,EAAE,uBAAuB;;;;EAmJzB"}
1
+ {"version":3,"file":"use-stick-to-bottom.d.ts","sourceRoot":"","sources":["../../src/chat/use-stick-to-bottom.ts"],"names":[],"mappings":"AAEA,yEAAyE;AACzE,eAAO,MAAM,4BAA4B,KAAK,CAAC;AAY/C,MAAM,WAAW,uBAAuB;IACtC,WAAW,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IACjD,kHAAkH;IAClH,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IAChD,+GAA+G;IAC/G,GAAG,EAAE,SAAS,MAAM,EAAE,CAAC;IACvB,oFAAoF;IACpF,SAAS,EAAE,OAAO,CAAC;IACnB,iGAAiG;IACjG,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,qFAAqF;IACrF,WAAW,EAAE,OAAO,CAAC;CACtB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,WAAW,EACX,UAAU,EACV,GAAG,EACH,SAAS,EACT,MAAa,EACb,WAAW,GACZ,EAAE,uBAAuB;;;;;EAyJzB"}
@@ -31,6 +31,10 @@ const TOUCH_MOMENTUM_WINDOW_MS = 1000;
31
31
  * caused it (a fling that lands at the bottom follows again).
32
32
  * - `release()` drops the intent for code that scrolls the list itself (for
33
33
  * example jumping to a quoted message); user input does this automatically.
34
+ * - `away` is that intent, readable while rendering: true once the viewer scrolled
35
+ * away from the bottom (or `release()` ran), false again when they come back, jump
36
+ * down, or the list is reused for another thread. It also covers a streaming message
37
+ * that keeps growing, which `hasNewBelow` (new messages only) does not.
34
38
  * - Prepended older messages keep the visible position. The scroller must set
35
39
  * `overflow-anchor: none` so browser anchoring does not also compensate.
36
40
  */
@@ -43,6 +47,8 @@ export function useStickToBottom({ scrollerRef, contentRef, ids, lastIsOwn, acti
43
47
  const pointerActiveRef = useRef(false);
44
48
  const pendingBottomRef = useRef(false);
45
49
  const [hasNewBelow, setHasNewBelow] = useState(false);
50
+ // The reader has let go of the bottom (the same intent as `wantBottomRef`, readable while rendering).
51
+ const [away, setAway] = useState(false);
46
52
  const firstId = ids[0];
47
53
  const lastId = ids[ids.length - 1];
48
54
  const writeBottom = useCallback(() => {
@@ -59,6 +65,7 @@ export function useStickToBottom({ scrollerRef, contentRef, ids, lastIsOwn, acti
59
65
  wantBottomRef.current = true;
60
66
  writeBottom();
61
67
  setHasNewBelow(false);
68
+ setAway(false);
62
69
  }, [scrollerRef, writeBottom]);
63
70
  // Messages changed.
64
71
  useLayoutEffect(() => {
@@ -136,9 +143,11 @@ export function useStickToBottom({ scrollerRef, contentRef, ids, lastIsOwn, acti
136
143
  if (distance <= STICK_TO_BOTTOM_THRESHOLD_PX) {
137
144
  wantBottomRef.current = true;
138
145
  setHasNewBelow(false);
146
+ setAway(false);
139
147
  }
140
148
  else if (user && !programmatic) {
141
149
  wantBottomRef.current = false;
150
+ setAway(true);
142
151
  }
143
152
  lastWrittenRef.current = null;
144
153
  heightRef.current = el.scrollHeight;
@@ -185,7 +194,8 @@ export function useStickToBottom({ scrollerRef, contentRef, ids, lastIsOwn, acti
185
194
  }, [scrollerRef, contentRef, scrollToBottom, writeBottom, hasMessages]);
186
195
  const release = useCallback(() => {
187
196
  wantBottomRef.current = false;
197
+ setAway(true);
188
198
  }, []);
189
- return { hasNewBelow, scrollToBottom, release };
199
+ return { hasNewBelow, away, scrollToBottom, release };
190
200
  }
191
201
  //# sourceMappingURL=use-stick-to-bottom.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-stick-to-bottom.js","sourceRoot":"","sources":["../../src/chat/use-stick-to-bottom.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"use-stick-to-bottom.js","sourceRoot":"","sources":["../../src/chat/use-stick-to-bottom.ts"],"names":[],"mappings":"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"}
@@ -12,8 +12,10 @@ declare const sheetVariants: (props?: ({
12
12
  side?: "left" | "right" | "top" | "bottom" | null | undefined;
13
13
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
14
14
  interface SheetContentProps extends React.ComponentPropsWithoutRef<typeof SheetPrimitive.Content>, VariantProps<typeof sheetVariants> {
15
+ /** Accessible name of the built-in close button. Defaults to "Close"; pass the translated string. */
16
+ closeLabel?: string;
15
17
  }
16
- declare function SheetContent({ side, className, children, ref, ...props }: SheetContentProps & {
18
+ declare function SheetContent({ side, className, children, closeLabel, ref, ...props }: SheetContentProps & {
17
19
  ref?: React.Ref<React.ElementRef<typeof SheetPrimitive.Content>>;
18
20
  }): import("react/jsx-runtime").JSX.Element;
19
21
  declare const SheetHeader: {
@@ -1 +1 @@
1
- {"version":3,"file":"sheet.d.ts","sourceRoot":"","sources":["../../src/components/sheet.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,cAAc,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAGlE,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,QAAA,MAAM,KAAK,sCAAsB,CAAC;AAElC,QAAA,MAAM,YAAY,6GAAyB,CAAC;AAE5C,QAAA,MAAM,UAAU,2GAAuB,CAAC;AAExC,QAAA,MAAM,WAAW,4CAAwB,CAAC;AAE1C,iBAAS,YAAY,CAAC,EACpB,SAAS,EACT,GAAG,EACH,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,wBAAwB,CAAC,OAAO,cAAc,CAAC,OAAO,CAAC,GAAG;IACjE,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;CAClE,2CAYA;AAED,QAAA,MAAM,aAAa;;8EAelB,CAAC;AAEF,UAAU,iBACR,SACE,KAAK,CAAC,wBAAwB,CAAC,OAAO,cAAc,CAAC,OAAO,CAAC,EAC7D,YAAY,CAAC,OAAO,aAAa,CAAC;CAAG;AAEzC,iBAAS,YAAY,CAAC,EACpB,IAAc,EACd,SAAS,EACT,QAAQ,EACR,GAAG,EACH,GAAG,KAAK,EACT,EAAE,iBAAiB,GAAG;IAAE,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,cAAc,CAAC,OAAO,CAAC,CAAC,CAAA;CAAE,2CAiB1F;AAED,QAAA,MAAM,WAAW;8BAA6B,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;;CAEjF,CAAC;AAGF,QAAA,MAAM,WAAW;8BAA6B,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;;CAKjF,CAAC;AAGF,iBAAS,UAAU,CAAC,EAClB,SAAS,EACT,GAAG,EACH,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,wBAAwB,CAAC,OAAO,cAAc,CAAC,KAAK,CAAC,GAAG;IAC/D,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;CAChE,2CAQA;AAED,iBAAS,gBAAgB,CAAC,EACxB,SAAS,EACT,GAAG,EACH,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,wBAAwB,CAAC,OAAO,cAAc,CAAC,WAAW,CAAC,GAAG;IACrE,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,cAAc,CAAC,WAAW,CAAC,CAAC,CAAC;CACtE,2CAQA;AAED,OAAO,EACL,KAAK,EACL,UAAU,EACV,YAAY,EACZ,gBAAgB,EAChB,WAAW,EACX,WAAW,EACX,YAAY,EACZ,WAAW,EACX,UAAU,EACV,YAAY,GACb,CAAC"}
1
+ {"version":3,"file":"sheet.d.ts","sourceRoot":"","sources":["../../src/components/sheet.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,cAAc,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAGlE,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,QAAA,MAAM,KAAK,sCAAsB,CAAC;AAElC,QAAA,MAAM,YAAY,6GAAyB,CAAC;AAE5C,QAAA,MAAM,UAAU,2GAAuB,CAAC;AAExC,QAAA,MAAM,WAAW,4CAAwB,CAAC;AAE1C,iBAAS,YAAY,CAAC,EACpB,SAAS,EACT,GAAG,EACH,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,wBAAwB,CAAC,OAAO,cAAc,CAAC,OAAO,CAAC,GAAG;IACjE,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;CAClE,2CAYA;AAED,QAAA,MAAM,aAAa;;8EAelB,CAAC;AAEF,UAAU,iBACR,SACE,KAAK,CAAC,wBAAwB,CAAC,OAAO,cAAc,CAAC,OAAO,CAAC,EAC7D,YAAY,CAAC,OAAO,aAAa,CAAC;IACpC,qGAAqG;IACrG,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,iBAAS,YAAY,CAAC,EACpB,IAAc,EACd,SAAS,EACT,QAAQ,EACR,UAAoB,EACpB,GAAG,EACH,GAAG,KAAK,EACT,EAAE,iBAAiB,GAAG;IAAE,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,cAAc,CAAC,OAAO,CAAC,CAAC,CAAA;CAAE,2CAiB1F;AAED,QAAA,MAAM,WAAW;8BAA6B,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;;CAEjF,CAAC;AAGF,QAAA,MAAM,WAAW;8BAA6B,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;;CAKjF,CAAC;AAGF,iBAAS,UAAU,CAAC,EAClB,SAAS,EACT,GAAG,EACH,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,wBAAwB,CAAC,OAAO,cAAc,CAAC,KAAK,CAAC,GAAG;IAC/D,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;CAChE,2CAQA;AAED,iBAAS,gBAAgB,CAAC,EACxB,SAAS,EACT,GAAG,EACH,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,wBAAwB,CAAC,OAAO,cAAc,CAAC,WAAW,CAAC,GAAG;IACrE,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,cAAc,CAAC,WAAW,CAAC,CAAC,CAAC;CACtE,2CAQA;AAED,OAAO,EACL,KAAK,EACL,UAAU,EACV,YAAY,EACZ,gBAAgB,EAChB,WAAW,EACX,WAAW,EACX,YAAY,EACZ,WAAW,EACX,UAAU,EACV,YAAY,GACb,CAAC"}
@@ -24,8 +24,8 @@ const sheetVariants = cva("fixed z-50 gap-4 bg-background p-6 shadow-lg data-[st
24
24
  side: "right",
25
25
  },
26
26
  });
27
- function SheetContent({ side = "right", className, children, ref, ...props }) {
28
- return (_jsxs(SheetPortal, { children: [_jsx(SheetOverlay, {}), _jsxs(SheetPrimitive.Content, { ref: ref, className: cn(sheetVariants({ side }), className), ...props, children: [children, _jsxs(SheetPrimitive.Close, { className: "absolute right-4 top-4 inline-flex size-11 items-center justify-center rounded-xs opacity-70 ring-offset-background transition-opacity data-[state=open]:bg-secondary hover:opacity-100 focus:outline-hidden focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none", children: [_jsx(Icon, { icon: X, size: "sm" }), _jsx("span", { className: "sr-only", children: "Close" })] })] })] }));
27
+ function SheetContent({ side = "right", className, children, closeLabel = "Close", ref, ...props }) {
28
+ return (_jsxs(SheetPortal, { children: [_jsx(SheetOverlay, {}), _jsxs(SheetPrimitive.Content, { ref: ref, className: cn(sheetVariants({ side }), className), ...props, children: [children, _jsxs(SheetPrimitive.Close, { className: "absolute right-4 top-4 inline-flex size-11 items-center justify-center rounded-xs opacity-70 ring-offset-background transition-opacity data-[state=open]:bg-secondary hover:opacity-100 focus:outline-hidden focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none", children: [_jsx(Icon, { icon: X, size: "sm" }), _jsx("span", { className: "sr-only", children: closeLabel })] })] })] }));
29
29
  }
30
30
  const SheetHeader = ({ className, ...props }) => (_jsx("div", { className: cn("flex flex-col gap-2 text-center sm:text-left", className), ...props }));
31
31
  SheetHeader.displayName = "SheetHeader";
@@ -1 +1 @@
1
- {"version":3,"file":"sheet.js","sourceRoot":"","sources":["../../src/components/sheet.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,cAAc,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,GAAG,EAAqB,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,CAAC,EAAE,MAAM,cAAc,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAGvC,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAElC,MAAM,KAAK,GAAG,cAAc,CAAC,IAAI,CAAC;AAElC,MAAM,YAAY,GAAG,cAAc,CAAC,OAAO,CAAC;AAE5C,MAAM,UAAU,GAAG,cAAc,CAAC,KAAK,CAAC;AAExC,MAAM,WAAW,GAAG,cAAc,CAAC,MAAM,CAAC;AAE1C,SAAS,YAAY,CAAC,EACpB,SAAS,EACT,GAAG,EACH,GAAG,KAAK,EAGT;IACC,OAAO,CACL,KAAC,cAAc,CAAC,OAAO,iBACX,eAAe,EACzB,SAAS,EAAE,EAAE,CACX,2HAA2H,EAC3H,SAAS,CACV,KACG,KAAK,EACT,GAAG,EAAE,GAAG,GACR,CACH,CAAC;AACJ,CAAC;AAED,MAAM,aAAa,GAAG,GAAG,CACvB,uHAAuH,EACvH;IACE,QAAQ,EAAE;QACR,IAAI,EAAE;YACJ,GAAG,EAAE,kDAAkD;YACvD,MAAM,EAAE,oDAAoD;YAC5D,IAAI,EAAE,4EAA4E;YAClF,KAAK,EAAE,4EAA4E;SACpF;KACF;IACD,eAAe,EAAE;QACf,IAAI,EAAE,OAAO;KACd;CACF,CACF,CAAC;AAOF,SAAS,YAAY,CAAC,EACpB,IAAI,GAAG,OAAO,EACd,SAAS,EACT,QAAQ,EACR,GAAG,EACH,GAAG,KAAK,EACiF;IACzF,OAAO,CACL,MAAC,WAAW,eACV,KAAC,YAAY,KAAG,EAChB,MAAC,cAAc,CAAC,OAAO,IACrB,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,CAAC,KAC7C,KAAK,aAER,QAAQ,EACT,MAAC,cAAc,CAAC,KAAK,IAAC,SAAS,EAAC,4RAA4R,aAC1T,KAAC,IAAI,IAAC,IAAI,EAAE,CAAC,EAAE,IAAI,EAAC,IAAI,GAAG,EAC3B,eAAM,SAAS,EAAC,SAAS,sBAAa,IACjB,IACA,IACb,CACf,CAAC;AACJ,CAAC;AAED,MAAM,WAAW,GAAG,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAwC,EAAE,EAAE,CAAC,CACrF,cAAK,SAAS,EAAE,EAAE,CAAC,8CAA8C,EAAE,SAAS,CAAC,KAAM,KAAK,GAAI,CAC7F,CAAC;AACF,WAAW,CAAC,WAAW,GAAG,aAAa,CAAC;AAExC,MAAM,WAAW,GAAG,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAwC,EAAE,EAAE,CAAC,CACrF,cACE,SAAS,EAAE,EAAE,CAAC,wDAAwD,EAAE,SAAS,CAAC,KAC9E,KAAK,GACT,CACH,CAAC;AACF,WAAW,CAAC,WAAW,GAAG,aAAa,CAAC;AAExC,SAAS,UAAU,CAAC,EAClB,SAAS,EACT,GAAG,EACH,GAAG,KAAK,EAGT;IACC,OAAO,CACL,KAAC,cAAc,CAAC,KAAK,IACnB,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CAAC,uCAAuC,EAAE,SAAS,CAAC,KAC7D,KAAK,GACT,CACH,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CAAC,EACxB,SAAS,EACT,GAAG,EACH,GAAG,KAAK,EAGT;IACC,OAAO,CACL,KAAC,cAAc,CAAC,WAAW,IACzB,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CAAC,+BAA+B,EAAE,SAAS,CAAC,KACrD,KAAK,GACT,CACH,CAAC;AACJ,CAAC;AAED,OAAO,EACL,KAAK,EACL,UAAU,EACV,YAAY,EACZ,gBAAgB,EAChB,WAAW,EACX,WAAW,EACX,YAAY,EACZ,WAAW,EACX,UAAU,EACV,YAAY,GACb,CAAC"}
1
+ {"version":3,"file":"sheet.js","sourceRoot":"","sources":["../../src/components/sheet.tsx"],"names":[],"mappings":"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"}
@@ -39,6 +39,12 @@ export declare function StatusBadge(props: StatusBadgeProps): import("react/jsx-
39
39
  export interface JobFailedPanelProps {
40
40
  jobId: string;
41
41
  status: string;
42
+ /**
43
+ * The backend's stored error text, never altered. Known constants
44
+ * (`UNSTARTED_JOB_ERROR`, `ALREADY_RAN_JOB_ERROR`; see `job-error-copy.ts`) render a
45
+ * kind-specific headline, body and "Upload again" action as translated copy, with
46
+ * this raw text in a "Technical details" disclosure; any other error renders as-is.
47
+ */
42
48
  error: string | null;
43
49
  t?: TranslateFn;
44
50
  /** Destination of the "Try another upload" action (producer: `/imports`). */
@@ -1 +1 @@
1
- {"version":3,"file":"import-job-panels.d.ts","sourceRoot":"","sources":["../../src/portfolio-import/import-job-panels.tsx"],"names":[],"mappings":"AA4BA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAA0B,KAAK,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAyBzF;;;;;;;;;;GAUG;AACH;;;;;GAKG;AACH,MAAM,MAAM,qBAAqB,GAAG,CAAC,KAAK,EAAE;IAC1C,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,KAAK,KAAK,CAAC,YAAY,CAAC;AAqBzB,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf;;;;;;OAMG;IACH,IAAI,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;IACvE,CAAC,CAAC,EAAE,WAAW,CAAC;IAChB,QAAQ,CAAC,EAAE,QAAQ,GAAG,WAAW,GAAG,KAAK,CAAC;CAC3C;AA4CD,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,2CAkDlD;AAID,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,CAAC,CAAC,EAAE,WAAW,CAAC;IAChB,6EAA6E;IAC7E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mHAAmH;IACnH,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,mBAAmB,2CAiFxD;AAID;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,OAAO,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,CAAC,CAAC,EAAE,WAAW,CAAC;IAChB,WAAW,CAAC,EAAE,qBAAqB,CAAC;IACpC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,sGAAsG;IACtG,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,qBAAqB,CAAC;IACnC,oGAAoG;IACpG,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,qBAAqB,2CAoC5D"}
1
+ {"version":3,"file":"import-job-panels.d.ts","sourceRoot":"","sources":["../../src/portfolio-import/import-job-panels.tsx"],"names":[],"mappings":"AA4BA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAA0B,KAAK,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AA+BzF;;;;;;;;;;GAUG;AACH;;;;;GAKG;AACH,MAAM,MAAM,qBAAqB,GAAG,CAAC,KAAK,EAAE;IAC1C,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,KAAK,KAAK,CAAC,YAAY,CAAC;AAqBzB,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf;;;;;;OAMG;IACH,IAAI,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;IACvE,CAAC,CAAC,EAAE,WAAW,CAAC;IAChB,QAAQ,CAAC,EAAE,QAAQ,GAAG,WAAW,GAAG,KAAK,CAAC;CAC3C;AA4CD,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,2CAkDlD;AAID,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf;;;;;OAKG;IACH,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,CAAC,CAAC,EAAE,WAAW,CAAC;IAChB,6EAA6E;IAC7E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mHAAmH;IACnH,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,mBAAmB,2CAuGxD;AAID;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,OAAO,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,CAAC,CAAC,EAAE,WAAW,CAAC;IAChB,WAAW,CAAC,EAAE,qBAAqB,CAAC;IACpC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,sGAAsG;IACtG,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,qBAAqB,CAAC;IACnC,oGAAoG;IACpG,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,qBAAqB,2CAoC5D"}
@@ -1,4 +1,4 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
2
  /**
3
3
  * import-job-panels.tsx — status pill + terminal panels for the import-job
4
4
  * detail surface (CEL-1356, epic CEL-1348). Lifted from the producer
@@ -18,6 +18,7 @@ import { motion } from "motion/react";
18
18
  import { useCallback, useState } from "react";
19
19
  import { interpolate } from "../portfolio/interpolate.js";
20
20
  import { hasPresentResultObject } from "./extraction-result.js";
21
+ import { classifyJobError, KNOWN_JOB_ERROR_ACTION, KNOWN_JOB_ERROR_COPY, KNOWN_JOB_ERROR_DETAILS, } from "./job-error-copy.js";
21
22
  import { useCountUp } from "./use-count-up.js";
22
23
  const defaultT = (key, fallback) => fallback ?? key;
23
24
  // Enter transitions animate transform (y) only — never opacity — because the
@@ -131,13 +132,19 @@ export function JobFailedPanel(props) {
131
132
  // Clipboard write denied — leave the label as-is.
132
133
  });
133
134
  }, [jobId]);
134
- const retryLabel = t("detail.failed_retry", "Try another upload");
135
+ const errorKind = classifyJobError(error);
136
+ const knownCopy = errorKind ? KNOWN_JOB_ERROR_COPY[errorKind] : null;
137
+ const retryLabel = knownCopy
138
+ ? t(KNOWN_JOB_ERROR_ACTION.key, KNOWN_JOB_ERROR_ACTION.fallback)
139
+ : t("detail.failed_retry", "Try another upload");
135
140
  const retryClassName = "inline-flex items-center gap-1.5 rounded-full bg-primary px-3.5 py-1.5 text-xs font-semibold text-primary-foreground shadow-sm transition hover:bg-primary/90 active:scale-[0.98]";
136
141
  return (_jsx(motion.section, { role: "alert", "aria-live": "assertive", initial: { y: 8 }, animate: { y: 0, opacity: 1 }, transition: { ...ENTER_TRANSITION, duration: 0.35 }, className: "mb-6 overflow-hidden rounded-2xl border border-[var(--tone-danger-border)]/40 bg-card p-5 shadow-sm", children: _jsxs("div", { className: "flex items-start gap-4", children: [_jsx("span", { className: "flex h-11 w-11 shrink-0 items-center justify-center rounded-full bg-[var(--tone-danger-soft)] text-[var(--tone-danger-fg)]", children: _jsx(ExclamationTriangleIcon, { className: "size-5", "aria-hidden": "true" }) }), _jsxs("div", { className: "min-w-0 flex-1", children: [_jsx("p", { className: "text-xs font-semibold uppercase tracking-[0.18em] text-[var(--tone-danger-fg)]", children: status === "abandoned"
137
142
  ? t("detail.abandoned_eyebrow", "Stopped")
138
- : t("detail.failed_eyebrow", "Stopped") }), _jsx("h2", { className: "mt-1 text-lg font-semibold tracking-tight text-foreground", children: t("detail.failed_title", "We couldn't finish reading this document.") }), _jsx("p", { className: "mt-2 text-sm/6 text-muted-foreground", children: error?.trim()
143
+ : t("detail.failed_eyebrow", "Stopped") }), _jsx("h2", { className: "mt-1 text-lg font-semibold tracking-tight text-foreground", children: knownCopy
144
+ ? t(knownCopy.title.key, knownCopy.title.fallback)
145
+ : t("detail.failed_title", "We couldn't finish reading this document.") }), knownCopy ? (_jsxs(_Fragment, { children: [_jsx("p", { className: "mt-2 text-sm/6 text-muted-foreground", children: t(knownCopy.body.key, knownCopy.body.fallback) }), _jsxs("details", { className: "mt-2 text-xs text-muted-foreground", children: [_jsx("summary", { className: "min-h-6 w-fit cursor-pointer rounded-xs focus-visible:outline-hidden focus-visible:ring-3 focus-visible:ring-ring/70 pointer-coarse:min-h-11 pointer-coarse:py-3", children: t(KNOWN_JOB_ERROR_DETAILS.key, KNOWN_JOB_ERROR_DETAILS.fallback) }), _jsx("code", { className: "mt-1 block font-mono text-xs/5 break-words whitespace-pre-wrap", children: error })] })] })) : (_jsx("p", { className: "mt-2 text-sm/6 text-muted-foreground", children: error?.trim()
139
146
  ? error
140
- : t("detail.failed_fallback", "Something went wrong on our side. The error has been logged.") }), _jsxs("div", { className: "mt-4 flex flex-wrap items-center gap-2", children: [retryHref ? (_jsxs("a", { href: retryHref, className: retryClassName, children: [_jsx(ArrowPathIcon, { className: "size-3.5", "aria-hidden": "true" }), retryLabel] })) : onRetry ? (_jsxs("button", { type: "button", onClick: onRetry, className: retryClassName, children: [_jsx(ArrowPathIcon, { className: "size-3.5", "aria-hidden": "true" }), retryLabel] })) : null, _jsxs("button", { type: "button", onClick: onCopy, className: "inline-flex items-center gap-1.5 rounded-full border border-border bg-card px-3 py-1.5 text-xs font-medium text-foreground/80 transition hover:bg-muted active:scale-[0.98]", children: [_jsx(ClipboardIcon, { className: "size-3.5", "aria-hidden": "true" }), copied
147
+ : t("detail.failed_fallback", "Something went wrong on our side. The error has been logged.") })), _jsxs("div", { className: "mt-4 flex flex-wrap items-center gap-2", children: [retryHref ? (_jsxs("a", { href: retryHref, className: retryClassName, children: [_jsx(ArrowPathIcon, { className: "size-3.5", "aria-hidden": "true" }), retryLabel] })) : onRetry ? (_jsxs("button", { type: "button", onClick: onRetry, className: retryClassName, children: [_jsx(ArrowPathIcon, { className: "size-3.5", "aria-hidden": "true" }), retryLabel] })) : null, _jsxs("button", { type: "button", onClick: onCopy, className: "inline-flex items-center gap-1.5 rounded-full border border-border bg-card px-3 py-1.5 text-xs font-medium text-foreground/80 transition hover:bg-muted active:scale-[0.98]", children: [_jsx(ClipboardIcon, { className: "size-3.5", "aria-hidden": "true" }), copied
141
148
  ? t("detail.failed_copied", "Copied")
142
149
  : t("detail.failed_copy_id", "Copy job ID")] })] })] }), _jsx("span", { className: "shrink-0 rounded-full bg-[var(--tone-danger-soft)]/70 px-2 py-1 text-xs font-semibold uppercase tracking-wider tabular-nums text-[var(--tone-danger-fg)] ring-1 ring-inset ring-[var(--tone-danger-border)]/30", children: jobId.slice(0, 8) })] }) }));
143
150
  }