[package]
name = "tinymist-viewer"
description = "A WGPU-based viewer for the Typst typesetting system using Vello."
categories = ["compilers"]
keywords = ["api", "language", "typst"]
version.workspace = true
authors.workspace = true
license.workspace = true
edition.workspace = true
homepage.workspace = true
repository.workspace = true
rust-version.workspace = true

[dependencies]

anyhow.workspace = true
async-trait.workspace = true
bytes.workspace = true
clap.workspace = true
comemo.workspace = true
ecow.workspace = true
env_logger.workspace = true
ezsockets.workspace = true
futures.workspace = true
hayro.workspace = true
image.workspace = true
indexmap.workspace = true
log.workspace = true
masonry.workspace = true
masonry_winit.workspace = true
open.workspace = true
parking_lot.workspace = true
reflexo-vec2svg.workspace = true
reflexo-typst.workspace = true
serde_json.workspace = true
serde.workspace = true
smallvec.workspace = true
tokio = { workspace = true, features = ["time", "rt-multi-thread"] }
typst.workspace = true
typst-assets = { workspace = true, features = ["fonts"] }
typst-library.workspace = true
reflexo.workspace = true
resvg.workspace = true
svgtypes.workspace = true
tinymist-assets.workspace = true
tinymist-std.workspace = true
tinymist-preview.workspace = true
tracing.workspace = true
ttf-parser.workspace = true
vello.workspace = true
winit.workspace = true
xilem.workspace = true

[target.'cfg(target_os = "windows")'.dependencies]
windows-sys = { workspace = true, features = [
    "Win32_Foundation",
    "Win32_Graphics_Gdi",
    "Win32_UI_HiDpi",
    "Win32_UI_Input_KeyboardAndMouse",
    "Win32_UI_Shell",
    "Win32_UI_WindowsAndMessaging",
] }

[target.'cfg(target_os = "linux")'.dependencies]
# Use Fontique's runtime fontconfig loading so Linux release builds do not need
# a target-specific fontconfig pkg-config setup.
fontique = { workspace = true, features = ["fontconfig-dlopen"] }

[features]

default = ["no-content-hint", "cli"]
cli = []

# Disable the default content hint.
# This requires modifying typst.
no-content-hint = ["reflexo-typst/no-content-hint"]

[[bench]]
name = "page_incremental_rendering"
harness = false

[[bench]]
name = "a11y_synthetic_tree"
harness = false

[dev-dependencies]
accesskit_consumer = "0.31.0"
criterion.workspace = true
insta.workspace = true
masonry_testing.workspace = true
masonry_winit.workspace = true
pollster = "0.4"
sha2.workspace = true
tinymist-tests.workspace = true
typst-dev-assets = { git = "https://github.com/typst/typst-dev-assets", tag = "v0.15.0" }
typst-syntax.workspace = true
typst-utils.workspace = true
walkdir.workspace = true

[lints]
workspace = true
