ratkit 0.2.0

Core runtime meta-crate re-exporting ratkit TUI components.
Documentation
[package]
name = "ratkit"
version = "0.2.0"
edition.workspace = true
rust-version.workspace = true
authors.workspace = true
description = "Core runtime meta-crate re-exporting ratkit TUI components."
documentation = "https://docs.rs/ratkit"
repository.workspace = true
homepage.workspace = true
license.workspace = true
keywords = ["tui", "ratatui", "widgets", "ui"]
categories = ["command-line-interface", "gui"]

[dependencies]
# Core dependencies (always included)
ratatui.workspace = true
crossterm.workspace = true
tokio.workspace = true
unicode-width.workspace = true
tracing.workspace = true
anyhow.workspace = true
thiserror.workspace = true
uuid = { version = "1.10", features = ["v4", "serde"] }

# Optional dependencies for specific features
## ai-chat feature
reqwest = { version = "0.12", features = ["json"], optional = true }
serde = { version = "1", features = ["derive"], optional = true }
serde_json = { version = "1", optional = true }

## termtui feature
compact_str = { version = "0.8", optional = true }
unicode-segmentation = { version = "1.10", optional = true }
log = { version = "0.4", optional = true }

## file-watcher, git-watcher, markdown-preview features
notify = { version = "6", optional = true }

## markdown-preview feature
pulldown-cmark = { version = "0.12", optional = true }
syntect = { version = "5", optional = true }
syntect-tui = { version = "3", optional = true }
arboard = { version = "3", optional = true }
dirs = { version = "5", optional = true }

## code-diff feature
similar = { version = "2", optional = true }

## file-system-tree feature
devicons = { version = "0.6", optional = true }

[features]
default = []

all = [
    "button",
    "pane",
    "dialog",
    "toast",
    "statusline",
    "scroll",
    "menu-bar",
    "resizable-grid",
    "tree-view",
    "widget-event",
    "termtui",
    "markdown-preview",
    "code-diff",
    "ai-chat",
    "hotkey-footer",
    "file-system-tree",
    "theme-picker",
    "file-watcher",
    "git-watcher",
    "repo-watcher",
    "hotkey-service",
]

full = ["all"]

# Additional feature not in main groups
termtui = ["compact_str", "serde", "unicode-segmentation", "log"]

# Widget feature groups
widgets = [
    "button",
    "pane",
    "dialog",
    "toast",
    "statusline",
    "scroll",
    "menu-bar",
    "resizable-grid",
    "tree-view",
    "widget-event",
    "markdown-preview",
    "code-diff",
    "ai-chat",
    "hotkey-footer",
    "file-system-tree",
    "theme-picker",
]

services = [
    "file-watcher",
    "git-watcher",
    "repo-watcher",
    "hotkey-service",
]

# Individual widget features
button = []
pane = []
dialog = []
toast = []
statusline = []
scroll = []
menu-bar = ["widget-event"]
resizable-grid = []
tree-view = ["widget-event"]
widget-event = []
markdown-preview = ["pulldown-cmark", "syntect", "syntect-tui", "notify", "arboard", "dirs", "serde", "serde_json", "pane", "statusline", "file-watcher", "git-watcher"]
code-diff = ["similar"]
ai-chat = ["reqwest", "serde", "serde_json"]
hotkey-footer = []
file-system-tree = ["devicons"]
theme-picker = []
file-watcher = ["notify"]
git-watcher = ["notify"]
repo-watcher = ["notify", "file-watcher", "git-watcher"]
hotkey-service = []

[dev-dependencies]
ratatui.workspace = true
crossterm.workspace = true
portable-pty = "0.8"

[[example]]
name = "ratkit_demo"
required-features = ["button", "pane"]

[[example]]
name = "mouse_only"

[[example]]
name = "ai_chat_ai_chat_demo"
required-features = ["ai-chat"]

[[example]]
name = "code_diff_code_diff_demo"
required-features = ["code-diff"]

[[example]]
name = "file_system_tree_file_system_tree_demo"
required-features = ["file-system-tree"]

[[example]]
name = "hotkey_footer_hotkey_footer_demo"
required-features = ["hotkey-footer"]

[[example]]
name = "markdown_preview_markdown_preview_demo"
required-features = ["markdown-preview"]

[[example]]
name = "theme_picker_theme_picker_demo"
required-features = ["theme-picker"]