use leptos::prelude::*;
use orbital_base_components::{BadgeAppearance, BadgeColor, BadgeSize, BaseCounterBadge};
use orbital_macros::component_doc;
use orbital_style::inject_style;
use super::styles::counter_badge_styles;
#[component_doc(
category = "Data Display",
preview_slug = "counter-badge",
preview_label = "Counter Badge",
preview_icon = icondata::AiNumberOutlined,
)]
#[component]
pub fn CounterBadge(
#[prop(optional, into)]
class: MaybeProp<String>,
count: u32,
#[prop(optional)]
overflow_count: Option<u32>,
#[prop(optional, into)]
appearance: Signal<BadgeAppearance>,
#[prop(optional, into)]
size: Signal<BadgeSize>,
#[prop(optional, into)]
color: Signal<BadgeColor>,
#[prop(optional)]
children: Option<Children>,
) -> impl IntoView {
inject_style("orbital-counter-badge", counter_badge_styles());
let overflow = overflow_count.unwrap_or(99);
view! {
<BaseCounterBadge
class=class
count=count
overflow_count=overflow
appearance=appearance
color=color
size=size
>
{children.map(|c| c())}
</BaseCounterBadge>
}
}