(function registerPageLabRunForm(global) {
  'use strict';

  function splitUrls(value) {
    return String(value || '')
      .split(/[\n,]+/)
      .map(function trimUrl(url) { return url.trim(); })
      .filter(Boolean);
  }

  function PageLabRunForm(props) {
    var React = global.React;
    var useState = React.useState;
    var initial = props && props.initial || {};
    var onSubmit = props && props.onSubmit || function noop() {};
    var statePair = useState({
      urls: (initial.urls || []).join('\n'),
      websiteId: initial.websiteId || '',
      auditId: initial.auditId || '',
      device: initial.device || 'mobile',
      runLighthouse: initial.runLighthouse !== false,
      runAxe: initial.runAxe !== false,
      allowStaticFallback: initial.allowStaticFallback !== false,
      timeoutMs: initial.timeoutMs || 60000
    });
    var state = statePair[0];
    var setState = statePair[1];

    function update(key, value) {
      setState(function merge(prev) {
        var next = Object.assign({}, prev);
        next[key] = value;
        return next;
      });
    }

    function submit(event) {
      event.preventDefault();
      onSubmit({
        urls: splitUrls(state.urls),
        websiteId: state.websiteId || undefined,
        auditId: state.auditId || undefined,
        device: state.device,
        runLighthouse: Boolean(state.runLighthouse),
        runAxe: Boolean(state.runAxe),
        allowStaticFallback: Boolean(state.allowStaticFallback),
        timeoutMs: Number(state.timeoutMs) || 60000,
        sourceMode: 'cli_optional'
      });
    }

    return React.createElement('form', { className: 'free-seo-page-lab-form', onSubmit: submit }, [
      React.createElement('div', { key: 'url-field', className: 'form-field' }, [
        React.createElement('label', { key: 'label' }, 'URLs to check'),
        React.createElement('textarea', {
          key: 'textarea',
          rows: 5,
          value: state.urls,
          placeholder: 'https://example.com/\nhttps://example.com/services',
          onChange: function onChange(event) { update('urls', event.target.value); }
        }),
        React.createElement('small', { key: 'help' }, 'One URL per line. Uses Lighthouse/axe when installed, otherwise static fallback can still produce evidence.')
      ]),
      React.createElement('div', { key: 'ids', className: 'free-seo-form-grid' }, [
        React.createElement('div', { key: 'website', className: 'form-field' }, [
          React.createElement('label', { key: 'label' }, 'Website ID'),
          React.createElement('input', { key: 'input', value: state.websiteId, onChange: function onChange(event) { update('websiteId', event.target.value); } })
        ]),
        React.createElement('div', { key: 'audit', className: 'form-field' }, [
          React.createElement('label', { key: 'label' }, 'Audit ID'),
          React.createElement('input', { key: 'input', value: state.auditId, onChange: function onChange(event) { update('auditId', event.target.value); } })
        ]),
        React.createElement('div', { key: 'device', className: 'form-field' }, [
          React.createElement('label', { key: 'label' }, 'Device'),
          React.createElement('select', { key: 'select', value: state.device, onChange: function onChange(event) { update('device', event.target.value); } }, [
            React.createElement('option', { key: 'mobile', value: 'mobile' }, 'Mobile'),
            React.createElement('option', { key: 'desktop', value: 'desktop' }, 'Desktop')
          ])
        ]),
        React.createElement('div', { key: 'timeout', className: 'form-field' }, [
          React.createElement('label', { key: 'label' }, 'Timeout ms'),
          React.createElement('input', { key: 'input', type: 'number', min: 5000, max: 180000, value: state.timeoutMs, onChange: function onChange(event) { update('timeoutMs', event.target.value); } })
        ])
      ]),
      React.createElement('div', { key: 'checks', className: 'free-seo-check-row' }, [
        React.createElement('label', { key: 'lh' }, React.createElement('input', { type: 'checkbox', checked: state.runLighthouse, onChange: function onChange(event) { update('runLighthouse', event.target.checked); } }), ' Run Lighthouse'),
        React.createElement('label', { key: 'axe' }, React.createElement('input', { type: 'checkbox', checked: state.runAxe, onChange: function onChange(event) { update('runAxe', event.target.checked); } }), ' Run axe-core'),
        React.createElement('label', { key: 'fallback' }, React.createElement('input', { type: 'checkbox', checked: state.allowStaticFallback, onChange: function onChange(event) { update('allowStaticFallback', event.target.checked); } }), ' Allow static fallback')
      ]),
      React.createElement('button', { key: 'submit', type: 'submit', className: 'button button-primary' }, 'Run Page Lab')
    ]);
  }

  global.FreeSeoPageLabRunForm = PageLabRunForm;
})(typeof window !== 'undefined' ? window : globalThis);
