//! Theme system component module
//!
//! Provides unified theme system components that work across client/SSR
//! contexts.

pub mod unified;

#[cfg(not(target_arch = "wasm32"))]
pub mod ssr;

#[cfg(target_arch = "wasm32")]
pub mod client;

// Re-export the unified interface as the main API
// Re-export client-specific types when available
#[cfg(target_arch = "wasm32")]
pub use client::{use_theme, ThemeContext};
pub use unified::{DarkModeToggle, EffectiveTheme, ThemeMode, ThemeProvider, ThemeUtils};

// Re-export SSR-specific types when available
#[cfg(not(target_arch = "wasm32"))]
pub use crate::theme::ssr::{
    use_theme_ssr, DarkModeToggleSSR, ThemeContextSSR, ThemeProviderSSR, ThemeSelectorSSR,
    ThemeStatusSSR,
};
