function Compare({hl}){const r=[[T('Design visivo','Visual design'),T('Fusto cilindrico modulare in finitura viola-bronzo, a moduli sovrapposti','Cylindrical modular shaft in a violet-bronze finish, built from stacked modules'),T('Fusto squadrato scuro con testa luminosa inclinata e filo luminoso azzurro','Dark square-section shaft with angled luminaire head and blue accent line')],[T('Display','Display'),T('Modulo display indicato nella documentazione','Display module listed in documentation'),T('Display LCD, centrale nel design','LCD display, central to the design')],[T('Illuminazione','Lighting'),T('Lanterna RGBW, luce di stato RGB','RGBW lantern, RGB status light'),T('Kit luce con testa inclinata','Light kit with angled head')],[T('Rilevamento e sicurezza','Sensing & safety'),T('Stazione meteo, telecamere PTZ e box, chiamata di emergenza','Weather station, PTZ and box cameras, emergency call'),T('Stazione meteo, telecamera PTZ','Weather station, PTZ camera')],[T('Connettività e audio','Connectivity & audio'),T('Access point Wi-Fi, altoparlante','Wi-Fi AP, broadcasting speaker'),T('Altoparlante (Wi-Fi da confermare)','Broadcasting speaker (Wi-Fi to be confirmed)')],[T('Servizi','Services'),T('Stazione di ricarica, modulo solare','Charging station, solar module'),T('Presa di ricarica nel basamento','Charging socket in the base')],[T('Altezza','Height'),T('Da 5,20 a 5,92 m nelle due configurazioni del modello 3D. Da confermare.','5.20 to 5.92 m in the two 3D model configurations. To be confirmed.'),T('Circa 6,0 m nel modello 3D fornito. Da confermare.','About 6.0 m in the supplied 3D model. To be confirmed.')],[T('Alimentazione, dati, carichi','Power, data, loads'),<TBC/>,<TBC/>]];
return <div className="tw"><table className="table"><thead><tr><th/><th style={hl===15?{color:'var(--accent)'}:null}>Smart Pole 15</th><th style={hl===17?{color:'var(--accent)'}:null}>BS-Smart Pole 17</th></tr></thead><tbody>{r.map(([a,b,c],i)=><tr key={i}><td>{a}</td><td>{b}</td><td>{c}</td></tr>)}</tbody></table></div>}
function openCfg(model,ids){const c=store.s;store.set({model,mods:{...c.mods,[model]:ids||c.mods[model]},view:'front'});go(P.cfg)}
function PoleHub(){return <><PageHero crumbs={[['Home',P.home],[T('Soluzioni','Solutions'),P.sol],['Smart Pole']]} eyebrow="Smart Pole" title={T('Due famiglie. Una logica modulare.','Two families. One modular logic.')} lead={T('Sistemi Smart Pole che riuniscono illuminazione, connettività, rilevamento e servizi pubblici in un’unica struttura urbana.','Smart Pole systems that combine lighting, connectivity, sensing and public services in a single urban structure.')} visual={<div className="stage" style={{minHeight:480}}><div style={{display:'flex',gap:24,height:460,padding:24,alignItems:'flex-end'}}><img src={A+'pole-15-3d.png'} alt="Smart Pole 15" style={{height:'100%'}}/><img src={A+'pole-17-3d.png'} alt="BS-Smart Pole 17" style={{height:'88%'}}/></div></div>}><Button size="lg" onClick={()=>go(P.cfg)}>{T('Configura la tua soluzione','Configure your solution')}</Button><Button size="lg" variant="secondary" onClick={()=>go(P.p15)}>{T('Scopri Pole 15','Explore Pole 15')}</Button></PageHero>
<Sec eyebrow={T('Sistemi','Systems')} title={T('Scegli la famiglia.','Choose the family.')}><div className="g2"><PCard m={15} onClick={()=>go(P.p15)}/><PCard m={17} onClick={()=>go(P.p17)}/></div></Sec>
<Sec alt eyebrow={T('Confronto','Comparison')} title="Pole 15 vs Pole 17." lead={T('Basato solo sulla documentazione di prodotto. I moduli non sono trasferibili da un modello all’altro.','Based only on the product documentation. Modules are not transferable between models.')}><Compare/></Sec>
<Sec eyebrow={T('Illuminazione','Lighting')} title={T('Come appare uno spazio dopo il tramonto.','How a space reads after dark.')} lead={T('Anteprima dimostrativa. I dati tecnici di illuminazione saranno integrati quando sarà disponibile la documentazione LED.','Demonstrative preview. Technical lighting data will be integrated when LED documentation is available.')}><LightSim/></Sec><Cta/></>}
const POLE=()=>({15:{crumb:'Modularity Smart Pole 15',lead:T('Una struttura modulare che ospita illuminazione, stazione meteo, connettività, telecamere, audio, chiamata di emergenza e ricarica, assemblati sulle esigenze di ogni spazio.','A modular structure that carries lighting, weather sensing, connectivity, cameras, audio, emergency call and charging, assembled around the needs of each space.'),feat:[[T('Fusto cilindrico','Cylindrical shaft'),T('Un fusto verticale a sezione circolare, in finitura viola-bronzo, con base a flangia.','A round vertical shaft in a violet-bronze finish, on a flanged base.')],[T('Moduli in testa','Head modules'),T('Stazione meteo, lanterna RGBW, luce di stato RGB e faretto sono documentati come moduli di sommità.','Weather station, RGBW lantern, RGB status light and spotlight are documented as head modules.')],[T('Display','Display'),T('Un display montato lateralmente sul fusto, come mostrato nella configurazione di riferimento della brochure.','A display mounted at the side of the shaft, as shown in the brochure reference configuration.')],[T('Altezze modulari','Modular heights'),T('La brochure mostra sei configurazioni su una scala da 0 a 5.400 mm, con telecamere, speaker e punto di chiamata lungo il fusto.','The brochure shows six configurations on a 0 to 5,400 mm scale, with cameras, speaker and call point along the shaft.')]],app:[T('Aree pedonali','Pedestrian areas'),T('Piazze','Piazzas'),T('Viali urbani','Urban avenues'),T('Aree commerciali','Commercial areas'),T('Parchi','Parks')]},
17:{crumb:'BS-Smart Pole 17',lead:T('Un palo dalla finitura scura e dal profilo distintivo, progettato attorno a un display LCD integrato e a moduli di rilevamento, audio e servizio.','A dark-finish pole with a distinctive profile, designed around an integrated LCD display and a set of sensing, audio and service modules.'),feat:[[T('Struttura scura','Dark structure'),T('Fusto squadrato in finitura grigio antracite, con un filo luminoso azzurro lungo il lato.','Square-section shaft in a charcoal finish, with a blue accent line along the side.')],[T('Testa luminosa inclinata','Angled luminaire head'),T('Il fusto termina con un tratto inclinato che porta il corpo illuminante lineare, con la stazione meteo in sommità.','The shaft ends in an angled section carrying the linear luminaire, with the weather station on top.')],[T('Display LCD','LCD display'),T('Un display LCD montato sul fusto è uno degli elementi visivi principali.','An LCD display mounted on the shaft is one of the main visual elements.')],[T('Base con servizi','Service base'),T('Nel basamento si vedono punto di chiamata, pulsante di emergenza e presa di ricarica.','The base section shows the call point, emergency button and charging socket.')]],app:[T('Piazze e hub','Squares and hubs'),T('Aree commerciali','Commercial areas'),T('Parcheggi','Car parks'),T('Punti informativi pubblici','Public information points'),T('Campus','Campuses')]}});
function PolePage({id}){const d=POLE()[id],m=MODELS[id];const other=id===15?17:15;
return <><PageHero crumbs={[['Home',P.home],[T('Soluzioni','Solutions'),P.sol],['Smart Pole',P.pole],[d.crumb]]} eyebrow={T('Famiglia Smart Pole','Smart Pole family')} title={m.name} lead={d.lead} visual={<div className="stage" style={{minHeight:540}}><img className="prod" src={m.img} alt={m.name} style={{maxHeight:540}}/><div style={{position:'absolute',left:16,bottom:16,right:16}}><Ai>{T('Immagine di prodotto da brochure. Altezza e dimensioni: da confermare sulla scheda tecnica.','Product image from the brochure. Height and dimensions: to be confirmed on the datasheet.')}</Ai></div></div>}><Button size="lg" onClick={()=>openCfg(id)}>{T('Apri il configuratore','Open configurator')}</Button><Button size="lg" variant="secondary" onClick={()=>go(P.cfg)}>{T('Richiedi un preventivo','Request a quote')}</Button></PageHero>
<Sec eyebrow={T('Caratteristiche visive','Visual characteristics')} title={T('Il design, come documentato.','Design, as documented.')}><div className="g4">{d.feat.map(([t,x],i)=><div className="card2" key={i}><span className="n">0{i+1}</span><h3>{t}</h3><p>{x}</p></div>)}</div></Sec>
<Sec alt eyebrow={T('Moduli','Modules')} title={T('Moduli disponibili.','Available modules.')} lead={T(`Moduli attribuiti a ${m.short} nella documentazione. La compatibilità tra le combinazioni è da verificare.`,`Modules attributed to ${m.short} in the documentation. Compatibility between combinations is to be verified.`)}><div className="g4">{m.mods.map(x=><ModuleCard key={x.id} icon={x.icon} name={tt(x.n)} description={tt(x.d)} onToggle={()=>openCfg(id,[x.id])}/>)}</div></Sec>
<Sec eyebrow={T('Modularità','Modularity')} title={T('Una struttura, molti moduli.','One structure, many modules.')} lead={T('Uno schema dell’insieme di moduli. Non indica posizioni, altezze o combinazioni valide.','A schematic of the module set. It does not indicate positions, heights or valid combinations.')}><ModDiagram model={id}/></Sec>
<Sec alt eyebrow={T('In contesto','In context')} title={T('Reso nel luogo.','Rendered in place.')} lead={T('Render ambientati da generare a partire dal riferimento della brochure, mantenendo fedele il design del prodotto.','Environment renders to be generated from the brochure reference, keeping the product design faithful.')}><div className="g3">{ENVS.slice(0,3).map(e=><Slot key={e.id} title={tt(e.name)} prompt={m.short+'. '+tt(e.prompt)}/>)}</div></Sec>
<Sec eyebrow={T('Esempi di configurazione','Example configurations')} title={T('Punti di partenza.','Starting points.')}><div className="g3">{PRESETS[id].map(([n,ids],i)=><div className="card2" key={i}><span className="n">0{i+1}</span><h3>{tt(n)}</h3><div className="chips">{ids.map(x=><Badge key={x}>{modName(id,x)}</Badge>)}</div><p className="t-small" style={{fontSize:13}}>{T('Preset illustrativo. Compatibilità da verificare.','Illustrative preset. Compatibility to be verified.')}</p><Button variant="secondary" size="sm" onClick={()=>openCfg(id,ids)}>{T('Apri nel configuratore','Open in configurator')}</Button></div>)}</div></Sec>
<Sec alt eyebrow={T('Applicazioni','Applications')} title={T('Dove si inserisce.','Where it fits.')}><div className="chips">{d.app.map(a=><span key={a} className="iv-badge iv-badge--accent" style={{height:40,padding:'0 20px',fontSize:13}}>{a}</span>)}</div></Sec>
<Sec eyebrow={T('Confronto','Comparison')} title="Pole 15 vs Pole 17."><Compare hl={id}/><div style={{marginTop:24}}><Button variant="secondary" onClick={()=>go(other===15?P.p15:P.p17)}>{T('Scopri','Explore')} {MODELS[other].short}</Button></div></Sec><Cta/></>}
Object.assign(window,{Compare,PoleHub,PolePage,openCfg});
