Gunnar

nordisk/gunnar-ui

crates/gunnar-ui-web/Cargo.toml

[package]
name = "gunnar-ui-web"
description = "The gunnar console: a Leptos/WASM single-page app served by gunnar-ui-server"
version.workspace = true
edition.workspace = true
rust-version.workspace = true
repository.workspace = true
license.workspace = true
authors.workspace = true
publish.workspace = true

[features]
default = []
# The paid half of the console. gunnar's own feature name, and
# gunnar-ui-server's: one word turns the appliance's metered build on
# everywhere, and a second spelling would let the console and the server
# disagree about whether this box sells anything.
metered = []

[dependencies]
leptos = { version = "0.8", features = ["csr"] }
leptos_router = "0.8"
serde.workspace = true
serde_json.workspace = true

console_error_panic_hook = "0.1"
gloo-net = { version = "0.7", features = ["http"] }
gloo-timers = { version = "0.4", features = ["futures"] }
wasm-bindgen = "0.2"
wasm-bindgen-futures = "0.4"
js-sys = "0.3"
send_wrapper = "0.6"
# Encrypted repositories: open and diff in this tab, with the SAME crate the
# gunnar CLI runs natively (format, open, diff), and `user-key`: the person's
# encryption key, opened in this tab with their security key (WebAuthn PRF) or
# a printed recovery code (age X25519 and scrypt; no SSH, no PQ).
gunnar-crypt = { version = "1.4", path = "../../../gunnar/crates/gunnar-crypt", default-features = false, features = ["cipher", "diff", "user-key"] }

# `EventSource`/`MessageEvent`/`ErrorEvent` carry the live event feed. Neither
# garmr's nor holger's console enables them — both poll — so this list cannot be
# copied from either.
web-sys = { version = "0.3", features = [
  "Window",
  "Location",
  "Document",
  "Element",
  "HtmlElement",
  "HtmlInputElement",
  "Storage",
  "Navigator",
  "Event",
  "EventTarget",
  "EventSource",
  "MessageEvent",
  "ErrorEvent",
  "MediaQueryList",
  "Crypto",
] }

[dev-dependencies]
# The suite's one estate renderer, so the Machine card's guard is held to the
# drawings it really gets (the BFF draws with it; the page never does).
nordisk-estate-svg = { version = "0.1", path = "../../../monetize/crates/estate-svg" }