use hydrolysis_m3::install as install_m3;
use waterui::component::{hstack, vstack};
use waterui::prelude::*;
use waterui_testing::{OffscreenApp, UiBuilder};
const SAMPLES: &[(&str, &str)] = &[
("Latin", "Ada Lovelace"),
("Cyrillic", "Ольга Ладыженская"),
("Han (ja)", "山田 太郎"),
("Han (zh)", "北京欢迎你"),
("Hangul", "안녕하세요"),
("Arabic", "مرحبا بالعالم"),
("Hebrew", "שלום עולם"),
("Thai", "สวัสดีชาวโลก"),
("Devanagari", "नमस्ते दुनिया"),
];
fn gallery() -> impl View {
vstack(
SAMPLES
.iter()
.map(|(script, sample)| {
hstack((
text(*script).width(120.0),
text(*sample).font(waterui::text::font::Title),
))
.spacing(16.0)
})
.collect::<Vec<_>>(),
)
.spacing(8.0)
.padding_with(16.0)
}
fn capture(ui: UiBuilder, stage: &str) {
let mut app: OffscreenApp = ui.viewport(520, 420).mount_offscreen(gallery);
let _ = app.capture_snapshot("text-scripts", "gallery", stage);
}
#[ignore = "writes a visual acceptance PNG for direct image review"]
#[waterui::test(theme = install_m3)]
fn script_gallery_light(ui: UiBuilder) {
capture(ui, "light");
}
#[ignore = "writes a visual acceptance PNG for direct image review"]
#[waterui::test]
fn script_gallery_dark(ui: UiBuilder) {
capture(
ui.theme(|env: &mut Environment| {
hydrolysis_m3::install_with_colors(
env,
hydrolysis_m3::MaterialColorScheme::baseline_dark(),
);
}),
"dark",
);
}