Files
Ely-GPUI-Components/src/chat/mod.rs
T
ZacharyZhang-NY a846e10847 Files · Items: one icon map, file icon, file row and file grid
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.
2026-09-26 19:40:10 -04:00

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};