// KitDocs.jsx — browseable docs page for the Home kit. // Sections: Overview · Tokens · Components · Assemblies · Reference page. const { useState: useDocsHomeState } = React; const { COLORS: DHC, StatCard: DStatCard, HomeCard: DHomeCard, CardTitle: DCardTitle, HomeButton: DBtn, SeverityBadge: DSev, StatusBadge: DStatus, HomeInput: DInput, HomeSelect: DSelect, FieldLabel: DLabel, ResultBanner: DBanner, BigStat: DBigStat, MiniTicket: DMini, CVERow: DCVERow, VendorEntry: DVendor, HomeIcon: DIcon, CalendarMini: DCal, ArchiveSummary: DArchive, ScrollList: DScroll, EmptyState: DEmpty, withAlpha: dAlpha, } = window.HOME; const { HomePage: DHomePage } = window.HOME_PAGE; /* ── Layout primitives (same vocabulary as the Reporting kit docs) ── */ function HSection({ id, eyebrow, title, blurb, children }) { return (
{eyebrow && (
{eyebrow}
)}

{title}

{blurb && (

{blurb}

)}
{children}
); } function HSpec({ label, children }) { return (
{label}
{children}
); } function HCode({ children }) { return ( {children} ); } function HSwatch({ name, value, role }) { return (
{name}
{role}
{value}
); } function HSpecimen({ children, padding = 24, dark = true, style }) { return (
{children}
); } /* ── Sticky tab strip ─────────────────────────────────────────── */ const TABS = [ { id: 'overview', label: 'Overview' }, { id: 'tokens', label: 'Tokens' }, { id: 'components', label: 'Components' }, { id: 'assemblies', label: 'Assemblies' }, { id: 'reference', label: 'Reference Page' }, ]; function HKitDocs() { const [active, setActive] = useDocsHomeState('overview'); const handle = (id) => { setActive(id); const el = document.getElementById(id); if (el) { const top = el.getBoundingClientRect().top + window.scrollY - 80; window.scrollTo({ top, behavior: 'smooth' }); } }; return (
{/* Header */}
STEAM Security · UI Kit

Home

The "command center" landing view of the CVE Dashboard. Pulls four signals into one screen: a top metric strip, a CVE feed with vendor sub-rows, and a right-rail stack of Calendar · JIRA · Archer · Ivanti. Built from the same chrome and tokens as the Reporting kit.

{/* Tab strip */} {/* Body */}
{/* OVERVIEW */}
Identity

Green appears in exactly one place: the page title in the chrome. Sky is the workhorse — borders, section titles, neutral buttons. Amber, red, purple, teal are reserved for specific data domains (tickets, critical, Archer, Ivanti) and never used decoratively.

Layout

Top: 4-up stat strip. Body: 12-column grid, left 9 / right 3. Left holds the lookup → filter → CVE feed flow. Right is a vertical stack of color-rail panels, each with a left-border identity color and a centered big-number metric.

{/* TOKENS */}
Right-rail identity
Severity / status
background linear-gradient(135deg, rgba(30,41,59,.95) 0%, rgba(15,23,42,.98) 100%) resting 1.5px solid rgba(14,165,233,0.12) · hover 0.35 8px var(--font-mono) · 14 / 600 · uppercase · 0.1em tracking · 12px text-shadow glow in title color var(--font-mono) · 32 / 700 · 16px text-shadow glow at 0.4 alpha var(--font-mono) · 10 / 600 · uppercase · 0.12em tracking · fg-2
{/* COMPONENTS */} {/* StatCard */}

StatCard

Top-of-page metric tile. Color tone drives the 2px border, top-edge glow line, value color, and the inset highlight. Use tone="neutral" to suppress the colored treatment.

{/* Buttons */}

HomeButton

Five variants. Primary is reserved for the lone green CTA on each card. Neutral is the default for table-row + view actions. Warning = edit, Danger = delete.

Scan View Export Edit Delete
{/* Badges */}

SeverityBadge · StatusBadge

Severity is heavy: 2px solid border + glow + dot. Status is light: 1px border, smaller, used inside dense list cards.

In Progress Open Closed Pending Review Approved
{/* Inputs */}

HomeInput · HomeSelect · FieldLabel

Search CVEs
Vendor {}} options={['All Vendors', 'Red Hat', 'Cisco', 'Ubuntu']} />
Severity {}} options={['All Severities', 'Critical', 'High', 'Medium', 'Low']} />
{/* ResultBanner */}

ResultBanner

Sub-card surfaced inside the Quick CVE Lookup card after a scan. Three tones map to the three terminal states.

Red Hat (Open · 4 docs) · Ubuntu (In Progress · 2 docs) · SUSE (Resolved · 3 docs)
This CVE has not been addressed yet. No entry exists in the database.
NVD lookup failed: rate-limited (429). Retry in 30s.
{/* BigStat */}

BigStat

The centered "active count + label" shown at the top of every right-rail panel. Color follows panel identity.

{/* MiniTicket */}

MiniTicket

Compact card used inside right-rail scroll lists. Tone tints the border + status pill to match its parent panel's identity color.

{}} /> {}} />
{/* Calendar */}

CalendarMini

Right-rail calendar surface. Day cells accept a marker color so SLA / due-date dots can be projected onto the month.

{/* ArchiveSummary */}

ArchiveSummary

State-pill bar that lives at the top of the Ivanti card. Each pill is a click target that filters the workflows below.

{/* CVERow + VendorEntry */}

CVERow · VendorEntry

The collapsible CVE feed cards. Collapsed = chevron + ID + truncated description + meta row. Expanded = vendor sub-cards, optionally with a doc inset and a JIRA inset under each vendor.

{}} > {}} /> {}} /> {/* EmptyState */}

EmptyState

No open tickets Click Sync to load workflow data
{/* ASSEMBLIES */}

Right-rail panel

HomeCard with a colored left-rail + matching CardTitle + BigStat + ScrollList of MiniTickets. The identity color owns all four.

}>Open Tickets {}} onDelete={() => {}} summary="Patch netfilter ingress" /> {}} summary="Roll admin-console hotfix" />

Quick lookup → result banner

Quick CVE Lookup
Scan
Red Hat · Ubuntu · SUSE

4-up stat strip

{/* REFERENCE */}
); } const subhead = { margin: '32px 0 6px 0', fontFamily: 'var(--font-mono)', fontSize: 13, fontWeight: 700, color: 'var(--fg-1)', textTransform: 'uppercase', letterSpacing: '0.08em', }; const subblurb = { margin: '0 0 12px 0', fontFamily: 'var(--font-display)', fontSize: 13, lineHeight: 1.55, color: 'var(--fg-muted)', maxWidth: 720, }; window.HOME_DOCS = { HKitDocs };