@actioneer/ads 0.1.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.
- package/LICENSE +21 -0
- package/bin/ads-init.mjs +314 -0
- package/components/accordion.d.ts +13 -0
- package/components/accordion.js +91 -0
- package/components/agents-ui/agent-audio-visualizer-aura.d.ts +11 -0
- package/components/agents-ui/agent-audio-visualizer-aura.js +277 -0
- package/components/agents-ui/agent-audio-visualizer-wave.d.ts +12 -0
- package/components/agents-ui/agent-audio-visualizer-wave.js +203 -0
- package/components/agents-ui/react-shader-toy.d.ts +87 -0
- package/components/agents-ui/react-shader-toy.js +531 -0
- package/components/ai-elements/chain-of-thought.d.ts +30 -0
- package/components/ai-elements/chain-of-thought.js +182 -0
- package/components/ai-elements/index.d.ts +11 -0
- package/components/ai-elements/inline-citation.d.ts +44 -0
- package/components/ai-elements/inline-citation.js +314 -0
- package/components/ai-elements/message.d.ts +96 -0
- package/components/ai-elements/message.js +308 -0
- package/components/ai-elements/queue.d.ts +60 -0
- package/components/ai-elements/queue.js +193 -0
- package/components/ai-elements/reasoning.d.ts +26 -0
- package/components/ai-elements/reasoning.js +131 -0
- package/components/ai-elements/shimmer.d.ts +25 -0
- package/components/ai-elements/shimmer.js +44 -0
- package/components/ai-elements/speech-input.d.ts +16 -0
- package/components/ai-elements/speech-input.js +151 -0
- package/components/ai-elements/task-progress.d.ts +41 -0
- package/components/ai-elements/task-progress.js +211 -0
- package/components/ai-elements/task.d.ts +35 -0
- package/components/ai-elements/task.js +73 -0
- package/components/ai-elements/tool.d.ts +53 -0
- package/components/ai-elements/tool.js +116 -0
- package/components/ai-elements/voice.d.ts +74 -0
- package/components/ai-elements/voice.js +875 -0
- package/components/alert.d.ts +21 -0
- package/components/alert.js +76 -0
- package/components/answer.d.ts +984 -0
- package/components/answer.js +543 -0
- package/components/assistant-ui/action-bar.d.ts +3 -0
- package/components/assistant-ui/action-bar.js +57 -0
- package/components/assistant-ui/answer-tool-ui.d.ts +5 -0
- package/components/assistant-ui/answer-tool-ui.js +42 -0
- package/components/assistant-ui/attachment.d.ts +50 -0
- package/components/assistant-ui/attachment.js +353 -0
- package/components/assistant-ui/badge.d.ts +11 -0
- package/components/assistant-ui/badge.js +54 -0
- package/components/assistant-ui/branch-picker.d.ts +3 -0
- package/components/assistant-ui/branch-picker.js +36 -0
- package/components/assistant-ui/chain-of-thought.d.ts +46 -0
- package/components/assistant-ui/composer-add-context.d.ts +50 -0
- package/components/assistant-ui/composer-add-context.js +209 -0
- package/components/assistant-ui/composer-deep-research.d.ts +16 -0
- package/components/assistant-ui/composer-deep-research.js +38 -0
- package/components/assistant-ui/composer-harness.d.ts +18 -0
- package/components/assistant-ui/composer-harness.js +186 -0
- package/components/assistant-ui/composer-trigger-popover.d.ts +47 -0
- package/components/assistant-ui/composer-trigger-popover.js +147 -0
- package/components/assistant-ui/composer.d.ts +8 -0
- package/components/assistant-ui/composer.js +276 -0
- package/components/assistant-ui/directive-text.d.ts +16 -0
- package/components/assistant-ui/directive-text.js +40 -0
- package/components/assistant-ui/error.d.ts +6 -0
- package/components/assistant-ui/error.js +39 -0
- package/components/assistant-ui/file.d.ts +37 -0
- package/components/assistant-ui/file.js +159 -0
- package/components/assistant-ui/follow-up-suggestions.d.ts +7 -0
- package/components/assistant-ui/follow-up-suggestions.js +44 -0
- package/components/assistant-ui/image.d.ts +46 -0
- package/components/assistant-ui/image.js +351 -0
- package/components/assistant-ui/index.d.ts +28 -0
- package/components/assistant-ui/markdown-text.d.ts +1 -0
- package/components/assistant-ui/markdown-text.js +242 -0
- package/components/assistant-ui/message-timing.d.ts +25 -0
- package/components/assistant-ui/message-timing.js +56 -0
- package/components/assistant-ui/message.d.ts +4 -0
- package/components/assistant-ui/message.js +159 -0
- package/components/assistant-ui/primitives.d.ts +2 -0
- package/components/assistant-ui/quote.d.ts +37 -0
- package/components/assistant-ui/quote.js +150 -0
- package/components/assistant-ui/reasoning.d.ts +44 -0
- package/components/assistant-ui/reasoning.js +261 -0
- package/components/assistant-ui/selection-toolbar.d.ts +29 -0
- package/components/assistant-ui/selection-toolbar.js +91 -0
- package/components/assistant-ui/smart-message-text.d.ts +15 -0
- package/components/assistant-ui/smart-message-text.js +29 -0
- package/components/assistant-ui/sources.d.ts +17 -0
- package/components/assistant-ui/sources.js +121 -0
- package/components/assistant-ui/suggestions.d.ts +7 -0
- package/components/assistant-ui/suggestions.js +19 -0
- package/components/assistant-ui/thread-context.d.ts +37 -0
- package/components/assistant-ui/thread-context.js +8 -0
- package/components/assistant-ui/thread.d.ts +5 -0
- package/components/assistant-ui/thread.js +77 -0
- package/components/assistant-ui/tool-fallback.d.ts +36 -0
- package/components/assistant-ui/tool-fallback.js +428 -0
- package/components/assistant-ui/tool-group.d.ts +33 -0
- package/components/assistant-ui/tool-group.js +173 -0
- package/components/assistant-ui/tooltip-icon-button.d.ts +7 -0
- package/components/assistant-ui/tooltip-icon-button.js +31 -0
- package/components/assistant-ui/voice.d.ts +18 -0
- package/components/autocomplete.d.ts +18 -0
- package/components/autocomplete.js +162 -0
- package/components/avatar.d.ts +26 -0
- package/components/avatar.js +92 -0
- package/components/badge.d.ts +10 -0
- package/components/badge.js +83 -0
- package/components/brand-loader.d.ts +16 -0
- package/components/brand-loader.js +64 -0
- package/components/breadcrumbs.d.ts +8 -0
- package/components/breadcrumbs.js +58 -0
- package/components/button.d.ts +13 -0
- package/components/button.js +100 -0
- package/components/card.d.ts +19 -0
- package/components/card.js +82 -0
- package/components/carousel.d.ts +31 -0
- package/components/carousel.js +351 -0
- package/components/chart.d.ts +165 -0
- package/components/chart.js +841 -0
- package/components/checkbox.d.ts +13 -0
- package/components/checkbox.js +84 -0
- package/components/chip.d.ts +13 -0
- package/components/chip.js +112 -0
- package/components/collapsible.d.ts +5 -0
- package/components/collapsible.js +31 -0
- package/components/connector-card.d.ts +62 -0
- package/components/connector-card.js +154 -0
- package/components/divider.d.ts +23 -0
- package/components/divider.js +69 -0
- package/components/drawer.d.ts +45 -0
- package/components/drawer.js +234 -0
- package/components/dropdown.d.ts +33 -0
- package/components/dropdown.js +198 -0
- package/components/empty-state.d.ts +8 -0
- package/components/empty-state.js +30 -0
- package/components/field.d.ts +20 -0
- package/components/field.js +74 -0
- package/components/index.d.ts +56 -0
- package/components/index.js +444 -0
- package/components/input-field.d.ts +22 -0
- package/components/input-field.js +91 -0
- package/components/input.d.ts +8 -0
- package/components/input.js +61 -0
- package/components/kbd.d.ts +6 -0
- package/components/kbd.js +26 -0
- package/components/link.d.ts +14 -0
- package/components/link.js +72 -0
- package/components/modal.d.ts +18 -0
- package/components/modal.js +156 -0
- package/components/navbar.d.ts +15 -0
- package/components/navbar.js +68 -0
- package/components/number-field.d.ts +11 -0
- package/components/number-field.js +89 -0
- package/components/pagination.d.ts +28 -0
- package/components/pagination.js +179 -0
- package/components/panel.d.ts +14 -0
- package/components/panel.js +71 -0
- package/components/pixel-blast-svg.d.ts +22 -0
- package/components/pixel-blast-svg.js +154 -0
- package/components/popover.d.ts +20 -0
- package/components/popover.js +101 -0
- package/components/progress-circle.d.ts +11 -0
- package/components/progress-circle.js +75 -0
- package/components/progress.d.ts +22 -0
- package/components/progress.js +66 -0
- package/components/radio.d.ts +16 -0
- package/components/radio.js +101 -0
- package/components/segmented.d.ts +16 -0
- package/components/segmented.js +103 -0
- package/components/select.d.ts +28 -0
- package/components/select.js +180 -0
- package/components/selection-action-bar.d.ts +11 -0
- package/components/selection-action-bar.js +59 -0
- package/components/sidebar.d.ts +118 -0
- package/components/sidebar.js +375 -0
- package/components/skeleton.d.ts +6 -0
- package/components/skeleton.js +26 -0
- package/components/slider.d.ts +11 -0
- package/components/slider.js +62 -0
- package/components/spinner.d.ts +11 -0
- package/components/spinner.js +62 -0
- package/components/switch.d.ts +7 -0
- package/components/switch.js +61 -0
- package/components/table.d.ts +59 -0
- package/components/table.js +254 -0
- package/components/tabs.d.ts +29 -0
- package/components/tabs.js +371 -0
- package/components/textarea.d.ts +5 -0
- package/components/textarea.js +24 -0
- package/components/timeline.d.ts +7 -0
- package/components/timeline.js +47 -0
- package/components/toast.d.ts +74 -0
- package/components/toast.js +211 -0
- package/components/tooltip.d.ts +11 -0
- package/components/tooltip.js +143 -0
- package/components/tree.d.ts +42 -0
- package/components/tree.js +86 -0
- package/components/typography.d.ts +33 -0
- package/components/typography.js +65 -0
- package/components/ui/avatar.d.ts +11 -0
- package/components/ui/avatar.js +56 -0
- package/components/ui/button.d.ts +10 -0
- package/components/ui/button.js +57 -0
- package/components/ui/collapsible.d.ts +5 -0
- package/components/ui/collapsible.js +35 -0
- package/components/ui/dialog.d.ts +17 -0
- package/components/ui/dialog.js +93 -0
- package/components/ui/tabs.d.ts +22 -0
- package/components/ui/tooltip.d.ts +7 -0
- package/components/ui/tooltip.js +56 -0
- package/fonts/aribau-grotesk-400.otf +0 -0
- package/fonts/aribau-grotesk-700.otf +0 -0
- package/fonts.css +21 -0
- package/hooks/agents-ui/use-agent-audio-visualizer-aura.d.ts +8 -0
- package/hooks/agents-ui/use-agent-audio-visualizer-aura.js +62 -0
- package/hooks/agents-ui/use-agent-audio-visualizer-wave.d.ts +7 -0
- package/hooks/agents-ui/use-agent-audio-visualizer-wave.js +60 -0
- package/hooks/agents-ui/voice-visualizer-types.d.ts +9 -0
- package/lib/cn.d.ts +3 -0
- package/lib/cn.js +9 -0
- package/lib/icons.d.ts +378 -0
- package/lib/icons.js +119 -0
- package/lib/interactive.d.ts +24 -0
- package/lib/interactive.js +36 -0
- package/lib/motion.d.ts +58 -0
- package/lib/motion.js +70 -0
- package/lib/router.d.ts +3 -0
- package/lib/utils.d.ts +6 -0
- package/llms.txt +537 -0
- package/manifest.json +5085 -0
- package/package.json +60 -0
- package/styles.css +653 -0
- package/theme.css +273 -0
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsxs as g, jsx as t } from "react/jsx-runtime";
|
|
3
|
+
import { memo as w, useRef as y, useState as C, useCallback as G } from "react";
|
|
4
|
+
import { Loader as k, ChevronDown as R } from "../../lib/icons.js";
|
|
5
|
+
import { cva as I } from "class-variance-authority";
|
|
6
|
+
import { useScrollLock as A } from "@assistant-ui/react";
|
|
7
|
+
import { Collapsible as S, CollapsibleTrigger as j, CollapsibleContent as z } from "../ui/collapsible.js";
|
|
8
|
+
import { cn as n } from "../../lib/cn.js";
|
|
9
|
+
const D = 200, L = I("aui-tool-group-root group/tool-group w-full", {
|
|
10
|
+
variants: {
|
|
11
|
+
variant: {
|
|
12
|
+
outline: "rounded-lg border py-3",
|
|
13
|
+
ghost: "",
|
|
14
|
+
muted: "border-muted-foreground/30 bg-muted/30 rounded-lg border py-3"
|
|
15
|
+
}
|
|
16
|
+
},
|
|
17
|
+
defaultVariants: { variant: "outline" }
|
|
18
|
+
});
|
|
19
|
+
function m({
|
|
20
|
+
className: r,
|
|
21
|
+
variant: o,
|
|
22
|
+
open: a,
|
|
23
|
+
onOpenChange: e,
|
|
24
|
+
defaultOpen: l = !1,
|
|
25
|
+
children: f,
|
|
26
|
+
...h
|
|
27
|
+
}) {
|
|
28
|
+
const p = y(null), [x, b] = C(l), s = A(p, D), u = a !== void 0, N = u ? a : x, T = G(
|
|
29
|
+
(d) => {
|
|
30
|
+
s(), u || b(d), e == null || e(d);
|
|
31
|
+
},
|
|
32
|
+
[s, u, e]
|
|
33
|
+
);
|
|
34
|
+
return /* @__PURE__ */ t(
|
|
35
|
+
S,
|
|
36
|
+
{
|
|
37
|
+
ref: p,
|
|
38
|
+
"data-slot": "tool-group-root",
|
|
39
|
+
"data-variant": o ?? "outline",
|
|
40
|
+
open: N,
|
|
41
|
+
onOpenChange: T,
|
|
42
|
+
className: n(
|
|
43
|
+
L({ variant: o }),
|
|
44
|
+
"group/tool-group-root",
|
|
45
|
+
r
|
|
46
|
+
),
|
|
47
|
+
...h,
|
|
48
|
+
children: f
|
|
49
|
+
}
|
|
50
|
+
);
|
|
51
|
+
}
|
|
52
|
+
function c({
|
|
53
|
+
count: r,
|
|
54
|
+
active: o = !1,
|
|
55
|
+
className: a,
|
|
56
|
+
...e
|
|
57
|
+
}) {
|
|
58
|
+
const l = `${r} tool ${r === 1 ? "call" : "calls"}`;
|
|
59
|
+
return /* @__PURE__ */ g(
|
|
60
|
+
j,
|
|
61
|
+
{
|
|
62
|
+
"data-slot": "tool-group-trigger",
|
|
63
|
+
className: n(
|
|
64
|
+
"aui-tool-group-trigger group/trigger flex origin-left items-center gap-2 text-xs transition-[color,scale] active:scale-[0.98]",
|
|
65
|
+
"group-data-[variant=ghost]/tool-group-root:text-muted-foreground group-data-[variant=ghost]/tool-group-root:hover:text-foreground group-data-[variant=ghost]/tool-group-root:py-1.5",
|
|
66
|
+
"group-data-[variant=outline]/tool-group-root:w-full group-data-[variant=outline]/tool-group-root:px-4",
|
|
67
|
+
"group-data-[variant=muted]/tool-group-root:w-full group-data-[variant=muted]/tool-group-root:px-4",
|
|
68
|
+
a
|
|
69
|
+
),
|
|
70
|
+
...e,
|
|
71
|
+
children: [
|
|
72
|
+
o && /* @__PURE__ */ t(
|
|
73
|
+
k,
|
|
74
|
+
{
|
|
75
|
+
"data-slot": "tool-group-trigger-loader",
|
|
76
|
+
className: "aui-tool-group-trigger-loader size-3 shrink-0 animate-spin [animation-duration:var(--duration-spin)] motion-reduce:animate-none"
|
|
77
|
+
}
|
|
78
|
+
),
|
|
79
|
+
/* @__PURE__ */ g(
|
|
80
|
+
"span",
|
|
81
|
+
{
|
|
82
|
+
"data-slot": "tool-group-trigger-label",
|
|
83
|
+
className: n(
|
|
84
|
+
"aui-tool-group-trigger-label-wrapper relative inline-block text-start leading-none font-medium",
|
|
85
|
+
"group-data-[variant=ghost]/tool-group-root:font-normal",
|
|
86
|
+
"group-data-[variant=outline]/tool-group-root:grow",
|
|
87
|
+
"group-data-[variant=muted]/tool-group-root:grow"
|
|
88
|
+
),
|
|
89
|
+
children: [
|
|
90
|
+
/* @__PURE__ */ t("span", { className: "text-xs", children: l }),
|
|
91
|
+
o && /* @__PURE__ */ t(
|
|
92
|
+
"span",
|
|
93
|
+
{
|
|
94
|
+
"aria-hidden": !0,
|
|
95
|
+
"data-slot": "tool-group-trigger-shimmer",
|
|
96
|
+
className: "aui-tool-group-trigger-shimmer shimmer pointer-events-none absolute inset-0 text-xs motion-reduce:animate-none",
|
|
97
|
+
children: l
|
|
98
|
+
}
|
|
99
|
+
)
|
|
100
|
+
]
|
|
101
|
+
}
|
|
102
|
+
),
|
|
103
|
+
/* @__PURE__ */ t(
|
|
104
|
+
R,
|
|
105
|
+
{
|
|
106
|
+
"data-slot": "tool-group-trigger-chevron",
|
|
107
|
+
className: n(
|
|
108
|
+
"aui-tool-group-trigger-chevron size-3 shrink-0",
|
|
109
|
+
"transition-transform duration-(--duration-normal) ease-out motion-reduce:transition-none",
|
|
110
|
+
"group-data-[state=closed]/trigger:-rotate-90",
|
|
111
|
+
"group-data-[state=open]/trigger:rotate-0"
|
|
112
|
+
)
|
|
113
|
+
}
|
|
114
|
+
)
|
|
115
|
+
]
|
|
116
|
+
}
|
|
117
|
+
);
|
|
118
|
+
}
|
|
119
|
+
function v({
|
|
120
|
+
className: r,
|
|
121
|
+
children: o,
|
|
122
|
+
...a
|
|
123
|
+
}) {
|
|
124
|
+
return /* @__PURE__ */ t(
|
|
125
|
+
z,
|
|
126
|
+
{
|
|
127
|
+
"data-slot": "tool-group-content",
|
|
128
|
+
className: n(
|
|
129
|
+
"aui-tool-group-content relative overflow-hidden text-xs outline-none",
|
|
130
|
+
"group/collapsible-content",
|
|
131
|
+
"data-[state=closed]:pointer-events-none",
|
|
132
|
+
r
|
|
133
|
+
),
|
|
134
|
+
...a,
|
|
135
|
+
children: /* @__PURE__ */ t(
|
|
136
|
+
"div",
|
|
137
|
+
{
|
|
138
|
+
className: n(
|
|
139
|
+
"mt-2 flex flex-col gap-2",
|
|
140
|
+
"group-data-[variant=ghost]/tool-group-root:mt-1 group-data-[variant=ghost]/tool-group-root:gap-1",
|
|
141
|
+
"group-data-[variant=outline]/tool-group-root:mt-3 group-data-[variant=outline]/tool-group-root:border-t group-data-[variant=outline]/tool-group-root:px-4 group-data-[variant=outline]/tool-group-root:pt-3",
|
|
142
|
+
"group-data-[variant=muted]/tool-group-root:mt-3 group-data-[variant=muted]/tool-group-root:border-t group-data-[variant=muted]/tool-group-root:px-4 group-data-[variant=muted]/tool-group-root:pt-3",
|
|
143
|
+
"[&>*]:animate-in [&>*]:fade-in-0 [&>*]:blur-in-[2px] [&>*]:slide-in-from-top-1 [&>*]:duration-(--duration-normal) [&>*]:ease-out",
|
|
144
|
+
"[&>*]:motion-reduce:animate-none",
|
|
145
|
+
"[&>*:nth-child(2)]:[animation-delay:40ms]",
|
|
146
|
+
"[&>*:nth-child(3)]:[animation-delay:80ms]",
|
|
147
|
+
"[&>*:nth-child(4)]:[animation-delay:120ms]",
|
|
148
|
+
"[&>*:nth-child(n+5)]:[animation-delay:160ms]"
|
|
149
|
+
),
|
|
150
|
+
children: o
|
|
151
|
+
}
|
|
152
|
+
)
|
|
153
|
+
}
|
|
154
|
+
);
|
|
155
|
+
}
|
|
156
|
+
const U = ({ children: r, startIndex: o, endIndex: a }) => {
|
|
157
|
+
const e = a - o + 1;
|
|
158
|
+
return /* @__PURE__ */ g(m, { children: [
|
|
159
|
+
/* @__PURE__ */ t(c, { count: e }),
|
|
160
|
+
/* @__PURE__ */ t(v, { children: r })
|
|
161
|
+
] });
|
|
162
|
+
}, i = w(U);
|
|
163
|
+
i.displayName = "ToolGroup";
|
|
164
|
+
i.Root = m;
|
|
165
|
+
i.Trigger = c;
|
|
166
|
+
i.Content = v;
|
|
167
|
+
export {
|
|
168
|
+
i as ToolGroup,
|
|
169
|
+
v as ToolGroupContent,
|
|
170
|
+
m as ToolGroupRoot,
|
|
171
|
+
c as ToolGroupTrigger,
|
|
172
|
+
L as toolGroupVariants
|
|
173
|
+
};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { ComponentPropsWithRef } from 'react';
|
|
2
|
+
import { Button } from '../ui/button';
|
|
3
|
+
export type TooltipIconButtonProps = ComponentPropsWithRef<typeof Button> & {
|
|
4
|
+
tooltip: string;
|
|
5
|
+
side?: "top" | "bottom" | "left" | "right";
|
|
6
|
+
};
|
|
7
|
+
export declare const TooltipIconButton: import('react').ForwardRefExoticComponent<Omit<TooltipIconButtonProps, "ref"> & import('react').RefAttributes<HTMLButtonElement>>;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as o, jsxs as r } from "react/jsx-runtime";
|
|
3
|
+
import { forwardRef as s } from "react";
|
|
4
|
+
import { Slot as c } from "radix-ui";
|
|
5
|
+
import { TooltipProvider as m, Tooltip as p, TooltipTrigger as d, TooltipContent as u } from "../ui/tooltip.js";
|
|
6
|
+
import { Button as f } from "../ui/button.js";
|
|
7
|
+
import { cn as h } from "../../lib/cn.js";
|
|
8
|
+
const T = s(({ children: i, tooltip: t, side: n = "bottom", className: e, ...l }, a) => /* @__PURE__ */ o(m, { delayDuration: 0, children: /* @__PURE__ */ r(p, { children: [
|
|
9
|
+
/* @__PURE__ */ o(d, { asChild: !0, children: /* @__PURE__ */ r(
|
|
10
|
+
f,
|
|
11
|
+
{
|
|
12
|
+
variant: "ghost",
|
|
13
|
+
size: "icon",
|
|
14
|
+
...l,
|
|
15
|
+
className: h(
|
|
16
|
+
"aui-button-icon size-6 p-1 active:scale-90",
|
|
17
|
+
e
|
|
18
|
+
),
|
|
19
|
+
ref: a,
|
|
20
|
+
children: [
|
|
21
|
+
/* @__PURE__ */ o(c.Slottable, { children: i }),
|
|
22
|
+
/* @__PURE__ */ o("span", { className: "aui-sr-only sr-only", children: t })
|
|
23
|
+
]
|
|
24
|
+
}
|
|
25
|
+
) }),
|
|
26
|
+
/* @__PURE__ */ o(u, { side: n, children: t })
|
|
27
|
+
] }) }));
|
|
28
|
+
T.displayName = "TooltipIconButton";
|
|
29
|
+
export {
|
|
30
|
+
T as TooltipIconButton
|
|
31
|
+
};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { useVoiceState } from '@assistant-ui/react';
|
|
2
|
+
import { FC } from 'react';
|
|
3
|
+
export type VoiceOrbState = "idle" | "connecting" | "listening" | "speaking" | "muted";
|
|
4
|
+
export type VoiceOrbVariant = "default" | "blue" | "violet" | "emerald";
|
|
5
|
+
export type VoiceOrbProps = {
|
|
6
|
+
state?: VoiceOrbState;
|
|
7
|
+
variant?: VoiceOrbVariant;
|
|
8
|
+
className?: string;
|
|
9
|
+
};
|
|
10
|
+
export declare function deriveVoiceOrbState(voiceState: ReturnType<typeof useVoiceState>): VoiceOrbState;
|
|
11
|
+
export declare const VoiceOrb: FC<VoiceOrbProps>;
|
|
12
|
+
export declare const VoiceControl: FC<{
|
|
13
|
+
className?: string;
|
|
14
|
+
}>;
|
|
15
|
+
export declare const VoiceStatusDot: FC;
|
|
16
|
+
export declare const VoiceConnectButton: FC;
|
|
17
|
+
export declare const VoiceMuteButton: FC;
|
|
18
|
+
export declare const VoiceDisconnectButton: FC;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
export interface AutocompleteItem {
|
|
3
|
+
label: string;
|
|
4
|
+
value: string;
|
|
5
|
+
disabled?: boolean;
|
|
6
|
+
}
|
|
7
|
+
export interface AutocompleteProps {
|
|
8
|
+
items: AutocompleteItem[];
|
|
9
|
+
value?: string;
|
|
10
|
+
onChange?: (value: string) => void;
|
|
11
|
+
placeholder?: string;
|
|
12
|
+
disabled?: boolean;
|
|
13
|
+
isInvalid?: boolean;
|
|
14
|
+
allowsCustomValue?: boolean;
|
|
15
|
+
className?: string;
|
|
16
|
+
id?: string;
|
|
17
|
+
}
|
|
18
|
+
export declare const Autocomplete: React.ForwardRefExoticComponent<AutocompleteProps & React.RefAttributes<HTMLInputElement>>;
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsxs as w, jsx as c } from "react/jsx-runtime";
|
|
3
|
+
import * as o from "react";
|
|
4
|
+
import { MotionConfig as j, AnimatePresence as z, motion as q } from "motion/react";
|
|
5
|
+
import { Search as O, Check as P } from "../lib/icons.js";
|
|
6
|
+
import { cn as y } from "../lib/cn.js";
|
|
7
|
+
import { inputBaseClass as B } from "./field.js";
|
|
8
|
+
import { floatVariants as F } from "../lib/motion.js";
|
|
9
|
+
const K = o.forwardRef(
|
|
10
|
+
({
|
|
11
|
+
items: u,
|
|
12
|
+
value: f,
|
|
13
|
+
onChange: i,
|
|
14
|
+
placeholder: A = "Search…",
|
|
15
|
+
disabled: E,
|
|
16
|
+
isInvalid: R,
|
|
17
|
+
allowsCustomValue: p = !1,
|
|
18
|
+
className: S,
|
|
19
|
+
id: I
|
|
20
|
+
}, M) => {
|
|
21
|
+
const d = u.find((e) => e.value === f), [m, x] = o.useState((d == null ? void 0 : d.label) ?? ""), [r, a] = o.useState(!1), [n, h] = o.useState(-1), N = o.useRef(null), k = o.useRef(null), b = o.useId();
|
|
22
|
+
o.useEffect(() => {
|
|
23
|
+
x((d == null ? void 0 : d.label) ?? (p ? f ?? "" : ""));
|
|
24
|
+
}, [d, f, p]);
|
|
25
|
+
const l = o.useMemo(() => {
|
|
26
|
+
const e = m.trim().toLowerCase();
|
|
27
|
+
return e ? u.filter((t) => t.label.toLowerCase().includes(e)) : u;
|
|
28
|
+
}, [u, m]);
|
|
29
|
+
o.useEffect(() => {
|
|
30
|
+
if (!r) return;
|
|
31
|
+
const e = (t) => {
|
|
32
|
+
var s;
|
|
33
|
+
(s = N.current) != null && s.contains(t.target) || a(!1);
|
|
34
|
+
};
|
|
35
|
+
return document.addEventListener("mousedown", e), () => document.removeEventListener("mousedown", e);
|
|
36
|
+
}, [r]), o.useEffect(() => {
|
|
37
|
+
var t;
|
|
38
|
+
if (!r || n < 0) return;
|
|
39
|
+
const e = (t = k.current) == null ? void 0 : t.children[n];
|
|
40
|
+
e == null || e.scrollIntoView({ block: "nearest" });
|
|
41
|
+
}, [r, n]);
|
|
42
|
+
const D = (e) => {
|
|
43
|
+
l.length !== 0 && h((t) => {
|
|
44
|
+
let s = t;
|
|
45
|
+
for (let v = 0; v < l.length; v++)
|
|
46
|
+
if (s = (s + e + l.length) % l.length, !l[s].disabled) return s;
|
|
47
|
+
return t;
|
|
48
|
+
});
|
|
49
|
+
}, g = (e) => {
|
|
50
|
+
const t = l[e];
|
|
51
|
+
!t || t.disabled || (i == null || i(t.value), x(t.label), a(!1));
|
|
52
|
+
}, L = (e) => {
|
|
53
|
+
switch (e.key) {
|
|
54
|
+
case "ArrowDown":
|
|
55
|
+
e.preventDefault(), r ? D(1) : a(!0);
|
|
56
|
+
break;
|
|
57
|
+
case "ArrowUp":
|
|
58
|
+
e.preventDefault(), r ? D(-1) : a(!0);
|
|
59
|
+
break;
|
|
60
|
+
case "Enter":
|
|
61
|
+
r && n >= 0 ? (e.preventDefault(), g(n)) : p && (i == null || i(m), a(!1));
|
|
62
|
+
break;
|
|
63
|
+
case "Escape":
|
|
64
|
+
r && (e.preventDefault(), a(!1));
|
|
65
|
+
break;
|
|
66
|
+
case "Tab":
|
|
67
|
+
a(!1);
|
|
68
|
+
break;
|
|
69
|
+
}
|
|
70
|
+
};
|
|
71
|
+
return /* @__PURE__ */ w("div", { ref: N, className: "relative", children: [
|
|
72
|
+
/* @__PURE__ */ w("div", { className: "group/field relative", children: [
|
|
73
|
+
/* @__PURE__ */ c(
|
|
74
|
+
O,
|
|
75
|
+
{
|
|
76
|
+
className: "pointer-events-none absolute left-3 top-1/2 size-4 -translate-y-1/2 text-muted-foreground transition-colors duration-(--duration-fast) group-focus-within/field:text-foreground group-hover/field:text-foreground",
|
|
77
|
+
"aria-hidden": !0
|
|
78
|
+
}
|
|
79
|
+
),
|
|
80
|
+
/* @__PURE__ */ c(
|
|
81
|
+
"input",
|
|
82
|
+
{
|
|
83
|
+
ref: M,
|
|
84
|
+
id: I,
|
|
85
|
+
type: "text",
|
|
86
|
+
role: "combobox",
|
|
87
|
+
autoComplete: "off",
|
|
88
|
+
"aria-autocomplete": "list",
|
|
89
|
+
"aria-haspopup": "listbox",
|
|
90
|
+
"aria-expanded": r,
|
|
91
|
+
"aria-controls": b,
|
|
92
|
+
"aria-activedescendant": r && n >= 0 ? `${b}-opt-${n}` : void 0,
|
|
93
|
+
"aria-invalid": R || void 0,
|
|
94
|
+
disabled: E,
|
|
95
|
+
placeholder: A,
|
|
96
|
+
value: m,
|
|
97
|
+
onChange: (e) => {
|
|
98
|
+
x(e.target.value), a(!0), h(-1), p && (i == null || i(e.target.value));
|
|
99
|
+
},
|
|
100
|
+
onFocus: () => a(!0),
|
|
101
|
+
onKeyDown: L,
|
|
102
|
+
className: y(B, "h-10 pl-9", S)
|
|
103
|
+
}
|
|
104
|
+
)
|
|
105
|
+
] }),
|
|
106
|
+
/* @__PURE__ */ c(j, { reducedMotion: "user", children: /* @__PURE__ */ c(z, { children: r && /* @__PURE__ */ c(
|
|
107
|
+
q.ul,
|
|
108
|
+
{
|
|
109
|
+
ref: k,
|
|
110
|
+
id: b,
|
|
111
|
+
role: "listbox",
|
|
112
|
+
variants: F,
|
|
113
|
+
initial: "hidden",
|
|
114
|
+
animate: "visible",
|
|
115
|
+
exit: "hidden",
|
|
116
|
+
style: { transformOrigin: "top" },
|
|
117
|
+
className: y(
|
|
118
|
+
"absolute z-50 mt-1.5 max-h-60 w-full overflow-auto p-1",
|
|
119
|
+
"rounded-md border border-border bg-elevated shadow-elevation"
|
|
120
|
+
),
|
|
121
|
+
children: l.length === 0 ? /* @__PURE__ */ c(
|
|
122
|
+
"li",
|
|
123
|
+
{
|
|
124
|
+
role: "presentation",
|
|
125
|
+
className: "px-2 py-6 text-center text-xs text-muted-foreground",
|
|
126
|
+
children: "No results"
|
|
127
|
+
}
|
|
128
|
+
) : l.map((e, t) => {
|
|
129
|
+
const s = e.value === f, v = t === n;
|
|
130
|
+
return /* @__PURE__ */ w(
|
|
131
|
+
"li",
|
|
132
|
+
{
|
|
133
|
+
id: `${b}-opt-${t}`,
|
|
134
|
+
role: "option",
|
|
135
|
+
"aria-selected": s,
|
|
136
|
+
"aria-disabled": e.disabled || void 0,
|
|
137
|
+
onMouseEnter: () => !e.disabled && h(t),
|
|
138
|
+
onMouseDown: ($) => $.preventDefault(),
|
|
139
|
+
onClick: () => g(t),
|
|
140
|
+
className: y(
|
|
141
|
+
"flex cursor-pointer items-center justify-between gap-2",
|
|
142
|
+
"rounded-sm px-2 py-1.5 text-xs text-foreground select-none",
|
|
143
|
+
v && !e.disabled && "bg-muted",
|
|
144
|
+
e.disabled && "pointer-events-none opacity-50"
|
|
145
|
+
),
|
|
146
|
+
children: [
|
|
147
|
+
/* @__PURE__ */ c("span", { className: "truncate", children: e.label }),
|
|
148
|
+
s && /* @__PURE__ */ c(P, { className: "size-4 shrink-0", "aria-hidden": !0 })
|
|
149
|
+
]
|
|
150
|
+
},
|
|
151
|
+
e.value
|
|
152
|
+
);
|
|
153
|
+
})
|
|
154
|
+
}
|
|
155
|
+
) }) })
|
|
156
|
+
] });
|
|
157
|
+
}
|
|
158
|
+
);
|
|
159
|
+
K.displayName = "Autocomplete";
|
|
160
|
+
export {
|
|
161
|
+
K as Autocomplete
|
|
162
|
+
};
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
declare const sizeClasses: {
|
|
3
|
+
readonly sm: "size-8 text-xs";
|
|
4
|
+
readonly md: "size-10 text-xs";
|
|
5
|
+
readonly lg: "size-12 text-base";
|
|
6
|
+
readonly xl: "size-16 text-lg";
|
|
7
|
+
};
|
|
8
|
+
declare const radiusClasses: {
|
|
9
|
+
readonly full: "rounded-full";
|
|
10
|
+
readonly lg: "rounded-lg";
|
|
11
|
+
};
|
|
12
|
+
export interface AvatarProps extends Omit<React.HTMLAttributes<HTMLSpanElement>, "children"> {
|
|
13
|
+
src?: string;
|
|
14
|
+
name?: string;
|
|
15
|
+
size?: keyof typeof sizeClasses;
|
|
16
|
+
radius?: keyof typeof radiusClasses;
|
|
17
|
+
}
|
|
18
|
+
export declare const Avatar: React.ForwardRefExoticComponent<AvatarProps & React.RefAttributes<HTMLSpanElement>>;
|
|
19
|
+
export interface AvatarGroupProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
20
|
+
/** Maximum avatars to show before collapsing the rest into a `+N` chip. */
|
|
21
|
+
max?: number;
|
|
22
|
+
size?: keyof typeof sizeClasses;
|
|
23
|
+
radius?: keyof typeof radiusClasses;
|
|
24
|
+
}
|
|
25
|
+
export declare const AvatarGroup: React.ForwardRefExoticComponent<AvatarGroupProps & React.RefAttributes<HTMLDivElement>>;
|
|
26
|
+
export {};
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as r, jsxs as v } from "react/jsx-runtime";
|
|
3
|
+
import * as u from "react";
|
|
4
|
+
import { cn as n } from "../lib/cn.js";
|
|
5
|
+
const m = {
|
|
6
|
+
sm: "size-8 text-xs",
|
|
7
|
+
md: "size-10 text-xs",
|
|
8
|
+
lg: "size-12 text-base",
|
|
9
|
+
xl: "size-16 text-lg"
|
|
10
|
+
}, g = {
|
|
11
|
+
full: "rounded-full",
|
|
12
|
+
lg: "rounded-lg"
|
|
13
|
+
};
|
|
14
|
+
function b(l) {
|
|
15
|
+
const e = l.trim().split(/\s+/).filter(Boolean);
|
|
16
|
+
return e.length === 0 ? "" : e.length === 1 ? e[0].slice(0, 2).toUpperCase() : (e[0][0] + e[e.length - 1][0]).toUpperCase();
|
|
17
|
+
}
|
|
18
|
+
const x = u.forwardRef(
|
|
19
|
+
({ className: l, src: e, name: t, size: s = "md", radius: a = "full", ...o }, d) => {
|
|
20
|
+
const i = t ? b(t) : "";
|
|
21
|
+
return /* @__PURE__ */ r(
|
|
22
|
+
"span",
|
|
23
|
+
{
|
|
24
|
+
ref: d,
|
|
25
|
+
role: "img",
|
|
26
|
+
"aria-label": t,
|
|
27
|
+
className: n(
|
|
28
|
+
"relative inline-flex shrink-0 select-none items-center justify-center overflow-hidden font-medium",
|
|
29
|
+
"bg-fill text-fill-foreground",
|
|
30
|
+
m[s],
|
|
31
|
+
g[a],
|
|
32
|
+
l
|
|
33
|
+
),
|
|
34
|
+
...o,
|
|
35
|
+
children: e ? /* @__PURE__ */ r(
|
|
36
|
+
"img",
|
|
37
|
+
{
|
|
38
|
+
src: e,
|
|
39
|
+
alt: t ?? "",
|
|
40
|
+
className: "size-full object-cover"
|
|
41
|
+
}
|
|
42
|
+
) : /* @__PURE__ */ r("span", { "aria-hidden": !0, children: i })
|
|
43
|
+
}
|
|
44
|
+
);
|
|
45
|
+
}
|
|
46
|
+
);
|
|
47
|
+
x.displayName = "Avatar";
|
|
48
|
+
const N = u.forwardRef(
|
|
49
|
+
({ className: l, max: e, size: t = "md", radius: s = "full", children: a, ...o }, d) => {
|
|
50
|
+
const i = u.Children.toArray(a), c = typeof e == "number" ? i.length - e : 0, p = typeof e == "number" ? i.slice(0, e) : i;
|
|
51
|
+
return /* @__PURE__ */ v(
|
|
52
|
+
"div",
|
|
53
|
+
{
|
|
54
|
+
ref: d,
|
|
55
|
+
className: n("flex items-center", l),
|
|
56
|
+
...o,
|
|
57
|
+
children: [
|
|
58
|
+
p.map((h, f) => /* @__PURE__ */ r(
|
|
59
|
+
"div",
|
|
60
|
+
{
|
|
61
|
+
className: n(
|
|
62
|
+
"ring-2 ring-background rounded-full",
|
|
63
|
+
f > 0 && "-ml-2"
|
|
64
|
+
),
|
|
65
|
+
children: h
|
|
66
|
+
},
|
|
67
|
+
f
|
|
68
|
+
)),
|
|
69
|
+
c > 0 && /* @__PURE__ */ r("div", { className: n("ring-2 ring-background rounded-full -ml-2"), children: /* @__PURE__ */ r(
|
|
70
|
+
"span",
|
|
71
|
+
{
|
|
72
|
+
role: "img",
|
|
73
|
+
"aria-label": `${c} more`,
|
|
74
|
+
className: n(
|
|
75
|
+
"relative inline-flex shrink-0 select-none items-center justify-center overflow-hidden font-medium",
|
|
76
|
+
"bg-muted text-muted-foreground",
|
|
77
|
+
m[t],
|
|
78
|
+
g[s]
|
|
79
|
+
),
|
|
80
|
+
children: /* @__PURE__ */ r("span", { "aria-hidden": !0, children: `+${c}` })
|
|
81
|
+
}
|
|
82
|
+
) })
|
|
83
|
+
]
|
|
84
|
+
}
|
|
85
|
+
);
|
|
86
|
+
}
|
|
87
|
+
);
|
|
88
|
+
N.displayName = "AvatarGroup";
|
|
89
|
+
export {
|
|
90
|
+
x as Avatar,
|
|
91
|
+
N as AvatarGroup
|
|
92
|
+
};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { VariantProps } from 'class-variance-authority';
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
declare const badgeVariants: (props?: ({
|
|
4
|
+
variant?: "soft" | "solid" | "outline" | "dot" | null | undefined;
|
|
5
|
+
color?: "success" | "warning" | "danger" | "info" | "default" | "primary" | null | undefined;
|
|
6
|
+
} & import('class-variance-authority/types').ClassProp) | undefined) => string;
|
|
7
|
+
export interface BadgeProps extends Omit<React.HTMLAttributes<HTMLSpanElement>, "color">, VariantProps<typeof badgeVariants> {
|
|
8
|
+
}
|
|
9
|
+
export declare const Badge: React.ForwardRefExoticComponent<BadgeProps & React.RefAttributes<HTMLSpanElement>>;
|
|
10
|
+
export {};
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsxs as i, jsx as l } from "react/jsx-runtime";
|
|
3
|
+
import * as d from "react";
|
|
4
|
+
import { cva as c } from "class-variance-authority";
|
|
5
|
+
import { cn as o } from "../lib/cn.js";
|
|
6
|
+
const g = c(
|
|
7
|
+
"inline-flex items-center gap-1 rounded-full px-2 py-0.5 text-xs font-medium whitespace-nowrap",
|
|
8
|
+
{
|
|
9
|
+
variants: {
|
|
10
|
+
variant: {
|
|
11
|
+
solid: "",
|
|
12
|
+
soft: "",
|
|
13
|
+
outline: "bg-transparent border",
|
|
14
|
+
dot: "bg-transparent border border-border text-foreground"
|
|
15
|
+
},
|
|
16
|
+
color: {
|
|
17
|
+
default: "",
|
|
18
|
+
primary: "",
|
|
19
|
+
success: "",
|
|
20
|
+
warning: "",
|
|
21
|
+
danger: "",
|
|
22
|
+
info: ""
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
compoundVariants: [
|
|
26
|
+
// solid
|
|
27
|
+
{ variant: "solid", color: "default", className: "bg-fill text-fill-foreground" },
|
|
28
|
+
{ variant: "solid", color: "primary", className: "bg-brand text-brand-foreground" },
|
|
29
|
+
{ variant: "solid", color: "success", className: "bg-success text-success-foreground" },
|
|
30
|
+
{ variant: "solid", color: "warning", className: "bg-warning text-warning-foreground" },
|
|
31
|
+
{ variant: "solid", color: "danger", className: "bg-danger text-danger-foreground" },
|
|
32
|
+
{ variant: "solid", color: "info", className: "bg-info text-info-foreground" },
|
|
33
|
+
// soft
|
|
34
|
+
{ variant: "soft", color: "default", className: "bg-muted text-muted-foreground" },
|
|
35
|
+
{ variant: "soft", color: "primary", className: "bg-fill text-fill-foreground" },
|
|
36
|
+
{ variant: "soft", color: "success", className: "bg-success-50 text-success-700" },
|
|
37
|
+
{ variant: "soft", color: "warning", className: "bg-warning-50 text-warning-700" },
|
|
38
|
+
{ variant: "soft", color: "danger", className: "bg-danger-50 text-danger-700" },
|
|
39
|
+
{ variant: "soft", color: "info", className: "bg-info-50 text-info-700" },
|
|
40
|
+
// outline
|
|
41
|
+
{ variant: "outline", color: "default", className: "border-border-strong text-foreground" },
|
|
42
|
+
{ variant: "outline", color: "primary", className: "border-border-strong text-foreground" },
|
|
43
|
+
{ variant: "outline", color: "success", className: "border-success-100 text-success-700" },
|
|
44
|
+
{ variant: "outline", color: "warning", className: "border-warning-100 text-warning-700" },
|
|
45
|
+
{ variant: "outline", color: "danger", className: "border-danger-100 text-danger-700" },
|
|
46
|
+
{ variant: "outline", color: "info", className: "border-info-100 text-info-700" }
|
|
47
|
+
],
|
|
48
|
+
defaultVariants: { variant: "solid", color: "default" }
|
|
49
|
+
}
|
|
50
|
+
), f = {
|
|
51
|
+
default: "bg-muted-foreground",
|
|
52
|
+
primary: "bg-brand",
|
|
53
|
+
success: "bg-success",
|
|
54
|
+
warning: "bg-warning",
|
|
55
|
+
danger: "bg-danger",
|
|
56
|
+
info: "bg-info"
|
|
57
|
+
}, u = d.forwardRef(
|
|
58
|
+
({ className: e, variant: r = "solid", color: a = "default", children: n, ...s }, t) => /* @__PURE__ */ i(
|
|
59
|
+
"span",
|
|
60
|
+
{
|
|
61
|
+
ref: t,
|
|
62
|
+
className: o(g({ variant: r, color: a }), e),
|
|
63
|
+
...s,
|
|
64
|
+
children: [
|
|
65
|
+
r === "dot" && /* @__PURE__ */ l(
|
|
66
|
+
"span",
|
|
67
|
+
{
|
|
68
|
+
"aria-hidden": !0,
|
|
69
|
+
className: o(
|
|
70
|
+
"size-1.5 rounded-dot",
|
|
71
|
+
f[a ?? "default"]
|
|
72
|
+
)
|
|
73
|
+
}
|
|
74
|
+
),
|
|
75
|
+
n
|
|
76
|
+
]
|
|
77
|
+
}
|
|
78
|
+
)
|
|
79
|
+
);
|
|
80
|
+
u.displayName = "Badge";
|
|
81
|
+
export {
|
|
82
|
+
u as Badge
|
|
83
|
+
};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
export interface BrandMarkProps extends React.SVGProps<SVGSVGElement> {
|
|
3
|
+
/** Play the blip loop while a `group/brand` ancestor is hovered. */
|
|
4
|
+
hoverAnimate?: boolean;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* BrandMark — the growth mark as a static logo that comes alive on hover:
|
|
8
|
+
* while the wrapping `group/brand` link is hovered, the nine cells dim and
|
|
9
|
+
* shrink in the brand film's staggered blip loop (rest state is the solid
|
|
10
|
+
* mark). Inherits `currentColor`; size with a `size-*` class. Keyframes +
|
|
11
|
+
* reduced-motion handling live in `src/styles/index.css` (`.ads-mark-cell`).
|
|
12
|
+
*/
|
|
13
|
+
export declare function BrandMark({ className, hoverAnimate, ...props }: BrandMarkProps): React.JSX.Element;
|
|
14
|
+
export interface BrandLoaderProps extends React.SVGProps<SVGSVGElement> {
|
|
15
|
+
}
|
|
16
|
+
export declare function BrandLoader({ className, ...props }: BrandLoaderProps): React.JSX.Element;
|