use rae::{
built_in_token_presets, built_in_widget_catalog, ComponentRole, ComponentSize,
WidgetCatalogQuery, WidgetCategory, WidgetState, WidgetUseCase, WidgetVariant,
};
fn main() {
let catalog = built_in_widget_catalog();
let audio = catalog.query(
WidgetCatalogQuery::new()
.text("audio meter")
.category(WidgetCategory::ProAudio)
.use_case(WidgetUseCase::AudioProduction)
.variant(WidgetVariant::Glass)
.limit(6),
);
println!("audio glass query: {} results", audio.len());
for widget in audio {
println!("- {:<20} {}", widget.id, widget.summary);
}
let developer = catalog.query_ids(
WidgetCatalogQuery::new()
.text("focus")
.use_case(WidgetUseCase::DeveloperTools)
.limit(5),
);
println!("developer focus ids: {:?}", developer);
let tokens = built_in_token_presets()
.into_iter()
.find(|tokens| tokens.id == "developer_dark")
.expect("developer token preset");
let defaults = tokens.component_defaults(
WidgetVariant::Glass,
ComponentSize::Large,
ComponentRole::Accent,
WidgetState::new().focused(true),
);
println!(
"defaults: height={:.0}px padding={:.0}/{:.0}px radius={:.0}px blur={:.1}px",
defaults.height_px,
defaults.padding_x_px,
defaults.padding_y_px,
defaults.radius_px,
defaults.material.blur_px,
);
}