forked from
npmx.dev/npmx.dev
[READ-ONLY]
a fast, modern browser for the npm registry
1// @unocss-include
2
3import type { OsvSeverityLevel } from '../types'
4import { SEVERITY_LEVELS } from '../types'
5
6/**
7 * Color classes for severity levels (banner style)
8 */
9export const SEVERITY_COLORS: Record<OsvSeverityLevel, string> = {
10 critical: 'text-red-700 dark:text-red-500 bg-red-800/10 dark:bg-red-500/10 border-red-500/50',
11 high: 'text-red-800 dark:text-red-400 bg-red-800/10 dark:bg-red-500/10 border-red-500/30',
12 moderate:
13 'text-orange-800 dark:text-orange-400 bg-orange-600/10 dark:bg-orange-500/10 border-orange-500/30',
14 low: 'text-yellow-700 dark:text-yellow-400 bg-yellow-500/10 border-yellow-500/30',
15 unknown: 'text-fg-muted bg-bg-subtle border-border',
16}
17
18/**
19 * Color classes for inline severity indicators
20 */
21export const SEVERITY_TEXT_COLORS: Record<OsvSeverityLevel, string> = {
22 critical: 'text-red-700 dark:text-red-500',
23 high: 'text-orange-700 dark:text-orange-500',
24 moderate: 'text-yellow-700 dark:text-yellow-500',
25 low: 'text-blue-700 dark:text-blue-500',
26 unknown: 'text-fg-subtle',
27}
28
29/**
30 * Badge color classes for severity levels
31 */
32export const SEVERITY_BADGE_COLORS: Record<OsvSeverityLevel, string> = {
33 critical: 'bg-bg-muted border border-border text-fg',
34 high: 'bg-bg-muted border border-border text-fg-muted',
35 moderate: 'bg-bg-muted border border-border text-fg-muted',
36 low: 'bg-bg-muted border border-border text-fg-subtle',
37 unknown: 'bg-bg-muted border border-border text-fg-subtle',
38}
39
40/**
41 * Get highest severity from counts
42 */
43export function getHighestSeverity(counts: Record<string, number>): OsvSeverityLevel {
44 for (const s of SEVERITY_LEVELS) {
45 if ((counts[s] ?? 0) > 0) return s
46 }
47 return 'unknown'
48}