[package]
name = "sauron-core"
version = "0.61.9"
authors = [ "Jovansonlee Cesar <ivanceras@gmail.com>" ]
license = "MIT"
description = "An html library for building client side webapps"
repository = "https://github.com/ivanceras/sauron"
documentation = "https://docs.rs/sauron-core"
readme = "../../README.md"
keywords = ["html", "dom", "web"]
edition = "2021"

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

[features]
default = ["with-dom", "ensure-check", "ensure-attr-set", "with-lookup"]
with-dom = ["wasm-bindgen", "js-sys", "web-sys", "wasm-bindgen-futures"] # for client-side usage
with-lookup = [] #enumerates html tags and attributes
with-measure = [] # log traces for measurements in various parts of the system where performance matters.
with-debug = [] # use in combination to with-measure to log the timings
log-patches = [] # use in combination to with-debug to log the debug patches
with-ric = [] # use of request_idle_callback in javascript
with-raf = [] # use of request_animation_frame in javascript
with-interning = [] # use caching of strings when crossing rust to js, for faster transfer
ensure-check = [] #do checking if pending msgs, patches, cmds,  has been processed accordingly to ensure proper order and synchronized dom state
ensure-attr-set = [] #ensure attributes is reflected into the element by explicitly calling the element corresponding methods aside fro just setting its attribute by name
test-fixtures = [] #include the test-fixtures for updating the program with the supplied vdom
use-skipdiff = [] #use skipdiff to selectively skip attributes that can not change
with-trace = [] #take measurement on each section when using template to render component

[dependencies]
js-sys = { version = "0.3", optional = true }
wasm-bindgen-futures = { version = "0.4.31", optional = true}
log = "0.4"
cfg-if = "1.0"
thiserror = "1.0"
doc-comment = "0.3"
once_cell = "1.8"
serde-wasm-bindgen = "0.5.0"
phf = { version = "0.11.2", features = ["macros"] }
futures = "=0.3.30"
indexmap = "2.2.5"
longest-increasing-subsequence = "0.1.0"
derive-where = "1.2.7"


[dependencies.wasm-bindgen]
version = "0.2"
optional = true
features = [
    "enable-interning",
]

[dependencies.web-sys]
version = "0.3"
optional = true
features = [
    "AnimationEvent",
    "Attr",
    "CharacterData",
    "Comment",
    "ClipboardEvent",
    "console",
    "CustomElementRegistry",
    "Document",
    "DocumentFragment",
    "Element",
    "Event",
    "EventInit",
    "HtmlElement",
    "EventTarget",
    "FocusEvent",
    "KeyboardEvent",
    "HashChangeEvent",
    "InputEvent",
    "Headers",
    "HtmlButtonElement",
    "HtmlCollection",
    "HtmlDocument",
    "HtmlDetailsElement",
    "HtmlElement",
    "HtmlHeadElement",
    "HtmlInputElement",
    "HtmlTextAreaElement",
    "HtmlFieldSetElement",
    "HtmlLinkElement",
    "HtmlLiElement",
    "HtmlMeterElement",
    "HtmlProgressElement",
    "HtmlParamElement",
    "HtmlOutputElement",
    "HtmlDataElement",
    "HtmlOptGroupElement",
    "HtmlOptionElement",
    "HtmlSelectElement",
    "HtmlStyleElement",
    "IdleDeadline",
    "Selection",
    "ScrollBehavior",
    "ScrollIntoViewOptions",
    "ScrollLogicalPosition",
    "Storage",
    "ShadowRoot",
    "ShadowRootInit",
    "ShadowRootMode",
    "MouseEvent",
    "NamedNodeMap",
    "Node",
    "NodeList",
    "Performance",
    "PopStateEvent",
    "Text",
    "TransitionEvent",
    "Touch",
    "TouchEvent",
    "TouchList",
    "Window",
    "History",
    "Response",
    "RequestInit",
	"Location",
	"ScrollToOptions",
    "Navigator",
    "ReadableStream",
]



[dev-dependencies]
wasm-bindgen-test = "0.3"
console_error_panic_hook = "0.1.7"
console_log = "1.0"
sauron = { path = "../../" }

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


[package.metadata.docs.rs]
all-features = true
default-target = "wasm32-unknown-unknown"

