""" Status badge widget — colored circle indicator for online/offline. """ import customtkinter as ctk COLORS = { "online": "#22c55e", # green "offline": "#ef4444", # red "unknown": "#6b7280", # gray "disabled": "#9ca3af", # light gray } class StatusBadge(ctk.CTkLabel): def __init__(self, master, status: str = "unknown", **kwargs): super().__init__(master, text="", width=12, height=12, **kwargs) self._status = status self._update_color() def set_status(self, status: str): self._status = status self._update_color() def _update_color(self): color = COLORS.get(self._status, COLORS["unknown"]) symbol = "\u2014" if self._status == "disabled" else "\u25cf" self.configure(text=symbol, text_color=color, font=("", 14))