[package]
name = "tachys"
version = "0.1.0-beta7"
authors = ["Greg Johnston"]
license = "MIT"
readme = "../README.md"
repository = "https://github.com/leptos-rs/leptos"
description = "Tools for building reactivity-agnostic, renderer-generic, statically-typed view trees for user interface libraries."
rust-version.workspace = true
edition.workspace = true

[dependencies]
throw_error = { workspace = true }
any_spawner = { workspace = true, optional = true }
const_str_slice_concat = { workspace = true }
either_of = { workspace = true }
next_tuple = { workspace = true }
or_poisoned = { workspace = true }
reactive_graph = { workspace = true, optional = true }
slotmap = { version = "1.0", optional = true }
oco_ref = { workspace = true, optional = true }
once_cell = "1.19"
paste = "1.0"
wasm-bindgen = "0.2.93"
html-escape = "0.2.13"
js-sys = "0.3.69"
web-sys = { version = "0.3.70", features = [
  "Window",
  "Document",
  "HtmlElement",
  "HtmlInputElement",
  "Element",
  "Event",
  "console",
  "Comment",
  "Text",
  "Node",
  "HtmlTemplateElement",
  "DocumentFragment",
  "DomTokenList",
  "CssStyleDeclaration",
  "ShadowRoot",
  "HtmlCollection",
  "DomStringMap",

  # Events we cast to in leptos_macro -- added here so we don't force users to import them
  "AddEventListenerOptions",
  "AnimationEvent",
  "BeforeUnloadEvent",
  "ClipboardEvent",
  "CompositionEvent",
  "CustomEvent",
  "DeviceMotionEvent",
  "DeviceOrientationEvent",
  "DragEvent",
  "ErrorEvent",
  "Event",
  "FocusEvent",
  "GamepadEvent",
  "HashChangeEvent",
  "InputEvent",
  "KeyboardEvent",
  "MessageEvent",
  "MouseEvent",
  "PageTransitionEvent",
  "PointerEvent",
  "PopStateEvent",
  "ProgressEvent",
  "PromiseRejectionEvent",
  "SecurityPolicyViolationEvent",
  "StorageEvent",
  "SubmitEvent",
  "TouchEvent",
  "TransitionEvent",
  "UiEvent",
  "WheelEvent",

  # HTML Element Types
  "HtmlHtmlElement",
  "HtmlBaseElement",
  "HtmlHeadElement",
  "HtmlLinkElement",
  "HtmlMetaElement",
  "HtmlStyleElement",
  "HtmlTitleElement",
  "HtmlBodyElement",
  "HtmlHeadingElement",
  "HtmlQuoteElement",
  "HtmlDivElement",
  "HtmlDListElement",
  "HtmlHrElement",
  "HtmlLiElement",
  "HtmlOListElement",
  "HtmlParagraphElement",
  "HtmlPreElement",
  "HtmlUListElement",
  "HtmlAnchorElement",
  "HtmlBrElement",
  "HtmlDataElement",
  "HtmlQuoteElement",
  "HtmlSpanElement",
  "HtmlTimeElement",
  "HtmlAreaElement",
  "HtmlAudioElement",
  "HtmlImageElement",
  "HtmlMapElement",
  "HtmlTrackElement",
  "HtmlVideoElement",
  "HtmlEmbedElement",
  "HtmlIFrameElement",
  "HtmlObjectElement",
  "HtmlParamElement",
  "HtmlPictureElement",
  "HtmlSourceElement",
  "SvgElement",
  "HtmlCanvasElement",
  "HtmlScriptElement",
  "HtmlModElement",
  "HtmlTableCaptionElement",
  "HtmlTableColElement",
  "HtmlTableColElement",
  "HtmlTableElement",
  "HtmlTableSectionElement",
  "HtmlTableCellElement",
  "HtmlTableSectionElement",
  "HtmlTableCellElement",
  "HtmlTableSectionElement",
  "HtmlTableRowElement",
  "HtmlButtonElement",
  "HtmlDataListElement",
  "HtmlFieldSetElement",
  "HtmlFormElement",
  "HtmlInputElement",
  "HtmlLabelElement",
  "HtmlLegendElement",
  "HtmlMeterElement",
  "HtmlOptGroupElement",
  "HtmlOutputElement",
  "HtmlProgressElement",
  "HtmlSelectElement",
  "HtmlTextAreaElement",
  "HtmlDetailsElement",
  "HtmlDialogElement",
  "HtmlMenuElement",
  "HtmlSlotElement",
  "HtmlTemplateElement",
  "HtmlOptionElement",
] }
drain_filter_polyfill = "0.1.3"
indexmap = "2.3"
rustc-hash = "2.0"
futures = "0.3.30"
parking_lot = "0.12.3"
itertools = "0.13.0"
send_wrapper = "0.6.0"
linear-map = "1.2"
sledgehammer_bindgen = { version = "0.4.0", features = [
  "web",
], optional = true }
sledgehammer_utils = { version = "0.2.1", optional = true }
tracing = { version = "0.1.40", optional = true }

[dev-dependencies]
tokio-test = "0.4.4"
tokio = { version = "1.39", features = ["rt", "macros"] }

[features]
default = ["testing"]
delegation = []                                                       # enables event delegation
error-hook = []
hydrate = []
islands = []
ssr = []
oco = ["dep:oco_ref"]
nightly = ["reactive_graph/nightly"]
testing = ["dep:slotmap"]
reactive_graph = ["dep:reactive_graph", "dep:any_spawner"]
sledgehammer = ["dep:sledgehammer_bindgen", "dep:sledgehammer_utils"]
tracing = ["dep:tracing"]

[package.metadata.cargo-all-features]
denylist = ["tracing", "sledgehammer"]
skip_feature_sets = [
  ["ssr", "hydrate"],
]
