@actioneer/ads 1.0.3 → 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 (63) hide show
  1. package/DESIGN.md +89 -89
  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/avatar.js +23 -23
  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 +3 -3
  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/input-field.js +2 -2
  43. package/components/input.js +9 -9
  44. package/components/modal.js +6 -6
  45. package/components/pagination.js +23 -23
  46. package/components/radio.js +1 -1
  47. package/components/segmented.js +23 -23
  48. package/components/select.d.ts +1 -1
  49. package/components/select.js +1 -1
  50. package/components/selection-action-bar.js +13 -13
  51. package/components/sidebar.js +5 -5
  52. package/components/stepper.d.ts +1 -1
  53. package/components/stepper.js +4 -4
  54. package/components/switch.js +7 -7
  55. package/components/tooltip.js +1 -1
  56. package/components/tree.js +20 -20
  57. package/components/ui/button.js +21 -21
  58. package/components/ui/tooltip.js +3 -3
  59. package/llms.txt +12 -12
  60. package/manifest.json +19 -19
  61. package/package.json +1 -1
  62. package/styles.css +103 -95
  63. package/theme.css +97 -89
@@ -3,12 +3,12 @@ import { jsxs as c, jsx as a } from "react/jsx-runtime";
3
3
  import * as i from "react";
4
4
  import { cn as s } from "../lib/cn.js";
5
5
  import { Button as g } from "./button.js";
6
- const u = i.forwardRef(
6
+ const p = i.forwardRef(
7
7
  ({
8
8
  className: r,
9
9
  selectedCount: o,
10
- selectedLabel: n,
11
- actions: t,
10
+ selectedLabel: t,
11
+ actions: n,
12
12
  onClear: e,
13
13
  clearLabel: l = "Clear",
14
14
  ...m
@@ -17,19 +17,19 @@ const u = i.forwardRef(
17
17
  {
18
18
  ref: f,
19
19
  className: s(
20
- "flex items-center gap-3 rounded-lg bg-brand px-3 py-2 text-xs text-brand-foreground",
20
+ "flex items-center gap-3 rounded-lg bg-brand px-3 py-2 text-s text-brand-foreground",
21
21
  r
22
22
  ),
23
23
  ...m,
24
24
  children: [
25
- /* @__PURE__ */ a("span", { className: "font-normal tabular-nums", children: n ?? `${o} selected` }),
25
+ /* @__PURE__ */ a("span", { className: "font-normal tabular-nums", children: t ?? `${o} selected` }),
26
26
  /* @__PURE__ */ c("div", { className: "ml-auto flex items-center gap-1", children: [
27
- t,
27
+ n,
28
28
  e && /* @__PURE__ */ a(
29
29
  d,
30
30
  {
31
31
  onClick: e,
32
- className: "text-brand-foreground/70 hover:text-brand-foreground",
32
+ className: "text-brand-foreground",
33
33
  children: l
34
34
  }
35
35
  )
@@ -38,22 +38,22 @@ const u = i.forwardRef(
38
38
  }
39
39
  )
40
40
  );
41
- u.displayName = "SelectionActionBar";
42
- const d = i.forwardRef(({ className: r, variant: o = "ghost", size: n = "xs", ...t }, e) => /* @__PURE__ */ a(
41
+ p.displayName = "SelectionActionBar";
42
+ const d = i.forwardRef(({ className: r, variant: o = "ghost", size: t = "xs", ...n }, e) => /* @__PURE__ */ a(
43
43
  g,
44
44
  {
45
45
  ref: e,
46
46
  variant: o,
47
- size: n,
47
+ size: t,
48
48
  className: s(
49
- "text-brand-foreground hover:bg-brand-foreground/10 hover:text-brand-foreground focus-visible:ring-brand-foreground",
49
+ "text-brand-foreground hover:bg-brand-hover hover:text-brand-foreground focus-visible:ring-brand-foreground",
50
50
  r
51
51
  ),
52
- ...t
52
+ ...n
53
53
  }
54
54
  ));
55
55
  d.displayName = "SelectionActionBarAction";
56
56
  export {
57
- u as SelectionActionBar,
57
+ p as SelectionActionBar,
58
58
  d as SelectionActionBarAction
59
59
  };
@@ -195,7 +195,7 @@ const D = s.forwardRef(
195
195
  "outline-none focus-visible:ring-3 focus-visible:ring-ring",
196
196
  // Collapsed: a centered square (--sidebar-item) so every rail item lines up.
197
197
  "group-data-[collapsed=true]/sidebar:mx-auto group-data-[collapsed=true]/sidebar:size-(--sidebar-item) group-data-[collapsed=true]/sidebar:justify-center group-data-[collapsed=true]/sidebar:p-0",
198
- a ? "bg-sidebar-accent" : "hover:bg-sidebar-accent/60",
198
+ a ? "bg-sidebar-accent text-sidebar-accent-foreground" : "hover:bg-sidebar-accent/60 hover:text-sidebar-accent-foreground",
199
199
  t
200
200
  ),
201
201
  ...l,
@@ -235,10 +235,10 @@ const W = s.forwardRef(
235
235
  className: n(
236
236
  "flex h-9 w-full items-center justify-start gap-2 rounded-md px-3",
237
237
  "text-m leading-[var(--text-m--line-height)] font-normal text-wg12",
238
- // Reads as a normal nav item: transparent at rest, the shared grey
238
+ // Reads as a normal nav item: transparent at rest, the shared teal
239
239
  // hover wash on hover (no fill-at-rest, no elevation).
240
240
  "transition-colors duration-150 ease-out motion-reduce:transition-none",
241
- "hover:bg-sidebar-accent/60",
241
+ "hover:bg-sidebar-accent/60 hover:text-sidebar-accent-foreground",
242
242
  "outline-none focus-visible:ring-3 focus-visible:ring-ring",
243
243
  "[&_svg]:size-4 [&_svg]:shrink-0",
244
244
  "group-data-[collapsed=true]/sidebar:mx-auto group-data-[collapsed=true]/sidebar:size-(--sidebar-item) group-data-[collapsed=true]/sidebar:justify-center group-data-[collapsed=true]/sidebar:px-0",
@@ -288,7 +288,7 @@ const O = s.forwardRef(({ className: t, children: e, title: a, action: i, isActi
288
288
  className: n(
289
289
  "group/hist relative flex items-center rounded-md transition-colors",
290
290
  "text-wg12",
291
- o ? "bg-sidebar-accent/60" : "hover:bg-sidebar-accent/60"
291
+ o ? "bg-sidebar-accent text-sidebar-accent-foreground" : "hover:bg-sidebar-accent/60 hover:text-sidebar-accent-foreground"
292
292
  ),
293
293
  children: [
294
294
  d && /* @__PURE__ */ r(
@@ -387,7 +387,7 @@ const P = s.forwardRef(
387
387
  ),
388
388
  /* @__PURE__ */ c("div", { className: "min-w-0 leading-tight group-data-[collapsed=true]/sidebar:hidden", children: [
389
389
  /* @__PURE__ */ r("div", { className: "truncate text-base leading-[var(--text-base--line-height)] font-normal text-foreground", children: e }),
390
- a && /* @__PURE__ */ r("div", { className: "truncate text-xs leading-[var(--text-xs--line-height)] text-tertiary", children: a })
390
+ a && /* @__PURE__ */ r("div", { className: "truncate text-s leading-[var(--text-s--line-height)] text-tertiary", children: a })
391
391
  ] })
392
392
  ]
393
393
  }
@@ -5,7 +5,7 @@ import * as React from "react";
5
5
  *
6
6
  * `Progress` is a continuous bar and `Timeline` is a chronological list of
7
7
  * content; neither says "step 2 of 5, and here is what 3 through 5 will be".
8
- * Completed steps collapse to a green check so the eye counts what is left,
8
+ * Completed steps collapse to a teal check so the eye counts what is left,
9
9
  * not what is done; the current step stays brand-black; a failed step turns
10
10
  * danger and keeps its place in the sequence rather than disappearing — a
11
11
  * wizard that hides the step that broke is unusable.
@@ -18,8 +18,8 @@ const b = y(
18
18
  error: "bg-danger text-danger-foreground"
19
19
  },
20
20
  size: {
21
- sm: "size-5 text-xs [&>svg]:size-3",
22
- md: "size-6 text-xs [&>svg]:size-3.5"
21
+ sm: "size-5 text-s [&>svg]:size-3",
22
+ md: "size-6 text-s [&>svg]:size-3.5"
23
23
  }
24
24
  },
25
25
  defaultVariants: { status: "upcoming", size: "md" }
@@ -72,7 +72,7 @@ const b = y(
72
72
  {
73
73
  className: a(
74
74
  "truncate whitespace-nowrap",
75
- i === "sm" ? "text-xs" : "text-base",
75
+ i === "sm" ? "text-s" : "text-base",
76
76
  r === "upcoming" ? "text-tertiary" : "text-foreground",
77
77
  r === "error" && "text-danger"
78
78
  ),
@@ -117,7 +117,7 @@ const b = y(
117
117
  {
118
118
  className: a(
119
119
  "truncate",
120
- i === "sm" ? "text-xs" : "text-base",
120
+ i === "sm" ? "text-s" : "text-base",
121
121
  r === "upcoming" ? "text-tertiary" : "text-foreground",
122
122
  r === "error" && "text-danger"
123
123
  ),
@@ -17,27 +17,27 @@ const v = {
17
17
  }
18
18
  }, y = c.forwardRef(
19
19
  ({
20
- className: d,
20
+ className: m,
21
21
  checked: t = !1,
22
22
  onCheckedChange: e,
23
- size: f = "md",
23
+ size: d = "md",
24
24
  disabled: s,
25
25
  children: o,
26
26
  ...r
27
- }, m) => {
28
- const l = v[f], a = c.useId(), u = r["aria-label"] != null || r["aria-labelledby"] != null, b = o && !u ? a : void 0;
27
+ }, f) => {
28
+ const l = v[d], a = c.useId(), u = r["aria-label"] != null || r["aria-labelledby"] != null, b = o && !u ? a : void 0;
29
29
  return /* @__PURE__ */ p(
30
30
  "label",
31
31
  {
32
32
  className: n(
33
- "inline-flex items-center gap-2 text-xs text-foreground select-none",
33
+ "inline-flex items-center gap-2 text-m text-foreground select-none",
34
34
  s ? "cursor-not-allowed opacity-50" : "cursor-pointer"
35
35
  ),
36
36
  children: [
37
37
  /* @__PURE__ */ i(
38
38
  "button",
39
39
  {
40
- ref: m,
40
+ ref: f,
41
41
  type: "button",
42
42
  role: "switch",
43
43
  "aria-checked": t,
@@ -51,7 +51,7 @@ const v = {
51
51
  "disabled:cursor-not-allowed",
52
52
  t ? "bg-brand" : "bg-input",
53
53
  l.track,
54
- d
54
+ m
55
55
  ),
56
56
  ...r,
57
57
  children: /* @__PURE__ */ i(w, { reducedMotion: "user", children: /* @__PURE__ */ i(
@@ -116,7 +116,7 @@ function Y({
116
116
  },
117
117
  className: S(
118
118
  "relative z-50 max-w-xs rounded-sm bg-foreground px-2 py-1",
119
- "text-xs text-background",
119
+ "text-s text-background",
120
120
  "pointer-events-none select-none",
121
121
  A
122
122
  ),
@@ -12,7 +12,7 @@ const B = t.forwardRef(
12
12
  ref: n,
13
13
  role: "tree",
14
14
  "data-variant": a,
15
- className: f("group/tree flex flex-col gap-0.5 text-xs", u),
15
+ className: f("group/tree flex flex-col gap-0.5 text-m", u),
16
16
  ...m
17
17
  }
18
18
  )
@@ -24,29 +24,29 @@ const E = t.forwardRef(
24
24
  label: a,
25
25
  icon: m,
26
26
  count: n,
27
- endContent: v,
27
+ endContent: x,
28
28
  defaultExpanded: R = !1,
29
- expanded: x,
30
- onExpandedChange: g,
31
- href: w,
29
+ expanded: v,
30
+ onExpandedChange: b,
31
+ href: y,
32
32
  isActive: s,
33
- onSelect: b,
33
+ onSelect: p,
34
34
  children: l,
35
35
  ..._
36
36
  }, j) => {
37
- const o = t.Children.count(l) > 0, y = x !== void 0, [z, F] = t.useState(R), r = y ? x : z, N = (c) => {
38
- y || F(c), g == null || g(c);
37
+ const o = t.Children.count(l) > 0, N = v !== void 0, [z, F] = t.useState(R), r = N ? v : z, w = (c) => {
38
+ N || F(c), b == null || b(c);
39
39
  }, d = f(
40
40
  "group/tree-row flex h-9 w-full items-center gap-1.5 rounded-md px-2 text-left",
41
41
  "outline-none transition-colors focus-visible:ring-3 focus-visible:ring-ring",
42
42
  "[&_svg]:size-4 [&_svg]:shrink-0",
43
43
  "group-data-[variant=sidebar]/tree:border group-data-[variant=sidebar]/tree:border-transparent group-data-[variant=sidebar]/tree:text-wg11",
44
- "group-data-[variant=sidebar]/tree:[&_svg]:size-5 group-data-[variant=sidebar]/tree:[&_svg]:text-wg11",
45
- s ? "bg-fill font-normal text-foreground group-data-[variant=sidebar]/tree:border-wg4 group-data-[variant=sidebar]/tree:bg-wg2 group-data-[variant=sidebar]/tree:text-wg11" : "text-muted-foreground hover:bg-fill/60 hover:text-foreground group-data-[variant=sidebar]/tree:hover:bg-wg1 group-data-[variant=sidebar]/tree:hover:text-wg11"
46
- ), p = m ?? (o ? null : /* @__PURE__ */ e(W, { className: "text-tertiary" })), k = s && t.isValidElement(p) ? t.cloneElement(
47
- p,
44
+ "group-data-[variant=sidebar]/tree:[&_svg]:size-5",
45
+ s ? "bg-action-primary-soft font-normal text-brand-text [&_svg]:text-brand-text group-data-[variant=sidebar]/tree:border-brand group-data-[variant=sidebar]/tree:bg-action-primary-soft group-data-[variant=sidebar]/tree:text-brand-text" : "text-muted-foreground hover:bg-action-primary-soft hover:text-brand-text group-data-[variant=sidebar]/tree:hover:bg-action-primary-soft group-data-[variant=sidebar]/tree:hover:text-brand-text"
46
+ ), g = m ?? (o ? null : /* @__PURE__ */ e(W, { className: "text-tertiary" })), k = s && t.isValidElement(g) ? t.cloneElement(
47
+ g,
48
48
  { weight: "fill" }
49
- ) : p, C = /* @__PURE__ */ e(
49
+ ) : g, C = /* @__PURE__ */ e(
50
50
  V,
51
51
  {
52
52
  className: f(
@@ -55,30 +55,30 @@ const E = t.forwardRef(
55
55
  ),
56
56
  strokeWidth: 2
57
57
  }
58
- ), I = (n ?? t.Children.count(l)) > 0 && /* @__PURE__ */ e("span", { className: "shrink-0 tabular-nums text-xs text-tertiary", children: n ?? t.Children.count(l) }), h = /* @__PURE__ */ i(T, { children: [
58
+ ), I = (n ?? t.Children.count(l)) > 0 && /* @__PURE__ */ e("span", { className: "shrink-0 tabular-nums text-s text-tertiary", children: n ?? t.Children.count(l) }), h = /* @__PURE__ */ i(T, { children: [
59
59
  k,
60
60
  /* @__PURE__ */ e("span", { className: "min-w-0 flex-1 truncate", children: a }),
61
- v,
61
+ x,
62
62
  o && /* @__PURE__ */ i(T, { children: [
63
63
  I,
64
64
  C
65
65
  ] })
66
66
  ] });
67
67
  return /* @__PURE__ */ i("div", { ref: j, role: "treeitem", "aria-expanded": o ? r : void 0, "aria-selected": s, className: u, ..._, children: [
68
- o && b ? /* @__PURE__ */ i("div", { className: d, children: [
68
+ o && p ? /* @__PURE__ */ i("div", { className: d, children: [
69
69
  /* @__PURE__ */ i(
70
70
  "button",
71
71
  {
72
72
  type: "button",
73
73
  className: "flex min-w-0 flex-1 items-center gap-1.5 rounded-sm text-left outline-none focus-visible:ring-3 focus-visible:ring-ring",
74
- onClick: b,
74
+ onClick: p,
75
75
  children: [
76
76
  k,
77
77
  /* @__PURE__ */ e("span", { className: "min-w-0 flex-1 truncate", children: a })
78
78
  ]
79
79
  }
80
80
  ),
81
- v,
81
+ x,
82
82
  I,
83
83
  /* @__PURE__ */ e(
84
84
  "button",
@@ -87,11 +87,11 @@ const E = t.forwardRef(
87
87
  "aria-label": `${r ? "Collapse" : "Expand"} ${typeof a == "string" ? a : "tree item"}`,
88
88
  "aria-expanded": r,
89
89
  className: "inline-flex size-7 shrink-0 items-center justify-center rounded-sm outline-none hover:text-foreground focus-visible:ring-3 focus-visible:ring-ring",
90
- onClick: () => N(!r),
90
+ onClick: () => w(!r),
91
91
  children: C
92
92
  }
93
93
  )
94
- ] }) : o ? /* @__PURE__ */ e("button", { type: "button", className: d, onClick: () => N(!r), children: h }) : w ? /* @__PURE__ */ e("a", { href: w, className: d, "aria-current": s ? "page" : void 0, children: h }) : /* @__PURE__ */ e("button", { type: "button", className: d, onClick: b, children: h }),
94
+ ] }) : o ? /* @__PURE__ */ e("button", { type: "button", className: d, onClick: () => w(!r), children: h }) : y ? /* @__PURE__ */ e("a", { href: y, className: d, "aria-current": s ? "page" : void 0, children: h }) : /* @__PURE__ */ e("button", { type: "button", className: d, onClick: p, children: h }),
95
95
  /* @__PURE__ */ e(M, { reducedMotion: "user", children: /* @__PURE__ */ e($, { initial: !1, children: o && r && /* @__PURE__ */ e(
96
96
  D.div,
97
97
  {
@@ -1,23 +1,23 @@
1
1
  "use client";
2
- import { jsx as i } from "react/jsx-runtime";
2
+ import { jsx as s } from "react/jsx-runtime";
3
3
  import { cva as a } from "class-variance-authority";
4
4
  import { Slot as d } from "radix-ui";
5
5
  import { cn as c } from "../../lib/cn.js";
6
6
  const u = a(
7
- "inline-flex shrink-0 items-center justify-center gap-2 rounded-md text-xs font-medium whitespace-nowrap transition-[background-color,border-color,color,box-shadow,transform] duration-150 ease-out outline-none motion-reduce:transition-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
7
+ "inline-flex shrink-0 items-center justify-center gap-2 rounded-md text-m font-medium whitespace-nowrap transition-[background-color,border-color,color,box-shadow,transform] duration-150 ease-out outline-none motion-reduce:transition-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
8
8
  {
9
9
  variants: {
10
10
  variant: {
11
- default: "bg-primary text-primary-foreground hover:bg-primary/90",
11
+ default: "bg-action-primary text-action-primary-foreground hover:bg-action-primary-hover",
12
12
  destructive: "bg-destructive text-destructive-foreground hover:bg-destructive/90 focus-visible:ring-destructive/20",
13
- outline: "border bg-background shadow-100 hover:bg-accent hover:text-accent-foreground",
14
- secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80",
15
- ghost: "hover:bg-accent hover:text-accent-foreground",
16
- link: "text-primary underline-offset-4 hover:underline"
13
+ outline: "border bg-background shadow-100 hover:border-action-primary hover:bg-action-primary-soft hover:text-action-primary-text",
14
+ secondary: "bg-action-primary-soft text-action-primary-text hover:bg-action-primary-soft/80",
15
+ ghost: "hover:bg-action-primary-soft hover:text-action-primary-text",
16
+ link: "text-action-primary-text underline-offset-4 hover:underline"
17
17
  },
18
18
  size: {
19
19
  default: "h-9 px-4 py-2 has-[>svg]:px-3",
20
- xs: "h-6 gap-1 rounded-sm px-2 text-xs has-[>svg]:px-1.5 [&_svg:not([class*='size-'])]:size-3",
20
+ xs: "h-6 gap-1 rounded-sm px-2 has-[>svg]:px-1.5 [&_svg:not([class*='size-'])]:size-3",
21
21
  sm: "h-8 gap-1.5 rounded-md px-3 has-[>svg]:px-2.5",
22
22
  lg: "h-10 rounded-md px-6 has-[>svg]:px-4",
23
23
  icon: "size-9",
@@ -32,26 +32,26 @@ const u = a(
32
32
  }
33
33
  }
34
34
  );
35
- function p({
36
- className: o,
37
- variant: e = "default",
38
- size: t = "default",
39
- asChild: r = !1,
40
- ...s
35
+ function g({
36
+ className: r,
37
+ variant: t = "default",
38
+ size: e = "default",
39
+ asChild: o = !1,
40
+ ...i
41
41
  }) {
42
- const n = r ? d.Root : "button";
43
- return /* @__PURE__ */ i(
42
+ const n = o ? d.Root : "button";
43
+ return /* @__PURE__ */ s(
44
44
  n,
45
45
  {
46
46
  "data-slot": "button",
47
- "data-variant": e,
48
- "data-size": t,
49
- className: c(u({ variant: e, size: t, className: o })),
50
- ...s
47
+ "data-variant": t,
48
+ "data-size": e,
49
+ className: c(u({ variant: t, size: e, className: r })),
50
+ ...i
51
51
  }
52
52
  );
53
53
  }
54
54
  export {
55
- p as Button,
55
+ g as Button,
56
56
  u as buttonVariants
57
57
  };
@@ -2,7 +2,7 @@
2
2
  import { jsx as t, jsxs as m } from "react/jsx-runtime";
3
3
  import * as s from "react";
4
4
  import { Tooltip as i } from "radix-ui";
5
- import { MotionConfig as x, AnimatePresence as g, motion as v } from "motion/react";
5
+ import { MotionConfig as g, AnimatePresence as x, motion as v } from "motion/react";
6
6
  import { cn as T } from "../../lib/cn.js";
7
7
  import { tooltipVariants as h } from "../../lib/motion.js";
8
8
  const u = s.createContext(!1);
@@ -54,7 +54,7 @@ function y({
54
54
  ...n
55
55
  }) {
56
56
  const a = s.useContext(u);
57
- return /* @__PURE__ */ t(i.Portal, { children: /* @__PURE__ */ t(x, { reducedMotion: "user", children: /* @__PURE__ */ t(g, { initial: !1, children: a && /* @__PURE__ */ t(
57
+ return /* @__PURE__ */ t(i.Portal, { children: /* @__PURE__ */ t(g, { reducedMotion: "user", children: /* @__PURE__ */ t(x, { initial: !1, children: a && /* @__PURE__ */ t(
58
58
  i.Content,
59
59
  {
60
60
  "data-slot": "tooltip-content",
@@ -70,7 +70,7 @@ function y({
70
70
  animate: "visible",
71
71
  exit: "hidden",
72
72
  className: T(
73
- "z-50 w-fit origin-(--radix-tooltip-content-transform-origin) rounded-md bg-foreground px-3 py-1.5 text-xs text-balance text-background",
73
+ "z-50 w-fit origin-(--radix-tooltip-content-transform-origin) rounded-md bg-foreground px-3 py-1.5 text-s text-balance text-background",
74
74
  o
75
75
  ),
76
76
  children: [
package/llms.txt CHANGED
@@ -35,16 +35,16 @@ Reference semantic roles, never raw color/dimension literals (ads-lint rejects l
35
35
  - `card` — The white working plane that sits on the canvas, and the specimen hairline.
36
36
  - `card-foreground` — The white working plane that sits on the canvas, and the specimen hairline.
37
37
  - `specimen-stroke` — The white working plane that sits on the canvas, and the specimen hairline.
38
- - `action-primary` — Primary CTA role — restrained Studio green, used sparingly.
39
- - `action-primary-foreground` — Primary CTA role — restrained Studio green, used sparingly.
40
- - `action-primary-hover` — Primary CTA role — restrained Studio green, used sparingly.
41
- - `action-primary-text` — Primary CTA role — restrained Studio green, used sparingly.
42
- - `action-primary-soft` — Primary CTA role — restrained Studio green, used sparingly.
43
- - `field-focus` — Primary CTA role — restrained Studio green, used sparingly.
44
- - `brand` — Compatibility action role — neutral ink, never a colored primary hue.
45
- - `brand-foreground` — Compatibility action role — neutral ink, never a colored primary hue.
46
- - `brand-hover` — Compatibility action role — neutral ink, never a colored primary hue.
47
- - `brand-text` — Compatibility action role — neutral ink, never a colored primary hue.
38
+ - `action-primary` — Primary CTA role — restrained Studio teal, used sparingly.
39
+ - `action-primary-foreground` — Primary CTA role — restrained Studio teal, used sparingly.
40
+ - `action-primary-hover` — Primary CTA role — restrained Studio teal, used sparingly.
41
+ - `action-primary-text` — Primary CTA role — restrained Studio teal, used sparingly.
42
+ - `action-primary-soft` — Primary CTA role — restrained Studio teal, used sparingly.
43
+ - `field-focus` — Primary CTA role — restrained Studio teal, used sparingly.
44
+ - `brand` — Shared brand roles for control states, primary accents, and marks.
45
+ - `brand-foreground` — Shared brand roles for control states, primary accents, and marks.
46
+ - `brand-hover` — Shared brand roles for control states, primary accents, and marks.
47
+ - `brand-text` — Shared brand roles for control states, primary accents, and marks.
48
48
  - `fill` — Quiet fill — avatars, chips, and disabled controls
49
49
  - `fill-foreground` — Quiet fill — avatars, chips, and disabled controls
50
50
  - `table-shell` — Table surfaces: the white tray, its hairlines, and header ink.
@@ -53,8 +53,8 @@ Reference semantic roles, never raw color/dimension literals (ads-lint rejects l
53
53
  - `artifact-canvas` — The artifact sheet: white warmed by a trace of the brand mark.
54
54
  - `accent` — The active and selected wash, one step above hover.
55
55
  - `accent-foreground` — The active and selected wash, one step above hover.
56
- - `success` — 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.
57
- - `success-foreground` — 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.
56
+ - `success` — Grass green 700 clears AA on White and both success soft fills.
57
+ - `success-foreground` — Grass green 700 clears AA on White and both success soft fills.
58
58
  - `warning` — 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).
59
59
  - `warning-foreground` — 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).
60
60
  - `danger` — Danger and info: solid semantic fills carrying white foregrounds.
package/manifest.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@actioneer/ads",
3
- "version": "1.0.3",
3
+ "version": "1.0.5",
4
4
  "importPath": "@actioneer/ads",
5
5
  "styleImport": "@import \"@actioneer/ads/styles.css\";",
6
6
  "families": [
@@ -218,7 +218,7 @@
218
218
  "text-action-primary",
219
219
  "border-action-primary"
220
220
  ],
221
- "description": "Primary CTA role — restrained Studio green, used sparingly."
221
+ "description": "Primary CTA role — restrained Studio teal, used sparingly."
222
222
  },
223
223
  {
224
224
  "name": "--color-action-primary-foreground",
@@ -227,7 +227,7 @@
227
227
  "text-action-primary-foreground",
228
228
  "bg-action-primary-foreground"
229
229
  ],
230
- "description": "Primary CTA role — restrained Studio green, used sparingly."
230
+ "description": "Primary CTA role — restrained Studio teal, used sparingly."
231
231
  },
232
232
  {
233
233
  "name": "--color-action-primary-hover",
@@ -237,7 +237,7 @@
237
237
  "text-action-primary-hover",
238
238
  "border-action-primary-hover"
239
239
  ],
240
- "description": "Primary CTA role — restrained Studio green, used sparingly."
240
+ "description": "Primary CTA role — restrained Studio teal, used sparingly."
241
241
  },
242
242
  {
243
243
  "name": "--color-action-primary-text",
@@ -247,7 +247,7 @@
247
247
  "text-action-primary-text",
248
248
  "border-action-primary-text"
249
249
  ],
250
- "description": "Primary CTA role — restrained Studio green, used sparingly."
250
+ "description": "Primary CTA role — restrained Studio teal, used sparingly."
251
251
  },
252
252
  {
253
253
  "name": "--color-action-primary-soft",
@@ -257,7 +257,7 @@
257
257
  "text-action-primary-soft",
258
258
  "border-action-primary-soft"
259
259
  ],
260
- "description": "Primary CTA role — restrained Studio green, used sparingly."
260
+ "description": "Primary CTA role — restrained Studio teal, used sparingly."
261
261
  },
262
262
  {
263
263
  "name": "--color-field-focus",
@@ -267,7 +267,7 @@
267
267
  "text-field-focus",
268
268
  "border-field-focus"
269
269
  ],
270
- "description": "Primary CTA role — restrained Studio green, used sparingly."
270
+ "description": "Primary CTA role — restrained Studio teal, used sparingly."
271
271
  },
272
272
  {
273
273
  "name": "--color-brand",
@@ -277,7 +277,7 @@
277
277
  "text-brand",
278
278
  "border-brand"
279
279
  ],
280
- "description": "Compatibility action role — neutral ink, never a colored primary hue."
280
+ "description": "Shared brand roles for control states, primary accents, and marks."
281
281
  },
282
282
  {
283
283
  "name": "--color-brand-foreground",
@@ -286,7 +286,7 @@
286
286
  "text-brand-foreground",
287
287
  "bg-brand-foreground"
288
288
  ],
289
- "description": "Compatibility action role — neutral ink, never a colored primary hue."
289
+ "description": "Shared brand roles for control states, primary accents, and marks."
290
290
  },
291
291
  {
292
292
  "name": "--color-brand-hover",
@@ -296,7 +296,7 @@
296
296
  "text-brand-hover",
297
297
  "border-brand-hover"
298
298
  ],
299
- "description": "Compatibility action role — neutral ink, never a colored primary hue."
299
+ "description": "Shared brand roles for control states, primary accents, and marks."
300
300
  },
301
301
  {
302
302
  "name": "--color-brand-text",
@@ -306,7 +306,7 @@
306
306
  "text-brand-text",
307
307
  "border-brand-text"
308
308
  ],
309
- "description": "Compatibility action role — neutral ink, never a colored primary hue."
309
+ "description": "Shared brand roles for control states, primary accents, and marks."
310
310
  },
311
311
  {
312
312
  "name": "--color-fill",
@@ -393,7 +393,7 @@
393
393
  "text-success",
394
394
  "border-success"
395
395
  ],
396
- "description": "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."
396
+ "description": "Grass green 700 clears AA on White and both success soft fills."
397
397
  },
398
398
  {
399
399
  "name": "--color-success-foreground",
@@ -402,7 +402,7 @@
402
402
  "text-success-foreground",
403
403
  "bg-success-foreground"
404
404
  ],
405
- "description": "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."
405
+ "description": "Grass green 700 clears AA on White and both success soft fills."
406
406
  },
407
407
  {
408
408
  "name": "--color-warning",
@@ -799,8 +799,8 @@
799
799
  ],
800
800
  "default": "solid",
801
801
  "options": {
802
- "solid": "The restrained green primary CTA; use for the one primary action on a screen, keeping green to roughly 5–10% of the UI.",
803
- "secondary": "A standalone neutral action that must still read as a real button (e.g. Cancel beside Save) — more emphasis than outline or ghost.",
802
+ "solid": "The teal primary CTA; shares the brand palette used by checked controls and selected states.",
803
+ "secondary": "A teal outlined companion action with accessible brand text and pale-teal hover fill.",
804
804
  "outline": "Unfilled with a visible border, lighter than secondary but still clearly a button.",
805
805
  "ghost": "Unfilled and borderless — the lowest-emphasis button chrome short of link.",
806
806
  "link": "Drops all button chrome for inline text-style actions; underlines on hover, no press scale.",
@@ -5142,7 +5142,7 @@
5142
5142
  "default": "default",
5143
5143
  "options": {
5144
5144
  "default": "Neutral heads-up with no status implication, foreground-colored icon/title, no urgency signaled.",
5145
- "success": "Confirms a completed or positive outcome (e.g. saved changes), green accent.",
5145
+ "success": "Grass green confirms a completed or positive outcome.",
5146
5146
  "warning": "Flags a non-blocking risk or upcoming issue (e.g. scheduled maintenance), amber accent.",
5147
5147
  "danger": "Signals a failure or blocking problem (e.g. connection error) needing attention, red accent.",
5148
5148
  "info": "Neutral-positive announcement or tip (e.g. new feature, update available), blue accent — softer than success, less urgent than warning."
@@ -9669,7 +9669,7 @@
9669
9669
  "required": false,
9670
9670
  "derived": true,
9671
9671
  "isDefault": true,
9672
- "description": "The restrained green primary CTA; use for the one primary action on a screen, keeping green to roughly 5–10% of the UI."
9672
+ "description": "The teal primary CTA; shares the brand palette used by checked controls and selected states."
9673
9673
  },
9674
9674
  {
9675
9675
  "id": "state:Button:variant=secondary",
@@ -9681,7 +9681,7 @@
9681
9681
  "required": false,
9682
9682
  "derived": true,
9683
9683
  "isDefault": false,
9684
- "description": "A standalone neutral action that must still read as a real button (e.g. Cancel beside Save) — more emphasis than outline or ghost."
9684
+ "description": "A teal outlined companion action with accessible brand text and pale-teal hover fill."
9685
9685
  },
9686
9686
  {
9687
9687
  "id": "state:Button:variant=outline",
@@ -14526,7 +14526,7 @@
14526
14526
  "required": false,
14527
14527
  "derived": true,
14528
14528
  "isDefault": false,
14529
- "description": "Confirms a completed or positive outcome (e.g. saved changes), green accent."
14529
+ "description": "Grass green confirms a completed or positive outcome."
14530
14530
  },
14531
14531
  {
14532
14532
  "id": "state:Alert:variant=warning",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@actioneer/ads",
3
- "version": "1.0.3",
3
+ "version": "1.0.5",
4
4
  "description": "Actioneer Design System 1.0 — React 19 + Tailwind v4 component library.",
5
5
  "type": "module",
6
6
  "sideEffects": [