@actioneer/ads 0.5.3 → 0.5.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.
- package/components/accordion.js +15 -15
- package/components/agent-icon.d.ts +64 -0
- package/components/agent-icon.js +251 -0
- package/components/ai-elements/agent-trace.d.ts +8 -1
- package/components/ai-elements/agent-trace.js +164 -129
- package/components/ai-elements/chain-of-thought-icon.d.ts +42 -0
- package/components/ai-elements/chain-of-thought-icon.js +283 -0
- package/components/ai-elements/chain-of-thought.js +7 -7
- package/components/ai-elements/chart.js +38 -35
- package/components/ai-elements/index.d.ts +1 -0
- package/components/ai-elements/inline-citation.js +40 -40
- package/components/ai-elements/message.js +5 -5
- package/components/ai-elements/queue.js +1 -1
- package/components/ai-elements/research-activity.d.ts +2 -0
- package/components/ai-elements/research-activity.js +79 -81
- package/components/ai-elements/task-progress.js +2 -2
- package/components/ai-elements/tool.d.ts +4 -2
- package/components/ai-elements/tool.js +74 -54
- package/components/ai-elements/transcript.js +1 -1
- package/components/alert.js +1 -1
- package/components/answer.d.ts +2643 -311
- package/components/answer.js +1836 -425
- package/components/assistant-ui/answer-tool-ui.js +23 -28
- package/components/assistant-ui/chain-of-thought.d.ts +7 -2
- package/components/assistant-ui/composer-harness.js +20 -16
- package/components/assistant-ui/reasoning.js +35 -31
- package/components/assistant-ui/tool-fallback.js +125 -122
- package/components/assistant-ui/tool-group.d.ts +3 -1
- package/components/assistant-ui/tool-group.js +48 -43
- package/components/audio-waveform.js +14 -14
- package/components/autocomplete.js +52 -48
- package/components/avatar.js +58 -44
- package/components/badge.js +3 -3
- package/components/brand-texture.js +1 -1
- package/components/breadcrumbs.d.ts +27 -1
- package/components/breadcrumbs.js +94 -42
- package/components/button.js +15 -15
- package/components/carousel.js +10 -10
- package/components/chart.d.ts +14 -0
- package/components/chart.js +747 -614
- package/components/chip.js +3 -3
- package/components/code-block.d.ts +39 -17
- package/components/code-block.js +153 -104
- package/components/command-palette.js +27 -25
- package/components/connector-card.js +2 -2
- package/components/dropdown.js +65 -61
- package/components/empty-state.js +15 -15
- package/components/field.js +23 -23
- package/components/index.d.ts +5 -0
- package/components/index.js +523 -470
- package/components/infinite-canvas.js +60 -60
- package/components/kbd.js +6 -6
- package/components/link.js +6 -6
- package/components/modal.js +22 -20
- package/components/page-header.js +1 -1
- package/components/pagination.js +22 -22
- package/components/pixel-blast-svg.js +1 -1
- package/components/pixel-icon.d.ts +31 -0
- package/components/pixel-icon.js +733 -0
- package/components/popover.js +46 -42
- package/components/ripple.d.ts +29 -0
- package/components/ripple.js +17 -0
- package/components/segmented.js +24 -23
- package/components/select.js +71 -67
- package/components/selection-action-bar.js +22 -22
- package/components/sidebar.d.ts +11 -3
- package/components/sidebar.js +161 -148
- package/components/stepper.d.ts +2 -0
- package/components/stepper.js +80 -43
- package/components/table.d.ts +7 -0
- package/components/table.js +223 -155
- package/components/tabs.d.ts +3 -1
- package/components/tabs.js +165 -144
- package/components/textarea.js +10 -8
- package/components/toast.js +48 -46
- package/components/tooltip.js +61 -59
- package/components/tree.js +44 -41
- package/components/typography.d.ts +1 -1
- package/components/typography.js +25 -25
- package/components/viz-charts.d.ts +62 -0
- package/components/viz-charts.js +408 -0
- package/fonts/aribau-grotesk-500.otf +0 -0
- package/fonts/aribau-grotesk-600.woff2 +0 -0
- package/fonts.css +6 -4
- package/lib/icons.d.ts +411 -402
- package/lib/icons.js +109 -107
- package/lib/viz-format.d.ts +25 -0
- package/lib/viz-format.js +40 -0
- package/llms.txt +111 -8
- package/manifest.json +1096 -58
- package/package.json +5 -5
- package/styles.css +226 -96
- package/theme.css +220 -92
- package/fonts/aribau-grotesk-400.otf +0 -0
- package/fonts/aribau-grotesk-700.otf +0 -0
|
@@ -1,70 +1,122 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { jsx as e,
|
|
3
|
-
import * as
|
|
4
|
-
import {
|
|
5
|
-
import { cn as
|
|
6
|
-
const
|
|
2
|
+
import { jsxs as v, jsx as e, Fragment as k } from "react/jsx-runtime";
|
|
3
|
+
import * as t from "react";
|
|
4
|
+
import { ArrowLeft as B } from "../lib/icons.js";
|
|
5
|
+
import { cn as a } from "../lib/cn.js";
|
|
6
|
+
const N = t.createContext({
|
|
7
7
|
count: 0
|
|
8
|
-
}),
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
8
|
+
}), w = t.createContext(0);
|
|
9
|
+
function R(s) {
|
|
10
|
+
let n = (s == null ? void 0 : s.parentElement) ?? null;
|
|
11
|
+
for (; n; ) {
|
|
12
|
+
const r = getComputedStyle(n).overflowY;
|
|
13
|
+
if (r === "auto" || r === "scroll") return n;
|
|
14
|
+
n = n.parentElement;
|
|
15
|
+
}
|
|
16
|
+
return null;
|
|
17
|
+
}
|
|
18
|
+
const y = t.forwardRef(
|
|
19
|
+
({
|
|
20
|
+
className: s,
|
|
21
|
+
children: n,
|
|
22
|
+
sticky: r,
|
|
23
|
+
onBack: c,
|
|
24
|
+
backLabel: g = "Back",
|
|
25
|
+
actions: m,
|
|
26
|
+
meta: f,
|
|
27
|
+
...p
|
|
28
|
+
}, i) => {
|
|
29
|
+
const b = t.Children.toArray(n), l = t.useRef(null), u = t.useCallback(
|
|
30
|
+
(o) => {
|
|
31
|
+
l.current = o, typeof i == "function" ? i(o) : i && (i.current = o);
|
|
32
|
+
},
|
|
33
|
+
[i]
|
|
34
|
+
), [x, C] = t.useState(!1);
|
|
35
|
+
return t.useEffect(() => {
|
|
36
|
+
if (!r) return;
|
|
37
|
+
const o = R(l.current), d = o ?? window, h = () => C((o ? o.scrollTop : window.scrollY) > 2);
|
|
38
|
+
return h(), d.addEventListener("scroll", h, { passive: !0 }), () => d.removeEventListener("scroll", h);
|
|
39
|
+
}, [r]), /* @__PURE__ */ v(
|
|
12
40
|
"nav",
|
|
13
41
|
{
|
|
14
|
-
ref:
|
|
42
|
+
ref: u,
|
|
15
43
|
"aria-label": "Breadcrumb",
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
44
|
+
"data-stuck": r ? x ? "true" : "false" : void 0,
|
|
45
|
+
className: a(
|
|
46
|
+
"flex w-full items-center",
|
|
47
|
+
r && "sticky top-0 z-40 bg-background transition-[border-color] duration-(--duration-fast) ease-out motion-reduce:transition-none",
|
|
48
|
+
// Sticky offsets resolve against the scrollport's PADDING box, so in
|
|
49
|
+
// a padded panel the pinned trail sits below a strip the content
|
|
50
|
+
// would otherwise scroll through. This cover extends the trail's own
|
|
51
|
+
// background over that gap (a no-op at rest, where the strip is the
|
|
52
|
+
// panel's empty padding).
|
|
53
|
+
r && "before:absolute before:inset-x-0 before:-top-8 before:h-8 before:bg-inherit before:content-['']",
|
|
54
|
+
r && (x ? "border-b border-border" : "border-b border-transparent"),
|
|
55
|
+
s
|
|
19
56
|
),
|
|
20
|
-
...
|
|
21
|
-
children:
|
|
57
|
+
...p,
|
|
58
|
+
children: [
|
|
59
|
+
c && /* @__PURE__ */ e(
|
|
60
|
+
"button",
|
|
61
|
+
{
|
|
62
|
+
type: "button",
|
|
63
|
+
onClick: c,
|
|
64
|
+
"aria-label": g,
|
|
65
|
+
className: a(
|
|
66
|
+
"mr-1 inline-flex size-6 shrink-0 items-center justify-center rounded-md text-muted-foreground",
|
|
67
|
+
"transition-colors hover:bg-fill hover:text-foreground",
|
|
68
|
+
"outline-none focus-visible:ring-3 focus-visible:ring-ring [&_svg]:size-4"
|
|
69
|
+
),
|
|
70
|
+
children: /* @__PURE__ */ e(B, { "aria-hidden": !0 })
|
|
71
|
+
}
|
|
72
|
+
),
|
|
73
|
+
/* @__PURE__ */ e("ol", { className: "flex min-w-0 items-center gap-1.5 text-base", children: /* @__PURE__ */ e(N.Provider, { value: { count: b.length }, children: b.map((o, d) => /* @__PURE__ */ e(w.Provider, { value: d, children: o }, d)) }) }),
|
|
74
|
+
f && /* @__PURE__ */ e("div", { className: "ml-4 flex min-w-0 shrink items-center gap-3 text-xs text-muted-foreground", children: f }),
|
|
75
|
+
m && /* @__PURE__ */ e("div", { className: "ml-auto flex shrink-0 items-center gap-2 pl-4", children: m })
|
|
76
|
+
]
|
|
22
77
|
}
|
|
23
78
|
);
|
|
24
79
|
}
|
|
25
80
|
);
|
|
26
|
-
|
|
27
|
-
const
|
|
28
|
-
const { count:
|
|
81
|
+
y.displayName = "Breadcrumbs";
|
|
82
|
+
const E = t.forwardRef(({ className: s, href: n, isCurrent: r, icon: c, children: g, ...m }, f) => {
|
|
83
|
+
const { count: p } = t.useContext(N), b = t.useContext(w) === p - 1, l = "inline-flex items-center gap-1.5", u = /* @__PURE__ */ v(k, { children: [
|
|
84
|
+
c && /* @__PURE__ */ e("span", { "aria-hidden": !0, className: "flex shrink-0 items-center [&_svg]:size-4", children: c }),
|
|
85
|
+
g
|
|
86
|
+
] }), x = r ? /* @__PURE__ */ e(
|
|
29
87
|
"span",
|
|
30
88
|
{
|
|
31
89
|
"aria-current": "page",
|
|
32
|
-
className:
|
|
33
|
-
children:
|
|
90
|
+
className: a(l, "font-normal text-primary"),
|
|
91
|
+
children: u
|
|
34
92
|
}
|
|
35
|
-
) :
|
|
93
|
+
) : n ? /* @__PURE__ */ e(
|
|
36
94
|
"a",
|
|
37
95
|
{
|
|
38
|
-
href:
|
|
39
|
-
className:
|
|
40
|
-
|
|
41
|
-
"font-
|
|
96
|
+
href: n,
|
|
97
|
+
className: a(
|
|
98
|
+
l,
|
|
99
|
+
"font-normal text-muted-foreground transition-colors hover:text-foreground",
|
|
42
100
|
"outline-none focus-visible:ring-3 focus-visible:ring-ring rounded-sm"
|
|
43
101
|
),
|
|
44
|
-
children:
|
|
102
|
+
children: u
|
|
45
103
|
}
|
|
46
|
-
) : /* @__PURE__ */ e("span", { className:
|
|
47
|
-
return /* @__PURE__ */
|
|
104
|
+
) : /* @__PURE__ */ e("span", { className: a(l, "text-muted-foreground"), children: u });
|
|
105
|
+
return /* @__PURE__ */ v(
|
|
48
106
|
"li",
|
|
49
107
|
{
|
|
50
|
-
ref:
|
|
51
|
-
className:
|
|
52
|
-
...
|
|
108
|
+
ref: f,
|
|
109
|
+
className: a("flex items-center gap-1.5", s),
|
|
110
|
+
...m,
|
|
53
111
|
children: [
|
|
54
|
-
|
|
55
|
-
!
|
|
56
|
-
g,
|
|
57
|
-
{
|
|
58
|
-
"aria-hidden": !0,
|
|
59
|
-
className: "size-3.5 shrink-0 text-border-strong"
|
|
60
|
-
}
|
|
61
|
-
)
|
|
112
|
+
x,
|
|
113
|
+
!b && /* @__PURE__ */ e("span", { "aria-hidden": !0, className: "shrink-0 select-none text-border-strong", children: "/" })
|
|
62
114
|
]
|
|
63
115
|
}
|
|
64
116
|
);
|
|
65
117
|
});
|
|
66
|
-
|
|
118
|
+
E.displayName = "BreadcrumbItem";
|
|
67
119
|
export {
|
|
68
|
-
|
|
69
|
-
|
|
120
|
+
E as BreadcrumbItem,
|
|
121
|
+
y as Breadcrumbs
|
|
70
122
|
};
|
package/components/button.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { jsxs as r, jsx as
|
|
2
|
+
import { jsxs as r, jsx as b } from "react/jsx-runtime";
|
|
3
3
|
import * as c from "react";
|
|
4
4
|
import { cva as v } from "class-variance-authority";
|
|
5
|
-
import { cn as
|
|
5
|
+
import { cn as n } from "../lib/cn.js";
|
|
6
6
|
import { Spinner as m } from "./spinner.js";
|
|
7
7
|
const p = v(
|
|
8
8
|
[
|
|
9
9
|
"relative inline-flex items-center justify-center gap-2 whitespace-nowrap",
|
|
10
|
-
"font-
|
|
10
|
+
"font-normal select-none",
|
|
11
11
|
"rounded-md border border-transparent",
|
|
12
12
|
"transition-[background,border,color,box-shadow,transform] duration-(--duration-fast) ease-out",
|
|
13
13
|
"outline-none focus-visible:ring-3 focus-visible:ring-ring",
|
|
@@ -33,17 +33,17 @@ const p = v(
|
|
|
33
33
|
sm: "h-8 px-3 text-xs [&_svg]:size-4",
|
|
34
34
|
md: "h-10 px-4 text-xs [&_svg]:size-4",
|
|
35
35
|
lg: "h-11 px-5 text-base [&_svg]:size-5",
|
|
36
|
-
icon: "size-10 [&_svg]:size-4",
|
|
37
|
-
"icon-sm": "size-8 [&_svg]:size-4",
|
|
38
|
-
"icon-xs": "size-7 [&_svg]:size-4"
|
|
36
|
+
icon: "size-10 rounded-full [&_svg]:size-4",
|
|
37
|
+
"icon-sm": "size-8 rounded-full [&_svg]:size-4",
|
|
38
|
+
"icon-xs": "size-7 rounded-full [&_svg]:size-4"
|
|
39
39
|
}
|
|
40
40
|
},
|
|
41
41
|
defaultVariants: { variant: "solid", size: "md" }
|
|
42
42
|
}
|
|
43
43
|
), x = c.forwardRef(
|
|
44
44
|
({
|
|
45
|
-
className:
|
|
46
|
-
variant:
|
|
45
|
+
className: o,
|
|
46
|
+
variant: t,
|
|
47
47
|
size: s,
|
|
48
48
|
isLoading: e = !1,
|
|
49
49
|
startContent: i,
|
|
@@ -51,23 +51,23 @@ const p = v(
|
|
|
51
51
|
fullWidth: d,
|
|
52
52
|
disabled: l,
|
|
53
53
|
children: g,
|
|
54
|
-
...
|
|
54
|
+
...u
|
|
55
55
|
}, f) => /* @__PURE__ */ r(
|
|
56
56
|
"button",
|
|
57
57
|
{
|
|
58
58
|
ref: f,
|
|
59
59
|
disabled: l || e,
|
|
60
60
|
"aria-busy": e || void 0,
|
|
61
|
-
className:
|
|
62
|
-
p({ variant:
|
|
61
|
+
className: n(
|
|
62
|
+
p({ variant: t, size: s }),
|
|
63
63
|
d && "w-full",
|
|
64
64
|
// Real disabled fades; loading keeps the brand color
|
|
65
65
|
e ? "opacity-100" : "disabled:opacity-50",
|
|
66
|
-
|
|
66
|
+
o
|
|
67
67
|
),
|
|
68
|
-
...
|
|
68
|
+
...u,
|
|
69
69
|
children: [
|
|
70
|
-
e && /* @__PURE__ */
|
|
70
|
+
e && /* @__PURE__ */ b(
|
|
71
71
|
m,
|
|
72
72
|
{
|
|
73
73
|
size: "sm",
|
|
@@ -78,7 +78,7 @@ const p = v(
|
|
|
78
78
|
/* @__PURE__ */ r(
|
|
79
79
|
"span",
|
|
80
80
|
{
|
|
81
|
-
className:
|
|
81
|
+
className: n(
|
|
82
82
|
"inline-flex items-center gap-2",
|
|
83
83
|
e && "opacity-0"
|
|
84
84
|
),
|
package/components/carousel.js
CHANGED
|
@@ -6,7 +6,7 @@ import { Button as D } from "./button.js";
|
|
|
6
6
|
import { ChevronLeft as H, ChevronRight as X } from "../lib/icons.js";
|
|
7
7
|
import { cn as S } from "../lib/cn.js";
|
|
8
8
|
const q = t.createContext(null);
|
|
9
|
-
function
|
|
9
|
+
function T(l) {
|
|
10
10
|
const i = t.useContext(q);
|
|
11
11
|
if (!i)
|
|
12
12
|
throw new Error(`<${l}> must be used within <Carousel>`);
|
|
@@ -58,7 +58,7 @@ const B = W(
|
|
|
58
58
|
const s = requestAnimationFrame(() => R(!0));
|
|
59
59
|
return () => cancelAnimationFrame(s);
|
|
60
60
|
}, [g, P]);
|
|
61
|
-
const
|
|
61
|
+
const k = t.useMemo(
|
|
62
62
|
() => ({
|
|
63
63
|
index: g,
|
|
64
64
|
count: h,
|
|
@@ -84,7 +84,7 @@ const B = W(
|
|
|
84
84
|
), z = (s) => {
|
|
85
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
86
|
};
|
|
87
|
-
return /* @__PURE__ */ C(q.Provider, { value:
|
|
87
|
+
return /* @__PURE__ */ C(q.Provider, { value: k, children: /* @__PURE__ */ V(
|
|
88
88
|
"div",
|
|
89
89
|
{
|
|
90
90
|
ref: u,
|
|
@@ -122,7 +122,7 @@ const O = 40, Y = 10, J = 0.11, Q = t.forwardRef(
|
|
|
122
122
|
setCount: u,
|
|
123
123
|
goPrevious: a,
|
|
124
124
|
goNext: n
|
|
125
|
-
} =
|
|
125
|
+
} = T("CarouselContent"), y = t.Children.toArray(i), h = t.useRef(null), v = t.useRef(!1);
|
|
126
126
|
t.useEffect(() => {
|
|
127
127
|
u(y.length);
|
|
128
128
|
}, [y.length, u]);
|
|
@@ -138,8 +138,8 @@ const O = 40, Y = 10, J = 0.11, Q = t.forwardRef(
|
|
|
138
138
|
f == null || f(e);
|
|
139
139
|
const c = h.current;
|
|
140
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),
|
|
142
|
-
(Math.abs(A) >= O || Math.abs(A) >= Y &&
|
|
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());
|
|
143
143
|
}, j = (e) => {
|
|
144
144
|
o == null || o(e), h.current = null, R(e);
|
|
145
145
|
}, g = (e) => {
|
|
@@ -223,7 +223,7 @@ const K = t.forwardRef(
|
|
|
223
223
|
"aria-label": f,
|
|
224
224
|
...o
|
|
225
225
|
}, b) => {
|
|
226
|
-
const { index: p, count: m, contentId: r, goTo: x } =
|
|
226
|
+
const { index: p, count: m, contentId: r, goTo: x } = T("CarouselIndicators"), I = t.useRef([]);
|
|
227
227
|
if (m <= 1) return null;
|
|
228
228
|
const N = (u) => {
|
|
229
229
|
var n;
|
|
@@ -265,7 +265,7 @@ const K = t.forwardRef(
|
|
|
265
265
|
"aria-hidden": !0,
|
|
266
266
|
className: S(
|
|
267
267
|
"size-2.5 rounded-dot transition-colors duration-(--duration-fast) ease-out motion-reduce:transition-none",
|
|
268
|
-
n ? "bg-brand" : "bg-
|
|
268
|
+
n ? "bg-brand" : "bg-fill group-hover:bg-muted"
|
|
269
269
|
)
|
|
270
270
|
}
|
|
271
271
|
)
|
|
@@ -288,7 +288,7 @@ const U = t.forwardRef(
|
|
|
288
288
|
"aria-label": b,
|
|
289
289
|
...p
|
|
290
290
|
}, m) => {
|
|
291
|
-
const { index: r, count: x, loop: I, contentId: N, goPrevious: u } =
|
|
291
|
+
const { index: r, count: x, loop: I, contentId: N, goPrevious: u } = T("CarouselPrevious"), a = f || x <= 1 || !I && r === 0;
|
|
292
292
|
return /* @__PURE__ */ C(
|
|
293
293
|
D,
|
|
294
294
|
{
|
|
@@ -319,7 +319,7 @@ const ee = t.forwardRef(
|
|
|
319
319
|
"aria-label": b,
|
|
320
320
|
...p
|
|
321
321
|
}, m) => {
|
|
322
|
-
const { index: r, count: x, loop: I, contentId: N, goNext: u } =
|
|
322
|
+
const { index: r, count: x, loop: I, contentId: N, goNext: u } = T("CarouselNext"), a = f || x <= 1 || !I && r === x - 1;
|
|
323
323
|
return /* @__PURE__ */ C(
|
|
324
324
|
D,
|
|
325
325
|
{
|
package/components/chart.d.ts
CHANGED
|
@@ -78,6 +78,7 @@ interface BaseChartProps {
|
|
|
78
78
|
annotations?: ChartAnnotation[];
|
|
79
79
|
/** Plot height in px (the frame is fluid-width). */
|
|
80
80
|
height?: number;
|
|
81
|
+
/** Interior gridlines. OFF by default — the two axis lines carry the frame. */
|
|
81
82
|
grid?: boolean;
|
|
82
83
|
/** Defaults to on when there is more than one series. */
|
|
83
84
|
legend?: boolean;
|
|
@@ -99,17 +100,27 @@ export interface LineChartProps extends BaseChartProps {
|
|
|
99
100
|
curve?: "linear" | "natural" | "step";
|
|
100
101
|
/** Series keys that render dashed — projections, not observations. */
|
|
101
102
|
forecastKeys?: string[];
|
|
103
|
+
/**
|
|
104
|
+
* Print each observation's value above its dot. On by default for a SINGLE
|
|
105
|
+
* series (the reader shouldn't have to hover to read a number that fits);
|
|
106
|
+
* off once there are several, where the labels would collide.
|
|
107
|
+
*/
|
|
108
|
+
showValues?: boolean;
|
|
102
109
|
}
|
|
103
110
|
export interface AreaChartProps extends BaseChartProps {
|
|
104
111
|
curve?: "linear" | "natural" | "step";
|
|
105
112
|
stacked?: boolean;
|
|
106
113
|
/** Series keys that render dashed — projections, not observations. */
|
|
107
114
|
forecastKeys?: string[];
|
|
115
|
+
/** Print each observation's value above its dot — see {@link LineChartProps.showValues}. */
|
|
116
|
+
showValues?: boolean;
|
|
108
117
|
}
|
|
109
118
|
export interface BarChartProps extends BaseChartProps {
|
|
110
119
|
stacked?: boolean;
|
|
111
120
|
/** Visual bar direction: vertical columns (default) or horizontal bars. */
|
|
112
121
|
layout?: "vertical" | "horizontal";
|
|
122
|
+
/** Print each bar's value past its end. On by default for a single series. */
|
|
123
|
+
showValues?: boolean;
|
|
113
124
|
}
|
|
114
125
|
export interface ComboChartProps extends BaseChartProps {
|
|
115
126
|
/** Series keys drawn as lines; the rest draw as bars. */
|
|
@@ -183,6 +194,7 @@ export interface ScatterChartProps {
|
|
|
183
194
|
labelKey?: string;
|
|
184
195
|
annotations?: ChartAnnotation[];
|
|
185
196
|
height?: number;
|
|
197
|
+
/** Interior gridlines. OFF by default — the two axis lines carry the frame. */
|
|
186
198
|
grid?: boolean;
|
|
187
199
|
showYAxis?: boolean;
|
|
188
200
|
formatValue?: (value: number) => string;
|
|
@@ -212,6 +224,8 @@ export interface FunnelChartProps {
|
|
|
212
224
|
tooltip?: ChartTooltipRenderer | false;
|
|
213
225
|
className?: string;
|
|
214
226
|
}
|
|
227
|
+
/** Chart floor — every chart is at least this tall (ChartFrame clamps). */
|
|
228
|
+
export declare const MIN_HEIGHT = 300;
|
|
215
229
|
export declare const LineChart: React.ForwardRefExoticComponent<LineChartProps & React.RefAttributes<HTMLDivElement>>;
|
|
216
230
|
export declare const AreaChart: React.ForwardRefExoticComponent<AreaChartProps & React.RefAttributes<HTMLDivElement>>;
|
|
217
231
|
export declare const BarChart: React.ForwardRefExoticComponent<BarChartProps & React.RefAttributes<HTMLDivElement>>;
|