- frontend/ crate compiles to WASM via trunk - empty Leptos app mounted to body via wasm_bindgen(start) - dependencies: leptos 0.7 CSR, leptos-use, lucide-leptos, gloo-net, web-sys - workspace cargo check passes (first time the workspace compiles end-to-end) - trunk build produces 65KB WASM + 25KB JS glue Deviations from brief: - lucide-leptos: 0.5 (brief) -> 3 (only version published) - web-sys: removed invalid features ArrayBuffer/DataView (in js-sys/wasm-bindgen) - src/main.rs -> src/lib.rs with #[wasm_bindgen(start)] to avoid bin/lib duplicate artifact
50 lines
1004 B
TOML
50 lines
1004 B
TOML
[package]
|
|
name = "frontend"
|
|
version = "0.1.0"
|
|
edition = "2021"
|
|
|
|
[lib]
|
|
crate-type = ["cdylib", "rlib"]
|
|
|
|
[dependencies]
|
|
leptos = { version = "0.7", features = ["csr"] }
|
|
leptos-use = "0.14"
|
|
lucide-leptos = "3"
|
|
shared-types = { path = "../shared-types" }
|
|
wasm-bindgen = "0.2"
|
|
js-sys = "0.3"
|
|
web-sys = { version = "0.3", features = [
|
|
"WebSocket",
|
|
"MessageEvent",
|
|
"CloseEvent",
|
|
"CanvasRenderingContext2d",
|
|
"AudioContext",
|
|
"AudioBuffer",
|
|
"AudioBufferSourceNode",
|
|
"Window",
|
|
"Document",
|
|
"Element",
|
|
"HtmlElement",
|
|
"KeyboardEvent",
|
|
"Storage",
|
|
"IntersectionObserver",
|
|
"ResizeObserver",
|
|
"Url",
|
|
"Headers",
|
|
"Request",
|
|
"RequestInit",
|
|
"Response",
|
|
"HtmlInputElement",
|
|
"HtmlAudioElement",
|
|
"HtmlCanvasElement",
|
|
"MediaDevices",
|
|
"MediaStream",
|
|
"Navigator",
|
|
"console",
|
|
] }
|
|
gloo-net = "0.6"
|
|
serde = { version = "1", features = ["derive"] }
|
|
serde-wasm-bindgen = "0.6"
|
|
wasm-logger = "0.2"
|
|
console_error_panic_hook = "0.1"
|