Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 21 additions & 2 deletions lib/data/demo.js
Original file line number Diff line number Diff line change
Expand Up @@ -102,8 +102,9 @@ const DEMO_CARDS = {

"umbreon ex sar 217/187": {
query: "Umbreon ex SAR 217/187 sv8a Terastal Festival ex",
source: "ebay",
source: "multi",
listingFormat: "raw",
listingDescription: "eBay + magi.camp + Yahoo Auctions — raw (¥157/USD)",
lang: "jp",
activeByCountry: {
US: [
Expand Down Expand Up @@ -159,6 +160,24 @@ const DEMO_CARDS = {
],
grade: { overall: 7.5, centering: 8.0, corners: 8.0, edges: 8.5, surface: 7.5, confidence: 0.68, mode: "llm-detailed", notes: "Grade limiter: surface — Visible scratch near bottom-right of artwork.", limitations: "", subgradeDetails: { centering: { score: 8.0, confidence: 0.70, detail: "Centering acceptable ~56/44 front. Back appears slightly off." }, corners: { score: 8.0, confidence: 0.65, detail: "Corner whitening on back top-left. Other corners appear clean." }, edges: { score: 8.5, confidence: 0.68, detail: "Edges mostly clean with minor wear visible on right edge." }, surface: { score: 7.5, confidence: 0.72, detail: "Visible scratch near bottom-right of artwork. Photo compression may exaggerate but defect is clear." } } },
},
{
itemId: "magi-umb-001", itemWebUrl: "https://magi.camp/item/umb-sar-217187-001",
title: "ブラッキーex SAR 217/187 テラスタルフェスティバル ex sv8a 1枚",
price: 348.73, priceCurrency: "USD", priceJPY: 54800, shippingLabel: "—", totalCost: 348.73, detectedCondition: "NM",
imageUrl: "https://i.ebayimg.com/images/g/XYkAAeSw8fBp9JS-/s-l500.jpg",
},
{
itemId: "magi-umb-002", itemWebUrl: "https://magi.camp/item/umb-sar-217187-002",
title: "〔状態A-〕ブラッキーex【SAR】{217/187} テラスタルフェスティバル 1枚",
price: 362.42, priceCurrency: "USD", priceJPY: 56950, shippingLabel: "—", totalCost: 362.42, detectedCondition: "NM",
imageUrl: "https://i.ebayimg.com/images/g/FTcAAeSwiLRpgfeC/s-l500.jpg",
},
{
itemId: "yahoo-umb-001", itemWebUrl: "https://page.auctions.yahoo.co.jp/jp/auction/umb217187001",
title: "ブラッキーex SAR 217/187 sv8a テラスタルフェスティバルex ポケモンカード 美品",
price: 370.06, priceCurrency: "USD", priceJPY: 58150, shippingLabel: "—", totalCost: 370.06, detectedCondition: "NM",
imageUrl: "https://i.ebayimg.com/images/g/dvIAAeSwCB9p3n5z/s-l500.jpg",
},
],
},
sold: [
Expand All @@ -169,7 +188,7 @@ const DEMO_CARDS = {
],
soldSource: "scrape",
psaSignal: { certNumber: null, totalPop: 3420, pop10: 1890, pop9: 1105, difficulty: "easy", gem10Pct: 55.3, grade10Chance: "high", avgDaysToGrade: 30, tier: "Regular", estCost: "$50", tierReason: "PSA 10 comps at $750+, above the $499 Value cap. Submitting at Value risks an upcharge to Regular anyway." },
counts: { activeTotal: 5, sold: 4 },
counts: { activeTotal: 8, sold: 4 },
},

"pikachu ex sar 234/193 psa 10": {
Expand Down
4 changes: 3 additions & 1 deletion public/app.js
Original file line number Diff line number Diff line change
Expand Up @@ -287,11 +287,12 @@ function renderList(container, items) {

const outlierHtml = item._priceOutlier ? '<span class="price-outlier">Price outlier</span>' : "";

const hasMultiplePhotos = item.additionalImages?.length > 0;
const gradeChip = item.grade && !item.grade.error
? `<span class="grade-chip" style="color: ${gradeColor(item.grade.overall)}">${item.grade.overall.toFixed(1)}</span>`
: item.listingGradeLabel
? `<span class="slab-chip">${esc(item.listingGradeLabel)}</span>`
: "";
: `<span class="no-grade-chip" title="${hasMultiplePhotos ? "Not graded" : "Single photo"}">—</span>`;
const srcTag = sourceTag(item.itemWebUrl);

return `
Expand Down Expand Up @@ -411,6 +412,7 @@ function selectItem(itemId) {
${gradeHtml}
</div>
<div class="detail-tab-panel${defaultTab === "prices" ? "" : " hidden"}" data-dtpanel="prices">
${!hasGrade && !slabLabel ? `<div class="no-grade-note">${images.length <= 1 ? "AI grading unavailable — single photo" : "AI grading unavailable"}</div>` : ""}
${slabLabel ? renderPsaInline(currentPsaSignal) : ""}
<div id="grading-roi" class="grading-roi hidden"></div>
<div id="arbitrage-container" class="arbitrage-container hidden"></div>
Expand Down
22 changes: 22 additions & 0 deletions public/style.css
Original file line number Diff line number Diff line change
Expand Up @@ -961,6 +961,28 @@ main {
letter-spacing: 0.03em;
margin-left: auto;
}
.no-grade-chip {
font-family: 'Space Grotesk', system-ui, sans-serif;
font-size: 12px;
font-weight: 500;
color: var(--muted);
opacity: 0.5;
cursor: help;
}
.no-grade-note {
font-family: 'JetBrains Mono', monospace;
font-size: 10px;
text-transform: uppercase;
letter-spacing: 0.06em;
color: var(--muted);
background: var(--inset);
border: 1px solid var(--border);
border-radius: 6px;
padding: 8px 12px;
margin-bottom: 14px;
text-align: center;
opacity: 0.7;
}
.slab-chip {
font-family: 'Space Grotesk', system-ui, sans-serif;
font-size: 11px;
Expand Down