(function registerEvidencePageList(global) {
  const React = global.React;
  if (!React) return;

  function scorePercent(page) {
    const score = Number(page.score || page.matchScore || 0);
    return score <= 1 ? Math.round(score * 100) : Math.round(score);
  }

  function EvidencePageList({ pages = [] }) {
    if (!pages.length) return <div className="free-seo-empty">No evidence pages ranked for this prompt.</div>;
    return <div className="free-seo-table-wrap">
      <table className="free-seo-table">
        <thead><tr><th>Score</th><th>Page</th><th>Reasons</th><th>Excerpt</th></tr></thead>
        <tbody>
          {pages.map((page) => <tr key={page.url}>
            <td>{scorePercent(page)}</td>
            <td><a href={page.url} target="_blank" rel="noreferrer">{page.title || page.url}</a><br /><small>{page.source || page.sourceType || 'local'}</small></td>
            <td>{(page.reasons || page.matchedSignals || []).map((reason) => <span className="free-seo-chip" key={reason}>{String(reason).replace(/_/g, ' ')}</span>)}</td>
            <td>{page.excerpt || (page.snippets && page.snippets[0]) || ''}</td>
          </tr>)}
        </tbody>
      </table>
    </div>;
  }

  global.FreeSeoEvidencePageList = EvidencePageList;
})(window);
