lk-inside 0.3.1

A terminal user interface (TUI) application for interactive data analysis.
Documentation
use ratatui::{
    prelude::*,
    widgets::{Block, Borders, Paragraph},
};
use crate::ui::theme; // ADDED

pub struct HelpScreen;

impl HelpScreen {
    pub fn new() -> Self {
        HelpScreen
    }
}

pub fn render_help_screen(f: &mut Frame, _screen: &HelpScreen) {
    let block = Block::default()
        .title("Help")
        .borders(Borders::ALL)
        .border_style(theme::BORDER_STYLE); // REPLACED

    let help_lines = vec![
        Line::raw(""),
        Line::raw("        Welcome to Look Inside!").style(theme::ACCENT_BOLD_STYLE),
        Line::raw(""),
        Line::raw("        Global Keybindings:").style(theme::HIGHLIGHT_STYLE),
        Line::from(vec![
            Span::raw("        - "),
            Span::raw("Alt+Q").style(theme::HIGHLIGHT_STYLE),
            Span::raw(": Return to the Start Menu."),
        ]),
        Line::from(vec![
            Span::raw("        - "),
            Span::raw("Ctrl+S").style(theme::HIGHLIGHT_STYLE),
            Span::raw(": Save Current Workspace."),
        ]),
        Line::from(vec![
            Span::raw("        - "),
            Span::raw("Ctrl+O").style(theme::HIGHLIGHT_STYLE),
            Span::raw(": Load Workspace."),
        ]),
        Line::from(vec![
            Span::raw("        - "),
            Span::raw("?").style(theme::HIGHLIGHT_STYLE),
            Span::raw(": Toggle this Help screen."),
        ]),
        Line::from(vec![
            Span::raw("        - "),
            Span::raw("Esc").style(theme::HIGHLIGHT_STYLE),
            Span::raw(": Exit the application."),
        ]),
        Line::raw(""),
        Line::raw("        Start Menu:").style(theme::HIGHLIGHT_STYLE),
        Line::from(vec![
            Span::raw("        - "),
            Span::raw("↑↓").style(theme::HIGHLIGHT_STYLE),
            Span::raw(": Navigate menu items."),
        ]),
        Line::from(vec![
            Span::raw("        - "),
            Span::raw("Enter").style(theme::HIGHLIGHT_STYLE),
            Span::raw(": Select a menu item (Load Data, Statistics, Exit)."),
        ]),
        Line::raw(""),
        Line::raw("        Load Data Screen:").style(theme::HIGHLIGHT_STYLE),
        Line::from(vec![
            Span::raw("        - "),
            Span::raw("↑↓←→").style(theme::HIGHLIGHT_STYLE),
            Span::raw(": Navigate through files and directories."),
        ]),
        Line::from(vec![
            Span::raw("        - "),
            Span::raw("Enter").style(theme::HIGHLIGHT_STYLE),
            Span::raw(": Select a file to load or enter a directory."),
        ]),
        Line::from(vec![
            Span::raw("        - "),
            Span::raw("Esc").style(theme::HIGHLIGHT_COLOR), // Corrected to use HIGHLIGHT_COLOR for key
            Span::raw(": Go back to Start Menu."),
        ]),
        Line::raw(""),
        Line::raw("        Statistics View Screen:").style(theme::HIGHLIGHT_STYLE),
        Line::from(vec![
            Span::raw("        - "),
            Span::raw("s").style(theme::HIGHLIGHT_STYLE),
            Span::raw(": Generate Descriptive Statistics and Null Analysis (default histogram/bar chart)."),
        ]),
        Line::from(vec![
            Span::raw("        - "),
            Span::raw("u").style(theme::HIGHLIGHT_STYLE),
            Span::raw(": Generate Null Analysis."),
        ]),
        Line::from(vec![
            Span::raw("        - "),
            Span::raw("h").style(theme::HIGHLIGHT_STYLE),
            Span::raw(": Enter column name for Histogram."),
        ]),
        Line::from(vec![
            Span::raw("        - "),
            Span::raw("b").style(theme::HIGHLIGHT_STYLE),
            Span::raw(": Enter column name for Bar Chart."),
        ]),
        Line::from(vec![
            Span::raw("        - "),
            Span::raw("m").style(theme::HIGHLIGHT_STYLE),
            Span::raw(": Enter columns for Correlation Matrix."),
        ]),
        Line::from(vec![
            Span::raw("        - "),
            Span::raw("a").style(theme::HIGHLIGHT_STYLE),
            Span::raw(": Enter column for Anomaly Detection."),
        ]),
        Line::from(vec![
            Span::raw("        - "),
            Span::raw("c").style(theme::HIGHLIGHT_STYLE),
            Span::raw(": Enter columns for Clustering."),
        ]),
        Line::raw(""),
        Line::raw("        Filter View Screen:").style(theme::HIGHLIGHT_STYLE),
        Line::from(vec![
            Span::raw("        - "),
            Span::raw("f").style(theme::HIGHLIGHT_STYLE),
            Span::raw(": Enter filter expression (e.g., 'column_name > 10')."),
        ]),
        Line::raw(""),
        Line::raw("        Input Modes (e.g., for filter, column selection, save/load paths):").style(theme::HIGHLIGHT_STYLE),
        Line::from(vec![
            Span::raw("        - Any character: Type input."),
        ]),
        Line::from(vec![
            Span::raw("        - "),
            Span::raw("Backspace").style(theme::HIGHLIGHT_STYLE),
            Span::raw(": Delete character."),
        ]),
        Line::from(vec![
            Span::raw("        - "),
            Span::raw("Enter").style(theme::HIGHLIGHT_STYLE),
            Span::raw(": Confirm input and apply."),
        ]),
        Line::from(vec![
            Span::raw("        - "),
            Span::raw("Esc").style(theme::HIGHLIGHT_STYLE),
            Span::raw(": Cancel input and return to Normal mode."),
        ]),
        Line::raw(""),
        Line::raw("        More help will be added here as features are developed.").style(theme::TEXT_STYLE),
    ];

    let paragraph = Paragraph::new(help_lines)
        .block(block)
        .wrap(ratatui::widgets::Wrap { trim: false })
        .style(theme::TEXT_STYLE); // Default text style for the paragraph content

    f.render_widget(paragraph, f.area());
}