/* Kingstoring Vector — shared components Logo, nav, footer, terminal-style ornaments. */ /* ========================================================= VECTOR LOGO — radar sweep mark ========================================================= */ function VectorMark({ size = 64, color = "currentColor", accent = "var(--vk-amber)", signal = "var(--vk-blue)" }) { return ( {Array.from({ length: 9 }).map((_, i) => { const a = (180 + i * 22.5) * Math.PI / 180; const r1 = 32, r2 = 36; return ( ); })} ); } function VectorLockup({ height = 32, color = "var(--vk-ivory)", accent = "var(--vk-amber)", signal = "var(--vk-blue)", subColor = "var(--vk-mist)" }) { return (
kingstoring // signal · over · noise
); } /* ========================================================= TICKER BAR — top of every page (Bloomberg style) ========================================================= */ function TickerBar() { const items = [ { l: "ASSOCIÉS·CONTACTÉS·CUMUL", v: "5000+", t: "+12.4%", up: true }, { l: "AG·MOBILISÉES·2018-2026", v: "12", t: "+3", up: true }, { l: "QUORUM·MOYEN·ATTEINT", v: "74%", t: "+2.1pt", up: true }, { l: "LANGUES·SUPPORTÉES", v: "4", t: "FR·EN·IT·ES", up: null }, { l: "CANAUX·ACTIFS", v: "4", t: "MAIL·SMS·POST·WEB", up: null }, { l: "DÉLAI·MOBILISATION·MÉDIAN", v: "45j", t: "-3j", up: true }, { l: "BUREAU", v: "NICE", t: "—", up: null }, { l: "ANNÉE·FONDATION", v: "2018", t: "—", up: null }, ]; return (
{[...items, ...items, ...items].map((x, i) => (
{x.l} {x.v} {x.up === true ? "▲" : x.up === false ? "▼" : "■"} {x.t}
))}
); } /* ========================================================= NAV — sticky, dark ========================================================= */ function Nav({ active = "home" }) { const links = [ { id: "home", label: "Cabinet", href: "index.html" }, { id: "osint", label: "OSINT & data research", href: "osint.html" }, { id: "timeshare", label: "Timeshare", href: "timeshare.html" }, { id: "quorum", label: "Quorum", href: "quorum.html" }, { id: "contact", label: "Contact", href: "contact.html" }, ]; return (
FR · EN BRIEFING →
); } /* ========================================================= FOOTER ========================================================= */ function Footer() { return ( ); } /* Status pill */ function Pill({ kind = "live", text }) { const colors = { live: "var(--vk-green)", verified: "var(--vk-blue)", focal: "var(--vk-amber)" }; const c = colors[kind] || colors.live; return ( {text} ); } /* Corner brackets */ function Brackets({ color = "var(--vk-amber)", inset = 12, size = 12 }) { const s = { position: "absolute", width: size, height: size, borderColor: color }; return ( <> ); } /* Page header (for inner pages) */ function PageHeader({ section, code, title, lead }) { return (
// {code} {section} ● LIVE

{title}

{lead &&

{lead}

}
); } Object.assign(window, { VectorMark, VectorLockup, TickerBar, Nav, Footer, Pill, Brackets, PageHeader });