@fairshare/ui-kit 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.
Files changed (72) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +76 -0
  3. package/dist/accordion/Accordion.d.ts +11 -0
  4. package/dist/agent-status/AgentStatus.d.ts +8 -0
  5. package/dist/approval-gate/ApprovalGate.d.ts +12 -0
  6. package/dist/attachments/Attachments.d.ts +10 -0
  7. package/dist/avatar/Avatar.d.ts +10 -0
  8. package/dist/badge/Badge.d.ts +6 -0
  9. package/dist/banner/Banner.d.ts +14 -0
  10. package/dist/branch/Branch.d.ts +8 -0
  11. package/dist/breadcrumbs/Breadcrumbs.d.ts +10 -0
  12. package/dist/button/Button.d.ts +7 -0
  13. package/dist/card/Card.d.ts +8 -0
  14. package/dist/chain-of-thought/ChainOfThought.d.ts +11 -0
  15. package/dist/checkbox/Checkbox.d.ts +3 -0
  16. package/dist/checkpoint/Checkpoint.d.ts +6 -0
  17. package/dist/code-block/CodeBlock.d.ts +5 -0
  18. package/dist/combobox/Combobox.d.ts +10 -0
  19. package/dist/commit/Commit.d.ts +13 -0
  20. package/dist/confidence-badge/ConfidenceBadge.d.ts +8 -0
  21. package/dist/connection/Connection.d.ts +8 -0
  22. package/dist/conversation/Conversation.d.ts +7 -0
  23. package/dist/description-list/DescriptionList.d.ts +9 -0
  24. package/dist/dialog/Dialog.d.ts +16 -0
  25. package/dist/diff-view/DiffView.d.ts +12 -0
  26. package/dist/drawer/Drawer.d.ts +8 -0
  27. package/dist/empty-state/EmptyState.d.ts +8 -0
  28. package/dist/feedback-buttons/FeedbackButtons.d.ts +4 -0
  29. package/dist/field/Field.d.ts +11 -0
  30. package/dist/index.d.ts +66 -0
  31. package/dist/index.js +2629 -0
  32. package/dist/inline-citation/InlineCitation.d.ts +8 -0
  33. package/dist/input/Input.d.ts +9 -0
  34. package/dist/label/Label.d.ts +3 -0
  35. package/dist/menu/Menu.d.ts +22 -0
  36. package/dist/message/Message.d.ts +7 -0
  37. package/dist/message-actions/MessageActions.d.ts +8 -0
  38. package/dist/meter/Meter.d.ts +6 -0
  39. package/dist/number-field/NumberField.d.ts +3 -0
  40. package/dist/pagination/Pagination.d.ts +6 -0
  41. package/dist/plan/Plan.d.ts +11 -0
  42. package/dist/popover/Popover.d.ts +8 -0
  43. package/dist/progress/Progress.d.ts +3 -0
  44. package/dist/prompt-input/PromptInput.d.ts +12 -0
  45. package/dist/queue/Queue.d.ts +10 -0
  46. package/dist/radio/RadioGroup.d.ts +10 -0
  47. package/dist/select/Select.d.ts +12 -0
  48. package/dist/shimmer/Shimmer.d.ts +6 -0
  49. package/dist/sidebar/Sidebar.d.ts +42 -0
  50. package/dist/skeleton/Skeleton.d.ts +8 -0
  51. package/dist/slider/Slider.d.ts +3 -0
  52. package/dist/sources/Sources.d.ts +11 -0
  53. package/dist/spinner/Spinner.d.ts +5 -0
  54. package/dist/stack-trace/StackTrace.d.ts +11 -0
  55. package/dist/stat-card/StatCard.d.ts +9 -0
  56. package/dist/streaming-text/StreamingText.d.ts +8 -0
  57. package/dist/styles.css +2 -0
  58. package/dist/suggestion-chip/SuggestionChip.d.ts +9 -0
  59. package/dist/switch/Switch.d.ts +3 -0
  60. package/dist/table/Table.d.ts +21 -0
  61. package/dist/tabs/Tabs.d.ts +11 -0
  62. package/dist/terminal/Terminal.d.ts +10 -0
  63. package/dist/test-results/TestResults.d.ts +9 -0
  64. package/dist/thinking-block/ThinkingBlock.d.ts +11 -0
  65. package/dist/toast/Toast.d.ts +13 -0
  66. package/dist/token-meter/TokenMeter.d.ts +9 -0
  67. package/dist/tool-call-timeline/ToolCallTimeline.d.ts +13 -0
  68. package/dist/tooltip/Tooltip.d.ts +9 -0
  69. package/dist/tree/Tree.d.ts +19 -0
  70. package/dist/user-profile/UserProfile.d.ts +16 -0
  71. package/dist/web-preview/WebPreview.d.ts +7 -0
  72. package/package.json +60 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Agent Interface Kit contributors
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,76 @@
1
+ # Agent Interface Kit
2
+
3
+ Accessible, typed React components for building AI and agent interfaces. It includes general UI primitives alongside conversation, tool-call, approval, source, terminal, diff, and status components.
4
+
5
+ ## Install
6
+
7
+ ```sh
8
+ npm install agent-interface-kit
9
+ ```
10
+
11
+ React and React DOM are peer dependencies. React 17, 18, and 19 are supported.
12
+
13
+ ## Use
14
+
15
+ Import the stylesheet once near the root of your application, then import components from the package:
16
+
17
+ ```tsx
18
+ import 'agent-interface-kit/styles.css'
19
+ import { Button, Message, PromptInput } from 'agent-interface-kit'
20
+
21
+ export function Chat() {
22
+ return (
23
+ <>
24
+ <Message role="assistant">How can I help?</Message>
25
+ <PromptInput onSubmit={(value) => console.log(value)} />
26
+ <Button>New conversation</Button>
27
+ </>
28
+ )
29
+ }
30
+ ```
31
+
32
+ The package ships as ESM and includes TypeScript declarations.
33
+
34
+ ## Components
35
+
36
+ - Primitives: Accordion, Avatar, Badge, Banner, Breadcrumbs, Button, Card, Checkbox, Combobox, Dialog, Drawer, Field, Input, Label, Menu, Meter, NumberField, Pagination, Popover, Progress, RadioGroup, Select, Skeleton, Slider, Spinner, Switch, Table, Tabs, Toast, Tooltip
37
+ - Agent UI: AgentStatus, ApprovalGate, Attachments, Branch, ChainOfThought, Checkpoint, CodeBlock, Commit, ConfidenceBadge, Connection, Conversation, DiffView, FeedbackButtons, InlineCitation, Message, MessageActions, Plan, PromptInput, Queue, Shimmer, Sidebar, Sources, StackTrace, StatCard, StreamingText, SuggestionChip, Terminal, TestResults, ThinkingBlock, TokenMeter, ToolCallTimeline, Tree, UserProfile, WebPreview
38
+
39
+ Component props and supporting data types are exported from the same entry point.
40
+
41
+ ## Theming
42
+
43
+ Override the package's CSS custom properties globally or on a wrapping element:
44
+
45
+ ```css
46
+ :root {
47
+ --ui-accent: #6d4aff;
48
+ --ui-accent-hover: #5938df;
49
+ --ui-radius: 0.5rem;
50
+ --ui-font: Inter, system-ui, sans-serif;
51
+ }
52
+ ```
53
+
54
+ Dark mode follows the system preference by default. Force a theme with `data-theme="dark"` or `data-theme="light"` on an ancestor such as `<html>`.
55
+
56
+ ## Development and publishing
57
+
58
+ ```sh
59
+ npm install
60
+ npm test
61
+ npm run build
62
+ npm run check:package
63
+ ```
64
+
65
+ Before publishing, replace the provisional `name` in `package.json` if needed and verify availability with `npm view <name>`. Then authenticate and publish:
66
+
67
+ ```sh
68
+ npm login
69
+ npm publish
70
+ ```
71
+
72
+ The `prepublishOnly` hook runs the test suite and production build automatically.
73
+
74
+ ## License
75
+
76
+ MIT
@@ -0,0 +1,11 @@
1
+ import { ReactNode } from 'react';
2
+ import { Accordion as BaseAccordion } from '@base-ui/react/accordion';
3
+ export interface AccordionItem {
4
+ value: string;
5
+ title: ReactNode;
6
+ content: ReactNode;
7
+ }
8
+ export interface AccordionProps extends BaseAccordion.Root.Props {
9
+ items: AccordionItem[];
10
+ }
11
+ export declare function Accordion({ items, ...props }: AccordionProps): import("react").JSX.Element;
@@ -0,0 +1,8 @@
1
+ import { ReactNode } from 'react';
2
+ export interface AgentStatusProps {
3
+ /** What the agent is doing right now */
4
+ label: ReactNode;
5
+ running?: boolean;
6
+ onStop?: () => void;
7
+ }
8
+ export declare function AgentStatus({ label, running, onStop }: AgentStatusProps): import("react").JSX.Element;
@@ -0,0 +1,12 @@
1
+ import { ReactNode } from 'react';
2
+ export interface ApprovalGateProps {
3
+ title: ReactNode;
4
+ description?: ReactNode;
5
+ /** Preview of the pending action (command, diff, message…) */
6
+ children?: ReactNode;
7
+ approveLabel?: string;
8
+ denyLabel?: string;
9
+ onApprove?: () => void;
10
+ onDeny?: () => void;
11
+ }
12
+ export declare function ApprovalGate({ title, description, children, approveLabel, denyLabel, onApprove, onDeny, }: ApprovalGateProps): import("react").JSX.Element;
@@ -0,0 +1,10 @@
1
+ export interface AttachmentFile {
2
+ name: string;
3
+ /** Bytes (formatted automatically) or a preformatted string */
4
+ size?: number | string;
5
+ }
6
+ export interface AttachmentsProps {
7
+ files: AttachmentFile[];
8
+ onRemove?: (index: number) => void;
9
+ }
10
+ export declare function Attachments({ files, onRemove }: AttachmentsProps): import("react").JSX.Element | null;
@@ -0,0 +1,10 @@
1
+ import { ReactNode } from 'react';
2
+ import { Avatar as BaseAvatar } from '@base-ui/react/avatar';
3
+ export interface AvatarProps extends BaseAvatar.Root.Props {
4
+ src?: string;
5
+ alt?: string;
6
+ /** Fallback shown while the image loads or if it fails, e.g. initials or an icon */
7
+ fallback?: ReactNode;
8
+ size?: 'sm' | 'md' | 'lg';
9
+ }
10
+ export declare function Avatar({ src, alt, fallback, size, ...props }: AvatarProps): import("react").JSX.Element;
@@ -0,0 +1,6 @@
1
+ import { ReactNode } from 'react';
2
+ export interface BadgeProps {
3
+ variant?: 'neutral' | 'info' | 'success' | 'warning' | 'danger';
4
+ children: ReactNode;
5
+ }
6
+ export declare function Badge({ variant, children }: BadgeProps): import("react").JSX.Element;
@@ -0,0 +1,14 @@
1
+ import { ReactNode } from 'react';
2
+ export interface BannerProps {
3
+ variant?: 'info' | 'success' | 'warning' | 'danger';
4
+ title?: ReactNode;
5
+ children: ReactNode;
6
+ /** Overrides the variant's default icon; pass null to hide it */
7
+ icon?: ReactNode;
8
+ /** Shows a dismiss button; called after the banner hides itself */
9
+ onDismiss?: () => void;
10
+ dismissible?: boolean;
11
+ /** Trailing control, e.g. a retry button */
12
+ action?: ReactNode;
13
+ }
14
+ export declare function Banner({ variant, title, children, icon, onDismiss, dismissible, action, }: BannerProps): import("react").JSX.Element | null;
@@ -0,0 +1,8 @@
1
+ export interface BranchProps {
2
+ /** Total number of branches */
3
+ count: number;
4
+ /** Zero-based current branch */
5
+ index: number;
6
+ onIndexChange?: (index: number) => void;
7
+ }
8
+ export declare function Branch({ count, index, onIndexChange }: BranchProps): import("react").JSX.Element;
@@ -0,0 +1,10 @@
1
+ import { ReactNode } from 'react';
2
+ export interface BreadcrumbItem {
3
+ label: ReactNode;
4
+ href?: string;
5
+ onClick?: () => void;
6
+ }
7
+ export interface BreadcrumbsProps {
8
+ items: BreadcrumbItem[];
9
+ }
10
+ export declare function Breadcrumbs({ items }: BreadcrumbsProps): import("react").JSX.Element;
@@ -0,0 +1,7 @@
1
+ import { Button as BaseButton } from '@base-ui/react/button';
2
+ export interface ButtonProps extends BaseButton.Props {
3
+ variant?: 'primary' | 'secondary' | 'danger' | 'ghost';
4
+ /** Square button sized for a single icon */
5
+ iconOnly?: boolean;
6
+ }
7
+ export declare function Button({ variant, iconOnly, ...props }: ButtonProps): import("react").JSX.Element;
@@ -0,0 +1,8 @@
1
+ import { ReactNode } from 'react';
2
+ export interface CardProps {
3
+ title?: ReactNode;
4
+ /** Right side of the header row, e.g. actions */
5
+ extra?: ReactNode;
6
+ children: ReactNode;
7
+ }
8
+ export declare function Card({ title, extra, children }: CardProps): import("react").JSX.Element;
@@ -0,0 +1,11 @@
1
+ import { ReactNode } from 'react';
2
+ export type ChainOfThoughtStatus = 'pending' | 'active' | 'done';
3
+ export interface ChainOfThoughtStep {
4
+ label: ReactNode;
5
+ detail?: ReactNode;
6
+ status?: ChainOfThoughtStatus;
7
+ }
8
+ export interface ChainOfThoughtProps {
9
+ steps: ChainOfThoughtStep[];
10
+ }
11
+ export declare function ChainOfThought({ steps }: ChainOfThoughtProps): import("react").JSX.Element;
@@ -0,0 +1,3 @@
1
+ import { Checkbox as BaseCheckbox } from '@base-ui/react/checkbox';
2
+ export type CheckboxProps = BaseCheckbox.Root.Props;
3
+ export declare function Checkbox(props: CheckboxProps): import("react").JSX.Element;
@@ -0,0 +1,6 @@
1
+ import { ReactNode } from 'react';
2
+ export interface CheckpointProps {
3
+ label?: ReactNode;
4
+ onRestore?: () => void;
5
+ }
6
+ export declare function Checkpoint({ label, onRestore }: CheckpointProps): import("react").JSX.Element;
@@ -0,0 +1,5 @@
1
+ export interface CodeBlockProps {
2
+ code: string;
3
+ language?: string;
4
+ }
5
+ export declare function CodeBlock({ code, language }: CodeBlockProps): import("react").JSX.Element;
@@ -0,0 +1,10 @@
1
+ import { Combobox as BaseCombobox } from '@base-ui/react/combobox';
2
+ export interface ComboboxItem {
3
+ value: string;
4
+ label: string;
5
+ }
6
+ export interface ComboboxProps extends BaseCombobox.Root.Props<ComboboxItem, false> {
7
+ items: ComboboxItem[];
8
+ placeholder?: string;
9
+ }
10
+ export declare function Combobox({ items, placeholder, ...props }: ComboboxProps): import("react").JSX.Element;
@@ -0,0 +1,13 @@
1
+ import { ReactNode } from 'react';
2
+ export interface CommitFile {
3
+ path: string;
4
+ additions?: number;
5
+ deletions?: number;
6
+ }
7
+ export interface CommitProps {
8
+ message: ReactNode;
9
+ hash?: string;
10
+ author?: ReactNode;
11
+ files?: CommitFile[];
12
+ }
13
+ export declare function Commit({ message, hash, author, files }: CommitProps): import("react").JSX.Element;
@@ -0,0 +1,8 @@
1
+ import { ReactNode } from 'react';
2
+ export interface ConfidenceBadgeProps {
3
+ /** 0–1 */
4
+ score: number;
5
+ /** Shown in a tooltip when provided */
6
+ reason?: ReactNode;
7
+ }
8
+ export declare function ConfidenceBadge({ score, reason }: ConfidenceBadgeProps): import("react").JSX.Element;
@@ -0,0 +1,8 @@
1
+ import { ReactNode } from 'react';
2
+ export type ConnectionStatus = 'connected' | 'connecting' | 'disconnected';
3
+ export interface ConnectionProps {
4
+ status: ConnectionStatus;
5
+ /** Overrides the default status text */
6
+ label?: ReactNode;
7
+ }
8
+ export declare function Connection({ status, label }: ConnectionProps): import("react").JSX.Element;
@@ -0,0 +1,7 @@
1
+ import { ReactNode } from 'react';
2
+ export interface ConversationProps {
3
+ children: ReactNode;
4
+ /** CSS height of the scroll area */
5
+ height?: string;
6
+ }
7
+ export declare function Conversation({ children, height }: ConversationProps): import("react").JSX.Element;
@@ -0,0 +1,9 @@
1
+ import { ReactNode } from 'react';
2
+ export interface DescriptionItem {
3
+ label: ReactNode;
4
+ value: ReactNode;
5
+ }
6
+ export interface DescriptionListProps {
7
+ items: DescriptionItem[];
8
+ }
9
+ export declare function DescriptionList({ items }: DescriptionListProps): import("react").JSX.Element;
@@ -0,0 +1,16 @@
1
+ import { ReactElement, ReactNode } from 'react';
2
+ import { Dialog as BaseDialog } from '@base-ui/react/dialog';
3
+ export interface DialogAction {
4
+ label: ReactNode;
5
+ onClick?: () => void;
6
+ }
7
+ export interface DialogProps extends BaseDialog.Root.Props {
8
+ trigger: ReactElement<Record<string, unknown>>;
9
+ title: ReactNode;
10
+ children?: ReactNode;
11
+ /** Primary footer action; the dialog closes after onClick */
12
+ action?: DialogAction;
13
+ /** Secondary footer action; the dialog closes after onClick */
14
+ secondaryAction?: DialogAction;
15
+ }
16
+ export declare function Dialog({ trigger, title, children, action, secondaryAction, ...props }: DialogProps): import("react").JSX.Element;
@@ -0,0 +1,12 @@
1
+ import { ReactNode } from 'react';
2
+ export interface DiffLine {
3
+ type: 'add' | 'remove' | 'context';
4
+ text: string;
5
+ }
6
+ export interface DiffViewProps {
7
+ lines: DiffLine[];
8
+ fileName?: ReactNode;
9
+ onAccept?: () => void;
10
+ onReject?: () => void;
11
+ }
12
+ export declare function DiffView({ lines, fileName, onAccept, onReject }: DiffViewProps): import("react").JSX.Element;
@@ -0,0 +1,8 @@
1
+ import { ReactElement, ReactNode } from 'react';
2
+ import { Drawer as BaseDrawer } from '@base-ui/react/drawer';
3
+ export interface DrawerProps extends BaseDrawer.Root.Props {
4
+ trigger: ReactElement<Record<string, unknown>>;
5
+ title: ReactNode;
6
+ children?: ReactNode;
7
+ }
8
+ export declare function Drawer({ trigger, title, children, ...props }: DrawerProps): import("react").JSX.Element;
@@ -0,0 +1,8 @@
1
+ import { ReactNode } from 'react';
2
+ export interface EmptyStateProps {
3
+ icon?: ReactNode;
4
+ title: ReactNode;
5
+ description?: ReactNode;
6
+ action?: ReactNode;
7
+ }
8
+ export declare function EmptyState({ icon, title, description, action }: EmptyStateProps): import("react").JSX.Element;
@@ -0,0 +1,4 @@
1
+ export interface FeedbackButtonsProps {
2
+ onFeedback?: (kind: 'up' | 'down') => void;
3
+ }
4
+ export declare function FeedbackButtons({ onFeedback }: FeedbackButtonsProps): import("react").JSX.Element;
@@ -0,0 +1,11 @@
1
+ import { ReactNode } from 'react';
2
+ import { Field as BaseField } from '@base-ui/react/field';
3
+ export interface FieldProps extends BaseField.Root.Props {
4
+ label?: ReactNode;
5
+ /** Helper text shown under the control; hidden while an error is shown */
6
+ hint?: ReactNode;
7
+ /** Marks the field invalid and shows this message */
8
+ error?: ReactNode;
9
+ children: ReactNode;
10
+ }
11
+ export declare function Field({ label, hint, error, children, ...props }: FieldProps): import("react").JSX.Element;
@@ -0,0 +1,66 @@
1
+ export { Accordion, type AccordionProps, type AccordionItem } from './accordion/Accordion';
2
+ export { AgentStatus, type AgentStatusProps } from './agent-status/AgentStatus';
3
+ export { ApprovalGate, type ApprovalGateProps } from './approval-gate/ApprovalGate';
4
+ export { Attachments, type AttachmentsProps, type AttachmentFile } from './attachments/Attachments';
5
+ export { Avatar, type AvatarProps } from './avatar/Avatar';
6
+ export { Badge, type BadgeProps } from './badge/Badge';
7
+ export { Banner, type BannerProps } from './banner/Banner';
8
+ export { Branch, type BranchProps } from './branch/Branch';
9
+ export { Breadcrumbs, type BreadcrumbsProps, type BreadcrumbItem } from './breadcrumbs/Breadcrumbs';
10
+ export { Button, type ButtonProps } from './button/Button';
11
+ export { Card, type CardProps } from './card/Card';
12
+ export { ChainOfThought, type ChainOfThoughtProps, type ChainOfThoughtStep, type ChainOfThoughtStatus, } from './chain-of-thought/ChainOfThought';
13
+ export { Checkbox, type CheckboxProps } from './checkbox/Checkbox';
14
+ export { Checkpoint, type CheckpointProps } from './checkpoint/Checkpoint';
15
+ export { CodeBlock, type CodeBlockProps } from './code-block/CodeBlock';
16
+ export { Combobox, type ComboboxProps, type ComboboxItem } from './combobox/Combobox';
17
+ export { Commit, type CommitProps, type CommitFile } from './commit/Commit';
18
+ export { ConfidenceBadge, type ConfidenceBadgeProps } from './confidence-badge/ConfidenceBadge';
19
+ export { Connection, type ConnectionProps, type ConnectionStatus } from './connection/Connection';
20
+ export { Conversation, type ConversationProps } from './conversation/Conversation';
21
+ export { DescriptionList, type DescriptionListProps, type DescriptionItem, } from './description-list/DescriptionList';
22
+ export { Dialog, type DialogProps } from './dialog/Dialog';
23
+ export { DiffView, type DiffViewProps, type DiffLine } from './diff-view/DiffView';
24
+ export { Drawer, type DrawerProps } from './drawer/Drawer';
25
+ export { EmptyState, type EmptyStateProps } from './empty-state/EmptyState';
26
+ export { FeedbackButtons, type FeedbackButtonsProps } from './feedback-buttons/FeedbackButtons';
27
+ export { Field, type FieldProps } from './field/Field';
28
+ export { InlineCitation, type InlineCitationProps } from './inline-citation/InlineCitation';
29
+ export { Input, type InputProps } from './input/Input';
30
+ export { Label, type LabelProps } from './label/Label';
31
+ export { Menu, type MenuProps, type MenuItem, type MenuGroup, type MenuEntry } from './menu/Menu';
32
+ export { Message, type MessageProps } from './message/Message';
33
+ export { MessageActions, type MessageActionsProps } from './message-actions/MessageActions';
34
+ export { Meter, type MeterProps } from './meter/Meter';
35
+ export { NumberField, type NumberFieldProps } from './number-field/NumberField';
36
+ export { Pagination, type PaginationProps } from './pagination/Pagination';
37
+ export { Plan, type PlanProps, type PlanStep, type PlanStatus } from './plan/Plan';
38
+ export { Popover, type PopoverProps } from './popover/Popover';
39
+ export { Progress, type ProgressProps } from './progress/Progress';
40
+ export { PromptInput, type PromptInputProps } from './prompt-input/PromptInput';
41
+ export { Queue, type QueueProps, type QueueItem } from './queue/Queue';
42
+ export { RadioGroup, type RadioGroupProps, type RadioItem } from './radio/RadioGroup';
43
+ export { Select, type SelectProps, type SelectItem } from './select/Select';
44
+ export { Shimmer, type ShimmerProps } from './shimmer/Shimmer';
45
+ export { Sidebar, useIsMobile, type SidebarProps, type SidebarHeader, type SidebarSection, type SidebarItem, } from './sidebar/Sidebar';
46
+ export { Skeleton, type SkeletonProps } from './skeleton/Skeleton';
47
+ export { Slider, type SliderProps } from './slider/Slider';
48
+ export { Sources, type SourcesProps, type Source } from './sources/Sources';
49
+ export { Spinner, type SpinnerProps } from './spinner/Spinner';
50
+ export { StackTrace, type StackTraceProps, type StackFrame } from './stack-trace/StackTrace';
51
+ export { StatCard, type StatCardProps } from './stat-card/StatCard';
52
+ export { StreamingText, type StreamingTextProps } from './streaming-text/StreamingText';
53
+ export { SuggestionChip, type SuggestionChipProps } from './suggestion-chip/SuggestionChip';
54
+ export { Switch, type SwitchProps } from './switch/Switch';
55
+ export { Table, type TableProps, type TableColumn } from './table/Table';
56
+ export { Terminal, type TerminalProps, type TerminalLine } from './terminal/Terminal';
57
+ export { TestResults, type TestResultsProps, type TestResult } from './test-results/TestResults';
58
+ export { ToastProvider, useToast, type ToastAction, type ToastData } from './toast/Toast';
59
+ export { Tabs, type TabsProps, type TabItem } from './tabs/Tabs';
60
+ export { ThinkingBlock, type ThinkingBlockProps } from './thinking-block/ThinkingBlock';
61
+ export { TokenMeter, type TokenMeterProps } from './token-meter/TokenMeter';
62
+ export { ToolCallTimeline, type ToolCallTimelineProps, type ToolCallStep, type ToolCallStatus, } from './tool-call-timeline/ToolCallTimeline';
63
+ export { Tooltip, type TooltipProps } from './tooltip/Tooltip';
64
+ export { Tree, type TreeProps, type TreeItem } from './tree/Tree';
65
+ export { UserProfile, type UserProfileProps } from './user-profile/UserProfile';
66
+ export { WebPreview, type WebPreviewProps } from './web-preview/WebPreview';