The crate had two maps from a file's name to its icon, in chat and in the file tree, and they disagreed. One map now lives in primitives, over the Lucide file-* icons, and chat, agent, the file tree and the directory listing use it. FileIcon draws it for a file or a folder. FileItem is a file's row, a ListItem with its size and when it changed. FileList is the directory listing. FileGrid lays tiles in the order given, with a cursor seeded from the owner's pick: arrows by tile and by row, Home, End, Enter and a double press to open. The count of what fits a width has one home, layout's columns_for, and fit builds on it.
48 lines
1.6 KiB
Rust
48 lines
1.6 KiB
Rust
mod actions;
|
|
mod attach;
|
|
mod cite;
|
|
mod code;
|
|
mod composer;
|
|
mod conversations;
|
|
mod list;
|
|
mod media;
|
|
mod message;
|
|
mod params;
|
|
mod play;
|
|
mod projects;
|
|
mod search;
|
|
mod status;
|
|
mod stream;
|
|
#[cfg(all(test, feature = "test-support"))]
|
|
mod tests;
|
|
mod voice;
|
|
mod welcome;
|
|
|
|
pub use actions::{
|
|
BranchNavigator, MessageActions, MessageEditor, QuoteReply, continue_button, regenerate_button,
|
|
stop_button,
|
|
};
|
|
pub use attach::{Attachment, AttachmentChip, ContextChips};
|
|
pub use cite::{CitationBadge, Source, SourceCard, SourceList};
|
|
pub use code::CodeBlock;
|
|
pub use composer::{AttachmentButton, DragDropOverlay, InputHint, PromptInput, SendButton};
|
|
pub use conversations::{Conversation, ConversationItem, ConversationList, new_chat_button};
|
|
pub use list::{DateSeparator, MessageList, ScrollToBottomButton};
|
|
pub use media::{FileMessage, ImageGrid, ImageMessage, LinkPreviewCard};
|
|
pub use message::{
|
|
ChatContainer, MessageAvatar, MessageBubble, MessageFooter, MessageHeader, Role,
|
|
};
|
|
pub use params::{CostEstimator, Parameter, ParameterPanel, SystemPromptEditor, TokenCounter};
|
|
pub use play::{AudioMessage, VideoMessage};
|
|
pub use projects::{
|
|
ConversationExport, Project, ProjectKnowledgePanel, ProjectList, SharedConversationView,
|
|
};
|
|
pub(crate) use search::step_mark;
|
|
pub use search::{DocumentChunkPreview, SearchProgress, StepState, WebResultCard};
|
|
pub use status::{
|
|
ErrorMessage, FeedbackForm, RateLimitNotice, ThinkingBlock, ThinkingDuration, ThinkingIndicator,
|
|
};
|
|
pub use stream::{StreamingCursor, StreamingMarkdown, StreamingText};
|
|
pub use voice::{VoiceInputButton, VoiceWaveform};
|
|
pub use welcome::{CapabilityCards, FollowUpSuggestions, SuggestionChips, WelcomeScreen};
|