@ash-cloud/ash-ui 0.0.1
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/dist/design-tokens.cjs +275 -0
- package/dist/design-tokens.cjs.map +1 -0
- package/dist/design-tokens.d.cts +258 -0
- package/dist/design-tokens.d.ts +258 -0
- package/dist/design-tokens.js +261 -0
- package/dist/design-tokens.js.map +1 -0
- package/dist/icons.cjs +279 -0
- package/dist/icons.cjs.map +1 -0
- package/dist/icons.d.cts +53 -0
- package/dist/icons.d.ts +53 -0
- package/dist/icons.js +241 -0
- package/dist/icons.js.map +1 -0
- package/dist/index.cjs +2430 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +535 -0
- package/dist/index.d.ts +535 -0
- package/dist/index.js +2318 -0
- package/dist/index.js.map +1 -0
- package/dist/styles.css +1 -0
- package/dist/types.cjs +65 -0
- package/dist/types.cjs.map +1 -0
- package/dist/types.d.cts +303 -0
- package/dist/types.d.ts +303 -0
- package/dist/types.js +50 -0
- package/dist/types.js.map +1 -0
- package/dist/utils.cjs +415 -0
- package/dist/utils.cjs.map +1 -0
- package/dist/utils.d.cts +135 -0
- package/dist/utils.d.ts +135 -0
- package/dist/utils.js +396 -0
- package/dist/utils.js.map +1 -0
- package/package.json +89 -0
package/dist/index.d.cts
ADDED
|
@@ -0,0 +1,535 @@
|
|
|
1
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
+
import { NormalizedToolCall, NormalizedEntry, ToolDisplayConfig, LogEntry, ToolDisplayMode, TodoItem, ToolStatus, ActionType } from './types.cjs';
|
|
3
|
+
export { AssistantMessageEntry, CommandRunAction, CommandRunResult, DEFAULT_DISPLAY_CONFIG, ErrorEntry, FileAttachment, FileEditAction, FileReadAction, FileWriteAction, GenericToolAction, GlobAction, LogCategory, LogLevel, McpToolAction, NormalizedEntryType, SearchAction, ThinkingEntry, TodoStatus, TodoWriteAction, ToolCallEntry, ToolExecutionGroup as ToolExecutionGroupType, ToolResult, UserMessageEntry, WebFetchAction, WebSearchAction, isCommandRunAction, isErrorEntry, isFileEditAction, isFileReadAction, isFileWriteAction, isGenericToolAction, isGlobAction, isMcpToolAction, isSearchAction, isTodoWriteAction, isToolCallEntry, isWebFetchAction, isWebSearchAction } from './types.cjs';
|
|
4
|
+
import { ReactNode } from 'react';
|
|
5
|
+
import { ParsedOption } from './utils.cjs';
|
|
6
|
+
export { GroupedEntry, ParsedOptionsResult, ToolUseInput, cn, createToolCall, extractTextContent, extractToolCallsFromGroup, formatFileSize, formatTimestamp, formatToolName, generateToolSummary, getActionIcon, getActionLabel, groupEntriesForCompactMode, mapToolToActionType, normalizeToolResult, parseCommandResult, parseMcpToolName, parseOptionsFromContent, truncate, updateToolCallWithResult } from './utils.cjs';
|
|
7
|
+
export { AlertCircleIcon, AlertTriangleIcon, BotIcon, BrainIcon, BugIcon, CheckCircleIcon, CheckIcon, ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon, ChevronUpIcon, CircleIcon, ClipboardListIcon, CodeIcon, CopyIcon, EditIcon, FileIcon, FilePlusIcon, FolderSearchIcon, GlobeIcon, IconProps, InfoIcon, ListChecksIcon, LoaderIcon, MessageSquareIcon, MoonIcon, PaperclipIcon, PlugIcon, SearchIcon, SendIcon, SparklesIcon, StopCircleIcon, SunIcon, TerminalIcon, ToolIcon, UserIcon, XCircleIcon, XIcon } from './icons.cjs';
|
|
8
|
+
export { BorderRadius, Colors, Keyframes, Shadows, Spacing, Transitions, Typography, Widget, ZIndex, allKeyframesCss, borderRadius, colors, inlineStyles, keyframes, keyframesCss, shadows, spacing, tokensToCssVariables, transitions, typography, widget, zIndex } from './design-tokens.cjs';
|
|
9
|
+
|
|
10
|
+
interface ToolCallCardProps {
|
|
11
|
+
toolCall: NormalizedToolCall;
|
|
12
|
+
defaultExpanded?: boolean;
|
|
13
|
+
className?: string;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* ToolCallCard - Display a tool call with its status, arguments, and results
|
|
17
|
+
*
|
|
18
|
+
* Features:
|
|
19
|
+
* - Status indicator (pending/success/failed) with animated styling
|
|
20
|
+
* - Action-specific icon in accent-colored badge
|
|
21
|
+
* - Expandable details section with smooth animation
|
|
22
|
+
* - Glassmorphism dark theme styling
|
|
23
|
+
* - Execution duration display
|
|
24
|
+
*
|
|
25
|
+
* @example
|
|
26
|
+
* ```tsx
|
|
27
|
+
* <ToolCallCard toolCall={normalizedToolCall} />
|
|
28
|
+
* <ToolCallCard toolCall={toolCall} defaultExpanded />
|
|
29
|
+
* ```
|
|
30
|
+
*/
|
|
31
|
+
declare function ToolCallCard({ toolCall, defaultExpanded, className }: ToolCallCardProps): react_jsx_runtime.JSX.Element;
|
|
32
|
+
|
|
33
|
+
interface MessageListProps {
|
|
34
|
+
/** Normalized conversation entries to display */
|
|
35
|
+
entries: NormalizedEntry[];
|
|
36
|
+
/** Whether a response is currently loading */
|
|
37
|
+
loading?: boolean;
|
|
38
|
+
/** Streaming text content (displayed during real-time streaming) */
|
|
39
|
+
streamingContent?: string;
|
|
40
|
+
/** Display configuration override (uses context if not provided) */
|
|
41
|
+
displayConfig?: ToolDisplayConfig;
|
|
42
|
+
/** Callback when user selects an option from assistant message */
|
|
43
|
+
onOptionSelect?: (optionText: string) => void;
|
|
44
|
+
/** Additional class names */
|
|
45
|
+
className?: string;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* MessageList - Display a list of normalized message entries
|
|
49
|
+
*
|
|
50
|
+
* Handles various entry types including user messages, assistant messages,
|
|
51
|
+
* tool calls, thinking, and errors. Also supports streaming content display.
|
|
52
|
+
*
|
|
53
|
+
* Supports two display modes:
|
|
54
|
+
* - 'inline': Each tool call rendered as individual expandable cards (default)
|
|
55
|
+
* - 'compact': Consecutive tool calls grouped into a single accordion with
|
|
56
|
+
* an animated status line showing the current tool
|
|
57
|
+
*
|
|
58
|
+
* Uses glassmorphism dark theme styling with animated entries.
|
|
59
|
+
*
|
|
60
|
+
* @example
|
|
61
|
+
* ```tsx
|
|
62
|
+
* <MessageList entries={normalizedEntries} />
|
|
63
|
+
* <MessageList entries={entries} loading streamingContent={text} />
|
|
64
|
+
* <MessageList entries={entries} displayConfig={{ mode: 'compact' }} />
|
|
65
|
+
* ```
|
|
66
|
+
*/
|
|
67
|
+
declare function MessageList({ entries, loading, streamingContent, displayConfig: displayConfigProp, onOptionSelect, className, }: MessageListProps): react_jsx_runtime.JSX.Element;
|
|
68
|
+
|
|
69
|
+
interface UserMessageProps {
|
|
70
|
+
entry: NormalizedEntry;
|
|
71
|
+
className?: string;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* UserMessage - Display a user message with optional file attachments
|
|
75
|
+
*
|
|
76
|
+
* Uses glassmorphism styling with animated entry.
|
|
77
|
+
*/
|
|
78
|
+
declare function UserMessage({ entry, className }: UserMessageProps): react_jsx_runtime.JSX.Element;
|
|
79
|
+
interface AssistantMessageProps {
|
|
80
|
+
entry: NormalizedEntry;
|
|
81
|
+
/** Callback when user selects an option */
|
|
82
|
+
onOptionSelect?: (optionText: string) => void;
|
|
83
|
+
className?: string;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* AssistantMessage - Display an assistant message with markdown rendering
|
|
87
|
+
*
|
|
88
|
+
* Uses glassmorphism styling with bot avatar and animated entry.
|
|
89
|
+
* Automatically detects and renders interactive options when present.
|
|
90
|
+
*/
|
|
91
|
+
declare function AssistantMessage({ entry, onOptionSelect, className }: AssistantMessageProps): react_jsx_runtime.JSX.Element;
|
|
92
|
+
interface ThinkingMessageProps {
|
|
93
|
+
entry: NormalizedEntry;
|
|
94
|
+
className?: string;
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* ThinkingMessage - Display thinking/reasoning content (extended thinking)
|
|
98
|
+
*
|
|
99
|
+
* Uses glassmorphism styling with purple accent for thinking mode.
|
|
100
|
+
*/
|
|
101
|
+
declare function ThinkingMessage({ entry, className }: ThinkingMessageProps): react_jsx_runtime.JSX.Element;
|
|
102
|
+
interface ToolCallMessageProps {
|
|
103
|
+
entry: NormalizedEntry;
|
|
104
|
+
defaultExpanded?: boolean;
|
|
105
|
+
className?: string;
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* ToolCallMessage - Display a tool call entry using ToolCallCard
|
|
109
|
+
*
|
|
110
|
+
* Uses glassmorphism styling with animated entry.
|
|
111
|
+
*/
|
|
112
|
+
declare function ToolCallMessage({ entry, defaultExpanded, className }: ToolCallMessageProps): react_jsx_runtime.JSX.Element | null;
|
|
113
|
+
interface ErrorMessageProps {
|
|
114
|
+
entry: NormalizedEntry;
|
|
115
|
+
className?: string;
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* ErrorMessage - Display an error entry
|
|
119
|
+
*
|
|
120
|
+
* Uses glassmorphism styling with red accent for errors.
|
|
121
|
+
*/
|
|
122
|
+
declare function ErrorMessage({ entry, className }: ErrorMessageProps): react_jsx_runtime.JSX.Element | null;
|
|
123
|
+
interface MessageEntryProps {
|
|
124
|
+
entry: NormalizedEntry;
|
|
125
|
+
/** Callback when user selects an option from assistant message */
|
|
126
|
+
onOptionSelect?: (optionText: string) => void;
|
|
127
|
+
className?: string;
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* MessageEntry - Render a normalized entry based on its type
|
|
131
|
+
*
|
|
132
|
+
* This is a convenience component that routes to the appropriate
|
|
133
|
+
* entry type component.
|
|
134
|
+
*
|
|
135
|
+
* @example
|
|
136
|
+
* ```tsx
|
|
137
|
+
* {entries.map(entry => (
|
|
138
|
+
* <MessageEntry key={entry.id} entry={entry} onOptionSelect={handleSelect} />
|
|
139
|
+
* ))}
|
|
140
|
+
* ```
|
|
141
|
+
*/
|
|
142
|
+
declare function MessageEntry({ entry, onOptionSelect, className }: MessageEntryProps): react_jsx_runtime.JSX.Element | null;
|
|
143
|
+
|
|
144
|
+
interface LogsPanelProps {
|
|
145
|
+
logs: LogEntry[];
|
|
146
|
+
title?: string;
|
|
147
|
+
isLoading?: boolean;
|
|
148
|
+
defaultCollapsed?: boolean;
|
|
149
|
+
maxHeight?: number;
|
|
150
|
+
className?: string;
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* LogsPanel - Collapsible panel for displaying log entries
|
|
154
|
+
*
|
|
155
|
+
* Features:
|
|
156
|
+
* - Collapsible header with log count
|
|
157
|
+
* - Error/warning count badges
|
|
158
|
+
* - Level-based coloring and icons
|
|
159
|
+
* - Expandable entries with JSON data
|
|
160
|
+
*
|
|
161
|
+
* @example
|
|
162
|
+
* ```tsx
|
|
163
|
+
* <LogsPanel logs={logEntries} />
|
|
164
|
+
* <LogsPanel logs={logs} title="Execution Logs" defaultCollapsed={false} />
|
|
165
|
+
* ```
|
|
166
|
+
*/
|
|
167
|
+
declare function LogsPanel({ logs, title, isLoading, defaultCollapsed, maxHeight, className, }: LogsPanelProps): react_jsx_runtime.JSX.Element | null;
|
|
168
|
+
|
|
169
|
+
interface ToolExecutionGroupProps {
|
|
170
|
+
/** Tool calls in this group */
|
|
171
|
+
toolCalls: NormalizedToolCall[];
|
|
172
|
+
/** Whether the group starts expanded */
|
|
173
|
+
defaultExpanded?: boolean;
|
|
174
|
+
/** Animation duration for status line transitions (ms) */
|
|
175
|
+
animationDuration?: number;
|
|
176
|
+
/** Additional class names */
|
|
177
|
+
className?: string;
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* ToolExecutionGroup - Displays multiple tool calls in a compact accordion format.
|
|
181
|
+
*
|
|
182
|
+
* In collapsed state, shows a single animated status line with the current/latest
|
|
183
|
+
* tool call. When expanded, shows all tool calls as individual cards.
|
|
184
|
+
*
|
|
185
|
+
* Features:
|
|
186
|
+
* - Animated status line that transitions between tool calls
|
|
187
|
+
* - Expandable accordion to see all tool call details
|
|
188
|
+
* - Count badge showing total tool calls
|
|
189
|
+
* - Overall status indicator
|
|
190
|
+
*
|
|
191
|
+
* @example
|
|
192
|
+
* ```tsx
|
|
193
|
+
* <ToolExecutionGroup
|
|
194
|
+
* toolCalls={consecutiveToolCalls}
|
|
195
|
+
* defaultExpanded={false}
|
|
196
|
+
* />
|
|
197
|
+
* ```
|
|
198
|
+
*/
|
|
199
|
+
declare function ToolExecutionGroup({ toolCalls, defaultExpanded, animationDuration, className, }: ToolExecutionGroupProps): react_jsx_runtime.JSX.Element | null;
|
|
200
|
+
|
|
201
|
+
interface CompactToolStatusLineProps {
|
|
202
|
+
/** The current tool call to display */
|
|
203
|
+
toolCall: NormalizedToolCall;
|
|
204
|
+
/** Previous tool call (for exit animation) */
|
|
205
|
+
previousToolCall?: NormalizedToolCall | null;
|
|
206
|
+
/** Animation duration in ms */
|
|
207
|
+
animationDuration?: number;
|
|
208
|
+
/** Additional class names */
|
|
209
|
+
className?: string;
|
|
210
|
+
}
|
|
211
|
+
/**
|
|
212
|
+
* Compact status line for displaying the current tool execution.
|
|
213
|
+
*
|
|
214
|
+
* Features a smooth replace animation where the previous tool call
|
|
215
|
+
* slides out while the new one slides in. Similar to the homepage
|
|
216
|
+
* status line animation.
|
|
217
|
+
*
|
|
218
|
+
* @example
|
|
219
|
+
* ```tsx
|
|
220
|
+
* <CompactToolStatusLine
|
|
221
|
+
* toolCall={currentToolCall}
|
|
222
|
+
* previousToolCall={lastToolCall}
|
|
223
|
+
* />
|
|
224
|
+
* ```
|
|
225
|
+
*/
|
|
226
|
+
declare function CompactToolStatusLine({ toolCall, previousToolCall, animationDuration, className, }: CompactToolStatusLineProps): react_jsx_runtime.JSX.Element;
|
|
227
|
+
|
|
228
|
+
/**
|
|
229
|
+
* Context type for display mode configuration
|
|
230
|
+
*/
|
|
231
|
+
interface DisplayModeContextType {
|
|
232
|
+
/** Current display configuration */
|
|
233
|
+
config: ToolDisplayConfig;
|
|
234
|
+
/** Update the display mode */
|
|
235
|
+
setMode: (mode: ToolDisplayMode) => void;
|
|
236
|
+
/** Update the full configuration */
|
|
237
|
+
setConfig: (config: Partial<ToolDisplayConfig>) => void;
|
|
238
|
+
/** Toggle between 'inline' and 'compact' modes */
|
|
239
|
+
toggleMode: () => void;
|
|
240
|
+
}
|
|
241
|
+
interface DisplayModeProviderProps {
|
|
242
|
+
children: ReactNode;
|
|
243
|
+
/** Initial display configuration */
|
|
244
|
+
initialConfig?: Partial<ToolDisplayConfig>;
|
|
245
|
+
}
|
|
246
|
+
/**
|
|
247
|
+
* Provider for display mode configuration.
|
|
248
|
+
*
|
|
249
|
+
* Wrap your chat component with this provider to enable
|
|
250
|
+
* configurable tool call display modes.
|
|
251
|
+
*
|
|
252
|
+
* @example
|
|
253
|
+
* ```tsx
|
|
254
|
+
* <DisplayModeProvider initialConfig={{ mode: 'compact' }}>
|
|
255
|
+
* <MessageList entries={entries} />
|
|
256
|
+
* </DisplayModeProvider>
|
|
257
|
+
* ```
|
|
258
|
+
*/
|
|
259
|
+
declare function DisplayModeProvider({ children, initialConfig }: DisplayModeProviderProps): react_jsx_runtime.JSX.Element;
|
|
260
|
+
/**
|
|
261
|
+
* Hook to access display mode configuration.
|
|
262
|
+
*
|
|
263
|
+
* @example
|
|
264
|
+
* ```tsx
|
|
265
|
+
* function MyComponent() {
|
|
266
|
+
* const { config, toggleMode } = useDisplayMode();
|
|
267
|
+
*
|
|
268
|
+
* return (
|
|
269
|
+
* <button onClick={toggleMode}>
|
|
270
|
+
* Mode: {config.mode}
|
|
271
|
+
* </button>
|
|
272
|
+
* );
|
|
273
|
+
* }
|
|
274
|
+
* ```
|
|
275
|
+
*/
|
|
276
|
+
declare function useDisplayMode(): DisplayModeContextType;
|
|
277
|
+
/**
|
|
278
|
+
* Hook to get just the current config (for components that only read)
|
|
279
|
+
*/
|
|
280
|
+
declare function useDisplayConfig(): ToolDisplayConfig;
|
|
281
|
+
|
|
282
|
+
interface OptionCardsProps {
|
|
283
|
+
/** Parsed options to display */
|
|
284
|
+
options: ParsedOption[];
|
|
285
|
+
/** Callback when an option is selected */
|
|
286
|
+
onSelect: (option: ParsedOption) => void;
|
|
287
|
+
/** Additional class names */
|
|
288
|
+
className?: string;
|
|
289
|
+
}
|
|
290
|
+
/**
|
|
291
|
+
* OptionCards - Display clickable option cards for interactive selection
|
|
292
|
+
*
|
|
293
|
+
* Renders a grid of glassmorphic cards that users can click to select an option.
|
|
294
|
+
* Used when assistant messages contain structured options for the user to choose from.
|
|
295
|
+
*
|
|
296
|
+
* @example
|
|
297
|
+
* ```tsx
|
|
298
|
+
* <OptionCards
|
|
299
|
+
* options={[
|
|
300
|
+
* { id: '1', label: 'Add Product', description: 'Upload a new product' },
|
|
301
|
+
* { id: '2', label: 'Browse Existing', description: 'View your products' },
|
|
302
|
+
* ]}
|
|
303
|
+
* onSelect={(opt) => sendMessage(opt.label)}
|
|
304
|
+
* />
|
|
305
|
+
* ```
|
|
306
|
+
*/
|
|
307
|
+
declare function OptionCards({ options, onSelect, className }: OptionCardsProps): react_jsx_runtime.JSX.Element;
|
|
308
|
+
|
|
309
|
+
interface TodoPanelProps {
|
|
310
|
+
/** List of todo items */
|
|
311
|
+
todos: TodoItem[];
|
|
312
|
+
/** Optional title for the panel */
|
|
313
|
+
title?: string;
|
|
314
|
+
/** Show in compact mode (less padding, smaller text) */
|
|
315
|
+
compact?: boolean;
|
|
316
|
+
/** Show progress bar */
|
|
317
|
+
showProgress?: boolean;
|
|
318
|
+
/** Additional class names */
|
|
319
|
+
className?: string;
|
|
320
|
+
}
|
|
321
|
+
/**
|
|
322
|
+
* TodoPanel - Display a list of todos with status indicators
|
|
323
|
+
*
|
|
324
|
+
* Features:
|
|
325
|
+
* - Status icons (pending/in_progress/completed)
|
|
326
|
+
* - Progress bar showing completion
|
|
327
|
+
* - Compact mode for inline display
|
|
328
|
+
* - Animated transitions
|
|
329
|
+
*
|
|
330
|
+
* @example
|
|
331
|
+
* ```tsx
|
|
332
|
+
* <TodoPanel todos={todos} />
|
|
333
|
+
* <TodoPanel todos={todos} title="Task Progress" showProgress />
|
|
334
|
+
* <TodoPanel todos={todos} compact />
|
|
335
|
+
* ```
|
|
336
|
+
*/
|
|
337
|
+
declare function TodoPanel({ todos, title, compact, showProgress, className, }: TodoPanelProps): react_jsx_runtime.JSX.Element | null;
|
|
338
|
+
|
|
339
|
+
interface StatusIndicatorProps {
|
|
340
|
+
status: ToolStatus;
|
|
341
|
+
size?: 'sm' | 'md' | 'lg';
|
|
342
|
+
className?: string;
|
|
343
|
+
}
|
|
344
|
+
/**
|
|
345
|
+
* StatusIndicator - Visual indicator for tool execution status
|
|
346
|
+
*
|
|
347
|
+
* Uses the glassmorphism theme with animated states:
|
|
348
|
+
* - pending: Yellow with pulse animation
|
|
349
|
+
* - success: Accent color (lime green)
|
|
350
|
+
* - failed: Red
|
|
351
|
+
*
|
|
352
|
+
* @example
|
|
353
|
+
* ```tsx
|
|
354
|
+
* <StatusIndicator status="pending" />
|
|
355
|
+
* <StatusIndicator status="success" size="lg" />
|
|
356
|
+
* <StatusIndicator status="failed" />
|
|
357
|
+
* ```
|
|
358
|
+
*/
|
|
359
|
+
declare function StatusIndicator({ status, size, className }: StatusIndicatorProps): react_jsx_runtime.JSX.Element;
|
|
360
|
+
|
|
361
|
+
interface ActionIconProps {
|
|
362
|
+
actionType: ActionType;
|
|
363
|
+
className?: string;
|
|
364
|
+
}
|
|
365
|
+
/**
|
|
366
|
+
* ActionIcon - Display the appropriate icon for a tool action type
|
|
367
|
+
*
|
|
368
|
+
* @example
|
|
369
|
+
* ```tsx
|
|
370
|
+
* <ActionIcon actionType={{ action: 'command_run', command: 'ls' }} />
|
|
371
|
+
* <ActionIcon actionType={{ action: 'file_read', path: '/file.txt' }} className="w-5 h-5" />
|
|
372
|
+
* ```
|
|
373
|
+
*/
|
|
374
|
+
declare function ActionIcon({ actionType, className }: ActionIconProps): react_jsx_runtime.JSX.Element;
|
|
375
|
+
|
|
376
|
+
interface CodeBlockProps {
|
|
377
|
+
children: string;
|
|
378
|
+
maxHeight?: number;
|
|
379
|
+
language?: string;
|
|
380
|
+
showLineNumbers?: boolean;
|
|
381
|
+
className?: string;
|
|
382
|
+
}
|
|
383
|
+
/**
|
|
384
|
+
* CodeBlock - Display code with syntax-aware styling and expand/collapse
|
|
385
|
+
*
|
|
386
|
+
* Uses glassmorphism dark theme styling with accent-colored expand button.
|
|
387
|
+
*
|
|
388
|
+
* @example
|
|
389
|
+
* ```tsx
|
|
390
|
+
* <CodeBlock>{`const x = 1;`}</CodeBlock>
|
|
391
|
+
* <CodeBlock maxHeight={200}>{longCode}</CodeBlock>
|
|
392
|
+
* <CodeBlock language="typescript" showLineNumbers>{code}</CodeBlock>
|
|
393
|
+
* ```
|
|
394
|
+
*/
|
|
395
|
+
declare function CodeBlock({ children, maxHeight, language, showLineNumbers, className, }: CodeBlockProps): react_jsx_runtime.JSX.Element;
|
|
396
|
+
|
|
397
|
+
interface JsonDisplayProps {
|
|
398
|
+
value: unknown;
|
|
399
|
+
maxHeight?: number;
|
|
400
|
+
className?: string;
|
|
401
|
+
}
|
|
402
|
+
/**
|
|
403
|
+
* JsonDisplay - Display JSON data in a formatted code block
|
|
404
|
+
*
|
|
405
|
+
* @example
|
|
406
|
+
* ```tsx
|
|
407
|
+
* <JsonDisplay value={{ name: 'test', count: 42 }} />
|
|
408
|
+
* <JsonDisplay value={data} maxHeight={300} />
|
|
409
|
+
* ```
|
|
410
|
+
*/
|
|
411
|
+
declare function JsonDisplay({ value, maxHeight, className }: JsonDisplayProps): react_jsx_runtime.JSX.Element;
|
|
412
|
+
|
|
413
|
+
interface StreamingTextProps {
|
|
414
|
+
content: string;
|
|
415
|
+
isStreaming?: boolean;
|
|
416
|
+
renderMarkdown?: boolean;
|
|
417
|
+
className?: string;
|
|
418
|
+
}
|
|
419
|
+
/**
|
|
420
|
+
* StreamingText - Display text that may be streaming, with optional markdown
|
|
421
|
+
*
|
|
422
|
+
* Shows a blinking cursor indicator when streaming is active.
|
|
423
|
+
* Uses glassmorphism theme styling.
|
|
424
|
+
*
|
|
425
|
+
* @example
|
|
426
|
+
* ```tsx
|
|
427
|
+
* <StreamingText content={text} isStreaming />
|
|
428
|
+
* <StreamingText content={markdown} renderMarkdown />
|
|
429
|
+
* ```
|
|
430
|
+
*/
|
|
431
|
+
declare function StreamingText({ content, isStreaming, renderMarkdown, className, }: StreamingTextProps): react_jsx_runtime.JSX.Element;
|
|
432
|
+
|
|
433
|
+
interface LoadingIndicatorProps {
|
|
434
|
+
variant?: 'dots' | 'pulse' | 'spinner' | 'cursor';
|
|
435
|
+
size?: 'sm' | 'md' | 'lg';
|
|
436
|
+
className?: string;
|
|
437
|
+
}
|
|
438
|
+
/**
|
|
439
|
+
* LoadingIndicator - Display various loading states
|
|
440
|
+
*
|
|
441
|
+
* Uses the glassmorphism theme with accent-colored animations.
|
|
442
|
+
*
|
|
443
|
+
* Variants:
|
|
444
|
+
* - dots: Three animated dots
|
|
445
|
+
* - pulse: Single pulsing dot
|
|
446
|
+
* - spinner: Rotating spinner
|
|
447
|
+
* - cursor: Blinking cursor (like in the demo)
|
|
448
|
+
*
|
|
449
|
+
* @example
|
|
450
|
+
* ```tsx
|
|
451
|
+
* <LoadingIndicator />
|
|
452
|
+
* <LoadingIndicator variant="spinner" size="lg" />
|
|
453
|
+
* <LoadingIndicator variant="cursor" />
|
|
454
|
+
* ```
|
|
455
|
+
*/
|
|
456
|
+
declare function LoadingIndicator({ variant, size, className }: LoadingIndicatorProps): react_jsx_runtime.JSX.Element;
|
|
457
|
+
|
|
458
|
+
interface TypewriterTextProps {
|
|
459
|
+
/** Words to cycle through */
|
|
460
|
+
words?: string[];
|
|
461
|
+
/** Typing speed in ms per character */
|
|
462
|
+
typeSpeed?: number;
|
|
463
|
+
/** Pause before erasing in ms */
|
|
464
|
+
pauseBeforeErase?: number;
|
|
465
|
+
/** Erasing speed in ms per character */
|
|
466
|
+
eraseSpeed?: number;
|
|
467
|
+
/** Pause before typing next word in ms */
|
|
468
|
+
pauseBeforeType?: number;
|
|
469
|
+
/** Whether to show a blinking cursor */
|
|
470
|
+
showCursor?: boolean;
|
|
471
|
+
/** Additional class names */
|
|
472
|
+
className?: string;
|
|
473
|
+
/** Cursor class names */
|
|
474
|
+
cursorClassName?: string;
|
|
475
|
+
}
|
|
476
|
+
/**
|
|
477
|
+
* TypewriterText - Animated typing component that cycles through words
|
|
478
|
+
*
|
|
479
|
+
* Creates a typewriter effect that types out words character by character,
|
|
480
|
+
* pauses, then erases them before moving to the next word.
|
|
481
|
+
*
|
|
482
|
+
* @example
|
|
483
|
+
* ```tsx
|
|
484
|
+
* // Default thinking words
|
|
485
|
+
* <TypewriterText />
|
|
486
|
+
*
|
|
487
|
+
* // Custom words
|
|
488
|
+
* <TypewriterText words={['Loading', 'Processing', 'Almost done']} />
|
|
489
|
+
*
|
|
490
|
+
* // Custom speeds
|
|
491
|
+
* <TypewriterText typeSpeed={30} pauseBeforeErase={1000} />
|
|
492
|
+
* ```
|
|
493
|
+
*/
|
|
494
|
+
declare function TypewriterText({ words, typeSpeed, pauseBeforeErase, eraseSpeed, pauseBeforeType, showCursor, className, cursorClassName, }: TypewriterTextProps): react_jsx_runtime.JSX.Element;
|
|
495
|
+
|
|
496
|
+
type Theme = 'light' | 'dark';
|
|
497
|
+
interface ThemeContextType {
|
|
498
|
+
theme: Theme;
|
|
499
|
+
toggleTheme: () => void;
|
|
500
|
+
setTheme: (theme: Theme) => void;
|
|
501
|
+
}
|
|
502
|
+
interface ThemeProviderProps {
|
|
503
|
+
children: ReactNode;
|
|
504
|
+
/** Default theme to use when no stored preference exists. Defaults to system preference, then 'light'. */
|
|
505
|
+
defaultTheme?: Theme;
|
|
506
|
+
/** localStorage key for persisting theme. Defaults to 'ash-ui-theme'. */
|
|
507
|
+
storageKey?: string;
|
|
508
|
+
/** Whether to listen for system theme changes. Defaults to true. */
|
|
509
|
+
listenToSystemChanges?: boolean;
|
|
510
|
+
}
|
|
511
|
+
/**
|
|
512
|
+
* ThemeProvider - Unified theme management for agentic UIs.
|
|
513
|
+
*
|
|
514
|
+
* Features:
|
|
515
|
+
* - Persists theme choice to localStorage
|
|
516
|
+
* - Respects system preference when no stored preference exists
|
|
517
|
+
* - Listens for system theme changes (configurable)
|
|
518
|
+
* - Adds/removes 'dark' class on document root for Tailwind CSS
|
|
519
|
+
*
|
|
520
|
+
* @example
|
|
521
|
+
* ```tsx
|
|
522
|
+
* <ThemeProvider>
|
|
523
|
+
* <App />
|
|
524
|
+
* </ThemeProvider>
|
|
525
|
+
*
|
|
526
|
+
* // With custom defaults
|
|
527
|
+
* <ThemeProvider defaultTheme="dark" storageKey="my-theme">
|
|
528
|
+
* <App />
|
|
529
|
+
* </ThemeProvider>
|
|
530
|
+
* ```
|
|
531
|
+
*/
|
|
532
|
+
declare function ThemeProvider({ children, defaultTheme, storageKey, listenToSystemChanges, }: ThemeProviderProps): react_jsx_runtime.JSX.Element;
|
|
533
|
+
declare function useTheme(): ThemeContextType;
|
|
534
|
+
|
|
535
|
+
export { ActionIcon, type ActionIconProps, ActionType, AssistantMessage, type AssistantMessageProps, CodeBlock, type CodeBlockProps, CompactToolStatusLine, type CompactToolStatusLineProps, type DisplayModeContextType, DisplayModeProvider, type DisplayModeProviderProps, ErrorMessage, type ErrorMessageProps, JsonDisplay, type JsonDisplayProps, LoadingIndicator, type LoadingIndicatorProps, LogEntry, LogsPanel, type LogsPanelProps, MessageEntry, type MessageEntryProps, MessageList, type MessageListProps, NormalizedEntry, NormalizedToolCall, OptionCards, type OptionCardsProps, ParsedOption, StatusIndicator, type StatusIndicatorProps, StreamingText, type StreamingTextProps, type Theme, type ThemeContextType, ThemeProvider, type ThemeProviderProps, ThinkingMessage, type ThinkingMessageProps, TodoItem, TodoPanel, type TodoPanelProps, ToolCallCard, type ToolCallCardProps, ToolCallMessage, type ToolCallMessageProps, ToolDisplayConfig, ToolDisplayMode, ToolExecutionGroup, type ToolExecutionGroupProps, ToolStatus, TypewriterText, type TypewriterTextProps, UserMessage, type UserMessageProps, useDisplayConfig, useDisplayMode, useTheme };
|