//! RiceCoder Terminal User Interface (TUI)
//!
//! This crate provides a beautiful, responsive terminal user interface for RiceCoder
//! with support for chat interface, code diffing, theming, and interactive components.

pub mod accessibility;
pub mod app;
pub mod clipboard;
pub mod command_blocks;
pub mod components;
pub mod config;
pub mod diff;
pub mod event;
pub mod image_integration;
pub mod image_widget;
pub mod input;
pub mod integration;
pub mod layout;
pub mod markdown;
pub mod performance;
pub mod prompt;
pub mod prompt_context;
pub mod provider_integration;
pub mod render;
pub mod session_integration;
pub mod session_manager;
pub mod sessions;
pub mod style;
pub mod theme;
pub mod theme_loader;
pub mod theme_registry;
pub mod theme_reset;
pub mod widgets;

// Re-export commonly used types
pub use accessibility::{
    AccessibilityConfig, AnimationConfig, Announcement, AnnouncementPriority, ElementType,
    FocusIndicatorStyle, FocusManager, KeyboardNavigationManager, ScreenReaderAnnouncer,
    StateChangeEvent, TextAlternative,
};
pub use app::{App, AppMode};
pub use clipboard::{ClipboardError, ClipboardManager, CopyFeedback, CopyOperation};
pub use command_blocks::{Command, CommandBlock, CommandBlocksWidget, CommandStatus};
pub use components::{
    DialogType, DialogWidget, ListWidget, MenuWidget, ModeIndicator, ModeSelectionMenu,
    SplitViewWidget, TabWidget,
};
pub use config::TuiConfig;
pub use diff::{DiffHunk, DiffLine, DiffLineType, DiffViewType, DiffWidget};
pub use image_integration::ImageIntegration;
pub use image_widget::ImageWidget;
pub use input::{ChatInputWidget, InputAnalyzer, Intent};
pub use integration::{
    LayoutCoordinator, LayoutInfo, StateSynchronizer, WidgetContainer, WidgetIntegration,
};
pub use layout::{Constraint, Layout, Rect};
pub use markdown::{MarkdownElement, MarkdownParser};
pub use performance::{
    DiffRenderOptimizer, LazyLoadConfig, LazyMessageHistory, ThemeSwitchPerformance,
};
pub use prompt::{ContextIndicators, PromptConfig, PromptWidget};
pub use prompt_context::PromptContext;
pub use provider_integration::ProviderIntegration;
pub use session_integration::SessionIntegration;
pub use session_manager::{SessionData, SessionManager};
pub use sessions::{Session, SessionDisplayMode, SessionStatus, SessionWidget};
pub use style::{ColorSupport, Theme};
pub use theme::ThemeManager;
pub use theme_loader::{ThemeLoader, ThemeYaml};
pub use theme_registry::ThemeRegistry;
pub use theme_reset::ThemeResetManager;
pub use widgets::{ChatWidget, Message, MessageAuthor};
