(function attachFreeSeoImplementationQaView(global) {
  function FreeSeoImplementationQaView() {
    var React = global.React;
    var useEffect = React.useEffect;
    var useState = React.useState;
    var api = global.JS_API && global.JS_API.freeSeo && global.JS_API.freeSeo.implementationQa;
    var _a = useState(null), run = _a[0], setRun = _a[1];
    var _b = useState([]), runs = _b[0], setRuns = _b[1];
    var _c = useState(''), error = _c[0], setError = _c[1];
    function refresh() { if (!api) return; api.listRuns({ limit: 10 }).then(function (data) { setRuns(data.items || []); }).catch(function (err) { setError(err.message); }); }
    useEffect(refresh, []);
    function create(payload) { setError(''); return api.createRun(payload).then(function (created) { setRun(created); refresh(); }).catch(function (err) { setError(err.message); }); }
    function exportRun(format) { if (!api || !run) return; api.exportRun(run.id, format || 'zip').then(function (blob) { var url = URL.createObjectURL(blob); var a = document.createElement('a'); a.href = url; a.download = 'implementation-qa-' + run.id + '.' + (format || 'zip'); a.click(); URL.revokeObjectURL(url); }); }
    if (!api) return React.createElement('div', { className: 'free-seo-card' }, 'Implementation QA client is not loaded.');
    return React.createElement('main', { className: 'free-seo-lab-view' },
      React.createElement('header', null, React.createElement('h2', null, 'Implementation QA Checker'), React.createElement('p', null, 'Verify that generated SEO/GEO implementation changes were actually installed.')),
      error ? React.createElement('div', { className: 'free-seo-error' }, error) : null,
      React.createElement(global.ImplementationQaRunForm, { onCreate: create }),
      run ? React.createElement('section', null,
        React.createElement(global.ImplementationQaScoreCards, { summary: run.summary }),
        React.createElement('p', null, React.createElement('button', { onClick: function () { exportRun('html'); } }, 'Export HTML'), ' ', React.createElement('button', { onClick: function () { exportRun('zip'); } }, 'Export ZIP')),
        React.createElement(global.ImplementationQaDiffPanel, { deltaSummary: run.summary && run.summary.deltaSummary }),
        React.createElement(global.ImplementationQaPageEvidence, { pages: run.pages || [] }),
        React.createElement(global.ImplementationQaRecommendationPanel, { recommendations: run.recommendations || [] }),
        React.createElement(global.ImplementationQaChecklist, { checks: run.checks || [] })
      ) : null,
      React.createElement('section', { className: 'free-seo-card' }, React.createElement('h3', null, 'Recent QA runs'), React.createElement('ul', null, runs.map(function (item) { return React.createElement('li', { key: item.id }, React.createElement('button', { onClick: function () { api.getRun(item.id).then(setRun); } }, item.targetDomain + ' - ' + (item.summary && item.summary.grade || '-') + ' - ' + item.id)); })))
    );
  }
  global.FreeSeoImplementationQaView = FreeSeoImplementationQaView;
})(window);
