import type { ComponentProps, ReactNode } from "react"; import { cn } from "@/shared/ui/cn"; export type StatusTone = "neutral" | "info" | "success" | "warning" | "danger"; export type StatusActivity = "static" | "live" | "loading"; const toneClassNames: Record = { neutral: "status-tone-neutral", info: "status-tone-info", success: "status-tone-success", warning: "status-tone-warning", danger: "status-tone-danger" }; type StatusBadgeProps = ComponentProps<"span"> & { tone: StatusTone; activity?: StatusActivity; icon?: ReactNode; size?: "sm" | "md"; }; export function StatusBadge({ tone, activity = "static", icon, size = "sm", className, children, ...props }: StatusBadgeProps) { return ( {icon ? ( ) : null} {children} ); } type StatusDotProps = Omit, "children"> & { tone: StatusTone; activity?: StatusActivity; label?: string; size?: "sm" | "md"; }; export function StatusDot({ tone, activity = "static", label, size = "sm", className, ...props }: StatusDotProps) { return ( ); } type StatusIconProps = ComponentProps<"span"> & { tone: StatusTone; activity?: StatusActivity; shape?: "rounded" | "circle"; size?: "xs" | "sm" | "md"; }; export function StatusIcon({ tone, activity = "static", shape = "rounded", size = "sm", className, children, ...props }: StatusIconProps) { return ( ); }