use crate::dom::Event;
pub use attribute::Attribute;
pub use attribute::Callback;
pub use attribute::GroupedAttributeValues;
pub use element::Element;
pub use leaf::Leaf;
pub use templated_view::TemplatedView;
mod attribute;
mod element;
mod leaf;
mod map_msg;
mod render;
mod templated_view;
pub use attribute::special::{
key, replace, skip, skip_criteria, KEY, REPLACE, SKIP, SKIP_CRITERIA,
};
#[cfg(feature = "ensure-attr-set")]
pub(crate) use attribute::special::{CHECKED, DISABLED, OPEN, VALUE};
pub use attribute::{attr, attr_ns, AttributeName, AttributeValue, Namespace, Style, Tag, Value};
pub use diff::{diff, diff_recursive};
pub use node::{element, element_ns, fragment, leaf, node_list, Node};
pub use patch::{Patch, PatchType, TreePath};
pub mod diff;
mod diff_lis;
mod node;
pub mod patch;
pub type EventCallback<MSG> = Callback<Event, MSG>;
pub type ComponentEventCallback = Callback<Event, ()>;