use hydrolysis_m3::Material3;
use waterui::component::{hstack, vstack};
use waterui::prelude::*;
use waterui_testing::{OffscreenApp, Styled, 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<Styled<Material3>>, stage: &str) {
let mut app: OffscreenApp = ui.mount_offscreen(gallery);
let _ = app.capture_snapshot("text-scripts", "gallery", stage);
}
#[ignore = "writes a visual acceptance PNG for direct image review"]
#[waterui::test(theme = hydrolysis_m3::Material3::defaults(), viewport = (520, 420))]
fn script_gallery_light(ui: UiBuilder<Styled<Material3>>) {
capture(ui, "light");
}
#[ignore = "writes a visual acceptance PNG for direct image review"]
#[waterui::test(
theme = hydrolysis_m3::Material3::with_colors(hydrolysis_m3::MaterialColorScheme::baseline_dark()),
viewport = (520, 420)
)]
fn script_gallery_dark(ui: UiBuilder<Styled<Material3>>) {
capture(ui, "dark");
}