import { useState, useEffect, useRef } from "react"; /* ============================================================ TICKETPUNCH UI — Complete Cyberpunk Design System Font: IBM Plex Mono | Palette: Dark / White / Gold / Red / Peach ============================================================ */ const FontInjector = () => ( ); const GrainOverlay = ({ strength = 0.18 }) => { const canvasRef = useRef(null); useEffect(() => { const canvas = canvasRef.current; if (!canvas) return; const ctx = canvas.getContext("2d"); const W = 256, H = 256; canvas.width = W; canvas.height = H; const imageData = ctx.createImageData(W, H); const data = imageData.data; for (let i = 0; i < data.length; i += 4) { const v = (Math.random() * 255) | 0; data[i] = data[i + 1] = data[i + 2] = v; data[i + 3] = (strength * 255) | 0; } ctx.putImageData(imageData, 0, 0); }, [strength]); return ( ); }; const GeometricOverlay = () => ( ); const PunchHoles = () => ( <> {[{ top: "3px", left: "4px" }, { top: "3px", right: "4px" }, { bottom: "3px", left: "4px" }, { bottom: "3px", right: "4px" }].map((pos, i) => (
))} ); const Punched = ({ children, style = {}, className = "" }) => (
{children}
); const TicketShell = ({ children, stubHeight = 60, style = {} }) => (
{stubHeight > 0 && (
✂ TEAR
)} {children}
); const Barcode = ({ value = "OMEGA-7749-XX", width = 120, height = 28 }) => { const bars = []; for (let i = 0; i < 48; i++) bars.push({ x: i * (width / 48), w: Math.random() > 0.5 ? 1.5 : 0.8, o: 0.4 + Math.random() * 0.6 }); return (
{bars.map((b, i) => )} {value}
); }; const StatusPill = ({ status = "active", label, pulse = true }) => { const colors = { active: "var(--g-300)", inactive: "var(--w-500)", warning: "var(--p-500)", danger: "var(--r-500)", pending: "var(--g-100)", }; const color = colors[status] || colors.active; return (
{label || status}
); }; const TerminalMask = ({ lines = [], size = 120 }) => { const defaultLines = [ "CLASSIFIED // OMEGA PROTOCOL", "ACCESS GRANTED — NEXUS-7", "THREAT LEVEL: CRITICAL", "SYNC: 99.7% COMPLETE", "FIREWALL: ACTIVE", "ENCRYPTION: AES-512", "NODE: 192.168.0.77", "UPTIME: 847:22:11", "AGENT: SPECTRE-9", "STATUS: OPERATIONAL", ...lines ]; const doubled = [...defaultLines, ...defaultLines]; return (
{doubled.map((line, i) => (
{line}
))}
); }; const Divider = ({ label }) => (
{label ? {label} : }
); const SectionLabel = ({ children, sub }) => (
{children}
{sub &&
{sub}
}
); const Micro = ({ children, color = "var(--text-6)" }) => ( {children} ); // ── 1. HEADER ────────────────────────────────────────────────── const Header = ({ activeTab, setActiveTab }) => { const navItems = ["DASHBOARD", "INTEL", "ASSETS", "COMMS", "SYSTEM"]; return (
NEXUS
OMEGA PROTOCOL
{navItems.map(item => ( ))}
AGT-09
CLEARANCE: OMEGA
Ω
); }; // ── 2. BUTTON ────────────────────────────────────────────────── const Button = ({ variant = "primary", children, icon, size = "md", disabled, onClick }) => { const sizes = { sm: "4px 10px", md: "7px 16px", lg: "10px 22px" }; const fontSizes = { sm: 7.5, md: 8.5, lg: 9.5 }; const bases = { primary: { bg: "var(--g-300)", color: "var(--d-900)", border: "1px solid var(--g-300)" }, secondary: { bg: "rgba(255,215,0,0.06)", color: "var(--g-300)", border: "1px solid var(--g-700)" }, outline: { bg: "transparent", color: "var(--w-100)", border: "1px solid var(--w-300)" }, ghost: { bg: "transparent", color: "var(--w-500)", border: "1px solid transparent" }, danger: { bg: "rgba(255,51,51,0.10)", color: "var(--r-500)", border: "1px solid var(--r-700)" }, success: { bg: "rgba(255,215,0,0.08)", color: "var(--g-300)", border: "1px solid var(--g-700)" }, }; const s = bases[variant] || bases.primary; return ( ); }; // ── 3. INPUT ─────────────────────────────────────────────────── const Input = ({ placeholder, label, type = "text", value, onChange, prefix, suffix, hint }) => (
{label && }
{prefix && {prefix}} {suffix && {suffix}}
{hint &&
{hint}
}
); // ── 4. CARD ──────────────────────────────────────────────────── const Card = ({ children, title, sub, tag, style = {} }) => (
{["top:0;left:0", "top:0;right:0", "bottom:0;left:0", "bottom:0;right:0"].map((pos, i) => { const st = pos.split(";").reduce((a, p) => { const [k, v] = p.split(":"); a[k] = v; return a; }, {}); return (
= 2 ? "1px solid var(--g-700)" : "none", borderLeft: (i === 0 || i === 2) ? "1px solid var(--g-700)" : "none", borderRight: (i === 1 || i === 3) ? "1px solid var(--g-700)" : "none", }} /> ); })} {(title || sub || tag) && (
{title &&
{title}
} {sub &&
{sub}
}
{tag &&
{tag}
}
)}
{children}
); // ── 5. BADGE ─────────────────────────────────────────────────── const Badge = ({ children, variant = "default" }) => { const vars = { default: { bg: "var(--surface)", color: "var(--w-400)", border: "1px solid var(--border-2)" }, active: { bg: "rgba(255,215,0,0.08)", color: "var(--g-300)", border: "1px solid var(--g-700)" }, danger: { bg: "rgba(255,51,51,0.08)", color: "var(--r-500)", border: "1px solid var(--r-700)" }, warning: { bg: "rgba(255,140,105,0.08)", color: "var(--p-500)", border: "1px solid var(--p-700)" }, omega: { bg: "rgba(255,244,204,0.05)", color: "var(--g-100)", border: "1px solid var(--g-700)" }, }; const v = vars[variant] || vars.default; return ( {children} ); }; // ── 6. PROGRESS BAR ──────────────────────────────────────────── const ProgressBar = ({ value = 65, label, color = "var(--g-300)" }) => (
{label && (
{label} {value}%
)}
{[25, 50, 75].map(t => (
))}
); // ── 7. SPINNER ───────────────────────────────────────────────── const Spinner = ({ size = 32 }) => (
); // ── 8. TABS ──────────────────────────────────────────────────── const Tabs = ({ tabs, active, onSelect }) => (
{tabs.map((tab, i) => ( ))}
); // ── 9. ACCORDION ─────────────────────────────────────────────── const AccordionItem = ({ title, children }) => { const [open, setOpen] = useState(false); return (
{open && (
{children}
)}
); }; // ── 10. TOOLTIP ──────────────────────────────────────────────── const Tooltip = ({ label, children }) => { const [show, setShow] = useState(false); return (
setShow(true)} onMouseLeave={() => setShow(false)}> {children} {show && (
{label}
)}
); }; // ── 11. DATA TABLE ───────────────────────────────────────────── const DataTable = ({ columns, rows }) => (
{columns.map((col, i) => (
{col}
))}
{rows.map((row, ri) => (
{row.map((cell, ci) => (
{cell}
))}
))}
); // ── 12. TOGGLE ───────────────────────────────────────────────── const Toggle = ({ checked, onChange, label }) => (
{[...Array(8)].map((_, i) => (
))}
{label && {label}}
); // ── 13. ALERT ────────────────────────────────────────────────── const Alert = ({ type = "info", title, message, onClose }) => { const types = { info: { color: "var(--w-300)", border: "var(--border-2)", icon: "◈" }, success: { color: "var(--g-300)", border: "var(--g-700)", icon: "✓" }, warning: { color: "var(--p-500)", border: "var(--p-700)", icon: "⚠" }, danger: { color: "var(--r-500)", border: "var(--r-700)", icon: "✕" }, }; const t = types[type] || types.info; return (
{t.icon}
{title &&
{title}
}
{message}
{onClose && }
); }; // ── 14. BREADCRUMBS ──────────────────────────────────────────── const Breadcrumbs = ({ items }) => (
{items.map((item, i) => (
{item} {i < items.length - 1 && ( )}
))}
); // ── 15. STEPPER ──────────────────────────────────────────────── const Stepper = ({ steps, current }) => (
{steps.map((step, i) => (
{i < current ? "✓" : i + 1}
{step}
{i < steps.length - 1 && (
)}
))}
); // ── 16. SELECT ───────────────────────────────────────────────── const Select = ({ label, options, value, onChange }) => { const [open, setOpen] = useState(false); return (
{label && }
setOpen(!open)} style={{ background: "var(--surface)", border: "1px solid var(--border-1)", padding: "9px 12px", cursor: "pointer", display: "flex", justifyContent: "space-between", alignItems: "center", position: "relative" }}> {value || "— SELECT OPTION —"}
{open && (
{options.map((opt, i) => (
{ onChange(opt); setOpen(false); }} style={{ padding: "8px 12px", cursor: "pointer", fontSize: 8.5, letterSpacing: "0.14em", fontFamily: "var(--font)", color: "var(--w-400)", textTransform: "uppercase", borderBottom: i < options.length - 1 ? "1px solid var(--border-1)" : "none", transition: "background 0.1s", }} onMouseEnter={e => e.currentTarget.style.background = "rgba(255,215,0,0.05)"} onMouseLeave={e => e.currentTarget.style.background = "transparent"}>
{opt}
))}
)}
); }; // ── 17. MODAL ────────────────────────────────────────────────── const Modal = ({ open, onClose, title, children }) => { if (!open) return null; return (
// CLASSIFIED DIALOGUE
{title}
{children}
); }; // ── 18. AVATAR ───────────────────────────────────────────────── const Avatar = ({ initials = "Ω", status }) => (
{initials}
{status && (
)}
); // ── 19. FIELDSET ─────────────────────────────────────────────── const Fieldset = ({ legend, children }) => (
{legend}
{children}
); // ── 20. STAT CARD ────────────────────────────────────────────── const StatCard = ({ label, value, unit, change, trend }) => (
{label}
{value} {unit && {unit}}
{change !== undefined && (
{trend === "up" ? "▲" : trend === "down" ? "▼" : "—"} {change}
)}
); // ── 21. SIDEBAR ──────────────────────────────────────────────── const Sidebar = ({ activeItem, setActiveItem }) => { const items = [ { icon: "◈", label: "DASHBOARD", sub: "OVERVIEW" }, { icon: "◉", label: "INTEL", sub: "CLASSIFIED" }, { icon: "▣", label: "ASSETS", sub: "INVENTORY" }, { icon: "◆", label: "COMMS", sub: "ENCRYPTED" }, { icon: "⬡", label: "ANALYTICS", sub: "METRICS" }, { icon: "⊕", label: "SETTINGS", sub: "CONFIG" }, ]; return (
{items.map((item, i) => ( ))}
); }; // ── 22. FOOTER ───────────────────────────────────────────────── const Footer = () => (
© NEXUS PROTOCOL — OMEGA DIVISION — CLEARANCE REQUIRED
v4.7.2 BUILD-20470312
); // ══════════════════════════════════════════════════════════════ // DEMO PAGE // ══════════════════════════════════════════════════════════════ export default function TicketPunchUIDemo() { const [activeNavTab, setActiveNavTab] = useState("DASHBOARD"); const [activeSideItem, setActiveSideItem] = useState("DASHBOARD"); const [activeTab, setActiveTab] = useState(0); const [toggleA, setToggleA] = useState(true); const [toggleB, setToggleB] = useState(false); const [modalOpen, setModalOpen] = useState(false); const [selectVal, setSelectVal] = useState(""); const [inputVal, setInputVal] = useState(""); return (
{/* Ambient gold glow */}
{/* Page Header */}

TICKETPUNCH UI

DESIGN SYSTEM — OMEGA CLASSIFICATION — BUILD 2047.03.12
{/* STAT CARDS */} SYSTEM OVERVIEW
{/* MAIN TICKET CARD */} CLASSIFIED INTEL BRIEF
// OMEGA-NEXUS // DIRECTIVE 7749 // CLASSIFIED

OPERATION
BLACKOUT

AUTHORIZED PERSONNEL ONLY. MISSION PARAMETERS LOCKED PENDING CLEARANCE VERIFICATION. ALL COMMUNICATION ENCRYPTED VIA NEXUS-PROTOCOL AES-512.

OMEGA-7 TOP SECRET ACTIVE NEXUS-PROTOCOL
ISSUED: 2047.03.12
REF: NEXUS-OP-7749
{/* TABS + TABLE */} INTEL DATABASE
ACTIVE, "OMEGA", "OP-7749", "0:04:22 AGO"], ["AGT-002 PHANTOM", STANDBY, "DELTA", "OP-7700", "2:14:07 AGO"], ["AGT-003 WRAITH", COMPROMISED, "GAMMA", "—", "6:55:13 AGO"], ["AGT-004 NEXUS", OFFLINE, "ALPHA", "OP-7801", "1D 04H AGO"], ]} />
{/* BUTTONS */} BUTTON SYSTEM
{["◈", "◉", "▣", "◆", "⊕"].map((icon, i) => ( ))}
{/* FORM ELEMENTS */} FORM ELEMENTS
setInputVal(e.target.value)} hint="FORMAT: AGT-XXX-CLEARANCE" />
setToggleA(!toggleA)} label="ENCRYPTION ENABLED" />
{ }} /> setToggleA(!toggleA)} label="ACTIVE SURVEILLANCE" /> setToggleB(!toggleB)} label="STEALTH MODE" /> { }} label="ENCRYPTION LAYER" />
PROGRESS INDICATORS
{/* STATUS + BADGES */} STATUS SYSTEM
OMEGA ACTIVE COMPROMISED ALERT DEFAULT CLASSIFIED NEXUS
{/* ACCORDION + STEPPER */}
ACCORDION PRIMARY OBJECTIVE: INFILTRATE NEXUS SIGMA NODE. SECONDARY: EXTRACT DATA PACKAGE DELTA-7. ABORT CODE: 4419-OMEGA. DURATION: 72H MAX. AGENT: SPECTRE-9 // RANK: SENIOR OPERATIVE // CLEARANCE: OMEGA // STATUS: FIELD ACTIVE // DEPLOYMENTS: 47 COMPLETED. [REDACTED — CLEARANCE LEVEL OMEGA REQUIRED. CONTACT DIVISION COMMANDER FOR ACCESS CREDENTIALS.]
STEPPER
▶ PHASE 3: ACTIVE DEPLOYMENT
AGENT SPECTRE-9 IS CURRENTLY ACTIVE IN THE FIELD. ALL VITALS NOMINAL. COMMS ENCRYPTED. ETA TO OBJECTIVE: 04:22:11.
{/* ALERTS + LOADER */} ALERTS + LOADERS
{ }} />
{[["SMALL", 28], ["MEDIUM", 44], ["LARGE", 64]].map(([lbl, sz]) => (
{lbl}
))}
OMEGA TEAM
4 AGENTS // 2 ACTIVE
{/* MODAL TRIGGER */} MODAL SYSTEM
{/* TYPOGRAPHY */} TYPOGRAPHY
{[ { size: 22, weight: 700, text: "DISPLAY — OMEGA PROTOCOL", color: "var(--g-300)" }, { size: 16, weight: 700, text: "H1 — CLASSIFIED DIRECTIVE", color: "var(--w-100)" }, { size: 13, weight: 600, text: "H2 — NEXUS SYSTEM HEADER", color: "var(--w-200)" }, { size: 11, weight: 600, text: "H3 — OPERATION BRIEFING", color: "var(--w-300)" }, { size: 9.5, weight: 500, text: "H4 — SUBHEADING ALPHA", color: "var(--w-300)" }, { size: 8.5, weight: 400, text: "BODY — STANDARD INTEL REPORT BODY TEXT FOR EXTENDED BRIEFINGS", color: "var(--w-400)" }, { size: 7.5, weight: 400, text: "SMALL — SECONDARY SUPPORT LABELS AND DESCRIPTORS", color: "var(--w-500)" }, { size: 7, weight: 400, text: "MICRO — OMEGA-7749 // COPYRIGHT NEXUS DIVISION // CLEARANCE REQUIRED", color: "var(--g-700)" }, ].map((t, i) => (
{t.size}PX {t.text}
))}
{/* COLOR PALETTE */} COLOR PALETTE
{[ { scheme: "DARK", name: "D-900", val: "#060606" }, { scheme: "DARK", name: "D-800", val: "#0A0A0A" }, { scheme: "DARK", name: "D-700", val: "#0f0f0f" }, { scheme: "DARK", name: "D-600", val: "#1e1e1e" }, { scheme: "DARK", name: "D-500", val: "#2a2a2a" }, { scheme: "WHITE", name: "W-100", val: "#FFFFFF" }, { scheme: "WHITE", name: "W-200", val: "#EFEFEF" }, { scheme: "WHITE", name: "W-300", val: "#CDCDCD" }, { scheme: "WHITE", name: "W-400", val: "#AAAAAA" }, { scheme: "WHITE", name: "W-500", val: "#888888" }, { scheme: "GOLD", name: "G-100", val: "#FFF4CC" }, { scheme: "GOLD", name: "G-300", val: "#FFD700" }, { scheme: "GOLD", name: "G-500", val: "#C8960C" }, { scheme: "GOLD", name: "G-700", val: "#7A5800" }, { scheme: "GOLD", name: "G-900", val: "#3D2C00" }, { scheme: "RED", name: "R-100", val: "#FFE5E5" }, { scheme: "RED", name: "R-300", val: "#FF6666" }, { scheme: "RED", name: "R-500", val: "#FF3333" }, { scheme: "RED", name: "R-700", val: "#CC0000" }, { scheme: "RED", name: "R-900", val: "#550000" }, { scheme: "PEACH", name: "P-100", val: "#FFF0EB" }, { scheme: "PEACH", name: "P-300", val: "#FFBFA8" }, { scheme: "PEACH", name: "P-500", val: "#FF8C69" }, { scheme: "PEACH", name: "P-700", val: "#C45A35" }, { scheme: "PEACH", name: "P-900", val: "#5C2010" }, ].map((c, i) => (
{i % 5 === 0 && (
{c.scheme}
)} {i % 5 !== 0 &&
}
{c.name}
{c.val}
))}
{/* PRIMITIVES */} DESIGN PRIMITIVES
{[0.08, 0.18, 0.28].map((s, i) => (
{(s * 100).toFixed(0)}% STRENGTH
))}
setModalOpen(false)} title="CLASSIFIED DIRECTIVE">

THIS DOCUMENT CONTAINS INFORMATION OF THE HIGHEST CLASSIFICATION. UNAUTHORIZED DISCLOSURE IS A VIOLATION OF NEXUS PROTOCOL ARTICLE 7-OMEGA.

OPERATION BLACKOUT IS AUTHORIZED BY DIVISION COMMANDER NEXUS-1. ALL AGENTS MUST CONFIRM RECEIPT VIA SECURE CHANNEL BEFORE DEPLOYMENT.

); }