@vllnt/ui 0.2.1-canary.9e6a7be → 0.2.1-canary.e1bc2b3

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.
@@ -0,0 +1,348 @@
1
+ "use client";
2
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
3
+ import {
4
+ createContext,
5
+ forwardRef,
6
+ useCallback,
7
+ useContext,
8
+ useEffect,
9
+ useMemo,
10
+ useRef,
11
+ useState
12
+ } from "react";
13
+ import { ArrowDown, RefreshCw, ThumbsDown, ThumbsUp } from "lucide-react";
14
+ import { cn } from "../../lib/utils";
15
+ import { ThinkingBlock } from "../thinking-block";
16
+ const ConversationThreadContext = createContext(null);
17
+ function useConversationThreadContext() {
18
+ const ctx = useContext(ConversationThreadContext);
19
+ if (!ctx) {
20
+ throw new Error(
21
+ "ConversationThread compound components must be used within <ConversationThread>"
22
+ );
23
+ }
24
+ return ctx;
25
+ }
26
+ function MessageActions({ messageId }) {
27
+ const { onFeedback, onRetry } = useConversationThreadContext();
28
+ return /* @__PURE__ */ jsxs("div", { className: "mt-2 flex items-center gap-1", children: [
29
+ onRetry ? /* @__PURE__ */ jsx(
30
+ "button",
31
+ {
32
+ "aria-label": "Retry message",
33
+ className: "rounded p-1 text-muted-foreground transition-colors hover:bg-muted hover:text-foreground",
34
+ onClick: () => {
35
+ onRetry(messageId);
36
+ },
37
+ type: "button",
38
+ children: /* @__PURE__ */ jsx(RefreshCw, { className: "h-3 w-3" })
39
+ }
40
+ ) : null,
41
+ onFeedback ? /* @__PURE__ */ jsxs(Fragment, { children: [
42
+ /* @__PURE__ */ jsx(
43
+ "button",
44
+ {
45
+ "aria-label": "Positive feedback",
46
+ className: "rounded p-1 text-muted-foreground transition-colors hover:bg-muted hover:text-foreground",
47
+ onClick: () => {
48
+ onFeedback(messageId, "positive");
49
+ },
50
+ type: "button",
51
+ children: /* @__PURE__ */ jsx(ThumbsUp, { className: "h-3 w-3" })
52
+ }
53
+ ),
54
+ /* @__PURE__ */ jsx(
55
+ "button",
56
+ {
57
+ "aria-label": "Negative feedback",
58
+ className: "rounded p-1 text-muted-foreground transition-colors hover:bg-muted hover:text-foreground",
59
+ onClick: () => {
60
+ onFeedback(messageId, "negative");
61
+ },
62
+ type: "button",
63
+ children: /* @__PURE__ */ jsx(ThumbsDown, { className: "h-3 w-3" })
64
+ }
65
+ )
66
+ ] }) : null
67
+ ] });
68
+ }
69
+ function MessageItem({ message }) {
70
+ const isUser = message.role === "user";
71
+ return /* @__PURE__ */ jsx(
72
+ "div",
73
+ {
74
+ className: cn(
75
+ "mb-4 flex gap-3",
76
+ isUser ? "justify-end" : "justify-start"
77
+ ),
78
+ children: /* @__PURE__ */ jsxs(
79
+ "div",
80
+ {
81
+ className: cn(
82
+ "max-w-[80%] rounded-2xl px-4 py-3 text-sm",
83
+ isUser ? "rounded-br-sm bg-primary text-primary-foreground" : "rounded-bl-sm bg-muted text-foreground"
84
+ ),
85
+ children: [
86
+ !isUser && message.thinking ? /* @__PURE__ */ jsx(
87
+ ThinkingBlock,
88
+ {
89
+ isStreaming: message.isStreaming,
90
+ thinking: message.thinking
91
+ }
92
+ ) : null,
93
+ message.toolCalls && message.toolCalls.length > 0 ? /* @__PURE__ */ jsx(
94
+ "ul",
95
+ {
96
+ "aria-label": "Tool calls",
97
+ className: "mb-2 flex flex-col gap-1 text-xs text-muted-foreground",
98
+ children: message.toolCalls.map((toolCall) => /* @__PURE__ */ jsx("li", { className: "font-mono", children: toolCall.name }, toolCall.id))
99
+ }
100
+ ) : null,
101
+ /* @__PURE__ */ jsx("p", { className: "whitespace-pre-wrap leading-relaxed", children: message.content }),
102
+ isUser ? null : /* @__PURE__ */ jsx(MessageActions, { messageId: message.id })
103
+ ]
104
+ }
105
+ )
106
+ }
107
+ );
108
+ }
109
+ function useConversationScroll(messages, isStreaming) {
110
+ const scrollContainerRef = useRef(null);
111
+ const messagesEndRef = useRef(null);
112
+ const isAtBottomRef = useRef(true);
113
+ const [isAtBottom, setIsAtBottom] = useState(true);
114
+ const scrollToBottom = useCallback(() => {
115
+ const element = messagesEndRef.current;
116
+ if (element && typeof element.scrollIntoView === "function") {
117
+ element.scrollIntoView({ behavior: "smooth" });
118
+ }
119
+ }, []);
120
+ const scrollToBottomInstant = useCallback(() => {
121
+ const element = messagesEndRef.current;
122
+ if (element && typeof element.scrollIntoView === "function") {
123
+ element.scrollIntoView({ behavior: "instant" });
124
+ }
125
+ }, []);
126
+ const handleScroll = useCallback(() => {
127
+ const container = scrollContainerRef.current;
128
+ if (!container) return;
129
+ const { clientHeight, scrollHeight, scrollTop } = container;
130
+ const nearBottom = scrollHeight - scrollTop - clientHeight <= 100;
131
+ isAtBottomRef.current = nearBottom;
132
+ setIsAtBottom(nearBottom);
133
+ }, []);
134
+ useEffect(() => {
135
+ if (!isAtBottomRef.current) return;
136
+ scrollToBottomInstant();
137
+ }, [messages, scrollToBottomInstant]);
138
+ useEffect(() => {
139
+ if (!isStreaming || !isAtBottomRef.current) return;
140
+ scrollToBottomInstant();
141
+ }, [isStreaming, scrollToBottomInstant]);
142
+ return {
143
+ handleScroll,
144
+ isAtBottom,
145
+ messagesEndRef,
146
+ scrollContainerRef,
147
+ scrollToBottom
148
+ };
149
+ }
150
+ const ConversationThread = forwardRef(
151
+ ({
152
+ children,
153
+ className,
154
+ isStreaming = false,
155
+ messages,
156
+ onFeedback,
157
+ onRetry,
158
+ onSend
159
+ }, reference) => {
160
+ const {
161
+ handleScroll,
162
+ isAtBottom,
163
+ messagesEndRef,
164
+ scrollContainerRef,
165
+ scrollToBottom
166
+ } = useConversationScroll(messages, isStreaming);
167
+ const contextValue = useMemo(
168
+ () => ({
169
+ handleScroll,
170
+ isAtBottom,
171
+ isStreaming,
172
+ messages,
173
+ messagesEndRef,
174
+ onFeedback,
175
+ onRetry,
176
+ onSend,
177
+ scrollContainerRef,
178
+ scrollToBottom
179
+ }),
180
+ [
181
+ handleScroll,
182
+ isAtBottom,
183
+ isStreaming,
184
+ messages,
185
+ messagesEndRef,
186
+ onFeedback,
187
+ onRetry,
188
+ onSend,
189
+ scrollContainerRef,
190
+ scrollToBottom
191
+ ]
192
+ );
193
+ return /* @__PURE__ */ jsx(ConversationThreadContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsx(
194
+ "div",
195
+ {
196
+ className: cn("flex h-full flex-col overflow-hidden", className),
197
+ ref: reference,
198
+ children
199
+ }
200
+ ) });
201
+ }
202
+ );
203
+ ConversationThread.displayName = "ConversationThread";
204
+ const ConversationHeader = forwardRef(({ children, className }, reference) => {
205
+ return /* @__PURE__ */ jsx(
206
+ "div",
207
+ {
208
+ className: cn("flex shrink-0 items-center border-b px-4 py-3", className),
209
+ ref: reference,
210
+ children
211
+ }
212
+ );
213
+ });
214
+ ConversationHeader.displayName = "ConversationHeader";
215
+ const ConversationTitle = forwardRef(({ children, className }, reference) => {
216
+ return /* @__PURE__ */ jsx(
217
+ "h2",
218
+ {
219
+ className: cn("text-sm font-semibold leading-none", className),
220
+ ref: reference,
221
+ children
222
+ }
223
+ );
224
+ });
225
+ ConversationTitle.displayName = "ConversationTitle";
226
+ const ConversationMessages = forwardRef(({ children, className }, reference) => {
227
+ const { handleScroll, messages, messagesEndRef, scrollContainerRef } = useConversationThreadContext();
228
+ return /* @__PURE__ */ jsxs("div", { className: cn("relative min-h-0 flex-1", className), ref: reference, children: [
229
+ /* @__PURE__ */ jsx(
230
+ "div",
231
+ {
232
+ "aria-label": "Conversation messages",
233
+ "aria-live": "polite",
234
+ className: "absolute inset-0 overflow-y-auto",
235
+ onScroll: handleScroll,
236
+ ref: scrollContainerRef,
237
+ role: "log",
238
+ children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col p-4", children: [
239
+ messages.map((message) => /* @__PURE__ */ jsx(MessageItem, { message }, message.id)),
240
+ /* @__PURE__ */ jsx("div", { "aria-hidden": "true", ref: messagesEndRef })
241
+ ] })
242
+ }
243
+ ),
244
+ children
245
+ ] });
246
+ });
247
+ ConversationMessages.displayName = "ConversationMessages";
248
+ const ConversationEmpty = forwardRef(({ children, className }, reference) => {
249
+ const { messages } = useConversationThreadContext();
250
+ if (messages.length > 0) return null;
251
+ return /* @__PURE__ */ jsx(
252
+ "div",
253
+ {
254
+ className: cn(
255
+ "pointer-events-none absolute inset-0 flex flex-col items-center justify-center gap-4 p-8",
256
+ className
257
+ ),
258
+ ref: reference,
259
+ children: /* @__PURE__ */ jsx("div", { className: "pointer-events-auto flex flex-col items-center gap-4", children })
260
+ }
261
+ );
262
+ });
263
+ ConversationEmpty.displayName = "ConversationEmpty";
264
+ const ConversationSuggestions = forwardRef(({ className, suggestions = [] }, reference) => {
265
+ const { onSend } = useConversationThreadContext();
266
+ return /* @__PURE__ */ jsx(
267
+ "div",
268
+ {
269
+ className: cn("flex flex-wrap justify-center gap-2", className),
270
+ ref: reference,
271
+ children: suggestions.map((suggestion) => /* @__PURE__ */ jsx(
272
+ "button",
273
+ {
274
+ className: "rounded-full border bg-background px-4 py-2 text-sm transition-colors hover:bg-muted",
275
+ onClick: () => onSend?.(suggestion),
276
+ type: "button",
277
+ children: suggestion
278
+ },
279
+ suggestion
280
+ ))
281
+ }
282
+ );
283
+ });
284
+ ConversationSuggestions.displayName = "ConversationSuggestions";
285
+ const ConversationScrollButton = forwardRef(({ className }, reference) => {
286
+ const { isAtBottom, scrollToBottom } = useConversationThreadContext();
287
+ if (isAtBottom) return null;
288
+ return /* @__PURE__ */ jsx(
289
+ "button",
290
+ {
291
+ "aria-label": "Scroll to bottom",
292
+ className: cn(
293
+ "absolute bottom-4 right-4 flex h-8 w-8 items-center justify-center rounded-full border bg-background shadow-md transition-colors hover:bg-muted",
294
+ className
295
+ ),
296
+ onClick: scrollToBottom,
297
+ ref: reference,
298
+ type: "button",
299
+ children: /* @__PURE__ */ jsx(ArrowDown, { className: "h-4 w-4" })
300
+ }
301
+ );
302
+ });
303
+ ConversationScrollButton.displayName = "ConversationScrollButton";
304
+ const ConversationLoading = forwardRef(({ className }, reference) => {
305
+ const { isStreaming, messages } = useConversationThreadContext();
306
+ const lastMessage = messages.at(-1);
307
+ if (!isStreaming || lastMessage?.role !== "assistant") return null;
308
+ return /* @__PURE__ */ jsxs(
309
+ "div",
310
+ {
311
+ "aria-label": "Assistant is typing",
312
+ className: cn(
313
+ "absolute bottom-4 left-4 flex items-center gap-1",
314
+ className
315
+ ),
316
+ ref: reference,
317
+ role: "status",
318
+ children: [
319
+ /* @__PURE__ */ jsx(
320
+ "span",
321
+ {
322
+ className: "h-2 w-2 animate-bounce rounded-full bg-muted-foreground",
323
+ style: { animationDelay: "-0.3s" }
324
+ }
325
+ ),
326
+ /* @__PURE__ */ jsx(
327
+ "span",
328
+ {
329
+ className: "h-2 w-2 animate-bounce rounded-full bg-muted-foreground",
330
+ style: { animationDelay: "-0.15s" }
331
+ }
332
+ ),
333
+ /* @__PURE__ */ jsx("span", { className: "h-2 w-2 animate-bounce rounded-full bg-muted-foreground" })
334
+ ]
335
+ }
336
+ );
337
+ });
338
+ ConversationLoading.displayName = "ConversationLoading";
339
+ export {
340
+ ConversationEmpty,
341
+ ConversationHeader,
342
+ ConversationLoading,
343
+ ConversationMessages,
344
+ ConversationScrollButton,
345
+ ConversationSuggestions,
346
+ ConversationThread,
347
+ ConversationTitle
348
+ };
@@ -0,0 +1,20 @@
1
+ import {
2
+ ConversationEmpty,
3
+ ConversationHeader,
4
+ ConversationLoading,
5
+ ConversationMessages,
6
+ ConversationScrollButton,
7
+ ConversationSuggestions,
8
+ ConversationThread,
9
+ ConversationTitle
10
+ } from "./conversation-thread";
11
+ export {
12
+ ConversationEmpty,
13
+ ConversationHeader,
14
+ ConversationLoading,
15
+ ConversationMessages,
16
+ ConversationScrollButton,
17
+ ConversationSuggestions,
18
+ ConversationThread,
19
+ ConversationTitle
20
+ };
@@ -539,6 +539,16 @@ import {
539
539
  ObjectCard
540
540
  } from "./object-card";
541
541
  import { ObjectHandle } from "./object-handle";
542
+ import {
543
+ ConversationEmpty,
544
+ ConversationHeader,
545
+ ConversationLoading,
546
+ ConversationMessages,
547
+ ConversationScrollButton,
548
+ ConversationSuggestions,
549
+ ConversationThread,
550
+ ConversationTitle
551
+ } from "./conversation-thread";
542
552
  import { InlineInput } from "./inline-input";
543
553
  import {
544
554
  ModelSelector
@@ -644,6 +654,14 @@ export {
644
654
  ContextMenuSubContent,
645
655
  ContextMenuSubTrigger,
646
656
  ContextMenuTrigger,
657
+ ConversationEmpty,
658
+ ConversationHeader,
659
+ ConversationLoading,
660
+ ConversationMessages,
661
+ ConversationScrollButton,
662
+ ConversationSuggestions,
663
+ ConversationThread,
664
+ ConversationTitle,
647
665
  CookieConsent,
648
666
  CountdownTimer,
649
667
  CreditBadge,
package/dist/index.d.ts CHANGED
@@ -3460,6 +3460,105 @@ declare const ObjectHandle: react.ForwardRefExoticComponent<Omit<Omit<react.Deta
3460
3460
  label?: ReactNode;
3461
3461
  } & react.RefAttributes<HTMLButtonElement>>;
3462
3462
 
3463
+ /** A single tool call made by the assistant. */
3464
+ type ToolCall = {
3465
+ id: string;
3466
+ input?: Record<string, unknown>;
3467
+ name: string;
3468
+ result?: string;
3469
+ };
3470
+ /** A single message in the conversation. */
3471
+ type ConversationMessage = {
3472
+ content: string;
3473
+ id: string;
3474
+ /** Whether the assistant still streams this individual message. */
3475
+ isStreaming?: boolean;
3476
+ role: "assistant" | "user";
3477
+ /** AI reasoning/thinking content. The component renders this via ThinkingBlock. */
3478
+ thinking?: string;
3479
+ toolCalls?: ToolCall[];
3480
+ };
3481
+ type ConversationThreadProps = {
3482
+ children?: ReactNode;
3483
+ className?: string;
3484
+ /** Whether the assistant generates a response. */
3485
+ isStreaming?: boolean;
3486
+ messages: ConversationMessage[];
3487
+ onFeedback?: (messageId: string, feedback: "negative" | "positive") => void;
3488
+ onRetry?: (messageId: string) => void;
3489
+ /** Calls onSend with the suggestion text after the user clicks a ConversationSuggestions chip. */
3490
+ onSend?: (message: string) => void;
3491
+ };
3492
+ type ConversationHeaderProps = {
3493
+ children?: ReactNode;
3494
+ className?: string;
3495
+ };
3496
+ type ConversationTitleProps = {
3497
+ children?: ReactNode;
3498
+ className?: string;
3499
+ };
3500
+ type ConversationMessagesProps = {
3501
+ /** Overlay children: ConversationEmpty, ConversationScrollButton, ConversationLoading. */
3502
+ children?: ReactNode;
3503
+ className?: string;
3504
+ };
3505
+ type ConversationEmptyProps = {
3506
+ children?: ReactNode;
3507
+ className?: string;
3508
+ };
3509
+ type ConversationSuggestionsProps = {
3510
+ className?: string;
3511
+ suggestions?: string[];
3512
+ };
3513
+ type ConversationScrollButtonProps = {
3514
+ className?: string;
3515
+ };
3516
+ type ConversationLoadingProps = {
3517
+ className?: string;
3518
+ };
3519
+ /**
3520
+ * Root provider for the ConversationThread compound component family.
3521
+ *
3522
+ * @example
3523
+ * ```tsx
3524
+ * <ConversationThread messages={messages} isStreaming={isStreaming} onSend={handleSend}>
3525
+ * <ConversationHeader><ConversationTitle>Chat</ConversationTitle></ConversationHeader>
3526
+ * <ConversationMessages>
3527
+ * <ConversationEmpty>
3528
+ * <ConversationSuggestions suggestions={["Hello!", "Help me with..."]} />
3529
+ * </ConversationEmpty>
3530
+ * <ConversationScrollButton />
3531
+ * <ConversationLoading />
3532
+ * </ConversationMessages>
3533
+ * </ConversationThread>
3534
+ * ```
3535
+ */
3536
+ declare const ConversationThread: react.ForwardRefExoticComponent<ConversationThreadProps & react.RefAttributes<HTMLDivElement>>;
3537
+ /** Optional header slot, rendered above the message list. */
3538
+ declare const ConversationHeader: react.ForwardRefExoticComponent<ConversationHeaderProps & react.RefAttributes<HTMLDivElement>>;
3539
+ /** Title text for use inside ConversationHeader. */
3540
+ declare const ConversationTitle: react.ForwardRefExoticComponent<ConversationTitleProps & react.RefAttributes<HTMLHeadingElement>>;
3541
+ /**
3542
+ * Scrollable message list container. Renders messages from context.
3543
+ * Pass ConversationEmpty, ConversationScrollButton, and ConversationLoading as children —
3544
+ * the component renders these as absolute overlays that read state from context.
3545
+ */
3546
+ declare const ConversationMessages: react.ForwardRefExoticComponent<ConversationMessagesProps & react.RefAttributes<HTMLDivElement>>;
3547
+ /**
3548
+ * Shown when the message list is empty. Hides automatically once messages exist.
3549
+ * Renders as a centered overlay — pass ConversationSuggestions or custom content as children.
3550
+ */
3551
+ declare const ConversationEmpty: react.ForwardRefExoticComponent<ConversationEmptyProps & react.RefAttributes<HTMLDivElement>>;
3552
+ /** Suggested prompt chips displayed in the empty state. Calls onSend when clicked. */
3553
+ declare const ConversationSuggestions: react.ForwardRefExoticComponent<ConversationSuggestionsProps & react.RefAttributes<HTMLDivElement>>;
3554
+ /** Floating button that appears when the user scrolls up, to jump back to the bottom. */
3555
+ declare const ConversationScrollButton: react.ForwardRefExoticComponent<ConversationScrollButtonProps & react.RefAttributes<HTMLButtonElement>>;
3556
+ /**
3557
+ * Typing indicator shown while the assistant is streaming a response.
3558
+ * Visible when isStreaming is true and the last message role is "assistant".
3559
+ */
3560
+ declare const ConversationLoading: react.ForwardRefExoticComponent<ConversationLoadingProps & react.RefAttributes<HTMLDivElement>>;
3561
+
3463
3562
  type InlineInputProps = {
3464
3563
  className?: string;
3465
3564
  /** Called when user presses Escape or blurs without changes. */
@@ -3624,4 +3723,4 @@ declare function useHorizontalScroll(): UseHorizontalScrollReturn;
3624
3723
 
3625
3724
  declare function cn(...inputs: ClassValue[]): string;
3626
3725
 
3627
- export { AIChatInput, type AIChatInputProps, AIMessageBubble, type AIMessageBubbleProps, AISourceCitation, type AISourceCitationProps, AIStreamingText, type AIStreamingTextProps, AIToolCallDisplay, type AIToolCallDisplayProps, type AIToolCallStatus, Accordion, AccordionContent, type AccordionContentProps, AccordionItem, type AccordionItemProps, type AccordionProps, AccordionTrigger, type AccordionTriggerProps, ActivityHeatmap, type ActivityHeatmapItem, type ActivityHeatmapProps, ActivityLog, type ActivityLogItem, type ActivityLogProps, type ActivityLogTone, Alert, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertTitle, AnchorPort, type AnchorPortProps, AnimatedText, type AnimatedTextProps, Annotation, type AnnotationProps, AreaChart, AspectRatio, Avatar, AvatarFallback, AvatarGroup, type AvatarGroupItem, type AvatarGroupProps, AvatarImage, Badge, type BadgeProps, BarChart, BeforeAfter, type BeforeAfterProps, BlogCard, BorderBeam, type BorderBeamProps, BottomBar, type BottomBarProps, Breadcrumb, type BreadcrumbItem, Button, type ButtonProps, Calendar, type CalendarProps, Callout, type CalloutProps, type CalloutVariant, CandlestickChart, type CandlestickChartProps, type CandlestickDatum, CanvasShell, type CanvasShellInsets, type CanvasShellProps, type CanvasShellRouteConfig, CanvasView, type CanvasViewHandle, type CanvasViewProps, type CanvasViewport, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Carousel, type CarouselApi, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious, CategoryFilter, type ChatDockMessage, ChatDockSection, type ChatDockSectionProps, Checkbox, Checklist, type ChecklistItem, type ChecklistProps, CodeBlock, CodePlayground, type CodePlaygroundProps, Collapsible, CollapsibleContent, CollapsibleTrigger, Combobox, type ComboboxOption, type ComboboxProps, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, CommonMistake, type CommonMistakeProps, Comparison, type ComparisonProps, CompletionDialog, type CompletionDialogProps, ConnectorEdge, type ConnectorEdgePoint, type ConnectorEdgeProps, Content, ContentCard$1 as ContentCard, ContentIntro, type ContentIntroLabels, type ContentIntroProps, type ContentIntroSection, type ContentMeta, type ContentProgress, type ContentSection, type ContentSectionMinimal, ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, CookieConsent, type CookieConsentProps, type CopyStatus, CountdownTimer, type CountdownTimerProps, CreditBadge, type CreditBadgeProps, type CreditBadgeStatus, Curriculum, CurriculumLesson, type CurriculumLessonProps, CurriculumModule, type CurriculumModuleProps, type CurriculumProps, DataList, DataListItem, type DataListItemProps, DataListLabel, type DataListProps, DataListValue, DataTableComponent as DataTable, type DataTableFilter, type DataTableFilterOption, type DataTableProps, DatePicker, type DatePickerProps, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, type DifficultyLevel, Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, EdgeLabel, type EdgeLabelProps, Exercise, type ExerciseProps, FAQ, FAQItem, type FAQItemProps, type FAQProps, FileTree, type FileTreeProps, FileUpload, type FileUploadProps, FilterBar, type FilterBarLabels, type FilterBarProps, type FilterOption, type FilterUpdates, Flashcard, type FlashcardProps, FloatingActionButton, type FloatingActionButtonProps, FlowControls, type FlowControlsProps, FlowDiagram, type FlowDiagramEdge, type FlowDiagramNode, type FlowDiagramProps, FlowErrorBoundary, FlowFullscreen, type FlowFullscreenProps, Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, type FormProps, GlassPanel, type GlassPanelProps, Glossary, type GlossaryProps, GroupHull, type GroupHullProps, Highlight, type HighlightProps, HorizontalScrollRow, type HorizontalScrollRowProps, HoverCard, HoverCardContent, HoverCardTrigger, InlineInput, type InlineInputProps, Input, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, KeyConcept, type KeyConceptProps, type KeyboardShortcut, KeyboardShortcutsHelp, type KeyboardShortcutsHelpProps, LANGUAGE_NAMES, Label, LangProvider, LearningObjectives, type LearningObjectivesProps, LeftRail, type LeftRailProps, type LessonDifficulty, type LessonStatus, LineChart, LiveFeed, type LiveFeedEvent, type LiveFeedProps, MDXContent, MarketTreemap, type MarketTreemapItem, type MarketTreemapProps, Marquee, type MarqueeProps, Menubar, MenubarCheckboxItem, MenubarContent, MenubarGroup, MenubarItem, MenubarLabel, MenubarMenu, MenubarPortal, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger, MetricGauge, type MetricGaugeProps, type MetricGaugeThreshold, type MiniMapMarker, MiniMapPanel, type MiniMapPanelProps, type ModelInfo, ModelSelector, type ModelSelectorProps, MultiSelect, type MultiSelectOption, type MultiSelectProps, type NavItem, NavbarSaas, type NavbarSaasProps, NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, NavigationMenuViewport, NumberInput, type NumberInputProps, NumberTicker, type NumberTickerProps, ObjectCard, type ObjectCardAction, type ObjectCardMetric, type ObjectCardProps, ObjectHandle, type ObjectHandleProps, OrderBook, type OrderBookLevel, type OrderBookProps, OverviewBoard, type OverviewBoardItem, type OverviewBoardProps, OverviewCard, type OverviewCardProps, type OverviewCardTone, Pagination, type PaginationProps, PasswordInput, type PasswordInputProps, PlanBadge, type PlanBadgeProps, type PlanBadgeState, type PlanBadgeTier, type PlatformConfig, Popover, PopoverAnchor, PopoverContent, PopoverTrigger, Prerequisites, type PrerequisitesProps, ProTip, type ProTipProps, type ProTipVariant, ProfileSection, ProgressBar, type ProgressBarProps, ContentCard as ProgressCard, type ContentCardProgress as ProgressCardProgress, type ContentCardProps as ProgressCardProps, ProgressTracker, ProgressTrackerBadge, type ProgressTrackerBadgeProps, ProgressTrackerModule, type ProgressTrackerModuleItem, type ProgressTrackerModuleProps, type ProgressTrackerModuleStatus, ProgressTrackerModules, type ProgressTrackerModulesProps, ProgressTrackerOverview, type ProgressTrackerOverviewProps, type ProgressTrackerProps, ProgressTrackerStat, type ProgressTrackerStatProps, ProgressTrackerStats, type ProgressTrackerStatsProps, Quiz, type QuizOption, type QuizProps, RadioGroup, RadioGroupItem, Rating, type RatingProps, ResizableHandle, ResizablePanel, ResizablePanelGroup, RightDock, type RightDockProps, RoleBadge, type RoleBadgeProps, type RoleBadgeRole, ScopeSelector, type ScopeSelectorNode, type ScopeSelectorProps, type ScopeSelectorSelection, ScrollArea, ScrollBar, SearchBar, SearchDialog, SegmentedControl, SegmentedControlItem, type SegmentedControlItemProps, type SegmentedControlProps, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, SeverityBadge, type SeverityBadgeLevel, type SeverityBadgeProps, ShareDialog, type ShareDialogLabels, type SharePlatform as ShareDialogPlatform, type ShareDialogProps, type SharePlatform$1 as SharePlatform, type SharePlatformConfig, ShareSection, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, SheetTitle, SheetTrigger, Sidebar, type SidebarItem, SidebarProvider, type SidebarSection, SidebarToggle, type SidebarToggleProps, SimpleTerminal, type SimpleTerminalProps, Skeleton, Slider, Slideshow, type SlideshowLabels, type SlideshowProps, type SlideshowSection, SocialFAB, type SocialFabActionConfig, type SocialFabLabels, type SocialFabProps, SparklineGrid, type SparklineGridItem, type SparklineGridProps, Spinner, type SpinnerProps, StatCard, type StatCardProps, StatusBoard, type StatusBoardItem, type StatusBoardProps, type StatusBoardStatus, StatusIndicator, type StatusIndicatorProps, Step, StepByStep, type StepByStepProps, StepNavigation, type StepNavigationProps, type StepProps, Stepper, type StepperProps, type StepperStep, SubscriptionCard, type SubscriptionCardProps, type SubscriptionCardStatus, Summary, type SummaryProps, Switch, TLDRSection, type TOCSection, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableOfContents, TableOfContentsPanel, type TableOfContentsPanelProps, TableRow, Tabs, TabsContent, type TabsContentProps, TabsList, type TabsListProps, type TabsProps, TabsTrigger, type TabsTriggerProps, TagsInput, type TagsInputProps, Terminal, type TerminalLine, type TerminalProps, Textarea, type TextareaProps, ThemeProvider, ThemeToggle, ThinkingBlock, type ThinkingBlockProps, TickerTape, type TickerTapeItem, type TickerTapeProps, Toast, ToastAction, ToastClose, ToastDescription, type ToastProps, ToastTitle, Toaster, Toggle, ToggleGroup, ToggleGroupItem, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, TopBar, type TopBarProps, Tour, type TourProps, type TourStep, TruncatedText, type TruncatedTextProps, TutorialCard, type TutorialCardLabels, type TutorialCardMeta, type TutorialCardProgress, type TutorialCardProps, TutorialComplete, type TutorialCompleteLabels, type TutorialCompleteProps, type TutorialCompleteRelatedContent, type TutorialCompleteSection, TutorialFilters, type TutorialFiltersLabels, type TutorialFiltersProps, TutorialIntroContent, type TutorialIntroContentProps, TutorialMDX, type TutorialMDXProps, type SupportedLanguage as UISupportedLanguage, UnicodeSpinner, type UnicodeSpinnerAnimation, type UnicodeSpinnerProps, UsageBreakdown, type UsageBreakdownItem, type UsageBreakdownProps, type UsageBreakdownTone, type UseFlowDiagramOptions, type UseFlowDiagramReturn, VideoEmbed, type VideoEmbedProps, type ViewOption, ViewSwitcher, type ViewSwitcherProps, WalletCard, type WalletCardProps, Watchlist, type WatchlistItem, type WatchlistProps, type WorkspaceOption, WorkspaceSwitcher, type WorkspaceSwitcherProps, WorldClockBar, type WorldClockBarProps, type WorldClockBarZone, ZoomHUD, type ZoomHUDProps, alertVariants, avatarGroupVariants, avatarItemVariants, badgeVariants, buttonVariants, cn, cookieConsentVariants, dataListItemVariants, dataListVariants, dotVariants, getOtherLanguage, mdxComponents, navigationMenuTriggerStyle, segmentedControlItemVariants, segmentedControlVariants, severityBadgeVariants, statCardVariants, statusIndicatorVariants, toggleVariants, useDebounce, useFlowDiagram, useFormField, useHorizontalScroll, useMobile, useProgressTrackerContext, useSidebar, useSocialFab };
3726
+ export { AIChatInput, type AIChatInputProps, AIMessageBubble, type AIMessageBubbleProps, AISourceCitation, type AISourceCitationProps, AIStreamingText, type AIStreamingTextProps, AIToolCallDisplay, type AIToolCallDisplayProps, type AIToolCallStatus, Accordion, AccordionContent, type AccordionContentProps, AccordionItem, type AccordionItemProps, type AccordionProps, AccordionTrigger, type AccordionTriggerProps, ActivityHeatmap, type ActivityHeatmapItem, type ActivityHeatmapProps, ActivityLog, type ActivityLogItem, type ActivityLogProps, type ActivityLogTone, Alert, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertTitle, AnchorPort, type AnchorPortProps, AnimatedText, type AnimatedTextProps, Annotation, type AnnotationProps, AreaChart, AspectRatio, Avatar, AvatarFallback, AvatarGroup, type AvatarGroupItem, type AvatarGroupProps, AvatarImage, Badge, type BadgeProps, BarChart, BeforeAfter, type BeforeAfterProps, BlogCard, BorderBeam, type BorderBeamProps, BottomBar, type BottomBarProps, Breadcrumb, type BreadcrumbItem, Button, type ButtonProps, Calendar, type CalendarProps, Callout, type CalloutProps, type CalloutVariant, CandlestickChart, type CandlestickChartProps, type CandlestickDatum, CanvasShell, type CanvasShellInsets, type CanvasShellProps, type CanvasShellRouteConfig, CanvasView, type CanvasViewHandle, type CanvasViewProps, type CanvasViewport, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Carousel, type CarouselApi, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious, CategoryFilter, type ChatDockMessage, ChatDockSection, type ChatDockSectionProps, Checkbox, Checklist, type ChecklistItem, type ChecklistProps, CodeBlock, CodePlayground, type CodePlaygroundProps, Collapsible, CollapsibleContent, CollapsibleTrigger, Combobox, type ComboboxOption, type ComboboxProps, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, CommonMistake, type CommonMistakeProps, Comparison, type ComparisonProps, CompletionDialog, type CompletionDialogProps, ConnectorEdge, type ConnectorEdgePoint, type ConnectorEdgeProps, Content, ContentCard$1 as ContentCard, ContentIntro, type ContentIntroLabels, type ContentIntroProps, type ContentIntroSection, type ContentMeta, type ContentProgress, type ContentSection, type ContentSectionMinimal, ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, ConversationEmpty, type ConversationEmptyProps, ConversationHeader, type ConversationHeaderProps, ConversationLoading, type ConversationLoadingProps, type ConversationMessage, ConversationMessages, type ConversationMessagesProps, ConversationScrollButton, type ConversationScrollButtonProps, ConversationSuggestions, type ConversationSuggestionsProps, ConversationThread, type ConversationThreadProps, ConversationTitle, type ConversationTitleProps, CookieConsent, type CookieConsentProps, type CopyStatus, CountdownTimer, type CountdownTimerProps, CreditBadge, type CreditBadgeProps, type CreditBadgeStatus, Curriculum, CurriculumLesson, type CurriculumLessonProps, CurriculumModule, type CurriculumModuleProps, type CurriculumProps, DataList, DataListItem, type DataListItemProps, DataListLabel, type DataListProps, DataListValue, DataTableComponent as DataTable, type DataTableFilter, type DataTableFilterOption, type DataTableProps, DatePicker, type DatePickerProps, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, type DifficultyLevel, Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, EdgeLabel, type EdgeLabelProps, Exercise, type ExerciseProps, FAQ, FAQItem, type FAQItemProps, type FAQProps, FileTree, type FileTreeProps, FileUpload, type FileUploadProps, FilterBar, type FilterBarLabels, type FilterBarProps, type FilterOption, type FilterUpdates, Flashcard, type FlashcardProps, FloatingActionButton, type FloatingActionButtonProps, FlowControls, type FlowControlsProps, FlowDiagram, type FlowDiagramEdge, type FlowDiagramNode, type FlowDiagramProps, FlowErrorBoundary, FlowFullscreen, type FlowFullscreenProps, Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, type FormProps, GlassPanel, type GlassPanelProps, Glossary, type GlossaryProps, GroupHull, type GroupHullProps, Highlight, type HighlightProps, HorizontalScrollRow, type HorizontalScrollRowProps, HoverCard, HoverCardContent, HoverCardTrigger, InlineInput, type InlineInputProps, Input, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, KeyConcept, type KeyConceptProps, type KeyboardShortcut, KeyboardShortcutsHelp, type KeyboardShortcutsHelpProps, LANGUAGE_NAMES, Label, LangProvider, LearningObjectives, type LearningObjectivesProps, LeftRail, type LeftRailProps, type LessonDifficulty, type LessonStatus, LineChart, LiveFeed, type LiveFeedEvent, type LiveFeedProps, MDXContent, MarketTreemap, type MarketTreemapItem, type MarketTreemapProps, Marquee, type MarqueeProps, Menubar, MenubarCheckboxItem, MenubarContent, MenubarGroup, MenubarItem, MenubarLabel, MenubarMenu, MenubarPortal, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger, MetricGauge, type MetricGaugeProps, type MetricGaugeThreshold, type MiniMapMarker, MiniMapPanel, type MiniMapPanelProps, type ModelInfo, ModelSelector, type ModelSelectorProps, MultiSelect, type MultiSelectOption, type MultiSelectProps, type NavItem, NavbarSaas, type NavbarSaasProps, NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, NavigationMenuViewport, NumberInput, type NumberInputProps, NumberTicker, type NumberTickerProps, ObjectCard, type ObjectCardAction, type ObjectCardMetric, type ObjectCardProps, ObjectHandle, type ObjectHandleProps, OrderBook, type OrderBookLevel, type OrderBookProps, OverviewBoard, type OverviewBoardItem, type OverviewBoardProps, OverviewCard, type OverviewCardProps, type OverviewCardTone, Pagination, type PaginationProps, PasswordInput, type PasswordInputProps, PlanBadge, type PlanBadgeProps, type PlanBadgeState, type PlanBadgeTier, type PlatformConfig, Popover, PopoverAnchor, PopoverContent, PopoverTrigger, Prerequisites, type PrerequisitesProps, ProTip, type ProTipProps, type ProTipVariant, ProfileSection, ProgressBar, type ProgressBarProps, ContentCard as ProgressCard, type ContentCardProgress as ProgressCardProgress, type ContentCardProps as ProgressCardProps, ProgressTracker, ProgressTrackerBadge, type ProgressTrackerBadgeProps, ProgressTrackerModule, type ProgressTrackerModuleItem, type ProgressTrackerModuleProps, type ProgressTrackerModuleStatus, ProgressTrackerModules, type ProgressTrackerModulesProps, ProgressTrackerOverview, type ProgressTrackerOverviewProps, type ProgressTrackerProps, ProgressTrackerStat, type ProgressTrackerStatProps, ProgressTrackerStats, type ProgressTrackerStatsProps, Quiz, type QuizOption, type QuizProps, RadioGroup, RadioGroupItem, Rating, type RatingProps, ResizableHandle, ResizablePanel, ResizablePanelGroup, RightDock, type RightDockProps, RoleBadge, type RoleBadgeProps, type RoleBadgeRole, ScopeSelector, type ScopeSelectorNode, type ScopeSelectorProps, type ScopeSelectorSelection, ScrollArea, ScrollBar, SearchBar, SearchDialog, SegmentedControl, SegmentedControlItem, type SegmentedControlItemProps, type SegmentedControlProps, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, SeverityBadge, type SeverityBadgeLevel, type SeverityBadgeProps, ShareDialog, type ShareDialogLabels, type SharePlatform as ShareDialogPlatform, type ShareDialogProps, type SharePlatform$1 as SharePlatform, type SharePlatformConfig, ShareSection, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, SheetTitle, SheetTrigger, Sidebar, type SidebarItem, SidebarProvider, type SidebarSection, SidebarToggle, type SidebarToggleProps, SimpleTerminal, type SimpleTerminalProps, Skeleton, Slider, Slideshow, type SlideshowLabels, type SlideshowProps, type SlideshowSection, SocialFAB, type SocialFabActionConfig, type SocialFabLabels, type SocialFabProps, SparklineGrid, type SparklineGridItem, type SparklineGridProps, Spinner, type SpinnerProps, StatCard, type StatCardProps, StatusBoard, type StatusBoardItem, type StatusBoardProps, type StatusBoardStatus, StatusIndicator, type StatusIndicatorProps, Step, StepByStep, type StepByStepProps, StepNavigation, type StepNavigationProps, type StepProps, Stepper, type StepperProps, type StepperStep, SubscriptionCard, type SubscriptionCardProps, type SubscriptionCardStatus, Summary, type SummaryProps, Switch, TLDRSection, type TOCSection, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableOfContents, TableOfContentsPanel, type TableOfContentsPanelProps, TableRow, Tabs, TabsContent, type TabsContentProps, TabsList, type TabsListProps, type TabsProps, TabsTrigger, type TabsTriggerProps, TagsInput, type TagsInputProps, Terminal, type TerminalLine, type TerminalProps, Textarea, type TextareaProps, ThemeProvider, ThemeToggle, ThinkingBlock, type ThinkingBlockProps, TickerTape, type TickerTapeItem, type TickerTapeProps, Toast, ToastAction, ToastClose, ToastDescription, type ToastProps, ToastTitle, Toaster, Toggle, ToggleGroup, ToggleGroupItem, type ToolCall, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, TopBar, type TopBarProps, Tour, type TourProps, type TourStep, TruncatedText, type TruncatedTextProps, TutorialCard, type TutorialCardLabels, type TutorialCardMeta, type TutorialCardProgress, type TutorialCardProps, TutorialComplete, type TutorialCompleteLabels, type TutorialCompleteProps, type TutorialCompleteRelatedContent, type TutorialCompleteSection, TutorialFilters, type TutorialFiltersLabels, type TutorialFiltersProps, TutorialIntroContent, type TutorialIntroContentProps, TutorialMDX, type TutorialMDXProps, type SupportedLanguage as UISupportedLanguage, UnicodeSpinner, type UnicodeSpinnerAnimation, type UnicodeSpinnerProps, UsageBreakdown, type UsageBreakdownItem, type UsageBreakdownProps, type UsageBreakdownTone, type UseFlowDiagramOptions, type UseFlowDiagramReturn, VideoEmbed, type VideoEmbedProps, type ViewOption, ViewSwitcher, type ViewSwitcherProps, WalletCard, type WalletCardProps, Watchlist, type WatchlistItem, type WatchlistProps, type WorkspaceOption, WorkspaceSwitcher, type WorkspaceSwitcherProps, WorldClockBar, type WorldClockBarProps, type WorldClockBarZone, ZoomHUD, type ZoomHUDProps, alertVariants, avatarGroupVariants, avatarItemVariants, badgeVariants, buttonVariants, cn, cookieConsentVariants, dataListItemVariants, dataListVariants, dotVariants, getOtherLanguage, mdxComponents, navigationMenuTriggerStyle, segmentedControlItemVariants, segmentedControlVariants, severityBadgeVariants, statCardVariants, statusIndicatorVariants, toggleVariants, useDebounce, useFlowDiagram, useFormField, useHorizontalScroll, useMobile, useProgressTrackerContext, useSidebar, useSocialFab };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vllnt/ui",
3
- "version": "0.2.1-canary.9e6a7be",
3
+ "version": "0.2.1-canary.e1bc2b3",
4
4
  "description": "React component library — 93 components built on Radix UI, Tailwind CSS, and CVA",
5
5
  "license": "MIT",
6
6
  "author": "vllnt",