- PromptInput: attachments and context above the field, the owner's tools and send below; Enter sends, Shift-Enter breaks the line; / offers commands and @ offers context over forms::Suggestions; files dropped on it attach behind a drop veil - AttachmentButton, AttachmentChip with thumbnails and uploads, ContextChips - VoiceInputButton and VoiceWaveform with a red dot and the time - ParameterPanel, SystemPromptEditor, TokenCounter, CostEstimator - forms: a Newline action on Shift-Enter keeps one-line fields to one line; replace_trigger moves beside Suggestions; choose and dropped shared - gallery: composer, pickers and tuning
39 lines
1.3 KiB
Rust
39 lines
1.3 KiB
Rust
mod actions;
|
|
mod attach;
|
|
mod cite;
|
|
mod code;
|
|
mod composer;
|
|
mod list;
|
|
mod media;
|
|
mod message;
|
|
mod params;
|
|
mod play;
|
|
mod search;
|
|
mod status;
|
|
mod stream;
|
|
#[cfg(all(test, feature = "test-support"))]
|
|
mod tests;
|
|
mod voice;
|
|
|
|
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 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 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};
|