Primitives

Dialog

Modal dialog component for user interactions.

Overview

The Dialog primitive provides modal dialog functionality for user confirmations, alerts, and input collection.

Basic Usage

use ratkit::primitives::dialog::{Dialog, DialogAction};
use ratatui::Frame;

fn show_dialog(frame: &mut Frame) {
    let dialog = Dialog::new()
        .title("Confirm Action")
        .content("Are you sure you want to continue?")
        .button("Yes", DialogAction::Confirm)
        .button("No", DialogAction::Cancel);
    
    frame.render_widget(dialog, frame.area());
}

Actions

Handle dialog results:

match dialog.show() {
    DialogAction::Confirm => {
        // User confirmed
    }
    DialogAction::Cancel => {
        // User cancelled
    }
}

Styling

Customize dialog appearance:

let dialog = Dialog::new()
    .title("Warning")
    .title_style(Style::default().fg(Color::Yellow))
    .border_style(Style::default().fg(Color::Red));