File manager - Edit - /var/www/ratemypay_dev/storage/framework/views/b6c5c8694d43635ce4df88d2fca52547.php
Back
<?php $__env->startSection('title', 'See Salary - ' . config('app.name')); ?> <?php $__env->startPush('styles'); ?> <style> :root { --rmp-navy: #2F3D7E; --rmp-ink: #1C2731; --rmp-line: #EEF0F4; --rmp-bg: #FAFBFC; } .rmp-card { background:#fff; border:1px solid var(--rmp-line); border-radius:16px; } .rmp-line { border-color: var(--rmp-line); } .rmp-eyebrow { font-size:11px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:#6B7280; } .rmp-link { font-size:12px; font-weight:600; color:#2563EB; cursor:pointer; } .rmp-link:hover { text-decoration:underline; } .tag-high { color:#16A34A; } .tag-moderate { color:#D97706; } .tag-low { color:#DC2626; } .est-badge { font-size:9px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; background:#FEF3C7; color:#92400E; padding:1px 6px; border-radius:999px; } @keyframes rmpFade { from { opacity:0; transform:translateY(8px);} to { opacity:1; transform:none;} } .rmp-fade { animation: rmpFade .5s ease both; } /* confidence bar */ .conf-bar { height:4px; display: block; border-radius:999px; background:#E5E7EB; overflow:hidden; } .conf-bar > span { display:block; height:100%; border-radius:999px; } /* similar jobs scroll */ .sj-track { display:flex; gap:16px; overflow-x:auto; scroll-behavior:smooth; scrollbar-width:none; } .sj-track::-webkit-scrollbar { display:none; } .sj-card { flex:0 0 200px; } .benefit-ic { width:22px; height:22px; border-radius:6px; display:inline-flex; align-items:center; justify-content:center; background:#F3F4F6; color:#6B7280; } </style> <?php $__env->stopPush(); ?> <?php $__env->startSection('content'); ?> <div class="w-full min-h-screen pt-[110px] pb-12" style="background:var(--rmp-bg)"> <div class="w-full max-w-[1300px] mx-auto px-6 md:px-0"> <div class="grid grid-cols-1 lg:grid-cols-12 gap-8 items-start"> <aside class="lg:col-span-3 space-y-6 lg:sticky lg:top-24"> <a href="<?php echo e(url()->previous()); ?>" class="inline-flex items-center gap-1 text-sm text-gray-500 hover:text-gray-800"> <svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M10 19l-7-7m0 0l7-7m-7 7h18"/></svg> Back to search </a> <div class="rmp-card p-5 shadow-sm"> <div class="flex items-center gap-2 mb-6 font-bold text-sm uppercase tracking-wide" style="color:var(--rmp-navy)"> <svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24"> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M3 4a1 1 0 011-1h16a1 1 0 011 1v2.586a1 1 0 01-.293.707l-6.414 6.414a1 1 0 00-.293.707V17l-4 4v-6.586a1 1 0 00-.293-.707L3.293 7.293A1 1 0 013 6.586V4z"/> </svg> <span>Filter Data</span> </div> <?php echo $__env->make('components.see-form', array_diff_key(get_defined_vars(), ['__data' => 1, '__path' => 1]))->render(); ?> </div> <div class="rmp-card p-5" style="background:#F7F8FB"> <h4 class="font-bold text-sm mb-1" style="color:var(--rmp-ink)">How this data is calculated</h4> <p class="text-xs text-gray-500 leading-relaxed mb-3"> Our estimates combine verified employee submissions, employer reported data, job postings and public information. </p> <button onclick="rmpOpenModal('methodology')" class="rmp-link">Learn more about our methodology →</button> </div> <div class="rounded-2xl p-5 text-white relative overflow-hidden" style="background:var(--rmp-navy)"> <div class="relative z-10"> <h3 class="font-bold text-lg mb-2">Contribute Your Salary</h3> <p class="text-blue-100 text-sm mb-4">Help others and get a more accurate market.</p> <?php if(auth()->guard()->check()): ?> <a href="<?php echo e(route('dashboard.job-experiences.create')); ?>" class="block w-full h-10 bg-white rounded-lg text-sm font-bold flex items-center justify-center hover:bg-gray-50 transition-colors" style="color:var(--rmp-navy)">Share Your Salary</a> <?php else: ?> <button onclick="openRegisterModal()" class="w-full h-10 bg-white rounded-lg text-sm font-bold hover:bg-gray-50 transition-colors" style="color:var(--rmp-navy)">Share Your Salary</button> <?php endif; ?> <p class="text-[11px] text-blue-200 mt-3 text-center">Anonymous • Secure • Easy</p> </div> <div class="absolute -bottom-6 -right-6 w-24 h-24 bg-blue-400/30 rounded-full blur-xl"></div> </div> </aside> <main class="lg:col-span-9 space-y-6"> <?php if($overview): ?> <?php $ov = $overview; $cur = $ov['currency']; $snap = $ov['snapshot']; $fmt = fn($n) => number_format((float) $n); $kfmt = function($n) { if ($n < 1000) return (string) round($n); $k = $n / 1000; // one decimal only when it isn't a whole number of thousands $s = number_format($k, fmod($k, 1) == 0.0 ? 0 : 1); return $s . 'K'; }; $powerClass = fn($p) => $p === 'High' ? 'tag-high' : ($p === 'Low' ? 'tag-low' : 'tag-moderate'); $confPct = fn($c) => $c === 'High' ? 100 : ($c === 'Moderate' ? 60 : 30); $confColor = fn($c) => $c === 'High' ? '#16A34A' : ($c === 'Low' ? '#DC2626' : '#D97706'); ?> <div class="rmp-fade inline-flex items-center gap-2 px-3 py-1 rounded-full bg-white text-green-700 text-xs font-bold border border-green-200"> <span class="relative flex h-2 w-2"> <span class="animate-ping absolute inline-flex h-full w-full rounded-full bg-green-400 opacity-75"></span> <span class="relative inline-flex rounded-full h-2 w-2 bg-green-500"></span> </span> Updated <?php echo e($ov['updated_at']); ?> </div> <div class="rmp-fade flex flex-col lg:flex-row justify-between lg:items-start gap-4"> <div> <h1 class="text-3xl md:text-4xl font-bold tracking-tight flex items-center gap-2" style="color:var(--rmp-ink)"> <?php echo e($ov['job_title']); ?> — <?php echo e($ov['location']); ?> <svg class="w-6 h-6 text-blue-500" fill="currentColor" viewBox="0 0 20 20"> <path fill-rule="evenodd" d="M16.7 5.3a1 1 0 010 1.4l-8 8a1 1 0 01-1.4 0l-4-4a1 1 0 011.4-1.4L8 12.6l7.3-7.3a1 1 0 011.4 0z" clip-rule="evenodd"/> </svg> </h1> <p class="text-gray-600 mt-1"> Comprehensive compensation insights from <span class="font-bold" style="color:var(--rmp-ink)"><?php echo e($fmt($ov['data_points'])); ?></span> verified data points </p> </div> <div class="flex gap-3"> <?php if(auth()->guard()->check()): ?> <a href="<?php echo e(route('dashboard.job-experiences.create')); ?>" class="bg-[#2F3D7E] hover:bg-[#2F3D7E]/90 px-5 py-2.5 rounded-lg font-bold text-white text-sm flex items-center gap-2"> <svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 4v16m8-8H4"/></svg> Contribute Salary </a> <?php else: ?> <button onclick="openRegisterModal()" class="bg-[#2F3D7E] hover:bg-[#2F3D7E]/90 px-5 py-2.5 rounded-lg font-bold text-white text-sm flex items-center gap-2"> <svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 4v16m8-8H4"/></svg> Contribute Salary </button> <?php endif; ?> </div> </div> <div class="rmp-card p-6 shadow-sm rmp-fade"> <div class="flex items-center gap-2 mb-5"> <h2 class="rmp-eyebrow">Market Snapshot</h2> <?php if(!empty($snap['is_estimate'])): ?><span class="est-badge">Estimated</span><?php endif; ?> </div> <div class="grid grid-cols-2 md:grid-cols-3 lg:grid-cols-6 gap-6"> <div> <p class="text-xs text-gray-500 mb-1">Median Pay</p> <p class="text-lg font-bold" style="color:var(--rmp-ink)"><?php echo e($cur); ?> <?php echo e($fmt($snap['median'])); ?></p> <p class="text-[11px] text-gray-400">per <?php echo e(\Illuminate\Support\Str::of($pay_frequency ?? 'annually')->replace('annually','year')->replace('ly','')); ?></p> </div> <div> <p class="text-xs text-gray-500 mb-1">Typical Range</p> <p class="text-lg font-bold" style="color:var(--rmp-ink)"><?php echo e($cur); ?> <?php echo e($fmt($snap['range_low'])); ?> – <?php echo e($fmt($snap['range_high'])); ?></p> </div> <div> <p class="text-xs text-gray-500 mb-1">Top 10% Earn</p> <p class="text-lg font-bold" style="color:var(--rmp-ink)"><?php echo e($cur); ?> <?php echo e($fmt($snap['top10'])); ?>+</p> </div> <div> <p class="text-xs text-gray-500 mb-1">Market Demand</p> <?php $demand = $snap['market_demand']; $demandColor = $demand === 'High' ? 'text-green-600' : ($demand === 'Low' ? 'text-red-600' : 'text-amber-600'); $trend = strtolower($snap['demand_trend'] ?? ''); $trendUp = str_contains($trend, 'grow') || str_contains($trend, 'increas') || str_contains($trend, 'rising'); $trendDown = str_contains($trend, 'declin') || str_contains($trend, 'falling') || str_contains($trend, 'shrink'); ?> <p class="text-lg font-bold flex items-center gap-1 <?php echo e($demandColor); ?>"><?php echo e($demand); ?> <?php if($trendUp): ?> <svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 10l7-7m0 0l7 7m-7-7v18"/></svg> <?php elseif($trendDown): ?> <svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 14l-7 7m0 0l-7-7m7 7V3"/></svg> <?php endif; ?> </p> <p class="text-[11px] text-gray-400"><?php echo e($snap['demand_trend']); ?></p> </div> <div> <p class="text-xs text-gray-500 mb-1">Talent Supply</p> <p class="text-lg font-bold" style="color:var(--rmp-ink)"><?php echo e($snap['talent_supply']); ?></p> </div> <div> <p class="text-xs text-gray-500 mb-1">Confidence</p> <?php $confLevel = $snap['confidence']; $confTextColor = $confLevel === 'High' ? 'text-green-600' : ($confLevel === 'Low' ? 'text-red-600' : 'text-amber-600'); ?> <p class="text-lg font-bold flex items-center gap-1 <?php echo e($confTextColor); ?>"><?php echo e($confLevel); ?> <svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z"/></svg> </p> <?php if(!is_null($ov['confidence_score'])): ?> <span class="text-[11px] text-gray-400"><?php echo e(round($ov['confidence_score']*100)); ?>% certainty</span> <?php else: ?> <button onclick="rmpOpenModal('methodology')" class="text-[11px] text-blue-600 hover:underline">Why?</button> <?php endif; ?> </div> </div> <p class="text-[11px] text-gray-400 mt-5 pt-4 border-t rmp-line"> Data updated <?php echo e($ov['updated_at']); ?> • Salary range represents middle 50% of pay </p> </div> <div class="grid grid-cols-1 lg:grid-cols-3 gap-6"> <div class="rmp-card p-6 shadow-sm"> <h2 class="rmp-eyebrow mb-5">Salary Distribution</h2> <?php $dist = $ov['distribution']; // [p10,p25,p50,p75,p90] with labels $vals = array_map(fn($d) => (float) $d['value'], $dist); $w = 320; $h = 150; $baseY = $h - 4; $topPad = 16; $distMin = min($vals) ?: 1; $distMax = max($vals) ?: 1; $span = ($distMax - $distMin) ?: 1; // X position of each percentile = its real salary on a linear axis (p10..p90). $px = array_map(fn($v) => round((($v - $distMin) / $span) * $w, 1), $vals); // Relative density at each percentile: probability mass / salary width. // Mass between successive percentiles is fixed (15,25,25,15); height ∝ mass / Δsalary. $mass = [15, 25, 25, 15]; // p10-25, p25-50, p50-75, p75-90 $dens = array_fill(0, count($vals), 0.0); for ($i = 0; $i < count($vals) - 1; $i++) { $dx = max(1, $vals[$i+1] - $vals[$i]); $d = $mass[$i] / $dx; $dens[$i] += $d; $dens[$i+1] += $d; } $maxDens = max($dens) ?: 1; $py = array_map(fn($d) => round($baseY - ($d / $maxDens) * ($baseY - $topPad), 1), $dens); // Smooth path (Catmull-Rom -> cubic bezier) through the real points. $node = []; foreach ($px as $i => $x) { $node[] = [$x, $py[$i]]; } $path = 'M ' . $node[0][0] . ' ' . $node[0][1]; for ($i = 0; $i < count($node) - 1; $i++) { $p0 = $node[max(0,$i-1)]; $p1 = $node[$i]; $p2 = $node[$i+1]; $p3 = $node[min(count($node)-1,$i+2)]; $c1x = round($p1[0] + ($p2[0]-$p0[0])/6, 1); $c1y = round($p1[1] + ($p2[1]-$p0[1])/6, 1); $c2x = round($p2[0] - ($p3[0]-$p1[0])/6, 1); $c2y = round($p2[1] - ($p3[1]-$p1[1])/6, 1); $path .= " C {$c1x} {$c1y} {$c2x} {$c2y} {$p2[0]} {$p2[1]}"; } $areaPath = $path . " L {$node[count($node)-1][0]} {$baseY} L {$node[0][0]} {$baseY} Z"; $medianX = $px[2]; $medianY = $py[2]; ?> <div class="grid grid-cols-5 text-center mb-2"> <?php $__currentLoopData = $dist; $__env->addLoop($__currentLoopData); foreach($__currentLoopData as $d): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?> <div> <p class="text-xs font-semibold <?php echo e($loop->index === 2 ? '' : 'text-gray-400'); ?>" <?php if($loop->index===2): ?> style="color:var(--rmp-ink)" <?php endif; ?>><?php echo e($d['label']); ?></p> <p class="text-[11px] <?php echo e($loop->index === 2 ? 'font-bold' : 'text-gray-400'); ?>" <?php if($loop->index===2): ?> style="color:var(--rmp-ink)" <?php endif; ?>><?php echo e($cur); ?> <?php echo e($kfmt($d['value'])); ?></p> </div> <?php endforeach; $__env->popLoop(); $loop = $__env->getLastLoop(); ?> </div> <svg viewBox="0 0 <?php echo e($w); ?> <?php echo e($h); ?>" class="w-full" id="rmp-dist-svg" data-min="<?php echo e($distMin); ?>" data-max="<?php echo e($distMax); ?>" data-w="<?php echo e($w); ?>" data-h="<?php echo e($h); ?>"> <defs> <linearGradient id="distGrad" x1="0" y1="0" x2="0" y2="1"> <stop offset="0%" stop-color="#4F46E5" stop-opacity="0.35"/> <stop offset="100%" stop-color="#4F46E5" stop-opacity="0.02"/> </linearGradient> </defs> <?php $__currentLoopData = $px; $__env->addLoop($__currentLoopData); foreach($__currentLoopData as $gx): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?> <line x1="<?php echo e($gx); ?>" y1="6" x2="<?php echo e($gx); ?>" y2="<?php echo e($baseY); ?>" stroke="#E5E7EB" stroke-width="1" stroke-dasharray="3 3"/> <?php endforeach; $__env->popLoop(); $loop = $__env->getLastLoop(); ?> <path d="<?php echo e($areaPath); ?>" fill="url(#distGrad)"/> <path d="<?php echo e($path); ?>" fill="none" stroke="#4F46E5" stroke-width="2.5"/> <circle cx="<?php echo e($medianX); ?>" cy="<?php echo e($medianY); ?>" r="4" fill="#4F46E5"/> <line id="rmp-dist-marker" x1="0" y1="6" x2="0" y2="<?php echo e($baseY); ?>" stroke="#16A34A" stroke-width="2" style="display:none"/> </svg> <div class="mt-5 pt-4 border-t rmp-line"> <p class="text-xs text-gray-500 mb-2">Your market position</p> <div class="flex gap-2"> <input id="rmp-salary-input" type="number" placeholder="Enter your salary" class="flex-1 border border-gray-200 rounded-lg px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-blue-200"> <button onclick="rmpCompareSalary()" class="text-white px-4 rounded-lg text-sm font-semibold" style="background:var(--rmp-navy)">Compare</button> </div> <p id="rmp-position-result" class="text-xs mt-2 hidden"></p> </div> </div> <div class="rmp-card p-6 shadow-sm"> <div class="flex items-center gap-2 mb-5"> <h2 class="rmp-eyebrow">Compensation Breakdown</h2> <?php if(!empty($ov['comp_breakdown_estimate'])): ?><span class="est-badge">Estimated</span><?php endif; ?> </div> <?php $comp = collect($ov['comp_breakdown'] ?? []); $totalComp = $comp->sum('value') ?: 1; $palette = ['#4F46E5','#34D399','#FBBF24','#A78BFA','#60A5FA']; $offset = 0; $C = 2 * pi() * 52; ?> <?php if($comp->isNotEmpty()): ?> <div class="flex items-center gap-5"> <svg viewBox="0 0 140 140" class="w-32 h-32 flex-shrink-0"> <g transform="rotate(-90 70 70)"> <?php $__currentLoopData = $comp; $__env->addLoop($__currentLoopData); foreach($__currentLoopData as $i => $seg): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?> <?php $frac = $seg['value']/$totalComp; $len = $frac*$C; ?> <circle cx="70" cy="70" r="52" fill="none" stroke="<?php echo e($palette[$i % count($palette)]); ?>" stroke-width="16" stroke-dasharray="<?php echo e($len); ?> <?php echo e($C - $len); ?>" stroke-dashoffset="<?php echo e(-$offset); ?>"/> <?php $offset += $len; ?> <?php endforeach; $__env->popLoop(); $loop = $__env->getLastLoop(); ?> </g> <text x="70" y="66" text-anchor="middle" font-size="8" fill="#9CA3AF">Total Cash</text> <text x="70" y="80" text-anchor="middle" font-size="10" font-weight="700" fill="#1C2731"><?php echo e($cur); ?> <?php echo e($kfmt($totalComp)); ?></text> </svg> <div class="flex-1 space-y-2"> <?php $__currentLoopData = $comp; $__env->addLoop($__currentLoopData); foreach($__currentLoopData as $i => $seg): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?> <div class="flex items-start justify-between text-xs"> <span class="flex items-start gap-2"> <span class="w-2.5 h-2.5 rounded-full mt-1" style="background: <?php echo e($palette[$i % count($palette)]); ?>"></span> <span class="text-gray-700"><?php echo e($seg['label']); ?><br><span class="text-gray-400"><?php echo e($cur); ?> <?php echo e($fmt($seg['value'])); ?></span></span> </span> <span class="font-bold" style="color:var(--rmp-ink)"><?php echo e($seg['pct'] ?? round($seg['value']/$totalComp*100)); ?>%</span> </div> <?php endforeach; $__env->popLoop(); $loop = $__env->getLastLoop(); ?> </div> </div> <button onclick="rmpOpenModal('comp')" class="rmp-link mt-5 inline-block">View compensation components →</button> <?php else: ?> <p class="text-sm text-gray-400 italic">No breakdown available.</p> <?php endif; ?> </div> <div class="rmp-card p-6 shadow-sm"> <h2 class="rmp-eyebrow mb-5">What People Say</h2> <?php $__empty_1 = true; $__currentLoopData = array_slice($ov['testimonials'], 0, 3); $__env->addLoop($__currentLoopData); foreach($__currentLoopData as $t): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); $__empty_1 = false; ?> <div class="bg-gray-50 rounded-xl p-3 mb-3 flex gap-3"> <div class="w-7 h-7 rounded-full bg-blue-100 flex-shrink-0 flex items-center justify-center mt-0.5"> <svg class="w-4 h-4 text-blue-500" fill="currentColor" viewBox="0 0 20 20"><path d="M10 10a4 4 0 100-8 4 4 0 000 8zm-7 8a7 7 0 1114 0H3z"/></svg> </div> <div> <p class="text-sm text-gray-700 leading-snug"><?php echo e($t['quote'] ?? $t['text'] ?? ''); ?></p> <p class="text-[11px] text-gray-400 mt-2"><?php echo e($t['role'] ?? ''); ?><?php echo e(!empty($t['location']) ? ' • '.$t['location'] : ''); ?></p> <p class="text-[11px] text-green-600 flex items-center gap-1 mt-0.5">Verified Member <svg class="w-3 h-3" fill="currentColor" viewBox="0 0 20 20"><path fill-rule="evenodd" d="M16.7 5.3a1 1 0 010 1.4l-8 8a1 1 0 01-1.4 0l-4-4a1 1 0 011.4-1.4L8 12.6l7.3-7.3a1 1 0 011.4 0z" clip-rule="evenodd"/></svg> </p> </div> </div> <?php endforeach; $__env->popLoop(); $loop = $__env->getLastLoop(); if ($__empty_1): ?> <p class="text-sm text-gray-400 italic">No member insights yet.</p> <?php endif; ?> <button onclick="rmpOpenModal('testimonials')" class="rmp-link mt-2 inline-block">View more insights →</button> </div> </div> <div class="grid grid-cols-1 lg:grid-cols-3 gap-6"> <div class="rmp-card p-6 shadow-sm"> <div class="flex items-center justify-between mb-5"> <h2 class="rmp-eyebrow">Pay by City</h2> </div> <div class="grid grid-cols-12 text-[11px] text-gray-400 mb-2"> <span class="col-span-3">City</span> <span class="col-span-3">Median Pay</span> <span class="col-span-4">Typical Range</span> <span class="col-span-2 text-right">Power</span> </div> <?php $__empty_1 = true; $__currentLoopData = $ov['pay_by_city']; $__env->addLoop($__currentLoopData); foreach($__currentLoopData as $c): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); $__empty_1 = false; ?> <?php $pw = $c['purchasing_power'] ?? 'Moderate'; ?> <div class="grid grid-cols-12 gap-1 py-2 border-b rmp-line last:border-0 text-xs items-center"> <span class="col-span-3 font-semibold" style="color:var(--rmp-ink)"><?php echo e($c['city']); ?></span> <span class="col-span-3 font-bold" style="color:var(--rmp-ink)"><?php echo e($c['currency'] ?? $cur); ?> <?php echo e($fmt($c['median'])); ?></span> <span class="col-span-4 text-gray-500"><?php echo e($fmt($c['low'] ?? 0)); ?>–<?php echo e($fmt($c['high'] ?? 0)); ?></span> <span class="col-span-2 text-right <?php echo e($powerClass($pw)); ?> font-semibold"><?php echo e($pw); ?></span> </div> <?php endforeach; $__env->popLoop(); $loop = $__env->getLastLoop(); if ($__empty_1): ?> <p class="text-sm text-gray-400 italic">No city-level data available.</p> <?php endif; ?> <button onclick="rmpOpenModal('cities')" class="rmp-link mt-4 inline-block">View all cities →</button> </div> <div class="rmp-card p-6 shadow-sm"> <h2 class="rmp-eyebrow mb-5">Pay by Experience</h2> <?php $exp = collect($ov['pay_by_experience'] ?? []); ?> <?php if($exp->isNotEmpty()): ?> <?php $ew=320; $eh=170; $padL=34; $padB=22; $padT=14; $emax=$exp->max('value') ?: 1; $n=$exp->count(); $yrs = $ov['experience_years'] ?? 0; // Only highlight the user's band if they actually supplied experience. $bandIdx = $yrs > 0 ? ($yrs<=2?0:($yrs<=5?1:($yrs<=10?2:($yrs<=15?3:4)))) : null; // Adaptive axis top: round up to a clean step sized to the data. $step = $emax >= 1000000 ? 250000 : ($emax >= 100000 ? 50000 : ($emax >= 10000 ? 5000 : ($emax >= 1000 ? 500 : 50))); $axisTop = (int) (ceil($emax/$step)*$step); if($axisTop<=0) $axisTop=$emax; $plotW = $ew-$padL-8; $plotH = $eh-$padB-$padT; $coords = $exp->values()->map(function($e,$i) use($padL,$padT,$plotW,$plotH,$axisTop,$n){ $x = $n>1 ? $padL + ($i/($n-1))*$plotW : $padL+$plotW/2; $y = $padT + $plotH - (($e['value']/$axisTop)*$plotH); return ['x'=>round($x,1),'y'=>round($y,1),'v'=>$e['value'],'b'=>$e['band']]; }); $poly = $coords->map(fn($p)=>$p['x'].','.$p['y'])->implode(' '); $aPoly = $padL.','.($padT+$plotH).' '.$poly.' '.($padL+$plotW).','.($padT+$plotH); ?> <p class="text-[11px] text-gray-400 mb-1">Median Pay (<?php echo e($cur); ?>)</p> <svg viewBox="0 0 <?php echo e($ew); ?> <?php echo e($eh); ?>" class="w-full"> <defs> <linearGradient id="expGrad" x1="0" y1="0" x2="0" y2="1"> <stop offset="0%" stop-color="#2F3D7E" stop-opacity="0.18"/> <stop offset="100%" stop-color="#2F3D7E" stop-opacity="0"/> </linearGradient> </defs> <?php for($g=0;$g<=4;$g++): ?> <?php $gy = $padT + $plotH - ($g/4)*$plotH; $gv = ($axisTop*$g/4); ?> <line x1="<?php echo e($padL); ?>" y1="<?php echo e($gy); ?>" x2="<?php echo e($ew-8); ?>" y2="<?php echo e($gy); ?>" stroke="#F1F2F5" stroke-width="1"/> <text x="<?php echo e($padL-4); ?>" y="<?php echo e($gy+3); ?>" text-anchor="end" font-size="8" fill="#9CA3AF"><?php echo e($kfmt($gv)); ?></text> <?php endfor; ?> <polygon points="<?php echo e($aPoly); ?>" fill="url(#expGrad)"/> <polyline points="<?php echo e($poly); ?>" fill="none" stroke="#2F3D7E" stroke-width="2.5"/> <?php $__currentLoopData = $coords; $__env->addLoop($__currentLoopData); foreach($__currentLoopData as $i => $p): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?> <circle cx="<?php echo e($p['x']); ?>" cy="<?php echo e($p['y']); ?>" r="<?php echo e($i===$bandIdx ? 5 : 3.5); ?>" fill="<?php echo e($i===$bandIdx ? '#16A34A' : '#2F3D7E'); ?>"/> <text x="<?php echo e($p['x']); ?>" y="<?php echo e($p['y']-8); ?>" text-anchor="middle" font-size="9" fill="#374151"><?php echo e($kfmt($p['v'])); ?></text> <text x="<?php echo e($p['x']); ?>" y="<?php echo e($eh-5); ?>" text-anchor="middle" font-size="9" fill="#9CA3AF"><?php echo e($p['b']); ?></text> <?php endforeach; $__env->popLoop(); $loop = $__env->getLastLoop(); ?> </svg> <p class="text-[11px] text-gray-400 text-center mt-1">Years of Experience</p> <?php else: ?> <p class="text-sm text-gray-400 italic">No experience curve available.</p> <?php endif; ?> <button onclick="rmpOpenModal('experience')" class="rmp-link mt-3 inline-block">View full experience breakdown →</button> </div> <div class="rmp-card p-6 shadow-sm"> <h2 class="rmp-eyebrow mb-5">Key Compensation Drivers</h2> <div class="flex justify-between text-[11px] text-gray-400 mb-3"><span>Factor</span><span>Est. Impact</span></div> <?php $__empty_1 = true; $__currentLoopData = $ov['comp_drivers']; $__env->addLoop($__currentLoopData); foreach($__currentLoopData as $d): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); $__empty_1 = false; ?> <?php $impact = $d['impact'] ?? 0; $pos = $impact >= 0; ?> <div class="flex justify-between items-center py-2 border-b rmp-line last:border-0 text-sm"> <span class="text-gray-700"><?php echo e($d['factor'] ?? $d['label'] ?? ''); ?></span> <span class="font-semibold flex items-center gap-1 <?php echo e($pos ? 'tag-high' : 'tag-low'); ?>"> <?php echo e($pos ? '+' : ''); ?><?php echo e($impact); ?>% <svg class="w-3 h-3" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="<?php echo e($pos ? 'M5 10l7-7m0 0l7 7m-7-7v18' : 'M19 14l-7 7m0 0l-7-7m7 7V3'); ?>"/></svg> </span> </div> <?php endforeach; $__env->popLoop(); $loop = $__env->getLastLoop(); if ($__empty_1): ?> <p class="text-sm text-gray-400 italic">No driver data available.</p> <?php endif; ?> <button onclick="rmpOpenModal('drivers')" class="rmp-link mt-4 inline-block">See all factors that impact pay →</button> </div> </div> <div class="grid grid-cols-1 lg:grid-cols-3 gap-6"> <div class="rmp-card p-6 shadow-sm"> <h2 class="rmp-eyebrow mb-5">Top Paying Employers</h2> <div class="grid grid-cols-12 text-[11px] text-gray-400 mb-3"> <span class="col-span-4">Company</span><span class="col-span-3">Median Pay</span><span class="col-span-3">Confidence</span><span class="col-span-2 text-right">Benefits</span> </div> <?php $__empty_1 = true; $__currentLoopData = $ov['top_employers']; $__env->addLoop($__currentLoopData); foreach($__currentLoopData as $e): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); $__empty_1 = false; ?> <?php $conf = $e['confidence'] ?? 'Moderate'; $benefits = $e['benefits'] ?? []; ?> <div class="grid grid-cols-12 items-center py-2.5 border-b rmp-line last:border-0 text-xs gap-1"> <span class="col-span-4 font-semibold" style="color:var(--rmp-ink)"><?php echo e($e['company']); ?></span> <span class="col-span-3" style="color:var(--rmp-ink)"><?php echo e($e['currency'] ?? $cur); ?> <?php echo e($fmt($e['median'])); ?></span> <span class="col-span-3 pr-2"> <span class="block font-semibold mb-0.5 <?php echo e($conf==='High' ? 'tag-high' : ($conf==='Low' ? 'tag-low' : 'tag-moderate')); ?>"><?php echo e($conf); ?></span> <span class="conf-bar"><span style="width:<?php echo e($confPct($conf)); ?>%; background:<?php echo e($confColor($conf)); ?>"></span></span> </span> <span class="col-span-2 flex justify-end gap-1"> <?php $__empty_2 = true; $__currentLoopData = array_slice($benefits, 0, 3); $__env->addLoop($__currentLoopData); foreach($__currentLoopData as $b): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); $__empty_2 = false; ?> <span class="benefit-ic" title="<?php echo e($b); ?>"> <svg class="w-3 h-3" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"/></svg> </span> <?php endforeach; $__env->popLoop(); $loop = $__env->getLastLoop(); if ($__empty_2): ?> <span class="text-gray-300">—</span> <?php endif; ?> </span> </div> <?php endforeach; $__env->popLoop(); $loop = $__env->getLastLoop(); if ($__empty_1): ?> <p class="text-sm text-gray-400 italic">No employer data available.</p> <?php endif; ?> <button onclick="rmpOpenModal('employers')" class="rmp-link mt-4 inline-block">See all employers →</button> </div> <div class="rmp-card p-6 shadow-sm"> <h2 class="rmp-eyebrow mb-5">Career Path and Growth</h2> <?php $path = collect($ov['career_path'] ?? []); ?> <?php if($path->isNotEmpty()): ?> <div class="flex items-start justify-between gap-1"> <?php $__currentLoopData = $path; $__env->addLoop($__currentLoopData); foreach($__currentLoopData as $step): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?> <div class="text-center flex-1 min-w-0"> <div class="w-10 h-10 mx-auto rounded-full bg-blue-50 flex items-center justify-center mb-2"> <svg class="w-4 h-4" style="color:var(--rmp-navy)" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z"/></svg> </div> <p class="text-[11px] font-semibold leading-tight" style="color:var(--rmp-ink)" title="<?php echo e($step['title'] ?? ''); ?>"><?php echo e($step['title'] ?? ''); ?></p> <p class="text-[10px] text-gray-400 mt-0.5"><?php echo e($cur); ?> <?php echo e(isset($step['pay']) ? $kfmt($step['pay']) : ''); ?></p> </div> <?php if(!$loop->last): ?><span class="text-gray-300 mt-3 text-sm">→</span><?php endif; ?> <?php endforeach; $__env->popLoop(); $loop = $__env->getLastLoop(); ?> </div> <?php else: ?> <p class="text-sm text-gray-400 italic">No career path data available.</p> <?php endif; ?> <button onclick="rmpOpenModal('career')" class="rmp-link mt-5 inline-block">Explore career path details →</button> </div> <div class="rmp-card p-6 shadow-sm"> <h2 class="rmp-eyebrow mb-5">Market Trends</h2> <?php $mt = $ov['market_trends']; ?> <div class="space-y-4 text-sm"> <div class="flex justify-between items-start"> <span class="text-gray-600">Compensation Trend</span> <span class="text-right"> <?php $ct = $mt['compensation_trend'] ?? null; ?> <?php if(!is_null($ct)): ?> <?php $ctUp = $ct >= 0; ?> <span class="<?php echo e($ctUp ? 'tag-high' : 'tag-low'); ?> font-bold block"><?php echo e($ctUp ? '↑' : '↓'); ?> <?php echo e($ct); ?>%</span> <span class="text-[10px] text-gray-400">Year over Year</span> <?php else: ?> <span class="text-gray-400">—</span> <?php endif; ?> </span> </div> <div class="flex justify-between items-start"> <span class="text-gray-600">Demand for <?php echo e(\Illuminate\Support\Str::plural($ov['job_title'])); ?></span> <span class="text-right"> <?php $mtDemand = $mt['demand'] ?? $snap['market_demand']; $mtDemandColor = $mtDemand === 'High' ? 'tag-high' : ($mtDemand === 'Low' ? 'tag-low' : 'tag-moderate'); ?> <span class="<?php echo e($mtDemandColor); ?> font-bold block"><?php echo e($mtDemand); ?></span> <?php if(!empty($snap['demand_trend'])): ?><span class="text-[10px] text-gray-400"><?php echo e($snap['demand_trend']); ?></span><?php endif; ?> </span> </div> <?php if(!empty($mt['growth_areas'])): ?> <div class="flex justify-between items-start gap-3"> <span class="text-gray-600 flex-shrink-0">Top Growth Areas</span> <span class="font-semibold text-right" style="color:var(--rmp-ink)"><?php echo e(is_array($mt['growth_areas']) ? implode(', ', $mt['growth_areas']) : $mt['growth_areas']); ?></span> </div> <?php endif; ?> <?php if(!empty($mt['shortage_areas'])): ?> <div class="flex justify-between items-start gap-3"> <span class="text-gray-600 flex-shrink-0">Shortage Areas</span> <span class="font-semibold text-right" style="color:var(--rmp-ink)"><?php echo e(is_array($mt['shortage_areas']) ? implode(', ', $mt['shortage_areas']) : $mt['shortage_areas']); ?></span> </div> <?php endif; ?> </div> <button onclick="rmpOpenModal('report')" class="rmp-link mt-5 inline-block">View full market report →</button> </div> </div> <?php if(!empty($ov['community'])): ?> <?php $cm = $ov['community']; $cmin=$cm['min']; $cmax=$cm['max']; $cavg=$cm['average']; $ccur = $cm['currency'] ?? $cur; $crange = $cmax>0 ? $cmax : 1; $cleft = ($cmin/$crange)*100; $cwidth = (($cmax-$cmin)/$crange)*100; $cavgPos = ($cmax-$cmin)>0 ? (($cavg-$cmin)/($cmax-$cmin))*100 : 50; ?> <div class="rmp-card p-6 shadow-sm"> <div class="flex justify-between items-center mb-4"> <h2 class="text-xs font-semibold text-green-600 uppercase tracking-wider">Community Reported Salaries</h2> <span class="text-xs text-gray-400"><?php echo e($cm['companies']); ?> companies • <?php echo e($cm['count']); ?> reports</span> </div> <div class="flex justify-between text-xs mb-2"> <span><?php echo e($ccur); ?> <?php echo e($fmt($cmin)); ?></span> <span class="font-bold text-green-700"><?php echo e($ccur); ?> <?php echo e($fmt($cavg)); ?> (Avg)</span> <span><?php echo e($ccur); ?> <?php echo e($fmt($cmax)); ?></span> </div> <div class="h-2.5 bg-gray-100 rounded-full relative"> <div class="absolute h-full bg-green-200 rounded-full" style="left: <?php echo e($cleft); ?>%; width: <?php echo e($cwidth); ?>%;"></div> <div class="absolute h-4 w-1 bg-green-700 -top-0.5 rounded-full" style="left: calc(<?php echo e($cleft); ?>% + <?php echo e($cwidth * ($cavgPos/100)); ?>%);"></div> </div> </div> <?php endif; ?> <div class="rmp-card p-6 shadow-sm grid grid-cols-1 lg:grid-cols-3 gap-8"> <div class="text-center lg:text-left flex flex-col items-center lg:items-start"> <h2 class="text-sm font-bold mb-3" style="color:var(--rmp-ink)">How You Compare</h2> <div class="flex items-start gap-3 mb-4"> <div class="w-14 h-14 rounded-full bg-gradient-to-br from-blue-100 to-blue-200 flex items-center justify-center flex-shrink-0"> <svg class="w-8 h-8 text-blue-500" fill="currentColor" viewBox="0 0 20 20"><path d="M10 10a4 4 0 100-8 4 4 0 000 8zm-7 8a7 7 0 1114 0H3z"/></svg> </div> <p class="text-xs text-gray-500 text-left">Add your details to see how you compare to the market.</p> </div> <?php if(auth()->guard()->check()): ?> <a href="<?php echo e(route('dashboard.job-experiences.create')); ?>" class="inline-block text-white px-5 py-2.5 rounded-lg text-sm font-bold" style="background:var(--rmp-navy)">Compare My Salary</a> <?php else: ?> <button onclick="openRegisterModal()" class="text-white px-5 py-2.5 rounded-lg text-sm font-bold" style="background:var(--rmp-navy)">Compare My Salary</button> <?php endif; ?> <p class="text-[11px] text-gray-400 mt-2">100% Anonymous</p> </div> <div> <p class="text-sm font-semibold mb-1" style="color:var(--rmp-ink)">Example Comparison</p> <p class="text-xs text-gray-500 mb-8"> <?php if(($ov['experience_years'] ?? 0) > 0): ?> Based on: <?php echo e($ov['experience_years']); ?> yrs experience in <?php echo e($ov['location']); ?> <?php else: ?> Market median for <?php echo e($ov['job_title']); ?> in <?php echo e($ov['location']); ?> <?php endif; ?> </p> <?php $userPct = null; $userDeltaPct = null; if (!is_null($ov['base_salary']) && $snap['median'] > 0) { $delta = ($ov['base_salary'] - $snap['median']) / $snap['median']; $userDeltaPct = round($delta * 100); $userPct = max(-0.2, min(0.2, $delta)); } ?> <div class="relative h-2 bg-gradient-to-r from-red-200 via-yellow-100 to-green-200 rounded-full"> <div class="absolute -top-1 w-1 h-4 bg-gray-800 rounded-full" style="left:50%"></div> <?php if(!is_null($userPct)): ?> <div class="absolute -top-3 flex flex-col items-center" style="left: calc(50% + <?php echo e($userPct*250); ?>%); transform:translateX(-50%)"> <span class="text-[10px] bg-green-100 text-green-700 rounded px-1.5 py-0.5 whitespace-nowrap font-semibold mb-1">You: <?php echo e($cur); ?> <?php echo e($fmt($ov['base_salary'])); ?><br><?php echo e($userDeltaPct > 0 ? '+' : ''); ?><?php echo e($userDeltaPct); ?>% <?php echo e($userDeltaPct < 0 ? 'below' : 'above'); ?> market</span> <span class="w-1.5 h-4 bg-blue-600 rounded-full"></span> </div> <?php endif; ?> </div> <div class="flex justify-between text-[11px] text-gray-400 mt-2"> <span>-20%</span><span>-10%</span> <span class="font-semibold text-center" style="color:var(--rmp-ink)">Market Median<br><?php echo e($cur); ?> <?php echo e($fmt($snap['median'])); ?></span> <span>+10%</span><span>+20%</span> </div> </div> <div> <p class="text-sm font-semibold mb-3" style="color:var(--rmp-ink)">Tips to increase your earning potential</p> <?php if(!empty($ov['tips'])): ?> <ul class="space-y-2"> <?php $__currentLoopData = array_slice($ov['tips'], 0, 4); $__env->addLoop($__currentLoopData); foreach($__currentLoopData as $tip): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?> <li class="flex items-start gap-2 text-xs text-gray-600"> <svg class="w-4 h-4 text-green-500 mt-0.5 flex-shrink-0" fill="currentColor" viewBox="0 0 20 20"><path fill-rule="evenodd" d="M16.7 5.3a1 1 0 010 1.4l-8 8a1 1 0 01-1.4 0l-4-4a1 1 0 011.4-1.4L8 12.6l7.3-7.3a1 1 0 011.4 0z" clip-rule="evenodd"/></svg> <?php echo e(is_array($tip) ? ($tip['text'] ?? '') : $tip); ?> </li> <?php endforeach; $__env->popLoop(); $loop = $__env->getLastLoop(); ?> </ul> <button onclick="rmpOpenModal('negotiation')" class="rmp-link mt-4 inline-block">View negotiation tips →</button> <?php else: ?> <p class="text-xs text-gray-400 italic">No tips available.</p> <?php endif; ?> </div> </div> <?php if(!empty($ov['similar_jobs'])): ?> <div class="rmp-card p-6 shadow-sm relative"> <div class="flex items-center gap-3 mb-5"> <h2 class="text-sm font-bold" style="color:var(--rmp-ink)">Similar Jobs</h2> <p class="text-xs text-gray-500">Explore related roles and compare compensation</p> </div> <div class="relative"> <div id="rmp-sj-track" class="sj-track pb-1"> <?php $__currentLoopData = $ov['similar_jobs']; $__env->addLoop($__currentLoopData); foreach($__currentLoopData as $i => $sj): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?> <div class="sj-card border border-gray-100 rounded-xl p-4 hover:shadow-md transition-shadow"> <p class="text-sm font-semibold leading-tight" style="color:var(--rmp-ink)"><?php echo e($sj['title'] ?? ''); ?></p> <p class="text-base font-bold mt-2" style="color:var(--rmp-navy)"><?php echo e($cur); ?> <?php echo e(isset($sj['median']) ? $fmt($sj['median']) : ''); ?></p> <p class="text-[11px] text-gray-400">Median Pay</p> <button onclick="rmpOpenModal('similar-<?php echo e($i); ?>')" class="rmp-link mt-2 inline-block">View insights →</button> </div> <?php endforeach; $__env->popLoop(); $loop = $__env->getLastLoop(); ?> </div> <button onclick="rmpScrollSimilar()" class="absolute -right-2 top-1/2 -translate-y-1/2 w-9 h-9 rounded-full bg-white border border-gray-200 shadow flex items-center justify-center hover:bg-gray-50"> <svg class="w-4 h-4 text-gray-600" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5l7 7-7 7"/></svg> </button> </div> </div> <?php endif; ?> <?php else: ?> <div class="rmp-card p-12 text-center shadow-sm"> <h1 class="text-2xl font-bold mb-2" style="color:var(--rmp-ink)">Global Salary Intelligence</h1> <p class="text-gray-600">Use the filters to search a job title and location to see verified compensation data.</p> </div> <?php endif; ?> </main> </div> </div> </div> <?php if($overview): ?> <?php $mfmt = fn($n) => number_format((float) $n); ?> <div id="rmp-modal-overlay" class="fixed inset-0 z-[100] hidden items-center justify-center p-4" style="background:rgba(17,24,39,.55)" onclick="rmpModalBackdrop(event)"> <div class="bg-white rounded-2xl w-full max-w-2xl max-h-[85vh] overflow-hidden shadow-2xl flex flex-col"> <div class="flex items-center justify-between px-6 py-4 border-b rmp-line"> <h3 id="rmp-modal-title" class="font-bold text-lg" style="color:var(--rmp-ink)"></h3> <button onclick="rmpCloseModal()" class="text-gray-400 hover:text-gray-700"> <svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12"/></svg> </button> </div> <div id="rmp-modal-body" class="px-6 py-5 overflow-y-auto text-sm text-gray-700"></div> </div> </div> <div class="hidden"> <div data-modal="methodology" data-title="How this data is calculated"> <p class="leading-relaxed"><?php echo e($ov['methodology'] ?? 'Our estimates combine verified employee submissions, employer reported data, job postings and public market information. Figures are blended and weighted by recency and sample size, then localised to the selected role, currency and location.'); ?></p> <ul class="mt-4 space-y-2"> <?php $__currentLoopData = ['Verified Submissions','Employer Reports','Job Postings','Continuous Updates','Privacy Focused']; $__env->addLoop($__currentLoopData); foreach($__currentLoopData as $trust): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?> <li class="flex items-center gap-2"><svg class="w-4 h-4 text-green-500" fill="currentColor" viewBox="0 0 20 20"><path fill-rule="evenodd" d="M16.7 5.3a1 1 0 010 1.4l-8 8a1 1 0 01-1.4 0l-4-4a1 1 0 011.4-1.4L8 12.6l7.3-7.3a1 1 0 011.4 0z" clip-rule="evenodd"/></svg><?php echo e($trust); ?></li> <?php endforeach; $__env->popLoop(); $loop = $__env->getLastLoop(); ?> </ul> </div> <div data-modal="comp" data-title="Compensation Components"> <?php $comp = collect($ov['comp_breakdown'] ?? []); $tot = $comp->sum('value') ?: 1; ?> <?php $__empty_1 = true; $__currentLoopData = $comp; $__env->addLoop($__currentLoopData); foreach($__currentLoopData as $i => $seg): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); $__empty_1 = false; ?> <div class="flex justify-between items-center py-2.5 border-b rmp-line last:border-0"> <span class="font-medium" style="color:var(--rmp-ink)"><?php echo e($seg['label']); ?></span> <span class="text-right"><span class="font-bold"><?php echo e($cur); ?> <?php echo e($mfmt($seg['value'])); ?></span> <span class="text-gray-400 ml-2"><?php echo e($seg['pct'] ?? round($seg['value']/$tot*100)); ?>%</span></span> </div> <?php endforeach; $__env->popLoop(); $loop = $__env->getLastLoop(); if ($__empty_1): ?> <p class="italic text-gray-400">No data.</p> <?php endif; ?> <div class="flex justify-between items-center pt-3 mt-1 font-bold" style="color:var(--rmp-ink)"><span>Total Cash</span><span><?php echo e($cur); ?> <?php echo e($mfmt($tot)); ?></span></div> </div> <div data-modal="testimonials" data-title="What People Say"> <?php $__empty_1 = true; $__currentLoopData = $ov['testimonials']; $__env->addLoop($__currentLoopData); foreach($__currentLoopData as $t): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); $__empty_1 = false; ?> <div class="bg-gray-50 rounded-xl p-4 mb-3"> <p class="leading-snug"><?php echo e($t['quote'] ?? $t['text'] ?? ''); ?></p> <p class="text-xs text-gray-400 mt-2"><?php echo e($t['role'] ?? ''); ?><?php echo e(!empty($t['location']) ? ' • '.$t['location'] : ''); ?> • <span class="text-green-600">Verified Member</span></p> </div> <?php endforeach; $__env->popLoop(); $loop = $__env->getLastLoop(); if ($__empty_1): ?> <p class="italic text-gray-400">No insights yet.</p> <?php endif; ?> </div> <div data-modal="cities" data-title="Pay by City"> <div class="grid grid-cols-12 text-[11px] text-gray-400 mb-2 font-semibold uppercase"> <span class="col-span-4">City</span><span class="col-span-3">Median</span><span class="col-span-3">Range</span><span class="col-span-2 text-right">Power</span> </div> <?php $__empty_1 = true; $__currentLoopData = $ov['pay_by_city']; $__env->addLoop($__currentLoopData); foreach($__currentLoopData as $c): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); $__empty_1 = false; ?> <?php $pw = $c['purchasing_power'] ?? 'Moderate'; $pc = $pw==='High'?'tag-high':($pw==='Low'?'tag-low':'tag-moderate'); ?> <div class="grid grid-cols-12 py-2 border-b rmp-line last:border-0 items-center"> <span class="col-span-4 font-semibold" style="color:var(--rmp-ink)"><?php echo e($c['city']); ?></span> <span class="col-span-3 font-bold" style="color:var(--rmp-ink)"><?php echo e($c['currency'] ?? $cur); ?> <?php echo e($mfmt($c['median'])); ?></span> <span class="col-span-3 text-gray-500 text-xs"><?php echo e($mfmt($c['low'] ?? 0)); ?>–<?php echo e($mfmt($c['high'] ?? 0)); ?></span> <span class="col-span-2 text-right font-semibold <?php echo e($pc); ?>"><?php echo e($pw); ?></span> </div> <?php endforeach; $__env->popLoop(); $loop = $__env->getLastLoop(); if ($__empty_1): ?> <p class="italic text-gray-400">No data.</p> <?php endif; ?> </div> <div data-modal="experience" data-title="Pay by Experience"> <?php $__empty_1 = true; $__currentLoopData = $ov['pay_by_experience'] ?? []; $__env->addLoop($__currentLoopData); foreach($__currentLoopData as $e): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); $__empty_1 = false; ?> <div class="flex justify-between items-center py-2.5 border-b rmp-line last:border-0"> <span class="font-medium" style="color:var(--rmp-ink)"><?php echo e($e['band']); ?> years</span> <span class="font-bold"><?php echo e($cur); ?> <?php echo e($mfmt($e['value'])); ?></span> </div> <?php endforeach; $__env->popLoop(); $loop = $__env->getLastLoop(); if ($__empty_1): ?> <p class="italic text-gray-400">No data.</p> <?php endif; ?> </div> <div data-modal="drivers" data-title="Factors That Impact Pay"> <?php $__empty_1 = true; $__currentLoopData = $ov['comp_drivers']; $__env->addLoop($__currentLoopData); foreach($__currentLoopData as $d): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); $__empty_1 = false; ?> <?php $im = $d['impact'] ?? 0; $pos = $im >= 0; ?> <div class="flex justify-between items-center py-2.5 border-b rmp-line last:border-0"> <span class="font-medium" style="color:var(--rmp-ink)"><?php echo e($d['factor'] ?? $d['label'] ?? ''); ?></span> <span class="font-bold <?php echo e($pos ? 'tag-high' : 'tag-low'); ?>"><?php echo e($pos ? '+' : ''); ?><?php echo e($im); ?>%</span> </div> <?php endforeach; $__env->popLoop(); $loop = $__env->getLastLoop(); if ($__empty_1): ?> <p class="italic text-gray-400">No data.</p> <?php endif; ?> </div> <div data-modal="employers" data-title="Top Paying Employers"> <?php $__empty_1 = true; $__currentLoopData = $ov['top_employers']; $__env->addLoop($__currentLoopData); foreach($__currentLoopData as $e): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); $__empty_1 = false; ?> <?php $conf = $e['confidence'] ?? 'Moderate'; $cc = $conf==='High'?'tag-high':($conf==='Low'?'tag-low':'tag-moderate'); ?> <div class="flex justify-between items-center py-2.5 border-b rmp-line last:border-0"> <span class="font-medium" style="color:var(--rmp-ink)"><?php echo e($e['company']); ?></span> <span class="text-right"><span class="font-bold"><?php echo e($e['currency'] ?? $cur); ?> <?php echo e($mfmt($e['median'])); ?></span> <span class="ml-2 text-xs font-semibold <?php echo e($cc); ?>"><?php echo e($conf); ?></span></span> </div> <?php endforeach; $__env->popLoop(); $loop = $__env->getLastLoop(); if ($__empty_1): ?> <p class="italic text-gray-400">No data.</p> <?php endif; ?> </div> <div data-modal="career" data-title="Career Path and Growth"> <?php $__empty_1 = true; $__currentLoopData = $ov['career_path'] ?? []; $__env->addLoop($__currentLoopData); foreach($__currentLoopData as $step): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); $__empty_1 = false; ?> <div class="flex justify-between items-center py-2.5 border-b rmp-line last:border-0"> <span class="font-medium" style="color:var(--rmp-ink)"><?php echo e($step['title'] ?? ''); ?></span> <span class="font-bold"><?php echo e($cur); ?> <?php echo e(isset($step['pay']) ? $mfmt($step['pay']) : '—'); ?></span> </div> <?php endforeach; $__env->popLoop(); $loop = $__env->getLastLoop(); if ($__empty_1): ?> <p class="italic text-gray-400">No data.</p> <?php endif; ?> </div> <div data-modal="report" data-title="Market Report"> <?php $mt = $ov['market_trends']; ?> <?php if(!empty($ov['market_report'])): ?><p class="leading-relaxed mb-4"><?php echo e($ov['market_report']); ?></p><?php endif; ?> <div class="space-y-2"> <?php if(!is_null($mt['compensation_trend'] ?? null)): ?><div class="flex justify-between"><span class="text-gray-500">Compensation Trend (YoY)</span><span class="font-bold tag-high">↑ <?php echo e($mt['compensation_trend']); ?>%</span></div><?php endif; ?> <div class="flex justify-between"><span class="text-gray-500">Demand</span><span class="font-bold tag-high"><?php echo e($mt['demand'] ?? 'High'); ?></span></div> <?php if(!empty($mt['growth_areas'])): ?><div class="flex justify-between gap-3"><span class="text-gray-500">Top Growth Areas</span><span class="font-semibold text-right" style="color:var(--rmp-ink)"><?php echo e(is_array($mt['growth_areas']) ? implode(', ', $mt['growth_areas']) : $mt['growth_areas']); ?></span></div><?php endif; ?> <?php if(!empty($mt['shortage_areas'])): ?><div class="flex justify-between gap-3"><span class="text-gray-500">Shortage Areas</span><span class="font-semibold text-right" style="color:var(--rmp-ink)"><?php echo e(is_array($mt['shortage_areas']) ? implode(', ', $mt['shortage_areas']) : $mt['shortage_areas']); ?></span></div><?php endif; ?> </div> </div> <div data-modal="negotiation" data-title="Negotiation Tips"> <?php $nt = !empty($ov['negotiation_tips']) ? $ov['negotiation_tips'] : $ov['tips']; ?> <?php $__empty_1 = true; $__currentLoopData = $nt; $__env->addLoop($__currentLoopData); foreach($__currentLoopData as $tip): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); $__empty_1 = false; ?> <div class="flex items-start gap-2 py-2"> <svg class="w-4 h-4 text-green-500 mt-0.5 flex-shrink-0" fill="currentColor" viewBox="0 0 20 20"><path fill-rule="evenodd" d="M16.7 5.3a1 1 0 010 1.4l-8 8a1 1 0 01-1.4 0l-4-4a1 1 0 011.4-1.4L8 12.6l7.3-7.3a1 1 0 011.4 0z" clip-rule="evenodd"/></svg> <span><?php echo e(is_array($tip) ? ($tip['text'] ?? '') : $tip); ?></span> </div> <?php endforeach; $__env->popLoop(); $loop = $__env->getLastLoop(); if ($__empty_1): ?> <p class="italic text-gray-400">No tips available.</p> <?php endif; ?> </div> <?php $__currentLoopData = $ov['similar_jobs']; $__env->addLoop($__currentLoopData); foreach($__currentLoopData as $i => $sj): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?> <div data-modal="similar-<?php echo e($i); ?>" data-title="<?php echo e($sj['title'] ?? 'Role'); ?>"> <p class="mb-3">Estimated median pay for <span class="font-semibold" style="color:var(--rmp-ink)"><?php echo e($sj['title'] ?? ''); ?></span>:</p> <p class="text-2xl font-bold" style="color:var(--rmp-navy)"><?php echo e($cur); ?> <?php echo e(isset($sj['median']) ? $mfmt($sj['median']) : '—'); ?></p> <p class="text-xs text-gray-400 mt-1">Median Pay</p> <p class="text-xs text-gray-500 mt-4">Search this role directly to see its full compensation breakdown, pay by city and experience curve.</p> </div> <?php endforeach; $__env->popLoop(); $loop = $__env->getLastLoop(); ?> </div> <?php endif; ?> <?php $__env->stopSection(); ?> <?php $__env->startPush('scripts'); ?> <script> // Distribution percentile data for the salary comparison feature window.RMP = window.RMP || {}; <?php if($overview): ?> window.RMP.dist = <?php echo json_encode(array_column($overview['distribution'], 'value'), 512) ?>; window.RMP.median = <?php echo e((int) $overview['snapshot']['median']); ?>; window.RMP.currency = <?php echo json_encode($overview['currency'], 15, 512) ?>; <?php endif; ?> function rmpCompareSalary(){ const input = document.getElementById('rmp-salary-input'); const out = document.getElementById('rmp-position-result'); const svg = document.getElementById('rmp-dist-svg'); const marker = document.getElementById('rmp-dist-marker'); const val = parseFloat(input.value); if(!val || !window.RMP.dist || !window.RMP.dist.length){ return; } const d = window.RMP.dist; // [p10,p25,p50,p75,p90] const min = d[0], max = d[d.length-1]; // position marker across the svg width if(svg && marker){ const w = +svg.dataset.w, h = +svg.dataset.h; const t = Math.max(0, Math.min(1, (val - min) / (max - min || 1))); const x = t * w; marker.setAttribute('x1', x); marker.setAttribute('x2', x); marker.style.display = 'block'; } // estimate percentile bucket let pct; if(val <= d[0]) pct = '10th percentile or below'; else if(val <= d[1]) pct = 'between the 10th and 25th percentile'; else if(val <= d[2]) pct = 'between the 25th and 50th percentile'; else if(val <= d[3]) pct = 'between the 50th and 75th percentile'; else if(val <= d[4]) pct = 'between the 75th and 90th percentile'; else pct = 'above the 90th percentile'; const diff = window.RMP.median ? Math.round((val - window.RMP.median)/window.RMP.median*100) : 0; out.classList.remove('hidden'); out.innerHTML = 'You are <strong>' + pct + '</strong> (' + (diff>=0?'+':'') + diff + '% vs median).'; out.className = 'text-xs mt-2 ' + (diff>=0 ? 'text-green-600' : 'text-red-600'); } function rmpScrollSimilar(){ const track = document.getElementById('rmp-sj-track'); if(track){ track.scrollBy({ left: 220, behavior:'smooth' }); } } function rmpOpenModal(id){ const tpl = document.querySelector('[data-modal="'+id+'"]'); if(!tpl) return; document.getElementById('rmp-modal-title').textContent = tpl.getAttribute('data-title') || ''; document.getElementById('rmp-modal-body').innerHTML = tpl.innerHTML; const overlay = document.getElementById('rmp-modal-overlay'); overlay.classList.remove('hidden'); overlay.classList.add('flex'); document.body.style.overflow = 'hidden'; } function rmpCloseModal(){ const overlay = document.getElementById('rmp-modal-overlay'); overlay.classList.add('hidden'); overlay.classList.remove('flex'); document.body.style.overflow = ''; } function rmpModalBackdrop(e){ if(e.target.id === 'rmp-modal-overlay') rmpCloseModal(); } document.addEventListener('keydown', e => { if(e.key === 'Escape') rmpCloseModal(); }); </script> <?php $__env->stopPush(); ?> <?php echo $__env->make('layouts.app', array_diff_key(get_defined_vars(), ['__data' => 1, '__path' => 1]))->render(); ?><?php /**PATH /var/www/ratemypay_dev/resources/views/salary/index.blade.php ENDPATH**/ ?>
| ver. 1.4 |
Github
|
.
| PHP 8.3.30 | Generation time: 0 |
proxy
|
phpinfo
|
Settings