File: C:/Users/fred/AppData/Local/Microsoft/OneDrive/26.168.0830.0006/WebAssets/discovery.html
<!DOCTYPE html><html class="od4-left-nav-mode"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Discovery</title><script src="//photosapi.od4/api/od4context.js"></script><script src="/static/platform/strings.js"></script><script src="/static/shared/numeric-utilities.js"></script><script src="/static/shared/file-dimensions.js"></script><script src="/static/platform/od4-telemetry.js"></script><script src="/static/platform/od4-telemetry-photos.js"></script><script src="/static/platform/od4-spo-fallback.js"></script><script src="/static/platform/od4-fetch.js"></script><script src="/static/platform/drop-bridge.js"></script><script src="/static/platform/ecs.js"></script><script src="/static/view-lib/sql.js"></script><script src="/static/view-lib/theme-sync.js"></script><script src="/static/view-lib/user-activity.js"></script><script src="/static/platform/focus-trap.js"></script><script src="/static/platform/left-nav-bootstrap.js"></script><script>ViewLib.ThemeSync.applyInitialTheme({detectOd4Skin:!0})</script><link rel="stylesheet" href="/static/tokens/theme.css"><link rel="stylesheet" href="/static/tokens/theme-forced-colors.css"><link rel="stylesheet" href="/static/tokens/typography.css"><link rel="stylesheet" href="/static/tokens/theme-overrides.css"><link rel="stylesheet" href="/static/tokens/layout.css"><link rel="stylesheet" href="/static/tokens/fluent-icon.css"><link rel="stylesheet" href="/static/tokens/persona-theme.css"><link rel="stylesheet" href="/static/tokens/motion.css"><link rel="stylesheet" href="/static/tokens/scrollbar.css"><style>*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',system-ui,sans-serif;background:var(--bg-neutral-1-rest);color:var(--fg-neutral-1-rest);height:100vh;overflow-y:auto;overflow-x:hidden}.feed{max-width:640px;margin:0 auto;padding:24px 16px 64px;display:flex;flex-direction:column;gap:20px}.card{background:var(--bg-neutral-2-alt);border-radius:12px;box-shadow:0 2px 8px rgba(0,0,0,.15);overflow:hidden}.card-header{padding:16px 20px 12px}.card-title{font-size:var(--font-size-body-2-stronger);font-weight:700;color:var(--fg-neutral-1-rest);display:flex;align-items:center;gap:8px}.card-subtitle{font-size:var(--font-size-caption-1);color:var(--fg-neutral-2-rest);margin-top:4px}.year-group{padding:0 20px 16px}.year-label{font-size:14px;font-weight:600;color:var(--fg-neutral-2-rest);margin-bottom:8px}.thumb-strip{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none}.thumb-strip::-webkit-scrollbar{display:none}.thumb-strip img{width:88px;height:88px;border-radius:8px;object-fit:cover;cursor:pointer;flex-shrink:0;transition:transform .15s ease;background:var(--bg-neutral-2-rest)}.thumb-strip img:hover{transform:scale(1.05)}.skeleton{background:var(--bg-neutral-2-alt);border-radius:12px;overflow:hidden}.skeleton-bar{height:16px;border-radius:4px;background:linear-gradient(90deg,var(--bg-neutral-2-rest) 25%,var(--bg-neutral-2-alt) 50%,var(--bg-neutral-2-rest) 75%);background-size:200% 100%;animation:shimmer 1.4s infinite}.skeleton-thumb{width:88px;height:88px;border-radius:8px;flex-shrink:0;background:linear-gradient(90deg,var(--bg-neutral-2-rest) 25%,var(--bg-neutral-2-alt) 50%,var(--bg-neutral-2-rest) 75%);background-size:200% 100%;animation:shimmer 1.4s infinite}@keyframes shimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}.stub-card{position:relative}.stub-body{padding:20px;min-height:80px;display:flex;align-items:center;justify-content:center;color:var(--fg-neutral-2-rest);font-size:14px}.badge{position:absolute;top:12px;right:12px;background:var(--fg-neutral-2-rest);color:var(--bg-neutral-2-alt);font-size:10px;font-weight:700;text-transform:uppercase;padding:3px 8px;border-radius:4px;letter-spacing:.5px}.empty-state{padding:32px 20px;text-align:center;color:var(--fg-neutral-2-rest);font-size:14px}</style></head><body class="od4-left-nav-mode"><div class="feed"><div class="card" id="otd-card"><div class="card-header"><div class="card-title" data-i18n="discoveryOnThisDay">On This Day</div><div class="card-subtitle" id="otd-subtitle" data-i18n="filterLoading">Loading...</div></div><div id="otd-content"><div style="padding:0 20px 16px"><div class="skeleton-bar" style="width:60px;margin-bottom:12px"></div><div style="display:flex;gap:6px"><div class="skeleton-thumb"></div><div class="skeleton-thumb"></div><div class="skeleton-thumb"></div></div></div></div></div><div class="card stub-card"><div class="card-header"><div class="card-title" data-i18n="discoveryRediscover">Rediscover</div><div class="card-subtitle" data-i18n="discoveryRediscoverSubtitle">Photos you haven't viewed in a while</div></div><div class="stub-body">Coming soon</div><span class="badge">Coming soon</span></div><div class="card stub-card"><div class="card-header"><div class="card-title" data-i18n="discoveryBestOfLocation">Best of Location</div><div class="card-subtitle" data-i18n="discoveryBestOfLocationSubtitle">Top shots from your favorite places</div></div><div class="stub-body">Coming soon</div><span class="badge">Coming soon</span></div><div class="card stub-card"><div class="card-header"><div class="card-title" data-i18n="discoveryYearInReview">Year in Review</div><div class="card-subtitle" data-i18n="discoveryYearInReviewSubtitle">Highlights from each year</div></div><div class="stub-body">Coming soon</div><span class="badge">Coming soon</span></div></div><script src="/static/platform/announce.js"></script><script src="/static/view-lib/messages.js"></script><script src="/static/view-lib/scroll-sync.js"></script><script>function handleThumbClick(t){var e=JSON.parse(t.getAttribute("data-photo")),n=JSON.parse(t.getAttribute("data-group")),a=parseInt(t.getAttribute("data-index"),10),o=t.getBoundingClientRect(),i={x:o.x,y:o.y,width:o.width,height:o.height};window.parent.postMessage({type:"photo-selected",photo:e,cluster:n,index:a,thumbRect:i},"*")}!function(){var t=document.getElementById("otd-content"),e=document.getElementById("otd-subtitle");fetch("/api/photos/on-this-day").then(function(t){return t.json()}).then(function(n){if(!n.groups||0===n.groups.length){var a=document.createElement("div");return a.className="empty-state",a.textContent=Od4Strings.t("discoveryNoPhotosThisDay"),t.innerHTML="",t.appendChild(a),void(e.textContent=Od4Strings.t("discoveryNoMemoriesToday"))}var o=new Date;e.textContent=["January","February","March","April","May","June","July","August","September","October","November","December"][o.getMonth()]+" "+o.getDate();var i="";n.groups.forEach(function(t){i+='<div class="year-group">',i+='<div class="year-label">'+t.year+"</div>",i+='<div class="thumb-strip">',t.photos.forEach(function(e,n){i+='<img src="/api/thumb/'+e.driveItemId+'" alt="'+(e.name||"").replace(/"/g,""")+'" loading="lazy" data-photo=\''+JSON.stringify(e).replace(/'/g,"'")+"' data-group='"+JSON.stringify(t.photos).replace(/'/g,"'")+"' data-index=\""+n+'" onclick="handleThumbClick(this)">'}),i+="</div></div>"}),t.innerHTML=i}).catch(function(n){var a=document.createElement("div");a.className="empty-state",a.textContent=Od4Strings.t("discoveryLoadError"),t.innerHTML="",t.appendChild(a),e.textContent=""}),ViewLib.Messages.sendViewReadyToShell("discovery.html")}()</script></body></html>