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