[package]
name = "leptos"
version = { workspace = true }
edition = "2021"
authors = ["Greg Johnston"]
license = "MIT"
repository = "https://github.com/leptos-rs/leptos"
description = "Leptos is a full-stack, isomorphic Rust web framework leveraging fine-grained reactivity to build declarative user interfaces."
readme = "../README.md"

[dependencies]
cfg-if = "1"
leptos_dom = { workspace = true }
leptos_macro = { workspace = true }
leptos_reactive = { workspace = true }
leptos_server = { workspace = true }
leptos_config = { workspace = true }
tracing = "0.1"
typed-builder = "0.14"
server_fn = { workspace = true }
web-sys = { version = "0.3.63", optional = true }
wasm-bindgen = { version = "0.2", optional = true }

[dev-dependencies]
leptos = { path = "." }

[features]
default = ["serde"]
template_macro = ["leptos_dom/web", "web-sys", "wasm-bindgen"]
csr = [
  "leptos_dom/csr",
  "leptos_macro/csr",
  "leptos_reactive/csr",
  "leptos_server/csr",
]
hydrate = [
  "leptos_dom/hydrate",
  "leptos_macro/hydrate",
  "leptos_reactive/hydrate",
  "leptos_server/hydrate",
]
default-tls = ["leptos_server/default-tls", "server_fn/default-tls"]
rustls = ["leptos_server/rustls", "server_fn/rustls"]
ssr = [
  "leptos_dom/ssr",
  "leptos_macro/ssr",
  "leptos_reactive/ssr",
  "leptos_server/ssr",
  "server_fn/ssr",
]
nightly = [
  "leptos_dom/nightly",
  "leptos_macro/nightly",
  "leptos_reactive/nightly",
  "leptos_server/nightly",
]
serde = ["leptos_reactive/serde"]
serde-lite = ["leptos_reactive/serde-lite"]
miniserde = ["leptos_reactive/miniserde"]
rkyv = ["leptos_reactive/rkyv"]
tracing = ["leptos_macro/tracing"]
nonce = ["leptos_dom/nonce"]

[package.metadata.cargo-all-features]
denylist = [
  "nightly",
  "tracing",
  "template_macro",
  "rustls",
  "default-tls",
  "web-sys",
  "wasm-bindgen",
]
skip_feature_sets = [
  [
    "csr",
    "ssr",
  ],
  [
    "csr",
    "hydrate",
  ],
  [
    "ssr",
    "hydrate",
  ],
  [
    "serde",
    "serde-lite",
  ],
  [
    "serde-lite",
    "miniserde",
  ],
  [
    "serde",
    "miniserde",
  ],
  [
    "serde",
    "rkyv",
  ],
  [
    "miniserde",
    "rkyv",
  ],
  [
    "serde-lite",
    "rkyv",
  ],
  [
    "default-tls",
    "rustls",
  ],
]
