import type { ReactNode } from 'react'; /** * Deterministic color for attribute badges. * Uses the value (not the key) to compute the color, * ensuring the same value always gets the same color * regardless of where it's displayed. * * Returns a BadgeColor that the design system accepts. */ const COLORS = ['primary', 'success', 'warning', 'running'] as const; type BadgeColor = 'primary' | 'success' | 'warning' | 'error' | 'running' | 'auto'; function hashString(s: string): number { let hash = 0; for (let i = 0; i < s.length; i++) { hash = ((hash << 5) - hash + s.charCodeAt(i)) | 0; } return Math.abs(hash); } export function attributeBadgeColor(value: string): BadgeColor { return COLORS[hashString(value) % COLORS.length]; }