@actioneer/ads 0.6.0 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (123) hide show
  1. package/DESIGN.md +597 -0
  2. package/components/ai-elements/agent-trace.d.ts +2 -2
  3. package/components/ai-elements/agent-trace.js +164 -105
  4. package/components/ai-elements/chain-of-thought.d.ts +2 -2
  5. package/components/ai-elements/chain-of-thought.js +1 -1
  6. package/components/ai-elements/index.d.ts +0 -5
  7. package/components/ai-elements/inline-citation.js +1 -1
  8. package/components/alert.d.ts +6 -6
  9. package/components/alert.js +89 -53
  10. package/components/answer-sources.d.ts +2 -6
  11. package/components/answer-sources.js +58 -60
  12. package/components/answer.d.ts +5 -0
  13. package/components/answer.js +311 -271
  14. package/components/assistant-ui/action-bar.js +1 -1
  15. package/components/assistant-ui/attachment.js +11 -11
  16. package/components/assistant-ui/badge.js +18 -18
  17. package/components/assistant-ui/composer-harness.js +15 -20
  18. package/components/assistant-ui/composer-trigger-popover.js +9 -9
  19. package/components/assistant-ui/composer.d.ts +3 -1
  20. package/components/assistant-ui/composer.js +148 -144
  21. package/components/assistant-ui/image.js +61 -61
  22. package/components/assistant-ui/index.d.ts +0 -3
  23. package/components/assistant-ui/message-timing.js +1 -1
  24. package/components/assistant-ui/selection-toolbar.js +7 -7
  25. package/components/assistant-ui/thread-context.d.ts +3 -1
  26. package/components/assistant-ui/thread.js +50 -42
  27. package/components/avatar.js +42 -42
  28. package/components/badge.d.ts +5 -6
  29. package/components/badge.js +13 -76
  30. package/components/body-page-header.d.ts +15 -0
  31. package/components/body-page-header.js +24 -0
  32. package/components/brand-loader.d.ts +0 -3
  33. package/components/brand-loader.js +10 -32
  34. package/components/breadcrumbs.d.ts +0 -7
  35. package/components/breadcrumbs.js +54 -71
  36. package/components/button.d.ts +1 -1
  37. package/components/button.js +55 -49
  38. package/components/chart.js +298 -296
  39. package/components/chip.d.ts +13 -1
  40. package/components/chip.js +93 -80
  41. package/components/collection-header.d.ts +17 -0
  42. package/components/collection-header.js +31 -0
  43. package/components/connector-card.d.ts +6 -6
  44. package/components/connector-card.js +31 -32
  45. package/components/date-range-picker.d.ts +2 -1
  46. package/components/date-range-picker.js +158 -122
  47. package/components/divider.js +25 -25
  48. package/components/drawer.d.ts +6 -2
  49. package/components/drawer.js +61 -58
  50. package/components/dropdown.d.ts +1 -2
  51. package/components/dropdown.js +88 -89
  52. package/components/field.js +41 -36
  53. package/components/file-dropzone.js +1 -1
  54. package/components/index.d.ts +4 -4
  55. package/components/index.js +501 -549
  56. package/components/infinite-canvas.js +24 -24
  57. package/components/input-field.d.ts +18 -3
  58. package/components/input-field.js +88 -72
  59. package/components/input.js +32 -29
  60. package/components/modal.d.ts +31 -3
  61. package/components/modal.js +244 -170
  62. package/components/number-field.js +45 -42
  63. package/components/page-body.d.ts +12 -0
  64. package/components/page-body.js +18 -0
  65. package/components/pagination.js +36 -36
  66. package/components/pixel-blast-svg.js +71 -73
  67. package/components/select.d.ts +21 -0
  68. package/components/select.js +189 -148
  69. package/components/setting-row.d.ts +6 -5
  70. package/components/setting-row.js +33 -32
  71. package/components/sidebar.d.ts +2 -0
  72. package/components/sidebar.js +151 -141
  73. package/components/skeleton.js +8 -7
  74. package/components/slider.js +1 -1
  75. package/components/surface-loader.d.ts +11 -0
  76. package/components/surface-loader.js +35 -0
  77. package/components/table.d.ts +16 -10
  78. package/components/table.js +427 -412
  79. package/components/tabs.d.ts +2 -0
  80. package/components/tabs.js +160 -295
  81. package/components/textarea.js +9 -9
  82. package/components/toast.d.ts +1 -1
  83. package/components/toast.js +181 -118
  84. package/components/tree.d.ts +5 -1
  85. package/components/tree.js +54 -49
  86. package/components/typography.d.ts +4 -4
  87. package/components/typography.js +13 -13
  88. package/components/ui/button.d.ts +1 -1
  89. package/components/ui/button.js +4 -4
  90. package/components/ui/dialog.js +25 -25
  91. package/demo/components/add-to-artifact.js +6 -10
  92. package/lib/cn.js +11 -4
  93. package/lib/icons.d.ts +4 -0
  94. package/lib/icons.js +103 -102
  95. package/lib/interactive.d.ts +1 -1
  96. package/llms.txt +132 -188
  97. package/manifest.json +1719 -2831
  98. package/package.json +2 -2
  99. package/styles.css +362 -233
  100. package/theme.css +312 -177
  101. package/components/agent-icon.d.ts +0 -76
  102. package/components/agent-icon.js +0 -265
  103. package/components/ai-elements/queue.d.ts +0 -60
  104. package/components/ai-elements/queue.js +0 -193
  105. package/components/ai-elements/speech-input.d.ts +0 -16
  106. package/components/ai-elements/speech-input.js +0 -151
  107. package/components/ai-elements/task-progress.d.ts +0 -41
  108. package/components/ai-elements/task-progress.js +0 -224
  109. package/components/ai-elements/task.d.ts +0 -39
  110. package/components/ai-elements/task.js +0 -105
  111. package/components/ai-elements/voice.d.ts +0 -90
  112. package/components/ai-elements/voice.js +0 -496
  113. package/components/assistant-ui/follow-up-suggestions.d.ts +0 -11
  114. package/components/assistant-ui/follow-up-suggestions.js +0 -72
  115. package/components/assistant-ui/suggestions.d.ts +0 -7
  116. package/components/assistant-ui/suggestions.js +0 -19
  117. package/components/assistant-ui/voice.d.ts +0 -18
  118. package/components/link.d.ts +0 -14
  119. package/components/link.js +0 -72
  120. package/components/navbar.d.ts +0 -15
  121. package/components/navbar.js +0 -68
  122. package/components/pixel-icon.d.ts +0 -37
  123. package/components/pixel-icon.js +0 -859
@@ -1,85 +1,90 @@
1
1
  "use client";
2
- import { jsxs as v, jsx as a } from "react/jsx-runtime";
3
- import * as r from "react";
2
+ import { jsxs as v, jsx as l } from "react/jsx-runtime";
3
+ import * as a from "react";
4
4
  import { cn as i } from "../lib/cn.js";
5
5
  import { interactive as R } from "../lib/interactive.js";
6
6
  const L = i(
7
7
  // Border WIDTH only — no border-color utility. ads-interactive owns the
8
8
  // color (rest = --glow-border-rest below); a `border-input` utility here
9
- // would out-cascade the hover/focus brand-black rules.
10
- "flex w-full rounded-md border bg-elevated text-foreground",
11
- "px-3 text-xs",
12
- "placeholder:text-muted-foreground",
9
+ // would out-cascade the shared hover/focus rules.
10
+ "flex w-full rounded-md border bg-elevated text-on-white-secondary",
11
+ "px-3 text-m font-medium focus:text-on-white-primary",
12
+ "placeholder:text-on-white-tertiary hover:placeholder:text-on-white-secondary focus:placeholder:text-transparent",
13
13
  "outline-none",
14
+ // Text/placeholder color changes are intentionally immediate. Interpolating
15
+ // glyph color makes browser antialiasing look like the copy shifts on hover.
16
+ "transition-[border-color,box-shadow]",
14
17
  "disabled:cursor-not-allowed disabled:opacity-50",
15
18
  // Form controls keep a subtle stroke (the "~25%") for crisp definition;
16
- // hover/focus snap the border to solid brand-black (no halo). The inner
19
+ // hover stays neutral while focus uses the subtle semantic green edge. The inner
17
20
  // glow is a whisper of inset depth so the writing surface reads recessed —
18
21
  // carried through every interactive state by the --glow-inset hook.
19
22
  R({ on: "all", color: "brand", intensity: "medium", animate: !0 }),
20
23
  "[--glow-border-rest:var(--input)]",
24
+ "[--glow-border-hover:var(--input)]",
25
+ "[--glow-border-active:var(--field-focus)]",
21
26
  "[--glow-inset:var(--inner-glow-field)]"
22
- ), g = r.forwardRef(({ className: t, children: e, required: o, ...l }, n) => /* @__PURE__ */ v(
27
+ ), w = a.forwardRef(({ className: r, children: e, required: o, ...t }, d) => /* @__PURE__ */ v(
23
28
  "label",
24
29
  {
25
- ref: n,
30
+ ref: d,
26
31
  className: i(
27
- "flex items-center gap-1 text-xs font-normal text-foreground select-none",
32
+ "flex items-center gap-1 text-m font-medium text-secondary select-none",
28
33
  "peer-disabled:cursor-not-allowed peer-disabled:opacity-60",
29
- t
34
+ r
30
35
  ),
31
- ...l,
36
+ ...t,
32
37
  children: [
33
38
  e,
34
- o && /* @__PURE__ */ a("span", { className: "text-danger", children: "*" })
39
+ o && /* @__PURE__ */ l("span", { className: "text-danger", children: "*" })
35
40
  ]
36
41
  }
37
42
  ));
38
- g.displayName = "Label";
39
- const w = r.forwardRef(({ className: t, ...e }, o) => /* @__PURE__ */ a(
43
+ w.displayName = "Label";
44
+ const y = a.forwardRef(({ className: r, ...e }, o) => /* @__PURE__ */ l(
40
45
  "p",
41
46
  {
42
47
  ref: o,
43
- className: i("text-xs text-muted-foreground", t),
48
+ className: i("text-m font-normal text-muted-foreground", r),
44
49
  ...e
45
50
  }
46
51
  ));
47
- w.displayName = "FieldDescription";
48
- const y = r.forwardRef(
49
- ({ className: t, children: e, ...o }, l) => e ? /* @__PURE__ */ a(
52
+ y.displayName = "FieldDescription";
53
+ const h = a.forwardRef(
54
+ ({ className: r, children: e, ...o }, t) => e ? /* @__PURE__ */ l(
50
55
  "p",
51
56
  {
52
- ref: l,
53
- className: i("text-xs font-normal text-danger", t),
57
+ ref: t,
58
+ className: i("text-m font-normal text-danger", r),
54
59
  ...o,
55
60
  children: e
56
61
  }
57
62
  ) : null
58
63
  );
59
- y.displayName = "FieldError";
60
- const D = r.forwardRef(
61
- ({ className: t, label: e, description: o, error: l, required: n, htmlFor: N, errorId: s, descriptionId: c, children: d, ...F }, h) => {
62
- const m = r.useId(), f = s ?? `${m}-error`, p = c ?? `${m}-description`, u = l ? f : o ? p : void 0, E = s == null && c == null;
63
- let x = d;
64
- if (E && u && r.isValidElement(d)) {
65
- const b = d.props;
66
- x = r.cloneElement(d, {
64
+ h.displayName = "FieldError";
65
+ const D = a.forwardRef(
66
+ ({ className: r, label: e, description: o, error: t, required: d, htmlFor: g, errorId: s, descriptionId: c, children: n, ...N }, F) => {
67
+ const m = a.useId(), p = s ?? `${m}-error`, f = c ?? `${m}-description`, u = t ? p : o ? f : void 0, E = s == null && c == null;
68
+ let x = n;
69
+ if (E && u && a.isValidElement(n)) {
70
+ const b = n.props;
71
+ x = a.cloneElement(n, {
67
72
  "aria-describedby": [b["aria-describedby"], u].filter(Boolean).join(" ") || void 0,
68
- "aria-invalid": b["aria-invalid"] ?? (l ? !0 : void 0)
73
+ "aria-invalid": b["aria-invalid"] ?? (t ? !0 : void 0)
69
74
  });
70
75
  }
71
- return /* @__PURE__ */ v("div", { ref: h, className: i("flex flex-col gap-1.5", t), ...F, children: [
72
- e && /* @__PURE__ */ a(g, { htmlFor: N, required: n, children: e }),
76
+ return /* @__PURE__ */ v("div", { ref: F, className: i("flex flex-col gap-1.5", r), ...N, children: [
77
+ e && /* @__PURE__ */ l(w, { htmlFor: g, required: d, children: e }),
73
78
  x,
74
- l ? /* @__PURE__ */ a(y, { id: f, children: l }) : o ? /* @__PURE__ */ a(w, { id: p, children: o }) : null
79
+ t ? /* @__PURE__ */ l(h, { id: p, children: t }) : o ? /* @__PURE__ */ l(y, { id: f, children: o }) : null
75
80
  ] });
76
81
  }
77
82
  );
78
83
  D.displayName = "Field";
79
84
  export {
80
85
  D as Field,
81
- w as FieldDescription,
82
- y as FieldError,
83
- g as Label,
86
+ y as FieldDescription,
87
+ h as FieldError,
88
+ w as Label,
84
89
  L as inputBaseClass
85
90
  };
@@ -8,7 +8,7 @@ import { FileText as R, Close as B, Upload as w } from "../lib/icons.js";
8
8
  const T = C(
9
9
  v(
10
10
  "flex w-full cursor-pointer flex-col items-center justify-center gap-2 rounded-xl px-6 py-8 text-center",
11
- "border-2 border-dashed border-border-strong bg-surface outline-none",
11
+ "border border-dashed border-border-strong bg-surface outline-none",
12
12
  "transition-[background-color,border-color,transform] duration-150 ease-out",
13
13
  "hover:bg-muted focus-visible:ring-3 focus-visible:ring-ring",
14
14
  "active:scale-[0.97] motion-reduce:transition-none"
@@ -9,7 +9,6 @@ export * from './spinner';
9
9
  export * from './reveal';
10
10
  export * from './field';
11
11
  export * from './typography';
12
- export * from './link';
13
12
  export * from './divider';
14
13
  export * from './kbd';
15
14
  export * from './code-block';
@@ -56,21 +55,22 @@ export * from './badge';
56
55
  export * from './chip';
57
56
  export * from './timeline';
58
57
  export * from './alert';
58
+ export * from './surface-loader';
59
59
  export * from './brand-loader';
60
60
  export * from './pixel-blast-svg';
61
- export * from './pixel-icon';
62
- export * from './agent-icon';
63
61
  export * from './ripple';
64
62
  export * from './brand-texture';
65
63
  export * from './progress';
66
64
  export * from './progress-circle';
67
65
  export * from './skeleton';
68
66
  export * from './empty-state';
67
+ export * from './body-page-header';
68
+ export * from './collection-header';
69
69
  export * from './page-header';
70
- export * from './navbar';
71
70
  export * from './breadcrumbs';
72
71
  export * from './pagination';
73
72
  export * from './sidebar';
73
+ export * from './page-body';
74
74
  export * from './panel';
75
75
  export * from './collapsible';
76
76
  export * from './selection-action-bar';