const {Button, Icon, SectionHeading, StatBlock, ServiceCard, Card, Tag, Dialog} = window.SuperiorNitrogenServiceDesignSystem_483eb9; function Hero({t}) { const w=useViewport(); const isMobile=w<=760; const px=w<=480?20:w<=980?28:50; return (
{t.heroEyebrow}

{t.heroTitle}

{t.heroLede}

); } function StatBand({t}) { const ref=React.useRef(null); const w=useViewport(); const isMobile=w<=760; const px=w<=480?20:w<=980?28:50; const [started,setStarted]=React.useState(false); const [vals,setVals]=React.useState(()=>t.stats.map(()=>0)); React.useEffect(()=>{ setStarted(false); setVals(t.stats.map(()=>0)); },[t]); React.useEffect(()=>{ const el=ref.current; if(!el||started) return; const io=new IntersectionObserver((entries)=>{ entries.forEach(entry=>{ if(entry.isIntersecting){ setStarted(true); io.disconnect(); } }); },{threshold:.4}); io.observe(el); return ()=>io.disconnect(); },[started,t]); React.useEffect(()=>{ if(!started) return; const targets=t.stats.map(([v])=>parseInt(v,10)); const duration=1400; const start=performance.now(); let raf; const tick=(now)=>{ const p=Math.min(1,(now-start)/duration); const eased=1-Math.pow(1-p,3); setVals(targets.map(n=>Math.round(n*eased))); if(p<1) raf=requestAnimationFrame(tick); }; raf=requestAnimationFrame(tick); return ()=>cancelAnimationFrame(raf); },[started,t]); return (
{t.stats.map(([v,u,l],i)=>())}

{t.statsNote}

); } function Services({t}) { const w=useViewport(); const isMobile=w<=760; const isTablet=w<=1024; const px=w<=480?20:w<=980?28:50; const [openIdx,setOpenIdx]=React.useState(null); const svc=openIdx!=null?t.services[openIdx]:null; const imgs=window.SNS_SERVICE_IMAGES||[]; return (
{t.services.map(([icon,title,body],i)=>( setOpenIdx(i)} style={{cursor:'pointer'}}>{body} ))}
{svc && (
setOpenIdx(null)} footer={<>}>

{svc[3]}

)}
); } function About({t}) { const w=useViewport(); const isTablet=w<=1024; const px=w<=480?20:w<=980?28:50; return (

{t.aboutP1}

{t.aboutP2}

{t.aboutP3}

Superior Nitrogen Service truck and crew on site
); } function Coverage({t}) { const w=useViewport(); const px=w<=480?20:w<=980?28:50; return (
{t.tags.map(x=>({x}))}
); } function News({t}) { const w=useViewport(); const isTablet=w<=1024; const px=w<=480?20:w<=980?28:50; const imgs=window.SNS_NEWS_IMAGES||[]; return (
{t.newsItems.map((n,i)=>(
{n.date} ยท {n.source} {n.title}

{n.summary}

{t.newsReadMore}
))}
); } Object.assign(window, {Hero, StatBand, Services, About, Coverage, News});