diff --git a/ui/src/components/GroupBadge.tsx b/ui/src/components/GroupBadge.tsx new file mode 100644 index 00000000..82fae8de --- /dev/null +++ b/ui/src/components/GroupBadge.tsx @@ -0,0 +1,82 @@ +import { X, Loader2 } from "lucide-react"; +import { Badge } from "@/components/ui/badge"; +import { Tooltip, TooltipContent, TooltipTrigger } from "@/components/ui/tooltip"; +import { cn } from "@/lib/utils"; + +type GroupBadgeProps = { + name: string; + isBuiltin: boolean; + skillCount?: number; + description?: string | null; + onRemove?: () => void; + removing?: boolean; +}; + +export function GroupBadge({ + name, + isBuiltin, + skillCount, + description: _description, + onRemove, + removing = false, +}: GroupBadgeProps) { + const tooltipText = isBuiltin + ? `${name} · built-in${skillCount != null ? ` · ${skillCount} skills` : ""}` + : `${name}${skillCount != null ? ` · ${skillCount} skills` : ""}`; + + if (isBuiltin) { + return ( + + + + {name} + + + {tooltipText} + + ); + } + + return ( + + + + {name} + {onRemove && ( + + )} + + + {tooltipText} + + ); +}