@twentyfirstmedia/ui-core 0.2.0 → 0.3.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 (146) hide show
  1. package/dist/components/admin.d.ts.map +1 -1
  2. package/dist/components/admin.js +95 -71
  3. package/dist/components/admin.js.map +1 -1
  4. package/dist/components/agents.d.ts.map +1 -1
  5. package/dist/components/agents.js +49 -35
  6. package/dist/components/agents.js.map +1 -1
  7. package/dist/components/app-chrome.d.ts.map +1 -1
  8. package/dist/components/app-chrome.js +6 -2
  9. package/dist/components/app-chrome.js.map +1 -1
  10. package/dist/components/approvals.d.ts.map +1 -1
  11. package/dist/components/approvals.js +22 -18
  12. package/dist/components/approvals.js.map +1 -1
  13. package/dist/components/building-blocks.d.ts.map +1 -1
  14. package/dist/components/building-blocks.js +6 -2
  15. package/dist/components/building-blocks.js.map +1 -1
  16. package/dist/components/charts.d.ts.map +1 -1
  17. package/dist/components/charts.js +20 -10
  18. package/dist/components/charts.js.map +1 -1
  19. package/dist/components/chat.d.ts.map +1 -1
  20. package/dist/components/chat.js +31 -19
  21. package/dist/components/chat.js.map +1 -1
  22. package/dist/components/commerce.d.ts +2 -2
  23. package/dist/components/commerce.d.ts.map +1 -1
  24. package/dist/components/commerce.js +45 -31
  25. package/dist/components/commerce.js.map +1 -1
  26. package/dist/components/data-display.d.ts +5 -9
  27. package/dist/components/data-display.d.ts.map +1 -1
  28. package/dist/components/data-display.js +34 -35
  29. package/dist/components/data-display.js.map +1 -1
  30. package/dist/components/data-table.d.ts.map +1 -1
  31. package/dist/components/data-table.js +15 -10
  32. package/dist/components/data-table.js.map +1 -1
  33. package/dist/components/developer.d.ts.map +1 -1
  34. package/dist/components/developer.js +20 -11
  35. package/dist/components/developer.js.map +1 -1
  36. package/dist/components/feedback.d.ts.map +1 -1
  37. package/dist/components/feedback.js +12 -6
  38. package/dist/components/feedback.js.map +1 -1
  39. package/dist/components/form.d.ts +2 -1
  40. package/dist/components/form.d.ts.map +1 -1
  41. package/dist/components/form.js +12 -9
  42. package/dist/components/form.js.map +1 -1
  43. package/dist/components/forms.d.ts +2 -1
  44. package/dist/components/forms.d.ts.map +1 -1
  45. package/dist/components/forms.js +92 -42
  46. package/dist/components/forms.js.map +1 -1
  47. package/dist/components/foundation.d.ts +5 -2
  48. package/dist/components/foundation.d.ts.map +1 -1
  49. package/dist/components/foundation.js +15 -12
  50. package/dist/components/foundation.js.map +1 -1
  51. package/dist/components/inputs.d.ts.map +1 -1
  52. package/dist/components/inputs.js +3 -1
  53. package/dist/components/inputs.js.map +1 -1
  54. package/dist/components/mail.d.ts.map +1 -1
  55. package/dist/components/mail.js +15 -10
  56. package/dist/components/mail.js.map +1 -1
  57. package/dist/components/media.d.ts.map +1 -1
  58. package/dist/components/media.js +39 -18
  59. package/dist/components/media.js.map +1 -1
  60. package/dist/components/navigation.d.ts.map +1 -1
  61. package/dist/components/navigation.js +21 -9
  62. package/dist/components/navigation.js.map +1 -1
  63. package/dist/components/operations.d.ts.map +1 -1
  64. package/dist/components/operations.js +37 -27
  65. package/dist/components/operations.js.map +1 -1
  66. package/dist/components/previews.d.ts.map +1 -1
  67. package/dist/components/previews.js +14 -10
  68. package/dist/components/previews.js.map +1 -1
  69. package/dist/components/primitives.d.ts.map +1 -1
  70. package/dist/components/primitives.js +4 -1
  71. package/dist/components/primitives.js.map +1 -1
  72. package/dist/components/real-estate.d.ts.map +1 -1
  73. package/dist/components/real-estate.js +43 -28
  74. package/dist/components/real-estate.js.map +1 -1
  75. package/dist/components/rich-text-editor.d.ts.map +1 -1
  76. package/dist/components/rich-text-editor.js +18 -15
  77. package/dist/components/rich-text-editor.js.map +1 -1
  78. package/dist/components/select-menu.d.ts.map +1 -1
  79. package/dist/components/select-menu.js +4 -1
  80. package/dist/components/select-menu.js.map +1 -1
  81. package/dist/components/shell.d.ts.map +1 -1
  82. package/dist/components/shell.js +8 -3
  83. package/dist/components/shell.js.map +1 -1
  84. package/dist/components/site.d.ts.map +1 -1
  85. package/dist/components/site.js +17 -13
  86. package/dist/components/site.js.map +1 -1
  87. package/dist/components/types.d.ts +102 -3
  88. package/dist/components/types.d.ts.map +1 -1
  89. package/dist/components/workspace.d.ts.map +1 -1
  90. package/dist/components/workspace.js +50 -34
  91. package/dist/components/workspace.js.map +1 -1
  92. package/dist/context.d.ts +39 -0
  93. package/dist/context.d.ts.map +1 -0
  94. package/dist/context.js +76 -0
  95. package/dist/context.js.map +1 -0
  96. package/dist/format.d.ts +33 -6
  97. package/dist/format.d.ts.map +1 -1
  98. package/dist/format.js +75 -10
  99. package/dist/format.js.map +1 -1
  100. package/dist/index.d.ts +3 -2
  101. package/dist/index.d.ts.map +1 -1
  102. package/dist/index.js +3 -2
  103. package/dist/index.js.map +1 -1
  104. package/dist/provider.d.ts +18 -11
  105. package/dist/provider.d.ts.map +1 -1
  106. package/dist/provider.js +11 -18
  107. package/dist/provider.js.map +1 -1
  108. package/dist/strings.d.ts +503 -0
  109. package/dist/strings.d.ts.map +1 -0
  110. package/dist/strings.js +537 -0
  111. package/dist/strings.js.map +1 -0
  112. package/package.json +1 -1
  113. package/src/components/admin.tsx +117 -93
  114. package/src/components/agents.tsx +55 -41
  115. package/src/components/app-chrome.tsx +6 -2
  116. package/src/components/approvals.tsx +26 -22
  117. package/src/components/building-blocks.tsx +6 -2
  118. package/src/components/charts.tsx +21 -11
  119. package/src/components/chat.tsx +45 -35
  120. package/src/components/commerce.tsx +61 -53
  121. package/src/components/data-display.tsx +38 -45
  122. package/src/components/data-table.tsx +20 -15
  123. package/src/components/developer.tsx +26 -15
  124. package/src/components/feedback.tsx +19 -7
  125. package/src/components/form.tsx +17 -9
  126. package/src/components/forms.tsx +131 -53
  127. package/src/components/foundation.tsx +23 -36
  128. package/src/components/inputs.tsx +4 -2
  129. package/src/components/mail.tsx +16 -11
  130. package/src/components/media.tsx +64 -21
  131. package/src/components/navigation.tsx +25 -13
  132. package/src/components/operations.tsx +40 -32
  133. package/src/components/previews.tsx +17 -15
  134. package/src/components/primitives.tsx +8 -5
  135. package/src/components/real-estate.tsx +55 -35
  136. package/src/components/rich-text-editor.tsx +20 -17
  137. package/src/components/select-menu.tsx +5 -2
  138. package/src/components/shell.tsx +8 -3
  139. package/src/components/site.tsx +18 -14
  140. package/src/components/types.ts +111 -3
  141. package/src/components/workspace.tsx +79 -60
  142. package/src/context.ts +112 -0
  143. package/src/format.ts +108 -15
  144. package/src/index.ts +43 -0
  145. package/src/provider.tsx +36 -40
  146. package/src/strings.ts +1500 -0
@@ -2,7 +2,8 @@
2
2
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
3
3
  import * as React from "react";
4
4
  import { useMounted, useWidth } from "../hooks.js";
5
- import { formatNumber } from "../format.js";
5
+ import { useFormat, useStrings } from "../context.js";
6
+ import { CHARTS_STRINGS } from "../strings.js";
6
7
  import { cx } from "../cx.js";
7
8
  import { Icon } from "../Icon.js";
8
9
  import { CountUp } from "./data-display.js";
@@ -11,9 +12,10 @@ function niceMax(m) {
11
12
  return Math.ceil(m / p) * p;
12
13
  }
13
14
  export function BarChart(p) {
15
+ const t = useStrings(CHARTS_STRINGS);
14
16
  const mw = useWidth(p.width, 560), data = p.data || [], W = mw[1], Hh = p.height || 200, pad = 34, max = niceMax(Math.max.apply(null, data.map((d) => d.value).concat([1])));
15
17
  const n = data.length, gw = Math.max(1, (W - pad) / n), bw = Math.max(1, Math.min(p.barWidth || 28, gw * 0.62)), ticks = [0, 0.5, 1];
16
- return (_jsx("div", { ref: mw[0], className: "tf-chart-wrap", children: _jsxs("svg", { className: "tf-chart", width: W, height: Hh + 22, viewBox: "0 0 " + W + " " + (Hh + 22), preserveAspectRatio: "xMinYMin meet", role: "img", "aria-label": p.label || "Bar chart", children: [ticks.map((t) => {
18
+ return (_jsx("div", { ref: mw[0], className: "tf-chart-wrap", children: _jsxs("svg", { className: "tf-chart", width: W, height: Hh + 22, viewBox: "0 0 " + W + " " + (Hh + 22), preserveAspectRatio: "xMinYMin meet", role: "img", "aria-label": p.label || t.barChart, children: [ticks.map((t) => {
17
19
  const y = Hh - t * (Hh - 10);
18
20
  return (_jsxs("g", { children: [_jsx("line", { className: "grid", x1: pad, x2: W, y1: y, y2: y, strokeDasharray: t ? "3 5" : undefined }), _jsx("text", { x: 0, y: y + 4, children: p.format ? p.format(max * t) : Math.round(max * t) })] }, t));
19
21
  }), data.map((d, i) => {
@@ -24,6 +26,7 @@ export function BarChart(p) {
24
26
  })] }) }));
25
27
  }
26
28
  export function LineChart(p) {
29
+ const t = useStrings(CHARTS_STRINGS);
27
30
  const mw = useWidth(p.width, 560), series = p.series || [], labels = p.labels || [], W = mw[1], Hh = p.height || 200, pad = 44;
28
31
  let all = [];
29
32
  series.forEach((s) => {
@@ -39,7 +42,7 @@ export function LineChart(p) {
39
42
  function path(vals) {
40
43
  return vals.map((v, i) => (i ? "L" : "M") + X(i).toFixed(1) + " " + Y(v).toFixed(1)).join(" ");
41
44
  }
42
- return (_jsx("div", { ref: mw[0], className: "tf-chart-wrap", children: _jsxs("svg", { className: "tf-chart", width: W, height: Hh + 22, viewBox: "0 0 " + W + " " + (Hh + 22), preserveAspectRatio: "xMinYMin meet", role: "img", "aria-label": p.label || "Line chart", children: [[0, 0.5, 1].map((t) => {
45
+ return (_jsx("div", { ref: mw[0], className: "tf-chart-wrap", children: _jsxs("svg", { className: "tf-chart", width: W, height: Hh + 22, viewBox: "0 0 " + W + " " + (Hh + 22), preserveAspectRatio: "xMinYMin meet", role: "img", "aria-label": p.label || t.lineChart, children: [[0, 0.5, 1].map((t) => {
43
46
  const y = Hh - t * (Hh - 12);
44
47
  return (_jsxs("g", { children: [_jsx("line", { className: "grid", x1: pad, x2: W, y1: y, y2: y, strokeDasharray: t ? "3 5" : undefined }), _jsx("text", { x: 0, y: y + 4, children: p.format ? p.format(max * t) : Math.round(max * t) })] }, t));
45
48
  }), labels.map((l, i) => (_jsx("text", { x: X(i), y: Hh + 18, textAnchor: "middle", children: l }, l + i))), series.map((s, si) => {
@@ -50,6 +53,7 @@ export function LineChart(p) {
50
53
  })] }) }));
51
54
  }
52
55
  export function Sparkline(p) {
56
+ const t = useStrings(CHARTS_STRINGS);
53
57
  const v = p.values || [], W = p.width || 120, Hh = p.height || 36, max = Math.max.apply(null, v), min = Math.min.apply(null, v), rng = max - min || 1;
54
58
  const d = v
55
59
  .map((x, i) => (i ? "L" : "M") +
@@ -57,11 +61,12 @@ export function Sparkline(p) {
57
61
  " " +
58
62
  (Hh - 3 - ((x - min) / rng) * (Hh - 6)).toFixed(1))
59
63
  .join(" ");
60
- return (_jsx("svg", { className: "tf-chart", viewBox: "0 0 " + W + " " + Hh, width: W, height: Hh, role: "img", "aria-label": p.label || "Trend", children: _jsx("path", { className: cx("tf-line", "tf-line-" + (p.tint || "ink")), d: d, pathLength: 1, style: {
64
+ return (_jsx("svg", { className: "tf-chart", viewBox: "0 0 " + W + " " + Hh, width: W, height: Hh, role: "img", "aria-label": p.label || t.trend, children: _jsx("path", { className: cx("tf-line", "tf-line-" + (p.tint || "ink")), d: d, pathLength: 1, style: {
61
65
  strokeWidth: 2,
62
66
  } }) }));
63
67
  }
64
68
  export function Donut(p) {
69
+ const t = useStrings(CHARTS_STRINGS);
65
70
  const data = p.data || [], size = p.size || 168, sw = p.stroke || 22, r = (size - sw) / 2, c = 2 * Math.PI * r, total = data.reduce((a, d) => a + d.value, 0) || 1, on = useMounted(150);
66
71
  let acc = 0;
67
72
  const gap = data.length > 1 ? 6 : 0;
@@ -70,7 +75,7 @@ export function Donut(p) {
70
75
  }, children: [_jsxs("div", { className: "tf-ring", style: {
71
76
  width: size,
72
77
  height: size,
73
- }, children: [_jsxs("svg", { width: size, height: size, viewBox: "0 0 " + size + " " + size, role: "img", "aria-label": p.label || "Breakdown", children: [_jsx("circle", { className: "tf-arc-track", cx: size / 2, cy: size / 2, r: r, strokeWidth: sw }), data.map((d, i) => {
78
+ }, children: [_jsxs("svg", { width: size, height: size, viewBox: "0 0 " + size + " " + size, role: "img", "aria-label": p.label || t.breakdown, children: [_jsx("circle", { className: "tf-arc-track", cx: size / 2, cy: size / 2, r: r, strokeWidth: sw }), data.map((d, i) => {
74
79
  const len = Math.max(0, (c * d.value) / total - gap), off = acc;
75
80
  acc += (c * d.value) / total;
76
81
  return (_jsx("circle", { className: cx("tf-arc", "tf-arc-" + (d.tint || "ink")), cx: size / 2, cy: size / 2, r: r, strokeWidth: sw, strokeDasharray: (on ? len : 0) + " " + c, strokeDashoffset: -off, style: {
@@ -96,10 +101,11 @@ export function Legend(p) {
96
101
  return (_jsx("div", { className: "tf-legend", children: (p.items || []).map((s) => (_jsxs("span", { children: [_jsx("i", { className: "tf-sw tf-sw-" + (s.tint || "ink") }), s.name || s.label] }, s.name || s.label))) }));
97
102
  }
98
103
  export function StackedBarChart(p) {
104
+ const t = useStrings(CHARTS_STRINGS);
99
105
  const mw = useWidth(p.width, 560), W = mw[1], Hh = p.height || 200, pad = 40, series = p.series || [], labels = p.labels || [], hov = React.useState(null), f = p.format || ((v) => Math.round(v));
100
106
  const totals = labels.map((_, i) => series.reduce((a, s) => a + (s.values[i] || 0), 0)), max = niceMax(Math.max.apply(null, totals.concat([1])));
101
107
  const n = labels.length || 1, gw = Math.max(1, (W - pad) / n), bw = Math.max(1, Math.min(p.barWidth || 28, gw * 0.62));
102
- return (_jsxs("div", { ref: mw[0], className: "tf-chart-wrap tf-chart-hover", children: [_jsxs("svg", { className: "tf-chart", width: W, height: Hh + 22, viewBox: "0 0 " + W + " " + (Hh + 22), role: "img", "aria-label": p.label || "Stacked bar chart", onPointerLeave: () => {
108
+ return (_jsxs("div", { ref: mw[0], className: "tf-chart-wrap tf-chart-hover", children: [_jsxs("svg", { className: "tf-chart", width: W, height: Hh + 22, viewBox: "0 0 " + W + " " + (Hh + 22), role: "img", "aria-label": p.label || t.stackedBarChart, onPointerLeave: () => {
103
109
  hov[1](null);
104
110
  }, children: [[0, 0.5, 1].map((t) => {
105
111
  const y = Hh - t * (Hh - 10);
@@ -191,6 +197,7 @@ function smooth(pts) {
191
197
  return d;
192
198
  }
193
199
  export function AreaChart(p) {
200
+ const t = useStrings(CHARTS_STRINGS);
194
201
  const mw = useWidth(p.width, 560), W = mw[1], Hh = p.height || 200, pad = 44, series = p.series || [], labels = p.labels || [], hov = React.useState(null), f = p.format || ((v) => Math.round(v));
195
202
  const n = labels.length, stacked = p.stacked !== false;
196
203
  let base = labels.map(() => 0);
@@ -212,7 +219,7 @@ export function AreaChart(p) {
212
219
  function Y(v) {
213
220
  return Hh - (v / max) * (Hh - 12);
214
221
  }
215
- return (_jsxs("div", { ref: mw[0], className: "tf-chart-wrap tf-chart-hover", children: [_jsxs("svg", { className: "tf-chart", width: W, height: Hh + 22, viewBox: "0 0 " + W + " " + (Hh + 22), role: "img", "aria-label": p.label || "Area chart", onPointerMove: (e) => {
222
+ return (_jsxs("div", { ref: mw[0], className: "tf-chart-wrap tf-chart-hover", children: [_jsxs("svg", { className: "tf-chart", width: W, height: Hh + 22, viewBox: "0 0 " + W + " " + (Hh + 22), role: "img", "aria-label": p.label || t.areaChart, onPointerMove: (e) => {
216
223
  const r = e.currentTarget.getBoundingClientRect(), x = ((e.clientX - r.left) * W) / r.width;
217
224
  hov[1](Math.max(0, Math.min(n - 1, Math.round((x - pad - 8) / ((W - pad - 16) / Math.max(1, n - 1))))));
218
225
  }, onPointerLeave: () => {
@@ -239,13 +246,14 @@ export function AreaChart(p) {
239
246
  })) })), p.legend !== false && _jsx(Legend, { items: series })] }));
240
247
  }
241
248
  export function Heatmap(p) {
249
+ const t = useStrings(CHARTS_STRINGS);
242
250
  const rows = p.rows || [], cols = p.cols || [], vals = p.values || [], flat = vals.flat(), max = Math.max(...flat, 1), f = p.format || String, hov = React.useState(null);
243
251
  function lvl(v) {
244
252
  return v <= 0 ? 0 : Math.min(4, Math.ceil((v / max) * 4));
245
253
  }
246
254
  return (_jsxs("div", { className: "tf-heat-wrap", children: [_jsxs("div", { className: "tf-heat", style: {
247
255
  gridTemplateColumns: "auto repeat(" + cols.length + ", minmax(0, 1fr))",
248
- }, role: "img", "aria-label": p.label || "Heatmap", onPointerLeave: () => {
256
+ }, role: "img", "aria-label": p.label || t.heatmap, onPointerLeave: () => {
249
257
  hov[1](null);
250
258
  }, children: [_jsx("span", {}), cols.map((c, i) => (_jsx("span", { className: "tf-heat-col", children: (p.colEvery ? i % p.colEvery === 0 : true) ? c : "" }, "c" + i))), rows.map((r, ri) => (_jsxs(React.Fragment, { children: [_jsx("span", { className: "tf-heat-row", children: r }), cols.map((c, ci) => {
251
259
  const v = (vals[ri] || [])[ci] || 0;
@@ -260,9 +268,10 @@ export function Heatmap(p) {
260
268
  cols[hov[0][1]] +
261
269
  " — " +
262
270
  f((vals[hov[0][0]] || [])[hov[0][1]] || 0)
263
- : p.caption || "" }), _jsxs("span", { className: "tf-heat-scale", children: ["Less", [0, 1, 2, 3, 4].map((l) => (_jsx("i", { className: "tf-heat-cell l" + l }, l))), "More"] })] })] }));
271
+ : p.caption || "" }), _jsxs("span", { className: "tf-heat-scale", children: [t.less, [0, 1, 2, 3, 4].map((l) => (_jsx("i", { className: "tf-heat-cell l" + l }, l))), t.more] })] })] }));
264
272
  }
265
273
  export function Funnel(p) {
274
+ const { formatNumber } = useFormat();
266
275
  const steps = p.steps || [], top = (steps[0] && steps[0].value) || 1, f = p.format || ((v) => formatNumber(v)), on = useMounted(120);
267
276
  return (_jsx("div", { className: "tf-funnel", children: steps.map((s, i) => {
268
277
  const pct = (s.value / top) * 100, conv = i ? (s.value / (steps[i - 1].value || 1)) * 100 : null;
@@ -273,6 +282,7 @@ export function Funnel(p) {
273
282
  }) }));
274
283
  }
275
284
  export function Gauge(p) {
285
+ const t = useStrings(CHARTS_STRINGS);
276
286
  const size = p.size || 200, sw = p.stroke || 18, r = (size - sw) / 2, c = Math.PI * r, max = p.max || 100, v = Math.max(0, Math.min(max, p.value || 0)), on = useMounted(150);
277
287
  const tone = p.tint ||
278
288
  (p.thresholds
@@ -284,7 +294,7 @@ export function Gauge(p) {
284
294
  : "ink");
285
295
  return (_jsxs("div", { className: "tf-gauge", style: {
286
296
  width: size,
287
- }, children: [_jsxs("svg", { width: size, height: size / 2 + sw / 2, viewBox: "0 0 " + size + " " + (size / 2 + sw / 2), role: "img", "aria-label": `${p.label || "Gauge"}: ${v} of ${max}`, children: [_jsx("path", { className: "tf-arc-track", d: "M" +
297
+ }, children: [_jsxs("svg", { width: size, height: size / 2 + sw / 2, viewBox: "0 0 " + size + " " + (size / 2 + sw / 2), role: "img", "aria-label": t.gaugeValue(p.label || t.gauge, v, max), children: [_jsx("path", { className: "tf-arc-track", d: "M" +
288
298
  sw / 2 +
289
299
  " " +
290
300
  size / 2 +
@@ -1 +1 @@
1
- {"version":3,"file":"charts.js","sourceRoot":"","sources":["../../src/components/charts.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"charts.js","sourceRoot":"","sources":["../../src/components/charts.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../src/components/chat.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAO/B,OAAO,KAAK,EACV,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EAEd,aAAa,EAEb,gBAAgB,EAChB,mBAAmB,EACnB,cAAc,EACd,aAAa,EACb,aAAa,EAEb,aAAa,EACb,eAAe,EAChB,MAAM,YAAY,CAAC;AAwCpB,wBAAgB,QAAQ,CAAC,CAAC,EAAE,aAAa,qBAiExC;AAED,wBAAgB,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC,SAAS,EAAE,CAoBtE;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,cAAc,qBAoC1C;AAGD,wBAAgB,UAAU,CAAC,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,qBAQ/C;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,cAAc,qBAc1C;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,gBAAgB,qBAyI9C;AASD,wBAAgB,QAAQ,CAAC,CAAC,EAAE,aAAa,qBA8CxC;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,cAAc,qBA+B1C;AAED,wBAAgB,cAAc,CAAC,CAAC,EAAE,mBAAmB,qBAwBpD;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,gBAAgB,qBAgD9C;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,aAAa,qBAuLxC;AAWD,wBAAgB,WAAW,CAAC,CAAC,EAAE,gBAAgB,qBAU9C;AAYD,wBAAgB,QAAQ,CAAC,CAAC,EAAE,aAAa,qBAwDxC;AAED,wBAAgB,UAAU,CAAC,CAAC,EAAE,eAAe,qBAoB5C"}
1
+ {"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../src/components/chat.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAQ/B,OAAO,KAAK,EACV,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EAEd,aAAa,EAEb,gBAAgB,EAChB,mBAAmB,EACnB,cAAc,EACd,aAAa,EACb,aAAa,EAEb,aAAa,EACb,eAAe,EAChB,MAAM,YAAY,CAAC;AAwCpB,wBAAgB,QAAQ,CAAC,CAAC,EAAE,aAAa,qBAiExC;AAED,wBAAgB,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC,SAAS,EAAE,CAoBtE;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,cAAc,qBAqC1C;AAGD,wBAAgB,UAAU,CAAC,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,qBAS/C;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,cAAc,qBAc1C;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,gBAAgB,qBA0I9C;AASD,wBAAgB,QAAQ,CAAC,CAAC,EAAE,aAAa,qBA+CxC;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,cAAc,qBAgC1C;AAED,wBAAgB,cAAc,CAAC,CAAC,EAAE,mBAAmB,qBAwBpD;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,gBAAgB,qBAiD9C;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,aAAa,qBAsLxC;AAWD,wBAAgB,WAAW,CAAC,CAAC,EAAE,gBAAgB,qBAW9C;AAYD,wBAAgB,QAAQ,CAAC,CAAC,EAAE,aAAa,qBA0DxC;AAED,wBAAgB,UAAU,CAAC,CAAC,EAAE,eAAe,qBAqB5C"}
@@ -1,8 +1,9 @@
1
1
  "use client";
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import * as React from "react";
4
+ import { useFormat, useStrings } from "../context.js";
5
+ import { CHAT_STRINGS } from "../strings.js";
4
6
  import { cx } from "../cx.js";
5
- import { formatNumber } from "../format.js";
6
7
  import { Icon } from "../Icon.js";
7
8
  import { useControlled } from "../hooks.js";
8
9
  import { Avatar, Badge, TintIcon } from "./foundation.js";
@@ -74,6 +75,7 @@ export function hl(line, k) {
74
75
  return out;
75
76
  }
76
77
  export function CodeBlock(p) {
78
+ const t = useStrings(CHAT_STRINGS);
77
79
  const copied = React.useState(false);
78
80
  function copy() {
79
81
  try {
@@ -87,13 +89,14 @@ export function CodeBlock(p) {
87
89
  copied[1](false);
88
90
  }, 1400);
89
91
  }
90
- return (_jsxs("div", { className: "tf-code", children: [_jsxs("div", { className: "tf-code-head", children: [_jsx("span", { children: p.lang || "text" }), _jsxs("button", { type: "button", className: "tf-code-copy", onClick: copy, "aria-label": "Copy code", children: [_jsx(Icon, { name: copied[0] ? "check" : "file", size: 13 }), copied[0] ? "Copied" : "Copy"] })] }), _jsx("pre", { tabIndex: 0, children: _jsx("code", { children: String(p.code || "")
92
+ return (_jsxs("div", { className: "tf-code", children: [_jsxs("div", { className: "tf-code-head", children: [_jsx("span", { children: p.lang || "text" }), _jsxs("button", { type: "button", className: "tf-code-copy", onClick: copy, "aria-label": t.copyCode, children: [_jsx(Icon, { name: copied[0] ? "check" : "file", size: 13 }), copied[0] ? t.copied : t.copy] })] }), _jsx("pre", { tabIndex: 0, children: _jsx("code", { children: String(p.code || "")
91
93
  .split("\n")
92
94
  .map((l, i) => (_jsxs("span", { className: "tf-code-line", children: [hl(l, i), "\n"] }, i))) }) })] }));
93
95
  }
94
96
  /* ── Chat building blocks ── */
95
97
  export function TypingDots(p) {
96
- return (_jsxs("span", { className: "tf-typing", role: "status", "aria-label": p.label || "Working", children: [_jsx("i", {}), _jsx("i", {}), _jsx("i", {})] }));
98
+ const t = useStrings(CHAT_STRINGS);
99
+ return (_jsxs("span", { className: "tf-typing", role: "status", "aria-label": p.label || t.working, children: [_jsx("i", {}), _jsx("i", {}), _jsx("i", {})] }));
97
100
  }
98
101
  export function AgentMark(p) {
99
102
  const s = p.size || 32;
@@ -103,6 +106,7 @@ export function AgentMark(p) {
103
106
  }, "aria-hidden": true, children: _jsx(Icon, { name: p.icon || "bot", size: Math.round(s * 0.5) }) }));
104
107
  }
105
108
  export function ChatMessage(p) {
109
+ const t = useStrings(CHAT_STRINGS);
106
110
  const me = p.role === "user", copied = React.useState(false), fb = React.useState(p.feedback || null);
107
111
  if (p.role === "system")
108
112
  return (_jsx("div", { className: "tf-msg-system", children: _jsx("span", { children: p.children || p.text }) }));
@@ -118,16 +122,16 @@ export function ChatMessage(p) {
118
122
  copied[1](false);
119
123
  }, 1400);
120
124
  }
121
- return (_jsxs("div", { className: cx("tf-msg", me ? "me" : "ai", p.className), children: [me ? (_jsx(Avatar, { name: p.name || "You", size: 32 })) : (_jsx(AgentMark, { tint: p.tint, live: p.streaming })), _jsxs("div", { className: "tf-msg-col", children: [(p.name || p.time) && (_jsxs("div", { className: "tf-msg-meta", children: [_jsx("b", { children: p.name }), p.time && _jsx("span", { children: p.time }), p.model && _jsx("span", { className: "tf-msg-model", children: p.model })] })), p.before, (p.text || p.children || p.streaming) && (_jsx("div", { className: "tf-bubble", children: p.children ||
125
+ return (_jsxs("div", { className: cx("tf-msg", me ? "me" : "ai", p.className), children: [me ? (_jsx(Avatar, { name: p.name || t.you, size: 32 })) : (_jsx(AgentMark, { tint: p.tint, live: p.streaming })), _jsxs("div", { className: "tf-msg-col", children: [(p.name || p.time) && (_jsxs("div", { className: "tf-msg-meta", children: [_jsx("b", { children: p.name }), p.time && _jsx("span", { children: p.time }), p.model && _jsx("span", { className: "tf-msg-model", children: p.model })] })), p.before, (p.text || p.children || p.streaming) && (_jsx("div", { className: "tf-bubble", children: p.children ||
122
126
  (me ? (_jsx("p", { className: "tf-rt-plain", children: p.text })) : p.text ? (_jsx(RichText, { text: p.text, streaming: p.streaming })) : (_jsx(TypingDots, {}))) })), p.attachments && p.attachments.length > 0 && (_jsx("div", { className: "tf-msg-attach", children: p.attachments.map((a) => (_jsxs("span", { className: "tf-attach-chip", children: [_jsx(Icon, { name: a.kind === "img" ? "file" : "paperclip", size: 13 }), a.name, a.size && _jsx("small", { children: a.size })] }, a.name))) })), p.sources && p.sources.length > 0 && (_jsx("div", { className: "tf-msg-sources", children: p.sources.map((s, i) => (_jsxs("a", { className: "tf-source", href: s.url || "#", onClick: s.onClick
123
127
  ? (e) => {
124
128
  e.preventDefault();
125
129
  s.onClick?.();
126
130
  }
127
- : undefined, children: [_jsx("span", { className: "tf-source-n", children: i + 1 }), _jsx(Icon, { name: s.icon || "book", size: 12 }), s.title] }, i))) })), !me && !p.streaming && p.actions !== false && (_jsxs("div", { className: "tf-msg-actions", children: [_jsx(Tooltip, { label: copied[0] ? "Copied" : "Copy", children: _jsx("button", { type: "button", className: "tf-msg-act", "aria-label": "Copy reply", onClick: copy, children: _jsx(Icon, { name: copied[0] ? "check" : "file", size: 14 }) }) }), p.onRetry && (_jsx(Tooltip, { label: "Regenerate", children: _jsx("button", { type: "button", className: "tf-msg-act", "aria-label": "Regenerate reply", onClick: p.onRetry, children: _jsx(Icon, { name: "refresh", size: 14 }) }) })), _jsx(Tooltip, { label: "Good reply", children: _jsx("button", { type: "button", className: cx("tf-msg-act", fb[0] === "up" && "on"), "aria-pressed": fb[0] === "up", "aria-label": "Good reply", onClick: () => {
131
+ : undefined, children: [_jsx("span", { className: "tf-source-n", children: i + 1 }), _jsx(Icon, { name: s.icon || "book", size: 12 }), s.title] }, i))) })), !me && !p.streaming && p.actions !== false && (_jsxs("div", { className: "tf-msg-actions", children: [_jsx(Tooltip, { label: copied[0] ? t.copied : t.copy, children: _jsx("button", { type: "button", className: "tf-msg-act", "aria-label": t.copyReply, onClick: copy, children: _jsx(Icon, { name: copied[0] ? "check" : "file", size: 14 }) }) }), p.onRetry && (_jsx(Tooltip, { label: t.regenerate, children: _jsx("button", { type: "button", className: "tf-msg-act", "aria-label": t.regenerateReply, onClick: p.onRetry, children: _jsx(Icon, { name: "refresh", size: 14 }) }) })), _jsx(Tooltip, { label: t.goodReply, children: _jsx("button", { type: "button", className: cx("tf-msg-act", fb[0] === "up" && "on"), "aria-pressed": fb[0] === "up", "aria-label": t.goodReply, onClick: () => {
128
132
  fb[1](fb[0] === "up" ? null : "up");
129
133
  p.onFeedback && p.onFeedback("up");
130
- }, children: _jsx(Icon, { name: "thumbUp", size: 14 }) }) }), _jsx(Tooltip, { label: "Bad reply", children: _jsx("button", { type: "button", className: cx("tf-msg-act", fb[0] === "down" && "on"), "aria-pressed": fb[0] === "down", "aria-label": "Bad reply", onClick: () => {
134
+ }, children: _jsx(Icon, { name: "thumbUp", size: 14 }) }) }), _jsx(Tooltip, { label: t.badReply, children: _jsx("button", { type: "button", className: cx("tf-msg-act", fb[0] === "down" && "on"), "aria-pressed": fb[0] === "down", "aria-label": t.badReply, onClick: () => {
131
135
  fb[1](fb[0] === "down" ? null : "down");
132
136
  p.onFeedback && p.onFeedback("down");
133
137
  }, children: _jsx(Icon, { name: "thumbDown", size: 14 }) }) }), p.usage && _jsx("span", { className: "tf-msg-usage", children: p.usage })] })), p.after] })] }));
@@ -139,16 +143,18 @@ const TOOL_ICON = {
139
143
  waiting: "clock",
140
144
  };
141
145
  export function ToolCall(p) {
146
+ const t = useStrings(CHAT_STRINGS);
142
147
  const open = React.useState(!!p.defaultOpen), st = p.status || "done";
143
148
  return (_jsxs("div", { className: cx("tf-tool", "is-" + st, open[0] && "open"), children: [_jsxs("button", { type: "button", className: "tf-tool-head", "aria-expanded": open[0], onClick: () => {
144
149
  open[1](!open[0]);
145
- }, children: [_jsx("span", { className: "tf-tool-ico", children: st === "running" ? (_jsx("span", { className: "tf-spin", "aria-hidden": true })) : (_jsx(Icon, { name: TOOL_ICON[st] || "zap", size: 12 })) }), _jsx(Icon, { name: p.icon || "zap", size: 14, className: "tf-tool-kind" }), _jsx("b", { children: p.name }), _jsx("span", { className: "tf-tool-sum", children: p.summary }), p.duration && _jsx("span", { className: "tf-tool-time", children: p.duration }), _jsx(Icon, { name: "chevronDown", size: 14, className: "tf-tool-chev" })] }), open[0] && (_jsxs("div", { className: "tf-tool-body", children: [p.input != null && (_jsxs("div", { children: [_jsx("span", { className: "tf-tool-label", children: "Input" }), _jsx("pre", { children: typeof p.input === "string" ? p.input : JSON.stringify(p.input, null, 2) })] })), p.output != null && (_jsxs("div", { children: [_jsx("span", { className: "tf-tool-label", children: st === "error" ? "Error" : "Result" }), _jsx("pre", { className: st === "error" ? "err" : undefined, children: typeof p.output === "string" ? p.output : JSON.stringify(p.output, null, 2) })] }))] }))] }));
150
+ }, children: [_jsx("span", { className: "tf-tool-ico", children: st === "running" ? (_jsx("span", { className: "tf-spin", "aria-hidden": true })) : (_jsx(Icon, { name: TOOL_ICON[st] || "zap", size: 12 })) }), _jsx(Icon, { name: p.icon || "zap", size: 14, className: "tf-tool-kind" }), _jsx("b", { children: p.name }), _jsx("span", { className: "tf-tool-sum", children: p.summary }), p.duration && _jsx("span", { className: "tf-tool-time", children: p.duration }), _jsx(Icon, { name: "chevronDown", size: 14, className: "tf-tool-chev" })] }), open[0] && (_jsxs("div", { className: "tf-tool-body", children: [p.input != null && (_jsxs("div", { children: [_jsx("span", { className: "tf-tool-label", children: t.toolInput }), _jsx("pre", { children: typeof p.input === "string" ? p.input : JSON.stringify(p.input, null, 2) })] })), p.output != null && (_jsxs("div", { children: [_jsx("span", { className: "tf-tool-label", children: st === "error" ? t.toolError : t.toolResult }), _jsx("pre", { className: st === "error" ? "err" : undefined, children: typeof p.output === "string" ? p.output : JSON.stringify(p.output, null, 2) })] }))] }))] }));
146
151
  }
147
152
  export function Reasoning(p) {
153
+ const t = useStrings(CHAT_STRINGS);
148
154
  const open = React.useState(!!p.defaultOpen);
149
155
  return (_jsxs("div", { className: cx("tf-reason", open[0] && "open", p.streaming && "live"), children: [_jsxs("button", { type: "button", className: "tf-reason-head", "aria-expanded": open[0], onClick: () => {
150
156
  open[1](!open[0]);
151
- }, children: [_jsx(Icon, { name: "sparkle", size: 13 }), p.streaming ? "Thinking…" : `Thought for ${p.duration || "a few seconds"}`, _jsx(Icon, { name: "chevronDown", size: 13, className: "tf-tool-chev" })] }), open[0] && (_jsx("div", { className: "tf-reason-body", children: p.steps ? (_jsx("ol", { children: p.steps.map((s, i) => (_jsx("li", { children: s }, i))) })) : (p.text) }))] }));
157
+ }, children: [_jsx(Icon, { name: "sparkle", size: 13 }), p.streaming ? t.thinking : t.thoughtFor(p.duration), _jsx(Icon, { name: "chevronDown", size: 13, className: "tf-tool-chev" })] }), open[0] && (_jsx("div", { className: "tf-reason-body", children: p.steps ? (_jsx("ol", { children: p.steps.map((s, i) => (_jsx("li", { children: s }, i))) })) : (p.text) }))] }));
152
158
  }
153
159
  export function PromptStarters(p) {
154
160
  return (_jsx("div", { className: "tf-starters", children: (p.items || []).map((s, i) => (_jsxs("button", { type: "button", className: "tf-starter tf-in", style: {
@@ -158,13 +164,15 @@ export function PromptStarters(p) {
158
164
  }, children: [_jsx(TintIcon, { icon: s.icon || "sparkle", tint: s.tint || "sky" }), _jsx("b", { children: s.title }), s.text && _jsx("span", { children: s.text })] }, i))) }));
159
165
  }
160
166
  export function ModelPicker(p) {
167
+ const t = useStrings(CHAT_STRINGS);
161
168
  const models = p.models || [], cur = models.find((m) => m.id === p.value) || models[0] || {};
162
- return (_jsx(Popover, { side: p.side || "top", width: 300, flush: true, trigger: (s) => (_jsxs("button", { type: "button", className: "tf-model-btn", "aria-haspopup": "menu", "aria-expanded": s.open, onClick: s.toggle, children: [_jsx(Icon, { name: "sparkle", size: 13 }), cur.label, _jsx(Icon, { name: "chevronDown", size: 13 })] })), children: (s) => (_jsxs("div", { className: "tf-menu tf-menu-static", role: "menu", children: [_jsx("div", { className: "tf-menu-label", children: "Model" }), models.map((m) => (_jsxs("button", { type: "button", role: "menuitemradio", "aria-checked": m.id === cur.id, className: "tf-menu-item tf-model-item", onClick: () => {
169
+ return (_jsx(Popover, { side: p.side || "top", width: 300, flush: true, trigger: (s) => (_jsxs("button", { type: "button", className: "tf-model-btn", "aria-haspopup": "menu", "aria-expanded": s.open, onClick: s.toggle, children: [_jsx(Icon, { name: "sparkle", size: 13 }), cur.label, _jsx(Icon, { name: "chevronDown", size: 13 })] })), children: (s) => (_jsxs("div", { className: "tf-menu tf-menu-static", role: "menu", children: [_jsx("div", { className: "tf-menu-label", children: t.model }), models.map((m) => (_jsxs("button", { type: "button", role: "menuitemradio", "aria-checked": m.id === cur.id, className: "tf-menu-item tf-model-item", onClick: () => {
163
170
  p.onChange && p.onChange(m.id);
164
171
  s.close();
165
172
  }, children: [_jsxs("span", { className: "tf-option-text", children: [_jsx("b", { children: m.label }), m.hint && _jsx("small", { children: m.hint })] }), m.id === cur.id && _jsx(Icon, { name: "check", size: 15 })] }, m.id)))] })) }));
166
173
  }
167
174
  export function Composer(p) {
175
+ const t = useStrings(CHAT_STRINGS);
168
176
  const fileRef = React.useRef(null);
169
177
  const ta = React.useRef(null), v = useControlled(p.value, "", p.onChange), files = p.attachments || [], slash = React.useState(0);
170
178
  const cmds = (p.commands || []).filter((c) => /^\/\S*$/.test(v[0]) && ("/" + c.name).indexOf(v[0]) === 0);
@@ -196,13 +204,13 @@ export function Composer(p) {
196
204
  return;
197
205
  e.preventDefault();
198
206
  p.onAttach?.(e.dataTransfer.files);
199
- }, children: [cmds.length > 0 && (_jsxs("div", { className: "tf-popover tf-composer-cmds top", role: "listbox", children: [_jsx("div", { className: "tf-menu-label", children: "Commands" }), cmds.map((c, i) => (_jsxs("button", { type: "button", role: "option", "aria-selected": i === slash[0], className: cx("tf-option", i === slash[0] && "active"), onPointerDown: (e) => {
207
+ }, children: [cmds.length > 0 && (_jsxs("div", { className: "tf-popover tf-composer-cmds top", role: "listbox", children: [_jsx("div", { className: "tf-menu-label", children: t.commands }), cmds.map((c, i) => (_jsxs("button", { type: "button", role: "option", "aria-selected": i === slash[0], className: cx("tf-option", i === slash[0] && "active"), onPointerDown: (e) => {
200
208
  e.preventDefault();
201
209
  }, onClick: () => {
202
210
  pick(c);
203
- }, children: [_jsx(Icon, { name: c.icon || "zap", size: 15 }), _jsxs("span", { className: "tf-option-text", children: [_jsx("b", { children: "/" + c.name }), c.hint && _jsx("small", { children: c.hint })] })] }, c.name)))] })), files.length > 0 && (_jsx("div", { className: "tf-composer-files", children: files.map((f, i) => (_jsxs("span", { className: "tf-attach-chip", children: [_jsx(Icon, { name: "paperclip", size: 13 }), f.name, p.onRemoveAttachment && (_jsx("button", { type: "button", "aria-label": `Remove ${f.name}`, onClick: () => {
211
+ }, children: [_jsx(Icon, { name: c.icon || "zap", size: 15 }), _jsxs("span", { className: "tf-option-text", children: [_jsx("b", { children: "/" + c.name }), c.hint && _jsx("small", { children: c.hint })] })] }, c.name)))] })), files.length > 0 && (_jsx("div", { className: "tf-composer-files", children: files.map((f, i) => (_jsxs("span", { className: "tf-attach-chip", children: [_jsx(Icon, { name: "paperclip", size: 13 }), f.name, p.onRemoveAttachment && (_jsx("button", { type: "button", "aria-label": t.removeItem(f.name), onClick: () => {
204
212
  p.onRemoveAttachment?.(i);
205
- }, children: _jsx(Icon, { name: "x", size: 12 }) }))] }, f.name + i))) })), _jsx("textarea", { ref: ta, rows: 1, className: "tf-composer-input", placeholder: p.placeholder || "Message…", "aria-label": p.label || p.placeholder || "Message", value: v[0], disabled: p.disabled, onChange: (e) => {
213
+ }, children: _jsx(Icon, { name: "x", size: 12 }) }))] }, f.name + i))) })), _jsx("textarea", { ref: ta, rows: 1, className: "tf-composer-input", placeholder: p.placeholder || t.messagePlaceholder, "aria-label": p.label || p.placeholder || t.message, value: v[0], disabled: p.disabled, onChange: (e) => {
206
214
  v[1](e.target.value);
207
215
  slash[1](0);
208
216
  }, onKeyDown: (e) => {
@@ -227,14 +235,14 @@ export function Composer(p) {
227
235
  e.preventDefault();
228
236
  send();
229
237
  }
230
- } }), _jsxs("div", { className: "tf-composer-bar", children: [p.onAttach && (_jsx(Tooltip, { label: "Attach files", children: _jsxs("button", { type: "button", className: "tf-composer-tool", "aria-label": "Attach files", onClick: () => fileRef.current?.click(), children: [_jsx(Icon, { name: "paperclip", size: 16 }), _jsx("input", { ref: fileRef, type: "file", multiple: true, hidden: true, tabIndex: -1, onChange: (e) => {
238
+ } }), _jsxs("div", { className: "tf-composer-bar", children: [p.onAttach && (_jsx(Tooltip, { label: t.attachFiles, children: _jsxs("button", { type: "button", className: "tf-composer-tool", "aria-label": t.attachFiles, onClick: () => fileRef.current?.click(), children: [_jsx(Icon, { name: "paperclip", size: 16 }), _jsx("input", { ref: fileRef, type: "file", multiple: true, hidden: true, tabIndex: -1, onChange: (e) => {
231
239
  if (e.target.files)
232
240
  p.onAttach?.(e.target.files);
233
241
  e.target.value = "";
234
- } })] }) })), p.commands && (_jsx(Tooltip, { label: "Commands", shortcut: "/", children: _jsx("button", { type: "button", className: "tf-composer-tool", "aria-label": "Commands", onClick: () => {
242
+ } })] }) })), p.commands && (_jsx(Tooltip, { label: t.commands, shortcut: "/", children: _jsx("button", { type: "button", className: "tf-composer-tool", "aria-label": t.commands, onClick: () => {
235
243
  v[1]("/");
236
244
  ta.current && ta.current.focus();
237
- }, children: _jsx(Icon, { name: "code", size: 16 }) }) })), p.models && _jsx(ModelPicker, { models: p.models, value: p.model, onChange: p.onModel }), p.left, _jsx("span", { className: "tf-composer-hint", children: p.hint != null ? p.hint : "Enter to send · Shift+Enter for a new line" }), p.busy ? (_jsx("button", { type: "button", className: "tf-send stop", "aria-label": "Stop", onClick: p.onStop, children: _jsx("span", { className: "tf-stop-sq" }) })) : (_jsx("button", { type: "button", className: "tf-send", "aria-label": "Send", disabled: !v[0].trim() && !files.length, onClick: send, children: _jsx(Icon, { name: "arrowUp", size: 16 }) }))] })] }));
245
+ }, children: _jsx(Icon, { name: "code", size: 16 }) }) })), p.models && _jsx(ModelPicker, { models: p.models, value: p.model, onChange: p.onModel }), p.left, _jsx("span", { className: "tf-composer-hint", children: p.hint != null ? p.hint : t.composerHint }), p.busy ? (_jsx("button", { type: "button", className: "tf-send stop", "aria-label": t.stop, onClick: p.onStop, children: _jsx("span", { className: "tf-stop-sq" }) })) : (_jsx("button", { type: "button", className: "tf-send", "aria-label": t.send, disabled: !v[0].trim() && !files.length, onClick: send, children: _jsx(Icon, { name: "arrowUp", size: 16 }) }))] })] }));
238
246
  }
239
247
  const AGENT_TONE = {
240
248
  ["Running"]: "success",
@@ -245,8 +253,9 @@ const AGENT_TONE = {
245
253
  ["Error"]: "danger",
246
254
  };
247
255
  export function AgentStatus(p) {
256
+ const t = useStrings(CHAT_STRINGS);
248
257
  const s = p.status || "Idle";
249
- return (_jsxs("span", { className: "tf-agentstatus", children: [_jsx(Badge, { tone: AGENT_TONE[s] || "neutral", live: s === "Running" || s === "Thinking", children: s }), p.step && _jsx("span", { className: "tf-agentstatus-step", children: p.step })] }));
258
+ return (_jsxs("span", { className: "tf-agentstatus", children: [_jsx(Badge, { tone: AGENT_TONE[s] || "neutral", live: s === "Running" || s === "Thinking", children: t.agentStatus[s] ?? s }), p.step && _jsx("span", { className: "tf-agentstatus-step", children: p.step })] }));
250
259
  }
251
260
  const TRACE_ICON = {
252
261
  model: "sparkle",
@@ -258,25 +267,28 @@ const TRACE_ICON = {
258
267
  memory: "book",
259
268
  };
260
269
  export function RunTrace(p) {
270
+ const t = useStrings(CHAT_STRINGS);
271
+ const { formatNumber } = useFormat();
261
272
  const steps = p.steps || [], total = steps.reduce((a, s) => Math.max(a, (s.start || 0) + (s.ms || 0)), 1), sel = React.useState(p.defaultOpen != null ? p.defaultOpen : null);
262
273
  function fms(ms) {
263
274
  return ms >= 1000
264
275
  ? `${formatNumber(ms / 1000, { minimumFractionDigits: 1, maximumFractionDigits: 1 })} s`
265
276
  : `${formatNumber(ms)} ms`;
266
277
  }
267
- return (_jsxs("div", { className: "tf-trace", children: [_jsxs("div", { className: "tf-trace-head", children: [_jsx("span", { children: "Step" }), _jsx("span", { children: `Timeline · ${fms(total)}` })] }), steps.map((s, i) => {
278
+ return (_jsxs("div", { className: "tf-trace", children: [_jsxs("div", { className: "tf-trace-head", children: [_jsx("span", { children: t.step }), _jsx("span", { children: t.timeline(fms(total)) })] }), steps.map((s, i) => {
268
279
  const open = sel[0] === i, st = s.status || "done";
269
280
  return (_jsxs("div", { className: cx("tf-trace-row", "is-" + st, open && "open"), children: [_jsxs("button", { type: "button", className: "tf-trace-main", "aria-expanded": open, onClick: () => {
270
281
  sel[1](open ? null : i);
271
282
  }, children: [_jsx("span", { className: cx("tf-trace-ico", "k-" + (s.kind || "tool")), children: _jsx(Icon, { name: (s.kind && TRACE_ICON[s.kind]) || "zap", size: 13 }) }), _jsxs("span", { className: "tf-trace-label", children: [_jsx("b", { children: s.label }), s.meta && _jsx("small", { children: s.meta })] }), _jsxs("span", { className: "tf-trace-bar", children: [_jsx("i", { style: {
272
283
  left: ((s.start || 0) / total) * 100 + "%",
273
284
  width: Math.max(1.5, ((s.ms || 0) / total) * 100) + "%",
274
- } }), _jsx("em", { children: st === "running" ? "running…" : fms(s.ms || 0) })] })] }), open && s.detail && (_jsx("div", { className: "tf-trace-detail tf-in", children: typeof s.detail === "string" ? _jsx("pre", { children: s.detail }) : s.detail }))] }, i));
285
+ } }), _jsx("em", { children: st === "running" ? t.stepRunning : fms(s.ms || 0) })] })] }), open && s.detail && (_jsx("div", { className: "tf-trace-detail tf-in", children: typeof s.detail === "string" ? _jsx("pre", { children: s.detail }) : s.detail }))] }, i));
275
286
  }), p.footer && _jsx("div", { className: "tf-trace-foot", children: p.footer })] }));
276
287
  }
277
288
  export function UsageMeter(p) {
289
+ const t = useStrings(CHAT_STRINGS);
278
290
  const pct = Math.min(100, ((p.used || 0) / (p.limit || 1)) * 100), tone = pct >= 90 ? "blush" : pct >= 70 ? "butter" : "mint";
279
- return (_jsxs("div", { className: "tf-usage", children: [_jsxs("div", { className: "tf-usage-top", children: [_jsx("span", { children: p.label || "Context" }), _jsx("b", { children: (p.format || String)(p.used) + " / " + (p.format || String)(p.limit) })] }), _jsx("span", { className: "tf-usage-track", children: _jsx("span", { className: "tf-usage-fill tf-sf-" + tone, style: {
291
+ return (_jsxs("div", { className: "tf-usage", children: [_jsxs("div", { className: "tf-usage-top", children: [_jsx("span", { children: p.label || t.context }), _jsx("b", { children: (p.format || String)(p.used) + " / " + (p.format || String)(p.limit) })] }), _jsx("span", { className: "tf-usage-track", children: _jsx("span", { className: "tf-usage-fill tf-sf-" + tone, style: {
280
292
  width: pct + "%",
281
293
  } }) }), p.caption && _jsx("small", { children: p.caption })] }));
282
294
  }