[workspace]
resolver = "2"
members = ["tui-*"]
default-members = ["tui-*"]

[workspace.package]
authors = ["Joshka"]
license = "MIT OR Apache-2.0"
repository = "https://github.com/ratatui/tui-widgets"
edition = "2021"
rust-version = "1.88.0"
categories = ["command-line-interface", "gui"]
keywords = ["cli", "console", "ratatui", "terminal", "tui"]

[workspace.dependencies]
clap = { version = "4", features = ["derive"] }
color-eyre = "0.6"
crossterm = { version = "0.29" }
derive_builder = { version = "0.20", default-features = false, features = ["alloc"] }
derive-getters = "0.5"
derive_setters = "0.1.9"
document-features = "0.2.11"
futures = "0.3"
itertools = { version = "0.14", default-features = false, features = [] }
indoc = "2"
lipsum = "0.9"
pretty_assertions = "1.4"
rand = "0.10"
ratatui = { version = "0.30", default-features = false }
ratatui-core = { version = "0.1" }
ratatui-macros = "0.7"
ratatui-widgets = { version = "0.3" }
rstest = "0.26"
strum = { version = "0.28", default-features = false, features = ["derive"] }
tokio = { version = "1" }

[lints.rust]
unused = "warn"

[lints.clippy]
# cargo = "warn"    # when this fails, investigate and disable the lint if needed, noting the reason
pedantic = "warn"
nursery = "warn"


[package]
name = "tui-widgets"
description = "A collection of useful widgets for building terminal user interfaces using Ratatui"
version = "0.7.3"
documentation = "https://docs.rs/tui-widgets"

authors.workspace = true
categories.workspace = true
edition.workspace = true
keywords.workspace = true
license.workspace = true
repository.workspace = true
rust-version.workspace = true

[features]
#! # features
## By default, all the widgets are enabled.
default = [
    "bar-graph",
    "big-text",
    "box-text",
    "cards",
    "popup",
    "prompts",
    "qrcode",
    "scrollbar",
    "scrollview",
]
## Enables the [`bar_graph`] widget
bar-graph = ["tui-bar-graph"]
## Enables the [`big_text`] widget
big-text = ["tui-big-text"]
## Enables the [`box_text`] widget
box-text = ["tui-box-text"]
## Enables the [`cards`] widget
cards = ["tui-cards"]
## Enables the [`popup`] widget
popup = ["tui-popup"]
## Enables the [`prompts`] widget
prompts = ["tui-prompts"]
## Enables the [`qrcode`] widget
qrcode = ["tui-qrcode"]
## Enables the [`scrollbar`] widget
scrollbar = ["tui-scrollbar"]
## Enables the [`scrollview`] widget
scrollview = ["tui-scrollview"]

[dependencies]
document-features.workspace = true
ratatui-core = { workspace = true }
tui-bar-graph = { version = "0.3.3", path = "tui-bar-graph", optional = true }
tui-big-text = { version = "0.8.5", path = "tui-big-text", optional = true }
tui-box-text = { version = "0.3.3", path = "tui-box-text", optional = true }
tui-cards = { version = "0.3.3", path = "tui-cards", optional = true }
tui-popup = { version = "0.7.5", path = "tui-popup", optional = true }
tui-prompts = { version = "0.6.3", path = "tui-prompts", optional = true }
tui-qrcode = { version = "0.2.5", path = "tui-qrcode", optional = true }
tui-scrollbar = { version = "0.2.4", path = "tui-scrollbar", optional = true }
tui-scrollview = { version = "0.6.5", path = "tui-scrollview", optional = true }
