vtcode_ui/design/
constants.rs1pub const ELLIPSIS: &str = "\u{2026}";
8
9pub(crate) const ELLIPSIS_CHAR: char = '\u{2026}';
11
12pub(crate) const ELLIPSIS_ASCII: &str = "...";
14
15pub(crate) const INLINE_PREVIEW_ELLIPSIS: &str = ELLIPSIS;
17
18pub(crate) const COMPACT_MAX_COLS: u16 = 80;
22
23pub(crate) const COMPACT_MAX_ROWS: u16 = 20;
25
26pub(crate) const WIDE_MIN_COLS: u16 = 120;
28
29pub(crate) const WIDE_MIN_ROWS: u16 = 24;
31
32pub const SPACING_TIGHT: u16 = 1;
36
37pub const SPACING_NORMAL: u16 = 2;
39
40pub const SPACING_LOOSE: u16 = 4;
42
43pub const VALUE_COL: usize = 28;
46
47#[cfg(test)]
48mod tests {
49 use super::*;
50
51 #[test]
52 fn ellipsis_is_unicode() {
53 assert_eq!(ELLIPSIS, "\u{2026}");
54 assert_eq!(ELLIPSIS.chars().count(), 1);
55 assert_eq!(ELLIPSIS.len(), 3); }
57
58 #[test]
59 fn ellipsis_char_matches_string() {
60 assert_eq!(ELLIPSIS_CHAR, '\u{2026}');
61 assert_eq!(ELLIPSIS_CHAR.to_string(), ELLIPSIS);
62 }
63
64 #[test]
65 fn ellipsis_ascii_is_three_dots() {
66 assert_eq!(ELLIPSIS_ASCII, "...");
67 assert_eq!(ELLIPSIS_ASCII.len(), 3);
68 }
69
70 #[test]
71 fn preview_ellipsis_delegates() {
72 assert_eq!(INLINE_PREVIEW_ELLIPSIS, ELLIPSIS);
73 }
74
75 #[test]
76 fn layout_breakpoints_are_ordered() {
77 const _: () = assert!(COMPACT_MAX_COLS < WIDE_MIN_COLS);
78 const _: () = assert!(COMPACT_MAX_ROWS < WIDE_MIN_ROWS);
79 }
80
81 #[test]
82 fn spacing_tokens_are_ordered() {
83 const _: () = assert!(SPACING_TIGHT < SPACING_NORMAL);
84 const _: () = assert!(SPACING_NORMAL < SPACING_LOOSE);
85 }
86}