"use strict";

var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = FontFamilyControl;
var _components = require("@wordpress/components");
var _deprecated = _interopRequireDefault(require("@wordpress/deprecated"));
var _i18n = require("@wordpress/i18n");
var _useSettings = require("../use-settings");
var _jsxRuntime = require("react/jsx-runtime");
/**
 * WordPress dependencies
 */

/**
 * Internal dependencies
 */

function FontFamilyControl({
  /** Start opting into the larger default height that will become the default size in a future version. */
  __next40pxDefaultSize = false,
  /** Start opting into the new margin-free styles that will become the default in a future version. */
  __nextHasNoMarginBottom = false,
  value = '',
  onChange,
  fontFamilies,
  ...props
}) {
  const [blockLevelFontFamilies] = (0, _useSettings.useSettings)('typography.fontFamilies');
  if (!fontFamilies) {
    fontFamilies = blockLevelFontFamilies;
  }
  if (!fontFamilies || fontFamilies.length === 0) {
    return null;
  }
  const options = [{
    key: '',
    name: (0, _i18n.__)('Default')
  }, ...fontFamilies.map(({
    fontFamily,
    name
  }) => ({
    key: fontFamily,
    name: name || fontFamily,
    style: {
      fontFamily
    }
  }))];
  if (!__nextHasNoMarginBottom) {
    (0, _deprecated.default)('Bottom margin styles for wp.blockEditor.FontFamilyControl', {
      since: '6.7',
      version: '7.0',
      hint: 'Set the `__nextHasNoMarginBottom` prop to true to start opting into the new styles, which will become the default in a future version'
    });
  }
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.CustomSelectControl, {
    __next40pxDefaultSize: __next40pxDefaultSize,
    label: (0, _i18n.__)('Font'),
    value: value,
    onChange: ({
      selectedItem
    }) => onChange(selectedItem.key),
    options: options,
    ...props
  });
}
//# sourceMappingURL=index.js.map