[package]
name = "euv"
version = "0.3.1"
readme = "README.md"
edition = "2024"
authors = ["root@ltpp.vip"]
license = "MIT"
description = """A declarative, cross-platform UI framework for Rust with virtual DOM, reactive signals, and HTML macros for WebAssembly."""
keywords = ["cross-platform"]
repository = "https://github.com/euv-dev/euv.git"
categories = ["network-programming", "web-programming"]
exclude = ["target", "Cargo.lock", "sh", ".github", "logs", "img", "**/*.log"]

[workspace]
members = ["core", "macros", "example", "cli"]
resolver = "3"

[workspace.dependencies]
euv-cli = { path = "cli", version = "0.3.1" }
euv-core = { path = "core", version = "0.3.1" }
euv-macros = { path = "macros", version = "0.3.1" }
euv-example = { path = "example", version = "0.3.1" }

quote = "1.0"
js-sys = "0.3"
which = "8.0.2"
anyhow = "1.0.102"
hyperlane = "21.2.1"
serde_json = "1.0.149"
proc-macro2 = "1.0"
wasm-bindgen = "0.2"
lombok-macros = "2.0.27"
wasm-bindgen-test = "0.3"
wasm-bindgen-futures = "0.4"
console_error_panic_hook = "0.1"
clap = { version = "4.6.1", features = ["derive"] }
serde = { version = "1.0.228", features = ["derive"] }
syn = { version = "2.0", features = ["full", "extra-traits"] }
notify = { version = "8.2.0", default-features = false, features = [
    "macos_fsevent",
] }
tokio = { version = "1.52.3", features = [
    "rt-multi-thread",
    "macros",
    "process",
    "fs",
    "sync",
    "time",
] }
web-sys = { version = "0.3", features = [
    "console",
    "Clipboard",
    "Document",
    "Element",
    "Event",
    "EventTarget",
    "HtmlElement",
    "HtmlInputElement",
    "HtmlTextAreaElement",
    "HtmlSelectElement",
    "HtmlStyleElement",
    "HtmlButtonElement",
    "HtmlFormElement",
    "HtmlHeadElement",
    "HtmlMediaElement",
    "HtmlOptionElement",
    "Node",
    "Storage",
    "Text",
    "Window",
    "Location",
    "Navigator",
    "Response",
    "MouseEvent",
    "InputEvent",
    "KeyboardEvent",
    "FocusEvent",
    "DragEvent",
    "TouchEvent",
    "TouchList",
    "Touch",
    "WheelEvent",
    "ClipboardEvent",
    "DataTransfer",
    "SubmitEvent",
    "HtmlCollection",
] }

[dependencies]
euv-core = { workspace = true }
euv-macros = { workspace = true }

[patch.crates-io]
euv-cli = { path = "cli" }
euv-core = { path = "core" }
euv-macros = { path = "macros" }
euv-example = { path = "example" }

[profile.dev]
incremental = true
opt-level = "z"
lto = false
panic = "unwind"
debug = false
codegen-units = 16
strip = "none"

[profile.dev.package.euv-cli]
opt-level = 0

[profile.release]
incremental = false
opt-level = "z"
lto = true
panic = "unwind"
debug = false
codegen-units = 1
strip = "debuginfo"

[profile.release.package.euv-cli]
opt-level = 3
