// Sample data + tiny inline icon components (Lucide-style strokes). // ──────────────── Icons ──────────────── const Icon = ({ d, fill, size = 18, sw = 1.75, children, style }) => ( {d ? : children} ); const I = { home: (p) => , calendar: (p) => , doc: (p) => , book: (p) => , shield: (p) => , user: (p) => , laptop: (p) => , dollar: (p) => , bell: (p) => , search: (p) => , help: (p) => , check: (p) => , arrow: (p) => , arrowL: (p) => , plus: (p) => , more: (p) => , zoom: (p) => , pen: (p) => , github: (p) => , slack: (p) => , fig: (p) => , notion: (p) => , sun: (p) => , moon: (p) => , paint: (p) => , layout: (p) => , download: (p) => , clock: (p) => , play: (p) => , package: (p) => , lock: (p) => , sparkle: (p) => , wave: (p) => , family: (p) => , heart: (p) => , tooth: (p) => , eye: (p) => , shield2: (p) => , mail: (p) => , edit: (p) => , upload: (p) => , external: (p) => , flag: (p) => , gift: (p) => , building: (p) => , briefcase: (p) => , globe: (p) => , monitor: (p) => , phone: (p) => , headset: (p) => , keyboard: (p) => , star: (p) => , trophy: (p) => , refresh: (p) => , trash: (p) => , x: (p) => , copy: (p) => , }; // avatar palette const AVATAR_COLORS = [ "#0ea5e9", "#a855f7", "#f97316", "#10b981", "#ef4444", "#6366f1", "#06b6d4", "#eab308", "#ec4899", "#14b8a6" ]; const avatarBg = (name) => { let h = 0; for (const c of name) h = (h * 31 + c.charCodeAt(0)) & 0xfff; return AVATAR_COLORS[h % AVATAR_COLORS.length]; }; const initials = (name) => name.split(" ").map(p => p[0]).slice(0, 2).join("").toUpperCase(); const Avatar = ({ name, size = "md" }) => (
{initials(name)}
); // ──────────────── Personas ──────────────── const PERSONAS = { eng: { role: "Software Engineer", team: "Platform · Voice Infrastructure", manager: "Aarav Mehta", managerRole: "Engineering Manager, Platform", location: "Los Angeles, CA · Hybrid", startDate: "May 11, 2026", tools: ["GitHub", "Slack", "Linear", "Datadog", "AWS Console"], badge: "ENG-2641", }, design: { role: "Product Designer", team: "Design · Agent Experience", manager: "Priya Iyer", managerRole: "Design Director", location: "Los Angeles, CA · Hybrid", startDate: "May 11, 2026", tools: ["Figma", "FigJam", "Notion", "Linear", "Slack"], badge: "DES-118", }, sales: { role: "Account Executive", team: "Sales · Mid-Market", manager: "Marcus Reed", managerRole: "VP, Mid-Market Sales", location: "Los Angeles, CA · Hybrid", startDate: "May 11, 2026", tools: ["Salesforce", "Outreach", "Gong", "Slack", "LinkedIn Sales Nav"], badge: "AE-204", }, }; const NEW_HIRE = { name: "Riley Park", first: "Riley" }; // ──────────────── Onboarding plan (timeline) ──────────────── // Each task knows which "phase" it belongs to: day1 / week1 / month1 const TASKS = (persona) => { const eng = persona === "eng"; const des = persona === "design"; const sal = persona === "sales"; return [ // Day 1 { id: "t1", phase: "day1", title: "Welcome video from CEO", kind: "media", time: "8:30 AM", duration: "5 min", icon: "play", required: true }, { id: "t2", phase: "day1", title: "Sign offer letter & NDA", kind: "doc", time: "9:00 AM", duration: "10 min", icon: "pen", required: true, count: "2 docs" }, { id: "t3", phase: "day1", title: "I-9 employment verification", kind: "doc", time: "9:30 AM", duration: "8 min", icon: "doc", required: true }, { id: "t4", phase: "day1", title: "Setup Convoso SSO + 2FA", kind: "task", time: "10:00 AM", duration: "5 min", icon: "lock", required: true }, { id: "t5", phase: "day1", title: "1:1 with " + (eng ? "Aarav (Eng Manager)" : des ? "Priya (Design Director)" : "Marcus (Sales VP)"), kind: "meeting", time: "11:00 AM", duration: "30 min", icon: "zoom", required: true }, { id: "t6", phase: "day1", title: "Team welcome lunch", kind: "meeting", time: "12:30 PM", duration: "1 hr", icon: "gift", required: false }, { id: "t7", phase: "day1", title: eng ? "Clone repo + run convoso-core locally" : des ? "Set up Figma + clone design library" : "Salesforce account & Outreach access", kind: "task", time: "2:00 PM", duration: "1 hr", icon: eng ? "github" : des ? "fig" : "briefcase", required: true }, // Week 1 { id: "t8", phase: "week1", title: "Complete W-4 tax withholding", kind: "doc", duration: "10 min", icon: "doc", required: true }, { id: "t9", phase: "week1", title: "Direct deposit setup", kind: "doc", duration: "5 min", icon: "dollar", required: true }, { id: "t10", phase: "week1", title: "Enroll in benefits & insurance", kind: "task", duration: "20 min", icon: "shield", required: true, deadline: "30 days" }, { id: "t11", phase: "week1", title: "Code of Conduct training", kind: "training", duration: "25 min", icon: "book", required: true }, { id: "t12", phase: "week1", title: "Security & data privacy training", kind: "training", duration: "30 min", icon: "shield2", required: true }, { id: "t13", phase: "week1", title: eng ? "Onboarding deep-dive: voice infra" : des ? "Design system intro · with Priya" : "Convoso platform demo training", kind: "training", duration: "1 hr", icon: "play", required: false }, { id: "t14", phase: "week1", title: "Coffee chat with team buddy · " + (eng ? "Sam Liu" : des ? "Devon Cole" : "Maya Cruz"), kind: "meeting", duration: "30 min", icon: "wave", required: false }, // Month 1 { id: "t15", phase: "month1", title: "30-day check-in with manager", kind: "meeting", duration: "45 min", icon: "calendar", required: true }, { id: "t16", phase: "month1", title: "HIPAA & call recording compliance", kind: "training", duration: "40 min", icon: "shield2", required: true }, { id: "t17", phase: "month1", title: eng ? "Ship first PR" : des ? "Present first design crit" : "First closed-won deal", kind: "task", duration: "self-paced", icon: "trophy", required: false }, { id: "t18", phase: "month1", title: "Choose 401(k) contribution", kind: "doc", duration: "10 min", icon: "dollar", required: false }, { id: "t19", phase: "month1", title: "Quarterly all-hands attendance", kind: "meeting", duration: "1 hr", icon: "calendar", required: false }, ]; }; // Track which tasks are "done" by phase (matches the onboardingProgress tweak). const COMPLETED_BY_PROGRESS = { day1: new Set(["t1", "t2"]), week1: new Set(["t1","t2","t3","t4","t5","t6","t7","t8"]), done: new Set(["t1","t2","t3","t4","t5","t6","t7","t8","t9","t10","t11","t12","t13","t14","t15","t16","t17","t18","t19"]), }; // ──────────────── Meetings (calendar) ──────────────── const MEETINGS = [ { day: "Mon", date: "May 11", items: [ { time: "9:00 AM", end: "9:30", title: "Welcome breakfast", with: "People Ops", loc: "DTLA HQ · 4F", status: "accepted" }, { time: "11:00 AM", end: "11:30", title: "1:1 with Aarav Mehta", with: "Aarav Mehta", loc: "Zoom", status: "accepted", primary: true }, { time: "1:00 PM", end: "1:45", title: "IT Setup · Laptop & SSO", with: "Marcus IT", loc: "DTLA HQ · IT Bar", status: "accepted" }, { time: "3:30 PM", end: "4:30", title: "Eng team standup", with: "Platform team", loc: "Zoom", status: "tentative" }, ]}, { day: "Tue", date: "May 12", items: [ { time: "10:00 AM", end: "11:00", title: "Codebase walkthrough", with: "Sam Liu (buddy)", loc: "Zoom", status: "accepted" }, { time: "2:00 PM", end: "2:30", title: "Benefits Q&A · Optional", with: "Lila Park (HR)", loc: "Zoom", status: "tentative" }, ]}, { day: "Wed", date: "May 13", items: [ { time: "9:30 AM", end: "10:00", title: "Daily standup", with: "Platform team", loc: "Zoom", status: "accepted", recurring: true }, { time: "12:30 PM", end: "1:30", title: "Lunch & Learn · Convoso AI", with: "Whole company", loc: "DTLA HQ · Cafe", status: "tentative" }, ]}, { day: "Thu", date: "May 14", items: [ { time: "10:00 AM", end: "11:00", title: "Engineering all-hands", with: "Engineering", loc: "Zoom", status: "accepted" }, { time: "3:00 PM", end: "3:30", title: "1:1 buddy check-in", with: "Sam Liu", loc: "Zoom", status: "accepted" }, ]}, { day: "Fri", date: "May 15", items: [ { time: "9:00 AM", end: "9:30", title: "Sprint planning", with: "Platform team", loc: "Zoom", status: "tentative" }, { time: "4:30 PM", end: "5:30", title: "Friday social", with: "Whole company", loc: "DTLA HQ · Lounge", status: "tentative" }, ]}, ]; // ──────────────── Documents ──────────────── const DOCS = [ { id: "d1", title: "Offer Letter", category: "Employment", pages: 4, status: "signed", signedOn: "May 9", priority: "high" }, { id: "d2", title: "Mutual NDA", category: "Legal", pages: 2, status: "signed", signedOn: "May 9", priority: "high" }, { id: "d3", title: "Employee Handbook Acknowledgement", category: "Policy", pages: 1, status: "pending", due: "May 11", priority: "high" }, { id: "d4", title: "Form I-9 · Employment Eligibility", category: "Government", pages: 3, status: "pending", due: "May 11", priority: "high" }, { id: "d5", title: "Form W-4 · Federal Tax Withholding", category: "Government", pages: 2, status: "pending", due: "May 15", priority: "med" }, { id: "d6", title: "California State Tax DE-4", category: "Government", pages: 2, status: "pending", due: "May 15", priority: "med" }, { id: "d7", title: "Direct Deposit Authorization", category: "Payroll", pages: 1, status: "pending", due: "May 15", priority: "med" }, { id: "d8", title: "IP Assignment Agreement", category: "Legal", pages: 5, status: "pending", due: "May 18", priority: "med" }, { id: "d9", title: "Code of Conduct Acknowledgement", category: "Policy", pages: 1, status: "pending", due: "May 22", priority: "low" }, { id: "d10", title: "401(k) Election Form", category: "Benefits", pages: 2, status: "pending", due: "Jun 11", priority: "low" }, { id: "d11", title: "Emergency Contact Form", category: "Personal", pages: 1, status: "pending", due: "May 22", priority: "low" }, ]; // ──────────────── Training ──────────────── const TRAININGS = [ { id: "tr1", title: "Welcome to Convoso", category: "Culture", duration: "12 min", lessons: 3, progress: 100, instructor: "Nathan Stearns, CEO", required: true, color: "#84cc16" }, { id: "tr2", title: "Code of Conduct", category: "Compliance", duration: "25 min", lessons: 6, progress: 60, instructor: "Lila Park, People Ops", required: true, color: "#0ea5e9" }, { id: "tr3", title: "Security & Data Privacy", category: "Compliance", duration: "30 min", lessons: 8, progress: 25, instructor: "Diana Ortega, CISO", required: true, color: "#ef4444" }, { id: "tr4", title: "HIPAA & Call Recording Compliance", category: "Compliance", duration: "40 min", lessons: 10, progress: 0, instructor: "Diana Ortega, CISO", required: true, color: "#a855f7" }, { id: "tr5", title: "Convoso Platform 101", category: "Product", duration: "1 hr 5 min", lessons: 14, progress: 0, instructor: "Maya Cruz, Product", required: true, color: "#f97316" }, { id: "tr6", title: "Voice Infrastructure Deep-dive", category: "Engineering", duration: "1 hr 30 min", lessons: 11, progress: 0, instructor: "Aarav Mehta", required: false, color: "#14b8a6" }, { id: "tr7", title: "Working Async at Convoso", category: "Culture", duration: "18 min", lessons: 4, progress: 0, instructor: "Priya Iyer", required: false, color: "#eab308" }, { id: "tr8", title: "Inclusive Workplace", category: "Compliance", duration: "45 min", lessons: 9, progress: 0, instructor: "Lila Park, People Ops", required: true, color: "#ec4899" }, ]; // ──────────────── Insurance plans ──────────────── const PLANS = [ { id: "blue-pref", name: "Blue PPO Preferred", carrier: "Anthem Blue Cross", type: "PPO", network: "Nationwide", premium: 184, employer: 612, deductible: 500, oop: 4500, copay: 25, specialist: 45, perks: ["No referrals", "Best network coverage", "Anywhere in network"], badge: "Most chosen", }, { id: "blue-core", name: "Blue HMO Core", carrier: "Anthem Blue Cross", type: "HMO", network: "California", premium: 92, employer: 488, deductible: 250, oop: 3000, copay: 15, specialist: 25, perks: ["Lowest copays", "Designated PCP required", "California-only network"], }, { id: "kp-hdhp", name: "Kaiser HDHP + HSA", carrier: "Kaiser Permanente", type: "HDHP", network: "Kaiser-only", premium: 64, employer: 412, deductible: 1750, oop: 5000, copay: 0, specialist: 0, perks: ["HSA-eligible (Convoso adds $1,200/yr)", "Lowest premium", "Tax-free spending"], badge: "Best for healthy", }, ]; const DENTAL_PLANS = [ { id: "delta-ppo", name: "Delta Dental PPO", premium: 18, employer: 42, perks: ["100% preventive", "$2,000 annual max", "Includes ortho"] }, { id: "delta-basic", name: "Delta Dental Basic", premium: 8, employer: 24, perks: ["Cleanings + x-rays", "$1,000 annual max"] }, { id: "decline-d", name: "Decline dental", premium: 0, employer: 0, perks: ["Decline coverage"] }, ]; const VISION_PLANS = [ { id: "vsp", name: "VSP Vision Plus", premium: 6, employer: 14, perks: ["1 exam / yr", "$200 frame allowance", "Contacts covered"] }, { id: "vsp-basic", name: "VSP Vision Basic", premium: 3, employer: 8, perks: ["1 exam / yr", "$120 frame allowance"] }, { id: "decline-v", name: "Decline vision", premium: 0, employer: 0, perks: ["Decline coverage"] }, ]; // ──────────────── Equipment ──────────────── const EQUIPMENT = [ { id: "e1", name: "MacBook Pro 14\" M4", spec: "32 GB · 1 TB · Space Black", status: "shipped", eta: "Arrives May 10", icon: "laptop" }, { id: "e2", name: "Studio Display 27\"", spec: "Standard glass · Tilt stand", status: "shipped", eta: "Arrives May 10", icon: "monitor" }, { id: "e3", name: "Logitech MX Keys", spec: "Graphite · Bluetooth", status: "shipped", eta: "Arrives May 10", icon: "keyboard" }, { id: "e4", name: "Sony WH-1000XM5", spec: "Black · Noise-canceling", status: "processing", eta: "Ships May 12", icon: "headset" }, { id: "e5", name: "iPhone 15 Pro", spec: "Optional · 256 GB", status: "available", eta: "Add to order", icon: "phone" }, ]; // ──────────────── Profile sample ──────────────── const PROFILE = { legalName: "Riley Alex Park", preferred: "Riley", pronouns: "they / them", email: "riley.park@convoso.com", personalEmail: "rileypark@gmail.com", phone: "+1 (213) 555-0142", dob: "1996-08-14", ssnLast4: "•••-••-4982", address: "1217 Hope St, Apt 8B, Los Angeles, CA 90015", emergency: { name: "Jordan Park", relation: "Sibling", phone: "+1 (310) 555-0190" }, ethnicity: "Prefer not to say", veteran: "No", shirtSize: "M", }; // expose to globals Object.assign(window, { Icon, I, Avatar, avatarBg, initials, PERSONAS, NEW_HIRE, TASKS, COMPLETED_BY_PROGRESS, MEETINGS, DOCS, TRAININGS, PLANS, DENTAL_PLANS, VISION_PLANS, EQUIPMENT, PROFILE, });