[package]
name = "dioxus-interpreter-js"
version = { workspace = true }
edition = "2024"
authors = ["Jonathan Kelley"]
description = "JS Interpreter for Dioxus - a concurrent renderer-agnostic Virtual DOM for interactive user experiences"
license = "MIT OR Apache-2.0"
repository = "https://github.com/DioxusLabs/dioxus/"
homepage = "https://dioxuslabs.com"
documentation = "https://docs.rs/dioxus"
keywords = ["dom", "ui", "gui", "react", "wasm"]

[dependencies]
wasm-bindgen = { workspace = true, optional = true }
wasm-bindgen-futures = { workspace = true, optional = true }
js-sys = { workspace = true, optional = true }
web-sys = { workspace = true, optional = true, features = [
    "Element",
    "Node",
] }
sledgehammer_bindgen = { version = "0.6.0", default-features = false, optional = true }
sledgehammer_utils = { version = "0.3.1", optional = true }
serde = { workspace = true, features = ["derive"], optional = true }
rustc-hash = { workspace = true, optional = true }

dioxus-core = { workspace = true, optional = true }
dioxus-core-types = { workspace = true, optional = true }
dioxus-html = { workspace = true, optional = true }

[build-dependencies]
lazy-js-bundle = { workspace = true }

[features]
default = []
serialize = ["dep:serde"]
sledgehammer = ["dep:sledgehammer_bindgen", "dep:sledgehammer_utils", "dep:rustc-hash"]
webonly = [
    "sledgehammer",
    "dep:wasm-bindgen",
    "dep:wasm-bindgen-futures",
    "dep:js-sys",
    "dep:web-sys",
    "sledgehammer_bindgen/web",
]
binary-protocol = ["sledgehammer", "dep:dioxus-core", "dep:dioxus-core-types", "dep:dioxus-html"]
minimal_bindings = []
