// Products page — reads from window.__C (content.json) const _ph = () => window.c('products.hero', {}); const _pw = () => window.c('products.wall', {}); const _pf = () => window.c('products.floor', {}); const _ps = () => window.c('products.structure', {}); const _pm = () => window.c('products.mixtures', {}); const _pj = () => window.c('products.joint', {}); const _papp = () => window.c('products.applications', {}); const _pcust = () => window.c('products.customization', {}); function ProductsHero() { const h = _ph(); return (
{h.eyebrow}

{h.headline}

{h.sub}

); } function ProductTabs({ active, onChange }) { const tabs = [ { id: 'wall', label: _pw().title || 'Wall panel', tag: '01' }, { id: 'floor', label: _pf().title || 'Floor panel', tag: '02' }, { id: 'structure', label: _ps().title || 'Structure panel', tag: '03' }, ]; return (
{tabs.map((t) => ( ))}
); } function PanelDetail({ panel }) { const data = panel === 'wall' ? _pw() : panel === 'floor' ? _pf() : _ps(); const panelNum = panel === 'wall' ? '01' : panel === 'floor' ? '02' : '03'; return (
Panel · {panelNum}

{data.title}

{data.sub}

{(data.specs || []).map((spec, i) => ( ))}
{spec[0]} {spec[1]}
{ e.preventDefault(); window.__setRoute && window.__setRoute('contact'); }}> Request panel specs Download datasheet
); } function MixtureSelector() { const m = _pm(); const mixtures = m.options || []; const [active, setActive] = React.useState('solid'); const current = mixtures.find((mx) => mx.id === active) || mixtures[0]; if (!current) return null; return (
{m.eyebrow}

{m.headline}

{m.sub}

{mixtures.map((mx, i) => ( ))}
Selected mixture

{current.name}

{current.best}

Relative weight {current.weight}
); } function Meter({ label, value }) { return (
{label} {Math.round(value * 100)}%
); } function JointSection() { const j = _pj(); return (
{j.eyebrow}

{j.headline}

{j.body}

    {(j.bullets || []).map((s) => (
  • {s}
  • ))}
); } function Applications() { const a = _papp(); return (
{a.eyebrow}

{a.headline}

{(a.items || []).map((it, i) => (
{it.tag}

{it.name}

{it.body}

))}
); } function Customization() { const c = _pcust(); return (
{c.eyebrow}

{c.headline}

{(c.items || []).map((it, i) => (
{it.tag}

{it.title}

{it.body}

))}
); } function ProductsPage({ setRoute, tweaks }) { const [panel, setPanel] = React.useState('wall'); React.useEffect(() => { window.__setRoute = setRoute; }, [setRoute]); return (
); } Object.assign(window, { ProductsPage });