[package]
name = "snora"
description = "iced engine for the Snora GUI framework. Consumes snora-core vocabulary."
version.workspace = true
edition.workspace = true
license.workspace = true
repository.workspace = true
authors.workspace = true
readme = "../../README.md"
keywords = ["gui", "iced", "ui", "framework", "rtl"]
categories = ["gui", "development-tools", "accessibility", "asynchronous"]

[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]

[features]
# `widgets` is on by default — most applications want the prefab
# header / sidebar / footer / menu / icon helpers. Opt out with
# `default-features = false` to ship an engine-only build.
default = ["widgets"]

# Pulls in the snora-widgets crate and re-exports it under the
# `snora::widget` module path (preserving the 0.5.x import shape).
widgets = ["dep:snora-widgets"]

# Icon-source features. They configure both `snora-core` (vocabulary)
# and `snora-widgets` (rendering) when the latter is enabled.
lucide-icons = [
    "snora-core/lucide-icons",
    "snora-widgets?/lucide-icons",
    "dep:lucide-icons",
]
svg-icons = [
    "snora-core/svg-icons",
    "snora-widgets?/svg-icons",
    "iced/svg",
]

[dependencies]
snora-core = { path = "../snora-core", version = "0.17" }
snora-widgets = { path = "../snora-widgets", version = "0.17", optional = true }
iced = { workspace = true }
lucide-icons = { workspace = true, optional = true }

[dev-dependencies]
# Headless test harness for render-semantics tests (RFC-011-D).
# Dev-only: no impact on binary size or public feature surface.
iced_test = "0.14"
