[workspace]
members = ["cushy-macros", "guide/guide-examples"]

[package]
name = "cushy"
version = "0.4.0"
edition = "2021"
description = "A wgpu-powered graphical user interface (GUI) library with a reactive data model"
repository = "https://github.com/khonsulabs/cushy"
license = "MIT OR Apache-2.0"
keywords = ["gui", "ui", "widgets", "reactive"]
categories = ["gui"]
readme = "./README.md"
rust-version = "1.80.0"

[features]
default = ["tracing-output", "roboto-flex", "native-dialogs"]
tracing-output = ["dep:tracing-subscriber"]
roboto-flex = []
plotters = ["dep:plotters", "kludgine/plotters"]
tokio = ["dep:tokio"]
tokio-multi-thread = ["tokio", "tokio/rt-multi-thread"]
serde = ["dep:serde", "figures/serde"]
native-dialogs = ["dep:rfd"]

[dependencies]
kludgine = { git = "https://github.com/khonsulabs/kludgine", features = [
    "app",
] }
figures = { version = "0.4.0" }
alot = "0.3.2"
interner = "0.2.1"
kempt = "0.2.1"
intentional = "0.1.0"
tracing = "0.1.40"
tokio = { version = "1.40.0", optional = true, features = ["rt"] }
rfd = { version = "0.15.0", optional = true }

tracing-subscriber = { version = "0.3", optional = true, features = [
    "env-filter",
] }
palette = "0.7.3"
ahash = "0.8.6"
cushy-macros = { version = "0.4.0", path = "cushy-macros" }
arboard = "3.2.1"
zeroize = "1.6.1"
unicode-segmentation = "1.10.1"
pollster = "0.3.0"
png = "0.17.10"
image = { version = "0.25.0", features = ["png"] }
plotters = { version = "0.3.7", default-features = false, optional = true }
nominals = "0.3.0"
parking_lot = "0.12.1"
easing-function = "0.1.1"
serde = { version = "1.0.210", features = ["derive"], optional = true }


# [patch.crates-io]
# cosmic-text = { path = "../cosmic-text" }
# appit = { path = "../appit" }
# figures = { path = "../figures" }
# alot = { git = "https://github.com/khonsulabs/alot" }
# kempt = { path = "../objectmap" }

# [patch."https://github.com/khonsulabs/kludgine"]
# kludgine = { path = "../kludgine" }
# [patch."https://github.com/khonsulabs/appit"]
# appit = { path = "../appit" }
# [patch."https://github.com/khonsulabs/figures"]
# figures = { path = "../figures" }

[profile.dev.package."*"]
opt-level = 2

[dev-dependencies]
rand = "0.8.5"
tokio = { version = "1.37.0", features = ["time"] }

[[example]]
name = "plotters"
required-features = ["plotters"]

[[example]]
name = "tokio"
required-features = ["tokio"]

[profile.release]
# debug = true
# opt-level = "s"
# strip = "debuginfo"
