[package]
name = "crossterm-keybind"
authors.workspace = true
version.workspace = true
edition.workspace = true
categories.workspace = true
keywords.workspace = true
repository.workspace = true
description.workspace = true
license.workspace = true
readme.workspace = true
documentation.workspace = true
rust-version.workspace = true

[features]
default = ["crossterm_0_29_0", "check", "case_ignore"]
ratatui_0_30_0 = ["dep:crossterm_0_29_0", "crossterm-keybind-core/crossterm_0_29_0", "crossterm-keybind-derive/crossterm_0_29_0"]
ratatui_0_28_1 = ["dep:crossterm_0_28_1", "crossterm-keybind-core/crossterm_0_28_1", "crossterm-keybind-derive/crossterm_0_28_1"]

crossterm_0_29_0 = ["dep:crossterm_0_29_0", "crossterm-keybind-core/crossterm_0_29_0", "crossterm-keybind-derive/crossterm_0_29_0"]
crossterm_0_28_1 = ["dep:crossterm_0_28_1", "crossterm-keybind-core/crossterm_0_28_1", "crossterm-keybind-derive/crossterm_0_28_1"]
derive = ["toml", "toml-example", "struct-patch", "crossterm-keybind-derive", "log"]
# check the default keybinding format when compiling
check = ["crossterm-keybind-derive/check"]
# case_ignore on modifiers
case_ignore = ["crossterm-keybind-core/case_ignore"]

[dependencies]
crossterm-keybind-core  = { version = "=0.3.3", path = "../crossterm-keybind-core" }
crossterm-keybind-derive  = { version = "=0.3.3", path = "../crossterm-keybind-derive", optional = true }

crossterm_0_29_0 = { package = "crossterm", version = "0.29.0", optional = true, default-features = false, features = ["events"]}
crossterm_0_28_1 = { package = "crossterm", version = "0.28.1", optional = true, default-features = false, features = ["events"]}
toml = { version = "0.9.10", optional = true }
toml-example = { version = "0.16.1", optional = true }
struct-patch = { version = "0.10.4", optional = true }
thiserror = "2.0.17"
log = { version = "0.4.29", optional = true }

[dev-dependencies]
toml = "0.9.10"
