use crate::utils::ConstTextMap;
use crate::{rumtk_web_params_map, NestedNestedTextMap, NestedTextMap, RUMWebDataProxy, TextMap};
use phf_macros::phf_ordered_map;
use rumtk_core::strings::RUMString;
use std::sync::LazyLock;
pub static DEFAULT_TEXT_MAP: ConstTextMap = phf_ordered_map!();
pub const DEFAULT_LOCAL_LISTENING_ADDRESS: &str = "127.0.0.1:3000";
pub const DEFAULT_OUTBOUND_LISTENING_ADDRESS: &str = "0.0.0.0:3000";
pub const DEFAULT_TEXT_ITEM: &str = "default";
pub const DEFAULT_ALT_ITEM: &str = "";
pub const DEFAULT_CONTACT_ITEM: &str = "company";
pub const DEFAULT_CONTACT_TYPE: &str = "contact";
pub const DEFAULT_CONTACT_FUNCTION: &str = "goto_contact";
pub const DEFAULT_GOTO_FUNCTION: &str = "goto";
pub const DEFAULT_CONTACT_CSS: &str = "centered";
pub const DEFAULT_NO_TEXT: &str = "";
pub const DEFAULT_JOB_LOADER_NAME: &str = "job_loader";
pub const DEFAULT_HTMX_SWAP_MODE: &str = "outerHTML";
pub const DEFAULT_PROGRESS_MODE: &str = "hidden";
pub const DEFAULT_THEME_ITEM: &str = "light";
pub const DEFAULT_LANG_ITEM: &str = "en";
pub const DEFAULT_HOME_PAGE: &str = "Home";
pub const DEFAULT_HOME_PAGE_URL: &str = "./";
pub const OPT_INVERTED_DIRECTION: &str = "inverted";
pub const PARAMS_ID: &str = "id";
pub const PARAMS_TITLE: &str = "title";
pub const PARAMS_SUMMARY: &str = "summary";
pub const PARAMS_TYPE: &str = "type";
pub const PARAMS_CSS_CLASS: &str = "class";
pub const PARAMS_SOCIAL_LIST: &str = "social_list";
pub const PARAMS_ITEM: &str = "item";
pub const PARAMS_INVERTED: &str = "inverted";
pub const PARAMS_SECTION: &str = "section";
pub const PARAMS_FUNCTION: &str = "function";
pub const PARAMS_SOURCE_URL: &str = "source";
pub const PARAMS_TARGET: &str = "target";
pub const PARAMS_SIZE: &str = "size";
pub const PARAMS_CONTENTS: &str = "contents";
pub const PARAMS_MODULE: &str = "module";
pub const PARAMS_ENDPOINT: &str = "endpoint";
pub const PARAMS_ELEMENT: &str = "element";
pub const PARAMS_TICKS: &str = "ticks";
pub const PARAMS_SWAP_MODE: &str = "swap_mode";
pub const PARAMS_PROGRESS_MODE: &str = "progress_mode";
pub const PARAMS_ALT: &str = "alt";
pub const SECTION_TEXT: &str = "text";
pub const SECTION_PERSONNEL: &str = "personnel";
pub const SECTION_CONTACT: &str = "contact";
pub const SECTION_TITLES: &str = "titles";
pub const SECTION_API: &str = "api";
pub const SECTION_SOCIALS: &str = "socials";
pub const SECTION_SERVICES: &str = "services";
pub const SECTION_PRODUCTS: &str = "products";
pub const SECTION_LINKS: &str = "links";
pub const SECTION_MODULES: &str = "modules";
pub const SECTION_ENDPOINTS: &str = "endpoints";
pub const SECTION_ALT: &str = "alt";
pub const SECTION_DEFAULT: &str = "default";
pub const CONTENT_TYPE_PDF: &str = "application/pdf";
pub const CONTENT_TYPE_HTML: &str = "text/html";
pub const FORM_DATA_TYPE_PDF: &str = "pdf";
pub const FORM_DATA_TYPE_HTML: &str = "html";
pub const FORM_DATA_TYPE_MARKDOWN: &str = "markdown";
pub const FORM_DATA_TYPE_DEFAULT: &str = "text";
pub const LANG_EN: &str = "en";
pub const LANG_ES: &str = "es";
pub const DEFAULT_ICON_STYLE: &str = "fa-solid";
pub const DEFAULT_ROBOT_TXT: &str = r"
User-agent: *
Disallow: /static/
";
pub const DEFAULT_SCRIPT: &str = "default";
pub const DEFAULT_SCRIPT_MODULE: &str = "module";
pub const DEFAULT_SCRIPT_IMPORT: &str = "import";
pub const DEFAULT_APP_CONFIG: &str = "./app.json";
pub const DEFAULT_LOGO_SOURCE: &str = "/static/img/logo.svg";
pub const DEFAULT_ICON_SOURCE: &str = "/static/img/logo.svg";
pub const DEFAULT_ICON_TYPE: &str = "image/svg+xml";
pub static DEFAULT_EMPTY_PARAMS: LazyLock<RUMWebDataProxy> = LazyLock::new( || rumtk_web_params_map!([("", "")]));
pub const ELEMENT_INPUT: &str = "input";
pub const ELEMENT_LABEL: &str = "label";
pub const ELEMENT_SELECT: &str = "select";
pub const ELEMENT_TEXTAREA: &str = "textarea";
pub static DEFAULT_TEXT: RUMString = RUMString::new();
pub static DEFAULT_TEXTMAP: LazyLock<TextMap> = LazyLock::new(|| TextMap::default());
pub static DEFAULT_NESTEDTEXTMAP: LazyLock<NestedTextMap> = LazyLock::new(|| NestedTextMap::default());
pub static DEFAULT_NESTEDNESTEDTEXTMAP: LazyLock<NestedNestedTextMap> =
LazyLock::new(|| NestedNestedTextMap::default());
pub const DEFAULT_HTMX_CHECK_TICKS: &str = "2s";