T25d Generative: sound and motion

AudioGenerationPlayer shows a generated sound's prompt, model and
length, a bar while it is made, then chat::AudioMessage to play it;
Regenerate and Download wait for it. TTSVoicePicker lists voices with a
sample to play, the chosen one washed with a check, tags dropping below
when narrow. VideoGenerationTimeline lays shots along their time under
a ruler, with posters, placeholders, a playhead and Extend.

AudioMessage's waveform is one Tab stop where Left and Right seek, and
it gives way at 280px. debug::ruler serves the timeline's ruler. A mask
shown to read no longer follows the pointer.
This commit is contained in:
ZacharyZhang-NY committed 2026-09-26 13:16:42 -04:00
1 parent 6bfd53baee
commit 2266b4e367
16 files changed
+1198 -19

No files matched your search

+6
View File
@@ -7,12 +7,18 @@ use super::{Theme, tokens::px_to_rems};
pub struct GenerativeSizes {
/// A style preset's picture, square.
pub preset: Rems,
/// A second of video along a timeline.
pub second: Rems,
/// A shot's height on a timeline.
pub shot: Rems,
}
impl Theme {
pub fn generative(&self) -> GenerativeSizes {
GenerativeSizes {
preset: px_to_rems(88.0),
second: px_to_rems(24.0),
shot: px_to_rems(56.0),
}
}
}