@actioneer/ads 1.0.8 → 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 +125 -50
- package/README.md +31 -7
- package/components/answer.js +1 -1
- package/components/assistant-ui/composer-harness.js +14 -10
- package/components/body-page-header.d.ts +9 -4
- package/components/body-page-header.js +10 -10
- package/components/breadcrumbs.js +15 -15
- package/components/button.d.ts +16 -1
- package/components/button.js +7 -4
- package/components/card.js +18 -18
- package/components/chart.d.ts +40 -4
- package/components/chart.js +824 -628
- package/components/chip.d.ts +2 -1
- package/components/chip.js +49 -46
- 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/filters.d.ts +37 -0
- package/components/filters.js +129 -0
- package/components/index.d.ts +4 -0
- package/components/index.js +526 -510
- package/components/input-field.d.ts +1 -1
- package/components/input-field.js +24 -22
- package/components/modal.d.ts +2 -1
- package/components/modal.js +120 -106
- package/components/panel.js +26 -27
- package/components/popover.d.ts +6 -1
- package/components/popover.js +74 -64
- package/components/sidebar.d.ts +15 -0
- package/components/sidebar.js +166 -129
- package/components/sparkline.d.ts +30 -0
- package/components/sparkline.js +69 -0
- package/components/table.d.ts +8 -0
- package/components/table.js +357 -350
- package/components/tabs.d.ts +6 -1
- package/components/tabs.js +28 -31
- package/demo/components/add-to-artifact.js +6 -2
- package/examples/README.md +5 -2
- package/examples/call-logs-screen.tsx +381 -0
- package/examples/campaign-analysis-screen.tsx +180 -0
- package/examples/campaigns-screen.tsx +497 -0
- 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 +162 -30
- package/manifest.json +11604 -7878
- 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
package/components/drawer.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { jsx as i, jsxs as
|
|
3
|
-
import * as
|
|
4
|
-
import { createPortal as
|
|
5
|
-
import { MotionConfig as
|
|
6
|
-
import { Close as
|
|
7
|
-
import { cva as
|
|
2
|
+
import { jsx as i, jsxs as d, Fragment as E } from "react/jsx-runtime";
|
|
3
|
+
import * as s from "react";
|
|
4
|
+
import { createPortal as R } from "react-dom";
|
|
5
|
+
import { MotionConfig as N, AnimatePresence as k, motion as x } from "motion/react";
|
|
6
|
+
import { Close as j } from "../lib/icons.js";
|
|
7
|
+
import { cva as F } from "class-variance-authority";
|
|
8
8
|
import { cn as n } from "../lib/cn.js";
|
|
9
|
-
import { springSheet as l, drawerOffset as
|
|
10
|
-
const
|
|
9
|
+
import { springSheet as l, drawerOffset as g, drawerBackdropVariants as M } from "../lib/motion.js";
|
|
10
|
+
const D = F(
|
|
11
11
|
[
|
|
12
12
|
"relative flex flex-col",
|
|
13
13
|
"bg-elevated text-foreground"
|
|
@@ -42,17 +42,17 @@ const k = j(
|
|
|
42
42
|
],
|
|
43
43
|
defaultVariants: { side: "right", size: "md" }
|
|
44
44
|
}
|
|
45
|
-
),
|
|
45
|
+
), S = {
|
|
46
46
|
right: "justify-end items-stretch",
|
|
47
47
|
left: "justify-start items-stretch",
|
|
48
48
|
bottom: "justify-center items-end"
|
|
49
|
-
},
|
|
49
|
+
}, A = {
|
|
50
50
|
sm: "25%",
|
|
51
51
|
md: "33.333333%",
|
|
52
52
|
lg: "50%",
|
|
53
53
|
xl: "66.666667%"
|
|
54
54
|
};
|
|
55
|
-
function
|
|
55
|
+
function z({
|
|
56
56
|
onClick: t,
|
|
57
57
|
className: e
|
|
58
58
|
}) {
|
|
@@ -71,43 +71,43 @@ function D({
|
|
|
71
71
|
"[&_svg]:size-4 [&_svg]:shrink-0",
|
|
72
72
|
e
|
|
73
73
|
),
|
|
74
|
-
children: /* @__PURE__ */ i(
|
|
74
|
+
children: /* @__PURE__ */ i(j, { "aria-hidden": !0 })
|
|
75
75
|
}
|
|
76
76
|
);
|
|
77
77
|
}
|
|
78
|
-
function
|
|
78
|
+
function W({
|
|
79
79
|
open: t,
|
|
80
80
|
onOpenChange: e,
|
|
81
81
|
side: r,
|
|
82
|
-
size:
|
|
82
|
+
size: f,
|
|
83
83
|
className: c,
|
|
84
|
-
children:
|
|
85
|
-
"aria-label":
|
|
84
|
+
children: u,
|
|
85
|
+
"aria-label": v
|
|
86
86
|
}) {
|
|
87
|
-
const
|
|
88
|
-
return
|
|
87
|
+
const m = r ?? "right", w = s.useRef(null), o = s.useRef(null);
|
|
88
|
+
return s.useEffect(() => {
|
|
89
89
|
if (!t) return;
|
|
90
|
-
|
|
90
|
+
o.current = document.activeElement;
|
|
91
91
|
const p = document.body.style.overflow;
|
|
92
92
|
document.body.style.overflow = "hidden";
|
|
93
|
-
const
|
|
94
|
-
|
|
93
|
+
const h = (a) => {
|
|
94
|
+
a.key === "Escape" && (a.stopPropagation(), e(!1));
|
|
95
95
|
};
|
|
96
|
-
document.addEventListener("keydown",
|
|
97
|
-
const
|
|
98
|
-
var
|
|
99
|
-
(
|
|
96
|
+
document.addEventListener("keydown", h);
|
|
97
|
+
const b = requestAnimationFrame(() => {
|
|
98
|
+
var a;
|
|
99
|
+
(a = w.current) == null || a.focus();
|
|
100
100
|
});
|
|
101
101
|
return () => {
|
|
102
|
-
var
|
|
103
|
-
document.removeEventListener("keydown",
|
|
102
|
+
var a, y;
|
|
103
|
+
document.removeEventListener("keydown", h), document.body.style.overflow = p, cancelAnimationFrame(b), (y = (a = o.current) == null ? void 0 : a.focus) == null || y.call(a);
|
|
104
104
|
};
|
|
105
|
-
}, [t, e]),
|
|
106
|
-
/* @__PURE__ */ i(
|
|
105
|
+
}, [t, e]), R(
|
|
106
|
+
/* @__PURE__ */ i(N, { reducedMotion: "user", children: /* @__PURE__ */ i(k, { children: t && /* @__PURE__ */ d("div", { className: n("fixed inset-0 z-50 flex", S[m]), children: [
|
|
107
107
|
/* @__PURE__ */ i(
|
|
108
|
-
|
|
108
|
+
x.div,
|
|
109
109
|
{
|
|
110
|
-
variants:
|
|
110
|
+
variants: M,
|
|
111
111
|
initial: "hidden",
|
|
112
112
|
animate: "visible",
|
|
113
113
|
exit: "hidden",
|
|
@@ -117,27 +117,27 @@ function G({
|
|
|
117
117
|
},
|
|
118
118
|
"backdrop"
|
|
119
119
|
),
|
|
120
|
-
/* @__PURE__ */
|
|
121
|
-
|
|
120
|
+
/* @__PURE__ */ d(
|
|
121
|
+
x.div,
|
|
122
122
|
{
|
|
123
|
-
ref:
|
|
124
|
-
initial:
|
|
123
|
+
ref: w,
|
|
124
|
+
initial: g[m],
|
|
125
125
|
animate: { transform: "translate3d(0, 0, 0)", opacity: 1, transition: l },
|
|
126
|
-
exit: { ...
|
|
126
|
+
exit: { ...g[m], pointerEvents: "none", transition: l },
|
|
127
127
|
role: "dialog",
|
|
128
128
|
"aria-modal": "true",
|
|
129
|
-
"aria-label":
|
|
129
|
+
"aria-label": v,
|
|
130
130
|
tabIndex: -1,
|
|
131
|
-
className: n(
|
|
131
|
+
className: n(D({ side: m, size: f }), "relative outline-none", c),
|
|
132
132
|
children: [
|
|
133
133
|
/* @__PURE__ */ i(
|
|
134
|
-
|
|
134
|
+
z,
|
|
135
135
|
{
|
|
136
136
|
onClick: () => e(!1),
|
|
137
137
|
className: "right-4 top-4"
|
|
138
138
|
}
|
|
139
139
|
),
|
|
140
|
-
|
|
140
|
+
u
|
|
141
141
|
]
|
|
142
142
|
},
|
|
143
143
|
"panel"
|
|
@@ -146,59 +146,62 @@ function G({
|
|
|
146
146
|
document.body
|
|
147
147
|
);
|
|
148
148
|
}
|
|
149
|
-
function
|
|
149
|
+
function B({
|
|
150
150
|
open: t,
|
|
151
151
|
onOpenChange: e,
|
|
152
152
|
dismissible: r = !0,
|
|
153
|
-
side:
|
|
153
|
+
side: f,
|
|
154
154
|
size: c,
|
|
155
|
-
containerClassName:
|
|
156
|
-
className:
|
|
157
|
-
children:
|
|
158
|
-
"aria-label":
|
|
155
|
+
containerClassName: u,
|
|
156
|
+
className: v,
|
|
157
|
+
children: m,
|
|
158
|
+
"aria-label": w
|
|
159
159
|
}) {
|
|
160
|
-
const
|
|
161
|
-
return
|
|
160
|
+
const o = f ?? "right", p = c ?? "md", h = s.useRef(null);
|
|
161
|
+
return s.useEffect(() => {
|
|
162
162
|
if (!t || !r) return;
|
|
163
|
-
const
|
|
164
|
-
|
|
163
|
+
const b = (a) => {
|
|
164
|
+
a.key === "Escape" && e(!1);
|
|
165
165
|
};
|
|
166
|
-
return document.addEventListener("keydown",
|
|
167
|
-
}, [t, e, r]), /* @__PURE__ */ i(
|
|
168
|
-
|
|
166
|
+
return document.addEventListener("keydown", b), () => document.removeEventListener("keydown", b);
|
|
167
|
+
}, [t, e, r]), /* @__PURE__ */ i(N, { reducedMotion: "user", children: /* @__PURE__ */ i(k, { initial: !1, children: t && /* @__PURE__ */ i(
|
|
168
|
+
x.div,
|
|
169
169
|
{
|
|
170
|
-
initial:
|
|
171
|
-
animate:
|
|
172
|
-
exit:
|
|
170
|
+
initial: o === "bottom" ? { height: "0%" } : { width: 0 },
|
|
171
|
+
animate: o === "bottom" ? { height: A[p], transition: l } : { width: "auto", transition: l },
|
|
172
|
+
exit: o === "bottom" ? { height: "0%", pointerEvents: "none", transition: l } : { width: 0, pointerEvents: "none", transition: l },
|
|
173
173
|
className: n(
|
|
174
174
|
"shrink-0 overflow-hidden",
|
|
175
|
-
|
|
176
|
-
|
|
175
|
+
o === "bottom" ? "w-full" : "h-full",
|
|
176
|
+
u
|
|
177
177
|
),
|
|
178
|
-
children: /* @__PURE__ */
|
|
179
|
-
|
|
178
|
+
children: /* @__PURE__ */ d(
|
|
179
|
+
x.aside,
|
|
180
180
|
{
|
|
181
|
-
ref:
|
|
182
|
-
initial:
|
|
181
|
+
ref: h,
|
|
182
|
+
initial: g[o],
|
|
183
183
|
animate: { transform: "translate3d(0, 0, 0)", opacity: 1, transition: l },
|
|
184
|
-
exit: { ...
|
|
184
|
+
exit: { ...g[o], pointerEvents: "none", transition: l },
|
|
185
185
|
role: "complementary",
|
|
186
|
-
"aria-label":
|
|
186
|
+
"aria-label": w,
|
|
187
187
|
className: n(
|
|
188
|
-
|
|
189
|
-
"relative shrink-0 overflow-hidden rounded-
|
|
190
|
-
|
|
191
|
-
|
|
188
|
+
D({ side: o, size: c }),
|
|
189
|
+
"relative shrink-0 overflow-hidden rounded-none border-0 bg-card shadow-none outline-none",
|
|
190
|
+
o === "right" && "border-l border-border",
|
|
191
|
+
o === "left" && "border-r border-border",
|
|
192
|
+
o === "bottom" && "border-t border-border",
|
|
193
|
+
o === "bottom" && "h-full",
|
|
194
|
+
v
|
|
192
195
|
),
|
|
193
196
|
children: [
|
|
194
197
|
r && /* @__PURE__ */ i(
|
|
195
|
-
|
|
198
|
+
z,
|
|
196
199
|
{
|
|
197
200
|
onClick: () => e(!1),
|
|
198
201
|
className: "right-2 top-1"
|
|
199
202
|
}
|
|
200
203
|
),
|
|
201
|
-
|
|
204
|
+
m
|
|
202
205
|
]
|
|
203
206
|
}
|
|
204
207
|
)
|
|
@@ -206,16 +209,30 @@ function L({
|
|
|
206
209
|
"inline-drawer-slot"
|
|
207
210
|
) }) });
|
|
208
211
|
}
|
|
209
|
-
const
|
|
212
|
+
const X = B, K = s.forwardRef(({ className: t, ...e }, r) => /* @__PURE__ */ i(
|
|
210
213
|
"div",
|
|
211
214
|
{
|
|
212
215
|
ref: r,
|
|
213
|
-
|
|
216
|
+
"data-slot": "drawer-header",
|
|
217
|
+
className: n(
|
|
218
|
+
"flex shrink-0 flex-col gap-1 border-b border-border px-6 py-5 pr-14",
|
|
219
|
+
t
|
|
220
|
+
),
|
|
221
|
+
...e
|
|
222
|
+
}
|
|
223
|
+
));
|
|
224
|
+
K.displayName = "DrawerHeader";
|
|
225
|
+
const L = s.forwardRef(({ className: t, ...e }, r) => /* @__PURE__ */ i(
|
|
226
|
+
"p",
|
|
227
|
+
{
|
|
228
|
+
ref: r,
|
|
229
|
+
"data-slot": "drawer-kicker",
|
|
230
|
+
className: n("m-0 text-xs uppercase tracking-wide text-on-white-secondary", t),
|
|
214
231
|
...e
|
|
215
232
|
}
|
|
216
233
|
));
|
|
217
|
-
|
|
218
|
-
const V =
|
|
234
|
+
L.displayName = "DrawerKicker";
|
|
235
|
+
const V = s.forwardRef(({ className: t, ...e }, r) => /* @__PURE__ */ i(
|
|
219
236
|
"h2",
|
|
220
237
|
{
|
|
221
238
|
ref: r,
|
|
@@ -224,34 +241,81 @@ const V = a.forwardRef(({ className: t, ...e }, r) => /* @__PURE__ */ i(
|
|
|
224
241
|
}
|
|
225
242
|
));
|
|
226
243
|
V.displayName = "DrawerTitle";
|
|
227
|
-
const I =
|
|
244
|
+
const I = s.forwardRef(({ className: t, ...e }, r) => /* @__PURE__ */ i(
|
|
245
|
+
"div",
|
|
246
|
+
{
|
|
247
|
+
ref: r,
|
|
248
|
+
"data-slot": "drawer-meta",
|
|
249
|
+
className: n(
|
|
250
|
+
"mt-2 flex flex-wrap items-center gap-2 text-m text-on-white-secondary tabular-nums",
|
|
251
|
+
t
|
|
252
|
+
),
|
|
253
|
+
...e
|
|
254
|
+
}
|
|
255
|
+
));
|
|
256
|
+
I.displayName = "DrawerMeta";
|
|
257
|
+
const P = s.forwardRef(({ className: t, ...e }, r) => /* @__PURE__ */ i(
|
|
228
258
|
"div",
|
|
229
259
|
{
|
|
230
260
|
ref: r,
|
|
231
261
|
tabIndex: 0,
|
|
232
|
-
|
|
262
|
+
"data-slot": "drawer-body",
|
|
263
|
+
className: n(
|
|
264
|
+
"min-h-0 flex-1 overflow-y-auto overscroll-contain px-6 py-6 text-xs text-foreground outline-none focus-visible:ring-3 focus-visible:ring-ring focus-visible:ring-inset",
|
|
265
|
+
t
|
|
266
|
+
),
|
|
233
267
|
...e
|
|
234
268
|
}
|
|
235
269
|
));
|
|
236
|
-
|
|
237
|
-
const
|
|
270
|
+
P.displayName = "DrawerBody";
|
|
271
|
+
const C = s.forwardRef(
|
|
272
|
+
({ className: t, title: e, count: r, children: f, ...c }, u) => /* @__PURE__ */ d(
|
|
273
|
+
"section",
|
|
274
|
+
{
|
|
275
|
+
ref: u,
|
|
276
|
+
"data-slot": "drawer-section",
|
|
277
|
+
"aria-label": typeof e == "string" ? e : void 0,
|
|
278
|
+
className: n("flex shrink-0 flex-col gap-3", t),
|
|
279
|
+
...c,
|
|
280
|
+
children: [
|
|
281
|
+
/* @__PURE__ */ d("h3", { className: "m-0 text-m font-medium text-on-white-primary", children: [
|
|
282
|
+
e,
|
|
283
|
+
r != null && /* @__PURE__ */ d(E, { children: [
|
|
284
|
+
" ",
|
|
285
|
+
/* @__PURE__ */ d("span", { className: "font-normal text-on-white-secondary", children: [
|
|
286
|
+
"· ",
|
|
287
|
+
r
|
|
288
|
+
] })
|
|
289
|
+
] })
|
|
290
|
+
] }),
|
|
291
|
+
f
|
|
292
|
+
]
|
|
293
|
+
}
|
|
294
|
+
)
|
|
295
|
+
);
|
|
296
|
+
C.displayName = "DrawerSection";
|
|
297
|
+
const H = s.forwardRef(({ className: t, ...e }, r) => /* @__PURE__ */ i(
|
|
238
298
|
"div",
|
|
239
299
|
{
|
|
240
300
|
ref: r,
|
|
301
|
+
"data-slot": "drawer-footer",
|
|
241
302
|
className: n(
|
|
242
|
-
"flex items-center justify-end gap-2 px-6 py-4",
|
|
303
|
+
"flex shrink-0 items-center justify-end gap-2 border-t border-border px-6 py-4",
|
|
243
304
|
t
|
|
244
305
|
),
|
|
245
306
|
...e
|
|
246
307
|
}
|
|
247
308
|
));
|
|
248
|
-
|
|
309
|
+
H.displayName = "DrawerFooter";
|
|
249
310
|
export {
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
311
|
+
B as Drawer,
|
|
312
|
+
P as DrawerBody,
|
|
313
|
+
H as DrawerFooter,
|
|
314
|
+
K as DrawerHeader,
|
|
315
|
+
L as DrawerKicker,
|
|
316
|
+
I as DrawerMeta,
|
|
317
|
+
C as DrawerSection,
|
|
254
318
|
V as DrawerTitle,
|
|
255
|
-
|
|
256
|
-
|
|
319
|
+
X as InlineDrawer,
|
|
320
|
+
W as ModalDrawer
|
|
257
321
|
};
|
|
@@ -3,7 +3,8 @@ import * as React from "react";
|
|
|
3
3
|
* EmptyState — the "nothing here yet" placeholder.
|
|
4
4
|
*
|
|
5
5
|
* Two registers, chosen by which visual slot you fill:
|
|
6
|
-
* - `icon` (default): a compact icon
|
|
6
|
+
* - `icon` (default): a compact bare icon for an in-panel empty list (icons
|
|
7
|
+
* never sit on a tile or fill).
|
|
7
8
|
* - `illustration`: a larger soft graphic for a full empty *screen*, with a
|
|
8
9
|
* bigger title and more breathing room — the calm, centred pattern.
|
|
9
10
|
*
|
|
@@ -15,7 +16,7 @@ import * as React from "react";
|
|
|
15
16
|
* accent — and re-theme with the system since every fill flows from a token.
|
|
16
17
|
*/
|
|
17
18
|
export interface EmptyStateProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "title"> {
|
|
18
|
-
/** Compact icon (
|
|
19
|
+
/** Compact bare icon (24px, muted, no circle). Ignored if `illustration` is set. */
|
|
19
20
|
icon?: React.ReactNode;
|
|
20
21
|
/** Larger soft graphic for a full empty screen (see the Empty* illustrations). */
|
|
21
22
|
illustration?: React.ReactNode;
|
|
@@ -4,8 +4,8 @@ import * as x from "react";
|
|
|
4
4
|
import { Inbox as g } from "../lib/icons.js";
|
|
5
5
|
import { cn as s } from "../lib/cn.js";
|
|
6
6
|
const f = x.forwardRef(
|
|
7
|
-
({ className: r, icon:
|
|
8
|
-
const
|
|
7
|
+
({ className: r, icon: d, illustration: l, title: n, description: c, action: o, ...m }, h) => {
|
|
8
|
+
const a = l != null;
|
|
9
9
|
return /* @__PURE__ */ t(
|
|
10
10
|
"div",
|
|
11
11
|
{
|
|
@@ -14,30 +14,30 @@ const f = x.forwardRef(
|
|
|
14
14
|
// No fill: the empty state is outlined by a dashed WG5 edge on
|
|
15
15
|
// whatever surface it sits on.
|
|
16
16
|
"flex flex-col items-center rounded-lg border border-dashed border-border-strong px-6 text-center",
|
|
17
|
-
|
|
17
|
+
a ? "gap-5 py-16" : "gap-3 py-12",
|
|
18
18
|
r
|
|
19
19
|
),
|
|
20
20
|
...m,
|
|
21
21
|
children: [
|
|
22
|
-
|
|
22
|
+
a ? l : /* @__PURE__ */ e("span", { className: "inline-flex items-center justify-center text-muted-foreground [&_svg]:size-6", children: d ?? /* @__PURE__ */ e(g, { "aria-hidden": !0 }) }),
|
|
23
23
|
/* @__PURE__ */ t("div", { className: "flex flex-col gap-1.5", children: [
|
|
24
24
|
/* @__PURE__ */ e(
|
|
25
25
|
"p",
|
|
26
26
|
{
|
|
27
27
|
className: s(
|
|
28
|
-
|
|
28
|
+
a ? "text-lg font-medium text-foreground" : "font-normal"
|
|
29
29
|
),
|
|
30
30
|
children: n
|
|
31
31
|
}
|
|
32
32
|
),
|
|
33
|
-
|
|
33
|
+
c && /* @__PURE__ */ e(
|
|
34
34
|
"p",
|
|
35
35
|
{
|
|
36
36
|
className: s(
|
|
37
37
|
"max-w-sm text-muted-foreground",
|
|
38
|
-
|
|
38
|
+
a ? "text-sm" : "text-xs"
|
|
39
39
|
),
|
|
40
|
-
children:
|
|
40
|
+
children: c
|
|
41
41
|
}
|
|
42
42
|
)
|
|
43
43
|
] }),
|
|
@@ -48,9 +48,9 @@ const f = x.forwardRef(
|
|
|
48
48
|
}
|
|
49
49
|
);
|
|
50
50
|
f.displayName = "EmptyState";
|
|
51
|
-
const
|
|
51
|
+
const i = "h-28 w-auto";
|
|
52
52
|
function y({ className: r }) {
|
|
53
|
-
return /* @__PURE__ */ t("svg", { viewBox: "0 0 140 120", role: "img", "aria-hidden": !0, className: s(
|
|
53
|
+
return /* @__PURE__ */ t("svg", { viewBox: "0 0 140 120", role: "img", "aria-hidden": !0, className: s(i, r), children: [
|
|
54
54
|
/* @__PURE__ */ e(
|
|
55
55
|
"rect",
|
|
56
56
|
{
|
|
@@ -84,8 +84,8 @@ function y({ className: r }) {
|
|
|
84
84
|
] });
|
|
85
85
|
}
|
|
86
86
|
y.displayName = "EmptyDocuments";
|
|
87
|
-
function
|
|
88
|
-
return /* @__PURE__ */ t("svg", { viewBox: "0 0 140 120", role: "img", "aria-hidden": !0, className: s(
|
|
87
|
+
function N({ className: r }) {
|
|
88
|
+
return /* @__PURE__ */ t("svg", { viewBox: "0 0 140 120", role: "img", "aria-hidden": !0, className: s(i, r), children: [
|
|
89
89
|
/* @__PURE__ */ e(
|
|
90
90
|
"rect",
|
|
91
91
|
{
|
|
@@ -127,9 +127,9 @@ function u({ className: r }) {
|
|
|
127
127
|
] })
|
|
128
128
|
] });
|
|
129
129
|
}
|
|
130
|
-
|
|
131
|
-
function
|
|
132
|
-
return /* @__PURE__ */ t("svg", { viewBox: "0 0 140 120", role: "img", "aria-hidden": !0, className: s(
|
|
130
|
+
N.displayName = "EmptySearch";
|
|
131
|
+
function p({ className: r }) {
|
|
132
|
+
return /* @__PURE__ */ t("svg", { viewBox: "0 0 140 120", role: "img", "aria-hidden": !0, className: s(i, r), children: [
|
|
133
133
|
/* @__PURE__ */ e(
|
|
134
134
|
"path",
|
|
135
135
|
{
|
|
@@ -155,20 +155,20 @@ function N({ className: r }) {
|
|
|
155
155
|
)
|
|
156
156
|
] });
|
|
157
157
|
}
|
|
158
|
-
|
|
159
|
-
function
|
|
160
|
-
return /* @__PURE__ */ t("svg", { viewBox: "0 0 140 120", role: "img", "aria-hidden": !0, className: s(
|
|
158
|
+
p.displayName = "EmptyConnections";
|
|
159
|
+
function u({ className: r }) {
|
|
160
|
+
return /* @__PURE__ */ t("svg", { viewBox: "0 0 140 120", role: "img", "aria-hidden": !0, className: s(i, r), children: [
|
|
161
161
|
/* @__PURE__ */ e("rect", { x: "34", y: "88", width: "72", height: "3", rx: "1.5", className: "fill-border-strong" }),
|
|
162
162
|
/* @__PURE__ */ e("rect", { x: "40", y: "64", width: "15", height: "24", rx: "3", className: "fill-muted" }),
|
|
163
163
|
/* @__PURE__ */ e("rect", { x: "62", y: "50", width: "15", height: "38", rx: "3", className: "fill-border-strong" }),
|
|
164
164
|
/* @__PURE__ */ e("rect", { x: "84", y: "34", width: "15", height: "54", rx: "3", className: "fill-brand" })
|
|
165
165
|
] });
|
|
166
166
|
}
|
|
167
|
-
|
|
167
|
+
u.displayName = "EmptyInsights";
|
|
168
168
|
export {
|
|
169
|
-
|
|
169
|
+
p as EmptyConnections,
|
|
170
170
|
y as EmptyDocuments,
|
|
171
|
-
|
|
172
|
-
|
|
171
|
+
u as EmptyInsights,
|
|
172
|
+
N as EmptySearch,
|
|
173
173
|
f as EmptyState
|
|
174
174
|
};
|
package/components/field.d.ts
CHANGED
|
@@ -19,6 +19,22 @@ export interface FieldProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
|
19
19
|
errorId?: string;
|
|
20
20
|
/** id put on the rendered description text, for the same wiring. */
|
|
21
21
|
descriptionId?: string;
|
|
22
|
+
/**
|
|
23
|
+
* Optional guidance shown from an info icon right after the label, instead
|
|
24
|
+
* of a helper line under the control (principle `create-modals`). Use it for
|
|
25
|
+
* "optional / can change later" notes that most people never need.
|
|
26
|
+
*/
|
|
27
|
+
info?: React.ReactNode;
|
|
28
|
+
/**
|
|
29
|
+
* Controls at the right end of the label row, e.g. a small SegmentedControl
|
|
30
|
+
* that picks the source for this field ("CSV upload | Empty audience").
|
|
31
|
+
*/
|
|
32
|
+
actions?: React.ReactNode;
|
|
22
33
|
}
|
|
34
|
+
/** 20px quiet info trigger: bare icon, no tile; teal on hover/focus. */
|
|
35
|
+
export declare function FieldInfo({ children, label }: {
|
|
36
|
+
children: React.ReactNode;
|
|
37
|
+
label?: string;
|
|
38
|
+
}): React.JSX.Element;
|
|
23
39
|
/** Vertical stack: label · control · (description|error). */
|
|
24
40
|
export declare const Field: React.ForwardRefExoticComponent<FieldProps & React.RefAttributes<HTMLDivElement>>;
|