# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
#
# When uploading crates to the registry Cargo will automatically
# "normalize" Cargo.toml files for maximal compatibility
# with all versions of Cargo and also rewrite `path` dependencies
# to registry (e.g., crates.io) dependencies.
#
# If you are reading this file be aware that the original Cargo.toml
# will likely look very different (and much more reasonable).
# See Cargo.toml.orig for the original contents.

[package]
edition = "2021"
rust-version = "1.87"
name = "revue"
version = "2.41.1"
build = "build.rs"
exclude = [
    "revue-cli/",
    "references/",
    "playground/",
    "extensions/",
    "tools/",
    "docs/",
    "tree-sitter-revue-css/",
    ".claude/",
    ".github/",
    "CONTRIBUTING.md",
    "cliff.toml",
    "deny.toml",
    "lefthook.yml",
    "*.rlib",
    "badge",
    "spinner",
    "tabs",
]
include = [
    "build.rs",
    "src/**/*.rs",
    "src/style/themes/*.css",
    "Cargo.toml",
    "LICENSE*",
    "README.md",
    "benches/**/*.rs",
    "examples/**/*.rs",
    "tests/**/*.rs",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "A Vue-style TUI framework for Rust with CSS styling"
homepage = "https://hawk90.github.io/revue"
documentation = "https://docs.rs/revue"
readme = "README.md"
keywords = [
    "tui",
    "terminal",
    "css",
    "reactive",
    "ui",
]
categories = [
    "command-line-interface",
    "gui",
]
license = "MIT"
repository = "https://github.com/hawk90/revue"

[features]
all-gui = [
    "std",
    "syntax-highlighting",
    "qrcode",
    "sysinfo",
    "diff",
    "clipboard",
    "hot-reload",
]
async = ["dep:tokio"]
clipboard = ["dep:arboard"]
config = [
    "dep:serde",
    "dep:toml",
    "dep:dirs",
]
default = [
    "async",
    "config",
]
devtools = []
diff = ["dep:similar"]
full = [
    "devtools",
    "async",
    "config",
    "tracing",
    "markdown",
    "syntax-highlighting",
    "image",
    "qrcode",
    "sysinfo",
    "diff",
    "clipboard",
    "hot-reload",
]
gui = [
    "async",
    "config",
    "markdown",
    "image",
]
hot-reload = ["dep:notify"]
http = ["dep:reqwest"]
image = [
    "dep:image",
    "dep:base64",
]
markdown = ["dep:pulldown-cmark"]
qrcode = ["dep:qrcode"]
std = [
    "async",
    "config",
    "tracing",
]
syntax-highlighting = [
    "dep:tree-sitter-highlight",
    "dep:tree-sitter-rust",
    "dep:tree-sitter-python",
    "dep:tree-sitter-javascript",
    "dep:tree-sitter-json",
    "dep:tree-sitter-go",
    "dep:tree-sitter-bash",
    "dep:tree-sitter-html",
    "dep:tree-sitter-css",
    "dep:tree-sitter-toml-ng",
    "dep:tree-sitter-yaml",
    "dep:tree-sitter-sequel",
    "dep:tree-sitter-md",
]
sysinfo = ["dep:sysinfo"]
tracing = [
    "dep:tracing",
    "dep:tracing-subscriber",
]

[lib]
name = "revue"
path = "src/lib.rs"

[[example]]
name = "alert"
path = "examples/alert.rs"

[[example]]
name = "animations"
path = "examples/animations.rs"

[[example]]
name = "benchmark_rendering"
path = "examples/benchmark_rendering.rs"

[[example]]
name = "callout"
path = "examples/callout.rs"

[[example]]
name = "card"
path = "examples/card.rs"

[[example]]
name = "chat"
path = "examples/chat.rs"

[[example]]
name = "counter"
path = "examples/counter.rs"

[[example]]
name = "dashboard"
path = "examples/dashboard.rs"

[[example]]
name = "data_explorer"
path = "examples/data_explorer.rs"

[[example]]
name = "datetime_picker"
path = "examples/datetime_picker.rs"

[[example]]
name = "demo"
path = "examples/demo.rs"

[[example]]
name = "drag_drop"
path = "examples/drag_drop.rs"

[[example]]
name = "form_validation"
path = "examples/form_validation.rs"

[[example]]
name = "gallery"
path = "examples/gallery.rs"

[[example]]
name = "hello_world"
path = "examples/hello_world.rs"

[[example]]
name = "ide"
path = "examples/ide.rs"

[[example]]
name = "new_widgets"
path = "examples/new_widgets.rs"

[[example]]
name = "plugins"
path = "examples/plugins.rs"

[[example]]
name = "reactive_form"
path = "examples/reactive_form.rs"

[[example]]
name = "slideshow"
path = "examples/slideshow.rs"
required-features = ["markdown"]

[[example]]
name = "status_indicator"
path = "examples/status_indicator.rs"

[[example]]
name = "store"
path = "examples/store.rs"

[[example]]
name = "tasks_usage"
path = "examples/tasks_usage.rs"

[[example]]
name = "test_helper_functions"
path = "examples/test_helper_functions.rs"

[[example]]
name = "text_editor"
path = "examples/text_editor.rs"

[[example]]
name = "theme_switcher"
path = "examples/theme_switcher.rs"

[[example]]
name = "todo"
path = "examples/todo.rs"

[[example]]
name = "version"
path = "examples/version.rs"

[[example]]
name = "worker_basic"
path = "examples/worker_basic.rs"

[[example]]
name = "worker_progress"
path = "examples/worker_progress.rs"

[[test]]
name = "a11y_tests"
path = "tests/a11y_tests.rs"

[[test]]
name = "canvas_tests"
path = "tests/canvas_tests.rs"

[[test]]
name = "code_editor_tests"
path = "tests/code_editor_tests.rs"

[[test]]
name = "data_viewer_tests"
path = "tests/data_viewer_tests.rs"

[[test]]
name = "event_tests"
path = "tests/event_tests.rs"

[[test]]
name = "layout_tests"
path = "tests/layout_tests.rs"

[[test]]
name = "log_viewer_tests"
path = "tests/log_viewer_tests.rs"

[[test]]
name = "property_tests"
path = "tests/property_tests.rs"

[[test]]
name = "reactive_edge_cases"
path = "tests/reactive_edge_cases.rs"

[[test]]
name = "reactive_tests"
path = "tests/reactive_tests.rs"

[[test]]
name = "render_tests"
path = "tests/render_tests.rs"

[[test]]
name = "rich_text_editor_tests"
path = "tests/rich_text_editor_tests.rs"

[[test]]
name = "sidebar_tests"
path = "tests/sidebar_tests.rs"

[[test]]
name = "style_tests"
path = "tests/style_tests.rs"

[[test]]
name = "textarea_bounds_tests"
path = "tests/textarea_bounds_tests.rs"

[[test]]
name = "widget_snapshots"
path = "tests/widget_snapshots.rs"

[[test]]
name = "widget_tests"
path = "tests/widget_tests.rs"

[[test]]
name = "worker_tests"
path = "tests/worker_tests.rs"

[[bench]]
name = "css"
path = "benches/css.rs"
harness = false

[[bench]]
name = "dom"
path = "benches/dom.rs"
harness = false

[[bench]]
name = "layout"
path = "benches/layout.rs"
harness = false

[[bench]]
name = "reactive_updates"
path = "benches/reactive_updates.rs"

[[bench]]
name = "render"
path = "benches/render.rs"
harness = false

[dependencies.arboard]
version = "3.4"
optional = true

[dependencies.base64]
version = "0.22"
optional = true

[dependencies.bitflags]
version = "2.6"

[dependencies.crossterm]
version = "0.29"

[dependencies.dirs]
version = "6.0"
optional = true

[dependencies.image]
version = "0.25"
optional = true

[dependencies.notify]
version = "8.2"
optional = true

[dependencies.pulldown-cmark]
version = "0.13"
optional = true

[dependencies.qrcode]
version = "0.14"
optional = true

[dependencies.reqwest]
version = "0.13"
features = [
    "json",
    "blocking",
]
optional = true

[dependencies.revue-macros]
version = "2.41.1"

[dependencies.serde]
version = "1.0"
features = ["derive"]
optional = true

[dependencies.similar]
version = "2.6"
optional = true

[dependencies.sysinfo]
version = "0.38"
optional = true

[dependencies.textwrap]
version = "0.16"

[dependencies.thiserror]
version = "2.0"

[dependencies.tokio]
version = "1"
features = [
    "rt-multi-thread",
    "macros",
    "time",
    "sync",
]
optional = true

[dependencies.toml]
version = "0.9"
optional = true

[dependencies.tracing]
version = "0.1"
optional = true

[dependencies.tracing-subscriber]
version = "0.3"
optional = true

[dependencies.tree-sitter-bash]
version = "0.25"
optional = true

[dependencies.tree-sitter-css]
version = "0.25"
optional = true

[dependencies.tree-sitter-go]
version = "0.25"
optional = true

[dependencies.tree-sitter-highlight]
version = "0.26"
optional = true

[dependencies.tree-sitter-html]
version = "0.23"
optional = true

[dependencies.tree-sitter-javascript]
version = "0.25"
optional = true

[dependencies.tree-sitter-json]
version = "0.24"
optional = true

[dependencies.tree-sitter-md]
version = "0.5"
optional = true

[dependencies.tree-sitter-python]
version = "0.25"
optional = true

[dependencies.tree-sitter-rust]
version = "0.24"
optional = true

[dependencies.tree-sitter-sequel]
version = "0.3"
optional = true

[dependencies.tree-sitter-toml-ng]
version = "0.7"
optional = true

[dependencies.tree-sitter-yaml]
version = "0.7"
optional = true

[dependencies.unic-emoji-char]
version = "0.9"

[dependencies.unicode-segmentation]
version = "1.10"

[dependencies.unicode-width]
version = "0.2"

[dev-dependencies.criterion]
version = "0.8"
features = ["html_reports"]

[dev-dependencies.insta]
version = "1.34"

[dev-dependencies.pretty_assertions]
version = "1.4"

[dev-dependencies.proptest]
version = "1.4"

[dev-dependencies.serial_test]
version = "3.1"

[dev-dependencies.tempfile]
version = "3.10"

[dev-dependencies.tokio-test]
version = "0.4"

[profile.release]
opt-level = 3
lto = true
codegen-units = 1
panic = "abort"
strip = true

[profile.release-debug]
debug = 2
inherits = "release"
strip = false

[profile.release-min-size]
opt-level = "z"
inherits = "release"
strip = true
