Opinionated, component-based TUI framework for Rust - declarative components, reconciliation, layout engine, focus, overlays, and rich widgets on top of ratatui.
useunicode_width::{UnicodeWidthChar, UnicodeWidthStr};usesuper::Tabs;pubfnmeasure_tabs(tabs:&Tabs)->(u16, u16){letmut w =0usize;for(i, tab)in tabs.tabs.iter().enumerate(){
w = w.saturating_add(UnicodeWidthStr::width(tab.label.as_ref()).saturating_add(2));if i +1< tabs.tabs.len(){
w = w.saturating_add(UnicodeWidthChar::width(tabs.divider).unwrap_or(1));}}letmut h =1usize;
w = w.saturating_add(tabs.padding.horizontal()asusize);
h = h.saturating_add(tabs.padding.vertical()asusize);if tabs.border {
w = w.saturating_add(2);
h = h.saturating_add(2);}let w = w.min(u16::MAXasusize)asu16;let h = h.min(u16::MAXasusize)asu16;(w, h)}