//! API module for server endpoints
//!
//! This module contains API endpoints that are feature-gated and can be
//! enabled/disabled based on the server configuration.

#[cfg(feature = "leptos-hydration")]
pub mod activity_download;
pub mod filter;
pub mod htmx;
pub mod htmx_auth;
#[cfg(feature = "email")]
pub mod htmx_contact;
pub mod htmx_content;
pub mod htmx_cookies;
pub mod htmx_form;
pub mod htmx_newsletter;
#[cfg(feature = "post-engagement")]
pub mod htmx_post;
pub mod htmx_sse;
pub mod htmx_user;
pub mod htmx_validate;
pub mod i18n;
pub mod menu;
pub mod nav_test;

#[cfg(feature = "leptos-hydration")]
pub use activity_download::{activity_routes, generate_callback_url};
pub use filter::{
    filter_routes, register_filter_renderer, FilterError, FilterQuery, FilterRenderer,
};
pub use htmx::htmx_routes;
#[cfg(feature = "auth")]
pub use htmx_auth::htmx_auth_routes;
#[cfg(feature = "email")]
pub use htmx_contact::htmx_contact_routes;
pub use htmx_content::{
    htmx_content_routes, register_content_grid_renderer, ContentGridError, ContentGridQuery,
    ContentGridRenderer,
};
pub use htmx_cookies::{has_consent as has_cookie_consent, htmx_cookies_routes};
pub use htmx_form::htmx_form_routes;
#[cfg(feature = "email")]
pub use htmx_newsletter::htmx_newsletter_routes;
#[cfg(feature = "post-engagement")]
pub use htmx_post::htmx_post_routes;
pub use htmx_sse::{htmx_sse_routes, publish_toast, ToastEvent, ToastLevel};
#[cfg(feature = "auth")]
pub use htmx_user::htmx_user_routes;
pub use htmx_validate::htmx_validate_routes;
pub use i18n::create_i18n_routes;
pub use menu::create_menu_routes;
pub use nav_test::router as nav_test_router;
