San Antonio Spurs forward Julian Champagnie (30) defends against Oklahoma City Thunder guard Jalen Williams (8) during overtime of Game 1 in a third-round NBA basketball playoffs series Monday, May 18, 2026, in Oklahoma City. (AP Photo/Tony Gutierrez) By TIM REYNOLDS Updated : , , Add AP News on Google Add AP News as your preferred source to see more of our stories on Google. Share (function () { const counter = document.getElementById("scrollToComments"); const HEADER_OFFSET = 120; function findCommentsModule() { return document.querySelector('.vf3-comments, #vf-conversations, '); } function maybeShowCounter() { if (findCommentsModule()) { counter.style.display = "inline-flex"; } else { counter.style.display = "none"; } } // Show only when Viafoura is present maybeShowCounter(); // Watch DOM for late loads const observer = new MutationObserver(maybeShowCounter); observer.observe(document.documentElement, { childList: true, subtree: true }); // Scroll action counter.addEventListener("click", function () { const el = findCommentsModule(); if (!el) return; const top = el.getBoundingClientRect().top + window.scrollY - HEADER_OFFSET; window.scrollTo({ top, behavior: "smooth" }); }); })(); .thin-line-button { display: inline-flex; align-items: center; justify-content: center; border: 1px solid #ccc; height: 30px; padding: 0 10px; cursor: pointer; border-radius: 5px; background: none; text-align: center; font-size: 1.4rem; font-weight: 700; white-space: nowrap; flex-shrink: 0; color: inherit; transition: none; /* Remove animation effect */ } .thin-line-button { color: #000; background: white; } /* Remove hover effect */ .thin-line-button:hover { border: 1px solid #ccc; } .comment-icon { width: 20px; height: 20px; min-width: 20px; min-height: 20px; flex: 0 0 20px; object-fit: contain; display: inline-block; } .Page-actions-commentCounter .embed-caption { display: none; } .vf-comments-count.vf-is-logged-in { margin-left: 4px; } OKLAHOMA CITY (AP) — Jalen Williams and Ajay Mitchell will not play for the Oklahoma City Thunder in Game 7 of the Western Conference finals against the San Antonio Spurs on Saturday night because of injuries that have dogged both throughout the series. Williams has been dealing with a strained left hamstring for much of the playoffs. Mitchell has a strained right soleus. Williams missed 49 of Oklahoma City’s 82 regular-season games with wrist and hamstring issues, and Saturday will be the 10th playoff game he’s missed this year with new hamstring problems. He played in five, including about 10 minutes in Thursday’s Game 6 loss to the Spurs. Mitchell had been the starter that replaces Williams in the lineup, until he too got hurt. Oklahoma City has been starting Jared McCain in that spot since, alongside Shai Gilgeous-Alexander, Isaiah Hartenstein, Lu Dort and Chet Holmgren. They went to Cason Wallace as the starter for Game 7, with McCain off the bench. The Spurs reported no injuries going into Game 7. Marc Davis, John Goble and Josh Tiven were selected by the NBA as the referees for Game 7 of Spurs-Thunder. It’s the second Game 7 in these playoffs for Davis and Tiven; Davis worked the final game of the Cleveland-Detroit series in Round 2, and Tiven had Game 7 of Orlando-Detroit in Round 1. TIM REYNOLDS Reynolds is an Associated Press sports writer, based in South Florida. twitter mailto window.vfQ = window.vfQ || ; // Tags that always block comments on ANY story, regardless of section. Example const COMMENT_BLOCK_TAGS = ; // Section name we care about (as it appears in ). // We'll normalize to lowercase, so "World News" -> "world news". const WORLD_NEWS_SECTION = 'world news'; // Tags that block comments ONLY when the story is in the World News section. const WORLD_NEWS_EXCLUSION_TAGS = ; window.vfQ = window.vfQ || ; // Zephr mod handling + prepublish + login failure handling setTimeout(() => { const all = document.querySelectorAll('.Zephr.Zephr-mod'); // If there's more than one of this element, delete the one with ID if (all.length > 1) { const withId = document.getElementById('viafoura-zephr-mod'); if (withId) withId.remove(); return } // prepublish → Zephr auth / walls handling window.vfQ.push(() => { if (!window.vf || typeof window.vf.$prepublish !== 'function') return; window.vf.$prepublish((channel, event, ...args) => { if (channel === 'authentication' && event === 'required') { window.vf.$publish && window.vf.$publish('tray', 'close'); window.Zephr?.openModal?.(); // window.location.href = `/login?target=${window.location.pathname}` return false; } else if (channel === 'walls' && event === 'post-attempt') { if (window.zephrQueue && typeof window.zephrQueue.enqueue === 'function') { window.zephrQueue.enqueue(async (zephr) => { if ( !zephr?.accessDetails?.authenticated || !window.Zephr?.openModal ) { return; } window.Zephr.openModal(); }); } return { channel, event, args }; } else { return { channel, event, args }; } }); }); // login failure → show ban message + tooltip window.vfQ.push(() => { if (!window.vf || typeof window.vf.$subscribe !== 'function') return; window.vf.$subscribe('login', 'failure', (errorContext) => { if (!errorContext) return; const isBanned = errorContext.error_key === 'login_banned'; if (!isBanned) return; let reasonText = 'Your account has been permanently banned from posting.'; if (errorContext.isPermanent === 0) { const date = new Date(errorContext.endDate); const formatted = date.toLocaleString('en-US', { month: 'short', day: 'numeric', year: 'numeric', hour: 'numeric', minute: '2-digit', hour12: true, }); reasonText = 'Your account has been banned from posting until ' + formatted; } waitForEditorWrapper((wrapper) => { if (wrapper && !document.querySelector('.vf-ban-container')) { const container = document.createElement('div'); container.className = 'vf-ban-container'; // Message const message = document.createElement('div'); message.className = 'vf-ban-message'; message.innerHTML = '❗' + '' + reasonText + ''; // Tooltip trigger if (errorContext.reason) { const tooltip = document.createElement('span'); tooltip.className = 'vf-ban-tooltip'; tooltip.textContent = ' — WHY WAS I BANNED?'; const tooltipContent = document.createElement('div'); tooltipContent.className = 'vf-ban-tooltip-content'; tooltipContent.textContent = errorContext.reason; tooltip.appendChild(tooltipContent); message.appendChild(tooltip); } container.appendChild(message); wrapper.parentNode.insertBefore(container, wrapper.nextSibling); } }); }); }); }, 50); function waitForEditorWrapper(callback, maxTries = 50, interval = 100) { let tries = 0; const iv = setInterval(() => { const wrapper = document.querySelector('.vf-new-content__content-editor-wrapper'); if (wrapper) { clearInterval(iv); callback(wrapper); } else if (++tries >= maxTries) { clearInterval(iv); } }, interval); } function pageHasBlockedTag(tagsToBlock = COMMENT_BLOCK_TAGS) { const metas = Array.from( document.querySelectorAll(', 'meta' ].join(',')) ); const pageTags = metas .map(m => (m.getAttribute('content') || '')) .flatMap(c => c.split(',')) .map(s => s.trim().toLowerCase()) .filter(Boolean); const blockSet = new Set( (tagsToBlock || ).map(t => String(t).trim().toLowerCase()).filter(Boolean) ); return pageTags.some(t => blockSet.has(t)); } function getPageSection() { // Look for // or just in case. const meta = document.querySelector( 'meta, meta' ); if (!meta) return ''; return (meta.getAttribute('content') || '').trim().toLowerCase(); } function replaceBellIconInNav(container) { if (!container) return; const bellButtons = container.querySelectorAll( '.comment-nav-right .vf-tray-trigger.comment-nav-right__icon, .vf-tray-trigger' ); bellButtons.forEach((btn) => { if (btn.dataset.iconSwapped === '1') return; const bellSvg = btn.querySelector('.vf-icon_bell_icon'); if (bellSvg) bellSvg.remove(); const img = document.createElement('img'); img.src = 'https://assets.apnews.com/75/e2/83fe757647f790e4a0bf06370f10/comment-2.png'; img.alt = 'Comments'; img.style.height = '24px'; img.style.width = '24px'; img.style.verticalAlign = 'middle'; img.setAttribute('data-ap-bell', '1'); // precise selector for dark-mode tweak btn.appendChild(img); btn.dataset.iconSwapped = '1'; }); } function injectNoticeInContainer(container) { if (!container) return false; if (container.querySelector('.vf-guidelines-notice')) return true; const header = container.querySelector('.vf-comment-header'); if (!header) return false; const notice = document.createElement('div'); notice.className = 'vf-guidelines-notice'; notice.innerHTML = 'All comments are subject to our ' + 'Community Guidelines.' + 'Please note that comments are not moderated immediately — every post is reviewed before appearing publicly to ensure it meets our community guidelines. This means there may be a delay before your comment is visible.'; header.parentNode.insertBefore(notice, header.nextSibling); return true; } function hideFloatingBellButton() { document.querySelectorAll('.vf-tray-trigger--floating').forEach((btn) => { btn.style.display = 'none'; }); } function moveTrendingAboveCommentsFooter() { const trendingHost = document.getElementById('ap-trending-host'); if (!trendingHost || trendingHost.dataset.moved === '1') return; const footer = document.querySelector('#vf-conversations > div > section > div > footer'); if (footer && footer.parentNode) { footer.parentNode.insertBefore(trendingHost, footer); trendingHost.dataset.moved = '1'; } } function onCommentingLoaded() { const container = document.getElementById('ap-comments'); if (!container) return; injectNoticeInContainer(container); replaceBellIconInNav(container); moveTrendingAboveCommentsFooter(); } function wireViafoura() { if (window.vf && typeof window.vf.$subscribe === 'function') { window.vf.$subscribe('commenting', 'loaded', onCommentingLoaded); } } /* ----------------- DARK THEME HANDLING ----------------- */ function isDarkColor(rgb) { if (!rgb) return false; const m = rgb.match(/rgba?\((\d+),\s*(\d+),\s*(\d+)/i); if (!m) return false; const r = +m, g = +m, b = +m; const lum = (0.2126*r + 0.7152*g + 0.0722*b) / 255; return lum < 0.5; } function shouldUseDarkTheme() { if (document.querySelector('')) return true; const carrier = document.querySelector('') || document.body || document.documentElement; const bg = carrier ? getComputedStyle(carrier).backgroundColor : ''; return isDarkColor(bg); } function getEffectiveDarkBg() { const carrier = document.querySelector('') || document.body || document.documentElement; const bg = carrier ? getComputedStyle(carrier).backgroundColor : ''; return bg && bg !== 'rgba(0, 0, 0, 0)' && bg !== 'transparent' ? bg : '#0b0b0b'; } // NEW: normalize dropdown/menu background in dark mode (solid dark, non-transparent) function fixDarkModeDropdowns() { if (!shouldUseDarkTheme()) return; const bg = getEffectiveDarkBg(); const text = 'rgba(255,255,255,0.85)'; const dropdowns = document.querySelectorAll( ',,.vf-dropdown__menu,.vf-select__menu' ); dropdowns.forEach((el) => { const cs = getComputedStyle(el); const bgColor = cs.backgroundColor; // Only fix ones that are effectively transparent / not already dark if ( bgColor === 'rgba(0, 0, 0, 0)' || bgColor === 'transparent' ) { el.style.setProperty('--default-color', bg); el.style.setProperty('--background-color', bg); el.style.setProperty('--light-text-on-default-color', text); el.style.setProperty('--dark-text-on-default-color', '#ffffff'); el.style.setProperty('--light-text-on-background-color', text); el.style.setProperty('--dark-text-on-background-color', '#ffffff'); el.style.backgroundColor = bg; el.style.color = text; } }); } function applyDarkThemeIfNeeded() { const container = document.getElementById('ap-comments'); if (!container) return; const useDark = shouldUseDarkTheme(); const bg = useDark ? getEffectiveDarkBg() : null; container.classList.toggle('ap-comments--dark', useDark); if (useDark) { container.style.setProperty('--apc-bg', bg); container.style.setProperty('--apc-text', '#e8e8e8'); container.style.setProperty('--apc-link', '#9ecbff'); container.setAttribute('data-theme', 'dark'); container.style.setProperty('background', 'var(--apc-bg)', 'important'); // Normalize Viafoura / AP-style variables INSIDE the comments container container.style.setProperty('--default-color', bg); container.style.setProperty('--background-color', bg); container.style.setProperty('--light-text-on-default-color', 'rgba(255, 255, 255, 0.8)'); container.style.setProperty('--dark-text-on-default-color', '#ffffff'); container.style.setProperty('--light-text-on-background-color', 'rgba(255, 255, 255, 0.8)'); container.style.setProperty('--dark-text-on-background-color', '#ffffff'); } else { container.removeAttribute('data-theme'); container.style.removeProperty('background'); .forEach(v => container.style.removeProperty(v)); } const elConv = document.getElementById('vf-conv'); const elTrend = document.getElementById('vf-trending'); const realConv = document.querySelector('#vf-conversations'); const realTrend = document.querySelector('#vf-trending-articles'); .forEach(el => { if (!el) return; if (useDark) { el.setAttribute('data-vf-theme', 'dark'); el.setAttribute('vf-theme', 'dark'); el.setAttribute('theme', 'dark'); el.style.removeProperty('background'); el.style.color = 'var(--apc-text)'; } else { .forEach(a => el.removeAttribute(a)); el.style.removeProperty('background'); el.style.removeProperty('color'); } }); .forEach((root) => { if (!root) return; if (useDark) { root.classList.add('ap-vf-dark'); root.setAttribute('data-theme', 'dark'); } else { root.classList.remove('ap-vf-dark'); root.removeAttribute('data-theme'); } }); // fix dropdowns / sort menus any time theme is recalculated if (useDark) { fixDarkModeDropdowns(); } } const vfObserver = new MutationObserver(() => { applyDarkThemeIfNeeded(); }); (function bootComments() { const container = document.getElementById('ap-comments'); if (!container) return; // Initial theme & dropdown fix applyDarkThemeIfNeeded(); // --------- NEW: Global block tags (e.g. no_comment) ---------- // If the page has ANY of the COMMENT_BLOCK_TAGS, hide comments on all stories. if (pageHasBlockedTag(COMMENT_BLOCK_TAGS)) { container.innerHTML = ''; container.classList.remove('viafoura'); container.id = 'comments-hidden'; hideFloatingBellButton(); return; } // --------- NEW: Section-specific logic (World News) ---------- const section = getPageSection(); // Only apply this rule if the story is in World News. if (section === WORLD_NEWS_SECTION) { // If a World News story has any tag in WORLD_NEWS_EXCLUSION_TAGS (e.g. Israel), // hide the embed. Other sections with those tags are still allowed. if (pageHasBlockedTag(WORLD_NEWS_EXCLUSION_TAGS)) { container.innerHTML = ''; container.classList.remove('viafoura'); container.id = 'comments-hidden'; hideFloatingBellButton(); return; } } // --------- Existing Viafoura boot logic ---------- if (!window.vf && !document.querySelector('script')) { const s = document.createElement('script'); s.async = true; s.src = '//cdn.viafoura.net/entry/index.js'; document.head.appendChild(s); } if (document.readyState === 'complete' || document.readyState === 'interactive') { wireViafoura(); } else { document.addEventListener('DOMContentLoaded', wireViafoura); } (function startCappedRetry() { let tries = 0; const maxTries = 120; const iv = setInterval(() => { injectNoticeInContainer(container); replaceBellIconInNav(container); hideFloatingBellButton(); moveTrendingAboveCommentsFooter(); applyDarkThemeIfNeeded(); if (++tries >= maxTries) clearInterval(iv); }, 100); })(); try { vfObserver.observe(container, { childList: true, subtree: true }); } catch (e) {} })(); .vf-guidelines-notice { font-family: var(--primary-font, 'AP', sans-serif); font-size: 1.0em; color: #666; margin: 0 0 10px 0; padding-left: 4px; opacity: 0.85; line-height: 1.4; } .vf-guidelines-notice a { text-decoration: underline; font-weight: 500; } #vf-trending-articles > div > div > h2 { font-size: 14px !important; line-height: 1.2; text-transform: uppercase; } #vf-trending-articles p.vf-trending-article__comment-count { font-size: 16px !important; line-height: 1.1; } #comments-hidden { display: none; } /* ---------- Dark theme for AP comments ---------- */ #ap-comments.ap-comments--dark { --apc-bg: #0b0b0b; --apc-text: #e8e8e8; --apc-muted: #a7a7a7; --apc-border: #2a2a2a; --apc-link: #9ecbff; background: var(--apc-bg) !important; color: var(--apc-text); color-scheme: dark; } /* DO NOT touch every descendant’s colors anymore – that was killing badges/icons */ #ap-comments.ap-comments--dark a { color: var(--apc-link); } #ap-comments.ap-comments--dark a:hover, #ap-comments.ap-comments--dark a:focus { text-decoration: underline; } #ap-comments.ap-comments--dark hr, #ap-comments.ap-comments--dark .vf-divider, #ap-comments.ap-comments--dark .vf-comment + .vf-comment, #ap-comments.ap-comments--dark .vf-card { border-color: var(--apc-border) !important; } #ap-comments.ap-comments--dark .vf-guidelines-notice { color: var(--apc-muted); } #ap-comments.ap-comments--dark #vf-trending-articles > div > div > h2, #ap-comments.ap-comments--dark p.vf-trending-article__comment-count { color: var(--apc-text) !important; } #ap-comments.ap-comments--dark #vf-conversations.ap-vf-dark, #ap-comments.ap-comments--dark #vf-trending-articles.ap-vf-dark { background: transparent !important; color: var(--apc-text) !important; color-scheme: dark; } #ap-comments.ap-comments--dark #vf-conversations, #ap-comments.ap-comments--dark #vf-trending-articles { background-color: var(--apc-bg) !important; } /* Removed “*:not(input)” background/color override so badges keep their own colors */ #ap-comments.ap-comments--dark #vf-conversations section, #ap-comments.ap-comments--dark #vf-conversations article, #ap-comments.ap-comments--dark #vf-conversations header, #ap-comments.ap-comments--dark #vf-conversations footer, #ap-comments.ap-comments--dark #vf-conversations .vf-card, #ap-comments.ap-comments--dark #vf-trending-articles section, #ap-comments.ap-comments--dark #vf-trending-articles article, #ap-comments.ap-comments--dark #vf-trending-articles header, #ap-comments.ap-comments--dark #vf-trending-articles footer, #ap-comments.ap-comments--dark #vf-trending-articles .vf-card { background-color: transparent !important; border-color: var(--apc-border) !important; } #ap-comments.ap-comments--dark .vf-content-editor-form, #ap-comments.ap-comments--dark .vf-editor-area { background-color: rgba(255,255,255,0.08) !important; border: 1px solid rgba(255,255,255,0.24) !important; border-radius: 6px !important; } #ap-comments.ap-comments--dark .vf-content-editor-input { color: var(--apc-text) !important; caret-color: var(--apc-text) !important; } #ap-comments.ap-comments--dark .vf-content-editor-input::placeholder { color: #cfcfcf !important; opacity: 1 !important; } #ap-comments.ap-comments--dark .vf-content-editor-input:focus, #ap-comments.ap-comments--dark .vf-editor-area:focus-within { outline: none !important; border-color: rgba(255,255,255,0.36) !important; box-shadow: 0 0 0 2px rgba(255,255,255,0.12) !important; } #ap-comments.ap-comments--dark .vf-dropdown-button, #ap-comments.ap-comments--dark .vf-dropdown-button__text { background-color: transparent !important; color: var(--apc-text) !important; border-color: var(--apc-border) !important; } #ap-comments.ap-comments--dark .vf-dropdown-button:hover, #ap-comments.ap-comments--dark .vf-dropdown-button:focus { background-color: rgba(255,255,255,0.06) !important; } /* Only tweak the swapped bell icon in dark mode; leave other badges alone */ #ap-comments.ap-comments--dark .vf-tray-trigger img { filter: invert(1) hue-rotate(180deg) brightness(1.1); opacity: 1; mix-blend-mode: normal; } /* Ban message styles */ .vf-ban-container { margin: 10px 0 15px; padding: 10px 12px; border-radius: 4px; background-color: #fff3cd; border: 1px solid #ffeeba; } .vf-ban-message { font-family: var(--primary-font, 'AP', sans-serif); font-size: 0.95em; color: #856404; display: flex; align-items: center; flex-wrap: wrap; } .vf-ban-icon { margin-right: 8px; } .vf-ban-tooltip { margin-left: 4px; font-weight: 600; text-decoration: underline; cursor: pointer; position: relative; } .vf-ban-tooltip-content { display: none; position: absolute; z-index: 9999; top: 120%; left: 0; width: 260px; padding: 8px 10px; background: #fff; border: 1px solid #ccc; border-radius: 4px; font-weight: 400; text-decoration: none; color: #333; box-shadow: 0 2px 4px rgba(0,0,0,0.1); } .vf-ban-tooltip:hover .vf-ban-tooltip-content { display: block; }