rat-popup 3.0.2

ratatui popup semi-window widget
Documentation
use rat_popup::PopupConstraint;
use ratatui_core::layout::Alignment;

pub mod popup_edit;
pub mod popup_focus;
pub mod popup_lock_edit;
pub mod popup_nonfocus;

fn calc_dxy(placement: PopupConstraint, d: u16) -> (i16, i16) {
    let neg_d = 0i16.saturating_sub_unsigned(d);
    match placement {
        PopupConstraint::None => (0, 0),
        PopupConstraint::Above(Alignment::Left, _) => (neg_d, 0),
        PopupConstraint::Above(Alignment::Center, _) => (0, 0),
        PopupConstraint::Above(Alignment::Right, _) => (1, 0),
        PopupConstraint::Left(Alignment::Left, _) => (0, neg_d),
        PopupConstraint::Left(Alignment::Center, _) => (0, 0),
        PopupConstraint::Left(Alignment::Right, _) => (0, 1),
        PopupConstraint::Right(Alignment::Left, _) => (0, neg_d),
        PopupConstraint::Right(Alignment::Center, _) => (0, 0),
        PopupConstraint::Right(Alignment::Right, _) => (0, 1),
        PopupConstraint::Below(Alignment::Left, _) => (neg_d, 0),
        PopupConstraint::Below(Alignment::Center, _) => (0, 0),
        PopupConstraint::Below(Alignment::Right, _) => (1, 0),
        PopupConstraint::Position(_, _) => (neg_d, neg_d),
        _ => {
            unimplemented!()
        }
    }
}