@actioneer/ads 1.0.9 → 1.0.10
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/DESIGN.md +98 -57
- package/README.md +19 -7
- package/components/answer.js +1 -1
- package/components/assistant-ui/composer-harness.js +13 -10
- package/components/body-page-header.d.ts +9 -4
- package/components/body-page-header.js +10 -10
- package/components/breadcrumbs.js +22 -22
- package/components/card.js +18 -18
- package/components/chart.d.ts +9 -0
- package/components/chart.js +738 -717
- package/components/chip.js +12 -12
- package/components/collection-header.js +4 -4
- package/components/connector-card.js +30 -30
- package/components/date-range-picker.js +1 -1
- package/components/detail-list.d.ts +28 -0
- package/components/detail-list.js +52 -0
- package/components/drawer.d.ts +38 -15
- package/components/drawer.js +150 -86
- package/components/empty-state.d.ts +3 -2
- package/components/empty-state.js +22 -22
- package/components/field.d.ts +16 -0
- package/components/field.js +63 -42
- package/components/file-dropzone.d.ts +15 -4
- package/components/file-dropzone.js +100 -64
- package/components/filter-bar.d.ts +44 -0
- package/components/filter-bar.js +89 -0
- package/components/index.d.ts +3 -0
- package/components/index.js +526 -513
- package/components/input-field.d.ts +1 -1
- package/components/input-field.js +24 -22
- package/components/modal.js +56 -53
- package/components/panel.js +26 -27
- package/components/sidebar.js +54 -54
- package/components/sparkline.d.ts +30 -0
- package/components/sparkline.js +69 -0
- package/demo/components/add-to-artifact.js +5 -2
- package/examples/README.md +4 -2
- package/examples/call-logs-screen.tsx +381 -0
- package/examples/campaign-analysis-screen.tsx +114 -72
- package/examples/campaigns-screen.tsx +218 -160
- package/examples/guardrails-settings-screen.tsx +123 -0
- package/fonts/geist-variable.woff2 +0 -0
- package/fonts.css +12 -17
- package/lib/icons.js +3 -3
- package/llms.txt +107 -39
- package/manifest.json +3100 -892
- package/package.json +1 -1
- package/styles.css +102 -59
- package/theme.css +81 -37
- package/fonts/aribau-grotesk-medium.woff2 +0 -0
- package/fonts/aribau-grotesk-regular.woff2 +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { jsxs as
|
|
2
|
+
import { jsxs as b, jsx as t, Fragment as k } from "react/jsx-runtime";
|
|
3
3
|
import * as r from "react";
|
|
4
4
|
import { cn as d } from "../lib/cn.js";
|
|
5
5
|
const N = r.createContext({
|
|
@@ -15,23 +15,23 @@ function B(a) {
|
|
|
15
15
|
return null;
|
|
16
16
|
}
|
|
17
17
|
const C = r.forwardRef(
|
|
18
|
-
({ className: a, children: n, sticky: e, actions: i, center: c, meta: f, ...
|
|
19
|
-
const
|
|
18
|
+
({ className: a, children: n, sticky: e, actions: i, center: c, meta: f, ...h }, o) => {
|
|
19
|
+
const p = r.Children.toArray(n), x = r.useRef(null), m = r.useCallback(
|
|
20
20
|
(s) => {
|
|
21
|
-
|
|
21
|
+
x.current = s, typeof o == "function" ? o(s) : o && (o.current = s);
|
|
22
22
|
},
|
|
23
|
-
[
|
|
24
|
-
), [
|
|
23
|
+
[o]
|
|
24
|
+
), [l, g] = r.useState(!1);
|
|
25
25
|
return r.useEffect(() => {
|
|
26
26
|
if (!e) return;
|
|
27
|
-
const s = B(
|
|
27
|
+
const s = B(x.current), u = s ?? window, v = () => g((s ? s.scrollTop : window.scrollY) > 2);
|
|
28
28
|
return v(), u.addEventListener("scroll", v, { passive: !0 }), () => u.removeEventListener("scroll", v);
|
|
29
|
-
}, [e]), /* @__PURE__ */
|
|
29
|
+
}, [e]), /* @__PURE__ */ b(
|
|
30
30
|
"nav",
|
|
31
31
|
{
|
|
32
32
|
ref: m,
|
|
33
33
|
"aria-label": "Breadcrumb",
|
|
34
|
-
"data-stuck": e ?
|
|
34
|
+
"data-stuck": e ? l ? "true" : "false" : void 0,
|
|
35
35
|
className: d(
|
|
36
36
|
"relative flex w-full items-center",
|
|
37
37
|
e && "sticky top-0 z-40 bg-card transition-[border-color] duration-150 ease-out motion-reduce:transition-none",
|
|
@@ -41,13 +41,13 @@ const C = r.forwardRef(
|
|
|
41
41
|
// background over that gap (a no-op at rest, where the strip is the
|
|
42
42
|
// panel's empty padding).
|
|
43
43
|
e && "before:absolute before:inset-x-0 before:-top-8 before:h-8 before:bg-inherit before:content-['']",
|
|
44
|
-
e && (
|
|
44
|
+
e && (l ? "border-b border-border" : "border-b border-transparent"),
|
|
45
45
|
a
|
|
46
46
|
),
|
|
47
|
-
...
|
|
47
|
+
...h,
|
|
48
48
|
children: [
|
|
49
|
-
/* @__PURE__ */
|
|
50
|
-
/* @__PURE__ */ t("ol", { className: "flex min-w-0 shrink items-center gap-1.5 text-
|
|
49
|
+
/* @__PURE__ */ b("div", { className: "flex min-w-0 shrink items-baseline", children: [
|
|
50
|
+
/* @__PURE__ */ t("ol", { className: "flex min-w-0 shrink items-center gap-1.5 font-heading text-xl", children: /* @__PURE__ */ t(N.Provider, { value: { count: p.length }, children: p.map((s, u) => /* @__PURE__ */ t(w.Provider, { value: u, children: s }, u)) }) }),
|
|
51
51
|
f && /* @__PURE__ */ t("div", { className: "ml-3 flex shrink-0 items-baseline gap-3 text-s text-tertiary", children: f })
|
|
52
52
|
] }),
|
|
53
53
|
c && /* @__PURE__ */ t("div", { className: "absolute left-1/2 top-1/2 z-50 flex -translate-x-1/2 -translate-y-1/2 items-center", children: c }),
|
|
@@ -58,16 +58,16 @@ const C = r.forwardRef(
|
|
|
58
58
|
}
|
|
59
59
|
);
|
|
60
60
|
C.displayName = "Breadcrumbs";
|
|
61
|
-
const R = r.forwardRef(({ className: a, href: n, isCurrent: e, icon: i, children: c, ...f },
|
|
62
|
-
const { count:
|
|
61
|
+
const R = r.forwardRef(({ className: a, href: n, isCurrent: e, icon: i, children: c, ...f }, h) => {
|
|
62
|
+
const { count: o } = r.useContext(N), x = r.useContext(w) === o - 1, m = "inline-flex items-center gap-1.5", l = /* @__PURE__ */ b(k, { children: [
|
|
63
63
|
i && /* @__PURE__ */ t("span", { "aria-hidden": !0, className: "flex shrink-0 items-center [&_svg]:size-4", children: i }),
|
|
64
64
|
e ? /* @__PURE__ */ t("span", { className: "min-w-0 truncate", children: c }) : c
|
|
65
65
|
] }), g = e ? /* @__PURE__ */ t(
|
|
66
66
|
"span",
|
|
67
67
|
{
|
|
68
68
|
"aria-current": "page",
|
|
69
|
-
className: d(m, "min-w-0 text-
|
|
70
|
-
children:
|
|
69
|
+
className: d(m, "min-w-0 text-xl font-medium text-primary"),
|
|
70
|
+
children: l
|
|
71
71
|
}
|
|
72
72
|
) : n ? /* @__PURE__ */ t(
|
|
73
73
|
"a",
|
|
@@ -78,13 +78,13 @@ const R = r.forwardRef(({ className: a, href: n, isCurrent: e, icon: i, children
|
|
|
78
78
|
"font-normal text-muted-foreground transition-colors hover:text-foreground",
|
|
79
79
|
"outline-none focus-visible:ring-3 focus-visible:ring-ring rounded-sm"
|
|
80
80
|
),
|
|
81
|
-
children:
|
|
81
|
+
children: l
|
|
82
82
|
}
|
|
83
|
-
) : /* @__PURE__ */ t("span", { className: d(m, "text-muted-foreground"), children:
|
|
84
|
-
return /* @__PURE__ */
|
|
83
|
+
) : /* @__PURE__ */ t("span", { className: d(m, "text-muted-foreground"), children: l });
|
|
84
|
+
return /* @__PURE__ */ b(
|
|
85
85
|
"li",
|
|
86
86
|
{
|
|
87
|
-
ref:
|
|
87
|
+
ref: h,
|
|
88
88
|
className: d(
|
|
89
89
|
"flex items-center gap-1.5",
|
|
90
90
|
e ? "min-w-0 shrink" : "shrink-0",
|
|
@@ -93,7 +93,7 @@ const R = r.forwardRef(({ className: a, href: n, isCurrent: e, icon: i, children
|
|
|
93
93
|
...f,
|
|
94
94
|
children: [
|
|
95
95
|
g,
|
|
96
|
-
!
|
|
96
|
+
!x && /* @__PURE__ */ t("span", { "aria-hidden": !0, className: "shrink-0 select-none text-border-strong", children: "/" })
|
|
97
97
|
]
|
|
98
98
|
}
|
|
99
99
|
);
|
package/components/card.js
CHANGED
|
@@ -3,14 +3,14 @@ import { jsx as t } from "react/jsx-runtime";
|
|
|
3
3
|
import * as d from "react";
|
|
4
4
|
import { cn as o } from "../lib/cn.js";
|
|
5
5
|
const l = d.forwardRef(
|
|
6
|
-
({ className:
|
|
6
|
+
({ className: e, isHoverable: a, isPressable: r, children: s, ...n }, i) => {
|
|
7
7
|
const c = o(
|
|
8
|
-
"bg-card text-card-foreground
|
|
9
|
-
(
|
|
8
|
+
"rounded-card border border-border bg-card text-card-foreground shadow-card",
|
|
9
|
+
(r || a) && "transition-[box-shadow,transform] duration-150 ease-out motion-reduce:transition-none",
|
|
10
10
|
a && "hover:-translate-y-0.5",
|
|
11
|
-
|
|
11
|
+
e
|
|
12
12
|
);
|
|
13
|
-
return
|
|
13
|
+
return r ? /* @__PURE__ */ t(
|
|
14
14
|
"button",
|
|
15
15
|
{
|
|
16
16
|
ref: i,
|
|
@@ -29,46 +29,46 @@ const l = d.forwardRef(
|
|
|
29
29
|
}
|
|
30
30
|
);
|
|
31
31
|
l.displayName = "Card";
|
|
32
|
-
const f = d.forwardRef(({ className:
|
|
32
|
+
const f = d.forwardRef(({ className: e, ...a }, r) => /* @__PURE__ */ t(
|
|
33
33
|
"div",
|
|
34
34
|
{
|
|
35
|
-
ref:
|
|
36
|
-
className: o("flex flex-col gap-1 px-5 pt-5",
|
|
35
|
+
ref: r,
|
|
36
|
+
className: o("flex flex-col gap-1 px-5 pt-5", e),
|
|
37
37
|
...a
|
|
38
38
|
}
|
|
39
39
|
));
|
|
40
40
|
f.displayName = "CardHeader";
|
|
41
|
-
const m = d.forwardRef(({ className:
|
|
41
|
+
const m = d.forwardRef(({ className: e, ...a }, r) => /* @__PURE__ */ t(
|
|
42
42
|
"h3",
|
|
43
43
|
{
|
|
44
|
-
ref:
|
|
45
|
-
className: o("text-base font-medium leading-none",
|
|
44
|
+
ref: r,
|
|
45
|
+
className: o("text-base font-medium leading-none", e),
|
|
46
46
|
...a
|
|
47
47
|
}
|
|
48
48
|
));
|
|
49
49
|
m.displayName = "CardTitle";
|
|
50
|
-
const p = d.forwardRef(({ className:
|
|
50
|
+
const p = d.forwardRef(({ className: e, ...a }, r) => /* @__PURE__ */ t(
|
|
51
51
|
"p",
|
|
52
52
|
{
|
|
53
|
-
ref:
|
|
54
|
-
className: o("text-xs text-muted-foreground",
|
|
53
|
+
ref: r,
|
|
54
|
+
className: o("text-xs text-muted-foreground", e),
|
|
55
55
|
...a
|
|
56
56
|
}
|
|
57
57
|
));
|
|
58
58
|
p.displayName = "CardDescription";
|
|
59
|
-
const u = d.forwardRef(({ className:
|
|
59
|
+
const u = d.forwardRef(({ className: e, ...a }, r) => /* @__PURE__ */ t("div", { ref: r, className: o("px-5 py-4", e), ...a }));
|
|
60
60
|
u.displayName = "CardBody";
|
|
61
61
|
const x = d.forwardRef(
|
|
62
|
-
({ className:
|
|
62
|
+
({ className: e, withBorder: a, ...r }, s) => /* @__PURE__ */ t(
|
|
63
63
|
"div",
|
|
64
64
|
{
|
|
65
65
|
ref: s,
|
|
66
66
|
className: o(
|
|
67
67
|
"flex items-center px-5 pb-5 pt-4",
|
|
68
68
|
a && "border-t border-border",
|
|
69
|
-
|
|
69
|
+
e
|
|
70
70
|
),
|
|
71
|
-
...
|
|
71
|
+
...r
|
|
72
72
|
}
|
|
73
73
|
)
|
|
74
74
|
);
|
package/components/chart.d.ts
CHANGED
|
@@ -128,6 +128,15 @@ export interface LineChartProps extends BaseChartProps {
|
|
|
128
128
|
* labels step aside while the plot is hovered. Pass `false` to opt out.
|
|
129
129
|
*/
|
|
130
130
|
showValues?: boolean;
|
|
131
|
+
/**
|
|
132
|
+
* A soft wash under each observed line that fades from the series colour
|
|
133
|
+
* (20%) at the line down to nothing at the baseline — ON by default
|
|
134
|
+
* (user-mandated 2026-11-12, the Span trend-line look). It reads as the
|
|
135
|
+
* line's shadow, not as an area measurement: it never stacks, never takes a
|
|
136
|
+
* label or tooltip, and forecasts (dashed) stay unfilled. Pass `false` for
|
|
137
|
+
* bare lines.
|
|
138
|
+
*/
|
|
139
|
+
gradientFill?: boolean;
|
|
131
140
|
}
|
|
132
141
|
export interface AreaChartProps extends BaseChartProps {
|
|
133
142
|
curve?: "linear" | "natural" | "step";
|