[package]
name = "sauron"
version = "0.49.2"
authors = [ "Jovansonlee Cesar <ivanceras@gmail.com>" ]
license = "MIT"
description = "A versatile web framework and library for building client-side and/or server-side web applications"
repository = "https://github.com/ivanceras/sauron"
documentation = "https://docs.rs/sauron"
readme = "README.md"
keywords = ["html", "dom", "web"]
edition = "2021"

[badges]
maintenance = { status = "actively-developed" }

[dependencies]
sauron-core = { version = "0.49", path = "crates/sauron-core", default-features = false }
sauron-node-macro = { version = "0.49", path = "crates/sauron-node-macro", optional = true }
cfg-if = "0.1"

[features]
default = ["with-dom", "with-node-macro", "with-request-animation-frame"]
with-dom = ["sauron-core/with-dom"]
with-lookup = ["sauron-core/with-lookup"]

# request-animation-frame should be ON all the time, otherwise
# your webapp will have a very poor UI responsiveness
with-request-animation-frame = ["sauron-core/with-request-animation-frame"]

# shows telemetry such as duration it took to update the dom
with-measure = ["sauron-core/with-measure"]
# log debug patches
with-debug = ["sauron-core/with-debug"]

# lets you use node! macro to write html like code in the view
with-node-macro = ["sauron-node-macro"]


[dev-dependencies]
console_error_panic_hook = "0.1"
console_log = "0.2"
log = "0.4"
wasm-bindgen-test = "0.3"
regex = "1"

[dev-dependencies.web-sys]
version = "0.3"
features = [
    "DomTokenList",
    "HtmlInputElement",
    "Event",
    "MouseEvent",
    "InputEvent",
    "console",
    "Performance",
]


[workspace]
members = [
    "crates/sauron-core",
    "crates/sauron-node-macro",
    "examples/arc-reactor",
    "examples/counter",
    "examples/custom-elements",
    "examples/custom-elements-macro-syntax",
    "examples/custom_widget",
    "examples/minimal",
    "examples/minimal-macro-syntax",
    "examples/fetch-data",
    "examples/fetch-data-macro-syntax",
    "examples/interactive",
    "examples/ssr-forms",
    "examples/todomvc",
    "examples/todomvc-macro-syntax",
    "examples/window-tab-rows",
    "examples/svg-clock",
    "examples/svg-clock-macro-syntax",
    "examples/svg-graph",
    "examples/data-viewer",
]


[patch.crates-io]
#mt-dom = { git = "https://github.com/ivanceras/mt-dom.git", branch = "master" }
#mt-dom = { path = "../mt-dom" }
#jss = { git = "https://github.com/ivanceras/jss.git", branch = "master" }
#jss = { path = "../jss" }
