use ratatui::Frame;
use ratatui::layout::{Constraint, Direction, Layout, Position, Rect};
use ratatui::style::{Color, Modifier, Style};
use ratatui::text::{Line, Span};
use ratatui::widgets::{Block, Borders, List, ListItem, ListState, Paragraph};
use std::collections::BTreeMap;
use std::collections::HashMap;
use std::collections::HashSet;
use crate::config::BoardConfiguration;
use crate::model::{Issue, Priority};
use crate::search::{Corpus, StructuredFilter};
use crate::storage::Store;
use super::widgets;
mod filter;
mod hit;
mod render;
mod state;
pub(crate) use filter::*;
pub use render::*;
pub use state::*;
pub(crate) fn sparse_card_order(board_config: &BoardConfiguration, cards: &[Card]) -> Vec<String> {
let mut baseline = cards.to_vec();
sort_by_default_order(board_config, &mut baseline);
baseline
.iter()
.zip(cards.iter())
.filter(|(baseline_card, current_card)| baseline_card.filename != current_card.filename)
.map(|(_, current_card)| current_card.filename.clone())
.collect()
}
#[cfg(test)]
mod tests;