Skip to main content

egui_charts/ui_kit/modal/
mod.rs

1//! Modal System
2//!
3//! A composable modal system with standard dialog patterns.
4//!
5//! # Usage
6//!
7//! ## Basic Modal
8//!
9//! ```
10//! use egui_charts::ui_kit::modal::ModalHandler;
11//!
12//! // In your state
13//! struct MyState {
14//!     delete_modal: ModalHandler<u64>,
15//! }
16//! # let mut state = MyState { delete_modal: ModalHandler::new("delete_modal") };
17//! # let item_id = 7;
18//!
19//! // Open the modal
20//! state.delete_modal.open_with(item_id);
21//!
22//! // Show the modal
23//! # egui::__run_test_ctx(|ctx| {
24//! state.delete_modal.show(ctx, |ui, payload| {
25//!     if let Some(id) = payload {
26//!         ui.label(format!("Delete item {}?", id));
27//!         if ui.button("Delete").clicked() {
28//!             // Handle delete
29//!         }
30//!     }
31//! });
32//! # });
33//! ```
34//!
35//! ## Confirm Dialog
36//!
37//! ```
38//! use egui_charts::ui_kit::modal::dialogs::{ConfirmDialog, ConfirmResult};
39//!
40//! # egui::__run_test_ctx(|ctx| {
41//! # let mut open = true;
42//! let result = ConfirmDialog::new("delete_confirm", "Confirm Delete", "Are you sure?")
43//!     .danger()
44//!     .confirm_text("Delete")
45//!     .show(ctx, &mut open);
46//!
47//! match result {
48//!     ConfirmResult::Confirmed => { /* delete */ }
49//!     ConfirmResult::Cancelled => { /* cancelled */ }
50//!     ConfirmResult::None => { /* still open */ }
51//! }
52//! # });
53//! ```
54//!
55//! ## Prompt Dialog
56//!
57//! ```
58//! use egui_charts::ui_kit::modal::dialogs::{PromptDialog, PromptResult};
59//!
60//! # egui::__run_test_ctx(|ctx| {
61//! # let mut open = true;
62//! # let current_name = "My Layout";
63//! let result = PromptDialog::new("rename_prompt", "Rename Item")
64//!     .message("Enter a new name:")
65//!     .initial_value(current_name)
66//!     .show(ctx, &mut open);
67//!
68//! if let PromptResult::Submitted(new_name) = result {
69//!     // Handle rename
70//! }
71//! # });
72//! ```
73
74pub mod dialogs;
75mod modal;
76mod modal_handler;
77
78pub use modal::{Modal, ModalResponse, SimpleModal, show_modal};
79pub use modal_handler::ModalHandler;