@actioneer/ads 1.0.4 → 1.0.5

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 (58) hide show
  1. package/DESIGN.md +75 -75
  2. package/components/ai-elements/agent-trace.js +14 -14
  3. package/components/ai-elements/chain-of-thought.js +3 -3
  4. package/components/ai-elements/chart.js +3 -3
  5. package/components/ai-elements/inline-citation.js +2 -2
  6. package/components/ai-elements/message.js +1 -1
  7. package/components/ai-elements/research-activity.js +4 -4
  8. package/components/answer-sources.js +3 -3
  9. package/components/answer.js +3 -3
  10. package/components/assistant-ui/action-bar.js +2 -2
  11. package/components/assistant-ui/attachment.js +5 -5
  12. package/components/assistant-ui/badge.js +1 -1
  13. package/components/assistant-ui/branch-picker.js +1 -1
  14. package/components/assistant-ui/composer-add-context.js +7 -7
  15. package/components/assistant-ui/composer-deep-research.js +3 -3
  16. package/components/assistant-ui/composer-harness.js +1 -1
  17. package/components/assistant-ui/composer-trigger-popover.js +8 -8
  18. package/components/assistant-ui/composer.js +45 -45
  19. package/components/assistant-ui/file.js +9 -9
  20. package/components/assistant-ui/image.js +1 -1
  21. package/components/assistant-ui/markdown-text.js +1 -1
  22. package/components/assistant-ui/message-timing.js +1 -1
  23. package/components/assistant-ui/reasoning.js +10 -10
  24. package/components/assistant-ui/thread.js +1 -1
  25. package/components/assistant-ui/tool-fallback.js +2 -2
  26. package/components/assistant-ui/tool-group.js +3 -3
  27. package/components/autocomplete.js +28 -27
  28. package/components/brand-loader.d.ts +1 -1
  29. package/components/brand-loader.js +9 -9
  30. package/components/chart.js +5 -5
  31. package/components/checkbox.js +16 -16
  32. package/components/chip.js +33 -33
  33. package/components/collapsible.js +14 -12
  34. package/components/command-palette.js +37 -37
  35. package/components/connector-card.js +1 -1
  36. package/components/date-range-picker.js +2 -2
  37. package/components/dropdown.js +1 -1
  38. package/components/field.js +1 -1
  39. package/components/file-dropzone.js +2 -2
  40. package/components/infinite-canvas.js +1 -1
  41. package/components/modal.js +6 -6
  42. package/components/pagination.js +23 -23
  43. package/components/radio.js +1 -1
  44. package/components/segmented.js +23 -23
  45. package/components/selection-action-bar.js +13 -13
  46. package/components/sidebar.js +5 -5
  47. package/components/stepper.d.ts +1 -1
  48. package/components/stepper.js +4 -4
  49. package/components/switch.js +7 -7
  50. package/components/tooltip.js +1 -1
  51. package/components/tree.js +20 -20
  52. package/components/ui/button.js +21 -21
  53. package/components/ui/tooltip.js +3 -3
  54. package/llms.txt +6 -6
  55. package/manifest.json +13 -13
  56. package/package.json +1 -1
  57. package/styles.css +49 -56
  58. package/theme.css +49 -56
package/DESIGN.md CHANGED
@@ -8,55 +8,55 @@ colors:
8
8
  action-primary-soft: "#dfefec"
9
9
  action-primary-foreground: "#ffffff"
10
10
  field-focus: "#4c9b92"
11
- brand: "#20201e"
12
- brand-hover: "#4b4b47"
13
- brand-text: "#20201e"
11
+ brand: "#1c8379"
12
+ brand-hover: "#017369"
13
+ brand-text: "#016159"
14
14
  brand-foreground: "#ffffff"
15
- success: "#516923"
15
+ success: "#2d6b22"
16
16
  success-foreground: "#ffffff"
17
17
  warning: "#f79009"
18
- warning-foreground: "#20201e"
18
+ warning-foreground: "#21201d"
19
19
  danger: "#d92d20"
20
20
  danger-foreground: "#ffffff"
21
21
  info: "#1570ef"
22
22
  info-foreground: "#ffffff"
23
- background: "#f1f1ef"
24
- foreground: "#20201e"
25
- surface: "#ececea"
26
- surface-foreground: "#20201e"
23
+ background: "#f3f1e9"
24
+ foreground: "#21201d"
25
+ surface: "#efece3"
26
+ surface-foreground: "#21201d"
27
27
  elevated: "#ffffff"
28
28
  card: "#ffffff"
29
- card-foreground: "#20201e"
30
- muted: "#e5e5e2"
31
- muted-foreground: "#4b4b47"
32
- fill: "#ececea"
33
- fill-foreground: "#20201e"
34
- accent: "#dcdcd8"
35
- accent-foreground: "#20201e"
36
- on-white-primary: "#20201e"
37
- on-white-secondary: "#4b4b47"
38
- on-white-tertiary: "#777771"
39
- on-warm-grey-primary: "#20201e"
40
- on-warm-grey-secondary: "#4b4b47"
41
- on-warm-grey-tertiary: "#777771"
42
- primary: "#20201e"
43
- secondary: "#4b4b47"
29
+ card-foreground: "#21201d"
30
+ muted: "#e8e5db"
31
+ muted-foreground: "#4d4b44"
32
+ fill: "#efece3"
33
+ fill-foreground: "#21201d"
34
+ accent: "#dfdcd0"
35
+ accent-foreground: "#21201d"
36
+ on-white-primary: "#21201d"
37
+ on-white-secondary: "#4d4b44"
38
+ on-white-tertiary: "#79766a"
39
+ on-warm-grey-primary: "#21201d"
40
+ on-warm-grey-secondary: "#4d4b44"
41
+ on-warm-grey-tertiary: "#79766a"
42
+ primary: "#21201d"
43
+ secondary: "#4d4b44"
44
44
  tertiary: "color-mix(in srgb, var(--color-wg10) 80%, var(--color-wg11))"
45
- border: "#e5e5e2"
46
- border-primary: "#dcdcd8"
47
- border-secondary: "#e5e5e2"
48
- border-tertiary: "#ececea"
49
- border-strong: "#dcdcd8"
50
- input: "#e5e5e2"
51
- menu-stroke: "#e5e5e2"
52
- toast-stroke: "#e5e5e2"
53
- tree-stroke: "#e5e5e2"
54
- specimen-stroke: "#ececea"
45
+ border: "#e8e5db"
46
+ border-primary: "#dfdcd0"
47
+ border-secondary: "#e8e5db"
48
+ border-tertiary: "#efece3"
49
+ border-strong: "#dfdcd0"
50
+ input: "#e8e5db"
51
+ menu-stroke: "#e8e5db"
52
+ toast-stroke: "#e8e5db"
53
+ tree-stroke: "#e8e5db"
54
+ specimen-stroke: "#efece3"
55
55
  table-shell: "#ffffff"
56
- table-stroke: "#ececea"
56
+ table-stroke: "#efece3"
57
57
  table-header-foreground: "color-mix(in srgb, var(--color-wg10) 80%, var(--color-wg11))"
58
58
  artifact-canvas: "color-mix(in srgb, var(--color-brand-mark) 7%, var(--color-white))"
59
- ring: "color-mix(in srgb, var(--color-wg12) 50%, transparent)"
59
+ ring: "#1c8379"
60
60
  overlay: "color-mix(in srgb, var(--color-wg12) 50%, transparent)"
61
61
  typography:
62
62
  display:
@@ -179,7 +179,7 @@ components:
179
179
 
180
180
  TASTE.md puts it in one line: On a quiet, neutral ground, colour and motion are spent like money — rarely, deliberately, and only where the eye should go.
181
181
 
182
- ADS 1.0.4 is a library first and a look second. 323 components across 10 families (Primitives / utilities, Foundations, Form controls, Overlays, Data display, Feedback, Navigation, Layout, AI Elements, Chat) ship from one barrel, and every product that consumes them inherits the judgment encoded in 56 semantic tokens and 11 principles rather than re-deciding it per screen.
182
+ ADS 1.0.5 is a library first and a look second. 323 components across 10 families (Primitives / utilities, Foundations, Form controls, Overlays, Data display, Feedback, Navigation, Layout, AI Elements, Chat) ship from one barrel, and every product that consumes them inherits the judgment encoded in 56 semantic tokens and 11 principles rather than re-deciding it per screen.
183
183
 
184
184
  The ground is warm grey and the ink is warm near-black. One hue is spent by default, the Studio teal CTA family, and four more carry semantic status. Everything else stays neutral. A consumer product may narrow that further, and one already does: Baby Sentinel drops the teal and runs every action on ink.
185
185
 
@@ -211,26 +211,26 @@ The one place a hue is spent by default: the Studio teal CTA family.
211
211
 
212
212
  The neutral-ink action role kept as a compatibility API.
213
213
 
214
- **Compatibility action role — neutral ink, never a colored primary hue.**
214
+ **Shared brand roles for control states, primary accents, and marks.**
215
215
 
216
- - **brand** (`--color-brand`, #20201e) `bg-brand`
217
- - **brand-hover** (`--color-brand-hover`, #4b4b47) `bg-brand-hover`
218
- - **brand-text** (`--color-brand-text`, #20201e) `text-brand-text`
216
+ - **brand** (`--color-brand`, #1c8379) `bg-brand`
217
+ - **brand-hover** (`--color-brand-hover`, #017369) `bg-brand-hover`
218
+ - **brand-text** (`--color-brand-text`, #016159) `text-brand-text`
219
219
  - **brand-foreground** (`--color-brand-foreground`, #ffffff) `text-brand-foreground`
220
220
 
221
221
  ### Tertiary
222
222
 
223
223
  Semantic status. These four carry meaning and are never identity.
224
224
 
225
- **Lichen success-700 clears AA on White and both success soft fills; success-600 is reserved for non-text marks because its 3.73:1 contrast on White does not clear body-text AA.**
225
+ **Grass green 700 clears AA on White and both success soft fills.**
226
226
 
227
- - **success** (`--color-success`, #516923) `bg-success`
227
+ - **success** (`--color-success`, #2d6b22) `bg-success`
228
228
  - **success-foreground** (`--color-success-foreground`, #ffffff) `text-success-foreground`
229
229
 
230
230
  **Amber-500 fill kept (it IS the caution signal); dark ink foreground instead of white = 6.94:1 (white on amber was 2.35:1, failed even 3:1).**
231
231
 
232
232
  - **warning** (`--color-warning`, #f79009) `bg-warning`
233
- - **warning-foreground** (`--color-warning-foreground`, #20201e) `text-warning-foreground`
233
+ - **warning-foreground** (`--color-warning-foreground`, #21201d) `text-warning-foreground`
234
234
 
235
235
  **Danger and info: solid semantic fills carrying white foregrounds.**
236
236
 
@@ -245,70 +245,70 @@ The warm-grey ground everything else stands on.
245
245
 
246
246
  **The shell canvas and its ink: the ground between top-level panels.**
247
247
 
248
- - **background** (`--color-background`, #f1f1ef) `bg-background`
249
- - **foreground** (`--color-foreground`, #20201e) `text-foreground`
248
+ - **background** (`--color-background`, #f3f1e9) `bg-background`
249
+ - **foreground** (`--color-foreground`, #21201d) `text-foreground`
250
250
 
251
251
  **One continuous recess inside a white surface, never a screen-level ground.**
252
252
 
253
- - **surface** (`--color-surface`, #ececea) `bg-surface`
254
- - **surface-foreground** (`--color-surface-foreground`, #20201e) `text-surface-foreground`
253
+ - **surface** (`--color-surface`, #efece3) `bg-surface`
254
+ - **surface-foreground** (`--color-surface-foreground`, #21201d) `text-surface-foreground`
255
255
  - **elevated** (`--color-elevated`, #ffffff) `bg-elevated`
256
256
 
257
257
  **The white working plane that sits on the canvas, and the specimen hairline.**
258
258
 
259
259
  - **card** (`--color-card`, #ffffff) `bg-card`
260
- - **card-foreground** (`--color-card-foreground`, #20201e) `text-card-foreground`
260
+ - **card-foreground** (`--color-card-foreground`, #21201d) `text-card-foreground`
261
261
 
262
262
  **The hover and row-state wash: interaction, not a default item background.**
263
263
 
264
- - **muted** (`--color-muted`, #e5e5e2) `bg-muted`
265
- - **muted-foreground** (`--color-muted-foreground`, #4b4b47) `text-muted-foreground`
264
+ - **muted** (`--color-muted`, #e8e5db) `bg-muted`
265
+ - **muted-foreground** (`--color-muted-foreground`, #4d4b44) `text-muted-foreground`
266
266
 
267
267
  **Quiet fill — avatars, chips, and disabled controls.**
268
268
 
269
- - **fill** (`--color-fill`, #ececea) `bg-fill`
270
- - **fill-foreground** (`--color-fill-foreground`, #20201e) `text-fill-foreground`
269
+ - **fill** (`--color-fill`, #efece3) `bg-fill`
270
+ - **fill-foreground** (`--color-fill-foreground`, #21201d) `text-fill-foreground`
271
271
 
272
272
  **The active and selected wash, one step above hover.**
273
273
 
274
- - **accent** (`--color-accent`, #dcdcd8) `bg-accent`
275
- - **accent-foreground** (`--color-accent-foreground`, #20201e) `text-accent-foreground`
274
+ - **accent** (`--color-accent`, #dfdcd0) `bg-accent`
275
+ - **accent-foreground** (`--color-accent-foreground`, #21201d) `text-accent-foreground`
276
276
 
277
277
  **Contextual text hierarchies — three accessible levels per surface.**
278
278
 
279
- - **on-white-primary** (`--color-on-white-primary`, #20201e) `bg-on-white-primary`
280
- - **on-white-secondary** (`--color-on-white-secondary`, #4b4b47) `bg-on-white-secondary`
281
- - **on-white-tertiary** (`--color-on-white-tertiary`, #777771) `bg-on-white-tertiary`
282
- - **on-warm-grey-primary** (`--color-on-warm-grey-primary`, #20201e) `bg-on-warm-grey-primary`
283
- - **on-warm-grey-secondary** (`--color-on-warm-grey-secondary`, #4b4b47) `bg-on-warm-grey-secondary`
284
- - **on-warm-grey-tertiary** (`--color-on-warm-grey-tertiary`, #777771) `bg-on-warm-grey-tertiary`
279
+ - **on-white-primary** (`--color-on-white-primary`, #21201d) `bg-on-white-primary`
280
+ - **on-white-secondary** (`--color-on-white-secondary`, #4d4b44) `bg-on-white-secondary`
281
+ - **on-white-tertiary** (`--color-on-white-tertiary`, #79766a) `bg-on-white-tertiary`
282
+ - **on-warm-grey-primary** (`--color-on-warm-grey-primary`, #21201d) `bg-on-warm-grey-primary`
283
+ - **on-warm-grey-secondary** (`--color-on-warm-grey-secondary`, #4d4b44) `bg-on-warm-grey-secondary`
284
+ - **on-warm-grey-tertiary** (`--color-on-warm-grey-tertiary`, #79766a) `bg-on-warm-grey-tertiary`
285
285
 
286
286
  **Context-free compatibility aliases remain conservative.**
287
287
 
288
- - **primary** (`--color-primary`, #20201e) `bg-primary`
289
- - **secondary** (`--color-secondary`, #4b4b47) `bg-secondary`
288
+ - **primary** (`--color-primary`, #21201d) `bg-primary`
289
+ - **secondary** (`--color-secondary`, #4d4b44) `bg-secondary`
290
290
  - **tertiary** (`--color-tertiary`, color-mix(in srgb, var(--color-wg10) 80%, var(--color-wg11))) `bg-tertiary`
291
291
 
292
292
  **The neutral stroke ladder: every 1px UI border stays within WG3 to WG5.**
293
293
 
294
- - **border** (`--color-border`, #e5e5e2) `bg-border`
295
- - **border-primary** (`--color-border-primary`, #dcdcd8) `bg-border-primary`
296
- - **border-secondary** (`--color-border-secondary`, #e5e5e2) `bg-border-secondary`
297
- - **border-tertiary** (`--color-border-tertiary`, #ececea) `bg-border-tertiary`
298
- - **border-strong** (`--color-border-strong`, #dcdcd8) `bg-border-strong`
299
- - **input** (`--color-input`, #e5e5e2) `bg-input`
300
- - **menu-stroke** (`--color-menu-stroke`, #e5e5e2) `bg-menu-stroke`
301
- - **toast-stroke** (`--color-toast-stroke`, #e5e5e2) `bg-toast-stroke`
302
- - **tree-stroke** (`--color-tree-stroke`, #e5e5e2) `bg-tree-stroke`
294
+ - **border** (`--color-border`, #e8e5db) `bg-border`
295
+ - **border-primary** (`--color-border-primary`, #dfdcd0) `bg-border-primary`
296
+ - **border-secondary** (`--color-border-secondary`, #e8e5db) `bg-border-secondary`
297
+ - **border-tertiary** (`--color-border-tertiary`, #efece3) `bg-border-tertiary`
298
+ - **border-strong** (`--color-border-strong`, #dfdcd0) `bg-border-strong`
299
+ - **input** (`--color-input`, #e8e5db) `bg-input`
300
+ - **menu-stroke** (`--color-menu-stroke`, #e8e5db) `bg-menu-stroke`
301
+ - **toast-stroke** (`--color-toast-stroke`, #e8e5db) `bg-toast-stroke`
302
+ - **tree-stroke** (`--color-tree-stroke`, #e8e5db) `bg-tree-stroke`
303
303
 
304
304
  **The white working plane that sits on the canvas, and the specimen hairline.**
305
305
 
306
- - **specimen-stroke** (`--color-specimen-stroke`, #ececea) `bg-specimen-stroke`
306
+ - **specimen-stroke** (`--color-specimen-stroke`, #efece3) `bg-specimen-stroke`
307
307
 
308
308
  **Table surfaces: the white tray, its hairlines, and header ink.**
309
309
 
310
310
  - **table-shell** (`--color-table-shell`, #ffffff) `bg-table-shell`
311
- - **table-stroke** (`--color-table-stroke`, #ececea) `bg-table-stroke`
311
+ - **table-stroke** (`--color-table-stroke`, #efece3) `bg-table-stroke`
312
312
  - **table-header-foreground** (`--color-table-header-foreground`, color-mix(in srgb, var(--color-wg10) 80%, var(--color-wg11))) `text-table-header-foreground`
313
313
 
314
314
  **The artifact sheet: white warmed by a trace of the brand mark.**
@@ -317,7 +317,7 @@ The warm-grey ground everything else stands on.
317
317
 
318
318
  **Focus ring and scrim, both translucent warm ink.**
319
319
 
320
- - **ring** (`--color-ring`, color-mix(in srgb, var(--color-wg12) 50%, transparent)) `ring-ring`
320
+ - **ring** (`--color-ring`, #1c8379) `ring-ring`
321
321
  - **overlay** (`--color-overlay`, color-mix(in srgb, var(--color-wg12) 50%, transparent)) `bg-overlay`
322
322
 
323
323
  ### Named rules
@@ -12,7 +12,7 @@ import { Text as ce } from "../typography.js";
12
12
  import { ChainOfThoughtStep as de, ChainOfThoughtTrigger as ue, ChainOfThoughtContent as he, ChainOfThoughtItem as me, ChainOfThoughtSearchResults as pe, ChainOfThoughtSearchResult as fe, ChainOfThought as ge } from "./chain-of-thought.js";
13
13
  import { TraceStateIcon as C } from "./chain-of-thought-icon.js";
14
14
  import { ResearchActivity as L } from "./research-activity.js";
15
- import { Tool as ve, ToolHeader as be, ToolContent as xe, ToolInput as Ne, ToolOutput as Ce } from "./tool.js";
15
+ import { Tool as ve, ToolHeader as be, ToolContent as Ne, ToolInput as xe, ToolOutput as Ce } from "./tool.js";
16
16
  const Te = "Main Agent", we = 60, _ = J(!0);
17
17
  function ye({
18
18
  title: e,
@@ -39,7 +39,7 @@ function ye({
39
39
  ),
40
40
  /* @__PURE__ */ t("span", { className: "text-base", children: e }),
41
41
  /* @__PURE__ */ i("span", { className: "ml-auto flex shrink-0 items-center gap-2", children: [
42
- a != null && /* @__PURE__ */ t("span", { className: "text-xs text-tertiary tabular-nums", children: a }),
42
+ a != null && /* @__PURE__ */ t("span", { className: "text-s text-tertiary tabular-nums", children: a }),
43
43
  /* @__PURE__ */ t(
44
44
  ee,
45
45
  {
@@ -79,7 +79,7 @@ function k(e) {
79
79
  if (e.elapsed != null) return e.elapsed;
80
80
  if (e.seconds != null) return T(e.seconds);
81
81
  }
82
- function N(e) {
82
+ function x(e) {
83
83
  const r = [];
84
84
  for (const a of e) r.includes(a.group) || r.push(a.group);
85
85
  return r;
@@ -102,8 +102,8 @@ function Oe(e) {
102
102
  }
103
103
  const F = P(({ call: e }) => /* @__PURE__ */ i(ve, { children: [
104
104
  /* @__PURE__ */ t(be, { title: e.name, type: `tool-${e.name}`, state: e.state }),
105
- /* @__PURE__ */ i(xe, { children: [
106
- e.input !== void 0 && /* @__PURE__ */ t(Ne, { input: e.input }),
105
+ /* @__PURE__ */ i(Ne, { children: [
106
+ e.input !== void 0 && /* @__PURE__ */ t(xe, { input: e.input }),
107
107
  /* @__PURE__ */ t(
108
108
  Ce,
109
109
  {
@@ -132,7 +132,7 @@ const G = P(
132
132
  return /* @__PURE__ */ i(de, { status: e.status === "error" ? "error" : "complete", children: [
133
133
  /* @__PURE__ */ i(ue, { leftIcon: s, endContent: l, children: [
134
134
  /* @__PURE__ */ t("span", { children: e.label }),
135
- e.agent && e.agent !== r && /* @__PURE__ */ t("span", { className: "ml-2 text-xs font-normal text-tertiary", children: e.agent })
135
+ e.agent && e.agent !== r && /* @__PURE__ */ t("span", { className: "ml-2 text-s font-normal text-tertiary", children: e.agent })
136
136
  ] }),
137
137
  /* @__PURE__ */ t(he, { rail: !1, children: /* @__PURE__ */ i("div", { className: "-ml-5", style: { "--tree-rail-lead": "18px" }, children: [
138
138
  e.detail != null && /* @__PURE__ */ t("div", { className: "ads-tree-rail pb-3", children: /* @__PURE__ */ t(me, { children: e.detail }) }),
@@ -163,17 +163,17 @@ const $e = ({
163
163
  ...w
164
164
  }) => {
165
165
  var D, E;
166
- const n = e.find((o) => o.status === "active") ?? null, p = e.filter((o) => o.status === "complete" || o.status === "error"), y = new Set(l ?? []), g = e.length > 0 && e.every((o) => o.status === "complete" || o.status === "error"), [H, S] = Q(() => new Set(N(e))), A = j(null);
166
+ const n = e.find((o) => o.status === "active") ?? null, p = e.filter((o) => o.status === "complete" || o.status === "error"), y = new Set(l ?? []), g = e.length > 0 && e.every((o) => o.status === "complete" || o.status === "error"), [H, S] = Q(() => new Set(x(e))), A = j(null);
167
167
  R(() => {
168
168
  const o = (n == null ? void 0 : n.group) ?? null;
169
- o == null || o === A.current || (A.current = o, S(new Set(N(e).filter((u) => u !== o))));
169
+ o == null || o === A.current || (A.current = o, S(new Set(x(e).filter((u) => u !== o))));
170
170
  }, [n == null ? void 0 : n.group, e]);
171
171
  const M = j(g);
172
172
  R(() => {
173
- g && !M.current && (S(new Set(N(e))), A.current = null), M.current = g;
173
+ g && !M.current && (S(new Set(x(e))), A.current = null), M.current = g;
174
174
  }, [g, e]);
175
- const v = N(p).map((o) => {
176
- var f, x;
175
+ const v = x(p).map((o) => {
176
+ var f, N;
177
177
  const u = p.filter((b) => b.group === o), c = u[0];
178
178
  return {
179
179
  group: o,
@@ -181,7 +181,7 @@ const $e = ({
181
181
  C,
182
182
  {
183
183
  stage: c == null ? void 0 : c.state,
184
- toolName: (x = (f = c == null ? void 0 : c.calls) == null ? void 0 : f[0]) == null ? void 0 : x.name,
184
+ toolName: (N = (f = c == null ? void 0 : c.calls) == null ? void 0 : f[0]) == null ? void 0 : N.name,
185
185
  status: "complete"
186
186
  }
187
187
  ),
@@ -211,8 +211,8 @@ const $e = ({
211
211
  icon: u,
212
212
  summary: Ae(c),
213
213
  open: !H.has(o),
214
- onOpenChange: (f) => S((x) => {
215
- const b = new Set(x);
214
+ onOpenChange: (f) => S((N) => {
215
+ const b = new Set(N);
216
216
  return f ? b.delete(o) : b.add(o), b;
217
217
  }),
218
218
  children: /* @__PURE__ */ t(ge, { children: c.map((f) => /* @__PURE__ */ t(
@@ -153,7 +153,7 @@ const k = O(!1), S = O("tree"), I = c(
153
153
  ),
154
154
  /* @__PURE__ */ e("span", { className: "min-w-0 flex-1", children: o }),
155
155
  /* @__PURE__ */ l("span", { className: "ml-auto flex shrink-0 items-center gap-2", children: [
156
- r != null && /* @__PURE__ */ e("span", { className: "text-xs text-tertiary tabular-nums", children: r }),
156
+ r != null && /* @__PURE__ */ e("span", { className: "text-s text-tertiary tabular-nums", children: r }),
157
157
  t && /* @__PURE__ */ e(
158
158
  w,
159
159
  {
@@ -300,7 +300,7 @@ const k = O(!1), S = O("tree"), I = c(
300
300
  children: a
301
301
  }
302
302
  ),
303
- r != null && /* @__PURE__ */ e("span", { className: "shrink-0 text-xs text-tertiary tabular-nums", children: r }),
303
+ r != null && /* @__PURE__ */ e("span", { className: "shrink-0 text-s text-tertiary tabular-nums", children: r }),
304
304
  /* @__PURE__ */ e(
305
305
  w,
306
306
  {
@@ -380,7 +380,7 @@ const k = O(!1), S = O("tree"), I = c(
380
380
  )) }, p);
381
381
  }) })
382
382
  ] }) }),
383
- h && /* @__PURE__ */ l("p", { className: "px-2.5 py-1.5 text-xs text-tertiary tabular-nums", children: [
383
+ h && /* @__PURE__ */ l("p", { className: "px-2.5 py-1.5 text-s text-tertiary tabular-nums", children: [
384
384
  a.length,
385
385
  " of ",
386
386
  r,
@@ -217,7 +217,7 @@ const ee = g.forwardRef(
217
217
  children: /* @__PURE__ */ e(O, { "data-slot": "ai-chart-icon", className: "size-4" })
218
218
  }
219
219
  ),
220
- /* @__PURE__ */ e("span", { className: "min-w-0 truncate text-xs font-normal text-foreground", children: i }),
220
+ /* @__PURE__ */ e("span", { className: "min-w-0 truncate text-m font-normal text-foreground", children: i }),
221
221
  o != null && /* @__PURE__ */ e(
222
222
  Q,
223
223
  {
@@ -231,7 +231,7 @@ const ee = g.forwardRef(
231
231
  "span",
232
232
  {
233
233
  "data-slot": "ai-chart-meta",
234
- className: "ml-auto shrink-0 text-xs tabular-nums",
234
+ className: "ml-auto shrink-0 text-s tabular-nums",
235
235
  children: m
236
236
  }
237
237
  ),
@@ -279,7 +279,7 @@ const ee = g.forwardRef(
279
279
  "button",
280
280
  {
281
281
  type: "button",
282
- className: "rounded-sm text-left outline-none transition-colors duration-150 ease-out hover:text-foreground focus-visible:ring-3 focus-visible:ring-ring motion-reduce:transition-none",
282
+ className: "rounded-sm text-left text-s outline-none transition-colors duration-150 ease-out hover:text-foreground focus-visible:ring-3 focus-visible:ring-ring motion-reduce:transition-none",
283
283
  "aria-label": `Open source ${s}`,
284
284
  onClick: () => h(s),
285
285
  children: [
@@ -223,7 +223,7 @@ const G = ({
223
223
  "div",
224
224
  {
225
225
  className: c(
226
- "flex flex-1 items-center justify-end px-3 py-1 text-xs text-tertiary tabular-nums",
226
+ "flex flex-1 items-center justify-end px-3 py-1 text-s text-tertiary tabular-nums",
227
227
  t
228
228
  ),
229
229
  ...s,
@@ -278,7 +278,7 @@ const G = ({
278
278
  ...a
279
279
  }) => /* @__PURE__ */ k("div", { className: c("space-y-1", n), ...a, children: [
280
280
  e && /* @__PURE__ */ i("p", { className: "truncate font-normal text-base leading-tight text-primary", children: e }),
281
- t && /* @__PURE__ */ i("p", { className: "truncate break-all text-xs text-tertiary", children: t }),
281
+ t && /* @__PURE__ */ i("p", { className: "truncate break-all text-s text-tertiary", children: t }),
282
282
  s && /* @__PURE__ */ i("p", { className: "line-clamp-3 text-base leading-relaxed text-secondary", children: s }),
283
283
  r
284
284
  ] }), ee = ({
@@ -253,7 +253,7 @@ const H = o.forwardRef(({ className: e, ...t }, a) => {
253
253
  {
254
254
  ref: a,
255
255
  className: i(
256
- "px-1.5 text-xs tabular-nums text-tertiary select-none",
256
+ "px-1.5 text-s tabular-nums text-tertiary select-none",
257
257
  e
258
258
  ),
259
259
  ...t,
@@ -53,10 +53,10 @@ function $({
53
53
  m === 1 ? "source" : "sources"
54
54
  ] }),
55
55
  /* @__PURE__ */ e("span", { "aria-hidden": !0, className: "text-tertiary", children: "·" }),
56
- /* @__PURE__ */ e("span", { className: "text-xs text-tertiary tabular-nums", children: t }),
56
+ /* @__PURE__ */ e("span", { className: "text-s text-tertiary tabular-nums", children: t }),
57
57
  n != null && /* @__PURE__ */ r(q, { children: [
58
58
  /* @__PURE__ */ e("span", { "aria-hidden": !0, className: "text-tertiary", children: "·" }),
59
- /* @__PURE__ */ r("span", { className: "text-xs text-tertiary", children: [
59
+ /* @__PURE__ */ r("span", { className: "text-s text-tertiary", children: [
60
60
  "first insight",
61
61
  " ",
62
62
  /* @__PURE__ */ e("span", { className: "tabular-nums", children: n })
@@ -169,7 +169,7 @@ const oe = s.forwardRef(
169
169
  O
170
170
  ) }) }) }),
171
171
  l && /* @__PURE__ */ r("span", { className: o(
172
- "shrink-0 text-xs text-tertiary tabular-nums",
172
+ "shrink-0 text-s text-tertiary tabular-nums",
173
173
  // Reserve the caret slot (size-4 + gap-2) so trailing metadata
174
174
  // keeps the same right edge as sibling rows that show a caret.
175
175
  !x && "pe-6"
@@ -205,7 +205,7 @@ const oe = s.forwardRef(
205
205
  /* @__PURE__ */ e("span", { "aria-hidden": !0, className: "flex size-4 shrink-0 items-center justify-center", children: v ?? R }),
206
206
  /* @__PURE__ */ e(K, { as: "span", className: "text-base", children: "Researching…" }),
207
207
  /* @__PURE__ */ r("span", { className: o(
208
- "ml-auto shrink-0 text-xs text-tertiary tabular-nums",
208
+ "ml-auto shrink-0 text-s text-tertiary tabular-nums",
209
209
  !x && "pe-6"
210
210
  ), children: [
211
211
  /* @__PURE__ */ e("span", { className: "sr-only", children: "Elapsed " }),
@@ -73,7 +73,7 @@ const v = c.forwardRef(
73
73
  ref: d,
74
74
  type: "button",
75
75
  className: o(
76
- "flex w-full items-start gap-3 rounded-lg border border-border bg-fill p-3 text-left",
76
+ "flex w-full items-start gap-3 rounded-lg border border-border bg-fill p-3 text-left text-m",
77
77
  "transition-colors hover:bg-muted",
78
78
  "outline-none focus-visible:ring-3 focus-visible:ring-ring",
79
79
  l
@@ -86,8 +86,8 @@ const v = c.forwardRef(
86
86
  /* @__PURE__ */ e("span", { className: "min-w-0 flex-1 truncate font-normal tabular-nums text-foreground", children: a }),
87
87
  n && /* @__PURE__ */ e("span", { className: "shrink-0", children: n })
88
88
  ] }),
89
- r && /* @__PURE__ */ e("span", { className: "mt-0.5 flex items-center gap-1.5 text-xs text-secondary", children: r }),
90
- s && /* @__PURE__ */ e("span", { className: "mt-1.5 block text-xs text-secondary", children: s })
89
+ r && /* @__PURE__ */ e("span", { className: "mt-0.5 flex items-center gap-1.5 text-s text-secondary", children: r }),
90
+ s && /* @__PURE__ */ e("span", { className: "mt-1.5 block text-s text-secondary", children: s })
91
91
  ] }),
92
92
  /* @__PURE__ */ e(
93
93
  u,
@@ -491,7 +491,7 @@ const N = e.enum([
491
491
  variants: {
492
492
  tone: {
493
493
  default: "text-foreground",
494
- primary: "text-brand",
494
+ primary: "text-brand-text",
495
495
  success: "text-success-700",
496
496
  warning: "text-warning-700",
497
497
  danger: "text-danger-700",
@@ -503,7 +503,7 @@ const N = e.enum([
503
503
  variants: {
504
504
  tone: {
505
505
  default: "text-secondary",
506
- primary: "text-brand",
506
+ primary: "text-brand-text",
507
507
  success: "text-success-700",
508
508
  warning: "text-warning-700",
509
509
  danger: "text-danger-700",
@@ -1484,7 +1484,7 @@ const ue = p.forwardRef(({ spec: a, onFollowUp: l, onOptionSelect: c, onSourceSe
1484
1484
  ),
1485
1485
  children: [
1486
1486
  /* @__PURE__ */ t("span", { className: "block text-sm font-medium text-foreground", children: u.label }),
1487
- u.description && /* @__PURE__ */ t("span", { className: "mt-0.5 block text-xs leading-5 text-secondary", children: u.description })
1487
+ u.description && /* @__PURE__ */ t("span", { className: "mt-0.5 block text-s leading-5 text-secondary", children: u.description })
1488
1488
  ]
1489
1489
  },
1490
1490
  u.id
@@ -62,14 +62,14 @@ const z = ({ open: s, onOpenChange: i }) => {
62
62
  n.Item,
63
63
  {
64
64
  onSelect: () => i(!0),
65
- className: "aui-action-bar-more-item hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground flex cursor-pointer items-center gap-2 rounded-lg px-2.5 py-1.5 text-xs outline-none select-none",
65
+ className: "aui-action-bar-more-item hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground flex cursor-pointer items-center gap-2 rounded-lg px-2.5 py-1.5 text-m outline-none select-none",
66
66
  children: [
67
67
  /* @__PURE__ */ e(N, { className: "size-4" }),
68
68
  "Add to Artifact"
69
69
  ]
70
70
  }
71
71
  ),
72
- /* @__PURE__ */ e(o.ExportMarkdown, { asChild: !0, children: /* @__PURE__ */ t(n.Item, { className: "aui-action-bar-more-item hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground flex cursor-pointer items-center gap-2 rounded-lg px-2.5 py-1.5 text-xs outline-none select-none", children: [
72
+ /* @__PURE__ */ e(o.ExportMarkdown, { asChild: !0, children: /* @__PURE__ */ t(n.Item, { className: "aui-action-bar-more-item hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground flex cursor-pointer items-center gap-2 rounded-lg px-2.5 py-1.5 text-m outline-none select-none", children: [
73
73
  /* @__PURE__ */ e(k, { className: "size-4" }),
74
74
  "Export as Markdown"
75
75
  ] }) })
@@ -188,11 +188,11 @@ const V = (a) => {
188
188
  className: "flex size-5 shrink-0 items-center justify-center rounded text-muted-foreground outline-none transition-colors hover:bg-foreground/10 hover:text-foreground focus-visible:ring-2 focus-visible:ring-ring [&_svg]:size-3.5",
189
189
  children: /* @__PURE__ */ e(T, {})
190
190
  }
191
- ) }), ae = ({ isComposer: a }) => /* @__PURE__ */ e(s.Root, { className: "aui-attachment-root", children: /* @__PURE__ */ i("div", { className: "inline-flex max-w-[15rem] items-center gap-1.5 rounded-md bg-muted py-1 pe-1 ps-2 text-xs text-foreground", children: [
191
+ ) }), ae = ({ isComposer: a }) => /* @__PURE__ */ e(s.Root, { className: "aui-attachment-root", children: /* @__PURE__ */ i("div", { className: "inline-flex max-w-[15rem] items-center gap-1.5 rounded-md bg-muted py-1 pe-1 ps-2 text-s text-foreground", children: [
192
192
  /* @__PURE__ */ e(L, { className: "size-3.5 shrink-0 text-muted-foreground" }),
193
193
  /* @__PURE__ */ e("span", { className: "truncate", children: /* @__PURE__ */ e(s.Name, {}) }),
194
194
  a && /* @__PURE__ */ e(x, { label: "Remove context" })
195
- ] }) }), ne = ({ isComposer: a }) => /* @__PURE__ */ e(s.Root, { className: "aui-attachment-root", children: /* @__PURE__ */ i("div", { className: "inline-flex max-w-[15rem] items-center gap-1.5 rounded-md bg-info-50 py-1 pe-1 ps-2 text-xs text-info-700", children: [
195
+ ] }) }), ne = ({ isComposer: a }) => /* @__PURE__ */ e(s.Root, { className: "aui-attachment-root", children: /* @__PURE__ */ i("div", { className: "inline-flex max-w-[15rem] items-center gap-1.5 rounded-md bg-info-50 py-1 pe-1 ps-2 text-s text-info-700", children: [
196
196
  /* @__PURE__ */ e(S, { className: "size-3.5 shrink-0" }),
197
197
  /* @__PURE__ */ i("span", { className: "truncate", children: [
198
198
  "Harness · ",
@@ -211,8 +211,8 @@ const V = (a) => {
211
211
  }
212
212
  ),
213
213
  /* @__PURE__ */ i("div", { className: "min-w-0 flex-1", children: [
214
- /* @__PURE__ */ e("div", { className: "truncate text-xs font-medium leading-tight text-foreground", children: /* @__PURE__ */ e(s.Name, {}) }),
215
- /* @__PURE__ */ e("div", { className: "truncate text-xs leading-tight text-muted-foreground", children: n ? "Upload failed" : r ? "Uploading…" : t })
214
+ /* @__PURE__ */ e("div", { className: "truncate text-s font-medium leading-tight text-foreground", children: /* @__PURE__ */ e(s.Name, {}) }),
215
+ /* @__PURE__ */ e("div", { className: "truncate text-s leading-tight text-muted-foreground", children: n ? "Upload failed" : r ? "Uploading…" : t })
216
216
  ] }),
217
217
  a && /* @__PURE__ */ e(x, { label: "Remove file" })
218
218
  ] }) }), ie = () => /* @__PURE__ */ e(s.Remove, { asChild: !0, children: /* @__PURE__ */ e(
@@ -234,7 +234,7 @@ const V = (a) => {
234
234
  side: "bottom",
235
235
  variant: "ghost",
236
236
  size: "icon",
237
- className: "aui-composer-add-attachment hover:bg-muted-foreground/15 size-7 rounded-full p-1 text-xs font-medium",
237
+ className: "aui-composer-add-attachment hover:bg-muted-foreground/15 size-7 rounded-full p-1 font-medium",
238
238
  "aria-label": "Add Attachment",
239
239
  children: /* @__PURE__ */ e(_, { className: "aui-attachment-add-icon size-4.5 stroke-[1.5px]" })
240
240
  }
@@ -4,7 +4,7 @@ import { Slot as g } from "radix-ui";
4
4
  import { cva as d } from "class-variance-authority";
5
5
  import { cn as i } from "../../lib/cn.js";
6
6
  const c = d(
7
- "inline-flex items-center justify-center gap-1 rounded-md text-xs font-medium transition-colors [&_svg]:size-3 [&_svg]:shrink-0",
7
+ "inline-flex items-center justify-center gap-1 rounded-md text-s font-medium transition-colors [&_svg]:size-3 [&_svg]:shrink-0",
8
8
  {
9
9
  variants: {
10
10
  variant: {
@@ -16,7 +16,7 @@ const f = ({
16
16
  {
17
17
  hideWhenSingleBranch: n,
18
18
  className: m(
19
- "aui-branch-picker-root text-muted-foreground -ms-2 me-2 inline-flex items-center text-xs",
19
+ "aui-branch-picker-root text-muted-foreground -ms-2 me-2 inline-flex items-center text-s",
20
20
  o
21
21
  ),
22
22
  ...c,
@@ -20,7 +20,7 @@ function ue({
20
20
  }) {
21
21
  return /* @__PURE__ */ n(S.Provider, { value: o, children: /* @__PURE__ */ n(T.Provider, { value: t ?? j, children: a }) });
22
22
  }
23
- const w = "flex w-full items-center gap-2.5 rounded-md px-2 py-1.5 text-xs text-left outline-none transition-colors hover:bg-muted focus-visible:bg-muted [&_svg]:size-4 [&_svg]:shrink-0 [&_img]:size-4 [&_img]:shrink-0 [&_img]:rounded-xs", _ = (o) => o.map((t) => t.label).slice(1).join(" · "), te = (o) => o.startsWith("mem.") || o.startsWith("skill.");
23
+ const w = "flex w-full items-center gap-2.5 rounded-md px-2 py-1.5 text-m text-left outline-none transition-colors hover:bg-muted focus-visible:bg-muted [&_svg]:size-4 [&_svg]:shrink-0 [&_img]:size-4 [&_img]:shrink-0 [&_img]:rounded-xs", _ = (o) => o.map((t) => t.label).slice(1).join(" · "), te = (o) => o.startsWith("mem.") || o.startsWith("skill.");
24
24
  function fe() {
25
25
  const o = E(S), t = E(T), a = V(), B = X((e) => e.attachments), [c, g] = y(!1), [u, h] = y([]), b = A(null), k = A(null), [d, O] = y(null);
26
26
  if (U(() => {
@@ -102,8 +102,8 @@ function fe() {
102
102
  children: /* @__PURE__ */ n(Q, {})
103
103
  }
104
104
  ),
105
- /* @__PURE__ */ n("span", { className: "min-w-0 flex-1 truncate text-xs font-medium text-muted-foreground", children: u.map((e) => e.label).join(" · ") })
106
- ] }) : /* @__PURE__ */ n("div", { className: "px-2 py-1 text-xs font-medium text-muted-foreground", children: "Agent's context" }),
105
+ /* @__PURE__ */ n("span", { className: "min-w-0 flex-1 truncate text-s font-medium text-muted-foreground", children: u.map((e) => e.label).join(" · ") })
106
+ ] }) : /* @__PURE__ */ n("div", { className: "px-2 py-1 text-s font-medium text-muted-foreground", children: "Agent's context" }),
107
107
  (l == null ? void 0 : l.addable) && (() => {
108
108
  const e = _(u), r = v.has(e);
109
109
  return /* @__PURE__ */ m(
@@ -114,14 +114,14 @@ function fe() {
114
114
  var s;
115
115
  return C(e, (s = l.children) == null ? void 0 : s.map((i) => i.id));
116
116
  },
117
- className: K(w, "mb-0.5 font-medium text-brand"),
117
+ className: K(w, "mb-0.5 font-medium text-brand-text"),
118
118
  children: [
119
119
  /* @__PURE__ */ n(Y, {}),
120
120
  /* @__PURE__ */ m("span", { className: "min-w-0 flex-1 truncate", children: [
121
121
  "Add all of ",
122
122
  l.label
123
123
  ] }),
124
- r && /* @__PURE__ */ n(L, { className: "text-brand" })
124
+ r && /* @__PURE__ */ n(L, { className: "text-brand-text" })
125
125
  ]
126
126
  }
127
127
  );
@@ -153,8 +153,8 @@ function fe() {
153
153
  children: [
154
154
  e.icon ?? /* @__PURE__ */ n(P, {}),
155
155
  /* @__PURE__ */ n("span", { className: "min-w-0 flex-1 truncate", children: e.label }),
156
- e.hint && /* @__PURE__ */ n("span", { className: "shrink-0 text-xs tabular-nums text-muted-foreground", children: e.hint }),
157
- i && /* @__PURE__ */ n(L, { className: "shrink-0 text-brand" })
156
+ e.hint && /* @__PURE__ */ n("span", { className: "shrink-0 text-s tabular-nums text-muted-foreground", children: e.hint }),
157
+ i && /* @__PURE__ */ n(L, { className: "shrink-0 text-brand-text" })
158
158
  ]
159
159
  },
160
160
  e.id