1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
//! Message components for AI Chat widget.
//!
//! This module provides widgets for rendering different types of chat messages:
//! - [`UserMessage`] - User-originated messages
//! - [`AssistantMessage`] - AI/assistant responses
//! - [`CompactDivider`] - Collapsed message sections
//!
//! # Usage
//!
//! ```rust,ignore
//! use ratatui::{Frame, buffer::Buffer, layout::Rect};
//! use ratkit::widgets::ai_chat::components::message::{
//! UserMessage, AssistantMessage, CompactDivider, Attachment, MessagePart, ToolCall,
//! };
//! use ratkit::widgets::ai_chat::components::theme::ChatColors;
//!
//! // Render a user message
//! let user_msg = UserMessage::new("Hello, world!")
//! .queued(false)
//! .agent_color(ratatui::style::Color::Cyan);
//! user_msg.render(area, buf);
//!
//! // Render an assistant message
//! let parts = vec![
//! MessagePart::Text("Hello!".to_string()),
//! MessagePart::Reasoning("Thinking...".to_string()),
//! ];
//! let assistant_msg = AssistantMessage::new(&parts)
//! .agent_name("claude")
//! .model_id("claude-3")
//! .duration_ms(1500);
//! assistant_msg.render(area, buf);
//!
//! // Render a compact divider
//! let divider = CompactDivider::new().with_hidden_count(5);
//! divider.render(area, buf);
//! ```
pub use ;
pub use ;
pub use ;