Catalyst / admin/SAynapse-Horizon 14.8 GB / 57.8 GB 40.0 GB free
Help Sign in

admin / SAynapse-Horizon

public

Self Hosted Cyber Threat Intelligence Hub

Code Issues Pull requests Pipelines Packages Security Insights Wiki Settings
SAynapse-Horizon / Synapse-Horizon / src / utils / theme.js 2149 B · main
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
// Restrained SOC alerting palette. Full class strings are declared statically so
// Tailwind's JIT scanner keeps them in the build.

export const SEVERITY_META = {
  critical: {
    label: 'CRITICAL',
    badge: 'bg-rose-500/15 text-rose-300 ring-1 ring-inset ring-rose-500/40',
    dot: 'bg-rose-500',
    bar: 'bg-rose-500',
    row: 'hover:bg-rose-500/[0.06]',
    text: 'text-rose-300',
    rank: 4,
  },
  high: {
    label: 'HIGH',
    badge: 'bg-amber-500/15 text-amber-300 ring-1 ring-inset ring-amber-500/40',
    dot: 'bg-amber-500',
    bar: 'bg-amber-500',
    row: 'hover:bg-amber-500/[0.05]',
    text: 'text-amber-300',
    rank: 3,
  },
  medium: {
    label: 'MEDIUM',
    badge: 'bg-sky-500/15 text-sky-300 ring-1 ring-inset ring-sky-500/40',
    dot: 'bg-sky-500',
    bar: 'bg-sky-500',
    row: 'hover:bg-sky-500/[0.05]',
    text: 'text-sky-300',
    rank: 2,
  },
  low: {
    label: 'LOW',
    badge: 'bg-slate-500/15 text-slate-300 ring-1 ring-inset ring-slate-500/40',
    dot: 'bg-slate-500',
    bar: 'bg-slate-500',
    row: 'hover:bg-slate-500/[0.04]',
    text: 'text-slate-300',
    rank: 1,
  },
}

export const severityMeta = (sev) => SEVERITY_META[sev] || SEVERITY_META.low

// Source tag chip colours, keyed to the accent declared in sources.js.
export const ACCENT_CHIP = {
  rose: 'bg-rose-500/10 text-rose-300 ring-1 ring-inset ring-rose-500/30',
  amber: 'bg-amber-500/10 text-amber-300 ring-1 ring-inset ring-amber-500/30',
  sky: 'bg-sky-500/10 text-sky-300 ring-1 ring-inset ring-sky-500/30',
  emerald: 'bg-emerald-500/10 text-emerald-300 ring-1 ring-inset ring-emerald-500/30',
  slate: 'bg-slate-500/10 text-slate-300 ring-1 ring-inset ring-slate-500/30',
}

export const accentChip = (accent) => ACCENT_CHIP[accent] || ACCENT_CHIP.slate

/** Confidence buckets → colour, for the drill-down meter. */
export function confidenceMeta(score) {
  if (score >= 85) return { text: 'text-emerald-300', bar: 'bg-emerald-500', label: 'High' }
  if (score >= 60) return { text: 'text-amber-300', bar: 'bg-amber-500', label: 'Moderate' }
  return { text: 'text-slate-300', bar: 'bg-slate-400', label: 'Low' }
}