use dioxus::prelude::*;
pub use tw_merge::*;
#[macro_export]
macro_rules! clx {
($name:ident, $element:ident, $($base_class:expr),+ $(,)?) => {
#[component]
pub fn $name(
#[props(into, optional)] class: Option<String>,
#[props(optional)] role: Option<&'static str>,
#[props(optional)] style: Option<&'static str>,
children: Element,
) -> Element {
let merged_class = use_memo(move || {
tw_merge::tw_merge!(
tw_merge::tw_join!($($base_class),+),
class.as_deref().unwrap_or("")
)
});
rsx! {
$element {
class: "{merged_class}",
role: role,
style: style,
{children}
}
}
}
};
}
#[macro_export]
macro_rules! tw_join {
($($class:expr),+) => {
[$($class),+].join(" ")
};
}