/* ============================================================================ VIEW 2 — TICKER DETAIL (full breakdown for one pick) ============================================================================ */ function Panel({ title, right, children, className="" }){ return (

{title}

{right}
{children}
); } function SocialStat({ label, value, sub, accent }){ return (
{label} {value} {sub && {sub}}
); } function TickerDetail({ v, onBack, onPrev, onNext }){ if(!v) return null; const t = tierOf(v.tier); const sparkColor = v.change_pct>=0 ? "#17a86a" : "#ee3f5f"; // split risks/catalysts into bull/bear framing return (
{/* breadcrumb / nav */}
/ Detail
{/* header band */}

{v.ticker}

{v.manipulation_flag && }
{v.company} {v.sector}
{fmtPrice(v.price)}
7-session trend
{/* main grid */}
{/* left col: thesis + bull/bear */}

{v.thesis}

{v.catalysts.length}}>
{v.catalysts.length ? v.catalysts.map((c,i)=>(
{c}
)) : No catalysts identified — hollow setup.}
{v.risks.length}}>
{v.risks.map((c,i)=>(
{c}
))}
entry · stop · targets}>
{/* right col: radar + analyst + social */}
8 signals}> avg tgt {fmtPrice(v.analyst.avg_target)}}>
Implied upside
=v.price?"#17a86a":"#ee3f5f"}}> {fmtPct((v.analyst.avg_target/v.price-1)*100)}
Coverage
{v.analyst.strong_buy+v.analyst.buy+v.analyst.hold+v.analyst.sell}
300?"#ee3f5f":"#17a86a"} sub="vs 7d avg" />
Bull / Bear
{v.manipulation_flag &&
Velocity + sentiment extreme vs. zero fundamentals — coordinated promotion likely.
}
); } Object.assign(window, { TickerDetail });