use gpui_kit::component::skeleton::Skeleton;
use gpui_kit::component::spinner::Spinner;
use gpui_kit::component::{ActiveTheme, Sizable, h_flex, v_flex};
use gpui_kit::prelude::*;
use gpui_kit::{App, Hsla, SharedString, div};
pub fn spinner(cx: &App) -> Spinner {
Spinner::new().xsmall().color(cx.theme().muted_foreground)
}
pub fn busy_label(text: impl Into<SharedString>, color: Hsla) -> impl IntoElement {
h_flex()
.gap_1p5()
.items_center()
.text_color(color)
.child(Spinner::new().xsmall().color(color))
.child(div().child(text.into()))
}
pub fn skeleton_rows(rows: usize) -> impl IntoElement {
const WIDTHS: [f32; 5] = [0.8, 0.6, 0.7, 0.5, 0.65];
v_flex().gap_2().px_1().children((0..rows).map(|ix| {
Skeleton::new()
.h_3()
.rounded_sm()
.w(gpui_kit::relative(WIDTHS[ix % WIDTHS.len()]))
}))
}