vtcode_tui/core_tui/session/modal/
layout.rs1use crate::ui::tui::types::SecurePromptConfig;
2use ratatui::prelude::*;
3use ratatui_cheese::input::InputStyles;
4
5use super::state::{ModalListState, ModalSearchState};
6
7pub struct ModalRenderStyles {
8 pub border: Style,
9 pub highlight: Style,
10 pub badge: Style,
11 pub header: Style,
12 pub selectable: Style,
13 pub detail: Style,
14 pub search_match: Style,
15 pub title: Style,
16 pub divider: Style,
17 pub instruction_border: Style,
18 pub instruction_title: Style,
19 pub instruction_bullet: Style,
20 pub instruction_body: Style,
21 pub hint: Style,
22}
23
24pub struct ModalBodyContext<'a, 'b> {
25 pub instructions: &'a [String],
26 pub footer_hint: Option<&'a str>,
27 pub list: Option<&'b mut ModalListState>,
28 pub styles: &'a ModalRenderStyles,
29 pub secure_prompt: Option<&'a SecurePromptConfig>,
30 pub search: Option<&'a ModalSearchState>,
31 pub input: &'a str,
32 pub cursor: usize,
33 pub input_styles: &'a InputStyles,
34}
35
36#[derive(Clone, Copy)]
37pub enum ModalSection {
38 Search,
39 Instructions,
40 Prompt,
41 List,
42}