pub fn handle_crossterm_event(self, event: crossterm::event::Event) -> Option<Event> {
        match event {
            crossterm::event::Event::Key(k) => translate_key_event(self, k),
            crossterm::event::Event::Mouse(m) => match m.kind {
                crossterm::event::MouseEventKind::ScrollDown => {
                    Some(Event::ScrollWithMomentum(Direction::Down))
                }
                crossterm::event::MouseEventKind::ScrollUp => {
                    Some(Event::ScrollWithMomentum(Direction::Up))
                }
                crossterm::event::MouseEventKind::Down(crossterm::event::MouseButton::Left)
                | crossterm::event::MouseEventKind::Drag(crossterm::event::MouseButton::Left) => {
                    Some(Event::Mouse(m))
                }
                _ => None,
            },
            crossterm::event::Event::Resize(cols, rows) => Some(Event::Resize { rows, cols }),
            _ => None,
        }
    }
Maps a crossterm::event::Event to a tui::Event
crates/turborepo-ui/src/tui/input.rs