[package]
name = "matrix-sdk-ui"
description = "GUI-centric utilities on top of matrix-rust-sdk (experimental)."
version = "0.16.0"
edition = "2024"
repository = "https://github.com/matrix-org/matrix-rust-sdk"
license = "Apache-2.0"
rust-version.workspace = true

[package.metadata.docs.rs]
rustdoc-args = ["--generate-link-to-definition"]

[features]
default = ["native-tls"]

native-tls = ["matrix-sdk/native-tls"]
rustls-tls = ["matrix-sdk/rustls-tls"]

js = ["matrix-sdk/js"]
uniffi = ["dep:uniffi", "matrix-sdk/uniffi", "matrix-sdk-base/uniffi"]

# Add support for encrypted extensible events.
unstable-msc3956 = ["ruma/unstable-msc3956"]

# Add support for inline media galleries via msgtypes
unstable-msc4274 = ["matrix-sdk/unstable-msc4274"]

# Enable experimental support for encrypting state events; see
# https://github.com/matrix-org/matrix-rust-sdk/issues/5397.
experimental-encrypted-state-events = [
    "matrix-sdk-base/experimental-encrypted-state-events",
    "ruma/unstable-msc4362"
]

[dependencies]
as_variant.workspace = true
async-rx.workspace = true
async-stream.workspace = true
async_cell = "0.2.3"
bitflags.workspace = true
chrono.workspace = true
eyeball.workspace = true
eyeball-im.workspace = true
eyeball-im-util.workspace = true
futures-core.workspace = true
futures-util.workspace = true
fuzzy-matcher = "0.3.7"
growable-bloom-filter.workspace = true
imbl = { workspace = true, features = ["serde"] }
indexmap.workspace = true
itertools.workspace = true
matrix-sdk = { workspace = true, features = ["e2e-encryption"] }
matrix-sdk-base.workspace = true
matrix-sdk-common.workspace = true
mime.workspace = true
once_cell.workspace = true
pin-project-lite.workspace = true
ruma = { workspace = true, features = ["html", "unstable-msc3381"] }
serde.workspace = true
serde_json.workspace = true
thiserror.workspace = true
tokio.workspace = true
tokio-stream = { workspace = true, features = ["sync"] }
tracing = { workspace = true, features = ["attributes"] }
unicode-normalization.workspace = true
uniffi = { workspace = true, optional = true }

emojis = "0.8.0"
unicode-segmentation = "1.12.0"

[dev-dependencies]
anyhow.workspace = true
assert-json-diff.workspace = true
assert_matches.workspace = true
assert_matches2.workspace = true
eyeball-im-util.workspace = true
matrix-sdk = { workspace = true, features = ["testing", "sqlite"] }
matrix-sdk-test.workspace = true
matrix-sdk-test-utils.workspace = true
proptest.workspace = true
stream_assert.workspace = true
tempfile.workspace = true
url.workspace = true
wiremock.workspace = true

[lints]
workspace = true
