diff --git a/packages/html/Cargo.toml b/packages/html/Cargo.toml
index 0e06723ea..de5db6645 100644
--- a/packages/html/Cargo.toml
+++ b/packages/html/Cargo.toml
@@ -12,7 +12,7 @@ keywords = ["dom", "ui", "gui", "react", "wasm"]
[dependencies]
dioxus-core = { path = "../core", version = "^0.2.1" }
-dioxus-rsx = { path = "../rsx" }
+dioxus-rsx = { path = "../rsx", optional = true }
serde = { version = "1", features = ["derive"], optional = true }
serde_repr = { version = "0.1", optional = true }
wasm-bindgen = { version = "0.2.79", optional = true }
@@ -48,3 +48,4 @@ serde_json = "*"
default = ["serialize"]
serialize = ["serde", "serde_repr", "euclid/serde", "keyboard-types/serde", "dioxus-core/serialize"]
wasm-bind = ["web-sys", "wasm-bindgen"]
+hot-reload-context = ["dioxus-rsx"]
\ No newline at end of file
diff --git a/packages/html/src/elements.rs b/packages/html/src/elements.rs
index 2e0000693..931bc3d60 100644
--- a/packages/html/src/elements.rs
+++ b/packages/html/src/elements.rs
@@ -1,6 +1,8 @@
#![allow(non_upper_case_globals)]
+#[cfg(feature = "hot-reload-context")]
use crate::{map_global_attributes, map_svg_attributes};
use crate::{GlobalAttributes, SvgAttributes};
+#[cfg(feature = "hot-reload-context")]
use dioxus_rsx::HotReloadingContext;
pub type AttributeDiscription = (&'static str, Option<&'static str>, bool);
@@ -42,6 +44,7 @@ macro_rules! impl_attribute {
};
}
+#[cfg(feature = "hot-reload-context")]
macro_rules! impl_attribute_match {
(
$attr:ident $fil:ident: $vil:ident (DEFAULT),
@@ -134,6 +137,7 @@ macro_rules! impl_element {
}
}
+#[cfg(feature = "hot-reload-context")]
macro_rules! impl_element_match {
(
$el:ident $name:ident None {
@@ -160,6 +164,7 @@ macro_rules! impl_element_match {
};
}
+#[cfg(feature = "hot-reload-context")]
macro_rules! impl_element_match_attributes {
(
$el:ident $attr:ident $name:ident None {
@@ -206,8 +211,10 @@ macro_rules! builder_constructors {
};
)*
) => {
+ #[cfg(feature = "hot-reload-context")]
pub struct HtmlCtx;
+ #[cfg(feature = "hot-reload-context")]
impl HotReloadingContext for HtmlCtx {
fn map_attribute(element: &str, attribute: &str) -> Option<(&'static str, Option<&'static str>)> {
$(
diff --git a/packages/html/src/global_attributes.rs b/packages/html/src/global_attributes.rs
index cd4e8f44a..b754faa2c 100644
--- a/packages/html/src/global_attributes.rs
+++ b/packages/html/src/global_attributes.rs
@@ -44,6 +44,7 @@ macro_rules! trait_method {
};
}
+#[cfg(feature = "hot-reload-context")]
macro_rules! trait_method_mapping {
(
$matching:ident;
@@ -97,6 +98,7 @@ macro_rules! trait_methods {
)*
}
+ #[cfg(feature = "hot-reload-context")]
pub(crate) fn $fn(attr: &str) -> Option<(&'static str, Option<&'static str>)> {
$(
trait_method_mapping! {
diff --git a/packages/html/src/lib.rs b/packages/html/src/lib.rs
index 7de26becc..55e2e3f30 100644
--- a/packages/html/src/lib.rs
+++ b/packages/html/src/lib.rs
@@ -14,6 +14,7 @@
//! Currently, we don't validate for structures, but do validate attributes.
mod elements;
+#[cfg(feature = "hot-reload-context")]
pub use elements::HtmlCtx;
pub mod events;
pub mod geometry;