@agentxjs/ui 0.0.9 → 0.1.2

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 (63) hide show
  1. package/dist/api/index.d.ts +2 -3
  2. package/dist/browser-Bab_T5G7.js +39 -0
  3. package/dist/browser-Bab_T5G7.js.map +1 -0
  4. package/dist/components/container/AgentList.d.ts +45 -0
  5. package/dist/components/container/Chat.d.ts +47 -0
  6. package/dist/components/container/ChatHeader.d.ts +41 -0
  7. package/dist/components/container/ToolCard.d.ts +69 -0
  8. package/dist/components/container/index.d.ts +24 -19
  9. package/dist/components/{message → container/message}/MessageList.d.ts +1 -1
  10. package/dist/components/{message → container/message}/index.d.ts +0 -1
  11. package/dist/components/{message → container/message}/items/AssistantMessage.d.ts +1 -1
  12. package/dist/components/{message → container/message}/items/ErrorAlert.d.ts +1 -1
  13. package/dist/components/{message → container/message}/items/ToolCallMessage.d.ts +1 -1
  14. package/dist/components/{message → container/message}/items/ToolResultMessage.d.ts +1 -1
  15. package/dist/components/{message → container/message}/items/ToolUseMessage.d.ts +1 -1
  16. package/dist/components/{message → container/message}/items/UserMessage.d.ts +1 -1
  17. package/dist/components/{message → container/message}/items/index.d.ts +0 -1
  18. package/dist/components/{message → container/message}/parts/ToolResultContent.d.ts +1 -1
  19. package/dist/components/element/Badge.d.ts +1 -1
  20. package/dist/components/element/Button.d.ts +2 -2
  21. package/dist/components/element/EmojiPicker.d.ts +64 -0
  22. package/dist/components/element/MessageAvatar.d.ts +1 -1
  23. package/dist/components/element/Toast.d.ts +71 -0
  24. package/dist/components/element/index.d.ts +4 -0
  25. package/dist/components/pane/InputPane.d.ts +74 -0
  26. package/dist/components/pane/InputToolBar.d.ts +74 -0
  27. package/dist/components/pane/ListPane.d.ts +128 -0
  28. package/dist/components/pane/MessagePane.d.ts +111 -0
  29. package/dist/components/pane/NavBar.d.ts +71 -0
  30. package/dist/components/pane/index.d.ts +32 -0
  31. package/dist/components/studio/Studio.d.ts +23 -28
  32. package/dist/components/studio/index.d.ts +13 -6
  33. package/dist/globals.css +1 -200
  34. package/dist/hooks/index.d.ts +27 -13
  35. package/dist/hooks/useAgent.d.ts +44 -13
  36. package/dist/hooks/useAgentX.d.ts +7 -6
  37. package/dist/hooks/useImages.d.ts +84 -0
  38. package/dist/index.js +21508 -61
  39. package/dist/index.js.map +1 -1
  40. package/package.json +6 -5
  41. package/dist/components/container/AgentPane.d.ts +0 -56
  42. package/dist/components/container/ContainerView.d.ts +0 -119
  43. package/dist/components/container/DefinitionPane.d.ts +0 -27
  44. package/dist/components/container/InputPane.d.ts +0 -44
  45. package/dist/components/container/InputToolBar.d.ts +0 -22
  46. package/dist/components/container/MessagePane.d.ts +0 -32
  47. package/dist/components/container/SessionPane.d.ts +0 -35
  48. package/dist/components/container/types.d.ts +0 -67
  49. package/dist/components/input/InputBox.d.ts +0 -43
  50. package/dist/components/input/index.d.ts +0 -1
  51. package/dist/components/message/StatusIndicator.d.ts +0 -28
  52. package/dist/components/message/items/SystemMessage.d.ts +0 -25
  53. package/dist/hooks/useSession.d.ts +0 -79
  54. package/dist/index-B8Ijbzyc.js +0 -27676
  55. package/dist/index-B8Ijbzyc.js.map +0 -1
  56. package/dist/index-BtOS4F-X.js +0 -3013
  57. package/dist/index-BtOS4F-X.js.map +0 -1
  58. /package/dist/components/{message → container/message}/parts/FileContent.d.ts +0 -0
  59. /package/dist/components/{message → container/message}/parts/ImageContent.d.ts +0 -0
  60. /package/dist/components/{message → container/message}/parts/TextContent.d.ts +0 -0
  61. /package/dist/components/{message → container/message}/parts/ThinkingContent.d.ts +0 -0
  62. /package/dist/components/{message → container/message}/parts/ToolCallContent.d.ts +0 -0
  63. /package/dist/components/{message → container/message}/parts/index.d.ts +0 -0
@@ -1,8 +1,7 @@
1
1
  export * from '../hooks';
2
- export * from '../components/container';
3
2
  export * from '../components/studio';
4
- export * from '../components/message';
5
- export * from '../components/input';
3
+ export * from '../components/container';
4
+ export * from '../components/pane';
6
5
  export * from '../components/layout';
7
6
  export * from '../components/element';
8
7
  export * from '../components/typography';
@@ -0,0 +1,39 @@
1
+ function _mergeNamespaces(n, m) {
2
+ for (var i = 0; i < m.length; i++) {
3
+ const e = m[i];
4
+ if (typeof e !== "string" && !Array.isArray(e)) {
5
+ for (const k in e) {
6
+ if (k !== "default" && !(k in n)) {
7
+ const d = Object.getOwnPropertyDescriptor(e, k);
8
+ if (d) {
9
+ Object.defineProperty(n, k, d.get ? d : {
10
+ enumerable: true,
11
+ get: () => e[k]
12
+ });
13
+ }
14
+ }
15
+ }
16
+ }
17
+ }
18
+ return Object.freeze(Object.defineProperty(n, Symbol.toStringTag, { value: "Module" }));
19
+ }
20
+ var browser$1;
21
+ var hasRequiredBrowser;
22
+ function requireBrowser() {
23
+ if (hasRequiredBrowser) return browser$1;
24
+ hasRequiredBrowser = 1;
25
+ browser$1 = function() {
26
+ throw new Error(
27
+ "ws does not work in the browser. Browser clients must use the native WebSocket object"
28
+ );
29
+ };
30
+ return browser$1;
31
+ }
32
+ var browserExports = requireBrowser();
33
+ const browser = /* @__PURE__ */ _mergeNamespaces({
34
+ __proto__: null
35
+ }, [browserExports]);
36
+ export {
37
+ browser as b
38
+ };
39
+ //# sourceMappingURL=browser-Bab_T5G7.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browser-Bab_T5G7.js","sources":["../../../node_modules/.pnpm/ws@8.18.3/node_modules/ws/browser.js"],"sourcesContent":["'use strict';\n\nmodule.exports = function () {\n throw new Error(\n 'ws does not work in the browser. Browser clients must use the native ' +\n 'WebSocket object'\n );\n};\n"],"names":["browser"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAEAA,cAAiB,WAAY;AAC3B,UAAM,IAAI;AAAA,MACR;AAAA;EAGJ;;;;;;;","x_google_ignoreList":[0]}
@@ -0,0 +1,45 @@
1
+ import { AgentX } from 'agentxjs';
2
+ export interface AgentListProps {
3
+ /**
4
+ * AgentX instance
5
+ */
6
+ agentx: AgentX | null;
7
+ /**
8
+ * Container ID for creating new images
9
+ * @default "default"
10
+ */
11
+ containerId?: string;
12
+ /**
13
+ * Currently selected image ID
14
+ */
15
+ selectedId?: string | null;
16
+ /**
17
+ * Callback when a conversation is selected
18
+ * @param imageId - The selected image ID
19
+ * @param agentId - The agent ID (if online)
20
+ */
21
+ onSelect?: (imageId: string, agentId: string | null) => void;
22
+ /**
23
+ * Callback when a new conversation is created
24
+ * @param imageId - The new image ID
25
+ */
26
+ onNew?: (imageId: string) => void;
27
+ /**
28
+ * Title displayed in header
29
+ * @default "Conversations"
30
+ */
31
+ title?: string;
32
+ /**
33
+ * Enable search functionality
34
+ * @default true
35
+ */
36
+ searchable?: boolean;
37
+ /**
38
+ * Additional class name
39
+ */
40
+ className?: string;
41
+ }
42
+ /**
43
+ * AgentList component
44
+ */
45
+ export declare function AgentList({ agentx, containerId, selectedId, onSelect, onNew, title, searchable, className, }: AgentListProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,47 @@
1
+ import { AgentX } from 'agentxjs';
2
+ export interface ChatProps {
3
+ /**
4
+ * AgentX instance
5
+ */
6
+ agentx: AgentX | null;
7
+ /**
8
+ * Image ID for the conversation (preferred in Image-First model)
9
+ */
10
+ imageId?: string | null;
11
+ /**
12
+ * Agent ID to chat with (legacy, use imageId instead)
13
+ * @deprecated Use imageId instead
14
+ */
15
+ agentId?: string | null;
16
+ /**
17
+ * Agent name to display in header
18
+ */
19
+ agentName?: string;
20
+ /**
21
+ * Callback when save button is clicked
22
+ * Note: In Image-First model, messages are auto-saved
23
+ */
24
+ onSave?: () => void;
25
+ /**
26
+ * Show save button in toolbar
27
+ * @default true
28
+ */
29
+ showSaveButton?: boolean;
30
+ /**
31
+ * Input placeholder text
32
+ */
33
+ placeholder?: string;
34
+ /**
35
+ * Height ratio for input pane (0-1)
36
+ * @default 0.25
37
+ */
38
+ inputHeightRatio?: number;
39
+ /**
40
+ * Additional class name
41
+ */
42
+ className?: string;
43
+ }
44
+ /**
45
+ * Chat component
46
+ */
47
+ export declare function Chat({ agentx, imageId, agentId: legacyAgentId, agentName, onSave, showSaveButton, placeholder, inputHeightRatio, className, }: ChatProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,41 @@
1
+ /**
2
+ * ChatHeader - Header component for Chat interface
3
+ *
4
+ * Displays current agent information, status, and actions.
5
+ *
6
+ * @example
7
+ * ```tsx
8
+ * <ChatHeader
9
+ * agentName="Assistant"
10
+ * status="thinking"
11
+ * messageCount={5}
12
+ * />
13
+ * ```
14
+ */
15
+ import * as React from "react";
16
+ export interface ChatHeaderProps {
17
+ /**
18
+ * Agent name to display
19
+ */
20
+ agentName?: string;
21
+ /**
22
+ * Current agent status
23
+ */
24
+ status?: "idle" | "queued" | "thinking" | "responding" | "tool_executing" | "error";
25
+ /**
26
+ * Number of messages in conversation
27
+ */
28
+ messageCount?: number;
29
+ /**
30
+ * Additional actions on the right side
31
+ */
32
+ actions?: React.ReactNode;
33
+ /**
34
+ * Additional class name
35
+ */
36
+ className?: string;
37
+ }
38
+ /**
39
+ * ChatHeader component
40
+ */
41
+ export declare function ChatHeader({ agentName, status, messageCount, actions, className, }: ChatHeaderProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,69 @@
1
+ /**
2
+ * ToolCard - Collapsible tool call/result card
3
+ *
4
+ * Displays tool execution with status indicators:
5
+ * - Executing: blue with spinner
6
+ * - Success: green with checkmark
7
+ * - Error: red with X
8
+ *
9
+ * Features:
10
+ * - Collapsible content
11
+ * - Status-based styling
12
+ * - Duration display
13
+ * - Input/Output sections
14
+ *
15
+ * @example
16
+ * ```tsx
17
+ * <ToolCard
18
+ * name="Bash"
19
+ * status="success"
20
+ * input={{ command: "ls -la" }}
21
+ * output="file1.txt\nfile2.txt"
22
+ * duration={1.23}
23
+ * />
24
+ * ```
25
+ */
26
+ export type ToolStatus = "executing" | "success" | "error";
27
+ export interface ToolCardProps {
28
+ /**
29
+ * Tool name
30
+ */
31
+ name: string;
32
+ /**
33
+ * Tool call ID
34
+ */
35
+ id?: string;
36
+ /**
37
+ * Current status
38
+ */
39
+ status: ToolStatus;
40
+ /**
41
+ * Tool input parameters
42
+ */
43
+ input?: Record<string, unknown>;
44
+ /**
45
+ * Tool output (string or object)
46
+ */
47
+ output?: unknown;
48
+ /**
49
+ * Execution duration in seconds
50
+ */
51
+ duration?: number;
52
+ /**
53
+ * Whether output is an error
54
+ */
55
+ isError?: boolean;
56
+ /**
57
+ * Default expanded state
58
+ */
59
+ defaultExpanded?: boolean;
60
+ /**
61
+ * Additional class name
62
+ */
63
+ className?: string;
64
+ }
65
+ /**
66
+ * ToolCard component
67
+ */
68
+ export declare function ToolCard({ name, id, status, input, output, duration, isError, defaultExpanded, className, }: ToolCardProps): import("react/jsx-runtime").JSX.Element;
69
+ export default ToolCard;
@@ -1,22 +1,27 @@
1
1
  /**
2
- * Container Components - Pure UI Panes
2
+ * Container Components - Business Logic Layer
3
3
  *
4
- * Part of UI-Backend API Consistency design (see index.ts ADR #5):
5
- * - These are pure UI components (presentational)
6
- * - For integration, use Studio from ~/components/studio
4
+ * Integration layer that combines Pane (UI) with Hooks (logic).
5
+ * These components:
6
+ * - Use AgentX hooks (useImages, useAgent)
7
+ * - Map hook data to pane props
8
+ * - Handle events and callbacks
9
+ * - Manage business state
10
+ *
11
+ * Architecture:
12
+ * ```
13
+ * pane/ (pure UI) + hooks/ (logic) = container/ (business components)
14
+ * ```
15
+ *
16
+ * Components:
17
+ * - AgentList: Conversation list with CRUD operations
18
+ * - Chat: Chat interface with messages and input
7
19
  */
8
- export { ContainerView } from './ContainerView';
9
- export type { ContainerViewProps, ContainerViewRenderProps } from './ContainerView';
10
- export { DefinitionPane } from './DefinitionPane';
11
- export type { DefinitionPaneProps } from './DefinitionPane';
12
- export { SessionPane } from './SessionPane';
13
- export type { SessionPaneProps } from './SessionPane';
14
- export { AgentPane } from './AgentPane';
15
- export type { AgentPaneProps } from './AgentPane';
16
- export { MessagePane } from './MessagePane';
17
- export type { MessagePaneProps } from './MessagePane';
18
- export { InputPane } from './InputPane';
19
- export type { InputPaneProps } from './InputPane';
20
- export { InputToolBar } from './InputToolBar';
21
- export type { InputToolBarProps } from './InputToolBar';
22
- export type { SessionItem, AgentDefinitionItem } from './types';
20
+ export { AgentList } from './AgentList';
21
+ export type { AgentListProps } from './AgentList';
22
+ export { Chat } from './Chat';
23
+ export type { ChatProps } from './Chat';
24
+ export { ChatHeader } from './ChatHeader';
25
+ export type { ChatHeaderProps } from './ChatHeader';
26
+ export { ToolCard } from './ToolCard';
27
+ export type { ToolCardProps, ToolStatus } from './ToolCard';
@@ -1,4 +1,4 @@
1
- import { Message } from '@agentxjs/types';
1
+ import { Message } from 'agentxjs';
2
2
  export interface MessageListProps {
3
3
  /**
4
4
  * Array of messages to display
@@ -1,4 +1,3 @@
1
1
  export { MessageList, type MessageListProps } from './MessageList';
2
- export { StatusIndicator, type StatusIndicatorProps } from './StatusIndicator';
3
2
  export * from './items';
4
3
  export * from './parts';
@@ -1,4 +1,4 @@
1
- import { AssistantMessage as AssistantMessageType } from '@agentxjs/types';
1
+ import { AssistantMessage as AssistantMessageType } from 'agentxjs';
2
2
  export interface AssistantMessageProps {
3
3
  /**
4
4
  * Assistant message data
@@ -1,4 +1,4 @@
1
- import { AgentError } from '@agentxjs/types';
1
+ import { AgentError } from 'agentxjs';
2
2
  export interface ErrorAlertProps {
3
3
  /**
4
4
  * The AgentError to display
@@ -1,4 +1,4 @@
1
- import { ToolCallMessage as ToolCallMessageType } from '@agentxjs/types';
1
+ import { ToolCallMessage as ToolCallMessageType } from 'agentxjs';
2
2
  export interface ToolCallMessageProps {
3
3
  /**
4
4
  * Tool call message data
@@ -1,4 +1,4 @@
1
- import { ToolResultMessage as ToolResultMessageType } from '@agentxjs/types';
1
+ import { ToolResultMessage as ToolResultMessageType } from 'agentxjs';
2
2
  export interface ToolResultMessageProps {
3
3
  /**
4
4
  * Tool result message data
@@ -1,4 +1,4 @@
1
- import { ToolCallMessage, ToolResultMessage } from '@agentxjs/types';
1
+ import { ToolCallMessage, ToolResultMessage } from 'agentxjs';
2
2
  export interface ToolUseMessageProps {
3
3
  /**
4
4
  * Tool call message
@@ -1,4 +1,4 @@
1
- import { UserMessage as UserMessageType } from '@agentxjs/types';
1
+ import { UserMessage as UserMessageType } from 'agentxjs';
2
2
  export interface UserMessageProps {
3
3
  /**
4
4
  * User message data
@@ -1,6 +1,5 @@
1
1
  export { UserMessage, type UserMessageProps } from './UserMessage';
2
2
  export { AssistantMessage, type AssistantMessageProps } from './AssistantMessage';
3
- export { SystemMessage, type SystemMessageProps } from './SystemMessage';
4
3
  export { ToolCallMessage } from './ToolCallMessage';
5
4
  export { ToolResultMessage } from './ToolResultMessage';
6
5
  export { ToolUseMessage, type ToolUseMessageProps } from './ToolUseMessage';
@@ -1,4 +1,4 @@
1
- import { ToolResultOutput } from '@agentxjs/types';
1
+ import { ToolResultOutput } from 'agentxjs';
2
2
  export interface ToolResultContentProps {
3
3
  /**
4
4
  * Tool call ID this result corresponds to
@@ -1,7 +1,7 @@
1
1
  import { VariantProps } from 'class-variance-authority';
2
2
  import * as React from "react";
3
3
  declare const badgeVariants: (props?: ({
4
- variant?: "default" | "outline" | "primary" | "secondary" | "success" | "warning" | "info" | "destructive" | null | undefined;
4
+ variant?: "default" | "success" | "primary" | "info" | "secondary" | "warning" | "destructive" | "outline" | null | undefined;
5
5
  } & import('class-variance-authority/types').ClassProp) | undefined) => string;
6
6
  export interface BadgeProps extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof badgeVariants> {
7
7
  }
@@ -1,8 +1,8 @@
1
1
  import { VariantProps } from 'class-variance-authority';
2
2
  import * as React from "react";
3
3
  declare const buttonVariants: (props?: ({
4
- variant?: "default" | "link" | "outline" | "secondary" | "destructive" | "ghost" | null | undefined;
5
- size?: "default" | "sm" | "lg" | "icon" | null | undefined;
4
+ variant?: "default" | "link" | "secondary" | "destructive" | "outline" | "ghost" | null | undefined;
5
+ size?: "default" | "icon" | "sm" | "lg" | null | undefined;
6
6
  } & import('class-variance-authority/types').ClassProp) | undefined) => string;
7
7
  export interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement>, VariantProps<typeof buttonVariants> {
8
8
  asChild?: boolean;
@@ -0,0 +1,64 @@
1
+ /**
2
+ * EmojiPicker - Emoji selection component using emoji-mart
3
+ *
4
+ * A wrapper component around emoji-mart picker with theme support.
5
+ *
6
+ * @example
7
+ * ```tsx
8
+ * <EmojiPicker onEmojiSelect={(emoji) => console.log(emoji)} />
9
+ * ```
10
+ */
11
+ import * as React from "react";
12
+ export interface Emoji {
13
+ id: string;
14
+ name: string;
15
+ native: string;
16
+ unified: string;
17
+ keywords: string[];
18
+ shortcodes: string;
19
+ }
20
+ export interface EmojiPickerProps {
21
+ /**
22
+ * Callback when an emoji is selected
23
+ */
24
+ onEmojiSelect?: (emoji: Emoji) => void;
25
+ /**
26
+ * Theme mode
27
+ * @default 'auto'
28
+ */
29
+ theme?: "auto" | "light" | "dark";
30
+ /**
31
+ * Locale for emoji names
32
+ * @default 'en'
33
+ */
34
+ locale?: string;
35
+ /**
36
+ * Number of emojis per row
37
+ * @default 9
38
+ */
39
+ perLine?: number;
40
+ /**
41
+ * Show preview of selected emoji
42
+ * @default false
43
+ */
44
+ preview?: boolean;
45
+ /**
46
+ * Show search input
47
+ * @default true
48
+ */
49
+ searchPosition?: "sticky" | "static" | "none";
50
+ /**
51
+ * Show skin tone selector
52
+ * @default true
53
+ */
54
+ skinTonePosition?: "preview" | "search" | "none";
55
+ /**
56
+ * Maximum frequently used emojis
57
+ * @default 16
58
+ */
59
+ maxFrequentRows?: number;
60
+ }
61
+ /**
62
+ * EmojiPicker component
63
+ */
64
+ export declare const EmojiPicker: React.FC<EmojiPickerProps>;
@@ -1,7 +1,7 @@
1
1
  import { VariantProps } from 'class-variance-authority';
2
2
  import * as React from "react";
3
3
  declare const avatarVariants: (props?: ({
4
- variant?: "error" | "primary" | "secondary" | "success" | "warning" | "info" | "neutral" | null | undefined;
4
+ variant?: "error" | "success" | "primary" | "info" | "secondary" | "warning" | "neutral" | null | undefined;
5
5
  size?: "sm" | "md" | "lg" | null | undefined;
6
6
  } & import('class-variance-authority/types').ClassProp) | undefined) => string;
7
7
  export interface MessageAvatarProps extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof avatarVariants> {
@@ -0,0 +1,71 @@
1
+ /**
2
+ * Toast - Notification component
3
+ *
4
+ * Displays temporary notifications to users.
5
+ * Supports different severity levels and auto-dismiss.
6
+ */
7
+ import * as React from "react";
8
+ export type ToastSeverity = "info" | "warn" | "error" | "fatal";
9
+ export interface ToastProps {
10
+ /**
11
+ * Unique identifier for the toast
12
+ */
13
+ id: string;
14
+ /**
15
+ * Toast message
16
+ */
17
+ message: string;
18
+ /**
19
+ * Severity level
20
+ * @default "info"
21
+ */
22
+ severity?: ToastSeverity;
23
+ /**
24
+ * Auto dismiss duration in milliseconds
25
+ * Set to 0 to disable auto dismiss
26
+ * @default 5000
27
+ */
28
+ duration?: number;
29
+ /**
30
+ * Callback when toast is dismissed
31
+ */
32
+ onDismiss?: (id: string) => void;
33
+ }
34
+ /**
35
+ * Toast component - Single toast notification
36
+ */
37
+ export declare const Toast: React.FC<ToastProps>;
38
+ /**
39
+ * ToastContainer - Container for managing multiple toasts
40
+ */
41
+ export interface ToastContainerProps {
42
+ /**
43
+ * Array of toasts to display
44
+ */
45
+ toasts: ToastProps[];
46
+ /**
47
+ * Position of the toast container
48
+ * @default "top-right"
49
+ */
50
+ position?: "top-right" | "top-left" | "bottom-right" | "bottom-left" | "top-center";
51
+ /**
52
+ * Maximum number of toasts to display
53
+ * @default 3
54
+ */
55
+ maxToasts?: number;
56
+ /**
57
+ * Callback when toast is dismissed
58
+ */
59
+ onDismiss?: (id: string) => void;
60
+ }
61
+ export declare const ToastContainer: React.FC<ToastContainerProps>;
62
+ /**
63
+ * useToast hook - Manage toasts state
64
+ */
65
+ export interface UseToastReturn {
66
+ toasts: ToastProps[];
67
+ showToast: (message: string, severity?: ToastSeverity, duration?: number) => void;
68
+ dismissToast: (id: string) => void;
69
+ clearToasts: () => void;
70
+ }
71
+ export declare const useToast: () => UseToastReturn;
@@ -3,6 +3,8 @@ export { AgentLogo } from './AgentLogo';
3
3
  export { AppHeader } from './AppHeader';
4
4
  export { Badge } from './Badge';
5
5
  export { Button } from './Button';
6
+ export { EmojiPicker } from './EmojiPicker';
7
+ export type { Emoji, EmojiPickerProps } from './EmojiPicker';
6
8
  export { EmptyState } from './EmptyState';
7
9
  export { ImageAttachment } from './ImageAttachment';
8
10
  export { Input } from './Input';
@@ -16,3 +18,5 @@ export { SearchInput } from './SearchInput';
16
18
  export { TabNavigation } from './TabNavigation';
17
19
  export { TimeAgo } from './TimeAgo';
18
20
  export { TokenUsagePie } from './TokenUsagePie';
21
+ export { Toast, ToastContainer, useToast } from './Toast';
22
+ export type { ToastProps, ToastSeverity, ToastContainerProps, UseToastReturn } from './Toast';
@@ -0,0 +1,74 @@
1
+ import { ToolBarItem } from './InputToolBar';
2
+ /**
3
+ * InputPane - Full-height input area (WeChat style)
4
+ *
5
+ * A pure UI component where the entire pane is an input area:
6
+ * - Toolbar at the top
7
+ * - Full-height textarea filling the space
8
+ * - Send button at bottom right corner
9
+ *
10
+ * @example
11
+ * ```tsx
12
+ * <InputPane
13
+ * onSend={(text) => handleSend(text)}
14
+ * placeholder="Type a message..."
15
+ * toolbarItems={[
16
+ * { id: 'emoji', icon: <Smile />, label: 'Emoji' },
17
+ * { id: 'attach', icon: <Paperclip />, label: 'Attach' },
18
+ * ]}
19
+ * />
20
+ * ```
21
+ */
22
+ import * as React from "react";
23
+ export interface InputPaneProps {
24
+ /**
25
+ * Callback when user sends a message
26
+ */
27
+ onSend?: (text: string) => void;
28
+ /**
29
+ * Callback when stop button is clicked (during loading)
30
+ */
31
+ onStop?: () => void;
32
+ /**
33
+ * Whether the input is disabled
34
+ */
35
+ disabled?: boolean;
36
+ /**
37
+ * Whether currently loading/processing
38
+ */
39
+ isLoading?: boolean;
40
+ /**
41
+ * Placeholder text
42
+ */
43
+ placeholder?: string;
44
+ /**
45
+ * Toolbar items (left side)
46
+ */
47
+ toolbarItems?: ToolBarItem[];
48
+ /**
49
+ * Toolbar items (right side)
50
+ */
51
+ toolbarRightItems?: ToolBarItem[];
52
+ /**
53
+ * Callback when a toolbar item is clicked
54
+ */
55
+ onToolbarItemClick?: (id: string) => void;
56
+ /**
57
+ * Show toolbar
58
+ * @default true when toolbarItems provided
59
+ */
60
+ showToolbar?: boolean;
61
+ /**
62
+ * Additional class name
63
+ */
64
+ className?: string;
65
+ /**
66
+ * Enable built-in emoji picker for toolbar item with id='emoji'
67
+ * @default true
68
+ */
69
+ enableEmojiPicker?: boolean;
70
+ }
71
+ /**
72
+ * InputPane component - WeChat style full-height input
73
+ */
74
+ export declare const InputPane: React.ForwardRefExoticComponent<InputPaneProps & React.RefAttributes<HTMLDivElement>>;