@actioneer/ads 0.5.7 → 0.5.9

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 (147) hide show
  1. package/bin/ads-init.mjs +6 -0
  2. package/components/accordion.js +50 -48
  3. package/components/agent-icon.d.ts +12 -0
  4. package/components/agent-icon.js +133 -120
  5. package/components/ai-elements/chain-of-thought.d.ts +1 -1
  6. package/components/ai-elements/chain-of-thought.js +108 -108
  7. package/components/ai-elements/chart.js +16 -14
  8. package/components/ai-elements/inline-citation.js +41 -41
  9. package/components/ai-elements/message.js +4 -4
  10. package/components/ai-elements/queue.js +7 -7
  11. package/components/ai-elements/research-activity.js +114 -114
  12. package/components/ai-elements/shimmer.d.ts +2 -2
  13. package/components/ai-elements/speech-input.js +28 -28
  14. package/components/ai-elements/task-progress.js +26 -16
  15. package/components/ai-elements/task.js +17 -17
  16. package/components/ai-elements/tool.js +6 -6
  17. package/components/ai-elements/transcript.js +6 -5
  18. package/components/ai-elements/voice.js +1 -1
  19. package/components/alert.js +10 -10
  20. package/components/answer-sources.js +1 -1
  21. package/components/answer.js +115 -114
  22. package/components/assistant-ui/action-bar.js +94 -48
  23. package/components/assistant-ui/attachment.js +103 -75
  24. package/components/assistant-ui/badge.d.ts +1 -1
  25. package/components/assistant-ui/badge.js +17 -17
  26. package/components/assistant-ui/chain-of-thought.d.ts +1 -1
  27. package/components/assistant-ui/composer-add-context.js +9 -9
  28. package/components/assistant-ui/composer-deep-research.js +5 -5
  29. package/components/assistant-ui/composer-harness.js +11 -9
  30. package/components/assistant-ui/composer-trigger-popover.js +45 -34
  31. package/components/assistant-ui/composer.js +59 -59
  32. package/components/assistant-ui/error.js +14 -14
  33. package/components/assistant-ui/file.d.ts +1 -1
  34. package/components/assistant-ui/image.d.ts +1 -1
  35. package/components/assistant-ui/image.js +113 -103
  36. package/components/assistant-ui/markdown-text.js +18 -18
  37. package/components/assistant-ui/message.js +46 -45
  38. package/components/assistant-ui/quote.js +1 -1
  39. package/components/assistant-ui/reasoning.d.ts +1 -1
  40. package/components/assistant-ui/reasoning.js +66 -77
  41. package/components/assistant-ui/suggestions.js +4 -4
  42. package/components/assistant-ui/thread.js +22 -22
  43. package/components/assistant-ui/tool-fallback.js +60 -63
  44. package/components/assistant-ui/tool-group.d.ts +1 -1
  45. package/components/assistant-ui/tool-group.js +36 -42
  46. package/components/audio-waveform.js +25 -24
  47. package/components/autocomplete.d.ts +1 -0
  48. package/components/autocomplete.js +45 -43
  49. package/components/avatar.d.ts +1 -0
  50. package/components/avatar.js +27 -26
  51. package/components/badge.d.ts +1 -1
  52. package/components/breadcrumbs.d.ts +2 -0
  53. package/components/breadcrumbs.js +52 -50
  54. package/components/button.d.ts +2 -2
  55. package/components/button.js +22 -20
  56. package/components/card.js +8 -8
  57. package/components/carousel.js +105 -104
  58. package/components/chart.d.ts +6 -0
  59. package/components/chart.js +743 -672
  60. package/components/checkbox.js +74 -38
  61. package/components/chip.d.ts +1 -1
  62. package/components/code-block.js +3 -3
  63. package/components/collapsible.js +67 -23
  64. package/components/connector-card.js +6 -6
  65. package/components/drawer.d.ts +18 -11
  66. package/components/drawer.js +81 -78
  67. package/components/dropdown.d.ts +2 -0
  68. package/components/dropdown.js +88 -79
  69. package/components/empty-state.d.ts +1 -1
  70. package/components/empty-state.js +7 -7
  71. package/components/field.d.ts +4 -0
  72. package/components/field.js +45 -34
  73. package/components/file-dropzone.js +12 -12
  74. package/components/index.d.ts +3 -0
  75. package/components/index.js +584 -558
  76. package/components/input-field.js +51 -46
  77. package/components/input.js +20 -20
  78. package/components/link.js +9 -9
  79. package/components/modal.d.ts +5 -1
  80. package/components/modal.js +121 -76
  81. package/components/navbar.d.ts +1 -1
  82. package/components/navbar.js +1 -1
  83. package/components/number-field.js +38 -29
  84. package/components/page-header.js +12 -12
  85. package/components/pagination.js +19 -19
  86. package/components/panel.js +2 -2
  87. package/components/pixel-blast-svg.js +3 -3
  88. package/components/pixel-icon.d.ts +4 -0
  89. package/components/pixel-icon.js +210 -164
  90. package/components/popover.d.ts +1 -1
  91. package/components/popover.js +66 -64
  92. package/components/progress-circle.js +36 -32
  93. package/components/progress.js +28 -24
  94. package/components/radio.js +59 -49
  95. package/components/resizable-panel.js +1 -1
  96. package/components/reveal.d.ts +2 -2
  97. package/components/ripple.d.ts +3 -3
  98. package/components/scroll-area.js +17 -16
  99. package/components/segmented.d.ts +1 -0
  100. package/components/segmented.js +39 -36
  101. package/components/select.d.ts +7 -0
  102. package/components/select.js +186 -137
  103. package/components/setting-row.js +45 -42
  104. package/components/sidebar.js +131 -127
  105. package/components/skeleton.js +5 -5
  106. package/components/spinner.d.ts +13 -4
  107. package/components/spinner.js +42 -42
  108. package/components/stepper.js +21 -21
  109. package/components/switch.js +41 -39
  110. package/components/table.d.ts +16 -0
  111. package/components/table.js +393 -260
  112. package/components/tabs.js +149 -137
  113. package/components/toast.js +66 -66
  114. package/components/tooltip.js +2 -2
  115. package/components/tree.js +62 -51
  116. package/components/typography.d.ts +2 -1
  117. package/components/typography.js +33 -32
  118. package/components/ui/button.d.ts +2 -2
  119. package/components/ui/button.js +19 -19
  120. package/components/ui/collapsible.d.ts +1 -5
  121. package/components/ui/dialog.d.ts +3 -3
  122. package/components/ui/dialog.js +95 -58
  123. package/components/ui/tooltip.d.ts +2 -2
  124. package/components/ui/tooltip.js +67 -33
  125. package/components/viz-charts.js +95 -95
  126. package/demo/components/add-to-artifact.js +363 -0
  127. package/demo/lib/artifact-library.js +142 -0
  128. package/demo/lib/artifact-pin-guard.js +12 -0
  129. package/fonts/aribau-grotesk-medium.woff2 +0 -0
  130. package/fonts/aribau-grotesk-regular.woff2 +0 -0
  131. package/fonts.css +11 -11
  132. package/hooks/agents-ui/use-agent-audio-visualizer-aura.js +17 -16
  133. package/hooks/agents-ui/use-agent-audio-visualizer-wave.js +21 -20
  134. package/lib/icons.d.ts +24 -0
  135. package/lib/icons.js +114 -108
  136. package/lib/motion.d.ts +42 -39
  137. package/lib/motion.js +112 -52
  138. package/lib/spinner-mark.d.ts +9 -0
  139. package/lib/spinner-mark.js +98 -0
  140. package/llms.txt +53 -19
  141. package/manifest.json +258 -36
  142. package/package.json +1 -1
  143. package/styles.css +143 -124
  144. package/theme.css +90 -93
  145. package/components/ui/collapsible.js +0 -35
  146. package/fonts/aribau-grotesk-500.otf +0 -0
  147. package/fonts/aribau-grotesk-600.woff2 +0 -0
@@ -1,34 +1,36 @@
1
1
  "use client";
2
- import { jsx as C, jsxs as V } from "react/jsx-runtime";
2
+ import { jsx as b, jsxs as V } from "react/jsx-runtime";
3
3
  import * as t from "react";
4
4
  import { cva as W } from "class-variance-authority";
5
+ import { MotionConfig as H, motion as X } from "motion/react";
5
6
  import { Button as D } from "./button.js";
6
- import { ChevronLeft as H, ChevronRight as X } from "../lib/icons.js";
7
- import { cn as S } from "../lib/cn.js";
7
+ import { ChevronLeft as B, ChevronRight as G } from "../lib/icons.js";
8
+ import { cn as w } from "../lib/cn.js";
9
+ import { springCarousel as O } from "../lib/motion.js";
8
10
  const q = t.createContext(null);
9
11
  function T(l) {
10
- const i = t.useContext(q);
11
- if (!i)
12
+ const s = t.useContext(q);
13
+ if (!s)
12
14
  throw new Error(`<${l}> must be used within <Carousel>`);
13
- return i;
15
+ return s;
14
16
  }
15
17
  const F = t.createContext(null);
16
- function L(l, i, d) {
17
- return i <= 0 ? 0 : d ? (l % i + i) % i : Math.min(Math.max(l, 0), i - 1);
18
+ function L(l, s, d) {
19
+ return s <= 0 ? 0 : d ? (l % s + s) % s : Math.min(Math.max(l, 0), s - 1);
18
20
  }
19
21
  function _(l) {
20
22
  return l.detail === 0;
21
23
  }
22
- const B = W(
24
+ const Y = W(
23
25
  "relative w-full rounded-sm outline-none focus-visible:ring-3 focus-visible:ring-ring"
24
- ), G = t.forwardRef(
26
+ ), J = t.forwardRef(
25
27
  ({
26
28
  className: l,
27
- index: i,
29
+ index: s,
28
30
  defaultIndex: d = 0,
29
31
  onIndexChange: f,
30
32
  loop: o = !0,
31
- children: b,
33
+ children: h,
32
34
  role: p,
33
35
  tabIndex: m,
34
36
  onKeyDown: r,
@@ -36,55 +38,55 @@ const B = W(
36
38
  "aria-roledescription": I,
37
39
  ...N
38
40
  }, u) => {
39
- const a = i !== void 0, [n, y] = t.useState(d), [h, v] = t.useState(0), [P, R] = t.useState(!0), E = t.useId(), g = L(a ? i : n, h, !1), e = t.useCallback((s) => {
40
- v(s), y(
41
- (M) => L(M, s, !1)
41
+ const a = s !== void 0, [n, y] = t.useState(d), [C, S] = t.useState(0), [P, v] = t.useState(!0), E = t.useId(), g = L(a ? s : n, C, !1), e = t.useCallback((i) => {
42
+ S(i), y(
43
+ (M) => L(M, i, !1)
42
44
  );
43
45
  }, []), c = t.useCallback(
44
- (s, M = "animated") => {
45
- const $ = L(s, h, o);
46
- R(M === "animated"), a || y($), $ !== g && (f == null || f($));
46
+ (i, M = "animated") => {
47
+ const $ = L(i, C, o);
48
+ v(M === "animated"), a || y($), $ !== g && (f == null || f($));
47
49
  },
48
- [h, g, a, o, f]
50
+ [C, g, a, o, f]
49
51
  ), A = t.useCallback(
50
- (s) => c(g - 1, s),
52
+ (i) => c(g - 1, i),
51
53
  [c, g]
52
- ), w = t.useCallback(
53
- (s) => c(g + 1, s),
54
+ ), R = t.useCallback(
55
+ (i) => c(g + 1, i),
54
56
  [c, g]
55
57
  );
56
58
  t.useEffect(() => {
57
59
  if (P) return;
58
- const s = requestAnimationFrame(() => R(!0));
59
- return () => cancelAnimationFrame(s);
60
+ const i = requestAnimationFrame(() => v(!0));
61
+ return () => cancelAnimationFrame(i);
60
62
  }, [g, P]);
61
63
  const k = t.useMemo(
62
64
  () => ({
63
65
  index: g,
64
- count: h,
66
+ count: C,
65
67
  loop: o,
66
68
  contentId: E,
67
69
  isAnimated: P,
68
70
  setCount: e,
69
71
  goTo: c,
70
72
  goPrevious: A,
71
- goNext: w
73
+ goNext: R
72
74
  }),
73
75
  [
74
76
  g,
75
- h,
77
+ C,
76
78
  o,
77
79
  E,
78
80
  P,
79
81
  e,
80
82
  c,
81
83
  A,
82
- w
84
+ R
83
85
  ]
84
- ), z = (s) => {
85
- r == null || r(s), !(s.defaultPrevented || s.target !== s.currentTarget) && (s.key === "ArrowLeft" ? (s.preventDefault(), A("instant")) : s.key === "ArrowRight" ? (s.preventDefault(), w("instant")) : s.key === "Home" ? (s.preventDefault(), c(0, "instant")) : s.key === "End" && (s.preventDefault(), c(h - 1, "instant")));
86
+ ), z = (i) => {
87
+ r == null || r(i), !(i.defaultPrevented || i.target !== i.currentTarget) && (i.key === "ArrowLeft" ? (i.preventDefault(), A("instant")) : i.key === "ArrowRight" ? (i.preventDefault(), R("instant")) : i.key === "Home" ? (i.preventDefault(), c(0, "instant")) : i.key === "End" && (i.preventDefault(), c(C - 1, "instant")));
86
88
  };
87
- return /* @__PURE__ */ C(q.Provider, { value: k, children: /* @__PURE__ */ V(
89
+ return /* @__PURE__ */ b(q.Provider, { value: k, children: /* @__PURE__ */ V(
88
90
  "div",
89
91
  {
90
92
  ref: u,
@@ -92,26 +94,26 @@ const B = W(
92
94
  "aria-roledescription": I ?? "carousel",
93
95
  "aria-label": x ?? "Carousel",
94
96
  tabIndex: m ?? 0,
95
- className: S(B(), l),
97
+ className: w(Y(), l),
96
98
  onKeyDown: z,
97
99
  ...N,
98
100
  children: [
99
- b,
100
- /* @__PURE__ */ C("span", { className: "sr-only", "aria-live": "polite", "aria-atomic": "true", children: h > 0 ? `Slide ${g + 1} of ${h}` : "" })
101
+ h,
102
+ /* @__PURE__ */ b("span", { className: "sr-only", "aria-live": "polite", "aria-atomic": "true", children: C > 0 ? `Slide ${g + 1} of ${C}` : "" })
101
103
  ]
102
104
  }
103
105
  ) });
104
106
  }
105
107
  );
106
- G.displayName = "Carousel";
107
- const O = 40, Y = 10, J = 0.11, Q = t.forwardRef(
108
+ J.displayName = "Carousel";
109
+ const Q = 40, Z = 10, K = 0.11, U = t.forwardRef(
108
110
  ({
109
111
  className: l,
110
- children: i,
112
+ children: s,
111
113
  onPointerDown: d,
112
114
  onPointerUp: f,
113
115
  onPointerCancel: o,
114
- onClickCapture: b,
116
+ onClickCapture: h,
115
117
  ...p
116
118
  }, m) => {
117
119
  const {
@@ -122,53 +124,52 @@ const O = 40, Y = 10, J = 0.11, Q = t.forwardRef(
122
124
  setCount: u,
123
125
  goPrevious: a,
124
126
  goNext: n
125
- } = T("CarouselContent"), y = t.Children.toArray(i), h = t.useRef(null), v = t.useRef(!1);
127
+ } = T("CarouselContent"), y = t.Children.toArray(s), C = t.useRef(null), S = t.useRef(!1);
126
128
  t.useEffect(() => {
127
129
  u(y.length);
128
130
  }, [y.length, u]);
129
131
  const P = (e) => {
130
- d == null || d(e), !(e.defaultPrevented || !e.isPrimary || e.pointerType === "mouse" || x <= 1) && (h.current = {
132
+ d == null || d(e), !(e.defaultPrevented || !e.isPrimary || e.pointerType === "mouse" || x <= 1) && (C.current = {
131
133
  pointerId: e.pointerId,
132
134
  x: e.clientX,
133
135
  time: e.timeStamp
134
136
  }, e.currentTarget.setPointerCapture(e.pointerId));
135
- }, R = (e) => {
137
+ }, v = (e) => {
136
138
  e.currentTarget.hasPointerCapture(e.pointerId) && e.currentTarget.releasePointerCapture(e.pointerId);
137
139
  }, E = (e) => {
138
140
  f == null || f(e);
139
- const c = h.current;
140
- if (h.current = null, R(e), !c || c.pointerId !== e.pointerId) return;
141
- const A = e.clientX - c.x, w = Math.max(1, e.timeStamp - c.time), k = Math.abs(A) / w;
142
- (Math.abs(A) >= O || Math.abs(A) >= Y && k > J) && (v.current = !0, A < 0 ? n() : a());
141
+ const c = C.current;
142
+ if (C.current = null, v(e), !c || c.pointerId !== e.pointerId) return;
143
+ const A = e.clientX - c.x, R = Math.max(1, e.timeStamp - c.time), k = Math.abs(A) / R;
144
+ (Math.abs(A) >= Q || Math.abs(A) >= Z && k > K) && (S.current = !0, A < 0 ? n() : a());
143
145
  }, j = (e) => {
144
- o == null || o(e), h.current = null, R(e);
146
+ o == null || o(e), C.current = null, v(e);
145
147
  }, g = (e) => {
146
- if (v.current) {
147
- v.current = !1, e.preventDefault(), e.stopPropagation();
148
+ if (S.current) {
149
+ S.current = !1, e.preventDefault(), e.stopPropagation();
148
150
  return;
149
151
  }
150
- b == null || b(e);
152
+ h == null || h(e);
151
153
  };
152
- return /* @__PURE__ */ C(
154
+ return /* @__PURE__ */ b(
153
155
  "div",
154
156
  {
155
157
  ref: m,
156
158
  id: I,
157
- className: S("overflow-hidden touch-pan-y", l),
159
+ className: w("overflow-hidden touch-pan-y", l),
158
160
  onPointerDown: P,
159
161
  onPointerUp: E,
160
162
  onPointerCancel: j,
161
163
  onClickCapture: g,
162
164
  ...p,
163
- children: /* @__PURE__ */ C(
164
- "div",
165
+ children: /* @__PURE__ */ b(H, { reducedMotion: "user", children: /* @__PURE__ */ b(
166
+ X.div,
165
167
  {
166
- className: S(
167
- "flex",
168
- N ? "transition-transform duration-(--duration-normal) ease-in-out motion-reduce:transition-none" : "transition-none"
169
- ),
170
- style: { transform: `translate3d(-${r * 100}%, 0, 0)` },
171
- children: y.map((e, c) => /* @__PURE__ */ C(
168
+ className: "flex",
169
+ initial: !1,
170
+ animate: { x: `${-r * 100}%` },
171
+ transition: N ? O : { duration: 0 },
172
+ children: y.map((e, c) => /* @__PURE__ */ b(
172
173
  F.Provider,
173
174
  {
174
175
  value: {
@@ -181,48 +182,48 @@ const O = 40, Y = 10, J = 0.11, Q = t.forwardRef(
181
182
  t.isValidElement(e) ? e.key ?? c : c
182
183
  ))
183
184
  }
184
- )
185
+ ) })
185
186
  }
186
187
  );
187
188
  }
188
189
  );
189
- Q.displayName = "CarouselContent";
190
- const Z = t.forwardRef(
190
+ U.displayName = "CarouselContent";
191
+ const ee = t.forwardRef(
191
192
  ({
192
193
  className: l,
193
- role: i,
194
+ role: s,
194
195
  inert: d,
195
196
  "aria-label": f,
196
197
  "aria-hidden": o,
197
- "aria-roledescription": b,
198
+ "aria-roledescription": h,
198
199
  ...p
199
200
  }, m) => {
200
201
  const r = t.useContext(F);
201
- return /* @__PURE__ */ C(
202
+ return /* @__PURE__ */ b(
202
203
  "div",
203
204
  {
204
205
  ref: m,
205
- role: i ?? "group",
206
- "aria-roledescription": b ?? "slide",
206
+ role: s ?? "group",
207
+ "aria-roledescription": h ?? "slide",
207
208
  "aria-label": f ?? (r ? `${r.index + 1} of ${r.count}` : void 0),
208
209
  "aria-hidden": o ?? (r ? !r.isActive : void 0),
209
210
  inert: d ?? (r ? !r.isActive : void 0),
210
211
  "data-active": (r == null ? void 0 : r.isActive) || void 0,
211
- className: S("w-full shrink-0", l),
212
+ className: w("w-full shrink-0", l),
212
213
  ...p
213
214
  }
214
215
  );
215
216
  }
216
217
  );
217
- Z.displayName = "CarouselItem";
218
- const K = t.forwardRef(
218
+ ee.displayName = "CarouselItem";
219
+ const te = t.forwardRef(
219
220
  ({
220
221
  className: l,
221
- getLabel: i = (p) => `Go to slide ${p + 1}`,
222
+ getLabel: s = (p) => `Go to slide ${p + 1}`,
222
223
  onKeyDown: d,
223
224
  "aria-label": f,
224
225
  ...o
225
- }, b) => {
226
+ }, h) => {
226
227
  const { index: p, count: m, contentId: r, goTo: x } = T("CarouselIndicators"), I = t.useRef([]);
227
228
  if (m <= 1) return null;
228
229
  const N = (u) => {
@@ -231,25 +232,25 @@ const K = t.forwardRef(
231
232
  let a = null;
232
233
  u.key === "ArrowRight" ? a = (p + 1) % m : u.key === "ArrowLeft" ? a = (p - 1 + m) % m : u.key === "Home" ? a = 0 : u.key === "End" && (a = m - 1), a !== null && (u.preventDefault(), u.stopPropagation(), x(a, "instant"), (n = I.current[a]) == null || n.focus());
233
234
  };
234
- return /* @__PURE__ */ C(
235
+ return /* @__PURE__ */ b(
235
236
  "div",
236
237
  {
237
- ref: b,
238
+ ref: h,
238
239
  role: "group",
239
240
  "aria-label": f ?? "Choose a slide",
240
- className: S("flex items-center justify-center gap-1", l),
241
+ className: w("flex items-center justify-center gap-1", l),
241
242
  onKeyDown: N,
242
243
  ...o,
243
244
  children: Array.from({ length: m }, (u, a) => {
244
245
  const n = a === p;
245
- return /* @__PURE__ */ C(
246
+ return /* @__PURE__ */ b(
246
247
  "button",
247
248
  {
248
249
  ref: (y) => {
249
250
  I.current[a] = y;
250
251
  },
251
252
  type: "button",
252
- "aria-label": i(a),
253
+ "aria-label": s(a),
253
254
  "aria-current": n ? "true" : void 0,
254
255
  "aria-controls": r,
255
256
  tabIndex: n ? 0 : -1,
@@ -259,12 +260,12 @@ const K = t.forwardRef(
259
260
  a,
260
261
  _(y) ? "instant" : "animated"
261
262
  ),
262
- children: /* @__PURE__ */ C(
263
+ children: /* @__PURE__ */ b(
263
264
  "span",
264
265
  {
265
266
  "aria-hidden": !0,
266
- className: S(
267
- "size-2.5 rounded-dot transition-colors duration-(--duration-fast) ease-out motion-reduce:transition-none",
267
+ className: w(
268
+ "size-2.5 rounded-dot transition-colors duration-150 ease-out motion-reduce:transition-none",
268
269
  n ? "bg-brand" : "bg-fill group-hover:bg-muted"
269
270
  )
270
271
  }
@@ -277,75 +278,75 @@ const K = t.forwardRef(
277
278
  );
278
279
  }
279
280
  );
280
- K.displayName = "CarouselIndicators";
281
- const U = t.forwardRef(
281
+ te.displayName = "CarouselIndicators";
282
+ const re = t.forwardRef(
282
283
  ({
283
284
  children: l,
284
- variant: i = "secondary",
285
+ variant: s = "secondary",
285
286
  size: d = "icon-sm",
286
287
  disabled: f,
287
288
  onClick: o,
288
- "aria-label": b,
289
+ "aria-label": h,
289
290
  ...p
290
291
  }, m) => {
291
292
  const { index: r, count: x, loop: I, contentId: N, goPrevious: u } = T("CarouselPrevious"), a = f || x <= 1 || !I && r === 0;
292
- return /* @__PURE__ */ C(
293
+ return /* @__PURE__ */ b(
293
294
  D,
294
295
  {
295
296
  ref: m,
296
297
  type: "button",
297
- variant: i,
298
+ variant: s,
298
299
  size: d,
299
300
  disabled: a,
300
- "aria-label": b ?? "Previous slide",
301
+ "aria-label": h ?? "Previous slide",
301
302
  "aria-controls": N,
302
303
  onClick: (n) => {
303
304
  o == null || o(n), n.defaultPrevented || u(_(n) ? "instant" : "animated");
304
305
  },
305
306
  ...p,
306
- children: l ?? /* @__PURE__ */ C(H, {})
307
+ children: l ?? /* @__PURE__ */ b(B, {})
307
308
  }
308
309
  );
309
310
  }
310
311
  );
311
- U.displayName = "CarouselPrevious";
312
- const ee = t.forwardRef(
312
+ re.displayName = "CarouselPrevious";
313
+ const ae = t.forwardRef(
313
314
  ({
314
315
  children: l,
315
- variant: i = "secondary",
316
+ variant: s = "secondary",
316
317
  size: d = "icon-sm",
317
318
  disabled: f,
318
319
  onClick: o,
319
- "aria-label": b,
320
+ "aria-label": h,
320
321
  ...p
321
322
  }, m) => {
322
323
  const { index: r, count: x, loop: I, contentId: N, goNext: u } = T("CarouselNext"), a = f || x <= 1 || !I && r === x - 1;
323
- return /* @__PURE__ */ C(
324
+ return /* @__PURE__ */ b(
324
325
  D,
325
326
  {
326
327
  ref: m,
327
328
  type: "button",
328
- variant: i,
329
+ variant: s,
329
330
  size: d,
330
331
  disabled: a,
331
- "aria-label": b ?? "Next slide",
332
+ "aria-label": h ?? "Next slide",
332
333
  "aria-controls": N,
333
334
  onClick: (n) => {
334
335
  o == null || o(n), n.defaultPrevented || u(_(n) ? "instant" : "animated");
335
336
  },
336
337
  ...p,
337
- children: l ?? /* @__PURE__ */ C(X, {})
338
+ children: l ?? /* @__PURE__ */ b(G, {})
338
339
  }
339
340
  );
340
341
  }
341
342
  );
342
- ee.displayName = "CarouselNext";
343
+ ae.displayName = "CarouselNext";
343
344
  export {
344
- G as Carousel,
345
- Q as CarouselContent,
346
- K as CarouselIndicators,
347
- Z as CarouselItem,
348
- ee as CarouselNext,
349
- U as CarouselPrevious,
350
- B as carouselVariants
345
+ J as Carousel,
346
+ U as CarouselContent,
347
+ te as CarouselIndicators,
348
+ ee as CarouselItem,
349
+ ae as CarouselNext,
350
+ re as CarouselPrevious,
351
+ Y as carouselVariants
351
352
  };
@@ -100,6 +100,8 @@ export interface LineChartProps extends BaseChartProps {
100
100
  curve?: "linear" | "natural" | "step";
101
101
  /** Series keys that render dashed — projections, not observations. */
102
102
  forecastKeys?: string[];
103
+ /** When set, only these series keys animate on mount/update. */
104
+ animatedSeriesKeys?: string[];
103
105
  /**
104
106
  * Print each observation's value above its dot. On by default for a SINGLE
105
107
  * series (the reader shouldn't have to hover to read a number that fits);
@@ -112,6 +114,8 @@ export interface AreaChartProps extends BaseChartProps {
112
114
  stacked?: boolean;
113
115
  /** Series keys that render dashed — projections, not observations. */
114
116
  forecastKeys?: string[];
117
+ /** When set, only these series keys animate on mount/update. */
118
+ animatedSeriesKeys?: string[];
115
119
  /** Print each observation's value above its dot — see {@link LineChartProps.showValues}. */
116
120
  showValues?: boolean;
117
121
  }
@@ -130,6 +134,8 @@ export interface ComboChartProps extends BaseChartProps {
130
134
  stacked?: boolean;
131
135
  /** Line keys that render dashed — projections, not observations. */
132
136
  forecastKeys?: string[];
137
+ /** When set, only these series keys animate on mount/update. */
138
+ animatedSeriesKeys?: string[];
133
139
  }
134
140
  export type ComposedChartProps = ComboChartProps;
135
141
  export interface PieChartProps {