use crate::Palette;
use ratatui_core::style::Color;
pub const BLACKWHITE: Palette = Palette {
primary: interpolate(0xffffff, 0xffffff, 0xaaaaaa, 0xaaaaaa),
secondary: interpolate(0x000000, 0x000000, 0x000000, 0x000000),
white: interpolate(0xffffff, 0xffffff, 0xaaaaaa, 0xaaaaaa),
black: interpolate(0x000000, 0x000000, 0x000000, 0x000000),
gray: interpolate(0x808080, 0x808080, 0x555555, 0x555555),
red: interpolate(0xffffff, 0xaaaaaa, 0x000000, 0x555555),
orange: interpolate(0xffffff, 0xaaaaaa, 0x000000, 0x555555),
yellow: interpolate(0xffffff, 0xaaaaaa, 0x000000, 0x555555),
limegreen: interpolate(0xffffff, 0xaaaaaa, 0x000000, 0x555555),
green: interpolate(0xffffff, 0xaaaaaa, 0x000000, 0x555555),
bluegreen: interpolate(0xffffff, 0xaaaaaa, 0x000000, 0x555555),
cyan: interpolate(0xffffff, 0xaaaaaa, 0x000000, 0x555555),
blue: interpolate(0xffffff, 0xaaaaaa, 0x000000, 0x555555),
deepblue: interpolate(0xffffff, 0xaaaaaa, 0x000000, 0x555555),
purple: interpolate(0xffffff, 0xaaaaaa, 0x000000, 0x555555),
magenta: interpolate(0xffffff, 0xaaaaaa, 0x000000, 0x555555),
redpink: interpolate(0xffffff, 0xaaaaaa, 0x000000, 0x555555),
};
const fn interpolate(c0: u32, c1: u32, c2: u32, c3: u32) -> [Color; 8] {
let r0 = (c0 >> 16) as u8;
let g0 = (c0 >> 8) as u8;
let b0 = c0 as u8;
let r2 = (c1 >> 16) as u8;
let g2 = (c1 >> 8) as u8;
let b2 = c1 as u8;
let r4 = (c2 >> 16) as u8;
let g4 = (c2 >> 8) as u8;
let b4 = c2 as u8;
let r6 = (c3 >> 16) as u8;
let g6 = (c3 >> 8) as u8;
let b6 = c3 as u8;
[
Color::Rgb(r0, g0, b0),
Color::Rgb(r0, g0, b0),
Color::Rgb(r2, g2, b2),
Color::Rgb(r2, g2, b2),
Color::Rgb(r4, g4, b4),
Color::Rgb(r4, g4, b4),
Color::Rgb(r6, g6, b6),
Color::Rgb(r6, g6, b6),
]
}