// Agora Seller storefront — per-seller profile page + Sellers index. const Seller = ({ route, setRoute, watchlist, toggleWatch }) => { const data = window.AG_DATA; const seller = data.sellers[route.id] || data.sellers.par; const items = data.items.filter(i => i.seller === seller.id); const [tab, setTab] = useState('all'); return (
{/* Hero — seller masthead */}
{seller.name[0].toLowerCase()}
Trusted seller · {seller.city}, {seller.country} · since {seller.since}

{seller.name}.

{seller.handle}
{[ { v: seller.rating, l:'Buyer rating' }, { v: seller.sales.toLocaleString(), l:'Lifetime sales' }, { v: items.length, l:'Active listings' }, { v: '< 2 hrs', l:'Avg reply time' }, { v: '99.4%', l:'On-time ship' }, ].map((s, i, arr) => (
{s.v}
{s.l}
))}
{seller.blurb} {seller.id === 'par' && 'Maya curates exclusively from Parisian private collectors with documented purchase history. Hermès specialist — works on commission with three personal shoppers inside the Faubourg-Saint-Honoré flagship.'}
{seller.city}, {seller.country} · {seller.tz}
Authenticated seller · ID-verified
Speaks EN, FR{seller.country==='JP' && ', JA'}{seller.country==='KR' && ', KO'}{seller.country==='IT' && ', IT'}
{/* Tabs */}
{[ { id:'all', l:`Listings · ${items.length}` }, { id:'sold', l:'Sold · 1,204' }, { id:'reviews', l:'Reviews · 2,104' }, { id:'about', l:'About' }, ].map(t => ( setTab(t.id)} className="ag-label" style={{ cursor:'pointer', color: tab===t.id ? 'var(--ag-ink)':'var(--ap-fg-muted)' }}>{t.l} ))}
Filter Brand Category Newest
{tab === 'all' && (
{items.map(it => (
setRoute({ name:'product', id: it.id })}> toggleWatch(it.id)}/>
))} {[...Array(Math.max(0, 8 - items.length))].map((_, i) => (
))}
)} {tab === 'reviews' && } {tab === 'sold' && (
Recently sold by {seller.name}
{window.AG_DATA.items.slice(0, 12).map(it => (
Sold · €{it.eur.toLocaleString()}
))}
)} {tab === 'about' && (

{seller.blurb}

Maya Antinora founded {seller.name} in {seller.since}. Sources include Parisian estates, returning expatriate clients, and direct boutique relationships established over 15 years.

)}
); }; const SellerItemCard = ({ item, watched, onToggleWatch }) => (
{item.new && New}  Auth
{ e.stopPropagation(); onToggleWatch(); }}>
{item.brand}
€{item.eur.toLocaleString()}
{item.title}
); const SellerReviews = ({ seller }) => { const reviews = [ { name:'Liam K.', loc:'Berlin', stars: 5, when:'2 days ago', text:'Pristine piece, exactly as described. Packaging immaculate. Maya answered every question within an hour despite the time difference. Will buy again.' }, { name:'Sophia R.', loc:'Munich', stars: 5, when:'1 week ago', text:'Authentication paperwork was a real comfort. The bag was clearly handled with care.' }, { name:'Henrik J.', loc:'Hamburg', stars: 4, when:'2 weeks ago', text:'Delivery a day later than promised, but in pristine condition. Glazing photos provided were honest.' }, { name:'Élise M.', loc:'Paris', stars: 5, when:'3 weeks ago', text:'Local pickup at the seller\'s atelier was a luxury experience in itself.' }, ]; return (
{seller.rating}
{[1,2,3,4,5].map(s => )}
Across 2,104 reviews
{[5,4,3,2,1].map(n => (
{n}
{n===5?'1,936':n===4?'126':n===3?'24':n===2?'12':'6'}
))}
{reviews.map((r, i) => (
{r.name[0]}
{r.name} · {r.loc}
{r.when}
{[1,2,3,4,5].map(s => )}

{r.text}

))}
); }; const SellersIndex = ({ setRoute }) => { const data = window.AG_DATA; const sellers = Object.values(data.sellers); return (
All sellers

1,284 trusted sellers.

Each one ID-verified, with a documented track record. We work with single curators and small ateliers — no resellers-of-resellers.

{['All','Tokyo','Paris','Milan','New York','Seoul','Hong Kong','Specialist: Hermès','Specialist: Vintage'].map((c, i) => ( {c} ))}
{sellers.map(s => { const sItems = data.items.filter(i => i.seller === s.id).slice(0, 3); return (
setRoute({ name:'seller', id: s.id })}>
{s.name[0].toLowerCase()}
{s.name}
{s.city} · since {s.since}
{sItems.map(it =>
)}
{s.rating} {s.sales.toLocaleString()} sales
); })}
); }; window.Seller = Seller; window.SellersIndex = SellersIndex;