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 )}
))}
); // ── 15. STEPPER ──────────────────────────────────────────────── const Stepper = ({ steps, current }) => (
{steps.map((step,i) => (
{i {step}
{i )}
))}
); // ── 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 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.

); }