[package]
name = "leptos_reactive"
version = { workspace = true }
edition = "2021"
authors = ["Greg Johnston"]
license = "MIT"
repository = "https://github.com/leptos-rs/leptos"
description = "Reactive system for the Leptos web framework."

[dependencies]
slotmap = { version = "1", features = ["serde"] }
serde = { version = "1", features = ["derive"] }
serde-lite = { version = "0.4", optional = true }
futures = { version = "0.3" }
js-sys = { version = "0.3", optional = true }
miniserde = { version = "0.1", optional = true }
rkyv = { version = "0.7.39", features = [
  "validation",
  "uuid",
  "strict",
], optional = true }
bytecheck = { version = "0.7", features = [
  "uuid",
  "simdutf8",
], optional = true }
rustc-hash = "1"
serde-wasm-bindgen = "0.5"
serde_json = "1"
base64 = "0.21"
thiserror = "1"
tokio = { version = "1", features = ["rt"], optional = true }
tracing = "0.1"
wasm-bindgen = { version = "0.2", optional = true }
wasm-bindgen-futures = { version = "0.4", optional = true }
web-sys = { version = "0.3", optional = true, features = [
  "DocumentFragment",
  "Element",
  "HtmlTemplateElement",
  "NodeList",
  "Window",
] }
cfg-if = "1"
indexmap = "2"
self_cell = "1.0.0"

[dev-dependencies]
criterion = { version = "0.5.1", features = ["html_reports"] }
reactive-signals = { version = "0.1.0-alpha.4", features = ["profile"] }
l021 = { package = "leptos", version = "0.2.1" }
sycamore = { version = "0.8", features = ["ssr"] }
log = "0.4"
tokio-test = "0.4"
leptos = { path = "../leptos" }

[features]
default = []
csr = [
  "dep:js-sys",
  "dep:wasm-bindgen",
  "dep:wasm-bindgen-futures",
  "dep:web-sys",
]
hydrate = [
  "dep:js-sys",
  "dep:wasm-bindgen",
  "dep:wasm-bindgen-futures",
  "dep:web-sys",
]
ssr = ["dep:tokio"]
nightly = ["rkyv?/copy"]
serde = []
serde-lite = ["dep:serde-lite"]
miniserde = ["dep:miniserde"]
rkyv = ["dep:rkyv", "dep:bytecheck"]

[package.metadata.cargo-all-features]
denylist = ["nightly"]
skip_feature_sets = [
  [
    "csr",
    "ssr",
  ],
  [
    "csr",
    "hydrate",
  ],
  [
    "ssr",
    "hydrate",
  ],
  [
    "serde",
    "serde-lite",
  ],
  [
    "serde-lite",
    "miniserde",
  ],
  [
    "serde",
    "miniserde",
  ],
  [
    "serde",
    "rkyv",
  ],
  [
    "miniserde",
    "rkyv",
  ],
  [
    "serde-lite",
    "rkyv",
  ],
]

[[bench]]
name = "deep_update"
harness = false

[[bench]]
name = "fan_out"
harness = false

[[bench]]
name = "narrow_down"
harness = false
