Opinionated, component-based TUI framework for Rust - declarative components, reconciliation, layout engine, focus, overlays, and rich widgets on top of ratatui.
useunicode_width::UnicodeWidthStr;usesuper::Checkbox;pubfnmeasure_checkbox(checkbox:&Checkbox)->(u16, u16){let symbol_w = checkbox.variant.width()asusize;let label_w = checkbox
.label
.as_ref().map(|l|UnicodeWidthStr::width(l.as_ref())).unwrap_or(0);letmut w = symbol_w;if label_w >0{
w = w
.saturating_add(checkbox.gap asusize).saturating_add(label_w);}
w = w.saturating_add(checkbox.padding.horizontal()asusize);let h =1usize.saturating_add(checkbox.padding.vertical()asusize);let w = w.min(u16::MAXasusize)asu16;let h = h.min(u16::MAXasusize)asu16;(w, h)}