/* КНОПКИ СВЯЗИ */
!selected.isEvent && (selected.phone || selected.whatsapp || selected.instagram) && React.createElement("div", { className: "flex flex-col gap-3 mb-6" },
selected.phone && React.createElement("a", {
href: `tel:${selected.phone}`,
className: "flex items-center gap-3 bg-black text-white px-5 py-4 rounded-2xl font-black text-[12px] uppercase shadow-md active:scale-95 transition-transform"
},
React.createElement("span", { className: "text-lg" }, "📞"),
selected.phone
),
selected.whatsapp && React.createElement("a", {
href: `https://wa.me/${selected.whatsapp.replace(/\D/g,'')}`,
target:"_blank",
className: "flex items-center gap-3 bg-green-500 text-white px-5 py-4 rounded-2xl font-black text-[12px] uppercase shadow-md active:scale-95 transition-transform"
},
React.createElement("span", { className: "text-lg" }, "💬"),
"WhatsApp"
),
selected.instagram && React.createElement("a", {
href: `https://instagram.com/${selected.instagram.replace('@','')}`,
target:"_blank",
className: "flex items-center gap-3 bg-gradient-to-tr from-yellow-400 via-red-500 to-purple-500 text-white px-5 py-4 rounded-2xl font-black text-[12px] uppercase shadow-md active:scale-95 transition-transform"
},
React.createElement("svg", { width: "20", height: "20", fill: "currentColor", viewBox: "0 0 24 24" },
React.createElement("path", { d: "M12 2.163c3.204 0 3.584.012 4.85.07 3.252.148 4.771 1.691 4.919 4.919.058 1.265.069 1.645.069 4.849 0 3.205-.012 3.584-.069 4.849-.149 3.225-1.664 4.771-4.919 4.919-1.266.058-1.644.07-4.85.07-3.204 0-3.584-.012-4.849-.07-3.26-.149-4.771-1.699-4.919-4.92-.058-1.265-.07-1.644-.07-4.849 0-3.204.013-3.583.07-4.849.149-3.227 1.664-4.771 4.919-4.919 1.266-.057 1.645-.069 4.849-.069zm0-2.163c-3.259 0-3.667.014-4.947.072-4.358.2-6.78 2.618-6.98 6.98-.059 1.281-.073 1.689-.073 4.948 0 3.259.014 3.668.072 4.948.2 4.358 2.618 6.78 6.98 6.98 1.281.058 1.689.072 4.948.072 3.259 0 3.668-.014 4.948-.072 4.354-.2 6.782-2.618 6.979-6.98.059-1.28.073-1.689.073-4.948 0-3.259-.014-3.667-.072-4.947-.196-4.354-2.617-6.78-6.979-6.98-1.281-.059-1.69-.073-4.949-.073zm0 5.838c-3.403 0-6.162 2.759-6.162 6.162s2.759 6.162 6.162 6.162 6.162-2.759 6.162-6.162-2.759-6.162-6.162-6.162zm0 10.162c-2.209 0-4-1.79-4-4 0-2.209 1.791-4 4-4s4 1.791 4 4c0 2.21-1.791 4-4 4zm6.406-11.845c-.796 0-1.441.645-1.441 1.44s.645 1.44 1.441 1.44c.795 0 1.439-.645 1.439-1.44s-.644-1.44-1.439-1.44z" })
),
selected.instagram
)
),
React.createElement("div", { className: "bg-slate-50 border border-slate-100 p-5 rounded-[30px] mb-8" },
React.createElement("p", { className: "text-[10px] font-black uppercase text-slate-400 mb-2 tracking-widest" }, selected.isEvent ? "Дата и время" : "Точный адрес"),
React.createElement("p", { className: "text-xl font-bold text-slate-800 leading-tight mb-4" }, selected.address),
!selected.isEvent && React.createElement("button", {
onClick: () => copyToClipboard(selected.address),
className: "w-full bg-white border-2 border-blue-600 text-blue-600 py-3 rounded-2xl font-black text-[11px] uppercase tracking-wider active:scale-95 transition-transform"
}, "Скопировать адрес")
),
React.createElement("div", {className:"bg-slate-100 p-6 rounded-3xl mb-8"},
React.createElement("h3", {className:"font-black uppercase text-[10px] mb-4 text-slate-500 tracking-widest"}, "Построить маршрут"),
React.createElement("div", {className:"flex gap-2"},
React.createElement("button", { onClick:()=>buildRoute('driving'), className:"flex-1 bg-black text-white py-4 rounded-2xl font-black text-[10px] uppercase" }, "🚕 Такси"),
React.createElement("button", { onClick:()=>buildRoute('walking'), className:"flex-1 bg-white text-black py-4 rounded-2xl font-black text-[10px] uppercase border-2 border-slate-200" }, "🚶 Пешком")
)
),
React.createElement("p", {className:"text-slate-600 mb-10 text-sm leading-relaxed"}, selected.description),
!selected.isEvent && React.createElement("div", {className:"border-t pt-8"},
React.createElement("h3", {className:"font-black uppercase mb-6 text-sm"}, "Рейтинг и отзывы"),
user.reg && React.createElement("div", {className:"mb-10 bg-blue-50 p-6 rounded-3xl"},
React.createElement("div", {className:"star-rating mb-4"}, [1,2,3,4,5].map(s => React.createElement("span", { key:s, className:`star ${userRate >= s ? 'active' : ''}`, onClick:()=>setUserRate(s) }, "★"))),
React.createElement("textarea", { className:"w-full border-2 border-white p-4 rounded-2xl mb-4 text-sm outline-none bg-white shadow-sm", placeholder:"Напишите о впечатлениях...", value:commentText, onChange:e=>setCommentText(e.target.value) }),
React.createElement("button", { onClick:addComment, className:"w-full bg-blue-600 text-white py-4 rounded-2xl font-black uppercase text-[10px] shadow-lg" }, "Отправить отзыв")
),
React.createElement("div", {className:"space-y-4"}, (comments[selected.id] || []).map((c, i) => React.createElement("div", {key:i, className:"bg-slate-50 p-5 rounded-3xl"},
React.createElement("div", {className:"flex justify-between items-center mb-2"},
React.createElement("b", {className:"text-blue-600 text-[10px] uppercase font-black"}, c.user),
React.createElement("div", {className:"text-yellow-500 text-xs font-black"}, "★ ".repeat(c.stars || 0))
),
React.createElement("p", {className:"text-sm font-medium leading-snug"}, c.text)
)))
)
)
)
),
React.createElement("div", { className: "nav-dock" }, [
// Кнопка установки: видна ТОЛЬКО если приложение можно установить и юзер НЕ в PWA-режиме
deferredPrompt && React.createElement("button", {
key: "pwa",
onClick: handleInstallApp,
className: "nav-item text-blue-600 animate-pulse bg-blue-50 rounded-xl"
}, [
React.createElement("span", {className:"text-xl"}, "📲"),
React.createElement("span", {className:"nav-label font-black text-[10px]"}, "Установить приложение")
]),
React.createElement("button", {
key: "map",
onClick:()=>setView("map"),
className:`nav-item ${view==='map'?'active':''}`
}, [
React.createElement("span", {className:"text-xl"}, "📍"),
React.createElement("span", {className:"nav-label"}, "Карта")
]),
React.createElement("button", {
key: "events",
onClick:()=>setView("events"),
className:`nav-item ${view==='events'?'active':''}`
}, [
React.createElement("span", {className:"text-xl"}, "🔥"),
React.createElement("span", {className:"nav-label"}, "Ивенты")
]),
React.createElement("div", {
key: "scan",
className:"qr-main-trigger",
onClick: typeof startScanning !== 'undefined' ? startScanning : () => {}
}, [
React.createElement("div", { style:{width:'28px', height:'28px', border:'2.5px solid #3b82f6', borderRadius:'6px'} }),
React.createElement("span", {className:"text-[10px] font-black uppercase tracking-tighter mt-1"}, "SCAN")
]),
React.createElement("button", {
key: "top",
onClick:()=>setView("top"),
className:`nav-item ${view==='top'?'active':''}`
}, [
React.createElement("span", {className:"text-xl"}, "🏆"),
React.createElement("span", {className:"nav-label"}, "Топ")
]),
React.createElement("button", {
key: "profile",
onClick:()=>setView("profile"),
className:`nav-item ${view==='profile'?'active':''}`
}, [
React.createElement("span", {className:"text-xl"}, "👤"),
React.createElement("span", {className:"nav-label"}, "Профиль")
])
]),
view !== "map" && React.createElement("div", { className:"fixed inset-0 bg-white z-[5500] p-8 overflow-y-auto pb-40" },
React.createElement("div", {className:"flex justify-between items-center mb-10 text-black"},
React.createElement("h2", {className:"text-4xl font-black uppercase tracking-tighter"}, view),
React.createElement("button", {onClick:()=>setView("map"), className:"text-4xl font-light"}, "✕")
),
view === "top" && React.createElement("div", {className:"space-y-6 text-black"},
places.sort((a,b)=>b.rate-a.rate).map((p, idx)=> (
React.createElement("div", {
key:p.id,
onClick:()=>{setSelected(p); setView("map"); setTimeout(()=>mapRef.current.flyTo([p.lat, p.lng], 16), 100);},
className:"flex items-center gap-5 bg-slate-50 p-4 rounded-[30px] active:scale-95 transition-transform border border-slate-100"
},
React.createElement("div", {className:"relative"},
React.createElement("img", {src:p.photos[0], className:"w-20 h-20 rounded-[22px] object-cover shadow-md"}),
React.createElement("div", {className:"absolute -top-2 -left-2 w-8 h-8 bg-black text-white rounded-full flex items-center justify-center font-black text-xs border-2 border-white"}, idx+1)
),
React.createElement("div", {className:"flex-1 text-left"},
React.createElement("div", {className:"flex justify-between items-start"},
React.createElement("h3", {className:"font-black text-sm uppercase leading-tight"}, p.name),
React.createElement("span", {className:"text-yellow-500 font-black text-xs"}, "★ ", p.rate.toFixed(1))
),
React.createElement("p", {className:"text-[10px] text-blue-600 font-black uppercase mt-1"}, p.cat)
)
)
))
),
view === "events" && React.createElement("div", {className:"space-y-6 text-black text-left"},
MOCK_EVENTS.map(ev => (
React.createElement("div", { key: ev.id, className: "event-card" },
React.createElement("div", { className: "event-tag" }, ev.tag),
React.createElement("img", { src: ev.img, className: "w-full h-48 object-cover" }),
React.createElement("div", { className: "p-6" },
React.createElement("div", { className: "flex justify-between items-center mb-2" },
React.createElement("span", { className: "text-blue-600 font-black text-xs uppercase" }, ev.date)
),
React.createElement("h3", { className: "text-2xl font-black uppercase mb-3" }, ev.title),
React.createElement("p", { className: "text-slate-500 text-sm mb-6 leading-relaxed" }, ev.desc),
React.createElement("button", {
onClick: () => activateEventOnMap(ev),
className: "w-full bg-green-500 text-white py-4 rounded-2xl font-black uppercase text-[10px] tracking-widest shadow-lg active:scale-95 transition-transform"
}, "Активировать на карте ⚡️")
)
)
))
),
view === "profile" && (!user.reg ? React.createElement("div", null,
React.createElement("input", {id:"uI", placeholder:"Ваше имя", className:"w-full p-6 bg-slate-100 rounded-3xl mb-4 font-bold outline-none text-black"}),
React.createElement("button", {onClick:()=>{const v=document.getElementById('uI').value; if(v){const u={reg:true, name:v, coins:100}; setUser(u); localStorage.setItem('sanya_u', JSON.stringify(u)); setView("map");}}, className:"w-full bg-blue-600 text-white py-6 rounded-3xl font-black"}, "ВОЙТИ")
) : React.createElement("div", null,
React.createElement("div", {className:"bg-black text-white p-10 rounded-[45px] mb-8 text-center font-black text-5xl"}, user.coins, " 💎"),
React.createElement("h3", {className:"font-black text-2xl mb-4 text-black"}, user.name),
React.createElement("button", {onClick:()=>{localStorage.clear(); location.reload();}, className:"text-red-500 font-bold uppercase text-xs"}, "Выйти")
))
)
ReactDOM.createRoot(document.getElementById('root')).render(React.createElement(App));