"use client";
import { useSafeIntl } from "@kopexa/i18n";
import { DORAIcon, NIS2Icon } from "@kopexa/icons";
import { Tooltip } from "@kopexa/sight";
import { complianceBadge } from "@kopexa/theme";
import { messages } from "./messages";
// ============================================
// Types
// ============================================
export interface DoraBadgeProps {
/** Custom tooltip content */
tooltip?: string;
/** Icon size */
iconSize?: number;
/** Additional class names */
className?: string;
}
export interface Nis2BadgeProps {
/** Custom tooltip content */
tooltip?: string;
/** Icon size */
iconSize?: number;
/** Additional class names */
className?: string;
}
export interface ComplianceBadgesProps {
/** Show DORA Critical badge */
doraCritical?: boolean;
/** Show NIS2 Significant badge */
nis2Significant?: boolean;
/** Icon size for badges */
iconSize?: number;
/** Additional class names for container */
className?: string;
}
// ============================================
// DORA Badge Component
// ============================================
export function DoraBadge({
tooltip,
iconSize = 12,
className,
}: DoraBadgeProps) {
const intl = useSafeIntl();
const styles = complianceBadge({ color: "dora" });
const tooltipContent = tooltip ?? intl.formatMessage(messages.dora_tooltip);
const label = intl.formatMessage(messages.dora_label);
return (