// mfg2-page-2.jsx // Manufacturing Industry Page — Part 2 (Municipal-style flow) // MfgSolutions (green facility schematic + 5-row interactive list) // MfgCaseStudy (featured project with photo slider — NO IMPACT sequence) // ============================================================ // MfgFacilitySchematic — Mun-style schematic re-zoned for Mfg services. // 5 zones · 01 Solar PV (roof) · 02 Battery (pad) · 03 Audit (whole facility) // · 04 LED Lighting (ceiling band) · 05 EV Charging (loading & yard) // ============================================================ const MfgFacilitySchematic = ({ activeIndex }) => { const W = 540; const H = 360; const amber = 'rgba(233,199,134,1)'; const amberFill= 'rgba(233,199,134,0.18)'; const ink = 'rgba(255,255,255,0.55)'; const inkDim = 'rgba(255,255,255,0.32)'; const inkFaint = 'rgba(255,255,255,0.18)'; const inkText = 'rgba(255,255,255,0.62)'; const zones = [ // 01 Solar PV — rooftop { id: 0, label: '01', cx: 270, cy: 96, hl: }, // 02 Battery — BESS pad outside { id: 1, label: '02', cx: 502, cy: 244, hl: }, // 03 Audit — whole facility ring { id: 2, label: '03', cx: 270, cy: 200, hl: }, // 04 LED Lighting — ceiling band inside building { id: 3, label: '04', cx: 270, cy: 134, hl: }, // 05 EV Charging — loading dock / yard { id: 4, label: '05', cx: 80, cy: 308, hl: }, ]; return (
{/* Ground line + horizon */} {/* Building outline */} {/* Production-floor divider — permanent feature */} WAREHOUSE {/* Roof solar panels — Solar PV zone (01) */} {(() => { const panelLen = 26; const panelThick = 2; const legH = 5; const slope = 40 / 190; const angleDeg = Math.atan(slope) * 180 / Math.PI; const positions = []; for (let i = 0; i < 5; i++) { const cx = 110 + i * 30; const roofY = 118 - (cx - 80) * slope; positions.push({ cx, roofY, angle: -angleDeg, key: `L${i}` }); } for (let i = 0; i < 5; i++) { const cx = 310 + i * 30; const roofY = 78 + (cx - 270) * slope; positions.push({ cx, roofY, angle: angleDeg, key: `R${i}` }); } const panelStroke = activeIndex === 0 ? amber : ink; const panelFill = activeIndex === 0 ? amber : ink; const legStroke = activeIndex === 0 ? amber : inkDim; return positions.map(({ cx, roofY, angle, key }) => { const x0 = cx - panelLen / 2; const x1 = cx + panelLen / 2; const yPanelTop = roofY - legH - panelThick; const yLegTop = roofY - legH; const legInset = 4; return ( ); }); })()} {/* Ceiling LED fixtures — LED Lighting zone (04) */} {[120, 168, 216, 264, 312, 360, 408].map(x => ( {activeIndex === 3 && ( )} ))} {/* Production-floor machine indicators */} {[140, 200, 260, 320].map(x => ( ))} {/* Outdoor BESS pad — Battery zone (02) */} {[0,1,2,3,4].map(i => ( ))} {[0,1,2,3,4].map(i => ( ))} BESS {/* Loading dock + EV chargers — EV zone (05) */} {[28, 56, 96, 124].map(x => ( ))} LOADING · EV {/* Whole-facility audit ring — Audit (03) */} {zones[activeIndex].hl} {zones.map((z, i) => { const isActive = i === activeIndex; return ( {z.label} ); })}
); }; // ============================================================ // MfgSolutions — Soft Green. Header + schematic + 5-row interactive list. // ============================================================ const MfgSolutions = () => { const rows = [ { idx: '01', icon: 'sun', name: 'Commercial Solar', zone: 'Rooftop', tag: 'Offset daytime production load.', why: 'High annual consumption and large roof areas make manufacturing facilities strong candidates for rooftop solar generation — sized to the optimised load, not the unmanaged one.', href: '/solutions/commercial-solar/' }, { idx: '02', icon: 'battery-charging', name: 'Battery Storage', zone: 'Outdoor pad', tag: 'Cut peak demand charges.', why: 'Storage captures excess solar generation and shaves the demand spikes that set monthly billing — and unlocks IESO demand-response revenue on flexible loads.', href: '/solutions/battery-storage/' }, { idx: '03', icon: 'clipboard-list', name: 'Energy Audits', zone: 'Whole facility', tag: 'Establish the baseline first.', why: 'Audits identify demand reduction opportunities across HVAC, compressed air, lighting, and building controls — before any generation system is sized against the wrong load.', href: '/solutions/energy-audits/' }, { idx: '04', icon: 'lightbulb', name: 'LED Lighting', zone: 'Production ceiling', tag: 'Highest-return retrofit on the floor.', why: 'Manufacturing facilities often have large, poorly lit production areas with legacy HID fixtures. LED retrofits cut both consumption and demand and qualify for saveONenergy incentives.', href: '/solutions/led-lighting/' }, { idx: '05', icon: 'plug-zap', name: 'EV Charging', zone: 'Loading & yard', tag: 'Fleet electrification on a plan.', why: 'For facilities with vehicle fleets or planning electrification, on-site solar provides a cost-effective charging infrastructure tied to operational schedules.', href: '/solutions/ev-charging/' }, ]; const [active, setActive] = React.useState(0); return (
); }; // ============================================================ // MfgCaseStudy — Featured Project · Paper White · Photo slider // (NO IMPACT sequence — replaced by the slider per spec.) // ============================================================ const MFG_FEATURED_SLIDES = [ { label: 'Ce De Candy · Racking installation', // caption: '150 Harry Walker Pkwy N · Newmarket ON · 965 kW DC · 1,664 panels', src: `${window.GI_BASE}assets/projects/ce-de-candy/cedecandy_01.webp`, }, { label: 'Ce De Candy · Construction in progress', // caption: '1,664 × Thornova Solar TS-BG72(580) · TerraGen racking', src: `${window.GI_BASE}assets/projects/ce-de-candy/cedecandy_02.webp`, }, { label: 'Ce De Candy · Construction in progress', // caption: '11-project programme · efficiency + generation · $7.2M lifetime savings', src: `${window.GI_BASE}assets/projects/ce-de-candy/cedecandy_03.webp`, }, { label: 'Ce De Candy · Construction in progress', // caption: '11-project programme · efficiency + generation · $7.2M lifetime savings', src: `${window.GI_BASE}assets/projects/ce-de-candy/cedecandy_04.webp`, }, { label: 'Ce De Candy · Construction in progress', // caption: '11-project programme · efficiency + generation · $7.2M lifetime savings', src: `${window.GI_BASE}assets/projects/ce-de-candy/cedecandy_05.webp`, }, { label: 'Ce De Candy · Final system', // caption: 'Vicwest 590 kW reference · industrial rooftop · Stratford ON', src: `${window.GI_BASE}assets/projects/ce-de-candy/cedecandy_06.webp`, }, ]; const MfgCaseStudy = () => { const [idx, setIdx] = React.useState(0); const slides = MFG_FEATURED_SLIDES; const total = slides.length; const slide = slides[idx]; const go = (n) => setIdx(((n % total) + total) % total); const stats = [ { big: '$7.2M', label: 'Verified lifetime savings', sub: 'Across full 11-project programme' }, { big: '99.6%', label: 'Solar offset achieved', sub: 'Most recent phase, Aug 2025' }, { big: '1,142,549', label: 'kWh generated annually', sub: '965 kW system' }, { big: '4.2 yr', label: 'Blended payback', sub: 'Across all programme projects' }, ]; const spec = [ { l: 'Location', v: '150 Harry Walker Pkwy N, Newmarket, ON L3Y 7B3' }, { l: 'Client', v: 'Ce De Candy Inc.' }, { l: 'System size', v: '965.12 kW DC / 740 kW AC' }, { l: 'Modules', v: '1,664 × Thornova Solar TS-BG72(580) — 580W each' }, { l: 'Inverters', v: '4 × Solis 185k-EHV-5G-US-Plus' }, { l: 'Racking', v: 'TerraGen' }, { l: 'Commissioned', v: 'August 2025' }, ]; const also = [ { name: 'Elton Manufacturing', loc: 'Mississauga, ON', size: '741.97 kW DC', off: '37.8% offset', com: 'Commissioned Feb 2025' }, { name: 'Vicwest Building Products', loc: 'Stratford, ON', size: '590 kW DC', off: 'Industrial rooftop', com: 'Phased 2023–24' }, { name: 'Canadian Babbitt Bearings', loc: 'Brantford, ON', size: '262.6 kW DC', off: '50.4% offset', com: 'Commissioned Dec 2023' }, { name: 'Sunny Crunch Foods', loc: 'Markham, ON', size: '593 kW DC', off: 'Food manufacturing', com: 'Commissioned 2024' }, ]; return (
{/* ===== SLIDER ===== */}
{slides.map((s, i) => (
{s.label}
))} {/* Photo location/spec strip */}
{/*
150 HARRY WALKER PKWY N · NEWMARKET, ON
*/}
{/* Slide caption
{slide.label} {slide.caption}
*/} {/* Prev / Next */}
{/* Thumbnail strip */}
{slides.map((s, i) => ( ))}
{/* Results */}
Program results
{stats.map((s, i) => (
0 ? 28 : 0, borderRight: i < stats.length - 1 ? '1px solid rgba(15,33,51,0.14)' : 'none', }}>
{s.big}
{s.label}
{s.sub}
))}
{/* Spec + Also-in-sector */}
System details · Most recent phase
{spec.map((s, i) => (
{s.l}
{s.v}
))}
Also in this sector
    {also.map((p, i) => (
  • {p.name}
    {p.loc}
    {p.size} · {p.off} · {p.com}
  • ))}
); }; Object.assign(window, { MfgSolutions, MfgCaseStudy, MfgFacilitySchematic });