@actioneer/ads 1.0.4 → 1.0.6

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 (59) hide show
  1. package/DESIGN.md +75 -75
  2. package/README.md +205 -0
  3. package/components/ai-elements/agent-trace.js +14 -14
  4. package/components/ai-elements/chain-of-thought.js +3 -3
  5. package/components/ai-elements/chart.js +3 -3
  6. package/components/ai-elements/inline-citation.js +2 -2
  7. package/components/ai-elements/message.js +1 -1
  8. package/components/ai-elements/research-activity.js +4 -4
  9. package/components/answer-sources.js +3 -3
  10. package/components/answer.js +3 -3
  11. package/components/assistant-ui/action-bar.js +2 -2
  12. package/components/assistant-ui/attachment.js +5 -5
  13. package/components/assistant-ui/badge.js +1 -1
  14. package/components/assistant-ui/branch-picker.js +1 -1
  15. package/components/assistant-ui/composer-add-context.js +7 -7
  16. package/components/assistant-ui/composer-deep-research.js +3 -3
  17. package/components/assistant-ui/composer-harness.js +1 -1
  18. package/components/assistant-ui/composer-trigger-popover.js +8 -8
  19. package/components/assistant-ui/composer.js +45 -45
  20. package/components/assistant-ui/file.js +9 -9
  21. package/components/assistant-ui/image.js +1 -1
  22. package/components/assistant-ui/markdown-text.js +1 -1
  23. package/components/assistant-ui/message-timing.js +1 -1
  24. package/components/assistant-ui/reasoning.js +10 -10
  25. package/components/assistant-ui/thread.js +1 -1
  26. package/components/assistant-ui/tool-fallback.js +2 -2
  27. package/components/assistant-ui/tool-group.js +3 -3
  28. package/components/autocomplete.js +28 -27
  29. package/components/brand-loader.d.ts +1 -1
  30. package/components/brand-loader.js +9 -9
  31. package/components/chart.js +5 -5
  32. package/components/checkbox.js +16 -16
  33. package/components/chip.js +33 -33
  34. package/components/collapsible.js +14 -12
  35. package/components/command-palette.js +37 -37
  36. package/components/connector-card.js +1 -1
  37. package/components/date-range-picker.js +2 -2
  38. package/components/dropdown.js +1 -1
  39. package/components/field.js +1 -1
  40. package/components/file-dropzone.js +2 -2
  41. package/components/infinite-canvas.js +1 -1
  42. package/components/modal.js +6 -6
  43. package/components/pagination.js +23 -23
  44. package/components/radio.js +1 -1
  45. package/components/segmented.js +23 -23
  46. package/components/selection-action-bar.js +13 -13
  47. package/components/sidebar.js +5 -5
  48. package/components/stepper.d.ts +1 -1
  49. package/components/stepper.js +4 -4
  50. package/components/switch.js +7 -7
  51. package/components/tooltip.js +1 -1
  52. package/components/tree.js +20 -20
  53. package/components/ui/button.js +21 -21
  54. package/components/ui/tooltip.js +3 -3
  55. package/llms.txt +6 -6
  56. package/manifest.json +13 -13
  57. package/package.json +1 -1
  58. package/styles.css +49 -56
  59. package/theme.css +49 -56
@@ -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
@@ -10,7 +10,7 @@ function p({
10
10
  }) {
11
11
  return /* @__PURE__ */ r(t.Provider, { value: o, children: e });
12
12
  }
13
- function x() {
13
+ function g() {
14
14
  const o = c(t);
15
15
  if (!o) return null;
16
16
  const { enabled: e, setEnabled: i } = o;
@@ -25,7 +25,7 @@ function x() {
25
25
  "aria-pressed": e,
26
26
  onClick: () => i(!e),
27
27
  className: n(
28
- "flex h-7 shrink-0 items-center gap-1.5 rounded-full px-2.5 text-xs font-medium outline-none transition-colors",
28
+ "flex h-7 shrink-0 items-center gap-1.5 rounded-full px-2.5 text-s font-medium outline-none transition-colors",
29
29
  "focus-visible:ring-3 focus-visible:ring-ring",
30
30
  e ? "bg-info-50 text-info-700 hover:bg-info-100" : "text-muted-foreground hover:bg-muted-foreground/15 hover:text-foreground"
31
31
  ),
@@ -48,6 +48,6 @@ function x() {
48
48
  );
49
49
  }
50
50
  export {
51
- x as ComposerDeepResearch,
51
+ g as ComposerDeepResearch,
52
52
  p as DeepResearchProvider
53
53
  };
@@ -140,7 +140,7 @@ function wi() {
140
140
  "button",
141
141
  {
142
142
  type: "button",
143
- className: "group flex h-7 shrink-0 items-center gap-1.5 rounded-full px-2.5 text-xs font-medium text-muted-foreground outline-none transition-colors hover:bg-muted-foreground/15 hover:text-foreground focus-visible:ring-3 focus-visible:ring-ring",
143
+ className: "group flex h-7 shrink-0 items-center gap-1.5 rounded-full px-2.5 text-s font-medium text-muted-foreground outline-none transition-colors hover:bg-muted-foreground/15 hover:text-foreground focus-visible:ring-3 focus-visible:ring-ring",
144
144
  "aria-label": "Add harness",
145
145
  children: [
146
146
  /* @__PURE__ */ e(a, { className: "size-4 shrink-0" }),
@@ -5,7 +5,7 @@ import { ComposerPrimitive as n, unstable_defaultDirectiveFormatter as u, unstab
5
5
  import { Sparkles as y, ChevronRight as P, ChevronLeft as T } from "../../lib/icons.js";
6
6
  import { Spinner as C } from "../spinner.js";
7
7
  import { cn as I } from "../../lib/cn.js";
8
- function x(o, r, i) {
8
+ function f(o, r, i) {
9
9
  return o && (r != null && r[o]) ? r[o] : i;
10
10
  }
11
11
  const _ = ({
@@ -19,7 +19,7 @@ const _ = ({
19
19
  className: "flex flex-col py-1",
20
20
  children: [
21
21
  c.map((a) => {
22
- const l = x(a.id, o, r);
22
+ const l = f(a.id, o, r);
23
23
  return /* @__PURE__ */ s(
24
24
  n.Unstable_TriggerPopoverCategoryItem,
25
25
  {
@@ -53,14 +53,14 @@ const _ = ({
53
53
  "data-slot": "composer-trigger-popover-items",
54
54
  className: "flex flex-col",
55
55
  children: [
56
- /* @__PURE__ */ s(n.Unstable_TriggerPopoverBack, { className: "text-muted-foreground hover:bg-accent flex cursor-pointer items-center gap-1.5 border-b px-3 py-2 text-xs tracking-wide uppercase transition-colors", children: [
56
+ /* @__PURE__ */ s(n.Unstable_TriggerPopoverBack, { className: "text-muted-foreground hover:bg-accent flex cursor-pointer items-center gap-1.5 border-b px-3 py-2 text-s tracking-wide uppercase transition-colors", children: [
57
57
  /* @__PURE__ */ e(T, { className: "size-3.5" }),
58
58
  i
59
59
  ] }),
60
60
  /* @__PURE__ */ s("div", { className: "py-1", children: [
61
61
  p.map((t, m) => {
62
62
  var d;
63
- const g = typeof ((d = t.metadata) == null ? void 0 : d.icon) == "string" ? t.metadata.icon : void 0, v = x(g, o, r);
63
+ const g = typeof ((d = t.metadata) == null ? void 0 : d.icon) == "string" ? t.metadata.icon : void 0, v = f(g, o, r);
64
64
  return /* @__PURE__ */ s(
65
65
  n.Unstable_TriggerPopoverItem,
66
66
  {
@@ -72,7 +72,7 @@ const _ = ({
72
72
  /* @__PURE__ */ e(v, { className: "text-primary size-3.5" }),
73
73
  t.label
74
74
  ] }),
75
- t.description && /* @__PURE__ */ e("span", { className: "text-muted-foreground ms-5.5 text-xs leading-tight", children: t.description })
75
+ t.description && /* @__PURE__ */ e("span", { className: "text-muted-foreground ms-5.5 text-s leading-tight", children: t.description })
76
76
  ]
77
77
  },
78
78
  t.id
@@ -93,7 +93,7 @@ const _ = ({
93
93
  ]
94
94
  }
95
95
  ) });
96
- }, f = ({
96
+ }, x = ({
97
97
  iconMap: o,
98
98
  fallbackIcon: r = y,
99
99
  backLabel: i = "Back",
@@ -149,9 +149,9 @@ const _ = ({
149
149
  ]
150
150
  }
151
151
  ));
152
- f.displayName = "ComposerTriggerPopover";
152
+ x.displayName = "ComposerTriggerPopover";
153
153
  const S = h(
154
- f
154
+ x
155
155
  );
156
156
  export {
157
157
  S as ComposerTriggerPopover
@@ -9,18 +9,18 @@ import { ComposerQuotePreview as K } from "./quote.js";
9
9
  import { ThreadComponentsContext as j } from "./thread-context.js";
10
10
  import { TooltipIconButton as P } from "./tooltip-icon-button.js";
11
11
  import { Button as A } from "../ui/button.js";
12
- import { ComposerPrimitive as s, MessagePrimitive as q, unstable_useComposerInput as U, AuiIf as S } from "@assistant-ui/react";
13
- import { Mic as Y, Stop as M, ArrowUp as O } from "../../lib/icons.js";
12
+ import { ComposerPrimitive as a, MessagePrimitive as q, unstable_useComposerInput as U, AuiIf as S } from "@assistant-ui/react";
13
+ import { Mic as Y, Stop as _, ArrowUp as O } from "../../lib/icons.js";
14
14
  const Q = 24, V = 850, X = 1800, G = 3e3;
15
- function J(a) {
15
+ function J(s) {
16
16
  return Math.min(
17
17
  X,
18
- Math.max(V, a.length * Q)
18
+ Math.max(V, s.length * Q)
19
19
  );
20
20
  }
21
- function W(a, n, r, f, x) {
22
- if (n <= 0 || a.length === 0)
23
- return r(a), { promise: Promise.resolve(), cancel: () => {
21
+ function W(s, n, r, f, x) {
22
+ if (n <= 0 || s.length === 0)
23
+ return r(s), { promise: Promise.resolve(), cancel: () => {
24
24
  } };
25
25
  let v = 0, C, N;
26
26
  return {
@@ -37,8 +37,8 @@ function W(a, n, r, f, x) {
37
37
  return;
38
38
  }
39
39
  h !== null && (m += i - h, h = null);
40
- const l = Math.min(1, (i - m) / n), c = l >= 1 ? a.length : Math.floor(l * a.length);
41
- if (r(a.slice(0, c)), l >= 1) {
40
+ const l = Math.min(1, (i - m) / n), c = l >= 1 ? s.length : Math.floor(l * s.length);
41
+ if (r(s.slice(0, c)), l >= 1) {
42
42
  y();
43
43
  return;
44
44
  }
@@ -52,7 +52,7 @@ function W(a, n, r, f, x) {
52
52
  };
53
53
  }
54
54
  const Z = ({
55
- autoFocus: a = !0
55
+ autoFocus: s = !0
56
56
  }) => {
57
57
  const { setText: n } = U(), r = u.useContext(L), [f, x] = u.useState(
58
58
  (r == null ? void 0 : r[0]) ?? "Send a message…"
@@ -69,16 +69,16 @@ const Z = ({
69
69
  l(t);
70
70
  }, g = () => {
71
71
  window.clearTimeout(i), i = window.setTimeout(c, 0);
72
- }, b = () => {
72
+ }, w = () => {
73
73
  m.current = o.value.length > 0 || document.activeElement === o;
74
74
  }, z = (t, d) => {
75
75
  n(t), o.value = t, o.dispatchEvent(new Event("input", { bubbles: !0 })), l(t.length > 0), window.setTimeout(() => {
76
76
  document.activeElement === o && o.setSelectionRange(d, d);
77
77
  }, 0);
78
78
  }, R = (t) => {
79
- const d = o.selectionStart ?? 0, _ = o.selectionEnd ?? d;
80
- return d === _ || t.inputType !== "deleteContentBackward" && t.inputType !== "deleteContentForward" && t.inputType !== "deleteByCut" ? !1 : (t.preventDefault(), z(
81
- o.value.slice(0, d) + o.value.slice(_),
79
+ const d = o.selectionStart ?? 0, M = o.selectionEnd ?? d;
80
+ return d === M || t.inputType !== "deleteContentBackward" && t.inputType !== "deleteContentForward" && t.inputType !== "deleteByCut" ? !1 : (t.preventDefault(), z(
81
+ o.value.slice(0, d) + o.value.slice(M),
82
82
  d
83
83
  ), !0);
84
84
  }, E = (t) => {
@@ -89,11 +89,11 @@ const Z = ({
89
89
  }
90
90
  g();
91
91
  }
92
- }, w = (t) => {
92
+ }, b = (t) => {
93
93
  (t.metaKey || t.ctrlKey) && !t.altKey && t.key.toLowerCase() === "a" && (t.preventDefault(), o.select());
94
94
  };
95
- return c(), o.addEventListener("beforeinput", E), o.addEventListener("input", c), o.addEventListener("focus", b), o.addEventListener("blur", b), o.addEventListener("keydown", w), () => {
96
- window.clearTimeout(i), o.removeEventListener("beforeinput", E), o.removeEventListener("input", c), o.removeEventListener("focus", b), o.removeEventListener("blur", b), o.removeEventListener("keydown", w);
95
+ return c(), o.addEventListener("beforeinput", E), o.addEventListener("input", c), o.addEventListener("focus", w), o.addEventListener("blur", w), o.addEventListener("keydown", b), () => {
96
+ window.clearTimeout(i), o.removeEventListener("beforeinput", E), o.removeEventListener("input", c), o.removeEventListener("focus", w), o.removeEventListener("blur", w), o.removeEventListener("keydown", b);
97
97
  };
98
98
  }, [o, n]), u.useEffect(() => {
99
99
  var E;
@@ -106,25 +106,25 @@ const Z = ({
106
106
  return;
107
107
  }
108
108
  let i = !1, l = 0, c, g;
109
- const b = (w) => new Promise((t) => {
110
- c = window.setTimeout(t, w);
109
+ const w = (b) => new Promise((t) => {
110
+ c = window.setTimeout(t, b);
111
111
  }), z = () => i;
112
112
  return (async () => {
113
113
  for (; !i; ) {
114
- for (; m.current && !i; ) await b(100);
114
+ for (; m.current && !i; ) await w(100);
115
115
  if (i) return;
116
- const w = r[l];
116
+ const b = r[l];
117
117
  x("");
118
118
  const { promise: t, cancel: d } = W(
119
- w,
120
- J(w),
119
+ b,
120
+ J(b),
121
121
  x,
122
122
  z,
123
123
  () => m.current
124
124
  );
125
125
  if (g = d, await t, g = void 0, i) return;
126
126
  if (!m.current) {
127
- if (await b(G), i) return;
127
+ if (await w(G), i) return;
128
128
  l = (l + 1) % r.length;
129
129
  }
130
130
  }
@@ -143,13 +143,13 @@ const Z = ({
143
143
  }
144
144
  ),
145
145
  /* @__PURE__ */ e(
146
- s.Input,
146
+ a.Input,
147
147
  {
148
148
  ref: h,
149
149
  placeholder: r != null && r.length ? "" : f,
150
- className: "aui-composer-input caret-primary placeholder:text-muted-foreground/80 relative z-10 max-h-32 min-h-14 w-full resize-none bg-transparent px-2.5 py-1 text-base text-foreground outline-none",
150
+ className: "aui-composer-input caret-brand placeholder:text-muted-foreground/80 relative z-10 max-h-32 min-h-14 w-full resize-none bg-transparent px-2.5 py-1 text-base text-foreground outline-none",
151
151
  rows: 1,
152
- autoFocus: a,
152
+ autoFocus: s,
153
153
  enterKeyHint: "send",
154
154
  "aria-label": "Message input"
155
155
  }
@@ -159,14 +159,14 @@ const Z = ({
159
159
  void 0
160
160
  );
161
161
  function me({
162
- prompts: a,
162
+ prompts: s,
163
163
  children: n
164
164
  }) {
165
- return /* @__PURE__ */ e(L.Provider, { value: a, children: n });
165
+ return /* @__PURE__ */ e(L.Provider, { value: s, children: n });
166
166
  }
167
167
  const pe = ({
168
- autoFocus: a = !0
169
- }) => /* @__PURE__ */ e(s.Root, { className: "aui-composer-root animate-in fade-in slide-in-from-bottom-2 fill-mode-both relative flex w-full flex-col duration-200 delay-[420ms]", children: /* @__PURE__ */ e(s.Unstable_TriggerPopoverRoot, { children: /* @__PURE__ */ e(s.AttachmentDropzone, { asChild: !0, children: /* @__PURE__ */ p(
168
+ autoFocus: s = !0
169
+ }) => /* @__PURE__ */ e(a.Root, { className: "aui-composer-root animate-in fade-in slide-in-from-bottom-2 fill-mode-both relative flex w-full flex-col duration-200 delay-[420ms]", children: /* @__PURE__ */ e(a.Unstable_TriggerPopoverRoot, { children: /* @__PURE__ */ e(a.AttachmentDropzone, { asChild: !0, children: /* @__PURE__ */ p(
170
170
  "div",
171
171
  {
172
172
  "data-slot": "aui_composer-shell",
@@ -174,21 +174,21 @@ const pe = ({
174
174
  var f;
175
175
  n.target.closest("button, a, input, textarea, [role='button']") || (f = n.currentTarget.querySelector("textarea")) == null || f.focus();
176
176
  },
177
- className: "border-wg2 data-[dragging=true]:border-ring focus-within:border-border relative flex w-full flex-col gap-2 rounded-(--composer-radius) border bg-(--composer-bg) p-(--composer-padding) shadow-400 transition-[border-color,box-shadow] data-[dragging=true]:border-dashed data-[dragging=true]:bg-[color-mix(in_oklab,var(--color-accent)_50%,var(--color-background))]",
177
+ className: "border-wg2 data-[dragging=true]:border-ring focus-within:border-field-focus relative flex w-full flex-col gap-2 rounded-(--composer-radius) border bg-(--composer-bg) p-(--composer-padding) shadow-400 transition-[border-color,box-shadow] data-[dragging=true]:border-dashed data-[dragging=true]:bg-action-primary-soft",
178
178
  children: [
179
179
  /* @__PURE__ */ e(K, { className: "mx-0 mt-0" }),
180
180
  /* @__PURE__ */ e(k, {}),
181
- /* @__PURE__ */ e(Z, { autoFocus: a }),
181
+ /* @__PURE__ */ e(Z, { autoFocus: s }),
182
182
  /* @__PURE__ */ e($, {})
183
183
  ]
184
184
  }
185
185
  ) }) }) }), $ = () => {
186
- const { ComposerAccessories: a = ee } = I(j);
186
+ const { ComposerAccessories: s = ee } = I(j);
187
187
  return /* @__PURE__ */ p("div", { className: "aui-composer-action-wrapper relative flex items-center justify-between", children: [
188
- /* @__PURE__ */ e("div", { className: "flex items-center gap-1", children: /* @__PURE__ */ e(a, {}) }),
188
+ /* @__PURE__ */ e("div", { className: "flex items-center gap-1", children: /* @__PURE__ */ e(s, {}) }),
189
189
  /* @__PURE__ */ p("div", { className: "flex items-center gap-1.5", children: [
190
190
  /* @__PURE__ */ p(S, { condition: (n) => n.thread.capabilities.dictation, children: [
191
- /* @__PURE__ */ e(S, { condition: (n) => n.composer.dictation == null, children: /* @__PURE__ */ e(s.Dictate, { asChild: !0, children: /* @__PURE__ */ e(
191
+ /* @__PURE__ */ e(S, { condition: (n) => n.composer.dictation == null, children: /* @__PURE__ */ e(a.Dictate, { asChild: !0, children: /* @__PURE__ */ e(
192
192
  P,
193
193
  {
194
194
  tooltip: "Voice input",
@@ -201,7 +201,7 @@ const pe = ({
201
201
  children: /* @__PURE__ */ e(Y, { className: "aui-composer-dictate-icon size-4" })
202
202
  }
203
203
  ) }) }),
204
- /* @__PURE__ */ e(S, { condition: (n) => n.composer.dictation != null, children: /* @__PURE__ */ e(s.StopDictation, { asChild: !0, children: /* @__PURE__ */ e(
204
+ /* @__PURE__ */ e(S, { condition: (n) => n.composer.dictation != null, children: /* @__PURE__ */ e(a.StopDictation, { asChild: !0, children: /* @__PURE__ */ e(
205
205
  P,
206
206
  {
207
207
  tooltip: "Stop dictation",
@@ -211,11 +211,11 @@ const pe = ({
211
211
  size: "icon",
212
212
  className: "aui-composer-stop-dictation text-destructive size-7 rounded-full",
213
213
  "aria-label": "Stop voice input",
214
- children: /* @__PURE__ */ e(M, { className: "aui-composer-stop-dictation-icon size-3.5 animate-pulse fill-current" })
214
+ children: /* @__PURE__ */ e(_, { className: "aui-composer-stop-dictation-icon size-3.5 animate-pulse fill-current" })
215
215
  }
216
216
  ) }) })
217
217
  ] }),
218
- /* @__PURE__ */ e(S, { condition: (n) => !n.thread.isRunning, children: /* @__PURE__ */ e(s.Send, { asChild: !0, children: /* @__PURE__ */ e(
218
+ /* @__PURE__ */ e(S, { condition: (n) => !n.thread.isRunning, children: /* @__PURE__ */ e(a.Send, { asChild: !0, children: /* @__PURE__ */ e(
219
219
  P,
220
220
  {
221
221
  tooltip: "Send message",
@@ -228,7 +228,7 @@ const pe = ({
228
228
  children: /* @__PURE__ */ e(O, { className: "aui-composer-send-icon size-4.5" })
229
229
  }
230
230
  ) }) }),
231
- /* @__PURE__ */ e(S, { condition: (n) => n.thread.isRunning, children: /* @__PURE__ */ e(s.Cancel, { asChild: !0, children: /* @__PURE__ */ e(
231
+ /* @__PURE__ */ e(S, { condition: (n) => n.thread.isRunning, children: /* @__PURE__ */ e(a.Cancel, { asChild: !0, children: /* @__PURE__ */ e(
232
232
  A,
233
233
  {
234
234
  type: "button",
@@ -236,7 +236,7 @@ const pe = ({
236
236
  size: "icon",
237
237
  className: "aui-composer-cancel size-7 rounded-full",
238
238
  "aria-label": "Stop generating",
239
- children: /* @__PURE__ */ e(M, { className: "aui-composer-cancel-icon size-3.5 fill-current" })
239
+ children: /* @__PURE__ */ e(_, { className: "aui-composer-cancel-icon size-3.5 fill-current" })
240
240
  }
241
241
  ) }) })
242
242
  ] })
@@ -250,16 +250,16 @@ const pe = ({
250
250
  {
251
251
  "data-slot": "aui_edit-composer-wrapper",
252
252
  className: "flex flex-col px-2 [contain-intrinsic-size:auto_200px] [content-visibility:auto]",
253
- children: /* @__PURE__ */ p(s.Root, { className: "aui-edit-composer-root border-border/60 ms-auto flex w-full max-w-[85%] flex-col rounded-(--composer-radius) border bg-(--composer-bg) shadow-200", children: [
253
+ children: /* @__PURE__ */ p(a.Root, { className: "aui-edit-composer-root border-border/60 focus-within:border-field-focus ms-auto flex w-full max-w-[85%] flex-col rounded-(--composer-radius) border bg-(--composer-bg) shadow-200", children: [
254
254
  /* @__PURE__ */ e(
255
- s.Input,
255
+ a.Input,
256
256
  {
257
257
  className: "aui-edit-composer-input text-foreground min-h-14 w-full resize-none bg-transparent px-4 pt-3 pb-1 text-base outline-none",
258
258
  autoFocus: !0
259
259
  }
260
260
  ),
261
261
  /* @__PURE__ */ p("div", { className: "aui-edit-composer-footer mx-2.5 mb-2.5 flex items-center gap-1.5 self-end", children: [
262
- /* @__PURE__ */ e(s.Cancel, { asChild: !0, children: /* @__PURE__ */ e(
262
+ /* @__PURE__ */ e(a.Cancel, { asChild: !0, children: /* @__PURE__ */ e(
263
263
  A,
264
264
  {
265
265
  variant: "ghost",
@@ -268,7 +268,7 @@ const pe = ({
268
268
  children: "Cancel"
269
269
  }
270
270
  ) }),
271
- /* @__PURE__ */ e(s.Send, { asChild: !0, children: /* @__PURE__ */ e(A, { size: "sm", className: "h-8 rounded-full px-3.5", children: "Update" }) })
271
+ /* @__PURE__ */ e(a.Send, { asChild: !0, children: /* @__PURE__ */ e(A, { size: "sm", className: "h-8 rounded-full px-3.5", children: "Update" }) })
272
272
  ] })
273
273
  ] })
274
274
  }
@@ -14,7 +14,7 @@ const $ = v(
14
14
  muted: "bg-muted/50 hover:bg-muted/70"
15
15
  },
16
16
  size: {
17
- sm: "px-2.5 py-1.5 text-xs",
17
+ sm: "px-2.5 py-1.5 text-s",
18
18
  default: "px-3 py-2 text-sm",
19
19
  lg: "px-4 py-3 text-base"
20
20
  }
@@ -86,7 +86,7 @@ function m({
86
86
  }
87
87
  );
88
88
  }
89
- function x({ bytes: t, className: e, ...n }) {
89
+ function h({ bytes: t, className: e, ...n }) {
90
90
  return /* @__PURE__ */ o(
91
91
  "span",
92
92
  {
@@ -97,7 +97,7 @@ function x({ bytes: t, className: e, ...n }) {
97
97
  }
98
98
  );
99
99
  }
100
- function h({
100
+ function x({
101
101
  data: t,
102
102
  mimeType: e,
103
103
  filename: n,
@@ -127,10 +127,10 @@ const M = ({ filename: t, data: e, mimeType: n }) => {
127
127
  /* @__PURE__ */ o(f, { mimeType: n }),
128
128
  /* @__PURE__ */ l("div", { className: "flex min-w-0 flex-1 flex-col gap-0.5", children: [
129
129
  /* @__PURE__ */ o(m, { children: t }),
130
- /* @__PURE__ */ o(x, { bytes: r, className: "text-xs" })
130
+ /* @__PURE__ */ o(h, { bytes: r, className: "text-s" })
131
131
  ] }),
132
132
  /* @__PURE__ */ o(
133
- h,
133
+ x,
134
134
  {
135
135
  data: e,
136
136
  mimeType: n,
@@ -143,15 +143,15 @@ i.displayName = "File";
143
143
  i.Root = u;
144
144
  i.Icon = f;
145
145
  i.Name = m;
146
- i.Size = x;
147
- i.Download = h;
146
+ i.Size = h;
147
+ i.Download = x;
148
148
  export {
149
149
  i as File,
150
- h as FileDownload,
150
+ x as FileDownload,
151
151
  f as FileIconDisplay,
152
152
  m as FileName,
153
153
  u as FileRoot,
154
- x as FileSize,
154
+ h as FileSize,
155
155
  $ as fileVariants,
156
156
  W as formatFileSize,
157
157
  D as getBase64Size,
@@ -159,7 +159,7 @@ function v({
159
159
  {
160
160
  "data-slot": "image-filename",
161
161
  className: d(
162
- "text-muted-foreground block truncate px-2 py-1.5 text-xs",
162
+ "text-muted-foreground block truncate px-2 py-1.5 text-s",
163
163
  e
164
164
  ),
165
165
  ...a,
@@ -208,7 +208,7 @@ const h = () => /* @__PURE__ */ o(
208
208
  sup: ({ className: t, ...e }) => /* @__PURE__ */ o(
209
209
  "sup",
210
210
  {
211
- className: r("aui-md-sup [&>a]:text-xs [&>a]:no-underline", t),
211
+ className: r("aui-md-sup [&>a]:text-s [&>a]:no-underline", t),
212
212
  ...e
213
213
  }
214
214
  ),
@@ -13,7 +13,7 @@ const r = (s) => s === void 0 ? "—" : s < 1e3 ? `${Math.round(s)}ms` : `${(s /
13
13
  "data-slot": "message-timing-trigger",
14
14
  "aria-label": "Message timing",
15
15
  className: d(
16
- "text-muted-foreground hover:bg-accent hover:text-accent-foreground flex items-center rounded-md p-1 font-mono text-xs tabular-nums transition-colors",
16
+ "text-muted-foreground hover:bg-accent hover:text-accent-foreground flex items-center rounded-md p-1 font-mono text-s tabular-nums transition-colors",
17
17
  s
18
18
  ),
19
19
  children: r(e.totalStreamTime)