Conflicts kept both sides: Help's message leaves the screen and a message said in runs gives way at each choice (actions.rs); Escape closes the partner menu, then Track A's Escape (picker, panels, scan); the cell button keeps hidden words and Edit mode, with Track A's navigation words (translate::cell_label, in the editor too); Help's banner or the message bar's buttons, and in Edit mode the edit bar's Show hidden and Done (setup wizard: Track A's access choices with the vocabulary from the words chosen); the recording stops and the prompt stops when the person's words are said (tts.rs); both persistence tests. Integrated: - dwell pauses while a message is recorded (pointing::pause_dwell_while, from media::install), in place of the old shell dwell loop; - in Edit mode, eyes and head reach the edit bar's Show hidden and Done (pointing CONTROLS / EDIT_CONTROLS) and nothing else, so someone who chooses by looking can leave it; a pointer reaches nothing there; - a hidden word is an empty place to auditory scanning's cues (rows named by their first word too) and to auditory touch (editing::words_named); - the backup's app settings hold aac_access (switches, auditory scanning, pointing and touch), brought back under the same question; - a lock chosen by switch scanning or dwell is not set (it could keep that person out of Settings): someone helping sets it. Co-Authored-By: Claude Opus 5.5 <[email protected]>
120 lines
4.3 KiB
TOML
120 lines
4.3 KiB
TOML
[package]
|
|
name = "aac-web"
|
|
version.workspace = true
|
|
edition.workspace = true
|
|
# public/symbols/ holds CC BY-SA 4.0 symbol sprites (see LICENSES.md there).
|
|
license = "Apache-2.0 AND CC-BY-SA-4.0"
|
|
repository.workspace = true
|
|
rust-version.workspace = true
|
|
authors.workspace = true
|
|
publish = false
|
|
description = "aac.transaction.science — reference AAC communication app for the AAC open standard, built with Leptos 0.8. Free forever."
|
|
|
|
[lib]
|
|
crate-type = ["cdylib", "rlib"]
|
|
|
|
[[bin]]
|
|
name = "aac-web"
|
|
path = "src/main.rs"
|
|
required-features = ["ssr"]
|
|
|
|
[dependencies]
|
|
# Internal — the AAC open standard reference engine + shared access kernel
|
|
aac-core = { workspace = true }
|
|
access-core = { workspace = true }
|
|
|
|
# Leptos framework
|
|
leptos = "0.8"
|
|
leptos_router = "0.8"
|
|
leptos_meta = "0.8"
|
|
leptos_axum = { version = "0.8", optional = true }
|
|
leptos_config = { version = "0.8", optional = true }
|
|
|
|
# Common
|
|
serde = { version = "1", features = ["derive"] }
|
|
serde_json = "1"
|
|
uuid = { version = "1", features = ["v4"] }
|
|
chrono = { workspace = true }
|
|
|
|
# Server (SSR only)
|
|
axum = { version = "0.8", features = ["macros"], optional = true }
|
|
axum-server = { version = "0.8", optional = true }
|
|
tower = { version = "0.5", optional = true }
|
|
tower-http = { version = "0.6", features = ["fs", "cors"], optional = true }
|
|
tokio = { version = "1", features = ["full"], optional = true }
|
|
tracing = { version = "0.1", optional = true }
|
|
tracing-subscriber = { version = "0.3", features = ["env-filter"], optional = true }
|
|
dotenvy = { version = "0.15", optional = true }
|
|
|
|
# WASM (hydrate only). Pinned to the wasm-bindgen-cli version installed on the
|
|
# build machine (0.2.114); js-sys/web-sys cascade to matching versions.
|
|
wasm-bindgen = { version = "=0.2.114", optional = true }
|
|
wasm-bindgen-futures = { version = "0.4", optional = true }
|
|
web-sys = { version = "0.3", optional = true, features = [
|
|
"Window", "Document", "Element", "HtmlElement", "HtmlButtonElement",
|
|
"HtmlInputElement", "HtmlTextAreaElement", "HtmlVideoElement", "HtmlMediaElement",
|
|
"Node", "NodeList", "console", "Performance",
|
|
"KeyboardEvent", "MouseEvent", "PointerEvent", "Event", "EventTarget",
|
|
"SpeechSynthesis", "SpeechSynthesisUtterance", "SpeechSynthesisVoice",
|
|
"SpeechSynthesisEvent",
|
|
"MediaDevices", "MediaStream", "MediaStreamConstraints", "MediaRecorder", "MediaRecorderOptions",
|
|
"Navigator", "BlobEvent",
|
|
"CssStyleDeclaration", "DomRect",
|
|
"Gamepad", "GamepadButton", "GamepadEvent",
|
|
"Blob", "BlobPropertyBag", "Url", "File", "FileList", "FileReader",
|
|
"Storage", "StorageEvent", "VisibilityState", "MediaQueryList",
|
|
"ServiceWorkerContainer", "ServiceWorkerRegistration",
|
|
"Location",
|
|
# Auditory scanning's tone (cues.rs), panels scrolled to the highlight
|
|
# (dialog_scan.rs), and the pointer and touch listeners (pointing.rs).
|
|
"AudioContext", "BaseAudioContext", "AudioNode", "AudioParam", "GainNode",
|
|
"OscillatorNode", "AudioDestinationNode", "AudioScheduledSourceNode",
|
|
"ScrollIntoViewOptions", "ScrollLogicalPosition", "AddEventListenerOptions",
|
|
"HtmlSelectElement", "HtmlOptionElement", "HtmlOptionsCollection", "EventInit",
|
|
] }
|
|
js-sys = { version = "0.3", optional = true }
|
|
gloo-timers = { version = "0.4", optional = true, features = ["futures"] }
|
|
console_error_panic_hook = { version = "0.1", optional = true }
|
|
|
|
[features]
|
|
default = []
|
|
hydrate = [
|
|
"leptos/hydrate",
|
|
"dep:wasm-bindgen",
|
|
"dep:wasm-bindgen-futures",
|
|
"dep:web-sys",
|
|
"dep:js-sys",
|
|
"dep:gloo-timers",
|
|
"dep:console_error_panic_hook",
|
|
]
|
|
ssr = [
|
|
"leptos/ssr",
|
|
"dep:leptos_axum",
|
|
"dep:leptos_config",
|
|
"dep:axum",
|
|
"dep:axum-server",
|
|
"dep:tower",
|
|
"dep:tower-http",
|
|
"dep:tokio",
|
|
"dep:tracing",
|
|
"dep:tracing-subscriber",
|
|
"dep:dotenvy",
|
|
]
|
|
|
|
[package.metadata.leptos]
|
|
bin-target = "aac-web"
|
|
output-name = "aac-web"
|
|
site-root = "target/site"
|
|
site-pkg-dir = "pkg"
|
|
style-file = "style/main.css"
|
|
assets-dir = "public"
|
|
site-addr = "127.0.0.1:3920"
|
|
reload-port = 3921
|
|
bin-features = ["ssr"]
|
|
lib-features = ["hydrate"]
|
|
|
|
# On wasm32, uuid's v4 generator needs a browser randomness source. Feature
|
|
# unification carries this to aac-core's UUID use too; the native server build
|
|
# is unaffected. (Must stay at file end — a target table closes [dependencies].)
|
|
[target.'cfg(target_arch = "wasm32")'.dependencies]
|
|
uuid = { version = "1", features = ["js"] }
|