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

  function sourceModeLabel(mode) {
    return String(mode || '').replace(/_/g, ' ');
  }

  function FeatureCard(props) {
    var React = global.React;
    var feature = props && props.feature || {};
    var onOpen = props && props.onOpen || function noop() {};
    var EntitlementBlock = global.FreeSeoEntitlementBlock;
    var status = feature.status || 'disabled';
    var locked = status === 'locked';
    var disabled = status === 'disabled';
    var modeChips = (feature.sourceModes || []).map(function mapMode(mode) {
      return React.createElement('span', { key: mode, className: 'free-seo-chip' }, sourceModeLabel(mode));
    });

    return React.createElement('article', { className: 'free-seo-feature-card free-seo-feature-card--' + status }, [
      React.createElement('div', { key: 'head', className: 'free-seo-feature-card__head' }, [
        React.createElement('h3', { key: 'title' }, feature.name || feature.id),
        React.createElement('span', { key: 'status', className: 'free-seo-feature-status' }, status)
      ]),
      React.createElement('div', { key: 'body', className: 'free-seo-feature-card__body' }, [
        React.createElement('p', { key: 'description' }, feature.description || 'Free SEO Lab capability.'),
        React.createElement('div', { key: 'modes', className: 'free-seo-feature-card__modes' }, modeChips)
      ]),
      React.createElement('div', { key: 'actions', className: 'free-seo-feature-card__actions' }, [
        locked && EntitlementBlock ? React.createElement(EntitlementBlock, {
          key: 'lock',
          entitlement: feature.entitlement,
          message: 'Your current plan does not include this Free SEO Lab workflow yet.'
        }) : null,
        React.createElement('button', {
          key: 'open',
          type: 'button',
          className: 'button button-primary',
          disabled: locked || disabled,
          onClick: function handleOpen() { onOpen(feature); }
        }, disabled ? 'Disabled' : locked ? 'Locked' : 'Open')
      ])
    ]);
  }

  global.FreeSeoFeatureCard = FeatureCard;
})(typeof window !== 'undefined' ? window : globalThis);
