@actioneer/ads 0.6.0 → 0.7.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 (112) hide show
  1. package/components/ai-elements/agent-trace.d.ts +2 -2
  2. package/components/ai-elements/agent-trace.js +163 -104
  3. package/components/ai-elements/chain-of-thought.d.ts +2 -2
  4. package/components/ai-elements/chain-of-thought.js +1 -1
  5. package/components/ai-elements/index.d.ts +0 -5
  6. package/components/ai-elements/inline-citation.js +1 -1
  7. package/components/alert.d.ts +6 -6
  8. package/components/alert.js +89 -53
  9. package/components/answer-sources.d.ts +2 -6
  10. package/components/answer-sources.js +58 -60
  11. package/components/answer.d.ts +5 -0
  12. package/components/answer.js +311 -271
  13. package/components/assistant-ui/composer-harness.js +15 -20
  14. package/components/assistant-ui/composer.d.ts +3 -1
  15. package/components/assistant-ui/composer.js +148 -144
  16. package/components/assistant-ui/index.d.ts +0 -3
  17. package/components/assistant-ui/thread-context.d.ts +3 -1
  18. package/components/assistant-ui/thread.js +50 -42
  19. package/components/avatar.js +42 -42
  20. package/components/badge.d.ts +5 -6
  21. package/components/badge.js +13 -76
  22. package/components/body-page-header.d.ts +15 -0
  23. package/components/body-page-header.js +24 -0
  24. package/components/brand-loader.d.ts +0 -3
  25. package/components/brand-loader.js +10 -32
  26. package/components/breadcrumbs.d.ts +0 -7
  27. package/components/breadcrumbs.js +54 -71
  28. package/components/button.d.ts +1 -1
  29. package/components/button.js +55 -49
  30. package/components/chart.js +298 -296
  31. package/components/chip.d.ts +13 -1
  32. package/components/chip.js +93 -80
  33. package/components/collection-header.d.ts +17 -0
  34. package/components/collection-header.js +31 -0
  35. package/components/connector-card.d.ts +6 -6
  36. package/components/connector-card.js +31 -32
  37. package/components/date-range-picker.d.ts +2 -1
  38. package/components/date-range-picker.js +158 -122
  39. package/components/drawer.d.ts +19 -3
  40. package/components/drawer.js +109 -100
  41. package/components/dropdown.d.ts +1 -2
  42. package/components/dropdown.js +88 -89
  43. package/components/field.js +39 -34
  44. package/components/file-dropzone.js +1 -1
  45. package/components/index.d.ts +4 -4
  46. package/components/index.js +499 -546
  47. package/components/infinite-canvas.js +24 -24
  48. package/components/input-field.d.ts +18 -3
  49. package/components/input-field.js +88 -72
  50. package/components/input.js +16 -15
  51. package/components/modal.d.ts +31 -3
  52. package/components/modal.js +243 -169
  53. package/components/number-field.js +45 -42
  54. package/components/page-body.d.ts +12 -0
  55. package/components/page-body.js +18 -0
  56. package/components/pagination.js +36 -36
  57. package/components/select.d.ts +21 -0
  58. package/components/select.js +189 -148
  59. package/components/setting-row.d.ts +6 -5
  60. package/components/setting-row.js +33 -32
  61. package/components/sidebar.d.ts +2 -0
  62. package/components/sidebar.js +165 -155
  63. package/components/skeleton.js +8 -7
  64. package/components/slider.js +1 -1
  65. package/components/surface-loader.d.ts +11 -0
  66. package/components/surface-loader.js +35 -0
  67. package/components/table.d.ts +16 -10
  68. package/components/table.js +426 -410
  69. package/components/tabs.d.ts +2 -0
  70. package/components/tabs.js +159 -294
  71. package/components/textarea.js +9 -9
  72. package/components/toast.d.ts +1 -1
  73. package/components/toast.js +181 -118
  74. package/components/tree.d.ts +5 -1
  75. package/components/tree.js +54 -49
  76. package/components/typography.d.ts +4 -4
  77. package/components/typography.js +13 -13
  78. package/components/ui/button.d.ts +1 -1
  79. package/components/ui/dialog.js +33 -33
  80. package/demo/components/add-to-artifact.js +6 -10
  81. package/lib/cn.js +11 -4
  82. package/lib/icons.d.ts +4 -0
  83. package/lib/icons.js +107 -106
  84. package/lib/interactive.d.ts +1 -1
  85. package/llms.txt +95 -152
  86. package/manifest.json +1628 -2729
  87. package/package.json +1 -2
  88. package/styles.css +347 -223
  89. package/theme.css +303 -177
  90. package/components/agent-icon.d.ts +0 -76
  91. package/components/agent-icon.js +0 -265
  92. package/components/ai-elements/queue.d.ts +0 -60
  93. package/components/ai-elements/queue.js +0 -193
  94. package/components/ai-elements/speech-input.d.ts +0 -16
  95. package/components/ai-elements/speech-input.js +0 -151
  96. package/components/ai-elements/task-progress.d.ts +0 -41
  97. package/components/ai-elements/task-progress.js +0 -224
  98. package/components/ai-elements/task.d.ts +0 -39
  99. package/components/ai-elements/task.js +0 -105
  100. package/components/ai-elements/voice.d.ts +0 -90
  101. package/components/ai-elements/voice.js +0 -496
  102. package/components/assistant-ui/follow-up-suggestions.d.ts +0 -11
  103. package/components/assistant-ui/follow-up-suggestions.js +0 -72
  104. package/components/assistant-ui/suggestions.d.ts +0 -7
  105. package/components/assistant-ui/suggestions.js +0 -19
  106. package/components/assistant-ui/voice.d.ts +0 -18
  107. package/components/link.d.ts +0 -14
  108. package/components/link.js +0 -72
  109. package/components/navbar.d.ts +0 -15
  110. package/components/navbar.js +0 -68
  111. package/components/pixel-icon.d.ts +0 -37
  112. package/components/pixel-icon.js +0 -859
@@ -6,8 +6,10 @@ export interface TabsProps extends React.HTMLAttributes<HTMLDivElement> {
6
6
  value?: string;
7
7
  defaultValue?: string;
8
8
  onValueChange?: (value: string) => void;
9
+ /** @deprecated Tabs now use one primary underline style. */
9
10
  variant?: Variant;
10
11
  orientation?: Orientation;
12
+ /** @deprecated Tabs use one fixed 32px control height. */
11
13
  size?: Size;
12
14
  }
13
15
  export declare const Tabs: React.ForwardRefExoticComponent<TabsProps & React.RefAttributes<HTMLDivElement>>;
@@ -1,404 +1,269 @@
1
1
  "use client";
2
- import { jsx as f, jsxs as L } from "react/jsx-runtime";
2
+ import { jsx as m, jsxs as E } from "react/jsx-runtime";
3
3
  import * as r from "react";
4
- import { MotionConfig as B, motion as P } from "motion/react";
5
- import { cva as $ } from "class-variance-authority";
6
- import { cn as b } from "../lib/cn.js";
7
- import { springControl as S } from "../lib/motion.js";
8
- const I = (s, e, a) => `${s}-${e}-${encodeURIComponent(a).replaceAll("%", "_")}`, M = r.createContext(null);
9
- function j(s) {
10
- const e = r.useContext(M);
4
+ import { MotionConfig as $, motion as M } from "motion/react";
5
+ import { cva as L } from "class-variance-authority";
6
+ import { cn as p } from "../lib/cn.js";
7
+ import { springControl as U } from "../lib/motion.js";
8
+ const N = (o, e, t) => `${o}-${e}-${encodeURIComponent(t).replaceAll("%", "_")}`, P = r.createContext(null);
9
+ function z(o) {
10
+ const e = r.useContext(P);
11
11
  if (!e)
12
- throw new Error(`<${s}> must be used within <Tabs>`);
12
+ throw new Error(`<${o}> must be used within <Tabs>`);
13
13
  return e;
14
14
  }
15
- const H = r.forwardRef(
15
+ const _ = r.forwardRef(
16
16
  ({
17
- className: s,
17
+ className: o,
18
18
  value: e,
19
- defaultValue: a,
20
- onValueChange: i,
21
- variant: o = "primary",
22
- orientation: l = "horizontal",
23
- size: u = "md",
19
+ defaultValue: t,
20
+ onValueChange: a,
21
+ variant: g,
22
+ orientation: d = "horizontal",
23
+ size: b,
24
24
  children: R,
25
25
  ...A
26
- }, k) => {
27
- const h = e !== void 0, [N, z] = r.useState(a), w = r.useId().replaceAll(":", ""), d = r.useId(), y = r.useRef([]), v = r.useRef(/* @__PURE__ */ new Set()), x = h ? e : N, T = r.useCallback(
28
- (t) => {
29
- h || z(t), i == null || i(t);
26
+ }, S) => {
27
+ const x = e !== void 0, [y, v] = r.useState(t), T = r.useId().replaceAll(":", ""), c = r.useId(), w = r.useRef([]), h = r.useRef(/* @__PURE__ */ new Set()), f = x ? e : y, I = r.useCallback(
28
+ (l) => {
29
+ x || v(l), a == null || a(l);
30
30
  },
31
- [h, i]
32
- ), c = r.useCallback((t) => {
33
- y.current.includes(t) || y.current.push(t);
34
- }, []), V = r.useMemo(
31
+ [x, a]
32
+ ), i = r.useCallback((l) => {
33
+ w.current.includes(l) || w.current.push(l);
34
+ }, []), s = r.useMemo(
35
35
  () => ({
36
- value: x,
37
- setValue: T,
38
- baseId: w,
39
- registerTab: c,
40
- tabs: y,
41
- disabled: v,
42
- thumbId: d,
43
- variant: o,
44
- orientation: l,
45
- size: u
36
+ value: f,
37
+ setValue: I,
38
+ baseId: T,
39
+ registerTab: i,
40
+ tabs: w,
41
+ disabled: h,
42
+ thumbId: c,
43
+ orientation: d
46
44
  }),
47
45
  [
48
- x,
46
+ f,
47
+ I,
49
48
  T,
50
- w,
49
+ i,
51
50
  c,
52
- d,
53
- o,
54
- l,
55
- u
51
+ d
56
52
  ]
57
53
  );
58
- return /* @__PURE__ */ f(M.Provider, { value: V, children: /* @__PURE__ */ f(
54
+ return /* @__PURE__ */ m(P.Provider, { value: s, children: /* @__PURE__ */ m(
59
55
  "div",
60
56
  {
61
- ref: k,
62
- "data-orientation": l,
63
- "data-variant": o,
64
- className: b(
65
- "flex gap-4",
66
- l === "horizontal" ? "flex-col" : "flex-row",
67
- s
57
+ ref: S,
58
+ "data-orientation": d,
59
+ "data-variant": "primary",
60
+ className: p(
61
+ "flex w-full gap-4",
62
+ d === "horizontal" ? "flex-col" : "flex-row",
63
+ o
68
64
  ),
69
65
  ...A,
70
- children: /* @__PURE__ */ f(B, { reducedMotion: "user", children: R })
66
+ children: /* @__PURE__ */ m($, { reducedMotion: "user", children: R })
71
67
  }
72
68
  ) });
73
69
  }
74
70
  );
75
- H.displayName = "Tabs";
76
- const O = $("inline-flex", {
71
+ _.displayName = "Tabs";
72
+ const C = L("inline-flex gap-0 text-m", {
77
73
  variants: {
78
- variant: {
79
- primary: "bg-surface p-1 gap-1",
80
- secondary: "gap-0",
81
- // Legacy `pill` API: separate compact filter tabs with a gap and no
82
- // track (each tab can carry a `· N` count via Tab's `count`).
83
- pill: "gap-1.5 flex-wrap"
84
- },
85
74
  orientation: {
86
- horizontal: "self-start flex-row items-center",
87
- vertical: "flex-col items-stretch"
88
- },
89
- size: {
90
- sm: "text-xs",
91
- md: "text-xs",
92
- lg: "text-base"
75
+ horizontal: "w-full self-start flex-row items-center gap-6 overflow-x-auto border-b border-border",
76
+ vertical: "flex-col items-stretch border-r border-border"
93
77
  }
94
78
  },
95
- compoundVariants: [
96
- // Track radius follows control size: compact = 4px, standard = 6px.
97
- { variant: "primary", size: "sm", className: "rounded-sm" },
98
- { variant: "primary", size: "md", className: "rounded-md" },
99
- { variant: "primary", size: "lg", className: "rounded-md" },
100
- // Secondary variant uses a subtle rail (border) on the opposite edge of
101
- // the active indicator. Kept intentionally hairline — surfaces avoid
102
- // strokes, but a tab rail is a control edge, not a surface.
103
- {
104
- variant: "secondary",
105
- orientation: "horizontal",
106
- className: "border-b border-border"
107
- },
108
- {
109
- variant: "secondary",
110
- orientation: "vertical",
111
- className: "border-r border-border"
112
- }
113
- ],
114
79
  defaultVariants: {
115
- variant: "primary",
116
- orientation: "horizontal",
117
- size: "md"
80
+ orientation: "horizontal"
118
81
  }
119
- }), _ = r.forwardRef(
120
- ({ className: s, ...e }, a) => {
121
- const { variant: i, orientation: o, size: l } = j("TabList");
122
- return /* @__PURE__ */ f(
82
+ }), B = r.forwardRef(
83
+ ({ className: o, ...e }, t) => {
84
+ const { orientation: a } = z("TabList");
85
+ return /* @__PURE__ */ m(
123
86
  "div",
124
87
  {
125
- ref: a,
88
+ ref: t,
126
89
  role: "tablist",
127
- "aria-orientation": o,
128
- "data-orientation": o,
129
- "data-variant": i,
130
- className: b(O({ variant: i, orientation: o, size: l }), s),
90
+ "aria-orientation": a,
91
+ "data-orientation": a,
92
+ "data-variant": "primary",
93
+ className: p(C({ orientation: a }), o),
131
94
  ...e
132
95
  }
133
96
  );
134
97
  }
135
98
  );
136
- _.displayName = "TabList";
137
- const q = $(
138
- b(
139
- "relative inline-flex items-center whitespace-nowrap font-normal select-none",
99
+ B.displayName = "TabList";
100
+ const H = L(
101
+ p(
102
+ "relative inline-flex items-center whitespace-nowrap font-medium select-none",
140
103
  "transition-colors duration-150 cursor-pointer",
141
104
  "outline-none focus-visible:ring-3 focus-visible:ring-ring",
142
105
  "disabled:pointer-events-none disabled:opacity-50 disabled:cursor-not-allowed"
143
106
  ),
144
107
  {
145
108
  variants: {
146
- variant: {
147
- primary: "justify-center rounded-md",
148
- secondary: "",
149
- pill: "justify-center"
150
- },
151
109
  orientation: {
152
- horizontal: "",
153
- vertical: ""
154
- },
155
- size: {
156
- sm: "",
157
- md: "",
158
- lg: ""
110
+ horizontal: "h-8 flex-none justify-center -mb-px",
111
+ vertical: "h-8 justify-start px-3 pr-4 -mr-px"
159
112
  },
160
113
  selected: {
161
- true: "text-foreground",
114
+ true: "text-action-primary-text",
162
115
  false: "text-muted-foreground hover:text-foreground"
163
116
  }
164
117
  },
165
- compoundVariants: [
166
- // Sizing — differs per variant (primary is filled, secondary is
167
- // flush-underline).
168
- { variant: "primary", size: "sm", className: "h-6 rounded-sm px-2.5" },
169
- { variant: "primary", size: "md", className: "h-8 rounded-md px-3" },
170
- { variant: "primary", size: "lg", className: "h-9 rounded-md px-4" },
171
- // Legacy `pill` API — visually these are separate compact filter tabs,
172
- // with the same size-based 4px / 8px radii as every other control.
173
- { variant: "pill", size: "sm", className: "h-6 rounded-sm px-2.5 gap-1" },
174
- { variant: "pill", size: "md", className: "h-7 rounded-md px-3 gap-1" },
175
- { variant: "pill", size: "lg", className: "h-8 rounded-md px-3.5 gap-1.5" },
176
- { variant: "pill", selected: !0, className: "bg-foreground text-background" },
177
- {
178
- variant: "pill",
179
- selected: !1,
180
- className: "bg-muted text-muted-foreground hover:bg-accent hover:text-foreground"
181
- },
182
- // Secondary horizontal: -1px sits over the rail so the sliding
183
- // indicator overlaps it cleanly.
184
- {
185
- variant: "secondary",
186
- orientation: "horizontal",
187
- size: "sm",
188
- className: "px-2.5 pb-1.5 -mb-px justify-center"
189
- },
190
- {
191
- variant: "secondary",
192
- orientation: "horizontal",
193
- size: "md",
194
- className: "px-3 pb-2 -mb-px justify-center"
195
- },
196
- {
197
- variant: "secondary",
198
- orientation: "horizontal",
199
- size: "lg",
200
- className: "px-4 pb-2.5 -mb-px justify-center"
201
- },
202
- // Secondary vertical: left-aligned, sits over the right-side rail.
203
- {
204
- variant: "secondary",
205
- orientation: "vertical",
206
- size: "sm",
207
- className: "px-2.5 py-1 pr-3 -mr-px justify-start"
208
- },
209
- {
210
- variant: "secondary",
211
- orientation: "vertical",
212
- size: "md",
213
- className: "px-3 py-1.5 pr-4 -mr-px justify-start"
214
- },
215
- {
216
- variant: "secondary",
217
- orientation: "vertical",
218
- size: "lg",
219
- className: "px-4 py-2 pr-5 -mr-px justify-start"
220
- }
221
- ],
222
118
  defaultVariants: {
223
- variant: "primary",
224
119
  orientation: "horizontal",
225
- size: "md",
226
120
  selected: !1
227
121
  }
228
122
  }
229
- ), F = r.forwardRef(
230
- ({ className: s, value: e, isDisabled: a, count: i, children: o, onClick: l, onKeyDown: u, ...R }, A) => {
123
+ ), O = r.forwardRef(
124
+ ({ className: o, value: e, isDisabled: t, count: a, children: g, onClick: d, onKeyDown: b, ...R }, A) => {
231
125
  const {
232
- value: k,
233
- setValue: h,
234
- baseId: N,
235
- registerTab: z,
236
- tabs: w,
237
- disabled: d,
238
- thumbId: y,
239
- variant: v,
240
- orientation: x,
241
- size: T
242
- } = j("Tab"), c = k === e;
126
+ value: S,
127
+ setValue: x,
128
+ baseId: y,
129
+ registerTab: v,
130
+ tabs: T,
131
+ disabled: c,
132
+ thumbId: w,
133
+ orientation: h
134
+ } = z("Tab"), f = S === e;
243
135
  r.useEffect(() => {
244
- z(e);
245
- }, [z, e]), r.useEffect(() => {
246
- a ? d.current.add(e) : d.current.delete(e);
247
- }, [d, a, e]);
248
- const V = (t) => {
249
- if (u == null || u(t), t.defaultPrevented) return;
250
- const m = w.current, g = m.indexOf(e);
251
- if (g === -1) return;
252
- const U = x === "vertical" ? ["ArrowDown"] : ["ArrowRight", "ArrowDown"], C = x === "vertical" ? ["ArrowUp"] : ["ArrowLeft", "ArrowUp"];
136
+ v(e);
137
+ }, [v, e]), r.useEffect(() => {
138
+ t ? c.current.add(e) : c.current.delete(e);
139
+ }, [c, t, e]);
140
+ const I = (i) => {
141
+ if (b == null || b(i), i.defaultPrevented) return;
142
+ const s = T.current, l = s.indexOf(e);
143
+ if (l === -1) return;
144
+ const V = h === "vertical" ? ["ArrowDown"] : ["ArrowRight", "ArrowDown"], j = h === "vertical" ? ["ArrowUp"] : ["ArrowLeft", "ArrowUp"];
253
145
  let n = null;
254
- if (U.includes(t.key)) {
255
- n = g;
146
+ if (V.includes(i.key)) {
147
+ n = l;
256
148
  do
257
- n = (n + 1) % m.length;
258
- while (d.current.has(m[n]) && n !== g);
259
- } else if (C.includes(t.key)) {
260
- n = g;
149
+ n = (n + 1) % s.length;
150
+ while (c.current.has(s[n]) && n !== l);
151
+ } else if (j.includes(i.key)) {
152
+ n = l;
261
153
  do
262
- n = (n - 1 + m.length) % m.length;
263
- while (d.current.has(m[n]) && n !== g);
264
- } else if (t.key === "Home")
265
- n = m.findIndex((p) => !d.current.has(p));
266
- else if (t.key === "End") {
267
- for (let p = m.length - 1; p >= 0; p--)
268
- if (!d.current.has(m[p])) {
269
- n = p;
154
+ n = (n - 1 + s.length) % s.length;
155
+ while (c.current.has(s[n]) && n !== l);
156
+ } else if (i.key === "Home")
157
+ n = s.findIndex((u) => !c.current.has(u));
158
+ else if (i.key === "End") {
159
+ for (let u = s.length - 1; u >= 0; u--)
160
+ if (!c.current.has(s[u])) {
161
+ n = u;
270
162
  break;
271
163
  }
272
164
  }
273
165
  if (n !== null && n !== -1) {
274
- t.preventDefault();
275
- const p = m[n];
276
- h(p);
277
- const E = document.getElementById(I(N, "tab", p));
278
- E == null || E.focus();
166
+ i.preventDefault();
167
+ const u = s[n];
168
+ x(u);
169
+ const k = document.getElementById(N(y, "tab", u));
170
+ k == null || k.focus();
279
171
  }
280
172
  };
281
- return /* @__PURE__ */ L(
173
+ return /* @__PURE__ */ E(
282
174
  "button",
283
175
  {
284
176
  ref: A,
285
177
  type: "button",
286
178
  role: "tab",
287
- id: I(N, "tab", e),
288
- "aria-selected": c,
289
- "aria-disabled": a || void 0,
290
- disabled: a,
291
- "data-selected": c || void 0,
292
- "data-disabled": a || void 0,
293
- tabIndex: c && !a ? 0 : -1,
294
- className: b(
295
- q({ variant: v, orientation: x, size: T, selected: c }),
296
- s
179
+ id: N(y, "tab", e),
180
+ "aria-selected": f,
181
+ "aria-disabled": t || void 0,
182
+ disabled: t,
183
+ "data-selected": f || void 0,
184
+ "data-disabled": t || void 0,
185
+ tabIndex: f && !t ? 0 : -1,
186
+ className: p(
187
+ H({ orientation: h, selected: f }),
188
+ o
297
189
  ),
298
- onClick: (t) => {
299
- l == null || l(t), a || h(e);
190
+ onClick: (i) => {
191
+ d == null || d(i), t || x(e);
300
192
  },
301
- onKeyDown: V,
193
+ onKeyDown: I,
302
194
  ...R,
303
195
  children: [
304
- c && v === "primary" && /* @__PURE__ */ f(
305
- P.span,
196
+ f && /* @__PURE__ */ m(
197
+ M.span,
306
198
  {
307
- layoutId: y,
199
+ layoutId: w,
308
200
  "aria-hidden": !0,
309
- transition: S,
310
- className: "absolute inset-0 rounded-[inherit] bg-elevated shadow-elevation"
311
- }
312
- ),
313
- c && v === "secondary" && /* @__PURE__ */ f(
314
- P.span,
315
- {
316
- layoutId: y,
317
- "aria-hidden": !0,
318
- transition: S,
319
- className: b(
320
- "absolute bg-brand",
321
- x === "horizontal" ? "left-0 right-0 bottom-0 h-0.5" : "top-0 bottom-0 right-0 w-0.5"
201
+ transition: U,
202
+ className: p(
203
+ "absolute bg-action-primary",
204
+ h === "horizontal" ? "left-0 right-0 bottom-0 h-0.5" : "top-0 bottom-0 right-0 w-0.5"
322
205
  )
323
206
  }
324
207
  ),
325
- /* @__PURE__ */ L("span", { className: "relative inline-flex items-center gap-1", children: [
326
- o,
327
- i != null && /* @__PURE__ */ L(
328
- "span",
329
- {
330
- className: b(
331
- "tabular-nums",
332
- c && v === "pill" ? "text-background/70" : "text-secondary"
333
- ),
334
- children: [
335
- "· ",
336
- i
337
- ]
338
- }
339
- )
208
+ /* @__PURE__ */ E("span", { className: "relative inline-flex items-center gap-1", children: [
209
+ g,
210
+ a != null && /* @__PURE__ */ E("span", { className: "tabular-nums text-muted-foreground", children: [
211
+ "· ",
212
+ a
213
+ ] })
340
214
  ] })
341
215
  ]
342
216
  }
343
217
  );
344
218
  }
345
219
  );
346
- F.displayName = "Tab";
347
- const G = r.forwardRef(
348
- ({ className: s, ...e }, a) => {
349
- const { orientation: i, variant: o } = j("TabSeparator");
350
- return o === "primary" ? /* @__PURE__ */ f(
351
- "span",
352
- {
353
- ref: a,
354
- "aria-hidden": !0,
355
- role: "separator",
356
- className: b("shrink-0", s),
357
- ...e
358
- }
359
- ) : /* @__PURE__ */ f(
220
+ O.displayName = "Tab";
221
+ const q = r.forwardRef(
222
+ ({ className: o, ...e }, t) => {
223
+ const { orientation: a } = z("TabSeparator");
224
+ return /* @__PURE__ */ m(
360
225
  "span",
361
226
  {
362
- ref: a,
227
+ ref: t,
363
228
  "aria-hidden": !0,
364
229
  role: "separator",
365
- className: b(
230
+ className: p(
366
231
  "shrink-0 bg-border",
367
- i === "horizontal" ? "mx-1 h-4 w-px" : "my-1 h-px w-full",
368
- s
232
+ a === "horizontal" ? "mx-1 h-4 w-px" : "my-1 h-px w-full",
233
+ o
369
234
  ),
370
235
  ...e
371
236
  }
372
237
  );
373
238
  }
374
239
  );
375
- G.displayName = "TabSeparator";
376
- const J = r.forwardRef(
377
- ({ className: s, value: e, children: a, ...i }, o) => {
378
- const { value: l, baseId: u } = j("TabPanel");
379
- return l !== e ? null : /* @__PURE__ */ f(
240
+ q.displayName = "TabSeparator";
241
+ const F = r.forwardRef(
242
+ ({ className: o, value: e, children: t, ...a }, g) => {
243
+ const { value: d, baseId: b } = z("TabPanel");
244
+ return d !== e ? null : /* @__PURE__ */ m(
380
245
  "div",
381
246
  {
382
- ref: o,
247
+ ref: g,
383
248
  role: "tabpanel",
384
- id: I(u, "panel", e),
385
- "aria-labelledby": I(u, "tab", e),
249
+ id: N(b, "panel", e),
250
+ "aria-labelledby": N(b, "tab", e),
386
251
  tabIndex: 0,
387
- className: b(
252
+ className: p(
388
253
  "flex-1 outline-none focus-visible:ring-3 focus-visible:ring-ring rounded-sm",
389
- s
254
+ o
390
255
  ),
391
- ...i,
392
- children: a
256
+ ...a,
257
+ children: t
393
258
  }
394
259
  );
395
260
  }
396
261
  );
397
- J.displayName = "TabPanel";
262
+ F.displayName = "TabPanel";
398
263
  export {
399
- F as Tab,
400
- _ as TabList,
401
- J as TabPanel,
402
- G as TabSeparator,
403
- H as Tabs
264
+ O as Tab,
265
+ B as TabList,
266
+ F as TabPanel,
267
+ q as TabSeparator,
268
+ _ as Tabs
404
269
  };
@@ -1,21 +1,21 @@
1
1
  "use client";
2
2
  import { jsx as i } from "react/jsx-runtime";
3
3
  import * as o from "react";
4
- import { cn as s } from "../lib/cn.js";
5
- import { inputBaseClass as m } from "./field.js";
4
+ import { cn as m } from "../lib/cn.js";
5
+ import { inputBaseClass as s } from "./field.js";
6
6
  const n = o.forwardRef(
7
- ({ className: e, isInvalid: r, ...a }, t) => /* @__PURE__ */ i(
7
+ ({ className: r, isInvalid: a, ...e }, t) => /* @__PURE__ */ i(
8
8
  "textarea",
9
9
  {
10
10
  ref: t,
11
- "aria-invalid": r || void 0,
12
- className: s(
13
- m,
11
+ "aria-invalid": a || void 0,
12
+ className: m(
13
+ s,
14
14
  // Multi-line controls use the 4px surface radius.
15
- "min-h-20 resize-y rounded-lg py-2 text-xs",
16
- e
15
+ "min-h-20 resize-y rounded-lg py-2",
16
+ r
17
17
  ),
18
- ...a
18
+ ...e
19
19
  }
20
20
  )
21
21
  );
@@ -35,7 +35,7 @@ export interface ToastOptions {
35
35
  indicator?: React.ReactNode;
36
36
  /** Trailing action button. */
37
37
  actionProps?: ToastActionProps;
38
- /** Auto-dismiss after N ms. 0 = persistent. Default 5000 (0 when loading). */
38
+ /** Auto-dismiss after N ms. Timed toasts show a countdown that pauses on hover. 0 = persistent. Default 5000 (0 when loading). */
39
39
  timeout?: number;
40
40
  /** Legacy alias for `timeout`. */
41
41
  duration?: number;